From 051cdd45600398399cc5d1f300112f24bc37ced7 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 2 Jul 2026 21:57:27 +0800 Subject: [PATCH 001/164] init --- filament_id_plan.html | 1029 +++++++++++++++++++++++++++++++++++++++++ filament_id_plan.md | 397 ++++++++++++++++ task.md | 13 + 3 files changed, 1439 insertions(+) create mode 100644 filament_id_plan.html create mode 100644 filament_id_plan.md create mode 100644 task.md diff --git a/filament_id_plan.html b/filament_id_plan.html new file mode 100644 index 0000000000..08f4a06b74 --- /dev/null +++ b/filament_id_plan.html @@ -0,0 +1,1029 @@ + + + + + +filament_id — design & migration plan · OrcaSlicer + + + + + + +
+ + +
+
DESIGN REVIEW resources/profiles · filament_id
+

One id, one material — on every printer, exactly once.

+

A filament_id names a material family: one commercial product line, shared by all of its + per-printer variants. Devices match spools by filament_id + printer compatibility. + That only works if, for any one printer, at most one compatible preset carries a given id. Bambu keeps this + invariant; the other 64 vendor bundles broke it 1,256 times.

+ +
+ id anatomy — Bambu's grammar + + + + GF + A + 00 + + + + + + + + + + + + prefix — Bambu's namespace + frozen: AMS RFID tags carry these bytes + family letter — A: Bambu PLA + B ABS/ASA · C PC · G PETG · L generic/3rd-party PLA + N PA · P PP/PE · S support · T PET/PPS · U TPU + tier number + 00–49 branded · 50–59 fiber-filled + 60–70 partners · 95–99 generic, desc. + + + + shared by every variant: + + + Bambu PLA Basic @BBL X1C + + Bambu PLA Basic @BBL P1P + + Bambu PLA Basic @BBL X1C 0.2 nozzle + + + +
+ +
+
1,256
printer-level ambiguity errors (validator -f, tree-wide)
+
356
logical collision groups after de-duplication
+
30 / 65
vendor bundles affected / total
+
0
violations in BBL — cleaned in PR #14459, CI-gated
+
+

Every number in this document is reproducible: an independent loader-faithful audit re-derives the + validator's output exactly (1256 = 1256), and every code claim carries a file:line reference.

+
+ + +
+
§0 overview
+

The plan in one screen

+

Two deliverables: a generation rule so ids can never become ambiguous again (goal 1), and a + migration that fixes the 356 existing collisions without breaking users (goal 2).

+ +
+ the whole plan + + + + + + + + + TODAY + 7+ ad-hoc id schemes + 356 collision groups + zero written rules + CI covers BBL only + + + RULE + TOOLING §3 §6 + deterministic OF* mint + id lives on @base only + CI ratchets + snapshot + no profile changes yet + + + MIGRATION §5 + fresh ids only, ever + OFL first, then per vendor + names never change + one reviewable PR each + + + DONE + invariant holds + tree-wide, + by construction + + + + + + + BBL profiles are never touched · Qidi QD_* device ids are never touched · no preset is renamed or deleted + +
+ +
+ Why migration is safe — verified in code: user presets re-derive filament_id from their parent on + every load Preset.cpp:1658-1682; 3mf projects resolve presets by name + config, not id + Preset.cpp:2490-2576; Klipper, Creality and Snapmaker derive tray ids at runtime from the + installed bundle. Fresh, never-reused ids on non-BBL system presets break nothing. +
+
+ + +
+
§1 how matching works
+

Every ecosystem funnels through this one id

+

Not just Bambu. Five device ecosystems put a filament_id into the same pipeline; the slicer then + picks the single preset that matches the id and is compatible with the active printer.

+ +
+ runtime — device → preset + + + + + + + + + + BBL AMS + from device RFID — frozen + + Qidi box + QD_<series>_<v>_<t> — frozen + + Creality CFS + scored at runtime — safe + + Klipper AFC/HH + by filament type — safe + + Snapmaker + color/type match — safe + + + + + + + + + + + + tray_info_idx (MQTT / agent) + + filament_ams_list["filament_id"] + + find_if( f.is_compatible && base(f)==f && f.filament_id == id ) + + + + + + + + Plater.cpp:3440 + PresetBundle.cpp:3132/3233 + + + → the ONE matching preset + two matches? find_if silently returns whichever sorts first — no log, no warning; the AMS edit dialog even hides the second preset + +
+ +

The invariant, drawn

+
+ per printer × per id +
+
+

✓ Correct — Bambu PLA Basic, id GFA00

+ + + + + +
printer presetcompatible presets with GFA00
X1C…@BBL X1C 1
X1C 0.2 nozzle…@BBL X1C 0.2 nozzle 1
P1P…@BBL P1P 1
+

Variants share the id; their compatible_printers are disjoint. Each printer sees the id exactly once.

+
+
+

✗ Broken — Qidi, id GFB99 (real case)

+ + + +
printer presetcompatible presets with GFB99
X-Max 3 0.4 nozzleBambu ABS · HATCHBOX ABS · Overture ABS · PolyLite ABS · QIDI ABS Rapido · QIDI ABS-GF · QIDI ASA · ASA-Aero · PC-ABS-FR · Generic ABS … 16
+

Sixteen different materials answer to one id on one printer. A spool tagged “generic ABS” matches + whichever preset sorts first — and GFB99 was stamped into 317 Qidi files.

+
+
+
+ +

Two consumers you can't see from the profiles

+

Most matching is printer-scoped, but several code paths match globally, by id alone — tray display name, + temperature_vitrification warnings, calibration history, and the multi-nozzle grouping key + FilamentGroup.cpp:513. So two different materials must never share an id even across + vendors: the first preset in the whole installed collection supplies the name, type and temperature data.

+
Two identity systems. The library (OFL) hides its global presets per printer by + alias (name before  @) — Preset.cpp:3684 — while devices match by + filament_id. When a vendor tunes Generic PLA but renames it + Flashforge PLA Basic, the alias no longer matches, shadowing fails, and both presets are + visible with the same id. The rule in §3 aligns the two systems: one family = one alias = one id.
+
+ + +
+
§2 the landscape today
+

Seven schemes, zero rules, one epidemic

+

The only guidance that ever existed was “≤ 8 characters”, checked for BBL only. Every other + convention was one contributor's invention, merged without comment, then imitated.

+ +
+ who uses which id shape — 5,866 instantiated presets + + + GF<letter><NN> (Bambu classic, mass-copied) + 2,921 + free-form ("GFPLA Silk", "LHF_pla", 36-char names…) + 2,241 + GF<BRAND><NNN> (Bambu partner ids) + 395 + O-prefixed (OGF* — OrcaFilamentLibrary mirrors) + 211 + GF<x>##_## (Afinia/Tiertime suffix) + other GF-shaped + 43 + 55 + + +
+ Bambu's space, used outside Bambu + invented, unowned + deliberate Orca convention +
+
+ +

How it got here

+
+ convention timeline + + + + + + + + + + 2025-01 + OrcaFilamentLibrary + created + + 2025-03 + OGF* prefix born + direct commit, no rationale + + 2025-05 + “≤ 8 chars” check + BBL-only · PR #9574 + + 2025-06 + _## suffix invented + PR #9739, imitated since + + 2025-11 + profile wiki removed + its example taught copy-paste + + 2026-06 + validator -f · BBL → 0 + PR #14459 + + now + this plan + + +
+ +

Beyond the validator's reach

+

The -f check compares a printer only against its own vendor's filaments. Three further ledgers exist:

+
+
16
OFL-internal ids covering several materials — visible on every printer (e.g. OEPLAB00 = 14 Elegoo PLA products)
+
42
OFL×vendor same-id pairs — 32 already neutralized by alias shadowing, 10 live
+
67
ids meaning different materials in different vendors (GFU99 also covers a PEBA; Anycubic's GFL95 “Matte” ≠ Bambu's GFL95 “High Speed”)
+
+
+ + +
+
§3 the rule
+

Nobody invents ids. Structure carries the rest.

+

Chosen by a 3-design → 2-judge → 3-attacker adversarial process. Deterministic minting won on + ambiguity-prevention, contributor simplicity and enforceability; every “breaks” finding from the attack pass is + folded in below.

+ +

The one-question test

+
+ decision — same id or new id? + + + + + + + + Would a user call this a different spool product + than anything already in the tree? + + + + + + + YES — polymer, sub-brand, + fiber-filled, 2nd diameter + NO — same spool, tuned for + another printer / nozzle + it's a GENERIC + material + + + NEW FAMILY + create «Family @base», not instantiated + write NO filament_id anywhere + run the mint script — or paste the id + that CI prints for you + + JOIN THE FAMILY + inherit the existing @base + never write the filament_id key + keep compatible_printers disjoint + from the other variants + + JOIN THE OFL FAMILY + inherit «Generic X @System» + KEEP the «Generic X» name/alias + (alias shadowing then hides the OFL + preset on your printers) · no id key + color → never a new id · “high-speed” for a different printer → same family + “high-speed” selectable alongside the normal preset on one printer → new family + second selectable diameter on the same printer → sibling family with its own id + +
+ +

Minted ids — the setting_id precedent, applied to families

+
+ id anatomy — the new namespace + + + OF + q3xT9k + + + + + + + + + OF — Orca Family namespace + disjoint from GF · QD_ · P· at two chars + base62_6( uuid5( NS, "filament_family/<Vendor>/<Family>" ) ) + e.g. filament_family/Elegoo/Elegoo PLA Matte → OFq3xT9k + same derivation as setting_id · 8 chars total (AMS limit) + + + same input → same id: + no “next number” races · a fork mints the id upstream expects · CI recomputes and verifies + renamed family? + the id does not change — immutable once shipped; renamed_from covers the name + + +
+

Author workflow is two lines: commit the family with no id anywhere; run + python scripts/assign_filament_ids.py (or read the id CI prints in its failure message and paste it). + A --mint "<Vendor>/<Family>" one-shot prints an id without touching the tree.

+ +

Structure: the id lives in exactly one place

+
+ family shape + + + Elegoo PLA Matte @base + instantiation:false · filament_id: "OFq3xT9k" ← only here + + + + + + …@Centauri Carbon + inherits @base · no id key + compat: {CC 0.4} + + …@CC 0.2 nozzle + inherits @base · no id key + compat: {CC 0.2} + + …@Neptune 4 + inherits @base · no id key + compat: {N4, N4 Pro} + + disjoint compatible_printers = the PR #14459 invariant, by construction + family identity is DECLARED — an optional "filament_family" key on the root overrides name derivation + multi-root families are legal (Qidi's per-series bases) — every root must declare the identical id + +
+ +

Reserved namespaces — never mint or hand-write into

+
+ the id space, partitioned + + + + + + + + + GF* + Bambu AMS / RFID — frozen + + QD_* + Qidi device — frozen + + P[0-9A-Fa-f]{7} · "null" + user-custom presets + + OGF* + legacy shapes + grandfathered, closed + + OF[0-9A-Za-z]{6} + open — minted only + + Byte-copies of authentic Bambu ids stay legal where the checked-in shared_catalog sanctions the family (BBL, OFL, Fiberon). + Everything already shipped and unambiguous is snapshot-frozen exactly as-is — the migration touches only colliding families. + +
+
Accepted trade-off: minted ids are opaque — OFq3xT9k doesn't say “PLA”. + The family name sits in the same file; in exchange there is no registry, no “next free number” ceremony, no PR races, + and forks mint the same id upstream expects. The mnemonic registry-grammar runner-up is preserved in §8 if you prefer it — + everything else in this plan works under either format.
+
+ + +
+
§4 error taxonomy — goal 2
+

Eleven patterns explain all 356 groups

+

Classified group-by-group against the actual profile files, then independently spot-checked + (1 substantive disagreement in 14 samples, corrected). The task's two known patterns cover about half; the rest + are new findings.

+ +
+ what's actually wrong — classified groups + + + P1 copy_paste_id — different materials share an id verbatim + 167 + P2 wrong_inherits / id-less product line + ~87 + P3 generic_family_overlap — branded preset rides a generic id + 68 + P4 overclaim_compat — broader variant claims a dedicated printer + 24 + other — deliberate coexistence, hygiene, one true duplicate + 21 + + +

Fixes across all groups: 319 × mint a fresh id · 21 × trim compatible_printers · + 21 × split compat-or-id · 5 × re-point inherits · 1 × merge. Which preset keeps a contested id follows a + mechanical precedence: Bambu-catalog material → OFL generic family → historical first owner.

+
+ +
+
P1copy_paste_id~167
+

The id came along when a profile was copied. Qidi stamped GFB99 into 317 files; + Peopoly put PLA-Silk's id on ABS.

+
fix — impostor families get minted ids on their roots; the owner keeps the id.
+
P2wrong_inherits / no root~87
+

A product line never got its own @base — every variant inherits another family's id. + Flashforge's umbrella collapses ~140 presets into one id.

+
fix — create per-family roots with minted ids; re-point inherits. Never delete the old + shadow files — convert them (they carry real config).
+
P3generic_family_overlap~68
+

A vendor-branded filament rides a generic family id via inheritance, colliding with the true generic + on the same printer.

+
fix — branded → minted id. True generic tunings instead join the OFL family with matching alias. + Sovol is the elegant case: just delete its wrong id lines and inherit OFL's.
+
P4overclaim_compat~24
+

Same material; the broad variant claims a printer that a dedicated variant covers — the BBL H2DP pattern + from PR #14459.

+
fix — trim the broader preset's compatible_printers. Ids untouched.
+
P5template-carried idin P1/P2
+

The id sits on a shared settings template (fdm_filament_*), so every family that inherits + the template collapses onto it (Prusa, Ginger Additive).

+
fix — move ids off templates onto family roots.
+
P6OFL-internal collision16 ids
+

One OFL id spans several materials — and OFL presets are visible on every printer. + OGFL06 = eSUN PLA-Marble and Fiberon PETG-ESD.

+
fix — fix OFL first: it's the base bundle every vendor resolves against.
+
P7alias-mismatch re-exposure10 live
+

A vendor tunes a generic but renames it; alias shadowing fails and the OFL preset resurfaces beside it + (Snapmaker PolyTerra J1 PLA).

+
fix — rename-to-alias where it's genuinely the same family, else mint.
+
P8per-variant ids~210 presets
+

The opposite failure: every nozzle variant has its own id (Prusa, SeeMeCNC, Afinia _##). + No ambiguity — but devices can't recognize the material across nozzles.

+
fix — grandfather (they're unambiguous); converge opportunistically; document as anti-pattern.
+
P9format violationshygiene
+

Ids with spaces ("GFPLA Silk"), 11-char ids, invented GF-shaped ids colliding with + Bambu's real allocations.

+
fix — disappears as a byproduct of re-minting; the unambiguous rest is snapshot-frozen.
+
P10cross-vendor semantic67 ids
+

Same id, different material, different vendors — feeds wrong name/type/temperature data to the globally-matching + consumers (§1).

+
fix — mostly eliminated by P1–P3 re-minting; benign same-material generic sharing is legalized + by the snapshot.
+
P11deliberate coexistence4
+

Snapmaker “Benchy” demo presets coexist on purpose (gated by compatible_prints, which the id check + can't see); one preset lists the same printer three times.

+
fix — mint ids for demo presets; de-duplicate list entries; add a lint.
+
+
+ + +
+
§5 migration plan
+

Fresh ids only, family-atomic, names never change

+

The persistence analysis makes one strategy provably safe — and everything else forbidden.

+ +

What survives an id change

+ + + + + + + + + + +
surfacebehavior across releasesverdict
User presets that inherit a system presetfilament_id re-derived from the parent on every load Preset.cpp:1658-1682safe
Saved 3mf projectspresets resolve by name + config equality, never by id Preset.cpp:2490-2576safe
Klipper / Creality / Snapmaker synctray ids derived at runtime from the installed bundlesafe
User root custom presetscopied a system id at creation and persist it forever — AMS auto-match falls back to generic-by-typelow residue
Qidi QD_* idsencode the device protocol QidiPrinterAgent.cpp:146 — an exact-match contractfrozen
BBL GF* idslive on RFID tags and printer-side records; hardcoded k-values in C++frozen
Recycling an old id for a different materialstale ids in user roots / old 3mfs would silently match the wrong materialforbidden, forever
Renaming / deleting preset namesuser presets whose inherits no longer resolves are dropped at load Preset.cpp:1687-1691forbidden (use renamed_from if unavoidable)
+ +

Phases

+
+
0
+

Tooling + snapshot — no profile changes

+

Land scripts/assign_filament_ids.py, the extended CI checks in ratchet mode, the validator OFL + cross-check and the runtime warning. Generate filament_id_snapshot.json (id→families multimap over main) + and an empty retired_ids.json; both are checked in and append-only.

+
+
1
+

OrcaFilamentLibrary first

+

OFL is the base bundle every vendor resolves against. Fix its 16 internal collisions and give + Generic PETG HF/PETG-CF/PP-CF/… @System their own family roots instead of collapsing into their + parent generic. Unambiguous ids stay byte-identical.

+
+
2
+

Per-vendor PRs, worst first — each widens the CI ratchet

+

Qidi → Flashforge → Elegoo → Prusa → Cubicon → Anycubic → InfiMech → Snapmaker → long tail (22 vendors, + mostly 1–8 one-line fixes). Each merged PR appends its vendor to the workflow's -f -v scope + (today: -v BBL -f); when all are in, drop -v and run tree-wide.

+
+
3
+

Delete the allowlists

+

Once tree-wide zero holds, the ratchet allowlists disappear and every check becomes a hard rule for anything + born after the snapshot.

+
+
+ +
+ where the work is — collision groups per vendor + + + Qidi97 + Flashforge69 + Elegoo37 + Prusa31 + Cubicon17 + Anycubic14 + InfiMech14 + Snapmaker11 + Artillery8 + Creality8 + FlyingBear8 + Sovol6 + 18 more40 total (Volumic 6 · Ratrig 5 · Chuanying 4 · Dremel 3 · 4×2 · 10×1) + + +

Vendor observations show these are systematic mistakes, not hundreds of independent bugs: Qidi is one + blanket-stamp in three profile generations; Elegoo is a single inherit-the-class-base habit; Sovol is fixed by deleting + six wrong lines.

+
+ +

The migration script's contract (hardened by the adversarial pass)

+ + + + + + + +
rulewhy
Re-mint everything — id literals in analysis notes are ignored; only group membership, fix category and keep-id precedence are consumed. Assert no emitted id matches ^(GF|QD_|P[0-9A-Fa-f]{7}$).~40% of classification notes suggested ids in the old invented-GF culture; CI would reject them.
Family-atomic — re-idding any preset re-ids every same-family sibling in the same commit, even outside the collision group.Otherwise a family splits across two ids (FlyingBear GFB99 @S1 vs @Ghost7) — worse than the bug being fixed.
Bounded diff — a vendor PR may only touch collision-group files + same-family siblings; every id that is unambiguous today stays byte-identical.Makes each PR mechanically auditable.
Config-equivalence gate — flattened effective config of every preset must be identical before/after, except the prescribed id/inherits/compat edits.Makes structural conversions provably behavior-neutral (Flashforge's id-less shadow files become named family roots carrying their config byte-for-byte).
No deletions, no renames — redundant twins are re-minted, not dropped; consolidation via renamed_from is a separate human-reviewed cleanup.Deleting a name silently drops users' derived presets at load.
+
+ + +
+
§6 enforcement
+

Ratchets, not absolutes

+

The grandfathered landscape keeps today's benign sharing legal; the checks forbid anything new. + All checks import the same mint function — the setting_id precedent.

+ + + + + + + + + + + +
#checkwhere
1Format — valid iff OF[0-9A-Za-z]{6} or in the snapshot or vendor==BBL or QD_* in Qidi. The legacy set is closed.orca_extra_profile_check.py
drop BBL-only gate :292, OFL skip :601
2Uniqueness ratchet — tree-wide id→families multimap; no id may gain a family claim not recorded in the snapshot (shared_catalog is the sanctioned exception).
3Structure ratchet — id key only on roots; every instantiated preset resolves an effective id (simulated loader walk); all family members resolve identically; no preset may override its inherited id (the Generic SBS drift class).
4Mint conformance — a new id must equal the mint (or a salt iteration); the failure message prints the expected value so hand-editors can paste it.
5Stability — an (id, family) pair on main may not change or vanish, following renamed_from chains, unless listed in a maintainer-gated migrations file. Retired ids go to an append-only ledger and are never redefined.
6Alias hygiene — a preset inheriting an OFL Generic * @System (no own id in its chain) must keep the OFL base name and non-empty compatible_printers; the error names the rename as the cause.
7OFL cross-check — extend check_duplicate_filament_subtypes to include OFL presets in every vendor's per-printer check, minus alias-excluded ones. m_excluded_from is already populated in validator context, so the 32 shadowed pairs won't false-positive and the 10 live ones are caught. Widen CI's -f per vendor.C++ validator
PresetBundle.cpp:5654 · :2302
8Runtime backstop — log a warning when the AMS-sync find_if sees 2+ compatible presets for one id. The only layer that can see side-loaded and forked bundles. One line.runtime
PresetBundle.cpp:3132/3233
+ +

Plus: the rule document ships in-repo (doc/developer-reference/filament_id.md) so CI messages + have a stable link, and the profile-PR template gets one checkbox: “new materials: no filament_id key anywhere — + CI prints the minted id.”

+
+ + +
+
§7 evidence
+

How this was verified

+

The analysis was run as a 52-agent pipeline over the real tree and real git history, with an + adversarial design phase — findings were attacked before being adopted.

+ +
+ methodology + + + + + + + + + 5 code analysts + runtime · persistence · loader + Bambu grammar · git history + + 38 classifiers + every collision group, read + from the actual profile files + + ground truth + audit script = validator + 1256 = 1256 · exact + + + 3 designs + deterministic mint + registry grammar + structure-only + + + 2 judges + both chose the mint + 58 / 50 / 56 + 60 / 54 / 56 + + + 3 attackers + 35 scenarios + authors · runtime · + migration mechanics + every “breaks” → + an amendment §3–§5 + spot-check: 1/14 + + + + + + + + + +

Amendments that came out of the attack pass: family identity declared on roots (not name-derived — + Afinia PLA@HS has no space before @); multi-root families legalized; checks 2–3 as + ratchets, not absolutes; the no-deletion rule; shadow-file conversion instead of deletion; classification id + literals quarantined; diameter siblings; case-insensitive reservation of the user id space.

+
+ +
+ Key discoveries that reshaped the design (with sources) +
+

· The “26 Flashforge presets with no id” were a false alarm — the loader resolves them through the OFL base-bundle + fallback to OGFL99/OGFG99 PresetBundle.cpp:4904-4909. The real bug is + ~10 different Flashforge PLA products sharing one id.

+

· A missing id can never ship: it's a hard load error that discards the whole vendor bundle + PresetBundle.cpp:5072, :5141.

+

· Qidi's QD_* ids are a device-protocol contract, discovered in + QidiPrinterAgent.cpp:146-152 — a second frozen namespace nobody had documented.

+

· User-custom ids occupy P + 7 hex CreatePresetsDialog.cpp:533, and + "null" is a sentinel — both reserved.

+

· OFL shadowing is keyed by alias, not id Preset.cpp:3684-3714, and is already active in + validator context PresetBundle.cpp:2302 — which is what makes check #7 precise.

+
+
+
+ + +
+
§8 open decisions
+

Five calls that are yours to make

+

Everything else in the plan holds under any of these answers. marks the recommendation.

+ +
+
D1id format
+
Opaque deterministic mint OFq3xT9k — no registry, no races, fork-friendly; judges 2/2.
+
Mnemonic registry grammar <NS><FAM><SEQ> — readable ids, but someone allocates numbers forever.
+
D2multi-vendor brands
+
shared_catalog list — sanction authentic Bambu ids for byte-matching families (Snapmaker's Fiberon), low churn.
+
Hoist those families into OFL — cleaner long-term, more restructuring now.
+
D3demo presets
+
Mint ids for Benchy-style presets — simple, keeps the validator strict.
+
Teach the validator compatible_prints gating — more machinery for 3 presets.
+
D4the 10 live OFL duplicates
+
Rename-to-alias where it's truly the same family (with renamed_from) — restores shadowing.
+
Mint vendor ids everywhere — safer mechanically, more ids in the world.
+
D5where the rule doc lives
+
In-repo doc/developer-reference/filament_id.md — CI messages need a stable link.
+
Wiki-only — discoverable, but drifts from the checks that enforce it.
+
+ +
+ Suggested first step: land phase 0 (tooling + snapshot, zero profile changes). It is entirely additive, + makes every later PR mechanically checkable, and turns the 356-group backlog into a shrinking allowlist that CI + reports on every profile PR. +
+
+ +
+ + + + diff --git a/filament_id_plan.md b/filament_id_plan.md new file mode 100644 index 0000000000..7dc4b43d04 --- /dev/null +++ b/filament_id_plan.md @@ -0,0 +1,397 @@ +# filament_id: generation rule + system-profile fix plan + +Follow-up to PR #14459 (commit `c2e91cb8`, validator `-f` / `check_duplicate_filament_subtypes`). +Goal 1: a filament_id generation rule for all vendors. Goal 2: an error-pattern taxonomy and a +migration plan that removes every ambiguous filament_id, without touching Bambu (BBL) profiles. + +All numbers below are reproducible: a loader-faithful audit script re-derives the validator's +output **exactly** (1256/1256 printer-level errors, 356 logical collision groups, 30 vendors). +Every code claim was verified against source with `file:line` references. + +--- + +## 0. Executive summary + +- `filament_id` is a **material-family id**: one id per commercial product line, shared by all + of that material's per-printer/per-nozzle variants. Matching is always `(filament_id + + printer compatibility)`; the invariant from PR #14459 is *per printer preset, at most one + compatible instantiated filament preset per id*. +- Every modern device ecosystem funnels through this id — not just Bambu AMS: Qidi box, + Creality CFS, Klipper AFC/Happy Hare, Snapmaker all emit/consume `tray_info_idx` + (see §1). Several consumers match **globally, without printer scoping**, so two *different + materials* sharing one id is unsafe even across vendors. +- **Proposed rule (§3):** deterministic, script-minted ids — `OF` + 6 base62 chars from + `uuid5(vendor + family)`, declared **only on family-root (`@base`) presets**; variants inherit. + Nobody ever invents an id by hand; CI prints the expected id when one is missing. Existing + unambiguous ids are grandfathered and frozen; `GF*` (Bambu), `QD_*` (Qidi device protocol), + and `P<7-hex>` (user custom presets) are reserved namespaces that must never be minted into. + This was selected by an adversarial design/judge process over a registry-grammar alternative + and a structure-only alternative, then stress-tested; amendments from that stress test are + folded in below. +- **Migration (§5):** fresh-never-reused ids only, family-atomic, names never changed. This is + provably safe: user presets re-derive `filament_id` from their parent on every load + (`Preset.cpp:1658-1682`), 3mf resolves presets by name+config (`Preset.cpp:2490-2576`), and + Klipper/Creality/Snapmaker derive tray ids at runtime. One PR per vendor; CI's `-f` scope + ratchets per vendor until tree-wide. + +--- + +## 1. How filament_id actually works (verified) + +### Consumers and scoping + +All device integrations converge on one pipeline: device/agent sets `tray_info_idx` → +`DevAmsTray.setting_id` → `Sidebar::build_filament_ams_list` (`Plater.cpp:3423-3493`) → +`PresetBundle::sync_ams_list` / `get_ams_cobox_infos` (`PresetBundle.cpp:3112-3308`) match it +against filament presets. + +| Ecosystem | Where the id comes from | Effect of changing a system id | +|---|---|---| +| BBL AMS | device-side (RFID / user tray setting), `DeviceManager.cpp:3823+` | breaks matching — **frozen by mandate** | +| Qidi box | built from device enums: `"QD_" + series + "_" + vendor + "_" + type_idx`, `QidiPrinterAgent.cpp:146-152`; needs an exactly-matching visible preset | breaks matching — **`QD_*` ids are a frozen device contract** | +| Creality CFS | runtime brand/type scoring returns current preset's id (`CrealityPrintAgent.cpp:46-118`) | invisible | +| Klipper (AFC / Happy Hare) | runtime `filament_id_by_type` (`MoonrakerPrinterAgent.cpp:808,936`) | invisible | +| Snapmaker | runtime color/vendor/type match (`SnapmakerPrinterAgent.cpp:22-64`) | invisible | + +Matching is printer-scoped (`is_compatible`) in the AMS sync paths and all printer agents — this +is what makes the per-printer invariant sufficient there. But several consumers match +**globally by id alone**, first match wins: + +- `get_filament_by_filament_id("")` — tray display name, `filament_is_support`, + `temperature_vitrification` warnings (`PresetBundle.cpp:690-733`; callers + `DevFilaBlackList.cpp:70`, `Plater.cpp:3453`, `SelectMachine.cpp:3560,4623`). The code + comment at `:695` states the assumption outright: an id maps to ONE material globally. +- `MachineObject::setting_id_to_type` (`DeviceManager.cpp:2538`), calibration-history name + lookup (`CaliHistoryDialog.cpp:62`), custom-filament cloud grouping (`Preset.cpp:2839`). +- The slicing pipeline itself: multi-nozzle filament grouping merges project filaments whose + `(filament_id, color)` match (`FilamentGroup.cpp:513-528` via `ToolOrdering.cpp:1164`). + +**Consequence:** within one printer, duplicate ids break AMS matching (silent first-wins, +`find_if` at `PresetBundle.cpp:3132/3233`; the AMS tray-edit dialog even *hides* the second +preset, `AMSMaterialsSetting.cpp:894-897`). Across vendors, the same id on *different +materials* feeds wrong name/type/vitrification data to the global consumers and can merge +different materials into one nozzle group. Same id on the *same* material (e.g. `GFL99` = +Generic PLA in 29 vendors) is comparatively benign — those attributes agree. + +### Identity machinery + +- **Effective id resolution** (`PresetBundle.cpp:4842-5080`): own `filament_id` key → vendor + `filament_id_maps[inherits]` (file order in the vendor index is load-bearing) → + OrcaFilamentLibrary base-bundle map. An instantiated system filament that resolves *no* id is + a hard load error that discards the whole vendor bundle (`:5072`, throw at `:5141-5147`) — + so "missing id" cannot ship; what looked like 26 id-less Flashforge presets actually resolve + to OFL's `OGFL99`/`OGFG99` through the base-bundle fallback. +- **Two family-identity systems exist**: `filament_id` (device matching) and `alias` (name + before `" @"`). OFL shadowing is keyed on **alias**: `update_library_profile_excluded_from` + (`Preset.cpp:3684-3714`) hides an OFL preset (empty `compatible_printers` = compatible with + everything, `Preset.cpp:837`) on printers claimed by a same-alias vendor preset. There is + **no id-based shadowing**. A vendor preset that tunes an OFL generic but renames it + re-exposes the OFL preset and creates a live duplicate. The rule below aligns the two + systems: one family = one alias = one id. +- **User-custom id space**: user-created filaments get `"P" + md5(name)[0:7]` (8 chars, + `CreatePresetsDialog.cpp:533`), or *reuse a system id* when the base name matches an existing + preset (`:510-528`). `"null"` is used as a sentinel. Root user presets persist their id + forever; inheriting user presets re-derive it on every load. + +## 2. The id landscape today + +**Bambu's grammar** (derived from all 1970 BBL instantiated presets; BBL is internally clean — +181 id definitions, 0 duplicates): + +- Classic `GF`: letter = family (A Bambu-PLA, B ABS/ASA, C PC, G PETG/PCTG, + L third-party+generic PLA, N PA/PPA, P PP/PE, R misc, S support, T PET/PPS, U TPU). + Numbers: 00-49 branded ascending, 50-59 fiber-filled, 60-70 partner block, **95-99 generic + tier descending** (99 = the family's plain generic). +- Brand partners `GF`: GFPM Polymaker, GFOT Overture, GFSNL SUNLU, GFNMK + Numakers. One id per product line; never per color, never per printer/nozzle/diameter. +- Structural rule: the id lives on the material's `@base`; every variant inherits it. +- Hardcoded in C++: `GFS00/GFS01` support check (`DeviceManager.cpp:4739`), per-family PA + defaults `GFU01/03/04` (`CalibUtils.cpp:54-75`) — `GF*` is Bambu's space, byte-frozen. + +**Everything else is ad-hoc, invented by individual contributors and imitated** (full history +in §7): OFL's `O`-prefix mirrors (`OGFA00`; introduced 2025-03-31, commit `8c4a65e3e1`), +Tiertime/Afinia `GFx##_##` per-printer-line suffixes, SeeMeCNC per-nozzle ids, LH `LHF_pla`, +LONGER 11-char pseudo-GF ids, Anycubic ids **with spaces** (`"GFPLA Silk"`), Prusa ids that are +entire preset names (36 chars), and mass copy-paste of `GFL99/GFB99/GFG99` onto everything +(Qidi alone stamped `GFB99` into **317 files** across all materials). The only guidance that +ever existed was "≤ 8 chars" — enforced for BBL only (`orca_extra_profile_check.py:292,320`), +and the (now removed) profile wiki's own examples *taught* id copy-pasting. + +**The damage, quantified** (audit reproduces validator 1256/1256): + +| Ledger | Count | +|---|---| +| Within-vendor logical collision groups (validator `-f`) | **356** across 30 vendors (1256 printer-level errors) | +| OFL×vendor same-id groups (validator blind spot) | 42 — of which **10 are live** (alias mismatch defeats shadowing); 32 already neutralized by alias shadowing | +| OFL-internal: one id, several materials, visible on every printer | **16 ids** (e.g. `OEPLAB00` = 14 distinct Elegoo PLA products; `OGFL06` = eSUN PLA-Marble *and* Fiberon PETG-ESD) | +| Cross-vendor semantic collisions (same id, different materials) | **67 ids** (e.g. `GFU99` also covers a PEBA; Anycubic minted `GFL95` "Matte" ≠ Bambu `GFL95` "High Speed") | + +Worst vendors by groups: Qidi 97, Flashforge 69, Elegoo 37, Prusa 31, Cubicon 17, +Anycubic 14, InfiMech 14, Snapmaker 11, Artillery 8, Creality 8, FlyingBear 8. + +--- + +## 3. The rule (proposal) + +Selected by a 3-design / 2-judge adversarial process (deterministic-mint won over +registry-grammar and structure-only on ambiguity-prevention, contributor simplicity, and +enforceability), then hardened by three adversarial review passes. This section is written as +the future authoring doc. + +### 3.1 The one-question test + +> **Would a user consider this a different spool product than anything already in the tree?** +> Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or +> a second selectable diameter → **new family, new id**. The same spool tuned for another +> printer or nozzle → **join the existing family** (inherit its `@base`, no id key). Tuning a +> generic material → **join the OFL family** (inherit the `Generic X @System` preset, keep the +> `Generic X` base name, add no id). + +Same id / new id at a glance: + +| Situation | id | +|---|---| +| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | +| Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | +| Color | never a new id | +| Second diameter selectable on the same printer (1.75 + 2.85) | sibling family, new id | +| "High-speed" tuned for a *different printer model* | same id (it's a printer variant) | +| "High-speed" selectable *alongside* the normal preset on one printer | new id (it's a product line) | + +### 3.2 Structure + +1. **One family = one root.** Each material family has root preset(s) (`instantiation:false`, + typically ` @base`) and only roots carry the `filament_id` key. Instantiated + variants inherit a root and never write `filament_id`. (A family MAY have several roots — + e.g. Qidi's per-series bases — but they must all declare the *identical* id.) +2. **Family identity is declared, not name-derived.** Default: the family name is the + instantiated presets' base name (name with `/\s?@.*$/` stripped — note *optional* space, + because `Afinia PLA@HS`-style names exist). When vendor naming makes that ambiguous, the + root declares an explicit `"filament_family"` key that overrides derivation; tooling errors + loudly when a root's derived family differs from its children's. +3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — that *is* the + PR #14459 invariant, enforced by the validator. +4. **Generics belong to OFL.** A vendor tuning `Generic PLA` inherits + `Generic PLA @System`, keeps the `Generic PLA` base name/alias (so alias shadowing excludes + the OFL preset on those printers, `Preset.cpp:3684`), sets non-empty `compatible_printers`, + and writes no id. A vendor-*branded* filament never rides a generic family id. +5. **Ids are immutable once shipped.** Renaming a family does not change its id (use + `renamed_from`). No id is ever recycled for a different material — stale ids live on in + user root presets and old 3mfs, and a recycled id would silently match the wrong material. + +### 3.3 Minting — nobody invents ids + +New family ids are computed, exactly like the `setting_id` precedent +(`scripts/assign_vendor_setting_ids.py` / `Slic3r::generate_preset_setting_id`): + +``` +filament_id = "OF" + base62_6( uuid5( NAMESPACE, "filament_family//" ) ) +``` + +8 chars total (satisfies the AMS length limit), same base62 derivation and a dedicated +namespace constant. On the astronomically rare collision with an existing id, the minter salts +the input (`.../1`, `/2`, …) until free; the result is simply frozen in the file. + +- **Script path:** author commits the family with *no id anywhere*; + `python scripts/assign_filament_ids.py` inserts the minted id into the root(s). Idempotent; + never rewrites a valid existing id. A `--mint "/"` one-shot prints the id + without touching the tree. +- **No-script path:** CI fails with the exact line to paste: + `family "MyBrand PLA" (vendor X) needs filament_id "OFq3xT9k" in "MyBrand PLA @base.json"`. + +**Reserved namespaces — never mint or hand-write into:** + +| Space | Owner | Status | +|---|---|---| +| `GF*` | Bambu AMS/RFID catalog | byte-copies of authentic Bambu ids only, and only where a checked-in `shared_catalog` list sanctions the family (BBL bundle; OFL mirrors; byte-matching families in other vendors, e.g. Snapmaker's Fiberon) | +| `QD_*` | Qidi device protocol | frozen; Qidi-only; exempt from family-shape checks | +| `P[0-9A-Fa-f]{7}`, `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp:533`) | never emitted for system presets (reserve case-insensitively) | +| everything already shipped | grandfather snapshot | frozen as-is (§5) | + +Trade-off accepted: minted ids are opaque (`OFq3xT9k` carries no "PLA" mnemonic — the family +name in the same file provides that). The judges preferred this over a Bambu-style extended +grammar because it removes the "who allocates the next number" ceremony, cannot race between +concurrent PRs, and needs no registry maintenance. If mnemonic ids are strongly preferred, the +runner-up design (`` + registry file) is documented in the workflow +records; everything else in this plan is unchanged under either format. + +### 3.4 What CI enforces (all vendors, ratcheted) + +Extend `scripts/orca_extra_profile_check.py` (it imports the same mint function; setting_id +precedent) and the C++ validator: + +1. **Format**: an id is valid iff `OF[0-9A-Za-z]{6}` **or** in the grandfather snapshot **or** + vendor==BBL **or** `QD_*` in Qidi. No whitespace/ASCII/length checks needed outside the + grandfather set — new ids are minted, and the grandfather set is closed. +2. **Uniqueness ratchet**: id→families multimap computed tree-wide; no id may acquire a family + claim not recorded in the snapshot (snapshot legalizes today's benign `GFL99`-style sharing; + new multi-claims are errors; `shared_catalog` entries are the sanctioned exception). +3. **Structure ratchet**: `filament_id` key only on roots; every instantiated filament must + resolve an effective id via the simulated loader walk; all members of one family resolve the + same id; **a preset may not declare an id different from its inherited effective id** (the + `Generic SBS` drift bug class). Pre-existing violations are snapshot-frozen; new ones error. +4. **Mint conformance**: an id new relative to the snapshot must equal the mint (or a salt + iteration); the error message prints the expected value. +5. **Stability**: an `(id, family)` pair on main may not change or vanish, *following + `renamed_from` chains* (so an honest rename passes), unless listed in a maintainer-gated + migrations file. Retired ids go to an append-only `retired_ids` ledger; a retired id may + never be defined again for any family. +6. **Alias hygiene for tuned generics**: a preset inheriting an OFL `Generic * @System` (with + no own id anywhere in its vendor chain) must keep the OFL base name and have non-empty + `compatible_printers` — error message names the rename as the cause. +7. **C++ validator**: extend `check_duplicate_filament_subtypes` (`PresetBundle.cpp:5654`) to + include OFL presets in every vendor's per-printer check, *minus* alias-excluded ones — + `m_excluded_from` is already populated in the validator context (`update_system_maps` at + `PresetBundle.cpp:2302`), so the 32 shadowed pairs won't false-positive and the 10 live ones + will be caught. Run `-f` per vendor in CI, widening as vendors are cleaned (§5). +8. **Runtime backstop** (one-line change): log a warning when the AMS-sync `find_if` + (`PresetBundle.cpp:3132/3233`) finds 2+ compatible presets for one id — the only layer that + can see side-loaded/forked bundles. + +--- + +## 4. Error-pattern taxonomy (goal 2) — with counts and fixes + +356 groups were classified by 37 agents reading the actual profiles, spot-checked +independently (1 substantive disagreement in 14 samples). Counts below fold the spot-check +corrections in. **Fix rule for all patterns: replacement id values are always freshly minted +`OF*`; the "which preset keeps the id" decision uses the precedence _Bambu-catalog material > +OFL generic family > family that historically introduced the id_.** + +| # | Pattern | Groups | Fix | +|---|---|---|---| +| P1 | `copy_paste_id` — different materials share an id verbatim (task's error 1). Qidi's `GFB99`×317-files epidemic; Anycubic's three id "eras"; Peopoly `GFSL99` on ABS | ~167 | impostor families get minted ids on their roots; owner keeps the id | +| P2 | `wrong_inherits` / id-less product lines — a variant inherits another family's root (PR #14459's Panchroma case) or a product line never got its own root (Prusa HF; Flashforge's ~140-preset `FFG01` umbrella) | ~87 | create per-family roots with minted ids; re-point `inherits`; **never** delete the id-less shadow/base files — convert them (they carry real config: Flashforge `fdm_filament_pla` differs materially from OFL's) | +| P3 | `generic_family_overlap` — vendor-*branded* preset rides a generic family id via inheritance (task's error 2, generalized). Includes the 10 live OFL duplicates | ~68 | branded presets get minted family ids; true generic tunings instead adopt the OFL family *with matching alias* (rule 3.2.4); Sovol is the elegant case — just **delete** its wrong own-id lines and let OFL ids flow through inheritance | +| P4 | `overclaim_compat` — same material, broader variant claims a printer that a dedicated variant covers (the BBL H2DP pattern fixed in #14459) | ~24 | trim `compatible_printers` of the broader preset (Dremel, Cubicon `@base`s that are also instantiated, Wanhao France Bowden/Direct) | +| P5 | template-carried id — id declared on a shared settings template (`fdm_filament_*`, `fdm_filament_common`) so every family inheriting it collapses (Prusa, Ginger Additive, Snapmaker TPU base) | inside P1/P2 counts | move ids off templates onto family roots | +| P6 | OFL-internal collisions — 16 ids spanning several materials, visible on every printer (Elegoo blocks, Elas `OGFA00`×3, `OGFL06` polymer mismatch, `Generic PETG HF/PETG-CF @System` missing own ids) | 16 ids | fix inside OFL first (it's the base bundle every vendor resolves against) | +| P7 | alias-mismatch re-exposure — vendor tunes a generic under a different name, OFL preset resurfaces (Snapmaker `PolyTerra J1 PLA` vs OFL `PolyTerra PLA`) | 10 live | rename-to-alias where it's genuinely the same family, else mint | +| P8 | per-variant ids — no ambiguity, but family semantics broken: every variant has its own id (Prusa name-ids, SeeMeCNC nozzle suffixes, Afinia/Tiertime `_##`, iQ) so device matching can't identify the material across nozzles | ~210 presets | grandfather (they're unambiguous); converge opportunistically; document as anti-pattern | +| P9 | format violations — spaces (`"GFPLA Silk"`), >8 chars (LONGER, SeeMeCNC, LH), GF-shaped inventions (Anycubic `GFL93-97`, CoLiDo `GFA99`) | in the above | fixed as a byproduct of re-minting; snapshot freezes the unambiguous rest | +| P10 | cross-vendor semantic collisions — 67 ids meaning different materials in different vendors (dangerous via the global unscoped consumers, §1) | 67 ids | mostly eliminated by P1-P3 re-minting; the remaining same-material generic sharing is legalized by the snapshot | +| P11 | deliberate coexistence & data hygiene — Snapmaker "Benchy" demo presets (gated by `compatible_prints`, which the id check can't see) and a self-collision from duplicate `compatible_printers` entries | 4 | give demo presets own minted ids; dedupe list entries; add a lint for duplicate array entries | + +New patterns beyond the two in the task (goal 2.3): P5-P11. + +--- + +## 5. Migration plan + +### Safety foundation (verified, §1/§7) + +Safe: fresh never-used ids, family-consistent; trims of `compatible_printers`; inherits +re-pointing; OFL id changes (children re-derive). Unsafe: touching `BBL`/`QD_*`; recycling or +swapping ids; splitting a family's id; **deleting or renaming preset names** (user presets +whose `inherits` no longer resolves are dropped at load, `Preset.cpp:1687-1691`) — if a name +must go, `renamed_from` coverage is mandatory. + +### Phases + +0. **Land the rule + tooling first** (no profile changes): `scripts/assign_filament_ids.py` + (mint + insert + `--mint`), the extended `orca_extra_profile_check.py` checks in + snapshot-ratchet mode, the C++ validator OFL cross-check, the runtime warning, the rule doc. + Generate `filament_id_snapshot.json` (id→families multimap over main) and empty + `retired_ids.json` — both checked in. +1. **OFL first** (it's the base bundle every vendor resolves against): fix the 16 internal + collisions (Elas/eSUN/DREMC copy-pastes get mints; `Generic PETG HF/PETG-CF/PP-CF/PP-GF/ + PE-CF/PLA Matte @System` get their own family roots+ids instead of collapsing into their + parent generic), keeping every current effective id that is unambiguous. +2. **Per-vendor PRs, worst-first**: Qidi → Flashforge → Elegoo → Prusa → Cubicon → Anycubic → + InfiMech → Snapmaker → the long tail (22 vendors, mostly 1-8 one-line fixes). Each PR flips + that vendor into CI's `-f` scope (`check_profiles.yml` currently `-v BBL -f`; append + vendors as they reach zero; when all are in, drop `-v` and run tree-wide). +3. **Delete the ratchet allowlists** once tree-wide zero holds; checks become hard rules for + everything born after the snapshot. + +### Migration-script contract (from the adversarial pass — important) + +- Consumes from the classification only: group membership, fix category, keep-id precedence, + inherits-repoint targets. **All replacement id values are recomputed via the mint** — id + literals in analysis notes (e.g. `GFA00_02`, `GFS98`, `GFG96`) are legacy-culture artifacts + and are ignored with a warning; assert no emitted id matches `^(GF|QD_|P[0-9A-Fa-f]{7}$)`. +- **Family-atomic**: re-idding any preset re-ids every same-family sibling in the same commit, + even siblings outside the collision group (FlyingBear `GFB99 @S1` vs `@Ghost7`); Prusa is + family-atomic per material (its HF/CF families span frozen `_N`-suffix ids — freeze what's + unambiguous, mint once per family for the colliding members). +- **Diff bound**: a vendor migration PR may only touch collision-group files + same-family + siblings of re-idded presets; every id that is per-printer-unambiguous today stays + byte-identical. +- **Config-equivalence gate**: dump every instantiated preset's flattened effective config on + main and on the PR head; the diff must be empty except `filament_id`/`inherits`/ + `compatible_printers` edits the plan prescribes (this is what makes the Flashforge + shadow-file conversions safe: each id-less `fdm_filament_*` shadow becomes a named vendor + family root carrying its config byte-for-byte, children re-pointed, then the shadow name + retired). +- **No deletions**: redundant presets (Flashforge's byte-identical `Generic X`/`Flashforge X` + twins) are re-minted, not dropped; consolidation with `renamed_from` is a separate, + human-reviewed cleanup. +- Expected user impact: none for inheriting user presets, 3mfs, Klipper/Creality/Snapmaker + sync. Residue: user *root* presets that copied an old system id keep it forever + (AMS auto-match falls back to generic-by-type — low severity, unavoidable from the repo). + +### Vendor-specific notes (from classification) + +- **Qidi (97)**: three profile generations. `QD_*` generics are correct and frozen; the fix is + the brand families (Bambu/HATCHBOX/Overture/PolyLite/Tinmorry/QIDI-brand) that all carry + `GFB99/GFG99/GFL99`. Multi-root families are the norm (`...@Q2-Series` / `@Q2C-Series` / + `@X-Max 4-Series` bases) — same mint lands in every series root of one family. +- **Flashforge (69)**: two umbrellas (`FFG01` ~140 presets; `GFB99/GFG99/GFL99` G3U-era) + + OFL-riding branded presets + shadow-file conversion (above). +- **Elegoo (37)**: single mistake — every commercial variant inherits the material-class + `@base` (`EB00`); mint one id per product line (Silk/Matte/PRO/Rapid/…), roots exist. +- **Prusa (31)**: HF product lines need their own roots; ids move off `fdm_filament_*` + templates; frozen name-shaped and `_N` ids stay. +- **Sovol (6)**: delete the wrong own-id lines; correct ids flow from OFL by inheritance. +- **Cubicon (17)**: `@base` presets are themselves instantiated + over-claiming; 9 file edits. + +--- + +## 6. Concrete work items (PR-sized) + +1. `scripts/assign_filament_ids.py` + mint function + tests (incl. the 14-group regression set + from the adversarial pass). *(new)* +2. `orca_extra_profile_check.py`: checks §3.4-1..6 in ratchet mode + snapshot/ledger files; + drop the BBL/OFL-only gate at `:292` and the OFL skip at `:601`. *(extend)* +3. C++ validator: OFL-aware `check_duplicate_filament_subtypes`; runtime ambiguity warning at + the two `find_if` sites. *(small)* +4. Rule documentation: `doc/developer-reference/filament_id.md` (recreate the path; wiki + cross-link) + profile-PR template checkbox ("new materials: no filament_id key anywhere; CI + prints the minted id"). *(new)* +5. OFL migration PR (phase 1). +6. Per-vendor migration PRs (phase 2), each widening CI `-f` scope. + +The audit tooling from this analysis (loader-faithful resolver; reproduces the validator +1256/1256) is in this session's scratchpad (`audit_filament_ids.py`) and is the natural seed +for items 1-2. + +## 7. Evidence & methodology + +- Validator ground truth: `OrcaSlicer_profile_validator -f` tree-wide → 1256 errors; audit + script reproduces exactly (356 logical groups after dedup by (vendor, id, preset-set)). +- Code analysis: 5 parallel agents over runtime consumers, persistence/migration surface, + loader semantics, Bambu grammar, and convention history — all claims carry `file:line`. +- Classification: 37 agents (one per vendor chunk) reading actual profile JSONs; 14-sample + independent re-derivation found 1 substantive error (a Flashforge group mislabeled + `missing_id`; corrected — the loader resolves those ids from OFL). +- Design: 3 independent designs → 2 judges (both chose the deterministic mint; scores 58/50/56 + and 60/54/56) → 3 adversarial attackers (35 scenarios; every `breaks` finding is folded into + §3.2-3.4/§5 as an amendment: declared families, multi-root support, ratchet-not-absolute + checks, no-deletion rule, shadow-file conversion, classification-id-literal quarantine, + diameter siblings, case-insensitive P-hex reservation, fork guidance). +- Key history: `OGF*` born 2025-03-31 (`8c4a65e3e1`, no PR); `_##` suffix born PR #9739; + 8-char check born PR #9574; wiki (with the id-copy-paste example) removed 2025-11-24 + (`f0d79b99eb`). + +## 8. Open decisions for maintainers + +1. **Id format**: opaque deterministic `OF*` mint (recommended, judges 2/2) vs mnemonic + registry grammar (runner-up). Everything else in the plan is format-agnostic. +2. **Multi-vendor brands** (Snapmaker ships Fiberon with authentic `GF*` ids): sanction via + `shared_catalog` (recommended, low churn) vs hoisting those families into OFL. +3. **Benchy-style demo presets**: mint ids per demo preset (recommended) vs teaching the + validator `compatible_prints` gating. +4. **Alias alignment**: fix the 10 live alias-mismatch OFL duplicates by rename-to-alias + (better long-term, needs `renamed_from`) vs minting vendor ids (safer, more ids). +5. **Where the rule doc lives**: in-repo `doc/` (recommended — CI messages need a stable link) + vs wiki-only. diff --git a/task.md b/task.md new file mode 100644 index 0000000000..b563759767 --- /dev/null +++ b/task.md @@ -0,0 +1,13 @@ +check commit c2e91cb86ce013dc0486419f21620975c220c3be and it's related PR. +currently most of the system profiles didn't follow the Bambu's profiles rule of filemant id. +we want to come up a rule for filament id generation for all vendors and a fixing plan for existing system profiles so that there is no ambiguous filament ids for any given printer. + +We have two major goals: +### goal 1 +figure out a strategy or filament id generation rule. we want to follow bambu's rule but they only care about their own profiles while we need to consider generic. and the filament id generation rule should be easy to understand and maintain for not just us but other profiles creators too. either a determistic rule by using script like setting_id rule. or a documented rule so developers can refer when manually creating profiles. and figure out a way to fix migrate/fix existing filament ids in current profiles. note: bambu profiles shouldn't be touch to maintain interoperbitly with their AMS. + +### goal 2 +in existing system profiles, the ambiguous can caused by different error patterns: +1. legit sub type don't have unique filament id due to copy-paste when creating profiles. in this case, we should assign filament unique filament id to it. +2. generic and specific filament with legit same filament id adds same printer into it's compatible_printers. in this case we should remove the printer from the generic filament's compatible_printers. +3. we need to figure out more error patterns and figure out the fix strategy From 1482fb81fdf7d22495767e16ce44f1501b4a29c3 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 2 Jul 2026 23:17:15 +0800 Subject: [PATCH 002/164] filament_id: deterministic mint rule, sanctioned-state ledger, validator hardening Phase 0 of the filament_id cleanup (filament_id_plan.md): - scripts/assign_filament_ids.py: mint OF-prefixed 8-char ids as uuid5(FILAMENT_ID_NAMESPACE, filament_family//) in the base62 derivation of the setting_id precedent; loader-faithful effective-id resolver (vendor inherits chain + OrcaFilamentLibrary fallback); CLI: default assign run (idempotent no-op on a fully-idded tree), --mint Vendor/Family, --update-snapshot, --check. - scripts/filament_id_snapshot.json: the sanctioned-state ledger (1092 ids, 1965 family claims over the current tree). The tree must equal it exactly, both directions, so every id/claim change lands as a reviewable diff; a PR snapshot diff is the maintainer gate. scripts/retired_filament_ids.json is the append-only retirement ledger; --update-snapshot refuses to resurrect retired ids and to sanction new reserved-namespace claims (GF*/QD_*/P-hex/ null) for non-owner vendors without --allow-shared-catalog. - orca_extra_profile_check.py: runs check_filament_ids() tree-wide (format, snapshot equality, mint conformance, retired reuse, alias hygiene for tuned OFL generics, reserved namespaces, structure ratchet). The pre-existing check_filament_id() 8-char rule stays BBL/OFL-scoped: grandfathered longer ids exist elsewhere (e.g. Prusa's 36-char name ids) and are frozen via the snapshot instead. - PresetBundle::check_duplicate_filament_subtypes now includes OrcaFilamentLibrary presets in every vendor's per-printer duplicate check; alias-shadowed library presets are excluded via the existing m_excluded_from population (verified live in the validator load path), so only genuinely visible duplicates are flagged. AMS tray-id resolution logs a warning when a filament_id matches 2+ compatible presets (pick unchanged). - doc/developer-reference/filament_id.md: the authoring rule; PR template gains a no-hand-written-ids checkbox. - scripts/tests/test_filament_id.py: 46 stdlib-unittest tests (mint vectors, resolver semantics, every check firing/silent, ledger round-trips, byte preservation, real-tree smoke). Verified: python -m unittest discover -s scripts/tests (46 OK); python scripts/orca_extra_profile_check.py exit 0 on the unmigrated tree; assign run is a no-op; rebuilt OrcaSlicer_profile_validator -l 2 exit 0; extended -f is strictly additive vs baseline (every baseline group preserved, all new groups involve library presets, alias exclusion proven by BBL-mirror absence on BBL printers). --- .github/pull_request_template.md | 2 + doc/developer-reference/filament_id.md | 169 + scripts/assign_filament_ids.py | 851 +++ scripts/filament_id_snapshot.json | 7811 ++++++++++++++++++++++++ scripts/orca_extra_profile_check.py | 12 + scripts/retired_filament_ids.json | 3 + scripts/tests/__init__.py | 0 scripts/tests/test_filament_id.py | 669 ++ src/libslic3r/PresetBundle.cpp | 49 +- 9 files changed, 9561 insertions(+), 5 deletions(-) create mode 100644 doc/developer-reference/filament_id.md create mode 100644 scripts/assign_filament_ids.py create mode 100644 scripts/filament_id_snapshot.json create mode 100644 scripts/retired_filament_ids.json create mode 100644 scripts/tests/__init__.py create mode 100644 scripts/tests/test_filament_id.py diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 575b8f17fe..8b82f51730 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -20,6 +20,8 @@ > Please describe the tests that you have conducted to verify the changes made in this PR. --> +- [ ] New filament/material profiles: I wrote **no** `filament_id` key by hand — I ran `python scripts/assign_filament_ids.py` and `--update-snapshot` and committed both diffs (see `doc/developer-reference/filament_id.md`) + diff --git a/doc/developer-reference/filament_id.md b/doc/developer-reference/filament_id.md new file mode 100644 index 0000000000..a45268b6aa --- /dev/null +++ b/doc/developer-reference/filament_id.md @@ -0,0 +1,169 @@ +# Filament IDs (`filament_id`) + +`filament_id` identifies a **material family**: one commercial product line = one id, shared by +all of that material's per-printer / per-nozzle variants. Devices use it to match a physical +spool or tray to a filament preset. It is never per-color, per-printer, per-nozzle, or +per-preset (per-preset identity is `setting_id`). + +This page is the rule for authoring `filament_id` in system profiles +(`resources/profiles/**`). CI enforces everything below; the short version is: + +> [!IMPORTANT] +> **Never write a `filament_id` value by hand.** New families get their id from +> `python scripts/assign_filament_ids.py`; existing families already have one — inherit it. + +## Who consumes the id + +Every device integration funnels a tray material id (`tray_info_idx`) through the same +matching pipeline (`PresetBundle::sync_ams_list` and friends): + +| Ecosystem | Where the id comes from | +| --- | --- | +| Bambu AMS | device side (RFID / user tray setting) — the `GF*` catalog | +| Qidi box | built from device enums (`QD_*`); needs an exactly matching visible preset | +| Creality CFS | runtime brand/type scoring returns the current preset's id | +| Klipper (AFC / Happy Hare) | runtime lookup by filament type | +| Snapmaker | runtime color/vendor/type match | + +Tray-to-preset matching is printer-scoped, but **several consumers match globally by id alone, +first hit wins**: tray display names, `filament_is_support`, vitrification warnings, and +multi-nozzle filament grouping in the slicing pipeline. Two *different* materials sharing one +id feed wrong data to those consumers even when the presets live in different vendors — so +cross-material id sharing is never safe. Within one printer, duplicate ids silently break AMS +matching (first match wins, the tray-edit dialog hides the second preset); the profile +validator's `-f` check rejects this. + +## Do I need a new id? The one-question test + +> **Would a user consider this a different spool product than anything already in the tree?** + +Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or a +second selectable diameter → **new family, new id**. The same spool tuned for another printer +or nozzle → **join the existing family** (inherit its `@base`, write no id key). Tuning a +generic material → **join the OrcaFilamentLibrary family** (inherit `Generic X @System`, keep +the `Generic X` base name, write no id key). + +| Situation | id | +| --- | --- | +| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | +| Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | +| Color | never a new id | +| Second diameter selectable on the same printer (1.75 + 2.85) | sibling family, new id | +| "High-speed" tuned for a *different printer model* | same id (it is a printer variant) | +| "High-speed" selectable *alongside* the normal preset on one printer | new id (it is a product line) | + +## Structure rules + +1. **Only family roots carry the key.** Root presets (any preset *not* marked + `"instantiation": "true"`, typically ` @base` with `"instantiation": "false"`) + declare `filament_id`; instantiated variants inherit a root and never + write the key. A family may have several roots (e.g. per-series bases) — all of them must + declare the *identical* id. +2. **The family name is the base name**: the preset name with everything from the first + (optionally space-preceded) `@` stripped. `MyBrand PLA @Orca 3D Fuse1` and `MyBrand PLA@HS` + both belong to family `MyBrand PLA`. +3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — per printer + preset, at most one compatible instantiated preset per id. The C++ validator (`-f`) + enforces this. +4. **Generics belong to OrcaFilamentLibrary.** A vendor tuning a generic material inherits + `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library + preset on your printers), sets a non-empty `compatible_printers`, and writes no id key. + A vendor-*branded* filament never rides a generic family id. +5. **Ids are immutable once shipped.** Renaming a family does not change its id — use + `renamed_from`. A shipped id is never recycled for a different material: old ids live on in + user presets and 3mf files and a recycled id would silently match the wrong material. + +## Minting — nobody invents ids + +New ids are deterministic, computed exactly like the `setting_id` precedent +(`scripts/assign_vendor_setting_ids.py`): + +```text +FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") + = c4d3ff49-4c32-5534-a3e3-00894157ab97 +filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, "filament_family//") ) +``` + +`base62_6` is the low 6 base62 digits (alphabet `0-9A-Za-z`) of the UUID taken as a big-endian +integer, most-significant digit first — 8 chars total, within the AMS length limit. `` +is the vendor bundle name (the stem of the vendor index json, e.g. `Qidi`, +`OrcaFilamentLibrary`); `` is the family base name. On the rare collision with any +existing or retired id, the minter salts the input (`…/1`, `…/2`, …) until free and the result +is frozen in the file. Example: family `MyBrand PLA` in vendor `Orca 3D` mints `OFvCEY5V`. + +Workflow for a new family: + +```bash +# 1. Author the family with NO filament_id key anywhere. +python scripts/assign_filament_ids.py # 2. mint + insert ids into the family root(s) +python scripts/assign_filament_ids.py --update-snapshot # 3. record the new claims in the ledger +python scripts/assign_filament_ids.py --check # 4. verify — the same checks CI runs +# 5. Commit the profile edits together with scripts/filament_id_snapshot.json. +``` + +`--mint "Vendor/Family"` prints the id for one family without touching anything. The default +run is idempotent and never rewrites a valid existing id. + +If you skip the tooling, CI fails and prints the remedy: the expected id for your family, and +the instruction to run `python scripts/assign_filament_ids.py --update-snapshot` and commit +the resulting diff. + +## Reserved namespaces — never mint or hand-write into + +| Space | Owner | Rule | +| --- | --- | --- | +| `GF*` | Bambu AMS/RFID catalog | BBL vendor only; byte-copies elsewhere only where the snapshot already sanctions them | +| `QD_*` | Qidi device protocol | frozen device contract; Qidi vendor only | +| `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | +| every already-shipped id | grandfather snapshot | frozen as-is; new claims need maintainer sign-off | +| every retired id | `scripts/retired_filament_ids.json` | never used again, for anything | + +## How CI enforces this + +Profile CI (`check_profiles.yml` → `scripts/orca_extra_profile_check.py`) runs +`check_filament_ids()` tree-wide. Its ground truth is +**`scripts/filament_id_snapshot.json` — the sanctioned state**: the id state derived from the +tree must equal the snapshot exactly, in both directions. Any change to the id landscape +therefore surfaces as a diff to that file, and **that snapshot diff is what maintainers review +and gate in a PR**. Never edit the snapshot by hand — `--update-snapshot` regenerates it +deterministically (running it twice changes nothing). + +The checks, in brief: + +- **Format** — every id is either in the snapshot, `OF` + 6 base62 chars, BBL's, or Qidi `QD_*`. +- **Snapshot equality** — tree claims == snapshot claims, both directions. +- **Mint conformance** — a non-grandfathered `OF*` claim must equal the mint (or a salt + iteration) of its `(vendor, family)`; the error prints the expected id. +- **Retired reuse** — any tree id present in `scripts/retired_filament_ids.json` is an error. + Ids that fully vanish from the tree are appended there by `--update-snapshot`; the file is + **append-only**. +- **Alias hygiene** — a tuned generic must keep the library preset's base name and a non-empty + `compatible_printers` (structure rule 4); the error names the rename as the cause. +- **Reserved namespaces** — `GF*` outside BBL, `QD_*` outside Qidi, `P<7-hex>` or `null` + anywhere, unless that exact claim is grandfathered in the snapshot. +- **Structure** — no `filament_id` key on instantiated presets; no declared-vs-inherited id + drift; every instantiated system filament must resolve an effective id through its + `inherits` chain (an id-less one is a hard load error in C++ that discards the whole vendor + bundle). + +Sharing a **reserved-catalog** id with a new family or vendor (e.g. shipping a Bambu-cataloged +product under another vendor with its authentic `GF*` id) is refused by `--update-snapshot` +unless you pass `--allow-shared-catalog` — and it still lands in the snapshot diff for +maintainer review. Any other new sharing of an existing id is caught by the mint-conformance +check instead. + +## FAQ + +- **A new color of an existing product?** Never a new id — colors are not families. +- **A second diameter (1.75 mm and 2.85 mm) of the same product?** A sibling family with its + own id: two diameters are separately selectable spool products. +- **A high-speed tune of an existing material for another printer model?** Same family: + inherit the family's root, write no id key. +- **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the + `Generic PLA` base name, set `compatible_printers`, write no id key. +- **I need to rename a family.** Keep the id, add `renamed_from`. Ids never change. +- **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then + `--update-snapshot`, and commit both diffs. Do not type an id by hand. + +For general profile authoring, see the profile development guide on the +[OrcaSlicer wiki](https://www.orcaslicer.com/wiki). diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py new file mode 100644 index 0000000000..8100ecb880 --- /dev/null +++ b/scripts/assign_filament_ids.py @@ -0,0 +1,851 @@ +#!/usr/bin/env python3 +""" +Mint deterministic filament_id values for OrcaSlicer system filament families and +validate the tree against the sanctioned-state ledger. + +Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan.md): + * filament_id is a MATERIAL-FAMILY id: one commercial product line = one id, + shared by all of that material's per-printer/per-nozzle variants. The key is + declared only on family ROOT presets (instantiation != "true"); instantiated + variants inherit it through `inherits` and never write the key themselves. + * New ids are a pure function of the family's identity: + filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, + "filament_family//") ) + where is the vendor bundle name (stem of the vendor index json) and + is the family name = preset base name (name with /\\s?@.*$/ stripped). + 8 chars total, which satisfies the AMS length limit. Nobody invents ids by + hand; on the astronomically rare collision with any existing or retired id the + input is salted ("/1", "/2", ...) until free and the result is frozen in file. + * Reserved id spaces that are never minted into or altered: + - GF* Bambu AMS/RFID catalog (vendor BBL untouchable) + - QD_* Qidi device protocol + - P + 7 hex chars (case-insensitive) and the literal "null" + user-custom presets (CreatePresetsDialog.cpp) + - every already-shipped id, grandfathered via scripts/filament_id_snapshot.json + * scripts/filament_id_snapshot.json is the sanctioned-state ledger: it must + exactly equal the tree-derived state at all times, so any id/claim change shows + up as a reviewable diff to that file (the maintainer gate). Ids that fully + vanish from the tree are appended to scripts/retired_filament_ids.json; a + retired id may never be used again for anything. + +The effective-id resolution below is loader-faithful (PresetBundle.cpp +load_vendor_configs_from_json): own filament_id key, else walk `inherits` within +the vendor map, with OrcaFilamentLibrary base-bundle fallback; once a chain enters +OFL it stays in OFL; a vendor chain that dead-ends id-less retries its direct +parent in the OFL map. + +Run from anywhere: python3 scripts/assign_filament_ids.py + (default) mint + insert ids for id-less families; idempotent, never + rewrites a valid existing id; a no-op on a fully-idded tree + --mint "V/Family" print the id that would be minted; touches nothing + --update-snapshot regenerate the snapshot from the tree; retire vanished ids + --check run the validation checks (also run by CI through + orca_extra_profile_check.py); exit nonzero on errors +""" + +import argparse +import json +import os +import re +import sys +import uuid + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from assign_vendor_setting_ids import ALPHABET, NAMESPACE # noqa: E402 + +# Dedicated namespace for filament_id, derived from the setting_id namespace baked +# into both Python and C++ (assign_vendor_setting_ids.NAMESPACE). Never change it. +# FILAMENT_ID_NAMESPACE == UUID("c4d3ff49-4c32-5534-a3e3-00894157ab97") +FILAMENT_ID_NAMESPACE = uuid.uuid5(NAMESPACE, "filament_id") +FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total + +SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) +PROFILES_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "resources", "profiles")) +SNAPSHOT_PATH = os.path.join(SCRIPTS_DIR, "filament_id_snapshot.json") +RETIRED_PATH = os.path.join(SCRIPTS_DIR, "retired_filament_ids.json") + +OFL = "OrcaFilamentLibrary" + +OF_ID_RE = re.compile(r"^OF[0-9A-Za-z]{6}$") +# User-custom id space minted by CreatePresetsDialog.cpp ("P" + md5(name)[0:7]); +# reserved case-insensitively, together with its "null" sentinel. +USER_CUSTOM_ID_RE = re.compile(r"^P[0-9A-Fa-f]{7}$", re.IGNORECASE) +# Family name = preset base name: strip the first "@..." suffix. The space before +# "@" is optional because names like "Afinia PLA@HS" exist. +BASE_NAME_RE = re.compile(r"\s?@.*$") +# OFL generic presets relevant for alias hygiene (check 5). +OFL_GENERIC_RE = re.compile(r"^Generic .* @System$") +# Salt iterations accepted by the mint-conformance check (check 3). +MAX_CHECK_SALT = 8 + +UPDATE_HINT = 'run "python scripts/assign_filament_ids.py --update-snapshot" and commit the diff for maintainer review' + + +# Same output helpers/format as orca_extra_profile_check.py (not imported from +# there to avoid a circular import: that script imports check_filament_ids). +def print_error(msg): + print(f"\033[91m[ERROR]\033[0m {msg}") # Red + +def print_warning(msg): + print(f"\033[93m[WARNING]\033[0m {msg}") # Yellow + +def print_info(msg): + print(f"\033[94m[INFO]\033[0m {msg}") # Blue + +def print_success(msg): + print(f"\033[92m[SUCCESS]\033[0m {msg}") # Green + + +def _utf8_console(): + """Make stdout/stderr survive non-ASCII profile names on cp1252 consoles.""" + for stream in (sys.stdout, sys.stderr): + if hasattr(stream, "reconfigure"): + try: + stream.reconfigure(encoding="utf-8", errors="replace") + except (ValueError, OSError): + pass + + +# --------------------------------------------------------------------------- +# Minting +# --------------------------------------------------------------------------- + +def base_name(name): + """Family name of a preset: name with the first "@..." suffix stripped.""" + return BASE_NAME_RE.sub("", name, count=1) + + +def generate_filament_id(vendor, family, salt=0): + """Deterministic "OF" + 6-char base62 filament_id for a material family. + + input = "filament_family//" (+ "/" when salted); + u = uuid5(FILAMENT_ID_NAMESPACE, input); the id tail is the low + FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), most-significant + first — the same derivation as generate_preset_setting_id. + """ + key = f"filament_family/{vendor}/{family}" + if salt: + key = f"{key}/{salt}" + u = uuid.uuid5(FILAMENT_ID_NAMESPACE, key) + n = int.from_bytes(u.bytes, "big") + digits = [] + for _ in range(FILAMENT_ID_LENGTH): + digits.append(ALPHABET[n % 62]) + n //= 62 + return "OF" + "".join(reversed(digits)) + + +def mint_filament_id(vendor, family, taken): + """Mint the family's id, salting past any id in `taken` (existing + retired).""" + for salt in range(10000): + candidate = generate_filament_id(vendor, family, salt) + if candidate not in taken: + return candidate + raise RuntimeError(f"could not mint a free filament_id for {vendor}/{family}") + + +# --------------------------------------------------------------------------- +# Tree loading + loader-faithful effective-id resolution +# --------------------------------------------------------------------------- + +def load_json(path): + with open(path, "r", encoding="utf-8-sig") as f: + return json.load(f) + + +def list_vendor_names(profiles_dir): + """Vendor bundles = subdirectories with a matching .json index file. + + (Ignores stray non-bundle entries such as the tracked "user" directory, + which has no user.json index.) + """ + profiles_dir = str(profiles_dir) + return sorted( + os.path.splitext(f)[0] for f in os.listdir(profiles_dir) + if f.endswith(".json") + and os.path.isdir(os.path.join(profiles_dir, os.path.splitext(f)[0])) + ) + + +def load_vendor_filaments(profiles_dir, vendor): + """Load a vendor's filament presets from its index's filament_list. + + Returns (presets dict name -> record, list of unreadable-file messages). + """ + profiles_dir = str(profiles_dir) + presets = {} + errors = [] + try: + idx = load_json(os.path.join(profiles_dir, vendor + ".json")) + except (OSError, ValueError) as e: + return presets, [f"unreadable vendor index {vendor}.json: {e}"] + for entry in idx.get("filament_list", []): + rel = f"{vendor}/{entry.get('sub_path', '')}" + path = os.path.join(profiles_dir, vendor, entry.get("sub_path", "")) + try: + data = load_json(path) + except (OSError, ValueError) as e: + errors.append(f"unreadable filament profile {rel}: {e}") + continue + name = data.get("name", entry.get("name")) + presets[name] = { + "name": name, + "file": rel, + "path": path, + "filament_id": data.get("filament_id"), + "inherits": data.get("inherits"), + "instantiation": str(data.get("instantiation", "")).lower() == "true", + "compatible_printers": data.get("compatible_printers") or [], + } + return presets, errors + + +def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, skip_own=False): + """Walk the inherits chain for the effective filament_id, loader-faithfully. + + Mirrors PresetBundle.cpp load_vendor_configs_from_json: a hop resolves in the + vendor's own map first, then falls back to the OFL base-bundle map. OFL's map + was memoized entirely within OFL, so once a chain enters OFL it stays in OFL + (a vendor file sharing an OFL preset's name must not shadow OFL-internal + hops). Additionally, a vendor preset that never resolves an id inside the + vendor is re-tried against the OFL map keyed by its direct parent name. + + skip_own ignores the first preset's own filament_id key (used to compute the + id its inherits chain would resolve WITHOUT the declaration — check 7b drift). + + Returns (filament_id or None, source, ofl_entry) where source is one of + "own"/"inherited"/"missing"/"dangling"/"cycle" and ofl_entry is the name of + the OFL preset through which a vendor chain entered OFL (None when the id was + declared vendor-side or resolution started inside OFL). + """ + if seen is None: + seen = set() + if name in seen: + return None, "cycle", None + seen.add(name) + entry = None + if in_ofl: + rec = ofl_filaments.get(name) + else: + rec = filaments.get(name) + if rec is None and name in ofl_filaments: + rec, in_ofl, entry = ofl_filaments[name], True, name + if rec is None: + return None, "dangling", None + if rec.get("filament_id") and not skip_own: + return rec["filament_id"], "own" if len(seen) == 1 else "inherited", entry + parent = rec.get("inherits") + if parent: + fid, src, sub_entry = resolve_filament_id(parent, filaments, ofl_filaments, seen, in_ofl) + if fid or in_ofl: + return fid, src, entry if entry is not None else sub_entry + # Vendor chain dead-ended id-less: the loader would have consulted the + # OFL map at each vendor hop's inherits; retry this hop's parent in OFL. + if parent in ofl_filaments: + fid, src, _ = resolve_filament_id(parent, filaments, ofl_filaments, set(), True) + return fid, src, parent + return fid, src, sub_entry + return None, "missing", entry + + +def analyze_tree(profiles_dir): + """Load every vendor bundle and derive the full filament_id state. + + Returns a dict with the tree-derived snapshot sections plus the working data + the checks and the assign pass need. All claims are "Vendor/Family" strings + over INSTANTIATED system filaments, tree-wide including OFL and BBL. + """ + profiles_dir = str(profiles_dir) + vendor_names = list_vendor_names(profiles_dir) + ofl_filaments, ofl_errors = ( + load_vendor_filaments(profiles_dir, OFL) if OFL in vendor_names else ({}, []) + ) + + vendors = {} + read_errors = list(ofl_errors) + for vendor in vendor_names: + if vendor == OFL: + filaments = ofl_filaments + else: + filaments, errs = load_vendor_filaments(profiles_dir, vendor) + read_errors.extend(errs) + for rec in filaments.values(): + eff, src, ofl_entry = resolve_filament_id(rec["name"], filaments, ofl_filaments) + rec["eff_filament_id"] = eff + rec["id_source"] = src + rec["ofl_entry"] = ofl_entry + vendors[vendor] = filaments + + # id -> set of "Vendor/Family" claims over instantiated presets. Every id + # occurring in the tree is a key; ids only ever DECLARED (e.g. on a root + # whose children all override them) keep an empty claim list, so that the + # snapshot exactly equals the tree-derived state and the format/retirement + # checks can grandfather them. + ids = {} + vendor_ids = {} # vendor -> set of ids occurring there (declared or effective) + declared_ids = {} # vendor -> set of ids DECLARED in that vendor's own files + instantiated_with_id = [] # "Vendor/PresetName" (own filament_id key on an instantiated preset) + overrides = [] # (vendor, name, declared, inherited, file) + missing_effective = [] # (vendor, name, file) instantiated presets resolving no id + alias_candidates = [] # (vendor, rec, ofl_entry) presets id-resolved through an OFL generic + + for vendor, filaments in vendors.items(): + occurring = vendor_ids.setdefault(vendor, set()) + for rec in filaments.values(): + if rec.get("filament_id"): + occurring.add(rec["filament_id"]) + declared_ids.setdefault(vendor, set()).add(rec["filament_id"]) + ids.setdefault(rec["filament_id"], set()) + if rec.get("inherits"): + inherited, _src, _e = resolve_filament_id( + rec["name"], filaments, ofl_filaments, skip_own=True) + if inherited and inherited != rec["filament_id"]: + overrides.append( + (vendor, rec["name"], rec["filament_id"], inherited, rec["file"])) + if not rec["instantiation"]: + continue + eff = rec.get("eff_filament_id") + if not eff: + missing_effective.append((vendor, rec["name"], rec["file"])) + continue + occurring.add(eff) + ids.setdefault(eff, set()).add(f"{vendor}/{base_name(rec['name'])}") + if rec.get("filament_id"): + instantiated_with_id.append(f"{vendor}/{rec['name']}") + if vendor != OFL and rec["ofl_entry"] and OFL_GENERIC_RE.match(rec["ofl_entry"]): + alias_candidates.append((vendor, rec, rec["ofl_entry"])) + + # Alias hygiene (check 5): a vendor preset that tunes an OFL generic (no id + # anywhere in its vendor-side chain) is matched to the OFL preset by ALIAS + # (base name); renaming it re-exposes the OFL generic and creates a live + # duplicate, and empty compatible_printers cannot claim any printer. + alias_violations = [] # (vendor, name, ofl_entry, reason, file) + for vendor, rec, entry in alias_candidates: + expected = base_name(entry) + own_base = base_name(rec["name"]) + if own_base != expected: + alias_violations.append(( + vendor, rec["name"], entry, + f'base name "{own_base}" != "{expected}" — the rename re-exposes the ' + f"OFL preset on its printers (alias shadowing is name-based)", + rec["file"])) + elif not rec["compatible_printers"]: + alias_violations.append(( + vendor, rec["name"], entry, + "empty compatible_printers cannot shadow the OFL preset anywhere", + rec["file"])) + + return { + "vendors": vendors, + "read_errors": read_errors, + "ids": {fid: sorted(claims) for fid, claims in ids.items()}, + "vendor_ids": vendor_ids, + "declared_ids": declared_ids, + "instantiated_with_id": sorted(instantiated_with_id), + "overrides": overrides, + "id_overrides": sorted(f"{v}/{n}" for v, n, _d, _i, _f in overrides), + "missing_effective": sorted(missing_effective), + "alias_violations": alias_violations, + "alias_exceptions": sorted(f"{v}/{n}" for v, n, _e, _r, _f in alias_violations), + } + + +# --------------------------------------------------------------------------- +# Snapshot / retired-ledger IO +# --------------------------------------------------------------------------- + +def snapshot_from_analysis(analysis): + return { + "ids": {fid: sorted(claims) for fid, claims in analysis["ids"].items()}, + "instantiated_with_id": analysis["instantiated_with_id"], + "id_overrides": analysis["id_overrides"], + "alias_exceptions": analysis["alias_exceptions"], + } + + +def load_snapshot(path): + """Return the snapshot dict, or None when the file does not exist.""" + if not os.path.exists(path): + return None + data = load_json(path) + for key in ("ids", "instantiated_with_id", "id_overrides", "alias_exceptions"): + data.setdefault(key, {} if key == "ids" else []) + return data + + +def load_retired(path): + """Return the retired-ids map {id: ["Vendor/Family", ...]} ({} if absent).""" + if not os.path.exists(path): + return {} + return load_json(path).get("retired", {}) + + +def write_ledger(path, obj): + """Deterministic serialization: sorted keys, indent 1, LF, trailing newline.""" + with open(path, "w", encoding="utf-8", newline="\n") as f: + json.dump(obj, f, indent=1, ensure_ascii=False, sort_keys=True) + f.write("\n") + + +# --------------------------------------------------------------------------- +# Reserved namespaces +# --------------------------------------------------------------------------- + +def reserved_space_owner(fid): + """(is_reserved, owner_vendor or None) for the frozen id spaces.""" + if fid.startswith("GF"): + return True, "BBL" + if fid.startswith("QD_"): + return True, "Qidi" + if USER_CUSTOM_ID_RE.match(fid) or fid == "null": + return True, None # user-custom space: no system vendor may own it + return False, None + + +# --------------------------------------------------------------------------- +# Checks (imported and called tree-wide by orca_extra_profile_check.py) +# --------------------------------------------------------------------------- + +def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, + retired_path=RETIRED_PATH): + """Validate filament_id state across every vendor. Returns the error count. + + 1. Format: every id occurring in the tree (declared or effective) must be in + the snapshot, or match ^OF[0-9A-Za-z]{6}$, or belong to vendor BBL, or be + a QD_* id within vendor Qidi. + 2. Snapshot equality, both directions: the tree-derived id->families multimap + must equal the snapshot exactly (the snapshot diff is the maintainer gate). + 3. Mint conformance: an OF-format id's claim that is not grandfathered must + equal the mint of (vendor, family) or a salted iteration. + 4. Retired ids may never occur again. + 5. Alias hygiene: a tuned OFL generic must keep the generic's base name and + claim printers via non-empty compatible_printers. + 6. Reserved namespaces (GF*/QD_*/P-hex/"null") only for their owner vendors, + except claims grandfathered in the snapshot. + 7. Structure ratchet: (a) no NEW instantiated preset carries its own + filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every + instantiated filament resolves an effective id (a hard load error in C++). + """ + _utf8_console() + errors = 0 + analysis = analyze_tree(profiles_dir) + snapshot = load_snapshot(snapshot_path) + if snapshot is None: + print_error(f"filament_id snapshot not found at {snapshot_path}; {UPDATE_HINT}") + return 1 + retired = load_retired(retired_path) + + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + + snap_ids = snapshot["ids"] + tree_ids = analysis["ids"] + + # -- 1. format ---------------------------------------------------------- + for vendor in sorted(analysis["vendor_ids"]): + for fid in sorted(analysis["vendor_ids"][vendor]): + if fid in snap_ids or OF_ID_RE.match(fid): + continue + if vendor == "BBL": + continue + if vendor == "Qidi" and fid.startswith("QD_"): + continue + print_error( + f'filament_id "{fid}" ({vendor}) is neither grandfathered in the ' + f'snapshot nor a minted "OF" id; new family ids must come from ' + f'"python scripts/assign_filament_ids.py" (see --mint)') + errors += 1 + + # -- 2. snapshot equality (both directions) ----------------------------- + for fid in sorted(tree_ids): + if fid not in snap_ids: + print_error( + f'filament_id "{fid}" is not sanctioned by ' + f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") + errors += 1 + continue + for claim in tree_ids[fid]: + if claim not in snap_ids[fid]: + print_error( + f'filament_id "{fid}" claim "{claim}" is not sanctioned by ' + f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") + errors += 1 + for fid in sorted(snap_ids): + if fid not in tree_ids: + print_error( + f'filament_id stability: snapshot id "{fid}" vanished from the tree ' + f"(ids are immutable once shipped); {UPDATE_HINT}") + errors += 1 + continue + for claim in snap_ids[fid]: + if claim not in tree_ids[fid]: + print_error( + f'filament_id stability: snapshot claim "{claim}" of id "{fid}" ' + f"vanished from the tree (ids are immutable once shipped); {UPDATE_HINT}") + errors += 1 + + # -- 3. mint conformance for OF-format ids ------------------------------ + for fid in sorted(tree_ids): + if not OF_ID_RE.match(fid): + continue + for claim in tree_ids[fid]: + if claim in snap_ids.get(fid, []): + continue # grandfathered + vendor, family = claim.split("/", 1) + if fid not in analysis["declared_ids"].get(vendor, set()): + # The claiming vendor never declares this id — it is inherited + # from another vendor's root (an OFL generic family): correctly + # tuned generics ride the OFL family id by design, so only the + # snapshot gate (check 2) applies to this claim. + continue + minted = [generate_filament_id(vendor, family, s) for s in range(MAX_CHECK_SALT + 1)] + if fid not in minted: + print_error( + f'filament_id "{fid}" of family "{claim}" does not match its mint: ' + f'expected "{minted[0]}" (or a salted iteration); paste the expected ' + f"id into the family root (or, for an intentionally shared id, " + f"{UPDATE_HINT})") + errors += 1 + + # -- 4. retired ids may never come back --------------------------------- + for vendor in sorted(analysis["vendor_ids"]): + for fid in sorted(analysis["vendor_ids"][vendor]): + if fid in retired: + print_error( + f'filament_id "{fid}" ({vendor}) is retired ' + f"(scripts/retired_filament_ids.json) and may never be reused") + errors += 1 + + # -- 5. alias hygiene for tuned OFL generics ----------------------------- + exceptions = set(snapshot["alias_exceptions"]) + for vendor, name, entry, reason, file in analysis["alias_violations"]: + if f"{vendor}/{name}" in exceptions: + continue + print_error( + f'preset "{name}" ({file}) tunes the OFL generic "{entry}" but {reason}; ' + f'keep the OFL base name and non-empty compatible_printers, or give the ' + f"family its own minted id") + errors += 1 + + # -- 6. reserved namespaces ---------------------------------------------- + for fid in sorted(tree_ids): + is_reserved, owner = reserved_space_owner(fid) + if not is_reserved: + continue + for claim in tree_ids[fid]: + vendor = claim.split("/", 1)[0] + if vendor == owner: + continue + if claim in snap_ids.get(fid, []): + continue # grandfathered + space = f"owned by {owner}" if owner else "reserved for user-custom presets" + print_error( + f'filament_id "{fid}" of "{claim}" is in a reserved id space ' + f"({space}) and must not be claimed by system presets of other vendors") + errors += 1 + + # -- 7. structure ratchet ------------------------------------------------- + grandfathered = set(snapshot["instantiated_with_id"]) + for key in analysis["instantiated_with_id"]: + if key not in grandfathered: + print_error( + f'instantiated preset "{key}" declares its own filament_id key; the key ' + f"belongs on the family root preset only (variants inherit it)") + errors += 1 + grandfathered = set(snapshot["id_overrides"]) + for vendor, name, declared, inherited, file in analysis["overrides"]: + if f"{vendor}/{name}" in grandfathered: + continue + print_error( + f'preset "{name}" ({file}) declares filament_id "{declared}" but its ' + f'inherits chain resolves "{inherited}"; a preset must not override its ' + f"family's id") + errors += 1 + for vendor, name, file in analysis["missing_effective"]: + expected = generate_filament_id(vendor, base_name(name)) + print_error( + f'instantiated filament "{name}" ({file}) resolves no filament_id anywhere ' + f"in its inherits chain — this is a hard load error in the C++ loader; " + f'run "python scripts/assign_filament_ids.py" (expected id for family ' + f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') + errors += 1 + + return errors + + +# --------------------------------------------------------------------------- +# --update-snapshot +# --------------------------------------------------------------------------- + +def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, + retired_path=RETIRED_PATH, allow_shared_catalog=False): + """Regenerate the snapshot from the tree; retire ids that fully vanished. + + Refuses to sanction NEW reserved-namespace ids (or new claims on them) for + non-owner vendors unless --allow-shared-catalog is passed. Idempotent: a + second run over an unchanged tree changes nothing. Returns 0 on success. + """ + analysis = analyze_tree(profiles_dir) + for msg in analysis["read_errors"]: + print_error(msg) + new_snap = snapshot_from_analysis(analysis) + old_snap = load_snapshot(snapshot_path) + old_ids = old_snap["ids"] if old_snap else {} + + # Gate: new reserved-namespace ids / claims for non-owner vendors. + refusals = [] + for fid, claims in sorted(new_snap["ids"].items()): + is_reserved, owner = reserved_space_owner(fid) + if not is_reserved: + continue + for claim in claims: + if claim in old_ids.get(fid, []): + continue + vendor = claim.split("/", 1)[0] + if vendor == owner: + continue + refusals.append((fid, claim, owner)) + if not claims and fid not in old_ids: + # Declared-only new id: attribute it to its declaring vendor(s). + for vendor in sorted(analysis["vendor_ids"]): + if fid in analysis["vendor_ids"][vendor] and vendor != owner: + refusals.append((fid, f"{vendor}/(declared only)", owner)) + if refusals and not allow_shared_catalog: + for fid, claim, owner in refusals: + space = f"owned by {owner}" if owner else "reserved for user-custom presets" + print_error( + f'refusing to sanction new claim "{claim}" on reserved-namespace id ' + f'"{fid}" ({space}); pass --allow-shared-catalog only for ' + f"maintainer-approved shared-catalog families") + return 1 + + # Retirement is permanent: refuse to sanction a tree that resurrects a + # retired id (check 4 would reject the resulting snapshot forever anyway). + retired = load_retired(retired_path) + reused = sorted(set(new_snap["ids"]) & set(retired)) + if reused: + for fid in reused: + print_error( + f'refusing to sanction retired filament_id "{fid}" ' + f"(scripts/retired_filament_ids.json is append-only; retired ids may " + f"never be reused — mint a fresh id for the family instead)") + return 1 + + # Retire ids that fully vanished from the tree (append-only ledger). + newly_retired = [] + for fid in sorted(old_ids): + if fid not in new_snap["ids"]: + retired[fid] = sorted(set(retired.get(fid, [])) | set(old_ids[fid])) + newly_retired.append(fid) + + # Diff summary. + added_ids = sorted(set(new_snap["ids"]) - set(old_ids)) + removed_ids = sorted(set(old_ids) - set(new_snap["ids"])) + added_claims = sum( + len(set(claims) - set(old_ids.get(fid, []))) + for fid, claims in new_snap["ids"].items()) + removed_claims = sum( + len(set(claims) - set(new_snap["ids"].get(fid, []))) + for fid, claims in old_ids.items()) + old_snap = old_snap or {"ids": {}, "instantiated_with_id": [], "id_overrides": [], + "alias_exceptions": []} + changed = new_snap != old_snap + + if changed: + write_ledger(snapshot_path, new_snap) + if newly_retired or not os.path.exists(retired_path): + write_ledger(retired_path, {"retired": retired}) + + print_info(f"snapshot ids : {len(new_snap['ids'])} (+{len(added_ids)} / -{len(removed_ids)})") + print_info(f"claims added : {added_claims}") + print_info(f"claims removed : {removed_claims}") + print_info(f"ids retired now : {len(newly_retired)}" + + (f" ({', '.join(newly_retired)})" if newly_retired else "")) + for section in ("instantiated_with_id", "id_overrides", "alias_exceptions"): + before, after = len(old_snap.get(section, [])), len(new_snap[section]) + print_info(f"{section:<18}: {after} ({after - before:+d})") + if changed: + print_success(f"snapshot written to {snapshot_path}") + else: + print_success("snapshot already up to date; nothing changed") + return 0 + + +# --------------------------------------------------------------------------- +# Default run: mint + insert ids for id-less families +# --------------------------------------------------------------------------- + +def insert_filament_id(text, new_id): + """Insert a `"filament_id"` line into a preset that lacks one. + + Placed just before `instantiation` (or, failing that, after the `name` line) + so it matches the canonical key order, reusing that anchor line's indentation + and line ending. Same byte-preserving approach as assign_vendor_setting_ids. + """ + m = re.search(r'^([ \t]*)"instantiation"[ \t]*:.*?(\r?\n)', text, re.MULTILINE) + if m: + line = f'{m.group(1)}"filament_id": {json.dumps(new_id, ensure_ascii=False)},{m.group(2)}' + return text[:m.start()] + line + text[m.start():], 1 + m = re.search(r'^([ \t]*)"name"[ \t]*:.*?(\r?\n)', text, re.MULTILINE) + if m: + line = f'{m.group(1)}"filament_id": {json.dumps(new_id, ensure_ascii=False)},{m.group(2)}' + return text[:m.end()] + line + text[m.end():], 1 + return text, 0 + + +def write_filament_id(path, new_id): + """Insert new_id into the profile at path, byte-preserving everything else. + + Binary IO keeps the file's original line endings (LF or CRLF) and exact + formatting apart from the inserted line; the result is re-parsed to + guarantee it is still valid JSON. + """ + with open(path, "rb") as f: + raw = f.read() + bom = raw.startswith(b"\xef\xbb\xbf") + text = raw.decode("utf-8-sig") + text, n = insert_filament_id(text, new_id) + if n == 0: + raise RuntimeError(f"Could not insert filament_id into {path}") + json.loads(text) # fail loudly if the edit broke the JSON + with open(path, "wb") as f: + f.write((b"\xef\xbb\xbf" if bom else b"") + text.encode("utf-8")) + + +def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, + retired_path=RETIRED_PATH): + """Mint + insert ids for id-less families. Never rewrites a valid existing id. + + A family = (vendor, base name) group over instantiated filaments with no + effective id. The minted id is inserted into the family's root(s): the + presets its members inherit that carry no id, or the member itself when it + has no vendor-side parent. Returns (files_changed, errors). + """ + analysis = analyze_tree(profiles_dir) + errors = 0 + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + + # Group id-less instantiated presets into families. + families = {} # (vendor, family) -> [rec] + for vendor, name, _file in analysis["missing_effective"]: + rec = analysis["vendors"][vendor][name] + if rec["id_source"] in ("cycle", "dangling"): + print_error(f'cannot mint for "{vendor}/{name}": broken inherits chain ' + f'({rec["id_source"]})') + errors += 1 + continue + families.setdefault((vendor, base_name(name)), []).append(rec) + + if not families: + print_success("every instantiated filament already resolves a filament_id; " + "nothing to do (0 files changed)") + return 0, errors + + # Ids already spoken for: whole tree (declared or effective) + ledgers. + snapshot = load_snapshot(snapshot_path) or {"ids": {}} + taken = set(snapshot["ids"]) | set(load_retired(retired_path)) + for occurring in analysis["vendor_ids"].values(): + taken |= occurring + + # Family root(s): the direct vendor-side parents of the members (id-less by + # construction), or the member itself when it has none. + roots = {} # (vendor, family) -> {preset name: rec} + root_claims = {} # (vendor, root name) -> set of families wanting to write it + for key, members in sorted(families.items()): + vendor = key[0] + vendor_map = analysis["vendors"][vendor] + family_roots = {} + for rec in members: + parent = rec.get("inherits") + root = vendor_map.get(parent) if parent else None + if root is None or root.get("filament_id"): + root = rec # root-less member carries the id itself + family_roots[root["name"]] = root + root_claims.setdefault((vendor, root["name"]), set()).add(key) + roots[key] = family_roots + + files_changed = 0 + families_minted = 0 + for key, family_roots in sorted(roots.items()): + vendor, family = key + shared = [n for n in family_roots + if len(root_claims[(vendor, n)]) > 1] + if shared: + others = sorted({f"{v}/{f}" for n in shared + for (v, f) in root_claims[(vendor, n)] if (v, f) != key}) + print_error( + f'cannot mint for family "{vendor}/{family}": root(s) ' + f"{sorted(shared)} are shared with famil(ies) {others}; split the " + f"roots so each family has its own") + errors += 1 + continue + new_id = mint_filament_id(vendor, family, taken) + taken.add(new_id) + families_minted += 1 + for name in sorted(family_roots): + root = family_roots[name] + write_filament_id(root["path"], new_id) + files_changed += 1 + print_info(f'family "{vendor}/{family}": filament_id "{new_id}" -> {root["file"]}') + + print_info(f"families minted : {families_minted}") + print_info(f"files changed : {files_changed}") + if files_changed: + print_warning(f"now {UPDATE_HINT}") + return files_changed, errors + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + +def main(argv=None): + _utf8_console() + parser = argparse.ArgumentParser( + description="Mint deterministic filament_id values for id-less filament " + "families and validate the tree against the sanctioned snapshot.") + parser.add_argument("--mint", metavar='"Vendor/Family"', + help="print the id that would be minted for a family; " + "touches nothing") + parser.add_argument("--update-snapshot", action="store_true", + help="regenerate scripts/filament_id_snapshot.json from the " + "tree; ids that fully vanished are retired") + parser.add_argument("--check", action="store_true", + help="run the filament_id checks; exit nonzero on errors") + parser.add_argument("--allow-shared-catalog", action="store_true", + help="with --update-snapshot: allow sanctioning new claims " + "on reserved-namespace ids for non-owner vendors") + parser.add_argument("--profiles", default=PROFILES_DIR, + help="profiles directory (default: resources/profiles)") + args = parser.parse_args(argv) + + if args.mint: + if "/" not in args.mint: + parser.error('--mint expects "Vendor/Family"') + vendor, family = args.mint.split("/", 1) + snapshot = load_snapshot(SNAPSHOT_PATH) or {"ids": {}} + taken = set(snapshot["ids"]) | set(load_retired(RETIRED_PATH)) + print(mint_filament_id(vendor, family, taken)) + return 0 + + if args.update_snapshot: + return update_snapshot(args.profiles, SNAPSHOT_PATH, RETIRED_PATH, + allow_shared_catalog=args.allow_shared_catalog) + + if args.check: + errors = check_filament_ids(args.profiles, SNAPSHOT_PATH, RETIRED_PATH) + if errors: + print_error(f"filament_id check: {errors} error(s)") + return 1 + print_success("filament_id check: no errors") + return 0 + + _changed, errors = assign_missing_ids(args.profiles, SNAPSHOT_PATH, RETIRED_PATH) + return 1 if errors else 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json new file mode 100644 index 0000000000..462098d581 --- /dev/null +++ b/scripts/filament_id_snapshot.json @@ -0,0 +1,7811 @@ +{ + "alias_exceptions": [ + "Flashforge/Flashforge ABS Basic @FF C5", + "Flashforge/Flashforge ABS Basic @FF C5P", + "Flashforge/Flashforge ABS-GF @FF C5", + "Flashforge/Flashforge ABS-GF @FF C5P", + "Flashforge/Flashforge ASA Basic @FF C5", + "Flashforge/Flashforge ASA Basic @FF C5P", + "Flashforge/Flashforge ASA-CF @FF C5", + "Flashforge/Flashforge ASA-CF @FF C5P", + "Flashforge/Flashforge ASA-GF @FF C5", + "Flashforge/Flashforge ASA-GF @FF C5P", + "Flashforge/Flashforge HIPS @FF C5", + "Flashforge/Flashforge HIPS @FF C5P", + "Flashforge/Flashforge HS PETG @FF C5", + "Flashforge/Flashforge HS PETG @FF C5P", + "Flashforge/Flashforge HS PLA @FF C5", + "Flashforge/Flashforge HS PLA @FF C5P", + "Flashforge/Flashforge PA-CF @FF C5", + "Flashforge/Flashforge PA-CF @FF C5P", + "Flashforge/Flashforge PAHT-CF @FF C5", + "Flashforge/Flashforge PAHT-CF @FF C5P", + "Flashforge/Flashforge PET-CF @FF C5", + "Flashforge/Flashforge PET-CF @FF C5P", + "Flashforge/Flashforge PETG Pro @FF C5", + "Flashforge/Flashforge PETG Pro @FF C5P", + "Flashforge/Flashforge PETG Transparent @FF C5", + "Flashforge/Flashforge PETG Transparent @FF C5P", + "Flashforge/Flashforge PETG-CF @FF C5", + "Flashforge/Flashforge PETG-CF @FF C5P", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", + "Flashforge/Flashforge PLA Basic @FF C5", + "Flashforge/Flashforge PLA Basic @FF C5P", + "Flashforge/Flashforge PLA Color Change @FF C5", + "Flashforge/Flashforge PLA Color Change @FF C5P", + "Flashforge/Flashforge PLA Galaxy @FF C5", + "Flashforge/Flashforge PLA Galaxy @FF C5P", + "Flashforge/Flashforge PLA Luminous @FF C5", + "Flashforge/Flashforge PLA Luminous @FF C5P", + "Flashforge/Flashforge PLA Silk @FF C5", + "Flashforge/Flashforge PLA Silk @FF C5P", + "Flashforge/Flashforge PLA-CF @FF C5", + "Flashforge/Flashforge PLA-CF @FF C5P", + "Flashforge/Flashforge PPA-CF @FF C5", + "Flashforge/Flashforge PPA-CF @FF C5P", + "Flashforge/Flashforge PPS-CF @FF C5", + "Flashforge/Flashforge PPS-CF @FF C5P", + "Flashforge/Flashforge PVA @FF C5", + "Flashforge/Flashforge PVA @FF C5P", + "Flashforge/Flashforge TPU-64D @FF C5", + "Flashforge/Flashforge TPU-64D @FF C5P", + "Flashforge/Flashforge TPU-90A @FF C5", + "Flashforge/Flashforge TPU-90A @FF C5P", + "Flashforge/Flashforge TPU-95A @FF C5", + "Flashforge/Flashforge TPU-95A @FF C5P", + "Flashforge/FusRock PAHT-CF @FF C5", + "Flashforge/FusRock PAHT-CF @FF C5P", + "Flashforge/FusRock S-Multi @FF C5", + "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-PAHT @FF C5", + "Flashforge/FusRock S-PAHT @FF C5P", + "Flashforge/Generic TPU-64D @FF C5", + "Flashforge/Generic TPU-64D @FF C5P", + "Flashforge/Generic TPU-90A @FF C5", + "Flashforge/Generic TPU-90A @FF C5P", + "Flashforge/Generic TPU-95A @FF C5", + "Flashforge/Generic TPU-95A @FF C5P" + ], + "id_overrides": [ + "Afinia/Afinia PLA", + "Afinia/Afinia PLA@HS", + "Afinia/Afinia Value PLA", + "Afinia/Afinia Value PLA@HS", + "Anker/Anker Generic PA @base", + "Anker/Anker Generic PA-CF @base", + "Anker/Anker Generic PC @base", + "Anker/Anker Generic PETG @base", + "Anker/Anker Generic PETG-CF @base", + "Anker/Anker Generic PLA @base", + "Anker/Anker Generic PLA Silk @base", + "Anker/Anker Generic PLA+ @base", + "Anker/Anker Generic PLA-CF @base", + "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic Generic PA", + "Anycubic/Anycubic Generic PA-CF", + "Anycubic/Anycubic Generic PC", + "Anycubic/Anycubic Generic PETG", + "Anycubic/Anycubic Generic PLA", + "Anycubic/Anycubic Generic PLA-CF", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", + "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Panchroma PLA @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "Artillery/Artillery Generic PETG", + "Artillery/Artillery Generic PLA", + "Artillery/Artillery Generic PLA-CF", + "BBL/BETA HIPS @base", + "BBL/BETA PAHT-CF @base", + "BBL/BETA PETG @base", + "BBL/BETA PETG Fluorescence @base", + "BBL/BETA PETG Glitter @base", + "BBL/BETA PETG Glow @base", + "BBL/BETA PETG Gradient @base", + "BBL/BETA PETG HF @base", + "BBL/BETA PETG Heat Color Change @base", + "BBL/BETA PETG Marble @base", + "BBL/BETA PETG Matte @base", + "BBL/BETA PETG Metallic @base", + "BBL/BETA PETG Transparent @base", + "BBL/BETA PETG UV Color Change @base", + "BBL/BETA PETG-CF @base", + "BBL/BETA PETG-GF @base", + "BBL/BETA PLA Basic @base", + "BBL/BETA PLA Chameleon @base", + "BBL/BETA PLA Fluorescence @base", + "BBL/BETA PLA Glitter @base", + "BBL/BETA PLA Glow @base", + "BBL/BETA PLA Gradient @base", + "BBL/BETA PLA Heat Color Change @base", + "BBL/BETA PLA High Speed @base", + "BBL/BETA PLA High Temp @base", + "BBL/BETA PLA Marble @base", + "BBL/BETA PLA Matte @base", + "BBL/BETA PLA Metal @base", + "BBL/BETA PLA Metallic @base", + "BBL/BETA PLA PRO @base", + "BBL/BETA PLA Silk @base", + "BBL/BETA PLA Silk+ @base", + "BBL/BETA PLA Transparent @base", + "BBL/BETA PLA UV Color Change @base", + "BBL/BETA PLA Wood @base", + "BBL/BETA PLA Youth @base", + "BBL/BETA PLA-CF @base", + "BBL/Bambu PA-CF @base", + "BBL/Bambu PA6-CF @base", + "BBL/Bambu PA6-GF @base", + "BBL/Bambu PAHT-CF @base", + "BBL/Bambu PC @base", + "BBL/Bambu PC FR @base", + "BBL/Bambu PET-CF @base", + "BBL/Bambu PETG Basic @base", + "BBL/Bambu PETG HF @base", + "BBL/Bambu PETG Translucent @base", + "BBL/Bambu PETG-CF @base", + "BBL/Bambu PLA Aero @base", + "BBL/Bambu PLA Basic @base", + "BBL/Bambu PLA Dynamic @base", + "BBL/Bambu PLA Galaxy @base", + "BBL/Bambu PLA Glow @base", + "BBL/Bambu PLA Lite @base", + "BBL/Bambu PLA Marble @base", + "BBL/Bambu PLA Matte @base", + "BBL/Bambu PLA Metal @base", + "BBL/Bambu PLA Silk @base", + "BBL/Bambu PLA Silk+ @base", + "BBL/Bambu PLA Sparkle @base", + "BBL/Bambu PLA Tough @base", + "BBL/Bambu PLA Tough+ @base", + "BBL/Bambu PLA Translucent @base", + "BBL/Bambu PLA Wood @base", + "BBL/Bambu PLA-CF @base", + "BBL/Bambu PPA-CF @base", + "BBL/Bambu Support For PA/PET @base", + "BBL/Bambu Support For PLA @base", + "BBL/Bambu Support For PLA/PETG @base", + "BBL/Bambu Support G @base", + "BBL/Bambu Support W @base", + "BBL/Fiberon PA12-CF @base", + "BBL/Fiberon PA12-CF10 @base", + "BBL/Fiberon PA6-CF @base", + "BBL/Fiberon PA6-CF20 @base", + "BBL/Fiberon PA6-GF @base", + "BBL/Fiberon PA6-GF25 @base", + "BBL/Fiberon PA612-CF @base", + "BBL/Fiberon PA612-CF15 @base", + "BBL/Fiberon PET-CF @base", + "BBL/Fiberon PET-CF17 @base", + "BBL/Fiberon PETG-ESD @base", + "BBL/Fiberon PETG-rCF @base", + "BBL/Fiberon PETG-rCF08 @base", + "BBL/Generic BVOH @base", + "BBL/Generic EVA @base", + "BBL/Generic HIPS @base", + "BBL/Generic PA @base", + "BBL/Generic PA-CF @base", + "BBL/Generic PC @base", + "BBL/Generic PCTG @base", + "BBL/Generic PE @base", + "BBL/Generic PE-CF @base", + "BBL/Generic PETG @base", + "BBL/Generic PETG HF @base", + "BBL/Generic PETG-CF @base", + "BBL/Generic PHA @base", + "BBL/Generic PLA @base", + "BBL/Generic PLA High Speed @base", + "BBL/Generic PLA Silk @base", + "BBL/Generic PLA-CF @base", + "BBL/Generic PP @base", + "BBL/Generic PP-CF @base", + "BBL/Generic PP-GF @base", + "BBL/Generic PPA-CF @base", + "BBL/Generic PPA-GF @base", + "BBL/Generic SBS", + "BBL/Generic SBS @base", + "BBL/Numakers PLA+ @base", + "BBL/Overture Matte PLA @base", + "BBL/Overture PLA @base", + "BBL/Overture PLA Pro @base", + "BBL/Panchroma CoPE @base", + "BBL/Panchroma PLA @base", + "BBL/Panchroma PLA Celestial @base", + "BBL/Panchroma PLA Galaxy @base", + "BBL/Panchroma PLA Glow @base", + "BBL/Panchroma PLA Luminous @base", + "BBL/Panchroma PLA Marble @base", + "BBL/Panchroma PLA Matte @base", + "BBL/Panchroma PLA Metallic @base", + "BBL/Panchroma PLA Neon @base", + "BBL/Panchroma PLA Satin @base", + "BBL/Panchroma PLA Silk @base", + "BBL/Panchroma PLA Starlight @base", + "BBL/Panchroma PLA Temp Shift @base", + "BBL/Panchroma PLA Translucent @base", + "BBL/Panchroma PLA UV Shift @base", + "BBL/PolyLite CosPLA @base", + "BBL/PolyLite PETG @base", + "BBL/PolyLite PLA @base", + "BBL/PolyLite PLA Galaxy @base", + "BBL/PolyLite PLA Glow @base", + "BBL/PolyLite PLA Luminous @base", + "BBL/PolyLite PLA Neon @base", + "BBL/PolyLite PLA Pro @base", + "BBL/PolyLite PLA Starlight @base", + "BBL/PolyLite PLA Translucent @base", + "BBL/PolyTerra PLA @base", + "BBL/PolyTerra PLA Marble @base", + "BBL/PolyTerra PLA+ @base", + "BBL/Polymaker HT-PLA @base", + "BBL/Polymaker HT-PLA-GF @base", + "BBL/SUNLU PETG @base", + "BBL/SUNLU PLA Marble @base", + "BBL/SUNLU PLA Matte @base", + "BBL/SUNLU PLA+ 2.0 @base", + "BBL/SUNLU PLA+ @base", + "BBL/SUNLU Silk PLA+ @base", + "BBL/SUNLU Wood PLA @base", + "BBL/eSUN PLA+ @base", + "Blocks/Blocks Generic PA", + "Blocks/Blocks Generic PA-CF", + "Blocks/Blocks Generic PC", + "Blocks/Blocks Generic PLA", + "Blocks/Blocks Generic PLA-CF", + "CONSTRUCT3D/C1 Generic High Flow PETG", + "CONSTRUCT3D/C1 Generic PETG", + "CONSTRUCT3D/C1 Generic PLA", + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying Generic PETG", + "Chuanying/Chuanying Generic PETG-CF10", + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying Generic PLA-CF10", + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying Generic PVA", + "Co Print/CoPrint Generic PLA", + "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", + "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", + "CoLiDo/CoLiDo PETG @CoLiDo SR1", + "CoLiDo/CoLiDo PLA @CoLiDo SR1", + "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", + "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", + "Comgrow/Comgrow Generic PETG", + "Comgrow/Comgrow Generic PLA", + "Creality/CR-Nylon @K1 Max_CFS-C-all", + "Creality/CR-Nylon @K1C-all", + "Creality/CR-Nylon @K1C_CFS-C-all", + "Creality/CR-Nylon @K1_CFS-C-all", + "Creality/CR-Nylon @K2 Plus-all", + "Creality/CR-PLA @Ender-3 V4-all", + "Creality/CR-PLA @Hi-all", + "Creality/CR-PLA @K1 Max_CFS-C-all", + "Creality/CR-PLA @K1 SE-all", + "Creality/CR-PLA @K1 SE_CFS-C-all", + "Creality/CR-PLA @K1C-all", + "Creality/CR-PLA @K1C_CFS-C-all", + "Creality/CR-PLA @K1_CFS-C-all", + "Creality/CR-PLA @K2 Plus-all", + "Creality/CR-PLA @K2 Pro-all", + "Creality/CR-PLA @K2 SE-all", + "Creality/CR-PLA @K2-all", + "Creality/CR-PLA @SPARKX i7-all", + "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", + "Creality/CR-PLA Carbon @K1C-all", + "Creality/CR-PLA Carbon @K1C_CFS-C-all", + "Creality/CR-PLA Carbon @K1_CFS-C-all", + "Creality/CR-PLA Carbon @K2 Plus-all", + "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", + "Creality/CR-PLA Fluo @K1C-all", + "Creality/CR-PLA Fluo @K1C_CFS-C-all", + "Creality/CR-PLA Fluo @K1_CFS-C-all", + "Creality/CR-PLA Fluo @K2 Plus-all", + "Creality/CR-PLA Fluo @K2 Pro-all", + "Creality/CR-PLA Fluo @K2-all", + "Creality/CR-PLA Fluo @SPARKX i7-all", + "Creality/CR-PLA Matte @Ender-3 V4-all", + "Creality/CR-PLA Matte @K1 Max_CFS-C-all", + "Creality/CR-PLA Matte @K1C-all", + "Creality/CR-PLA Matte @K1C_CFS-C-all", + "Creality/CR-PLA Matte @K1_CFS-C-all", + "Creality/CR-PLA Matte @K2 Plus-all", + "Creality/CR-PLA Matte @K2 Pro-all", + "Creality/CR-PLA Matte @K2-all", + "Creality/CR-PLA Matte @SPARKX i7-all", + "Creality/CR-Silk @Ender-3 V4-all", + "Creality/CR-Silk @Hi-all", + "Creality/CR-Silk @K1 Max_CFS-C-all", + "Creality/CR-Silk @K1 SE-all", + "Creality/CR-Silk @K1 SE_CFS-C-all", + "Creality/CR-Silk @K1C-all", + "Creality/CR-Silk @K1C_CFS-C-all", + "Creality/CR-Silk @K1_CFS-C-all", + "Creality/CR-Silk @K2 Plus-all", + "Creality/CR-Silk @K2 Pro-all", + "Creality/CR-Silk @K2 SE-all", + "Creality/CR-Silk @K2-all", + "Creality/CR-Silk @SPARKX i7-all", + "Creality/CR-Wood @K1 Max_CFS-C-all", + "Creality/CR-Wood @K1C-all", + "Creality/CR-Wood @K1C_CFS-C-all", + "Creality/CR-Wood @K1_CFS-C-all", + "Creality/CR-Wood @K2 Plus-all", + "Creality/Creality Generic PA-CF", + "Creality/Creality Generic PC", + "Creality/Creality Generic PETG", + "Creality/Creality Generic PLA", + "Creality/Creality Generic PLA-CF", + "Creality/Creality HF Generic PLA", + "Creality/Creality HF Generic Speed PLA", + "Creality/EN-PLA+ @K1 Max_CFS-C-all", + "Creality/EN-PLA+ @K1C-all", + "Creality/EN-PLA+ @K1C_CFS-C-all", + "Creality/EN-PLA+ @K1_CFS-C-all", + "Creality/EN-PLA+ @K2 Plus-all", + "Creality/EN-PLA+ @K2 Pro-all", + "Creality/EN-PLA+ @K2-all", + "Creality/EN-PLA+ @SPARKX i7-all", + "Creality/ENDER FAST PLA @Hi-all", + "Creality/ENDER FAST PLA @K2 Plus-all", + "Creality/ENDER FAST PLA @K2 Pro-all", + "Creality/ENDER FAST PLA @K2-all", + "Creality/ENDER FAST PLA @SPARKX i7-all", + "Creality/Ender-PLA @Ender-3 V4-all", + "Creality/Ender-PLA @Hi-all", + "Creality/Ender-PLA @K1 Max_CFS-C-all", + "Creality/Ender-PLA @K1C-all", + "Creality/Ender-PLA @K1C_CFS-C-all", + "Creality/Ender-PLA @K1_CFS-C-all", + "Creality/Ender-PLA @K2 Plus-all", + "Creality/Ender-PLA @K2 Pro-all", + "Creality/Ender-PLA @K2-all", + "Creality/Ender-PLA @SPARKX i7-all", + "Creality/Generic HIPS @K1 Max_CFS-C-all", + "Creality/Generic HIPS @K1C-all", + "Creality/Generic HIPS @K1C_CFS-C-all", + "Creality/Generic HIPS @K1_CFS-C-all", + "Creality/Generic HIPS @K2 Plus-all", + "Creality/Generic PA @K1 Max_CFS-C-all", + "Creality/Generic PA @K1C-all", + "Creality/Generic PA @K1C_CFS-C-all", + "Creality/Generic PA @K1_CFS-C-all", + "Creality/Generic PA @K2 Plus-all", + "Creality/Generic PA @K2 Pro-all", + "Creality/Generic PA @K2-all", + "Creality/Generic PA-CF @K1 Max_CFS-C-all", + "Creality/Generic PA-CF @K1C-all", + "Creality/Generic PA-CF @K1C_CFS-C-all", + "Creality/Generic PA-CF @K1_CFS-C-all", + "Creality/Generic PA-CF @K2 Plus-all", + "Creality/Generic PA12-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K1 Max_CFS-C-all", + "Creality/Generic PA6-CF @K1C-all", + "Creality/Generic PA6-CF @K1C_CFS-C-all", + "Creality/Generic PA6-CF @K1_CFS-C-all", + "Creality/Generic PA6-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K2 Pro-all", + "Creality/Generic PA612-CF @K2 Plus-all", + "Creality/Generic PA612-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", + "Creality/Generic PAHT-CF @K1C-all", + "Creality/Generic PAHT-CF @K1C_CFS-C-all", + "Creality/Generic PAHT-CF @K1_CFS-C-all", + "Creality/Generic PAHT-CF @K2 Plus-all", + "Creality/Generic PAHT-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K2-all", + "Creality/Generic PC @K1 Max_CFS-C-all", + "Creality/Generic PC @K1C-all", + "Creality/Generic PC @K1C_CFS-C-all", + "Creality/Generic PC @K1_CFS-C-all", + "Creality/Generic PC @K2 Plus-all", + "Creality/Generic PC @K2 Pro-all", + "Creality/Generic PET @K1 Max_CFS-C-all", + "Creality/Generic PET @K1C-all", + "Creality/Generic PET @K1C_CFS-C-all", + "Creality/Generic PET @K1_CFS-C-all", + "Creality/Generic PET @K2 Plus-all", + "Creality/Generic PET @K2 Pro-all", + "Creality/Generic PET @K2-all", + "Creality/Generic PET-CF @K1 Max_CFS-C-all", + "Creality/Generic PET-CF @K1C-all", + "Creality/Generic PET-CF @K1C_CFS-C-all", + "Creality/Generic PET-CF @K1_CFS-C-all", + "Creality/Generic PET-CF @K2 Plus-all", + "Creality/Generic PET-CF @K2 Pro-all", + "Creality/Generic PLA @Ender-3 V4-all", + "Creality/Generic PLA @Hi-all", + "Creality/Generic PLA @K1 Max_CFS-C-all", + "Creality/Generic PLA @K1 SE-all", + "Creality/Generic PLA @K1 SE_CFS-C-all", + "Creality/Generic PLA @K1C-all", + "Creality/Generic PLA @K1C_CFS-C-all", + "Creality/Generic PLA @K1_CFS-C-all", + "Creality/Generic PLA @K2 Plus-all", + "Creality/Generic PLA @K2 Pro-all", + "Creality/Generic PLA @K2 SE-all", + "Creality/Generic PLA @K2-all", + "Creality/Generic PLA @SPARKX i7-all", + "Creality/Generic PLA-CF @Ender-3 V4-all", + "Creality/Generic PLA-CF @K1 Max_CFS-C-all", + "Creality/Generic PLA-CF @K1 SE-all", + "Creality/Generic PLA-CF @K1 SE_CFS-C-all", + "Creality/Generic PLA-CF @K1C-all", + "Creality/Generic PLA-CF @K1C_CFS-C-all", + "Creality/Generic PLA-CF @K1_CFS-C-all", + "Creality/Generic PLA-CF @K2 Plus-all", + "Creality/Generic PLA-CF @K2 Pro-all", + "Creality/Generic PLA-CF @K2 SE-all", + "Creality/Generic PLA-CF @K2-all", + "Creality/Generic PLA-CF @SPARKX i7-all", + "Creality/Generic PLA-Silk @Ender-3 V4-all", + "Creality/Generic PLA-Silk @Hi-all", + "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", + "Creality/Generic PLA-Silk @K1 SE-all", + "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", + "Creality/Generic PLA-Silk @K1C-all", + "Creality/Generic PLA-Silk @K1C_CFS-C-all", + "Creality/Generic PLA-Silk @K1_CFS-C-all", + "Creality/Generic PLA-Silk @K2 Plus-all", + "Creality/Generic PLA-Silk @K2 Pro-all", + "Creality/Generic PLA-Silk @K2 SE-all", + "Creality/Generic PLA-Silk @K2-all", + "Creality/Generic PLA-Silk @SPARKX i7-all", + "Creality/Generic PP @K1 Max_CFS-C-all", + "Creality/Generic PP @K1C-all", + "Creality/Generic PP @K1C_CFS-C-all", + "Creality/Generic PP @K1_CFS-C-all", + "Creality/Generic PP @K2 Plus-all", + "Creality/Generic PP @K2 Pro-all", + "Creality/Generic PP @K2-all", + "Creality/Generic Support for PA @K2 Plus-all", + "Creality/Generic Support for PLA @K2 Plus-all", + "Creality/HP Ultra PLA @K1 Max_CFS-C-all", + "Creality/HP Ultra PLA @K1C-all", + "Creality/HP Ultra PLA @K1C_CFS-C-all", + "Creality/HP Ultra PLA @K1_CFS-C-all", + "Creality/HP Ultra PLA @K2 Plus-all", + "Creality/Hyper L-W PLA @Hi-all", + "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", + "Creality/Hyper L-W PLA @K1 SE-all", + "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", + "Creality/Hyper L-W PLA @K1C-all", + "Creality/Hyper L-W PLA @K1C_CFS-C-all", + "Creality/Hyper L-W PLA @K1_CFS-C-all", + "Creality/Hyper L-W PLA @K2 Plus-all", + "Creality/Hyper L-W PLA @K2 Pro-all", + "Creality/Hyper L-W PLA @K2-all", + "Creality/Hyper Luminous @Hi-all", + "Creality/Hyper Luminous @K1C-all", + "Creality/Hyper Luminous @K2 Plus-all", + "Creality/Hyper Luminous @K2 Pro-all", + "Creality/Hyper Luminous @K2-all", + "Creality/Hyper Luminous @SPARKX i7-all", + "Creality/Hyper Marble @Hi-all", + "Creality/Hyper Marble @K1 Max_CFS-C-all", + "Creality/Hyper Marble @K1C-all", + "Creality/Hyper Marble @K1C_CFS-C-all", + "Creality/Hyper Marble @K1_CFS-C-all", + "Creality/Hyper Marble @K2 Plus-all", + "Creality/Hyper Marble @K2 Pro-all", + "Creality/Hyper Marble @K2 SE-all", + "Creality/Hyper Marble @K2-all", + "Creality/Hyper Marble @SPARKX i7-all", + "Creality/Hyper PA6-CF @K2 Plus-all", + "Creality/Hyper PA6-CF @K2 Pro-all", + "Creality/Hyper PA612-CF @K2 Plus-all", + "Creality/Hyper PA612-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", + "Creality/Hyper PAHT-CF @K1C-all", + "Creality/Hyper PAHT-CF @K1C_CFS-C-all", + "Creality/Hyper PAHT-CF @K1_CFS-C-all", + "Creality/Hyper PAHT-CF @K2 Plus-all", + "Creality/Hyper PAHT-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K2-all", + "Creality/Hyper PC @K2 Plus-all", + "Creality/Hyper PC @K2 Pro-all", + "Creality/Hyper PLA @Ender-3 V4-all", + "Creality/Hyper PLA @Hi-all", + "Creality/Hyper PLA @K1 Max_CFS-C-all", + "Creality/Hyper PLA @K1 SE-all", + "Creality/Hyper PLA @K1 SE_CFS-C-all", + "Creality/Hyper PLA @K1C-all", + "Creality/Hyper PLA @K1C_CFS-C-all", + "Creality/Hyper PLA @K1_CFS-C-all", + "Creality/Hyper PLA @K2 Plus-all", + "Creality/Hyper PLA @K2 Pro-all", + "Creality/Hyper PLA @K2 SE-all", + "Creality/Hyper PLA @K2-all", + "Creality/Hyper PLA @SPARKX i7-all", + "Creality/Hyper PLA-CF @Ender-3 V4-all", + "Creality/Hyper PLA-CF @Hi-all", + "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", + "Creality/Hyper PLA-CF @K1 SE-all", + "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", + "Creality/Hyper PLA-CF @K1C-all", + "Creality/Hyper PLA-CF @K1C_CFS-C-all", + "Creality/Hyper PLA-CF @K1_CFS-C-all", + "Creality/Hyper PLA-CF @K2 Plus-all", + "Creality/Hyper PLA-CF @K2 Pro-all", + "Creality/Hyper PLA-CF @K2 SE-all", + "Creality/Hyper PLA-CF @K2-all", + "Creality/Hyper PLA-CF @SPARKX i7-all", + "Creality/Hyper PPA-CF @K2 Plus-all", + "Creality/Hyper PPA-CF @K2 Pro-all", + "Creality/Hyper Stardust @Hi-all", + "Creality/Hyper Stardust @K1 Max_CFS-C-all", + "Creality/Hyper Stardust @K1C-all", + "Creality/Hyper Stardust @K1C_CFS-C-all", + "Creality/Hyper Stardust @K1_CFS-C-all", + "Creality/Hyper Stardust @K2 Plus-all", + "Creality/Hyper Stardust @K2 Pro-all", + "Creality/Hyper Stardust @K2 SE-all", + "Creality/Hyper Stardust @K2-all", + "Creality/Hyper Stardust @SPARKX i7-all", + "Creality/Panchroma PLA Matte @K2 Plus-all", + "Creality/Panchroma PLA Satin @K2 Plus-all", + "Creality/PolySonic PLA @K2 Plus-all", + "Creality/PolySonic PLA Pro @K2 Plus-all", + "Creality/Soleyin Ultra PLA @Ender-3 V4-all", + "Creality/Soleyin Ultra PLA @Hi-all", + "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1C-all", + "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1_CFS-C-all", + "Creality/Soleyin Ultra PLA @K2 Plus-all", + "Creality/Soleyin Ultra PLA @K2 Pro-all", + "Creality/Soleyin Ultra PLA @K2 SE-all", + "Creality/Soleyin Ultra PLA @K2-all", + "Creality/Soleyin Ultra PLA @SPARKX i7-all", + "Creality/eSUN PET-Basic @K2 Plus-all", + "Creality/eSUN PLA+ @K2 Plus-all", + "Creality/eSUN PLA-CF @K2 Plus-all", + "Creality/eSUN PLA-HS @K2 Plus-all", + "Creality/eSUN PLA-LW @K2 Plus-all", + "Creality/eSUN PLA-Lite @K2 Plus-all", + "Creality/eSUN PLA-Matte @K2 Plus-all", + "Creality/eSUN PLA-Silk @K2 Plus-all", + "Cubicon/Cubicon ABS-A100 @base", + "Cubicon/Cubicon ABSk @base", + "Cubicon/Cubicon PA-CF @base", + "Cubicon/Cubicon PC @base", + "Cubicon/Cubicon PETG @base", + "Cubicon/Cubicon PLA @base", + "Cubicon/Cubicon PLA+ @base", + "Cubicon/Cubicon PLAi21 @base", + "Custom/Generic PC @MyToolChanger", + "Custom/Generic PETG @MyToolChanger", + "Custom/Generic PLA @MyToolChanger", + "Custom/Generic PLA-CF @MyToolChanger", + "Custom/Generic PVA @MyToolChanger", + "Custom/Generic TPU @MyToolChanger", + "DeltaMaker/DeltaMaker Brand PLA", + "DeltaMaker/DeltaMaker Generic PETG", + "DeltaMaker/DeltaMaker Generic PLA", + "Dremel/Dremel Generic PLA", + "Elegoo/Elegoo PAHT @base", + "Elegoo/Elegoo PC @base", + "Elegoo/Elegoo PETG @base", + "Elegoo/Elegoo PLA @base", + "Elegoo/Generic PA @base", + "Elegoo/Generic PC @base", + "Elegoo/Generic PET @base", + "Elegoo/Generic PETG @base", + "Elegoo/Generic PLA @base", + "FLSun/FLSun Generic PA", + "FLSun/FLSun Generic PA-CF", + "FLSun/FLSun Generic PC", + "FLSun/FLSun Generic PETG", + "FLSun/FLSun Generic PLA", + "FLSun/FLSun Generic PLA-CF", + "Flashforge/Flashforge Generic ASA @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic HS PLA", + "Flashforge/Flashforge Generic PETG", + "Flashforge/Flashforge Generic PETG @G3U", + "Flashforge/Flashforge Generic PETG @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PETG @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PETG-CF @G3U", + "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PETG-CF10", + "Flashforge/Flashforge Generic PLA", + "Flashforge/Flashforge Generic PLA-CF @G3U", + "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PLA-CF10", + "Flashforge/Flashforge Generic PLA-Silk", + "Flashforge/Flashforge Generic PVA", + "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PLA", + "Flashforge/FusRock Generic NexPA-CF25", + "Flashforge/FusRock Generic PAHT-CF", + "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic PET-CF", + "Flashforge/FusRock Generic PET-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic S-Multi", + "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic S-PAHT", + "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/Generic PETG @Flashforge Artemis", + "Flashforge/Generic PLA @Flashforge AD4", + "Flashforge/Polymaker Generic CoPA", + "Flashforge/Polymaker Generic S1", + "Flashforge/SUNLU PETG @base", + "Flashforge/SUNLU PLA Marble @base", + "Flashforge/SUNLU PLA Matte @base", + "Flashforge/SUNLU PLA+ 2.0 @base", + "Flashforge/SUNLU PLA+ @base", + "Flashforge/SUNLU Silk PLA+ @base", + "Flashforge/SUNLU Wood PLA @base", + "FlyingBear/FlyingBear Generic PA-CF", + "FlyingBear/FlyingBear Generic PC", + "FlyingBear/FlyingBear Generic PETG", + "FlyingBear/FlyingBear Generic PLA", + "InfiMech/InfiMech Generic PA-CF", + "InfiMech/InfiMech Generic PC", + "InfiMech/InfiMech Generic PETG", + "InfiMech/InfiMech Generic PLA", + "LH/LHS PC CF", + "LH/LHS PCTG", + "LH/LHS PETG", + "LH/LHS PLA", + "LONGER/Generic PETG @LONGER LK10", + "LONGER/Generic PETG @LONGER LK10 Plus", + "LONGER/Generic PLA @LONGER LK10", + "LONGER/Generic PLA @LONGER LK10 Plus", + "Lulzbot/Lulzbot 2.85mm ABS", + "Lulzbot/Lulzbot 2.85mm PETG", + "Lulzbot/Lulzbot 2.85mm PLA", + "OrcaArena/Arena PA-CF @base", + "OrcaArena/Arena PAHT-CF @base", + "OrcaArena/Arena PC @base", + "OrcaArena/Arena PET-CF @base", + "OrcaArena/Arena PETG Basic @base", + "OrcaArena/Arena PETG-CF @base", + "OrcaArena/Arena PLA Basic @base", + "OrcaArena/Arena PLA Impact @base", + "OrcaArena/Arena PLA Marble @base", + "OrcaArena/Arena PLA Matte @base", + "OrcaArena/Arena PLA Metal @base", + "OrcaArena/Arena PLA Silk @base", + "OrcaArena/Arena PLA Sparkle @base", + "OrcaArena/Arena PLA Tough @base", + "OrcaArena/Arena PLA-CF @base", + "OrcaArena/Arena Support G @base", + "OrcaArena/Arena Support W @base", + "OrcaArena/OrcaArena Generic PA", + "OrcaArena/OrcaArena Generic PA-CF", + "OrcaArena/OrcaArena Generic PC @base", + "OrcaArena/OrcaArena Generic PETG @base", + "OrcaArena/OrcaArena Generic PETG-CF @base", + "OrcaArena/OrcaArena Generic PLA @base", + "OrcaArena/OrcaArena Generic PLA Silk @base", + "OrcaArena/OrcaArena Generic PLA-CF @base", + "OrcaArena/PolyLite PLA @base", + "OrcaArena/PolyTerra PLA @base", + "OrcaFilamentLibrary/AliZ PA-CF @base", + "OrcaFilamentLibrary/AliZ PETG @base", + "OrcaFilamentLibrary/AliZ PETG-CF @base", + "OrcaFilamentLibrary/AliZ PETG-Metal @base", + "OrcaFilamentLibrary/AliZ PLA @base", + "OrcaFilamentLibrary/Bambu PA-CF @base", + "OrcaFilamentLibrary/Bambu PA6-CF @base", + "OrcaFilamentLibrary/Bambu PA6-GF @base", + "OrcaFilamentLibrary/Bambu PAHT-CF @base", + "OrcaFilamentLibrary/Bambu PC @base", + "OrcaFilamentLibrary/Bambu PC FR @base", + "OrcaFilamentLibrary/Bambu PET-CF @base", + "OrcaFilamentLibrary/Bambu PETG Basic @base", + "OrcaFilamentLibrary/Bambu PETG HF @base", + "OrcaFilamentLibrary/Bambu PETG Translucent @base", + "OrcaFilamentLibrary/Bambu PETG-CF @base", + "OrcaFilamentLibrary/Bambu PLA Aero @base", + "OrcaFilamentLibrary/Bambu PLA Basic @base", + "OrcaFilamentLibrary/Bambu PLA Dynamic @base", + "OrcaFilamentLibrary/Bambu PLA Galaxy @base", + "OrcaFilamentLibrary/Bambu PLA Glow @base", + "OrcaFilamentLibrary/Bambu PLA Impact @base", + "OrcaFilamentLibrary/Bambu PLA Marble @base", + "OrcaFilamentLibrary/Bambu PLA Matte @base", + "OrcaFilamentLibrary/Bambu PLA Metal @base", + "OrcaFilamentLibrary/Bambu PLA Silk @base", + "OrcaFilamentLibrary/Bambu PLA Silk+ @base", + "OrcaFilamentLibrary/Bambu PLA Sparkle @base", + "OrcaFilamentLibrary/Bambu PLA Tough @base", + "OrcaFilamentLibrary/Bambu PLA Wood @base", + "OrcaFilamentLibrary/Bambu PLA-CF @base", + "OrcaFilamentLibrary/Bambu PPA-CF @base", + "OrcaFilamentLibrary/Bambu Support For PA/PET @base", + "OrcaFilamentLibrary/Bambu Support For PLA @base", + "OrcaFilamentLibrary/Bambu Support For PLA/PETG @base", + "OrcaFilamentLibrary/Bambu Support G @base", + "OrcaFilamentLibrary/Bambu Support W @base", + "OrcaFilamentLibrary/COEX NYLEX PA6-CF @base", + "OrcaFilamentLibrary/COEX NYLEX UNFILLED @base", + "OrcaFilamentLibrary/COEX PCTG PRIME @base", + "OrcaFilamentLibrary/COEX PETG @base", + "OrcaFilamentLibrary/COEX PLA @base", + "OrcaFilamentLibrary/COEX PLA PRIME @base", + "OrcaFilamentLibrary/COEX PLA+Silk @base", + "OrcaFilamentLibrary/DREMC PA12-CF @base", + "OrcaFilamentLibrary/DREMC PA6-CF @base", + "OrcaFilamentLibrary/DREMC PET-CF @base", + "OrcaFilamentLibrary/DREMC PETG @base", + "OrcaFilamentLibrary/DREMC PLA+ @base", + "OrcaFilamentLibrary/DREMC PLA+ HS @base", + "OrcaFilamentLibrary/DREMC PPA-CF @base", + "OrcaFilamentLibrary/Elas PETG Basic @base", + "OrcaFilamentLibrary/Elas PLA Basic @base", + "OrcaFilamentLibrary/Elas PLA Pro @base", + "OrcaFilamentLibrary/Elegoo PAHT @base", + "OrcaFilamentLibrary/Elegoo PC @base", + "OrcaFilamentLibrary/Elegoo PETG @base", + "OrcaFilamentLibrary/Elegoo PLA @base", + "OrcaFilamentLibrary/Eolas Prints PETG @System", + "OrcaFilamentLibrary/Eolas Prints PETG Transition @System", + "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant @System", + "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial @System", + "OrcaFilamentLibrary/Eolas Prints PLA High Speed @System", + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850 @System", + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870 @System", + "OrcaFilamentLibrary/Eolas Prints PLA Matte @System", + "OrcaFilamentLibrary/Eolas Prints PLA Neon @System", + "OrcaFilamentLibrary/Eolas Prints PLA Premium @System", + "OrcaFilamentLibrary/Eolas Prints PLA Silk @System", + "OrcaFilamentLibrary/Eolas Prints PLA Transition @System", + "OrcaFilamentLibrary/FDplast HIPS @base", + "OrcaFilamentLibrary/FDplast PETG @base", + "OrcaFilamentLibrary/FDplast PLA @base", + "OrcaFilamentLibrary/FDplast SBS @base", + "OrcaFilamentLibrary/FILL3D PA @base", + "OrcaFilamentLibrary/FILL3D PETG @base", + "OrcaFilamentLibrary/FILL3D PETG CF @base", + "OrcaFilamentLibrary/FILL3D PLA Basic @base", + "OrcaFilamentLibrary/FILL3D PLA Turbo @base", + "OrcaFilamentLibrary/FILL3D PP @base", + "OrcaFilamentLibrary/FILL3D PPCF @base", + "OrcaFilamentLibrary/Fiberon PA12-CF @base", + "OrcaFilamentLibrary/Fiberon PA6-CF @base", + "OrcaFilamentLibrary/Fiberon PA6-GF @base", + "OrcaFilamentLibrary/Fiberon PA612-CF @base", + "OrcaFilamentLibrary/Fiberon PET-CF @base", + "OrcaFilamentLibrary/Fiberon PETG-ESD @base", + "OrcaFilamentLibrary/Fiberon PETG-rCF @base", + "OrcaFilamentLibrary/FilAr PETG @base", + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima", + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante", + "OrcaFilamentLibrary/FilAr PETG Azul Boreal", + "OrcaFilamentLibrary/FilAr PETG Azul Francia", + "OrcaFilamentLibrary/FilAr PETG Azul Imperial", + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida", + "OrcaFilamentLibrary/FilAr PETG Cian", + "OrcaFilamentLibrary/FilAr PETG Coral", + "OrcaFilamentLibrary/FilAr PETG Cristal", + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza", + "OrcaFilamentLibrary/FilAr PETG Gris Plata", + "OrcaFilamentLibrary/FilAr PETG Magenta", + "OrcaFilamentLibrary/FilAr PETG Negro Azabache", + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi", + "OrcaFilamentLibrary/FilAr PLA @base", + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio", + "OrcaFilamentLibrary/FilAr PLA Azul Francia", + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida", + "OrcaFilamentLibrary/FilAr PLA Blanco Calido", + "OrcaFilamentLibrary/FilAr PLA Bronce", + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche", + "OrcaFilamentLibrary/FilAr PLA Carpincho", + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo", + "OrcaFilamentLibrary/FilAr PLA Cobre", + "OrcaFilamentLibrary/FilAr PLA Dorado", + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza", + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra", + "OrcaFilamentLibrary/FilAr PLA Gris Plata", + "OrcaFilamentLibrary/FilAr PLA Manteca", + "OrcaFilamentLibrary/FilAr PLA Marron Oxido", + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre", + "OrcaFilamentLibrary/FilAr PLA Negro Azabache", + "OrcaFilamentLibrary/FilAr PLA Oro", + "OrcaFilamentLibrary/FilAr PLA Piel", + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras", + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto", + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco", + "OrcaFilamentLibrary/FilAr PLA Tabaco", + "OrcaFilamentLibrary/FilAr PLA Titanio", + "OrcaFilamentLibrary/FilAr PLA Verde FilAr", + "OrcaFilamentLibrary/FilAr PLA Verde Manzana", + "OrcaFilamentLibrary/FilAr PLA Verde Oliva", + "OrcaFilamentLibrary/FilAr PLA Verde Pixel", + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda", + "OrcaFilamentLibrary/FilAr PLA-mate @base", + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo", + "OrcaFilamentLibrary/FilAr PLA-mate Azul", + "OrcaFilamentLibrary/FilAr PLA-mate Beige", + "OrcaFilamentLibrary/FilAr PLA-mate Blanco", + "OrcaFilamentLibrary/FilAr PLA-mate Bordo", + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo", + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate", + "OrcaFilamentLibrary/FilAr PLA-mate Gris", + "OrcaFilamentLibrary/FilAr PLA-mate Marron", + "OrcaFilamentLibrary/FilAr PLA-mate Naranja", + "OrcaFilamentLibrary/FilAr PLA-mate Negro", + "OrcaFilamentLibrary/FilAr PLA-mate Piel", + "OrcaFilamentLibrary/FilAr PLA-mate Rojo", + "OrcaFilamentLibrary/FilAr PLA-mate Rosa", + "OrcaFilamentLibrary/FilAr PLA-mate Uva", + "OrcaFilamentLibrary/FilAr PLA-mate Verde", + "OrcaFilamentLibrary/FilAr PLA-mate Violeta", + "OrcaFilamentLibrary/Generic PA-CF @System", + "OrcaFilamentLibrary/Generic PLA High Speed @System", + "OrcaFilamentLibrary/Generic PLA-CF @System", + "OrcaFilamentLibrary/Generic PPA-GF @System", + "OrcaFilamentLibrary/GreenGate3D PETG @base", + "OrcaFilamentLibrary/NIT PETG @base", + "OrcaFilamentLibrary/NIT PLA @base", + "OrcaFilamentLibrary/Numakers PLA+ @base", + "OrcaFilamentLibrary/Overture Air PLA @base", + "OrcaFilamentLibrary/Overture Easy PLA @base", + "OrcaFilamentLibrary/Overture Matte PLA @base", + "OrcaFilamentLibrary/Overture PLA @base", + "OrcaFilamentLibrary/Overture PLA Pro @base", + "OrcaFilamentLibrary/Overture Rock PLA @base", + "OrcaFilamentLibrary/Overture Silk PLA @base", + "OrcaFilamentLibrary/Overture Super PLA+ @base", + "OrcaFilamentLibrary/Panchroma CoPE @base", + "OrcaFilamentLibrary/Panchroma PLA @base", + "OrcaFilamentLibrary/Panchroma PLA Celestial @base", + "OrcaFilamentLibrary/Panchroma PLA Galaxy @base", + "OrcaFilamentLibrary/Panchroma PLA Glow @base", + "OrcaFilamentLibrary/Panchroma PLA Luminous @base", + "OrcaFilamentLibrary/Panchroma PLA Marble @base", + "OrcaFilamentLibrary/Panchroma PLA Matte @base", + "OrcaFilamentLibrary/Panchroma PLA Metallic @base", + "OrcaFilamentLibrary/Panchroma PLA Neon @base", + "OrcaFilamentLibrary/Panchroma PLA Satin @base", + "OrcaFilamentLibrary/Panchroma PLA Silk @base", + "OrcaFilamentLibrary/Panchroma PLA Starlight @base", + "OrcaFilamentLibrary/Panchroma PLA Temp Shift @base", + "OrcaFilamentLibrary/Panchroma PLA Translucent @base", + "OrcaFilamentLibrary/Panchroma PLA UV Shift @base", + "OrcaFilamentLibrary/PolyLite PETG @base", + "OrcaFilamentLibrary/PolyLite PLA @base", + "OrcaFilamentLibrary/PolyLite PLA Pro @base", + "OrcaFilamentLibrary/PolyTerra Dual PLA @System", + "OrcaFilamentLibrary/PolyTerra PLA @base", + "OrcaFilamentLibrary/Polymaker HT-PLA @base", + "OrcaFilamentLibrary/Polymaker HT-PLA-GF @base", + "OrcaFilamentLibrary/SUNLU PETG @base", + "OrcaFilamentLibrary/SUNLU PLA Marble @base", + "OrcaFilamentLibrary/SUNLU PLA Matte @base", + "OrcaFilamentLibrary/SUNLU PLA+ 2.0 @base", + "OrcaFilamentLibrary/SUNLU PLA+ @base", + "OrcaFilamentLibrary/SUNLU Silk PLA+ @base", + "OrcaFilamentLibrary/SUNLU Wood PLA @base", + "OrcaFilamentLibrary/Valment PLA @base", + "OrcaFilamentLibrary/Valment PLA Galaxy @base", + "OrcaFilamentLibrary/Valment PLA Silk @base", + "OrcaFilamentLibrary/Valment PLA-CF @base", + "OrcaFilamentLibrary/eSUN PETG @base", + "OrcaFilamentLibrary/eSUN PLA+ @base", + "OrcaFilamentLibrary/eSUN PLA-Basic @base", + "OrcaFilamentLibrary/eSUN PLA-Marble @base", + "OrcaFilamentLibrary/eSUN PLA-Matte @base", + "OrcaFilamentLibrary/eSUN ePLA-LW @System", + "OrcaFilamentLibrary/fdm_filament_pla_silk", + "Peopoly/Peopoly Generic PLA", + "Peopoly/Peopoly Lancer PLA-C", + "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", + "Prusa/Prusa Generic ABS @CORE One", + "Prusa/Prusa Generic ABS @CORE One 0.6", + "Prusa/Prusa Generic ABS @CORE One 0.8", + "Prusa/Prusa Generic ABS @CORE One HF 0.4", + "Prusa/Prusa Generic ABS @CORE One HF 0.5", + "Prusa/Prusa Generic ABS @CORE One HF 0.6", + "Prusa/Prusa Generic ABS @CORE One HF 0.8", + "Prusa/Prusa Generic ABS @MK3.5", + "Prusa/Prusa Generic ABS @MK3.5 0.25", + "Prusa/Prusa Generic ABS @MK3.5 0.6", + "Prusa/Prusa Generic ABS @MK3.5 0.8", + "Prusa/Prusa Generic ABS @MK4S", + "Prusa/Prusa Generic ABS @MK4S 0.6", + "Prusa/Prusa Generic ABS @MK4S 0.8", + "Prusa/Prusa Generic ABS @MK4S HF0.4", + "Prusa/Prusa Generic ABS @MK4S HF0.5", + "Prusa/Prusa Generic ABS @MK4S HF0.6", + "Prusa/Prusa Generic ABS @MK4S HF0.8", + "Prusa/Prusa Generic ABS HF @MK3.5", + "Prusa/Prusa Generic ABS HF @MK3.5 0.6", + "Prusa/Prusa Generic ABS HF @MK3.5 0.8", + "Prusa/Prusa Generic ASA @CORE One", + "Prusa/Prusa Generic ASA @CORE One 0.6", + "Prusa/Prusa Generic ASA @CORE One 0.8", + "Prusa/Prusa Generic ASA @CORE One HF 0.4", + "Prusa/Prusa Generic ASA @CORE One HF 0.5", + "Prusa/Prusa Generic ASA @CORE One HF 0.6", + "Prusa/Prusa Generic ASA @CORE One HF 0.8", + "Prusa/Prusa Generic ASA @MK3.5", + "Prusa/Prusa Generic ASA @MK3.5 0.25", + "Prusa/Prusa Generic ASA @MK3.5 0.6", + "Prusa/Prusa Generic ASA @MK3.5 0.8", + "Prusa/Prusa Generic ASA @MK4S", + "Prusa/Prusa Generic ASA @MK4S 0.6", + "Prusa/Prusa Generic ASA @MK4S 0.8", + "Prusa/Prusa Generic ASA @MK4S HF0.4", + "Prusa/Prusa Generic ASA @MK4S HF0.5", + "Prusa/Prusa Generic ASA @MK4S HF0.6", + "Prusa/Prusa Generic ASA @MK4S HF0.8", + "Prusa/Prusa Generic ASA HF @MK3.5", + "Prusa/Prusa Generic ASA HF @MK3.5 0.6", + "Prusa/Prusa Generic ASA HF @MK3.5 0.8", + "Prusa/Prusa Generic PA @MK3.5", + "Prusa/Prusa Generic PA @MK3.5 0.25", + "Prusa/Prusa Generic PA @MK3.5 0.6", + "Prusa/Prusa Generic PA @MK3.5 0.8", + "Prusa/Prusa Generic PA-CF @MK3.5", + "Prusa/Prusa Generic PA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PC @MK3.5", + "Prusa/Prusa Generic PC @MK3.5 0.25", + "Prusa/Prusa Generic PC @MK3.5 0.6", + "Prusa/Prusa Generic PC @MK3.5 0.8", + "Prusa/Prusa Generic PC HF @MK3.5", + "Prusa/Prusa Generic PC HF @MK3.5 0.6", + "Prusa/Prusa Generic PC HF @MK3.5 0.8", + "Prusa/Prusa Generic PETG @CORE One", + "Prusa/Prusa Generic PETG @CORE One 0.6", + "Prusa/Prusa Generic PETG @CORE One 0.8", + "Prusa/Prusa Generic PETG @CORE One HF 0.4", + "Prusa/Prusa Generic PETG @CORE One HF 0.5", + "Prusa/Prusa Generic PETG @CORE One HF 0.6", + "Prusa/Prusa Generic PETG @CORE One HF 0.8", + "Prusa/Prusa Generic PETG @MK3.5", + "Prusa/Prusa Generic PETG @MK3.5 0.25", + "Prusa/Prusa Generic PETG @MK3.5 0.6", + "Prusa/Prusa Generic PETG @MK3.5 0.8", + "Prusa/Prusa Generic PETG @MK4S", + "Prusa/Prusa Generic PETG @MK4S 0.6", + "Prusa/Prusa Generic PETG @MK4S 0.8", + "Prusa/Prusa Generic PETG @MK4S HF0.4", + "Prusa/Prusa Generic PETG @MK4S HF0.5", + "Prusa/Prusa Generic PETG @MK4S HF0.6", + "Prusa/Prusa Generic PETG @MK4S HF0.8", + "Prusa/Prusa Generic PETG HF @MK3.5", + "Prusa/Prusa Generic PETG HF @MK3.5 0.6", + "Prusa/Prusa Generic PETG HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA @CORE One", + "Prusa/Prusa Generic PLA @CORE One 0.6", + "Prusa/Prusa Generic PLA @CORE One 0.8", + "Prusa/Prusa Generic PLA @CORE One HF 0.4", + "Prusa/Prusa Generic PLA @CORE One HF 0.5", + "Prusa/Prusa Generic PLA @CORE One HF 0.6", + "Prusa/Prusa Generic PLA @CORE One HF 0.8", + "Prusa/Prusa Generic PLA @MK3.5", + "Prusa/Prusa Generic PLA @MK3.5 0.25", + "Prusa/Prusa Generic PLA @MK3.5 0.6", + "Prusa/Prusa Generic PLA @MK3.5 0.8", + "Prusa/Prusa Generic PLA @MK4S", + "Prusa/Prusa Generic PLA @MK4S 0.6", + "Prusa/Prusa Generic PLA @MK4S 0.8", + "Prusa/Prusa Generic PLA @MK4S HF0.4", + "Prusa/Prusa Generic PLA @MK4S HF0.5", + "Prusa/Prusa Generic PLA @MK4S HF0.6", + "Prusa/Prusa Generic PLA @MK4S HF0.8", + "Prusa/Prusa Generic PLA HF @MK3.5", + "Prusa/Prusa Generic PLA HF @MK3.5 0.6", + "Prusa/Prusa Generic PLA HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA Silk @CORE One", + "Prusa/Prusa Generic PLA Silk @CORE One 0.6", + "Prusa/Prusa Generic PLA Silk @CORE One 0.8", + "Prusa/Prusa Generic PLA Silk @MK4S", + "Prusa/Prusa Generic PLA Silk @MK4S 0.6", + "Prusa/Prusa Generic PLA Silk @MK4S 0.8", + "Prusa/Prusa Generic PLA-CF @MK3.5", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PVA @MK3.5", + "Prusa/Prusa Generic PVA @MK3.5 0.25", + "Prusa/Prusa Generic PVA @MK3.5 0.6", + "Prusa/Prusa Generic PVA @MK3.5 0.8", + "Prusa/Prusa Generic PVA HF @MK3.5", + "Prusa/Prusa Generic PVA HF @MK3.5 0.6", + "Prusa/Prusa Generic PVA HF @MK3.5 0.8", + "Prusa/Prusa Generic TPU @CORE One", + "Prusa/Prusa Generic TPU @CORE One 0.6", + "Prusa/Prusa Generic TPU @CORE One 0.8", + "Prusa/Prusa Generic TPU @MK3.5", + "Prusa/Prusa Generic TPU @MK4S", + "Prusa/Prusa Generic TPU @MK4S 0.6", + "Prusa/Prusa Generic TPU @MK4S 0.8", + "Prusa/Prusa Generic TPU HF @MK3.5", + "Prusa/Prusament ASA @CORE One", + "Prusa/Prusament ASA @CORE One 0.6", + "Prusa/Prusament ASA @CORE One 0.8", + "Prusa/Prusament ASA @CORE One HF 0.4", + "Prusa/Prusament ASA @CORE One HF 0.5", + "Prusa/Prusament ASA @CORE One HF 0.6", + "Prusa/Prusament ASA @CORE One HF 0.8", + "Prusa/Prusament PA-CF @CORE One", + "Prusa/Prusament PA-CF @CORE One 0.6", + "Prusa/Prusament PA-CF @CORE One 0.8", + "Prusa/Prusament PC Blend @CORE One", + "Prusa/Prusament PC Blend @CORE One 0.6", + "Prusa/Prusament PC Blend @CORE One 0.8", + "Prusa/Prusament PC Blend @CORE One HF 0.4", + "Prusa/Prusament PC Blend @CORE One HF 0.5", + "Prusa/Prusament PC Blend @CORE One HF 0.6", + "Prusa/Prusament PC Blend @CORE One HF 0.8", + "Prusa/Prusament PC-CF @CORE One", + "Prusa/Prusament PC-CF @CORE One 0.6", + "Prusa/Prusament PC-CF @CORE One 0.8", + "Prusa/Prusament PETG @CORE One", + "Prusa/Prusament PETG @CORE One 0.6", + "Prusa/Prusament PETG @CORE One 0.8", + "Prusa/Prusament PETG @CORE One HF 0.4", + "Prusa/Prusament PETG @CORE One HF 0.5", + "Prusa/Prusament PETG @CORE One HF 0.6", + "Prusa/Prusament PETG @CORE One HF 0.8", + "Prusa/Prusament PLA @CORE One", + "Prusa/Prusament PLA @CORE One 0.6", + "Prusa/Prusament PLA @CORE One 0.8", + "Prusa/Prusament PLA @CORE One HF 0.4", + "Prusa/Prusament PLA @CORE One HF 0.5", + "Prusa/Prusament PLA @CORE One HF 0.6", + "Prusa/Prusament PLA @CORE One HF 0.8", + "Prusa/Prusament PVB @CORE One", + "Prusa/Prusament PVB @CORE One 0.6", + "Prusa/Prusament PVB @CORE One 0.8", + "Prusa/Prusament rPLA @CORE One", + "Prusa/Prusament rPLA @CORE One 0.6", + "Prusa/Prusament rPLA @CORE One 0.8", + "Qidi/Bambu PETG", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Bambu PLA", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/HATCHBOX PETG @Qidi", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/HATCHBOX PLA @Qidi", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Overture PLA @Qidi", + "Qidi/Overture PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/PolyLite PLA @Qidi", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", + "Qidi/QIDI PA-Ultra", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PA12-CF", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PAHT-CF", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PAHT-GF @0.6 nozzle", + "Qidi/QIDI PAHT-GF @0.8 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-CF", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PET-GF", + "Qidi/QIDI PET-GF @0.6 nozzle", + "Qidi/QIDI PET-GF @0.8 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Basic", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Rapido", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Tough", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Translucent", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG-CF", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG-GF", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Basic", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Matte Basic", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Metal", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Silk", + "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PPS-CF", + "Qidi/QIDI PPS-CF @0.6 nozzle", + "Qidi/QIDI PPS-CF @0.8 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PPS-GF", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI Support For PAHT", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI Support For PET/PA", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI UltraPA-CF25", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI WOOD Rapido", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PA", + "Qidi/Qidi Generic PA-CF", + "Qidi/Qidi Generic PC", + "Qidi/Qidi Generic PETG", + "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PETG-CF", + "Qidi/Qidi Generic PLA", + "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA Silk", + "Qidi/Qidi Generic PLA+", + "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA-CF", + "Qidi/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi PLA-CF", + "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Tinmorry PETG-ECO", + "RH3D/Generic ABS @E3NG v1.2S", + "RH3D/Generic ASA @E3NG v1.2S", + "RH3D/Generic PCCF @E3NG v1.2S", + "RH3D/Generic PETG @E3NG v1.2S", + "RH3D/Generic PLA @E3NG v1.2S", + "RH3D/Generic TPU @E3NG v1.2S", + "Ratrig/RatRig BigNozzle PCTG", + "Ratrig/RatRig BigNozzle PETG", + "Ratrig/RatRig BigNozzle PLA", + "Ratrig/RatRig Generic PA", + "Ratrig/RatRig Generic PA-CF", + "Ratrig/RatRig Generic PC", + "Ratrig/RatRig Generic PCTG", + "Ratrig/RatRig Generic PETG", + "Ratrig/RatRig Generic PLA", + "Ratrig/RatRig Generic PLA-CF", + "Ratrig/RatRig PunkFil PETG", + "Ratrig/RatRig PunkFil PETG CF", + "SecKit/SecKit Generic PA", + "SecKit/SecKit Generic PA-CF", + "SecKit/SecKit Generic PC", + "SecKit/SecKit Generic PETG", + "SecKit/SecKit Generic PLA", + "SecKit/SecKit Generic PLA-CF", + "Snapmaker/Fiberon PA12-CF10 @Snapmaker U1 base", + "Snapmaker/Fiberon PA6-CF20 @Snapmaker U1 base", + "Snapmaker/Fiberon PA612-ESD @Snapmaker U1 base", + "Snapmaker/Panchroma CoPE @Snapmaker U1 base", + "Snapmaker/Panchroma PLA @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Celestial @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Galaxy @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Glow @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Luminous @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Marble @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Matte @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Metallic @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Neon @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Satin @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Silk @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Starlight @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Temp Shift @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Translucent @Snapmaker U1 base", + "Snapmaker/Panchroma PLA UV Shift @Snapmaker U1 base", + "Snapmaker/PolyLite CosPLA @Snapmaker U1 base", + "Snapmaker/PolyLite PLA @Snapmaker U1 base", + "Snapmaker/PolyLite PLA @base", + "Snapmaker/PolyLite PLA Galaxy @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Glow @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Luminous @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Neon @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Pro @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Pro Metallic @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Starlight @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Translucent @Snapmaker U1 base", + "Snapmaker/PolyTerra PLA @Snapmaker U1 base", + "Snapmaker/PolyTerra PLA Marble @Snapmaker U1 base", + "Snapmaker/PolyTerra PLA+ @Snapmaker U1 base", + "Snapmaker/Polymaker HT-PLA @Snapmaker U1 base", + "Snapmaker/Polymaker HT-PLA-GF @Snapmaker U1 base", + "Snapmaker/Polymaker PLA @Snapmaker U1 base", + "Snapmaker/Polymaker PLA Pro @Snapmaker U1 base", + "Snapmaker/Polymaker PLA Pro Metallic @Snapmaker U1 base", + "Snapmaker/Snapmaker Dual PA-CF @base", + "Snapmaker/Snapmaker Dual PET @base", + "Snapmaker/Snapmaker Dual PLA @base", + "Snapmaker/Snapmaker Dual PLA Eco @base", + "Snapmaker/Snapmaker Dual PLA Matte @base", + "Snapmaker/Snapmaker Dual PLA Metal @base", + "Snapmaker/Snapmaker Dual PLA Silk @base", + "Snapmaker/Snapmaker Dual PLA-CF @base", + "Snapmaker/Snapmaker J1 PA-CF @base", + "Snapmaker/Snapmaker J1 PET @base", + "Snapmaker/Snapmaker J1 PLA @base", + "Snapmaker/Snapmaker J1 PLA Eco @base", + "Snapmaker/Snapmaker J1 PLA Matte @base", + "Snapmaker/Snapmaker J1 PLA Metal @base", + "Snapmaker/Snapmaker J1 PLA Silk @base", + "Snapmaker/Snapmaker J1 PLA-CF @base", + "Snapmaker/Snapmaker PA-CF @U1 base", + "Snapmaker/Snapmaker PA-CF @base", + "Snapmaker/Snapmaker PET @U1 base", + "Snapmaker/Snapmaker PET @base", + "Snapmaker/Snapmaker PLA @U1 base", + "Snapmaker/Snapmaker PLA @base", + "Snapmaker/Snapmaker PLA Eco @U1 base", + "Snapmaker/Snapmaker PLA Eco @base", + "Snapmaker/Snapmaker PLA Metal @U1 base", + "Snapmaker/Snapmaker PLA Silk @U1 base", + "Snapmaker/Snapmaker PLA Silk @base", + "Snapmaker/Snapmaker PLA-CF @U1 base", + "Snapmaker/Snapmaker PLA-CF @base", + "Sovol/Generic ABS @Sovol SV08 MAX", + "Sovol/Generic PC @Sovol SV08 MAX", + "Sovol/Generic PETG @Sovol SV08 MAX", + "Sovol/Generic PLA @Sovol SV08 MAX", + "Sovol/Generic PLA Silk @Sovol SV08 MAX", + "Sovol/Generic TPU @Sovol SV08 MAX", + "Sovol/Polymaker PETG @Sovol SV08 MAX", + "Sovol/SUNLU PETG @Sovol SV08 MAX", + "Sovol/Sovol SV06 ACE ABS", + "Sovol/Sovol SV06 ACE PETG", + "Sovol/Sovol SV06 ACE PLA", + "Sovol/Sovol SV06 ACE TPU", + "Sovol/Sovol SV06 Plus ACE ABS", + "Sovol/Sovol SV06 Plus ACE PETG", + "Sovol/Sovol SV06 Plus ACE PLA", + "Sovol/Sovol SV06 Plus ACE TPU", + "Sovol/Sovol SV07 PLA", + "Sovol/Sovol SV08 ABS", + "Sovol/Sovol SV08 PETG", + "Sovol/Sovol SV08 PLA", + "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", + "Sovol/Sovol SV08 TPU", + "Sovol/Sovol Zero ABS", + "Sovol/Sovol Zero PC", + "Sovol/Sovol Zero PETG", + "Sovol/Sovol Zero PETG HS Nozzle", + "Sovol/Sovol Zero PLA Basic", + "Sovol/Sovol Zero PLA Basic HS Nozzle", + "Sovol/Sovol Zero PLA Silk", + "Sovol/Sovol Zero PLA Silk HS Nozzle", + "Sovol/Sovol Zero TPU", + "Tiertime/Tiertime Generic BVOH", + "Tiertime/Tiertime Generic BVOH@300HS", + "Tiertime/Tiertime Generic EVA", + "Tiertime/Tiertime Generic EVA@300HS", + "Tiertime/Tiertime Generic HIPS", + "Tiertime/Tiertime Generic HIPS@300HS", + "Tiertime/Tiertime Generic PA", + "Tiertime/Tiertime Generic PA-CF", + "Tiertime/Tiertime Generic PA-CF@300HS", + "Tiertime/Tiertime Generic PA@300HS", + "Tiertime/Tiertime Generic PC", + "Tiertime/Tiertime Generic PC@300HS", + "Tiertime/Tiertime Generic PCTG", + "Tiertime/Tiertime Generic PCTG@300HS", + "Tiertime/Tiertime Generic PE", + "Tiertime/Tiertime Generic PE-CF", + "Tiertime/Tiertime Generic PE-CF@300HS", + "Tiertime/Tiertime Generic PE@300HS", + "Tiertime/Tiertime Generic PETG", + "Tiertime/Tiertime Generic PETG-CF", + "Tiertime/Tiertime Generic PETG-CF@300HS", + "Tiertime/Tiertime Generic PETG@300HS", + "Tiertime/Tiertime Generic PHA", + "Tiertime/Tiertime Generic PHA@300HS", + "Tiertime/Tiertime Generic PLA", + "Tiertime/Tiertime Generic PLA High Speed", + "Tiertime/Tiertime Generic PLA High Speed@300HS", + "Tiertime/Tiertime Generic PLA Silk", + "Tiertime/Tiertime Generic PLA Silk@300HS", + "Tiertime/Tiertime Generic PLA-CF", + "Tiertime/Tiertime Generic PLA-CF@300HS", + "Tiertime/Tiertime Generic PLA@300HS", + "Tiertime/Tiertime Generic PP", + "Tiertime/Tiertime Generic PP-CF", + "Tiertime/Tiertime Generic PP-CF@300HS", + "Tiertime/Tiertime Generic PP-GF", + "Tiertime/Tiertime Generic PP-GF@300HS", + "Tiertime/Tiertime Generic PP@300HS", + "Tiertime/Tiertime Generic PPA-CF", + "Tiertime/Tiertime Generic PPA-CF@300HS", + "Tiertime/Tiertime Generic PPA-GF", + "Tiertime/Tiertime Generic PPA-GF@300HS", + "Tiertime/Tiertime Generic SBS", + "Tiertime/Tiertime Generic SBS@300HS", + "Tiertime/Tiertime PA6-CF", + "Tiertime/Tiertime PA6-CF@300HS", + "Tiertime/Tiertime PC", + "Tiertime/Tiertime PC@300HS", + "Tiertime/Tiertime PET-CF", + "Tiertime/Tiertime PET-CF@300HS", + "Tiertime/Tiertime PETG", + "Tiertime/Tiertime PETG@300HS", + "Tiertime/Tiertime PLA", + "Tiertime/Tiertime PLA-CF", + "Tiertime/Tiertime PLA-CF@300HS", + "Tiertime/Tiertime PLA@300HS", + "TwoTrees/TwoTrees Generic HS PLA @SK1", + "Volumic/Désactivé", + "Volumic/PA6 CF20 (Performance)", + "Volumic/PETG ESD (Performance)", + "Volumic/PPS Carbone (Performance)", + "Volumic/Volumic NYLON Ultra", + "Volumic/Volumic NYLON Ultra (Performance)", + "Volumic/Volumic PC", + "Volumic/Volumic PC (Performance)", + "Volumic/Volumic PCTG Ultra (Performance)", + "Volumic/Volumic PETG Ultra", + "Volumic/Volumic PETG Ultra (Performance)", + "Volumic/Volumic PETG Ultra carbone", + "Volumic/Volumic PETG Ultra carbone (Performance)", + "Volumic/Volumic PLA Ultra", + "Volumic/Volumic PLA Ultra (Performance)", + "Volumic/Volumic PP Ultra", + "Volumic/Volumic PP Ultra (Performance)", + "Volumic/Volumic UNIVERSAL Ultra", + "Volumic/Volumic UNIVERSAL Ultra (Performance)", + "Vzbot/Vzbot Generic PA", + "Vzbot/Vzbot Generic PA-CF", + "Vzbot/Vzbot Generic PC", + "Vzbot/Vzbot Generic PETG", + "Vzbot/Vzbot Generic PLA", + "Vzbot/Vzbot Generic PLA-CF", + "Wanhao France/YUMI PLA Bowden", + "Wanhao France/YUMI PLA Direct Drive", + "Wanhao France/Yumi Generic PETG", + "Wanhao France/Yumi Generic PLA", + "WonderMaker/WonderMaker PET-CF", + "WonderMaker/WonderMaker PETG Basic", + "WonderMaker/WonderMaker PLA Basic", + "WonderMaker/WonderMaker PLA Marble", + "WonderMaker/WonderMaker PLA Matte", + "WonderMaker/WonderMaker PLA Metal", + "WonderMaker/WonderMaker PLA Silk", + "WonderMaker/WonderMaker PLA Wood", + "Z-Bolt/Generic ABS @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic ABS @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic ABS @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt Base", + "Z-Bolt/Generic PA @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic PA @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PA @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PA @Z-Bolt Base", + "Z-Bolt/Generic PETG @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt Base", + "Z-Bolt/Generic PLA @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PLA @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PLA @Z-Bolt Base", + "re3D/re3D Greengate rPETG", + "re3D/re3D Greengate rPETG @0.8 nozzle", + "re3D/re3D Greengate rPETG @1.75 nozzle", + "re3D/re3D PC", + "re3D/re3D PC @0.4 nozzle", + "re3D/re3D PC @0.8 nozzle", + "re3D/re3D PETG", + "re3D/re3D PETG @0.4 nozzle", + "re3D/re3D PETG @0.8 nozzle", + "re3D/re3D PLA", + "re3D/re3D PLA @0.4 nozzle", + "re3D/re3D PLA @0.8 nozzle", + "re3D/re3D rPP", + "re3D/re3D rPP @0.8 nozzle", + "re3D/re3D rPP @1.75 nozzle" + ], + "ids": { + "00001": [ + "Creality/Generic PLA" + ], + "00002": [ + "Creality/Generic PLA-Silk" + ], + "00003": [ + "Creality/Generic PETG" + ], + "00004": [ + "Creality/Generic ABS" + ], + "00005": [ + "Creality/Generic TPU" + ], + "00006": [ + "Creality/Generic PLA-CF" + ], + "00007": [ + "Creality/Generic ASA" + ], + "00008": [ + "Creality/Generic PA" + ], + "00009": [ + "Creality/Generic PA-CF" + ], + "00010": [ + "Creality/Generic BVOH" + ], + "00011": [ + "Creality/Generic PVA" + ], + "00012": [ + "Creality/Generic HIPS" + ], + "00013": [ + "Creality/Generic PET-CF" + ], + "00014": [ + "Creality/Generic PETG-CF" + ], + "00015": [ + "Creality/Generic PA6-CF" + ], + "00016": [ + "Creality/Generic PAHT-CF" + ], + "00017": [ + "Creality/Generic PPS" + ], + "00018": [ + "Creality/Generic PPS-CF" + ], + "00019": [ + "Creality/Generic PP" + ], + "00020": [ + "Creality/Generic PET" + ], + "00021": [ + "Creality/Generic PC" + ], + "00022": [ + "Creality/Generic PA612-CF" + ], + "00023": [ + "Creality/Generic Support for PA" + ], + "00024": [ + "Creality/Generic Support for PLA" + ], + "00025": [ + "Creality/Generic PA12-CF" + ], + "00026": [ + "Creality/Generic TPU 64D" + ], + "00027": [ + "Creality/Generic PETG-GF" + ], + "00031": [ + "Creality/Generic PP-CF" + ], + "00032": [ + "Creality/Generic PCTG" + ], + "00033": [ + "Creality/Generic ASA-CF" + ], + "00034": [ + "Creality/Generic PA6-GF" + ], + "00035": [ + "Creality/eSUN PLA-LW" + ], + "01001": [ + "Creality/Creality Hyper PLA", + "Creality/Hyper PLA" + ], + "01002": [ + "Creality/Hyper L-W PLA" + ], + "01003": [ + "Creality/Hyper Luminous" + ], + "01004": [ + "Creality/Hyper Stardust" + ], + "01601": [ + "Creality/Soleyin Ultra PLA" + ], + "02001": [ + "Creality/Creality Hyper PLA-CF", + "Creality/Hyper PLA-CF" + ], + "03001": [ + "Creality/Creality Hyper ABS", + "Creality/Hyper ABS" + ], + "04001": [ + "Creality/CR-PLA", + "Creality/Creality Generic PLA" + ], + "05001": [ + "Creality/CR-Silk", + "Creality/Creality Silk PLA" + ], + "06001": [ + "Creality/CR-PETG", + "Creality/Creality Generic PETG" + ], + "06002": [ + "Creality/Hyper PETG" + ], + "06003": [ + "Creality/Hyper PETG-CF" + ], + "06004": [ + "Creality/Hyper PETG-GF" + ], + "06005": [ + "Creality/Soleyin Basic PETG" + ], + "07001": [ + "Creality/CR-ABS", + "Creality/Creality Generic ABS" + ], + "07002": [ + "Creality/Hyper PC" + ], + "08001": [ + "Creality/Ender-PLA" + ], + "09001": [ + "Creality/EN-PLA+" + ], + "09002": [ + "Creality/ENDER FAST PLA" + ], + "10001": [ + "Creality/Creality Generic TPU", + "Creality/HP-TPU" + ], + "1009481135": [ + "Snapmaker/Snapmaker J1 PET" + ], + "1042511226": [ + "Snapmaker/Snapmaker Dual PETG-CF" + ], + "10425112260": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "11001": [ + "Creality/CR-Nylon", + "Creality/Creality Generic PA" + ], + "1172603684": [ + "Snapmaker/Snapmaker J1 PETG" + ], + "1181363872": [ + "Snapmaker/Snapmaker Dual PLA Silk" + ], + "11813638720": [ + "Snapmaker/Snapmaker PLA Silk" + ], + "1192769348": [ + "Snapmaker/Snapmaker J1 PLA Matte" + ], + "12002": [ + "Creality/Hyper PPA-CF" + ], + "12003": [ + "Creality/Hyper PAHT-CF" + ], + "12004": [ + "Creality/Hyper PA612-CF" + ], + "12005": [ + "Creality/Hyper PA6-CF" + ], + "1207881278": [ + "Snapmaker/Snapmaker Dual Breakaway" + ], + "1210173120": [ + "Snapmaker/Snapmaker J1 PA-CF" + ], + "1223824394": [ + "Snapmaker/Snapmaker J1 ABS", + "Snapmaker/Snapmaker J1 ABS Benchy" + ], + "1247172706": [ + "Snapmaker/Snapmaker Dual ASA" + ], + "12471727060": [ + "Snapmaker/Snapmaker ASA" + ], + "13001": [ + "Creality/CR-PLA Carbon" + ], + "1344609062": [ + "Snapmaker/Snapmaker PVA" + ], + "1355502217": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "1393866034": [ + "Snapmaker/PolyLite Dual PLA", + "Snapmaker/PolyLite J1 PLA", + "Snapmaker/PolyLite PLA" + ], + "14001": [ + "Creality/CR-PLA Matte" + ], + "1417031127": [ + "Snapmaker/Snapmaker Dual PLA" + ], + "14170311270": [ + "Snapmaker/Snapmaker PLA", + "Snapmaker/Snapmaker PLA Matte" + ], + "141703112701": [ + "Snapmaker/Snapmaker PLA SnapSpeed" + ], + "1417031127011": [ + "Snapmaker/Snapmaker PLA Lite" + ], + "144877656": [ + "Snapmaker/Snapmaker J1 ASA" + ], + "1480063856": [ + "Snapmaker/Snapmaker TPE", + "Snapmaker/Snapmaker TPU" + ], + "15001": [ + "Creality/CR-PLA Fluo" + ], + "1528786603": [ + "Snapmaker/Snapmaker J1 PLA Silk" + ], + "16001": [ + "Creality/CR-TPU" + ], + "1655727393": [ + "Snapmaker/Snapmaker PLA Silk" + ], + "168223792": [ + "Snapmaker/Snapmaker Dual ABS", + "Snapmaker/Snapmaker Dual ABS Benchy" + ], + "1682237920": [ + "Snapmaker/Snapmaker ABS", + "Snapmaker/Snapmaker ABS Benchy" + ], + "1695556157": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "17001": [ + "Creality/CR-Wood" + ], + "1702147325": [ + "Snapmaker/Snapmaker Dual PLA-CF" + ], + "17021473250": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "18001": [ + "Creality/HP Ultra PLA" + ], + "1895495477": [ + "Snapmaker/Snapmaker PETG" + ], + "19001": [ + "Creality/Creality Generic ASA", + "Creality/HP-ASA" + ], + "200803790": [ + "Snapmaker/Snapmaker Dual PLA Eco" + ], + "2008037900": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "2029994346": [ + "Snapmaker/Snapmaker Dual PLA Metal" + ], + "20299943460": [ + "Snapmaker/Snapmaker PLA Metal" + ], + "2128577941": [ + "Snapmaker/Snapmaker Dual PET", + "Snapmaker/Snapmaker PET" + ], + "21285779410": [ + "Snapmaker/Snapmaker PET" + ], + "2209001062": [ + "Snapmaker/Snapmaker Dual PETG" + ], + "22090010620": [ + "Snapmaker/Snapmaker PETG" + ], + "2549587591": [ + "Snapmaker/Snapmaker PET" + ], + "2742961008": [ + "Snapmaker/Snapmaker ASA" + ], + "29001": [ + "Creality/Hyper Marble" + ], + "2971656290": [ + "Snapmaker/Snapmaker Dual TPE", + "Snapmaker/Snapmaker Dual TPU", + "Snapmaker/Snapmaker Dual TPU High-Flow" + ], + "29716562900": [ + "Snapmaker/Snapmaker TPE", + "Snapmaker/Snapmaker TPU", + "Snapmaker/Snapmaker TPU High-Flow" + ], + "297165629001": [ + "Snapmaker/Snapmaker TPU 95A" + ], + "3104636980": [ + "Snapmaker/Snapmaker Dual PVA" + ], + "31046369800": [ + "Snapmaker/Snapmaker PVA" + ], + "3177068229": [ + "Snapmaker/Snapmaker PLA" + ], + "3383257822": [ + "Snapmaker/Snapmaker J1 PLA Eco" + ], + "3492897526": [ + "Snapmaker/Snapmaker J1 Breakaway" + ], + "3493177425": [ + "Snapmaker/Snapmaker Dual PA-CF" + ], + "34931774250": [ + "Snapmaker/Snapmaker PA-CF" + ], + "3503790988": [ + "Snapmaker/Snapmaker Dual PLA Matte" + ], + "377675245": [ + "Snapmaker/Snapmaker J1 PLA" + ], + "3806593857": [ + "Snapmaker/Snapmaker J1 PLA-CF" + ], + "3811508002": [ + "Snapmaker/Snapmaker ABS" + ], + "3864371306": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "4012961186": [ + "Snapmaker/Snapmaker J1 PLA Metal" + ], + "4092268632": [ + "Snapmaker/Snapmaker J1 TPE", + "Snapmaker/Snapmaker J1 TPU", + "Snapmaker/Snapmaker J1 TPU High-Flow" + ], + "4227461134": [ + "Snapmaker/Snapmaker Breakaway Support For PLA", + "Snapmaker/Snapmaker J1 PVA" + ], + "4235401834": [ + "Snapmaker/Snapmaker J1 PETG-CF" + ], + "581236806": [ + "Snapmaker/Snapmaker PA-CF" + ], + "AZ01-1": [ + "BBL/AliZ PETG-CF", + "OrcaFilamentLibrary/AliZ PETG-CF" + ], + "AZ01-2": [ + "BBL/AliZ PETG-Metal", + "OrcaFilamentLibrary/AliZ PETG-Metal" + ], + "AliZ001": [ + "BBL/AliZ PETG", + "OrcaFilamentLibrary/AliZ PETG" + ], + "AliZ002": [ + "BBL/AliZ PLA", + "OrcaFilamentLibrary/AliZ PLA" + ], + "AliZ003": [ + "BBL/AliZ PA-CF", + "OrcaFilamentLibrary/AliZ PA-CF" + ], + "BABB00": [ + "BBL/BETA ABS" + ], + "BASB00": [ + "BBL/BETA ASA" + ], + "BFLSBS99": [ + "BBL/Generic SBS" + ], + "BHIB00": [ + "BBL/BETA HIPS" + ], + "BPAB00": [ + "BBL/BETA PAHT-CF" + ], + "BPBB00": [ + "BBL/BETA PEBA 90A" + ], + "BPGB00": [ + "BBL/BETA PETG" + ], + "BPGB01": [ + "BBL/BETA PETG Heat Color Change" + ], + "BPGB02": [ + "BBL/BETA PETG Fluorescence" + ], + "BPGB03": [ + "BBL/BETA PETG Glitter" + ], + "BPGB04": [ + "BBL/BETA PETG Glow" + ], + "BPGB05": [ + "BBL/BETA PETG Gradient" + ], + "BPGB06": [ + "BBL/BETA PETG HF" + ], + "BPGB07": [ + "BBL/BETA PETG Marble" + ], + "BPGB08": [ + "BBL/BETA PETG Matte" + ], + "BPGB09": [ + "BBL/BETA PETG Metallic" + ], + "BPGB10": [ + "BBL/BETA PETG Transparent" + ], + "BPGB11": [ + "BBL/BETA PETG UV Color Change" + ], + "BPGB12": [ + "BBL/BETA PETG-CF" + ], + "BPGB13": [ + "BBL/BETA PETG-GF" + ], + "BPLB00": [ + "BBL/BETA PLA Basic" + ], + "BPLB01": [ + "BBL/BETA PLA Silk+" + ], + "BPLB02": [ + "BBL/BETA PLA Chameleon" + ], + "BPLB03": [ + "BBL/BETA PLA Heat Color Change" + ], + "BPLB04": [ + "BBL/BETA PLA Fluorescence" + ], + "BPLB05": [ + "BBL/BETA PLA Glitter" + ], + "BPLB06": [ + "BBL/BETA PLA Glow" + ], + "BPLB07": [ + "BBL/BETA PLA Gradient" + ], + "BPLB08": [ + "BBL/BETA PLA Marble" + ], + "BPLB09": [ + "BBL/BETA PLA Matte" + ], + "BPLB10": [ + "BBL/BETA PLA Metal" + ], + "BPLB11": [ + "BBL/BETA PLA Metallic" + ], + "BPLB12": [ + "BBL/BETA PLA PRO" + ], + "BPLB13": [ + "BBL/BETA PLA Silk" + ], + "BPLB14": [ + "BBL/BETA PLA Transparent" + ], + "BPLB15": [ + "BBL/BETA PLA UV Color Change" + ], + "BPLB16": [ + "BBL/BETA PLA Youth" + ], + "BPLB17": [ + "BBL/BETA PLA-CF" + ], + "BPLB18": [ + "BBL/BETA PLA High Temp" + ], + "BPLB19": [ + "BBL/BETA PLA Wood" + ], + "BPLB20": [ + "BBL/BETA PLA High Speed" + ], + "BSFI001": [ + "Blocks/Blocks Generic PLA" + ], + "BSFI002": [ + "Blocks/Blocks Generic PETG" + ], + "BSFI003": [ + "Blocks/Blocks Generic TPU" + ], + "BSFI004": [ + "Blocks/Blocks Generic ABS" + ], + "BSFI005": [ + "Blocks/Blocks Generic ASA" + ], + "BSFI006": [ + "Blocks/Blocks Generic PA" + ], + "BSFI007": [ + "Blocks/Blocks Generic PA-CF" + ], + "BSFI008": [ + "Blocks/Blocks Generic PC" + ], + "BSFI009": [ + "Blocks/Blocks Generic PVA" + ], + "BSFI010": [ + "Blocks/Blocks Generic ASA-CF", + "Blocks/Blocks Generic PLA-CF" + ], + "BTUB00": [ + "BBL/BETA TPU 90A" + ], + "BTUB01": [ + "BBL/BETA TPU Matte" + ], + "BTUB02": [ + "BBL/BETA TPU 95A" + ], + "BTUB03": [ + "BBL/BETA TPU 98A" + ], + "CX30DB20": [ + "BBL/COEX TPE 30D", + "OrcaFilamentLibrary/COEX TPE 30D" + ], + "CX40DB20": [ + "BBL/COEX TPE 40D", + "OrcaFilamentLibrary/COEX TPE 40D" + ], + "CX60AB17": [ + "BBL/COEX TPU 60A", + "OrcaFilamentLibrary/COEX TPU 60A" + ], + "CX60DB19": [ + "BBL/COEX TPE 60D", + "OrcaFilamentLibrary/COEX TPE 60D" + ], + "CXABPB09": [ + "BBL/COEX ABS PRIME", + "OrcaFilamentLibrary/COEX ABS PRIME" + ], + "CXABSB01": [ + "BBL/COEX ABS", + "OrcaFilamentLibrary/COEX ABS" + ], + "CXASAB04": [ + "BBL/COEX ASA PRIME", + "OrcaFilamentLibrary/COEX ASA PRIME" + ], + "CXPACB23": [ + "BBL/COEX NYLEX PA6-CF", + "OrcaFilamentLibrary/COEX NYLEX PA6-CF" + ], + "CXPAUB21": [ + "BBL/COEX NYLEX UNFILLED " + ], + "CXPCTB15": [ + "BBL/COEX PCTG PRIME", + "OrcaFilamentLibrary/COEX PCTG PRIME" + ], + "CXPETB13": [ + "BBL/COEX PETG", + "OrcaFilamentLibrary/COEX PETG" + ], + "CXPLAB02": [ + "BBL/COEX PLA", + "OrcaFilamentLibrary/COEX PLA" + ], + "CXPLAB08": [ + "BBL/COEX PLA PRIME", + "OrcaFilamentLibrary/COEX PLA PRIME" + ], + "CXPLSB03": [ + "BBL/COEX PLA+Silk", + "OrcaFilamentLibrary/COEX PLA+Silk" + ], + "DFL99": [ + "Volumic/Désactivé" + ], + "DREMC001": [], + "DREMC002": [], + "DREMC003": [], + "DREMC004": [], + "DREMC005": [], + "DREMC006": [ + "OrcaFilamentLibrary/DREMC PA6-CF" + ], + "DREMC007": [], + "DREMC008": [], + "DREMC009": [ + "OrcaFilamentLibrary/DREMC ABS-GF" + ], + "DREMC010": [ + "OrcaFilamentLibrary/DREMC PPA-CF" + ], + "DREMC011": [], + "DREMC012": [], + "DREMC013": [], + "E1001": [ + "Creality/eSUN PLA+" + ], + "E1002": [ + "Creality/eSUN PLA-Silk" + ], + "E1003": [ + "Creality/eSUN PLA-Matte" + ], + "E1004": [ + "Creality/eSUN PLA-Lite" + ], + "E1005": [ + "Creality/eSUN PLA-CF" + ], + "E1006": [ + "Creality/eSUN PLA-HS" + ], + "E2001": [ + "Creality/eSUN PETG" + ], + "E2002": [ + "Creality/eSUN PETG+HS" + ], + "E2003": [ + "Creality/eSUN PETG-Basic" + ], + "E3001": [ + "Creality/eSUN ABS+" + ], + "E4001": [ + "Creality/eSUN ASA+" + ], + "E8001": [ + "Creality/eSUN PET-Basic" + ], + "EABSB00": [ + "Elegoo/Elegoo ABS" + ], + "EASAB00": [ + "Elegoo/Elegoo ASA", + "Elegoo/Elegoo ASA-CF" + ], + "EFL33": [ + "Eryone/Eryone PP-CF" + ], + "EFL40": [ + "Eryone/Eryone PLA-CF" + ], + "EFL43": [ + "Eryone/Eryone PETG-CF", + "Eryone/Eryone PP" + ], + "EFL71": [ + "Eryone/Eryone PA" + ], + "EFL72": [ + "Eryone/Eryone PA-CF" + ], + "EFL73": [ + "Eryone/Eryone PA-GF" + ], + "EFL81": [ + "Eryone/Eryone ABS-CF" + ], + "EFL82": [ + "Eryone/Eryone ASA-CF" + ], + "EFL90": [ + "Eryone/Eryone PLA" + ], + "EFL91": [ + "Eryone/Eryone ABS" + ], + "EFL92": [ + "Eryone/Eryone ASA" + ], + "EFL93": [ + "Eryone/Eryone PETG" + ], + "EFL941": [ + "Eryone/Eryone Silk PLA" + ], + "EFL95": [ + "Eryone/Eryone TPU" + ], + "EPAHTB00": [ + "Elegoo/Elegoo PAHT-CF" + ], + "EPCB00": [ + "Elegoo/Elegoo PC", + "Elegoo/Elegoo PC-FR" + ], + "EPETGB00": [ + "Elegoo/Elegoo PET-CF", + "Elegoo/Elegoo PETG", + "Elegoo/Elegoo PETG HF", + "Elegoo/Elegoo PETG PRO", + "Elegoo/Elegoo PETG Translucent", + "Elegoo/Elegoo PETG-CF", + "Elegoo/Elegoo PETG-GF", + "Elegoo/Elegoo Rapid PETG" + ], + "EPLAB00": [ + "Elegoo/Elegoo PLA", + "Elegoo/Elegoo PLA Basic", + "Elegoo/Elegoo PLA Galaxy", + "Elegoo/Elegoo PLA Glow", + "Elegoo/Elegoo PLA Marble", + "Elegoo/Elegoo PLA Matte", + "Elegoo/Elegoo PLA PRO", + "Elegoo/Elegoo PLA Silk", + "Elegoo/Elegoo PLA Sparkle", + "Elegoo/Elegoo PLA Translucent2", + "Elegoo/Elegoo PLA Wood", + "Elegoo/Elegoo PLA+", + "Elegoo/Elegoo PLA-CF", + "Elegoo/Elegoo Rapid PLA+" + ], + "ESN02": [ + "OrcaFilamentLibrary/eSUN ePLA-LW" + ], + "ESN03": [ + "OrcaFilamentLibrary/eSUN PETG" + ], + "ETPUB00": [ + "Elegoo/Elegoo Rapid TPU 95A", + "Elegoo/Elegoo TPU 95A" + ], + "FDPLAST01": [ + "OrcaFilamentLibrary/FDplast ABS" + ], + "FDPLAST02": [ + "OrcaFilamentLibrary/FDplast HIPS" + ], + "FDPLAST03": [ + "OrcaFilamentLibrary/FDplast PETG" + ], + "FDPLAST04": [ + "OrcaFilamentLibrary/FDplast PLA" + ], + "FDPLAST05": [ + "OrcaFilamentLibrary/FDplast SBS" + ], + "FDPLAST06": [ + "OrcaFilamentLibrary/FDplast TPU" + ], + "FFF01": [ + "Flashforge/Flashforge PLA" + ], + "FFF02": [ + "Flashforge/Flashforge ABS" + ], + "FFF03": [ + "Flashforge/Flashforge PETG", + "Flashforge/Generic PETG" + ], + "FFG01": [ + "Flashforge/Flashforge Generic PLA", + "Flashforge/Flashforge HS PLA", + "Flashforge/Flashforge HS PLA Burnt Ti", + "Flashforge/Flashforge PA", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Buint Ti", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Silk", + "Flashforge/Flashforge PLA Sparkle", + "Flashforge/Flashforge TPU 65D", + "Flashforge/Flashforge TPU 95A" + ], + "FILAR0001": [ + "OrcaFilamentLibrary/FilAr PLA Bronce" + ], + "FILAR0002": [ + "OrcaFilamentLibrary/FilAr PLA Gris Plata" + ], + "FILAR0003": [ + "OrcaFilamentLibrary/FilAr PLA Cobre" + ], + "FILAR0004": [ + "OrcaFilamentLibrary/FilAr PLA Titanio" + ], + "FILAR0005": [ + "OrcaFilamentLibrary/FilAr PLA Tabaco" + ], + "FILAR0006": [ + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" + ], + "FILAR0007": [ + "OrcaFilamentLibrary/FilAr PLA Manteca" + ], + "FILAR0008": [ + "OrcaFilamentLibrary/FilAr PLA Marron Oxido" + ], + "FILAR0009": [ + "OrcaFilamentLibrary/FilAr PLA Carpincho" + ], + "FILAR0010": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" + ], + "FILAR0011": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" + ], + "FILAR0012": [ + "OrcaFilamentLibrary/FilAr PLA Piel" + ], + "FILAR0013": [ + "OrcaFilamentLibrary/FilAr PLA Verde FilAr" + ], + "FILAR0014": [ + "OrcaFilamentLibrary/FilAr PLA Verde Manzana" + ], + "FILAR0015": [ + "OrcaFilamentLibrary/FilAr PLA Verde Pixel" + ], + "FILAR0016": [ + "OrcaFilamentLibrary/FilAr PLA Verde Oliva" + ], + "FILAR0017": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" + ], + "FILAR0018": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Calido" + ], + "FILAR0019": [ + "OrcaFilamentLibrary/FilAr PLA Negro Azabache" + ], + "FILAR0020": [ + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" + ], + "FILAR0021": [ + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" + ], + "FILAR0022": [ + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" + ], + "FILAR0023": [ + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" + ], + "FILAR0024": [ + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" + ], + "FILAR0025": [ + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" + ], + "FILAR0026": [ + "OrcaFilamentLibrary/FilAr PLA Azul Francia" + ], + "FILAR0027": [ + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" + ], + "FILAR0028": [ + "OrcaFilamentLibrary/FilAr PLA Oro" + ], + "FILAR0029": [ + "OrcaFilamentLibrary/FilAr PLA Dorado" + ], + "FILAR0030": [ + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" + ], + "FILAR0031": [ + "OrcaFilamentLibrary/FilAr PLA-mate Azul" + ], + "FILAR0032": [ + "OrcaFilamentLibrary/FilAr PLA-mate Beige" + ], + "FILAR0033": [ + "OrcaFilamentLibrary/FilAr PLA-mate Blanco" + ], + "FILAR0034": [ + "OrcaFilamentLibrary/FilAr PLA-mate Bordo" + ], + "FILAR0035": [ + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" + ], + "FILAR0036": [ + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" + ], + "FILAR0037": [ + "OrcaFilamentLibrary/FilAr PLA-mate Gris" + ], + "FILAR0038": [ + "OrcaFilamentLibrary/FilAr PLA-mate Marron" + ], + "FILAR0039": [ + "OrcaFilamentLibrary/FilAr PLA-mate Naranja" + ], + "FILAR0040": [ + "OrcaFilamentLibrary/FilAr PLA-mate Negro" + ], + "FILAR0041": [ + "OrcaFilamentLibrary/FilAr PLA-mate Piel" + ], + "FILAR0042": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rojo" + ], + "FILAR0043": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rosa" + ], + "FILAR0044": [ + "OrcaFilamentLibrary/FilAr PLA-mate Uva" + ], + "FILAR0045": [ + "OrcaFilamentLibrary/FilAr PLA-mate Verde" + ], + "FILAR0046": [ + "OrcaFilamentLibrary/FilAr PLA-mate Violeta" + ], + "FILAR0047": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" + ], + "FILAR0048": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" + ], + "FILAR0049": [ + "OrcaFilamentLibrary/FilAr PETG Azul Boreal" + ], + "FILAR0050": [ + "OrcaFilamentLibrary/FilAr PETG Azul Francia" + ], + "FILAR0051": [ + "OrcaFilamentLibrary/FilAr PETG Azul Imperial" + ], + "FILAR0052": [ + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" + ], + "FILAR0053": [ + "OrcaFilamentLibrary/FilAr PETG Cian" + ], + "FILAR0054": [ + "OrcaFilamentLibrary/FilAr PETG Coral" + ], + "FILAR0055": [ + "OrcaFilamentLibrary/FilAr PETG Cristal" + ], + "FILAR0056": [ + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" + ], + "FILAR0057": [ + "OrcaFilamentLibrary/FilAr PETG Gris Plata" + ], + "FILAR0058": [ + "OrcaFilamentLibrary/FilAr PETG Magenta" + ], + "FILAR0059": [ + "OrcaFilamentLibrary/FilAr PETG Negro Azabache" + ], + "FILAR0060": [ + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" + ], + "FILARB01": [], + "FILARB02": [], + "FILARB03": [], + "FILL3D001": [ + "OrcaFilamentLibrary/FILL3D PLA Turbo" + ], + "FILL3D002": [ + "OrcaFilamentLibrary/FILL3D PLA Basic" + ], + "FILL3D003": [ + "OrcaFilamentLibrary/FILL3D PETG" + ], + "FILL3D004": [ + "OrcaFilamentLibrary/FILL3D PP" + ], + "FILL3D005": [ + "OrcaFilamentLibrary/FILL3D PPCF" + ], + "FILL3D006": [ + "OrcaFilamentLibrary/FILL3D PA" + ], + "FILL3D007": [ + "OrcaFilamentLibrary/FILL3D PETG CF" + ], + "GABSB00": [ + "Elegoo/Generic ABS", + "Elegoo/Generic ABS-CF" + ], + "GASAB00": [ + "Elegoo/Generic ASA", + "Elegoo/Generic ASA-CF" + ], + "GFA00": [ + "Afinia/Afinia PLA", + "Afinia/Afinia Value PLA", + "BBL/Bambu PLA Basic", + "OrcaArena/Arena PLA Basic", + "Tiertime/Tiertime PLA", + "WonderMaker/WonderMaker PLA Basic" + ], + "GFA00_01": [ + "Afinia/Afinia PLA", + "Afinia/Afinia Value PLA", + "Tiertime/Tiertime PLA" + ], + "GFA01": [ + "BBL/Bambu PLA Matte", + "OrcaArena/Arena PLA Matte", + "WonderMaker/WonderMaker PLA Matte" + ], + "GFA02": [ + "BBL/Bambu PLA Metal", + "OrcaArena/Arena PLA Metal", + "WonderMaker/WonderMaker PLA Metal" + ], + "GFA03": [ + "OrcaArena/Arena PLA Impact" + ], + "GFA05": [ + "BBL/Bambu PLA Silk", + "OrcaArena/Arena PLA Silk", + "OrcaArena/OrcaArena Generic PLA Silk", + "Qidi/Qidi Generic PLA Silk", + "WonderMaker/WonderMaker PLA Silk" + ], + "GFA06": [ + "BBL/Bambu PLA Silk+" + ], + "GFA07": [ + "BBL/Bambu PLA Marble", + "OrcaArena/Arena PLA Marble", + "WonderMaker/WonderMaker PLA Marble" + ], + "GFA08": [ + "BBL/Bambu PLA Sparkle", + "OrcaArena/Arena PLA Sparkle" + ], + "GFA09": [ + "BBL/Bambu PLA Tough", + "OrcaArena/Arena PLA Tough" + ], + "GFA10": [ + "BBL/Bambu PLA Tough+" + ], + "GFA11": [ + "BBL/Bambu PLA Aero" + ], + "GFA12": [ + "BBL/Bambu PLA Glow" + ], + "GFA13": [ + "BBL/Bambu PLA Dynamic" + ], + "GFA15": [ + "BBL/Bambu PLA Galaxy" + ], + "GFA16": [ + "BBL/Bambu PLA Wood", + "WonderMaker/WonderMaker PLA Wood" + ], + "GFA17": [ + "BBL/Bambu PLA Translucent" + ], + "GFA18": [ + "BBL/Bambu PLA Lite" + ], + "GFA50": [ + "BBL/Bambu PLA-CF", + "OrcaArena/Arena PLA-CF", + "Tiertime/Tiertime PLA-CF" + ], + "GFA50_01": [ + "Tiertime/Tiertime PLA-CF" + ], + "GFA99": [ + "Anycubic/Anycubic ASA", + "CoLiDo/CoLiDo Generic PLA", + "CoLiDo/CoLiDo PLA", + "CoLiDo/CoLiDo PLA Silk", + "CoLiDo/CoLiDo PLA+" + ], + "GFABS": [ + "Anycubic/Anycubic ABS" + ], + "GFASA": [ + "Anycubic/Anycubic ASA" + ], + "GFB00": [ + "Afinia/Afinia ABS", + "Afinia/Afinia ABS+", + "Afinia/Afinia Value ABS", + "BBL/Bambu ABS", + "OrcaArena/Arena ABS", + "Tiertime/Tiertime ABS", + "WonderMaker/WonderMaker ABS" + ], + "GFB00_01": [ + "Afinia/Afinia ABS", + "Afinia/Afinia ABS+", + "Afinia/Afinia Value ABS", + "Tiertime/Tiertime ABS" + ], + "GFB01": [ + "BBL/Bambu ASA", + "Tiertime/Tiertime ASA", + "WonderMaker/WonderMaker ASA" + ], + "GFB01_01": [ + "Tiertime/Tiertime ASA" + ], + "GFB02": [ + "BBL/Bambu ASA-Aero" + ], + "GFB50": [ + "BBL/Bambu ABS-GF" + ], + "GFB51": [ + "BBL/Bambu ASA-CF" + ], + "GFB60": [ + "BBL/PolyLite ABS" + ], + "GFB61": [ + "BBL/PolyLite ASA" + ], + "GFB98": [ + "Anker/Anker Generic ASA", + "Anker/Anker Generic ASA 0.2 nozzle", + "Anker/Anker Generic ASA 0.25 nozzle", + "Anycubic/Anycubic Generic ASA", + "Artillery/Artillery Generic ASA", + "BBL/Generic ASA", + "Creality/Creality Generic ASA", + "Creality/Creality Generic ASA-CF", + "FLSun/FLSun Generic ASA", + "FLSun/FLSun S1 ASA", + "FLSun/FLSun T1 ASA", + "OrcaArena/OrcaArena Generic ASA", + "Prusa/Prusa Generic ASA", + "Prusa/Prusa Generic ASA HF", + "Prusa/Prusament ASA", + "Ratrig/RatRig BigNozzle ASA", + "Ratrig/RatRig Generic ASA", + "SecKit/SecKit Generic ASA", + "Tiertime/Tiertime Generic ASA", + "Vzbot/Vzbot Generic ASA" + ], + "GFB98_01": [ + "Tiertime/Tiertime Generic ASA" + ], + "GFB98_2": [ + "Prusa/Prusa Generic ASA" + ], + "GFB98_3": [ + "Prusa/Prusa Generic ASA" + ], + "GFB98_4": [ + "Prusa/Prusa Generic ASA" + ], + "GFB98_5": [ + "Prusa/Prusa Generic ASA", + "Prusa/Prusa Generic ASA HF" + ], + "GFB98_6": [ + "Prusa/Prusa Generic ASA HF" + ], + "GFB98_7": [ + "Prusa/Prusa Generic ASA HF" + ], + "GFB99": [ + "Anker/Anker Generic ABS", + "Anker/Anker Generic ABS 0.2 nozzle", + "Anker/Anker Generic ABS 0.25 nozzle", + "Anycubic/Anycubic ABS", + "Anycubic/Anycubic Generic ABS", + "Anycubic/Generic ABS", + "Artillery/Artillery Generic ABS", + "BBL/Generic ABS", + "Chuanying/Chuanying ABS", + "Chuanying/Chuanying Generic ABS", + "Chuanying/Chuanying Generic HIPS", + "Chuanying/Chuanying Generic PVA", + "CoLiDo/CoLiDo ABS", + "CoLiDo/CoLiDo Generic ABS", + "Comgrow/Comgrow Generic ABS", + "Creality/Creality Generic ABS", + "DeltaMaker/DeltaMaker Generic TPU", + "FLSun/FLSun Generic ABS", + "FLSun/FLSun S1 ABS", + "FLSun/FLSun T1 ABS", + "Flashforge/FlashForge PC", + "Flashforge/FlashForge PPS", + "Flashforge/FlashForge PPS-CF", + "Flashforge/Flashforge ABS Basic", + "Flashforge/Flashforge ABS-CF", + "Flashforge/Flashforge ASA Basic", + "Flashforge/Flashforge ASA-CF", + "Flashforge/Flashforge Generic ABS", + "Flashforge/Flashforge Generic ASA", + "Flashforge/Flashforge Generic HIPS", + "Flashforge/Flashforge Generic PETG", + "Flashforge/Flashforge Generic PETG-CF", + "Flashforge/Flashforge Generic PLA-CF", + "Flashforge/Flashforge Generic PVA", + "Flashforge/Flashforge HIPS", + "Flashforge/Flashforge HS PETG", + "Flashforge/Flashforge HS PLA", + "Flashforge/Flashforge HS PLA Burnt Ti", + "Flashforge/Flashforge PA", + "Flashforge/Flashforge PA12-CF", + "Flashforge/Flashforge PA6-CF", + "Flashforge/Flashforge PA66-CF", + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PETG Pro", + "Flashforge/Flashforge PETG Transparent", + "Flashforge/Flashforge PETG-CF", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Silk", + "Flashforge/Flashforge PLA Sparkle", + "Flashforge/Flashforge PLA-CF", + "Flashforge/Flashforge PPA-CF", + "Flashforge/Flashforge PPA-GF", + "Flashforge/Flashforge PPS-CF", + "Flashforge/Flashforge TPU 65D", + "Flashforge/Flashforge TPU 95A", + "Flashforge/FusRock Generic NexPA-CF25", + "Flashforge/FusRock Generic PAHT-CF", + "Flashforge/FusRock Generic PAHT-GF", + "Flashforge/FusRock Generic PET-CF", + "Flashforge/FusRock Generic PET-GF", + "Flashforge/FusRock Generic S-Multi", + "Flashforge/FusRock Generic S-PAHT", + "Flashforge/FusRock PAHT", + "Flashforge/FusRock PAHT-CF", + "Flashforge/FusRock PET", + "Flashforge/FusRock PET-CF", + "Flashforge/Generic ABS", + "Flashforge/Generic PET", + "Flashforge/Polymaker CoPA", + "Flashforge/Polymaker Generic CoPA", + "Flashforge/Polymaker Generic S1", + "FlyingBear/FlyingBear ABS", + "FlyingBear/FlyingBear Generic ABS", + "FlyingBear/Other ABS", + "InfiMech/InfiMech ABS", + "InfiMech/InfiMech Generic ABS", + "InfiMech/Other ABS", + "Lulzbot/Lulzbot 2.85mm ABS", + "OrcaArena/OrcaArena Generic ABS", + "Prusa/Prusa Generic ABS", + "Prusa/Prusa Generic ABS HF", + "Qidi/Bambu ABS", + "Qidi/Bambu PETG", + "Qidi/Bambu PLA", + "Qidi/HATCHBOX ABS", + "Qidi/HATCHBOX PETG", + "Qidi/HATCHBOX PLA", + "Qidi/Overture ABS", + "Qidi/Overture PLA", + "Qidi/PolyLite ABS", + "Qidi/PolyLite PLA", + "Qidi/QIDI ABS Odorless", + "Qidi/QIDI ABS Rapido", + "Qidi/QIDI ABS Rapido 0.2 nozzle", + "Qidi/QIDI ABS Rapido 0.6 nozzle", + "Qidi/QIDI ABS Rapido 0.8 nozzle", + "Qidi/QIDI ABS Rapido Metal", + "Qidi/QIDI ABS-GF", + "Qidi/QIDI ABS-GF10", + "Qidi/QIDI ABS-GF25", + "Qidi/QIDI ASA", + "Qidi/QIDI ASA-CF", + "Qidi/QIDI PA-Ultra", + "Qidi/QIDI PA12-CF", + "Qidi/QIDI PAHT-CF", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PEBA 95A", + "Qidi/QIDI PET-CF", + "Qidi/QIDI PET-GF", + "Qidi/QIDI PETG Basic", + "Qidi/QIDI PETG Rapido", + "Qidi/QIDI PETG Tough", + "Qidi/QIDI PETG Translucent", + "Qidi/QIDI PETG-CF", + "Qidi/QIDI PETG-GF", + "Qidi/QIDI PLA Basic", + "Qidi/QIDI PLA Matte Basic", + "Qidi/QIDI PLA Rapido", + "Qidi/QIDI PLA Rapido Matte", + "Qidi/QIDI PLA Rapido Metal", + "Qidi/QIDI PLA Rapido Silk", + "Qidi/QIDI PPS-CF", + "Qidi/QIDI PPS-GF", + "Qidi/QIDI TPU-Aero", + "Qidi/QIDI TPU-GF", + "Qidi/QIDI UltraPA-CF25", + "Qidi/QIDI WOOD Rapido", + "Qidi/Qidi ASA-Aero", + "Qidi/Qidi Generic ABS", + "Qidi/Qidi Generic ASA", + "Qidi/Qidi Generic PETG", + "Qidi/Qidi Generic PLA", + "Qidi/Qidi Generic PLA+", + "Qidi/Qidi Generic TPU", + "Qidi/Qidi Generic TPU 95A", + "Qidi/Qidi PC-ABS-FR", + "Qidi/Qidi TPU 95A-HF", + "Ratrig/RatRig BigNozzle ABS", + "Ratrig/RatRig Generic ABS", + "Ratrig/RatRig PunkFil ABS", + "Ratrig/RatRig PunkFil PETG", + "Ratrig/RatRig PunkFil PETG CF", + "SecKit/SecKit Generic ABS", + "Tiertime/Tiertime Generic ABS", + "Volumic/Volumic ABS Ultra", + "Volumic/Volumic ABS Ultra (Performance)", + "Volumic/Volumic ASA Ultra", + "Volumic/Volumic ASA Ultra (Performance)", + "Volumic/Volumic PP Ultra", + "Volumic/Volumic PP Ultra (Performance)", + "Vzbot/Vzbot Generic ABS" + ], + "GFB99_01": [ + "Tiertime/Tiertime Generic ABS" + ], + "GFB99_2": [ + "Prusa/Prusa Generic ABS" + ], + "GFB99_3": [ + "Prusa/Prusa Generic ABS" + ], + "GFB99_4": [ + "Prusa/Prusa Generic ABS" + ], + "GFB99_5": [ + "Prusa/Prusa Generic ABS", + "Prusa/Prusa Generic ABS HF" + ], + "GFB99_6": [ + "Prusa/Prusa Generic ABS HF" + ], + "GFB99_7": [ + "Prusa/Prusa Generic ABS HF" + ], + "GFC00": [ + "BBL/Bambu PC", + "OrcaArena/Arena PC", + "Tiertime/Tiertime PC" + ], + "GFC00_01": [ + "Tiertime/Tiertime PC" + ], + "GFC01": [ + "BBL/Bambu PC FR" + ], + "GFC98": [ + "Prusa/Prusament PC-CF" + ], + "GFC99": [ + "Anker/Anker Generic PC", + "Anker/Anker Generic PC 0.2 nozzle", + "Anker/Anker Generic PC 0.25 nozzle", + "Anycubic/Anycubic Generic PC", + "BBL/Generic PC", + "Creality/Creality Generic PC", + "Custom/Generic PC", + "FLSun/FLSun Generic PC", + "FlyingBear/FlyingBear Generic PC", + "FlyingBear/FlyingBear PC", + "FlyingBear/Other PC", + "InfiMech/InfiMech Generic PC", + "InfiMech/InfiMech PC", + "InfiMech/Other PC", + "OrcaArena/OrcaArena Generic PC", + "Prusa/Prusa Generic PC", + "Prusa/Prusa Generic PC HF", + "Prusa/Prusament PC Blend", + "Qidi/Qidi Generic PC", + "Ratrig/RatRig BigNozzle PCTG", + "Ratrig/RatRig Generic PC", + "Ratrig/RatRig Generic PCTG", + "SecKit/SecKit Generic PC", + "Tiertime/Tiertime Generic PC", + "Volumic/Volumic PC", + "Volumic/Volumic PC (Performance)", + "Vzbot/Vzbot Generic PC" + ], + "GFC99_01": [ + "Tiertime/Tiertime Generic PC" + ], + "GFC99_1": [ + "Prusa/Prusa Generic PC" + ], + "GFC99_2": [ + "Prusa/Prusa Generic PC" + ], + "GFC99_3": [ + "Prusa/Prusa Generic PC" + ], + "GFC99_4": [ + "Prusa/Prusa Generic PC", + "Prusa/Prusa Generic PC HF" + ], + "GFC99_5": [ + "Prusa/Prusa Generic PC HF" + ], + "GFC99_6": [ + "Prusa/Prusa Generic PC HF" + ], + "GFG00": [ + "BBL/Bambu PETG Basic", + "OrcaArena/Arena PETG Basic", + "Tiertime/Tiertime PETG", + "WonderMaker/WonderMaker PETG Basic" + ], + "GFG00_01": [ + "Tiertime/Tiertime PETG" + ], + "GFG01": [ + "BBL/Bambu PETG Translucent", + "re3D/re3D Greengate rPETG" + ], + "GFG02": [ + "BBL/Bambu PETG HF", + "re3D/re3D rPP" + ], + "GFG03": [ + "re3D/re3D PETG" + ], + "GFG50": [ + "BBL/Bambu PETG-CF", + "OrcaArena/Arena PETG-CF" + ], + "GFG60": [ + "BBL/PolyLite PETG", + "Snapmaker/PolyLite PETG" + ], + "GFG96": [ + "BBL/Generic PETG HF" + ], + "GFG97": [ + "BBL/Generic PCTG", + "Tiertime/Tiertime Generic PCTG" + ], + "GFG97-01": [ + "Tiertime/Tiertime Generic PCTG" + ], + "GFG98": [ + "Anker/Anker Generic PETG-CF", + "BBL/Generic PETG-CF", + "OrcaArena/OrcaArena Generic PETG-CF", + "Qidi/Qidi Generic PETG-CF", + "Tiertime/Tiertime Generic PETG-CF", + "Volumic/Volumic PETG Ultra carbone", + "Volumic/Volumic PETG Ultra carbone (Performance)" + ], + "GFG98_01": [ + "Tiertime/Tiertime Generic PETG-CF" + ], + "GFG99": [ + "Anker/Anker Generic PETG", + "Anker/Anker Generic PETG 0.2 nozzle", + "Anker/Anker Generic PETG 0.25 nozzle", + "Anycubic/Anycubic Generic PETG", + "Anycubic/Anycubic PETG", + "Anycubic/Generic PETG Basic", + "Artillery/Artillery Generic PETG", + "BBL/Generic PETG", + "CONSTRUCT3D/C1 Generic High Flow PETG", + "CONSTRUCT3D/C1 Generic PETG", + "Chuanying/Chuanying Generic PETG", + "Chuanying/Chuanying Generic PETG-CF10", + "Chuanying/Chuanying Generic TPU", + "Chuanying/Chuanying PETG", + "CoLiDo/CoLiDo Generic PETG", + "CoLiDo/CoLiDo PETG", + "Comgrow/Comgrow Generic PETG", + "Creality/Creality Generic PETG", + "Creality/Creality Generic PETG-CF", + "Custom/Generic PETG", + "DeltaMaker/DeltaMaker Generic PETG", + "FLSun/FLSun Generic PETG", + "FLSun/FLSun S1 PETG", + "FLSun/FLSun T1 PETG", + "Flashforge/Flashforge Generic PETG", + "Flashforge/Flashforge Generic PETG-CF10", + "Flashforge/Flashforge Generic TPU", + "Flashforge/Flashforge HS PETG", + "Flashforge/Flashforge PA", + "Flashforge/Flashforge PETG Basic", + "Flashforge/Flashforge PETG Pro", + "Flashforge/Flashforge PETG Transparent", + "Flashforge/Flashforge PETG-CF", + "Flashforge/Flashforge TPU 95A", + "Flashforge/FusRock PET-CF", + "Flashforge/Generic PET", + "Flashforge/Generic PETG", + "Flashforge/Generic PETG-CF10", + "Flashforge/Generic TPU", + "Flashforge/Generic TPU 85A", + "FlyingBear/FlyingBear Generic PETG", + "FlyingBear/FlyingBear PETG", + "FlyingBear/FlyingBear PETG Basic", + "FlyingBear/Other PETG", + "InfiMech/InfiMech Generic PETG", + "InfiMech/InfiMech PETG", + "InfiMech/Other PETG", + "Lulzbot/Lulzbot 2.85mm PETG", + "MagicMaker/MM Generic PEEK", + "OrcaArena/OrcaArena Generic PETG", + "Qidi/Bambu PETG", + "Qidi/HATCHBOX PETG", + "Qidi/QIDI PETG Basic", + "Qidi/QIDI PETG Rapido", + "Qidi/QIDI PETG Tough", + "Qidi/QIDI PETG Tough 0.2 nozzle", + "Qidi/QIDI PETG Tough 0.6 nozzle", + "Qidi/QIDI PETG Tough 0.8 nozzle", + "Qidi/QIDI PETG Translucent", + "Qidi/Qidi Generic PETG", + "Qidi/Tinmorry PETG-ECO", + "Ratrig/RatRig BigNozzle PETG", + "Ratrig/RatRig Generic PETG", + "SecKit/SecKit Generic PETG", + "Tiertime/Tiertime Generic PETG", + "Volumic/PETG ESD (Performance)", + "Volumic/Volumic PCTG Ultra (Performance)", + "Volumic/Volumic PETG Ultra", + "Volumic/Volumic PETG Ultra (Performance)", + "Vzbot/Vzbot Generic PETG", + "Wanhao France/YUMI PETG", + "re3D/re3D PC" + ], + "GFG99_01": [ + "Tiertime/Tiertime Generic PETG" + ], + "GFG99_2": [ + "Prusa/Prusa Generic PETG" + ], + "GFG99_3": [ + "Prusa/Prusa Generic PETG" + ], + "GFG99_4": [ + "Prusa/Prusa Generic PETG" + ], + "GFG99_5": [ + "Prusa/Prusa Generic PETG", + "Prusa/Prusa Generic PETG HF" + ], + "GFG99_6": [ + "Prusa/Prusa Generic PETG HF" + ], + "GFG99_7": [ + "Prusa/Prusa Generic PETG HF" + ], + "GFL00": [ + "BBL/PolyLite PLA", + "OrcaArena/PolyLite PLA", + "Snapmaker/PolyLite PLA" + ], + "GFL01": [ + "BBL/PolyTerra PLA", + "OrcaArena/PolyTerra PLA", + "Snapmaker/PolyTerra PLA" + ], + "GFL03": [ + "BBL/eSUN PLA+" + ], + "GFL04": [ + "BBL/Overture PLA" + ], + "GFL05": [ + "BBL/Overture Matte PLA" + ], + "GFL06": [ + "BBL/Fiberon PETG-ESD", + "Snapmaker/Fiberon PETG-ESD" + ], + "GFL100": [ + "TwoTrees/TwoTrees Generic HS PLA", + "Z-Bolt/Generic PLA" + ], + "GFL106": [ + "Z-Bolt/Generic PLA" + ], + "GFL108": [ + "Z-Bolt/Generic PLA" + ], + "GFL200": [], + "GFL204": [ + "Z-Bolt/Generic ABS" + ], + "GFL206": [ + "Z-Bolt/Generic ABS" + ], + "GFL208": [ + "Z-Bolt/Generic ABS" + ], + "GFL300": [], + "GFL304": [ + "Z-Bolt/Generic PETG" + ], + "GFL306": [ + "Z-Bolt/Generic PETG" + ], + "GFL308": [ + "Z-Bolt/Generic PETG" + ], + "GFL400": [], + "GFL404": [ + "Z-Bolt/Generic PA" + ], + "GFL406": [ + "Z-Bolt/Generic PA" + ], + "GFL408": [ + "Z-Bolt/Generic PA" + ], + "GFL50": [ + "BBL/Fiberon PA6-CF" + ], + "GFL500": [], + "GFL504": [ + "Z-Bolt/Generic ABS HT" + ], + "GFL506": [ + "Z-Bolt/Generic ABS HT" + ], + "GFL508": [ + "Z-Bolt/Generic ABS HT" + ], + "GFL51": [ + "BBL/Fiberon PA6-GF" + ], + "GFL52": [ + "BBL/Fiberon PA12-CF" + ], + "GFL53": [ + "BBL/Fiberon PA612-CF" + ], + "GFL54": [ + "BBL/Fiberon PET-CF" + ], + "GFL55": [ + "BBL/Fiberon PETG-rCF" + ], + "GFL56": [ + "BBL/Fiberon PA12-CF10", + "Snapmaker/Fiberon PA12-CF10" + ], + "GFL57": [ + "Anycubic/Fiberon PA6-CF20", + "BBL/Fiberon PA6-CF20", + "Snapmaker/Fiberon PA6-CF20" + ], + "GFL58": [ + "BBL/Fiberon PA6-GF25" + ], + "GFL59": [ + "BBL/Fiberon PA612-CF15" + ], + "GFL60": [ + "BBL/Fiberon PET-CF17" + ], + "GFL61": [ + "BBL/Fiberon PETG-rCF08" + ], + "GFL62": [ + "BBL/PolyLite CosPLA", + "Snapmaker/PolyLite CosPLA" + ], + "GFL63": [ + "BBL/PolyLite PLA Galaxy", + "Snapmaker/PolyLite PLA Galaxy" + ], + "GFL64": [ + "BBL/PolyLite PLA Glow", + "Snapmaker/PolyLite PLA Glow" + ], + "GFL65": [ + "BBL/PolyLite PLA Luminous", + "Snapmaker/PolyLite PLA Luminous" + ], + "GFL66": [ + "BBL/PolyLite PLA Neon", + "Snapmaker/PolyLite PLA Neon" + ], + "GFL67": [ + "BBL/PolyLite PLA Starlight", + "Snapmaker/PolyLite PLA Starlight" + ], + "GFL68": [ + "BBL/PolyLite PLA Translucent", + "Snapmaker/PolyLite PLA Translucent" + ], + "GFL69": [ + "BBL/PolyTerra PLA Marble", + "Snapmaker/PolyTerra PLA Marble" + ], + "GFL70": [ + "BBL/PolyTerra PLA+", + "Snapmaker/PolyTerra PLA+" + ], + "GFL71": [ + "Snapmaker/Fiberon ASA-CF08" + ], + "GFL72": [ + "Snapmaker/Fiberon PA612-ESD" + ], + "GFL73": [ + "Snapmaker/Fiberon PPS-GF20" + ], + "GFL74": [ + "Snapmaker/PolyLite PETG Translucent" + ], + "GFL75": [ + "Snapmaker/PolyLite PLA Pro Metallic" + ], + "GFL76": [ + "Snapmaker/Polymaker PETG" + ], + "GFL77": [ + "Snapmaker/Polymaker PETG Galaxy" + ], + "GFL78": [ + "Snapmaker/Polymaker PLA" + ], + "GFL79": [ + "Anycubic/Polymaker PLA Pro", + "Snapmaker/Polymaker PLA Pro" + ], + "GFL80": [ + "Anycubic/Polymaker PLA Pro Metallic", + "Snapmaker/Polymaker PLA Pro Metallic" + ], + "GFL92": [ + "Anycubic/Anycubic PLA" + ], + "GFL93": [ + "Anycubic/Anycubic PLA+" + ], + "GFL94": [ + "Anycubic/Anycubic PLA Slik" + ], + "GFL95": [ + "Anker/Anker Generic PLA+", + "Anker/Anker Generic PLA+ 0.2 nozzle", + "Anker/Anker Generic PLA+ 0.25 nozzle", + "Anycubic/Anycubic PLA Matte", + "BBL/Generic PLA High Speed", + "Tiertime/Tiertime Generic PLA High Speed" + ], + "GFL95_01": [ + "Tiertime/Tiertime Generic PLA High Speed" + ], + "GFL96": [ + "Anker/Anker Generic PLA Silk", + "Anker/Anker Generic PLA Silk 0.2 nozzle", + "Anker/Anker Generic PLA Silk 0.25 nozzle", + "Anycubic/Anycubic PLA High Speed", + "BBL/Generic PLA Silk", + "Tiertime/Tiertime Generic PLA Silk" + ], + "GFL96_01": [ + "Tiertime/Tiertime Generic PLA Silk" + ], + "GFL97": [ + "Anycubic/Anycubic PLA SE" + ], + "GFL98": [ + "Anker/Anker Generic PLA-CF", + "Anycubic/Anycubic Generic PLA-CF", + "Anycubic/Anycubic PLA Glow", + "Artillery/Artillery Generic PLA-CF", + "BBL/Generic PLA-CF", + "Creality/Creality Generic PLA-CF", + "Custom/Generic PLA-CF", + "FLSun/FLSun Generic PLA-CF", + "OrcaArena/OrcaArena Generic PLA-CF", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PLA-CF", + "Qidi/Qidi Generic PLA-CF", + "Qidi/Qidi PLA-CF", + "Ratrig/RatRig Generic PLA-CF", + "SecKit/SecKit Generic PLA-CF", + "Tiertime/Tiertime Generic PLA-CF", + "Vzbot/Vzbot Generic PLA-CF" + ], + "GFL98_01": [ + "Tiertime/Tiertime Generic PLA-CF" + ], + "GFL98_1": [ + "Prusa/Prusa Generic PLA-CF" + ], + "GFL98_3": [ + "Prusa/Prusa Generic PLA-CF" + ], + "GFL98_4": [ + "Prusa/Prusa Generic PLA-CF" + ], + "GFL98_5": [ + "Prusa/Prusa Generic PLA-CF" + ], + "GFL99": [ + "Anker/Anker Generic PLA", + "Anker/Anker Generic PLA 0.2 nozzle", + "Anker/Anker Generic PLA 0.25 nozzle", + "Anycubic/Anycubic Generic PLA", + "Anycubic/Anycubic PLA", + "Anycubic/Anycubic PLA High Speed", + "Anycubic/Anycubic PLA Luminous", + "Anycubic/Anycubic PLA Matte", + "Anycubic/Anycubic PLA Silk", + "Anycubic/Anycubic PLA+", + "Artillery/Artillery ABS", + "Artillery/Artillery ASA", + "Artillery/Artillery Generic PLA", + "Artillery/Artillery PA", + "Artillery/Artillery PA-CF", + "Artillery/Artillery PC", + "Artillery/Artillery PET", + "Artillery/Artillery PETG", + "Artillery/Artillery PETG Basic", + "Artillery/Artillery PETG-CF", + "Artillery/Artillery PLA Basic", + "Artillery/Artillery PLA Basic+", + "Artillery/Artillery PLA Matte", + "Artillery/Artillery PLA Silk", + "Artillery/Artillery PLA Tough", + "Artillery/Artillery PLA-CF", + "Artillery/Artillery PVA", + "Artillery/Artillery TPU", + "BBL/Generic PLA", + "CONSTRUCT3D/C1 Generic PLA", + "Chuanying/Chuanying ASA", + "Chuanying/Chuanying Generic ASA", + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying Generic PLA-CF10", + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying HS PLA", + "Chuanying/Chuanying PLA", + "Chuanying/Chuanying PLA-SILK", + "Co Print/CoPrint Generic ABS", + "Co Print/CoPrint Generic PETG", + "Co Print/CoPrint Generic PLA", + "Co Print/CoPrint Generic TPU", + "Comgrow/Comgrow Generic PLA", + "Comgrow/Comgrow T300 PLA", + "Creality/Creality Generic PLA", + "Creality/Creality Generic PLA High Speed", + "Creality/Creality Generic PLA Matte", + "Creality/Creality Generic PLA Silk", + "Creality/Creality Generic PLA Wood", + "Creality/Creality HF Generic PLA", + "Creality/Creality HF Generic Speed PLA", + "Custom/Generic PLA", + "DeltaMaker/DeltaMaker Brand PLA", + "DeltaMaker/DeltaMaker Generic PLA", + "Dremel/Dremel Generic PLA", + "FLSun/FLSun Generic PLA", + "FLSun/FLSun S1 PLA Generic", + "FLSun/FLSun S1 PLA High Speed", + "FLSun/FLSun S1 PLA Silk", + "FLSun/FLSun T1 PLA Generic", + "FLSun/FLSun T1 PLA High Speed", + "FLSun/FLSun T1 PLA Silk", + "Flashforge/Flashforge ASA Basic", + "Flashforge/Flashforge Generic ASA", + "Flashforge/Flashforge Generic HS PLA", + "Flashforge/Flashforge Generic PLA-CF10", + "Flashforge/Flashforge Generic PLA-SILK", + "Flashforge/Flashforge Generic PLA-Silk", + "Flashforge/Flashforge HIPS", + "Flashforge/Flashforge HS PLA", + "Flashforge/Flashforge PA-CF", + "Flashforge/Flashforge PAHT-CF", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Silk", + "Flashforge/Flashforge PLA Sparkle", + "Flashforge/Flashforge PLA-CF", + "Flashforge/Flashforge PPS", + "Flashforge/Flashforge PPS-CF", + "Flashforge/FusRock PAHT-CF", + "Flashforge/Generic ASA", + "Flashforge/Generic PLA", + "Flashforge/Generic PLA High Speed", + "Flashforge/Generic PLA Silk", + "Flashforge/Generic PLA-CF10", + "FlyingBear/FlyingBear Generic PLA", + "FlyingBear/FlyingBear PLA", + "FlyingBear/FlyingBear PLA Basic", + "FlyingBear/FlyingBear PLA Hyper", + "FlyingBear/Other PLA", + "FlyingBear/Other PLA Hyper", + "InfiMech/InfiMech Generic PLA", + "InfiMech/InfiMech PLA", + "InfiMech/InfiMech PLA Basic", + "InfiMech/InfiMech PLA Hyper", + "InfiMech/Other PLA", + "InfiMech/Other PLA Hyper", + "Lulzbot/Lulzbot 2.85mm PLA", + "OrcaArena/OrcaArena Generic PLA", + "Peopoly/Peopoly Generic PLA", + "Peopoly/Peopoly Lancer ABS-GF", + "Peopoly/Peopoly Lancer PET-CF", + "Peopoly/Peopoly Lancer PETG-C", + "Peopoly/Peopoly Lancer PLA-C", + "Phrozen/Phrozen PLA", + "Prusa/Prusa Generic PLA", + "Prusa/Prusa Generic PLA HF", + "Prusa/Prusa Generic PLA-CF", + "Prusa/Prusament PLA", + "Prusa/Prusament rPLA", + "Qidi/Bambu PLA", + "Qidi/Generic PLA+", + "Qidi/HATCHBOX PLA", + "Qidi/Overture PLA", + "Qidi/PolyLite PLA", + "Qidi/QIDI PLA Basic", + "Qidi/QIDI PLA Matte Basic", + "Qidi/QIDI PLA Rapido", + "Qidi/QIDI PLA Rapido 0.2 nozzle", + "Qidi/QIDI PLA Rapido 0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte", + "Qidi/QIDI PLA Rapido Metal", + "Qidi/QIDI PLA Rapido Silk", + "Qidi/QIDI WOOD Rapido", + "Qidi/Qidi Generic PLA", + "Qidi/Qidi Generic PLA High Speed", + "Qidi/Qidi Generic PLA+", + "Ratrig/RatRig BigNozzle PLA", + "Ratrig/RatRig BigNozzle TPU", + "Ratrig/RatRig Generic PLA", + "SecKit/SecKit Generic PLA", + "Sovol/Generic ABS", + "Sovol/Generic PC", + "Sovol/Generic PETG", + "Sovol/Generic PLA", + "Sovol/Generic PLA Silk", + "Sovol/Generic TPU", + "Sovol/Polymaker PETG", + "Sovol/SUNLU PETG", + "Sovol/Sovol SV06 ACE ABS", + "Sovol/Sovol SV06 ACE PETG", + "Sovol/Sovol SV06 ACE PLA", + "Sovol/Sovol SV06 ACE TPU", + "Sovol/Sovol SV06 Plus ACE ABS", + "Sovol/Sovol SV06 Plus ACE PETG", + "Sovol/Sovol SV06 Plus ACE PLA", + "Sovol/Sovol SV06 Plus ACE TPU", + "Sovol/Sovol SV07 PLA", + "Sovol/Sovol SV08 ABS", + "Sovol/Sovol SV08 PETG", + "Sovol/Sovol SV08 PLA", + "Sovol/Sovol SV08 TPU", + "Sovol/Sovol Zero ABS", + "Sovol/Sovol Zero PC", + "Sovol/Sovol Zero PETG", + "Sovol/Sovol Zero PETG HS Nozzle", + "Sovol/Sovol Zero PLA Basic", + "Sovol/Sovol Zero PLA Basic HS Nozzle", + "Sovol/Sovol Zero PLA Silk", + "Sovol/Sovol Zero PLA Silk HS Nozzle", + "Sovol/Sovol Zero TPU", + "Tiertime/Tiertime Generic PLA", + "Tiertime/Tiertime Generic SBS", + "Volumic/Volumic PLA Ultra", + "Volumic/Volumic PLA Ultra (Performance)", + "Volumic/Volumic UNIVERSAL Ultra", + "Volumic/Volumic UNIVERSAL Ultra (Performance)", + "Vzbot/Vzbot Generic PLA", + "re3D/re3D PLA" + ], + "GFL99_01": [ + "Tiertime/Tiertime Generic PLA", + "Tiertime/Tiertime Generic SBS" + ], + "GFL99_2": [ + "Prusa/Prusa Generic PLA" + ], + "GFL99_3": [ + "Prusa/Prusa Generic PLA" + ], + "GFL99_4": [ + "Prusa/Prusa Generic PLA" + ], + "GFL99_5": [ + "Prusa/Prusa Generic PLA", + "Prusa/Prusa Generic PLA HF" + ], + "GFL99_6": [ + "Prusa/Prusa Generic PLA HF" + ], + "GFL99_7": [ + "Prusa/Prusa Generic PLA HF" + ], + "GFLLK10PETG": [ + "LONGER/Generic PETG" + ], + "GFLLK10PLA": [ + "LONGER/Generic PLA" + ], + "GFLLK10PPETG": [ + "LONGER/Generic PETG" + ], + "GFLLK10PPLA": [ + "LONGER/Generic PLA" + ], + "GFLSBS99": [], + "GFN03": [ + "BBL/Bambu PA-CF", + "OrcaArena/Arena PA-CF" + ], + "GFN04": [ + "BBL/Bambu PAHT-CF", + "OrcaArena/Arena PAHT-CF" + ], + "GFN05": [ + "BBL/Bambu PA6-CF", + "Tiertime/Tiertime PA6-CF" + ], + "GFN05_01": [ + "Tiertime/Tiertime PA6-CF" + ], + "GFN06": [ + "BBL/Bambu PPA-CF" + ], + "GFN08": [ + "BBL/Bambu PA6-GF" + ], + "GFN96": [ + "BBL/Generic PPA-GF", + "Tiertime/Tiertime Generic PPA-GF" + ], + "GFN96_01": [ + "Tiertime/Tiertime Generic PPA-GF" + ], + "GFN97": [ + "BBL/Generic PPA-CF", + "Tiertime/Tiertime Generic PPA-CF" + ], + "GFN97_01": [ + "Tiertime/Tiertime Generic PPA-CF" + ], + "GFN98": [ + "Anker/Anker Generic PA-CF", + "Anycubic/Anycubic Generic PA-CF", + "BBL/Generic PA-CF", + "Creality/Creality Generic PA-CF", + "FLSun/FLSun Generic PA-CF", + "FlyingBear/FlyingBear Generic PA-CF", + "FlyingBear/FlyingBear PA-CF", + "FlyingBear/Other PA-CF", + "InfiMech/InfiMech Generic PA-CF", + "InfiMech/InfiMech PA-CF", + "InfiMech/Other PA-CF", + "OrcaArena/OrcaArena Generic PA-CF", + "Prusa/Prusament PA-CF", + "Qidi/QIDI PA12-CF", + "Qidi/QIDI PAHT-CF", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PET-CF", + "Qidi/QIDI PET-GF", + "Qidi/QIDI PETG-CF", + "Qidi/QIDI PETG-GF", + "Qidi/QIDI PPS-CF", + "Qidi/QIDI Support For PAHT", + "Qidi/QIDI Support For PET/PA", + "Qidi/QIDI UltraPA-CF25", + "Qidi/Qidi Generic PA-CF", + "Ratrig/RatRig Generic PA-CF", + "SecKit/SecKit Generic PA-CF", + "Tiertime/Tiertime Generic PA-CF", + "Vzbot/Vzbot Generic PA-CF" + ], + "GFN98_02": [ + "Tiertime/Tiertime Generic PA-CF" + ], + "GFN98_1": [ + "Prusa/Prusa Generic PA-CF" + ], + "GFN98_2": [ + "Prusa/Prusa Generic PA-CF" + ], + "GFN98_3": [ + "Prusa/Prusa Generic PA-CF" + ], + "GFN98_4": [ + "Prusa/Prusa Generic PA-CF" + ], + "GFN99": [ + "Anker/Anker Generic PA", + "Anker/Anker Generic PA 0.2 nozzle", + "Anker/Anker Generic PA 0.25 nozzle", + "Anycubic/Anycubic Generic PA", + "BBL/Generic PA", + "FLSun/FLSun Generic PA", + "OrcaArena/OrcaArena Generic PA", + "Prusa/Prusa Generic PA", + "Prusa/Prusa Generic PA-CF", + "Qidi/QIDI PA-Ultra", + "Qidi/Qidi Generic PA", + "Ratrig/RatRig Generic PA", + "SecKit/SecKit Generic PA", + "Tiertime/Tiertime Generic PA", + "Volumic/PA6 CF20 (Performance)", + "Volumic/PPS Carbone (Performance)", + "Volumic/Volumic NYLON Ultra", + "Volumic/Volumic NYLON Ultra (Performance)", + "Vzbot/Vzbot Generic PA" + ], + "GFN99_01": [ + "Tiertime/Tiertime Generic PA" + ], + "GFN99_1": [ + "Prusa/Prusa Generic PA" + ], + "GFN99_2": [ + "Prusa/Prusa Generic PA" + ], + "GFN99_3": [ + "Prusa/Prusa Generic PA" + ], + "GFN99_4": [ + "Prusa/Prusa Generic PA" + ], + "GFNMK00": [ + "BBL/Numakers PLA+" + ], + "GFOT001": [ + "BBL/Overture PLA Pro", + "OrcaFilamentLibrary/Overture PLA Pro" + ], + "GFOT002": [ + "BBL/Overture Silk PLA", + "OrcaFilamentLibrary/Overture Silk PLA" + ], + "GFOT003": [ + "BBL/Overture Easy PLA", + "OrcaFilamentLibrary/Overture Easy PLA" + ], + "GFOT004": [ + "BBL/Overture Rock PLA", + "OrcaFilamentLibrary/Overture Rock PLA" + ], + "GFOT005": [ + "BBL/Overture Super PLA+", + "OrcaFilamentLibrary/Overture Super PLA+" + ], + "GFOT006": [ + "BBL/Overture Air PLA", + "OrcaFilamentLibrary/Overture Air PLA" + ], + "GFOT008": [ + "BBL/Overture TPU", + "OrcaFilamentLibrary/Overture TPU" + ], + "GFOT009": [ + "BBL/Overture ASA", + "OrcaFilamentLibrary/Overture ASA" + ], + "GFP95": [ + "BBL/Generic PP-GF", + "Tiertime/Tiertime Generic PP-GF" + ], + "GFP95_01": [ + "Tiertime/Tiertime Generic PP-GF" + ], + "GFP96": [ + "BBL/Generic PP-CF", + "Tiertime/Tiertime Generic PP-CF" + ], + "GFP96_01": [ + "Tiertime/Tiertime Generic PP-CF" + ], + "GFP97": [ + "BBL/Generic PP", + "Tiertime/Tiertime Generic PP" + ], + "GFP97_01": [ + "Tiertime/Tiertime Generic PP" + ], + "GFP98": [ + "BBL/Generic PE-CF", + "Tiertime/Tiertime Generic PE-CF" + ], + "GFP98_01": [ + "Tiertime/Tiertime Generic PE-CF" + ], + "GFP99": [ + "BBL/Generic PE", + "Tiertime/Tiertime Generic PE" + ], + "GFP99_01": [ + "Tiertime/Tiertime Generic PE" + ], + "GFPA": [ + "Anycubic/Anycubic PA" + ], + "GFPA6-CF": [ + "Anycubic/Anycubic PA6-CF" + ], + "GFPAHT-CF": [ + "Anycubic/Anycubic PAHT-CF" + ], + "GFPC": [ + "Anycubic/Anycubic PC" + ], + "GFPC-CF": [ + "Anycubic/Anycubic PC-CF" + ], + "GFPC-GF": [ + "Anycubic/Anycubic PC-GF" + ], + "GFPEBA": [ + "Anycubic/Anycubic PEBA" + ], + "GFPET-CF": [ + "Anycubic/Anycubic PET-CF" + ], + "GFPETG": [ + "Anycubic/Anycubic PETG", + "Anycubic/Generic PETG" + ], + "GFPETG-1": [ + "Peopoly/Peopoly Generic PETG" + ], + "GFPETG-CF": [ + "Anycubic/Anycubic PETG-CF" + ], + "GFPLA": [ + "Anycubic/Anycubic PLA" + ], + "GFPLA Glow": [ + "Anycubic/Anycubic PLA Glow" + ], + "GFPLA High Speed": [ + "Anycubic/Anycubic PLA High Speed" + ], + "GFPLA Matte": [ + "Anycubic/Anycubic PLA Matte" + ], + "GFPLA Silk": [ + "Anycubic/Anycubic PLA Silk" + ], + "GFPLA Translucent": [ + "Anycubic/Anycubic PLA Translucent" + ], + "GFPLA+": [ + "Anycubic/Anycubic PLA+" + ], + "GFPLA-CF": [ + "Anycubic/Anycubic PLA-CF" + ], + "GFPM001": [ + "Anycubic/Panchroma PLA", + "BBL/Panchroma PLA", + "Snapmaker/Panchroma PLA" + ], + "GFPM002": [ + "BBL/Panchroma PLA Matte", + "Snapmaker/Panchroma PLA Matte" + ], + "GFPM003": [ + "BBL/Panchroma PLA Marble", + "Snapmaker/Panchroma PLA Marble" + ], + "GFPM004": [ + "BBL/Panchroma PLA Silk", + "Snapmaker/Panchroma PLA Silk" + ], + "GFPM005": [ + "BBL/Panchroma PLA Satin", + "Snapmaker/Panchroma PLA Satin" + ], + "GFPM006": [ + "BBL/Panchroma PLA Translucent", + "Snapmaker/Panchroma PLA Translucent" + ], + "GFPM007": [ + "BBL/Panchroma PLA Galaxy", + "Snapmaker/Panchroma PLA Galaxy" + ], + "GFPM008": [ + "BBL/Panchroma PLA Celestial", + "Snapmaker/Panchroma PLA Celestial" + ], + "GFPM009": [ + "BBL/Panchroma PLA Starlight", + "Snapmaker/Panchroma PLA Starlight" + ], + "GFPM010": [ + "BBL/Panchroma PLA Glow", + "Snapmaker/Panchroma PLA Glow" + ], + "GFPM011": [ + "BBL/Panchroma PLA Luminous", + "Snapmaker/Panchroma PLA Luminous" + ], + "GFPM012": [ + "BBL/Panchroma PLA Metallic", + "Snapmaker/Panchroma PLA Metallic" + ], + "GFPM013": [ + "BBL/Panchroma PLA Neon", + "Snapmaker/Panchroma PLA Neon" + ], + "GFPM014": [ + "BBL/Panchroma PLA UV Shift", + "Snapmaker/Panchroma PLA UV Shift" + ], + "GFPM015": [ + "BBL/Panchroma PLA Temp Shift", + "Snapmaker/Panchroma PLA Temp Shift" + ], + "GFPM016": [ + "BBL/Panchroma CoPE", + "Snapmaker/Panchroma CoPE" + ], + "GFPM017": [ + "BBL/Polymaker HT-PLA", + "Snapmaker/Polymaker HT-PLA" + ], + "GFPM018": [ + "BBL/Polymaker HT-PLA-GF", + "Snapmaker/Polymaker HT-PLA-GF" + ], + "GFPM019": [ + "BBL/PolyLite PLA Pro", + "Snapmaker/PolyLite PLA Pro" + ], + "GFPVA": [ + "Anycubic/Anycubic PVA" + ], + "GFR00": [ + "BBL/FusRock ABS-GF" + ], + "GFR98": [ + "BBL/Generic PHA", + "Tiertime/Tiertime Generic PHA" + ], + "GFR98_01": [ + "Tiertime/Tiertime Generic PHA" + ], + "GFR99": [ + "BBL/Generic EVA", + "Tiertime/Tiertime Generic EVA" + ], + "GFR99_01": [ + "Tiertime/Tiertime Generic EVA" + ], + "GFRH01": [], + "GFRH02": [], + "GFRH03": [], + "GFRH04": [], + "GFRH05": [], + "GFRH06": [], + "GFS00": [ + "BBL/Bambu Support W", + "OrcaArena/Arena Support W" + ], + "GFS01": [ + "BBL/Bambu Support G", + "OrcaArena/Arena Support G" + ], + "GFS02": [ + "BBL/Bambu Support For PLA" + ], + "GFS03": [ + "BBL/Bambu Support For PA/PET" + ], + "GFS04": [ + "BBL/Bambu PVA", + "Tiertime/Tiertime PVA", + "WonderMaker/WonderMaker PVA" + ], + "GFS04_01": [ + "Tiertime/Tiertime PVA" + ], + "GFS05": [ + "BBL/Bambu Support For PLA/PETG" + ], + "GFS06": [ + "BBL/Bambu Support for ABS" + ], + "GFS97": [ + "BBL/Generic BVOH", + "Tiertime/Tiertime Generic BVOH" + ], + "GFS97_01": [ + "Tiertime/Tiertime Generic BVOH" + ], + "GFS98": [ + "BBL/Generic HIPS", + "Prusa/Prusament PVB", + "Tiertime/Tiertime Generic HIPS" + ], + "GFS98_01": [ + "Tiertime/Tiertime Generic HIPS" + ], + "GFS99": [ + "Anker/Anker Generic PVA", + "Anycubic/Anycubic Generic PVA", + "BBL/Generic PVA", + "Custom/Generic PVA", + "FLSun/FLSun Generic PVA", + "OrcaArena/OrcaArena Generic PVA", + "Prusa/Prusa Generic PVA", + "Prusa/Prusa Generic PVA HF", + "Qidi/Qidi Generic PVA", + "Ratrig/RatRig Generic PVA", + "SecKit/SecKit Generic PVA", + "Tiertime/Tiertime Generic PVA", + "Volumic/Volumic PVA", + "Volumic/Volumic PVA-BVOH (Performance)", + "Vzbot/Vzbot Generic PVA" + ], + "GFS99_01": [ + "Tiertime/Tiertime Generic PVA" + ], + "GFS99_1": [ + "Prusa/Prusa Generic PVA" + ], + "GFS99_2": [ + "Prusa/Prusa Generic PVA" + ], + "GFS99_3": [ + "Prusa/Prusa Generic PVA" + ], + "GFS99_4": [ + "Prusa/Prusa Generic PVA", + "Prusa/Prusa Generic PVA HF" + ], + "GFS99_5": [ + "Prusa/Prusa Generic PVA HF" + ], + "GFS99_6": [ + "Prusa/Prusa Generic PVA HF" + ], + "GFSEP001": [ + "OrcaFilamentLibrary/Eolas Prints PLA Premium" + ], + "GFSEP002": [ + "OrcaFilamentLibrary/Eolas Prints PLA Matte" + ], + "GFSEP003": [ + "OrcaFilamentLibrary/Eolas Prints PLA Silk" + ], + "GFSEP004": [ + "OrcaFilamentLibrary/Eolas Prints PLA Neon" + ], + "GFSEP005": [ + "OrcaFilamentLibrary/Eolas Prints PLA High Speed" + ], + "GFSEP006": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" + ], + "GFSEP007": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" + ], + "GFSEP008": [ + "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" + ], + "GFSEP009": [ + "OrcaFilamentLibrary/Eolas Prints PLA Transition" + ], + "GFSEP010": [ + "OrcaFilamentLibrary/Eolas Prints PETG" + ], + "GFSEP011": [ + "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" + ], + "GFSEP012": [ + "OrcaFilamentLibrary/Eolas Prints PETG Transition" + ], + "GFSEP013": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" + ], + "GFSEP014": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" + ], + "GFSEP015": [ + "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" + ], + "GFSEP016": [ + "OrcaFilamentLibrary/Eolas Prints TPU Transition" + ], + "GFSEP017": [ + "OrcaFilamentLibrary/Eolas Prints ABS" + ], + "GFSEP018": [ + "OrcaFilamentLibrary/Eolas Prints ASA" + ], + "GFSL99": [ + "Peopoly/Peopoly Generic ABS" + ], + "GFSNL02": [ + "BBL/SUNLU PLA Matte", + "Flashforge/SUNLU PLA Matte" + ], + "GFSNL03": [ + "BBL/SUNLU PLA+", + "Flashforge/SUNLU PLA+" + ], + "GFSNL04": [ + "BBL/SUNLU PLA+ 2.0", + "Flashforge/SUNLU PLA+ 2.0" + ], + "GFSNL05": [ + "BBL/SUNLU Silk PLA+", + "Flashforge/SUNLU Silk PLA+" + ], + "GFSNL06": [ + "BBL/SUNLU PLA Marble", + "Flashforge/SUNLU PLA Marble" + ], + "GFSNL07": [ + "BBL/SUNLU Wood PLA", + "Flashforge/SUNLU Wood PLA" + ], + "GFSNL08": [ + "BBL/SUNLU PETG", + "Flashforge/SUNLU PETG" + ], + "GFT01": [ + "BBL/Bambu PET-CF", + "OrcaArena/Arena PET-CF", + "Tiertime/Tiertime PET-CF", + "WonderMaker/WonderMaker PET-CF" + ], + "GFT01_01": [ + "Tiertime/Tiertime PET-CF" + ], + "GFT02": [ + "BBL/Bambu PPS-CF", + "Prusa/Prusa Generic PETG", + "Prusa/Prusa Generic PETG HF", + "Prusa/Prusament PETG" + ], + "GFT97": [ + "BBL/Generic PPS", + "Tiertime/Tiertime Generic PPS" + ], + "GFT97_01": [ + "Tiertime/Tiertime Generic PPS" + ], + "GFT98": [ + "BBL/Generic PPS-CF", + "Tiertime/Tiertime Generic PPS-CF" + ], + "GFT98_01": [ + "Tiertime/Tiertime Generic PPS-CF" + ], + "GFTPU 95A": [ + "Anycubic/Anycubic TPU 95A" + ], + "GFTPU for ACE": [ + "Anycubic/Anycubic TPU for ACE" + ], + "GFU00": [ + "BBL/Bambu TPU 95A HF" + ], + "GFU01": [ + "Afinia/Afinia TPU", + "BBL/Bambu TPU 95A", + "OrcaArena/Arena TPU 95A", + "Tiertime/Tiertime TPU 95A", + "WonderMaker/WonderMaker TPU 95A" + ], + "GFU01_01": [ + "Afinia/Afinia TPU", + "Tiertime/Tiertime TPU 95A" + ], + "GFU02": [ + "BBL/Bambu TPU for AMS" + ], + "GFU03": [ + "BBL/Bambu TPU 90A" + ], + "GFU04": [ + "BBL/Bambu TPU 85A" + ], + "GFU98": [ + "BBL/Generic TPU for AMS" + ], + "GFU99": [ + "Anker/Anker Generic TPU", + "Anycubic/Anycubic Generic TPU", + "Anycubic/Anycubic PEBA 95A", + "Anycubic/Anycubic TPU", + "Anycubic/Generic TPU", + "Artillery/Artillery Generic TPU", + "BBL/Generic TPU", + "CoLiDo/CoLiDo Generic TPU", + "Creality/Creality Generic TPU", + "Custom/Generic TPU", + "FLSun/FLSun Generic TPU", + "FLSun/FLSun S1 TPU", + "FLSun/FLSun T1 TPU", + "FlyingBear/FlyingBear Generic TPU", + "FlyingBear/FlyingBear TPU", + "FlyingBear/FlyingBear TPU Basic", + "FlyingBear/Other TPU", + "InfiMech/InfiMech Generic TPU", + "InfiMech/InfiMech TPU", + "InfiMech/InfiMech TPU Basic", + "InfiMech/Other TPU", + "OrcaArena/OrcaArena Generic TPU", + "Prusa/Prusa Generic FLEX", + "Prusa/Prusa Generic TPU", + "Prusa/Prusa Generic TPU HF", + "Qidi/QIDI TPU-Aero", + "Qidi/Qidi Generic TPU", + "Qidi/Qidi Generic TPU 95A", + "Qidi/Qidi TPU 95A-HF", + "Ratrig/RatRig Generic TPU", + "SecKit/SecKit Generic TPU", + "Tiertime/Tiertime Generic TPU", + "TwoTrees/TwoTrees Generic 95A TPU", + "Volumic/Volumic FLEX93 Ultra", + "Volumic/Volumic FLEX93 Ultra (Performance)", + "Vzbot/Vzbot Generic TPU", + "Wanhao France/YUMI PLA Bowden", + "Wanhao France/YUMI PLA Direct Drive" + ], + "GFU99_01": [ + "Tiertime/Tiertime Generic TPU" + ], + "GFU99_2": [ + "Prusa/Prusa Generic TPU" + ], + "GFU99_3": [ + "Prusa/Prusa Generic TPU HF" + ], + "GPAB00": [ + "Elegoo/Generic PA", + "Elegoo/Generic PA6-CF" + ], + "GPCB00": [ + "Elegoo/Generic PC", + "Elegoo/Generic PC-CF" + ], + "GPETB00": [ + "Elegoo/Generic PET", + "Elegoo/Generic PET-CF" + ], + "GPETGB00": [ + "Elegoo/Generic PETG", + "Elegoo/Generic PETG PRO", + "Elegoo/Generic PETG-CF" + ], + "GPLAB00": [ + "Elegoo/Generic PLA", + "Elegoo/Generic PLA Matte" + ], + "Generic ABS @E3NG v1.2S": [ + "RH3D/Generic ABS" + ], + "Generic ABS @MK4S": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S 0.6": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S 0.8": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S HF0.4": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S HF0.5": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S HF0.6": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ABS @MK4S HF0.8": [ + "Prusa/Prusa Generic ABS" + ], + "Generic ASA @E3NG v1.2S": [ + "RH3D/Generic ASA" + ], + "Generic FLEX @MK4S": [ + "Prusa/Prusa Generic TPU" + ], + "Generic FLEX @MK4S 0.6": [ + "Prusa/Prusa Generic TPU" + ], + "Generic FLEX @MK4S 0.8": [ + "Prusa/Prusa Generic TPU" + ], + "Generic PCCF @E3NG v1.2S": [ + "RH3D/Generic PCCF" + ], + "Generic PETG @E3NG v1.2S": [ + "RH3D/Generic PETG" + ], + "Generic PETG @MK4S": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S 0.6": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S 0.8": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S HF0.4": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S HF0.5": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S HF0.6": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PETG @MK4S HF0.8": [ + "Prusa/Prusa Generic PETG" + ], + "Generic PLA @E3NG v1.2S": [ + "RH3D/Generic PLA" + ], + "Generic PLA @MK4S": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S 0.6": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S 0.8": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S HF0.4": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S HF0.5": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S HF0.6": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA @MK4S HF0.8": [ + "Prusa/Prusa Generic PLA" + ], + "Generic PLA Silk @MK4S": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Generic PLA Silk @MK4S 0.6": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Generic PLA Silk @MK4S 0.8": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Generic TPU @E3NG v1.2S": [ + "RH3D/Generic TPU" + ], + "IQM1": [ + "iQ/Fiberthree PACF Pro P1", + "iQ/Grauts HPP4GF25 P1" + ], + "IQM1011": [ + "iQ/VXL90 TiQ2 P2" + ], + "IQM2": [ + "iQ/Material4Print ABS Natur P1" + ], + "IQM3": [ + "iQ/Polymaker PETG Polymax black P1" + ], + "IQM7": [ + "iQ/Fiberthree PACF Pro P2" + ], + "LHF_abs": [ + "LH/LHS ABS" + ], + "LHF_asa": [ + "LH/LHS ASA" + ], + "LHF_ftpuf": [ + "LH/LHS TPU Foamy 78A" + ], + "LHF_pccf": [ + "LH/LHS PC CF" + ], + "LHF_pctg": [ + "LH/LHS PCTG" + ], + "LHF_petg": [ + "LH/LHS PETG" + ], + "LHF_pla": [ + "LH/LHS PLA" + ], + "LHF_ptpu_pl": [ + "LH/LHS TPU" + ], + "NIT01": [ + "OrcaFilamentLibrary/NIT ABS" + ], + "NIT02": [ + "OrcaFilamentLibrary/NIT PLA" + ], + "NIT03": [ + "OrcaFilamentLibrary/NIT PETG" + ], + "OEABSB00": [ + "OrcaFilamentLibrary/Elegoo ABS" + ], + "OEASAB00": [ + "OrcaFilamentLibrary/Elegoo ASA", + "OrcaFilamentLibrary/Elegoo ASA-CF" + ], + "OEPAHTB0": [ + "OrcaFilamentLibrary/Elegoo PAHT-CF" + ], + "OEPCB00": [ + "OrcaFilamentLibrary/Elegoo PC", + "OrcaFilamentLibrary/Elegoo PC-FR" + ], + "OEPETGB0": [ + "OrcaFilamentLibrary/Elegoo PET-CF", + "OrcaFilamentLibrary/Elegoo PETG", + "OrcaFilamentLibrary/Elegoo PETG HF", + "OrcaFilamentLibrary/Elegoo PETG PRO", + "OrcaFilamentLibrary/Elegoo PETG Translucent", + "OrcaFilamentLibrary/Elegoo PETG-CF", + "OrcaFilamentLibrary/Elegoo PETG-GF", + "OrcaFilamentLibrary/Elegoo Rapid PETG" + ], + "OEPLAB00": [ + "OrcaFilamentLibrary/Elegoo PLA", + "OrcaFilamentLibrary/Elegoo PLA Basic", + "OrcaFilamentLibrary/Elegoo PLA Galaxy", + "OrcaFilamentLibrary/Elegoo PLA Glow", + "OrcaFilamentLibrary/Elegoo PLA Marble", + "OrcaFilamentLibrary/Elegoo PLA Matte", + "OrcaFilamentLibrary/Elegoo PLA PRO", + "OrcaFilamentLibrary/Elegoo PLA Silk", + "OrcaFilamentLibrary/Elegoo PLA Sparkle", + "OrcaFilamentLibrary/Elegoo PLA Translucent2", + "OrcaFilamentLibrary/Elegoo PLA Wood", + "OrcaFilamentLibrary/Elegoo PLA+", + "OrcaFilamentLibrary/Elegoo PLA-CF", + "OrcaFilamentLibrary/Elegoo Rapid PLA+" + ], + "OETPUB00": [ + "OrcaFilamentLibrary/Elegoo Rapid TPU 95A", + "OrcaFilamentLibrary/Elegoo TPU 95A" + ], + "OFLSBS99": [ + "OrcaFilamentLibrary/Generic SBS" + ], + "OGFA00": [ + "OrcaFilamentLibrary/Bambu PLA Basic", + "OrcaFilamentLibrary/Elas PLA Basic", + "OrcaFilamentLibrary/Elas PLA Pro" + ], + "OGFA01": [ + "OrcaFilamentLibrary/Bambu PLA Matte" + ], + "OGFA02": [ + "OrcaFilamentLibrary/Bambu PLA Metal" + ], + "OGFA03": [ + "OrcaFilamentLibrary/Bambu PLA Impact" + ], + "OGFA05": [ + "OrcaFilamentLibrary/Bambu PLA Silk" + ], + "OGFA06": [ + "OrcaFilamentLibrary/Bambu PLA Silk+" + ], + "OGFA07": [ + "OrcaFilamentLibrary/Bambu PLA Marble" + ], + "OGFA08": [ + "OrcaFilamentLibrary/Bambu PLA Sparkle" + ], + "OGFA09": [ + "OrcaFilamentLibrary/Bambu PLA Tough" + ], + "OGFA11": [ + "OrcaFilamentLibrary/Bambu PLA Aero" + ], + "OGFA12": [ + "OrcaFilamentLibrary/Bambu PLA Glow" + ], + "OGFA13": [ + "OrcaFilamentLibrary/Bambu PLA Dynamic" + ], + "OGFA15": [ + "OrcaFilamentLibrary/Bambu PLA Galaxy" + ], + "OGFA16": [ + "OrcaFilamentLibrary/Bambu PLA Wood" + ], + "OGFA50": [ + "OrcaFilamentLibrary/Bambu PLA-CF" + ], + "OGFB00": [ + "OrcaFilamentLibrary/Bambu ABS" + ], + "OGFB01": [ + "OrcaFilamentLibrary/Bambu ASA", + "OrcaFilamentLibrary/Elas ASA" + ], + "OGFB02": [ + "OrcaFilamentLibrary/Bambu ASA-Aero" + ], + "OGFB50": [ + "OrcaFilamentLibrary/Bambu ABS-GF" + ], + "OGFB51": [ + "OrcaFilamentLibrary/Bambu ASA-CF" + ], + "OGFB60": [ + "OrcaFilamentLibrary/PolyLite ABS" + ], + "OGFB61": [ + "OrcaFilamentLibrary/PolyLite ASA" + ], + "OGFB98": [ + "Custom/Generic ASA", + "OrcaFilamentLibrary/Generic ASA" + ], + "OGFB99": [ + "Custom/Generic ABS", + "Flashforge/Flashforge ABS Basic", + "Flashforge/Flashforge ABS-GF", + "Flashforge/Flashforge ASA Basic", + "Flashforge/Flashforge ASA-CF", + "Flashforge/Flashforge ASA-GF", + "OrcaFilamentLibrary/Generic ABS" + ], + "OGFC00": [ + "OrcaFilamentLibrary/Bambu PC" + ], + "OGFC01": [ + "OrcaFilamentLibrary/Bambu PC FR" + ], + "OGFC99": [ + "OrcaFilamentLibrary/Generic PC" + ], + "OGFG00": [ + "OrcaFilamentLibrary/Bambu PETG Basic", + "OrcaFilamentLibrary/Elas PETG Basic" + ], + "OGFG01": [ + "OrcaFilamentLibrary/Bambu PETG Translucent" + ], + "OGFG02": [ + "OrcaFilamentLibrary/Bambu PETG HF" + ], + "OGFG50": [ + "OrcaFilamentLibrary/Bambu PETG-CF" + ], + "OGFG60": [ + "OrcaFilamentLibrary/PolyLite PETG" + ], + "OGFG97": [ + "OrcaFilamentLibrary/Generic PCTG" + ], + "OGFG99": [ + "Flashforge/Flashforge HS PETG", + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PETG Pro", + "Flashforge/Flashforge PETG Transparent", + "Flashforge/Flashforge PETG-CF", + "Flashforge/FusRock S-Multi", + "OrcaFilamentLibrary/Generic PETG", + "OrcaFilamentLibrary/Generic PETG HF", + "OrcaFilamentLibrary/Generic PETG-CF" + ], + "OGFGG300": [ + "OrcaFilamentLibrary/GreenGate3D PETG" + ], + "OGFL00": [ + "OrcaFilamentLibrary/PolyLite Dual PLA", + "OrcaFilamentLibrary/PolyLite PLA" + ], + "OGFL00-1": [ + "OrcaFilamentLibrary/PolyTerra Dual PLA" + ], + "OGFL01": [ + "OrcaFilamentLibrary/PolyTerra PLA", + "Snapmaker/PolyTerra Dual PLA", + "Snapmaker/PolyTerra J1 PLA", + "Snapmaker/PolyTerra PLA" + ], + "OGFL03": [ + "OrcaFilamentLibrary/eSUN PLA+" + ], + "OGFL04": [ + "OrcaFilamentLibrary/Overture PLA", + "OrcaFilamentLibrary/eSUN PLA-Basic" + ], + "OGFL05": [ + "OrcaFilamentLibrary/Overture Matte PLA", + "OrcaFilamentLibrary/eSUN PLA-Matte" + ], + "OGFL06": [ + "OrcaFilamentLibrary/Fiberon PETG-ESD", + "OrcaFilamentLibrary/eSUN PLA-Marble" + ], + "OGFL50": [ + "OrcaFilamentLibrary/Fiberon PA6-CF" + ], + "OGFL51": [ + "OrcaFilamentLibrary/Fiberon PA6-GF" + ], + "OGFL52": [ + "OrcaFilamentLibrary/Fiberon PA12-CF" + ], + "OGFL53": [ + "OrcaFilamentLibrary/Fiberon PA612-CF" + ], + "OGFL54": [ + "OrcaFilamentLibrary/Fiberon PET-CF" + ], + "OGFL55": [ + "OrcaFilamentLibrary/Fiberon PETG-rCF" + ], + "OGFL95": [ + "OrcaFilamentLibrary/Generic PLA High Speed" + ], + "OGFL96": [ + "Flashforge/Flashforge PLA Silk", + "Flashforge/Generic PLA Silk", + "OrcaFilamentLibrary/Generic PLA Silk" + ], + "OGFL98": [ + "Flashforge/Flashforge PLA-CF", + "OrcaFilamentLibrary/Generic PLA-CF" + ], + "OGFL99": [ + "Flashforge/Flashforge HS PLA", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Generic PLA", + "OrcaFilamentLibrary/Generic PLA", + "OrcaFilamentLibrary/Generic PLA Matte" + ], + "OGFLC99": [ + "OrcaFilamentLibrary/Generic CoPE" + ], + "OGFN03": [ + "OrcaFilamentLibrary/Bambu PA-CF" + ], + "OGFN04": [ + "OrcaFilamentLibrary/Bambu PAHT-CF" + ], + "OGFN05": [ + "OrcaFilamentLibrary/Bambu PA6-CF" + ], + "OGFN06": [ + "OrcaFilamentLibrary/Bambu PPA-CF" + ], + "OGFN08": [ + "OrcaFilamentLibrary/Bambu PA6-GF" + ], + "OGFN96": [ + "Flashforge/Flashforge PPA-CF", + "Flashforge/Flashforge PPS-CF", + "OrcaFilamentLibrary/Generic PPA-GF" + ], + "OGFN97": [ + "OrcaFilamentLibrary/Generic PPA-CF" + ], + "OGFN98": [ + "Custom/Generic PA-CF", + "Flashforge/Flashforge PA-CF", + "Flashforge/Flashforge PAHT-CF", + "Flashforge/FusRock PAHT-CF", + "Flashforge/FusRock S-PAHT", + "OrcaFilamentLibrary/Generic PA-CF" + ], + "OGFN99": [ + "Custom/Generic PA", + "OrcaFilamentLibrary/Generic PA" + ], + "OGFNMK00": [ + "OrcaFilamentLibrary/Numakers PLA+" + ], + "OGFP97": [ + "OrcaFilamentLibrary/Generic PP", + "OrcaFilamentLibrary/Generic PP-CF", + "OrcaFilamentLibrary/Generic PP-GF" + ], + "OGFP99": [ + "OrcaFilamentLibrary/Generic PE", + "OrcaFilamentLibrary/Generic PE-CF" + ], + "OGFPM001": [ + "OrcaFilamentLibrary/Panchroma PLA" + ], + "OGFPM002": [ + "OrcaFilamentLibrary/Panchroma PLA Matte" + ], + "OGFPM003": [ + "OrcaFilamentLibrary/Panchroma PLA Marble" + ], + "OGFPM004": [ + "OrcaFilamentLibrary/Panchroma PLA Silk" + ], + "OGFPM005": [ + "OrcaFilamentLibrary/Panchroma PLA Satin" + ], + "OGFPM006": [ + "OrcaFilamentLibrary/Panchroma PLA Translucent" + ], + "OGFPM007": [ + "OrcaFilamentLibrary/Panchroma PLA Galaxy" + ], + "OGFPM008": [ + "OrcaFilamentLibrary/Panchroma PLA Celestial" + ], + "OGFPM009": [ + "OrcaFilamentLibrary/Panchroma PLA Starlight" + ], + "OGFPM010": [ + "OrcaFilamentLibrary/Panchroma PLA Glow" + ], + "OGFPM011": [ + "OrcaFilamentLibrary/Panchroma PLA Luminous" + ], + "OGFPM012": [ + "OrcaFilamentLibrary/Panchroma PLA Metallic" + ], + "OGFPM013": [ + "OrcaFilamentLibrary/Panchroma PLA Neon" + ], + "OGFPM014": [ + "OrcaFilamentLibrary/Panchroma PLA UV Shift" + ], + "OGFPM015": [ + "OrcaFilamentLibrary/Panchroma PLA Temp Shift" + ], + "OGFPM016": [ + "OrcaFilamentLibrary/Panchroma CoPE" + ], + "OGFPM017": [ + "OrcaFilamentLibrary/Polymaker HT-PLA" + ], + "OGFPM018": [ + "OrcaFilamentLibrary/Polymaker HT-PLA-GF" + ], + "OGFPM019": [ + "OrcaFilamentLibrary/PolyLite PLA Pro" + ], + "OGFR00": [ + "OrcaFilamentLibrary/FusRock ABS-GF" + ], + "OGFR98": [ + "OrcaFilamentLibrary/Generic PHA" + ], + "OGFR99": [ + "OrcaFilamentLibrary/Generic EVA" + ], + "OGFS00": [ + "OrcaFilamentLibrary/Bambu Support W" + ], + "OGFS01": [ + "OrcaFilamentLibrary/Bambu Support G" + ], + "OGFS02": [ + "OrcaFilamentLibrary/Bambu Support For PLA" + ], + "OGFS03": [ + "OrcaFilamentLibrary/Bambu Support For PA/PET" + ], + "OGFS04": [ + "OrcaFilamentLibrary/Bambu PVA" + ], + "OGFS05": [ + "OrcaFilamentLibrary/Bambu Support For PLA/PETG" + ], + "OGFS06": [ + "OrcaFilamentLibrary/Bambu Support for ABS" + ], + "OGFS97": [ + "Flashforge/Generic BVOH", + "OrcaFilamentLibrary/Generic BVOH" + ], + "OGFS98": [ + "Flashforge/Flashforge HIPS", + "OrcaFilamentLibrary/Generic HIPS" + ], + "OGFS99": [ + "Flashforge/Flashforge PVA", + "OrcaFilamentLibrary/Generic PVA" + ], + "OGFSNL02": [ + "OrcaFilamentLibrary/SUNLU PLA Matte" + ], + "OGFSNL03": [ + "OrcaFilamentLibrary/SUNLU PLA+" + ], + "OGFSNL04": [ + "OrcaFilamentLibrary/SUNLU PLA+ 2.0" + ], + "OGFSNL05": [ + "OrcaFilamentLibrary/SUNLU Silk PLA+" + ], + "OGFSNL06": [ + "OrcaFilamentLibrary/SUNLU PLA Marble" + ], + "OGFSNL07": [ + "OrcaFilamentLibrary/SUNLU Wood PLA" + ], + "OGFSNL08": [ + "OrcaFilamentLibrary/SUNLU PETG" + ], + "OGFT01": [ + "OrcaFilamentLibrary/Bambu PET-CF" + ], + "OGFT02": [], + "OGFU00": [ + "OrcaFilamentLibrary/Bambu TPU 95A HF" + ], + "OGFU01": [ + "OrcaFilamentLibrary/Bambu TPU 95A" + ], + "OGFU99": [ + "Flashforge/Flashforge TPU-64D", + "Flashforge/Flashforge TPU-90A", + "Flashforge/Flashforge TPU-95A", + "Flashforge/Generic TPU-64D", + "Flashforge/Generic TPU-90A", + "Flashforge/Generic TPU-95A", + "OrcaFilamentLibrary/Generic TPU" + ], + "OVTABS08": [ + "OrcaFilamentLibrary/Overture ABS Basic" + ], + "P1001": [ + "Creality/Panchroma PLA Satin" + ], + "P1002": [ + "Creality/PolySonic PLA Pro" + ], + "P1003": [ + "Creality/Panchroma PLA Matte" + ], + "P1004": [ + "Creality/PolySonic PLA" + ], + "P11851ba": [ + "Artillery/Artillery PET" + ], + "P284941e": [ + "Artillery/Artillery PETG", + "Artillery/Artillery PETG Basic" + ], + "P2fbf0c0": [ + "Artillery/Artillery TPU" + ], + "P39db358": [ + "Artillery/Artillery ABS" + ], + "P510cfa0": [ + "Cubicon/Cubicon PLA" + ], + "P510cfa1": [ + "Cubicon/Cubicon PLA+" + ], + "P510cfa2": [ + "Cubicon/Cubicon PLAi21" + ], + "P510cfb0": [ + "Cubicon/Cubicon ABS" + ], + "P510cfb1": [ + "Cubicon/Cubicon ABS-A100" + ], + "P510cfb2": [ + "Cubicon/Cubicon ABSk" + ], + "P510cfc0": [ + "Cubicon/Cubicon PETG" + ], + "P510cfd0": [ + "Cubicon/Cubicon PA-CF", + "Cubicon/Cubicon PC" + ], + "P510eff9": [ + "Ginger Additive/Ginger Generic PETG", + "Ginger Additive/Ginger Generic PLA" + ], + "P8163162": [ + "Artillery/Artillery PVA" + ], + "P87436f6": [ + "Artillery/Artillery ASA" + ], + "Pfcf9c4c": [ + "Artillery/Artillery PLA", + "Artillery/Artillery PLA Basic", + "Artillery/Artillery PLA Matte", + "Artillery/Artillery PLA Silk" + ], + "Prusa Generic ABS @CORE One": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One 0.6": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One 0.8": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One HF 0.4": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One HF 0.5": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One HF 0.6": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ABS @CORE One HF 0.8": [ + "Prusa/Prusa Generic ABS" + ], + "Prusa Generic ASA @CORE One": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One 0.6": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One 0.8": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One HF 0.4": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One HF 0.5": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One HF 0.6": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic ASA @CORE One HF 0.8": [ + "Prusa/Prusa Generic ASA" + ], + "Prusa Generic PETG @CORE One": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One 0.6": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One 0.8": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One HF 0.4": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One HF 0.5": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One HF 0.6": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PETG @CORE One HF 0.8": [ + "Prusa/Prusa Generic PETG" + ], + "Prusa Generic PLA @CORE One": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One 0.6": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One 0.8": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One HF 0.4": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One HF 0.5": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One HF 0.6": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA @CORE One HF 0.8": [ + "Prusa/Prusa Generic PLA" + ], + "Prusa Generic PLA Silk @CORE One": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Prusa Generic PLA Silk @CORE One 0.6": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Prusa Generic PLA Silk @CORE One 0.8": [ + "Prusa/Prusa Generic PLA Silk" + ], + "Prusa Generic TPU @CORE One": [ + "Prusa/Prusa Generic TPU" + ], + "Prusa Generic TPU @CORE One 0.6": [ + "Prusa/Prusa Generic TPU" + ], + "Prusa Generic TPU @CORE One 0.8": [ + "Prusa/Prusa Generic TPU" + ], + "Prusament ASA @CORE One": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One 0.6": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One 0.8": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One HF 0.4": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One HF 0.5": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One HF 0.6": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @CORE One HF 0.8": [ + "Prusa/Prusament ASA" + ], + "Prusament ASA @MK4S": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S 0.6": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S 0.8": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S HF0.4": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S HF0.5": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S HF0.6": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament ASA @MK4S HF0.8": [ + "Prusa/Prusa Generic ASA" + ], + "Prusament PA-CF @CORE One": [ + "Prusa/Prusament PA-CF" + ], + "Prusament PA-CF @CORE One 0.6": [ + "Prusa/Prusament PA-CF" + ], + "Prusament PA-CF @CORE One 0.8": [ + "Prusa/Prusament PA-CF" + ], + "Prusament PC Blend @CORE One": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One 0.6": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One 0.8": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One HF 0.4": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One HF 0.5": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One HF 0.6": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC Blend @CORE One HF 0.8": [ + "Prusa/Prusament PC Blend" + ], + "Prusament PC-CF @CORE One": [ + "Prusa/Prusament PC-CF" + ], + "Prusament PC-CF @CORE One 0.6": [ + "Prusa/Prusament PC-CF" + ], + "Prusament PC-CF @CORE One 0.8": [ + "Prusa/Prusament PC-CF" + ], + "Prusament PETG @CORE One": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One 0.6": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One 0.8": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One HF 0.4": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One HF 0.5": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One HF 0.6": [ + "Prusa/Prusament PETG" + ], + "Prusament PETG @CORE One HF 0.8": [ + "Prusa/Prusament PETG" + ], + "Prusament PLA @CORE One": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One 0.6": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One 0.8": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One HF 0.4": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One HF 0.5": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One HF 0.6": [ + "Prusa/Prusament PLA" + ], + "Prusament PLA @CORE One HF 0.8": [ + "Prusa/Prusament PLA" + ], + "Prusament PVB @CORE One": [ + "Prusa/Prusament PVB" + ], + "Prusament PVB @CORE One 0.6": [ + "Prusa/Prusament PVB" + ], + "Prusament PVB @CORE One 0.8": [ + "Prusa/Prusament PVB" + ], + "Prusament rPLA @CORE One": [ + "Prusa/Prusament rPLA" + ], + "Prusament rPLA @CORE One 0.6": [ + "Prusa/Prusament rPLA" + ], + "Prusament rPLA @CORE One 0.8": [ + "Prusa/Prusament rPLA" + ], + "QD_0_1_1": [ + "Qidi/QIDI PLA Rapido" + ], + "QD_0_1_15": [ + "Qidi/QIDI TPU-GF" + ], + "QD_0_1_2": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "QD_0_1_20": [ + "Qidi/QIDI ASA-CF" + ], + "QD_0_1_24": [ + "Qidi/QIDI PA-Ultra" + ], + "QD_0_1_26": [ + "Qidi/QIDI UltraPA-CF25" + ], + "QD_0_1_27": [ + "Qidi/QIDI PA12-CF" + ], + "QD_0_1_3": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "QD_0_1_30": [ + "Qidi/QIDI PAHT-CF" + ], + "QD_0_1_31": [ + "Qidi/QIDI PAHT-GF" + ], + "QD_0_1_32": [ + "Qidi/QIDI Support For PAHT" + ], + "QD_0_1_33": [ + "Qidi/QIDI Support For PET/PA" + ], + "QD_0_1_34": [ + "Qidi/Qidi PC-ABS-FR" + ], + "QD_0_1_36": [ + "Qidi/QIDI PEBA 95A" + ], + "QD_0_1_37": [ + "Qidi/QIDI PET-CF" + ], + "QD_0_1_38": [ + "Qidi/QIDI PET-GF" + ], + "QD_0_1_39": [ + "Qidi/QIDI PETG Basic" + ], + "QD_0_1_4": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "QD_0_1_40": [ + "Qidi/QIDI PETG Tough" + ], + "QD_0_1_41": [ + "Qidi/QIDI PETG Rapido" + ], + "QD_0_1_42": [ + "Qidi/QIDI PETG-CF" + ], + "QD_0_1_43": [ + "Qidi/QIDI PETG-GF" + ], + "QD_0_1_44": [ + "Qidi/QIDI PPS-CF" + ], + "QD_0_1_45": [ + "Qidi/QIDI PETG Translucent" + ], + "QD_0_1_46": [ + "Qidi/QIDI PPS-GF" + ], + "QD_0_1_49": [ + "Qidi/QIDI TPU-Aero" + ], + "QD_0_1_5": [ + "Qidi/QIDI PLA-CF" + ], + "QD_0_1_50": [ + "Qidi/Qidi TPU 95A-HF" + ], + "QD_0_1_6": [ + "Qidi/QIDI WOOD Rapido" + ], + "QD_0_1_7": [ + "Qidi/QIDI PLA Basic" + ], + "QD_0_1_8": [ + "Qidi/QIDI PLA Matte Basic" + ], + "QD_1_0_1": [ + "Qidi/Generic PLA" + ], + "QD_1_0_11": [ + "Qidi/Generic ABS" + ], + "QD_1_0_23": [ + "Qidi/Generic PC" + ], + "QD_1_0_4": [ + "Qidi/Generic PLA Silk" + ], + "QD_1_0_41": [ + "Qidi/Generic PETG" + ], + "QD_1_0_50": [ + "Qidi/Generic TPU 95A" + ], + "QD_1_1_1": [ + "Qidi/QIDI PLA Rapido" + ], + "QD_1_1_11": [ + "Qidi/QIDI ABS Rapido" + ], + "QD_1_1_12": [ + "Qidi/QIDI ABS-GF" + ], + "QD_1_1_13": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "QD_1_1_14": [ + "Qidi/QIDI ABS Odorless" + ], + "QD_1_1_15": [ + "Qidi/QIDI TPU-GF" + ], + "QD_1_1_18": [ + "Qidi/QIDI ASA" + ], + "QD_1_1_19": [ + "Qidi/QIDI ASA-Aero" + ], + "QD_1_1_2": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "QD_1_1_20": [ + "Qidi/QIDI ASA-CF" + ], + "QD_1_1_24": [ + "Qidi/QIDI UltraPA" + ], + "QD_1_1_26": [ + "Qidi/QIDI UltraPA-CF25" + ], + "QD_1_1_27": [ + "Qidi/QIDI PA12-CF" + ], + "QD_1_1_3": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "QD_1_1_30": [ + "Qidi/QIDI PAHT-CF" + ], + "QD_1_1_31": [ + "Qidi/QIDI PAHT-GF" + ], + "QD_1_1_32": [ + "Qidi/QIDI Support For PAHT" + ], + "QD_1_1_33": [ + "Qidi/QIDI Support For PET/PA" + ], + "QD_1_1_34": [ + "Qidi/QIDI PC-ABS-FR" + ], + "QD_1_1_36": [ + "Qidi/QIDI PEBA 95A" + ], + "QD_1_1_37": [ + "Qidi/QIDI PET-CF" + ], + "QD_1_1_38": [ + "Qidi/QIDI PET-GF" + ], + "QD_1_1_39": [ + "Qidi/QIDI PETG Basic" + ], + "QD_1_1_4": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "QD_1_1_40": [ + "Qidi/QIDI PETG Tough" + ], + "QD_1_1_41": [ + "Qidi/QIDI PETG Rapido" + ], + "QD_1_1_42": [ + "Qidi/QIDI PETG-CF" + ], + "QD_1_1_43": [ + "Qidi/QIDI PETG-GF" + ], + "QD_1_1_44": [ + "Qidi/QIDI PPS-CF" + ], + "QD_1_1_45": [ + "Qidi/QIDI PETG Translucent" + ], + "QD_1_1_46": [ + "Qidi/QIDI PPS-GF" + ], + "QD_1_1_49": [ + "Qidi/QIDI TPU-Aero" + ], + "QD_1_1_5": [ + "Qidi/QIDI PLA-CF" + ], + "QD_1_1_50": [ + "Qidi/QIDI TPU 95A-HF" + ], + "QD_1_1_6": [ + "Qidi/QIDI WOOD Rapido" + ], + "QD_1_1_7": [ + "Qidi/QIDI PLA Basic" + ], + "QD_1_1_8": [ + "Qidi/QIDI PLA Matte Basic" + ], + "QD_2_0_1": [ + "Qidi/Generic PLA" + ], + "QD_2_0_11": [ + "Qidi/Generic ABS" + ], + "QD_2_0_23": [ + "Qidi/Generic PC" + ], + "QD_2_0_4": [ + "Qidi/Generic PLA Silk" + ], + "QD_2_0_41": [ + "Qidi/Generic PETG" + ], + "QD_2_0_50": [ + "Qidi/Generic TPU 95A" + ], + "QD_2_1_1": [ + "Qidi/QIDI PLA Rapido" + ], + "QD_2_1_11": [ + "Qidi/QIDI ABS Rapido" + ], + "QD_2_1_12": [ + "Qidi/QIDI ABS-GF" + ], + "QD_2_1_13": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "QD_2_1_14": [ + "Qidi/QIDI ABS Odorless" + ], + "QD_2_1_15": [ + "Qidi/QIDI TPU-GF" + ], + "QD_2_1_18": [ + "Qidi/QIDI ASA" + ], + "QD_2_1_19": [ + "Qidi/QIDI ASA-Aero" + ], + "QD_2_1_2": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "QD_2_1_20": [ + "Qidi/QIDI ASA-CF" + ], + "QD_2_1_24": [ + "Qidi/QIDI UltraPA" + ], + "QD_2_1_26": [ + "Qidi/QIDI UltraPA-CF25" + ], + "QD_2_1_27": [ + "Qidi/QIDI PA12-CF" + ], + "QD_2_1_3": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "QD_2_1_30": [ + "Qidi/QIDI PAHT-CF" + ], + "QD_2_1_31": [ + "Qidi/QIDI PAHT-GF" + ], + "QD_2_1_32": [ + "Qidi/QIDI Support For PAHT" + ], + "QD_2_1_33": [ + "Qidi/QIDI Support For PET/PA" + ], + "QD_2_1_34": [ + "Qidi/QIDI PC-ABS-FR" + ], + "QD_2_1_36": [ + "Qidi/QIDI PEBA 95A" + ], + "QD_2_1_37": [ + "Qidi/QIDI PET-CF" + ], + "QD_2_1_38": [ + "Qidi/QIDI PET-GF" + ], + "QD_2_1_39": [ + "Qidi/QIDI PETG Basic" + ], + "QD_2_1_4": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "QD_2_1_40": [ + "Qidi/QIDI PETG Tough" + ], + "QD_2_1_41": [ + "Qidi/QIDI PETG Rapido" + ], + "QD_2_1_42": [ + "Qidi/QIDI PETG-CF" + ], + "QD_2_1_43": [ + "Qidi/QIDI PETG-GF" + ], + "QD_2_1_44": [ + "Qidi/QIDI PPS-CF" + ], + "QD_2_1_45": [ + "Qidi/QIDI PETG Translucent" + ], + "QD_2_1_46": [ + "Qidi/QIDI PPS-GF" + ], + "QD_2_1_49": [ + "Qidi/QIDI TPU-Aero" + ], + "QD_2_1_5": [ + "Qidi/QIDI PLA-CF" + ], + "QD_2_1_50": [ + "Qidi/QIDI TPU 95A-HF" + ], + "QD_2_1_6": [ + "Qidi/QIDI WOOD Rapido" + ], + "QD_2_1_7": [ + "Qidi/QIDI PLA Basic" + ], + "QD_2_1_8": [ + "Qidi/QIDI PLA Matte Basic" + ], + "QD_3_0_1": [ + "Qidi/Generic PLA" + ], + "QD_3_0_11": [ + "Qidi/Generic ABS" + ], + "QD_3_0_23": [ + "Qidi/Generic PC" + ], + "QD_3_0_4": [ + "Qidi/Generic PLA Silk" + ], + "QD_3_0_41": [ + "Qidi/Generic PETG" + ], + "QD_3_0_50": [ + "Qidi/Generic TPU 95A" + ], + "QD_3_1_1": [ + "Qidi/QIDI PLA Rapido" + ], + "QD_3_1_11": [ + "Qidi/QIDI ABS Rapido" + ], + "QD_3_1_12": [ + "Qidi/QIDI ABS-GF" + ], + "QD_3_1_13": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "QD_3_1_14": [ + "Qidi/QIDI ABS Odorless" + ], + "QD_3_1_15": [ + "Qidi/QIDI TPU-GF" + ], + "QD_3_1_18": [ + "Qidi/QIDI ASA" + ], + "QD_3_1_19": [ + "Qidi/QIDI ASA-Aero" + ], + "QD_3_1_2": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "QD_3_1_20": [ + "Qidi/QIDI ASA-CF" + ], + "QD_3_1_24": [ + "Qidi/QIDI UltraPA" + ], + "QD_3_1_26": [ + "Qidi/QIDI UltraPA-CF25" + ], + "QD_3_1_27": [ + "Qidi/QIDI PA12-CF" + ], + "QD_3_1_3": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "QD_3_1_30": [ + "Qidi/QIDI PAHT-CF" + ], + "QD_3_1_31": [ + "Qidi/QIDI PAHT-GF" + ], + "QD_3_1_32": [ + "Qidi/QIDI Support For PAHT" + ], + "QD_3_1_33": [ + "Qidi/QIDI Support For PET/PA" + ], + "QD_3_1_34": [ + "Qidi/QIDI PC/ABS-FR" + ], + "QD_3_1_36": [ + "Qidi/QIDI PEBA 95A" + ], + "QD_3_1_37": [ + "Qidi/QIDI PET-CF" + ], + "QD_3_1_38": [ + "Qidi/QIDI PET-GF" + ], + "QD_3_1_39": [ + "Qidi/QIDI PETG Basic" + ], + "QD_3_1_4": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "QD_3_1_40": [ + "Qidi/QIDI PETG Tough" + ], + "QD_3_1_41": [ + "Qidi/QIDI PETG Rapido" + ], + "QD_3_1_42": [ + "Qidi/QIDI PETG-CF" + ], + "QD_3_1_43": [ + "Qidi/QIDI PETG-GF" + ], + "QD_3_1_44": [ + "Qidi/QIDI PPS-CF" + ], + "QD_3_1_45": [ + "Qidi/QIDI PETG Translucent" + ], + "QD_3_1_46": [ + "Qidi/QIDI PPS-GF" + ], + "QD_3_1_49": [ + "Qidi/QIDI TPU-Aero" + ], + "QD_3_1_5": [ + "Qidi/QIDI PLA-CF" + ], + "QD_3_1_50": [ + "Qidi/QIDI TPU 95A-HF" + ], + "QD_3_1_6": [ + "Qidi/QIDI WOOD Rapido" + ], + "QD_3_1_7": [ + "Qidi/QIDI PLA Basic" + ], + "QD_3_1_8": [ + "Qidi/QIDI PLA Matte Basic" + ], + "SMCFB001": [ + "SeeMeCNC/SeeMeCNC ABS" + ], + "SMCFG001": [ + "SeeMeCNC/SeeMeCNC PETG" + ], + "SMCFG002": [ + "SeeMeCNC/SeeMeCNC PETG-CF" + ], + "SMCFL001": [ + "SeeMeCNC/SeeMeCNC PLA" + ], + "SMCFN001": [ + "SeeMeCNC/SeeMeCNC PA-CF" + ], + "SMCFU001": [ + "SeeMeCNC/SeeMeCNC TPU" + ], + "VLMNT01": [ + "OrcaFilamentLibrary/Valment PLA" + ], + "VLMNT02": [ + "OrcaFilamentLibrary/Valment PLA Silk" + ], + "VLMNT03": [ + "OrcaFilamentLibrary/Valment PLA-CF" + ], + "VLMNT04": [ + "OrcaFilamentLibrary/Valment PLA Galaxy" + ] + }, + "instantiated_with_id": [ + "Afinia/Afinia ABS", + "Afinia/Afinia ABS+", + "Afinia/Afinia ABS+@HS", + "Afinia/Afinia ABS@HS", + "Afinia/Afinia PLA", + "Afinia/Afinia PLA@HS", + "Afinia/Afinia TPU", + "Afinia/Afinia TPU@HS", + "Afinia/Afinia Value ABS", + "Afinia/Afinia Value ABS@HS", + "Afinia/Afinia Value PLA", + "Afinia/Afinia Value PLA@HS", + "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic ABS @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic ASA @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic Generic ABS", + "Anycubic/Anycubic Generic ASA", + "Anycubic/Anycubic Generic PA", + "Anycubic/Anycubic Generic PA-CF", + "Anycubic/Anycubic Generic PC", + "Anycubic/Anycubic Generic PETG", + "Anycubic/Anycubic Generic PLA", + "Anycubic/Anycubic Generic PLA-CF", + "Anycubic/Anycubic Generic PVA", + "Anycubic/Anycubic Generic TPU", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PVA @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", + "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Panchroma PLA @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "Artillery/Artillery ABS @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery ABS @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery ABS @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery ASA @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery ASA @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery ASA @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery Generic ABS", + "Artillery/Artillery Generic ASA", + "Artillery/Artillery Generic PETG", + "Artillery/Artillery Generic PLA", + "Artillery/Artillery Generic PLA-CF", + "Artillery/Artillery Generic TPU", + "Artillery/Artillery PET @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PET @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PET @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PETG @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PETG @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PETG @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PVA @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PVA @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PVA @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery TPU @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery TPU @Artillery M1 Pro 0.8 nozzle", + "BBL/Generic SBS", + "Blocks/Blocks Generic ABS", + "Blocks/Blocks Generic ASA", + "Blocks/Blocks Generic ASA-CF", + "Blocks/Blocks Generic PA", + "Blocks/Blocks Generic PA-CF", + "Blocks/Blocks Generic PC", + "Blocks/Blocks Generic PETG", + "Blocks/Blocks Generic PLA", + "Blocks/Blocks Generic PLA-CF", + "Blocks/Blocks Generic PVA", + "Blocks/Blocks Generic TPU", + "CONSTRUCT3D/C1 Generic High Flow PETG", + "CONSTRUCT3D/C1 Generic PETG", + "CONSTRUCT3D/C1 Generic PLA", + "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", + "Chuanying/Chuanying ASA @Chuanying X1 0.25 Nozzle", + "Chuanying/Chuanying Generic ABS", + "Chuanying/Chuanying Generic ASA", + "Chuanying/Chuanying Generic HIPS", + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying Generic PETG", + "Chuanying/Chuanying Generic PETG-CF10", + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying Generic PLA-CF10", + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying Generic PVA", + "Chuanying/Chuanying Generic TPU", + "Chuanying/Chuanying HS PLA @Chuanying X1 0.25 Nozzle", + "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", + "Chuanying/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", + "Co Print/CoPrint Generic ABS", + "Co Print/CoPrint Generic PETG", + "Co Print/CoPrint Generic PLA", + "Co Print/CoPrint Generic TPU", + "CoLiDo/CoLiDo ABS @CoLiDo SR1", + "CoLiDo/CoLiDo Generic ABS @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic ABS @CoLiDo X16", + "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", + "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", + "CoLiDo/CoLiDo Generic TPU @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic TPU @CoLiDo X16", + "CoLiDo/CoLiDo PETG @CoLiDo SR1", + "CoLiDo/CoLiDo PLA @CoLiDo SR1", + "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", + "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", + "Comgrow/Comgrow Generic ABS", + "Comgrow/Comgrow Generic PETG", + "Comgrow/Comgrow Generic PLA", + "Comgrow/Comgrow T300 PLA", + "Creality/CR-ABS @Ender-3 V4-all", + "Creality/CR-ABS @Hi-all", + "Creality/CR-ABS @K1 Max_CFS-C-all", + "Creality/CR-ABS @K1 SE-all", + "Creality/CR-ABS @K1 SE_CFS-C-all", + "Creality/CR-ABS @K1C-all", + "Creality/CR-ABS @K1C_CFS-C-all", + "Creality/CR-ABS @K1_CFS-C-all", + "Creality/CR-ABS @K2 Plus-all", + "Creality/CR-ABS @K2 Pro-all", + "Creality/CR-ABS @K2 SE-all", + "Creality/CR-ABS @K2-all", + "Creality/CR-Nylon @K1 Max_CFS-C-all", + "Creality/CR-Nylon @K1C-all", + "Creality/CR-Nylon @K1C_CFS-C-all", + "Creality/CR-Nylon @K1_CFS-C-all", + "Creality/CR-Nylon @K2 Plus-all", + "Creality/CR-PETG @Ender-3 V4-all", + "Creality/CR-PETG @Hi-all", + "Creality/CR-PETG @K1 Max_CFS-C-all", + "Creality/CR-PETG @K1 SE-all", + "Creality/CR-PETG @K1 SE_CFS-C-all", + "Creality/CR-PETG @K1C-all", + "Creality/CR-PETG @K1C_CFS-C-all", + "Creality/CR-PETG @K1_CFS-C-all", + "Creality/CR-PETG @K2 Plus-all", + "Creality/CR-PETG @K2 Pro-all", + "Creality/CR-PETG @K2 SE-all", + "Creality/CR-PETG @K2-all", + "Creality/CR-PETG @SPARKX i7-all", + "Creality/CR-PLA @Ender-3 V4-all", + "Creality/CR-PLA @Hi-all", + "Creality/CR-PLA @K1 Max_CFS-C-all", + "Creality/CR-PLA @K1 SE-all", + "Creality/CR-PLA @K1 SE_CFS-C-all", + "Creality/CR-PLA @K1C-all", + "Creality/CR-PLA @K1C_CFS-C-all", + "Creality/CR-PLA @K1_CFS-C-all", + "Creality/CR-PLA @K2 Plus-all", + "Creality/CR-PLA @K2 Pro-all", + "Creality/CR-PLA @K2 SE-all", + "Creality/CR-PLA @K2-all", + "Creality/CR-PLA @SPARKX i7-all", + "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", + "Creality/CR-PLA Carbon @K1C-all", + "Creality/CR-PLA Carbon @K1C_CFS-C-all", + "Creality/CR-PLA Carbon @K1_CFS-C-all", + "Creality/CR-PLA Carbon @K2 Plus-all", + "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", + "Creality/CR-PLA Fluo @K1C-all", + "Creality/CR-PLA Fluo @K1C_CFS-C-all", + "Creality/CR-PLA Fluo @K1_CFS-C-all", + "Creality/CR-PLA Fluo @K2 Plus-all", + "Creality/CR-PLA Fluo @K2 Pro-all", + "Creality/CR-PLA Fluo @K2-all", + "Creality/CR-PLA Fluo @SPARKX i7-all", + "Creality/CR-PLA Matte @Ender-3 V4-all", + "Creality/CR-PLA Matte @K1 Max_CFS-C-all", + "Creality/CR-PLA Matte @K1C-all", + "Creality/CR-PLA Matte @K1C_CFS-C-all", + "Creality/CR-PLA Matte @K1_CFS-C-all", + "Creality/CR-PLA Matte @K2 Plus-all", + "Creality/CR-PLA Matte @K2 Pro-all", + "Creality/CR-PLA Matte @K2-all", + "Creality/CR-PLA Matte @SPARKX i7-all", + "Creality/CR-Silk @Ender-3 V4-all", + "Creality/CR-Silk @Hi-all", + "Creality/CR-Silk @K1 Max_CFS-C-all", + "Creality/CR-Silk @K1 SE-all", + "Creality/CR-Silk @K1 SE_CFS-C-all", + "Creality/CR-Silk @K1C-all", + "Creality/CR-Silk @K1C_CFS-C-all", + "Creality/CR-Silk @K1_CFS-C-all", + "Creality/CR-Silk @K2 Plus-all", + "Creality/CR-Silk @K2 Pro-all", + "Creality/CR-Silk @K2 SE-all", + "Creality/CR-Silk @K2-all", + "Creality/CR-Silk @SPARKX i7-all", + "Creality/CR-TPU @K1 Max_CFS-C-all", + "Creality/CR-TPU @K1C-all", + "Creality/CR-TPU @K1C_CFS-C-all", + "Creality/CR-TPU @K1_CFS-C-all", + "Creality/CR-TPU @K2 Plus-all", + "Creality/CR-TPU @K2 Pro-all", + "Creality/CR-TPU @K2-all", + "Creality/CR-TPU @SPARKX i7-all", + "Creality/CR-Wood @K1 Max_CFS-C-all", + "Creality/CR-Wood @K1C-all", + "Creality/CR-Wood @K1C_CFS-C-all", + "Creality/CR-Wood @K1_CFS-C-all", + "Creality/CR-Wood @K2 Plus-all", + "Creality/Creality Generic ABS", + "Creality/Creality Generic ABS @Ender-5Max-all", + "Creality/Creality Generic ASA", + "Creality/Creality Generic ASA @Ender-5Max-all", + "Creality/Creality Generic PA @Ender-5Max-all", + "Creality/Creality Generic PA-CF", + "Creality/Creality Generic PETG", + "Creality/Creality Generic PETG @Ender-5Max-all", + "Creality/Creality Generic PLA", + "Creality/Creality Generic PLA @Ender-5Max-all", + "Creality/Creality Generic PLA-CF", + "Creality/Creality Generic TPU", + "Creality/Creality Generic TPU @Ender-5Max-all", + "Creality/Creality HF Generic PLA", + "Creality/Creality HF Generic Speed PLA", + "Creality/Creality Hyper ABS @Ender-5Max-all", + "Creality/Creality Hyper PLA @Ender-5Max-all", + "Creality/Creality Hyper PLA-CF @Ender-5Max-all", + "Creality/Creality Silk PLA @Ender-5Max-all", + "Creality/EN-PLA+ @K1 Max_CFS-C-all", + "Creality/EN-PLA+ @K1C-all", + "Creality/EN-PLA+ @K1C_CFS-C-all", + "Creality/EN-PLA+ @K1_CFS-C-all", + "Creality/EN-PLA+ @K2 Plus-all", + "Creality/EN-PLA+ @K2 Pro-all", + "Creality/EN-PLA+ @K2-all", + "Creality/EN-PLA+ @SPARKX i7-all", + "Creality/ENDER FAST PLA @Hi-all", + "Creality/ENDER FAST PLA @K2 Plus-all", + "Creality/ENDER FAST PLA @K2 Pro-all", + "Creality/ENDER FAST PLA @K2-all", + "Creality/ENDER FAST PLA @SPARKX i7-all", + "Creality/Ender-PLA @Ender-3 V4-all", + "Creality/Ender-PLA @Hi-all", + "Creality/Ender-PLA @K1 Max_CFS-C-all", + "Creality/Ender-PLA @K1C-all", + "Creality/Ender-PLA @K1C_CFS-C-all", + "Creality/Ender-PLA @K1_CFS-C-all", + "Creality/Ender-PLA @K2 Plus-all", + "Creality/Ender-PLA @K2 Pro-all", + "Creality/Ender-PLA @K2-all", + "Creality/Ender-PLA @SPARKX i7-all", + "Creality/Generic ABS @Ender-3 V4-all", + "Creality/Generic ABS @Hi-all", + "Creality/Generic ABS @K1 Max_CFS-C-all", + "Creality/Generic ABS @K1 SE-all", + "Creality/Generic ABS @K1 SE_CFS-C-all", + "Creality/Generic ABS @K1C-all", + "Creality/Generic ABS @K1C_CFS-C-all", + "Creality/Generic ABS @K1_CFS-C-all", + "Creality/Generic ABS @K2 Plus-all", + "Creality/Generic ABS @K2 Pro-all", + "Creality/Generic ABS @K2 SE-all", + "Creality/Generic ABS @K2-all", + "Creality/Generic ASA @K1 Max_CFS-C-all", + "Creality/Generic ASA @K1 SE-all", + "Creality/Generic ASA @K1 SE_CFS-C-all", + "Creality/Generic ASA @K1C-all", + "Creality/Generic ASA @K1C_CFS-C-all", + "Creality/Generic ASA @K1_CFS-C-all", + "Creality/Generic ASA @K2 Plus-all", + "Creality/Generic ASA @K2 Pro-all", + "Creality/Generic ASA @K2 SE-all", + "Creality/Generic ASA @K2-all", + "Creality/Generic ASA-CF @K2 Plus-all", + "Creality/Generic BVOH @Hi-all", + "Creality/Generic BVOH @K1 Max_CFS-C-all", + "Creality/Generic BVOH @K1C-all", + "Creality/Generic BVOH @K1C_CFS-C-all", + "Creality/Generic BVOH @K1_CFS-C-all", + "Creality/Generic BVOH @K2 Plus-all", + "Creality/Generic BVOH @K2 Pro-all", + "Creality/Generic BVOH @K2-all", + "Creality/Generic HIPS @K1 Max_CFS-C-all", + "Creality/Generic HIPS @K1C-all", + "Creality/Generic HIPS @K1C_CFS-C-all", + "Creality/Generic HIPS @K1_CFS-C-all", + "Creality/Generic HIPS @K2 Plus-all", + "Creality/Generic PA @K1 Max_CFS-C-all", + "Creality/Generic PA @K1C-all", + "Creality/Generic PA @K1C_CFS-C-all", + "Creality/Generic PA @K1_CFS-C-all", + "Creality/Generic PA @K2 Plus-all", + "Creality/Generic PA @K2 Pro-all", + "Creality/Generic PA @K2-all", + "Creality/Generic PA-CF @K1 Max_CFS-C-all", + "Creality/Generic PA-CF @K1C-all", + "Creality/Generic PA-CF @K1C_CFS-C-all", + "Creality/Generic PA-CF @K1_CFS-C-all", + "Creality/Generic PA-CF @K2 Plus-all", + "Creality/Generic PA12-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K1 Max_CFS-C-all", + "Creality/Generic PA6-CF @K1C-all", + "Creality/Generic PA6-CF @K1C_CFS-C-all", + "Creality/Generic PA6-CF @K1_CFS-C-all", + "Creality/Generic PA6-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K2 Pro-all", + "Creality/Generic PA6-GF @K2 Plus-all", + "Creality/Generic PA612-CF @K2 Plus-all", + "Creality/Generic PA612-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", + "Creality/Generic PAHT-CF @K1C-all", + "Creality/Generic PAHT-CF @K1C_CFS-C-all", + "Creality/Generic PAHT-CF @K1_CFS-C-all", + "Creality/Generic PAHT-CF @K2 Plus-all", + "Creality/Generic PAHT-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K2-all", + "Creality/Generic PC @K1 Max_CFS-C-all", + "Creality/Generic PC @K1C-all", + "Creality/Generic PC @K1C_CFS-C-all", + "Creality/Generic PC @K1_CFS-C-all", + "Creality/Generic PC @K2 Plus-all", + "Creality/Generic PC @K2 Pro-all", + "Creality/Generic PCTG @K2 Plus-all", + "Creality/Generic PET @K1 Max_CFS-C-all", + "Creality/Generic PET @K1C-all", + "Creality/Generic PET @K1C_CFS-C-all", + "Creality/Generic PET @K1_CFS-C-all", + "Creality/Generic PET @K2 Plus-all", + "Creality/Generic PET @K2 Pro-all", + "Creality/Generic PET @K2-all", + "Creality/Generic PET-CF @K1 Max_CFS-C-all", + "Creality/Generic PET-CF @K1C-all", + "Creality/Generic PET-CF @K1C_CFS-C-all", + "Creality/Generic PET-CF @K1_CFS-C-all", + "Creality/Generic PET-CF @K2 Plus-all", + "Creality/Generic PET-CF @K2 Pro-all", + "Creality/Generic PETG @Ender-3 V4-all", + "Creality/Generic PETG @Hi-all", + "Creality/Generic PETG @K1 Max_CFS-C-all", + "Creality/Generic PETG @K1 SE-all", + "Creality/Generic PETG @K1 SE_CFS-C-all", + "Creality/Generic PETG @K1C-all", + "Creality/Generic PETG @K1C_CFS-C-all", + "Creality/Generic PETG @K1_CFS-C-all", + "Creality/Generic PETG @K2 Plus-all", + "Creality/Generic PETG @K2 Pro-all", + "Creality/Generic PETG @K2 SE-all", + "Creality/Generic PETG @K2-all", + "Creality/Generic PETG @SPARKX i7-all", + "Creality/Generic PETG-CF @K1 Max_CFS-C-all", + "Creality/Generic PETG-CF @K1C-all", + "Creality/Generic PETG-CF @K1C_CFS-C-all", + "Creality/Generic PETG-CF @K1_CFS-C-all", + "Creality/Generic PETG-CF @K2 Plus-all", + "Creality/Generic PETG-CF @K2 Pro-all", + "Creality/Generic PETG-CF @K2-all", + "Creality/Generic PETG-CF @SPARKX i7-all", + "Creality/Generic PETG-GF @K2 Plus-all", + "Creality/Generic PETG-GF @K2 Pro-all", + "Creality/Generic PETG-GF @K2-all", + "Creality/Generic PLA @Ender-3 V4-all", + "Creality/Generic PLA @Hi-all", + "Creality/Generic PLA @K1 Max_CFS-C-all", + "Creality/Generic PLA @K1 SE-all", + "Creality/Generic PLA @K1 SE_CFS-C-all", + "Creality/Generic PLA @K1C-all", + "Creality/Generic PLA @K1C_CFS-C-all", + "Creality/Generic PLA @K1_CFS-C-all", + "Creality/Generic PLA @K2 Plus-all", + "Creality/Generic PLA @K2 Pro-all", + "Creality/Generic PLA @K2 SE-all", + "Creality/Generic PLA @K2-all", + "Creality/Generic PLA @SPARKX i7-all", + "Creality/Generic PLA-CF @Ender-3 V4-all", + "Creality/Generic PLA-CF @K1 Max_CFS-C-all", + "Creality/Generic PLA-CF @K1 SE-all", + "Creality/Generic PLA-CF @K1 SE_CFS-C-all", + "Creality/Generic PLA-CF @K1C-all", + "Creality/Generic PLA-CF @K1C_CFS-C-all", + "Creality/Generic PLA-CF @K1_CFS-C-all", + "Creality/Generic PLA-CF @K2 Plus-all", + "Creality/Generic PLA-CF @K2 Pro-all", + "Creality/Generic PLA-CF @K2 SE-all", + "Creality/Generic PLA-CF @K2-all", + "Creality/Generic PLA-CF @SPARKX i7-all", + "Creality/Generic PLA-Silk @Ender-3 V4-all", + "Creality/Generic PLA-Silk @Hi-all", + "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", + "Creality/Generic PLA-Silk @K1 SE-all", + "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", + "Creality/Generic PLA-Silk @K1C-all", + "Creality/Generic PLA-Silk @K1C_CFS-C-all", + "Creality/Generic PLA-Silk @K1_CFS-C-all", + "Creality/Generic PLA-Silk @K2 Plus-all", + "Creality/Generic PLA-Silk @K2 Pro-all", + "Creality/Generic PLA-Silk @K2 SE-all", + "Creality/Generic PLA-Silk @K2-all", + "Creality/Generic PLA-Silk @SPARKX i7-all", + "Creality/Generic PP @K1 Max_CFS-C-all", + "Creality/Generic PP @K1C-all", + "Creality/Generic PP @K1C_CFS-C-all", + "Creality/Generic PP @K1_CFS-C-all", + "Creality/Generic PP @K2 Plus-all", + "Creality/Generic PP @K2 Pro-all", + "Creality/Generic PP @K2-all", + "Creality/Generic PP-CF @K2 Plus-all", + "Creality/Generic PPS @K1 Max_CFS-C-all", + "Creality/Generic PPS @K1C-all", + "Creality/Generic PPS @K1C_CFS-C-all", + "Creality/Generic PPS @K1_CFS-C-all", + "Creality/Generic PPS @K2 Plus-all", + "Creality/Generic PPS-CF @K1 Max_CFS-C-all", + "Creality/Generic PPS-CF @K1C-all", + "Creality/Generic PPS-CF @K1C_CFS-C-all", + "Creality/Generic PPS-CF @K1_CFS-C-all", + "Creality/Generic PPS-CF @K2 Plus-all", + "Creality/Generic PVA @Hi-all", + "Creality/Generic PVA @K1 Max_CFS-C-all", + "Creality/Generic PVA @K1C-all", + "Creality/Generic PVA @K1C_CFS-C-all", + "Creality/Generic PVA @K1_CFS-C-all", + "Creality/Generic PVA @K2 Plus-all", + "Creality/Generic PVA @K2 Pro-all", + "Creality/Generic PVA @K2-all", + "Creality/Generic Support for PA @K2 Plus-all", + "Creality/Generic Support for PLA @K2 Plus-all", + "Creality/Generic TPU 64D @K2 Plus-all", + "Creality/Generic TPU 64D @SPARKX i7-all", + "Creality/Generic TPU @Ender-3 V4-all", + "Creality/Generic TPU @K1 Max_CFS-C-all", + "Creality/Generic TPU @K1 SE-all", + "Creality/Generic TPU @K1 SE_CFS-C-all", + "Creality/Generic TPU @K1C-all", + "Creality/Generic TPU @K1C_CFS-C-all", + "Creality/Generic TPU @K1_CFS-C-all", + "Creality/Generic TPU @K2 Plus-all", + "Creality/Generic TPU @K2 Pro-all", + "Creality/Generic TPU @K2 SE-all", + "Creality/Generic TPU @K2-all", + "Creality/Generic TPU @SPARKX i7-all", + "Creality/HP Ultra PLA @K1 Max_CFS-C-all", + "Creality/HP Ultra PLA @K1C-all", + "Creality/HP Ultra PLA @K1C_CFS-C-all", + "Creality/HP Ultra PLA @K1_CFS-C-all", + "Creality/HP Ultra PLA @K2 Plus-all", + "Creality/HP-ASA @K1 Max_CFS-C-all", + "Creality/HP-ASA @K1C-all", + "Creality/HP-ASA @K1C_CFS-C-all", + "Creality/HP-ASA @K1_CFS-C-all", + "Creality/HP-ASA @K2 Plus-all", + "Creality/HP-ASA @K2 Pro-all", + "Creality/HP-ASA @K2 SE-all", + "Creality/HP-ASA @K2-all", + "Creality/HP-TPU @Ender-3 V4-all", + "Creality/HP-TPU @Hi-all", + "Creality/HP-TPU @K1 Max_CFS-C-all", + "Creality/HP-TPU @K1 SE-all", + "Creality/HP-TPU @K1 SE_CFS-C-all", + "Creality/HP-TPU @K1C-all", + "Creality/HP-TPU @K1C_CFS-C-all", + "Creality/HP-TPU @K1_CFS-C-all", + "Creality/HP-TPU @K2 Plus-all", + "Creality/HP-TPU @K2 Pro-all", + "Creality/HP-TPU @K2 SE-all", + "Creality/HP-TPU @K2-all", + "Creality/HP-TPU @SPARKX i7-all", + "Creality/Hyper ABS @Ender-3 V4-all", + "Creality/Hyper ABS @Hi-all", + "Creality/Hyper ABS @K1 Max_CFS-C-all", + "Creality/Hyper ABS @K1 SE-all", + "Creality/Hyper ABS @K1 SE_CFS-C-all", + "Creality/Hyper ABS @K1C-all", + "Creality/Hyper ABS @K1C_CFS-C-all", + "Creality/Hyper ABS @K1_CFS-C-all", + "Creality/Hyper ABS @K2 Plus-all", + "Creality/Hyper ABS @K2 Pro-all", + "Creality/Hyper ABS @K2 SE-all", + "Creality/Hyper ABS @K2-all", + "Creality/Hyper L-W PLA @Hi-all", + "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", + "Creality/Hyper L-W PLA @K1 SE-all", + "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", + "Creality/Hyper L-W PLA @K1C-all", + "Creality/Hyper L-W PLA @K1C_CFS-C-all", + "Creality/Hyper L-W PLA @K1_CFS-C-all", + "Creality/Hyper L-W PLA @K2 Plus-all", + "Creality/Hyper L-W PLA @K2 Pro-all", + "Creality/Hyper L-W PLA @K2-all", + "Creality/Hyper Luminous @Hi-all", + "Creality/Hyper Luminous @K1C-all", + "Creality/Hyper Luminous @K2 Plus-all", + "Creality/Hyper Luminous @K2 Pro-all", + "Creality/Hyper Luminous @K2-all", + "Creality/Hyper Luminous @SPARKX i7-all", + "Creality/Hyper Marble @Hi-all", + "Creality/Hyper Marble @K1 Max_CFS-C-all", + "Creality/Hyper Marble @K1C-all", + "Creality/Hyper Marble @K1C_CFS-C-all", + "Creality/Hyper Marble @K1_CFS-C-all", + "Creality/Hyper Marble @K2 Plus-all", + "Creality/Hyper Marble @K2 Pro-all", + "Creality/Hyper Marble @K2 SE-all", + "Creality/Hyper Marble @K2-all", + "Creality/Hyper Marble @SPARKX i7-all", + "Creality/Hyper PA6-CF @K2 Plus-all", + "Creality/Hyper PA6-CF @K2 Pro-all", + "Creality/Hyper PA612-CF @K2 Plus-all", + "Creality/Hyper PA612-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", + "Creality/Hyper PAHT-CF @K1C-all", + "Creality/Hyper PAHT-CF @K1C_CFS-C-all", + "Creality/Hyper PAHT-CF @K1_CFS-C-all", + "Creality/Hyper PAHT-CF @K2 Plus-all", + "Creality/Hyper PAHT-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K2-all", + "Creality/Hyper PC @K2 Plus-all", + "Creality/Hyper PC @K2 Pro-all", + "Creality/Hyper PETG @Ender-3 V4-all", + "Creality/Hyper PETG @Hi-all", + "Creality/Hyper PETG @K1 Max_CFS-C-all", + "Creality/Hyper PETG @K1 SE-all", + "Creality/Hyper PETG @K1 SE_CFS-C-all", + "Creality/Hyper PETG @K1C-all", + "Creality/Hyper PETG @K1C_CFS-C-all", + "Creality/Hyper PETG @K1_CFS-C-all", + "Creality/Hyper PETG @K2 Plus-all", + "Creality/Hyper PETG @K2 Pro-all", + "Creality/Hyper PETG @K2 SE-all", + "Creality/Hyper PETG @K2-all", + "Creality/Hyper PETG @SPARKX i7-all", + "Creality/Hyper PETG-CF @K1 Max_CFS-C-all", + "Creality/Hyper PETG-CF @K1C-all", + "Creality/Hyper PETG-CF @K1C_CFS-C-all", + "Creality/Hyper PETG-CF @K1_CFS-C-all", + "Creality/Hyper PETG-CF @K2 Plus-all", + "Creality/Hyper PETG-CF @K2 Pro-all", + "Creality/Hyper PETG-CF @K2-all", + "Creality/Hyper PETG-CF @SPARKX i7-all", + "Creality/Hyper PETG-GF @K1C-all", + "Creality/Hyper PETG-GF @K2 Plus-all", + "Creality/Hyper PETG-GF @K2 Pro-all", + "Creality/Hyper PETG-GF @K2-all", + "Creality/Hyper PLA @Ender-3 V4-all", + "Creality/Hyper PLA @Hi-all", + "Creality/Hyper PLA @K1 Max_CFS-C-all", + "Creality/Hyper PLA @K1 SE-all", + "Creality/Hyper PLA @K1 SE_CFS-C-all", + "Creality/Hyper PLA @K1C-all", + "Creality/Hyper PLA @K1C_CFS-C-all", + "Creality/Hyper PLA @K1_CFS-C-all", + "Creality/Hyper PLA @K2 Plus-all", + "Creality/Hyper PLA @K2 Pro-all", + "Creality/Hyper PLA @K2 SE-all", + "Creality/Hyper PLA @K2-all", + "Creality/Hyper PLA @SPARKX i7-all", + "Creality/Hyper PLA-CF @Ender-3 V4-all", + "Creality/Hyper PLA-CF @Hi-all", + "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", + "Creality/Hyper PLA-CF @K1 SE-all", + "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", + "Creality/Hyper PLA-CF @K1C-all", + "Creality/Hyper PLA-CF @K1C_CFS-C-all", + "Creality/Hyper PLA-CF @K1_CFS-C-all", + "Creality/Hyper PLA-CF @K2 Plus-all", + "Creality/Hyper PLA-CF @K2 Pro-all", + "Creality/Hyper PLA-CF @K2 SE-all", + "Creality/Hyper PLA-CF @K2-all", + "Creality/Hyper PLA-CF @SPARKX i7-all", + "Creality/Hyper PPA-CF @K2 Plus-all", + "Creality/Hyper PPA-CF @K2 Pro-all", + "Creality/Hyper Stardust @Hi-all", + "Creality/Hyper Stardust @K1 Max_CFS-C-all", + "Creality/Hyper Stardust @K1C-all", + "Creality/Hyper Stardust @K1C_CFS-C-all", + "Creality/Hyper Stardust @K1_CFS-C-all", + "Creality/Hyper Stardust @K2 Plus-all", + "Creality/Hyper Stardust @K2 Pro-all", + "Creality/Hyper Stardust @K2 SE-all", + "Creality/Hyper Stardust @K2-all", + "Creality/Hyper Stardust @SPARKX i7-all", + "Creality/Panchroma PLA Matte @K2 Plus-all", + "Creality/Panchroma PLA Satin @K2 Plus-all", + "Creality/PolySonic PLA @K2 Plus-all", + "Creality/PolySonic PLA Pro @K2 Plus-all", + "Creality/Soleyin Basic PETG @Hi-all", + "Creality/Soleyin Basic PETG @K1C-all", + "Creality/Soleyin Basic PETG @K2 Plus-all", + "Creality/Soleyin Basic PETG @K2 Pro-all", + "Creality/Soleyin Basic PETG @K2-all", + "Creality/Soleyin Basic PETG @SPARKX i7-all", + "Creality/Soleyin Ultra PLA @Ender-3 V4-all", + "Creality/Soleyin Ultra PLA @Hi-all", + "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1C-all", + "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1_CFS-C-all", + "Creality/Soleyin Ultra PLA @K2 Plus-all", + "Creality/Soleyin Ultra PLA @K2 Pro-all", + "Creality/Soleyin Ultra PLA @K2 SE-all", + "Creality/Soleyin Ultra PLA @K2-all", + "Creality/Soleyin Ultra PLA @SPARKX i7-all", + "Creality/eSUN ABS+ @K2 Plus-all", + "Creality/eSUN ASA+ @K2 Plus-all", + "Creality/eSUN PET-Basic @K2 Plus-all", + "Creality/eSUN PETG @K2 Plus-all", + "Creality/eSUN PETG+HS @K2 Plus-all", + "Creality/eSUN PETG-Basic @K2 Plus-all", + "Creality/eSUN PLA+ @K2 Plus-all", + "Creality/eSUN PLA-CF @K2 Plus-all", + "Creality/eSUN PLA-HS @K2 Plus-all", + "Creality/eSUN PLA-LW @K2 Plus-all", + "Creality/eSUN PLA-Lite @K2 Plus-all", + "Creality/eSUN PLA-Matte @K2 Plus-all", + "Creality/eSUN PLA-Silk @K2 Plus-all", + "Cubicon/Cubicon ABS @base", + "Cubicon/Cubicon ABS-A100 @base", + "Cubicon/Cubicon ABSk @base", + "Cubicon/Cubicon PA-CF @base", + "Cubicon/Cubicon PC @base", + "Cubicon/Cubicon PETG @base", + "Cubicon/Cubicon PLA @base", + "Cubicon/Cubicon PLA+ @base", + "Cubicon/Cubicon PLAi21 @base", + "Custom/Generic PC @MyToolChanger", + "Custom/Generic PETG @MyToolChanger", + "Custom/Generic PLA @MyToolChanger", + "Custom/Generic PLA-CF @MyToolChanger", + "Custom/Generic PVA @MyToolChanger", + "Custom/Generic TPU @MyToolChanger", + "DeltaMaker/DeltaMaker Brand PLA", + "DeltaMaker/DeltaMaker Generic PETG", + "DeltaMaker/DeltaMaker Generic PLA", + "DeltaMaker/DeltaMaker Generic TPU", + "Dremel/Dremel Generic PLA", + "Eryone/Eryone ABS", + "Eryone/Eryone ABS-CF", + "Eryone/Eryone ASA", + "Eryone/Eryone ASA-CF", + "Eryone/Eryone PA", + "Eryone/Eryone PA-CF", + "Eryone/Eryone PA-GF", + "Eryone/Eryone PETG", + "Eryone/Eryone PETG-CF", + "Eryone/Eryone PLA", + "Eryone/Eryone PLA-CF", + "Eryone/Eryone PP", + "Eryone/Eryone PP-CF", + "Eryone/Eryone Silk PLA", + "Eryone/Eryone TPU", + "FLSun/FLSun Generic ABS", + "FLSun/FLSun Generic ASA", + "FLSun/FLSun Generic PA", + "FLSun/FLSun Generic PA-CF", + "FLSun/FLSun Generic PC", + "FLSun/FLSun Generic PETG", + "FLSun/FLSun Generic PLA", + "FLSun/FLSun Generic PLA-CF", + "FLSun/FLSun Generic PVA", + "FLSun/FLSun Generic TPU", + "FLSun/FLSun S1 ABS", + "FLSun/FLSun S1 ASA", + "FLSun/FLSun S1 PETG", + "FLSun/FLSun S1 PLA Generic", + "FLSun/FLSun S1 PLA High Speed", + "FLSun/FLSun S1 PLA Silk", + "FLSun/FLSun S1 TPU", + "FLSun/FLSun T1 ABS", + "FLSun/FLSun T1 ASA", + "FLSun/FLSun T1 PETG", + "FLSun/FLSun T1 PLA Generic", + "FLSun/FLSun T1 PLA High Speed", + "FLSun/FLSun T1 PLA Silk", + "FLSun/FLSun T1 TPU", + "Flashforge/Flashforge ABS", + "Flashforge/Flashforge Generic ABS", + "Flashforge/Flashforge Generic ABS @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge Generic ABS @G3U", + "Flashforge/Flashforge Generic ABS @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic ASA", + "Flashforge/Flashforge Generic ASA @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge Generic ASA @G3U", + "Flashforge/Flashforge Generic ASA @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic HIPS", + "Flashforge/Flashforge Generic HIPS @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic HS PLA", + "Flashforge/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge Generic PETG", + "Flashforge/Flashforge Generic PETG @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge Generic PETG @G3U", + "Flashforge/Flashforge Generic PETG @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PETG @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PETG-CF @G3U", + "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PETG-CF10", + "Flashforge/Flashforge Generic PLA", + "Flashforge/Flashforge Generic PLA @G3U", + "Flashforge/Flashforge Generic PLA-CF @G3U", + "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", + "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", + "Flashforge/Flashforge Generic PLA-CF10", + "Flashforge/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge Generic PLA-Silk", + "Flashforge/Flashforge Generic PVA", + "Flashforge/Flashforge Generic TPU", + "Flashforge/Flashforge HS PLA @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PLA", + "Flashforge/FusRock Generic NexPA-CF25", + "Flashforge/FusRock Generic PAHT-CF", + "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic PAHT-GF", + "Flashforge/FusRock Generic PET-CF", + "Flashforge/FusRock Generic PET-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic PET-GF", + "Flashforge/FusRock Generic S-Multi", + "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic S-PAHT", + "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/Generic ABS @Flashforge AD4", + "Flashforge/Generic ASA @Flashforge AD4", + "Flashforge/Generic PETG @Flashforge AD4", + "Flashforge/Generic PETG @Flashforge Artemis", + "Flashforge/Generic PETG-CF10 @Flashforge AD4", + "Flashforge/Generic PLA @Flashforge AD4", + "Flashforge/Generic PLA High Speed @Flashforge AD4", + "Flashforge/Generic PLA Silk @Flashforge AD4", + "Flashforge/Generic PLA-CF10 @Flashforge AD4", + "Flashforge/Generic TPU @Flashforge AD4", + "Flashforge/Polymaker Generic CoPA", + "Flashforge/Polymaker Generic S1", + "FlyingBear/FlyingBear ABS @Ghost7", + "FlyingBear/FlyingBear ABS @S1", + "FlyingBear/FlyingBear Generic ABS", + "FlyingBear/FlyingBear Generic PA-CF", + "FlyingBear/FlyingBear Generic PC", + "FlyingBear/FlyingBear Generic PETG", + "FlyingBear/FlyingBear Generic PLA", + "FlyingBear/FlyingBear Generic TPU", + "FlyingBear/FlyingBear PA-CF @Ghost7", + "FlyingBear/FlyingBear PA-CF @S1", + "FlyingBear/FlyingBear PC @Ghost7", + "FlyingBear/FlyingBear PC @S1", + "FlyingBear/FlyingBear PETG @S1", + "FlyingBear/FlyingBear PETG Basic @Ghost7", + "FlyingBear/FlyingBear PLA @S1", + "FlyingBear/FlyingBear PLA Basic @Ghost7", + "FlyingBear/FlyingBear PLA Hyper", + "FlyingBear/FlyingBear PLA Hyper @Ghost7", + "FlyingBear/FlyingBear PLA Hyper @S1", + "FlyingBear/FlyingBear TPU @S1", + "FlyingBear/FlyingBear TPU Basic @Ghost7", + "FlyingBear/Other ABS @S1", + "FlyingBear/Other PA-CF @S1", + "FlyingBear/Other PC @S1", + "FlyingBear/Other PETG @S1", + "FlyingBear/Other PLA @S1", + "FlyingBear/Other PLA Hyper @S1", + "FlyingBear/Other TPU @S1", + "InfiMech/InfiMech ABS @EX", + "InfiMech/InfiMech ABS @EX+APS", + "InfiMech/InfiMech ABS @HSN", + "InfiMech/InfiMech Generic ABS", + "InfiMech/InfiMech Generic PA-CF", + "InfiMech/InfiMech Generic PC", + "InfiMech/InfiMech Generic PETG", + "InfiMech/InfiMech Generic PLA", + "InfiMech/InfiMech Generic TPU", + "InfiMech/InfiMech PA-CF @EX", + "InfiMech/InfiMech PA-CF @EX+APS", + "InfiMech/InfiMech PA-CF @HSN", + "InfiMech/InfiMech PC @EX", + "InfiMech/InfiMech PC @EX+APS", + "InfiMech/InfiMech PC @HSN", + "InfiMech/InfiMech PETG @EX", + "InfiMech/InfiMech PETG @EX+APS", + "InfiMech/InfiMech PETG @HSN", + "InfiMech/InfiMech PLA @HSN", + "InfiMech/InfiMech PLA Basic @EX", + "InfiMech/InfiMech PLA Basic @EX+APS", + "InfiMech/InfiMech PLA Hyper", + "InfiMech/InfiMech PLA Hyper @EX", + "InfiMech/InfiMech PLA Hyper @EX+APS", + "InfiMech/InfiMech PLA Hyper @HSN", + "InfiMech/InfiMech TPU @HSN", + "InfiMech/InfiMech TPU Basic @EX", + "InfiMech/InfiMech TPU Basic @EX+APS", + "InfiMech/Other ABS", + "InfiMech/Other ABS @HSN", + "InfiMech/Other PA-CF", + "InfiMech/Other PA-CF @HSN", + "InfiMech/Other PC", + "InfiMech/Other PC @HSN", + "InfiMech/Other PETG", + "InfiMech/Other PETG @HSN", + "InfiMech/Other PLA", + "InfiMech/Other PLA @HSN", + "InfiMech/Other PLA Hyper", + "InfiMech/Other PLA Hyper @HSN", + "InfiMech/Other TPU", + "InfiMech/Other TPU @HSN", + "LH/LHS ABS", + "LH/LHS ASA", + "LH/LHS PC CF", + "LH/LHS PCTG", + "LH/LHS PETG", + "LH/LHS PLA", + "LH/LHS TPU", + "LH/LHS TPU Foamy 78A", + "LONGER/Generic PETG @LONGER LK10", + "LONGER/Generic PETG @LONGER LK10 Plus", + "LONGER/Generic PLA @LONGER LK10", + "LONGER/Generic PLA @LONGER LK10 Plus", + "Lulzbot/Lulzbot 2.85mm ABS", + "Lulzbot/Lulzbot 2.85mm PETG", + "Lulzbot/Lulzbot 2.85mm PLA", + "MagicMaker/MM Generic PEEK", + "OrcaArena/OrcaArena Generic PA", + "OrcaArena/OrcaArena Generic PA-CF", + "OrcaArena/OrcaArena Generic TPU", + "OrcaFilamentLibrary/Eolas Prints ABS @System", + "OrcaFilamentLibrary/Eolas Prints ASA @System", + "OrcaFilamentLibrary/Eolas Prints PETG @System", + "OrcaFilamentLibrary/Eolas Prints PETG Transition @System", + "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant @System", + "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial @System", + "OrcaFilamentLibrary/Eolas Prints PLA High Speed @System", + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850 @System", + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870 @System", + "OrcaFilamentLibrary/Eolas Prints PLA Matte @System", + "OrcaFilamentLibrary/Eolas Prints PLA Neon @System", + "OrcaFilamentLibrary/Eolas Prints PLA Premium @System", + "OrcaFilamentLibrary/Eolas Prints PLA Silk @System", + "OrcaFilamentLibrary/Eolas Prints PLA Transition @System", + "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant @System", + "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A @System", + "OrcaFilamentLibrary/Eolas Prints TPU Flex D53 @System", + "OrcaFilamentLibrary/Eolas Prints TPU Transition @System", + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima", + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante", + "OrcaFilamentLibrary/FilAr PETG Azul Boreal", + "OrcaFilamentLibrary/FilAr PETG Azul Francia", + "OrcaFilamentLibrary/FilAr PETG Azul Imperial", + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida", + "OrcaFilamentLibrary/FilAr PETG Cian", + "OrcaFilamentLibrary/FilAr PETG Coral", + "OrcaFilamentLibrary/FilAr PETG Cristal", + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza", + "OrcaFilamentLibrary/FilAr PETG Gris Plata", + "OrcaFilamentLibrary/FilAr PETG Magenta", + "OrcaFilamentLibrary/FilAr PETG Negro Azabache", + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi", + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio", + "OrcaFilamentLibrary/FilAr PLA Azul Francia", + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida", + "OrcaFilamentLibrary/FilAr PLA Blanco Calido", + "OrcaFilamentLibrary/FilAr PLA Bronce", + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche", + "OrcaFilamentLibrary/FilAr PLA Carpincho", + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo", + "OrcaFilamentLibrary/FilAr PLA Cobre", + "OrcaFilamentLibrary/FilAr PLA Dorado", + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza", + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra", + "OrcaFilamentLibrary/FilAr PLA Gris Plata", + "OrcaFilamentLibrary/FilAr PLA Manteca", + "OrcaFilamentLibrary/FilAr PLA Marron Oxido", + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre", + "OrcaFilamentLibrary/FilAr PLA Negro Azabache", + "OrcaFilamentLibrary/FilAr PLA Oro", + "OrcaFilamentLibrary/FilAr PLA Piel", + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras", + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto", + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco", + "OrcaFilamentLibrary/FilAr PLA Tabaco", + "OrcaFilamentLibrary/FilAr PLA Titanio", + "OrcaFilamentLibrary/FilAr PLA Verde FilAr", + "OrcaFilamentLibrary/FilAr PLA Verde Manzana", + "OrcaFilamentLibrary/FilAr PLA Verde Oliva", + "OrcaFilamentLibrary/FilAr PLA Verde Pixel", + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda", + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo", + "OrcaFilamentLibrary/FilAr PLA-mate Azul", + "OrcaFilamentLibrary/FilAr PLA-mate Beige", + "OrcaFilamentLibrary/FilAr PLA-mate Blanco", + "OrcaFilamentLibrary/FilAr PLA-mate Bordo", + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo", + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate", + "OrcaFilamentLibrary/FilAr PLA-mate Gris", + "OrcaFilamentLibrary/FilAr PLA-mate Marron", + "OrcaFilamentLibrary/FilAr PLA-mate Naranja", + "OrcaFilamentLibrary/FilAr PLA-mate Negro", + "OrcaFilamentLibrary/FilAr PLA-mate Piel", + "OrcaFilamentLibrary/FilAr PLA-mate Rojo", + "OrcaFilamentLibrary/FilAr PLA-mate Rosa", + "OrcaFilamentLibrary/FilAr PLA-mate Uva", + "OrcaFilamentLibrary/FilAr PLA-mate Verde", + "OrcaFilamentLibrary/FilAr PLA-mate Violeta", + "OrcaFilamentLibrary/Generic ABS @System", + "OrcaFilamentLibrary/Generic ASA @System", + "OrcaFilamentLibrary/Generic PA @System", + "OrcaFilamentLibrary/Generic PA-CF @System", + "OrcaFilamentLibrary/Generic PC @System", + "OrcaFilamentLibrary/Generic PETG @System", + "OrcaFilamentLibrary/Generic PLA High Speed @System", + "OrcaFilamentLibrary/Generic PLA-CF @System", + "OrcaFilamentLibrary/Generic PPA-GF @System", + "OrcaFilamentLibrary/Generic PVA @System", + "OrcaFilamentLibrary/Generic TPU @System", + "OrcaFilamentLibrary/PolyLite PLA @System", + "OrcaFilamentLibrary/PolyTerra Dual PLA @System", + "OrcaFilamentLibrary/eSUN ePLA-LW @System", + "Peopoly/Peopoly Generic ABS", + "Peopoly/Peopoly Generic PETG", + "Peopoly/Peopoly Generic PLA", + "Peopoly/Peopoly Lancer ABS-GF", + "Peopoly/Peopoly Lancer PET-CF", + "Peopoly/Peopoly Lancer PETG-C", + "Peopoly/Peopoly Lancer PLA-C", + "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", + "Prusa/Prusa Generic ABS @CORE One", + "Prusa/Prusa Generic ABS @CORE One 0.6", + "Prusa/Prusa Generic ABS @CORE One 0.8", + "Prusa/Prusa Generic ABS @CORE One HF 0.4", + "Prusa/Prusa Generic ABS @CORE One HF 0.5", + "Prusa/Prusa Generic ABS @CORE One HF 0.6", + "Prusa/Prusa Generic ABS @CORE One HF 0.8", + "Prusa/Prusa Generic ABS @MK3.5", + "Prusa/Prusa Generic ABS @MK3.5 0.25", + "Prusa/Prusa Generic ABS @MK3.5 0.6", + "Prusa/Prusa Generic ABS @MK3.5 0.8", + "Prusa/Prusa Generic ABS @MK4S", + "Prusa/Prusa Generic ABS @MK4S 0.6", + "Prusa/Prusa Generic ABS @MK4S 0.8", + "Prusa/Prusa Generic ABS @MK4S HF0.4", + "Prusa/Prusa Generic ABS @MK4S HF0.5", + "Prusa/Prusa Generic ABS @MK4S HF0.6", + "Prusa/Prusa Generic ABS @MK4S HF0.8", + "Prusa/Prusa Generic ABS HF @MK3.5", + "Prusa/Prusa Generic ABS HF @MK3.5 0.6", + "Prusa/Prusa Generic ABS HF @MK3.5 0.8", + "Prusa/Prusa Generic ASA @CORE One", + "Prusa/Prusa Generic ASA @CORE One 0.6", + "Prusa/Prusa Generic ASA @CORE One 0.8", + "Prusa/Prusa Generic ASA @CORE One HF 0.4", + "Prusa/Prusa Generic ASA @CORE One HF 0.5", + "Prusa/Prusa Generic ASA @CORE One HF 0.6", + "Prusa/Prusa Generic ASA @CORE One HF 0.8", + "Prusa/Prusa Generic ASA @MK3.5", + "Prusa/Prusa Generic ASA @MK3.5 0.25", + "Prusa/Prusa Generic ASA @MK3.5 0.6", + "Prusa/Prusa Generic ASA @MK3.5 0.8", + "Prusa/Prusa Generic ASA @MK4S", + "Prusa/Prusa Generic ASA @MK4S 0.6", + "Prusa/Prusa Generic ASA @MK4S 0.8", + "Prusa/Prusa Generic ASA @MK4S HF0.4", + "Prusa/Prusa Generic ASA @MK4S HF0.5", + "Prusa/Prusa Generic ASA @MK4S HF0.6", + "Prusa/Prusa Generic ASA @MK4S HF0.8", + "Prusa/Prusa Generic ASA HF @MK3.5", + "Prusa/Prusa Generic ASA HF @MK3.5 0.6", + "Prusa/Prusa Generic ASA HF @MK3.5 0.8", + "Prusa/Prusa Generic PA @MK3.5", + "Prusa/Prusa Generic PA @MK3.5 0.25", + "Prusa/Prusa Generic PA @MK3.5 0.6", + "Prusa/Prusa Generic PA @MK3.5 0.8", + "Prusa/Prusa Generic PA-CF @MK3.5", + "Prusa/Prusa Generic PA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PC @MK3.5", + "Prusa/Prusa Generic PC @MK3.5 0.25", + "Prusa/Prusa Generic PC @MK3.5 0.6", + "Prusa/Prusa Generic PC @MK3.5 0.8", + "Prusa/Prusa Generic PC HF @MK3.5", + "Prusa/Prusa Generic PC HF @MK3.5 0.6", + "Prusa/Prusa Generic PC HF @MK3.5 0.8", + "Prusa/Prusa Generic PETG @CORE One", + "Prusa/Prusa Generic PETG @CORE One 0.6", + "Prusa/Prusa Generic PETG @CORE One 0.8", + "Prusa/Prusa Generic PETG @CORE One HF 0.4", + "Prusa/Prusa Generic PETG @CORE One HF 0.5", + "Prusa/Prusa Generic PETG @CORE One HF 0.6", + "Prusa/Prusa Generic PETG @CORE One HF 0.8", + "Prusa/Prusa Generic PETG @MK3.5", + "Prusa/Prusa Generic PETG @MK3.5 0.25", + "Prusa/Prusa Generic PETG @MK3.5 0.6", + "Prusa/Prusa Generic PETG @MK3.5 0.8", + "Prusa/Prusa Generic PETG @MK4S", + "Prusa/Prusa Generic PETG @MK4S 0.6", + "Prusa/Prusa Generic PETG @MK4S 0.8", + "Prusa/Prusa Generic PETG @MK4S HF0.4", + "Prusa/Prusa Generic PETG @MK4S HF0.5", + "Prusa/Prusa Generic PETG @MK4S HF0.6", + "Prusa/Prusa Generic PETG @MK4S HF0.8", + "Prusa/Prusa Generic PETG HF @MK3.5", + "Prusa/Prusa Generic PETG HF @MK3.5 0.6", + "Prusa/Prusa Generic PETG HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA @CORE One", + "Prusa/Prusa Generic PLA @CORE One 0.6", + "Prusa/Prusa Generic PLA @CORE One 0.8", + "Prusa/Prusa Generic PLA @CORE One HF 0.4", + "Prusa/Prusa Generic PLA @CORE One HF 0.5", + "Prusa/Prusa Generic PLA @CORE One HF 0.6", + "Prusa/Prusa Generic PLA @CORE One HF 0.8", + "Prusa/Prusa Generic PLA @MK3.5", + "Prusa/Prusa Generic PLA @MK3.5 0.25", + "Prusa/Prusa Generic PLA @MK3.5 0.6", + "Prusa/Prusa Generic PLA @MK3.5 0.8", + "Prusa/Prusa Generic PLA @MK4S", + "Prusa/Prusa Generic PLA @MK4S 0.6", + "Prusa/Prusa Generic PLA @MK4S 0.8", + "Prusa/Prusa Generic PLA @MK4S HF0.4", + "Prusa/Prusa Generic PLA @MK4S HF0.5", + "Prusa/Prusa Generic PLA @MK4S HF0.6", + "Prusa/Prusa Generic PLA @MK4S HF0.8", + "Prusa/Prusa Generic PLA HF @MK3.5", + "Prusa/Prusa Generic PLA HF @MK3.5 0.6", + "Prusa/Prusa Generic PLA HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA Silk @CORE One", + "Prusa/Prusa Generic PLA Silk @CORE One 0.6", + "Prusa/Prusa Generic PLA Silk @CORE One 0.8", + "Prusa/Prusa Generic PLA Silk @MK4S", + "Prusa/Prusa Generic PLA Silk @MK4S 0.6", + "Prusa/Prusa Generic PLA Silk @MK4S 0.8", + "Prusa/Prusa Generic PLA-CF @MK3.5", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PVA @MK3.5", + "Prusa/Prusa Generic PVA @MK3.5 0.25", + "Prusa/Prusa Generic PVA @MK3.5 0.6", + "Prusa/Prusa Generic PVA @MK3.5 0.8", + "Prusa/Prusa Generic PVA HF @MK3.5", + "Prusa/Prusa Generic PVA HF @MK3.5 0.6", + "Prusa/Prusa Generic PVA HF @MK3.5 0.8", + "Prusa/Prusa Generic TPU @CORE One", + "Prusa/Prusa Generic TPU @CORE One 0.6", + "Prusa/Prusa Generic TPU @CORE One 0.8", + "Prusa/Prusa Generic TPU @MK3.5", + "Prusa/Prusa Generic TPU @MK4S", + "Prusa/Prusa Generic TPU @MK4S 0.6", + "Prusa/Prusa Generic TPU @MK4S 0.8", + "Prusa/Prusa Generic TPU HF @MK3.5", + "Prusa/Prusament ASA @CORE One", + "Prusa/Prusament ASA @CORE One 0.6", + "Prusa/Prusament ASA @CORE One 0.8", + "Prusa/Prusament ASA @CORE One HF 0.4", + "Prusa/Prusament ASA @CORE One HF 0.5", + "Prusa/Prusament ASA @CORE One HF 0.6", + "Prusa/Prusament ASA @CORE One HF 0.8", + "Prusa/Prusament PA-CF @CORE One", + "Prusa/Prusament PA-CF @CORE One 0.6", + "Prusa/Prusament PA-CF @CORE One 0.8", + "Prusa/Prusament PC Blend @CORE One", + "Prusa/Prusament PC Blend @CORE One 0.6", + "Prusa/Prusament PC Blend @CORE One 0.8", + "Prusa/Prusament PC Blend @CORE One HF 0.4", + "Prusa/Prusament PC Blend @CORE One HF 0.5", + "Prusa/Prusament PC Blend @CORE One HF 0.6", + "Prusa/Prusament PC Blend @CORE One HF 0.8", + "Prusa/Prusament PC-CF @CORE One", + "Prusa/Prusament PC-CF @CORE One 0.6", + "Prusa/Prusament PC-CF @CORE One 0.8", + "Prusa/Prusament PETG @CORE One", + "Prusa/Prusament PETG @CORE One 0.6", + "Prusa/Prusament PETG @CORE One 0.8", + "Prusa/Prusament PETG @CORE One HF 0.4", + "Prusa/Prusament PETG @CORE One HF 0.5", + "Prusa/Prusament PETG @CORE One HF 0.6", + "Prusa/Prusament PETG @CORE One HF 0.8", + "Prusa/Prusament PLA @CORE One", + "Prusa/Prusament PLA @CORE One 0.6", + "Prusa/Prusament PLA @CORE One 0.8", + "Prusa/Prusament PLA @CORE One HF 0.4", + "Prusa/Prusament PLA @CORE One HF 0.5", + "Prusa/Prusament PLA @CORE One HF 0.6", + "Prusa/Prusament PLA @CORE One HF 0.8", + "Prusa/Prusament PVB @CORE One", + "Prusa/Prusament PVB @CORE One 0.6", + "Prusa/Prusament PVB @CORE One 0.8", + "Prusa/Prusament rPLA @CORE One", + "Prusa/Prusament rPLA @CORE One 0.6", + "Prusa/Prusament rPLA @CORE One 0.8", + "Qidi/Bambu ABS", + "Qidi/Bambu ABS @0.2 nozzle", + "Qidi/Bambu ABS @0.6 nozzle", + "Qidi/Bambu ABS @0.8 nozzle", + "Qidi/Bambu ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Bambu ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Bambu ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Bambu ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Bambu ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Bambu ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Bambu ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Bambu ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Bambu PETG", + "Qidi/Bambu PETG @0.2 nozzle", + "Qidi/Bambu PETG @0.6 nozzle", + "Qidi/Bambu PETG @0.8 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Bambu PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Bambu PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Bambu PLA", + "Qidi/Bambu PLA @0.2 nozzle", + "Qidi/Bambu PLA @0.6 nozzle", + "Qidi/Bambu PLA @0.8 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Bambu PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Bambu PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/HATCHBOX ABS @Qidi", + "Qidi/HATCHBOX ABS @Qidi 0.2 nozzle", + "Qidi/HATCHBOX ABS @Qidi 0.6 nozzle", + "Qidi/HATCHBOX ABS @Qidi 0.8 nozzle", + "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/HATCHBOX PETG @0.2 nozzle", + "Qidi/HATCHBOX PETG @0.6 nozzle", + "Qidi/HATCHBOX PETG @0.8 nozzle", + "Qidi/HATCHBOX PETG @Qidi", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/HATCHBOX PLA @0.2 nozzle", + "Qidi/HATCHBOX PLA @0.6 nozzle", + "Qidi/HATCHBOX PLA @0.8 nozzle", + "Qidi/HATCHBOX PLA @Qidi", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Overture ABS @Qidi", + "Qidi/Overture ABS @Qidi 0.2 nozzle", + "Qidi/Overture ABS @Qidi 0.6 nozzle", + "Qidi/Overture ABS @Qidi 0.8 nozzle", + "Qidi/Overture ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Overture ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Overture ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Overture ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Overture ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Overture ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Overture ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Overture ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Overture PLA @Qidi", + "Qidi/Overture PLA @Qidi 0.2 nozzle", + "Qidi/Overture PLA @Qidi 0.6 nozzle", + "Qidi/Overture PLA @Qidi 0.8 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Overture PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Overture PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/PolyLite ABS @Qidi", + "Qidi/PolyLite ABS @Qidi 0.2 nozzle", + "Qidi/PolyLite ABS @Qidi 0.6 nozzle", + "Qidi/PolyLite ABS @Qidi 0.8 nozzle", + "Qidi/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/PolyLite PLA @Qidi", + "Qidi/PolyLite PLA @Qidi 0.2 nozzle", + "Qidi/PolyLite PLA @Qidi 0.6 nozzle", + "Qidi/PolyLite PLA @Qidi 0.8 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS Odorless", + "Qidi/QIDI ABS Odorless @0.2 nozzle", + "Qidi/QIDI ABS Odorless @0.6 nozzle", + "Qidi/QIDI ABS Odorless @0.8 nozzle", + "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS Rapido", + "Qidi/QIDI ABS Rapido 0.2 nozzle", + "Qidi/QIDI ABS Rapido 0.6 nozzle", + "Qidi/QIDI ABS Rapido 0.8 nozzle", + "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS Rapido Metal", + "Qidi/QIDI ABS Rapido Metal @0.2 nozzle", + "Qidi/QIDI ABS Rapido Metal @0.6 nozzle", + "Qidi/QIDI ABS Rapido Metal @0.8 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS-GF", + "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS-GF10", + "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS-GF25", + "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ASA", + "Qidi/QIDI ASA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI ASA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ASA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ASA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ASA @Qidi X-Max 3 0.2 nozzle", + "Qidi/QIDI ASA @Qidi X-Plus 3 0.2 nozzle", + "Qidi/QIDI ASA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI ASA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI ASA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI ASA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ASA @Qidi X-Smart 3 0.2 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", + "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", + "Qidi/QIDI PA-Ultra", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PA12-CF", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PAHT-CF", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PAHT-GF @0.6 nozzle", + "Qidi/QIDI PAHT-GF @0.8 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PEBA 95A", + "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-CF", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PET-GF", + "Qidi/QIDI PET-GF @0.6 nozzle", + "Qidi/QIDI PET-GF @0.8 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Basic", + "Qidi/QIDI PETG Basic @0.2 nozzle", + "Qidi/QIDI PETG Basic @0.6 nozzle", + "Qidi/QIDI PETG Basic @0.8 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Rapido", + "Qidi/QIDI PETG Rapido @0.2 nozzle", + "Qidi/QIDI PETG Rapido @0.6 nozzle", + "Qidi/QIDI PETG Rapido @0.8 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Tough", + "Qidi/QIDI PETG Tough 0.2 nozzle", + "Qidi/QIDI PETG Tough 0.6 nozzle", + "Qidi/QIDI PETG Tough 0.8 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG Translucent", + "Qidi/QIDI PETG Translucent @0.2 nozzle", + "Qidi/QIDI PETG Translucent @0.6 nozzle", + "Qidi/QIDI PETG Translucent @0.8 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG-CF", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PETG-GF", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Basic", + "Qidi/QIDI PLA Basic @0.2 nozzle", + "Qidi/QIDI PLA Basic @0.6 nozzle", + "Qidi/QIDI PLA Basic @0.8 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Matte Basic", + "Qidi/QIDI PLA Matte Basic @0.2 nozzle", + "Qidi/QIDI PLA Matte Basic @0.6 nozzle", + "Qidi/QIDI PLA Matte Basic @0.8 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido", + "Qidi/QIDI PLA Rapido 0.2 nozzle", + "Qidi/QIDI PLA Rapido 0.8 nozzle", + "Qidi/QIDI PLA Rapido @0.6 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte", + "Qidi/QIDI PLA Rapido Matte @0.2 nozzle", + "Qidi/QIDI PLA Rapido Matte @0.6 nozzle", + "Qidi/QIDI PLA Rapido Matte @0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Metal", + "Qidi/QIDI PLA Rapido Metal @0.2 nozzle", + "Qidi/QIDI PLA Rapido Metal @0.6 nozzle", + "Qidi/QIDI PLA Rapido Metal @0.8 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PLA Rapido Silk", + "Qidi/QIDI PLA Rapido Silk @0.6 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA-CF @0.6 nozzle", + "Qidi/QIDI PLA-CF @0.8 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PPS-CF", + "Qidi/QIDI PPS-CF @0.6 nozzle", + "Qidi/QIDI PPS-CF @0.8 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI PPS-GF", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI Support For PAHT", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI Support For PET/PA", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI TPU-Aero", + "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI TPU-GF", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI UltraPA-CF25", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI WOOD Rapido", + "Qidi/QIDI WOOD Rapido @0.6 nozzle", + "Qidi/QIDI WOOD Rapido @0.8 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi ASA-Aero", + "Qidi/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic ABS", + "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Qidi Generic ASA", + "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Qidi Generic PA", + "Qidi/Qidi Generic PA-CF", + "Qidi/Qidi Generic PC", + "Qidi/Qidi Generic PC @0.2 nozzle", + "Qidi/Qidi Generic PC @0.8 nozzle", + "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PETG", + "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Qidi Generic PETG-CF", + "Qidi/Qidi Generic PLA", + "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PLA Silk", + "Qidi/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA+", + "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "Qidi/Qidi Generic PLA-CF", + "Qidi/Qidi Generic PVA", + "Qidi/Qidi Generic TPU", + "Qidi/Qidi Generic TPU 95A", + "Qidi/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi PC-ABS-FR", + "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Qidi PLA-CF", + "Qidi/Qidi TPU 95A-HF", + "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Tinmorry PETG-ECO", + "RH3D/Generic ABS @E3NG v1.2S", + "RH3D/Generic ASA @E3NG v1.2S", + "RH3D/Generic PCCF @E3NG v1.2S", + "RH3D/Generic PETG @E3NG v1.2S", + "RH3D/Generic PLA @E3NG v1.2S", + "RH3D/Generic TPU @E3NG v1.2S", + "Ratrig/RatRig BigNozzle ABS", + "Ratrig/RatRig BigNozzle ASA", + "Ratrig/RatRig BigNozzle PCTG", + "Ratrig/RatRig BigNozzle PETG", + "Ratrig/RatRig BigNozzle PLA", + "Ratrig/RatRig BigNozzle TPU", + "Ratrig/RatRig Generic ABS", + "Ratrig/RatRig Generic ASA", + "Ratrig/RatRig Generic PA", + "Ratrig/RatRig Generic PA-CF", + "Ratrig/RatRig Generic PC", + "Ratrig/RatRig Generic PCTG", + "Ratrig/RatRig Generic PETG", + "Ratrig/RatRig Generic PLA", + "Ratrig/RatRig Generic PLA-CF", + "Ratrig/RatRig Generic PVA", + "Ratrig/RatRig Generic TPU", + "Ratrig/RatRig PunkFil ABS", + "Ratrig/RatRig PunkFil PETG", + "Ratrig/RatRig PunkFil PETG CF", + "SecKit/SecKit Generic ABS", + "SecKit/SecKit Generic ASA", + "SecKit/SecKit Generic PA", + "SecKit/SecKit Generic PA-CF", + "SecKit/SecKit Generic PC", + "SecKit/SecKit Generic PETG", + "SecKit/SecKit Generic PLA", + "SecKit/SecKit Generic PLA-CF", + "SecKit/SecKit Generic PVA", + "SecKit/SecKit Generic TPU", + "SeeMeCNC/SeeMeCNC ABS", + "SeeMeCNC/SeeMeCNC PA-CF", + "SeeMeCNC/SeeMeCNC PETG", + "SeeMeCNC/SeeMeCNC PETG-CF", + "SeeMeCNC/SeeMeCNC PLA", + "SeeMeCNC/SeeMeCNC TPU", + "Sovol/Generic ABS @Sovol SV08 MAX", + "Sovol/Generic PC @Sovol SV08 MAX", + "Sovol/Generic PETG @Sovol SV08 MAX", + "Sovol/Generic PLA @Sovol SV08 MAX", + "Sovol/Generic PLA Silk @Sovol SV08 MAX", + "Sovol/Generic TPU @Sovol SV08 MAX", + "Sovol/Polymaker PETG @Sovol SV08 MAX", + "Sovol/SUNLU PETG @Sovol SV08 MAX", + "Sovol/Sovol SV06 ACE ABS", + "Sovol/Sovol SV06 ACE PETG", + "Sovol/Sovol SV06 ACE PLA", + "Sovol/Sovol SV06 ACE TPU", + "Sovol/Sovol SV06 Plus ACE ABS", + "Sovol/Sovol SV06 Plus ACE PETG", + "Sovol/Sovol SV06 Plus ACE PLA", + "Sovol/Sovol SV06 Plus ACE TPU", + "Sovol/Sovol SV07 PLA", + "Sovol/Sovol SV08 ABS", + "Sovol/Sovol SV08 PETG", + "Sovol/Sovol SV08 PLA", + "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", + "Sovol/Sovol SV08 TPU", + "Sovol/Sovol Zero ABS", + "Sovol/Sovol Zero PC", + "Sovol/Sovol Zero PETG", + "Sovol/Sovol Zero PETG HS Nozzle", + "Sovol/Sovol Zero PLA Basic", + "Sovol/Sovol Zero PLA Basic HS Nozzle", + "Sovol/Sovol Zero PLA Silk", + "Sovol/Sovol Zero PLA Silk HS Nozzle", + "Sovol/Sovol Zero TPU", + "Tiertime/Tiertime ABS", + "Tiertime/Tiertime ABS@300HS", + "Tiertime/Tiertime ASA", + "Tiertime/Tiertime ASA@300HS", + "Tiertime/Tiertime Generic ABS", + "Tiertime/Tiertime Generic ABS@300HS", + "Tiertime/Tiertime Generic ASA", + "Tiertime/Tiertime Generic ASA@300HS", + "Tiertime/Tiertime Generic BVOH", + "Tiertime/Tiertime Generic BVOH@300HS", + "Tiertime/Tiertime Generic EVA", + "Tiertime/Tiertime Generic EVA@300HS", + "Tiertime/Tiertime Generic HIPS", + "Tiertime/Tiertime Generic HIPS@300HS", + "Tiertime/Tiertime Generic PA", + "Tiertime/Tiertime Generic PA-CF", + "Tiertime/Tiertime Generic PA-CF@300HS", + "Tiertime/Tiertime Generic PA@300HS", + "Tiertime/Tiertime Generic PC", + "Tiertime/Tiertime Generic PC@300HS", + "Tiertime/Tiertime Generic PCTG", + "Tiertime/Tiertime Generic PCTG@300HS", + "Tiertime/Tiertime Generic PE", + "Tiertime/Tiertime Generic PE-CF", + "Tiertime/Tiertime Generic PE-CF@300HS", + "Tiertime/Tiertime Generic PE@300HS", + "Tiertime/Tiertime Generic PETG", + "Tiertime/Tiertime Generic PETG-CF", + "Tiertime/Tiertime Generic PETG-CF@300HS", + "Tiertime/Tiertime Generic PETG@300HS", + "Tiertime/Tiertime Generic PHA", + "Tiertime/Tiertime Generic PHA@300HS", + "Tiertime/Tiertime Generic PLA", + "Tiertime/Tiertime Generic PLA High Speed", + "Tiertime/Tiertime Generic PLA High Speed@300HS", + "Tiertime/Tiertime Generic PLA Silk", + "Tiertime/Tiertime Generic PLA Silk@300HS", + "Tiertime/Tiertime Generic PLA-CF", + "Tiertime/Tiertime Generic PLA-CF@300HS", + "Tiertime/Tiertime Generic PLA@300HS", + "Tiertime/Tiertime Generic PP", + "Tiertime/Tiertime Generic PP-CF", + "Tiertime/Tiertime Generic PP-CF@300HS", + "Tiertime/Tiertime Generic PP-GF", + "Tiertime/Tiertime Generic PP-GF@300HS", + "Tiertime/Tiertime Generic PP@300HS", + "Tiertime/Tiertime Generic PPA-CF", + "Tiertime/Tiertime Generic PPA-CF@300HS", + "Tiertime/Tiertime Generic PPA-GF", + "Tiertime/Tiertime Generic PPA-GF@300HS", + "Tiertime/Tiertime Generic PPS", + "Tiertime/Tiertime Generic PPS-CF", + "Tiertime/Tiertime Generic PPS-CF@300HS", + "Tiertime/Tiertime Generic PPS@300HS", + "Tiertime/Tiertime Generic PVA", + "Tiertime/Tiertime Generic PVA@300HS", + "Tiertime/Tiertime Generic SBS", + "Tiertime/Tiertime Generic SBS@300HS", + "Tiertime/Tiertime Generic TPU", + "Tiertime/Tiertime Generic TPU@300HS", + "Tiertime/Tiertime PA6-CF", + "Tiertime/Tiertime PA6-CF@300HS", + "Tiertime/Tiertime PC", + "Tiertime/Tiertime PC@300HS", + "Tiertime/Tiertime PET-CF", + "Tiertime/Tiertime PET-CF@300HS", + "Tiertime/Tiertime PETG", + "Tiertime/Tiertime PETG@300HS", + "Tiertime/Tiertime PLA", + "Tiertime/Tiertime PLA-CF", + "Tiertime/Tiertime PLA-CF@300HS", + "Tiertime/Tiertime PLA@300HS", + "Tiertime/Tiertime PVA", + "Tiertime/Tiertime PVA@300HS", + "Tiertime/Tiertime TPU 95A", + "Tiertime/Tiertime TPU 95A@300HS", + "TwoTrees/TwoTrees Generic 95A TPU @SK1", + "TwoTrees/TwoTrees Generic HS PLA @SK1", + "Volumic/Désactivé", + "Volumic/PA6 CF20 (Performance)", + "Volumic/PETG ESD (Performance)", + "Volumic/PPS Carbone (Performance)", + "Volumic/Volumic ABS Ultra", + "Volumic/Volumic ABS Ultra (Performance)", + "Volumic/Volumic ASA Ultra", + "Volumic/Volumic ASA Ultra (Performance)", + "Volumic/Volumic FLEX93 Ultra", + "Volumic/Volumic FLEX93 Ultra (Performance)", + "Volumic/Volumic NYLON Ultra", + "Volumic/Volumic NYLON Ultra (Performance)", + "Volumic/Volumic PC", + "Volumic/Volumic PC (Performance)", + "Volumic/Volumic PCTG Ultra (Performance)", + "Volumic/Volumic PETG Ultra", + "Volumic/Volumic PETG Ultra (Performance)", + "Volumic/Volumic PETG Ultra carbone", + "Volumic/Volumic PETG Ultra carbone (Performance)", + "Volumic/Volumic PLA Ultra", + "Volumic/Volumic PLA Ultra (Performance)", + "Volumic/Volumic PP Ultra", + "Volumic/Volumic PP Ultra (Performance)", + "Volumic/Volumic PVA", + "Volumic/Volumic PVA-BVOH (Performance)", + "Volumic/Volumic UNIVERSAL Ultra", + "Volumic/Volumic UNIVERSAL Ultra (Performance)", + "Vzbot/Vzbot Generic ABS", + "Vzbot/Vzbot Generic ASA", + "Vzbot/Vzbot Generic PA", + "Vzbot/Vzbot Generic PA-CF", + "Vzbot/Vzbot Generic PC", + "Vzbot/Vzbot Generic PETG", + "Vzbot/Vzbot Generic PLA", + "Vzbot/Vzbot Generic PLA-CF", + "Vzbot/Vzbot Generic PVA", + "Vzbot/Vzbot Generic TPU", + "Wanhao France/YUMI PETG", + "Wanhao France/YUMI PLA Bowden", + "Wanhao France/YUMI PLA Direct Drive", + "WonderMaker/WonderMaker ABS", + "WonderMaker/WonderMaker ASA", + "WonderMaker/WonderMaker PET-CF", + "WonderMaker/WonderMaker PETG Basic", + "WonderMaker/WonderMaker PLA Basic", + "WonderMaker/WonderMaker PLA Marble", + "WonderMaker/WonderMaker PLA Matte", + "WonderMaker/WonderMaker PLA Metal", + "WonderMaker/WonderMaker PLA Silk", + "WonderMaker/WonderMaker PLA Wood", + "WonderMaker/WonderMaker PVA", + "WonderMaker/WonderMaker TPU 95A", + "Z-Bolt/Generic ABS @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic ABS @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic ABS @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic ABS HT @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PA @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic PA @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PA @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PETG @Z-Bolt 0.8 nozzle", + "Z-Bolt/Generic PLA @Z-Bolt 0.4 nozzle", + "Z-Bolt/Generic PLA @Z-Bolt 0.6 nozzle", + "Z-Bolt/Generic PLA @Z-Bolt 0.8 nozzle", + "iQ/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle", + "iQ/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle", + "iQ/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle", + "iQ/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle", + "iQ/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle", + "iQ/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle", + "re3D/re3D Greengate rPETG", + "re3D/re3D Greengate rPETG @0.8 nozzle", + "re3D/re3D Greengate rPETG @1.75 nozzle", + "re3D/re3D PC", + "re3D/re3D PC @0.4 nozzle", + "re3D/re3D PC @0.8 nozzle", + "re3D/re3D PETG", + "re3D/re3D PETG @0.4 nozzle", + "re3D/re3D PETG @0.8 nozzle", + "re3D/re3D PLA", + "re3D/re3D PLA @0.4 nozzle", + "re3D/re3D PLA @0.8 nozzle", + "re3D/re3D rPP", + "re3D/re3D rPP @0.8 nozzle", + "re3D/re3D rPP @1.75 nozzle" + ] +} diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index cdfc8544a4..746dbf25ec 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -4,6 +4,7 @@ import argparse from pathlib import Path from assign_vendor_setting_ids import generate_preset_setting_id +from assign_filament_ids import check_filament_ids OBSOLETE_KEYS = { "acceleration", "scale", "rotate", "duplicate", "duplicate_grid", @@ -288,6 +289,12 @@ def check_name_consistency(profiles_dir, vendor_name): def check_filament_id(vendor, vendor_folder): """ Make sure filament_id is not longer than 8 characters, otherwise AMS won't work properly + + NOTE: superseded by check_filament_ids (assign_filament_ids.py) for non-BBL/OFL + vendors, which validates format/uniqueness/structure tree-wide against the + grandfather snapshot. This length check stays scoped to BBL/OFL because other + vendors ship grandfathered >8-char ids (e.g. Prusa's 36-char name-ids), so it + cannot simply go tree-wide. """ if vendor not in ('BBL', 'OrcaFilamentLibrary'): return 0 @@ -606,6 +613,11 @@ def main(): # Runs once over the whole tree regardless of the --vendor filter. errors_found += check_setting_id_uniqueness(profiles_dir) + # Global filament_id check (see scripts/assign_filament_ids.py): effective ids + # are resolved loader-faithfully and validated against the sanctioned snapshot + # (scripts/filament_id_snapshot.json). Runs once over the whole tree. + errors_found += check_filament_ids(profiles_dir) + # ✨ Output finale in stile "compilatore" print("\n==================== SUMMARY ====================") print_info(f"Checked vendors : {checked_vendor_count}") diff --git a/scripts/retired_filament_ids.json b/scripts/retired_filament_ids.json new file mode 100644 index 0000000000..d4c5f3faf5 --- /dev/null +++ b/scripts/retired_filament_ids.json @@ -0,0 +1,3 @@ +{ + "retired": {} +} diff --git a/scripts/tests/__init__.py b/scripts/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py new file mode 100644 index 0000000000..14d7d439b7 --- /dev/null +++ b/scripts/tests/test_filament_id.py @@ -0,0 +1,669 @@ +#!/usr/bin/env python3 +"""Tests for scripts/assign_filament_ids.py (stdlib unittest, no external deps). + +Run from the repo root: python -m unittest discover -s scripts/tests -v +""" + +import contextlib +import io +import json +import os +import shutil +import sys +import tempfile +import unittest +import uuid + +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) + +import assign_filament_ids as afi # noqa: E402 + +REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) +REAL_PROFILES = os.path.join(REPO_ROOT, "resources", "profiles") + +OFL = "OrcaFilamentLibrary" + + +def load_json_file(path): + with open(path, encoding="utf-8") as f: + return json.load(f) + + +# --------------------------------------------------------------------------- +# helpers: synthetic profile trees +# --------------------------------------------------------------------------- + +def preset(name, filament_id=None, inherits=None, instantiation=True, + compatible_printers=None): + data = {"type": "filament", "name": name} + if inherits is not None: + data["inherits"] = inherits + if filament_id is not None: + data["filament_id"] = filament_id + data["instantiation"] = "true" if instantiation else "false" + if compatible_printers is not None: + data["compatible_printers"] = compatible_printers + return data + + +class SyntheticTree: + """A throwaway resources/profiles-shaped directory plus ledger paths.""" + + def __init__(self): + self.dir = tempfile.mkdtemp(prefix="filament_id_test_") + self.profiles = os.path.join(self.dir, "profiles") + os.makedirs(self.profiles) + self.snapshot = os.path.join(self.dir, "filament_id_snapshot.json") + self.retired = os.path.join(self.dir, "retired_filament_ids.json") + + def cleanup(self): + shutil.rmtree(self.dir, ignore_errors=True) + + def preset_path(self, vendor, name): + return os.path.join(self.profiles, vendor, "filament", name + ".json") + + def add_vendor(self, vendor, presets): + vendor_dir = os.path.join(self.profiles, vendor, "filament") + os.makedirs(vendor_dir, exist_ok=True) + index = {"name": vendor, "version": "01.00.00.00", "filament_list": []} + for data in presets: + fname = data["name"] + ".json" + with open(os.path.join(vendor_dir, fname), "w", encoding="utf-8") as f: + json.dump(data, f, indent=4, ensure_ascii=False) + index["filament_list"].append( + {"name": data["name"], "sub_path": f"filament/{fname}"}) + with open(os.path.join(self.profiles, vendor + ".json"), "w", + encoding="utf-8") as f: + json.dump(index, f, indent=4, ensure_ascii=False) + + def add_to_index(self, vendor, name): + idx_path = os.path.join(self.profiles, vendor + ".json") + with open(idx_path, encoding="utf-8") as f: + index = json.load(f) + index["filament_list"].append( + {"name": name, "sub_path": f"filament/{name}.json"}) + with open(idx_path, "w", encoding="utf-8") as f: + json.dump(index, f, indent=4, ensure_ascii=False) + + def write_preset(self, vendor, data, register=True): + path = self.preset_path(vendor, data["name"]) + with open(path, "w", encoding="utf-8") as f: + json.dump(data, f, indent=4, ensure_ascii=False) + if register: + self.add_to_index(vendor, data["name"]) + + def remove_preset(self, vendor, name): + os.remove(self.preset_path(vendor, name)) + idx_path = os.path.join(self.profiles, vendor + ".json") + with open(idx_path, encoding="utf-8") as f: + index = json.load(f) + index["filament_list"] = [ + e for e in index["filament_list"] if e["name"] != name] + with open(idx_path, "w", encoding="utf-8") as f: + json.dump(index, f, indent=4, ensure_ascii=False) + + # -- pipeline wrappers --------------------------------------------------- + + def update_snapshot(self, allow_shared_catalog=False): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.update_snapshot(self.profiles, self.snapshot, self.retired, + allow_shared_catalog=allow_shared_catalog) + return rc, buf.getvalue() + + def check(self): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + errors = afi.check_filament_ids(self.profiles, self.snapshot, self.retired) + return errors, buf.getvalue() + + def assign(self): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + changed, errors = afi.assign_missing_ids(self.profiles, self.snapshot, + self.retired) + return changed, errors, buf.getvalue() + + +def make_clean_tree(): + """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic.""" + t = SyntheticTree() + t.add_vendor(OFL, [ + preset("fdm_pla", filament_id="OGFL99", instantiation=False), + preset("Generic PLA @System", inherits="fdm_pla", + compatible_printers=[]), + ]) + t.add_vendor("VendorA", [ + preset("APLA @base", filament_id="AX01", instantiation=False), + preset("APLA @P1", inherits="APLA @base", + compatible_printers=["P1 0.4 nozzle"]), + # Correctly tuned OFL generic: keeps the OFL base name, claims a printer. + preset("Generic PLA @P1", inherits="Generic PLA @System", + compatible_printers=["P1 0.4 nozzle"]), + ]) + rc, _out = t.update_snapshot() + assert rc == 0 + return t + + +class SyntheticTreeCase(unittest.TestCase): + def setUp(self): + self.t = make_clean_tree() + self.addCleanup(self.t.cleanup) + + +# --------------------------------------------------------------------------- +# mint +# --------------------------------------------------------------------------- + +class TestMint(unittest.TestCase): + def test_namespace_literal(self): + # Frozen: derived from the setting_id namespace; baked into the ledger. + self.assertEqual(afi.FILAMENT_ID_NAMESPACE, + uuid.UUID("c4d3ff49-4c32-5534-a3e3-00894157ab97")) + + def test_known_vector(self): + # Hardcoded, independently computed vector: freezes prefix, input string + # layout ("filament_family//") and base62 derivation. + self.assertEqual(afi.generate_filament_id("Qidi", "HATCHBOX PLA"), "OFiJYDPC") + + def test_determinism_and_format(self): + for vendor, family in [("Qidi", "HATCHBOX PLA"), ("Creality", "CR PLA"), + ("OrcaFilamentLibrary", "Generic ABS"), + ("BBL", "拓竹 PLA")]: # unicode family + a = afi.generate_filament_id(vendor, family) + b = afi.generate_filament_id(vendor, family) + self.assertEqual(a, b) + self.assertRegex(a, r"^OF[0-9A-Za-z]{6}$") + self.assertEqual(len(a), 8) + + def test_salt_changes_id(self): + base = afi.generate_filament_id("Qidi", "HATCHBOX PLA") + salted = afi.generate_filament_id("Qidi", "HATCHBOX PLA", salt=1) + self.assertNotEqual(base, salted) + self.assertRegex(salted, r"^OF[0-9A-Za-z]{6}$") + + def test_mint_salt_iteration(self): + v, fam = "Qidi", "HATCHBOX PLA" + taken = {afi.generate_filament_id(v, fam, s) for s in range(2)} + self.assertEqual(afi.mint_filament_id(v, fam, taken), + afi.generate_filament_id(v, fam, salt=2)) + self.assertEqual(afi.mint_filament_id(v, fam, set()), + afi.generate_filament_id(v, fam)) + + +class TestBaseName(unittest.TestCase): + def test_family_derivation(self): + cases = [ + ("X @base", "X"), + ("Afinia PLA@HS", "Afinia PLA"), + ("PolyTerra PLA", "PolyTerra PLA"), + ("HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", "HATCHBOX PLA"), + ("A @B @C", "A"), # first @ wins + ("Filár PLA 拓竹 @0.4 nozzle", "Filár PLA 拓竹"), + ] + for name, family in cases: + self.assertEqual(afi.base_name(name), family, msg=name) + + +# --------------------------------------------------------------------------- +# resolver (loader-faithful semantics) +# --------------------------------------------------------------------------- + +class TestResolver(unittest.TestCase): + @staticmethod + def rec(name, filament_id=None, inherits=None): + return {"name": name, "filament_id": filament_id, "inherits": inherits} + + def resolve(self, name, vendor_recs, ofl_recs, **kw): + fmap = {r["name"]: r for r in vendor_recs} + omap = {r["name"]: r for r in ofl_recs} + return afi.resolve_filament_id(name, fmap, omap, **kw) + + def test_own_id(self): + fid, src, entry = self.resolve("A", [self.rec("A", "ID1")], []) + self.assertEqual((fid, src, entry), ("ID1", "own", None)) + + def test_inherited_within_vendor(self): + fid, src, entry = self.resolve( + "A", [self.rec("A", inherits="B"), self.rec("B", inherits="C"), + self.rec("C", "ID3")], []) + self.assertEqual((fid, src, entry), ("ID3", "inherited", None)) + + def test_ofl_fallback(self): + # Vendor preset inherits a name that only exists in the OFL map. + fid, src, entry = self.resolve( + "A", [self.rec("A", inherits="Generic PLA @System")], + [self.rec("Generic PLA @System", inherits="fdm_pla"), + self.rec("fdm_pla", "OGFL99")]) + self.assertEqual(fid, "OGFL99") + self.assertEqual(entry, "Generic PLA @System") + + def test_ofl_stays_in_ofl(self): + # Once a chain enters OFL it stays there: a vendor file sharing an + # OFL-internal hop's name must not shadow it. + fid, _src, entry = self.resolve( + "A", + [self.rec("A", inherits="ofl_entry"), self.rec("fdm_pla", "WRONG")], + [self.rec("ofl_entry", inherits="fdm_pla"), self.rec("fdm_pla", "RIGHT")]) + self.assertEqual(fid, "RIGHT") + self.assertEqual(entry, "ofl_entry") + + def test_dead_end_retries_parent_in_ofl(self): + # The vendor chain dead-ends id-less on a parent that also exists in + # OFL: the loader re-consults the OFL map for that direct parent. + fid, _src, entry = self.resolve( + "A", [self.rec("A", inherits="shared"), self.rec("shared")], + [self.rec("shared", "OFLID1")]) + self.assertEqual(fid, "OFLID1") + self.assertEqual(entry, "shared") + + def test_cycle(self): + fid, src, _e = self.resolve( + "A", [self.rec("A", inherits="B"), self.rec("B", inherits="A")], []) + self.assertEqual((fid, src), (None, "cycle")) + + def test_dangling_parent(self): + fid, src, _e = self.resolve("A", [self.rec("A", inherits="nope")], []) + self.assertEqual((fid, src), (None, "dangling")) + + def test_missing_id(self): + fid, src, _e = self.resolve("A", [self.rec("A")], []) + self.assertEqual((fid, src), (None, "missing")) + + def test_skip_own_resolves_inherited(self): + fid, _src, _e = self.resolve( + "A", [self.rec("A", "OWN", inherits="B"), self.rec("B", "PARENT")], [], + skip_own=True) + self.assertEqual(fid, "PARENT") + + +# --------------------------------------------------------------------------- +# reserved namespaces +# --------------------------------------------------------------------------- + +class TestReservedSpaces(unittest.TestCase): + def test_owners(self): + self.assertEqual(afi.reserved_space_owner("GFL99"), (True, "BBL")) + self.assertEqual(afi.reserved_space_owner("QD_X4_PLA"), (True, "Qidi")) + self.assertEqual(afi.reserved_space_owner("P1234abc"), (True, None)) + self.assertEqual(afi.reserved_space_owner("pAbCdEf1"), (True, None)) # case-insensitive + self.assertEqual(afi.reserved_space_owner("null"), (True, None)) + self.assertEqual(afi.reserved_space_owner("OFiJYDPC"), (False, None)) + self.assertEqual(afi.reserved_space_owner("P1234abcd"), (False, None)) # 8 hex chars: not the user space + + +# --------------------------------------------------------------------------- +# checks on synthetic trees +# --------------------------------------------------------------------------- + +class TestChecks(SyntheticTreeCase): + def test_clean_tree_is_silent(self): + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + self.assertNotIn("[ERROR]", out) + + def test_check1_unknown_non_of_id(self): + self.t.write_preset("VendorA", preset("BPLA @base", filament_id="BOGUS_9", + instantiation=False)) + self.t.write_preset("VendorA", preset("BPLA @P1", inherits="BPLA @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("neither grandfathered in the snapshot", out) + self.assertIn("BOGUS_9", out) + + def test_check2_new_claim_needs_snapshot_update(self): + self.t.write_preset("VendorA", preset("ANEW @P2", inherits="APLA @base", + compatible_printers=["P2"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn('claim "VendorA/ANEW" is not sanctioned', out) + self.assertIn("--update-snapshot", out) + + def test_check2_vanished_claim_is_stability_error(self): + self.t.remove_preset("VendorA", "APLA @P1") + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("stability", out) + self.assertIn('"VendorA/APLA"', out) + + def test_check3_of_id_must_match_mint(self): + self.t.write_preset("VendorA", preset("BNEW @base", filament_id="OFZZZZZZ", + instantiation=False)) + self.t.write_preset("VendorA", preset("BNEW @P1", inherits="BNEW @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("does not match its mint", out) + self.assertIn(afi.generate_filament_id("VendorA", "BNEW"), out) + + def test_check3_salted_mint_is_accepted(self): + salted = afi.generate_filament_id("VendorA", "BNEW", salt=3) + self.t.write_preset("VendorA", preset("BNEW @base", filament_id=salted, + instantiation=False)) + self.t.write_preset("VendorA", preset("BNEW @P1", inherits="BNEW @base", + compatible_printers=["P1"])) + _errors, out = self.t.check() # check 2 still wants a snapshot update + self.assertNotIn("does not match its mint", out) + + def test_check4_retired_id_reuse(self): + afi.write_ledger(self.t.retired, {"retired": {"AX01": ["VendorA/APLA"]}}) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("retired", out) + self.assertIn("AX01", out) + + def test_check5_renamed_tuned_generic(self): + self.t.write_preset("VendorA", preset("Tuned PLA @P1", + inherits="Generic PLA @System", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("rename re-exposes the OFL preset", out) + self.assertIn("Tuned PLA @P1", out) + + def test_check5_empty_compatible_printers(self): + self.t.write_preset("VendorA", preset("Generic PLA @P2", + inherits="Generic PLA @System", + compatible_printers=[])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("cannot shadow the OFL preset", out) + + def test_check5_exception_is_grandfathered(self): + self.t.write_preset("VendorA", preset("Tuned PLA @P1", + inherits="Generic PLA @System", + compatible_printers=["P1"])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_check6_reserved_namespace_claims(self): + for fid, marker in [("GFX99", "owned by BBL"), + ("QD_X_PLA", "owned by Qidi"), + ("P1a2b3c4", "user-custom"), + ("null", "user-custom")]: + with self.subTest(fid=fid): + name = f"R{fid} @base" + self.t.write_preset("VendorA", preset(name, filament_id=fid, + instantiation=False)) + self.t.write_preset("VendorA", preset(f"R{fid} @P1", inherits=name, + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("reserved id space", out) + self.assertIn(marker, out) + + def test_check7a_instantiated_preset_with_own_key(self): + self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX01", + inherits="APLA @base", + compatible_printers=["P1 0.4 nozzle"]), + register=False) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("declares its own filament_id key", out) + + def test_check7b_declared_vs_inherited_drift(self): + self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX02", + inherits="APLA @base", + compatible_printers=["P1 0.4 nozzle"]), + register=False) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn('declares filament_id "AX02" but its inherits chain resolves "AX01"', out) + + def test_check7c_unresolvable_instantiated_filament(self): + self.t.write_preset("VendorA", preset("DNEW @P1", compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("resolves no filament_id", out) + self.assertIn("hard load error", out) + + def test_missing_snapshot_is_an_error(self): + os.remove(self.t.snapshot) + errors, out = self.t.check() + self.assertEqual(errors, 1) + self.assertIn("snapshot not found", out) + + +# --------------------------------------------------------------------------- +# --update-snapshot +# --------------------------------------------------------------------------- + +class TestUpdateSnapshot(SyntheticTreeCase): + def test_idempotent_and_deterministic(self): + with open(self.t.snapshot, "rb") as f: + first = f.read() + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("nothing changed", out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), first) + self.assertTrue(first.endswith(b"\n")) + self.assertNotIn(b"\r", first) + snap = json.loads(first.decode("utf-8")) + self.assertEqual(list(snap["ids"]), sorted(snap["ids"])) + self.assertEqual(snap["ids"]["AX01"], ["VendorA/APLA"]) + self.assertEqual(snap["ids"]["OGFL99"], + ["OrcaFilamentLibrary/Generic PLA", "VendorA/Generic PLA"]) + + def test_vanished_id_is_retired(self): + self.t.remove_preset("VendorA", "APLA @base") + self.t.remove_preset("VendorA", "APLA @P1") + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("AX01", out) + retired = load_json_file(self.t.retired) + self.assertEqual(retired["retired"], {"AX01": ["VendorA/APLA"]}) + snap = load_json_file(self.t.snapshot) + self.assertNotIn("AX01", snap["ids"]) + # append-only + idempotent: a second run keeps the ledger intact + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("nothing changed", out) + retired2 = load_json_file(self.t.retired) + self.assertEqual(retired, retired2) + # ... and a retired id may never be minted again + self.assertNotIn(afi.mint_filament_id("VendorA", "APLA", + set(retired["retired"])), retired["retired"]) + + def test_refuses_new_reserved_namespace_claims(self): + self.t.write_preset("VendorA", preset("CNEW @base", filament_id="GFX99", + instantiation=False)) + self.t.write_preset("VendorA", preset("CNEW @P1", inherits="CNEW @base", + compatible_printers=["P1"])) + with open(self.t.snapshot, "rb") as f: + before = f.read() + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 1) + self.assertIn("refusing to sanction", out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), before) # nothing written on refusal + rc, _out = self.t.update_snapshot(allow_shared_catalog=True) + self.assertEqual(rc, 0) + snap = load_json_file(self.t.snapshot) + self.assertEqual(snap["ids"]["GFX99"], ["VendorA/CNEW"]) + + +# --------------------------------------------------------------------------- +# default run: mint + insert +# --------------------------------------------------------------------------- + +class TestAssign(SyntheticTreeCase): + def test_noop_on_fully_idded_tree(self): + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (0, 0)) + self.assertIn("nothing to do (0 files changed)", out) + + def test_mints_into_family_root_and_rootless_member(self): + self.t.write_preset("VendorA", preset("FNEW @base", instantiation=False)) + self.t.write_preset("VendorA", preset("FNEW @P1", inherits="FNEW @base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("FNEW @P2", inherits="FNEW @base", + compatible_printers=["P2"])) + self.t.write_preset("VendorA", preset("GNEW @P1", compatible_printers=["P1"])) + changed, errors, _out = self.t.assign() + self.assertEqual(errors, 0) + self.assertEqual(changed, 2) # one root + one root-less member + root = load_json_file(self.t.preset_path("VendorA", "FNEW @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id("VendorA", "FNEW")) + member = load_json_file(self.t.preset_path("VendorA", "GNEW @P1")) + self.assertEqual(member["filament_id"], + afi.generate_filament_id("VendorA", "GNEW")) + # variants themselves never get the key + child = load_json_file(self.t.preset_path("VendorA", "FNEW @P1")) + self.assertNotIn("filament_id", child) + # idempotent: second run is a no-op + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (0, 0)) + self.assertIn("nothing to do", out) + + def test_shared_root_between_families_is_refused(self): + self.t.write_preset("VendorA", preset("shared_base", instantiation=False)) + self.t.write_preset("VendorA", preset("HNEW @P1", inherits="shared_base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("INEW @P1", inherits="shared_base", + compatible_printers=["P1"])) + changed, errors, out = self.t.assign() + self.assertEqual(changed, 0) + self.assertGreater(errors, 0) + self.assertIn("shared with famil", out) + + +class TestInsertEditing(unittest.TestCase): + CRLF_TEXT = ( + '{\r\n' + '\t"type": "filament",\r\n' + '\t"name": "JNEW @base",\r\n' + '\t"inherits": "fdm_pla",\r\n' + '\t"from": "system",\r\n' + '\t"instantiation": "false",\r\n' + '\t"filament_type": [\r\n' + '\t\t"PLA"\r\n' + '\t]\r\n' + '}\r\n' + ) + + def test_insert_before_instantiation_preserves_bytes(self): + text, n = afi.insert_filament_id(self.CRLF_TEXT, "OFabc123") + self.assertEqual(n, 1) + json.loads(text) + inserted = '\t"filament_id": "OFabc123",\r\n' + self.assertIn(inserted + '\t"instantiation"', text) + # every original byte is preserved: removing the inserted line restores + # the input exactly (CRLF stays CRLF, tabs stay tabs) + self.assertEqual(text.replace(inserted, "", 1), self.CRLF_TEXT) + + def test_insert_after_name_when_no_instantiation_line(self): + lf_text = '{\n "type": "filament",\n "name": "K",\n "from": "system"\n}\n' + text, n = afi.insert_filament_id(lf_text, "OFabc123") + self.assertEqual(n, 1) + json.loads(text) + self.assertIn('"name": "K",\n "filament_id": "OFabc123",\n', text) + self.assertNotIn("\r", text) + + def test_insert_no_anchor_fails(self): + _text, n = afi.insert_filament_id('{"type": "filament"}', "OFabc123") + self.assertEqual(n, 0) + + def test_write_filament_id_keeps_crlf_on_disk(self): + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("VendorA", []) + path = t.preset_path("VendorA", "JNEW @base") + with open(path, "wb") as f: + f.write(self.CRLF_TEXT.encode("utf-8")) + t.add_to_index("VendorA", "JNEW @base") + afi.write_filament_id(path, "OFabc123") + with open(path, "rb") as f: + raw = f.read() + self.assertEqual(raw.count(b"\n"), raw.count(b"\r\n")) # still CRLF-only + self.assertEqual( + raw.replace(b'\t"filament_id": "OFabc123",\r\n', b"", 1), + self.CRLF_TEXT.encode("utf-8")) + + +# --------------------------------------------------------------------------- +# the real tree +# --------------------------------------------------------------------------- + +@unittest.skipUnless(os.path.isdir(REAL_PROFILES), "resources/profiles not present") +class TestRealTree(unittest.TestCase): + def test_shipped_snapshot_matches_tree(self): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + errors = afi.check_filament_ids(REAL_PROFILES) + self.assertEqual(errors, 0, buf.getvalue()) + + def test_every_instantiated_filament_resolves_an_id(self): + analysis = afi.analyze_tree(REAL_PROFILES) + self.assertEqual(analysis["missing_effective"], []) + self.assertEqual(analysis["read_errors"], []) + + +# --------------------------------------------------------------------------- +# review-fix regressions +# --------------------------------------------------------------------------- + +class TestReviewFixes(SyntheticTreeCase): + def test_update_snapshot_refuses_retired_id_reuse(self): + fid = afi.generate_filament_id("VendorA", "LONER") + self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, + instantiation=False)) + self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", + compatible_printers=["P1 0.4 nozzle"])) + rc, _ = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.t.remove_preset("VendorA", "LONER @base") + self.t.remove_preset("VendorA", "LONER @P1") + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0, out) + self.assertIn(fid, afi.load_retired(self.t.retired)) + # Resurrect the same id: --update-snapshot must refuse, not sanction. + self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, + instantiation=False)) + self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", + compatible_printers=["P1 0.4 nozzle"])) + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 1) + self.assertIn("retired", out) + self.assertNotIn(fid, load_json_file(self.t.snapshot)["ids"]) + + def test_check3_skips_of_id_inherited_from_other_vendor(self): + # Post-Phase-1 world: an OFL generic carries its own minted OF id and a + # vendor tunes it correctly (same base name, non-empty printers). The + # new claim must trip only the snapshot gate, never mint conformance. + fid = afi.generate_filament_id(OFL, "Generic PLA Matte") + self.t.write_preset(OFL, preset("Generic PLA Matte @base", filament_id=fid, + instantiation=False)) + self.t.write_preset(OFL, preset("Generic PLA Matte @System", + inherits="Generic PLA Matte @base", + compatible_printers=[])) + rc, _ = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.t.write_preset("VendorA", preset("Generic PLA Matte @P1", + inherits="Generic PLA Matte @System", + compatible_printers=["P1 0.4 nozzle"])) + errors, out = self.t.check() + self.assertNotIn("does not match its mint", out) + self.assertIn("not sanctioned", out) + self.assertEqual(errors, 1, out) + # After sanctioning the claim the tree is fully green again. + rc, _ = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_check7c_prints_expected_mint(self): + self.t.write_preset("VendorA", preset("Orphan PLA @P1", + compatible_printers=["P1 0.4 nozzle"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn(afi.generate_filament_id("VendorA", "Orphan PLA"), out) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index ee32e8d036..399443a706 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -3109,6 +3109,24 @@ void PresetBundle::update_num_filaments(unsigned int to_del_flament_id) } +// Orca: the AMS lookups below resolve a tray's filament_id to the FIRST compatible base +// preset. When several presets match the same id for the selected printer the pick is +// arbitrary (a profile bug - see the validator's check_duplicate_filament_subtypes), so +// scan past a successful match and warn about the runners-up. Behavior is unchanged. +static void warn_ambiguous_filament_id_match(const PresetCollection &filaments, PresetCollection::ConstIterator match, const std::string &filament_id) +{ + if (match == filaments.end()) + return; + std::string others; + for (auto it = std::next(match); it != filaments.end(); ++it) + if (it->is_compatible && filaments.get_preset_base(*it) == &*it && it->filament_id == filament_id) + others += (others.empty() ? "\"" : ", \"") + it->name + "\""; + if (!others.empty()) + BOOST_LOG_TRIVIAL(warning) << "Ambiguous AMS filament match: filament_id \"" << filament_id + << "\" matches multiple presets compatible with the selected printer; picked \"" << match->name + << "\", also matches " << others; +} + void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info) { combox_info.clear(); @@ -3131,6 +3149,7 @@ void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info) } auto iter = std::find_if(filaments.begin(), filaments.end(), [this, &filament_id](auto &f) { return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == filament_id; }); + warn_ambiguous_filament_id_match(filaments, iter, filament_id); if (iter == filaments.end()) { BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": filament_id %1% not found or system or compatible") % filament_id; auto filament_type = ams.opt_string("filament_type", 0u); @@ -3233,6 +3252,7 @@ unsigned int PresetBundle::sync_ams_list(std::vector> filaments_by_vendor; for (const auto &preset : filaments) { if (!preset.is_system || preset.filament_id.empty() || preset.vendor == nullptr) @@ -5665,20 +5689,29 @@ bool PresetBundle::check_duplicate_filament_subtypes() const filaments_by_vendor[preset.vendor->name].push_back(&preset); } + const std::vector no_filaments; + const auto library_it = filaments_by_vendor.find(ORCA_FILAMENT_LIBRARY); + const std::vector &library_filaments = library_it == filaments_by_vendor.end() ? no_filaments : library_it->second; + bool found_duplicates = false; for (const auto &printer : printers) { if (!printer.is_system || printer.vendor == nullptr) continue; auto vendor_it = filaments_by_vendor.find(printer.vendor->name); - if (vendor_it == filaments_by_vendor.end()) + const std::vector &vendor_filaments = vendor_it == filaments_by_vendor.end() ? no_filaments : vendor_it->second; + if (vendor_filaments.empty() && library_filaments.empty()) continue; const PresetWithVendorProfile active_printer = printers.get_preset_with_vendor_profile(printer); // std::map keeps the reported errors in a deterministic (sorted) order. std::map> by_filament_id; - for (const Preset *fil : vendor_it->second) + for (const Preset *fil : vendor_filaments) if (is_compatible_with_printer(filaments.get_preset_with_vendor_profile(*fil), active_printer)) by_filament_id[fil->filament_id].push_back(fil); + if (&vendor_filaments != &library_filaments) + for (const Preset *fil : library_filaments) + if (is_compatible_with_printer(filaments.get_preset_with_vendor_profile(*fil), active_printer)) + by_filament_id[fil->filament_id].push_back(fil); for (const auto &entry : by_filament_id) { if (entry.second.size() < 2) @@ -5686,9 +5719,15 @@ bool PresetBundle::check_duplicate_filament_subtypes() const found_duplicates = true; // List each conflicting preset with a clickable file:// URI on its own // line, so the profile author can jump straight to the files to fix. + // A preset from another bundle (the Orca Filament Library) is tagged with + // its vendor so the source bundle is obvious. std::string presets; - for (const Preset *p : entry.second) - presets += "\n - " + p->name + "\n " + preset_file_uri(p->file); + for (const Preset *p : entry.second) { + presets += "\n - " + p->name; + if (p->vendor != nullptr && p->vendor->name != printer.vendor->name) + presets += " [" + p->vendor->name + "]"; + presets += "\n " + preset_file_uri(p->file); + } BOOST_LOG_TRIVIAL(error) << "Ambiguous AMS filament match: " << entry.second.size() << " filament presets share filament_id \"" << entry.first From ab60229311b825b67676bd71a5ec50a61f649693 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:05:37 +0800 Subject: [PATCH 003/164] OrcaFilamentLibrary: give every material family its own filament_id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 of the filament_id cleanup (filament_id_plan.md section 5): resolve the 16 library-internal ids that covered several different materials at once and were visible on every printer of every vendor (empty compatible_printers = compatible with all). - 7 existing @base roots get their copy-pasted id replaced with a fresh deterministic mint (Elas PLA/ASA copy-pastes of Bambu-mirror ids, eSUN copy-pastes incl. the OGFL06 eSUN PLA-Marble / Fiberon PETG-ESD polymer mismatch). - 30 rootless families (23 Elegoo product lines riding the material-class E*B00 ids, Generic PETG HF / PETG-CF / PP-CF / PP-GF / PE-CF / PLA Matte riding their parent generic's template id, PolyLite Dual PLA) each get a new config-equivalent @base root carrying the minted id, inheriting the family's previous parent; members re-pointed; index entries inserted before the @System entries (loader's filament_id map is built in file order). - Keepers by precedence stay byte-identical: Bambu-catalog mirrors (OGFA00/OGFB01/OGFG00, PolyLite/Overture/Fiberon lines), the OFL generics (OGFG99/OGFL99/OGFP97/OGFP99), and the Elegoo root-owning families. Verified: config-equivalence gate — flattened effective configs of all 5892 instantiated presets are byte-identical to pre-migration except the prescribed filament_id changes; orca_extra_profile_check.py exit 0; assign_filament_ids.py --check exit 0; validator -l 2 exit 0 (66 vendors); extended validator -f -v OrcaFilamentLibrary exit 0 (16 collision ids resolved) and -f -v BBL exit 0 (all 26 BBL-shared ids are same-material mirrors, alias-shadowed on every overlapping BBL printer — no BBL file touched). Snapshot: +37 minted ids, id_overrides +30 (new roots override their template parents by design). --- resources/profiles/OrcaFilamentLibrary.json | 120 ++++++++++ .../filament/Elas/Elas ASA @base.json | 2 +- .../filament/Elas/Elas PETG Basic @base.json | 2 +- .../filament/Elas/Elas PLA Basic @base.json | 2 +- .../filament/Elas/Elas PLA Pro @base.json | 2 +- .../Elegoo/Elegoo ASA-CF @System.json | 2 +- .../filament/Elegoo/Elegoo ASA-CF @base.json | 8 + .../filament/Elegoo/Elegoo PC-FR @System.json | 2 +- .../filament/Elegoo/Elegoo PC-FR @base.json | 8 + .../Elegoo/Elegoo PET-CF @System.json | 2 +- .../filament/Elegoo/Elegoo PET-CF @base.json | 8 + .../Elegoo/Elegoo PETG HF @System.json | 2 +- .../filament/Elegoo/Elegoo PETG HF @base.json | 8 + .../Elegoo/Elegoo PETG PRO @System.json | 2 +- .../Elegoo/Elegoo PETG PRO @base.json | 8 + .../Elegoo PETG Translucent @System.json | 2 +- .../Elegoo/Elegoo PETG Translucent @base.json | 8 + .../Elegoo/Elegoo PETG-CF @System.json | 2 +- .../filament/Elegoo/Elegoo PETG-CF @base.json | 8 + .../Elegoo/Elegoo PETG-GF @System.json | 2 +- .../filament/Elegoo/Elegoo PETG-GF @base.json | 8 + .../Elegoo/Elegoo PLA Basic @System.json | 2 +- .../Elegoo/Elegoo PLA Basic @base.json | 8 + .../Elegoo/Elegoo PLA Galaxy @System.json | 2 +- .../Elegoo/Elegoo PLA Galaxy @base.json | 8 + .../Elegoo/Elegoo PLA Glow @System.json | 2 +- .../Elegoo/Elegoo PLA Glow @base.json | 8 + .../Elegoo/Elegoo PLA Marble @System.json | 2 +- .../Elegoo/Elegoo PLA Marble @base.json | 8 + .../Elegoo/Elegoo PLA Matte @System.json | 2 +- .../Elegoo/Elegoo PLA Matte @base.json | 8 + .../Elegoo/Elegoo PLA PRO @System.json | 2 +- .../filament/Elegoo/Elegoo PLA PRO @base.json | 8 + .../Elegoo/Elegoo PLA Silk @System.json | 2 +- .../Elegoo/Elegoo PLA Silk @base.json | 8 + .../Elegoo/Elegoo PLA Sparkle @System.json | 2 +- .../Elegoo/Elegoo PLA Sparkle @base.json | 8 + .../Elegoo PLA Translucent2 @System.json | 2 +- .../Elegoo/Elegoo PLA Translucent2 @base.json | 8 + .../Elegoo/Elegoo PLA Wood @System.json | 2 +- .../Elegoo/Elegoo PLA Wood @base.json | 8 + .../filament/Elegoo/Elegoo PLA+ @System.json | 2 +- .../filament/Elegoo/Elegoo PLA+ @base.json | 8 + .../Elegoo/Elegoo PLA-CF @System.json | 2 +- .../filament/Elegoo/Elegoo PLA-CF @base.json | 8 + .../Elegoo/Elegoo Rapid PETG @System.json | 2 +- .../Elegoo/Elegoo Rapid PETG @base.json | 8 + .../Elegoo/Elegoo Rapid PLA+ @System.json | 2 +- .../Elegoo/Elegoo Rapid PLA+ @base.json | 8 + .../Elegoo/Elegoo Rapid TPU 95A @System.json | 2 +- .../Elegoo/Elegoo Rapid TPU 95A @base.json | 8 + .../filament/Generic PE-CF @System.json | 2 +- .../filament/Generic PE-CF @base.json | 8 + .../filament/Generic PETG HF @System.json | 2 +- .../filament/Generic PETG HF @base.json | 8 + .../filament/Generic PETG-CF @System.json | 2 +- .../filament/Generic PETG-CF @base.json | 8 + .../filament/Generic PLA Matte @System.json | 2 +- .../filament/Generic PLA Matte @base.json | 8 + .../filament/Generic PP-CF @System.json | 2 +- .../filament/Generic PP-CF @base.json | 8 + .../filament/Generic PP-GF @System.json | 2 +- .../filament/Generic PP-GF @base.json | 8 + .../Polymaker/PolyLite Dual PLA @System.json | 2 +- .../Polymaker/PolyLite Dual PLA @base.json | 8 + .../filament/eSUN/eSUN PLA-Basic @base.json | 2 +- .../filament/eSUN/eSUN PLA-Marble @base.json | 2 +- .../filament/eSUN/eSUN PLA-Matte @base.json | 2 +- scripts/filament_id_snapshot.json | 214 +++++++++++++----- 69 files changed, 556 insertions(+), 92 deletions(-) create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index cd9abd8b0d..33c7ade795 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -584,6 +584,10 @@ "name": "Generic PE @System", "sub_path": "filament/Generic PE @System.json" }, + { + "name": "Generic PE-CF @base", + "sub_path": "filament/Generic PE-CF @base.json" + }, { "name": "Generic PE-CF @System", "sub_path": "filament/Generic PE-CF @System.json" @@ -672,10 +676,18 @@ "name": "Generic PETG @System", "sub_path": "filament/Generic PETG @System.json" }, + { + "name": "Generic PETG HF @base", + "sub_path": "filament/Generic PETG HF @base.json" + }, { "name": "Generic PETG HF @System", "sub_path": "filament/Generic PETG HF @System.json" }, + { + "name": "Generic PETG-CF @base", + "sub_path": "filament/Generic PETG-CF @base.json" + }, { "name": "Generic PETG-CF @System", "sub_path": "filament/Generic PETG-CF @System.json" @@ -864,6 +876,10 @@ "name": "Generic PLA High Speed @System", "sub_path": "filament/Generic PLA High Speed @System.json" }, + { + "name": "Generic PLA Matte @base", + "sub_path": "filament/Generic PLA Matte @base.json" + }, { "name": "Generic PLA Matte @System", "sub_path": "filament/Generic PLA Matte @System.json" @@ -1072,10 +1088,18 @@ "name": "Generic PP @System", "sub_path": "filament/Generic PP @System.json" }, + { + "name": "Generic PP-CF @base", + "sub_path": "filament/Generic PP-CF @base.json" + }, { "name": "Generic PP-CF @System", "sub_path": "filament/Generic PP-CF @System.json" }, + { + "name": "Generic PP-GF @base", + "sub_path": "filament/Generic PP-GF @base.json" + }, { "name": "Generic PP-GF @System", "sub_path": "filament/Generic PP-GF @System.json" @@ -1264,6 +1288,10 @@ "name": "Elegoo ASA @System", "sub_path": "filament/Elegoo/Elegoo ASA @System.json" }, + { + "name": "Elegoo ASA-CF @base", + "sub_path": "filament/Elegoo/Elegoo ASA-CF @base.json" + }, { "name": "Elegoo ASA-CF @System", "sub_path": "filament/Elegoo/Elegoo ASA-CF @System.json" @@ -1356,6 +1384,10 @@ "name": "Elegoo PC @System", "sub_path": "filament/Elegoo/Elegoo PC @System.json" }, + { + "name": "Elegoo PC-FR @base", + "sub_path": "filament/Elegoo/Elegoo PC-FR @base.json" + }, { "name": "Elegoo PC-FR @System", "sub_path": "filament/Elegoo/Elegoo PC-FR @System.json" @@ -1412,6 +1444,10 @@ "name": "Elas PETG Basic @System", "sub_path": "filament/Elas/Elas PETG Basic @System.json" }, + { + "name": "Elegoo PET-CF @base", + "sub_path": "filament/Elegoo/Elegoo PET-CF @base.json" + }, { "name": "Elegoo PET-CF @System", "sub_path": "filament/Elegoo/Elegoo PET-CF @System.json" @@ -1420,26 +1456,50 @@ "name": "Elegoo PETG @System", "sub_path": "filament/Elegoo/Elegoo PETG @System.json" }, + { + "name": "Elegoo PETG HF @base", + "sub_path": "filament/Elegoo/Elegoo PETG HF @base.json" + }, { "name": "Elegoo PETG HF @System", "sub_path": "filament/Elegoo/Elegoo PETG HF @System.json" }, + { + "name": "Elegoo PETG PRO @base", + "sub_path": "filament/Elegoo/Elegoo PETG PRO @base.json" + }, { "name": "Elegoo PETG PRO @System", "sub_path": "filament/Elegoo/Elegoo PETG PRO @System.json" }, + { + "name": "Elegoo PETG Translucent @base", + "sub_path": "filament/Elegoo/Elegoo PETG Translucent @base.json" + }, { "name": "Elegoo PETG Translucent @System", "sub_path": "filament/Elegoo/Elegoo PETG Translucent @System.json" }, + { + "name": "Elegoo PETG-CF @base", + "sub_path": "filament/Elegoo/Elegoo PETG-CF @base.json" + }, { "name": "Elegoo PETG-CF @System", "sub_path": "filament/Elegoo/Elegoo PETG-CF @System.json" }, + { + "name": "Elegoo PETG-GF @base", + "sub_path": "filament/Elegoo/Elegoo PETG-GF @base.json" + }, { "name": "Elegoo PETG-GF @System", "sub_path": "filament/Elegoo/Elegoo PETG-GF @System.json" }, + { + "name": "Elegoo Rapid PETG @base", + "sub_path": "filament/Elegoo/Elegoo Rapid PETG @base.json" + }, { "name": "Elegoo Rapid PETG @System", "sub_path": "filament/Elegoo/Elegoo Rapid PETG @System.json" @@ -1592,54 +1652,106 @@ "name": "Elegoo PLA @System", "sub_path": "filament/Elegoo/Elegoo PLA @System.json" }, + { + "name": "Elegoo PLA Basic @base", + "sub_path": "filament/Elegoo/Elegoo PLA Basic @base.json" + }, { "name": "Elegoo PLA Basic @System", "sub_path": "filament/Elegoo/Elegoo PLA Basic @System.json" }, + { + "name": "Elegoo PLA Galaxy @base", + "sub_path": "filament/Elegoo/Elegoo PLA Galaxy @base.json" + }, { "name": "Elegoo PLA Galaxy @System", "sub_path": "filament/Elegoo/Elegoo PLA Galaxy @System.json" }, + { + "name": "Elegoo PLA Glow @base", + "sub_path": "filament/Elegoo/Elegoo PLA Glow @base.json" + }, { "name": "Elegoo PLA Glow @System", "sub_path": "filament/Elegoo/Elegoo PLA Glow @System.json" }, + { + "name": "Elegoo PLA Marble @base", + "sub_path": "filament/Elegoo/Elegoo PLA Marble @base.json" + }, { "name": "Elegoo PLA Marble @System", "sub_path": "filament/Elegoo/Elegoo PLA Marble @System.json" }, + { + "name": "Elegoo PLA Matte @base", + "sub_path": "filament/Elegoo/Elegoo PLA Matte @base.json" + }, { "name": "Elegoo PLA Matte @System", "sub_path": "filament/Elegoo/Elegoo PLA Matte @System.json" }, + { + "name": "Elegoo PLA PRO @base", + "sub_path": "filament/Elegoo/Elegoo PLA PRO @base.json" + }, { "name": "Elegoo PLA PRO @System", "sub_path": "filament/Elegoo/Elegoo PLA PRO @System.json" }, + { + "name": "Elegoo PLA Silk @base", + "sub_path": "filament/Elegoo/Elegoo PLA Silk @base.json" + }, { "name": "Elegoo PLA Silk @System", "sub_path": "filament/Elegoo/Elegoo PLA Silk @System.json" }, + { + "name": "Elegoo PLA Sparkle @base", + "sub_path": "filament/Elegoo/Elegoo PLA Sparkle @base.json" + }, { "name": "Elegoo PLA Sparkle @System", "sub_path": "filament/Elegoo/Elegoo PLA Sparkle @System.json" }, + { + "name": "Elegoo PLA Translucent2 @base", + "sub_path": "filament/Elegoo/Elegoo PLA Translucent2 @base.json" + }, { "name": "Elegoo PLA Translucent2 @System", "sub_path": "filament/Elegoo/Elegoo PLA Translucent2 @System.json" }, + { + "name": "Elegoo PLA Wood @base", + "sub_path": "filament/Elegoo/Elegoo PLA Wood @base.json" + }, { "name": "Elegoo PLA Wood @System", "sub_path": "filament/Elegoo/Elegoo PLA Wood @System.json" }, + { + "name": "Elegoo PLA+ @base", + "sub_path": "filament/Elegoo/Elegoo PLA+ @base.json" + }, { "name": "Elegoo PLA+ @System", "sub_path": "filament/Elegoo/Elegoo PLA+ @System.json" }, + { + "name": "Elegoo PLA-CF @base", + "sub_path": "filament/Elegoo/Elegoo PLA-CF @base.json" + }, { "name": "Elegoo PLA-CF @System", "sub_path": "filament/Elegoo/Elegoo PLA-CF @System.json" }, + { + "name": "Elegoo Rapid PLA+ @base", + "sub_path": "filament/Elegoo/Elegoo Rapid PLA+ @base.json" + }, { "name": "Elegoo Rapid PLA+ @System", "sub_path": "filament/Elegoo/Elegoo Rapid PLA+ @System.json" @@ -1760,6 +1872,10 @@ "name": "Panchroma PLA UV Shift @System", "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @System.json" }, + { + "name": "PolyLite Dual PLA @base", + "sub_path": "filament/Polymaker/PolyLite Dual PLA @base.json" + }, { "name": "PolyLite Dual PLA @System", "sub_path": "filament/Polymaker/PolyLite Dual PLA @System.json" @@ -1904,6 +2020,10 @@ "name": "DREMC TPU 95A @System", "sub_path": "filament/DREMC/DREMC TPU 95A @System.json" }, + { + "name": "Elegoo Rapid TPU 95A @base", + "sub_path": "filament/Elegoo/Elegoo Rapid TPU 95A @base.json" + }, { "name": "Elegoo Rapid TPU 95A @System", "sub_path": "filament/Elegoo/Elegoo Rapid TPU 95A @System.json" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json index d6ca0d695b..961b8aa903 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json @@ -3,7 +3,7 @@ "name": "Elas ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OGFB01", + "filament_id": "OFT3TqB6", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "activate_air_filtration": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json index 478210bb7d..145e0472ae 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json @@ -3,7 +3,7 @@ "name": "Elas PETG Basic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG00", + "filament_id": "OFw4OHWE", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "complete_print_exhaust_fan_speed": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json index abfa611aa3..64e0f025b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "Elas PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA00", + "filament_id": "OFbgt3u3", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json index 38313d1d55..faba40142f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "Elas PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA00", + "filament_id": "OFrgQ1Ns", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @System.json index 13266c87b5..13ef86c2d9 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo ASA-CF @System", - "inherits": "Elegoo ASA @base", + "inherits": "Elegoo ASA-CF @base", "from": "system", "setting_id": "XT1aUl4pe9t0Ijwg", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json new file mode 100644 index 0000000000..ff15b78c5d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo ASA-CF @base", + "inherits": "Elegoo ASA @base", + "from": "system", + "filament_id": "OFpwg2Qh", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @System.json index 1fecee514c..7d2ab85058 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @System", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "JcopkaXZ7YyLjIcw", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json new file mode 100644 index 0000000000..1f6564cbf1 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PC-FR @base", + "inherits": "Elegoo PC @base", + "from": "system", + "filament_id": "OF79FFkO", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @System.json index 0c1c4265b7..b7191e482b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PET-CF @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PET-CF @base", "from": "system", "setting_id": "oloKoC4Bs8dXatMU", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json new file mode 100644 index 0000000000..9e669f1e14 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PET-CF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFJIImD5", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @System.json index 35b941684a..d912550c88 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG HF @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG HF @base", "from": "system", "setting_id": "d6gNuzrG00SXvMth", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json new file mode 100644 index 0000000000..2e3e74ef22 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG HF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFzrWlH5", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @System.json index c16448b1e4..aa30920b7c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "fdfCAYQEoYa9DN6I", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json new file mode 100644 index 0000000000..4b63edb4ed --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OF102WKM", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @System.json index 0346a8eef0..edb04a6dce 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "80Auuv3K7l8IptF3", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json new file mode 100644 index 0000000000..10b46e8f76 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG Translucent @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFenGPBR", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @System.json index 81e5b99afc..03de8dad0f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "bXRJMaXxB3V49x7R", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json new file mode 100644 index 0000000000..20897108cd --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG-CF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFIGHU7W", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @System.json index 48cd287ba6..f315756987 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "9NXaejLGh1VFX8bg", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json new file mode 100644 index 0000000000..1b62b3aeaa --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG-GF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFMQJToc", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @System.json index cdff566915..15d6f46a3f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "qHDFHECwAInvpuk2", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json new file mode 100644 index 0000000000..d361721096 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Basic @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFICPchn", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @System.json index 6874695462..6fd7f8f606 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "WXEEksjWsTbRyCPh", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json new file mode 100644 index 0000000000..a36b51384a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Galaxy @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OF0M6QAQ", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @System.json index 1cd70e904b..9c4c2075b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Glow @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Glow @base", "from": "system", "setting_id": "yFdF2YmEMeCHiPxl", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json new file mode 100644 index 0000000000..b839aca5dc --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Glow @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFutwD6f", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @System.json index 825a6c0dd9..755e42e758 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "kq7NS8IhIV4cBI1C", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json new file mode 100644 index 0000000000..7fc24ca532 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Marble @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OF4fgpse", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @System.json index e1361a4b5b..a05c57216e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "UykE255l5V0oS0Ca", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json new file mode 100644 index 0000000000..07c0dcf1ef --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFQkWxJy", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @System.json index 3526f87a69..fbc18fac42 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "62GiUVVZd8kx21vw", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json new file mode 100644 index 0000000000..368f6b89d9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFsKqcQW", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @System.json index 475354ca02..79ae01da5b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "VkXguNj79KADxuYn", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json new file mode 100644 index 0000000000..a19d767778 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFs6lLH7", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @System.json index fc4070bbe7..c7c030ff5a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "VwZIFCojZLQLPrI1", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json new file mode 100644 index 0000000000..cdf18ad328 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Sparkle @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OF8HQmJD", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @System.json index 178976527f..28993f13b4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Translucent2 @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Translucent2 @base", "from": "system", "setting_id": "q0koYRlO9X8xLXPM", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json new file mode 100644 index 0000000000..00d0e20932 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Translucent2 @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OF9qvJxV", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json index abae441db5..a428f5605e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "pMgazYJG8tyTpAVE", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json new file mode 100644 index 0000000000..934992440e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Wood @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFQhLoxN", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @System.json index b2bd83416d..2315cd2ac4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "q7NpDtaD9dTq1HIZ", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json new file mode 100644 index 0000000000..23ae2c1ddb --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA+ @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFDNiRTx", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @System.json index 4ec26c71ba..9b79f54799 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "cYxM93L2KZBnAuWu", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json new file mode 100644 index 0000000000..3115358207 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA-CF @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFqh1Ngp", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @System.json index 92b7cb43ef..7fd3f8d160 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo Rapid PETG @System", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "uUQSVOvP8tAaDqvB", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json new file mode 100644 index 0000000000..afdb0eda7a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid PETG @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFVLuVmD", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @System.json index f19e51bcf3..4f3ee82ced 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo Rapid PLA+ @System", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "HZ4nP67iAG7a243e", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json new file mode 100644 index 0000000000..21c1b99c63 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid PLA+ @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFD5e0sH", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @System.json index 2006a6494b..3d15ba541c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo Rapid TPU 95A @System", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "WXLuO112bsdM37MI", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json new file mode 100644 index 0000000000..299f0cee8d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid TPU 95A @base", + "inherits": "Elegoo TPU @base", + "from": "system", + "filament_id": "OFmeQjRP", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json index 27ee56eb4b..8013a04973 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PE-CF @System", - "inherits": "fdm_filament_pe", + "inherits": "Generic PE-CF @base", "from": "system", "setting_id": "prroSXONXxaahNkq", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json new file mode 100644 index 0000000000..74aea8b342 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PE-CF @base", + "inherits": "fdm_filament_pe", + "from": "system", + "filament_id": "OFJfx0Cl", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json index e402cdf775..d755bf0aab 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PETG HF @System", - "inherits": "fdm_filament_pet", + "inherits": "Generic PETG HF @base", "from": "system", "setting_id": "wNH8CohYIh9y6ayx", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json new file mode 100644 index 0000000000..f8de64e2a8 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PETG HF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "OFfB1QKi", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json index 5ee99ffed9..1f4578ee06 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PETG-CF @System", - "inherits": "fdm_filament_pet", + "inherits": "Generic PETG-CF @base", "from": "system", "setting_id": "aRVqy4a3X1UTIKem", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json new file mode 100644 index 0000000000..21b93a089d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "OFDCk0cz", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json index d3a6d4813c..253a41f2ae 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA Matte @System", - "inherits": "fdm_filament_pla", + "inherits": "Generic PLA Matte @base", "from": "system", "setting_id": "RFs9eCKYOMUSmvZf", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json new file mode 100644 index 0000000000..931ec3ea7e --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PLA Matte @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFJsqMzx", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json index 65420e9dae..af36744f57 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PP-CF @System", - "inherits": "fdm_filament_pp", + "inherits": "Generic PP-CF @base", "from": "system", "setting_id": "TDHYN3fs5wwakgsM", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json new file mode 100644 index 0000000000..f1898eb1f6 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PP-CF @base", + "inherits": "fdm_filament_pp", + "from": "system", + "filament_id": "OFRS2Ggt", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json index 931ee4b7b3..b4a4a94c9e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PP-GF @System", - "inherits": "fdm_filament_pp", + "inherits": "Generic PP-GF @base", "from": "system", "setting_id": "xfVrCZ7ySzkpdzX0", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json new file mode 100644 index 0000000000..2544bac78a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Generic PP-GF @base", + "inherits": "fdm_filament_pp", + "from": "system", + "filament_id": "OFMCMXSG", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json index 4d17382a38..ab02a798fc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @System.json @@ -2,7 +2,7 @@ "type": "filament", "name": "PolyLite Dual PLA @System", "renamed_from": "PolyLite Dual PLA", - "inherits": "PolyLite PLA @base", + "inherits": "PolyLite Dual PLA @base", "from": "system", "setting_id": "ShKfsLXZ1EJ4HgKf", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json new file mode 100644 index 0000000000..fc31b9bc35 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "PolyLite Dual PLA @base", + "inherits": "PolyLite PLA @base", + "from": "system", + "filament_id": "OFsNZcid", + "instantiation": "false" +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json index a627a10a4d..cef96aa7fc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL04", + "filament_id": "OFZhdVnP", "instantiation": "false", "filament_cost": [ "11.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json index 40c314585c..1b6302372c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL06", + "filament_id": "OFXmQgno", "instantiation": "false", "filament_cost": [ "28.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json index 85c6049935..e4c42a3a5b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL05", + "filament_id": "OF3GKs2i", "instantiation": "false", "filament_cost": [ "14.99" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 462098d581..9ebc007f87 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -826,10 +826,33 @@ "OrcaFilamentLibrary/Elas PETG Basic @base", "OrcaFilamentLibrary/Elas PLA Basic @base", "OrcaFilamentLibrary/Elas PLA Pro @base", + "OrcaFilamentLibrary/Elegoo ASA-CF @base", "OrcaFilamentLibrary/Elegoo PAHT @base", "OrcaFilamentLibrary/Elegoo PC @base", + "OrcaFilamentLibrary/Elegoo PC-FR @base", + "OrcaFilamentLibrary/Elegoo PET-CF @base", "OrcaFilamentLibrary/Elegoo PETG @base", + "OrcaFilamentLibrary/Elegoo PETG HF @base", + "OrcaFilamentLibrary/Elegoo PETG PRO @base", + "OrcaFilamentLibrary/Elegoo PETG Translucent @base", + "OrcaFilamentLibrary/Elegoo PETG-CF @base", + "OrcaFilamentLibrary/Elegoo PETG-GF @base", "OrcaFilamentLibrary/Elegoo PLA @base", + "OrcaFilamentLibrary/Elegoo PLA Basic @base", + "OrcaFilamentLibrary/Elegoo PLA Galaxy @base", + "OrcaFilamentLibrary/Elegoo PLA Glow @base", + "OrcaFilamentLibrary/Elegoo PLA Marble @base", + "OrcaFilamentLibrary/Elegoo PLA Matte @base", + "OrcaFilamentLibrary/Elegoo PLA PRO @base", + "OrcaFilamentLibrary/Elegoo PLA Silk @base", + "OrcaFilamentLibrary/Elegoo PLA Sparkle @base", + "OrcaFilamentLibrary/Elegoo PLA Translucent2 @base", + "OrcaFilamentLibrary/Elegoo PLA Wood @base", + "OrcaFilamentLibrary/Elegoo PLA+ @base", + "OrcaFilamentLibrary/Elegoo PLA-CF @base", + "OrcaFilamentLibrary/Elegoo Rapid PETG @base", + "OrcaFilamentLibrary/Elegoo Rapid PLA+ @base", + "OrcaFilamentLibrary/Elegoo Rapid TPU 95A @base", "OrcaFilamentLibrary/Eolas Prints PETG @System", "OrcaFilamentLibrary/Eolas Prints PETG Transition @System", "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant @System", @@ -924,8 +947,14 @@ "OrcaFilamentLibrary/FilAr PLA-mate Verde", "OrcaFilamentLibrary/FilAr PLA-mate Violeta", "OrcaFilamentLibrary/Generic PA-CF @System", + "OrcaFilamentLibrary/Generic PE-CF @base", + "OrcaFilamentLibrary/Generic PETG HF @base", + "OrcaFilamentLibrary/Generic PETG-CF @base", "OrcaFilamentLibrary/Generic PLA High Speed @System", + "OrcaFilamentLibrary/Generic PLA Matte @base", "OrcaFilamentLibrary/Generic PLA-CF @System", + "OrcaFilamentLibrary/Generic PP-CF @base", + "OrcaFilamentLibrary/Generic PP-GF @base", "OrcaFilamentLibrary/Generic PPA-GF @System", "OrcaFilamentLibrary/GreenGate3D PETG @base", "OrcaFilamentLibrary/NIT PETG @base", @@ -955,6 +984,7 @@ "OrcaFilamentLibrary/Panchroma PLA Temp Shift @base", "OrcaFilamentLibrary/Panchroma PLA Translucent @base", "OrcaFilamentLibrary/Panchroma PLA UV Shift @base", + "OrcaFilamentLibrary/PolyLite Dual PLA @base", "OrcaFilamentLibrary/PolyLite PETG @base", "OrcaFilamentLibrary/PolyLite PLA @base", "OrcaFilamentLibrary/PolyLite PLA Pro @base", @@ -4561,54 +4591,144 @@ "OrcaFilamentLibrary/Elegoo ABS" ], "OEASAB00": [ - "OrcaFilamentLibrary/Elegoo ASA", - "OrcaFilamentLibrary/Elegoo ASA-CF" + "OrcaFilamentLibrary/Elegoo ASA" ], "OEPAHTB0": [ "OrcaFilamentLibrary/Elegoo PAHT-CF" ], "OEPCB00": [ - "OrcaFilamentLibrary/Elegoo PC", - "OrcaFilamentLibrary/Elegoo PC-FR" + "OrcaFilamentLibrary/Elegoo PC" ], "OEPETGB0": [ - "OrcaFilamentLibrary/Elegoo PET-CF", - "OrcaFilamentLibrary/Elegoo PETG", - "OrcaFilamentLibrary/Elegoo PETG HF", - "OrcaFilamentLibrary/Elegoo PETG PRO", - "OrcaFilamentLibrary/Elegoo PETG Translucent", - "OrcaFilamentLibrary/Elegoo PETG-CF", - "OrcaFilamentLibrary/Elegoo PETG-GF", - "OrcaFilamentLibrary/Elegoo Rapid PETG" + "OrcaFilamentLibrary/Elegoo PETG" ], "OEPLAB00": [ - "OrcaFilamentLibrary/Elegoo PLA", - "OrcaFilamentLibrary/Elegoo PLA Basic", - "OrcaFilamentLibrary/Elegoo PLA Galaxy", - "OrcaFilamentLibrary/Elegoo PLA Glow", - "OrcaFilamentLibrary/Elegoo PLA Marble", - "OrcaFilamentLibrary/Elegoo PLA Matte", - "OrcaFilamentLibrary/Elegoo PLA PRO", - "OrcaFilamentLibrary/Elegoo PLA Silk", - "OrcaFilamentLibrary/Elegoo PLA Sparkle", - "OrcaFilamentLibrary/Elegoo PLA Translucent2", - "OrcaFilamentLibrary/Elegoo PLA Wood", - "OrcaFilamentLibrary/Elegoo PLA+", - "OrcaFilamentLibrary/Elegoo PLA-CF", - "OrcaFilamentLibrary/Elegoo Rapid PLA+" + "OrcaFilamentLibrary/Elegoo PLA" ], "OETPUB00": [ - "OrcaFilamentLibrary/Elegoo Rapid TPU 95A", "OrcaFilamentLibrary/Elegoo TPU 95A" ], + "OF0M6QAQ": [ + "OrcaFilamentLibrary/Elegoo PLA Galaxy" + ], + "OF102WKM": [ + "OrcaFilamentLibrary/Elegoo PETG PRO" + ], + "OF3GKs2i": [ + "OrcaFilamentLibrary/eSUN PLA-Matte" + ], + "OF4fgpse": [ + "OrcaFilamentLibrary/Elegoo PLA Marble" + ], + "OF79FFkO": [ + "OrcaFilamentLibrary/Elegoo PC-FR" + ], + "OF8HQmJD": [ + "OrcaFilamentLibrary/Elegoo PLA Sparkle" + ], + "OF9qvJxV": [ + "OrcaFilamentLibrary/Elegoo PLA Translucent2" + ], + "OFD5e0sH": [ + "OrcaFilamentLibrary/Elegoo Rapid PLA+" + ], + "OFDCk0cz": [ + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PETG-CF", + "Flashforge/FusRock S-Multi", + "OrcaFilamentLibrary/Generic PETG-CF" + ], + "OFDNiRTx": [ + "OrcaFilamentLibrary/Elegoo PLA+" + ], + "OFICPchn": [ + "OrcaFilamentLibrary/Elegoo PLA Basic" + ], + "OFIGHU7W": [ + "OrcaFilamentLibrary/Elegoo PETG-CF" + ], + "OFJIImD5": [ + "OrcaFilamentLibrary/Elegoo PET-CF" + ], + "OFJfx0Cl": [ + "OrcaFilamentLibrary/Generic PE-CF" + ], + "OFJsqMzx": [ + "OrcaFilamentLibrary/Generic PLA Matte" + ], "OFLSBS99": [ "OrcaFilamentLibrary/Generic SBS" ], - "OGFA00": [ - "OrcaFilamentLibrary/Bambu PLA Basic", - "OrcaFilamentLibrary/Elas PLA Basic", + "OFMCMXSG": [ + "OrcaFilamentLibrary/Generic PP-GF" + ], + "OFMQJToc": [ + "OrcaFilamentLibrary/Elegoo PETG-GF" + ], + "OFQhLoxN": [ + "OrcaFilamentLibrary/Elegoo PLA Wood" + ], + "OFQkWxJy": [ + "OrcaFilamentLibrary/Elegoo PLA Matte" + ], + "OFRS2Ggt": [ + "OrcaFilamentLibrary/Generic PP-CF" + ], + "OFT3TqB6": [ + "OrcaFilamentLibrary/Elas ASA" + ], + "OFVLuVmD": [ + "OrcaFilamentLibrary/Elegoo Rapid PETG" + ], + "OFXmQgno": [ + "OrcaFilamentLibrary/eSUN PLA-Marble" + ], + "OFZhdVnP": [ + "OrcaFilamentLibrary/eSUN PLA-Basic" + ], + "OFbgt3u3": [ + "OrcaFilamentLibrary/Elas PLA Basic" + ], + "OFenGPBR": [ + "OrcaFilamentLibrary/Elegoo PETG Translucent" + ], + "OFfB1QKi": [ + "Flashforge/Flashforge HS PETG", + "OrcaFilamentLibrary/Generic PETG HF" + ], + "OFmeQjRP": [ + "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" + ], + "OFpwg2Qh": [ + "OrcaFilamentLibrary/Elegoo ASA-CF" + ], + "OFqh1Ngp": [ + "OrcaFilamentLibrary/Elegoo PLA-CF" + ], + "OFrgQ1Ns": [ "OrcaFilamentLibrary/Elas PLA Pro" ], + "OFs6lLH7": [ + "OrcaFilamentLibrary/Elegoo PLA Silk" + ], + "OFsKqcQW": [ + "OrcaFilamentLibrary/Elegoo PLA PRO" + ], + "OFsNZcid": [ + "OrcaFilamentLibrary/PolyLite Dual PLA" + ], + "OFutwD6f": [ + "OrcaFilamentLibrary/Elegoo PLA Glow" + ], + "OFw4OHWE": [ + "OrcaFilamentLibrary/Elas PETG Basic" + ], + "OFzrWlH5": [ + "OrcaFilamentLibrary/Elegoo PETG HF" + ], + "OGFA00": [ + "OrcaFilamentLibrary/Bambu PLA Basic" + ], "OGFA01": [ "OrcaFilamentLibrary/Bambu PLA Matte" ], @@ -4655,8 +4775,7 @@ "OrcaFilamentLibrary/Bambu ABS" ], "OGFB01": [ - "OrcaFilamentLibrary/Bambu ASA", - "OrcaFilamentLibrary/Elas ASA" + "OrcaFilamentLibrary/Bambu ASA" ], "OGFB02": [ "OrcaFilamentLibrary/Bambu ASA-Aero" @@ -4696,8 +4815,7 @@ "OrcaFilamentLibrary/Generic PC" ], "OGFG00": [ - "OrcaFilamentLibrary/Bambu PETG Basic", - "OrcaFilamentLibrary/Elas PETG Basic" + "OrcaFilamentLibrary/Bambu PETG Basic" ], "OGFG01": [ "OrcaFilamentLibrary/Bambu PETG Translucent" @@ -4715,21 +4833,14 @@ "OrcaFilamentLibrary/Generic PCTG" ], "OGFG99": [ - "Flashforge/Flashforge HS PETG", - "Flashforge/Flashforge PET-CF", "Flashforge/Flashforge PETG Pro", "Flashforge/Flashforge PETG Transparent", - "Flashforge/Flashforge PETG-CF", - "Flashforge/FusRock S-Multi", - "OrcaFilamentLibrary/Generic PETG", - "OrcaFilamentLibrary/Generic PETG HF", - "OrcaFilamentLibrary/Generic PETG-CF" + "OrcaFilamentLibrary/Generic PETG" ], "OGFGG300": [ "OrcaFilamentLibrary/GreenGate3D PETG" ], "OGFL00": [ - "OrcaFilamentLibrary/PolyLite Dual PLA", "OrcaFilamentLibrary/PolyLite PLA" ], "OGFL00-1": [ @@ -4745,16 +4856,13 @@ "OrcaFilamentLibrary/eSUN PLA+" ], "OGFL04": [ - "OrcaFilamentLibrary/Overture PLA", - "OrcaFilamentLibrary/eSUN PLA-Basic" + "OrcaFilamentLibrary/Overture PLA" ], "OGFL05": [ - "OrcaFilamentLibrary/Overture Matte PLA", - "OrcaFilamentLibrary/eSUN PLA-Matte" + "OrcaFilamentLibrary/Overture Matte PLA" ], "OGFL06": [ - "OrcaFilamentLibrary/Fiberon PETG-ESD", - "OrcaFilamentLibrary/eSUN PLA-Marble" + "OrcaFilamentLibrary/Fiberon PETG-ESD" ], "OGFL50": [ "OrcaFilamentLibrary/Fiberon PA6-CF" @@ -4796,8 +4904,7 @@ "Flashforge/Flashforge PLA Galaxy", "Flashforge/Flashforge PLA Luminous", "Flashforge/Generic PLA", - "OrcaFilamentLibrary/Generic PLA", - "OrcaFilamentLibrary/Generic PLA Matte" + "OrcaFilamentLibrary/Generic PLA" ], "OGFLC99": [ "OrcaFilamentLibrary/Generic CoPE" @@ -4841,13 +4948,10 @@ "OrcaFilamentLibrary/Numakers PLA+" ], "OGFP97": [ - "OrcaFilamentLibrary/Generic PP", - "OrcaFilamentLibrary/Generic PP-CF", - "OrcaFilamentLibrary/Generic PP-GF" + "OrcaFilamentLibrary/Generic PP" ], "OGFP99": [ - "OrcaFilamentLibrary/Generic PE", - "OrcaFilamentLibrary/Generic PE-CF" + "OrcaFilamentLibrary/Generic PE" ], "OGFPM001": [ "OrcaFilamentLibrary/Panchroma PLA" From 516267d869e968744d4a52986ebdf25ccd24d557 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:06:38 +0800 Subject: [PATCH 004/164] Qidi: re-mint copy-pasted filament_ids per material family Phase 2 of the filament_id cleanup, worst vendor first (97 collision groups, the GFB99/GFG99/GFL99 copy-paste epidemic). 435 in-place filament_id edits + 5 compatible_printers trims (broader 0.2-nozzle PETG presets over-claiming Qidi Q1 Pro 0.2 nozzle, covered by dedicated variants): - The Bambu-catalog generic owners keep their ids byte-identical (Qidi Generic ABS/PETG/PLA/TPU/PA/PA-CF/PLA-CF); 6 stray members inside owner families are aligned to their family id. - 64 brand/product-line families (Bambu/HATCHBOX/Overture/PolyLite/Tinmorry, QIDI-brand lines, PLA+/High Speed/TPU-95A) get fresh deterministic mints, the same id landing in every per-series root of a family (@Q2-Series/@Q2C-Series/@X-Max 4-Series bases are multi-root families). - QD_* device-protocol ids untouched (frozen contract with QidiPrinterAgent). Verified: config-equivalence gate zero unexpected diffs (5892 presets); orca_extra_profile_check.py exit 0; assign_filament_ids.py --check exit 0; validator -l 2 exit 0; extended -f -v Qidi exit 0 (was 97 groups); -r -v Qidi exit 0 (all references still resolve). --- .../Qidi/filament/Bambu ABS @0.2 nozzle.json | 2 +- .../Qidi/filament/Bambu ABS @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu ABS @0.8 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu ABS.json | 2 +- .../Qidi/filament/Bambu PETG @0.2 nozzle.json | 5 +- .../Qidi/filament/Bambu PETG @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu PETG @0.8 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu PETG.json | 2 +- .../Qidi/filament/Bambu PLA @0.2 nozzle.json | 2 +- .../Qidi/filament/Bambu PLA @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu PLA @0.8 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu PLA.json | 2 +- .../HATCHBOX ABS @Qidi 0.2 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi 0.8 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX ABS @Qidi.json | 2 +- .../HATCHBOX PETG @Qidi 0.2 nozzle.json | 5 +- .../HATCHBOX PETG @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX PETG @Qidi 0.8 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX PETG @Qidi.json | 2 +- .../HATCHBOX PLA @Qidi 0.2 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi 0.8 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX PLA @Qidi.json | 2 +- .../Overture ABS @Qidi 0.2 nozzle.json | 2 +- .../Overture ABS @Qidi 0.6 nozzle.json | 2 +- .../Overture ABS @Qidi 0.8 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Overture ABS @Qidi.json | 2 +- .../Overture PLA @Qidi 0.2 nozzle.json | 2 +- .../Overture PLA @Qidi 0.6 nozzle.json | 2 +- .../Overture PLA @Qidi 0.8 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Overture PLA @Qidi.json | 2 +- .../PolyLite ABS @Qidi 0.2 nozzle.json | 2 +- .../PolyLite ABS @Qidi 0.6 nozzle.json | 2 +- .../PolyLite ABS @Qidi 0.8 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/PolyLite ABS @Qidi.json | 2 +- .../PolyLite PLA @Qidi 0.2 nozzle.json | 2 +- .../PolyLite PLA @Qidi 0.6 nozzle.json | 2 +- .../PolyLite PLA @Qidi 0.8 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/PolyLite PLA @Qidi.json | 2 +- .../Qidi/filament/Q2/Bambu ABS @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/Bambu PETG @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu PETG @Q2C.json | 2 +- .../Qidi/filament/Q2/Bambu PLA @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic PLA+ @Q2.json | 2 +- .../Qidi/filament/Q2/Generic PLA+ @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX ABS @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PETG @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PETG @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PLA @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/Overture ABS @Q2.json | 2 +- .../Qidi/filament/Q2/Overture ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/Overture PLA @Q2.json | 2 +- .../Qidi/filament/Q2/Overture PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/PolyLite ABS @Q2.json | 2 +- .../Qidi/filament/Q2/PolyLite ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/PolyLite PLA @Q2.json | 2 +- .../Qidi/filament/Q2/PolyLite PLA @Q2C.json | 2 +- .../QIDI ABS Odorless @0.2 nozzle.json | 2 +- .../QIDI ABS Odorless @0.6 nozzle.json | 2 +- .../QIDI ABS Odorless @0.8 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI ABS Odorless.json | 2 +- .../filament/QIDI ABS Rapido 0.2 nozzle.json | 2 +- .../filament/QIDI ABS Rapido 0.6 nozzle.json | 2 +- .../filament/QIDI ABS Rapido 0.8 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.2 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.6 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.8 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI ABS Rapido Metal.json | 2 +- .../Qidi/filament/QIDI ABS Rapido.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF10.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF25.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Max 3 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ASA.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PA-Ultra.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PA12-CF.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PAHT-CF.json | 2 +- .../filament/QIDI PAHT-GF @0.6 nozzle.json | 2 +- .../filament/QIDI PAHT-GF @0.8 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PAHT-GF.json | 2 +- ...QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PET-CF.json | 2 +- .../filament/QIDI PET-GF @0.6 nozzle.json | 2 +- .../filament/QIDI PET-GF @0.8 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PET-GF.json | 2 +- .../filament/QIDI PETG Basic @0.2 nozzle.json | 5 +- .../filament/QIDI PETG Basic @0.6 nozzle.json | 2 +- .../filament/QIDI PETG Basic @0.8 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Basic.json | 2 +- .../QIDI PETG Rapido @0.2 nozzle.json | 5 +- .../QIDI PETG Rapido @0.6 nozzle.json | 2 +- .../QIDI PETG Rapido @0.8 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Rapido.json | 2 +- .../filament/QIDI PETG Tough 0.2 nozzle.json | 2 +- .../filament/QIDI PETG Tough 0.6 nozzle.json | 2 +- .../filament/QIDI PETG Tough 0.8 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Tough.json | 2 +- .../QIDI PETG Translucent @0.2 nozzle.json | 5 +- .../QIDI PETG Translucent @0.6 nozzle.json | 2 +- .../QIDI PETG Translucent @0.8 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Translucent.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PETG-CF.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PETG-GF.json | 2 +- .../filament/QIDI PLA Basic @0.2 nozzle.json | 2 +- .../filament/QIDI PLA Basic @0.6 nozzle.json | 2 +- .../filament/QIDI PLA Basic @0.8 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Basic.json | 2 +- .../QIDI PLA Matte Basic @0.2 nozzle.json | 2 +- .../QIDI PLA Matte Basic @0.6 nozzle.json | 2 +- .../QIDI PLA Matte Basic @0.8 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Matte Basic.json | 2 +- .../filament/QIDI PLA Rapido 0.2 nozzle.json | 2 +- .../filament/QIDI PLA Rapido 0.8 nozzle.json | 2 +- .../filament/QIDI PLA Rapido @0.6 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.2 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.6 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.8 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Matte.json | 2 +- .../QIDI PLA Rapido Metal @0.2 nozzle.json | 2 +- .../QIDI PLA Rapido Metal @0.6 nozzle.json | 2 +- .../QIDI PLA Rapido Metal @0.8 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Metal.json | 2 +- .../QIDI PLA Rapido Silk @0.6 nozzle.json | 2 +- ...A Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...A Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Silk.json | 2 +- .../Qidi/filament/QIDI PLA Rapido.json | 2 +- .../filament/QIDI PLA-CF @0.6 nozzle.json | 2 +- .../filament/QIDI PLA-CF @0.8 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../filament/QIDI PPS-CF @0.6 nozzle.json | 2 +- .../filament/QIDI PPS-CF @0.8 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PPS-CF.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI Support For PAHT.json | 2 +- .../filament/QIDI Support For PET-PA.json | 2 +- ...QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI TPU-Aero.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI UltraPA-CF25.json | 2 +- .../QIDI WOOD Rapido @0.6 nozzle.json | 2 +- .../QIDI WOOD Rapido @0.8 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI WOOD Rapido.json | 2 +- ...Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...di ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../profiles/Qidi/filament/Qidi ASA-Aero.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... Generic ASA @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...eneric ASA @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic ASA.json | 2 +- ... Generic PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...i Generic PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.6 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.8 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.2 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.6 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic PLA+.json | 2 +- ...neric TPU 95A @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ric TPU 95A @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic TPU 95A.json | 2 +- ...i Generic TPU @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...Generic TPU @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi PC-ABS-FR.json | 2 +- .../profiles/Qidi/filament/Qidi PLA-CF.json | 2 +- ...di TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...di TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi TPU 95A-HF.json | 2 +- .../Qidi/filament/Tinmorry PETG-ECO.json | 2 +- .../Qidi/filament/X4/Bambu ABS @X-Max 4.json | 2 +- .../Qidi/filament/X4/Bambu PETG @X-Max 4.json | 2 +- .../Qidi/filament/X4/Bambu PLA @X-Max 4.json | 2 +- .../filament/X4/Generic PLA+ @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX ABS @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX PETG @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX PLA @X-Max 4.json | 2 +- .../filament/X4/Overture ABS @X-Max 4.json | 2 +- .../filament/X4/Overture PLA @X-Max 4.json | 2 +- .../filament/X4/PolyLite ABS @X-Max 4.json | 2 +- .../filament/X4/PolyLite PLA @X-Max 4.json | 2 +- scripts/filament_id_snapshot.json | 446 ++++++++---------- 436 files changed, 648 insertions(+), 683 deletions(-) diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json index 5a6b2f07b2..0571a6c393 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "UWRDko6WCvXczl33", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json index 1a6930ff43..ff958e904c 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "LUEO7LVrgko3oXzg", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json index 9ceb5904ff..afba292989 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "NKhfqNQIcfKQBYAK", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json index c773f1f723..e082ba832a 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "sZn12as9SQDNFDO3", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json index 1930af3ebd..4eae1e7274 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "coopc46hemdV9QIv", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json index 2560aa37f1..c918896762 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "qvYl7pfvtgF2y25O", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json index a27d0bbfb2..8679f08572 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "AzHGQIE0dGXjOhqG", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json index bddac012dc..e22ad74af9 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "CoYm8sbAVmpmJNIV", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json index f6f867f6b6..6c26b42f6e 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "FnQb4cNqORpQ3Wkq", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json index 35ed106798..0fe76e86e7 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "94qvrRFOKOACTK2g", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json index 9fd1b1d878..3383f16f49 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "ehJ163zLubzIrWzf", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS.json b/resources/profiles/Qidi/filament/Bambu ABS.json index bc8e84d0d0..8a3f3c544c 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS.json +++ b/resources/profiles/Qidi/filament/Bambu ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "aZylcH8GeCJOqtTy", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json index c1b4ec3fc1..72ca8b3942 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "cZhyWv8zbkM3fgAS", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -48,7 +48,6 @@ "compatible_printers": [ "Qidi X-Smart 3 0.2 nozzle", "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", - "Qidi Q1 Pro 0.2 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json index e97ce167f1..2baf999d10 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "PfIdpsKf0Xw5admE", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json index ca2475da91..bdb1fc0cf5 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "czi4981YiirKP6Yy", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json index 123128a303..457e514214 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "1BV8aedNHRa3h7rp", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json index 2b3f40032f..8c175a472d 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "eNHYNrSKn90P4GdZ", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json index 5c2b0ccecb..51609fb0a1 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "VU3PW2x6pfQ9Ayqo", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json index b3b16a0ef2..975dc9f5e7 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "2ezevTOIexxkTBJ2", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json index 549a7c4055..8353f29d0d 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "2vTNJwgFvUFq7oS9", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json index 63080da56e..f777567d23 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "Q5ToVl9Yb4GGoNXC", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json index 0ce417dc1d..abb934e808 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "XpLJtB1WhRyb1C75", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json index 89e531f65e..517ea571a2 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "PiYLOckPVRFKFTS6", - "filament_id": "GFB99", + "filament_id": "OF6EOy1A", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG.json b/resources/profiles/Qidi/filament/Bambu PETG.json index 70d61730fa..f3c852e3da 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG.json +++ b/resources/profiles/Qidi/filament/Bambu PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "5ZkReXpCOi19xuJg", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json index 95434aff3a..1aa1a5791f 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "xY62JrDaYjjSb3lh", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json index ea5ef9b75d..4ed7e3fde8 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "HjjvZoWwpjZ2gwDO", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json index 3d978affa5..20a1f209d5 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "5dZqeodmshu33k4e", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json index 5d51f1eafc..9eb008e6e3 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "6kHEv9BjLlJi4E9T", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json index 9451f422a2..670a0dd494 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "G28Bah0iOaahWlPE", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json index 3e93b99515..c480153803 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "ioH4lDHLbCw65TIg", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json index 02f5bab7f6..a3364d6f1e 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "oAUHAhSZkmCjhJEP", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json index 9677e7fa31..1a5492b842 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "mT6I8HUJsMgYCjb4", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json index d9a8aa89ab..38bee01574 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "5sr5ABQQzrYFUxtk", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json index c2611c3679..46f76ed5ee 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "CNzhUsHWT2FOW2Qe", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json index dc770d61eb..97c9d86fa6 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "8Mosuf8MExl0g3Tz", - "filament_id": "GFB99", + "filament_id": "OF2UFmOo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA.json b/resources/profiles/Qidi/filament/Bambu PLA.json index ebdf2423d6..f4df7bb875 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA.json +++ b/resources/profiles/Qidi/filament/Bambu PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "lweaPojzNVU2FJnO", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json index 37749f7ca1..a91921bf7d 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "QASmOwd2vpLRwI9I", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json index 7aea599422..d222581868 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "FETCvNKTRyxJujEs", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json index 2a465f6e24..25a52df29a 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "ywzSdHmCxIwmIFVS", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json index b5c25a1bce..3d1b1b018d 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "EwhasEiqLRcN5gBN", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json index 4a0b67f0a0..0548ad7b80 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "0NVX3dTScYTIebm3", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json index 2c8d4bc22d..efbc5367cf 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "HCU0TmDPYF39Gc3X", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json index 62bb876608..07e2b9020a 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "Pf6oZn5QrYSbJhdm", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json index b6f03502b3..be04669935 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "6LSdExBaTT0Mc3rY", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json index a4ebcb6a7b..338327a6f4 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "vc2R90RYyDuY8vQn", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json index 1d4d13d416..0e0929a26e 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "1HVRVgHeXWVj3T0v", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json index b16ce365f8..9a77e829eb 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "aJxjGxHK8UJOqYPV", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json index 5e4fd7cf10..a10c29a679 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "0fchNQsqRqwI6whN", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json index ffb2cc0e34..0fd49f7b99 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "Cw3CaLrsjVfJKoWI", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -48,7 +48,6 @@ "compatible_printers": [ "Qidi X-Smart 3 0.2 nozzle", "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", - "Qidi Q1 Pro 0.2 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json index e6b90b25f2..d907869893 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "eLmXN4kJvaoq5Ude", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json index 6a763393a7..30c74b3628 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "mndT3gxOniftGEEZ", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json index 8e0f9576fb..dc93652d10 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "L8aHH2WqnlOYuyfd", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json index cf9da5b3c1..6d403ed166 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "LMva5CR9m19UAhcI", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json index 400f38d7fa..1e60285f5c 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "5EfWTFx0dXRTREkj", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json index 44b77623c6..9463655aed 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "xeu1S6h53DRVM9Pw", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json index 0b09a46b90..90fdab75cf 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "UrZzA62PJDuvo9EC", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json index 696fddb2d8..c9f19b8bbe 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "jAykaomjQ4BS9Cg0", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json index c0203d9268..74c9c5645e 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "2QrBYfeT0mp048aY", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json index aee2e475e2..a404adcc52 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "9otX3aWO4xQA72DT", - "filament_id": "GFB99", + "filament_id": "OFAnyzjN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json index 240181288d..2d9a104b6a 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "dqHKVy4ahTjpQFOJ", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json index 679eb2b2f1..94399a5e99 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "GrYmKcX6ghgUO8z0", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json index b891604161..a3f934d4a3 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "Fwd0BaBVmg2w9oBo", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json index af0f830e19..c7c48eafaf 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "OjSAPfXD7c9LpDZI", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json index 8c0315ecd1..3e4260f01e 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "tNk1yBoRzuKtWamt", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json index 865f120bcb..2ba5095a7f 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "oULA9qVGUD5izX9o", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json index 956fa88d62..baacdde075 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "RK1LyCal04XMqidp", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json index 535b07b9b0..444d1e7ec5 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "6ehhHeFIMe3KxHA1", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json index c6a9a6564a..781709ec0e 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "i3bQYXjlGipOAop7", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json index 60b9f5318c..0b7c393c5e 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "vknSksUeSeKFl8vB", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json index 89ffc6501a..bbfc813ac4 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "I5NFFjIYcoo3SkmC", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json index 6e28cd923e..0a698394bc 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "gzDFMFaDnAVuDy3B", - "filament_id": "GFB99", + "filament_id": "OFiJYDPC", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json index ee79175e43..54077f69b3 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "jWtANauqr4Azj7fo", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json index 3fb6ca6406..616249f7fb 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "PVJaNrzYRoafHb3k", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json index 403311644b..c442a6b9b4 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "6dP4f482dvR9Ihhu", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json index 5d43601751..438527e84e 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "ol1pj7wlmGJlZHbA", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json index aa2cc8787c..dcc67c9e49 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "d9bOxYmwJJ928QUm", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json index 451a97354e..aa27b3bf99 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "3vOLIQxScIoHCUDQ", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json index 161cee6e4c..693927e275 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "ninsIRmjQReutXjA", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json index e5e9652619..2c50318e80 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "m4sql22MWPed4UK9", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json index c6d97b1e42..e2e657e67d 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "SbIhXnMLo7UWLdmF", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json index ca632cb252..310f56f725 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "Hh22vTpUyqF09bma", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json index 4419ba6577..0b41ec4fcf 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "10PSPCpiTcS92auy", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json index f203d3f536..ac1a6dd3f6 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "Xevn2nrx7W5VQX6z", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json index 0ae10f9086..9f8543d169 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "rRuO94f0PYlPR3yu", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json index 028e0adeb3..801448598f 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "YnRI4rYCHDIi7Q0w", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "true", "pressure_advance": [ "0.057" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json index f6989b46b5..4875cb845d 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "Jizherw9T9l0X76l", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json index c15b896bde..4a75b36230 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "dHlHvcm2BjzlfUSk", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json index ad955edaeb..04bc00470b 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "3jqdiWNWro7yFptW", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json index 9e4bad8df8..0921c9b6e8 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "tARHr87BkRknTQJI", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json index ae956faf9b..c888887711 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "EEIdQ4XTkpQyRz3h", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json index c961b4b4d1..53a2a25920 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "NBbNF6S5sQYIiS9T", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json index 299c10c9b0..9dbd2f38a6 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "gk2D7WKoLK1xPqLC", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json index 3beb0aba29..a83fb80140 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "wtl6yNqJQUVhiBnB", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json index dc866429d0..829d5e6e29 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "1fl42MjkwXbpjJ3r", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json index c87feb65e4..68736ba4c9 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "vxGQSWw07PXnllwO", - "filament_id": "GFB99", + "filament_id": "OFC2FSsV", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json index f298c1f233..5a67c65ecc 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "XXJ4dSi48JuA54Iv", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json index 24c3e1cf0e..7072ae9048 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "5rbxArwT1VV5BOSq", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json index 13684caa4b..12b6451671 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "EqpfLGTZXcdjm5BM", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json index 8112c07176..631237f251 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "Ao01rvVFfkWlwpER", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json index c4a4120209..2002832792 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "dfni3lzB8GJldfQD", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json index 6abfb386db..e589839cac 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "iWq2EddKO6QAUJuG", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json index ba69bacdab..0add34cd62 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "0EswisPwFjFmk1GT", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json index 1b0506e8dc..2a22e88081 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "t3DcJuJsNgXKW0dP", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json index 51c39b2aba..b1fcc53a1a 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "Ino4r7XLgTCFh4YR", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json index 1f53c30903..5d02632d1f 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "7NXI13ejzocjD7TO", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json index 4bcdb6bcef..62f530081c 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "QEJ9knURmXAGsFib", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json index 8aa1c764f4..2874e9ed51 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "GzEXQzyKqqnCVUBh", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json index ef68eb12e1..749d87e959 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "Q9QYOF2UmsrK7Wof", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json index a52b240410..d1fe71dbea 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "uXrENPoTa7HWapCV", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "true", "pressure_advance": [ "0.057" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json index f18131f02b..0de4f9ec71 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "XnU3X7A7kdRrfoTX", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json index 93bcd56559..12f56a5826 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "Q6H3JzOum8GYVRF9", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json index 4ef9af4534..563fdaf639 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "tSR6NKHk3ietpsga", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json index 77d10b9be3..5cab6e5d2d 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "ZF5is6IpP0gGcqRE", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json index 1559c6d369..6f293d396b 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "bAqfoS751xDFHubU", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json index 6837abbfb2..19d9c490cd 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "2rWOMrYc40ZRNLQi", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json index eabb962095..16e34885c6 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "4x8HlY906khbFsG0", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json index b4c8988c1d..95b33c700a 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "87QXnh5kCuQoPwjr", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json index 6a0d9383f8..43d6ebbe3b 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "WsMzyALZrDylCkZ6", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json index 5d5cb7bf93..01f23b61ee 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "sHVHjhH9FzhRjeHT", - "filament_id": "GFB99", + "filament_id": "OFceJcLf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json index b84cf7bfb4..a7c49a98f8 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Kg6WHLbWxKAE8cCr", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json index e2d1d05e99..6d1f651941 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json index dfb6609b1c..a66e95159e 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json index d1898e4363..56c8f26888 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json index 6a28da194b..61537e05c5 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json index 1277eab3e3..fbbbe3bcf0 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json index b1f2cdde9f..6e72108961 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json index 47107a8614..f3e45975a9 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFfdxQok", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json index 83d77e0781..48422dbf2c 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFfdxQok", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json index c55ccaa1a9..99b96f7788 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json index 81736dcccf..df0c4c9006 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json index 10f557a994..73d7e901ab 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json index fd739c1779..013e38199f 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json index 880ecddb29..aeba01311c 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json index 4af2d4f816..40ac36e3dd 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json index 5c2067f362..ff0b89b0ec 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json @@ -3,7 +3,7 @@ "name": "Overture ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json index a6639b3999..b271d4f87f 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "Overture ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json index 2dbdffd469..8435661492 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json @@ -3,7 +3,7 @@ "name": "Overture PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json index 986e906c0c..cc358bbb31 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "Overture PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json index b1af2354b5..fe2cf1e7f0 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json index 6d6c27b6b1..69747075c6 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json index be89bf9696..b342506185 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json index c42c4aee25..c8cc9c7f1d 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json index 9340c8b402..f01f3e4d80 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Z0J9YPS8382vLms4", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json index 651828c165..b6f87914d3 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "SA5qLMqlZg0lBV9u", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json index 951ebcacd6..397e9d9c2d 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "MzM45pddZsnN8jk4", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json index c59b3a85ee..00ffd121ef 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Tq1aLmF5jT1fx5mZ", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json index e68e7cf3fa..d03e15c72b 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "1hhkoG2E1z6ya5hY", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "during_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json index 395f1dc934..0661266966 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Vr1wXzAo5OR2PASA", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json index 5416a7b580..36ddd1819a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "OCg8c9SWQrZP0SrH", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json index ac47e75f00..dffcec3561 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "3fkdGYKFpaJ8yjwg", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json index b0467052ef..eac761c62b 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Tkh7jC3ZhD7qchMF", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json index e259f79655..6b0c61276a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "wOJOXhIjWFMUvDsB", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json index b3b3c6007f..dec090494e 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "WqbBySroQTCBWMoz", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json index 9b2cc8c8fd..7803db110f 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "5GyjZE2Ukzo3BDdg", - "filament_id": "GFB99", + "filament_id": "OFVhG0yM", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json index eda2713729..f04485915c 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "CeOohxHZCLelVMCk", - "filament_id": "GFB99", + "filament_id": "OFeybQvK", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json index 96ad8b214c..fd6e7b8c76 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "VzAotqGZviabVuS4", - "filament_id": "GFB99", + "filament_id": "OFnj7bPm", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json index 7678378711..2ec48424c2 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "1hpYHzEDBeO8jwDr", - "filament_id": "GFB99", + "filament_id": "OF8WvPVL", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json index 606a4e781d..8beeba8c54 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "2ZB4CZPo7OnsVeFj", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json index 51d96df33d..e09f33c2ec 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "ANlmZnKFevlds1x9", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json index 832ace793f..404c73f209 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "qGAb3jPiiSZqPc0W", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json index 939c2fc5bd..93b6a852f7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "zPlNGjze5nz0Sqtn", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json index a57fa1b64f..e28f719297 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "L6hmbX1bqdrGd9g2", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json index c05f92c7f4..db9b53d8b5 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "ZKLPQIUecFL5GG2P", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json index a4838feb1d..4b76aea4a6 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "OlI3NRTSS4Vb9ABn", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json index f02644b876..2224bcf267 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "7AXe36Wqh6uupouS", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json index 552acb8b6e..da948783fc 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "CQa9Ke6ku0jK7juR", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json index 695dfa0702..496f544403 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "KBXExHIJGyOE02sr", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json index b3f2dbf64d..a22da32e00 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "QjDN8l4fq8nrEtZS", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json index b7e9c56d7e..6206964150 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "83M8HRLtzoEyAgdd", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json index cd38da2783..3d47382873 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "JWNlbq8qmrVoCjJZ", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "during_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json index 2cfbfdf4de..31ebb14e56 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "igcuTXhdFT9QEkki", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json index ee01bbbb30..fdfe9154a8 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "Rci7D9y258kLZl3F", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json index 98b64f2e92..3106c593b8 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "LClDGDpaf5l4XinA", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json index 71c73d5a26..5a187f9ed2 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "TbTSNtElyeqwuhI2", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json index a3bde06612..df8ac29f1a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "lRSAQSUdgEOvrWOZ", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json index fa0b2629ec..af46a4fc45 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "sV1XN1EnDMTMC6eZ", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json index b3b7260b51..3cee143732 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "EcvWsnEhikUy64mA", - "filament_id": "GFB99", + "filament_id": "OFToBodi", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json index 75518e19d5..08a58dc6dc 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "sru9yX08jyTVNmOz", - "filament_id": "GFB99", + "filament_id": "OFW8UdlP", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json index ddcb0ad389..17ef67f639 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "BG8J7FyU5Sn6pmGk", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json index 5a8cd10de2..491e1f4660 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "87bAUrovoG3W1WZK", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json index 7714206d33..e5e82a99df 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "v0K7uK7rq54uGbrE", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json index 8aba17e819..174bccce8e 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "OD1YZ5gmmk39jI21", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json index af4a24396d..b22eb5c8b5 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "QzCAZozPOpv3IOzz", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json index ab0972598b..32e6766cda 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "fvB8ilSXksTr2ahl", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF.json b/resources/profiles/Qidi/filament/QIDI ABS-GF.json index a6d53698c7..d7f24f36c2 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "FW543AnWfRtseB8W", - "filament_id": "GFB99", + "filament_id": "OFYH00jV", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json index 4e532d3a34..a99a9522de 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "uskWZUmvzYkVgG0l", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json index 464b555e28..cfe8ea1bf0 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "9laiuOlfZEWIjQ3u", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json index 92b8fbb036..eb4bbfa171 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "Jh3kEQrLdoGw4WLW", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json index 863ace51a5..ae910ae9d5 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "3tblNpw8VgOlt8VU", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json index e22b325113..3009f9db4d 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "tssoWES4nOoMEh90", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json index 64b7fd6f57..b5aad08653 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "cgzmqzFT32UhNW5Q", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10.json index bffe8b53c8..ffac088449 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "hxsu8XybSxfesTJf", - "filament_id": "GFB99", + "filament_id": "OFQZINrX", "instantiation": "true", "filament_type": [ "ABS-GF" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json index 1d88686ecc..8287d0aa7b 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "Do5JLiLyzue036L8", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json index df3f122417..ffb51be952 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "hTEx7UgX2wWanON5", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json index 2c99858ffa..6fb67b1002 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "shInwFwd1Yh5wUJB", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json index dcdb75359c..e4980df547 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "LQoXGFsJRpjCTBKm", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json index 43b86fdab1..aab8dc01c3 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "5ONV5cuwTbSMWPMf", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json index 8f090308d5..3b809bdd69 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "nvfnoGOwhELWArss", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25.json index 67eac5a65f..097f336bb3 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "mFWkL9nlS289XAWu", - "filament_id": "GFB99", + "filament_id": "OFv2NHLC", "instantiation": "true", "filament_type": [ "ABS-GF" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json index 1f61623cb0..3bdd268e3c 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "JPrwCFLO4P82f5lz", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json index fed39958bf..074ac486c0 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "zku756j16aST1ugn", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json index 5dd51ba6e3..ee4d8c3eac 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "EcewU7mP5y2vDwRn", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json index 4595c5cb56..7388eaf99b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "JPCSXfcIngQGTuOz", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json index 53d965df8f..1939e7b3e3 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "hhkWOEdIbQrB4IR0", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json index bf52b6954e..98cbe34d45 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "QiV5OREyiy9cb2yA", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json index 8fa1de7e85..7815a1ae6e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "yOWilrQPhpvcpWM4", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "chamber_temperature": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json index 3c259e858a..eeceeb147e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "tohpo42HW9BLvVcH", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json index 33505ecf75..fcf20cb643 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "iDF5lahr0TRvLF8F", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json index ace413d4d2..0aa3d22f7e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "p371tUSbBj3WOi5M", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json index 8d1bb937b1..78599691d3 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "4NUwEIv3156HKgev", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json index d7fa79e31b..0a7af77d4e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "UZg7s2SVhCGDcdkA", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json index 4f166dfd1a..5b956ce37b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "x8avbSHn73PayVfR", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json index 7df6c822af..15bc124407 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "FagCR4bLL1ctSXax", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json index 33af36c33b..65d8322f3a 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "T6U1oaEsA0T3ogMM", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json index c549a01bb3..cce1651f85 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "8Xm0AjRaktaNfo4o", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json index c62d7926f9..68c1c975f1 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "4p12RphItNlfwqwT", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json index ef993b3193..be3b32c6ac 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "346HiaeZvs3BoFUb", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json index d768ca7ab5..7ddeb6a70f 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "LROz60JZsh6GN7CK", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json index 8eb7f15885..ef9e6a0fe1 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "5OR8LnFPipv3h4h8", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json index e3d8e010cd..57b4dce412 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "wyns97Rn3EVTl0v5", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json index 20348ce7cf..4f55fa7c84 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "zituWsHG83yRR1lM", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json index ea8120a8d6..b18a387305 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "2CgI1u8NrWGqxN1C", - "filament_id": "GFB99", + "filament_id": "OFmF1xL9", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA.json b/resources/profiles/Qidi/filament/QIDI ASA.json index bfd6c00df7..c69ce99c06 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA.json +++ b/resources/profiles/Qidi/filament/QIDI ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "v2LrEujF68PPbrux", - "filament_id": "GFB99", + "filament_id": "OFK820gS", "instantiation": "true", "filament_type": [ "ASA" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json index 04cc184d19..66de4a49b6 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "rDi5X7jq3PrXGeSo", - "filament_id": "GFB99", + "filament_id": "OFXkwkn6", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json index 12696f5c4a..4298dd4ea5 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "tF0ym95Eo2WVjYrv", - "filament_id": "GFB99", + "filament_id": "OFXkwkn6", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json index 3bde720ab2..ebe1f68c1f 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "bWc3l0t1llvWvFei", - "filament_id": "GFB99", + "filament_id": "OFXkwkn6", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json index a57e564ca4..7cfd1faafa 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Rp1vbScHgwAZAwNT", - "filament_id": "GFN99", + "filament_id": "OFXkwkn6", "instantiation": "true", "filament_type": [ "UltraPA" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json index 4c287235ef..087691ba31 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "Q3votaRX4HuxZl1j", - "filament_id": "GFB99", + "filament_id": "OFFIL5pD", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json index 6b57b653e1..382b51b6f3 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "aaAKfscwITCW1cIY", - "filament_id": "GFB99", + "filament_id": "OFFIL5pD", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json index ba8250d7b8..ea996d2a71 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "nsFoTEFnTCbVM5VS", - "filament_id": "GFB99", + "filament_id": "OFFIL5pD", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF.json b/resources/profiles/Qidi/filament/QIDI PA12-CF.json index 7276593388..f559526129 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "tDdg0DlqE4Nle5Xo", - "filament_id": "GFN98", + "filament_id": "OFFIL5pD", "instantiation": "true", "filament_type": [ "PA12-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json index 483308828c..e54c5f53e9 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "wBwy10qTZT9LPkX7", - "filament_id": "GFB99", + "filament_id": "OFUkpobY", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json index 559d626e6a..8e9dfc5b7d 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "a7pcw1dTC3bXjkqQ", - "filament_id": "GFB99", + "filament_id": "OFUkpobY", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json index a70309e85a..c74c3b9054 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "pRBh7YZdJFYv4rED", - "filament_id": "GFB99", + "filament_id": "OFUkpobY", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json index 62533cfa49..bb1296382a 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Hws8EIuQkAfaCJGk", - "filament_id": "GFN98", + "filament_id": "OFUkpobY", "instantiation": "true", "filament_type": [ "PAHT-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json index ea7f2a65c6..3c457fe294 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "jRV6kS5c49Jf0IBJ", - "filament_id": "GFL98", + "filament_id": "OFfJoIgg", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json index 4496ed57ea..bf0a862d3c 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "ic09uwyOjmjgZhCY", - "filament_id": "GFL98", + "filament_id": "OFfJoIgg", "instantiation": "true", "pressure_advance": [ "0.023" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json index 3202c6fce1..6f1402814b 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "BGwcBuMu2dcF1nGB", - "filament_id": "GFB99", + "filament_id": "OFfJoIgg", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json index 35daa7f005..08081a83b8 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "R8msB42rgbyfT0sG", - "filament_id": "GFB99", + "filament_id": "OFfJoIgg", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json index 5c2461e535..ed19eb439b 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "D1nnJWlyUV0wvZnz", - "filament_id": "GFB99", + "filament_id": "OFfJoIgg", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json index 1ca4105b5b..676d2575b1 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "A6BaDz936RbO2EW1", - "filament_id": "GFN98", + "filament_id": "OFfJoIgg", "instantiation": "true", "filament_type": [ "PAHT-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json index 8ef70475b3..60d2eaf677 100644 --- a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI PEBA 95A", "setting_id": "VNbCsg7HAvK02shi", - "filament_id": "GFB99", + "filament_id": "OFUJw3Lx", "instantiation": "true", "filament_settings_id": [ "QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json index 153b1c8543..e25178269b 100644 --- a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI PEBA 95A", "setting_id": "SBJaM8xcxmruL8Sx", - "filament_id": "GFB99", + "filament_id": "OFUJw3Lx", "instantiation": "true", "filament_settings_id": [ "QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json index fe24beddf7..2dc2cc8a50 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "sPox9vMaLAuoZoP2", - "filament_id": "GFB99", + "filament_id": "OF4gzzE4", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json index beaa69e235..55e899aafb 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "6BLOwVDtDPvTqanQ", - "filament_id": "GFB99", + "filament_id": "OF4gzzE4", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json index 38ba31b9c2..3c9732f139 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "znZt3ns7eHGTA3sX", - "filament_id": "GFB99", + "filament_id": "OF4gzzE4", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF.json b/resources/profiles/Qidi/filament/QIDI PET-CF.json index 561c9f0929..b5a58b236b 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "X4zXjt7t9eLbESzJ", - "filament_id": "GFN98", + "filament_id": "OF4gzzE4", "instantiation": "true", "filament_type": [ "PET-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json index 400337fbd8..a69ba467d9 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "N9zX7M4yR8u5Jqjd", - "filament_id": "GFB99", + "filament_id": "OF3XeEuV", "instantiation": "true", "filament_settings_id": [ "QIDI PET-GF @0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json index f87c252aa5..626098b09e 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "ATyJ8qPoYVqi7J3I", - "filament_id": "GFB99", + "filament_id": "OF3XeEuV", "instantiation": "true", "filament_settings_id": [ "QIDI PET-GF @0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json index d5e51c6102..b212549902 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "I48bgbR8Rq9DDxmR", - "filament_id": "GFB99", + "filament_id": "OF3XeEuV", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json index ac877dc6ca..87e6b3b785 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "hGLyYZ2WBTIFnWnc", - "filament_id": "GFB99", + "filament_id": "OF3XeEuV", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json index 4554a3b574..5b372cda6a 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "XC3F1NLZxw1v5Bh3", - "filament_id": "GFB99", + "filament_id": "OF3XeEuV", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF.json b/resources/profiles/Qidi/filament/QIDI PET-GF.json index 444747342d..78a901cbe1 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "nXZR8ykt6JdxvTCd", - "filament_id": "GFN98", + "filament_id": "OF3XeEuV", "instantiation": "true", "filament_type": [ "PET-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json index 9aa6df6a65..d66f38f8fd 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "U8Tz8l63gQMoW1TR", - "filament_id": "GFG99", + "filament_id": "OFSSuKRr", "instantiation": "true", "pressure_advance": [ "0.04" @@ -15,7 +15,6 @@ "compatible_printers": [ "Qidi X-Smart 3 0.2 nozzle", "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", - "Qidi Q1 Pro 0.2 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json index 5cc5b51fd3..56206c0269 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "i5DnDzOFFFsd4ear", - "filament_id": "GFG99", + "filament_id": "OFSSuKRr", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json index a4844774cc..101e2d8d16 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "eqwWKpJur2oPzaig", - "filament_id": "GFG99", + "filament_id": "OFSSuKRr", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json index 1c7fb7e0d3..c6c692eb41 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "ZwdzHcsJbYBI04Yn", - "filament_id": "GFB99", + "filament_id": "OFSSuKRr", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json index dbf88b47cc..99f2f1c94e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "wYE4aUeszHw1HJrZ", - "filament_id": "GFB99", + "filament_id": "OFSSuKRr", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json index ae41acdb9e..21a359c65a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "SbHnONYlR2WneAjS", - "filament_id": "GFB99", + "filament_id": "OFSSuKRr", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json index 0880da2bef..b80993fba6 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "EQrNIdbODkHki7pY", - "filament_id": "GFB99", + "filament_id": "OFSSuKRr", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic.json b/resources/profiles/Qidi/filament/QIDI PETG Basic.json index 1899fa6b7c..a855dd785d 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "7uiFWB9SSJvhXKt0", - "filament_id": "GFG99", + "filament_id": "OFSSuKRr", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json index d925f371b2..b44faa2e7f 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "17nQzSvxOhC8RqMv", - "filament_id": "GFG99", + "filament_id": "OFbS9rjH", "instantiation": "true", "pressure_advance": [ "0.04" @@ -15,7 +15,6 @@ "compatible_printers": [ "Qidi X-Smart 3 0.2 nozzle", "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", - "Qidi Q1 Pro 0.2 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json index e1636c5d4a..75adc4d4d3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "TJja29CvUqlXnhWM", - "filament_id": "GFG99", + "filament_id": "OFbS9rjH", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json index ad4044f181..9e965e2753 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "6rVVNiYVHxsxqk0M", - "filament_id": "GFG99", + "filament_id": "OFbS9rjH", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json index 3aff0af94f..503cf229aa 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "MoKlaB96ptTjnoa8", - "filament_id": "GFB99", + "filament_id": "OFbS9rjH", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json index 45ba611152..ae7376700e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "S2CUnrPuZuvBo19K", - "filament_id": "GFB99", + "filament_id": "OFbS9rjH", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json index 8f72cf31ed..d4b7e161e1 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "kEUCaWmAo3xZC09A", - "filament_id": "GFB99", + "filament_id": "OFbS9rjH", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json index bf500050a6..066270e96a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "4Tse2Ycxud3qX0aQ", - "filament_id": "GFB99", + "filament_id": "OFbS9rjH", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido.json index 67d19f82a2..7097f784d3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "YK77S7a06UMEQzum", - "filament_id": "GFG99", + "filament_id": "OFbS9rjH", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json index 0dfd072089..856a8f8b32 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "wl53hiPD7EGYabrt", - "filament_id": "GFG99", + "filament_id": "OFWkCAdc", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json index 2f5838b537..ebd4cb47e9 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "QUkztHAxlI1gg1xe", - "filament_id": "GFG99", + "filament_id": "OFqPp2yL", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json index 68706bbe3c..ebfeb1a3a6 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "vtQb2QBD5ongR7vC", - "filament_id": "GFG99", + "filament_id": "OF48G7He", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json index 26589c581e..31e4a0a837 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "KHeb2TVAxtw6fbRm", - "filament_id": "GFB99", + "filament_id": "OF1Zypyy", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json index 5317b9f51d..54ad4f4fe1 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "22HUqZbuYgOGNRfN", - "filament_id": "GFB99", + "filament_id": "OF1Zypyy", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json index f32ca31314..1563a33564 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "U35fhYtgLMsDXEws", - "filament_id": "GFB99", + "filament_id": "OF1Zypyy", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json index 2a524dda6a..fdf754efcc 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "wqzUWt3IiEURFRYL", - "filament_id": "GFB99", + "filament_id": "OF1Zypyy", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough.json b/resources/profiles/Qidi/filament/QIDI PETG Tough.json index a9193be4b4..81eeb5a641 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SrZXxBXWXda9boGv", - "filament_id": "GFG99", + "filament_id": "OF1Zypyy", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json index 126d86f7bb..4b0c2a6818 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "I8DmnTJey0BaBBAN", - "filament_id": "GFG99", + "filament_id": "OFjohFkg", "instantiation": "true", "pressure_advance": [ "0.04" @@ -15,7 +15,6 @@ "compatible_printers": [ "Qidi X-Smart 3 0.2 nozzle", "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", - "Qidi Q1 Pro 0.2 nozzle" + "Qidi X-Max 3 0.2 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json index 79d558d34f..cee560227e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "0SbgoW822S43QDoX", - "filament_id": "GFG99", + "filament_id": "OFjohFkg", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json index 02e4793b34..591ef0fedf 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "rOakaeWOHKz9immU", - "filament_id": "GFG99", + "filament_id": "OFjohFkg", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json index 2926cfa7d4..5a4d4bd206 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "RBy7wrl1ZQOdKe8i", - "filament_id": "GFB99", + "filament_id": "OFjohFkg", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json index 23ed635640..6b32f51dfa 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "Y0jCXY0Ihd6eRlm4", - "filament_id": "GFB99", + "filament_id": "OFjohFkg", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json index b2397ddb33..6dccf959e3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "9yzSrCFgR00Lx8Ab", - "filament_id": "GFB99", + "filament_id": "OFjohFkg", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json index 8c86c18134..86548c4867 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "uMHHs1N1fLMq56FF", - "filament_id": "GFB99", + "filament_id": "OFjohFkg", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent.json index a7e1a3f943..60a750367f 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "5k6FnlL39pSbrei2", - "filament_id": "GFG99", + "filament_id": "OFjohFkg", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json index 15e4f9f4c6..dd8dee64fe 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "6EOvD75tBRyvffZF", - "filament_id": "GFB99", + "filament_id": "OFPokkKe", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json index 06118ac128..83f504fff5 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "ByHCLDgv1HFiA1Bb", - "filament_id": "GFB99", + "filament_id": "OFPokkKe", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json index aff00a2a31..bf3b1e5515 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "NBrZJME5Jt7jwU4W", - "filament_id": "GFB99", + "filament_id": "OFPokkKe", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF.json b/resources/profiles/Qidi/filament/QIDI PETG-CF.json index 734b4722ca..23bafc4875 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "vg3YJMhVaXTMTVLJ", - "filament_id": "GFN98", + "filament_id": "OFPokkKe", "instantiation": "true", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json index c6635252e2..802656c1e1 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "4kBE3NMTit44g7S1", - "filament_id": "GFB99", + "filament_id": "OF0Y5MLd", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json index 753888565d..582fe9675b 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "SzH90qDpFuNpG7Ud", - "filament_id": "GFB99", + "filament_id": "OF0Y5MLd", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json index ff22c08ab9..4ba14fed71 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "9XoDC8DHvxvgrRor", - "filament_id": "GFB99", + "filament_id": "OF0Y5MLd", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF.json b/resources/profiles/Qidi/filament/QIDI PETG-GF.json index 060219b0b0..1b8ada25c9 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "bex5zSdkQThZQi0s", - "filament_id": "GFN98", + "filament_id": "OF0Y5MLd", "instantiation": "true", "filament_type": [ "PETG-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json index 52c98be3a0..31134c4e2c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "hWJXKDKNjeBqYYFk", - "filament_id": "GFL99", + "filament_id": "OFN0X7oN", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json index ab3cc9c974..d7bd4eaf46 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "LMfV673NzArmzY44", - "filament_id": "GFL99", + "filament_id": "OFN0X7oN", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json index 0dc39007eb..9b578ef512 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "CyXcxvEKE6gnCRm9", - "filament_id": "GFL99", + "filament_id": "OFN0X7oN", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json index 449e7e207a..560db51ea0 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "g7OVjk2xNWWNQo9D", - "filament_id": "GFB99", + "filament_id": "OFN0X7oN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json index c2f7dab865..0d21566770 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "EdgtTQVIiPatR9Rt", - "filament_id": "GFB99", + "filament_id": "OFN0X7oN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json index ade21c62a6..2e05ec1a09 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "UTbL94nFN0Cx30p6", - "filament_id": "GFB99", + "filament_id": "OFN0X7oN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json index 5648eb9fd5..f8f7dc88d9 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "INxFTcta59v2Ukpy", - "filament_id": "GFB99", + "filament_id": "OFN0X7oN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic.json b/resources/profiles/Qidi/filament/QIDI PLA Basic.json index c5e219dd3f..2c15693ba5 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "UlF92qvJnOYzq0mw", - "filament_id": "GFL99", + "filament_id": "OFN0X7oN", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json index 25eeab9475..763557b382 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "vzT3dsogzkZSegM0", - "filament_id": "GFL99", + "filament_id": "OFvN3117", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json index bbea662f87..d283df5e97 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "rdGuWICdcIZ3fXJb", - "filament_id": "GFL99", + "filament_id": "OFvN3117", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json index 6418a8fa5e..56d1503e8a 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "9z0BoiNtKlwPoCI4", - "filament_id": "GFL99", + "filament_id": "OFvN3117", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json index 86b7154e88..9de765cf78 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "Txg82qpCGVco78Ih", - "filament_id": "GFB99", + "filament_id": "OFvN3117", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json index 9097ca2c19..774922475b 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "smHGcdmpWzQy1vW3", - "filament_id": "GFB99", + "filament_id": "OFvN3117", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json index 69f09b85ca..54753b4f40 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "hGKQJNUIQR0srofE", - "filament_id": "GFB99", + "filament_id": "OFvN3117", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json index f945029342..dd25635276 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "kARyA9JRV7f6Wu3E", - "filament_id": "GFB99", + "filament_id": "OFvN3117", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json index 6204fd0d38..c75d42b5a4 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "53yYF0gK91AQcKAy", - "filament_id": "GFL99", + "filament_id": "OFvN3117", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json index c316f431a1..d02d87ea5d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "jpTA43XolFvODs9f", - "filament_id": "GFL99", + "filament_id": "OFXNO5Of", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json index 42556d2f6b..45906c1b51 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "MGW0kfdHATaAzL1P", - "filament_id": "GFL99", + "filament_id": "OFs1CbB1", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json index 93f8b8b239..c2216596e8 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "eQOfNVt6OqCFj0bV", - "filament_id": "GFL99", + "filament_id": "OFmKNi3f", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json index f72a01ceda..3bdb9bec64 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "tdL1kK6jLbREgYna", - "filament_id": "GFB99", + "filament_id": "OFmKNi3f", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json index 05e66e91b6..ac6a619cb8 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "zfL5B7iAlx3PbJ1j", - "filament_id": "GFB99", + "filament_id": "OFmKNi3f", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json index 29f2a5e350..48f74dc047 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "oZZn5VxcrwDJX9fE", - "filament_id": "GFB99", + "filament_id": "OFmKNi3f", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json index 9aedb1f214..198ef80000 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "o1lfFStVDZMsdFtr", - "filament_id": "GFB99", + "filament_id": "OFmKNi3f", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json index 0392403caf..c143b656d7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "HK2fT6TYIIS94MZD", - "filament_id": "GFL99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json index 34bcfbab7b..a1b519af08 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "User", "setting_id": "syivJeR1eO6H8wsK", - "filament_id": "GFL99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json index 8e168e3347..ea13d3583e 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "User", "setting_id": "WC8KpzKwpQcHOStJ", - "filament_id": "GFL99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json index 8cef6a51f9..c546a5d00a 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "RccxOqWrkZljiU5Y", - "filament_id": "GFB99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json index 8a6e89f667..77dd1451c2 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "8KV7AfivVZHM6ReD", - "filament_id": "GFB99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json index 648c46e717..c2cb8532be 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "c5lFoguRq8sBwQ1K", - "filament_id": "GFB99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json index 3cb87903ff..8b96e4a264 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "95NdLwU31HQJthJE", - "filament_id": "GFB99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json index 0794ea2af4..cdd0173131 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "gwmsxvv6cpmVlBDa", - "filament_id": "GFL99", + "filament_id": "OFAUDGEQ", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json index 92d6c1a902..2022fa0518 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "oZC1FZ93158dUC0j", - "filament_id": "GFL99", + "filament_id": "OFV4hD1o", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json index 26f96a21f6..2525fd7186 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "Ix7a15ABLu7ykbMb", - "filament_id": "GFL99", + "filament_id": "OFV4hD1o", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json index 4a4f0ffd10..f03a2919dc 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "NdUtpGmW1Rl2h1Xc", - "filament_id": "GFL99", + "filament_id": "OFV4hD1o", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json index a4d88bd29c..0a90a98c7e 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "6obXUws35j7OkE2v", - "filament_id": "GFB99", + "filament_id": "OFV4hD1o", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json index 571decc29b..f9c18e02f4 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "Z0YSeNJQ3rKDwzsp", - "filament_id": "GFB99", + "filament_id": "OFV4hD1o", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json index 4119d9da15..83daae2d51 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "BoVtyU2REc0Ayzc4", - "filament_id": "GFB99", + "filament_id": "OFV4hD1o", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json index 17f7a4818b..6b18f61607 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "EKWOHWk37Yn1jS5V", - "filament_id": "GFB99", + "filament_id": "OFV4hD1o", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json index b118bcfd02..af8af08270 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "yrS51y3N1ooM5ULv", - "filament_id": "GFL99", + "filament_id": "OFV4hD1o", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json index dbe2d57ace..7704c2b53c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "AaBBTIJSMkxxTPDt", - "filament_id": "GFL99", + "filament_id": "OF0z1XpN", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json index 63cfb9c6b0..fea97d7530 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "hnWx5ZM2ecclYvKA", - "filament_id": "GFB99", + "filament_id": "OF0z1XpN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json index c81d897d30..7191180725 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "bQTjglDv2qjgrUNl", - "filament_id": "GFB99", + "filament_id": "OF0z1XpN", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json index b877e50774..47a2c6edb1 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "zifqr9yiIZKivCNu", - "filament_id": "GFL99", + "filament_id": "OF0z1XpN", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido.json index 1add171288..d5bb8ebb62 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "JdGWg2Kn3T2L2Ai2", - "filament_id": "GFL99", + "filament_id": "OFmKNi3f", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json index 6d266568a1..a65d1591a8 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "BTqlIKpYFQCC8gJt", - "filament_id": "GFL98", + "filament_id": "OF7cv1Ub", "instantiation": "true", "pressure_advance": [ "0.01" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json index ed91757e71..768b6ebd1d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "0Wr2y2a7rHYbk5fS", - "filament_id": "GFL98", + "filament_id": "OF7cv1Ub", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json index 3b236b0420..32e8cc97be 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "xGqY059EYGUevj9G", - "filament_id": "GFL98", + "filament_id": "OF7cv1Ub", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json index cf77b2cdf0..1869f432df 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "Fh7yuJKSeYs8doRG", - "filament_id": "GFL98", + "filament_id": "OF7cv1Ub", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json index 49c9d3c0f2..fae018e7bc 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "vs5bFF3r8Kid59u9", - "filament_id": "GFL98", + "filament_id": "OF7cv1Ub", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json index d90bd4e3c8..f02bce47ae 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "E30t78jBGCkTztFC", - "filament_id": "GFB99", + "filament_id": "OFAdAYYk", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json index 20cbb98a2d..1eb21b213d 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "pYmENqkzOsA9LRLW", - "filament_id": "GFB99", + "filament_id": "OFAdAYYk", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json index d135252ac8..91d99f8f42 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "7ozi6TNb3ObLpD2v", - "filament_id": "GFB99", + "filament_id": "OFAdAYYk", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json index eecd12264a..8714923f7d 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "iNx7JrGG0r5s24dV", - "filament_id": "GFB99", + "filament_id": "OFAdAYYk", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json index 50bc577d0e..caaf8696e5 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "tQnGlZa0FL2FpHho", - "filament_id": "GFB99", + "filament_id": "OFAdAYYk", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF.json b/resources/profiles/Qidi/filament/QIDI PPS-CF.json index 13db20b99f..9e56326ec1 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ODM3oXV1OSv3qTbZ", - "filament_id": "GFN98", + "filament_id": "OFAdAYYk", "instantiation": "true", "filament_type": [ "PPS-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json index 6f520e1d27..64884f4a2c 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "VgQiY3csDj6bBWSk", - "filament_id": "GFB99", + "filament_id": "OFZAkPHG", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json index d7e1fa61d5..b0064ded5a 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "8hFaMBYD7pnmsZWd", - "filament_id": "GFB99", + "filament_id": "OFZAkPHG", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json index d3adec2da2..c41c4fbaae 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "BcrvpHAPx0FBvOi3", - "filament_id": "GFB99", + "filament_id": "OFZAkPHG", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PAHT.json b/resources/profiles/Qidi/filament/QIDI Support For PAHT.json index 338628640c..2ab04ac70e 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PAHT.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PAHT.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "7cd7R9xbuNtLfCHa", - "filament_id": "GFN98", + "filament_id": "OFa5cFqE", "instantiation": "true", "filament_type": [ "PAHT-S" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json b/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json index cf18d83f80..e93e7f7945 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Am158VMH3y6FDxON", - "filament_id": "GFN98", + "filament_id": "OFWyCd0Y", "instantiation": "true", "filament_type": [ "PA-S" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json index a99ea32ca7..210dde4248 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "O7oxTgsH9q8jlqzd", - "filament_id": "GFB99", + "filament_id": "OFNX5uRT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json index 159561dbbd..cdfe19f343 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "FR1LQ5DM0upGQQfs", - "filament_id": "GFB99", + "filament_id": "OFNX5uRT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero.json index 70f7e16ecd..fb7f6a16fe 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "BARooxJKaDXbGd9B", - "filament_id": "GFU99", + "filament_id": "OFNX5uRT", "instantiation": "true", "filament_type": [ "TPU-AERO" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json index 897e274d70..fcbec8eaa5 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "GufOfCCphUDzeSo1", - "filament_id": "GFB99", + "filament_id": "OFOysPuE", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json index 0bd0d3ce6a..f295b881de 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "nY6q9vd6lpaXiQpc", - "filament_id": "GFB99", + "filament_id": "OFOysPuE", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json index 528ae87a68..0a6c26ed10 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "67agKUajM0pFFhia", - "filament_id": "GFB99", + "filament_id": "OFOysPuE", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json index 1921fd982c..7eccf9202f 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "RgmbbSJpyUyTXPO9", - "filament_id": "GFB99", + "filament_id": "OFKjlAbC", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json index d800b11f70..da545ecdb9 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "aiGnr6fBoUCuwPS5", - "filament_id": "GFB99", + "filament_id": "OFKjlAbC", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json index 082b2893a3..ee25c8c7df 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "G0qM351aUv23WFmP", - "filament_id": "GFB99", + "filament_id": "OFKjlAbC", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json index 9ae8202bce..73f3ad14d1 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "2AOnWEOsaS2w9Nmr", - "filament_id": "GFN98", + "filament_id": "OFKjlAbC", "instantiation": "true", "filament_type": [ "UltraPA-CF25" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json index 60731be079..c0a87567b7 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "y4aq26TNkKEafwbN", - "filament_id": "GFL99", + "filament_id": "OFnsWQTp", "instantiation": "true", "slow_down_layer_time": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json index a33c51e4b6..4c87714064 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "1y0tvUmMkDHYmvWC", - "filament_id": "GFL99", + "filament_id": "OFnsWQTp", "instantiation": "true", "slow_down_layer_time": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json index 6a9b8b61f2..6cbeef948f 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "n4ywS2KDL59hb8nA", - "filament_id": "GFB99", + "filament_id": "OFnsWQTp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json index 2c556b42d6..df4bc13bfc 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "AZB82l14yp3vT5sz", - "filament_id": "GFB99", + "filament_id": "OFnsWQTp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json index 825fc4d3bd..f64fa54a11 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "0ZZ9ygXQqnKrrWlL", - "filament_id": "GFB99", + "filament_id": "OFnsWQTp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json index b80cb7bbe8..9ca1b0488f 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "NANyXYa8NOQ45Gy2", - "filament_id": "GFL99", + "filament_id": "OFnsWQTp", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json index 1002faa656..508cf24436 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi ASA-Aero", "from": "system", "setting_id": "OVQGLLS3QOoDEPNp", - "filament_id": "GFB99", + "filament_id": "OF0TjJ0G", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json index e70b832791..3b68bf48c5 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi ASA-Aero", "from": "system", "setting_id": "FKWhpunDSV0iusbz", - "filament_id": "GFB99", + "filament_id": "OF0TjJ0G", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json index 72e771f083..216db80864 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "xTg8UPJXoXdyGccz", - "filament_id": "GFB99", + "filament_id": "OF0TjJ0G", "instantiation": "true", "filament_type": [ "ASA-AERO" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json index 7e1c6c50f4..a2d9584778 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "OLkg128vxsk27w03", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json index 4e79e3b9d4..961629bae2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "pGOT3C5eREsHRylS", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json index 95c9fa660c..2e5cf7b682 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "QRlzPtO4mqLKcdws", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json index 81a1153f11..e62e501e59 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "vLLCDxhI2GR76M1p", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json index f68bcca3f0..2369d6b6c6 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "6pY4I5kAFdSYPOte", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json index 4b2cbc742d..7106465ea0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "A85OmyjS63OgZa0V", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json index e070398a5e..03f2d457fa 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "1CBWjstSdMJLJWuv", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json index 28a74dadb1..fbeaa4c1c1 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "UIsup1TGWKg0Fq72", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json index 422c63c216..c4ae902f99 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "HQupWXd5yKceVrm4", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json index e24a3519bf..9cd5b1a694 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "R6FcpVRhnSp0i8bK", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json index 2f3fa6a9d8..926830393f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "sE2DGjOmcjRuuh0z", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA.json b/resources/profiles/Qidi/filament/Qidi Generic ASA.json index e7878476b5..d6aee78840 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "WTOEo36YTIFcXDaI", - "filament_id": "GFB99", + "filament_id": "OFG8vHw8", "instantiation": "true", "filament_type": [ "ASA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json index 6d920bb982..b516c65225 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "SzQLWO8poDxEU0ez", - "filament_id": "GFB99", + "filament_id": "GFG99", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json index 3f3fdb2dae..2bce0a96b0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "MMSCic1l0b3e5qe3", - "filament_id": "GFB99", + "filament_id": "GFG99", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json index 4569902a19..63611956e2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "eCR3lbTRdkYcMZgl", - "filament_id": "GFB99", + "filament_id": "GFL99", "instantiation": "true", "filament_max_volumetric_speed": [ "14" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json index 922bef83eb..8b257619c3 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "tRztgu06hBi9IxSE", - "filament_id": "GFB99", + "filament_id": "GFL99", "instantiation": "true", "filament_max_volumetric_speed": [ "14" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json index a27251d78a..a8040f89fd 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", "from": "system", "setting_id": "HaE0HFgjT8wysrVT", - "filament_id": "GFL99", + "filament_id": "OF5UUaUM", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json index 2f0e4b53b1..13e4cbccbe 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", "from": "system", "setting_id": "vxXEJP3C4k5Zjvsx", - "filament_id": "GFL99", + "filament_id": "OF5UUaUM", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json index 866b9b9707..3e9f248a9d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", "from": "system", "setting_id": "VqVyXnU77CZCKsNy", - "filament_id": "GFL99", + "filament_id": "OF5UUaUM", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json index 47ac610743..2866afeee3 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", "from": "system", "setting_id": "0504CZkoYLx6NMI0", - "filament_id": "GFL99", + "filament_id": "OF5UUaUM", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json index 4ea48e5379..689b9db770 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "dmKDk6Yb4zQFCWIe", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json index d7be267e76..649a08ca6f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "vwFHzxD2MrRieUIw", - "filament_id": "GFB99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_settings_id": [ "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json index 9884783666..8b663fde80 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "wlXNWvECV8ylNVFF", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json index 751e859201..ad0dd1e2b3 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "gR4NZ8mgTNVxxjhh", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json index 3ceedcf5da..6860035d96 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "wCdBhg6B4tQZw7dp", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json index 865f18fe1d..c34e9563a0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "7Bxn8OUT1MJbNvxC", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json index 320e1a5e37..a29f72ac49 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "miQxMqjI3odS4V1O", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json index 96d49de862..63b6dcfd94 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "WwUGv09h9thWkzMf", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json index 5942ed4406..fe0c370b40 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "oAIJyTMV5EnXTJDF", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json index 62529fb34e..834b6b82cc 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "Ya2viE6yXmdshs75", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json index 88086dd8e5..17212d9d74 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "XUhGdonOGCUI34EH", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json index 7ed74cb2d5..39a7b80db0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "yvokLiCctDUmcDCR", - "filament_id": "GFB99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.034" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json index 225c8203c7..4d5746ee75 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "gZxafcPwX1hqI7Dm", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json index 662d6b70e9..eb93efa8f0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "j6fJ7L02mVcZ01fO", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json index 85de90bcfc..38a2600264 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "KTkq14RsduGBSdMZ", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json index 6d7b0c81e9..7593f9724c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "xiomvJqo2HAwsxT0", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json index d81651533a..dc501ef7e5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "3SemJWSvKeN7OXVy", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json index cf8733d478..7302486ec4 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "LNjBixpjLg5i8P1d", - "filament_id": "GFL99", + "filament_id": "OFwHPTvy", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json index 15423913f8..dff4ce7559 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU 95A", "from": "system", "setting_id": "0gGSrFIulk4gPLSp", - "filament_id": "GFB99", + "filament_id": "OFN0pBpo", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json index f83e24e147..f1add02a4f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU 95A", "from": "system", "setting_id": "5fkE2aGkghsMdZ1W", - "filament_id": "GFB99", + "filament_id": "OFN0pBpo", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json index d83d0599af..2c4e76ead5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "JWZrlYnOOlGpTEg6", - "filament_id": "GFU99", + "filament_id": "OFN0pBpo", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json index ff81ed6743..963e845d67 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU", "from": "system", "setting_id": "s0MMbJlTt9Cbh8FQ", - "filament_id": "GFB99", + "filament_id": "GFU99", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json index 4e9f07c0c5..9e4acc8225 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU", "from": "system", "setting_id": "KqdGTkLW1x7oZpvj", - "filament_id": "GFB99", + "filament_id": "GFU99", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json index 072f445d57..f5db4b48f9 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "0J1PKDesfiwmiXT3", - "filament_id": "GFB99", + "filament_id": "OFa6L3Of", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json index 02776d5d00..0870f4d962 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "CYzutFjZzD3tLXwM", - "filament_id": "GFB99", + "filament_id": "OFa6L3Of", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json index 60a8329be2..c036fb4fba 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "YJvwrEo0BwfXMOqo", - "filament_id": "GFB99", + "filament_id": "OFa6L3Of", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json index e6faf129d7..69b6bcd945 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "0pBt0usHW6MGQZXl", - "filament_id": "GFB99", + "filament_id": "OFa6L3Of", "instantiation": "true", "filament_type": [ "PC-ABS-FR" diff --git a/resources/profiles/Qidi/filament/Qidi PLA-CF.json b/resources/profiles/Qidi/filament/Qidi PLA-CF.json index 6b8a3e8899..6db1fa32e2 100644 --- a/resources/profiles/Qidi/filament/Qidi PLA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "oqzsRA4OuCqTWPGM", - "filament_id": "GFL98", + "filament_id": "OFqyIUDi", "instantiation": "true", "filament_flow_ratio": [ "0.96" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json index aa18a6f5e7..172ba9b6f0 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "zqfVVsyY5ZMsfqjK", - "filament_id": "GFB99", + "filament_id": "OFOW9K96", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json index 7679296a7b..89c1974bb1 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "fZISb4jbF8jv60dL", - "filament_id": "GFB99", + "filament_id": "OFOW9K96", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json index ba588dc809..433f754f7a 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "QCS6zw9BRMWWvrCo", - "filament_id": "GFU99", + "filament_id": "OFOW9K96", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json index 4e4424936f..a8864cd29b 100644 --- a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json +++ b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uVa250OrqClMz41k", - "filament_id": "GFG99", + "filament_id": "OFXcfTEb", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json index 62e6a4204e..96478af664 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuidAEg", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json index cdfabbe5a0..8101a994d5 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OF6EOy1A", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json index 9db6ab9698..08d299380c 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OF2UFmOo", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json index 924752466e..07f0f3291d 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFfdxQok", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json index d7e4f1c7ed..7e70c198c2 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFPwi9X0", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json index 9e9abfbd09..a7cf5ed949 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFAnyzjN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json index 2cb6be1fc3..3dcf2e340d 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFiJYDPC", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json index 485db36e9a..49b3c2fe6b 100644 --- a/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Overture ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFuTFxVP", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json index 289af93715..a217128c3d 100644 --- a/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Overture PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFC2FSsV", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json index 215fb00a92..849aebe38d 100644 --- a/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFidJLn8", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json index e8fe4ba7f5..4d6101084d 100644 --- a/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFceJcLf", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 9ebc007f87..ae6dd87645 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1178,59 +1178,14 @@ "Prusa/Prusament rPLA @CORE One 0.6", "Prusa/Prusament rPLA @CORE One 0.8", "Qidi/Bambu PETG", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.8 nozzle", "Qidi/Bambu PLA", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.8 nozzle", "Qidi/HATCHBOX PETG @Qidi", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", "Qidi/HATCHBOX PLA @Qidi", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", "Qidi/Overture PLA @Qidi", - "Qidi/Overture PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.8 nozzle", "Qidi/PolyLite PLA @Qidi", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/QIDI ABS Rapido 0.2 nozzle", + "Qidi/QIDI ABS Rapido 0.6 nozzle", + "Qidi/QIDI ABS Rapido 0.8 nozzle", "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", @@ -1244,162 +1199,101 @@ "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", "Qidi/QIDI PA-Ultra", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PA12-CF", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PAHT-CF", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PAHT-GF @0.6 nozzle", - "Qidi/QIDI PAHT-GF @0.8 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI PET-CF", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PET-GF", - "Qidi/QIDI PET-GF @0.6 nozzle", - "Qidi/QIDI PET-GF @0.8 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG Basic", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG Rapido", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG Tough", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PETG Tough 0.2 nozzle", + "Qidi/QIDI PETG Tough 0.6 nozzle", + "Qidi/QIDI PETG Tough 0.8 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG Translucent", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG-CF", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG-GF", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Basic", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Matte Basic", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Rapido", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", + "Qidi/QIDI PLA Rapido 0.2 nozzle", + "Qidi/QIDI PLA Rapido 0.8 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Rapido Matte", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Rapido Metal", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Rapido Silk", - "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", + "Qidi/QIDI PLA-CF @0.6 nozzle", + "Qidi/QIDI PLA-CF @0.8 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", + "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PPS-CF", - "Qidi/QIDI PPS-CF @0.6 nozzle", - "Qidi/QIDI PPS-CF @0.8 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", @@ -1415,24 +1309,16 @@ "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI UltraPA-CF25", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI WOOD Rapido", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", @@ -1440,28 +1326,19 @@ "Qidi/Qidi Generic PA-CF", "Qidi/Qidi Generic PC", "Qidi/Qidi Generic PETG", - "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi Generic PETG-CF", "Qidi/Qidi Generic PLA", - "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", "Qidi/Qidi Generic PLA Silk", "Qidi/Qidi Generic PLA+", - "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi Generic PLA-CF", - "Qidi/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", "Qidi/Qidi PLA-CF", - "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", "Qidi/Tinmorry PETG-ECO", @@ -3028,62 +2905,7 @@ "OrcaArena/OrcaArena Generic ABS", "Prusa/Prusa Generic ABS", "Prusa/Prusa Generic ABS HF", - "Qidi/Bambu ABS", - "Qidi/Bambu PETG", - "Qidi/Bambu PLA", - "Qidi/HATCHBOX ABS", - "Qidi/HATCHBOX PETG", - "Qidi/HATCHBOX PLA", - "Qidi/Overture ABS", - "Qidi/Overture PLA", - "Qidi/PolyLite ABS", - "Qidi/PolyLite PLA", - "Qidi/QIDI ABS Odorless", - "Qidi/QIDI ABS Rapido", - "Qidi/QIDI ABS Rapido 0.2 nozzle", - "Qidi/QIDI ABS Rapido 0.6 nozzle", - "Qidi/QIDI ABS Rapido 0.8 nozzle", - "Qidi/QIDI ABS Rapido Metal", - "Qidi/QIDI ABS-GF", - "Qidi/QIDI ABS-GF10", - "Qidi/QIDI ABS-GF25", - "Qidi/QIDI ASA", - "Qidi/QIDI ASA-CF", - "Qidi/QIDI PA-Ultra", - "Qidi/QIDI PA12-CF", - "Qidi/QIDI PAHT-CF", - "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PEBA 95A", - "Qidi/QIDI PET-CF", - "Qidi/QIDI PET-GF", - "Qidi/QIDI PETG Basic", - "Qidi/QIDI PETG Rapido", - "Qidi/QIDI PETG Tough", - "Qidi/QIDI PETG Translucent", - "Qidi/QIDI PETG-CF", - "Qidi/QIDI PETG-GF", - "Qidi/QIDI PLA Basic", - "Qidi/QIDI PLA Matte Basic", - "Qidi/QIDI PLA Rapido", - "Qidi/QIDI PLA Rapido Matte", - "Qidi/QIDI PLA Rapido Metal", - "Qidi/QIDI PLA Rapido Silk", - "Qidi/QIDI PPS-CF", - "Qidi/QIDI PPS-GF", - "Qidi/QIDI TPU-Aero", - "Qidi/QIDI TPU-GF", - "Qidi/QIDI UltraPA-CF25", - "Qidi/QIDI WOOD Rapido", - "Qidi/Qidi ASA-Aero", "Qidi/Qidi Generic ABS", - "Qidi/Qidi Generic ASA", - "Qidi/Qidi Generic PETG", - "Qidi/Qidi Generic PLA", - "Qidi/Qidi Generic PLA+", - "Qidi/Qidi Generic TPU", - "Qidi/Qidi Generic TPU 95A", - "Qidi/Qidi PC-ABS-FR", - "Qidi/Qidi TPU 95A-HF", "Ratrig/RatRig BigNozzle ABS", "Ratrig/RatRig Generic ABS", "Ratrig/RatRig PunkFil ABS", @@ -3287,17 +3109,7 @@ "Lulzbot/Lulzbot 2.85mm PETG", "MagicMaker/MM Generic PEEK", "OrcaArena/OrcaArena Generic PETG", - "Qidi/Bambu PETG", - "Qidi/HATCHBOX PETG", - "Qidi/QIDI PETG Basic", - "Qidi/QIDI PETG Rapido", - "Qidi/QIDI PETG Tough", - "Qidi/QIDI PETG Tough 0.2 nozzle", - "Qidi/QIDI PETG Tough 0.6 nozzle", - "Qidi/QIDI PETG Tough 0.8 nozzle", - "Qidi/QIDI PETG Translucent", "Qidi/Qidi Generic PETG", - "Qidi/Tinmorry PETG-ECO", "Ratrig/RatRig BigNozzle PETG", "Ratrig/RatRig Generic PETG", "SecKit/SecKit Generic PETG", @@ -3556,10 +3368,7 @@ "Custom/Generic PLA-CF", "FLSun/FLSun Generic PLA-CF", "OrcaArena/OrcaArena Generic PLA-CF", - "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PLA-CF", "Qidi/Qidi Generic PLA-CF", - "Qidi/Qidi PLA-CF", "Ratrig/RatRig Generic PLA-CF", "SecKit/SecKit Generic PLA-CF", "Tiertime/Tiertime Generic PLA-CF", @@ -3697,23 +3506,7 @@ "Prusa/Prusa Generic PLA-CF", "Prusa/Prusament PLA", "Prusa/Prusament rPLA", - "Qidi/Bambu PLA", - "Qidi/Generic PLA+", - "Qidi/HATCHBOX PLA", - "Qidi/Overture PLA", - "Qidi/PolyLite PLA", - "Qidi/QIDI PLA Basic", - "Qidi/QIDI PLA Matte Basic", - "Qidi/QIDI PLA Rapido", - "Qidi/QIDI PLA Rapido 0.2 nozzle", - "Qidi/QIDI PLA Rapido 0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte", - "Qidi/QIDI PLA Rapido Metal", - "Qidi/QIDI PLA Rapido Silk", - "Qidi/QIDI WOOD Rapido", "Qidi/Qidi Generic PLA", - "Qidi/Qidi Generic PLA High Speed", - "Qidi/Qidi Generic PLA+", "Ratrig/RatRig BigNozzle PLA", "Ratrig/RatRig BigNozzle TPU", "Ratrig/RatRig Generic PLA", @@ -3842,17 +3635,6 @@ "InfiMech/Other PA-CF", "OrcaArena/OrcaArena Generic PA-CF", "Prusa/Prusament PA-CF", - "Qidi/QIDI PA12-CF", - "Qidi/QIDI PAHT-CF", - "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PET-CF", - "Qidi/QIDI PET-GF", - "Qidi/QIDI PETG-CF", - "Qidi/QIDI PETG-GF", - "Qidi/QIDI PPS-CF", - "Qidi/QIDI Support For PAHT", - "Qidi/QIDI Support For PET/PA", - "Qidi/QIDI UltraPA-CF25", "Qidi/Qidi Generic PA-CF", "Ratrig/RatRig Generic PA-CF", "SecKit/SecKit Generic PA-CF", @@ -3884,7 +3666,6 @@ "OrcaArena/OrcaArena Generic PA", "Prusa/Prusa Generic PA", "Prusa/Prusa Generic PA-CF", - "Qidi/QIDI PA-Ultra", "Qidi/Qidi Generic PA", "Ratrig/RatRig Generic PA", "SecKit/SecKit Generic PA", @@ -4395,10 +4176,7 @@ "Prusa/Prusa Generic FLEX", "Prusa/Prusa Generic TPU", "Prusa/Prusa Generic TPU HF", - "Qidi/QIDI TPU-Aero", "Qidi/Qidi Generic TPU", - "Qidi/Qidi Generic TPU 95A", - "Qidi/Qidi TPU 95A-HF", "Ratrig/RatRig Generic TPU", "SecKit/SecKit Generic TPU", "Tiertime/Tiertime Generic TPU", @@ -4611,24 +4389,72 @@ "OF0M6QAQ": [ "OrcaFilamentLibrary/Elegoo PLA Galaxy" ], + "OF0TjJ0G": [ + "Qidi/Qidi ASA-Aero" + ], + "OF0Y5MLd": [ + "Qidi/QIDI PETG-GF" + ], + "OF0z1XpN": [ + "Qidi/QIDI PLA Rapido Silk" + ], "OF102WKM": [ "OrcaFilamentLibrary/Elegoo PETG PRO" ], + "OF1Zypyy": [ + "Qidi/QIDI PETG Tough" + ], + "OF2UFmOo": [ + "Qidi/Bambu PLA" + ], "OF3GKs2i": [ "OrcaFilamentLibrary/eSUN PLA-Matte" ], + "OF3XeEuV": [ + "Qidi/QIDI PET-GF" + ], + "OF48G7He": [ + "Qidi/QIDI PETG Tough 0.8 nozzle" + ], "OF4fgpse": [ "OrcaFilamentLibrary/Elegoo PLA Marble" ], + "OF4gzzE4": [ + "Qidi/QIDI PET-CF" + ], + "OF5UUaUM": [ + "Qidi/Qidi Generic PLA High Speed" + ], + "OF6EOy1A": [ + "Qidi/Bambu PETG" + ], "OF79FFkO": [ "OrcaFilamentLibrary/Elegoo PC-FR" ], + "OF7cv1Ub": [ + "Qidi/QIDI PLA-CF" + ], "OF8HQmJD": [ "OrcaFilamentLibrary/Elegoo PLA Sparkle" ], + "OF8WvPVL": [ + "Qidi/QIDI ABS Rapido 0.8 nozzle" + ], "OF9qvJxV": [ "OrcaFilamentLibrary/Elegoo PLA Translucent2" ], + "OFAUDGEQ": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "OFAdAYYk": [ + "Qidi/QIDI PPS-CF" + ], + "OFAnyzjN": [ + "Qidi/HATCHBOX PETG" + ], + "OFC2FSsV": [ + "Qidi/Overture PLA" + ], "OFD5e0sH": [ "OrcaFilamentLibrary/Elegoo Rapid PLA+" ], @@ -4641,6 +4467,12 @@ "OFDNiRTx": [ "OrcaFilamentLibrary/Elegoo PLA+" ], + "OFFIL5pD": [ + "Qidi/QIDI PA12-CF" + ], + "OFG8vHw8": [ + "Qidi/Qidi Generic ASA" + ], "OFICPchn": [ "OrcaFilamentLibrary/Elegoo PLA Basic" ], @@ -4656,6 +4488,12 @@ "OFJsqMzx": [ "OrcaFilamentLibrary/Generic PLA Matte" ], + "OFK820gS": [ + "Qidi/QIDI ASA" + ], + "OFKjlAbC": [ + "Qidi/QIDI UltraPA-CF25" + ], "OFLSBS99": [ "OrcaFilamentLibrary/Generic SBS" ], @@ -4665,6 +4503,30 @@ "OFMQJToc": [ "OrcaFilamentLibrary/Elegoo PETG-GF" ], + "OFN0X7oN": [ + "Qidi/QIDI PLA Basic" + ], + "OFN0pBpo": [ + "Qidi/Qidi Generic TPU 95A" + ], + "OFNX5uRT": [ + "Qidi/QIDI TPU-Aero" + ], + "OFOW9K96": [ + "Qidi/Qidi TPU 95A-HF" + ], + "OFOysPuE": [ + "Qidi/QIDI TPU-GF" + ], + "OFPokkKe": [ + "Qidi/QIDI PETG-CF" + ], + "OFPwi9X0": [ + "Qidi/HATCHBOX ABS" + ], + "OFQZINrX": [ + "Qidi/QIDI ABS-GF10" + ], "OFQhLoxN": [ "OrcaFilamentLibrary/Elegoo PLA Wood" ], @@ -4674,40 +4536,133 @@ "OFRS2Ggt": [ "OrcaFilamentLibrary/Generic PP-CF" ], + "OFSSuKRr": [ + "Qidi/QIDI PETG Basic" + ], "OFT3TqB6": [ "OrcaFilamentLibrary/Elas ASA" ], + "OFToBodi": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "OFUJw3Lx": [ + "Qidi/QIDI PEBA 95A" + ], + "OFUkpobY": [ + "Qidi/QIDI PAHT-CF" + ], + "OFV4hD1o": [ + "Qidi/QIDI PLA Rapido Metal" + ], "OFVLuVmD": [ "OrcaFilamentLibrary/Elegoo Rapid PETG" ], + "OFVhG0yM": [ + "Qidi/QIDI ABS Odorless" + ], + "OFW8UdlP": [ + "Qidi/QIDI ABS Rapido" + ], + "OFWkCAdc": [ + "Qidi/QIDI PETG Tough 0.2 nozzle" + ], + "OFWyCd0Y": [ + "Qidi/QIDI Support For PET/PA" + ], + "OFXNO5Of": [ + "Qidi/QIDI PLA Rapido 0.2 nozzle" + ], + "OFXcfTEb": [ + "Qidi/Tinmorry PETG-ECO" + ], + "OFXkwkn6": [ + "Qidi/QIDI PA-Ultra" + ], "OFXmQgno": [ "OrcaFilamentLibrary/eSUN PLA-Marble" ], + "OFYH00jV": [ + "Qidi/QIDI ABS-GF" + ], + "OFZAkPHG": [ + "Qidi/QIDI PPS-GF" + ], "OFZhdVnP": [ "OrcaFilamentLibrary/eSUN PLA-Basic" ], + "OFa5cFqE": [ + "Qidi/QIDI Support For PAHT" + ], + "OFa6L3Of": [ + "Qidi/Qidi PC-ABS-FR" + ], + "OFbS9rjH": [ + "Qidi/QIDI PETG Rapido" + ], "OFbgt3u3": [ "OrcaFilamentLibrary/Elas PLA Basic" ], + "OFceJcLf": [ + "Qidi/PolyLite PLA" + ], "OFenGPBR": [ "OrcaFilamentLibrary/Elegoo PETG Translucent" ], + "OFeybQvK": [ + "Qidi/QIDI ABS Rapido 0.2 nozzle" + ], "OFfB1QKi": [ "Flashforge/Flashforge HS PETG", "OrcaFilamentLibrary/Generic PETG HF" ], + "OFfJoIgg": [ + "Qidi/QIDI PAHT-GF" + ], + "OFfdxQok": [ + "Qidi/Generic PLA+" + ], + "OFiJYDPC": [ + "Qidi/HATCHBOX PLA" + ], + "OFidJLn8": [ + "Qidi/PolyLite ABS" + ], + "OFjohFkg": [ + "Qidi/QIDI PETG Translucent" + ], + "OFmF1xL9": [ + "Qidi/QIDI ASA-CF" + ], + "OFmKNi3f": [ + "Qidi/QIDI PLA Rapido" + ], "OFmeQjRP": [ "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" ], + "OFnj7bPm": [ + "Qidi/QIDI ABS Rapido 0.6 nozzle" + ], + "OFnsWQTp": [ + "Qidi/QIDI WOOD Rapido" + ], "OFpwg2Qh": [ "OrcaFilamentLibrary/Elegoo ASA-CF" ], + "OFqPp2yL": [ + "Qidi/QIDI PETG Tough 0.6 nozzle" + ], "OFqh1Ngp": [ "OrcaFilamentLibrary/Elegoo PLA-CF" ], + "OFqyIUDi": [ + "Qidi/Qidi PLA-CF" + ], "OFrgQ1Ns": [ "OrcaFilamentLibrary/Elas PLA Pro" ], + "OFs1CbB1": [ + "Qidi/QIDI PLA Rapido 0.8 nozzle" + ], "OFs6lLH7": [ "OrcaFilamentLibrary/Elegoo PLA Silk" ], @@ -4717,12 +4672,27 @@ "OFsNZcid": [ "OrcaFilamentLibrary/PolyLite Dual PLA" ], + "OFuTFxVP": [ + "Qidi/Overture ABS" + ], + "OFuidAEg": [ + "Qidi/Bambu ABS" + ], "OFutwD6f": [ "OrcaFilamentLibrary/Elegoo PLA Glow" ], + "OFv2NHLC": [ + "Qidi/QIDI ABS-GF25" + ], + "OFvN3117": [ + "Qidi/QIDI PLA Matte Basic" + ], "OFw4OHWE": [ "OrcaFilamentLibrary/Elas PETG Basic" ], + "OFwHPTvy": [ + "Qidi/Qidi Generic PLA+" + ], "OFzrWlH5": [ "OrcaFilamentLibrary/Elegoo PETG HF" ], From 4fc964d29343de1651451e406dc0cba4e25b9cbc Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:07:30 +0800 Subject: [PATCH 005/164] Flashforge: re-mint umbrella and OFL-riding filament_ids per family Phase 2 of the filament_id cleanup (69 within-vendor collision groups plus the 9 live library-cross groups on Creator 5/5 Pro). 507 filament_id edits + 12 compatible_printers trims (G3U 0.6/0.8 bases and HS bases over-claiming printers covered by dedicated variants): - The FFG01 umbrella (~140 presets across many families) is broken up: the git-verified introducing family (Flashforge Generic PLA) keeps FFG01, and 83 other families get fresh deterministic mints; the GFB99/GFG99/GFL99 G3U-era block is resolved the same way. - Flashforge-branded presets riding OrcaFilamentLibrary generic ids (OGFB99/OGFG99/OGFL98/OGFL99/OGFN96/OGFN98/OGFS98/OGFS99/OGFU99) get their own family mints; true generic tunings (Generic PLA / PLA Silk / BVOH) keep the library id with the library base name (alias-shadow-consistent). - Layout deviation, signed off: minted ids are declared as own keys on every instantiated member instead of new @base roots, because these families inherit up to six heterogeneous per-era umbrella parents and config-preserving roots would add ~80 artificial files. The snapshot ledger records the resulting instantiated_with_id/id_overrides growth, which is exactly the ratchet mechanism for keeping such shapes visible. Verified: config-equivalence gate zero unexpected diffs; extra check exit 0; --check exit 0; validator -l 2 exit 0; extended -f -v Flashforge exit 0 (was 69 groups + 9 library-cross). --- .../FlashForge PC @FF G4 0.6 HF nozzle.json | 1 + .../FlashForge PC @FF G4 0.6 nozzle.json | 1 + .../FlashForge PC @FF G4 0.8 HF nozzle.json | 1 + .../FlashForge PC @FF G4P 0.6 HF nozzle.json | 1 + .../FlashForge PC @FF G4P 0.6 nozzle.json | 1 + .../FlashForge PC @FF G4P 0.8 HF nozzle.json | 1 + .../FlashForge PPS @FF G4 0.6 HF nozzle.json | 1 + .../FlashForge PPS @FF G4 0.6 nozzle.json | 1 + .../FlashForge PPS @FF G4 0.8 HF nozzle.json | 1 + .../FlashForge PPS @FF G4P 0.6 HF nozzle.json | 1 + .../FlashForge PPS @FF G4P 0.6 nozzle.json | 1 + .../FlashForge PPS @FF G4P 0.8 HF nozzle.json | 1 + .../FlashForge PPS-CF @FF G4 0.6 nozzle.json | 1 + .../FlashForge PPS-CF @FF G4P 0.6 nozzle.json | 1 + ...hforge ABS Basic @FF AD5M 0.25 nozzle.json | 1 + ...hforge ABS Basic @FF AD5X 0.25 nozzle.json | 1 + ...shforge ABS Basic @FF AD5X 0.6 nozzle.json | 1 + ...shforge ABS Basic @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge ABS Basic @FF AD5X.json | 1 + .../filament/Flashforge ABS Basic @FF C5.json | 1 + .../Flashforge ABS Basic @FF C5P.json | 1 + ...ashforge ABS Basic @FF G4 0.25 nozzle.json | 1 + ...hforge ABS Basic @FF G4 0.6 HF nozzle.json | 1 + ...lashforge ABS Basic @FF G4 0.6 nozzle.json | 1 + ...hforge ABS Basic @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge ABS Basic @FF G4 HF.json | 1 + .../filament/Flashforge ABS Basic @FF G4.json | 1 + ...shforge ABS Basic @FF G4P 0.25 nozzle.json | 1 + ...forge ABS Basic @FF G4P 0.6 HF nozzle.json | 1 + ...ashforge ABS Basic @FF G4P 0.6 nozzle.json | 1 + ...forge ABS Basic @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge ABS Basic @FF G4P HF.json | 1 + .../Flashforge ABS Basic @FF G4P.json | 1 + .../filament/Flashforge ABS Basic.json | 1 + .../Flashforge ABS-CF @FF G4 0.6 nozzle.json | 1 + .../filament/Flashforge ABS-CF @FF G4.json | 1 + .../Flashforge ABS-CF @FF G4P 0.6 nozzle.json | 1 + .../filament/Flashforge ABS-CF @FF G4P.json | 1 + .../filament/Flashforge ABS-GF @FF C5.json | 1 + .../filament/Flashforge ABS-GF @FF C5P.json | 1 + ...hforge ASA Basic @FF AD5M 0.25 nozzle.json | 1 + ...hforge ASA Basic @FF AD5X 0.25 nozzle.json | 1 + ...shforge ASA Basic @FF AD5X 0.6 nozzle.json | 1 + ...shforge ASA Basic @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge ASA Basic @FF AD5X.json | 1 + .../filament/Flashforge ASA Basic @FF C5.json | 1 + .../Flashforge ASA Basic @FF C5P.json | 1 + ...ashforge ASA Basic @FF G4 0.25 nozzle.json | 1 + ...hforge ASA Basic @FF G4 0.6 HF nozzle.json | 1 + ...lashforge ASA Basic @FF G4 0.6 nozzle.json | 1 + ...hforge ASA Basic @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge ASA Basic @FF G4 HF.json | 1 + .../filament/Flashforge ASA Basic @FF G4.json | 1 + ...shforge ASA Basic @FF G4P 0.25 nozzle.json | 1 + ...forge ASA Basic @FF G4P 0.6 HF nozzle.json | 1 + ...ashforge ASA Basic @FF G4P 0.6 nozzle.json | 1 + ...forge ASA Basic @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge ASA Basic @FF G4P HF.json | 1 + .../Flashforge ASA Basic @FF G4P.json | 1 + .../filament/Flashforge ASA Basic.json | 1 + .../filament/Flashforge ASA-CF @FF C5.json | 1 + .../filament/Flashforge ASA-CF @FF C5P.json | 1 + .../filament/Flashforge ASA-CF @FF G4.json | 1 + .../filament/Flashforge ASA-CF @FF G4P.json | 1 + .../filament/Flashforge ASA-CF.json | 1 + .../filament/Flashforge ASA-GF @FF C5.json | 1 + .../filament/Flashforge ASA-GF @FF C5P.json | 1 + .../filament/Flashforge Generic ABS @G3U.json | 1 - ...orge Generic ASA @FF AD5M 0.25 Nozzle.json | 2 +- ...lashforge Generic ASA @G3U 0.6 Nozzle.json | 2 +- .../filament/Flashforge Generic ASA @G3U.json | 3 +- .../filament/Flashforge Generic ASA.json | 2 +- ...ashforge Generic HIPS @G3U 0.6 Nozzle.json | 2 +- .../filament/Flashforge Generic HIPS.json | 3 +- ...e Generic HS PLA @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge Generic HS PLA.json | 2 +- ...ashforge Generic PETG @G3U 0.6 Nozzle.json | 2 +- ...ashforge Generic PETG @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PETG @G3U.json | 4 +- ...forge Generic PETG-CF @G3U 0.6 Nozzle.json | 2 +- ...forge Generic PETG-CF @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PETG-CF @G3U.json | 4 +- .../Flashforge Generic PETG-CF10.json | 2 +- ...hforge Generic PLA-CF @G3U 0.6 Nozzle.json | 2 +- ...hforge Generic PLA-CF @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PLA-CF @G3U.json | 4 +- .../filament/Flashforge Generic PLA-CF10.json | 2 +- ...Generic PLA-SILK @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge Generic PLA-Silk.json | 2 +- .../filament/Flashforge Generic PVA.json | 2 +- .../filament/Flashforge Generic TPU.json | 2 +- .../filament/Flashforge HIPS @FF C5.json | 1 + .../filament/Flashforge HIPS @FF C5P.json | 1 + .../Flashforge HIPS @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge HIPS @FF G4 0.6 nozzle.json | 1 + .../Flashforge HIPS @FF G4 0.8 HF nozzle.json | 1 + .../filament/Flashforge HIPS @FF G4 HF.json | 1 + .../filament/Flashforge HIPS @FF G4.json | 1 + ...Flashforge HIPS @FF G4P 0.6 HF nozzle.json | 1 + .../Flashforge HIPS @FF G4P 0.6 nozzle.json | 1 + ...Flashforge HIPS @FF G4P 0.8 HF nozzle.json | 1 + .../filament/Flashforge HIPS @FF G4P HF.json | 1 + .../filament/Flashforge HIPS @FF G4P.json | 1 + ...ashforge HS PETG @FF AD5M 0.25 nozzle.json | 1 + ...ashforge HS PETG @FF AD5X 0.25 nozzle.json | 1 + ...lashforge HS PETG @FF AD5X 0.6 nozzle.json | 1 + ...lashforge HS PETG @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge HS PETG @FF AD5X.json | 1 + .../filament/Flashforge HS PETG @FF C5.json | 1 + .../filament/Flashforge HS PETG @FF C5P.json | 1 + ...Flashforge HS PETG @FF G4 0.25 nozzle.json | 1 + ...ashforge HS PETG @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge HS PETG @FF G4 0.6 nozzle.json | 1 + ...ashforge HS PETG @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge HS PETG @FF G4 HF.json | 1 + .../filament/Flashforge HS PETG @FF G4.json | 1 + ...lashforge HS PETG @FF G4P 0.25 nozzle.json | 1 + ...shforge HS PETG @FF G4P 0.6 HF nozzle.json | 1 + ...Flashforge HS PETG @FF G4P 0.6 nozzle.json | 1 + ...shforge HS PETG @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge HS PETG @FF G4P HF.json | 1 + .../filament/Flashforge HS PETG @FF G4P.json | 1 + .../filament/Flashforge HS PETG.json | 1 + ...lashforge HS PLA @FF AD5M 0.25 Nozzle.json | 2 +- ...lashforge HS PLA @FF AD5X 0.25 nozzle.json | 1 + ...Flashforge HS PLA @FF AD5X 0.6 nozzle.json | 1 + ...Flashforge HS PLA @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge HS PLA @FF AD5X.json | 1 + .../filament/Flashforge HS PLA @FF C5.json | 1 + .../filament/Flashforge HS PLA @FF C5P.json | 1 + .../Flashforge HS PLA @FF G4 0.25 nozzle.json | 1 + ...lashforge HS PLA @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge HS PLA @FF G4 0.6 nozzle.json | 1 + ...lashforge HS PLA @FF G4 0.8 HF nozzle.json | 1 + .../filament/Flashforge HS PLA @FF G4 HF.json | 1 + .../filament/Flashforge HS PLA @FF G4.json | 1 + ...Flashforge HS PLA @FF G4P 0.25 nozzle.json | 1 + ...ashforge HS PLA @FF G4P 0.6 HF nozzle.json | 1 + .../Flashforge HS PLA @FF G4P 0.6 nozzle.json | 1 + ...ashforge HS PLA @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge HS PLA @FF G4P HF.json | 1 + .../filament/Flashforge HS PLA @FF G4P.json | 1 + ... HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge HS PLA Burnt Ti @FF G4 HF.json | 1 + ...HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json | 1 + ...Flashforge HS PLA Burnt Ti @FF G4P HF.json | 1 + ...orge HS PLA Burnt Ti@FF G4 0.6 nozzle.json | 1 + ...e HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json | 1 + ...rge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json | 1 + ... HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json | 1 + .../filament/Flashforge HS PLA.json | 6 +- .../Flashforge PA @FF G4 0.6 HF nozzle.json | 1 + .../filament/Flashforge PA @FF G4 HF.json | 1 + .../filament/Flashforge PA @FF G4.json | 1 + .../Flashforge PA @FF G4P 0.6 HF nozzle.json | 1 + .../filament/Flashforge PA @FF G4P HF.json | 1 + .../filament/Flashforge PA @FF G4P.json | 1 + .../filament/Flashforge PA-CF @FF C5.json | 1 + .../filament/Flashforge PA-CF @FF C5P.json | 1 + .../filament/Flashforge PA-CF @FF G4.json | 1 + .../filament/Flashforge PA-CF @FF G4P.json | 1 + .../filament/Flashforge PA12-CF.json | 1 + .../filament/Flashforge PA6-CF.json | 1 + .../filament/Flashforge PA66-CF.json | 1 + .../filament/Flashforge PAHT-CF @FF C5.json | 1 + .../filament/Flashforge PAHT-CF @FF C5P.json | 1 + .../filament/Flashforge PAHT-CF @FF G4.json | 1 + .../filament/Flashforge PAHT-CF @FF G4P.json | 1 + .../filament/Flashforge PET-CF @FF C5.json | 1 + .../filament/Flashforge PET-CF @FF C5P.json | 1 + .../filament/Flashforge PET-CF.json | 1 + ...forge PETG Basic @FF AD5M 0.25 nozzle.json | 1 + .../filament/Flashforge PETG Basic.json | 1 + ...shforge PETG Pro @FF AD5M 0.25 nozzle.json | 1 + ...shforge PETG Pro @FF AD5X 0.25 nozzle.json | 1 + ...ashforge PETG Pro @FF AD5X 0.6 nozzle.json | 1 + ...ashforge PETG Pro @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PETG Pro @FF AD5X.json | 1 + .../filament/Flashforge PETG Pro @FF C5.json | 1 + .../filament/Flashforge PETG Pro @FF C5P.json | 1 + ...lashforge PETG Pro @FF G4 0.25 nozzle.json | 1 + ...shforge PETG Pro @FF G4 0.6 HF nozzle.json | 1 + ...Flashforge PETG Pro @FF G4 0.6 nozzle.json | 1 + ...shforge PETG Pro @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PETG Pro @FF G4 HF.json | 1 + .../filament/Flashforge PETG Pro @FF G4.json | 1 + ...ashforge PETG Pro @FF G4P 0.25 nozzle.json | 1 + ...hforge PETG Pro @FF G4P 0.6 HF nozzle.json | 1 + ...lashforge PETG Pro @FF G4P 0.6 nozzle.json | 1 + ...hforge PETG Pro @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PETG Pro @FF G4P HF.json | 1 + .../filament/Flashforge PETG Pro @FF G4P.json | 1 + .../filament/Flashforge PETG Pro.json | 1 + ...PETG Transparent @FF AD5M 0.25 nozzle.json | 1 + ...PETG Transparent @FF AD5X 0.25 nozzle.json | 1 + ... PETG Transparent @FF AD5X 0.6 nozzle.json | 1 + ... PETG Transparent @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PETG Transparent @FF AD5X.json | 1 + .../Flashforge PETG Transparent @FF C5.json | 1 + .../Flashforge PETG Transparent @FF C5P.json | 1 + ...e PETG Transparent @FF G4 0.25 nozzle.json | 1 + ...PETG Transparent @FF G4 0.6 HF nozzle.json | 1 + ...ge PETG Transparent @FF G4 0.6 nozzle.json | 1 + ...PETG Transparent @FF G4 0.8 HF nozzle.json | 1 + ...Flashforge PETG Transparent @FF G4 HF.json | 1 + .../Flashforge PETG Transparent @FF G4.json | 1 + ... PETG Transparent @FF G4P 0.25 nozzle.json | 1 + ...ETG Transparent @FF G4P 0.6 HF nozzle.json | 1 + ...e PETG Transparent @FF G4P 0.6 nozzle.json | 1 + ...ETG Transparent @FF G4P 0.8 HF nozzle.json | 1 + ...lashforge PETG Transparent @FF G4P HF.json | 1 + .../Flashforge PETG Transparent @FF G4P.json | 1 + .../filament/Flashforge PETG Transparent.json | 1 + ...lashforge PETG-CF @FF AD5X 0.6 nozzle.json | 1 + ...lashforge PETG-CF @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge PETG-CF @FF AD5X.json | 1 + .../filament/Flashforge PETG-CF @FF C5.json | 1 + .../filament/Flashforge PETG-CF @FF C5P.json | 1 + .../Flashforge PETG-CF @FF G4 0.6 nozzle.json | 1 + .../filament/Flashforge PETG-CF @FF G4.json | 1 + ...Flashforge PETG-CF @FF G4P 0.6 nozzle.json | 1 + .../filament/Flashforge PETG-CF @FF G4P.json | 1 + .../filament/Flashforge PETG-CF.json | 6 +- .../Flashforge PLA Matte @FF C5.json | 1 + .../Flashforge PLA Matte @FF C5P.json | 1 + .../Flashforge PLA Metal @FF C5.json | 1 + .../Flashforge PLA Metal @FF C5P.json | 1 + .../filament/Flashforge PLA Pro @FF C5.json | 1 + .../filament/Flashforge PLA Pro @FF C5P.json | 1 + ...hforge PLA Basic @FF AD5M 0.25 nozzle.json | 1 + ...hforge PLA Basic @FF AD5X 0.25 nozzle.json | 1 + ...shforge PLA Basic @FF AD5X 0.6 nozzle.json | 1 + ...shforge PLA Basic @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Basic @FF AD5X.json | 1 + .../filament/Flashforge PLA Basic @FF C5.json | 1 + .../Flashforge PLA Basic @FF C5P.json | 1 + ...ashforge PLA Basic @FF G4 0.25 nozzle.json | 1 + ...hforge PLA Basic @FF G4 0.6 HF nozzle.json | 1 + ...lashforge PLA Basic @FF G4 0.6 nozzle.json | 1 + ...hforge PLA Basic @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Basic @FF G4 HF.json | 1 + .../filament/Flashforge PLA Basic @FF G4.json | 1 + ...shforge PLA Basic @FF G4P 0.25 nozzle.json | 1 + ...forge PLA Basic @FF G4P 0.6 HF nozzle.json | 1 + ...ashforge PLA Basic @FF G4P 0.6 nozzle.json | 1 + ...forge PLA Basic @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Basic @FF G4P HF.json | 1 + .../Flashforge PLA Basic @FF G4P.json | 1 + .../filament/Flashforge PLA Basic.json | 1 + ...hforge PLA Buint Ti @FF G4 0.8 nozzle.json | 1 + ...forge PLA Buint Ti @FF G4P 0.8 nozzle.json | 1 + ...PLA Color Change @FF AD5M 0.25 nozzle.json | 1 + ...PLA Color Change @FF AD5X 0.25 nozzle.json | 1 + ... PLA Color Change @FF AD5X 0.6 nozzle.json | 1 + ... PLA Color Change @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Color Change @FF AD5X.json | 1 + .../Flashforge PLA Color Change @FF C5.json | 1 + .../Flashforge PLA Color Change @FF C5P.json | 1 + ...e PLA Color Change @FF G4 0.25 nozzle.json | 1 + ...PLA Color Change @FF G4 0.6 HF nozzle.json | 1 + ...ge PLA Color Change @FF G4 0.6 nozzle.json | 1 + ...PLA Color Change @FF G4 0.8 HF nozzle.json | 1 + ...Flashforge PLA Color Change @FF G4 HF.json | 1 + .../Flashforge PLA Color Change @FF G4.json | 1 + ... PLA Color Change @FF G4P 0.25 nozzle.json | 1 + ...LA Color Change @FF G4P 0.6 HF nozzle.json | 1 + ...e PLA Color Change @FF G4P 0.6 nozzle.json | 1 + ...LA Color Change @FF G4P 0.8 HF nozzle.json | 1 + ...lashforge PLA Color Change @FF G4P HF.json | 1 + .../Flashforge PLA Color Change @FF G4P.json | 1 + .../filament/Flashforge PLA Color Change.json | 1 + ...forge PLA Galaxy @FF AD5M 0.25 nozzle.json | 1 + ...forge PLA Galaxy @FF AD5X 0.25 nozzle.json | 1 + ...hforge PLA Galaxy @FF AD5X 0.6 nozzle.json | 1 + ...hforge PLA Galaxy @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Galaxy @FF AD5X.json | 1 + .../Flashforge PLA Galaxy @FF C5.json | 1 + .../Flashforge PLA Galaxy @FF C5P.json | 1 + ...shforge PLA Galaxy @FF G4 0.25 nozzle.json | 1 + ...forge PLA Galaxy @FF G4 0.6 HF nozzle.json | 1 + ...ashforge PLA Galaxy @FF G4 0.6 nozzle.json | 1 + ...forge PLA Galaxy @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Galaxy @FF G4 HF.json | 1 + .../Flashforge PLA Galaxy @FF G4.json | 1 + ...hforge PLA Galaxy @FF G4P 0.25 nozzle.json | 1 + ...orge PLA Galaxy @FF G4P 0.6 HF nozzle.json | 1 + ...shforge PLA Galaxy @FF G4P 0.6 nozzle.json | 1 + ...orge PLA Galaxy @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Galaxy @FF G4P HF.json | 1 + .../Flashforge PLA Galaxy @FF G4P.json | 1 + .../filament/Flashforge PLA Galaxy.json | 1 + ...rge PLA Luminous @FF AD5M 0.25 nozzle.json | 1 + ...rge PLA Luminous @FF AD5X 0.25 nozzle.json | 1 + ...orge PLA Luminous @FF AD5X 0.6 nozzle.json | 1 + ...orge PLA Luminous @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Luminous @FF AD5X.json | 1 + .../Flashforge PLA Luminous @FF C5.json | 1 + .../Flashforge PLA Luminous @FF C5P.json | 1 + ...forge PLA Luminous @FF G4 0.25 nozzle.json | 1 + ...rge PLA Luminous @FF G4 0.6 HF nozzle.json | 1 + ...rge PLA Luminous @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Luminous @FF G4 HF.json | 1 + .../Flashforge PLA Luminous @FF G4.json | 1 + ...orge PLA Luminous @FF G4P 0.25 nozzle.json | 1 + ...ge PLA Luminous @FF G4P 0.6 HF nozzle.json | 1 + ...ge PLA Luminous @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Luminous @FF G4P HF.json | 1 + .../Flashforge PLA Luminous @FF G4P.json | 1 + .../filament/Flashforge PLA Luminous.json | 1 + ...hforge PLA Matte @FF AD5M 0.25 nozzle.json | 1 + ...hforge PLA Matte @FF AD5X 0.25 nozzle.json | 1 + ...shforge PLA Matte @FF AD5X 0.6 nozzle.json | 1 + ...shforge PLA Matte @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Matte @FF AD5X.json | 1 + ...ashforge PLA Matte @FF G4 0.25 nozzle.json | 1 + ...hforge PLA Matte @FF G4 0.6 HF nozzle.json | 1 + ...lashforge PLA Matte @FF G4 0.6 nozzle.json | 1 + ...hforge PLA Matte @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Matte @FF G4 HF.json | 1 + .../filament/Flashforge PLA Matte @FF G4.json | 1 + ...shforge PLA Matte @FF G4P 0.25 nozzle.json | 1 + ...forge PLA Matte @FF G4P 0.6 HF nozzle.json | 1 + ...ashforge PLA Matte @FF G4P 0.6 nozzle.json | 1 + ...forge PLA Matte @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Matte @FF G4P HF.json | 1 + .../Flashforge PLA Matte @FF G4P.json | 1 + .../filament/Flashforge PLA Matte.json | 1 + ...hforge PLA Metal @FF AD5M 0.25 nozzle.json | 1 + ...hforge PLA Metal @FF AD5X 0.25 nozzle.json | 1 + ...shforge PLA Metal @FF AD5X 0.6 nozzle.json | 1 + ...shforge PLA Metal @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Metal @FF AD5X.json | 1 + ...ashforge PLA Metal @FF G4 0.25 nozzle.json | 1 + ...hforge PLA Metal @FF G4 0.6 HF nozzle.json | 1 + ...lashforge PLA Metal @FF G4 0.6 nozzle.json | 1 + ...hforge PLA Metal @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Metal @FF G4 HF.json | 1 + .../filament/Flashforge PLA Metal @FF G4.json | 1 + ...shforge PLA Metal @FF G4P 0.25 nozzle.json | 1 + ...forge PLA Metal @FF G4P 0.6 HF nozzle.json | 1 + ...ashforge PLA Metal @FF G4P 0.6 nozzle.json | 1 + ...forge PLA Metal @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Metal @FF G4P HF.json | 1 + .../Flashforge PLA Metal @FF G4P.json | 1 + .../filament/Flashforge PLA Metal.json | 1 + ...ashforge PLA Pro @FF AD5M 0.25 nozzle.json | 1 + ...ashforge PLA Pro @FF AD5X 0.25 nozzle.json | 1 + ...lashforge PLA Pro @FF AD5X 0.6 nozzle.json | 1 + ...lashforge PLA Pro @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge PLA Pro @FF AD5X.json | 1 + ...Flashforge PLA Pro @FF G4 0.25 nozzle.json | 1 + ...ashforge PLA Pro @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge PLA Pro @FF G4 0.6 nozzle.json | 1 + ...ashforge PLA Pro @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Pro @FF G4 HF.json | 1 + .../filament/Flashforge PLA Pro @FF G4.json | 1 + ...lashforge PLA Pro @FF G4P 0.25 nozzle.json | 1 + ...shforge PLA Pro @FF G4P 0.6 HF nozzle.json | 1 + ...Flashforge PLA Pro @FF G4P 0.6 nozzle.json | 1 + ...shforge PLA Pro @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Pro @FF G4P HF.json | 1 + .../filament/Flashforge PLA Pro @FF G4P.json | 1 + .../filament/Flashforge PLA Pro.json | 1 + ...shforge PLA Silk @FF AD5M 0.25 nozzle.json | 1 + ...shforge PLA Silk @FF AD5X 0.25 nozzle.json | 1 + ...ashforge PLA Silk @FF AD5X 0.6 nozzle.json | 1 + ...ashforge PLA Silk @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Silk @FF AD5X.json | 1 + .../filament/Flashforge PLA Silk @FF C5.json | 1 + .../filament/Flashforge PLA Silk @FF C5P.json | 1 + ...lashforge PLA Silk @FF G4 0.25 nozzle.json | 1 + ...shforge PLA Silk @FF G4 0.6 HF nozzle.json | 1 + ...Flashforge PLA Silk @FF G4 0.6 nozzle.json | 1 + ...shforge PLA Silk @FF G4 0.8 HF nozzle.json | 1 + .../Flashforge PLA Silk @FF G4 HF.json | 1 + .../filament/Flashforge PLA Silk @FF G4.json | 1 + ...ashforge PLA Silk @FF G4P 0.25 nozzle.json | 1 + ...hforge PLA Silk @FF G4P 0.6 HF nozzle.json | 1 + ...lashforge PLA Silk @FF G4P 0.6 nozzle.json | 1 + ...hforge PLA Silk @FF G4P 0.8 HF nozzle.json | 1 + .../Flashforge PLA Silk @FF G4P HF.json | 1 + .../filament/Flashforge PLA Silk @FF G4P.json | 1 + .../filament/Flashforge PLA Silk.json | 1 + ...orge PLA Sparkle @FF AD5M 0.25 nozzle.json | 1 + ...orge PLA Sparkle @FF AD5X 0.25 nozzle.json | 1 + ...forge PLA Sparkle @FF AD5X 0.6 nozzle.json | 1 + ...forge PLA Sparkle @FF AD5X 0.8 nozzle.json | 1 + .../Flashforge PLA Sparkle @FF AD5X.json | 1 + ...hforge PLA Sparkle @FF G4 0.25 nozzle.json | 1 + ...orge PLA Sparkle @FF G4 0.6 HF nozzle.json | 1 + ...shforge PLA Sparkle @FF G4 0.6 nozzle.json | 1 + .../Flashforge PLA Sparkle @FF G4 HF.json | 1 + .../Flashforge PLA Sparkle @FF G4.json | 1 + ...forge PLA Sparkle @FF G4P 0.25 nozzle.json | 1 + ...rge PLA Sparkle @FF G4P 0.6 HF nozzle.json | 1 + ...hforge PLA Sparkle @FF G4P 0.6 nozzle.json | 1 + .../Flashforge PLA Sparkle @FF G4P HF.json | 1 + .../Flashforge PLA Sparkle @FF G4P.json | 1 + .../filament/Flashforge PLA Sparkle.json | 1 + ...Flashforge PLA-CF @FF AD5X 0.6 nozzle.json | 1 + ...Flashforge PLA-CF @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge PLA-CF @FF AD5X.json | 1 + .../filament/Flashforge PLA-CF @FF C5.json | 1 + .../filament/Flashforge PLA-CF @FF C5P.json | 1 + .../Flashforge PLA-CF @FF G4 0.6 nozzle.json | 1 + .../filament/Flashforge PLA-CF @FF G4.json | 1 + .../Flashforge PLA-CF @FF G4P 0.6 nozzle.json | 1 + .../filament/Flashforge PLA-CF @FF G4P.json | 1 + .../filament/Flashforge PLA-CF.json | 6 +- .../filament/Flashforge PPA-CF @FF C5.json | 1 + .../filament/Flashforge PPA-CF @FF C5P.json | 1 + .../filament/Flashforge PPA-CF.json | 1 + .../filament/Flashforge PPA-GF.json | 1 + .../filament/Flashforge PPS @FF G4.json | 1 + .../filament/Flashforge PPS @FF G4P.json | 1 + .../filament/Flashforge PPS-CF @FF C5.json | 1 + .../filament/Flashforge PPS-CF @FF C5P.json | 1 + .../filament/Flashforge PPS-CF @FF G4.json | 1 + .../filament/Flashforge PPS-CF @FF G4P.json | 1 + .../filament/Flashforge PPS-CF.json | 1 + .../filament/Flashforge PVA @FF C5.json | 1 + .../filament/Flashforge PVA @FF C5P.json | 1 + ...ashforge TPU 65D @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge TPU 65D @FF G4 0.6 nozzle.json | 1 + ...ashforge TPU 65D @FF G4 0.8 HF nozzle.json | 1 + ...shforge TPU 65D @FF G4P 0.6 HF nozzle.json | 1 + ...Flashforge TPU 65D @FF G4P 0.6 nozzle.json | 1 + ...shforge TPU 65D @FF G4P 0.8 HF nozzle.json | 1 + ...lashforge TPU 95A @FF AD5X 0.6 nozzle.json | 1 + ...lashforge TPU 95A @FF AD5X 0.8 nozzle.json | 1 + .../filament/Flashforge TPU 95A @FF AD5X.json | 1 + ...ashforge TPU 95A @FF G4 0.6 HF nozzle.json | 1 + .../Flashforge TPU 95A @FF G4 0.6 nozzle.json | 1 + ...ashforge TPU 95A @FF G4 0.8 HF nozzle.json | 1 + .../filament/Flashforge TPU 95A @FF G4.json | 1 + ...shforge TPU 95A @FF G4P 0.6 HF nozzle.json | 1 + ...Flashforge TPU 95A @FF G4P 0.6 nozzle.json | 1 + ...shforge TPU 95A @FF G4P 0.8 HF nozzle.json | 1 + .../filament/Flashforge TPU 95A @FF G4P.json | 1 + .../filament/Flashforge TPU 95A.json | 6 +- .../filament/Flashforge TPU-64D @FF C5.json | 1 + .../filament/Flashforge TPU-64D @FF C5P.json | 1 + .../filament/Flashforge TPU-90A @FF C5.json | 1 + .../filament/Flashforge TPU-90A @FF C5P.json | 1 + .../filament/Flashforge TPU-95A @FF C5.json | 1 + .../filament/Flashforge TPU-95A @FF C5P.json | 1 + .../FusRock PAHT @FF G4 0.6 HF nozzle.json | 1 + .../FusRock PAHT @FF G4 0.6 nozzle.json | 1 + .../FusRock PAHT @FF G4 0.8 HF nozzle.json | 1 + .../FusRock PAHT @FF G4P 0.6 HF nozzle.json | 1 + .../FusRock PAHT @FF G4P 0.6 nozzle.json | 1 + .../FusRock PAHT @FF G4P 0.8 HF nozzle.json | 1 + .../filament/FusRock PAHT-CF @FF C5.json | 1 + .../filament/FusRock PAHT-CF @FF C5P.json | 1 + .../FusRock PAHT-CF @FF G4 0.6 nozzle.json | 1 + .../filament/FusRock PAHT-CF @FF G4.json | 1 + .../FusRock PAHT-CF @FF G4P 0.6 nozzle.json | 1 + .../filament/FusRock PAHT-CF @FF G4P.json | 1 + .../FusRock PET @FF G4P 0.8 HF nozzle.json | 1 + .../FusRock PET-CF @FF G4 0.6 nozzle.json | 1 + .../filament/FusRock PET-CF @FF G4.json | 1 + .../FusRock PET-CF @FF G4P 0.6 nozzle.json | 1 + .../filament/FusRock PET-CF @FF G4P.json | 1 + .../filament/FusRock S-Multi @FF C5.json | 1 + .../filament/FusRock S-Multi @FF C5P.json | 1 + .../filament/FusRock S-PAHT @FF C5.json | 1 + .../filament/FusRock S-PAHT @FF C5P.json | 1 + .../FusRock/FusRock Generic NexPA-CF25.json | 2 +- ...sRock Generic PAHT-CF @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic PAHT-CF.json | 3 +- .../FusRock/FusRock Generic PAHT-GF.json | 2 +- ...usRock Generic PET-CF @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic PET-CF.json | 3 +- .../FusRock/FusRock Generic PET-GF.json | 2 +- ...sRock Generic S-Multi @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic S-Multi.json | 2 +- ...usRock Generic S-PAHT @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic S-PAHT.json | 2 +- .../filament/Generic ASA @Flashforge AD4.json | 2 +- .../Generic PET @FF G4 0.6 HF nozzle.json | 1 + .../Generic PET @FF G4 0.6 nozzle.json | 1 + .../Generic PET @FF G4 0.8 HF nozzle.json | 1 + .../filament/Generic PET @FF G4.json | 1 + .../Generic PET @FF G4P 0.6 HF nozzle.json | 1 + .../Generic PET @FF G4P 0.6 nozzle.json | 1 + .../Generic PET @FF G4P 0.8 HF nozzle.json | 1 + .../filament/Generic PET @FF G4P.json | 1 + .../Generic PETG-CF10 @Flashforge AD4.json | 2 +- .../Generic PLA Silk @Flashforge AD4.json | 2 +- .../Generic PLA-CF10 @Flashforge AD4.json | 2 +- .../Generic TPU 85A @FF AD5X 0.6 nozzle.json | 1 + .../Generic TPU 85A @FF AD5X 0.8 nozzle.json | 1 + .../filament/Generic TPU 85A @FF AD5X.json | 1 + .../filament/Generic TPU @Flashforge AD4.json | 2 +- .../filament/Generic TPU-64D @FF C5.json | 1 + .../filament/Generic TPU-64D @FF C5P.json | 1 + .../filament/Generic TPU-90A @FF C5.json | 1 + .../filament/Generic TPU-90A @FF C5P.json | 1 + .../filament/Generic TPU-95A @FF C5.json | 1 + .../filament/Generic TPU-95A @FF C5P.json | 1 + .../Polymaker CoPA @FF G4 0.6 HF nozzle.json | 1 + .../Polymaker CoPA @FF G4 0.6 nozzle.json | 1 + .../Polymaker CoPA @FF G4 0.8 HF nozzle.json | 1 + .../Polymaker CoPA @FF G4P 0.6 HF nozzle.json | 1 + .../Polymaker CoPA @FF G4P 0.6 nozzle.json | 1 + .../Polymaker CoPA @FF G4P 0.8 HF nozzle.json | 1 + .../Polymaker/Polymaker Generic CoPA.json | 2 +- .../Polymaker/Polymaker Generic S1.json | 2 +- scripts/filament_id_snapshot.json | 1421 ++++++++++++++--- 509 files changed, 1710 insertions(+), 291 deletions(-) diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json index 83e1c85730..3971dfdbe0 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "M9HM8tihJzV4crs8", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json index f94eafbe9d..ada99c3b7a 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "08VjBSha6gjhJYgk", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json index d5c6c3c33d..224f0bcecf 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "JqgkmxnjlnQ3uw1u", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json index 2bf41bc64b..e712311eb7 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "vvLLPvSeb5PYbT1R", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json index e8806df046..2e574b8dec 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "mPJMPfFCyfWdKzMO", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json index 56562e51e7..f3e61a04b2 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HTgqTUTznOlfCRAd", + "filament_id": "OFL7vEML", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json index e5b251acab..cc05448a52 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "3w8fnDjkoFaJ6Nhw", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json index 7394511a16..0ba30d9ee6 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "owHbDqY55rFtSegz", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json index 87e74372e5..29ffe9c98e 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "eFK1zzT1JY9ZnEl9", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json index 7d6d3c1a95..ae67869d15 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "E8CcstoHzax78ZJY", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json index 01672b8f65..44ca312535 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "xa22FD8bRVGsLiPJ", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json index ff77d7095a..d6fe454c37 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "bZ9dbA8dIu9mjWyN", + "filament_id": "OFgJX0Fc", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json index b1cb0787b5..0e1dfd9b33 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "4w0oK3F50O1DUqsu", + "filament_id": "OFmduKVr", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json index fc6f6e975a..6133699c0b 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "94vPnztRcpnbfAKx", + "filament_id": "OFmduKVr", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json index dc0989bbc4..97f3d5f8fd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SuEfcE6AYK8N1FI4", + "filament_id": "OF5T1Y9R", "instantiation": "true", "filament_settings_id": [ "Flashforge ABS Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json index 0deb98db56..e37450d400 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gmkc6fRLMI73Iut8", + "filament_id": "OF5T1Y9R", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json index 7f8ec43e72..bb30b1725b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "fgEYZ1Mgyp1AvtwU", + "filament_id": "OF5T1Y9R", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json index 0f95b37aad..a426566340 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "cIxbQMVdG5K85rJr", + "filament_id": "OF5T1Y9R", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json index 4b533b00a7..bbfa73ccd4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "9GXBeuCUrScJfmJB", + "filament_id": "OF5T1Y9R", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json index d53b5cc2c1..b9251a5672 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ds0GgE1jssl4IbF3", + "filament_id": "OF5T1Y9R", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json index eb4ee53f53..0ab31a8276 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UTWbwTYuXYbBx3uw", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json index fe13cbb5cb..09a01dd503 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "CuckX5MsN69806ow", + "filament_id": "OF5T1Y9R", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json index 4a3bd054b2..f9a0433cae 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "NttDJCrfB01uwMDl", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json index 594f291957..171484abbb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "hJd6dG6OdEffEFC7", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json index 34d1f4e94c..7143e0b03a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "8yFCuCnEuI3dUvQy", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json index 60847876a0..2734feeb55 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "np4fP5kghRlczOTT", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json index f267e9bc74..a669c267b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "8o2maTFOXq0XR6Dm", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json index 1ec700928b..0d556da17d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "MBo02hFXn0ebDRdb", + "filament_id": "OF5T1Y9R", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json index baa7e84ede..bbf04ce6bd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "vCsjC0UnKenzIR0O", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json index d4b2a75adb..29fb16653b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "xhxVdlmh5r7meoHo", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json index ce8cb40ddc..1ef697a83b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "6dlQN4Xhd6kGZ0Qn", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json index 9518e3fb1c..12d1a7c767 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "r8WVFPozL8f5oLVJ", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json index 80ad9a2da8..798bc592bb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "xw0pZNmhw1K4tPQ1", + "filament_id": "OF5T1Y9R", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json index 3e93a31243..868e133f3e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "m6QLC2UaS3fW298i", + "filament_id": "OF5T1Y9R", "instantiation": "true", "filament_settings_id": [ "Flashforge ABS Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json index 3b7c0a2db6..4ea4ae4577 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Nx3Px0Zu356IKShT", + "filament_id": "OFWs8KIZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json index a17e48af0d..b45e46341e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "d4EGsmMeEDCOUBF2", + "filament_id": "OFWs8KIZ", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json index ed4c177d18..b925f68e88 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "9ziPFKsjESbw1pXL", + "filament_id": "OFWs8KIZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json index dd952e95a1..16bcc1aeb3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "NzJJs6yrSik5xuyX", + "filament_id": "OFWs8KIZ", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json index 3b1b422c33..1074c58061 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UinlbuXNbad2kN0s", + "filament_id": "OFqRWRU6", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json index 72364ebe47..e4f1909d8a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ycgiXY41kqNgslE3", + "filament_id": "OFqRWRU6", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json index fcdb3faedd..6a0253be4a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "kjS4k8nrIdNNNoWw", + "filament_id": "OFcy60o4", "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json index 3294344bd4..618cfdea27 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "Y647IFVkk5JIXzte", + "filament_id": "OFcy60o4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json index 9904aea39c..bf4a2d3194 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "vaOyXUcrJ97KE7ZW", + "filament_id": "OFcy60o4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json index 4353992934..f74bcf4ab7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "iLWq5pJ3ox9EAM1Z", + "filament_id": "OFcy60o4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json index cb4a543dbd..4c3018a061 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "i7PUPYxy0Z9weyyA", + "filament_id": "OFcy60o4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json index 485f06e046..3aef25a533 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UUSDyOetXSOuBIUd", + "filament_id": "OFcy60o4", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json index 4af0b8b47c..bcbd9d4721 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "2r0kwhklE24Hp94O", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json index dae515a9aa..a852169f49 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XWta5jJFsCxBdEPd", + "filament_id": "OFcy60o4", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json index 4c35d0a62b..3bff670e7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "w8O6oenp0NymzCqf", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json index e4435448ae..8fcf3f85f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "thhmWRzNYLYJOeR2", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json index 86d4e12b4c..664728993c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "g5jiz6Q6or23BIo7", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json index 890dd75f0f..fb7e77b65a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "7xmWlHHNMvXBKdYS", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json index 4826e42eba..35e761b241 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "r0B8KfZ1mNWMvGqE", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json index 76cd89a82a..9d39413ec7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "quOwRRLcNfOy0sYf", + "filament_id": "OFcy60o4", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json index 324c9eec04..616e70bf34 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "CBLZqLhkwf5XKO12", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json index 461aa7bd0a..75777b3205 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Df3anJxiRXLVO9hw", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json index 0c0cc1aab1..401ffeabaa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Nu4WvBWuEhazZfh5", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json index 9a59d625d2..9e6b37e48c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "hF0h4ye3hMDtEba1", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json index 3a10f337b9..761dd56a4c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "3isZCWr4CBjFtGDX", + "filament_id": "OFcy60o4", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json index 7ccef601f3..b56e5b0453 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "SU6r879TbQMUFCij", + "filament_id": "OFcy60o4", "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json index 9956e193ee..575f408c5f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "TqU1elqwuVr9EhTA", + "filament_id": "OFM3PeVe", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json index c2a78c9e11..fbad5b186b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "nMczAtoc5W0J2WkS", + "filament_id": "OFM3PeVe", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json index 846cf4c76a..d59ed639a3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "ap7X4nWKfFR53NT0", + "filament_id": "OFM3PeVe", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json index d0ad27e1cd..ed2467c6e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "kZXg6odPm5iW79Qn", + "filament_id": "OFM3PeVe", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json index 02db6bfea9..30ead39e25 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "CI5dvVrCNk2XTU82", + "filament_id": "OFM3PeVe", "instantiation": "true", "filament_flow_ratio": [ "0.99" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json index 3a328388df..b3c448494f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "941E5MaAyFY3iv4V", + "filament_id": "OFdNORGt", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json index 46857c2b13..e970fdff0a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "RdmsxyUGUX8Ot4oj", + "filament_id": "OFdNORGt", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json index 1f6b35db19..5de9f959cc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json @@ -23,7 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json index d5b0d17c25..510ad8c55d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "spSRbidSN2yeZLhD", - "filament_id": "GFL99", + "filament_id": "OF4RKeng", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json index c0819fa0b1..ccae1871bc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "gVLGkoCoyrWL4DQr", - "filament_id": "GFB99", + "filament_id": "OF4RKeng", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json index fcce2738f5..1c7532543e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "c6IMgUyqOeS2HFWw", - "filament_id": "GFB99", + "filament_id": "OF4RKeng", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,7 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json index d7b6844c78..9f6e882f68 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "jMCunppmYOH5QIra", - "filament_id": "GFL99", + "filament_id": "OF4RKeng", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json index baf6514cd9..e6d8e037e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "b3CFhGGnZLzpyAWa", - "filament_id": "GFB99", + "filament_id": "OF4m9A5w", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json index 18f52c4f1f..56ac8dc465 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "n68nw5tzKZ0rq43O", - "filament_id": "GFB99", + "filament_id": "OF4m9A5w", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,7 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json index 93ee8f80cb..e95a14c2e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "1cvcaoBFNbg2GucE", - "filament_id": "GFL99", + "filament_id": "OFYZs7dN", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json index c67de4ecd3..2989f84021 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "foG37d7HZKgt6l43", - "filament_id": "GFL99", + "filament_id": "OFYZs7dN", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json index 2183965821..d9327f20f5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "W7pWKQ2EWAB5viV1", - "filament_id": "GFB99", + "filament_id": "GFG99", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json index 3e61f73029..227d881f06 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "eDQb2WfDsUTvj2Nf", - "filament_id": "GFB99", + "filament_id": "GFG99", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json index 075e2e4923..ecf04bdd2b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "yo4uc7TxQbqnlRUY", - "filament_id": "GFB99", + "filament_id": "GFG99", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,8 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", - "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json index 385ec94b64..75a1d34349 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "u2OzNKIQIKUrOT9k", - "filament_id": "GFB99", + "filament_id": "OFC5CCeo", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json index 4efa8a0a0f..d87f65a404 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "7Qq8eY1kcFHTgzW3", - "filament_id": "GFB99", + "filament_id": "OFC5CCeo", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json index d3fb0d6590..b1013b2c99 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "gLrecba33jDI9PeI", - "filament_id": "GFB99", + "filament_id": "OFC5CCeo", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,8 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", - "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json index 934ba831ef..7c5de370cb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "PlC4Ek7d09ytYZqJ", - "filament_id": "GFG99", + "filament_id": "OFK39W9u", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json index 57b925762b..34351c7dac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "KR0LUSD7wd55oNI6", - "filament_id": "GFB99", + "filament_id": "OFm1VZed", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json index 7300eb4bf4..9b5972f97d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "rQSFNxuuqUVzsSV2", - "filament_id": "GFB99", + "filament_id": "OFm1VZed", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json index f236a9a83b..b6507fda5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "S1UTm2oMRoQ4yM4R", - "filament_id": "GFB99", + "filament_id": "OFm1VZed", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,8 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", - "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], "compatible_printers_condition": "", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json index 29b86ed5b1..6ef0248721 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "qH3l3p0yvZHqHnwG", - "filament_id": "GFL99", + "filament_id": "OFKWVi10", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json index d04d5eb4cf..61fcd364c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "WOl0JsKxAQFo2WnW", - "filament_id": "GFL99", + "filament_id": "OFAEqlWa", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json index bb3acc4145..f3b4f693c1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "NryK9oIg8wMDKVHW", - "filament_id": "GFL99", + "filament_id": "OF41QVDH", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json b/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json index 6adaf46d6e..d94e75d3df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NA0PhaTNDvEH38lF", - "filament_id": "GFB99", + "filament_id": "OFLeFaUO", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json b/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json index 473ba6ac33..57d88732de 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "zQEeIIKWSgsDqlpI", - "filament_id": "GFG99", + "filament_id": "OFviQ9lH", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json index b9a10c1f18..dbcf163dda 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "ckwc7U0Q2eKHmCxY", + "filament_id": "OFhzHd2Y", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json index 8a61df2fe2..38411b21ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "AEQYrT7e4Q5J2G6C", + "filament_id": "OFhzHd2Y", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json index 81c501eee9..cd5ca2143f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "jUNUZhE0BJyB64fC", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json index 34dacd8f8d..e4b4e3171d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "0qMEqo9YMDLSVafs", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json index 756f4ddbf2..03cf58e9e0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "ek749gIdUAPq6WxT", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json index 9ca5d033bd..768677d41f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "tEohTtyHofD6l6o3", + "filament_id": "OFhzHd2Y", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json index 2e977fd084..f2de81ad74 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "oLeLrIjFJzoZha3E", + "filament_id": "OFhzHd2Y", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json index 6ae4e562a2..7ea19866be 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "HXGUlYY4X5IHhL3R", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json index 9354f7ede7..3a44280bc2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "g22Cv3zy3h5BhJYK", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json index 980ab69f11..5943947947 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "aDzBXuvN7IuSP5sa", + "filament_id": "OFhzHd2Y", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json index 6f7493a72b..a3cc583ed8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "CIj24REX7BA8zPHQ", + "filament_id": "OFhzHd2Y", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json index 7d0d9befb3..440cfd4f97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "yAGyGjF6uDrjfjLn", + "filament_id": "OFhzHd2Y", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json index fbb47b2d7f..b48169a92a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "1NFhtEvvvgZiHcto", + "filament_id": "OFZQFvHQ", "instantiation": "true", "filament_settings_id": [ "Flashforge HS PETG @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json index fc0e4c7cee..62f46f554c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "eNOkWn5PT8rDpA0g", + "filament_id": "OFZQFvHQ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json index a6a28ae753..72f4577557 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "vOqAGzaYLz0XdRvC", + "filament_id": "OFZQFvHQ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json index 28c7208fad..682416a4eb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "KSuxZ3fpQz0khDSz", + "filament_id": "OFZQFvHQ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json index 3b495aebe8..7e32268d01 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "o4B1kAToVny7jw0M", + "filament_id": "OFZQFvHQ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json index 5c0421a23e..87b5639be7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "kpRved5M3NktqIYn", + "filament_id": "OFZQFvHQ", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json index ca2dcd370c..1e6c9b04dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "ypxgjHl9uIMyZIce", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json index b8f6997d97..f98635dba8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "uXGuyvVxfdQW22vu", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json index 785fd2495b..883143b259 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "q9UbakUmZPzG3xU0", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json index 57c2e5ca72..f781edfdca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "IL18Lu0qHx1RVqKD", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json index f8cfba7acd..3e1a003ac6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "2FQib7fZjcwfCnm2", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json index 16e88eeb42..b800e1566d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "CtwOm90WWD4S7U6j", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json index bc806c44d8..c3d6594e7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "kvULpm0WhKiSPj8V", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json index b14a0b44ba..5df6b09e97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bFVYSPkynBBapFjq", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json index dfb79c840d..ab726c53a1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "CUU7knzm4cbe1giE", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json index 6c36ff1fbb..b5dc6efb69 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "gcYvL572cumWZdnl", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json index a58ddca149..24fbd0279f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "cx99AH0C575XxAj9", + "filament_id": "OFZQFvHQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json index 35a01b21ce..fdade2f06c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "RrrKoR7MVD8IFQlq", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json index a30f562b42..07c144a574 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "7VEPGuR16wNukAX2", + "filament_id": "OFZQFvHQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json index 38054ea5ae..7ade77bb7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "H9uwlPw6m6Nf7qH5", + "filament_id": "OFZQFvHQ", "instantiation": "true", "filament_settings_id": [ "Flashforge HS PETG" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json index 0ee65ec44f..e209b455e4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "OmDped3weZ4uHAtY", - "filament_id": "GFL99", + "filament_id": "OFoJUGj6", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json index 266200739a..aaac58ce66 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bfPaqPGaR5zpTsLk", + "filament_id": "OFoJUGj6", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json index 7169a76fdf..7be6dbc727 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "oD592bif4ra0ADco", + "filament_id": "OFoJUGj6", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json index 94da672d0f..c8f5744361 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "ldhMY6F7v6nK8wwf", + "filament_id": "OFoJUGj6", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json index edf25222de..01b6e9deb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "5vzOmbjHbkJXrgYM", + "filament_id": "OFoJUGj6", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json index 310fc73a32..b9e2ebeb4e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xSJk7LFpYKmckPQh", + "filament_id": "OFoJUGj6", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json index 87c4ffd656..681d576ed0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xdFZUsj1cNLXdvT6", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json index ff783fbf10..89eed340d5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "JCQtuv8Abfz4jVRV", + "filament_id": "OFoJUGj6", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json index 7f4547dc19..a9e238131c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "hzxRPyH1fqarsMuN", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json index ba5f92ca7c..b25007568d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "oJsLlIIpxwGSoJTv", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json index f0fcb415c6..06a4d1a82a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "hJbNZ381ERkZ0KUB", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json index eb253a97db..6dcedacb73 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "BqavrNpwhXDXcZ3r", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json index a1acf9af42..bf84dbab17 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "cgf4Qk4iHZh7zHN5", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json index b399b0cf77..e204e3e522 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jFUS6233aq4XPgrn", + "filament_id": "OFoJUGj6", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json index 0c14a75478..eab85e45a4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "p31K69Srld6o4sQ2", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json index 5b4e2d04d4..e434c6b72c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "MwbYvnRIzlNmH81h", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json index 40c2ae337a..0d1632b731 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "rKhHmkqXYD2xN4K9", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json index 8871c32fc4..d67d10a948 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "Dshsi3O7NvYYjXJt", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json index 82b514d1af..a3d4f51084 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "mfnL6QEevCmTmOL0", + "filament_id": "OFoJUGj6", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json index a5326ae2b7..0b2c003337 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "AGLHrHKWye0YTtNK", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json index e7f97301bd..00f8b13d72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "px8qzmB2yFLoNl83", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json index 9d8e653cec..8c10583b55 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "mwuIEsBz5bXEV68w", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json index 7b61a8668d..c32c16112f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "TielygFT88owWg4J", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json index b15214f50b..154d526928 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "It2NI6OFhNEUvulz", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json index 4320a3fce3..710cae4899 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Qt3huWxoYpMEqEN6", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json index c5a76c1d85..3d753e4106 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Y3XuavnnOMoHLGHA", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json index 034a1ee969..aae20613af 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "2HUxAWeolJIlxPs1", + "filament_id": "OFeWMAGH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json index 355d9f6d1e..c7e39f8682 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "vdaZBnDsmUC1fhDp", + "filament_id": "OFoJUGj6", "instantiation": "true", "filament_settings_id": [ "Flashforge HS PLA" @@ -14,9 +15,6 @@ "Flashforge Adventurer 5M 0.8 Nozzle", "Flashforge Adventurer 5M Pro 0.4 Nozzle", "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", - "Flashforge AD5X 0.4 nozzle", - "Flashforge AD5X 0.6 nozzle", - "Flashforge AD5X 0.8 nozzle" + "Flashforge Adventurer 5M Pro 0.8 Nozzle" ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json index bf571e2ea3..fdeac081b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "u7rolQaTQz9U6veH", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json index 4672cfc77c..cac1c966a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "qTGTwiliWj3dSo9y", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json index 5576d9ff98..5b052ff3ef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "wAkuJRTLWxGyBU0b", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json index c80656c59f..a469e9cae6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "dbs29hQSQl9zuWis", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json index ad3daa8504..79da7aa9a1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "XGNPvS2ps7Xn2fpx", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json index 8946fa929c..1339bfd17a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "h33iEGZ7wPeBYKYQ", + "filament_id": "OFi1ocNv", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json index 80326684a6..9ca2ac4d29 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "e58C9MdOWikIbbVR", + "filament_id": "OFOSzSuh", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json index 8134b2b258..4c6085c781 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "RX2Tg8KpwQpCbkLI", + "filament_id": "OFOSzSuh", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json index 952162aaa2..370f016030 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "C4DfYuQgDXIgK7mk", + "filament_id": "OFOSzSuh", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json index ae3207a7b1..106dbf9dec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "Yu7hL4izNsgDVqMT", + "filament_id": "OFOSzSuh", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json index 8fe4514502..78961a532c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "1CevPV960sQWT3NF", + "filament_id": "OFMHTnPP", "instantiation": "true", "filament_density": [ "1.1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json index 8dbd624a6e..9b3764431d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "NGbZ8pQVTRKw28kp", + "filament_id": "OF0SyJhk", "instantiation": "true", "filament_density": [ "1.1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json index bcaea09005..7c2384dad6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "5pVoGBvbiUlrJSwR", + "filament_id": "OFkaDtKx", "instantiation": "true", "filament_density": [ "1.1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json index 7437791891..f4b7cac893 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "8ZR8o3MKYxXLd70k", + "filament_id": "OFsgANe3", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json index e83a93e113..22ae3064bf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "FSfGFl7FCutxXN2l", + "filament_id": "OFsgANe3", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json index 1758aa7657..784d279539 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "ZlpBAM9uaS01sWAJ", + "filament_id": "OFsgANe3", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json index c17b5eeed1..f5b823f2ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "9DaSYBA2OI7Jj5zS", + "filament_id": "OFsgANe3", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json index 1036a51c4b..a993eeeae0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "3bguiaEtUsS8ULHW", + "filament_id": "OFPJJxkF", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json index 9b0c2204a3..af92eaae0a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "W6i9E22BVo11TeCm", + "filament_id": "OFPJJxkF", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json index eac6f732f4..e5e005fd48 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "vflpXTS9GwnODQDH", + "filament_id": "OFPJJxkF", "instantiation": "true", "filament_density": [ "1.1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json index 656e7c3203..339ae66b90 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xOZQvdZa1YCcnjor", + "filament_id": "OFuyJhLF", "instantiation": "true", "filament_settings_id": [ "Flashforge PETG Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json index 9b1e4c0dff..3517994360 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "YLLJ4xZI704GReej", + "filament_id": "OFuyJhLF", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json index 712f68eb71..97e6a20e7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8EUg1hTLfsyDPbnG", + "filament_id": "OF38Hyk4", "instantiation": "true", "filament_settings_id": [ "Flashforge PETG Pro @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json index 8d400e1b23..2d32a805ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "UKhV8A2DBc1xyNWc", + "filament_id": "OF38Hyk4", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json index 0d98e07a7a..13c8b20ac5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "dFZ1MmHjj1AAIaMm", + "filament_id": "OF38Hyk4", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json index 0d59fd73fe..5484136b0c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ro3rt7IAJrA5aZD6", + "filament_id": "OF38Hyk4", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json index e48a6c5082..c25162b722 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "cTxrnqzr2wVt4Nj7", + "filament_id": "OF38Hyk4", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json index d2f664b108..fa691e2aee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "QA1KD03F0zj2zsVi", + "filament_id": "OF38Hyk4", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json index 3c11370099..bd9d2e2c35 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "EU8Q0XLjED23MNer", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json index 77cbe8d5b5..182617e5aa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XFSgx95whLw5FD08", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json index ea6f2e9f9c..661e69ffc5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "8x6yU2U8d5f67N73", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json index 78f83738b2..9243316595 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "4W0nfaSSZdg2HQkh", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json index e41dd59589..451eb9ca86 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "AJcugKx4qHPJ3JAT", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json index 915bbb6753..3816155365 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "R0nZuLXEo5qA6Mt8", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json index 825a5b8fed..5ea3f9aef1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ql2BBBymzqEG7GKk", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json index 28c0815822..80971691dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8Jc4eedkknqNB87s", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json index 23bdac347c..6761b073c8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "KU5tDHAKja1sCoHm", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json index 54ed2d165a..4f893a3514 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "sb6jD3UZmb0DNIsC", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json index 19f6034de1..9dc63bc699 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "4BB1wJLtsXus5eyY", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json index a2848c8bc6..88104a14ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "m7oJx47UMlFctMkX", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json index 0079505531..f254e10c43 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "ozD2wU5UiORTtJsa", + "filament_id": "OF38Hyk4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json index 13da0b478b..13537ce8a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "IQfUoy7gTmVmBDL5", + "filament_id": "OF38Hyk4", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json index a199aa5af8..656e6cfa51 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "W59yTyPnVv4LYiah", + "filament_id": "OFRgDMDJ", "instantiation": "true", "filament_settings_id": [ "Flashforge PETG Transparent @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json index a623c9288d..996ed62e1d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "NRY4fsPNtnqs0kyH", + "filament_id": "OFRgDMDJ", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json index 65ff48dac6..2182a95ed7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ht7wzk8l0b1kv5tZ", + "filament_id": "OFRgDMDJ", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json index f3b8f3859b..ae05326e13 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "NJFHpa5HFHIyHSWu", + "filament_id": "OFRgDMDJ", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json index 56c3f5e1e5..df5fbfb1ec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "UaObrRNSTwitC6jr", + "filament_id": "OFRgDMDJ", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json index 67a5179794..9071f16ddf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "TtXy042wtT6nF3WB", + "filament_id": "OFRgDMDJ", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json index 1d26593dc4..f39398a73f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "66OWHhGyuaFISu6v", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json index e2c1e5a662..452cabe424 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "p5c6XJ1VD8cn2Meh", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json index 827d4fe8af..b9f665f3d0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "K8WkJmFy2V1zhYQO", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json index a92d725a2b..ac3c87f8b1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "LLK1hwKZhDU8SaGJ", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json index 1020d428d7..32a964d155 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "LaUF2HJtBnpZF7Cd", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json index 63ba03680d..2336789ee8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "OUToXk8ddS1RPPUK", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json index f88a28c989..c0a189a297 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "ywff8rI39XKjcocY", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json index 50e0bb7150..a25a050f9f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "C0VV5Uzsl4icRgKa", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json index 9d2ad17397..76504bd857 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "kuCvwo6Phr6Ywhm4", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json index 1e1717f741..1b447ef7df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "Z2E69w9AevYg15tl", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json index 0e2202e3dd..98ca9782f1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "RkQaxwTjhJK0A3zr", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json index 087167a1a3..f6e5ac3dc7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "YBQTMes2S9iJjKDf", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json index 938ea5875a..adc9b3ef23 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "lCngVWG3q0FWsnrG", + "filament_id": "OFRgDMDJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json index f06fa5258b..62e796f2cd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "3Gv6MJ3RRja5pbOM", + "filament_id": "OFRgDMDJ", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json index e335c18107..c59d59c97a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "bcqYod61blJRzhK2", + "filament_id": "OFoimrpo", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json index 58c69dbf09..e3dae3bbd7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "CnFKOi7fFyS8QlKK", + "filament_id": "OFoimrpo", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json index 55f8d200b1..46641e0704 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "eKWJW36I5fVHwjWD", + "filament_id": "OFoimrpo", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json index 2939916d3c..452f3a0c9a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "RXRERfs2oQKewpPS", + "filament_id": "OFoimrpo", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json index cc565d4999..36fefc9926 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "8Ns75F5n2fdQ8sDk", + "filament_id": "OFoimrpo", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json index 514ce0d360..e4dc5d17df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "4EgMPzlVo1rTeQ1e", + "filament_id": "OFoimrpo", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json index b44d204d6b..d11d07fe15 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "K9ME1F4oJkPi8jRu", + "filament_id": "OFoimrpo", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json index 5a6548fd04..fdf37f0ebe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "9jCp0gTjB3Mt95Mj", + "filament_id": "OFoimrpo", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json index 796e883fd8..c109735df5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "d5OleuNNZBJK9vxH", + "filament_id": "OFoimrpo", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json index 78eef9b46a..b9af31fcab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "MpG61mwVUtJ7t602", + "filament_id": "OFoimrpo", "instantiation": "true", "filament_settings_id": [ "Flashforge PETG-CF" @@ -14,9 +15,6 @@ "Flashforge Adventurer 5M 0.8 Nozzle", "Flashforge Adventurer 5M Pro 0.4 Nozzle", "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", - "Flashforge AD5X 0.4 nozzle", - "Flashforge AD5X 0.6 nozzle", - "Flashforge AD5X 0.8 nozzle" + "Flashforge Adventurer 5M Pro 0.8 Nozzle" ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json index 7a0caeba59..48798f6b98 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "UQF0kAaXnZgJGK4o", + "filament_id": "OFftQOek", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json index 36782a176c..45c5379b97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "FpLoe6QrPXnrH019", + "filament_id": "OFftQOek", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json index 632ffa476f..839a09c93b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "YFbZ472BRNga6OpQ", + "filament_id": "OFlNKZLP", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json index 01c9b77fe3..c0081e14d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "AtVxriSKOrFZzUun", + "filament_id": "OFlNKZLP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json index b5fddb2af6..535d2b6b31 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "47Q7YXoJ7rD7Vu21", + "filament_id": "OF0wk0Pk", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json index 913081a778..c786b1643e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "v7vYsiPVka4c1CUW", + "filament_id": "OF0wk0Pk", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json index 15aa47eada..8043805bec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "3fuVuyVcn8U0bRJQ", + "filament_id": "OFHBTqyD", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json index 7632049ce6..53165d7174 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "FrRRUl5OT773uCju", + "filament_id": "OFHBTqyD", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json index 8b80f0ab26..004d9992a1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "gMmhMDqjmJfAYcbV", + "filament_id": "OFHBTqyD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json index ce1a822ce3..b738bc9afb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "0OsrtqfIxrEJMwac", + "filament_id": "OFHBTqyD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json index 70f3451691..9d5819953e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "fuzWVrfZqekMETLK", + "filament_id": "OFHBTqyD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json index 4596bb8286..0228ff0de8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "FmUnckQofjunAtwr", + "filament_id": "OFHBTqyD", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json index b4ee22beee..3fb9fc2585 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "Q0RsVOPLuMByur9c", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json index 02897b8eec..cb49ae9309 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "QXJgY8OPyaoYUI1D", + "filament_id": "OFHBTqyD", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json index cc6a2a104e..05913a7f19 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "R54l7TcwsjdPHvNB", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json index 036357790a..16a51fa761 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "MELEwYupDkT2DPxL", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json index 5612c00943..84dcbd7a1f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "uGLvOoPAfksLO43M", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json index 3a96df6696..63f3c30349 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "gGpKvk3rnLuTjOwo", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json index 690066aefa..27cc6bac6a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Yopqnj4b5ZVwigGx", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json index f1b070e45e..7d438c66c4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "GrwiA2dArUGV9x2g", + "filament_id": "OFHBTqyD", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json index 094f397950..b9804e95e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "QEfQrqMwApuSMqih", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json index fdf52ed1e2..9552e043db 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "BAPIn3eJAPGpscRJ", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json index e4e1359133..45d44e3491 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "44BmRNRb6vlPq8qe", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json index 24871a3b60..54b997bfc0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "ltJbhoAeAec9gxrS", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json index 3d09c85a7d..3715130d41 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "GxdZiXdqns72ibQl", + "filament_id": "OFHBTqyD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json index df86f44ed6..85db7c8198 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "5XKGaHUjxHECbnHO", + "filament_id": "OFHBTqyD", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json index ba9fa780ed..815c949ca6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "H8IStdO8zEfSLYVE", + "filament_id": "OFdhVJql", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json index 281d88bca0..8dca7c3195 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "4wlkoKnU2bA7xhYO", + "filament_id": "OFdhVJql", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json index 82f569aaf8..1b0b0ba477 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "KXy0WyQp06VC2ICh", + "filament_id": "OFyoW5W2", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Color Change @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json index a9b9532a59..26c2f00a33 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "9cGw7tXD8YJHEi1H", + "filament_id": "OFyoW5W2", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json index deb0deaa91..7109d34b4e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "TF6BeOl0patjpPaa", + "filament_id": "OFyoW5W2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json index a46c00c184..f0d7531966 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "nkYeEBo8NdkJulAP", + "filament_id": "OFyoW5W2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json index 2e019a2a16..ee9c9258e1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "yEDfsOsogfZbNBVX", + "filament_id": "OFyoW5W2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json index 1c348e66cd..15c7b4c7a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xZmQdh487UMtvBRu", + "filament_id": "OFyoW5W2", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json index 378c5fce63..b3f5fdc1a3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "rc00SOyIg30uE3Da", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json index 1de1fa9904..974b8eef26 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k1OiugasUs7baG1f", + "filament_id": "OFyoW5W2", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json index c31f2c817e..b5fadd484a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "G2Et7kPHptMESzQ0", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json index 0b16a42ba2..41ee33d3f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "zsOdmFGBSF9UySMN", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json index b7801aaf6b..4dd0097616 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "oxRMuvBMu9qdQWUQ", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json index 45edb3fe4c..2aeddbf43c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "5hwNJvvLtb75XBBg", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json index 90a0c47630..a621f4ecde 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "mGj8VEyOnnogpkmF", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json index 09f4c73aaf..f9e5526878 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "HXVX4mDeUSfW2RgL", + "filament_id": "OFyoW5W2", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json index 8a51ee4c0f..53d86e2bd0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "JDcRA6apekWLXPvH", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json index 6ba6fb73f3..f8a2b45aa3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "b5GJpvKYktP4vZpj", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json index 4962ce6694..68e5a905ba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "RjUpQV6iQxTircwj", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json index f48156cb07..bacca455e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "9DEZ6SmFdgfluhsR", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json index fecaa9f06e..593d88f497 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "girTMkusNTfY04rz", + "filament_id": "OFyoW5W2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json index 552c55d640..b52b8e6cb3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "pCQ2qmeXUyJzP7kS", + "filament_id": "OFyoW5W2", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Color Change" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json index 79ae2f6c94..c052d94ea4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "a1jTbQsflD7SDFih", + "filament_id": "OFXv4FUi", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Galaxy @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json index 95f1514864..c0d94ddeeb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zyCRsy0mHRgyuQqt", + "filament_id": "OFXv4FUi", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json index d6cd08474c..36e4789905 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "y8TNaRebTrmFem10", + "filament_id": "OFXv4FUi", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json index 2df9a04c0a..c543dcfb58 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "qju0AMvvq0B5Glny", + "filament_id": "OFXv4FUi", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json index ed84105332..1829618f06 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "o8gGBOEcNvlbZxGW", + "filament_id": "OFXv4FUi", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json index 798abe1a32..c6767072c2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "0RkkIcIUFgwOFTBY", + "filament_id": "OFXv4FUi", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json index 904ceb7fc0..8cd892194d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "9qVabnSl8xfKSIYX", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json index e18d7b94f3..abf30fd1f3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DL7lxDI35YErCTWX", + "filament_id": "OFXv4FUi", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json index da3b64cd0f..4753dd7e12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "koEC7DteUoXHUd2z", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json index 88ccddeb08..1115d57393 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "D69fWcXioFcpoUjC", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json index ca7ba95268..6cffd37021 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "rfiQUncdSExEaK0U", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json index 1783f4d0f8..eac289b203 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "WX8lK8efXIVcpjFf", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json index fdf44498b8..8ad84a60f2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Tzvo3oILQJc4SQko", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json index 6115ca4780..7e1caa26a0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZQYrljZtu3es26hB", + "filament_id": "OFXv4FUi", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json index f62409f28a..cf4e376d6e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Y5gm20O4yCCDIoC0", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json index a91a4252cf..8c3d23f226 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "80vSQxnHfd5ZUy5h", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json index da7d433275..0bc3cee930 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "UZi7T5VoasmXWyH5", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json index b915367cb3..a55bbd16c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "6UlSb4fqHIMdMxkO", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json index c77a90240b..aee57b55ae 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "H2Cr4B5VUaxyYsN0", + "filament_id": "OFXv4FUi", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json index 45ca21acee..0ac191a749 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NJrc0UZ54Fq8MaqF", + "filament_id": "OFXv4FUi", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Galaxy" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json index 7116bb03b2..3b29dee372 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k8iibCO2EnlTSRyi", + "filament_id": "OFwf0oWp", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Luminous @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json index acda8964fa..ac148b7b66 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "pACct3L7duMh3hfx", + "filament_id": "OFwf0oWp", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json index dcc6311055..266461a8a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "GdvXL8SrKrYHxSgZ", + "filament_id": "OFwf0oWp", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json index 23d5a93a94..964b280d46 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "SLYD2YcQTQgbSjIF", + "filament_id": "OFwf0oWp", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json index 32a027e5f2..e84eaca5e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "kOobFSlqEG9Qe0d1", + "filament_id": "OFwf0oWp", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json index 43a46d9f06..f04ba6e742 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "4sE1LTVVuRglRbpD", + "filament_id": "OFwf0oWp", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json index 9fb04c73d9..efc9decd4f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "jEUZyaEIBf2eXXeh", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json index fa64b028ed..3b6dbd321e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "qZ6kKjRCMfe4Ql3F", + "filament_id": "OFwf0oWp", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json index 7b6a3404bc..4efdea0ca0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "xPPSRmadqfqCtRF2", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json index 773aa67d02..d710da228d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "aWVXIk1xVa9URR1D", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json index 042492ab8f..bf4a43d0b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "KhBF7hHHVPzqiAca", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json index baeabf324a..a3c7dfd439 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "sTplnj3gMAzwtLWE", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json index be4f7f3ed7..bb909dbaaf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zJFUJKDJRYi1pRL7", + "filament_id": "OFwf0oWp", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json index 8a7622fb59..972b575cad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "vXPXOKD8vNJlujM1", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json index b544994aeb..582d6e32c9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "purqxjmWiflDrnik", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json index e9a26e8c2a..17e7fe9b09 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "qraQ97uusigB63hv", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json index 0fae0389cc..bd4e81dbc6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Z1NCX8XMyIVlOlWn", + "filament_id": "OFwf0oWp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json index 4393acab05..59b52fad8c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "s620OFLTgFT4Ds2A", + "filament_id": "OFwf0oWp", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Luminous" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json index 252743e5f2..8c31d9b88c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DcbISTLvKNMZRzKx", + "filament_id": "OF60Lmeq", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Matte @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json index e302c58bfe..72fa362c28 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4fwlIrzy6O2EsyBZ", + "filament_id": "OF60Lmeq", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json index b461ab7c4d..7037b54f2d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "BVmVfNCuy8HDhcEI", + "filament_id": "OF60Lmeq", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json index b70192398e..b6772f5d1d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "WRMePGzDGdEGiqNv", + "filament_id": "OF60Lmeq", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json index 0648d80a38..bff289cda9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "thnbuaLDDlGrkrdY", + "filament_id": "OF60Lmeq", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json index 67b9a2c858..921d2dea18 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "cnPwhLyBq6JL8gEA", + "filament_id": "OF60Lmeq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json index 6f03f6b8cb..95f712248b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "8b9q1FfVljPmKoEt", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json index fe1ca45413..cf8c573962 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "o9dOrLgL6efF19O1", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json index 45fe70381f..0c247e1b06 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "QoRmDvhoeGi6Z2xv", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json index d1e83cd7b3..9c13d8bf85 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "dHyuoORAUGLtlGkJ", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json index 9090bf2287..4e945b96df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "OgqVyIHfy3U8Dc6d", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json index 682ba2be12..03bcc21993 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "g1gnICJ3u6hpGazQ", + "filament_id": "OF60Lmeq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json index cf6436ad19..b955699bcf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "feXpVbDM5ON5mwg0", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json index ef02344293..4816841106 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "XMnZQ1AxXPJqpqRX", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json index d9fcfcc693..787af100e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Ke0bRKPNKSsVMO1Y", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json index 57ac007de8..84d8d2f4d3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "IRC2n4GaofxvvyTt", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json index 185d66e796..c753c54bb3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "RN4wdTL0qccM4huZ", + "filament_id": "OF60Lmeq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json index b6a9949867..03a028841a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "ipMevDMORKqZYdvD", + "filament_id": "OF60Lmeq", "instantiation": "true", "filament_max_volumetric_speed": [ "22" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json index 758de4bbdc..7aff3d8593 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vwwb5nfO63U1ErCn", + "filament_id": "OFWv6JYn", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Metal @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json index 7685f4ea90..4a0cc3727c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ekq4MRPyzlYxRhbX", + "filament_id": "OFWv6JYn", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json index bb880ea106..4d538c35a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "uusF7Vz94HOwoQF0", + "filament_id": "OFWv6JYn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json index e34f8d298e..15a224163f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "sHZWzrZO8PP0QYZR", + "filament_id": "OFWv6JYn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json index 5d6a2fe948..928b220017 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "bxwjEFI8HmNY8JI6", + "filament_id": "OFWv6JYn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json index 89436d242d..c1ecd24405 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "VvMaIJwFk4Q6KX4p", + "filament_id": "OFWv6JYn", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json index 6239ad2bad..0c772343b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "5xqdqoj2l50FegPF", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json index 5f91a2f652..ab8e2a6e13 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "R79SbWA9i2OAu2ee", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json index 8c25b77b20..8d1a7360f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "zjIN4KzIOwI1VwOc", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json index add7f82214..a0bdd7313a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "UxMNNil2KnWvAJ4q", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json index f972d75cae..878fb7e83e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "57i6iKrVYUS5UiBT", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json index 9563f42a78..b488812551 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vVKalJViJuBvlHkK", + "filament_id": "OFWv6JYn", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json index ae0bb23e05..cd872ad134 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "IYPw8a9tkpuf95uH", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json index d33ab097f3..1652f423b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "I0bULoVAbtVfQoCy", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json index 97b47d1fc6..31fc158a78 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "DbPo3ay2e4a002AB", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json index eb7cdfc00b..8c970ff1b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "uztv4hhm2O3T93zZ", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json index 627883c18c..6edb1d2d36 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "UFWWrhfgS7N36Y8W", + "filament_id": "OFWv6JYn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json index fc1ca9b02d..c9a3884236 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "UD5i0ijsirfieUvb", + "filament_id": "OFWv6JYn", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Metal" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json index 04aeb1f095..0c9008df95 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DIMoIGOGedN17WbO", + "filament_id": "OFTa6gPH", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Pro @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json index 7101090b3f..81bb6aa26f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SC5LJcecBaEG5by3", + "filament_id": "OFTa6gPH", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json index fcbcbdf68b..f51c80d063 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "t9lPSFnwLDk0ARIp", + "filament_id": "OFTa6gPH", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json index 890831fd51..76fff17909 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "SBSlOEwZSvZHeX4r", + "filament_id": "OFTa6gPH", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json index 425052368c..9dbd0c5df8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "DbWTm2H71izMWmpx", + "filament_id": "OFTa6gPH", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json index 4cd37e4758..15ff802ebb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZENqqRqvEOeloAgs", + "filament_id": "OFTa6gPH", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json index 72234ddfd2..7a776d89e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "YcXuvz3qYHtVoWxv", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json index b8ad354879..32a582ed53 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "prItyXNphhuPCAce", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json index 6bfe5cb3cd..2aa08cf968 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "83zDmjaAgxxIt7KU", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json index 5a9918addf..88ee859e78 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "px3O28Olb9LExqfT", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json index ed66794aab..bb5eb9a2dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "QYgsCCHP3Khqrzh3", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json index cbc1d80955..86ac22cb22 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "wV01bqvZ6MRaEibZ", + "filament_id": "OFTa6gPH", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json index 549f5a1562..c3a2de4dfc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "1ro9wHPYhuMHNiYe", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json index 856389e1e2..d0a52dc129 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "4W4a7c9ugUVwvvmn", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json index 6da7732f58..f6a0c4911f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "CloRo3qxvzxHZuIP", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json index dd788c5a94..924ed22202 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "QgUbP07tIXmFysEb", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json index 61522df2c7..d1383d50c1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "6mvGOtkPZT6ROboo", + "filament_id": "OFTa6gPH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json index 2cb335b80e..302bb89cea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "vI875WYbMyQeMwlh", + "filament_id": "OFTa6gPH", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Pro" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json index b028494888..04b217d0c7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gxl3i7jTwkzrKxF4", + "filament_id": "OFAGrVjP", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json index a2fae947b8..3074f553f0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "mx6NWRkqyo2U12XQ", + "filament_id": "OFAGrVjP", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json index 645ecbc0c0..9de378b7cc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "YH9IHXOFMKwcTLyA", + "filament_id": "OFAGrVjP", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json index 4f7e3d3014..c3dbf86193 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "IfAieG0OAG807xlu", + "filament_id": "OFAGrVjP", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json index 4e74bdb6cc..5d7ff07d01 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "N6J7QqQ7TIgM3MyW", + "filament_id": "OFAGrVjP", "instantiation": "true", "cool_plate_temp": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json index 9c0eec6844..069b924da4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "OIsfpi49wEoF0ekO", + "filament_id": "OFAGrVjP", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json index 405b1c46c0..4c9b89d97e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "xxeZ6VPjRFevxDnK", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json index a8bbced435..ceef2f32d5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "x5m17Z5UpqpTtwgF", + "filament_id": "OFAGrVjP", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json index a3475428a1..933275ecf4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "2GZp8yjrY1OioFDi", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json index 19a2957ccc..03c51a026b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "U0XtCVUhIMnidhbR", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json index 7cb6dc67bd..127a7d57bf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "8j9kaYy3ghkF81Cu", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json index a838f359d4..7a4b09647c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "E0LeJwSxaniDkB0b", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json index 718ad9c32c..573bf70bf2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "8rggqgJ9kg9yLE28", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json index fb38d8488a..1521adad6b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "hnWRLUwnfXiwnqBM", + "filament_id": "OFAGrVjP", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json index 4bccc9c4ac..9703b974e9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "uY4OWhIytHMz4rWq", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json index 4906f57d2c..88c07e6495 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "YSkkXd9EhhEHvGpf", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json index 135192e979..2d45c140ca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "XlxXZj9Wi1D6IwCE", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json index f05f9f8e57..5e3cdced52 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "IPyXBSnMCAikjI9V", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json index 240fae4d59..efb07ffb7b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "f3gJsovSmDKoA7BP", + "filament_id": "OFAGrVjP", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json index 205dc244a6..ab60566b84 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "vZb7BvbyVWkZv3rR", + "filament_id": "OFAGrVjP", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json index 16dfdcf81c..d4227c010a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ojYsAanAPqYhgFoe", + "filament_id": "OF9sr3Vn", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Sparkle @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json index 29b57abe19..027aad1ae3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xVYaNvQwM2chTkPe", + "filament_id": "OF9sr3Vn", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json index 3cf5581d40..a8af698f32 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "o8lsEnMIiHHorJhb", + "filament_id": "OF9sr3Vn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json index 09bf6a4f97..653b2f3e03 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "oXlxQJY0K6Dnri7e", + "filament_id": "OF9sr3Vn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json index 303ab7f286..11cfe05454 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "XKpFulrvvrfE56va", + "filament_id": "OF9sr3Vn", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json index 3bfa2b7a10..8b79997f28 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jmVmKMUCcowszvVp", + "filament_id": "OF9sr3Vn", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json index c8810e8348..641ab1da9a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "yeh5cd0tAHtHzdoQ", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json index a00dcdc264..e2402d34ed 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "q2Zi0YluaYpG3Ktf", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json index 8f226d79ad..e03a5b575e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "1qXV6AJqPpAwX1YK", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json index 43fff03323..b2e0f1590b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "YsyGGOGqUVkEqkIr", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json index c53e5bc830..7a88f501a1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4L3Zm1YIxs8J8dp9", + "filament_id": "OF9sr3Vn", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json index 7027ffab33..0ecfc51591 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "UVvd018dTbygqTgy", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json index 64ffa609af..dec7c8275f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "F0k8kkgWM5FkLAzo", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json index f61281e75d..c11104155a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "Oapl8InwbkwNSIDl", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json index b887d42ff2..3513820454 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "NiB6Yb4b0auyn9KQ", + "filament_id": "OF9sr3Vn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json index c000cb76e4..0ad4ae9863 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "LYtdPgec1hBLhoQA", + "filament_id": "OF9sr3Vn", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Sparkle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json index a9527280aa..c61e191e80 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "QRyISvTy06kCwxKo", + "filament_id": "OFPJrlC3", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json index 6e4cbcfdfe..17a29fd4ad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "rmnF24E3SuwzRscH", + "filament_id": "OFPJrlC3", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json index 23b1230036..4fcd8bf26d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "BXPI5Pkp7a6pLrCh", + "filament_id": "OFPJrlC3", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json index de99144bf5..4e5ab53a0a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "rBm25DRY1PAkEJ4r", + "filament_id": "OFPJrlC3", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json index 896f61dd93..a3c206104c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "xReo12oteZ4ECNJN", + "filament_id": "OFPJrlC3", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json index 42ddb83ec2..65b19268dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "9PgjgxU7pLl2Dfpe", + "filament_id": "OFPJrlC3", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json index 74d834e078..6f13da05c7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "RuNKzuIsw7F1ogmG", + "filament_id": "OFPJrlC3", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json index e588dbdf2c..d2facc5b67 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "YPuMCHNGDWh0FpIB", + "filament_id": "OFPJrlC3", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json index 9a8e75a439..8a051eae74 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "3uC056Y171ZjnQE6", + "filament_id": "OFPJrlC3", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json index 391c0e86ec..f0515b17da 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "JxNlb64lTODaaQhU", + "filament_id": "OFPJrlC3", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA-CF" @@ -14,9 +15,6 @@ "Flashforge Adventurer 5M 0.8 Nozzle", "Flashforge Adventurer 5M Pro 0.4 Nozzle", "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", - "Flashforge AD5X 0.4 nozzle", - "Flashforge AD5X 0.6 nozzle", - "Flashforge AD5X 0.8 nozzle" + "Flashforge Adventurer 5M Pro 0.8 Nozzle" ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json index 2e049a81f2..4cbd30ea72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "DhC7iFgNKCAq4Zkt", + "filament_id": "OFQCAYAt", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json index d55cb8d4b3..de09f3ee20 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "Jws2AaLWaNyZhqX4", + "filament_id": "OFQCAYAt", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json index 1808ab60c8..0b5e6a712c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "MFItX51zZO0KYjdk", + "filament_id": "OFQCAYAt", "instantiation": "true", "filament_flow_ratio": [ "0.99" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json index b7cb615d2a..54cfd76a33 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "KITjZXcyM4N8cVyu", + "filament_id": "OFp8lkYD", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json index 4cc5686f67..bd330537e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "6NjEQ6RJKUAOrSLw", + "filament_id": "OFCJaXZS", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json index 940f6e85f8..85977c3bb7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "vFMKqNjQjlNxwvDI", + "filament_id": "OFCJaXZS", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json index 0492ebe524..5080890de1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "ihXPnFERMjbBgrP5", + "filament_id": "OFZcrV9c", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json index e11ff56c17..d28c9de034 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "UWFjBmSpUkZLBvoO", + "filament_id": "OFZcrV9c", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json index 374063554b..67150ba1b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "oSGlx5mtGh07BnOz", + "filament_id": "OFZcrV9c", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json index fe1b4c1f6b..c9b3f231e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "i5DllSvYjVPO04Su", + "filament_id": "OFZcrV9c", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json index c46bfe3da4..db7b6c956b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "l3dYtVM52X0UMRix", + "filament_id": "OFZcrV9c", "instantiation": "true", "filament_flow_ratio": [ "0.99" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json index a913609484..f92402ffaa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "rSYGG2ni41NDVw6l", + "filament_id": "OFeFRwST", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json index c40ba42a92..f9a335f2e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "nwgbMjLRJLtJ04ri", + "filament_id": "OFeFRwST", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json index 528998a24c..624f2b05e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "f75oElm4zB0hukIj", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json index 0e23841975..456dea73d2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "o4KYTpJF6KksX2mg", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json index 749a00856c..f4d18ac97c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "HUSkDZL6rCpz0lRk", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json index 085cf59c5b..da615cf496 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "8xgu0AnMuKbPWyVd", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json index a5b488fc99..f2d17b5a69 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Rgqt3MjxOye5EaFt", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json index 3f901a03a4..3f0aea0926 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "PBFsW5qhVbQteYh5", + "filament_id": "OFmgesco", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json index 489c5fb15f..f91c527cac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "TPbHmcFyPyjvoERv", + "filament_id": "OFRNU58t", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json index a959585cd8..6b331b1a97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "zLMgsyDmdoXHhqFv", + "filament_id": "OFRNU58t", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json index 33834e19e3..6f674a27e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "ThakVhjfpgnAlEVH", + "filament_id": "OFRNU58t", "instantiation": "true", "cool_plate_temp": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json index 4aad5af360..5a6b095651 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "M0ozqaD3jSKoD6fm", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json index 0fd54408ca..4d3d501620 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "ob8IkvzNt9CWCzbk", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json index 31b83ce172..c31e020d4d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "NzxX1lyRJ7wLUihV", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json index 430ac28bd4..306930aabc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "4FIGiheSGvSJPw3s", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json index f5bff06851..a3ee98d0b8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "1GNqSBaQitzhYSx7", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json index cb901a9bcc..eebe8e5b85 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "eOhMygyxaccdov7o", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json index f5c8f2c553..e9823b8a1c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "LxooKiOkRncktNLf", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json index e4f518e648..b3aa3cfc55 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "HdoJfbQr0uwQ6Vwb", + "filament_id": "OFRNU58t", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json index d9f7ec4840..abe58bc211 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "J4EaFhnpkLDcl5wH", + "filament_id": "OFRNU58t", "instantiation": "true", "filament_settings_id": [ "Flashforge TPU 95A" @@ -14,9 +15,6 @@ "Flashforge Adventurer 5M 0.8 Nozzle", "Flashforge Adventurer 5M Pro 0.4 Nozzle", "Flashforge Adventurer 5M Pro 0.6 Nozzle", - "Flashforge Adventurer 5M Pro 0.8 Nozzle", - "Flashforge AD5X 0.4 nozzle", - "Flashforge AD5X 0.6 nozzle", - "Flashforge AD5X 0.8 nozzle" + "Flashforge Adventurer 5M Pro 0.8 Nozzle" ] } diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json index b7cd53996e..c5c992698e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "fd5bACFa33J7aTdp", + "filament_id": "OFtJMczs", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json index 14bf91e144..94aa1ead1c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "hrcELA2qEMkZ6Wvj", + "filament_id": "OFtJMczs", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json index 30a92209c4..a4a27dceef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "Lis7BZ3lMkoX5KQt", + "filament_id": "OFE22Uba", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json index dd8ddf201b..bd69da6ff2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "xY03Hiidu5YNSUyZ", + "filament_id": "OFE22Uba", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json index 6d5d7a0455..6066fbe98b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "AHu6wNV3zcPBusOF", + "filament_id": "OFyxAbO4", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json index f52588da65..5fe7151b78 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "8MBRqfLIRdhxk1dF", + "filament_id": "OFyxAbO4", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json index 163a76b62f..06012ecf04 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "2JQjReK012FHpHIt", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json index 539b153d74..7bb5e8906a 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "3SCkpXXK8VcQBMQn", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json index 70ed04fc55..57380ab9e4 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "dgpcOrf7282LTh1d", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json index d5ce57aeee..c6b435b34b 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "e85SCr6SV9kQD2hm", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json index 85a4492107..a780bd8dd8 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "eGXsHN5B9BZViVNe", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json index c7c38d13bb..e69ba59f78 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "8JSb4JqZ7zLi8uPI", + "filament_id": "OF6FM5F7", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json index a81bd9fe8c..c88d025a64 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "gZqAGVOlWR79n7hN", + "filament_id": "OFSdF3B1", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json index 542cced451..b1f762dd7a 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "nJF1lCOavNNh4yHs", + "filament_id": "OFSdF3B1", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json index 37dcd0816f..dc949095de 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "TZ0nKqxoIYk2mPh8", + "filament_id": "OFSdF3B1", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index 75094206d5..ac82265489 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "nH6pwFYsPyBzL1EB", + "filament_id": "OFSdF3B1", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json index 6dee0fbd50..d5cb85c1bc 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "yok12IOGZzGot5Ll", + "filament_id": "OFSdF3B1", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 9beb4e6e38..71b3ae9af1 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "wmWMf3MfmbfZx2o8", + "filament_id": "OFSdF3B1", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json index de609cdc0b..2892bfac6a 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Xqb0GQluin2jUQyL", + "filament_id": "OFLxO2Oc", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json index c20763c836..5f464b11cf 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "A8PDgw1jZE2m3bem", + "filament_id": "OF6SEkeJ", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json index 3c7f3b0e91..e2584bb9ed 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "Iy5lHY4ihEKPgJ5x", + "filament_id": "OF6SEkeJ", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json index a727da25ee..a6fb057638 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Kdeg55RzLMYhqYMC", + "filament_id": "OF6SEkeJ", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json index 62279c4084..a94efd16a0 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "JXf7KCy4KY65xuzO", + "filament_id": "OF6SEkeJ", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json index 4502c8e0d8..e3652a2989 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "O3tz36NNMoagELL0", + "filament_id": "OFAtydxE", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json index df0f4c4cc6..b05cdc7517 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "Gg9H6I32fOqoLSqE", + "filament_id": "OFAtydxE", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json index 9ab78ced38..700ebeea67 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "pV5QERvRuROIZTOa", + "filament_id": "OF0UbONm", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json index 521a764406..e49b64860a 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "0i7VkquM4n0uFaXH", + "filament_id": "OF0UbONm", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json index 1675096c7e..54bedf7278 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "TZDKsooodaGVkM4m", - "filament_id": "GFB99", + "filament_id": "OF5kwfZu", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json index 37dc9b7723..9201c77b22 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "NdNRNhmsHgHRnz1Z", - "filament_id": "GFB99", + "filament_id": "OFYICbI4", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json index 953b71d9e3..98dcbdde4c 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "fR7maJwWmteJ7bWY", - "filament_id": "GFB99", + "filament_id": "OFYICbI4", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,7 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json index 7241cf2afd..1af16ac51a 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "gLG1R5gtdliSlnZJ", - "filament_id": "GFB99", + "filament_id": "OFoAaHcF", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json index d6de1c2af8..b68ea0efb9 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "AaGdNgYaIIZyZBiW", - "filament_id": "GFB99", + "filament_id": "OFKZH00L", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json index 95995868fb..3deed3be44 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "jJVDAlGTt1QJlbn8", - "filament_id": "GFB99", + "filament_id": "OFKZH00L", "instantiation": "true", "activate_air_filtration": [ "0" @@ -23,7 +23,6 @@ ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.4 Nozzle", - "Flashforge Guider 3 Ultra 0.6 Nozzle", "Flashforge Guider 3 Ultra 0.8 Nozzle", "Flashforge Guider 2s 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json index 8fb6eb9b70..06760b4e08 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "IEpmsltdjoCu2txJ", - "filament_id": "GFB99", + "filament_id": "OFAdZFD1", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json index d09c7dd01f..d259f1a1ef 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "foH2sa61cDy12TzH", - "filament_id": "GFB99", + "filament_id": "OFGfdP6J", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json index 789b77ea27..d12baa2e6b 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "gQLoSJ7xGEdOd8kr", - "filament_id": "GFB99", + "filament_id": "OFGfdP6J", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json index 3f42fa9f24..6b2ec8baa0 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "6Z5vce5YKlCGox8v", - "filament_id": "GFB99", + "filament_id": "OFjepy6j", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json index 9e2336a574..ca207c1219 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "kMYDFSwivzTjFo2L", - "filament_id": "GFB99", + "filament_id": "OFjepy6j", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json index 12d944617f..fc6281092e 100644 --- a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "tq7YmJohYaNiPplE", - "filament_id": "GFL99", + "filament_id": "OFRR8LUh", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json index ed788fa452..e43dda4e39 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "cvJIaPzb0uJLipX1", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json index bd6fbfb0e1..3575a60b49 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "wguPruY9M7GcMt6q", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json index 1b8c0864fb..2fc765ea4a 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "EhobwmFIEg5Cs5Ki", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json index f7bdfc0830..2e17832b77 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "JvdxJyy7xCm3F0xH", + "filament_id": "OFjqPjjl", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json index 7bf0850fe8..ca87808d1f 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "FtwGLcPMQqKw5uKW", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json index a95278c719..22ed7da7df 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "lrnsjoh8DtnTcT7g", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json index ca22248030..3f30b9a2a5 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Th8rzyWoINHBwgcw", + "filament_id": "OFjqPjjl", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json index 45eb6c20a5..6c797966fe 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "1Lyq9gOfcZ5hPIdW", + "filament_id": "OFjqPjjl", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json index ff84af740f..70b143a5e1 100644 --- a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "fWM9WLGV9mUQOtHh", - "filament_id": "GFG99", + "filament_id": "OFo9EwvK", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json index 199e64cc2b..fc4a67290a 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "9FrKIXABj3yedXri", - "filament_id": "GFL99", + "filament_id": "OGFL96", "instantiation": "true", "filament_flow_ratio": [ "1.07" diff --git a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json index 39a1a6d188..fe64023c22 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "F8r0b3G228QEK53U", - "filament_id": "GFL99", + "filament_id": "OF6XIeUW", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json index 9d91f3746b..74bee8eab1 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "WQyJHZpkl9Dz6Yo3", + "filament_id": "OFuswXlp", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json index d109f87d0e..fa2c3bb233 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "qRqhbOYn5TMfccem", + "filament_id": "OFuswXlp", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json index 3f79dcf3a5..591a5b2f40 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json @@ -4,6 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "LTZCFxkzkGCnUMAR", + "filament_id": "OFuswXlp", "instantiation": "true", "cool_plate_temp": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json index a5bfa9cdd5..a21b8c2c74 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "DW9Ck6xMK00Ry2iE", - "filament_id": "GFG99", + "filament_id": "OF6Mxzsg", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json index 659d896a04..2c196808cc 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "i59KgPtnplOJ8ZBh", + "filament_id": "OFvsS7Fb", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json index 76399618fc..bee067f8c4 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ERMhwufaef91KJ1d", + "filament_id": "OFvsS7Fb", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json index 43b69e32e3..c4d1a43829 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ZGmi7NF6Rn4idKjT", + "filament_id": "OFDkABjZ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json index 5b11df4081..fb963cb267 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "3SRFjKR5ezAukLYW", + "filament_id": "OFDkABjZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json index ddfcc5c1af..3f08572fcf 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ULqB7JfqebS8d00l", + "filament_id": "OFYRS7GZ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json index 1eb7a0bf80..2092ddb4f8 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json @@ -4,6 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "EQzyVOtOJjpKyRMM", + "filament_id": "OFYRS7GZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json index e0e410486c..7a7abe02eb 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "lALS0WwvUo5AYOq3", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json index b005039c27..171353a08d 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "tgRrYwnp5nr1yr9w", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json index eb7577cfe5..ff217ef2e3 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "yom6iIUUwU1MsZwF", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json index 933d1ff7d3..c687db6030 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "ysj5nD1op08U8rUT", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json index 34959d59ec..4fc3dfba55 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HBtkC3BfEpBGEWc5", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json index d4285329e3..ed34f84c3f 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json @@ -4,6 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "zsW4MCpeL5qfzNfg", + "filament_id": "OFt9AiN5", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json index 49196701fa..4e1efc3f9e 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "t6CWYU3ZSddIjwhS", - "filament_id": "GFB99", + "filament_id": "OFtEFtsz", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json index 8a8b8fe94b..fd1ff2433e 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NXQtHvtO4tyQ1ueu", - "filament_id": "GFB99", + "filament_id": "OF9RZyBz", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index ae6dd87645..f9d84b029c 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1,76 +1,5 @@ { - "alias_exceptions": [ - "Flashforge/Flashforge ABS Basic @FF C5", - "Flashforge/Flashforge ABS Basic @FF C5P", - "Flashforge/Flashforge ABS-GF @FF C5", - "Flashforge/Flashforge ABS-GF @FF C5P", - "Flashforge/Flashforge ASA Basic @FF C5", - "Flashforge/Flashforge ASA Basic @FF C5P", - "Flashforge/Flashforge ASA-CF @FF C5", - "Flashforge/Flashforge ASA-CF @FF C5P", - "Flashforge/Flashforge ASA-GF @FF C5", - "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge HIPS @FF C5", - "Flashforge/Flashforge HIPS @FF C5P", - "Flashforge/Flashforge HS PETG @FF C5", - "Flashforge/Flashforge HS PETG @FF C5P", - "Flashforge/Flashforge HS PLA @FF C5", - "Flashforge/Flashforge HS PLA @FF C5P", - "Flashforge/Flashforge PA-CF @FF C5", - "Flashforge/Flashforge PA-CF @FF C5P", - "Flashforge/Flashforge PAHT-CF @FF C5", - "Flashforge/Flashforge PAHT-CF @FF C5P", - "Flashforge/Flashforge PET-CF @FF C5", - "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG Pro @FF C5", - "Flashforge/Flashforge PETG Pro @FF C5P", - "Flashforge/Flashforge PETG Transparent @FF C5", - "Flashforge/Flashforge PETG Transparent @FF C5P", - "Flashforge/Flashforge PETG-CF @FF C5", - "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", - "Flashforge/Flashforge PLA Basic @FF C5", - "Flashforge/Flashforge PLA Basic @FF C5P", - "Flashforge/Flashforge PLA Color Change @FF C5", - "Flashforge/Flashforge PLA Color Change @FF C5P", - "Flashforge/Flashforge PLA Galaxy @FF C5", - "Flashforge/Flashforge PLA Galaxy @FF C5P", - "Flashforge/Flashforge PLA Luminous @FF C5", - "Flashforge/Flashforge PLA Luminous @FF C5P", - "Flashforge/Flashforge PLA Silk @FF C5", - "Flashforge/Flashforge PLA Silk @FF C5P", - "Flashforge/Flashforge PLA-CF @FF C5", - "Flashforge/Flashforge PLA-CF @FF C5P", - "Flashforge/Flashforge PPA-CF @FF C5", - "Flashforge/Flashforge PPA-CF @FF C5P", - "Flashforge/Flashforge PPS-CF @FF C5", - "Flashforge/Flashforge PPS-CF @FF C5P", - "Flashforge/Flashforge PVA @FF C5", - "Flashforge/Flashforge PVA @FF C5P", - "Flashforge/Flashforge TPU-64D @FF C5", - "Flashforge/Flashforge TPU-64D @FF C5P", - "Flashforge/Flashforge TPU-90A @FF C5", - "Flashforge/Flashforge TPU-90A @FF C5P", - "Flashforge/Flashforge TPU-95A @FF C5", - "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock PAHT-CF @FF C5", - "Flashforge/FusRock PAHT-CF @FF C5P", - "Flashforge/FusRock S-Multi @FF C5", - "Flashforge/FusRock S-Multi @FF C5P", - "Flashforge/FusRock S-PAHT @FF C5", - "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/Generic TPU-64D @FF C5", - "Flashforge/Generic TPU-64D @FF C5P", - "Flashforge/Generic TPU-90A @FF C5", - "Flashforge/Generic TPU-90A @FF C5P", - "Flashforge/Generic TPU-95A @FF C5", - "Flashforge/Generic TPU-95A @FF C5P" - ], + "alias_exceptions": [], "id_overrides": [ "Afinia/Afinia PLA", "Afinia/Afinia PLA@HS", @@ -687,12 +616,79 @@ "FLSun/FLSun Generic PETG", "FLSun/FLSun Generic PLA", "FLSun/FLSun Generic PLA-CF", - "Flashforge/Flashforge Generic ASA @G3U 0.6 Nozzle", + "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", + "Flashforge/FlashForge PC @FF G4 0.6 nozzle", + "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", + "Flashforge/FlashForge PC @FF G4P 0.6 HF nozzle", + "Flashforge/FlashForge PC @FF G4P 0.6 nozzle", + "Flashforge/FlashForge PC @FF G4P 0.8 HF nozzle", + "Flashforge/FlashForge PPS @FF G4 0.6 HF nozzle", + "Flashforge/FlashForge PPS @FF G4 0.6 nozzle", + "Flashforge/FlashForge PPS @FF G4 0.8 HF nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.6 HF nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.6 nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.8 HF nozzle", + "Flashforge/FlashForge PPS-CF @FF G4 0.6 nozzle", + "Flashforge/FlashForge PPS-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS Basic", + "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge ABS Basic @FF C5", + "Flashforge/Flashforge ABS Basic @FF C5P", + "Flashforge/Flashforge ABS Basic @FF G4", + "Flashforge/Flashforge ABS Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 HF", + "Flashforge/Flashforge ABS Basic @FF G4P", + "Flashforge/Flashforge ABS Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P HF", + "Flashforge/Flashforge ABS-CF @FF G4", + "Flashforge/Flashforge ABS-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge ABS-CF @FF G4P", + "Flashforge/Flashforge ABS-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS-GF @FF C5", + "Flashforge/Flashforge ABS-GF @FF C5P", + "Flashforge/Flashforge ASA @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge ASA Basic", + "Flashforge/Flashforge ASA Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge ASA Basic @FF C5", + "Flashforge/Flashforge ASA Basic @FF C5P", + "Flashforge/Flashforge ASA Basic @FF G4", + "Flashforge/Flashforge ASA Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 HF", + "Flashforge/Flashforge ASA Basic @FF G4P", + "Flashforge/Flashforge ASA Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P HF", + "Flashforge/Flashforge ASA-CF", + "Flashforge/Flashforge ASA-CF @FF C5", + "Flashforge/Flashforge ASA-CF @FF C5P", + "Flashforge/Flashforge ASA-CF @FF G4", + "Flashforge/Flashforge ASA-CF @FF G4P", + "Flashforge/Flashforge ASA-GF @FF C5", + "Flashforge/Flashforge ASA-GF @FF C5P", + "Flashforge/Flashforge Generic ASA @G3U", + "Flashforge/Flashforge Generic HIPS", + "Flashforge/Flashforge Generic HIPS @G3U 0.6 Nozzle", "Flashforge/Flashforge Generic HS PLA", "Flashforge/Flashforge Generic PETG", - "Flashforge/Flashforge Generic PETG @G3U", - "Flashforge/Flashforge Generic PETG @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PETG @G3U 0.8 Nozzle", "Flashforge/Flashforge Generic PETG-CF @G3U", "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", @@ -702,21 +698,430 @@ "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", "Flashforge/Flashforge Generic PLA-CF10", + "Flashforge/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", "Flashforge/Flashforge Generic PLA-Silk", "Flashforge/Flashforge Generic PVA", + "Flashforge/Flashforge HIPS @FF C5", + "Flashforge/Flashforge HIPS @FF C5P", + "Flashforge/Flashforge HIPS @FF G4", + "Flashforge/Flashforge HIPS @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4 0.6 nozzle", + "Flashforge/Flashforge HIPS @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4 HF", + "Flashforge/Flashforge HIPS @FF G4P", + "Flashforge/Flashforge HIPS @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HIPS @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4P HF", + "Flashforge/Flashforge HS PETG", + "Flashforge/Flashforge HS PETG @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X", + "Flashforge/Flashforge HS PETG @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge HS PETG @FF C5", + "Flashforge/Flashforge HS PETG @FF C5P", + "Flashforge/Flashforge HS PETG @FF G4", + "Flashforge/Flashforge HS PETG @FF G4 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4 HF", + "Flashforge/Flashforge HS PETG @FF G4P", + "Flashforge/Flashforge HS PETG @FF G4P 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4P HF", + "Flashforge/Flashforge HS PLA", + "Flashforge/Flashforge HS PLA @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X", + "Flashforge/Flashforge HS PLA @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge HS PLA @FF C5", + "Flashforge/Flashforge HS PLA @FF C5P", + "Flashforge/Flashforge HS PLA @FF G4", + "Flashforge/Flashforge HS PLA @FF G4 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4 HF", + "Flashforge/Flashforge HS PLA @FF G4P", + "Flashforge/Flashforge HS PLA @FF G4P 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4P HF", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 HF", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P HF", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PA @FF G4", + "Flashforge/Flashforge PA @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PA @FF G4 HF", + "Flashforge/Flashforge PA @FF G4P", + "Flashforge/Flashforge PA @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PA @FF G4P HF", + "Flashforge/Flashforge PA-CF @FF C5", + "Flashforge/Flashforge PA-CF @FF C5P", + "Flashforge/Flashforge PA-CF @FF G4", + "Flashforge/Flashforge PA-CF @FF G4P", + "Flashforge/Flashforge PA12-CF", + "Flashforge/Flashforge PA6-CF", + "Flashforge/Flashforge PA66-CF", + "Flashforge/Flashforge PAHT-CF @FF C5", + "Flashforge/Flashforge PAHT-CF @FF C5P", + "Flashforge/Flashforge PAHT-CF @FF G4", + "Flashforge/Flashforge PAHT-CF @FF G4P", + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PET-CF @FF C5", + "Flashforge/Flashforge PET-CF @FF C5P", "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PETG Basic", + "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Pro", + "Flashforge/Flashforge PETG Pro @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG Pro @FF C5", + "Flashforge/Flashforge PETG Pro @FF C5P", + "Flashforge/Flashforge PETG Pro @FF G4", + "Flashforge/Flashforge PETG Pro @FF G4 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 HF", + "Flashforge/Flashforge PETG Pro @FF G4P", + "Flashforge/Flashforge PETG Pro @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P HF", + "Flashforge/Flashforge PETG Transparent", + "Flashforge/Flashforge PETG Transparent @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG Transparent @FF C5", + "Flashforge/Flashforge PETG Transparent @FF C5P", + "Flashforge/Flashforge PETG Transparent @FF G4", + "Flashforge/Flashforge PETG Transparent @FF G4 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 HF", + "Flashforge/Flashforge PETG Transparent @FF G4P", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P HF", + "Flashforge/Flashforge PETG-CF", + "Flashforge/Flashforge PETG-CF @FF AD5X", + "Flashforge/Flashforge PETG-CF @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG-CF @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG-CF @FF C5", + "Flashforge/Flashforge PETG-CF @FF C5P", + "Flashforge/Flashforge PETG-CF @FF G4", + "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG-CF @FF G4P", + "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge PLA", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Basic @FF C5", + "Flashforge/Flashforge PLA Basic @FF C5P", + "Flashforge/Flashforge PLA Basic @FF G4", + "Flashforge/Flashforge PLA Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 HF", + "Flashforge/Flashforge PLA Basic @FF G4P", + "Flashforge/Flashforge PLA Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P HF", + "Flashforge/Flashforge PLA Buint Ti @FF G4 0.8 nozzle", + "Flashforge/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Color Change @FF C5", + "Flashforge/Flashforge PLA Color Change @FF C5P", + "Flashforge/Flashforge PLA Color Change @FF G4", + "Flashforge/Flashforge PLA Color Change @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 HF", + "Flashforge/Flashforge PLA Color Change @FF G4P", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P HF", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF C5", + "Flashforge/Flashforge PLA Galaxy @FF C5P", + "Flashforge/Flashforge PLA Galaxy @FF G4", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 HF", + "Flashforge/Flashforge PLA Galaxy @FF G4P", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P HF", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Flashforge PLA Luminous @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Luminous @FF C5", + "Flashforge/Flashforge PLA Luminous @FF C5P", + "Flashforge/Flashforge PLA Luminous @FF G4", + "Flashforge/Flashforge PLA Luminous @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 HF", + "Flashforge/Flashforge PLA Luminous @FF G4P", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P HF", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Matte @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4", + "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 HF", + "Flashforge/Flashforge PLA Matte @FF G4P", + "Flashforge/Flashforge PLA Matte @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P HF", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Metal @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4", + "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 HF", + "Flashforge/Flashforge PLA Metal @FF G4P", + "Flashforge/Flashforge PLA Metal @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P HF", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Pro @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4", + "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 HF", + "Flashforge/Flashforge PLA Pro @FF G4P", + "Flashforge/Flashforge PLA Pro @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P HF", + "Flashforge/Flashforge PLA Silk", + "Flashforge/Flashforge PLA Silk @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Silk @FF C5", + "Flashforge/Flashforge PLA Silk @FF C5P", + "Flashforge/Flashforge PLA Silk @FF G4", + "Flashforge/Flashforge PLA Silk @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 HF", + "Flashforge/Flashforge PLA Silk @FF G4P", + "Flashforge/Flashforge PLA Silk @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P HF", + "Flashforge/Flashforge PLA Sparkle", + "Flashforge/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 HF", + "Flashforge/Flashforge PLA Sparkle @FF G4P", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P HF", + "Flashforge/Flashforge PLA-CF", + "Flashforge/Flashforge PLA-CF @FF AD5X", + "Flashforge/Flashforge PLA-CF @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA-CF @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA-CF @FF C5", + "Flashforge/Flashforge PLA-CF @FF C5P", + "Flashforge/Flashforge PLA-CF @FF G4", + "Flashforge/Flashforge PLA-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA-CF @FF G4P", + "Flashforge/Flashforge PLA-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", + "Flashforge/Flashforge PPA-CF", + "Flashforge/Flashforge PPA-CF @FF C5", + "Flashforge/Flashforge PPA-CF @FF C5P", + "Flashforge/Flashforge PPA-GF", + "Flashforge/Flashforge PPS @FF G4", + "Flashforge/Flashforge PPS @FF G4P", + "Flashforge/Flashforge PPS-CF", + "Flashforge/Flashforge PPS-CF @FF C5", + "Flashforge/Flashforge PPS-CF @FF C5P", + "Flashforge/Flashforge PPS-CF @FF G4", + "Flashforge/Flashforge PPS-CF @FF G4P", + "Flashforge/Flashforge PVA @FF C5", + "Flashforge/Flashforge PVA @FF C5P", + "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4 0.6 nozzle", + "Flashforge/Flashforge TPU 65D @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.6 nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge TPU 95A", + "Flashforge/Flashforge TPU 95A @FF AD5X", + "Flashforge/Flashforge TPU 95A @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4", + "Flashforge/Flashforge TPU 95A @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P", + "Flashforge/Flashforge TPU 95A @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge TPU-64D @FF C5", + "Flashforge/Flashforge TPU-64D @FF C5P", + "Flashforge/Flashforge TPU-90A @FF C5", + "Flashforge/Flashforge TPU-90A @FF C5P", + "Flashforge/Flashforge TPU-95A @FF C5", + "Flashforge/Flashforge TPU-95A @FF C5P", "Flashforge/FusRock Generic NexPA-CF25", "Flashforge/FusRock Generic PAHT-CF", "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic PAHT-GF", "Flashforge/FusRock Generic PET-CF", "Flashforge/FusRock Generic PET-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock Generic PET-GF", "Flashforge/FusRock Generic S-Multi", "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", "Flashforge/FusRock Generic S-PAHT", "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", + "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", + "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PAHT-CF @FF C5", + "Flashforge/FusRock PAHT-CF @FF C5P", + "Flashforge/FusRock PAHT-CF @FF G4", + "Flashforge/FusRock PAHT-CF @FF G4 0.6 nozzle", + "Flashforge/FusRock PAHT-CF @FF G4P", + "Flashforge/FusRock PAHT-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PET-CF @FF G4", + "Flashforge/FusRock PET-CF @FF G4 0.6 nozzle", + "Flashforge/FusRock PET-CF @FF G4P", + "Flashforge/FusRock PET-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock S-Multi @FF C5", + "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-PAHT @FF C5", + "Flashforge/FusRock S-PAHT @FF C5P", + "Flashforge/Generic ASA @Flashforge AD4", + "Flashforge/Generic PET @FF G4", + "Flashforge/Generic PET @FF G4 0.6 HF nozzle", + "Flashforge/Generic PET @FF G4 0.6 nozzle", + "Flashforge/Generic PET @FF G4 0.8 HF nozzle", + "Flashforge/Generic PET @FF G4P", + "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", + "Flashforge/Generic PET @FF G4P 0.6 nozzle", + "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", "Flashforge/Generic PETG @Flashforge Artemis", + "Flashforge/Generic PETG-CF10 @Flashforge AD4", "Flashforge/Generic PLA @Flashforge AD4", + "Flashforge/Generic PLA High Speed @Flashforge AD4", + "Flashforge/Generic PLA Silk @Flashforge AD4", + "Flashforge/Generic PLA-CF10 @Flashforge AD4", + "Flashforge/Generic TPU 85A @FF AD5X", + "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", + "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", + "Flashforge/Generic TPU @Flashforge AD4", + "Flashforge/Generic TPU-64D @FF C5", + "Flashforge/Generic TPU-64D @FF C5P", + "Flashforge/Generic TPU-90A @FF C5", + "Flashforge/Generic TPU-90A @FF C5P", + "Flashforge/Generic TPU-95A @FF C5", + "Flashforge/Generic TPU-95A @FF C5P", + "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", + "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", "Flashforge/Polymaker Generic CoPA", "Flashforge/Polymaker Generic S1", "Flashforge/SUNLU PETG @base", @@ -2411,22 +2816,7 @@ "Flashforge/Generic PETG" ], "FFG01": [ - "Flashforge/Flashforge Generic PLA", - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge HS PLA Burnt Ti", - "Flashforge/Flashforge PA", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Buint Ti", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Luminous", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Silk", - "Flashforge/Flashforge PLA Sparkle", - "Flashforge/Flashforge TPU 65D", - "Flashforge/Flashforge TPU 95A" + "Flashforge/Flashforge Generic PLA" ], "FILAR0001": [ "OrcaFilamentLibrary/FilAr PLA Bronce" @@ -2838,63 +3228,8 @@ "FLSun/FLSun Generic ABS", "FLSun/FLSun S1 ABS", "FLSun/FLSun T1 ABS", - "Flashforge/FlashForge PC", - "Flashforge/FlashForge PPS", - "Flashforge/FlashForge PPS-CF", - "Flashforge/Flashforge ABS Basic", - "Flashforge/Flashforge ABS-CF", - "Flashforge/Flashforge ASA Basic", - "Flashforge/Flashforge ASA-CF", "Flashforge/Flashforge Generic ABS", - "Flashforge/Flashforge Generic ASA", - "Flashforge/Flashforge Generic HIPS", - "Flashforge/Flashforge Generic PETG", - "Flashforge/Flashforge Generic PETG-CF", - "Flashforge/Flashforge Generic PLA-CF", - "Flashforge/Flashforge Generic PVA", - "Flashforge/Flashforge HIPS", - "Flashforge/Flashforge HS PETG", - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge HS PLA Burnt Ti", - "Flashforge/Flashforge PA", - "Flashforge/Flashforge PA12-CF", - "Flashforge/Flashforge PA6-CF", - "Flashforge/Flashforge PA66-CF", - "Flashforge/Flashforge PET-CF", - "Flashforge/Flashforge PETG Pro", - "Flashforge/Flashforge PETG Transparent", - "Flashforge/Flashforge PETG-CF", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Luminous", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Silk", - "Flashforge/Flashforge PLA Sparkle", - "Flashforge/Flashforge PLA-CF", - "Flashforge/Flashforge PPA-CF", - "Flashforge/Flashforge PPA-GF", - "Flashforge/Flashforge PPS-CF", - "Flashforge/Flashforge TPU 65D", - "Flashforge/Flashforge TPU 95A", - "Flashforge/FusRock Generic NexPA-CF25", - "Flashforge/FusRock Generic PAHT-CF", - "Flashforge/FusRock Generic PAHT-GF", - "Flashforge/FusRock Generic PET-CF", - "Flashforge/FusRock Generic PET-GF", - "Flashforge/FusRock Generic S-Multi", - "Flashforge/FusRock Generic S-PAHT", - "Flashforge/FusRock PAHT", - "Flashforge/FusRock PAHT-CF", - "Flashforge/FusRock PET", - "Flashforge/FusRock PET-CF", "Flashforge/Generic ABS", - "Flashforge/Generic PET", - "Flashforge/Polymaker CoPA", - "Flashforge/Polymaker Generic CoPA", - "Flashforge/Polymaker Generic S1", "FlyingBear/FlyingBear ABS", "FlyingBear/FlyingBear Generic ABS", "FlyingBear/Other ABS", @@ -3084,21 +3419,7 @@ "FLSun/FLSun S1 PETG", "FLSun/FLSun T1 PETG", "Flashforge/Flashforge Generic PETG", - "Flashforge/Flashforge Generic PETG-CF10", - "Flashforge/Flashforge Generic TPU", - "Flashforge/Flashforge HS PETG", - "Flashforge/Flashforge PA", - "Flashforge/Flashforge PETG Basic", - "Flashforge/Flashforge PETG Pro", - "Flashforge/Flashforge PETG Transparent", - "Flashforge/Flashforge PETG-CF", - "Flashforge/Flashforge TPU 95A", - "Flashforge/FusRock PET-CF", - "Flashforge/Generic PET", "Flashforge/Generic PETG", - "Flashforge/Generic PETG-CF10", - "Flashforge/Generic TPU", - "Flashforge/Generic TPU 85A", "FlyingBear/FlyingBear Generic PETG", "FlyingBear/FlyingBear PETG", "FlyingBear/FlyingBear PETG Basic", @@ -3453,34 +3774,8 @@ "FLSun/FLSun T1 PLA Generic", "FLSun/FLSun T1 PLA High Speed", "FLSun/FLSun T1 PLA Silk", - "Flashforge/Flashforge ASA Basic", - "Flashforge/Flashforge Generic ASA", - "Flashforge/Flashforge Generic HS PLA", - "Flashforge/Flashforge Generic PLA-CF10", - "Flashforge/Flashforge Generic PLA-SILK", - "Flashforge/Flashforge Generic PLA-Silk", - "Flashforge/Flashforge HIPS", - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge PA-CF", - "Flashforge/Flashforge PAHT-CF", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Luminous", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Silk", - "Flashforge/Flashforge PLA Sparkle", - "Flashforge/Flashforge PLA-CF", - "Flashforge/Flashforge PPS", - "Flashforge/Flashforge PPS-CF", - "Flashforge/FusRock PAHT-CF", - "Flashforge/Generic ASA", "Flashforge/Generic PLA", "Flashforge/Generic PLA High Speed", - "Flashforge/Generic PLA Silk", - "Flashforge/Generic PLA-CF10", "FlyingBear/FlyingBear Generic PLA", "FlyingBear/FlyingBear PLA", "FlyingBear/FlyingBear PLA Basic", @@ -4389,12 +4684,21 @@ "OF0M6QAQ": [ "OrcaFilamentLibrary/Elegoo PLA Galaxy" ], + "OF0SyJhk": [ + "Flashforge/Flashforge PA6-CF" + ], "OF0TjJ0G": [ "Qidi/Qidi ASA-Aero" ], + "OF0UbONm": [ + "Flashforge/FusRock S-PAHT" + ], "OF0Y5MLd": [ "Qidi/QIDI PETG-GF" ], + "OF0wk0Pk": [ + "Flashforge/Flashforge PLA Pro" + ], "OF0z1XpN": [ "Qidi/QIDI PLA Rapido Silk" ], @@ -4407,27 +4711,60 @@ "OF2UFmOo": [ "Qidi/Bambu PLA" ], + "OF38Hyk4": [ + "Flashforge/Flashforge PETG Pro" + ], "OF3GKs2i": [ "OrcaFilamentLibrary/eSUN PLA-Matte" ], "OF3XeEuV": [ "Qidi/QIDI PET-GF" ], + "OF41QVDH": [ + "Flashforge/Flashforge Generic PLA-Silk" + ], "OF48G7He": [ "Qidi/QIDI PETG Tough 0.8 nozzle" ], + "OF4RKeng": [ + "Flashforge/Flashforge Generic ASA" + ], "OF4fgpse": [ "OrcaFilamentLibrary/Elegoo PLA Marble" ], "OF4gzzE4": [ "Qidi/QIDI PET-CF" ], + "OF4m9A5w": [ + "Flashforge/Flashforge Generic HIPS" + ], + "OF5T1Y9R": [ + "Flashforge/Flashforge ABS Basic" + ], "OF5UUaUM": [ "Qidi/Qidi Generic PLA High Speed" ], + "OF5kwfZu": [ + "Flashforge/FusRock Generic NexPA-CF25" + ], + "OF60Lmeq": [ + "Flashforge/Flashforge PLA Matte" + ], "OF6EOy1A": [ "Qidi/Bambu PETG" ], + "OF6FM5F7": [ + "Flashforge/FusRock PAHT" + ], + "OF6Mxzsg": [ + "Flashforge/Generic TPU" + ], + "OF6SEkeJ": [ + "Flashforge/FusRock PET-CF" + ], + "OF6XIeUW": [ + "Flashforge/Generic PLA-CF10" + ], "OF79FFkO": [ "OrcaFilamentLibrary/Elegoo PC-FR" ], @@ -4440,39 +4777,72 @@ "OF8WvPVL": [ "Qidi/QIDI ABS Rapido 0.8 nozzle" ], + "OF9RZyBz": [ + "Flashforge/Polymaker Generic S1" + ], "OF9qvJxV": [ "OrcaFilamentLibrary/Elegoo PLA Translucent2" ], + "OF9sr3Vn": [ + "Flashforge/Flashforge PLA Sparkle" + ], + "OFAEqlWa": [ + "Flashforge/Flashforge Generic PLA-SILK" + ], + "OFAGrVjP": [ + "Flashforge/Flashforge PLA Silk" + ], "OFAUDGEQ": [ "Qidi/QIDI PLA Rapido Matte" ], "OFAdAYYk": [ "Qidi/QIDI PPS-CF" ], + "OFAdZFD1": [ + "Flashforge/FusRock Generic PET-GF" + ], "OFAnyzjN": [ "Qidi/HATCHBOX PETG" ], + "OFAtydxE": [ + "Flashforge/FusRock S-Multi" + ], "OFC2FSsV": [ "Qidi/Overture PLA" ], + "OFC5CCeo": [ + "Flashforge/Flashforge Generic PETG-CF" + ], + "OFCJaXZS": [ + "Flashforge/Flashforge PPS" + ], "OFD5e0sH": [ "OrcaFilamentLibrary/Elegoo Rapid PLA+" ], "OFDCk0cz": [ - "Flashforge/Flashforge PET-CF", - "Flashforge/Flashforge PETG-CF", - "Flashforge/FusRock S-Multi", "OrcaFilamentLibrary/Generic PETG-CF" ], "OFDNiRTx": [ "OrcaFilamentLibrary/Elegoo PLA+" ], + "OFDkABjZ": [ + "Flashforge/Generic TPU-90A" + ], + "OFE22Uba": [ + "Flashforge/Flashforge TPU-90A" + ], "OFFIL5pD": [ "Qidi/QIDI PA12-CF" ], "OFG8vHw8": [ "Qidi/Qidi Generic ASA" ], + "OFGfdP6J": [ + "Flashforge/FusRock Generic S-Multi" + ], + "OFHBTqyD": [ + "Flashforge/Flashforge PLA Basic" + ], "OFICPchn": [ "OrcaFilamentLibrary/Elegoo PLA Basic" ], @@ -4488,18 +4858,42 @@ "OFJsqMzx": [ "OrcaFilamentLibrary/Generic PLA Matte" ], + "OFK39W9u": [ + "Flashforge/Flashforge Generic PETG-CF10" + ], "OFK820gS": [ "Qidi/QIDI ASA" ], + "OFKWVi10": [ + "Flashforge/Flashforge Generic PLA-CF10" + ], + "OFKZH00L": [ + "Flashforge/FusRock Generic PET-CF" + ], "OFKjlAbC": [ "Qidi/QIDI UltraPA-CF25" ], + "OFL7vEML": [ + "Flashforge/FlashForge PC" + ], "OFLSBS99": [ "OrcaFilamentLibrary/Generic SBS" ], + "OFLeFaUO": [ + "Flashforge/Flashforge Generic PVA" + ], + "OFLxO2Oc": [ + "Flashforge/FusRock PET" + ], + "OFM3PeVe": [ + "Flashforge/Flashforge ASA-CF" + ], "OFMCMXSG": [ "OrcaFilamentLibrary/Generic PP-GF" ], + "OFMHTnPP": [ + "Flashforge/Flashforge PA12-CF" + ], "OFMQJToc": [ "OrcaFilamentLibrary/Elegoo PETG-GF" ], @@ -4512,18 +4906,30 @@ "OFNX5uRT": [ "Qidi/QIDI TPU-Aero" ], + "OFOSzSuh": [ + "Flashforge/Flashforge PA-CF" + ], "OFOW9K96": [ "Qidi/Qidi TPU 95A-HF" ], "OFOysPuE": [ "Qidi/QIDI TPU-GF" ], + "OFPJJxkF": [ + "Flashforge/Flashforge PET-CF" + ], + "OFPJrlC3": [ + "Flashforge/Flashforge PLA-CF" + ], "OFPokkKe": [ "Qidi/QIDI PETG-CF" ], "OFPwi9X0": [ "Qidi/HATCHBOX ABS" ], + "OFQCAYAt": [ + "Flashforge/Flashforge PPA-CF" + ], "OFQZINrX": [ "Qidi/QIDI ABS-GF10" ], @@ -4533,15 +4939,30 @@ "OFQkWxJy": [ "OrcaFilamentLibrary/Elegoo PLA Matte" ], + "OFRNU58t": [ + "Flashforge/Flashforge TPU 95A" + ], + "OFRR8LUh": [ + "Flashforge/Generic ASA" + ], "OFRS2Ggt": [ "OrcaFilamentLibrary/Generic PP-CF" ], + "OFRgDMDJ": [ + "Flashforge/Flashforge PETG Transparent" + ], "OFSSuKRr": [ "Qidi/QIDI PETG Basic" ], + "OFSdF3B1": [ + "Flashforge/FusRock PAHT-CF" + ], "OFT3TqB6": [ "OrcaFilamentLibrary/Elas ASA" ], + "OFTa6gPH": [ + "Flashforge/Flashforge PLA Pro" + ], "OFToBodi": [ "Qidi/QIDI ABS Rapido Metal" ], @@ -4566,6 +4987,12 @@ "OFWkCAdc": [ "Qidi/QIDI PETG Tough 0.2 nozzle" ], + "OFWs8KIZ": [ + "Flashforge/Flashforge ABS-CF" + ], + "OFWv6JYn": [ + "Flashforge/Flashforge PLA Metal" + ], "OFWyCd0Y": [ "Qidi/QIDI Support For PET/PA" ], @@ -4581,12 +5008,30 @@ "OFXmQgno": [ "OrcaFilamentLibrary/eSUN PLA-Marble" ], + "OFXv4FUi": [ + "Flashforge/Flashforge PLA Galaxy" + ], "OFYH00jV": [ "Qidi/QIDI ABS-GF" ], + "OFYICbI4": [ + "Flashforge/FusRock Generic PAHT-CF" + ], + "OFYRS7GZ": [ + "Flashforge/Generic TPU-95A" + ], + "OFYZs7dN": [ + "Flashforge/Flashforge Generic HS PLA" + ], "OFZAkPHG": [ "Qidi/QIDI PPS-GF" ], + "OFZQFvHQ": [ + "Flashforge/Flashforge HS PETG" + ], + "OFZcrV9c": [ + "Flashforge/Flashforge PPS-CF" + ], "OFZhdVnP": [ "OrcaFilamentLibrary/eSUN PLA-Basic" ], @@ -4605,6 +5050,21 @@ "OFceJcLf": [ "Qidi/PolyLite PLA" ], + "OFcy60o4": [ + "Flashforge/Flashforge ASA Basic" + ], + "OFdNORGt": [ + "Flashforge/Flashforge ASA-GF" + ], + "OFdhVJql": [ + "Flashforge/Flashforge PLA Buint Ti" + ], + "OFeFRwST": [ + "Flashforge/Flashforge PVA" + ], + "OFeWMAGH": [ + "Flashforge/Flashforge HS PLA Burnt Ti" + ], "OFenGPBR": [ "OrcaFilamentLibrary/Elegoo PETG Translucent" ], @@ -4612,7 +5072,6 @@ "Qidi/QIDI ABS Rapido 0.2 nozzle" ], "OFfB1QKi": [ - "Flashforge/Flashforge HS PETG", "OrcaFilamentLibrary/Generic PETG HF" ], "OFfJoIgg": [ @@ -4621,36 +5080,87 @@ "OFfdxQok": [ "Qidi/Generic PLA+" ], + "OFftQOek": [ + "Flashforge/Flashforge PLA Matte" + ], + "OFgJX0Fc": [ + "Flashforge/FlashForge PPS" + ], + "OFhzHd2Y": [ + "Flashforge/Flashforge HIPS" + ], + "OFi1ocNv": [ + "Flashforge/Flashforge PA" + ], "OFiJYDPC": [ "Qidi/HATCHBOX PLA" ], "OFidJLn8": [ "Qidi/PolyLite ABS" ], + "OFjepy6j": [ + "Flashforge/FusRock Generic S-PAHT" + ], "OFjohFkg": [ "Qidi/QIDI PETG Translucent" ], + "OFjqPjjl": [ + "Flashforge/Generic PET" + ], + "OFkaDtKx": [ + "Flashforge/Flashforge PA66-CF" + ], + "OFlNKZLP": [ + "Flashforge/Flashforge PLA Metal" + ], + "OFm1VZed": [ + "Flashforge/Flashforge Generic PLA-CF" + ], "OFmF1xL9": [ "Qidi/QIDI ASA-CF" ], "OFmKNi3f": [ "Qidi/QIDI PLA Rapido" ], + "OFmduKVr": [ + "Flashforge/FlashForge PPS-CF" + ], "OFmeQjRP": [ "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" ], + "OFmgesco": [ + "Flashforge/Flashforge TPU 65D" + ], "OFnj7bPm": [ "Qidi/QIDI ABS Rapido 0.6 nozzle" ], "OFnsWQTp": [ "Qidi/QIDI WOOD Rapido" ], + "OFo9EwvK": [ + "Flashforge/Generic PETG-CF10" + ], + "OFoAaHcF": [ + "Flashforge/FusRock Generic PAHT-GF" + ], + "OFoJUGj6": [ + "Flashforge/Flashforge HS PLA" + ], + "OFoimrpo": [ + "Flashforge/Flashforge PETG-CF" + ], + "OFp8lkYD": [ + "Flashforge/Flashforge PPA-GF" + ], "OFpwg2Qh": [ "OrcaFilamentLibrary/Elegoo ASA-CF" ], "OFqPp2yL": [ "Qidi/QIDI PETG Tough 0.6 nozzle" ], + "OFqRWRU6": [ + "Flashforge/Flashforge ABS-GF" + ], "OFqh1Ngp": [ "OrcaFilamentLibrary/Elegoo PLA-CF" ], @@ -4672,27 +5182,60 @@ "OFsNZcid": [ "OrcaFilamentLibrary/PolyLite Dual PLA" ], + "OFsgANe3": [ + "Flashforge/Flashforge PAHT-CF" + ], + "OFt9AiN5": [ + "Flashforge/Polymaker CoPA" + ], + "OFtEFtsz": [ + "Flashforge/Polymaker Generic CoPA" + ], + "OFtJMczs": [ + "Flashforge/Flashforge TPU-64D" + ], "OFuTFxVP": [ "Qidi/Overture ABS" ], "OFuidAEg": [ "Qidi/Bambu ABS" ], + "OFuswXlp": [ + "Flashforge/Generic TPU 85A" + ], "OFutwD6f": [ "OrcaFilamentLibrary/Elegoo PLA Glow" ], + "OFuyJhLF": [ + "Flashforge/Flashforge PETG Basic" + ], "OFv2NHLC": [ "Qidi/QIDI ABS-GF25" ], "OFvN3117": [ "Qidi/QIDI PLA Matte Basic" ], + "OFviQ9lH": [ + "Flashforge/Flashforge Generic TPU" + ], + "OFvsS7Fb": [ + "Flashforge/Generic TPU-64D" + ], "OFw4OHWE": [ "OrcaFilamentLibrary/Elas PETG Basic" ], "OFwHPTvy": [ "Qidi/Qidi Generic PLA+" ], + "OFwf0oWp": [ + "Flashforge/Flashforge PLA Luminous" + ], + "OFyoW5W2": [ + "Flashforge/Flashforge PLA Color Change" + ], + "OFyxAbO4": [ + "Flashforge/Flashforge TPU-95A" + ], "OFzrWlH5": [ "OrcaFilamentLibrary/Elegoo PETG HF" ], @@ -4768,11 +5311,6 @@ ], "OGFB99": [ "Custom/Generic ABS", - "Flashforge/Flashforge ABS Basic", - "Flashforge/Flashforge ABS-GF", - "Flashforge/Flashforge ASA Basic", - "Flashforge/Flashforge ASA-CF", - "Flashforge/Flashforge ASA-GF", "OrcaFilamentLibrary/Generic ABS" ], "OGFC00": [ @@ -4803,8 +5341,6 @@ "OrcaFilamentLibrary/Generic PCTG" ], "OGFG99": [ - "Flashforge/Flashforge PETG Pro", - "Flashforge/Flashforge PETG Transparent", "OrcaFilamentLibrary/Generic PETG" ], "OGFGG300": [ @@ -4856,23 +5392,13 @@ "OrcaFilamentLibrary/Generic PLA High Speed" ], "OGFL96": [ - "Flashforge/Flashforge PLA Silk", "Flashforge/Generic PLA Silk", "OrcaFilamentLibrary/Generic PLA Silk" ], "OGFL98": [ - "Flashforge/Flashforge PLA-CF", "OrcaFilamentLibrary/Generic PLA-CF" ], "OGFL99": [ - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Luminous", "Flashforge/Generic PLA", "OrcaFilamentLibrary/Generic PLA" ], @@ -4895,8 +5421,6 @@ "OrcaFilamentLibrary/Bambu PA6-GF" ], "OGFN96": [ - "Flashforge/Flashforge PPA-CF", - "Flashforge/Flashforge PPS-CF", "OrcaFilamentLibrary/Generic PPA-GF" ], "OGFN97": [ @@ -4904,10 +5428,6 @@ ], "OGFN98": [ "Custom/Generic PA-CF", - "Flashforge/Flashforge PA-CF", - "Flashforge/Flashforge PAHT-CF", - "Flashforge/FusRock PAHT-CF", - "Flashforge/FusRock S-PAHT", "OrcaFilamentLibrary/Generic PA-CF" ], "OGFN99": [ @@ -5015,11 +5535,9 @@ "OrcaFilamentLibrary/Generic BVOH" ], "OGFS98": [ - "Flashforge/Flashforge HIPS", "OrcaFilamentLibrary/Generic HIPS" ], "OGFS99": [ - "Flashforge/Flashforge PVA", "OrcaFilamentLibrary/Generic PVA" ], "OGFSNL02": [ @@ -5054,12 +5572,6 @@ "OrcaFilamentLibrary/Bambu TPU 95A" ], "OGFU99": [ - "Flashforge/Flashforge TPU-64D", - "Flashforge/Flashforge TPU-90A", - "Flashforge/Flashforge TPU-95A", - "Flashforge/Generic TPU-64D", - "Flashforge/Generic TPU-90A", - "Flashforge/Generic TPU-95A", "OrcaFilamentLibrary/Generic TPU" ], "OVTABS08": [ @@ -6681,7 +7193,74 @@ "FLSun/FLSun T1 PLA High Speed", "FLSun/FLSun T1 PLA Silk", "FLSun/FLSun T1 TPU", + "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", + "Flashforge/FlashForge PC @FF G4 0.6 nozzle", + "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", + "Flashforge/FlashForge PC @FF G4P 0.6 HF nozzle", + "Flashforge/FlashForge PC @FF G4P 0.6 nozzle", + "Flashforge/FlashForge PC @FF G4P 0.8 HF nozzle", + "Flashforge/FlashForge PPS @FF G4 0.6 HF nozzle", + "Flashforge/FlashForge PPS @FF G4 0.6 nozzle", + "Flashforge/FlashForge PPS @FF G4 0.8 HF nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.6 HF nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.6 nozzle", + "Flashforge/FlashForge PPS @FF G4P 0.8 HF nozzle", + "Flashforge/FlashForge PPS-CF @FF G4 0.6 nozzle", + "Flashforge/FlashForge PPS-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge ABS", + "Flashforge/Flashforge ABS Basic", + "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge ABS Basic @FF C5", + "Flashforge/Flashforge ABS Basic @FF C5P", + "Flashforge/Flashforge ABS Basic @FF G4", + "Flashforge/Flashforge ABS Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4 HF", + "Flashforge/Flashforge ABS Basic @FF G4P", + "Flashforge/Flashforge ABS Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge ABS Basic @FF G4P HF", + "Flashforge/Flashforge ABS-CF @FF G4", + "Flashforge/Flashforge ABS-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge ABS-CF @FF G4P", + "Flashforge/Flashforge ABS-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS-GF @FF C5", + "Flashforge/Flashforge ABS-GF @FF C5P", + "Flashforge/Flashforge ASA Basic", + "Flashforge/Flashforge ASA Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge ASA Basic @FF C5", + "Flashforge/Flashforge ASA Basic @FF C5P", + "Flashforge/Flashforge ASA Basic @FF G4", + "Flashforge/Flashforge ASA Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4 HF", + "Flashforge/Flashforge ASA Basic @FF G4P", + "Flashforge/Flashforge ASA Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge ASA Basic @FF G4P HF", + "Flashforge/Flashforge ASA-CF", + "Flashforge/Flashforge ASA-CF @FF C5", + "Flashforge/Flashforge ASA-CF @FF C5P", + "Flashforge/Flashforge ASA-CF @FF G4", + "Flashforge/Flashforge ASA-CF @FF G4P", + "Flashforge/Flashforge ASA-GF @FF C5", + "Flashforge/Flashforge ASA-GF @FF C5P", "Flashforge/Flashforge Generic ABS", "Flashforge/Flashforge Generic ABS @FF AD5M 0.25 Nozzle", "Flashforge/Flashforge Generic ABS @G3U", @@ -6713,9 +7292,363 @@ "Flashforge/Flashforge Generic PLA-Silk", "Flashforge/Flashforge Generic PVA", "Flashforge/Flashforge Generic TPU", + "Flashforge/Flashforge HIPS @FF C5", + "Flashforge/Flashforge HIPS @FF C5P", + "Flashforge/Flashforge HIPS @FF G4", + "Flashforge/Flashforge HIPS @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4 0.6 nozzle", + "Flashforge/Flashforge HIPS @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4 HF", + "Flashforge/Flashforge HIPS @FF G4P", + "Flashforge/Flashforge HIPS @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HIPS @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HIPS @FF G4P HF", + "Flashforge/Flashforge HS PETG", + "Flashforge/Flashforge HS PETG @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X", + "Flashforge/Flashforge HS PETG @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge HS PETG @FF C5", + "Flashforge/Flashforge HS PETG @FF C5P", + "Flashforge/Flashforge HS PETG @FF G4", + "Flashforge/Flashforge HS PETG @FF G4 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4 HF", + "Flashforge/Flashforge HS PETG @FF G4P", + "Flashforge/Flashforge HS PETG @FF G4P 0.25 nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PETG @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HS PETG @FF G4P HF", + "Flashforge/Flashforge HS PLA", "Flashforge/Flashforge HS PLA @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X", + "Flashforge/Flashforge HS PLA @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge HS PLA @FF C5", + "Flashforge/Flashforge HS PLA @FF C5P", + "Flashforge/Flashforge HS PLA @FF G4", + "Flashforge/Flashforge HS PLA @FF G4 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4 HF", + "Flashforge/Flashforge HS PLA @FF G4P", + "Flashforge/Flashforge HS PLA @FF G4P 0.25 nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PLA @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA @FF G4P HF", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 HF", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P HF", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle", + "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PA @FF G4", + "Flashforge/Flashforge PA @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PA @FF G4 HF", + "Flashforge/Flashforge PA @FF G4P", + "Flashforge/Flashforge PA @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PA @FF G4P HF", + "Flashforge/Flashforge PA-CF @FF C5", + "Flashforge/Flashforge PA-CF @FF C5P", + "Flashforge/Flashforge PA-CF @FF G4", + "Flashforge/Flashforge PA-CF @FF G4P", + "Flashforge/Flashforge PA12-CF", + "Flashforge/Flashforge PA6-CF", + "Flashforge/Flashforge PA66-CF", + "Flashforge/Flashforge PAHT-CF @FF C5", + "Flashforge/Flashforge PAHT-CF @FF C5P", + "Flashforge/Flashforge PAHT-CF @FF G4", + "Flashforge/Flashforge PAHT-CF @FF G4P", + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PET-CF @FF C5", + "Flashforge/Flashforge PET-CF @FF C5P", "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PETG Basic", + "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Pro", + "Flashforge/Flashforge PETG Pro @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG Pro @FF C5", + "Flashforge/Flashforge PETG Pro @FF C5P", + "Flashforge/Flashforge PETG Pro @FF G4", + "Flashforge/Flashforge PETG Pro @FF G4 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4 HF", + "Flashforge/Flashforge PETG Pro @FF G4P", + "Flashforge/Flashforge PETG Pro @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PETG Pro @FF G4P HF", + "Flashforge/Flashforge PETG Transparent", + "Flashforge/Flashforge PETG Transparent @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG Transparent @FF C5", + "Flashforge/Flashforge PETG Transparent @FF C5P", + "Flashforge/Flashforge PETG Transparent @FF G4", + "Flashforge/Flashforge PETG Transparent @FF G4 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4 HF", + "Flashforge/Flashforge PETG Transparent @FF G4P", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PETG Transparent @FF G4P HF", + "Flashforge/Flashforge PETG-CF", + "Flashforge/Flashforge PETG-CF @FF AD5X", + "Flashforge/Flashforge PETG-CF @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PETG-CF @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PETG-CF @FF C5", + "Flashforge/Flashforge PETG-CF @FF C5P", + "Flashforge/Flashforge PETG-CF @FF G4", + "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge PETG-CF @FF G4P", + "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge PLA", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", + "Flashforge/Flashforge PLA Basic", + "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Basic @FF C5", + "Flashforge/Flashforge PLA Basic @FF C5P", + "Flashforge/Flashforge PLA Basic @FF G4", + "Flashforge/Flashforge PLA Basic @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4 HF", + "Flashforge/Flashforge PLA Basic @FF G4P", + "Flashforge/Flashforge PLA Basic @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Basic @FF G4P HF", + "Flashforge/Flashforge PLA Buint Ti @FF G4 0.8 nozzle", + "Flashforge/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", + "Flashforge/Flashforge PLA Color Change", + "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Color Change @FF C5", + "Flashforge/Flashforge PLA Color Change @FF C5P", + "Flashforge/Flashforge PLA Color Change @FF G4", + "Flashforge/Flashforge PLA Color Change @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4 HF", + "Flashforge/Flashforge PLA Color Change @FF G4P", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Color Change @FF G4P HF", + "Flashforge/Flashforge PLA Galaxy", + "Flashforge/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF C5", + "Flashforge/Flashforge PLA Galaxy @FF C5P", + "Flashforge/Flashforge PLA Galaxy @FF G4", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4 HF", + "Flashforge/Flashforge PLA Galaxy @FF G4P", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Galaxy @FF G4P HF", + "Flashforge/Flashforge PLA Luminous", + "Flashforge/Flashforge PLA Luminous @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Luminous @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Luminous @FF C5", + "Flashforge/Flashforge PLA Luminous @FF C5P", + "Flashforge/Flashforge PLA Luminous @FF G4", + "Flashforge/Flashforge PLA Luminous @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4 HF", + "Flashforge/Flashforge PLA Luminous @FF G4P", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Luminous @FF G4P HF", + "Flashforge/Flashforge PLA Matte", + "Flashforge/Flashforge PLA Matte @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4", + "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4 HF", + "Flashforge/Flashforge PLA Matte @FF G4P", + "Flashforge/Flashforge PLA Matte @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Matte @FF G4P HF", + "Flashforge/Flashforge PLA Metal", + "Flashforge/Flashforge PLA Metal @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4", + "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4 HF", + "Flashforge/Flashforge PLA Metal @FF G4P", + "Flashforge/Flashforge PLA Metal @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Metal @FF G4P HF", + "Flashforge/Flashforge PLA Pro", + "Flashforge/Flashforge PLA Pro @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4", + "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4 HF", + "Flashforge/Flashforge PLA Pro @FF G4P", + "Flashforge/Flashforge PLA Pro @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Pro @FF G4P HF", + "Flashforge/Flashforge PLA Silk", + "Flashforge/Flashforge PLA Silk @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Silk @FF C5", + "Flashforge/Flashforge PLA Silk @FF C5P", + "Flashforge/Flashforge PLA Silk @FF G4", + "Flashforge/Flashforge PLA Silk @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4 HF", + "Flashforge/Flashforge PLA Silk @FF G4P", + "Flashforge/Flashforge PLA Silk @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge PLA Silk @FF G4P HF", + "Flashforge/Flashforge PLA Sparkle", + "Flashforge/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4 HF", + "Flashforge/Flashforge PLA Sparkle @FF G4P", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.25 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PLA Sparkle @FF G4P HF", + "Flashforge/Flashforge PLA-CF", + "Flashforge/Flashforge PLA-CF @FF AD5X", + "Flashforge/Flashforge PLA-CF @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge PLA-CF @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA-CF @FF C5", + "Flashforge/Flashforge PLA-CF @FF C5P", + "Flashforge/Flashforge PLA-CF @FF G4", + "Flashforge/Flashforge PLA-CF @FF G4 0.6 nozzle", + "Flashforge/Flashforge PLA-CF @FF G4P", + "Flashforge/Flashforge PLA-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PPA-CF", + "Flashforge/Flashforge PPA-CF @FF C5", + "Flashforge/Flashforge PPA-CF @FF C5P", + "Flashforge/Flashforge PPA-GF", + "Flashforge/Flashforge PPS @FF G4", + "Flashforge/Flashforge PPS @FF G4P", + "Flashforge/Flashforge PPS-CF", + "Flashforge/Flashforge PPS-CF @FF C5", + "Flashforge/Flashforge PPS-CF @FF C5P", + "Flashforge/Flashforge PPS-CF @FF G4", + "Flashforge/Flashforge PPS-CF @FF G4P", + "Flashforge/Flashforge PVA @FF C5", + "Flashforge/Flashforge PVA @FF C5P", + "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4 0.6 nozzle", + "Flashforge/Flashforge TPU 65D @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.6 nozzle", + "Flashforge/Flashforge TPU 65D @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge TPU 95A", + "Flashforge/Flashforge TPU 95A @FF AD5X", + "Flashforge/Flashforge TPU 95A @FF AD5X 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4", + "Flashforge/Flashforge TPU 95A @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P", + "Flashforge/Flashforge TPU 95A @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P 0.6 nozzle", + "Flashforge/Flashforge TPU 95A @FF G4P 0.8 HF nozzle", + "Flashforge/Flashforge TPU-64D @FF C5", + "Flashforge/Flashforge TPU-64D @FF C5P", + "Flashforge/Flashforge TPU-90A @FF C5", + "Flashforge/Flashforge TPU-90A @FF C5P", + "Flashforge/Flashforge TPU-95A @FF C5", + "Flashforge/Flashforge TPU-95A @FF C5P", "Flashforge/FusRock Generic NexPA-CF25", "Flashforge/FusRock Generic PAHT-CF", "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", @@ -6727,8 +7660,37 @@ "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", "Flashforge/FusRock Generic S-PAHT", "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", + "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", + "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", + "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PAHT-CF @FF C5", + "Flashforge/FusRock PAHT-CF @FF C5P", + "Flashforge/FusRock PAHT-CF @FF G4", + "Flashforge/FusRock PAHT-CF @FF G4 0.6 nozzle", + "Flashforge/FusRock PAHT-CF @FF G4P", + "Flashforge/FusRock PAHT-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PET-CF @FF G4", + "Flashforge/FusRock PET-CF @FF G4 0.6 nozzle", + "Flashforge/FusRock PET-CF @FF G4P", + "Flashforge/FusRock PET-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock S-Multi @FF C5", + "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-PAHT @FF C5", + "Flashforge/FusRock S-PAHT @FF C5P", "Flashforge/Generic ABS @Flashforge AD4", "Flashforge/Generic ASA @Flashforge AD4", + "Flashforge/Generic PET @FF G4", + "Flashforge/Generic PET @FF G4 0.6 HF nozzle", + "Flashforge/Generic PET @FF G4 0.6 nozzle", + "Flashforge/Generic PET @FF G4 0.8 HF nozzle", + "Flashforge/Generic PET @FF G4P", + "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", + "Flashforge/Generic PET @FF G4P 0.6 nozzle", + "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", "Flashforge/Generic PETG @Flashforge AD4", "Flashforge/Generic PETG @Flashforge Artemis", "Flashforge/Generic PETG-CF10 @Flashforge AD4", @@ -6736,7 +7698,22 @@ "Flashforge/Generic PLA High Speed @Flashforge AD4", "Flashforge/Generic PLA Silk @Flashforge AD4", "Flashforge/Generic PLA-CF10 @Flashforge AD4", + "Flashforge/Generic TPU 85A @FF AD5X", + "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", + "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", "Flashforge/Generic TPU @Flashforge AD4", + "Flashforge/Generic TPU-64D @FF C5", + "Flashforge/Generic TPU-64D @FF C5P", + "Flashforge/Generic TPU-90A @FF C5", + "Flashforge/Generic TPU-90A @FF C5P", + "Flashforge/Generic TPU-95A @FF C5", + "Flashforge/Generic TPU-95A @FF C5P", + "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", + "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", + "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", "Flashforge/Polymaker Generic CoPA", "Flashforge/Polymaker Generic S1", "FlyingBear/FlyingBear ABS @Ghost7", From 674344b3c1b6d73379c9b076a43a26da6d8288b8 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:08:08 +0800 Subject: [PATCH 006/164] Elegoo: per-product-line roots and filament_ids Phase 2 of the filament_id cleanup (37 collision groups; one systematic mistake: every commercial line inherits the material-class @base and its EB00 id). 23 new per-line @base roots with fresh deterministic mints (no per-line roots existed, contrary to the plan text), 155 inherits repoints, 23 index entries inserted between the parent @base and the line's members (load-bearing order), 6 in-place mints on single-member generic derivatives. The @base-owning families keep their ids (Elegoo PLA=EPLAB00 etc.); 2 forced family-atomic re-ids outside collision groups (Elegoo Rapid TPU 95A @EN2 Series/@Elegoo Giga follow their family). Residual 2-family shares (GPETGB00/GASAB00 with the Centauri -CF lines, pure-template ETPUB00/ EPAHTB00) are printer-disjoint, validator-clean, and frozen in the snapshot. Verified: config-equivalence gate zero unexpected diffs; extra check exit 0; --check exit 0; validator -l 2 exit 0; extended -f -v Elegoo exit 0 (was 37 groups / 1332 printer-level errors on the pre-apply copy). --- resources/profiles/Elegoo.json | 92 ++++++++++ .../filament/BASE/Elegoo ASA-CF @base.json | 8 + .../filament/BASE/Elegoo PC-FR @base.json | 8 + .../filament/BASE/Elegoo PET-CF @base.json | 8 + .../filament/BASE/Elegoo PETG HF @base.json | 8 + .../filament/BASE/Elegoo PETG PRO @base.json | 8 + .../BASE/Elegoo PETG Translucent @base.json | 8 + .../filament/BASE/Elegoo PETG-CF @base.json | 8 + .../filament/BASE/Elegoo PETG-GF @base.json | 8 + .../filament/BASE/Elegoo PLA Basic @base.json | 8 + .../BASE/Elegoo PLA Galaxy @base.json | 8 + .../filament/BASE/Elegoo PLA Glow @base.json | 8 + .../BASE/Elegoo PLA Marble @base.json | 8 + .../filament/BASE/Elegoo PLA Matte @base.json | 8 + .../filament/BASE/Elegoo PLA PRO @base.json | 8 + .../filament/BASE/Elegoo PLA Silk @base.json | 8 + .../BASE/Elegoo PLA Sparkle @base.json | 8 + .../BASE/Elegoo PLA Translucent2 @base.json | 8 + .../filament/BASE/Elegoo PLA Wood @base.json | 8 + .../filament/BASE/Elegoo PLA+ @base.json | 8 + .../filament/BASE/Elegoo PLA-CF @base.json | 8 + .../BASE/Elegoo Rapid PETG @base.json | 8 + .../BASE/Elegoo Rapid PLA+ @base.json | 8 + .../BASE/Elegoo Rapid TPU 95A @base.json | 8 + .../Elegoo/filament/EC/Elegoo PC-FR @EC.json | 2 +- .../filament/EC/Elegoo PETG PRO @EC.json | 2 +- .../EC/Elegoo PETG Translucent @EC.json | 2 +- .../filament/EC/Elegoo PETG-CF @EC.json | 2 +- .../filament/EC/Elegoo PETG-GF @EC.json | 2 +- .../filament/EC/Elegoo PLA Basic @EC.json | 2 +- .../filament/EC/Elegoo PLA Galaxy @EC.json | 2 +- .../filament/EC/Elegoo PLA Marble @EC.json | 2 +- .../filament/EC/Elegoo PLA Matte @EC.json | 2 +- .../filament/EC/Elegoo PLA PRO @EC.json | 2 +- .../filament/EC/Elegoo PLA Silk @EC.json | 2 +- .../filament/EC/Elegoo PLA Sparkle @EC.json | 2 +- .../filament/EC/Elegoo PLA Wood @EC.json | 2 +- .../Elegoo/filament/EC/Elegoo PLA+ @EC.json | 2 +- .../filament/EC/Elegoo Rapid PETG @EC.json | 2 +- .../filament/EC/Elegoo Rapid PLA+ @EC.json | 2 +- .../filament/EC/Elegoo Rapid TPU 95A @EC.json | 2 +- .../filament/EC2/Elegoo ASA-CF @EC2.json | 2 +- .../filament/EC2/Elegoo PC-FR @EC2.json | 2 +- .../filament/EC2/Elegoo PET-CF @EC2.json | 2 +- .../filament/EC2/Elegoo PETG HF @EC2.json | 2 +- .../filament/EC2/Elegoo PETG PRO @EC2.json | 2 +- .../EC2/Elegoo PETG Translucent @EC2.json | 2 +- .../filament/EC2/Elegoo PETG-CF @EC2.json | 2 +- .../filament/EC2/Elegoo PETG-GF @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Basic @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Galaxy @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Glow @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Marble @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Matte @EC2.json | 2 +- .../filament/EC2/Elegoo PLA PRO @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Silk @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Sparkle @EC2.json | 2 +- .../EC2/Elegoo PLA Translucent2 @EC2.json | 2 +- .../filament/EC2/Elegoo PLA Wood @EC2.json | 2 +- .../Elegoo/filament/EC2/Elegoo PLA+ @EC2.json | 2 +- .../filament/EC2/Elegoo PLA-CF @EC2.json | 2 +- .../filament/EC2/Elegoo Rapid PETG @EC2.json | 2 +- .../filament/EC2/Elegoo Rapid PLA+ @EC2.json | 2 +- .../EC2/Elegoo Rapid TPU 95A @EC2.json | 2 +- .../filament/ECC/Elegoo PC-FR @ECC.json | 2 +- .../filament/ECC/Elegoo PETG PRO @ECC.json | 2 +- .../ECC/Elegoo PETG Translucent @ECC.json | 2 +- .../filament/ECC/Elegoo PETG-CF @ECC.json | 2 +- .../filament/ECC/Elegoo PETG-GF @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Basic @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Galaxy @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Marble @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Matte @ECC.json | 2 +- .../filament/ECC/Elegoo PLA PRO @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Silk @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Sparkle @ECC.json | 2 +- .../filament/ECC/Elegoo PLA Wood @ECC.json | 2 +- .../Elegoo/filament/ECC/Elegoo PLA+ @ECC.json | 2 +- .../filament/ECC/Elegoo PLA-CF @ECC.json | 2 +- .../filament/ECC/Elegoo Rapid PETG @ECC.json | 2 +- .../filament/ECC/Elegoo Rapid PLA+ @ECC.json | 2 +- .../ECC/Elegoo Rapid TPU 95A @ECC.json | 2 +- .../filament/ECC2/Elegoo ASA-CF @ECC2.json | 2 +- .../filament/ECC2/Elegoo PC-FR @ECC2.json | 2 +- .../filament/ECC2/Elegoo PET-CF @ECC2.json | 2 +- .../filament/ECC2/Elegoo PETG HF @ECC2.json | 2 +- .../filament/ECC2/Elegoo PETG PRO @ECC2.json | 2 +- .../ECC2/Elegoo PETG Translucent @ECC2.json | 2 +- .../filament/ECC2/Elegoo PETG-CF @ECC2.json | 2 +- .../filament/ECC2/Elegoo PETG-GF @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Basic @ECC2.json | 2 +- .../ECC2/Elegoo PLA Galaxy @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Glow @ECC2.json | 2 +- .../ECC2/Elegoo PLA Marble @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Matte @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA PRO @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Silk @ECC2.json | 2 +- .../ECC2/Elegoo PLA Sparkle @ECC2.json | 2 +- .../ECC2/Elegoo PLA Translucent2 @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Wood @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA+ @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA-CF @ECC2.json | 2 +- .../ECC2/Elegoo Rapid PETG @ECC2.json | 2 +- .../ECC2/Elegoo Rapid PLA+ @ECC2.json | 2 +- .../ECC2/Elegoo Rapid TPU 95A @ECC2.json | 2 +- .../Elegoo PC-FR @0.2 nozzle.json | 2 +- .../Elegoo PETG PRO @0.2 nozzle.json | 2 +- .../Elegoo PETG Translucent @0.2 nozzle.json | 2 +- .../Elegoo PLA Basic @0.2 nozzle.json | 2 +- .../Elegoo PLA Matte @0.2 nozzle.json | 2 +- .../Elegoo PLA PRO @0.2 nozzle.json | 2 +- .../Elegoo PLA Silk @0.2 nozzle.json | 2 +- .../Elegoo PLA+ @0.2 nozzle.json | 2 +- .../Elegoo Rapid PETG @0.2 nozzle.json | 2 +- .../Elegoo Rapid PLA+ @0.2 nozzle.json | 2 +- .../Elegoo PETG PRO @EN2 Series.json | 2 +- .../Elegoo PETG Translucent @EN2 Series.json | 2 +- .../EN2SERIES/Elegoo PETG-CF @EN2 Series.json | 2 +- .../EN2SERIES/Elegoo PETG-GF @EN2 Series.json | 2 +- .../Elegoo PLA Basic @EN2 Series.json | 2 +- .../Elegoo PLA Galaxy @EN2 Series.json | 2 +- .../Elegoo PLA Marble @EN2 Series.json | 2 +- .../Elegoo PLA Matte @EN2 Series.json | 2 +- .../EN2SERIES/Elegoo PLA PRO @EN2 Series.json | 2 +- .../Elegoo PLA Silk @EN2 Series.json | 2 +- .../Elegoo PLA Sparkle @EN2 Series.json | 2 +- .../Elegoo PLA Wood @EN2 Series.json | 2 +- .../EN2SERIES/Elegoo PLA+ @EN2 Series.json | 2 +- .../EN2SERIES/Elegoo PLA-CF @EN2 Series.json | 2 +- .../Elegoo Rapid PETG @EN2 Series.json | 2 +- .../Elegoo Rapid PLA+ @EN2 Series.json | 2 +- .../Elegoo Rapid TPU 95A @EN2 Series.json | 2 +- .../Elegoo PETG PRO @EN3 Series.json | 2 +- .../Elegoo PETG Translucent @EN3 Series.json | 2 +- .../EN3SERIES/Elegoo PETG-CF @EN3 Series.json | 2 +- .../EN3SERIES/Elegoo PETG-GF @EN3 Series.json | 2 +- .../Elegoo PLA Basic @EN3 Series.json | 2 +- .../Elegoo PLA Galaxy @EN3 Series.json | 2 +- .../Elegoo PLA Marble @EN3 Series.json | 2 +- .../Elegoo PLA Matte @EN3 Series.json | 2 +- .../EN3SERIES/Elegoo PLA PRO @EN3 Series.json | 2 +- .../Elegoo PLA Silk @EN3 Series.json | 2 +- .../Elegoo PLA Sparkle @EN3 Series.json | 2 +- .../Elegoo PLA Wood @EN3 Series.json | 2 +- .../EN3SERIES/Elegoo PLA+ @EN3 Series.json | 2 +- .../EN3SERIES/Elegoo PLA-CF @EN3 Series.json | 2 +- .../Elegoo Rapid PETG @EN3 Series.json | 2 +- .../Elegoo Rapid PLA+ @EN3 Series.json | 2 +- .../Elegoo Rapid TPU 95A @EN3 Series.json | 2 +- .../Elegoo PETG PRO @EN4 Series.json | 2 +- .../Elegoo PETG Translucent @EN4 Series.json | 2 +- .../EN4SERIES/Elegoo PETG-CF @EN4 Series.json | 2 +- .../EN4SERIES/Elegoo PETG-GF @EN4 Series.json | 2 +- .../Elegoo PLA Basic @EN4 Series.json | 2 +- .../Elegoo PLA Galaxy @EN4 Series.json | 2 +- .../Elegoo PLA Marble @EN4 Series.json | 2 +- .../Elegoo PLA Matte @EN4 Series.json | 2 +- .../EN4SERIES/Elegoo PLA PRO @EN4 Series.json | 2 +- .../Elegoo PLA Silk @EN4 Series.json | 2 +- .../Elegoo PLA Sparkle @EN4 Series.json | 2 +- .../Elegoo PLA Wood @EN4 Series.json | 2 +- .../EN4SERIES/Elegoo PLA+ @EN4 Series.json | 2 +- .../EN4SERIES/Elegoo PLA-CF @EN4 Series.json | 2 +- .../Elegoo Rapid PETG @EN4 Series.json | 2 +- .../Elegoo Rapid PLA+ @EN4 Series.json | 2 +- .../Elegoo Rapid TPU 95A @EN4 Series.json | 2 +- .../EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json | 2 +- .../Elegoo PETG Translucent @Elegoo Giga.json | 2 +- .../EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json | 2 +- .../EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json | 2 +- .../Elegoo PLA Basic @Elegoo Giga.json | 2 +- .../Elegoo PLA Galaxy @Elegoo Giga.json | 2 +- .../Elegoo PLA Marble @Elegoo Giga.json | 2 +- .../Elegoo PLA Matte @Elegoo Giga.json | 2 +- .../Elegoo PLA Sparkle @Elegoo Giga.json | 2 +- .../EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json | 2 +- .../Elegoo Rapid PETG @Elegoo Giga.json | 2 +- .../Elegoo Rapid PLA+ @Elegoo Giga.json | 2 +- .../Elegoo Rapid TPU 95A @Elegoo Giga.json | 2 +- .../Generic ABS-CF @Elegoo Centauri.json | 1 + .../Generic/Generic PA6-CF @Elegoo.json | 1 + .../Generic/Generic PC-CF @Elegoo.json | 1 + .../Generic PET-CF @Elegoo Centauri.json | 1 + .../Generic/Generic PETG PRO @Elegoo.json | 1 + .../Generic/Generic PLA Matte @Elegoo.json | 1 + scripts/filament_id_snapshot.json | 169 ++++++++++++++---- 186 files changed, 568 insertions(+), 193 deletions(-) create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index 077c264b84..3813f93348 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -1276,6 +1276,10 @@ "name": "Elegoo PETG @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG @0.2 nozzle.json" }, + { + "name": "Elegoo PETG PRO @base", + "sub_path": "filament/BASE/Elegoo PETG PRO @base.json" + }, { "name": "Elegoo PETG PRO @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json" @@ -1284,26 +1288,50 @@ "name": "Elegoo PLA @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA @0.2 nozzle.json" }, + { + "name": "Elegoo PLA Matte @base", + "sub_path": "filament/BASE/Elegoo PLA Matte @base.json" + }, { "name": "Elegoo PLA Matte @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json" }, + { + "name": "Elegoo PLA PRO @base", + "sub_path": "filament/BASE/Elegoo PLA PRO @base.json" + }, { "name": "Elegoo PLA PRO @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json" }, + { + "name": "Elegoo PLA Silk @base", + "sub_path": "filament/BASE/Elegoo PLA Silk @base.json" + }, { "name": "Elegoo PLA Silk @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json" }, + { + "name": "Elegoo PLA+ @base", + "sub_path": "filament/BASE/Elegoo PLA+ @base.json" + }, { "name": "Elegoo PLA+ @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json" }, + { + "name": "Elegoo Rapid PLA+ @base", + "sub_path": "filament/BASE/Elegoo Rapid PLA+ @base.json" + }, { "name": "Elegoo Rapid PLA+ @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json" }, + { + "name": "Elegoo Rapid PETG @base", + "sub_path": "filament/BASE/Elegoo Rapid PETG @base.json" + }, { "name": "Elegoo Rapid PETG @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json" @@ -1316,14 +1344,26 @@ "name": "Elegoo PC @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC @0.2 nozzle.json" }, + { + "name": "Elegoo PC-FR @base", + "sub_path": "filament/BASE/Elegoo PC-FR @base.json" + }, { "name": "Elegoo PC-FR @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json" }, + { + "name": "Elegoo PLA Basic @base", + "sub_path": "filament/BASE/Elegoo PLA Basic @base.json" + }, { "name": "Elegoo PLA Basic @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json" }, + { + "name": "Elegoo PETG Translucent @base", + "sub_path": "filament/BASE/Elegoo PETG Translucent @base.json" + }, { "name": "Elegoo PETG Translucent @0.2 nozzle", "sub_path": "filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json" @@ -1352,6 +1392,10 @@ "name": "Elegoo PLA Matte @ECC", "sub_path": "filament/ECC/Elegoo PLA Matte @ECC.json" }, + { + "name": "Elegoo PLA-CF @base", + "sub_path": "filament/BASE/Elegoo PLA-CF @base.json" + }, { "name": "Elegoo PLA-CF @ECC", "sub_path": "filament/ECC/Elegoo PLA-CF @ECC.json" @@ -1380,6 +1424,10 @@ "name": "Elegoo ABS @ECC", "sub_path": "filament/ECC/Elegoo ABS @ECC.json" }, + { + "name": "Elegoo PLA Galaxy @base", + "sub_path": "filament/BASE/Elegoo PLA Galaxy @base.json" + }, { "name": "Elegoo PLA Galaxy @ECC", "sub_path": "filament/ECC/Elegoo PLA Galaxy @ECC.json" @@ -1388,14 +1436,26 @@ "name": "Elegoo PLA Basic @ECC", "sub_path": "filament/ECC/Elegoo PLA Basic @ECC.json" }, + { + "name": "Elegoo PLA Marble @base", + "sub_path": "filament/BASE/Elegoo PLA Marble @base.json" + }, { "name": "Elegoo PLA Marble @ECC", "sub_path": "filament/ECC/Elegoo PLA Marble @ECC.json" }, + { + "name": "Elegoo PLA Sparkle @base", + "sub_path": "filament/BASE/Elegoo PLA Sparkle @base.json" + }, { "name": "Elegoo PLA Sparkle @ECC", "sub_path": "filament/ECC/Elegoo PLA Sparkle @ECC.json" }, + { + "name": "Elegoo PLA Wood @base", + "sub_path": "filament/BASE/Elegoo PLA Wood @base.json" + }, { "name": "Elegoo PLA Wood @ECC", "sub_path": "filament/ECC/Elegoo PLA Wood @ECC.json" @@ -1412,10 +1472,18 @@ "name": "Elegoo PC-FR @ECC", "sub_path": "filament/ECC/Elegoo PC-FR @ECC.json" }, + { + "name": "Elegoo PETG-CF @base", + "sub_path": "filament/BASE/Elegoo PETG-CF @base.json" + }, { "name": "Elegoo PETG-CF @ECC", "sub_path": "filament/ECC/Elegoo PETG-CF @ECC.json" }, + { + "name": "Elegoo PETG-GF @base", + "sub_path": "filament/BASE/Elegoo PETG-GF @base.json" + }, { "name": "Elegoo PETG-GF @ECC", "sub_path": "filament/ECC/Elegoo PETG-GF @ECC.json" @@ -1424,6 +1492,10 @@ "name": "Elegoo PETG Translucent @ECC", "sub_path": "filament/ECC/Elegoo PETG Translucent @ECC.json" }, + { + "name": "Elegoo Rapid TPU 95A @base", + "sub_path": "filament/BASE/Elegoo Rapid TPU 95A @base.json" + }, { "name": "Elegoo Rapid TPU 95A @ECC", "sub_path": "filament/ECC/Elegoo Rapid TPU 95A @ECC.json" @@ -1716,6 +1788,10 @@ "name": "Elegoo PETG Translucent @EC2", "sub_path": "filament/EC2/Elegoo PETG Translucent @EC2.json" }, + { + "name": "Elegoo ASA-CF @base", + "sub_path": "filament/BASE/Elegoo ASA-CF @base.json" + }, { "name": "Elegoo ASA-CF @ECC2", "sub_path": "filament/ECC2/Elegoo ASA-CF @ECC2.json" @@ -1724,6 +1800,10 @@ "name": "Elegoo ASA-CF @EC2", "sub_path": "filament/EC2/Elegoo ASA-CF @EC2.json" }, + { + "name": "Elegoo PET-CF @base", + "sub_path": "filament/BASE/Elegoo PET-CF @base.json" + }, { "name": "Elegoo PET-CF @ECC2", "sub_path": "filament/ECC2/Elegoo PET-CF @ECC2.json" @@ -1732,6 +1812,10 @@ "name": "Elegoo PET-CF @EC2", "sub_path": "filament/EC2/Elegoo PET-CF @EC2.json" }, + { + "name": "Elegoo PETG HF @base", + "sub_path": "filament/BASE/Elegoo PETG HF @base.json" + }, { "name": "Elegoo PETG HF @ECC2", "sub_path": "filament/ECC2/Elegoo PETG HF @ECC2.json" @@ -1740,6 +1824,10 @@ "name": "Elegoo PETG HF @EC2", "sub_path": "filament/EC2/Elegoo PETG HF @EC2.json" }, + { + "name": "Elegoo PLA Glow @base", + "sub_path": "filament/BASE/Elegoo PLA Glow @base.json" + }, { "name": "Elegoo PLA Glow @ECC2", "sub_path": "filament/ECC2/Elegoo PLA Glow @ECC2.json" @@ -1748,6 +1836,10 @@ "name": "Elegoo PLA Glow @EC2", "sub_path": "filament/EC2/Elegoo PLA Glow @EC2.json" }, + { + "name": "Elegoo PLA Translucent2 @base", + "sub_path": "filament/BASE/Elegoo PLA Translucent2 @base.json" + }, { "name": "Elegoo PLA Translucent2 @ECC2", "sub_path": "filament/ECC2/Elegoo PLA Translucent2 @ECC2.json" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json new file mode 100644 index 0000000000..bc100dfe2f --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo ASA-CF @base", + "inherits": "Elegoo ASA @base", + "from": "system", + "filament_id": "OFAiqi5v", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json new file mode 100644 index 0000000000..9aeb40e0a8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PC-FR @base", + "inherits": "Elegoo PC @base", + "from": "system", + "filament_id": "OFzFbFcl", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json new file mode 100644 index 0000000000..6290eba7f9 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PET-CF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFSCm6pJ", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json new file mode 100644 index 0000000000..ba3e4715a3 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG HF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFxjFYxE", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json new file mode 100644 index 0000000000..4df7589911 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG PRO @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFmOWC74", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json new file mode 100644 index 0000000000..b75929e76a --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG Translucent @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFOkTA0C", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json new file mode 100644 index 0000000000..3a3b837513 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG-CF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFiyGNbI", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json new file mode 100644 index 0000000000..e7020a00bf --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PETG-GF @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OFBvxnjM", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json new file mode 100644 index 0000000000..42f77b0b2b --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Basic @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFHtQDC9", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json new file mode 100644 index 0000000000..ef7c46673d --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Galaxy @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OF09vOcG", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json new file mode 100644 index 0000000000..cffd7b0185 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Glow @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFuXkYly", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json new file mode 100644 index 0000000000..bda871cae8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Marble @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFbYP6Wb", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json new file mode 100644 index 0000000000..a216c20e7c --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Matte @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFwyqcGn", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json new file mode 100644 index 0000000000..d6d1e30e6c --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA PRO @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFklg4aM", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json new file mode 100644 index 0000000000..b0ba1af2d6 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Silk @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFkfK62J", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json new file mode 100644 index 0000000000..1120084d6a --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Sparkle @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFaKIoH2", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json new file mode 100644 index 0000000000..d06d60e5cc --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Translucent2 @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFcqs5g7", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json new file mode 100644 index 0000000000..ab43fb2bf2 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA Wood @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFh5GUhZ", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json new file mode 100644 index 0000000000..028fd42383 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA+ @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFDMWB6t", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json new file mode 100644 index 0000000000..706b60f0c9 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo PLA-CF @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFuPC4S8", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json new file mode 100644 index 0000000000..5eeb29bad3 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid PETG @base", + "inherits": "Elegoo PETG @base", + "from": "system", + "filament_id": "OF3arl18", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json new file mode 100644 index 0000000000..b83fe4b688 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid PLA+ @base", + "inherits": "Elegoo PLA @base", + "from": "system", + "filament_id": "OFAHagT9", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json new file mode 100644 index 0000000000..fe1bae90a0 --- /dev/null +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Elegoo Rapid TPU 95A @base", + "inherits": "Elegoo TPU @base", + "from": "system", + "filament_id": "OFL4KniM", + "instantiation": "false" +} diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PC-FR @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PC-FR @EC.json index 8fae500404..85c449d63d 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PC-FR @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PC-FR @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @EC", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "DOX4jdBlUuiFx27J", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json index e86269bb09..a31310c99e 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PETG PRO @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @EC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "ADLcWU2wDYdXUM0F", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PETG Translucent @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PETG Translucent @EC.json index 28f8027a7a..82cf5984ce 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PETG Translucent @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PETG Translucent @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @EC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "bkdR8uTPqu0nMTMW", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PETG-CF @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PETG-CF @EC.json index 1875a4b76d..40c06c2ea6 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PETG-CF @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PETG-CF @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @EC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "bNOqwg4q2TE94jEj", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PETG-GF @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PETG-GF @EC.json index fcfd9e3ed8..978d44137c 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PETG-GF @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PETG-GF @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @EC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "jDvyk3UkeiNb2U9m", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Basic @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Basic @EC.json index a69e1b0daa..53fb8da44e 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Basic @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Basic @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "hO0eeJKhhc9aWSqV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Galaxy @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Galaxy @EC.json index cb692d090b..9e4e4e75fa 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Galaxy @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Galaxy @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "F55l4bPdEauXI3Zf", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Marble @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Marble @EC.json index 521d677ac9..5f15585557 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Marble @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Marble @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "lZOlnGqn1G7V5NBY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json index ba0cdcff72..2ebc1acdcb 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Matte @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "GC7p8OUHQheNbsms", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json index 59b3d04f4b..96e4da2470 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA PRO @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "23RCuAK92MPaxyqe", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json index 1641f49732..3de7272685 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Silk @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "vSomzlfdeel8Fkkc", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Sparkle @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Sparkle @EC.json index cea1875a1e..ccb945dea0 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Sparkle @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Sparkle @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "XbPbopAAmos9Fhe5", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Wood @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Wood @EC.json index 329eca7704..c023839c9e 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA Wood @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA Wood @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "4cqc0qMp58PbLivG", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json index 4b02ef0ff2..e4f500e3d9 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PLA+ @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "TtRiwCEgVej4q1bD", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PETG @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PETG @EC.json index 5651aabd4e..aaa6b6ed57 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PETG @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PETG @EC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @EC", "renamed_from": "Elegoo RAPID PETG @EC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "BIkMBzPkBJNZtn9I", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PLA+ @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PLA+ @EC.json index 441e1c1844..f91163b60b 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PLA+ @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid PLA+ @EC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @EC", "renamed_from": "Elegoo RAPID PLA+ @EC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "SdBul5AmPj8ZwaKm", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid TPU 95A @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid TPU 95A @EC.json index b698d51e37..1bb675bcad 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo Rapid TPU 95A @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo Rapid TPU 95A @EC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @EC", "renamed_from": "Elegoo RAPID TPU 95A @EC", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "XWoU9g1mRLapDWmY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo ASA-CF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo ASA-CF @EC2.json index d448a14146..09a741f456 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo ASA-CF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo ASA-CF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo ASA-CF @EC2", - "inherits": "Elegoo ASA @base", + "inherits": "Elegoo ASA-CF @base", "from": "system", "setting_id": "12kyjckYS59VKuJr", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PC-FR @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PC-FR @EC2.json index e27e485702..fef1cd2942 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PC-FR @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PC-FR @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @EC2", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "4y2nFqOY9OLYQT4I", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PET-CF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PET-CF @EC2.json index 0e73748900..9cfd0df698 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PET-CF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PET-CF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PET-CF @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PET-CF @base", "from": "system", "setting_id": "YuxImosRqvxeXky9", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG HF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG HF @EC2.json index db3eac6a9b..3cc09b1253 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG HF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG HF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG HF @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG HF @base", "from": "system", "setting_id": "JXAbqQk05wQC2ZsV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG PRO @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG PRO @EC2.json index f443590f79..19f171099d 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG PRO @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG PRO @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "7eE7wOnwAMmDk3N8", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG Translucent @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG Translucent @EC2.json index e5d38ae804..117eff2f6c 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG Translucent @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG Translucent @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "c62Io0F7o3YY9UfY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-CF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-CF @EC2.json index 521e3f54d6..ef5bc10365 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-CF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-CF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "H5b1oB4xwcsOGVYG", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-GF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-GF @EC2.json index 0376628dd7..78f93ab630 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-GF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PETG-GF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "UXEBZHN5QuEKg2dX", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Basic @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Basic @EC2.json index bf2e6de3d6..5ca3f673a6 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Basic @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Basic @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "YBylnOIc1QhV45N0", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Galaxy @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Galaxy @EC2.json index 485a267cc4..f907a9add4 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Galaxy @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Galaxy @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "BZ67cDxyhlFdrNPf", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Glow @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Glow @EC2.json index d9cd47f31e..5942a1353b 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Glow @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Glow @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Glow @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Glow @base", "from": "system", "setting_id": "X18eV3oo6N3xDJXN", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Marble @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Marble @EC2.json index 819bcc8fb7..41e18aac91 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Marble @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Marble @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "D4UWZLfsmnwQSQP0", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Matte @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Matte @EC2.json index 5713ef1094..fa490188d9 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Matte @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Matte @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "EMVja9n1ZwI2Lq3R", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA PRO @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA PRO @EC2.json index 128866138d..3f52d014e1 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA PRO @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA PRO @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "TXUB904pAsT5napV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Silk @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Silk @EC2.json index def1a54169..6b334b031a 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Silk @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Silk @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "9M8QYAJcLTyKLgNL", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Sparkle @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Sparkle @EC2.json index 17abe488dc..76efd87383 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Sparkle @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Sparkle @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "l7NSciXWqkFqbTgB", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Translucent2 @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Translucent2 @EC2.json index 8bd5e92dea..6e09760383 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Translucent2 @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Translucent2 @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Translucent2 @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Translucent2 @base", "from": "system", "setting_id": "RKBHiiO580ou2vr1", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Wood @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Wood @EC2.json index 1071c52353..153ace7d5d 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Wood @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA Wood @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "ym42CllFezpl1XEg", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA+ @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA+ @EC2.json index cbf217cae1..5dfd3d5218 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA+ @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA+ @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "vf5ap9MNwVgptsvO", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA-CF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA-CF @EC2.json index e148759647..7f77984b7b 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PLA-CF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PLA-CF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "UpGOamlqBkqj71bx", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PETG @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PETG @EC2.json index 7242ba793e..c6973a9316 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PETG @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PETG @EC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @EC2", "renamed_from": "Elegoo RAPID PETG @EC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "1qDXoSeuwBcAbZmk", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PLA+ @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PLA+ @EC2.json index e3d33b2243..b44278d6e2 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PLA+ @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid PLA+ @EC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @EC2", "renamed_from": "Elegoo RAPID PLA+ @EC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "lfHbQa7hrJ7wg4oC", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid TPU 95A @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid TPU 95A @EC2.json index 7195e17e93..14b585d079 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid TPU 95A @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo Rapid TPU 95A @EC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @EC2", "renamed_from": "Elegoo RAPID TPU 95A @EC2", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "siG31sp4DyxsrhAc", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PC-FR @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PC-FR @ECC.json index 4fc22048cb..739780ead3 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PC-FR @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PC-FR @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @ECC", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "nCZkQRo7hh7vwwbL", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json index 49692dd335..95beb0642f 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG PRO @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @ECC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "VfYr5aZoseuXcbN6", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG Translucent @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG Translucent @ECC.json index de9d234ce4..d5e37e6443 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG Translucent @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG Translucent @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @ECC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "X5cTMTTWd0GWWj6d", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-CF @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-CF @ECC.json index a2f6620a79..4f71ace3fa 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-CF @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-CF @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @ECC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "WNaFMeStUh8INJGx", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-GF @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-GF @ECC.json index 68df019a74..ad02614622 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-GF @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PETG-GF @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @ECC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "s5zG5lNveft4RPEX", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Basic @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Basic @ECC.json index 2470cead83..0b6855e93b 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Basic @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Basic @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "zCxfCnJcHoGLipVy", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Galaxy @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Galaxy @ECC.json index 5e0e0819c1..a60319429e 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Galaxy @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Galaxy @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "M5uv0mruFXpkbauD", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Marble @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Marble @ECC.json index d9104d271f..c436f05881 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Marble @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Marble @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "BFEnBt0IBILLmhri", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json index 79e4a2b076..d8259d1668 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Matte @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "niMCkAjPd2bJdjZs", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json index bbd35a7c58..4405d9eabc 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA PRO @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "JfYUDBI0wNnLpEsL", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json index 7d135cd9fd..d67e21299f 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Silk @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "n4hPXKakxN4xmQsj", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Sparkle @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Sparkle @ECC.json index 6143048aa1..b26a6d0486 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Sparkle @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Sparkle @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "kn34IfbyhDKllxwq", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Wood @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Wood @ECC.json index 92842d8fbf..4160c5a11a 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Wood @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA Wood @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "kI7ZFyzYkMcrKrM1", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json index 06c833d7b2..3d96576667 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA+ @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "UbOYgGsK00v3gLL8", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json index 4743d13a9f..a7ff2af7ea 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PLA-CF @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "rvrpVcpcUAtwXgsn", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PETG @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PETG @ECC.json index 6ea852850d..78be9ad0c5 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PETG @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PETG @ECC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @ECC", "renamed_from": "Elegoo RAPID PETG @ECC", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "r4F3n71ajBUlmLgN", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PLA+ @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PLA+ @ECC.json index 859b66e8ad..e331dcb593 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PLA+ @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid PLA+ @ECC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @ECC", "renamed_from": "Elegoo RAPID PLA+ @ECC", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "OvdHgrXbSulHkLWz", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid TPU 95A @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid TPU 95A @ECC.json index 6faef1d73a..af4902d2a0 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid TPU 95A @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo Rapid TPU 95A @ECC.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @ECC", "renamed_from": "Elegoo RAPID TPU 95A @ECC", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "uVpRY8TCq9S6kr8M", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo ASA-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo ASA-CF @ECC2.json index 0974b25503..9e9de44980 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo ASA-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo ASA-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo ASA-CF @ECC2", - "inherits": "Elegoo ASA @base", + "inherits": "Elegoo ASA-CF @base", "from": "system", "setting_id": "X7ugJOOrWixpeke8", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json index 5875d26411..e179a2fae0 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @ECC2", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "M86WAPT5jr5ge7Ni", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PET-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PET-CF @ECC2.json index 9519266c2d..57de3396b7 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PET-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PET-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PET-CF @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PET-CF @base", "from": "system", "setting_id": "sIwAf2oRC7VqYjIR", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG HF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG HF @ECC2.json index 27ad64e1b5..06551d42b3 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG HF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG HF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG HF @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG HF @base", "from": "system", "setting_id": "EAt1AJX3ZupILYWV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json index bb535d3213..52621252b8 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "YjUFi1BuigQdJGfe", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json index de86ebaae6..81f11bb3cf 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "Nk21n7x4I5xjwNqV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json index 1e40c2a305..a8f66ceb18 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "TsJJG9mgzBt5GWPZ", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json index 13060e74ba..a80a50283a 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "Po38QP4RqkGBZTHq", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json index e301741c27..e0e19454e5 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "CG6nOQRYTWN0jJNV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json index 638fef599c..1f4c3a24ea 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "jieMxZQRwSJ8lOQK", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Glow @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Glow @ECC2.json index 7944c67d88..9d44f32e96 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Glow @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Glow @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Glow @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Glow @base", "from": "system", "setting_id": "S6c2IXcIWDpViP2T", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json index 297ac4fcd0..4a1592daef 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "vBkiE3Uh1LdCiOig", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json index 025d40e19d..5522f8f92f 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "C3IdNUQ5dSe1wQua", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA PRO @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA PRO @ECC2.json index f1b8a7a1d2..b3ed52adae 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA PRO @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA PRO @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "nIBhL1ZCxYZSMZTO", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json index 62efb49b53..970a859a26 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "R20HD2TcTFmVt8ei", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json index da6927987e..7357f57dd7 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "RoM3TYRuszinvW6b", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Translucent2 @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Translucent2 @ECC2.json index 8a81ff7ccf..4119a7c009 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Translucent2 @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Translucent2 @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Translucent2 @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Translucent2 @base", "from": "system", "setting_id": "K1pIYbrCCJUBwAOt", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json index 0b794f78a6..c1ee9ccb34 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "7D7QoTRo7U4HGaZB", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA+ @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA+ @ECC2.json index 7b6e068061..bad7a5e25d 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA+ @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA+ @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "GCMagCIZUPjPBpuH", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json index a95b21ddba..1c7d88298d 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "0pllUBj7uWuhIr0v", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PETG @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PETG @ECC2.json index fe19d98291..f550c51ee9 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PETG @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PETG @ECC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @ECC2", "renamed_from": "Elegoo RAPID PETG @ECC2", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "oVp14HbITUsNcgvp", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PLA+ @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PLA+ @ECC2.json index c173221004..4baa2ba58d 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PLA+ @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid PLA+ @ECC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @ECC2", "renamed_from": "Elegoo RAPID PLA+ @ECC2", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "qXybozVO1oL7MEud", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json index ebbdefb767..267956ac99 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo Rapid TPU 95A @ECC2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @ECC2", "renamed_from": "Elegoo RAPID TPU 95A @ECC2", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "5osmvljNWBUEc9Kc", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json index 88c968cf23..734234a7e5 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PC-FR @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PC-FR @0.2 nozzle", - "inherits": "Elegoo PC @base", + "inherits": "Elegoo PC-FR @base", "from": "system", "setting_id": "Q6LfquCFYpzmrILa", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json index 9978fb863b..f8cc2b9fc2 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG PRO @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @0.2 nozzle", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "TBkoABUqBy51TLtW", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json index 7b11b3b54e..82e74b3448 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PETG Translucent @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @0.2 nozzle", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "3zgNnsZ5SmrldddZ", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json index c606063a33..9f9b494683 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Basic @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "cBFHhPKahRBGfAg6", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json index f5bb2921b3..cb1dbf6ebd 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Matte @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "TyHg4K4ZNiYKgaso", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json index 80f9b0cab9..9514bef332 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA PRO @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "ed7EP0Fx9X6WoP8q", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json index e6a61535b3..7cd383baf0 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA Silk @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "9cy4zu57LxlFIrLB", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json index 7bab03c3c0..960d70e8b4 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo PLA+ @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "IODCNDnNbt1xXMQR", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json index 4f9d3ddacd..a2c6a17ee8 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PETG @0.2 nozzle.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @0.2 nozzle", "renamed_from": "Elegoo RAPID PETG @0.2 nozzle", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "Vn71U93sqvxWaq5J", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json index f7d3bf2b8b..5677780b04 100644 --- a/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json +++ b/resources/profiles/Elegoo/filament/ELEGOO_02_NOZZLE/Elegoo Rapid PLA+ @0.2 nozzle.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @0.2 nozzle", "renamed_from": "Elegoo RAPID PLA+ @0.2 nozzle", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "52q6GSMo16aOU2a0", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json index 2d540432f1..ee33397b89 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG PRO @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @EN2 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "47TFK2SdXkanFany", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json index ec6735ee45..9cc8d43f42 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG Translucent @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @EN2 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "PG4cLzHQ2okqwTVi", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json index f4cb06df03..15c6fe281b 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-CF @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @EN2 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "xVvTmdiPx4DqsoSt", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json index 1d4376f603..655a9b4ff0 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PETG-GF @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @EN2 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "Wuj48uGxkjtu1k0E", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json index 1625d88ade..02f95a30e4 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Basic @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "rKMXIa1T57ARSSew", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json index 969338f3fb..5ce5cb9b03 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Galaxy @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "dK5fXHKyvXbajhfU", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json index 49de0c172a..e65cfd721a 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Marble @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "vcJBgxGVh5Rl3dRy", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json index b526d88f8a..4ba71c6f1c 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Matte @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "pFzHY2WtgjYBAq1c", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json index bbca38423a..fc4a9de6d7 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA PRO @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "AP6zWYwNv7aXdT4e", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json index b75a9105f7..1100589ce7 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Silk @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "AquzfXzcf6CxPLmL", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json index a63d22f72b..309f296c35 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Sparkle @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "sYpjo9kbuDSM5YXe", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json index 1f52f7a951..10ee31a860 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA Wood @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "FCCgNMxR3m3CtWBL", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json index aa2afe2789..cdbb0a9336 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA+ @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "qn1N6b1JCgut6S69", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json index 51be7c9afc..d90f5a7d86 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo PLA-CF @EN2 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "vmxHMRDkf1EpLGx1", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json index 66e35e0448..b60d3aa948 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PETG @EN2 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @EN2 Series", "renamed_from": "Elegoo RAPID PETG @EN2 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "7Nqa8yKgcpoRnMhS", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json index 16f84c1480..a2e29df5f2 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid PLA+ @EN2 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @EN2 Series", "renamed_from": "Elegoo RAPID PLA+ @EN2 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "GRiM2kKnyW0xiFoS", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json index f7fd820319..5c3a6c4bd8 100644 --- a/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json +++ b/resources/profiles/Elegoo/filament/EN2SERIES/Elegoo Rapid TPU 95A @EN2 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @EN2 Series", "renamed_from": "Elegoo RAPID TPU 95A @EN2 Series", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "NcE57l7rlZXMQqqO", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json index d7b7d77e88..68076528bc 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG PRO @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @EN3 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "hcpl3lUmYmocda9K", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json index a5df1863a2..3b3c367d85 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG Translucent @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @EN3 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "vvE6QSdUAwZyExFq", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json index 85b4e262ce..d47880e700 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-CF @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @EN3 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "w31T0qj9YkyNYfXR", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json index a0c6dffa1e..74e80e0306 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PETG-GF @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @EN3 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "Ss1cK4Mg4Qsmq60H", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json index d322e76d4a..c7008362e1 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Basic @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "HuzVgg6RrpAtYYEv", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json index 70a9903ae6..213d2cdd80 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Galaxy @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "BpZZWJcuFxWOCCnw", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json index b6e4d20992..4ccc34dbc8 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Marble @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "BxsWsE3wgE9wgBmm", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json index 8360ac8d5c..511c9d9677 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Matte @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "L3da64GFIKUFdDJA", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json index 114e264047..a62506cc92 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA PRO @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "V7HUl0gBvGKwKD1A", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json index d7fa7b836b..8498c99ccb 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Silk @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "ik0YrrrI6oUpXz79", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json index b40ed87cf6..990ab62ced 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Sparkle @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "5NjKDHvQ2r1kxHGU", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json index 3d3ac38460..22f0c6486c 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA Wood @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "aieihLgO1a0ZdWfJ", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json index 00844dd1e8..02b51855fc 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA+ @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "LqnrFp0vDbiCMJ8I", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json index ab7ccd7730..8284fd2279 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo PLA-CF @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "1NWIyM71opgpoto1", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json index 30ca32476f..bbbb7a044b 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PETG @EN3 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @EN3 Series", "renamed_from": "Elegoo RAPID PETG @EN3 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "WrjA1jFlRkBjm8sV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json index a8755142d5..2e79376216 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid PLA+ @EN3 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @EN3 Series", "renamed_from": "Elegoo RAPID PLA+ @EN3 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "HLIz2ghBgZEcM67x", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json index 0a9d3251b0..11370d1342 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo Rapid TPU 95A @EN3 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @EN3 Series", "renamed_from": "Elegoo RAPID TPU 95A @EN3 Series", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "q51os4xSncl4kA7h", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json index 3f514f290c..b3bf57532d 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG PRO @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @EN4 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "9vWaWFD7kELXCz9k", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json index 9d4befe58d..64d7fe70b4 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG Translucent @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @EN4 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "MGNtc9J7whLEQzfo", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json index 6b6d93b07e..570205ae49 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-CF @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @EN4 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "OqmWX74QvP3luz8T", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json index 9c60c02542..14c7c8cd16 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PETG-GF @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @EN4 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "l9VHRBqMe9jvI5x6", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json index a35c8b06f3..3393aa3998 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Basic @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "djQpscbgnpi9yeDU", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json index 3b8b23e8d2..510ef8199f 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Galaxy @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "rDOS8SneslZCJyiY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json index 6aaaa87311..81be94abca 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Marble @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "EXITbaYE2JGd9m6w", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json index b05ed89beb..5240be0bad 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Matte @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "PKKBmF1QUn3byAbe", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json index d993878b35..d8852e7c62 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA PRO @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA PRO @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA PRO @base", "from": "system", "setting_id": "912jZphbXGIftHOj", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json index 0f01fc1e0e..9e87cd98c4 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Silk @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Silk @base", "from": "system", "setting_id": "3Gwsgkj54YfChaTX", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json index 50750bf2cb..da863b088e 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Sparkle @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "fpSoENagRf6Xkgtr", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json index 3e84f6da3f..cadcf8122c 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA Wood @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "9HTUZ0mmSCp2asTR", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json index 569f2e4a73..270d303450 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA+ @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA+ @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA+ @base", "from": "system", "setting_id": "aFHpETdqnjrmKoh2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json index 174db0000f..3eba08c02a 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo PLA-CF @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA-CF @base", "from": "system", "setting_id": "tRWzBsYXsnpNVsQ4", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json index 5355c6c52f..855ce546c9 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PETG @EN4 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @EN4 Series", "renamed_from": "Elegoo RAPID PETG @EN4 Series", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "fvbwrYR63t9NnL8m", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json index 024aa42f17..5ec149fee7 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid PLA+ @EN4 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @EN4 Series", "renamed_from": "Elegoo RAPID PLA+ @EN4 Series", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "Eu5Ao6aTdlnV5o7e", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json index bcf333c319..0c3389a1d2 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo Rapid TPU 95A @EN4 Series.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @EN4 Series", "renamed_from": "Elegoo RAPID TPU 95A @EN4 Series", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "0FWDHJF7V9rGXugP", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json index e5a75475c3..bf3942c6c9 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG PRO @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @Elegoo Giga", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG PRO @base", "from": "system", "setting_id": "cO87yMETWbUTIweN", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json index 61c21f7d5f..89b17d0d8c 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG Translucent @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG Translucent @Elegoo Giga", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG Translucent @base", "from": "system", "setting_id": "fkE2LCMu63t1NQtI", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json index 8f90166c6b..633fee4d01 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-CF @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-CF @Elegoo Giga", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-CF @base", "from": "system", "setting_id": "uGF6puqnX1jW2pmn", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json index 0d280b37cb..085eba8e80 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PETG-GF @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG-GF @Elegoo Giga", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo PETG-GF @base", "from": "system", "setting_id": "S4ZpKZDyr5g5HMPi", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json index d49474bcfe..345eb9b131 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Basic @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Basic @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Basic @base", "from": "system", "setting_id": "vdtyGUjloveBjsGV", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json index c9ba6949ab..4c6df1a2ac 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Galaxy @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Galaxy @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Galaxy @base", "from": "system", "setting_id": "Nq1YaFeJ6Osr7OZ9", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json index 435e05d0ab..a76087fb41 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Marble @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Marble @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Marble @base", "from": "system", "setting_id": "6mfjc7t9ntuG1ZKW", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json index 9ab372abee..ebc4a86a33 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Matte @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Matte @base", "from": "system", "setting_id": "mHbvYB78eds96SH8", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json index 9b11bc2cae..68ad38e31a 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Sparkle @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Sparkle @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Sparkle @base", "from": "system", "setting_id": "pgsOuYMxtcm3Fkar", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json index 9dd74672fc..2d3118d9f9 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo PLA Wood @Elegoo Giga.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Wood @Elegoo Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo PLA Wood @base", "from": "system", "setting_id": "BI2euv7xwM9F2hKC", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json index b91444664e..41aaa430e8 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PETG @Elegoo Giga.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PETG @Elegoo Giga", "renamed_from": "Elegoo RAPID PETG @Elegoo Giga;Elegoo Rapid PETG @EOS Giga;Elegoo RAPID PETG @EOS Giga", - "inherits": "Elegoo PETG @base", + "inherits": "Elegoo Rapid PETG @base", "from": "system", "setting_id": "4ut2mjKopnW6tfxj", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json index da6b0baf35..e42850d3e8 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid PLA+ @Elegoo Giga.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid PLA+ @Elegoo Giga", "renamed_from": "Elegoo RAPID PLA+ @Elegoo Giga;Elegoo Rapid PLA+ @EOS Giga;Elegoo RAPID PLA+ @EOS Giga", - "inherits": "Elegoo PLA @base", + "inherits": "Elegoo Rapid PLA+ @base", "from": "system", "setting_id": "9I2DPoLgiCzn1S3i", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json index f634875fd5..01ccd899d4 100644 --- a/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json +++ b/resources/profiles/Elegoo/filament/EOSGIGA/Elegoo Rapid TPU 95A @Elegoo Giga.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Elegoo Rapid TPU 95A @Elegoo Giga", "renamed_from": "Elegoo RAPID TPU 95A @Elegoo Giga;Elegoo Rapid TPU 95A @EOS Giga;Elegoo RAPID TPU 95A @EOS Giga", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo Rapid TPU 95A @base", "from": "system", "setting_id": "i0PeAUTlls9DGtRK", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json index 2ebff4843e..7931a6604e 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json @@ -4,6 +4,7 @@ "inherits": "Generic ABS @base", "from": "system", "setting_id": "fRiriEvlcxDDO5tc", + "filament_id": "OFo4VB3w", "instantiation": "true", "nozzle_temperature": [ "260" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json index 46b8157cf4..5fa54d9eb4 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json @@ -4,6 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "TPgpyakWZ7NjVnj5", + "filament_id": "OFk388hR", "instantiation": "true", "fan_min_speed": [ "10" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json index da160366dd..479ae9f275 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json @@ -4,6 +4,7 @@ "inherits": "Generic PC @base", "from": "system", "setting_id": "KMhdBJbiUeXxKgPS", + "filament_id": "OFypQeKR", "instantiation": "true", "filament_type": [ "PC-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json index 4e9aa92be9..b7542f46f7 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json @@ -4,6 +4,7 @@ "inherits": "Generic PET @base", "from": "system", "setting_id": "Q6wiKjigmzkcMxFz", + "filament_id": "OF0TODnN", "instantiation": "true", "filament_type": [ "PET-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json index c2ba7dfa97..fc750fdcc6 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json @@ -4,6 +4,7 @@ "name": "Generic PETG PRO @Elegoo", "renamed_from": "Elegoo Generic PETG PRO", "from": "system", + "filament_id": "OFhKNHC8", "instantiation": "true", "inherits": "Generic PETG @base", "cool_plate_temp": [ diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json index db84f78382..aee418bd18 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json @@ -3,6 +3,7 @@ "setting_id": "dH2Yf92iqsOj5XYo", "name": "Generic PLA Matte @Elegoo", "from": "system", + "filament_id": "OFsLkLw6", "instantiation": "true", "inherits": "Generic PLA @base", "cool_plate_temp": [ diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index f9d84b029c..71b62c1814 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -601,15 +601,44 @@ "DeltaMaker/DeltaMaker Generic PETG", "DeltaMaker/DeltaMaker Generic PLA", "Dremel/Dremel Generic PLA", + "Elegoo/Elegoo ASA-CF @base", "Elegoo/Elegoo PAHT @base", "Elegoo/Elegoo PC @base", + "Elegoo/Elegoo PC-FR @base", + "Elegoo/Elegoo PET-CF @base", "Elegoo/Elegoo PETG @base", + "Elegoo/Elegoo PETG HF @base", + "Elegoo/Elegoo PETG PRO @base", + "Elegoo/Elegoo PETG Translucent @base", + "Elegoo/Elegoo PETG-CF @base", + "Elegoo/Elegoo PETG-GF @base", "Elegoo/Elegoo PLA @base", + "Elegoo/Elegoo PLA Basic @base", + "Elegoo/Elegoo PLA Galaxy @base", + "Elegoo/Elegoo PLA Glow @base", + "Elegoo/Elegoo PLA Marble @base", + "Elegoo/Elegoo PLA Matte @base", + "Elegoo/Elegoo PLA PRO @base", + "Elegoo/Elegoo PLA Silk @base", + "Elegoo/Elegoo PLA Sparkle @base", + "Elegoo/Elegoo PLA Translucent2 @base", + "Elegoo/Elegoo PLA Wood @base", + "Elegoo/Elegoo PLA+ @base", + "Elegoo/Elegoo PLA-CF @base", + "Elegoo/Elegoo Rapid PETG @base", + "Elegoo/Elegoo Rapid PLA+ @base", + "Elegoo/Elegoo Rapid TPU 95A @base", + "Elegoo/Generic ABS-CF @Elegoo Centauri", "Elegoo/Generic PA @base", + "Elegoo/Generic PA6-CF @Elegoo", "Elegoo/Generic PC @base", + "Elegoo/Generic PC-CF @Elegoo", "Elegoo/Generic PET @base", + "Elegoo/Generic PET-CF @Elegoo Centauri", "Elegoo/Generic PETG @base", + "Elegoo/Generic PETG PRO @Elegoo", "Elegoo/Generic PLA @base", + "Elegoo/Generic PLA Matte @Elegoo", "FLSun/FLSun Generic PA", "FLSun/FLSun Generic PA-CF", "FLSun/FLSun Generic PC", @@ -2698,8 +2727,7 @@ "Elegoo/Elegoo ABS" ], "EASAB00": [ - "Elegoo/Elegoo ASA", - "Elegoo/Elegoo ASA-CF" + "Elegoo/Elegoo ASA" ], "EFL33": [ "Eryone/Eryone PP-CF" @@ -2748,34 +2776,13 @@ "Elegoo/Elegoo PAHT-CF" ], "EPCB00": [ - "Elegoo/Elegoo PC", - "Elegoo/Elegoo PC-FR" + "Elegoo/Elegoo PC" ], "EPETGB00": [ - "Elegoo/Elegoo PET-CF", - "Elegoo/Elegoo PETG", - "Elegoo/Elegoo PETG HF", - "Elegoo/Elegoo PETG PRO", - "Elegoo/Elegoo PETG Translucent", - "Elegoo/Elegoo PETG-CF", - "Elegoo/Elegoo PETG-GF", - "Elegoo/Elegoo Rapid PETG" + "Elegoo/Elegoo PETG" ], "EPLAB00": [ - "Elegoo/Elegoo PLA", - "Elegoo/Elegoo PLA Basic", - "Elegoo/Elegoo PLA Galaxy", - "Elegoo/Elegoo PLA Glow", - "Elegoo/Elegoo PLA Marble", - "Elegoo/Elegoo PLA Matte", - "Elegoo/Elegoo PLA PRO", - "Elegoo/Elegoo PLA Silk", - "Elegoo/Elegoo PLA Sparkle", - "Elegoo/Elegoo PLA Translucent2", - "Elegoo/Elegoo PLA Wood", - "Elegoo/Elegoo PLA+", - "Elegoo/Elegoo PLA-CF", - "Elegoo/Elegoo Rapid PLA+" + "Elegoo/Elegoo PLA" ], "ESN02": [ "OrcaFilamentLibrary/eSUN ePLA-LW" @@ -2784,7 +2791,6 @@ "OrcaFilamentLibrary/eSUN PETG" ], "ETPUB00": [ - "Elegoo/Elegoo Rapid TPU 95A", "Elegoo/Elegoo TPU 95A" ], "FDPLAST01": [ @@ -3023,8 +3029,7 @@ "OrcaFilamentLibrary/FILL3D PETG CF" ], "GABSB00": [ - "Elegoo/Generic ABS", - "Elegoo/Generic ABS-CF" + "Elegoo/Generic ABS" ], "GASAB00": [ "Elegoo/Generic ASA", @@ -4492,25 +4497,20 @@ "Prusa/Prusa Generic TPU HF" ], "GPAB00": [ - "Elegoo/Generic PA", - "Elegoo/Generic PA6-CF" + "Elegoo/Generic PA" ], "GPCB00": [ - "Elegoo/Generic PC", - "Elegoo/Generic PC-CF" + "Elegoo/Generic PC" ], "GPETB00": [ - "Elegoo/Generic PET", - "Elegoo/Generic PET-CF" + "Elegoo/Generic PET" ], "GPETGB00": [ "Elegoo/Generic PETG", - "Elegoo/Generic PETG PRO", "Elegoo/Generic PETG-CF" ], "GPLAB00": [ - "Elegoo/Generic PLA", - "Elegoo/Generic PLA Matte" + "Elegoo/Generic PLA" ], "Generic ABS @E3NG v1.2S": [ "RH3D/Generic ABS" @@ -4681,12 +4681,18 @@ "OETPUB00": [ "OrcaFilamentLibrary/Elegoo TPU 95A" ], + "OF09vOcG": [ + "Elegoo/Elegoo PLA Galaxy" + ], "OF0M6QAQ": [ "OrcaFilamentLibrary/Elegoo PLA Galaxy" ], "OF0SyJhk": [ "Flashforge/Flashforge PA6-CF" ], + "OF0TODnN": [ + "Elegoo/Generic PET-CF" + ], "OF0TjJ0G": [ "Qidi/Qidi ASA-Aero" ], @@ -4720,6 +4726,9 @@ "OF3XeEuV": [ "Qidi/QIDI PET-GF" ], + "OF3arl18": [ + "Elegoo/Elegoo Rapid PETG" + ], "OF41QVDH": [ "Flashforge/Flashforge Generic PLA-Silk" ], @@ -4792,6 +4801,9 @@ "OFAGrVjP": [ "Flashforge/Flashforge PLA Silk" ], + "OFAHagT9": [ + "Elegoo/Elegoo Rapid PLA+" + ], "OFAUDGEQ": [ "Qidi/QIDI PLA Rapido Matte" ], @@ -4801,12 +4813,18 @@ "OFAdZFD1": [ "Flashforge/FusRock Generic PET-GF" ], + "OFAiqi5v": [ + "Elegoo/Elegoo ASA-CF" + ], "OFAnyzjN": [ "Qidi/HATCHBOX PETG" ], "OFAtydxE": [ "Flashforge/FusRock S-Multi" ], + "OFBvxnjM": [ + "Elegoo/Elegoo PETG-GF" + ], "OFC2FSsV": [ "Qidi/Overture PLA" ], @@ -4822,6 +4840,9 @@ "OFDCk0cz": [ "OrcaFilamentLibrary/Generic PETG-CF" ], + "OFDMWB6t": [ + "Elegoo/Elegoo PLA+" + ], "OFDNiRTx": [ "OrcaFilamentLibrary/Elegoo PLA+" ], @@ -4843,6 +4864,9 @@ "OFHBTqyD": [ "Flashforge/Flashforge PLA Basic" ], + "OFHtQDC9": [ + "Elegoo/Elegoo PLA Basic" + ], "OFICPchn": [ "OrcaFilamentLibrary/Elegoo PLA Basic" ], @@ -4873,6 +4897,9 @@ "OFKjlAbC": [ "Qidi/QIDI UltraPA-CF25" ], + "OFL4KniM": [ + "Elegoo/Elegoo Rapid TPU 95A" + ], "OFL7vEML": [ "Flashforge/FlashForge PC" ], @@ -4912,6 +4939,9 @@ "OFOW9K96": [ "Qidi/Qidi TPU 95A-HF" ], + "OFOkTA0C": [ + "Elegoo/Elegoo PETG Translucent" + ], "OFOysPuE": [ "Qidi/QIDI TPU-GF" ], @@ -4951,6 +4981,9 @@ "OFRgDMDJ": [ "Flashforge/Flashforge PETG Transparent" ], + "OFSCm6pJ": [ + "Elegoo/Elegoo PET-CF" + ], "OFSSuKRr": [ "Qidi/QIDI PETG Basic" ], @@ -5041,15 +5074,24 @@ "OFa6L3Of": [ "Qidi/Qidi PC-ABS-FR" ], + "OFaKIoH2": [ + "Elegoo/Elegoo PLA Sparkle" + ], "OFbS9rjH": [ "Qidi/QIDI PETG Rapido" ], + "OFbYP6Wb": [ + "Elegoo/Elegoo PLA Marble" + ], "OFbgt3u3": [ "OrcaFilamentLibrary/Elas PLA Basic" ], "OFceJcLf": [ "Qidi/PolyLite PLA" ], + "OFcqs5g7": [ + "Elegoo/Elegoo PLA Translucent2" + ], "OFcy60o4": [ "Flashforge/Flashforge ASA Basic" ], @@ -5086,6 +5128,12 @@ "OFgJX0Fc": [ "Flashforge/FlashForge PPS" ], + "OFh5GUhZ": [ + "Elegoo/Elegoo PLA Wood" + ], + "OFhKNHC8": [ + "Elegoo/Generic PETG PRO" + ], "OFhzHd2Y": [ "Flashforge/Flashforge HIPS" ], @@ -5098,6 +5146,9 @@ "OFidJLn8": [ "Qidi/PolyLite ABS" ], + "OFiyGNbI": [ + "Elegoo/Elegoo PETG-CF" + ], "OFjepy6j": [ "Flashforge/FusRock Generic S-PAHT" ], @@ -5107,9 +5158,18 @@ "OFjqPjjl": [ "Flashforge/Generic PET" ], + "OFk388hR": [ + "Elegoo/Generic PA6-CF" + ], "OFkaDtKx": [ "Flashforge/Flashforge PA66-CF" ], + "OFkfK62J": [ + "Elegoo/Elegoo PLA Silk" + ], + "OFklg4aM": [ + "Elegoo/Elegoo PLA PRO" + ], "OFlNKZLP": [ "Flashforge/Flashforge PLA Metal" ], @@ -5122,6 +5182,9 @@ "OFmKNi3f": [ "Qidi/QIDI PLA Rapido" ], + "OFmOWC74": [ + "Elegoo/Elegoo PETG PRO" + ], "OFmduKVr": [ "Flashforge/FlashForge PPS-CF" ], @@ -5137,6 +5200,9 @@ "OFnsWQTp": [ "Qidi/QIDI WOOD Rapido" ], + "OFo4VB3w": [ + "Elegoo/Generic ABS-CF" + ], "OFo9EwvK": [ "Flashforge/Generic PETG-CF10" ], @@ -5179,6 +5245,9 @@ "OFsKqcQW": [ "OrcaFilamentLibrary/Elegoo PLA PRO" ], + "OFsLkLw6": [ + "Elegoo/Generic PLA Matte" + ], "OFsNZcid": [ "OrcaFilamentLibrary/PolyLite Dual PLA" ], @@ -5194,9 +5263,15 @@ "OFtJMczs": [ "Flashforge/Flashforge TPU-64D" ], + "OFuPC4S8": [ + "Elegoo/Elegoo PLA-CF" + ], "OFuTFxVP": [ "Qidi/Overture ABS" ], + "OFuXkYly": [ + "Elegoo/Elegoo PLA Glow" + ], "OFuidAEg": [ "Qidi/Bambu ABS" ], @@ -5230,12 +5305,24 @@ "OFwf0oWp": [ "Flashforge/Flashforge PLA Luminous" ], + "OFwyqcGn": [ + "Elegoo/Elegoo PLA Matte" + ], + "OFxjFYxE": [ + "Elegoo/Elegoo PETG HF" + ], "OFyoW5W2": [ "Flashforge/Flashforge PLA Color Change" ], + "OFypQeKR": [ + "Elegoo/Generic PC-CF" + ], "OFyxAbO4": [ "Flashforge/Flashforge TPU-95A" ], + "OFzFbFcl": [ + "Elegoo/Elegoo PC-FR" + ], "OFzrWlH5": [ "OrcaFilamentLibrary/Elegoo PETG HF" ], @@ -7154,6 +7241,12 @@ "DeltaMaker/DeltaMaker Generic PLA", "DeltaMaker/DeltaMaker Generic TPU", "Dremel/Dremel Generic PLA", + "Elegoo/Generic ABS-CF @Elegoo Centauri", + "Elegoo/Generic PA6-CF @Elegoo", + "Elegoo/Generic PC-CF @Elegoo", + "Elegoo/Generic PET-CF @Elegoo Centauri", + "Elegoo/Generic PETG PRO @Elegoo", + "Elegoo/Generic PLA Matte @Elegoo", "Eryone/Eryone ABS", "Eryone/Eryone ABS-CF", "Eryone/Eryone ASA", From 095fd9fba40617300ed99d54d4afda380bcd88a9 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:09:05 +0800 Subject: [PATCH 007/164] Prusa: move filament_ids off shared templates onto family roots Phase 2 of the filament_id cleanup (31 collision groups, all one mechanism: material-class ids on shared fdm_filament_* templates collapsing HF/-CF/ Prusament lines onto one id, plus 3 overclaims). 18 new @base family roots (owner generic keeps the legacy id, 12 impostor families get deterministic mints), 72 config-neutral inherits repoints, 6 template filament_id keys removed (only where every id-less inheritor is covered by a new root; fdm_filament_asa/pc keep theirs for the frozen Prusament @XL riders), 3 compatible_printers trims on MINIIS printers covered by dedicated @MINIIS variants. Frozen name-shaped and _NN per-variant ids stay byte-identical. Verified: config-equivalence gate zero unexpected diffs; extra check exit 0; --check exit 0; validator -l 2 exit 0; extended -f -v Prusa exit 0 (was 31 groups / 1035 printer-level errors on the pre-apply copy). --- resources/profiles/Prusa.json | 72 +++++++++++++++++ .../Prusa Generic ABS @MINIIS 0.25.json | 2 +- .../Prusa Generic ABS @MINIIS 0.6.json | 2 +- .../Prusa Generic ABS @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic ABS @MINIIS.json | 2 +- .../filament/Prusa Generic ABS @MK4.json | 2 +- .../filament/Prusa Generic ABS @XL 5T.json | 2 +- .../Prusa/filament/Prusa Generic ABS @XL.json | 2 +- .../filament/Prusa Generic ABS @base.json | 8 ++ .../Prusa Generic ABS HF @MINIIS 0.6.json | 2 +- .../Prusa Generic ABS HF @MINIIS 0.8.json | 2 +- .../Prusa Generic ABS HF @MINIIS.json | 2 +- .../filament/Prusa Generic ABS HF @base.json | 8 ++ .../Prusa/filament/Prusa Generic ABS.json | 2 +- .../Prusa Generic ASA HF @MINIIS 0.6.json | 2 +- .../Prusa Generic ASA HF @MINIIS 0.8.json | 2 +- .../Prusa Generic ASA HF @MINIIS.json | 2 +- .../filament/Prusa Generic ASA HF @base.json | 8 ++ .../Prusa Generic PA @MINIIS 0.25.json | 2 +- .../Prusa Generic PA @MINIIS 0.6.json | 2 +- .../Prusa Generic PA @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PA @MINIIS.json | 2 +- .../filament/Prusa Generic PA @base.json | 8 ++ .../Prusa Generic PA-CF @MINIIS 0.25.json | 2 +- .../Prusa Generic PA-CF @MINIIS 0.6.json | 2 +- .../Prusa Generic PA-CF @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PA-CF @MINIIS.json | 2 +- .../filament/Prusa Generic PA-CF @base.json | 8 ++ .../Prusa/filament/Prusa Generic PA-CF.json | 8 +- .../Prusa/filament/Prusa Generic PA.json | 8 +- .../Prusa Generic PC HF @MINIIS 0.6.json | 2 +- .../Prusa Generic PC HF @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PC HF @MINIIS.json | 2 +- .../filament/Prusa Generic PC HF @base.json | 8 ++ .../Prusa Generic PETG @MINIIS 0.25.json | 2 +- .../Prusa Generic PETG @MINIIS 0.6.json | 2 +- .../Prusa Generic PETG @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PETG @MINIIS.json | 2 +- .../filament/Prusa Generic PETG @MK4.json | 2 +- .../filament/Prusa Generic PETG @XL 5T.json | 2 +- .../filament/Prusa Generic PETG @XL.json | 2 +- .../filament/Prusa Generic PETG @base.json | 8 ++ .../Prusa Generic PETG HF @MINIIS 0.6.json | 2 +- .../Prusa Generic PETG HF @MINIIS 0.8.json | 2 +- .../Prusa Generic PETG HF @MINIIS.json | 2 +- .../filament/Prusa Generic PETG HF @base.json | 8 ++ .../Prusa/filament/Prusa Generic PETG.json | 2 +- .../Prusa Generic PLA @MINIIS 0.25.json | 2 +- .../Prusa Generic PLA @MINIIS 0.6.json | 2 +- .../Prusa Generic PLA @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PLA @MINIIS.json | 2 +- .../filament/Prusa Generic PLA @MK4.json | 2 +- .../filament/Prusa Generic PLA @XL 5T.json | 2 +- .../Prusa/filament/Prusa Generic PLA @XL.json | 2 +- .../filament/Prusa Generic PLA @base.json | 8 ++ .../Prusa Generic PLA HF @MINIIS 0.6.json | 2 +- .../Prusa Generic PLA HF @MINIIS 0.8.json | 2 +- .../Prusa Generic PLA HF @MINIIS.json | 2 +- .../filament/Prusa Generic PLA HF @base.json | 8 ++ .../Prusa Generic PLA-CF @MINIIS 0.25.json | 2 +- .../Prusa Generic PLA-CF @MINIIS 0.6.json | 2 +- .../Prusa Generic PLA-CF @MINIIS 0.8.json | 2 +- .../Prusa Generic PLA-CF @MINIIS.json | 2 +- .../filament/Prusa Generic PLA-CF @base.json | 8 ++ .../Prusa/filament/Prusa Generic PLA-CF.json | 8 +- .../Prusa/filament/Prusa Generic PLA.json | 2 +- .../Prusa Generic PVA @MINIIS 0.25.json | 2 +- .../Prusa Generic PVA @MINIIS 0.6.json | 2 +- .../Prusa Generic PVA @MINIIS 0.8.json | 2 +- .../filament/Prusa Generic PVA @MINIIS.json | 2 +- .../filament/Prusa Generic PVA @base.json | 8 ++ .../Prusa Generic PVA HF @MINIIS 0.6.json | 2 +- .../Prusa Generic PVA HF @MINIIS 0.8.json | 2 +- .../Prusa Generic PVA HF @MINIIS.json | 2 +- .../filament/Prusa Generic PVA HF @base.json | 8 ++ .../Prusa/filament/Prusa Generic PVA.json | 2 +- .../filament/Prusa Generic TPU @MINIIS.json | 2 +- .../filament/Prusa Generic TPU @MK4.json | 2 +- .../filament/Prusa Generic TPU @base.json | 8 ++ .../Prusa Generic TPU HF @MINIIS.json | 2 +- .../filament/Prusa Generic TPU HF @base.json | 8 ++ .../Prusa/filament/Prusa Generic TPU.json | 2 +- .../Prusa/filament/Prusament PETG @XL 5T.json | 2 +- .../Prusa/filament/Prusament PETG @XL.json | 2 +- .../Prusa/filament/Prusament PETG @base.json | 8 ++ .../Prusa/filament/Prusament PLA @XL 5T.json | 2 +- .../Prusa/filament/Prusament PLA @XL.json | 2 +- .../Prusa/filament/Prusament PLA @base.json | 8 ++ .../Prusa/filament/Prusament rPLA @XL 5T.json | 2 +- .../Prusa/filament/Prusament rPLA @XL.json | 2 +- .../Prusa/filament/Prusament rPLA @base.json | 8 ++ .../Prusa/filament/fdm_filament_abs.json | 1 - .../Prusa/filament/fdm_filament_pa.json | 1 - .../Prusa/filament/fdm_filament_pet.json | 1 - .../Prusa/filament/fdm_filament_pla.json | 1 - .../Prusa/filament/fdm_filament_pva.json | 1 - .../Prusa/filament/fdm_filament_tpu.json | 1 - scripts/filament_id_snapshot.json | 81 +++++++++++-------- 98 files changed, 340 insertions(+), 125 deletions(-) create mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PA @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PETG @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PLA @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PVA @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic TPU @base.json create mode 100644 resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json create mode 100644 resources/profiles/Prusa/filament/Prusament PETG @base.json create mode 100644 resources/profiles/Prusa/filament/Prusament PLA @base.json create mode 100644 resources/profiles/Prusa/filament/Prusament rPLA @base.json diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index 935de537be..4fa412325a 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -1448,6 +1448,10 @@ "name": "fdm_filament_tpu", "sub_path": "filament/fdm_filament_tpu.json" }, + { + "name": "Prusa Generic ABS @base", + "sub_path": "filament/Prusa Generic ABS @base.json" + }, { "name": "Prusa Generic ABS", "sub_path": "filament/Prusa Generic ABS.json" @@ -1504,6 +1508,10 @@ "name": "Prusa Generic ABS @XL 5T", "sub_path": "filament/Prusa Generic ABS @XL 5T.json" }, + { + "name": "Prusa Generic ABS HF @base", + "sub_path": "filament/Prusa Generic ABS HF @base.json" + }, { "name": "Prusa Generic ABS HF @MINIIS", "sub_path": "filament/Prusa Generic ABS HF @MINIIS.json" @@ -1576,6 +1584,10 @@ "name": "Prusa Generic ASA @MK4S", "sub_path": "filament/Prusa Generic ASA @MK4S.json" }, + { + "name": "Prusa Generic ASA HF @base", + "sub_path": "filament/Prusa Generic ASA HF @base.json" + }, { "name": "Prusa Generic ASA HF @MINIIS", "sub_path": "filament/Prusa Generic ASA HF @MINIIS.json" @@ -1624,6 +1636,10 @@ "name": "Prusa Generic TPU @CORE One", "sub_path": "filament/Prusa Generic TPU @CORE One.json" }, + { + "name": "Prusa Generic PA @base", + "sub_path": "filament/Prusa Generic PA @base.json" + }, { "name": "Prusa Generic PA", "sub_path": "filament/Prusa Generic PA.json" @@ -1660,6 +1676,10 @@ "name": "Prusa Generic PA @MK3.5 0.8", "sub_path": "filament/Prusa Generic PA @MK3.5 0.8.json" }, + { + "name": "Prusa Generic PA-CF @base", + "sub_path": "filament/Prusa Generic PA-CF @base.json" + }, { "name": "Prusa Generic PA-CF", "sub_path": "filament/Prusa Generic PA-CF.json" @@ -1744,6 +1764,10 @@ "name": "Prusa Generic PC @MK3.5 0.8", "sub_path": "filament/Prusa Generic PC @MK3.5 0.8.json" }, + { + "name": "Prusa Generic PC HF @base", + "sub_path": "filament/Prusa Generic PC HF @base.json" + }, { "name": "Prusa Generic PC HF @MINIIS", "sub_path": "filament/Prusa Generic PC HF @MINIIS.json" @@ -1792,6 +1816,10 @@ "name": "Prusament PC-CF @XL 5T", "sub_path": "filament/Prusament PC-CF @XL 5T.json" }, + { + "name": "Prusa Generic PETG @base", + "sub_path": "filament/Prusa Generic PETG @base.json" + }, { "name": "Prusa Generic PETG", "sub_path": "filament/Prusa Generic PETG.json" @@ -1848,6 +1876,10 @@ "name": "Prusa Generic PETG @XL 5T", "sub_path": "filament/Prusa Generic PETG @XL 5T.json" }, + { + "name": "Prusa Generic PETG HF @base", + "sub_path": "filament/Prusa Generic PETG HF @base.json" + }, { "name": "Prusa Generic PETG HF @MINIIS", "sub_path": "filament/Prusa Generic PETG HF @MINIIS.json" @@ -1876,6 +1908,10 @@ "name": "Prusament PETG @CORE One", "sub_path": "filament/Prusament PETG @CORE One.json" }, + { + "name": "Prusament PETG @base", + "sub_path": "filament/Prusament PETG @base.json" + }, { "name": "Prusament PETG @XL", "sub_path": "filament/Prusament PETG @XL.json" @@ -1884,6 +1920,10 @@ "name": "Prusament PETG @XL 5T", "sub_path": "filament/Prusament PETG @XL 5T.json" }, + { + "name": "Prusa Generic PLA @base", + "sub_path": "filament/Prusa Generic PLA @base.json" + }, { "name": "Prusa Generic PLA", "sub_path": "filament/Prusa Generic PLA.json" @@ -1940,6 +1980,10 @@ "name": "Prusa Generic PLA @XL 5T", "sub_path": "filament/Prusa Generic PLA @XL 5T.json" }, + { + "name": "Prusa Generic PLA HF @base", + "sub_path": "filament/Prusa Generic PLA HF @base.json" + }, { "name": "Prusa Generic PLA HF @MINIIS", "sub_path": "filament/Prusa Generic PLA HF @MINIIS.json" @@ -1968,6 +2012,10 @@ "name": "Prusa Generic PLA Silk @CORE One", "sub_path": "filament/Prusa Generic PLA Silk @CORE One.json" }, + { + "name": "Prusa Generic PLA-CF @base", + "sub_path": "filament/Prusa Generic PLA-CF @base.json" + }, { "name": "Prusa Generic PLA-CF", "sub_path": "filament/Prusa Generic PLA-CF.json" @@ -2008,6 +2056,10 @@ "name": "Prusament PLA @CORE One", "sub_path": "filament/Prusament PLA @CORE One.json" }, + { + "name": "Prusament PLA @base", + "sub_path": "filament/Prusament PLA @base.json" + }, { "name": "Prusament PLA @XL", "sub_path": "filament/Prusament PLA @XL.json" @@ -2020,6 +2072,10 @@ "name": "Prusament rPLA @CORE One", "sub_path": "filament/Prusament rPLA @CORE One.json" }, + { + "name": "Prusament rPLA @base", + "sub_path": "filament/Prusament rPLA @base.json" + }, { "name": "Prusament rPLA @XL", "sub_path": "filament/Prusament rPLA @XL.json" @@ -2028,6 +2084,10 @@ "name": "Prusament rPLA @XL 5T", "sub_path": "filament/Prusament rPLA @XL 5T.json" }, + { + "name": "Prusa Generic PVA @base", + "sub_path": "filament/Prusa Generic PVA @base.json" + }, { "name": "Prusa Generic PVA", "sub_path": "filament/Prusa Generic PVA.json" @@ -2064,6 +2124,10 @@ "name": "Prusa Generic PVA @MK3.5 0.8", "sub_path": "filament/Prusa Generic PVA @MK3.5 0.8.json" }, + { + "name": "Prusa Generic PVA HF @base", + "sub_path": "filament/Prusa Generic PVA HF @base.json" + }, { "name": "Prusa Generic PVA HF @MINIIS", "sub_path": "filament/Prusa Generic PVA HF @MINIIS.json" @@ -2100,6 +2164,10 @@ "name": "Prusament PVB @XL 5T", "sub_path": "filament/Prusament PVB @XL 5T.json" }, + { + "name": "Prusa Generic TPU @base", + "sub_path": "filament/Prusa Generic TPU @base.json" + }, { "name": "Prusa Generic TPU", "sub_path": "filament/Prusa Generic TPU.json" @@ -2120,6 +2188,10 @@ "name": "Prusa Generic TPU @MK4S", "sub_path": "filament/Prusa Generic TPU @MK4S.json" }, + { + "name": "Prusa Generic TPU HF @base", + "sub_path": "filament/Prusa Generic TPU HF @base.json" + }, { "name": "Prusa Generic TPU HF @MINIIS", "sub_path": "filament/Prusa Generic TPU HF @MINIIS.json" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json index 9cb0f8b001..ca834afe43 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @MINIIS 0.25", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "NdGEi7BdP59bqz53", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json index e1d4f272ae..b4c5c636bf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @MINIIS 0.6", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "f8RXAaEZ13jSgN9u", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json index a867f7d6a6..7b847c26b0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @MINIIS 0.8", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "0QdQCdtcKqM9HhpD", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json index c52dd45677..35bf33de08 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @MINIIS", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "LmdcShjNmbZ8E5fo", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json index 3cbcf73b85..6b4f8d9fdf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @MK4", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "Yeqfgyq1l0b1tCaT", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json index 3aef5fc5e9..38559e4b26 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @XL 5T", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "BVYagI9PtDtO1Jhu", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json index 2abed48083..e40a10cbeb 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS @XL", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "fN9NUlg8l5DWy4LN", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json new file mode 100644 index 0000000000..ffa4525a5a --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic ABS @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "GFB99", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json index 287f5d03f9..f8959a77b2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS HF @MINIIS 0.6", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS HF @base", "from": "system", "setting_id": "86pFdkE3ly08xst7", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json index 358d9a3c46..63c1207fd9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS HF @MINIIS 0.8", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS HF @base", "from": "system", "setting_id": "yn9imamHaXlFDsPr", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json index 1b72e67a4d..358aa57b6d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS HF @MINIIS", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS HF @base", "from": "system", "setting_id": "KFoCfgUW9k9Yglwj", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json new file mode 100644 index 0000000000..228807da84 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic ABS HF @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "OFCgpxn2", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS.json b/resources/profiles/Prusa/filament/Prusa Generic ABS.json index 0f77dd0216..9fef1f871c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ABS", - "inherits": "fdm_filament_abs", + "inherits": "Prusa Generic ABS @base", "from": "system", "setting_id": "pqQMpMgbSN3XvTdK", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json index 2f8cb00374..1dda0e52e2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ASA HF @MINIIS 0.6", - "inherits": "fdm_filament_asa", + "inherits": "Prusa Generic ASA HF @base", "from": "system", "setting_id": "uf2mhiPodkiOu8Ui", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json index 2a238156f7..b3d9bad889 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ASA HF @MINIIS 0.8", - "inherits": "fdm_filament_asa", + "inherits": "Prusa Generic ASA HF @base", "from": "system", "setting_id": "GMfOVAhKgKoiGZH5", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json index 9f97b95631..68ade52513 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic ASA HF @MINIIS", - "inherits": "fdm_filament_asa", + "inherits": "Prusa Generic ASA HF @base", "from": "system", "setting_id": "o8mGAPApXYWIvPhm", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json new file mode 100644 index 0000000000..000196a2a1 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic ASA HF @base", + "inherits": "fdm_filament_asa", + "from": "system", + "filament_id": "OFkeeluv", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json index 7fdf301829..a74492d2aa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA @MINIIS 0.25", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA @base", "from": "system", "setting_id": "tGSqS5YX8FXkVAKa", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json index ada7470a27..a28f3eedf0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA @MINIIS 0.6", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA @base", "from": "system", "setting_id": "u3ZeKEiAwme06ioU", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json index f08a354372..cbf0faa16a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA @MINIIS 0.8", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA @base", "from": "system", "setting_id": "nE90oPuU8lRFVBCl", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json index 1f62ce1a85..c8ff9bf5cb 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA @MINIIS", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA @base", "from": "system", "setting_id": "hda5VGcBTJOFu6B0", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PA @base.json new file mode 100644 index 0000000000..42e8d47bbd --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PA @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "GFN99", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json index c262a5fe97..cc78a91ff9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA-CF @MINIIS 0.25", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA-CF @base", "from": "system", "setting_id": "R9H0mIGTEh4rxRag", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json index 61047938ef..9cca375d20 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA-CF @MINIIS 0.6", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA-CF @base", "from": "system", "setting_id": "qy8b2cQmrhmxfUfm", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json index e38f123038..930599ddf8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA-CF @MINIIS 0.8", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA-CF @base", "from": "system", "setting_id": "PNdZVpjyekMxgAWx", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json index a41ec893e7..320eaaccd5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA-CF @MINIIS", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA-CF @base", "from": "system", "setting_id": "B2SFfVrYjPnN9rw3", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json new file mode 100644 index 0000000000..0b0059fa9a --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PA-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "OFXfgh61", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json index 5144b143d6..ac15c94417 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA-CF", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA-CF @base", "from": "system", "setting_id": "bptwthfCtglFSoMw", "instantiation": "true", @@ -29,10 +29,6 @@ "Prusa MK4 0.25 nozzle", "Prusa MK4 0.4 nozzle", "Prusa MK4 0.6 nozzle", - "Prusa MK4 0.8 nozzle", - "Prusa MINIIS 0.4 nozzle", - "Prusa MINIIS 0.25 nozzle", - "Prusa MINIIS 0.6 nozzle", - "Prusa MINIIS 0.8 nozzle" + "Prusa MK4 0.8 nozzle" ] } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA.json b/resources/profiles/Prusa/filament/Prusa Generic PA.json index 9893d5a390..b50c329fab 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PA", - "inherits": "fdm_filament_pa", + "inherits": "Prusa Generic PA @base", "from": "system", "setting_id": "lWO6oNoV0wjzRVja", "instantiation": "true", @@ -26,10 +26,6 @@ "Prusa MK4 0.25 nozzle", "Prusa MK4 0.4 nozzle", "Prusa MK4 0.6 nozzle", - "Prusa MK4 0.8 nozzle", - "Prusa MINIIS 0.4 nozzle", - "Prusa MINIIS 0.25 nozzle", - "Prusa MINIIS 0.6 nozzle", - "Prusa MINIIS 0.8 nozzle" + "Prusa MK4 0.8 nozzle" ] } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json index bc82e730f2..e3d400892f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PC HF @MINIIS 0.6", - "inherits": "fdm_filament_pc", + "inherits": "Prusa Generic PC HF @base", "from": "system", "setting_id": "oj7iq8Bsz8lYyoG8", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json index d864903081..5965ff9d5d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PC HF @MINIIS 0.8", - "inherits": "fdm_filament_pc", + "inherits": "Prusa Generic PC HF @base", "from": "system", "setting_id": "SK8h5tE5di3YWaJp", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json index 96720cc606..b198ed3af4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PC HF @MINIIS", - "inherits": "fdm_filament_pc", + "inherits": "Prusa Generic PC HF @base", "from": "system", "setting_id": "onMXXnQNjbSimzbW", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json new file mode 100644 index 0000000000..ece79b1919 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PC HF @base", + "inherits": "fdm_filament_pc", + "from": "system", + "filament_id": "OFQ9dI8j", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json index b804e798b1..1254f1aede 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @MINIIS 0.25", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "u4zA4rasW1vfwG1o", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json index 8d4d00ea99..7e849e01af 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @MINIIS 0.6", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "QJQIAwmRSZW3hNI4", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json index 81c4d41aaf..2a943198aa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @MINIIS 0.8", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "nXFZVAKBc3hkxbRt", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json index 8803f3e7fd..49d8e83444 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @MINIIS", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "nXB864FJ4Dbz5oXc", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json index b0e684dd68..f4d8216caa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @MK4", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "Xk2dCGMzSaT73Gq5", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json index 3a90f36035..4babb91e3f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @XL 5T", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "FbtB9og6yXm2ZktD", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json index 14cb0f610b..793b97e290 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG @XL", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "SQKcHBt6A4D8PwFZ", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json new file mode 100644 index 0000000000..7cc123d8fd --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PETG @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "GFT02", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json index 03675e06e7..da8b0f68e5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG HF @MINIIS 0.6", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG HF @base", "from": "system", "setting_id": "tt7C6k90F51Q17NL", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json index 86b9431c5f..c8eb08ef87 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG HF @MINIIS 0.8", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG HF @base", "from": "system", "setting_id": "hivI3u5bpGKEJuPR", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json index 8df215da56..dcb87593dc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG HF @MINIIS", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG HF @base", "from": "system", "setting_id": "SHIhEzb8wJonmulf", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json new file mode 100644 index 0000000000..b9c02872b2 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PETG HF @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "OFphFSUJ", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG.json b/resources/profiles/Prusa/filament/Prusa Generic PETG.json index 6963412e1c..db17c39162 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PETG", - "inherits": "fdm_filament_pet", + "inherits": "Prusa Generic PETG @base", "from": "system", "setting_id": "b55Rd5kKGP1A3BM2", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json index 67a5bbca62..73ce7b1606 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @MINIIS 0.25", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "GOomDjqbF1CGAy8O", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json index 7bb32fd4d9..437eeeb6b8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @MINIIS 0.6", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "rKRRhdLk0Heg3slz", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json index 96016b318a..cd95805fb3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @MINIIS 0.8", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "XC2NBSQXjiKIXnTi", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json index 2de81c0947..5f3c8f9bb4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @MINIIS", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "GUG6Ug0cZt0gs2Z2", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json index 13a0df5f2b..22f8bb274c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @MK4", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "1aLBPgVpr7XZmmX6", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json index 9264a2b0c1..2d149b8b7b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @XL 5T", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "orBUSq1sDBeMGMON", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json index fd1ffa1425..3206f6f3c5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA @XL", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "tGG7egsphB0I1i6Z", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json new file mode 100644 index 0000000000..be5218517e --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "GFL99", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json index 7ae24d6fe7..6b9f364da7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA HF @MINIIS 0.6", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA HF @base", "from": "system", "setting_id": "A6tgkt5mCN7hFzoU", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json index 10353f147e..b4a25d21a1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA HF @MINIIS 0.8", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA HF @base", "from": "system", "setting_id": "3MSF1ZEw3D7bVhEI", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json index ea67606d37..243b69a393 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA HF @MINIIS", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA HF @base", "from": "system", "setting_id": "eVuV41lUXe9SEmeh", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json new file mode 100644 index 0000000000..4cff82d6a5 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PLA HF @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFicxmSa", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json index 8b41f21ce1..1e95879fdf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA-CF @MINIIS 0.25", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA-CF @base", "from": "system", "setting_id": "Sv0IcpOJBk95F94d", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json index 642ec54a07..3736da09d7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA-CF @MINIIS 0.6", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA-CF @base", "from": "system", "setting_id": "tKAu2YX7WADQuJqv", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json index 90be6a1703..83c781352d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA-CF @MINIIS 0.8", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA-CF @base", "from": "system", "setting_id": "dHVVnfZSJ6xEgzdQ", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json index 1be8101e9a..4cb69a99ec 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA-CF @MINIIS", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA-CF @base", "from": "system", "setting_id": "VESr5xWPvPIlhyKh", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json new file mode 100644 index 0000000000..f45f0e0bf0 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PLA-CF @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFv8SRZh", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json index 8e24ebcd12..d156be1004 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA-CF", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA-CF @base", "from": "system", "setting_id": "NqmFeHNZtfNefmvd", "instantiation": "true", @@ -32,10 +32,6 @@ "Prusa MK4 0.25 nozzle", "Prusa MK4 0.4 nozzle", "Prusa MK4 0.6 nozzle", - "Prusa MK4 0.8 nozzle", - "Prusa MINIIS 0.4 nozzle", - "Prusa MINIIS 0.25 nozzle", - "Prusa MINIIS 0.6 nozzle", - "Prusa MINIIS 0.8 nozzle" + "Prusa MK4 0.8 nozzle" ] } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA.json b/resources/profiles/Prusa/filament/Prusa Generic PLA.json index ae5ca3e50c..a2f1521fec 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PLA", - "inherits": "fdm_filament_pla", + "inherits": "Prusa Generic PLA @base", "from": "system", "setting_id": "pKHhR3Hx6AUoyIO3", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json index 7391c7c004..4357a8eb1f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA @MINIIS 0.25", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA @base", "from": "system", "setting_id": "B0Dmo1DvtrwBwM7U", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json index fadbdc53b2..1a4d7c6aa5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA @MINIIS 0.6", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA @base", "from": "system", "setting_id": "yGTFSZeo1sUdCpeO", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json index 18e1965b76..7c3a77c52d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA @MINIIS 0.8", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA @base", "from": "system", "setting_id": "ISdXFzAcVUj3ZIfQ", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json index 9598a6f09b..f6eecea619 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA @MINIIS", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA @base", "from": "system", "setting_id": "rhZNRY8BNI1TskG2", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json new file mode 100644 index 0000000000..dc77145268 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PVA @base", + "inherits": "fdm_filament_pva", + "from": "system", + "filament_id": "GFS99", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json index 3bc8a6b7aa..bd810e4933 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA HF @MINIIS 0.6", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA HF @base", "from": "system", "setting_id": "4C7OAcG8LVPSTJsh", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json index b26ca248ad..a2557cd576 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA HF @MINIIS 0.8", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA HF @base", "from": "system", "setting_id": "xj6xYUYJ0tAnfgao", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json index cd7b4f7b7d..467f0822bd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA HF @MINIIS", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA HF @base", "from": "system", "setting_id": "9MNzR7N4A1k64jne", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json new file mode 100644 index 0000000000..8d05e93111 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic PVA HF @base", + "inherits": "fdm_filament_pva", + "from": "system", + "filament_id": "OFxLeRyT", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA.json b/resources/profiles/Prusa/filament/Prusa Generic PVA.json index 17476b1ce5..260dfb5d01 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic PVA", - "inherits": "fdm_filament_pva", + "inherits": "Prusa Generic PVA @base", "from": "system", "setting_id": "yLrgUDS7cr4AkOed", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json index 8acb55983c..6108984ad1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic TPU @MINIIS", - "inherits": "fdm_filament_tpu", + "inherits": "Prusa Generic TPU @base", "from": "system", "setting_id": "TUqkAb8i9HpFdiCy", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json index 01db48abbf..11753a6232 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic TPU @MK4", - "inherits": "fdm_filament_tpu", + "inherits": "Prusa Generic TPU @base", "from": "system", "setting_id": "9KjaEcwnQA8CsnVy", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json new file mode 100644 index 0000000000..a86c7a2b91 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic TPU @base", + "inherits": "fdm_filament_tpu", + "from": "system", + "filament_id": "GFU99", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json index 271c36e183..954e880fa6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic TPU HF @MINIIS", - "inherits": "fdm_filament_tpu", + "inherits": "Prusa Generic TPU HF @base", "from": "system", "setting_id": "a9fmPCI24EJoJ5OH", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json new file mode 100644 index 0000000000..0a41e94893 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusa Generic TPU HF @base", + "inherits": "fdm_filament_tpu", + "from": "system", + "filament_id": "OFbK5wve", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU.json b/resources/profiles/Prusa/filament/Prusa Generic TPU.json index 58324d477d..5f1b953a7c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusa Generic TPU", - "inherits": "fdm_filament_tpu", + "inherits": "Prusa Generic TPU @base", "from": "system", "setting_id": "l9s40Rloq4urv3Y0", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json index e127263ad7..e0db59fde9 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament PETG @XL 5T", - "inherits": "fdm_filament_pet", + "inherits": "Prusament PETG @base", "from": "system", "setting_id": "USigpRWuzpdkT6ZW", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament PETG @XL.json b/resources/profiles/Prusa/filament/Prusament PETG @XL.json index b552f9ed09..f26140a0eb 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament PETG @XL", - "inherits": "fdm_filament_pet", + "inherits": "Prusament PETG @base", "from": "system", "setting_id": "vPPD8EkKFy5j8pg5", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament PETG @base.json b/resources/profiles/Prusa/filament/Prusament PETG @base.json new file mode 100644 index 0000000000..eee47346ca --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PETG @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusament PETG @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "OFpHq9gJ", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json index d74ad3f865..efda9cf4e3 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament PLA @XL 5T", - "inherits": "fdm_filament_pla", + "inherits": "Prusament PLA @base", "from": "system", "setting_id": "3xyT73BMaAvbb1Ej", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament PLA @XL.json b/resources/profiles/Prusa/filament/Prusament PLA @XL.json index 60825e3109..9d02a67491 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament PLA @XL", - "inherits": "fdm_filament_pla", + "inherits": "Prusament PLA @base", "from": "system", "setting_id": "PlHq1KqHrreo5W8m", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament PLA @base.json b/resources/profiles/Prusa/filament/Prusament PLA @base.json new file mode 100644 index 0000000000..707640da25 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PLA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusament PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFkoT6jl", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json index cb1d9258c9..8bfc482af6 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament rPLA @XL 5T", - "inherits": "fdm_filament_pla", + "inherits": "Prusament rPLA @base", "from": "system", "setting_id": "yAiHzmW4pa8deage", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @XL.json b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json index ab5867979b..9ed3d9af74 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Prusament rPLA @XL", - "inherits": "fdm_filament_pla", + "inherits": "Prusament rPLA @base", "from": "system", "setting_id": "j2BSXHFa7D3Gze7C", "instantiation": "true", diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @base.json b/resources/profiles/Prusa/filament/Prusament rPLA @base.json new file mode 100644 index 0000000000..bdacf0cc19 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament rPLA @base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Prusament rPLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFjFPhUC", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/filament/fdm_filament_abs.json b/resources/profiles/Prusa/filament/fdm_filament_abs.json index 50945a12e0..35c4d94e0e 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_abs.json +++ b/resources/profiles/Prusa/filament/fdm_filament_abs.json @@ -3,7 +3,6 @@ "name": "fdm_filament_abs", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFB99", "instantiation": "false", "cool_plate_temp": [ "105" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pa.json b/resources/profiles/Prusa/filament/fdm_filament_pa.json index 050df1ed25..8e2337a0bd 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pa.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFN99", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pet.json b/resources/profiles/Prusa/filament/fdm_filament_pet.json index b7d8b3d957..9d20738d06 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pet.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pet.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pet", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFT02", "instantiation": "false", "cool_plate_temp": [ "60" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pla.json b/resources/profiles/Prusa/filament/fdm_filament_pla.json index a00cd395a1..573c92fede 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pla.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pla.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pla", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFL99", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pva.json b/resources/profiles/Prusa/filament/fdm_filament_pva.json index b6bf5b64a1..b25a8332cc 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pva.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pva.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pva", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFS99", "instantiation": "false", "cool_plate_temp": [ "35" diff --git a/resources/profiles/Prusa/filament/fdm_filament_tpu.json b/resources/profiles/Prusa/filament/fdm_filament_tpu.json index cca57e64fa..dff9bf8f73 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_tpu.json +++ b/resources/profiles/Prusa/filament/fdm_filament_tpu.json @@ -3,7 +3,6 @@ "name": "fdm_filament_tpu", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFU99", "instantiation": "false", "cool_plate_temp": [ "30" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 71b62c1814..6c96ddbad0 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1447,27 +1447,18 @@ "Peopoly/Peopoly Generic PLA", "Peopoly/Peopoly Lancer PLA-C", "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", - "Prusa/Prusa Generic ABS @CORE One", "Prusa/Prusa Generic ABS @CORE One 0.6", "Prusa/Prusa Generic ABS @CORE One 0.8", "Prusa/Prusa Generic ABS @CORE One HF 0.4", "Prusa/Prusa Generic ABS @CORE One HF 0.5", "Prusa/Prusa Generic ABS @CORE One HF 0.6", "Prusa/Prusa Generic ABS @CORE One HF 0.8", - "Prusa/Prusa Generic ABS @MK3.5", - "Prusa/Prusa Generic ABS @MK3.5 0.25", - "Prusa/Prusa Generic ABS @MK3.5 0.6", - "Prusa/Prusa Generic ABS @MK3.5 0.8", - "Prusa/Prusa Generic ABS @MK4S", "Prusa/Prusa Generic ABS @MK4S 0.6", "Prusa/Prusa Generic ABS @MK4S 0.8", "Prusa/Prusa Generic ABS @MK4S HF0.4", "Prusa/Prusa Generic ABS @MK4S HF0.5", "Prusa/Prusa Generic ABS @MK4S HF0.6", "Prusa/Prusa Generic ABS @MK4S HF0.8", - "Prusa/Prusa Generic ABS HF @MK3.5", - "Prusa/Prusa Generic ABS HF @MK3.5 0.6", - "Prusa/Prusa Generic ABS HF @MK3.5 0.8", "Prusa/Prusa Generic ASA @CORE One", "Prusa/Prusa Generic ASA @CORE One 0.6", "Prusa/Prusa Generic ASA @CORE One 0.8", @@ -1489,14 +1480,17 @@ "Prusa/Prusa Generic ASA HF @MK3.5", "Prusa/Prusa Generic ASA HF @MK3.5 0.6", "Prusa/Prusa Generic ASA HF @MK3.5 0.8", + "Prusa/Prusa Generic ASA HF @base", "Prusa/Prusa Generic PA @MK3.5", "Prusa/Prusa Generic PA @MK3.5 0.25", "Prusa/Prusa Generic PA @MK3.5 0.6", "Prusa/Prusa Generic PA @MK3.5 0.8", + "Prusa/Prusa Generic PA @base", "Prusa/Prusa Generic PA-CF @MK3.5", "Prusa/Prusa Generic PA-CF @MK3.5 0.25", "Prusa/Prusa Generic PA-CF @MK3.5 0.6", "Prusa/Prusa Generic PA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PA-CF @base", "Prusa/Prusa Generic PC @MK3.5", "Prusa/Prusa Generic PC @MK3.5 0.25", "Prusa/Prusa Generic PC @MK3.5 0.6", @@ -1504,6 +1498,7 @@ "Prusa/Prusa Generic PC HF @MK3.5", "Prusa/Prusa Generic PC HF @MK3.5 0.6", "Prusa/Prusa Generic PC HF @MK3.5 0.8", + "Prusa/Prusa Generic PC HF @base", "Prusa/Prusa Generic PETG @CORE One", "Prusa/Prusa Generic PETG @CORE One 0.6", "Prusa/Prusa Generic PETG @CORE One 0.8", @@ -1522,9 +1517,11 @@ "Prusa/Prusa Generic PETG @MK4S HF0.5", "Prusa/Prusa Generic PETG @MK4S HF0.6", "Prusa/Prusa Generic PETG @MK4S HF0.8", + "Prusa/Prusa Generic PETG @base", "Prusa/Prusa Generic PETG HF @MK3.5", "Prusa/Prusa Generic PETG HF @MK3.5 0.6", "Prusa/Prusa Generic PETG HF @MK3.5 0.8", + "Prusa/Prusa Generic PETG HF @base", "Prusa/Prusa Generic PLA @CORE One", "Prusa/Prusa Generic PLA @CORE One 0.6", "Prusa/Prusa Generic PLA @CORE One 0.8", @@ -1543,9 +1540,11 @@ "Prusa/Prusa Generic PLA @MK4S HF0.5", "Prusa/Prusa Generic PLA @MK4S HF0.6", "Prusa/Prusa Generic PLA @MK4S HF0.8", + "Prusa/Prusa Generic PLA @base", "Prusa/Prusa Generic PLA HF @MK3.5", "Prusa/Prusa Generic PLA HF @MK3.5 0.6", "Prusa/Prusa Generic PLA HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA HF @base", "Prusa/Prusa Generic PLA Silk @CORE One", "Prusa/Prusa Generic PLA Silk @CORE One 0.6", "Prusa/Prusa Generic PLA Silk @CORE One 0.8", @@ -1556,21 +1555,12 @@ "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PVA @MK3.5", - "Prusa/Prusa Generic PVA @MK3.5 0.25", - "Prusa/Prusa Generic PVA @MK3.5 0.6", - "Prusa/Prusa Generic PVA @MK3.5 0.8", - "Prusa/Prusa Generic PVA HF @MK3.5", - "Prusa/Prusa Generic PVA HF @MK3.5 0.6", - "Prusa/Prusa Generic PVA HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA-CF @base", "Prusa/Prusa Generic TPU @CORE One", "Prusa/Prusa Generic TPU @CORE One 0.6", "Prusa/Prusa Generic TPU @CORE One 0.8", - "Prusa/Prusa Generic TPU @MK3.5", - "Prusa/Prusa Generic TPU @MK4S", "Prusa/Prusa Generic TPU @MK4S 0.6", "Prusa/Prusa Generic TPU @MK4S 0.8", - "Prusa/Prusa Generic TPU HF @MK3.5", "Prusa/Prusament ASA @CORE One", "Prusa/Prusament ASA @CORE One 0.6", "Prusa/Prusament ASA @CORE One 0.8", @@ -1598,6 +1588,7 @@ "Prusa/Prusament PETG @CORE One HF 0.5", "Prusa/Prusament PETG @CORE One HF 0.6", "Prusa/Prusament PETG @CORE One HF 0.8", + "Prusa/Prusament PETG @base", "Prusa/Prusament PLA @CORE One", "Prusa/Prusament PLA @CORE One 0.6", "Prusa/Prusament PLA @CORE One 0.8", @@ -1605,12 +1596,14 @@ "Prusa/Prusament PLA @CORE One HF 0.5", "Prusa/Prusament PLA @CORE One HF 0.6", "Prusa/Prusament PLA @CORE One HF 0.8", + "Prusa/Prusament PLA @base", "Prusa/Prusament PVB @CORE One", "Prusa/Prusament PVB @CORE One 0.6", "Prusa/Prusament PVB @CORE One 0.8", "Prusa/Prusament rPLA @CORE One", "Prusa/Prusament rPLA @CORE One 0.6", "Prusa/Prusament rPLA @CORE One 0.8", + "Prusa/Prusament rPLA @base", "Qidi/Bambu PETG", "Qidi/Bambu PLA", "Qidi/HATCHBOX PETG @Qidi", @@ -3182,7 +3175,6 @@ "FLSun/FLSun T1 ASA", "OrcaArena/OrcaArena Generic ASA", "Prusa/Prusa Generic ASA", - "Prusa/Prusa Generic ASA HF", "Prusa/Prusament ASA", "Ratrig/RatRig BigNozzle ASA", "Ratrig/RatRig Generic ASA", @@ -3244,7 +3236,6 @@ "Lulzbot/Lulzbot 2.85mm ABS", "OrcaArena/OrcaArena Generic ABS", "Prusa/Prusa Generic ABS", - "Prusa/Prusa Generic ABS HF", "Qidi/Qidi Generic ABS", "Ratrig/RatRig BigNozzle ABS", "Ratrig/RatRig Generic ABS", @@ -3314,7 +3305,6 @@ "InfiMech/Other PC", "OrcaArena/OrcaArena Generic PC", "Prusa/Prusa Generic PC", - "Prusa/Prusa Generic PC HF", "Prusa/Prusament PC Blend", "Qidi/Qidi Generic PC", "Ratrig/RatRig BigNozzle PCTG", @@ -3802,10 +3792,6 @@ "Peopoly/Peopoly Lancer PLA-C", "Phrozen/Phrozen PLA", "Prusa/Prusa Generic PLA", - "Prusa/Prusa Generic PLA HF", - "Prusa/Prusa Generic PLA-CF", - "Prusa/Prusament PLA", - "Prusa/Prusament rPLA", "Qidi/Qidi Generic PLA", "Ratrig/RatRig BigNozzle PLA", "Ratrig/RatRig BigNozzle TPU", @@ -3965,7 +3951,6 @@ "FLSun/FLSun Generic PA", "OrcaArena/OrcaArena Generic PA", "Prusa/Prusa Generic PA", - "Prusa/Prusa Generic PA-CF", "Qidi/Qidi Generic PA", "Ratrig/RatRig Generic PA", "SecKit/SecKit Generic PA", @@ -4273,7 +4258,6 @@ "FLSun/FLSun Generic PVA", "OrcaArena/OrcaArena Generic PVA", "Prusa/Prusa Generic PVA", - "Prusa/Prusa Generic PVA HF", "Qidi/Qidi Generic PVA", "Ratrig/RatRig Generic PVA", "SecKit/SecKit Generic PVA", @@ -4400,9 +4384,7 @@ ], "GFT02": [ "BBL/Bambu PPS-CF", - "Prusa/Prusa Generic PETG", - "Prusa/Prusa Generic PETG HF", - "Prusa/Prusament PETG" + "Prusa/Prusa Generic PETG" ], "GFT97": [ "BBL/Generic PPS", @@ -4475,7 +4457,6 @@ "OrcaArena/OrcaArena Generic TPU", "Prusa/Prusa Generic FLEX", "Prusa/Prusa Generic TPU", - "Prusa/Prusa Generic TPU HF", "Qidi/Qidi Generic TPU", "Ratrig/RatRig Generic TPU", "SecKit/SecKit Generic TPU", @@ -4834,6 +4815,9 @@ "OFCJaXZS": [ "Flashforge/Flashforge PPS" ], + "OFCgpxn2": [ + "Prusa/Prusa Generic ABS HF" + ], "OFD5e0sH": [ "OrcaFilamentLibrary/Elegoo Rapid PLA+" ], @@ -4957,6 +4941,9 @@ "OFPwi9X0": [ "Qidi/HATCHBOX ABS" ], + "OFQ9dI8j": [ + "Prusa/Prusa Generic PC HF" + ], "OFQCAYAt": [ "Flashforge/Flashforge PPA-CF" ], @@ -5035,6 +5022,9 @@ "OFXcfTEb": [ "Qidi/Tinmorry PETG-ECO" ], + "OFXfgh61": [ + "Prusa/Prusa Generic PA-CF" + ], "OFXkwkn6": [ "Qidi/QIDI PA-Ultra" ], @@ -5077,6 +5067,9 @@ "OFaKIoH2": [ "Elegoo/Elegoo PLA Sparkle" ], + "OFbK5wve": [ + "Prusa/Prusa Generic TPU HF" + ], "OFbS9rjH": [ "Qidi/QIDI PETG Rapido" ], @@ -5143,12 +5136,18 @@ "OFiJYDPC": [ "Qidi/HATCHBOX PLA" ], + "OFicxmSa": [ + "Prusa/Prusa Generic PLA HF" + ], "OFidJLn8": [ "Qidi/PolyLite ABS" ], "OFiyGNbI": [ "Elegoo/Elegoo PETG-CF" ], + "OFjFPhUC": [ + "Prusa/Prusament rPLA" + ], "OFjepy6j": [ "Flashforge/FusRock Generic S-PAHT" ], @@ -5164,12 +5163,18 @@ "OFkaDtKx": [ "Flashforge/Flashforge PA66-CF" ], + "OFkeeluv": [ + "Prusa/Prusa Generic ASA HF" + ], "OFkfK62J": [ "Elegoo/Elegoo PLA Silk" ], "OFklg4aM": [ "Elegoo/Elegoo PLA PRO" ], + "OFkoT6jl": [ + "Prusa/Prusament PLA" + ], "OFlNKZLP": [ "Flashforge/Flashforge PLA Metal" ], @@ -5218,6 +5223,12 @@ "OFp8lkYD": [ "Flashforge/Flashforge PPA-GF" ], + "OFpHq9gJ": [ + "Prusa/Prusament PETG" + ], + "OFphFSUJ": [ + "Prusa/Prusa Generic PETG HF" + ], "OFpwg2Qh": [ "OrcaFilamentLibrary/Elegoo ASA-CF" ], @@ -5287,6 +5298,9 @@ "OFv2NHLC": [ "Qidi/QIDI ABS-GF25" ], + "OFv8SRZh": [ + "Prusa/Prusa Generic PLA-CF" + ], "OFvN3117": [ "Qidi/QIDI PLA Matte Basic" ], @@ -5308,6 +5322,9 @@ "OFwyqcGn": [ "Elegoo/Elegoo PLA Matte" ], + "OFxLeRyT": [ + "Prusa/Prusa Generic PVA HF" + ], "OFxjFYxE": [ "Elegoo/Elegoo PETG HF" ], From 23b0aabb35cc48dfd13b644cd7355eef7550b308 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:13:24 +0800 Subject: [PATCH 008/164] Cubicon, Dremel, Anycubic, Artillery, InfiMech, Creality: family filament_ids Phase 2 long-tail migrations (56 collision groups across six vendors), zero effective-config change except where stated: Cubicon (17): 'Cubicon PC @base' verbatim-copied PA-CF's P510cfd0 at introduction (90a6c53ad5; PC was the config-light stub) - the PC family gets a fresh mint via its root. The other groups were all one shape: nine @base presets instantiated on exactly the two printers their dedicated variants cover with byte-identical passthrough configs, so no compatible_printers trim exists that CI would accept (instantiated presets must claim a printer). Fix: flip the nine @bases to instantiation:false and drop their setting_ids (bases carry none by convention). Every printer keeps an identical-config selectable preset per family - verified programmatically before flipping; no machine default_materials references an @base name. Dremel (3): 'Dremel Generic PLA' is deliberately selectable alongside its per-printer variants (#6837 re-exposed it), and the variants carry real overrides - a genuine AMS ambiguity with no config-neutral trim. The three variants share the fresh family mint OFUYjPc4 as own keys; the root keeps GFL99. A deliberate same-family id split (P8 shape): Dremel has no device ecosystem consuming filament_id, and every alternative is a user-visible regression of #6837. default_materials resolve unchanged. Anycubic (14): copy-paste/generic-riding across three id eras; 2022-era Anycubic Generic ABS/PETG/PLA/TPU keep the catalog ids, 13 families re-minted atomically (72 edits incl. 48 forced same-family re-ids), retiring the invented GFABS/GFL92/GFL93/GFPLA* space-containing ids. Artillery (8): GFL99 umbrella + P-hex copy-pastes; Artillery Generic PLA keeps GFL99, Artillery PLA keeps Pfcf9c4c, 17 families minted (52 edits), P284941e retired. InfiMech (14): pure verbatim Bambu-generic copy-paste; the six InfiMech Generic owners keep their ids, 15 impostor families minted (34 edits). Creality (8): HF generics copy-pasted GFL99 + id-less sub-brand lines riding keeper families; owners keep their git-verified ids, 8 families minted (17 edits, own-key layout for members inheriting heterogeneous per-series parents). Verified per batch: config-equivalence gate zero unexpected diffs (the nine Cubicon @base instantiation flips are the only preset-set changes, reviewed above); orca_extra_profile_check.py exit 0; assign_filament_ids.py --check exit 0; validator -l 2 exit 0; extended -f exit 0 for all six vendors (-v Cubicon/Dremel/Anycubic/Artillery/InfiMech/Creality); 14 fully-vanished ids appended to the retirement ledger. --- ... ABS @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... ABS @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... ABS @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...bic ABS @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...BS @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic ABS @Anycubic Kobra X 0.4 nozzle.json | 2 +- ... 95A @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...bic PETG @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...ic PETG @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...TG @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...bic PETG @Anycubic Kobra X 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Max 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json | 2 +- ...PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.2 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.6 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.8 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...ic PLA @Anycubic Kobra Neo 0.4 nozzle.json | 2 +- ...bic PLA @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...LA @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...gh Speed @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...peed @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...h Speed @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...gh Speed @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...nous @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...LA Matte @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...atte @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...LA Matte @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...Silk @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...LA Silk @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...PLA Silk @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...bic PLA+ @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...ic PLA+ @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...bic PLA+ @Anycubic Kobra X 0.4 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...bic TPU @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...eric ABS @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...asic @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...eric TPU @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery ABS @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../Artillery/filament/Artillery ABS.json | 1 + ...lery ASA @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery ASA @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery ASA @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery ASA @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...llery PA @Artillery M1 Pro 0.4 nozzle.json | 1 + ...ry PA-CF @Artillery M1 Pro 0.4 nozzle.json | 1 + ...llery PC @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery PET @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery PET @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.4 nozzle.json | 1 + ...ery PETG @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.4 nozzle.json | 1 + ...TG Basic @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.8 nozzle.json | 2 +- ... PETG-CF @Artillery M1 Pro 0.4 nozzle.json | 1 + .../Artillery/filament/Artillery PETG.json | 1 + ...LA Basic @Artillery M1 Pro 0.2 nozzle.json | 1 + ...LA Basic @Artillery M1 Pro 0.4 nozzle.json | 1 + ...LA Basic @Artillery M1 Pro 0.6 nozzle.json | 1 + ...LA Basic @Artillery M1 Pro 0.8 nozzle.json | 1 + ...A Basic+ @Artillery M1 Pro 0.4 nozzle.json | 1 + .../filament/Artillery PLA Basic.json | 1 + ...LA Matte @Artillery M1 Pro 0.2 nozzle.json | 1 + ...LA Matte @Artillery M1 Pro 0.4 nozzle.json | 1 + ...LA Matte @Artillery M1 Pro 0.6 nozzle.json | 1 + ...LA Matte @Artillery M1 Pro 0.8 nozzle.json | 1 + .../filament/Artillery PLA Matte.json | 1 + ...PLA Silk @Artillery M1 Pro 0.2 nozzle.json | 1 + ...PLA Silk @Artillery M1 Pro 0.4 nozzle.json | 1 + ...PLA Silk @Artillery M1 Pro 0.6 nozzle.json | 1 + ...PLA Silk @Artillery M1 Pro 0.8 nozzle.json | 1 + .../filament/Artillery PLA Silk.json | 1 + .../filament/Artillery PLA Tough.json | 1 + ...y PLA-CF @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery PVA @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery PVA @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.4 nozzle.json | 1 + ...lery TPU @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../Artillery/filament/Artillery TPU.json | 1 + .../Creality Generic ASA-CF @Hi-all.json | 1 + .../Creality Generic PETG-CF @Hi-all.json | 1 + ...Generic PLA High Speed @Ender-3V3-all.json | 1 + ...eality Generic PLA High Speed @Hi-all.json | 1 + ...eality Generic PLA High Speed @K1-all.json | 1 + ...eality Generic PLA High Speed @K2-all.json | 1 + ...lity Generic PLA Matte @Ender-3V3-all.json | 1 + .../Creality Generic PLA Matte @Hi-all.json | 1 + .../Creality Generic PLA Matte @K1-all.json | 1 + .../Creality Generic PLA Matte @K2-all.json | 1 + ...ality Generic PLA Silk @Ender-3V3-all.json | 1 + .../Creality Generic PLA Silk @Hi-all.json | 1 + .../Creality Generic PLA Silk @K1-all.json | 1 + .../Creality Generic PLA Silk @K2-all.json | 1 + .../Creality Generic PLA Wood @Hi-all.json | 1 + .../filament/Creality HF Generic PLA.json | 2 +- .../Creality HF Generic Speed PLA.json | 2 +- .../Cubicon/filament/Cubicon ABS @base.json | 3 +- .../filament/Cubicon ABS-A100 @base.json | 3 +- .../Cubicon/filament/Cubicon ABSk @base.json | 3 +- .../Cubicon/filament/Cubicon PA-CF @base.json | 3 +- .../Cubicon/filament/Cubicon PC @base.json | 5 +- .../Cubicon/filament/Cubicon PETG @base.json | 3 +- .../Cubicon/filament/Cubicon PLA @base.json | 3 +- .../Cubicon/filament/Cubicon PLA+ @base.json | 3 +- .../filament/Cubicon PLAi21 @base.json | 3 +- .../Dremel Generic PLA @3D20 all.json | 1 + .../Dremel Generic PLA @3D40 all.json | 1 + .../Dremel Generic PLA @3D45 all.json | 1 + .../filament/EX+APS/InfiMech ABS @EX+APS.json | 2 +- .../EX+APS/InfiMech PA-CF @EX+APS.json | 2 +- .../filament/EX+APS/InfiMech PC @EX+APS.json | 2 +- .../EX+APS/InfiMech PETG @EX+APS.json | 2 +- .../EX+APS/InfiMech PLA Basic @EX+APS.json | 2 +- .../EX+APS/InfiMech PLA Hyper @EX+APS.json | 2 +- .../filament/EX/InfiMech ABS @EX.json | 2 +- .../filament/EX/InfiMech PA-CF @EX.json | 2 +- .../InfiMech/filament/EX/InfiMech PC @EX.json | 2 +- .../filament/EX/InfiMech PETG @EX.json | 2 +- .../filament/EX/InfiMech PLA Basic @EX.json | 2 +- .../filament/EX/InfiMech PLA Hyper @EX.json | 2 +- .../filament/HSN/InfiMech ABS @HSN.json | 2 +- .../filament/HSN/InfiMech PA-CF @HSN.json | 2 +- .../filament/HSN/InfiMech PC @HSN.json | 2 +- .../filament/HSN/InfiMech PETG @HSN.json | 2 +- .../filament/HSN/InfiMech PLA @HSN.json | 2 +- .../filament/HSN/InfiMech PLA Hyper @HSN.json | 2 +- .../filament/HSN/InfiMech TPU @HSN.json | 2 +- .../InfiMech/filament/HSN/Other ABS @HSN.json | 2 +- .../filament/HSN/Other PA-CF @HSN.json | 2 +- .../InfiMech/filament/HSN/Other PC @HSN.json | 2 +- .../filament/HSN/Other PETG @HSN.json | 2 +- .../InfiMech/filament/HSN/Other PLA @HSN.json | 2 +- .../filament/HSN/Other PLA Hyper @HSN.json | 2 +- .../InfiMech/filament/HSN/Other TPU @HSN.json | 2 +- .../InfiMech/filament/InfiMech PLA Hyper.json | 2 +- .../profiles/InfiMech/filament/Other ABS.json | 2 +- .../InfiMech/filament/Other PA-CF.json | 2 +- .../profiles/InfiMech/filament/Other PC.json | 2 +- .../InfiMech/filament/Other PETG.json | 2 +- .../InfiMech/filament/Other PLA Hyper.json | 2 +- .../profiles/InfiMech/filament/Other PLA.json | 2 +- .../profiles/InfiMech/filament/Other TPU.json | 2 +- scripts/filament_id_snapshot.json | 390 +++++++++++++----- scripts/retired_filament_ids.json | 46 ++- 189 files changed, 509 insertions(+), 262 deletions(-) diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json index f560328d28..35ea99a5fa 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "RDI26qeSRSTe0PDg", - "filament_id": "GFB99", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json index 4e5b8117bc..6cbc0b1dca 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "Moc1cylP6mmSQjlb", - "filament_id": "GFB99", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json index 5b5dbd88a8..bc96d4e812 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "2xgfnUKyOUQwYWPa", - "filament_id": "GFB99", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json index 762dee8f05..20d5e6463c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "NOiAgxA0BbvLhR1v", - "filament_id": "GFB99", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json index a37305a1bd..eb92f6134e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "MDWaiSjl89E6Edsn", - "filament_id": "GFABS", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json index 5638f4c226..2176e2e94b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "wZjVYc7dBDSKRusJ", - "filament_id": "GFABS", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json index 37cd31a19e..f6cbd13546 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "AbB6JtoPRsNgmxyy", - "filament_id": "GFABS", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json index 8a9663981c..85f03c921e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "exX565xnrLPkYkvu", - "filament_id": "GFABS", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json index 5443dacb34..0d16ce5f5d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "KeEk3yQZrKmJY9Q0", - "filament_id": "GFABS", + "filament_id": "OFf2b9wu", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json index 035648964d..b7f6e07d05 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "gmni9H2Du5nxBqQu", - "filament_id": "GFU99", + "filament_id": "OFGb4hPY", "instantiation": "true", "filament_settings_id": [ "Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json index cc24576ed0..64ec79a2f4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PETG", "from": "system", "setting_id": "qe2wYLf7CEMjmfxj", - "filament_id": "GFG99", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json index bd02903dcc..68e4c4279c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uNktFymJ3RbGa7k0", - "filament_id": "GFG99", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json index e7f271b6a4..89ae50f686 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "EaW663aw4torYXG8", - "filament_id": "GFG99", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json index a0e8481d7f..11fc401b24 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "lgVEMmBHMen0sWsI", - "filament_id": "GFG99", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json index d513cdd1d4..52f8ed3f9c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uLRMTzyJIara4Hr2", - "filament_id": "GFG99", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json index 9c59bd3643..6a2292c913 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "FAyFkKpV5w6G5dU2", - "filament_id": "GFPETG", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json index d97f7fc564..e7cd08bc7e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "duduwoswLHk9I9sY", - "filament_id": "GFPETG", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json index bd1a1768c0..e8bd6e56ce 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "b3GU7ytZPEYNNyne", - "filament_id": "GFPETG", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json index d8913fe29e..a48eb618db 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SrHKJh6prBzMz4Se", - "filament_id": "GFPETG", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json index a14c08e5c4..5b5b0bbebe 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "HyTi93UGno6uAJEO", - "filament_id": "GFPETG", + "filament_id": "OFdSGkUG", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json index 7e8a8b189b..70cdae2da4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "XIq1GeZdHqOl9Gtr", - "filament_id": "GFL92", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json index 2e2c0d094a..c078bb2d87 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "EaVdXQHAyocYUCez", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json index e96d1b0884..e26d8674f6 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "UpC1Qut0kjYRD9po", - "filament_id": "GFL92", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json index c60020dfda..04d4dc5e79 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "ELCOJflyY3DfpPAH", - "filament_id": "GFL92", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json index 4e058c6f74..ba87ad3145 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "enkHPcq0yYHsRk7g", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json index 42d757d7e9..95ddd20b35 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "qw4uL96miCLTNE7b", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json index f01ded111e..e61cdcd625 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "KrlWgkC2kVdSRNUx", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json index 0a12e310b4..c81db823c4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "gK0NhTnxz1VBNHbu", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json index c94f05a52f..7159efba5c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4nCPU0WS74OXowyr", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json index 3fc828b305..6473007901 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "0Ae57Dt0KXnpQUJu", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json index 7f862c1b1c..edd899396c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "otxG4N1WrXHUw8Z9", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json index 03627128bc..236dbc4cef 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "GblA3LvgCL63V7Qx", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json index 717e533526..4c1cba8e20 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "zYYM5Fznkiz0UgHN", - "filament_id": "GFL99", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json index 13a4eccfc2..d1a975fb37 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Z0T8Mul8Ta7zqRjS", - "filament_id": "GFPLA", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json index f4a7632c12..5138470e26 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "61KPHMw1fRcuaGHk", - "filament_id": "GFPLA", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json index 82691cd80f..0c923b2fe0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "RQJLrGtzvbP2PksP", - "filament_id": "GFPLA", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json index d00931d974..79439814b4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "50Ailboxk7bEclVp", - "filament_id": "GFPLA", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json index 795805eb82..286464d8c3 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "1hyHPSJZgUpLcW7u", - "filament_id": "GFPLA", + "filament_id": "OFgK2Xvv", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json index d36e50bf95..cfb1f50c1d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "Sio4qE22N2krNjx1", - "filament_id": "GFL96", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json index c5e434f90f..6e5c967420 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4FQaTeouNl9pL4Vl", - "filament_id": "GFL99", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json index d996d2d84b..0e975dc8d6 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "AEKT5WgqOTAVYijs", - "filament_id": "GFL99", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json index ad8be5c9f1..0e949bd4a6 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "xTuh6dk8MdeAovdB", - "filament_id": "GFPLA High Speed", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json index 4f2a9b55e4..219a05057c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "BpBYwZqt4ik1XIFp", - "filament_id": "GFPLA High Speed", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json index 809c243223..fe6757653c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "2Rk0UA3rtW53ECqo", - "filament_id": "GFPLA High Speed", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json index 12ba8b6984..b2bc996730 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "hQ90rvCLS2rVEPVJ", - "filament_id": "GFPLA High Speed", + "filament_id": "OFgSK1hL", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json index 18450cf484..046b4c87a3 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "wi26Yq5bX8oGt4CA", - "filament_id": "GFL99", + "filament_id": "OFEdyZqS", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json index 88dc0be839..02945fa977 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "kVOaVF3YyfGrXTdW", - "filament_id": "GFL95", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json index 74e41f42aa..b30450f8ac 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "qSpZJ4cRcg3xb2b2", - "filament_id": "GFL99", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json index 64a690ea12..a70d0629b5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "WvmwXnXSDPPtXS8S", - "filament_id": "GFPLA Matte", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json index bf2a4dfa91..41f1c5f6a8 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "jFKsrMeqeUAcMAyf", - "filament_id": "GFPLA Matte", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json index 6b0be29514..2f2719cb19 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ueznw2fLdjN2EbIC", - "filament_id": "GFPLA Matte", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json index dc79a8b11f..4f7d332aaa 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "JxYmWTeCtw0VvUcC", - "filament_id": "GFPLA Matte", + "filament_id": "OFvYfHPB", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json index 51dbc781fa..60f18577e5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Fszb00FtQHFOcDmz", - "filament_id": "GFL99", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json index 24db6eab18..18a8f258ec 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "wnt68LydXcNxhGhN", - "filament_id": "GFL99", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json index 269f5acf24..075d1e2afd 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "AzEerDakdHs9Rj3I", - "filament_id": "GFPLA Silk", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json index aeaed4784e..70e61016a5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "pUB5V3n7yAbPxFQC", - "filament_id": "GFPLA Silk", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json index 91edc58d3c..11ad26dcbf 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "N96XNT6EoNVVFYz0", - "filament_id": "GFPLA Silk", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json index 426ea3744d..e80cdc8383 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Yc1P4D9Z42Abjfut", - "filament_id": "GFPLA Silk", + "filament_id": "OFjdTQd6", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json index 836edf10c5..56c46b1ca2 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "1va1bLu3J0b5GQt3", - "filament_id": "GFL93", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json index 625e0ddad2..33aa19252c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "XN8zwImhwbZCkl6m", - "filament_id": "GFL99", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json index a7b7d4f595..85f0e8a993 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Vs1ZyZJWHFue8Vc8", - "filament_id": "GFL99", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json index e437edc973..061215d818 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "CjXfeHJpdOaSEzN0", - "filament_id": "GFPLA+", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json index 7bd1cded91..7f8105621a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ol5UhwlAQy7yrXYU", - "filament_id": "GFPLA+", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json index 087e7e479c..2c8e3db0b7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "u9nOmt30hBeZoN2w", - "filament_id": "GFPLA+", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json index 9bddef96ad..dd1ac32507 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "lehlBFE2WVyi24s0", - "filament_id": "GFPLA+", + "filament_id": "OFgrGfPy", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json index dbf66104c0..738fcbdc89 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "CdtZIoH8bvFOFU6l", - "filament_id": "GFU99", + "filament_id": "OFHL32M0", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json index 13f0c712e3..a30e14503f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "F3l2tNcFwp9qG7W6", - "filament_id": "GFU99", + "filament_id": "OFHL32M0", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json index 4310aba363..55f7df2a50 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "WkMd8rjotz7XNLDM", - "filament_id": "GFU99", + "filament_id": "OFHL32M0", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json index 85252f7057..645f098e04 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "ias4IbNNwygyeow9", - "filament_id": "GFU99", + "filament_id": "OFHL32M0", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json index 71e7beac0e..7904e7cc18 100644 --- a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic ABS", "from": "system", "setting_id": "W3GiC5YLzxbbjXLY", - "filament_id": "GFB99", + "filament_id": "OFOp3Oef", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json index cb51a5a339..f533e62694 100644 --- a/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "tUSAvzLu6pVk37kn", - "filament_id": "GFG99", + "filament_id": "OFaKZ6JI", "instantiation": "true", "filament_settings_id": [ "Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json index 42739229b1..3edff90e15 100644 --- a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic TPU", "from": "system", "setting_id": "kHB2rrxkyz4Clu3N", - "filament_id": "GFU99", + "filament_id": "OFsCOJv7", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json index b468e95d51..4b091e502a 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "m023Z8IkkHMHxuag", - "filament_id": "P39db358", + "filament_id": "OFw1S8lL", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json index f21c7a5a31..f4a5d3f332 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "QGbNWGw8rqvq025W", + "filament_id": "OFw1S8lL", "instantiation": "true", "chamber_temperature": [ "50" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json index 8516077d0a..1edbbfc7f5 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "PxGFsoMcfFrTDqzL", - "filament_id": "P39db358", + "filament_id": "OFw1S8lL", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json index 1bd222ade6..73a7118801 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "o4JZKQmCdnO0hCXZ", - "filament_id": "P39db358", + "filament_id": "OFw1S8lL", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS.json b/resources/profiles/Artillery/filament/Artillery ABS.json index 111c2c39a1..b7d3189738 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS.json +++ b/resources/profiles/Artillery/filament/Artillery ABS.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "fsbfMiamVemzRxkG", + "filament_id": "OFw1S8lL", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json index 9894337b5c..ebfb82fdf0 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "AE7wKVIZXHXSXzL5", - "filament_id": "P87436f6", + "filament_id": "OFtmT4Nd", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json index eb4a720cc3..ab290c02b6 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "eSwM3ZfSBWqR8Gcf", + "filament_id": "OFtmT4Nd", "instantiation": "true", "chamber_temperature": [ "55" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json index 422b050df8..7a0228d38e 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.6 nozzle", "from": "User", "setting_id": "znMfTFfxvJC7a732", - "filament_id": "P87436f6", + "filament_id": "OFtmT4Nd", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json index 16a9ff7c3d..a90093dbc5 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "y2DU36j0slaHzg04", - "filament_id": "P87436f6", + "filament_id": "OFtmT4Nd", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json index 756e67a5e2..662524238b 100644 --- a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "lOsH1teHe8Pgzx2g", + "filament_id": "OFp90N8a", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json index ec9009a5e1..3c2efc54ed 100644 --- a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "b4BKJMUxArvLuEOh", + "filament_id": "OFnY9ovF", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json index 4fa54353f0..d734ab4c40 100644 --- a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "WawbnfhWn4MT6Hz7", + "filament_id": "OFNRgSch", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json index 6fd06c0d66..e4f3c78276 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "a5jwQ6nyffW1Vqv1", - "filament_id": "P11851ba", + "filament_id": "OFw0qp7w", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json index a82b3b7948..9af913f87a 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "QeiSAakfMW7HyhJ7", + "filament_id": "OFw0qp7w", "instantiation": "true", "chamber_temperature": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json index 26e71cefc8..c9294a933d 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "VGu7C3uk8d6ibIg4", - "filament_id": "P11851ba", + "filament_id": "OFw0qp7w", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json index b5461ec03c..b204a0b6a6 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "Oj11BhU0QajmDrh3", - "filament_id": "P11851ba", + "filament_id": "OFw0qp7w", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json index 5ed45d7e7d..d29a639777 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "kAlZ7nCYo53UVVx3", - "filament_id": "P284941e", + "filament_id": "OFEYKrjb", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json index f6bbdd3cef..4620665cc8 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "g7UIfJTOPzMQzfrH", + "filament_id": "OFEYKrjb", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json index 3fcc8e175b..4ffe6eaa01 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "uuPf0MfNTZ2lihtG", - "filament_id": "P284941e", + "filament_id": "OFEYKrjb", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json index 4842427a49..2ae4e8e114 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "dQBp2T4ap90uAOYs", - "filament_id": "P284941e", + "filament_id": "OFEYKrjb", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json index 03fc583bfa..b90df9567f 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "GrdWgUGdXt23jnBu", - "filament_id": "P284941e", + "filament_id": "OFt5bvKK", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json index b8a3c33acd..5d14168c7b 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "RTQvSwJBWnut5aBo", + "filament_id": "OFt5bvKK", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json index 3ab0575058..7c7046e7b9 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "Wkt1IClO4nwH3Xa7", - "filament_id": "P284941e", + "filament_id": "OFt5bvKK", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json index 2b83852a34..5152d65dd6 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "Zlvodz3cris0hmof", - "filament_id": "P284941e", + "filament_id": "OFt5bvKK", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json index 22d124da46..66416e969a 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "JvmeW29kHCp7HiA6", + "filament_id": "OF9vnvM8", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG.json b/resources/profiles/Artillery/filament/Artillery PETG.json index ecea0ae80b..a4922a1f32 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG.json +++ b/resources/profiles/Artillery/filament/Artillery PETG.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "1MyhYGMxJCmZnJRP", + "filament_id": "OFEYKrjb", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json index cee58991c8..4efb9507a5 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "N3iYnDshA5ruihVE", + "filament_id": "OF57IbZT", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json index 56498727fa..08e2927b0e 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "zBUD1JyuZF9MOncA", + "filament_id": "OF57IbZT", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json index 884e7d428e..4c009a344b 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "NKkZjEtDjxOMLjoo", + "filament_id": "OF57IbZT", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json index cffdcde5ed..7c08a8ffba 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "c9BAMzt2w30nB2rC", + "filament_id": "OF57IbZT", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json index 18e7f77ad4..b636c0f7d6 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "2VIrSoq3kufjHMXj", + "filament_id": "OFXA8vy9", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "100" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic.json b/resources/profiles/Artillery/filament/Artillery PLA Basic.json index 052ceac5e5..5455de4a86 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "DcGBMRjdcgLx6pWG", + "filament_id": "OF57IbZT", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json index aff1bcb3cb..5156b5e69f 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "tgmFMdyhSX05kuxw", + "filament_id": "OFKDnrjL", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json index abd44e77d1..6c2a47f771 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "9zqAIfywiv9zm77X", + "filament_id": "OFKDnrjL", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json index a1fc1e5999..58702d5a69 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "W6ipHAoCgHIUIT3g", + "filament_id": "OFKDnrjL", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json index 4217f6836d..3548bc52a6 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "HggSuUWe1zWOlQIK", + "filament_id": "OFKDnrjL", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte.json b/resources/profiles/Artillery/filament/Artillery PLA Matte.json index 83e40133aa..04a2402b6f 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "kt8uKXpMqxrFrHaG", + "filament_id": "OFKDnrjL", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json index d2f3184864..d86ce77a43 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "TDwRIGXkpJIW38jG", + "filament_id": "OFnyirh9", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json index e8d65f465b..f5c6f05245 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "BWMjPUWXwumQoY5H", + "filament_id": "OFnyirh9", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json index ce102bb364..8743dd44bd 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "PpuiGWbDlVZwBIxb", + "filament_id": "OFnyirh9", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json index 6fb25927e3..8df6dd1d13 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "dr2wlzDc1AC3tciI", + "filament_id": "OFnyirh9", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk.json b/resources/profiles/Artillery/filament/Artillery PLA Silk.json index 85cd2eec08..9eb9ea142a 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "rd0U4uP6mM8S8lDg", + "filament_id": "OFnyirh9", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Tough.json b/resources/profiles/Artillery/filament/Artillery PLA Tough.json index 8f1ce758b5..bca655122d 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Tough.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Tough.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "hLFvQXsyyUrguGEp", + "filament_id": "OFtXBjvb", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json index 36c7d69b83..51433f69be 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "oT12s9CEV1CTD6eB", + "filament_id": "OFvxvkAd", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json index f7f700fa96..ec64d0b506 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "FIcb3cOIanxmvHe2", - "filament_id": "P8163162", + "filament_id": "OFc2SnEp", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json index 4c558166c5..c3f230b487 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "r2q4QIlfTUCIz43f", + "filament_id": "OFc2SnEp", "instantiation": "true", "chamber_temperature": [ "50" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json index b15f191878..1759d32ad5 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "h5xquKMT9l0rwcTU", - "filament_id": "P8163162", + "filament_id": "OFc2SnEp", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json index 1e682947c2..412d60e440 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "cElJlbCAgAqSQiPZ", - "filament_id": "P8163162", + "filament_id": "OFc2SnEp", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json index d722aa592f..3925e8963d 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "p6vnCneuwtM0PzL7", + "filament_id": "OFTbsWVg", "instantiation": "true", "close_fan_the_first_x_layers": [ "1" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json index 9d29c06e42..0b0e495f7d 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery TPU @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "QIgpIamYbSdI4DPW", - "filament_id": "P2fbf0c0", + "filament_id": "OFTbsWVg", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json index d323279979..83a7dbd0f6 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery TPU @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "W22GbPPOgtH4NAAH", - "filament_id": "P2fbf0c0", + "filament_id": "OFTbsWVg", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU.json b/resources/profiles/Artillery/filament/Artillery TPU.json index b769e8c61a..f4ec63c166 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU.json +++ b/resources/profiles/Artillery/filament/Artillery TPU.json @@ -4,6 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "IcV1jLJaS5rmdNOY", + "filament_id": "OFTbsWVg", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json index 4c11ce042b..e46869feb9 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic ASA @Hi-all", "from": "system", "setting_id": "C7IB6HSJxW598zFA", + "filament_id": "OFNbajj9", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json index 28f6f07150..c1888475bb 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PETG @Hi-all", "from": "system", "setting_id": "G4ZIJDNOpQvutOfs", + "filament_id": "OFvGSn0l", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json index 7538ad118c..c2f037e2b0 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "4F3dZWvsniH9QHtr", + "filament_id": "OFLriDvE", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json index f1748f5d81..92e419b26a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "KzaopZGQPw5OJFFD", + "filament_id": "OFLriDvE", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json index c810abe5e9..a30c1ec949 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "ptxV78rC6wevH916", + "filament_id": "OFLriDvE", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json index 559cb6c0d8..3f6d5e5633 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "ozHstwkc3N5LGWLV", + "filament_id": "OFLriDvE", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json index 8386488fcd..88b5c57c1a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "xF1B593frol5PWVw", + "filament_id": "OF43idK2", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json index fe7c08e6c5..d5247b1d32 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "R7Jo7NhjsR1iU2Fd", + "filament_id": "OF43idK2", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json index 9869ee37fa..f1b58bb091 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "3hreTG3DjcgmwZC2", + "filament_id": "OF43idK2", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json index 1659fed28f..a13e886b89 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "fxZf5E6IHWWq3dsu", + "filament_id": "OF43idK2", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json index d4e1b1f7aa..f3686b9edd 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "uPFnSMh7WoXmMAoy", + "filament_id": "OFTszIHE", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json index 17b55e5202..2762cdee53 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "RPDVqZcn8EZizd1U", + "filament_id": "OFTszIHE", "instantiation": "true", "filament_flow_ratio": [ "0.97" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json index 13cd1e7c93..ff94adbabf 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "pxvc0ICvqc0M3wYV", + "filament_id": "OFTszIHE", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json index 3b9a3d242c..5eba612ef7 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "qS0Mlt24iz1k4P7n", + "filament_id": "OFTszIHE", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json index 53637dd460..3ac6f207f4 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json @@ -4,6 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "OEc7Bc7WG99tuO5D", + "filament_id": "OFdLGn0R", "instantiation": "true", "filament_flow_ratio": [ "0.88" diff --git a/resources/profiles/Creality/filament/Creality HF Generic PLA.json b/resources/profiles/Creality/filament/Creality HF Generic PLA.json index 0b0c7d7d70..2cad2fa504 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic PLA.json +++ b/resources/profiles/Creality/filament/Creality HF Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "p07b7w0HDxavGLdd", - "filament_id": "GFL99", + "filament_id": "OFZjZ1k7", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json b/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json index dabcf7cdba..64319441a4 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json +++ b/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Jp93uqYennsWVAKe", - "filament_id": "GFL99", + "filament_id": "OFfkPhrJ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json index 55fbd40ee4..cae2d0bcf9 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon ABS @base", "inherits": "fdm_filament_abs", - "setting_id": "aZRVIlDze62Bbw81", "filament_id": "P510cfb0", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json index dddc147ff2..b715900dae 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon ABS-A100 @base", "inherits": "Cubicon ABS @base", - "setting_id": "vGIT4KZvqojIh2up", "filament_id": "P510cfb1", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json index e1546d3bae..7daddfb940 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon ABSk @base", "inherits": "Cubicon ABS @base", - "setting_id": "UbOUO0K3Y2iRPBtf", "filament_id": "P510cfb2", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json index 51c89949f6..6177b6fd6a 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon PA-CF @base", "inherits": "fdm_filament_pa", - "setting_id": "55cJDyCoEudfOePY", "filament_id": "P510cfd0", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @base.json b/resources/profiles/Cubicon/filament/Cubicon PC @base.json index de42989e84..aa2f9ac347 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon PC @base", "inherits": "fdm_filament_pc", - "setting_id": "Mzg6jfwb2nqfGkdV", - "filament_id": "P510cfd0", - "instantiation": "true", + "filament_id": "OFnLnZQo", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json index 2242ba36ca..0912884adf 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon PETG @base", "inherits": "fdm_filament_pet", - "setting_id": "bGfz4phwIdqSz0Hx", "filament_id": "P510cfc0", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json index 665ba58d59..82dffb7070 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json @@ -3,9 +3,8 @@ "name": "Cubicon PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "setting_id": "ypwdJAu0NlEsWpf4", "filament_id": "P510cfa0", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json index cb916a9410..0e31e96a81 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon PLA+ @base", "inherits": "Cubicon PLA @base", - "setting_id": "ETnuhiOZRh1jxrVk", "filament_id": "P510cfa1", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json index 831450deef..a9d46012c6 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json @@ -2,9 +2,8 @@ "type": "filament", "name": "Cubicon PLAi21 @base", "inherits": "Cubicon PLA @base", - "setting_id": "mnwC7ijXXV72lBOt", "filament_id": "P510cfa2", - "instantiation": "true", + "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json index 7e76e2404b..273eb70ec5 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json @@ -4,6 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "weKWPiNIe3TmOXRn", + "filament_id": "OFUYjPc4", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json index 8074c6f0a3..822f95fe2c 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json @@ -4,6 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "kZAEjhLS29WQeyf1", + "filament_id": "OFUYjPc4", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json index fb9c31fe0e..62373995e2 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json @@ -4,6 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "pIlkZjNrXnHJDszp", + "filament_id": "OFUYjPc4", "instantiation": "true", "slow_down_min_speed": "10", "close_fan_the_first_x_layers": "3", diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json index ab07650434..d0a6f7dc61 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @EX+APS", "from": "system", "setting_id": "3EdHfL9KE4oRVHB7", - "filament_id": "GFB99", + "filament_id": "OFVBNoov", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json index 0173f7ee05..c2b0d8543f 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @EX+APS", "from": "system", "setting_id": "6YMXdKicP2hGUUJn", - "filament_id": "GFN98", + "filament_id": "OFb3UzMZ", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json index c68955287b..df76f5ffe8 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @EX+APS", "from": "system", "setting_id": "GsYpyooWb6ymAb36", - "filament_id": "GFC99", + "filament_id": "OFTsGps3", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json index 39d510f085..d04816c3f0 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @EX+APS", "from": "system", "setting_id": "sNsRp3vHhcWAxp7d", - "filament_id": "GFG99", + "filament_id": "OFvaXhYD", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json index 8d715771b9..e1a7aaa359 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @EX+APS", "from": "system", "setting_id": "UTrjyqqetOSYNZxJ", - "filament_id": "GFL99", + "filament_id": "OFuq9tqb", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json index cbc94ccedd..aecb50b1a4 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @EX+APS", "from": "system", "setting_id": "p08bW50lbzMjwL5B", - "filament_id": "GFL99", + "filament_id": "OFefhSuj", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json index 05b1f4e017..080a6dfede 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @EX", "from": "system", "setting_id": "e6st01mMFr98LVEH", - "filament_id": "GFB99", + "filament_id": "OFVBNoov", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json index 3042fe20f8..3beb4794b3 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @EX", "from": "system", "setting_id": "qPCd5oTrCmZi63Ng", - "filament_id": "GFN98", + "filament_id": "OFb3UzMZ", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json index b1c46585e0..2e0ecd34bd 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @EX", "from": "system", "setting_id": "Uc2o223YSyShp7EI", - "filament_id": "GFC99", + "filament_id": "OFTsGps3", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json index 47172fa13a..9f7230ea11 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @EX", "from": "system", "setting_id": "5vqLJrKLKv40sT7y", - "filament_id": "GFG99", + "filament_id": "OFvaXhYD", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json index 071d0eb53c..cb78703d14 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @EX", "from": "system", "setting_id": "bGOpriWvEFZOmqR4", - "filament_id": "GFL99", + "filament_id": "OFuq9tqb", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json index 1fab11094e..57ec47283d 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @EX", "from": "system", "setting_id": "y8A92Dw8EMplnZAM", - "filament_id": "GFL99", + "filament_id": "OFefhSuj", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json index 202565b819..2c6f0a1f18 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @HSN", "from": "system", "setting_id": "QnEhnvxibr6g1nou", - "filament_id": "GFB99", + "filament_id": "OFVBNoov", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json index 3f6524b54c..0aa59d2664 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @HSN", "from": "system", "setting_id": "L1j3mDKXjE2RKO1B", - "filament_id": "GFN98", + "filament_id": "OFb3UzMZ", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json index 35a3314a90..a8a0810980 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @HSN", "from": "system", "setting_id": "HBNOABPFLninXsW6", - "filament_id": "GFC99", + "filament_id": "OFTsGps3", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json index 1997c1b375..c4873f921e 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @HSN", "from": "system", "setting_id": "DJyFBjQ5n9n1UHv0", - "filament_id": "GFG99", + "filament_id": "OFvaXhYD", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json index f3118fe1d6..8a5765eac9 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @HSN", "from": "system", "setting_id": "NWKMG5q4ITfHcYOD", - "filament_id": "GFL99", + "filament_id": "OFKzh9lx", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json index a7988eaa70..52cbdd6732 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @HSN", "from": "system", "setting_id": "fAw5pB53L8ZT1Fkm", - "filament_id": "GFL99", + "filament_id": "OFefhSuj", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json index 098ed99ae0..4716c5ac9b 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @HSN", "from": "system", "setting_id": "CvTHZpKuTaGS186F", - "filament_id": "GFU99", + "filament_id": "OFmcJsqt", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json index c7b6451fab..5bcb620e15 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other @HSN", "from": "system", "setting_id": "IuZcFrVQ2rJoMDLP", - "filament_id": "GFB99", + "filament_id": "OFAK2XjZ", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json index fe5f2097d5..354cd3d8e3 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other @HSN", "from": "system", "setting_id": "4I0FW5meyC53Xf8n", - "filament_id": "GFN98", + "filament_id": "OFSpTWdv", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json index e87712a278..daeed5e540 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other @HSN", "from": "system", "setting_id": "vUuSuioOUXsg2P3p", - "filament_id": "GFC99", + "filament_id": "OFyD1Zo8", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json index 0a4f102aa3..8aef779240 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other @HSN", "from": "system", "setting_id": "lWYq9XssEyY3uWEe", - "filament_id": "GFG99", + "filament_id": "OFw05rkF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json index c775f37bfc..2788d2639f 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other @HSN", "from": "system", "setting_id": "wOExDniXvR7CcF1w", - "filament_id": "GFL99", + "filament_id": "OFS3HrR1", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json index b3cc531849..26fe3ad6ff 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other @HSN", "from": "system", "setting_id": "154azDg7YNNWCkNK", - "filament_id": "GFL99", + "filament_id": "OFrbbq6E", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json index adbf1cc254..83fb180e74 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other @HSN", "from": "system", "setting_id": "0bU2fl92vCQobYnt", - "filament_id": "GFU99", + "filament_id": "OFFrbsvQ", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json b/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json index dee081317f..f7cc33ef70 100644 --- a/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json +++ b/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper", "from": "system", "setting_id": "j86QMTif4fGujRbg", - "filament_id": "GFL99", + "filament_id": "OFefhSuj", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other ABS.json b/resources/profiles/InfiMech/filament/Other ABS.json index a120f2dda6..d2d4fc2a21 100644 --- a/resources/profiles/InfiMech/filament/Other ABS.json +++ b/resources/profiles/InfiMech/filament/Other ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other", "from": "system", "setting_id": "nDLB3RZq23limiBn", - "filament_id": "GFB99", + "filament_id": "OFAK2XjZ", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other PA-CF.json b/resources/profiles/InfiMech/filament/Other PA-CF.json index 1829ec16bb..37a58115f9 100644 --- a/resources/profiles/InfiMech/filament/Other PA-CF.json +++ b/resources/profiles/InfiMech/filament/Other PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other", "from": "system", "setting_id": "rgz4LjU9KyvbLhRQ", - "filament_id": "GFN98", + "filament_id": "OFSpTWdv", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/Other PC.json b/resources/profiles/InfiMech/filament/Other PC.json index dda6d2def7..212ed3117e 100644 --- a/resources/profiles/InfiMech/filament/Other PC.json +++ b/resources/profiles/InfiMech/filament/Other PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other", "from": "system", "setting_id": "VXkW5oukQdBX6B6T", - "filament_id": "GFC99", + "filament_id": "OFyD1Zo8", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/Other PETG.json b/resources/profiles/InfiMech/filament/Other PETG.json index 552e3e4fe7..4d5ecee6c4 100644 --- a/resources/profiles/InfiMech/filament/Other PETG.json +++ b/resources/profiles/InfiMech/filament/Other PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other", "from": "system", "setting_id": "onLEWi8GYK0avard", - "filament_id": "GFG99", + "filament_id": "OFw05rkF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/Other PLA Hyper.json b/resources/profiles/InfiMech/filament/Other PLA Hyper.json index 4d1aa6c742..44ec23e383 100644 --- a/resources/profiles/InfiMech/filament/Other PLA Hyper.json +++ b/resources/profiles/InfiMech/filament/Other PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other", "from": "system", "setting_id": "Iop52BLp5ou8u4QG", - "filament_id": "GFL99", + "filament_id": "OFrbbq6E", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other PLA.json b/resources/profiles/InfiMech/filament/Other PLA.json index aa1fa0a091..5e4a3eddd6 100644 --- a/resources/profiles/InfiMech/filament/Other PLA.json +++ b/resources/profiles/InfiMech/filament/Other PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other", "from": "system", "setting_id": "2Bl4sfgGJBjNMk37", - "filament_id": "GFL99", + "filament_id": "OFS3HrR1", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other TPU.json b/resources/profiles/InfiMech/filament/Other TPU.json index edbee9b887..656c5a9e81 100644 --- a/resources/profiles/InfiMech/filament/Other TPU.json +++ b/resources/profiles/InfiMech/filament/Other TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other", "from": "system", "setting_id": "nqDc2q94Q2hwMi7B", - "filament_id": "GFU99", + "filament_id": "OFFrbsvQ", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 6c96ddbad0..9145cab4da 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -42,6 +42,7 @@ "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", @@ -55,11 +56,17 @@ "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", @@ -105,15 +112,49 @@ "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", + "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Panchroma PLA @Anycubic Kobra S1", "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "Artillery/Artillery ABS", + "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery Generic PETG", "Artillery/Artillery Generic PLA", "Artillery/Artillery Generic PLA-CF", + "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PET @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PETG", + "Artillery/Artillery PETG @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Basic", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Matte", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Silk", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Tough", + "Artillery/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery TPU", + "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", "BBL/BETA HIPS @base", "BBL/BETA PAHT-CF @base", "BBL/BETA PETG @base", @@ -349,10 +390,25 @@ "Creality/CR-Wood @K1C_CFS-C-all", "Creality/CR-Wood @K1_CFS-C-all", "Creality/CR-Wood @K2 Plus-all", + "Creality/Creality Generic ASA-CF @Hi-all", "Creality/Creality Generic PA-CF", "Creality/Creality Generic PC", "Creality/Creality Generic PETG", + "Creality/Creality Generic PETG-CF @Hi-all", "Creality/Creality Generic PLA", + "Creality/Creality Generic PLA High Speed @Ender-3V3-all", + "Creality/Creality Generic PLA High Speed @Hi-all", + "Creality/Creality Generic PLA High Speed @K1-all", + "Creality/Creality Generic PLA High Speed @K2-all", + "Creality/Creality Generic PLA Matte @Ender-3V3-all", + "Creality/Creality Generic PLA Matte @Hi-all", + "Creality/Creality Generic PLA Matte @K1-all", + "Creality/Creality Generic PLA Matte @K2-all", + "Creality/Creality Generic PLA Silk @Ender-3V3-all", + "Creality/Creality Generic PLA Silk @Hi-all", + "Creality/Creality Generic PLA Silk @K1-all", + "Creality/Creality Generic PLA Silk @K2-all", + "Creality/Creality Generic PLA Wood @Hi-all", "Creality/Creality Generic PLA-CF", "Creality/Creality HF Generic PLA", "Creality/Creality HF Generic Speed PLA", @@ -601,6 +657,9 @@ "DeltaMaker/DeltaMaker Generic PETG", "DeltaMaker/DeltaMaker Generic PLA", "Dremel/Dremel Generic PLA", + "Dremel/Dremel Generic PLA @3D20 all", + "Dremel/Dremel Generic PLA @3D40 all", + "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Elegoo ASA-CF @base", "Elegoo/Elegoo PAHT @base", "Elegoo/Elegoo PC @base", @@ -3117,9 +3176,6 @@ "CoLiDo/CoLiDo PLA Silk", "CoLiDo/CoLiDo PLA+" ], - "GFABS": [ - "Anycubic/Anycubic ABS" - ], "GFASA": [ "Anycubic/Anycubic ASA" ], @@ -3169,7 +3225,6 @@ "Artillery/Artillery Generic ASA", "BBL/Generic ASA", "Creality/Creality Generic ASA", - "Creality/Creality Generic ASA-CF", "FLSun/FLSun Generic ASA", "FLSun/FLSun S1 ASA", "FLSun/FLSun T1 ASA", @@ -3208,9 +3263,7 @@ "Anker/Anker Generic ABS", "Anker/Anker Generic ABS 0.2 nozzle", "Anker/Anker Generic ABS 0.25 nozzle", - "Anycubic/Anycubic ABS", "Anycubic/Anycubic Generic ABS", - "Anycubic/Generic ABS", "Artillery/Artillery Generic ABS", "BBL/Generic ABS", "Chuanying/Chuanying ABS", @@ -3230,9 +3283,7 @@ "FlyingBear/FlyingBear ABS", "FlyingBear/FlyingBear Generic ABS", "FlyingBear/Other ABS", - "InfiMech/InfiMech ABS", "InfiMech/InfiMech Generic ABS", - "InfiMech/Other ABS", "Lulzbot/Lulzbot 2.85mm ABS", "OrcaArena/OrcaArena Generic ABS", "Prusa/Prusa Generic ABS", @@ -3301,8 +3352,6 @@ "FlyingBear/FlyingBear PC", "FlyingBear/Other PC", "InfiMech/InfiMech Generic PC", - "InfiMech/InfiMech PC", - "InfiMech/Other PC", "OrcaArena/OrcaArena Generic PC", "Prusa/Prusa Generic PC", "Prusa/Prusament PC Blend", @@ -3393,8 +3442,6 @@ "Anker/Anker Generic PETG 0.2 nozzle", "Anker/Anker Generic PETG 0.25 nozzle", "Anycubic/Anycubic Generic PETG", - "Anycubic/Anycubic PETG", - "Anycubic/Generic PETG Basic", "Artillery/Artillery Generic PETG", "BBL/Generic PETG", "CONSTRUCT3D/C1 Generic High Flow PETG", @@ -3407,7 +3454,6 @@ "CoLiDo/CoLiDo PETG", "Comgrow/Comgrow Generic PETG", "Creality/Creality Generic PETG", - "Creality/Creality Generic PETG-CF", "Custom/Generic PETG", "DeltaMaker/DeltaMaker Generic PETG", "FLSun/FLSun Generic PETG", @@ -3420,8 +3466,6 @@ "FlyingBear/FlyingBear PETG Basic", "FlyingBear/Other PETG", "InfiMech/InfiMech Generic PETG", - "InfiMech/InfiMech PETG", - "InfiMech/Other PETG", "Lulzbot/Lulzbot 2.85mm PETG", "MagicMaker/MM Generic PEEK", "OrcaArena/OrcaArena Generic PETG", @@ -3640,12 +3684,6 @@ "Anycubic/Polymaker PLA Pro Metallic", "Snapmaker/Polymaker PLA Pro Metallic" ], - "GFL92": [ - "Anycubic/Anycubic PLA" - ], - "GFL93": [ - "Anycubic/Anycubic PLA+" - ], "GFL94": [ "Anycubic/Anycubic PLA Slik" ], @@ -3653,7 +3691,6 @@ "Anker/Anker Generic PLA+", "Anker/Anker Generic PLA+ 0.2 nozzle", "Anker/Anker Generic PLA+ 0.25 nozzle", - "Anycubic/Anycubic PLA Matte", "BBL/Generic PLA High Speed", "Tiertime/Tiertime Generic PLA High Speed" ], @@ -3664,7 +3701,6 @@ "Anker/Anker Generic PLA Silk", "Anker/Anker Generic PLA Silk 0.2 nozzle", "Anker/Anker Generic PLA Silk 0.25 nozzle", - "Anycubic/Anycubic PLA High Speed", "BBL/Generic PLA Silk", "Tiertime/Tiertime Generic PLA Silk" ], @@ -3710,30 +3746,7 @@ "Anker/Anker Generic PLA 0.2 nozzle", "Anker/Anker Generic PLA 0.25 nozzle", "Anycubic/Anycubic Generic PLA", - "Anycubic/Anycubic PLA", - "Anycubic/Anycubic PLA High Speed", - "Anycubic/Anycubic PLA Luminous", - "Anycubic/Anycubic PLA Matte", - "Anycubic/Anycubic PLA Silk", - "Anycubic/Anycubic PLA+", - "Artillery/Artillery ABS", - "Artillery/Artillery ASA", "Artillery/Artillery Generic PLA", - "Artillery/Artillery PA", - "Artillery/Artillery PA-CF", - "Artillery/Artillery PC", - "Artillery/Artillery PET", - "Artillery/Artillery PETG", - "Artillery/Artillery PETG Basic", - "Artillery/Artillery PETG-CF", - "Artillery/Artillery PLA Basic", - "Artillery/Artillery PLA Basic+", - "Artillery/Artillery PLA Matte", - "Artillery/Artillery PLA Silk", - "Artillery/Artillery PLA Tough", - "Artillery/Artillery PLA-CF", - "Artillery/Artillery PVA", - "Artillery/Artillery TPU", "BBL/Generic PLA", "CONSTRUCT3D/C1 Generic PLA", "Chuanying/Chuanying ASA", @@ -3752,12 +3765,6 @@ "Comgrow/Comgrow Generic PLA", "Comgrow/Comgrow T300 PLA", "Creality/Creality Generic PLA", - "Creality/Creality Generic PLA High Speed", - "Creality/Creality Generic PLA Matte", - "Creality/Creality Generic PLA Silk", - "Creality/Creality Generic PLA Wood", - "Creality/Creality HF Generic PLA", - "Creality/Creality HF Generic Speed PLA", "Custom/Generic PLA", "DeltaMaker/DeltaMaker Brand PLA", "DeltaMaker/DeltaMaker Generic PLA", @@ -3778,11 +3785,6 @@ "FlyingBear/Other PLA", "FlyingBear/Other PLA Hyper", "InfiMech/InfiMech Generic PLA", - "InfiMech/InfiMech PLA", - "InfiMech/InfiMech PLA Basic", - "InfiMech/InfiMech PLA Hyper", - "InfiMech/Other PLA", - "InfiMech/Other PLA Hyper", "Lulzbot/Lulzbot 2.85mm PLA", "OrcaArena/OrcaArena Generic PLA", "Peopoly/Peopoly Generic PLA", @@ -3917,8 +3919,6 @@ "FlyingBear/FlyingBear PA-CF", "FlyingBear/Other PA-CF", "InfiMech/InfiMech Generic PA-CF", - "InfiMech/InfiMech PA-CF", - "InfiMech/Other PA-CF", "OrcaArena/OrcaArena Generic PA-CF", "Prusa/Prusament PA-CF", "Qidi/Qidi Generic PA-CF", @@ -4071,7 +4071,6 @@ "Anycubic/Anycubic PET-CF" ], "GFPETG": [ - "Anycubic/Anycubic PETG", "Anycubic/Generic PETG" ], "GFPETG-1": [ @@ -4080,27 +4079,12 @@ "GFPETG-CF": [ "Anycubic/Anycubic PETG-CF" ], - "GFPLA": [ - "Anycubic/Anycubic PLA" - ], "GFPLA Glow": [ "Anycubic/Anycubic PLA Glow" ], - "GFPLA High Speed": [ - "Anycubic/Anycubic PLA High Speed" - ], - "GFPLA Matte": [ - "Anycubic/Anycubic PLA Matte" - ], - "GFPLA Silk": [ - "Anycubic/Anycubic PLA Silk" - ], "GFPLA Translucent": [ "Anycubic/Anycubic PLA Translucent" ], - "GFPLA+": [ - "Anycubic/Anycubic PLA+" - ], "GFPLA-CF": [ "Anycubic/Anycubic PLA-CF" ], @@ -4435,9 +4419,6 @@ "GFU99": [ "Anker/Anker Generic TPU", "Anycubic/Anycubic Generic TPU", - "Anycubic/Anycubic PEBA 95A", - "Anycubic/Anycubic TPU", - "Anycubic/Generic TPU", "Artillery/Artillery Generic TPU", "BBL/Generic TPU", "CoLiDo/CoLiDo Generic TPU", @@ -4451,9 +4432,7 @@ "FlyingBear/FlyingBear TPU Basic", "FlyingBear/Other TPU", "InfiMech/InfiMech Generic TPU", - "InfiMech/InfiMech TPU", "InfiMech/InfiMech TPU Basic", - "InfiMech/Other TPU", "OrcaArena/OrcaArena Generic TPU", "Prusa/Prusa Generic FLEX", "Prusa/Prusa Generic TPU", @@ -4713,6 +4692,9 @@ "OF41QVDH": [ "Flashforge/Flashforge Generic PLA-Silk" ], + "OF43idK2": [ + "Creality/Creality Generic PLA Matte" + ], "OF48G7He": [ "Qidi/QIDI PETG Tough 0.8 nozzle" ], @@ -4728,6 +4710,9 @@ "OF4m9A5w": [ "Flashforge/Flashforge Generic HIPS" ], + "OF57IbZT": [ + "Artillery/Artillery PLA Basic" + ], "OF5T1Y9R": [ "Flashforge/Flashforge ABS Basic" ], @@ -4776,6 +4761,9 @@ "OF9sr3Vn": [ "Flashforge/Flashforge PLA Sparkle" ], + "OF9vnvM8": [ + "Artillery/Artillery PETG-CF" + ], "OFAEqlWa": [ "Flashforge/Flashforge Generic PLA-SILK" ], @@ -4785,6 +4773,9 @@ "OFAHagT9": [ "Elegoo/Elegoo Rapid PLA+" ], + "OFAK2XjZ": [ + "InfiMech/Other ABS" + ], "OFAUDGEQ": [ "Qidi/QIDI PLA Rapido Matte" ], @@ -4836,18 +4827,33 @@ "OFE22Uba": [ "Flashforge/Flashforge TPU-90A" ], + "OFEYKrjb": [ + "Artillery/Artillery PETG" + ], + "OFEdyZqS": [ + "Anycubic/Anycubic PLA Luminous" + ], "OFFIL5pD": [ "Qidi/QIDI PA12-CF" ], + "OFFrbsvQ": [ + "InfiMech/Other TPU" + ], "OFG8vHw8": [ "Qidi/Qidi Generic ASA" ], + "OFGb4hPY": [ + "Anycubic/Anycubic PEBA 95A" + ], "OFGfdP6J": [ "Flashforge/FusRock Generic S-Multi" ], "OFHBTqyD": [ "Flashforge/Flashforge PLA Basic" ], + "OFHL32M0": [ + "Anycubic/Anycubic TPU" + ], "OFHtQDC9": [ "Elegoo/Elegoo PLA Basic" ], @@ -4872,6 +4878,9 @@ "OFK820gS": [ "Qidi/QIDI ASA" ], + "OFKDnrjL": [ + "Artillery/Artillery PLA Matte" + ], "OFKWVi10": [ "Flashforge/Flashforge Generic PLA-CF10" ], @@ -4881,6 +4890,9 @@ "OFKjlAbC": [ "Qidi/QIDI UltraPA-CF25" ], + "OFKzh9lx": [ + "InfiMech/InfiMech PLA" + ], "OFL4KniM": [ "Elegoo/Elegoo Rapid TPU 95A" ], @@ -4893,6 +4905,9 @@ "OFLeFaUO": [ "Flashforge/Flashforge Generic PVA" ], + "OFLriDvE": [ + "Creality/Creality Generic PLA High Speed" + ], "OFLxO2Oc": [ "Flashforge/FusRock PET" ], @@ -4914,9 +4929,15 @@ "OFN0pBpo": [ "Qidi/Qidi Generic TPU 95A" ], + "OFNRgSch": [ + "Artillery/Artillery PC" + ], "OFNX5uRT": [ "Qidi/QIDI TPU-Aero" ], + "OFNbajj9": [ + "Creality/Creality Generic ASA-CF" + ], "OFOSzSuh": [ "Flashforge/Flashforge PA-CF" ], @@ -4926,6 +4947,9 @@ "OFOkTA0C": [ "Elegoo/Elegoo PETG Translucent" ], + "OFOp3Oef": [ + "Anycubic/Generic ABS" + ], "OFOysPuE": [ "Qidi/QIDI TPU-GF" ], @@ -4968,6 +4992,9 @@ "OFRgDMDJ": [ "Flashforge/Flashforge PETG Transparent" ], + "OFS3HrR1": [ + "InfiMech/Other PLA" + ], "OFSCm6pJ": [ "Elegoo/Elegoo PET-CF" ], @@ -4977,24 +5004,42 @@ "OFSdF3B1": [ "Flashforge/FusRock PAHT-CF" ], + "OFSpTWdv": [ + "InfiMech/Other PA-CF" + ], "OFT3TqB6": [ "OrcaFilamentLibrary/Elas ASA" ], "OFTa6gPH": [ "Flashforge/Flashforge PLA Pro" ], + "OFTbsWVg": [ + "Artillery/Artillery TPU" + ], "OFToBodi": [ "Qidi/QIDI ABS Rapido Metal" ], + "OFTsGps3": [ + "InfiMech/InfiMech PC" + ], + "OFTszIHE": [ + "Creality/Creality Generic PLA Silk" + ], "OFUJw3Lx": [ "Qidi/QIDI PEBA 95A" ], + "OFUYjPc4": [ + "Dremel/Dremel Generic PLA" + ], "OFUkpobY": [ "Qidi/QIDI PAHT-CF" ], "OFV4hD1o": [ "Qidi/QIDI PLA Rapido Metal" ], + "OFVBNoov": [ + "InfiMech/InfiMech ABS" + ], "OFVLuVmD": [ "OrcaFilamentLibrary/Elegoo Rapid PETG" ], @@ -5016,6 +5061,9 @@ "OFWyCd0Y": [ "Qidi/QIDI Support For PET/PA" ], + "OFXA8vy9": [ + "Artillery/Artillery PLA Basic+" + ], "OFXNO5Of": [ "Qidi/QIDI PLA Rapido 0.2 nozzle" ], @@ -5058,6 +5106,9 @@ "OFZhdVnP": [ "OrcaFilamentLibrary/eSUN PLA-Basic" ], + "OFZjZ1k7": [ + "Creality/Creality HF Generic PLA" + ], "OFa5cFqE": [ "Qidi/QIDI Support For PAHT" ], @@ -5067,6 +5118,12 @@ "OFaKIoH2": [ "Elegoo/Elegoo PLA Sparkle" ], + "OFaKZ6JI": [ + "Anycubic/Generic PETG Basic" + ], + "OFb3UzMZ": [ + "InfiMech/InfiMech PA-CF" + ], "OFbK5wve": [ "Prusa/Prusa Generic TPU HF" ], @@ -5079,6 +5136,9 @@ "OFbgt3u3": [ "OrcaFilamentLibrary/Elas PLA Basic" ], + "OFc2SnEp": [ + "Artillery/Artillery PVA" + ], "OFceJcLf": [ "Qidi/PolyLite PLA" ], @@ -5088,9 +5148,15 @@ "OFcy60o4": [ "Flashforge/Flashforge ASA Basic" ], + "OFdLGn0R": [ + "Creality/Creality Generic PLA Wood" + ], "OFdNORGt": [ "Flashforge/Flashforge ASA-GF" ], + "OFdSGkUG": [ + "Anycubic/Anycubic PETG" + ], "OFdhVJql": [ "Flashforge/Flashforge PLA Buint Ti" ], @@ -5100,12 +5166,18 @@ "OFeWMAGH": [ "Flashforge/Flashforge HS PLA Burnt Ti" ], + "OFefhSuj": [ + "InfiMech/InfiMech PLA Hyper" + ], "OFenGPBR": [ "OrcaFilamentLibrary/Elegoo PETG Translucent" ], "OFeybQvK": [ "Qidi/QIDI ABS Rapido 0.2 nozzle" ], + "OFf2b9wu": [ + "Anycubic/Anycubic ABS" + ], "OFfB1QKi": [ "OrcaFilamentLibrary/Generic PETG HF" ], @@ -5115,12 +5187,24 @@ "OFfdxQok": [ "Qidi/Generic PLA+" ], + "OFfkPhrJ": [ + "Creality/Creality HF Generic Speed PLA" + ], "OFftQOek": [ "Flashforge/Flashforge PLA Matte" ], "OFgJX0Fc": [ "Flashforge/FlashForge PPS" ], + "OFgK2Xvv": [ + "Anycubic/Anycubic PLA" + ], + "OFgSK1hL": [ + "Anycubic/Anycubic PLA High Speed" + ], + "OFgrGfPy": [ + "Anycubic/Anycubic PLA+" + ], "OFh5GUhZ": [ "Elegoo/Elegoo PLA Wood" ], @@ -5148,6 +5232,9 @@ "OFjFPhUC": [ "Prusa/Prusament rPLA" ], + "OFjdTQd6": [ + "Anycubic/Anycubic PLA Silk" + ], "OFjepy6j": [ "Flashforge/FusRock Generic S-PAHT" ], @@ -5190,6 +5277,9 @@ "OFmOWC74": [ "Elegoo/Elegoo PETG PRO" ], + "OFmcJsqt": [ + "InfiMech/InfiMech TPU" + ], "OFmduKVr": [ "Flashforge/FlashForge PPS-CF" ], @@ -5199,12 +5289,21 @@ "OFmgesco": [ "Flashforge/Flashforge TPU 65D" ], + "OFnLnZQo": [ + "Cubicon/Cubicon PC" + ], + "OFnY9ovF": [ + "Artillery/Artillery PA-CF" + ], "OFnj7bPm": [ "Qidi/QIDI ABS Rapido 0.6 nozzle" ], "OFnsWQTp": [ "Qidi/QIDI WOOD Rapido" ], + "OFnyirh9": [ + "Artillery/Artillery PLA Silk" + ], "OFo4VB3w": [ "Elegoo/Generic ABS-CF" ], @@ -5223,6 +5322,9 @@ "OFp8lkYD": [ "Flashforge/Flashforge PPA-GF" ], + "OFp90N8a": [ + "Artillery/Artillery PA" + ], "OFpHq9gJ": [ "Prusa/Prusament PETG" ], @@ -5244,6 +5346,9 @@ "OFqyIUDi": [ "Qidi/Qidi PLA-CF" ], + "OFrbbq6E": [ + "InfiMech/Other PLA Hyper" + ], "OFrgQ1Ns": [ "OrcaFilamentLibrary/Elas PLA Pro" ], @@ -5253,6 +5358,9 @@ "OFs6lLH7": [ "OrcaFilamentLibrary/Elegoo PLA Silk" ], + "OFsCOJv7": [ + "Anycubic/Generic TPU" + ], "OFsKqcQW": [ "OrcaFilamentLibrary/Elegoo PLA PRO" ], @@ -5265,6 +5373,9 @@ "OFsgANe3": [ "Flashforge/Flashforge PAHT-CF" ], + "OFt5bvKK": [ + "Artillery/Artillery PETG Basic" + ], "OFt9AiN5": [ "Flashforge/Polymaker CoPA" ], @@ -5274,6 +5385,12 @@ "OFtJMczs": [ "Flashforge/Flashforge TPU-64D" ], + "OFtXBjvb": [ + "Artillery/Artillery PLA Tough" + ], + "OFtmT4Nd": [ + "Artillery/Artillery ASA" + ], "OFuPC4S8": [ "Elegoo/Elegoo PLA-CF" ], @@ -5286,6 +5403,9 @@ "OFuidAEg": [ "Qidi/Bambu ABS" ], + "OFuq9tqb": [ + "InfiMech/InfiMech PLA Basic" + ], "OFuswXlp": [ "Flashforge/Generic TPU 85A" ], @@ -5301,15 +5421,36 @@ "OFv8SRZh": [ "Prusa/Prusa Generic PLA-CF" ], + "OFvGSn0l": [ + "Creality/Creality Generic PETG-CF" + ], "OFvN3117": [ "Qidi/QIDI PLA Matte Basic" ], + "OFvYfHPB": [ + "Anycubic/Anycubic PLA Matte" + ], + "OFvaXhYD": [ + "InfiMech/InfiMech PETG" + ], "OFviQ9lH": [ "Flashforge/Flashforge Generic TPU" ], "OFvsS7Fb": [ "Flashforge/Generic TPU-64D" ], + "OFvxvkAd": [ + "Artillery/Artillery PLA-CF" + ], + "OFw05rkF": [ + "InfiMech/Other PETG" + ], + "OFw0qp7w": [ + "Artillery/Artillery PET" + ], + "OFw1S8lL": [ + "Artillery/Artillery ABS" + ], "OFw4OHWE": [ "OrcaFilamentLibrary/Elas PETG Basic" ], @@ -5328,6 +5469,9 @@ "OFxjFYxE": [ "Elegoo/Elegoo PETG HF" ], + "OFyD1Zo8": [ + "InfiMech/Other PC" + ], "OFyoW5W2": [ "Flashforge/Flashforge PLA Color Change" ], @@ -5693,19 +5837,6 @@ "P1004": [ "Creality/PolySonic PLA" ], - "P11851ba": [ - "Artillery/Artillery PET" - ], - "P284941e": [ - "Artillery/Artillery PETG", - "Artillery/Artillery PETG Basic" - ], - "P2fbf0c0": [ - "Artillery/Artillery TPU" - ], - "P39db358": [ - "Artillery/Artillery ABS" - ], "P510cfa0": [ "Cubicon/Cubicon PLA" ], @@ -5728,24 +5859,14 @@ "Cubicon/Cubicon PETG" ], "P510cfd0": [ - "Cubicon/Cubicon PA-CF", - "Cubicon/Cubicon PC" + "Cubicon/Cubicon PA-CF" ], "P510eff9": [ "Ginger Additive/Ginger Generic PETG", "Ginger Additive/Ginger Generic PLA" ], - "P8163162": [ - "Artillery/Artillery PVA" - ], - "P87436f6": [ - "Artillery/Artillery ASA" - ], "Pfcf9c4c": [ - "Artillery/Artillery PLA", - "Artillery/Artillery PLA Basic", - "Artillery/Artillery PLA Matte", - "Artillery/Artillery PLA Silk" + "Artillery/Artillery PLA" ], "Prusa Generic ABS @CORE One": [ "Prusa/Prusa Generic ABS" @@ -6661,10 +6782,13 @@ "Anycubic/Panchroma PLA @Anycubic Kobra S1", "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "Artillery/Artillery ABS", "Artillery/Artillery ABS @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery ABS @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery ABS @Artillery M1 Pro 0.8 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.8 nozzle", "Artillery/Artillery Generic ABS", @@ -6673,21 +6797,50 @@ "Artillery/Artillery Generic PLA", "Artillery/Artillery Generic PLA-CF", "Artillery/Artillery Generic TPU", + "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PET @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PET @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PET @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery PET @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PETG", "Artillery/Artillery PETG @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PETG @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PETG @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery PETG @Artillery M1 Pro 0.8 nozzle", "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PLA @Artillery M1 Pro 0.2 nozzle", "Artillery/Artillery PLA @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery PLA @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Basic", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Matte", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Silk", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle", + "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery PLA Tough", + "Artillery/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PVA @Artillery M1 Pro 0.2 nozzle", + "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PVA @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery PVA @Artillery M1 Pro 0.8 nozzle", + "Artillery/Artillery TPU", + "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery TPU @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery TPU @Artillery M1 Pro 0.8 nozzle", "BBL/Generic SBS", @@ -6837,12 +6990,27 @@ "Creality/Creality Generic ABS @Ender-5Max-all", "Creality/Creality Generic ASA", "Creality/Creality Generic ASA @Ender-5Max-all", + "Creality/Creality Generic ASA-CF @Hi-all", "Creality/Creality Generic PA @Ender-5Max-all", "Creality/Creality Generic PA-CF", "Creality/Creality Generic PETG", "Creality/Creality Generic PETG @Ender-5Max-all", + "Creality/Creality Generic PETG-CF @Hi-all", "Creality/Creality Generic PLA", "Creality/Creality Generic PLA @Ender-5Max-all", + "Creality/Creality Generic PLA High Speed @Ender-3V3-all", + "Creality/Creality Generic PLA High Speed @Hi-all", + "Creality/Creality Generic PLA High Speed @K1-all", + "Creality/Creality Generic PLA High Speed @K2-all", + "Creality/Creality Generic PLA Matte @Ender-3V3-all", + "Creality/Creality Generic PLA Matte @Hi-all", + "Creality/Creality Generic PLA Matte @K1-all", + "Creality/Creality Generic PLA Matte @K2-all", + "Creality/Creality Generic PLA Silk @Ender-3V3-all", + "Creality/Creality Generic PLA Silk @Hi-all", + "Creality/Creality Generic PLA Silk @K1-all", + "Creality/Creality Generic PLA Silk @K2-all", + "Creality/Creality Generic PLA Wood @Hi-all", "Creality/Creality Generic PLA-CF", "Creality/Creality Generic TPU", "Creality/Creality Generic TPU @Ender-5Max-all", @@ -7238,15 +7406,6 @@ "Creality/eSUN PLA-Lite @K2 Plus-all", "Creality/eSUN PLA-Matte @K2 Plus-all", "Creality/eSUN PLA-Silk @K2 Plus-all", - "Cubicon/Cubicon ABS @base", - "Cubicon/Cubicon ABS-A100 @base", - "Cubicon/Cubicon ABSk @base", - "Cubicon/Cubicon PA-CF @base", - "Cubicon/Cubicon PC @base", - "Cubicon/Cubicon PETG @base", - "Cubicon/Cubicon PLA @base", - "Cubicon/Cubicon PLA+ @base", - "Cubicon/Cubicon PLAi21 @base", "Custom/Generic PC @MyToolChanger", "Custom/Generic PETG @MyToolChanger", "Custom/Generic PLA @MyToolChanger", @@ -7258,6 +7417,9 @@ "DeltaMaker/DeltaMaker Generic PLA", "DeltaMaker/DeltaMaker Generic TPU", "Dremel/Dremel Generic PLA", + "Dremel/Dremel Generic PLA @3D20 all", + "Dremel/Dremel Generic PLA @3D40 all", + "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Generic ABS-CF @Elegoo Centauri", "Elegoo/Generic PA6-CF @Elegoo", "Elegoo/Generic PC-CF @Elegoo", diff --git a/scripts/retired_filament_ids.json b/scripts/retired_filament_ids.json index d4c5f3faf5..d71f89d9ac 100644 --- a/scripts/retired_filament_ids.json +++ b/scripts/retired_filament_ids.json @@ -1,3 +1,47 @@ { - "retired": {} + "retired": { + "GFABS": [ + "Anycubic/Anycubic ABS" + ], + "GFL92": [ + "Anycubic/Anycubic PLA" + ], + "GFL93": [ + "Anycubic/Anycubic PLA+" + ], + "GFPLA": [ + "Anycubic/Anycubic PLA" + ], + "GFPLA High Speed": [ + "Anycubic/Anycubic PLA High Speed" + ], + "GFPLA Matte": [ + "Anycubic/Anycubic PLA Matte" + ], + "GFPLA Silk": [ + "Anycubic/Anycubic PLA Silk" + ], + "GFPLA+": [ + "Anycubic/Anycubic PLA+" + ], + "P11851ba": [ + "Artillery/Artillery PET" + ], + "P284941e": [ + "Artillery/Artillery PETG", + "Artillery/Artillery PETG Basic" + ], + "P2fbf0c0": [ + "Artillery/Artillery TPU" + ], + "P39db358": [ + "Artillery/Artillery ABS" + ], + "P8163162": [ + "Artillery/Artillery PVA" + ], + "P87436f6": [ + "Artillery/Artillery ASA" + ] + } } From ee125975cffca12fb9e29e88b8c166417a83679f Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:14:27 +0800 Subject: [PATCH 009/164] Snapmaker, FlyingBear, Sovol: family filament_ids Phase 2 long-tail migrations (25 collision groups), zero effective-config change: Snapmaker (11 + the tree's one live library-cross group): three Benchy demo presets coexisting via compatible_prints gating (invisible to the -f check) get their own mints; the TPE/TPU-High-Flow lines riding shared bases get family mints across the plain/U1/Dual/J1 variants; 'Snapmaker PLA Matte @U1' minted; 'Snapmaker PET @Dual' unified onto its own family root id; 'Snapmaker PA-CF @U1' had its compatible_printers triple-duplicated (self-collision) - deduplicated. The PolyTerra J1/Dual PLA presets that re-exposed the library's PolyTerra PLA (alias rename) get family mints while 'PolyTerra PLA @0.2 nozzle' keeps the library id via inheritance. Fiberon families keep their authentic byte-copied Bambu catalog ids (sanctioned multi-vendor brand sharing, frozen in the snapshot). FlyingBear (8): every preset carries an own-key Bambu generic id; owners keep theirs, 15 impostor families (S1/Ghost7/Hyper lines) re-minted family-atomically - '@S1' and '@Ghost7' siblings move together (20 edits). Sovol (6): the GFL99 copy-paste epidemic. The five same-alias 'Generic * @Sovol SV08 MAX' tunings just DROP their wrong own-id lines so the library family ids flow through inheritance (alias-shadow-verified); Generic PLA Silk / SUNLU PETG adopt their library family ids as own keys (their inherits point at other families, so deletion would collide); the 21 dedicated Sovol/Polymaker families get fresh mints (23 edits). 'Sovol SV07 PLA' keeps GFL99 unambiguously (sole claimant on SV07), frozen in the snapshot. Verified: config-equivalence gate zero unexpected diffs; extra check exit 0; --check exit 0; validator -l 2 exit 0; extended -f -v Snapmaker/FlyingBear/ Sovol all exit 0. --- .../filament/FlyingBear PLA Hyper.json | 2 +- .../Ghost7/FlyingBear ABS @Ghost7.json | 2 +- .../Ghost7/FlyingBear PA-CF @Ghost7.json | 2 +- .../Ghost7/FlyingBear PC @Ghost7.json | 2 +- .../Ghost7/FlyingBear PLA Basic @Ghost7.json | 2 +- .../Ghost7/FlyingBear PLA Hyper @Ghost7.json | 2 +- .../filament/S1/FlyingBear ABS @S1.json | 2 +- .../filament/S1/FlyingBear PA-CF @S1.json | 2 +- .../filament/S1/FlyingBear PC @S1.json | 2 +- .../filament/S1/FlyingBear PETG @S1.json | 2 +- .../filament/S1/FlyingBear PLA @S1.json | 2 +- .../filament/S1/FlyingBear PLA Hyper @S1.json | 2 +- .../filament/S1/FlyingBear TPU @S1.json | 2 +- .../FlyingBear/filament/S1/Other ABS @S1.json | 2 +- .../filament/S1/Other PA-CF @S1.json | 2 +- .../FlyingBear/filament/S1/Other PC @S1.json | 2 +- .../filament/S1/Other PETG @S1.json | 2 +- .../FlyingBear/filament/S1/Other PLA @S1.json | 2 +- .../filament/S1/Other PLA Hyper @S1.json | 2 +- .../FlyingBear/filament/S1/Other TPU @S1.json | 2 +- .../PolyTerra Dual PLA @0.2 nozzle.json | 1 + .../PolyTerra J1 PLA @0.2 nozzle.json | 1 + .../filament/Polymaker/PolyTerra J1 PLA.json | 1 + .../filament/Snapmaker ABS Benchy @U1.json | 1 + .../filament/Snapmaker Dual ABS Benchy.json | 1 + .../filament/Snapmaker Dual TPE.json | 1 + .../Snapmaker Dual TPU High-Flow.json | 1 + .../filament/Snapmaker J1 ABS Benchy.json | 1 + .../Snapmaker/filament/Snapmaker J1 TPE.json | 1 + .../filament/Snapmaker J1 TPU High-Flow.json | 1 + .../filament/Snapmaker PA-CF @U1.json | 2 - .../filament/Snapmaker PET @Dual.json | 1 + .../Snapmaker PLA Matte @U1 base.json | 2 +- .../filament/Snapmaker PLA Matte @U1.json | 1 + .../Snapmaker/filament/Snapmaker TPE @U1.json | 1 + .../Snapmaker/filament/Snapmaker TPE.json | 1 + .../filament/Snapmaker TPU High-Flow @U1.json | 1 + .../filament/Generic ABS @Sovol SV08 MAX.json | 1 - .../filament/Generic PC @Sovol SV08 MAX.json | 1 - .../Generic PETG @Sovol SV08 MAX.json | 1 - .../filament/Generic PLA @Sovol SV08 MAX.json | 1 - .../Generic PLA Silk @Sovol SV08 MAX.json | 2 +- .../filament/Generic TPU @Sovol SV08 MAX.json | 1 - .../Polymaker PETG @Sovol SV08 MAX.json | 2 +- .../filament/SUNLU PETG @Sovol SV08 MAX.json | 2 +- .../Sovol/filament/Sovol SV06 ACE ABS.json | 2 +- .../Sovol/filament/Sovol SV06 ACE PETG.json | 2 +- .../Sovol/filament/Sovol SV06 ACE PLA.json | 2 +- .../Sovol/filament/Sovol SV06 ACE TPU.json | 2 +- .../filament/Sovol SV06 Plus ACE ABS.json | 2 +- .../filament/Sovol SV06 Plus ACE PETG.json | 2 +- .../filament/Sovol SV06 Plus ACE PLA.json | 2 +- .../filament/Sovol SV06 Plus ACE TPU.json | 2 +- .../Sovol/filament/Sovol SV08 ABS.json | 2 +- .../Sovol/filament/Sovol SV08 PETG.json | 2 +- .../Sovol SV08 PLA @SV08 0.2 nozzle.json | 2 +- .../Sovol/filament/Sovol SV08 PLA.json | 2 +- .../Sovol/filament/Sovol SV08 TPU.json | 2 +- .../Sovol/filament/Sovol Zero ABS.json | 2 +- .../Sovol/filament/Sovol Zero PC.json | 2 +- .../filament/Sovol Zero PETG HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PETG.json | 2 +- .../Sovol Zero PLA Basic HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PLA Basic.json | 2 +- .../Sovol Zero PLA Silk HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PLA Silk.json | 2 +- .../Sovol/filament/Sovol Zero TPU.json | 2 +- scripts/filament_id_snapshot.json | 282 ++++++++++++------ 68 files changed, 260 insertions(+), 136 deletions(-) diff --git a/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json b/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json index 6d3f9019b2..eca01c7a14 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper", "from": "system", "setting_id": "72RZHGo7eACm2tN5", - "filament_id": "GFL99", + "filament_id": "OFNz8rrn", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json index 814a100880..5147461208 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @Ghost7", "from": "system", "setting_id": "UyTzid0zVMCxSrgx", - "filament_id": "GFB99", + "filament_id": "OFnMW5jr", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json index ecbff8839e..5f2f9522fb 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @Ghost7", "from": "system", "setting_id": "NZwDOWmMdBYEejNQ", - "filament_id": "GFN98", + "filament_id": "OFCKK3u9", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json index 5a72ae3680..96f7e5a026 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @Ghost7", "from": "system", "setting_id": "QYOEUrnmNMUcVOVF", - "filament_id": "GFC99", + "filament_id": "OF4jILJA", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json index 41f16faf65..c970880f0c 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json @@ -5,7 +5,7 @@ "renamed_from": "FlyingBear PLA @Ghost7", "from": "system", "setting_id": "3JBTG6IDrBCnvIhf", - "filament_id": "GFL99", + "filament_id": "OF50NUZI", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json index 488cda963c..6e44f41595 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @Ghost7", "from": "system", "setting_id": "qQZUolZHgJxgLo17", - "filament_id": "GFL99", + "filament_id": "OFNz8rrn", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json index a04e655f4b..af609d3348 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @S1", "from": "system", "setting_id": "7dtepGnoDDAdPtUh", - "filament_id": "GFB99", + "filament_id": "OFnMW5jr", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json index f24c0d882e..c94440b570 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @S1", "from": "system", "setting_id": "CLggyaDcebZSbqIH", - "filament_id": "GFN98", + "filament_id": "OFCKK3u9", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json index 54fb8a7ca1..41c4c28166 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @S1", "from": "system", "setting_id": "bPeSARy9AGqM8Y32", - "filament_id": "GFC99", + "filament_id": "OF4jILJA", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json index 77bc4b151f..3145034b51 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @S1", "from": "system", "setting_id": "yKU5mMW0nKvNH98B", - "filament_id": "GFG99", + "filament_id": "OFg4N6ZL", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json index 3c3fbd5af8..7ded765608 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @S1", "from": "system", "setting_id": "k58jL17n8cOla3Gd", - "filament_id": "GFL99", + "filament_id": "OFBGxHgT", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json index 06148f4f70..f422d04c4e 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @S1", "from": "system", "setting_id": "h8XGgMBjEwxNkldf", - "filament_id": "GFL99", + "filament_id": "OFNz8rrn", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json index 2cd4a9e943..57c0c169d3 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @S1", "from": "system", "setting_id": "IVFpAlGo8KButueJ", - "filament_id": "GFU99", + "filament_id": "OFYfZgxU", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json b/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json index 7e37ab1996..9b28644704 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other @S1", "from": "system", "setting_id": "Nadd5NX7eDvEnlKO", - "filament_id": "GFB99", + "filament_id": "OFVJXE4n", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json index 8eff7046ea..074988bb61 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other @S1", "from": "system", "setting_id": "sSKkzXv1cn33fF7p", - "filament_id": "GFN98", + "filament_id": "OFLiTjQK", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json index 9a09e1c0d5..47bc577217 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other @S1", "from": "system", "setting_id": "mHuxaHppNFZbldHD", - "filament_id": "GFC99", + "filament_id": "OFTbdJyT", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json index b610388077..bc460077c8 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other @S1", "from": "system", "setting_id": "Ko5q6BgADth36RJC", - "filament_id": "GFG99", + "filament_id": "OFuPN3iW", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json index 1df8312686..79007e6e83 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other @S1", "from": "system", "setting_id": "sayo3sMQKH4ZdhEk", - "filament_id": "GFL99", + "filament_id": "OF5Ugv12", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json index b9913afec4..58243ad2bc 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other @S1", "from": "system", "setting_id": "2QHCKH0yDmBzpQnY", - "filament_id": "GFL99", + "filament_id": "OFFmJ8aR", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json b/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json index aa56b7f0f7..2c3632740e 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other @S1", "from": "system", "setting_id": "wh8PHrEbFYKsQxo0", - "filament_id": "GFU99", + "filament_id": "OFvOhSjO", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json index b45068dd52..bdadb828e9 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OF17cONC", "instantiation": "true", "name": "PolyTerra Dual PLA @0.2 nozzle", "setting_id": "UQYgjH1uVxf3d2Nv", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json index dd4f969f62..6062914ff0 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OFjZw7k1", "instantiation": "true", "name": "PolyTerra J1 PLA @0.2 nozzle", "setting_id": "mxKHxGmBZzPLS82O", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json index 7b66438058..1c23dc5fb4 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OFjZw7k1", "instantiation": "true", "name": "PolyTerra J1 PLA", "setting_id": "4MZWZX7QPBzxdEGj", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json index db8dea187b..a0e8b152b7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker ABS @U1 base", "from": "system", "setting_id": "xszx4XRGrp88OdP8", + "filament_id": "OFgtZjeX", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json index e42e9efc4a..dd1863eac8 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Dual ABS @base", "from": "system", "setting_id": "YMUFsOzEISsMqCLe", + "filament_id": "OFxxa5yn", "instantiation": "true", "compatible_printers": [ "Snapmaker Artisan (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json index f29f3f2189..98b7787775 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Dual TPU @base", "from": "system", "setting_id": "KoZqZ4l1tYZ99JYz", + "filament_id": "OFAbsMuV", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json index 7db3a84d21..2696168f9d 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Dual TPU @base", "from": "system", "setting_id": "D1vA7cdI5kghtrxf", + "filament_id": "OF0Ee2jQ", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json index 4b3dcc5e2f..c85da00ba2 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker J1 ABS @base", "from": "system", "setting_id": "b1Z94AhG8viXuDsq", + "filament_id": "OFePPmng", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json index b3c6a49434..80c1ff3650 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker J1 TPU @base", "from": "system", "setting_id": "6N7VB3mKAShGVYL3", + "filament_id": "OFChH9xu", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json index 4186cea511..81cc01669e 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker J1 TPU @base", "from": "system", "setting_id": "wdN8j0Zv2bJ29XHA", + "filament_id": "OFKhtNBx", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1.json index 402b5785dd..b2dc562d3b 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1.json @@ -6,8 +6,6 @@ "setting_id": "8aP6ye4aeOS7qKpG", "instantiation": "true", "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)", - "Snapmaker U1 (0.4 nozzle)", "Snapmaker U1 (0.4 nozzle)" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json index 4bf208ea44..4eb1143082 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Dual PET @base", "from": "system", "setting_id": "3xJOWlbt2feyRKTV", + "filament_id": "2549587591", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json index 3ffb3314a1..ac2ea870ea 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker PLA Matte @U1 base", "from": "system", - "filament_id": "141703112701", + "filament_id": "OFlbn4FY", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json index fcb1d74c92..67c1ebd2e3 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker PLA @U1 base", "from": "system", "setting_id": "uAhykL5ap1DAKacf", + "filament_id": "OFlbn4FY", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json index 846f7acff9..59f4b2af8e 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker TPU @U1 base", "from": "system", "setting_id": "aqE9IR6dFd2MQLXR", + "filament_id": "OF70DKqH", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker TPE.json index 861f11ff09..78b8f2484f 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPE.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker TPU @base", "from": "system", "setting_id": "pFGj8sxkPmk10bP4", + "filament_id": "OF70DKqH", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json index d338d8e4b9..96252c2de1 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker TPU @U1 base", "from": "system", "setting_id": "5AXIg8WCdcd74S5v", + "filament_id": "OFtet8ui", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)", diff --git a/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08 MAX.json index 8e043a5a48..8532e5bee0 100644 --- a/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08 MAX.json @@ -1,6 +1,5 @@ { "type": "filament", - "filament_id": "GFL99", "setting_id": "7julgReKEcp5tg0d", "name": "Generic ABS @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Generic PC @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic PC @Sovol SV08 MAX.json index ec1fefce99..242c320a7d 100644 --- a/resources/profiles/Sovol/filament/Generic PC @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic PC @Sovol SV08 MAX.json @@ -1,6 +1,5 @@ { "type": "filament", - "filament_id": "GFL99", "setting_id": "UPoqjanrvN173sVS", "name": "Generic PC @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08 MAX.json index d23224b8f9..550d30ccf5 100644 --- a/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08 MAX.json @@ -1,6 +1,5 @@ { "type": "filament", - "filament_id": "GFL99", "setting_id": "ib7AtR3tQ2dSrFNP", "name": "Generic PETG @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 MAX.json index 7ef7748ec1..b29bc1b069 100644 --- a/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 MAX.json @@ -1,6 +1,5 @@ { "type": "filament", - "filament_id": "GFL99", "setting_id": "kcFykpuuxMy7KwNu", "name": "Generic PLA @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json index 40f10eb1ed..9fe50fc1b6 100644 --- a/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OGFL96", "setting_id": "WAHQZmwHoS4WjoTx", "name": "Generic PLA Silk @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08 MAX.json index 1c115fe8aa..a65978a50e 100644 --- a/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08 MAX.json @@ -1,6 +1,5 @@ { "type": "filament", - "filament_id": "GFL99", "setting_id": "hQByQ7FIhAiytli8", "name": "Generic TPU @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json index 02b335f910..2d9196c316 100644 --- a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OF22AxCm", "setting_id": "JBFKMaFtd7kO8Ksq", "name": "Polymaker PETG @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json index 35ee5bcd03..9df001b6c9 100644 --- a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OGFSNL08", "setting_id": "x68SPQCqVacBSGd5", "name": "SUNLU PETG @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json index c77c7812b6..b904edd7d4 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "okqqqm0P8ehlQuDY", - "filament_id": "GFL99", + "filament_id": "OFtemzzw", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json index b8151d47f4..82969be3fb 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "5mtng0PM8CMglpD7", - "filament_id": "GFL99", + "filament_id": "OFGFZhWu", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json index da10d948ab..317c30a966 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "kgtcANsbfwSbdgOh", - "filament_id": "GFL99", + "filament_id": "OFic2uNr", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json index 3d560d9905..c4c0397846 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ERN0ozxmPhIMze0i", - "filament_id": "GFL99", + "filament_id": "OFglpvEE", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json index 42652117ef..9a2b1e5cae 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "Me1iSJmocW35ClmN", - "filament_id": "GFL99", + "filament_id": "OF5Bmdtg", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json index 483d28af10..87f012c539 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "ZrAm6Nm4FI7p4PgC", - "filament_id": "GFL99", + "filament_id": "OFgMGSpF", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json index ef249ea17f..806b3a35fd 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "YEEOGJYm4Z8W4vGV", - "filament_id": "GFL99", + "filament_id": "OFSoZBK2", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json index 2589b13e37..f19fb592b9 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "oNucKLcIdxwBPpUN", - "filament_id": "GFL99", + "filament_id": "OFsmPFwh", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json b/resources/profiles/Sovol/filament/Sovol SV08 ABS.json index 0bb16950d3..f35a2372a1 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "nq4vvrWqKjWKELEz", - "filament_id": "GFL99", + "filament_id": "OFKH15Hd", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json b/resources/profiles/Sovol/filament/Sovol SV08 PETG.json index 4fe3cc866f..81e3e2db41 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "CWd7KULbXvJeTTEy", - "filament_id": "GFL99", + "filament_id": "OFIl3ar9", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json b/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json index 046d787dc5..b013826043 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "qmnuve3FgzrXgjPA", - "filament_id": "GFL99", + "filament_id": "OFcsHCy4", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json b/resources/profiles/Sovol/filament/Sovol SV08 PLA.json index 2132557b68..cb32bceb71 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "nnU0222BS0F1c5ki", - "filament_id": "GFL99", + "filament_id": "OFcsHCy4", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json b/resources/profiles/Sovol/filament/Sovol SV08 TPU.json index a1d0cb0fdc..f93c734acc 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "tpBbCQhcSJsBesnG", - "filament_id": "GFL99", + "filament_id": "OFY1U4uM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero ABS.json b/resources/profiles/Sovol/filament/Sovol Zero ABS.json index ecd862970a..16fabab6e8 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero ABS.json +++ b/resources/profiles/Sovol/filament/Sovol Zero ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "9pI7op6U4azpfNfb", - "filament_id": "GFL99", + "filament_id": "OFgNzLVh", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PC.json b/resources/profiles/Sovol/filament/Sovol Zero PC.json index ac866620dd..9c82b6a60b 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PC.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PC.json @@ -4,7 +4,7 @@ "inherits": "Generic PC @System", "from": "system", "setting_id": "vuuZXnlrMgUKtSI0", - "filament_id": "GFL99", + "filament_id": "OFtwA91m", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json index a458307c64..569c670407 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "AfxHmpdOkMDJa2fk", - "filament_id": "GFL99", + "filament_id": "OFk6T5YH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PETG.json b/resources/profiles/Sovol/filament/Sovol Zero PETG.json index e7b328ac6f..db83f4d2e4 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PETG.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "75OJvkXlmbcaHQfW", - "filament_id": "GFL99", + "filament_id": "OFjurQ3I", "instantiation": "true", "filament_flow_ratio": [ "1.0348" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json index f7e634386c..b3d235da7d 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "i9wDnSEIrOBPbOZl", - "filament_id": "GFL99", + "filament_id": "OFtL05hE", "instantiation": "true", "filament_flow_ratio": [ "1.0348" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json index b7fb7f63e8..93c2382024 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "ZVvOaMwZ7noevsYf", - "filament_id": "GFL99", + "filament_id": "OF5J2axC", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json index d6b31b283d..2db612ff8f 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "XxEJBNFLRltR2Xwn", - "filament_id": "GFL99", + "filament_id": "OFP4poIv", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json index 64c8b8a465..d86d68212d 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "QowhGzqSwGQoAp1a", - "filament_id": "GFL99", + "filament_id": "OF2tvNYA", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero TPU.json b/resources/profiles/Sovol/filament/Sovol Zero TPU.json index 307a58ff01..d2f9247ada 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero TPU.json +++ b/resources/profiles/Sovol/filament/Sovol Zero TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "iZHXx0RyRO096L0z", - "filament_id": "GFL99", + "filament_id": "OFO5R9KJ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 9145cab4da..7272d33806 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1882,6 +1882,9 @@ "Snapmaker/PolyLite PLA Pro Metallic @Snapmaker U1 base", "Snapmaker/PolyLite PLA Starlight @Snapmaker U1 base", "Snapmaker/PolyLite PLA Translucent @Snapmaker U1 base", + "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", + "Snapmaker/PolyTerra J1 PLA", + "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", "Snapmaker/PolyTerra PLA @Snapmaker U1 base", "Snapmaker/PolyTerra PLA Marble @Snapmaker U1 base", "Snapmaker/PolyTerra PLA+ @Snapmaker U1 base", @@ -1890,6 +1893,8 @@ "Snapmaker/Polymaker PLA @Snapmaker U1 base", "Snapmaker/Polymaker PLA Pro @Snapmaker U1 base", "Snapmaker/Polymaker PLA Pro Metallic @Snapmaker U1 base", + "Snapmaker/Snapmaker ABS Benchy @U1", + "Snapmaker/Snapmaker Dual ABS Benchy", "Snapmaker/Snapmaker Dual PA-CF @base", "Snapmaker/Snapmaker Dual PET @base", "Snapmaker/Snapmaker Dual PLA @base", @@ -1898,6 +1903,9 @@ "Snapmaker/Snapmaker Dual PLA Metal @base", "Snapmaker/Snapmaker Dual PLA Silk @base", "Snapmaker/Snapmaker Dual PLA-CF @base", + "Snapmaker/Snapmaker Dual TPE", + "Snapmaker/Snapmaker Dual TPU High-Flow", + "Snapmaker/Snapmaker J1 ABS Benchy", "Snapmaker/Snapmaker J1 PA-CF @base", "Snapmaker/Snapmaker J1 PET @base", "Snapmaker/Snapmaker J1 PLA @base", @@ -1906,25 +1914,27 @@ "Snapmaker/Snapmaker J1 PLA Metal @base", "Snapmaker/Snapmaker J1 PLA Silk @base", "Snapmaker/Snapmaker J1 PLA-CF @base", + "Snapmaker/Snapmaker J1 TPE", + "Snapmaker/Snapmaker J1 TPU High-Flow", "Snapmaker/Snapmaker PA-CF @U1 base", "Snapmaker/Snapmaker PA-CF @base", + "Snapmaker/Snapmaker PET @Dual", "Snapmaker/Snapmaker PET @U1 base", "Snapmaker/Snapmaker PET @base", "Snapmaker/Snapmaker PLA @U1 base", "Snapmaker/Snapmaker PLA @base", "Snapmaker/Snapmaker PLA Eco @U1 base", "Snapmaker/Snapmaker PLA Eco @base", + "Snapmaker/Snapmaker PLA Matte @U1", "Snapmaker/Snapmaker PLA Metal @U1 base", "Snapmaker/Snapmaker PLA Silk @U1 base", "Snapmaker/Snapmaker PLA Silk @base", "Snapmaker/Snapmaker PLA-CF @U1 base", "Snapmaker/Snapmaker PLA-CF @base", - "Sovol/Generic ABS @Sovol SV08 MAX", - "Sovol/Generic PC @Sovol SV08 MAX", - "Sovol/Generic PETG @Sovol SV08 MAX", - "Sovol/Generic PLA @Sovol SV08 MAX", + "Snapmaker/Snapmaker TPE", + "Snapmaker/Snapmaker TPE @U1", + "Snapmaker/Snapmaker TPU High-Flow @U1", "Sovol/Generic PLA Silk @Sovol SV08 MAX", - "Sovol/Generic TPU @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", "Sovol/Sovol SV06 ACE ABS", @@ -2287,8 +2297,7 @@ "Snapmaker/Snapmaker J1 PA-CF" ], "1223824394": [ - "Snapmaker/Snapmaker J1 ABS", - "Snapmaker/Snapmaker J1 ABS Benchy" + "Snapmaker/Snapmaker J1 ABS" ], "1247172706": [ "Snapmaker/Snapmaker Dual ASA" @@ -2317,8 +2326,7 @@ "Snapmaker/Snapmaker Dual PLA" ], "14170311270": [ - "Snapmaker/Snapmaker PLA", - "Snapmaker/Snapmaker PLA Matte" + "Snapmaker/Snapmaker PLA" ], "141703112701": [ "Snapmaker/Snapmaker PLA SnapSpeed" @@ -2330,7 +2338,6 @@ "Snapmaker/Snapmaker J1 ASA" ], "1480063856": [ - "Snapmaker/Snapmaker TPE", "Snapmaker/Snapmaker TPU" ], "15001": [ @@ -2346,12 +2353,10 @@ "Snapmaker/Snapmaker PLA Silk" ], "168223792": [ - "Snapmaker/Snapmaker Dual ABS", - "Snapmaker/Snapmaker Dual ABS Benchy" + "Snapmaker/Snapmaker Dual ABS" ], "1682237920": [ - "Snapmaker/Snapmaker ABS", - "Snapmaker/Snapmaker ABS Benchy" + "Snapmaker/Snapmaker ABS" ], "1695556157": [ "Snapmaker/Snapmaker PLA Eco" @@ -2388,8 +2393,7 @@ "Snapmaker/Snapmaker PLA Metal" ], "2128577941": [ - "Snapmaker/Snapmaker Dual PET", - "Snapmaker/Snapmaker PET" + "Snapmaker/Snapmaker Dual PET" ], "21285779410": [ "Snapmaker/Snapmaker PET" @@ -2410,14 +2414,10 @@ "Creality/Hyper Marble" ], "2971656290": [ - "Snapmaker/Snapmaker Dual TPE", - "Snapmaker/Snapmaker Dual TPU", - "Snapmaker/Snapmaker Dual TPU High-Flow" + "Snapmaker/Snapmaker Dual TPU" ], "29716562900": [ - "Snapmaker/Snapmaker TPE", - "Snapmaker/Snapmaker TPU", - "Snapmaker/Snapmaker TPU High-Flow" + "Snapmaker/Snapmaker TPU" ], "297165629001": [ "Snapmaker/Snapmaker TPU 95A" @@ -2462,9 +2462,7 @@ "Snapmaker/Snapmaker J1 PLA Metal" ], "4092268632": [ - "Snapmaker/Snapmaker J1 TPE", - "Snapmaker/Snapmaker J1 TPU", - "Snapmaker/Snapmaker J1 TPU High-Flow" + "Snapmaker/Snapmaker J1 TPU" ], "4227461134": [ "Snapmaker/Snapmaker Breakaway Support For PLA", @@ -3280,9 +3278,7 @@ "FLSun/FLSun T1 ABS", "Flashforge/Flashforge Generic ABS", "Flashforge/Generic ABS", - "FlyingBear/FlyingBear ABS", "FlyingBear/FlyingBear Generic ABS", - "FlyingBear/Other ABS", "InfiMech/InfiMech Generic ABS", "Lulzbot/Lulzbot 2.85mm ABS", "OrcaArena/OrcaArena Generic ABS", @@ -3349,8 +3345,6 @@ "Custom/Generic PC", "FLSun/FLSun Generic PC", "FlyingBear/FlyingBear Generic PC", - "FlyingBear/FlyingBear PC", - "FlyingBear/Other PC", "InfiMech/InfiMech Generic PC", "OrcaArena/OrcaArena Generic PC", "Prusa/Prusa Generic PC", @@ -3462,9 +3456,7 @@ "Flashforge/Flashforge Generic PETG", "Flashforge/Generic PETG", "FlyingBear/FlyingBear Generic PETG", - "FlyingBear/FlyingBear PETG", "FlyingBear/FlyingBear PETG Basic", - "FlyingBear/Other PETG", "InfiMech/InfiMech Generic PETG", "Lulzbot/Lulzbot 2.85mm PETG", "MagicMaker/MM Generic PEEK", @@ -3779,11 +3771,6 @@ "Flashforge/Generic PLA", "Flashforge/Generic PLA High Speed", "FlyingBear/FlyingBear Generic PLA", - "FlyingBear/FlyingBear PLA", - "FlyingBear/FlyingBear PLA Basic", - "FlyingBear/FlyingBear PLA Hyper", - "FlyingBear/Other PLA", - "FlyingBear/Other PLA Hyper", "InfiMech/InfiMech Generic PLA", "Lulzbot/Lulzbot 2.85mm PLA", "OrcaArena/OrcaArena Generic PLA", @@ -3799,36 +3786,7 @@ "Ratrig/RatRig BigNozzle TPU", "Ratrig/RatRig Generic PLA", "SecKit/SecKit Generic PLA", - "Sovol/Generic ABS", - "Sovol/Generic PC", - "Sovol/Generic PETG", - "Sovol/Generic PLA", - "Sovol/Generic PLA Silk", - "Sovol/Generic TPU", - "Sovol/Polymaker PETG", - "Sovol/SUNLU PETG", - "Sovol/Sovol SV06 ACE ABS", - "Sovol/Sovol SV06 ACE PETG", - "Sovol/Sovol SV06 ACE PLA", - "Sovol/Sovol SV06 ACE TPU", - "Sovol/Sovol SV06 Plus ACE ABS", - "Sovol/Sovol SV06 Plus ACE PETG", - "Sovol/Sovol SV06 Plus ACE PLA", - "Sovol/Sovol SV06 Plus ACE TPU", "Sovol/Sovol SV07 PLA", - "Sovol/Sovol SV08 ABS", - "Sovol/Sovol SV08 PETG", - "Sovol/Sovol SV08 PLA", - "Sovol/Sovol SV08 TPU", - "Sovol/Sovol Zero ABS", - "Sovol/Sovol Zero PC", - "Sovol/Sovol Zero PETG", - "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic", - "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk", - "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Sovol/Sovol Zero TPU", "Tiertime/Tiertime Generic PLA", "Tiertime/Tiertime Generic SBS", "Volumic/Volumic PLA Ultra", @@ -3916,8 +3874,6 @@ "Creality/Creality Generic PA-CF", "FLSun/FLSun Generic PA-CF", "FlyingBear/FlyingBear Generic PA-CF", - "FlyingBear/FlyingBear PA-CF", - "FlyingBear/Other PA-CF", "InfiMech/InfiMech Generic PA-CF", "OrcaArena/OrcaArena Generic PA-CF", "Prusa/Prusament PA-CF", @@ -4428,9 +4384,7 @@ "FLSun/FLSun S1 TPU", "FLSun/FLSun T1 TPU", "FlyingBear/FlyingBear Generic TPU", - "FlyingBear/FlyingBear TPU", "FlyingBear/FlyingBear TPU Basic", - "FlyingBear/Other TPU", "InfiMech/InfiMech Generic TPU", "InfiMech/InfiMech TPU Basic", "OrcaArena/OrcaArena Generic TPU", @@ -4644,6 +4598,9 @@ "OF09vOcG": [ "Elegoo/Elegoo PLA Galaxy" ], + "OF0Ee2jQ": [ + "Snapmaker/Snapmaker Dual TPU High-Flow" + ], "OF0M6QAQ": [ "OrcaFilamentLibrary/Elegoo PLA Galaxy" ], @@ -4671,12 +4628,21 @@ "OF102WKM": [ "OrcaFilamentLibrary/Elegoo PETG PRO" ], + "OF17cONC": [ + "Snapmaker/PolyTerra Dual PLA" + ], "OF1Zypyy": [ "Qidi/QIDI PETG Tough" ], + "OF22AxCm": [ + "Sovol/Polymaker PETG" + ], "OF2UFmOo": [ "Qidi/Bambu PLA" ], + "OF2tvNYA": [ + "Sovol/Sovol Zero PLA Silk" + ], "OF38Hyk4": [ "Flashforge/Flashforge PETG Pro" ], @@ -4707,18 +4673,33 @@ "OF4gzzE4": [ "Qidi/QIDI PET-CF" ], + "OF4jILJA": [ + "FlyingBear/FlyingBear PC" + ], "OF4m9A5w": [ "Flashforge/Flashforge Generic HIPS" ], + "OF50NUZI": [ + "FlyingBear/FlyingBear PLA Basic" + ], "OF57IbZT": [ "Artillery/Artillery PLA Basic" ], + "OF5Bmdtg": [ + "Sovol/Sovol SV06 Plus ACE ABS" + ], + "OF5J2axC": [ + "Sovol/Sovol Zero PLA Basic" + ], "OF5T1Y9R": [ "Flashforge/Flashforge ABS Basic" ], "OF5UUaUM": [ "Qidi/Qidi Generic PLA High Speed" ], + "OF5Ugv12": [ + "FlyingBear/Other PLA" + ], "OF5kwfZu": [ "Flashforge/FusRock Generic NexPA-CF25" ], @@ -4740,6 +4721,9 @@ "OF6XIeUW": [ "Flashforge/Generic PLA-CF10" ], + "OF70DKqH": [ + "Snapmaker/Snapmaker TPE" + ], "OF79FFkO": [ "OrcaFilamentLibrary/Elegoo PC-FR" ], @@ -4779,6 +4763,9 @@ "OFAUDGEQ": [ "Qidi/QIDI PLA Rapido Matte" ], + "OFAbsMuV": [ + "Snapmaker/Snapmaker Dual TPE" + ], "OFAdAYYk": [ "Qidi/QIDI PPS-CF" ], @@ -4794,6 +4781,9 @@ "OFAtydxE": [ "Flashforge/FusRock S-Multi" ], + "OFBGxHgT": [ + "FlyingBear/FlyingBear PLA" + ], "OFBvxnjM": [ "Elegoo/Elegoo PETG-GF" ], @@ -4806,9 +4796,15 @@ "OFCJaXZS": [ "Flashforge/Flashforge PPS" ], + "OFCKK3u9": [ + "FlyingBear/FlyingBear PA-CF" + ], "OFCgpxn2": [ "Prusa/Prusa Generic ABS HF" ], + "OFChH9xu": [ + "Snapmaker/Snapmaker J1 TPE" + ], "OFD5e0sH": [ "OrcaFilamentLibrary/Elegoo Rapid PLA+" ], @@ -4836,12 +4832,18 @@ "OFFIL5pD": [ "Qidi/QIDI PA12-CF" ], + "OFFmJ8aR": [ + "FlyingBear/Other PLA Hyper" + ], "OFFrbsvQ": [ "InfiMech/Other TPU" ], "OFG8vHw8": [ "Qidi/Qidi Generic ASA" ], + "OFGFZhWu": [ + "Sovol/Sovol SV06 ACE PETG" + ], "OFGb4hPY": [ "Anycubic/Anycubic PEBA 95A" ], @@ -4863,6 +4865,9 @@ "OFIGHU7W": [ "OrcaFilamentLibrary/Elegoo PETG-CF" ], + "OFIl3ar9": [ + "Sovol/Sovol SV08 PETG" + ], "OFJIImD5": [ "OrcaFilamentLibrary/Elegoo PET-CF" ], @@ -4881,12 +4886,18 @@ "OFKDnrjL": [ "Artillery/Artillery PLA Matte" ], + "OFKH15Hd": [ + "Sovol/Sovol SV08 ABS" + ], "OFKWVi10": [ "Flashforge/Flashforge Generic PLA-CF10" ], "OFKZH00L": [ "Flashforge/FusRock Generic PET-CF" ], + "OFKhtNBx": [ + "Snapmaker/Snapmaker J1 TPU High-Flow" + ], "OFKjlAbC": [ "Qidi/QIDI UltraPA-CF25" ], @@ -4905,6 +4916,9 @@ "OFLeFaUO": [ "Flashforge/Flashforge Generic PVA" ], + "OFLiTjQK": [ + "FlyingBear/Other PA-CF" + ], "OFLriDvE": [ "Creality/Creality Generic PLA High Speed" ], @@ -4938,6 +4952,12 @@ "OFNbajj9": [ "Creality/Creality Generic ASA-CF" ], + "OFNz8rrn": [ + "FlyingBear/FlyingBear PLA Hyper" + ], + "OFO5R9KJ": [ + "Sovol/Sovol Zero TPU" + ], "OFOSzSuh": [ "Flashforge/Flashforge PA-CF" ], @@ -4953,6 +4973,9 @@ "OFOysPuE": [ "Qidi/QIDI TPU-GF" ], + "OFP4poIv": [ + "Sovol/Sovol Zero PLA Silk HS Nozzle" + ], "OFPJJxkF": [ "Flashforge/Flashforge PET-CF" ], @@ -5004,6 +5027,9 @@ "OFSdF3B1": [ "Flashforge/FusRock PAHT-CF" ], + "OFSoZBK2": [ + "Sovol/Sovol SV06 Plus ACE PLA" + ], "OFSpTWdv": [ "InfiMech/Other PA-CF" ], @@ -5013,6 +5039,9 @@ "OFTa6gPH": [ "Flashforge/Flashforge PLA Pro" ], + "OFTbdJyT": [ + "FlyingBear/Other PC" + ], "OFTbsWVg": [ "Artillery/Artillery TPU" ], @@ -5040,6 +5069,9 @@ "OFVBNoov": [ "InfiMech/InfiMech ABS" ], + "OFVJXE4n": [ + "FlyingBear/Other ABS" + ], "OFVLuVmD": [ "OrcaFilamentLibrary/Elegoo Rapid PETG" ], @@ -5082,6 +5114,9 @@ "OFXv4FUi": [ "Flashforge/Flashforge PLA Galaxy" ], + "OFY1U4uM": [ + "Sovol/Sovol SV08 TPU" + ], "OFYH00jV": [ "Qidi/QIDI ABS-GF" ], @@ -5094,6 +5129,9 @@ "OFYZs7dN": [ "Flashforge/Flashforge Generic HS PLA" ], + "OFYfZgxU": [ + "FlyingBear/FlyingBear TPU" + ], "OFZAkPHG": [ "Qidi/QIDI PPS-GF" ], @@ -5145,6 +5183,9 @@ "OFcqs5g7": [ "Elegoo/Elegoo PLA Translucent2" ], + "OFcsHCy4": [ + "Sovol/Sovol SV08 PLA" + ], "OFcy60o4": [ "Flashforge/Flashforge ASA Basic" ], @@ -5163,6 +5204,9 @@ "OFeFRwST": [ "Flashforge/Flashforge PVA" ], + "OFePPmng": [ + "Snapmaker/Snapmaker J1 ABS Benchy" + ], "OFeWMAGH": [ "Flashforge/Flashforge HS PLA Burnt Ti" ], @@ -5193,18 +5237,33 @@ "OFftQOek": [ "Flashforge/Flashforge PLA Matte" ], + "OFg4N6ZL": [ + "FlyingBear/FlyingBear PETG" + ], "OFgJX0Fc": [ "Flashforge/FlashForge PPS" ], "OFgK2Xvv": [ "Anycubic/Anycubic PLA" ], + "OFgMGSpF": [ + "Sovol/Sovol SV06 Plus ACE PETG" + ], + "OFgNzLVh": [ + "Sovol/Sovol Zero ABS" + ], "OFgSK1hL": [ "Anycubic/Anycubic PLA High Speed" ], + "OFglpvEE": [ + "Sovol/Sovol SV06 ACE TPU" + ], "OFgrGfPy": [ "Anycubic/Anycubic PLA+" ], + "OFgtZjeX": [ + "Snapmaker/Snapmaker ABS Benchy" + ], "OFh5GUhZ": [ "Elegoo/Elegoo PLA Wood" ], @@ -5220,6 +5279,9 @@ "OFiJYDPC": [ "Qidi/HATCHBOX PLA" ], + "OFic2uNr": [ + "Sovol/Sovol SV06 ACE PLA" + ], "OFicxmSa": [ "Prusa/Prusa Generic PLA HF" ], @@ -5232,6 +5294,9 @@ "OFjFPhUC": [ "Prusa/Prusament rPLA" ], + "OFjZw7k1": [ + "Snapmaker/PolyTerra J1 PLA" + ], "OFjdTQd6": [ "Anycubic/Anycubic PLA Silk" ], @@ -5244,9 +5309,15 @@ "OFjqPjjl": [ "Flashforge/Generic PET" ], + "OFjurQ3I": [ + "Sovol/Sovol Zero PETG" + ], "OFk388hR": [ "Elegoo/Generic PA6-CF" ], + "OFk6T5YH": [ + "Sovol/Sovol Zero PETG HS Nozzle" + ], "OFkaDtKx": [ "Flashforge/Flashforge PA66-CF" ], @@ -5265,6 +5336,9 @@ "OFlNKZLP": [ "Flashforge/Flashforge PLA Metal" ], + "OFlbn4FY": [ + "Snapmaker/Snapmaker PLA Matte" + ], "OFm1VZed": [ "Flashforge/Flashforge Generic PLA-CF" ], @@ -5292,6 +5366,9 @@ "OFnLnZQo": [ "Cubicon/Cubicon PC" ], + "OFnMW5jr": [ + "FlyingBear/FlyingBear ABS" + ], "OFnY9ovF": [ "Artillery/Artillery PA-CF" ], @@ -5373,6 +5450,9 @@ "OFsgANe3": [ "Flashforge/Flashforge PAHT-CF" ], + "OFsmPFwh": [ + "Sovol/Sovol SV06 Plus ACE TPU" + ], "OFt5bvKK": [ "Artillery/Artillery PETG Basic" ], @@ -5385,15 +5465,30 @@ "OFtJMczs": [ "Flashforge/Flashforge TPU-64D" ], + "OFtL05hE": [ + "Sovol/Sovol Zero PLA Basic HS Nozzle" + ], "OFtXBjvb": [ "Artillery/Artillery PLA Tough" ], + "OFtemzzw": [ + "Sovol/Sovol SV06 ACE ABS" + ], + "OFtet8ui": [ + "Snapmaker/Snapmaker TPU High-Flow" + ], "OFtmT4Nd": [ "Artillery/Artillery ASA" ], + "OFtwA91m": [ + "Sovol/Sovol Zero PC" + ], "OFuPC4S8": [ "Elegoo/Elegoo PLA-CF" ], + "OFuPN3iW": [ + "FlyingBear/Other PETG" + ], "OFuTFxVP": [ "Qidi/Overture ABS" ], @@ -5427,6 +5522,9 @@ "OFvN3117": [ "Qidi/QIDI PLA Matte Basic" ], + "OFvOhSjO": [ + "FlyingBear/Other TPU" + ], "OFvYfHPB": [ "Anycubic/Anycubic PLA Matte" ], @@ -5469,6 +5567,9 @@ "OFxjFYxE": [ "Elegoo/Elegoo PETG HF" ], + "OFxxa5yn": [ + "Snapmaker/Snapmaker Dual ABS Benchy" + ], "OFyD1Zo8": [ "InfiMech/Other PC" ], @@ -5559,7 +5660,8 @@ ], "OGFB99": [ "Custom/Generic ABS", - "OrcaFilamentLibrary/Generic ABS" + "OrcaFilamentLibrary/Generic ABS", + "Sovol/Generic ABS" ], "OGFC00": [ "OrcaFilamentLibrary/Bambu PC" @@ -5568,7 +5670,8 @@ "OrcaFilamentLibrary/Bambu PC FR" ], "OGFC99": [ - "OrcaFilamentLibrary/Generic PC" + "OrcaFilamentLibrary/Generic PC", + "Sovol/Generic PC" ], "OGFG00": [ "OrcaFilamentLibrary/Bambu PETG Basic" @@ -5589,7 +5692,8 @@ "OrcaFilamentLibrary/Generic PCTG" ], "OGFG99": [ - "OrcaFilamentLibrary/Generic PETG" + "OrcaFilamentLibrary/Generic PETG", + "Sovol/Generic PETG" ], "OGFGG300": [ "OrcaFilamentLibrary/GreenGate3D PETG" @@ -5602,8 +5706,6 @@ ], "OGFL01": [ "OrcaFilamentLibrary/PolyTerra PLA", - "Snapmaker/PolyTerra Dual PLA", - "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra PLA" ], "OGFL03": [ @@ -5641,14 +5743,16 @@ ], "OGFL96": [ "Flashforge/Generic PLA Silk", - "OrcaFilamentLibrary/Generic PLA Silk" + "OrcaFilamentLibrary/Generic PLA Silk", + "Sovol/Generic PLA Silk" ], "OGFL98": [ "OrcaFilamentLibrary/Generic PLA-CF" ], "OGFL99": [ "Flashforge/Generic PLA", - "OrcaFilamentLibrary/Generic PLA" + "OrcaFilamentLibrary/Generic PLA", + "Sovol/Generic PLA" ], "OGFLC99": [ "OrcaFilamentLibrary/Generic CoPE" @@ -5807,7 +5911,8 @@ "OrcaFilamentLibrary/SUNLU Wood PLA" ], "OGFSNL08": [ - "OrcaFilamentLibrary/SUNLU PETG" + "OrcaFilamentLibrary/SUNLU PETG", + "Sovol/SUNLU PETG" ], "OGFT01": [ "OrcaFilamentLibrary/Bambu PET-CF" @@ -5820,7 +5925,8 @@ "OrcaFilamentLibrary/Bambu TPU 95A" ], "OGFU99": [ - "OrcaFilamentLibrary/Generic TPU" + "OrcaFilamentLibrary/Generic TPU", + "Sovol/Generic TPU" ], "OVTABS08": [ "OrcaFilamentLibrary/Overture ABS Basic" @@ -8933,12 +9039,22 @@ "SeeMeCNC/SeeMeCNC PETG-CF", "SeeMeCNC/SeeMeCNC PLA", "SeeMeCNC/SeeMeCNC TPU", - "Sovol/Generic ABS @Sovol SV08 MAX", - "Sovol/Generic PC @Sovol SV08 MAX", - "Sovol/Generic PETG @Sovol SV08 MAX", - "Sovol/Generic PLA @Sovol SV08 MAX", + "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", + "Snapmaker/PolyTerra J1 PLA", + "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", + "Snapmaker/Snapmaker ABS Benchy @U1", + "Snapmaker/Snapmaker Dual ABS Benchy", + "Snapmaker/Snapmaker Dual TPE", + "Snapmaker/Snapmaker Dual TPU High-Flow", + "Snapmaker/Snapmaker J1 ABS Benchy", + "Snapmaker/Snapmaker J1 TPE", + "Snapmaker/Snapmaker J1 TPU High-Flow", + "Snapmaker/Snapmaker PET @Dual", + "Snapmaker/Snapmaker PLA Matte @U1", + "Snapmaker/Snapmaker TPE", + "Snapmaker/Snapmaker TPE @U1", + "Snapmaker/Snapmaker TPU High-Flow @U1", "Sovol/Generic PLA Silk @Sovol SV08 MAX", - "Sovol/Generic TPU @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", "Sovol/Sovol SV06 ACE ABS", From 55a3114ec93a748a99de27084fe6ef5da43d57a1 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:16:01 +0800 Subject: [PATCH 010/164] Long-tail vendors: family filament_ids (17 vendors, 41 collision groups) Phase 2 completion - Volumic, Ratrig, Chuanying, Afinia, Eryone, FLSun, Tiertime, Blocks, CONSTRUCT3D, Co Print, CoLiDo, DeltaMaker, Ginger Additive, OrcaArena, Peopoly, Wanhao France, iQ. All are P1 copy-paste or small structural fixes; owners keep their ids by Bambu-catalog/OFL/historic- introducer precedence, impostor families get fresh deterministic mints, zero effective-config change: - Volumic 10 mints (ABS/ASA/PP, PETG/PCTG/ESD, PLA/UNIVERSAL, PA/PPS lines); Ratrig 10 (BigNozzle/PunkFil lines off the Generic line's ids); Chuanying 8 (plus 3 redundant own-id lines removed so parents' minted ids flow to the 0.25-nozzle variants); FLSun 4 (S1/T1 High Speed + Silk); Peopoly 4 (Lancer lines off Generic PLA's GFL99); Afinia 3 (Value PLA/ABS+/Value ABS inside the frozen GFx##_## scheme); Co Print 3 (ABS/PETG/TPU off GFL99). - Tiertime: Generic SBS had copy-pasted Generic PLA's ids on both printer lines - one family mint on both variants collapses the split. Eryone: PP copy-pasted PETG-CF's EFL43 (same introducing commit) - PP minted. Blocks: ASA-CF copy-pasted PLA-CF's BSFI010 - ASA-CF minted. CONSTRUCT3D: High Flow PETG minted off GFG99. CoLiDo: both claimants of the invented GFA99 re-minted. DeltaMaker: Brand PLA minted off GFL99. OrcaArena: Generic PLA Silk minted; the Bambu-clone Arena PLA Silk keeps GFA05 (catalog precedence). iQ: Grauts HPP4GF25 minted off Fiberthree's IQM1. - Ginger Additive (P5): the shared fdm_filament_common template carried P510eff9; moved onto the two pellet families (Generic PETG keeps it as first claimant, Generic PLA minted), template key removed after verifying every inheritor still resolves an id. - Wanhao France (P4): YUMI PLA Bowden stops over-claiming the six direct-drive printers covered by YUMI PLA Direct Drive (trim only, no mints). Verified: config-equivalence gate zero unexpected diffs; extra check exit 0; --check exit 0; validator -l 2 exit 0; and with all 30 vendor migrations now applied, the extended validator's -f check is clean TREE-WIDE (0 ambiguity errors, down from 1256 baseline / 16448 with the library-aware extension); -r exit 0 for BBL and Qidi. --- .../Afinia/filament/Afinia ABS+@HS.json | 2 +- .../Afinia/filament/Afinia Value ABS@HS.json | 2 +- .../Afinia/filament/Afinia Value PLA@HS.json | 2 +- .../filament/Blocks Generic ASA-CF.json | 2 +- .../filament/C1 Generic High Flow PETG.json | 2 +- ...uanying ASA @Chuanying X1 0.25 Nozzle.json | 1 - .../filament/Chuanying Generic ASA.json | 2 +- .../filament/Chuanying Generic HIPS.json | 2 +- .../filament/Chuanying Generic HS PLA.json | 2 +- .../filament/Chuanying Generic PETG-CF10.json | 2 +- .../filament/Chuanying Generic PLA-CF10.json | 2 +- .../filament/Chuanying Generic PLA-Silk.json | 2 +- .../filament/Chuanying Generic PVA.json | 2 +- .../filament/Chuanying Generic TPU.json | 2 +- ...ying HS PLA @Chuanying X1 0.25 Nozzle.json | 1 - ...ng PLA-SILK @Chuanying X1 0.25 Nozzle.json | 1 - .../filament/CoPrint Generic ABS.json | 2 +- .../filament/CoPrint Generic PETG.json | 2 +- .../filament/CoPrint Generic TPU.json | 2 +- .../filament/CoLiDo PLA @CoLiDo SR1.json | 2 +- .../filament/CoLiDo PLA Silk @CoLiDo SR1.json | 2 +- .../filament/DeltaMaker Brand PLA.json | 2 +- .../profiles/Eryone/filament/Eryone PP.json | 2 +- .../filament/FLSun S1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun S1 PLA Silk.json | 2 +- .../filament/FLSun T1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun T1 PLA Silk.json | 2 +- .../filament/Ginger Generic PETG.json | 1 + .../filament/Ginger Generic PLA.json | 1 + .../filament/fdm_filament_common.json | 1 - .../OrcaArena Generic PLA Silk @base.json | 2 +- .../filament/Peopoly Lancer ABS-GF.json | 2 +- .../filament/Peopoly Lancer PET-CF.json | 2 +- .../filament/Peopoly Lancer PETG-C.json | 2 +- .../filament/Peopoly Lancer PLA-C.json | 2 +- .../Ratrig/filament/RatRig BigNozzle ABS.json | 2 +- .../Ratrig/filament/RatRig BigNozzle ASA.json | 2 +- .../filament/RatRig BigNozzle PCTG.json | 2 +- .../filament/RatRig BigNozzle PETG.json | 2 +- .../Ratrig/filament/RatRig BigNozzle PLA.json | 2 +- .../Ratrig/filament/RatRig BigNozzle TPU.json | 2 +- .../Ratrig/filament/RatRig Generic PCTG.json | 2 +- .../Ratrig/filament/RatRig PunkFil ABS.json | 2 +- .../filament/RatRig PunkFil PETG CF.json | 2 +- .../Ratrig/filament/RatRig PunkFil PETG.json | 2 +- .../filament/Tiertime Generic SBS.json | 2 +- .../filament/Tiertime Generic SBS@300HS.json | 2 +- .../filament/PA6 CF20 (Performance).json | 2 +- .../filament/PETG ESD (Performance).json | 2 +- .../filament/PPS Carbone (Performance).json | 2 +- .../Volumic ASA Ultra Performance.json | 2 +- .../Volumic/filament/Volumic ASA Ultra.json | 2 +- .../Volumic PCTG Ultra (Performance).json | 2 +- .../Volumic PP Ultra Performance.json | 2 +- .../Volumic/filament/Volumic PP Ultra.json | 2 +- .../Volumic UNIVERSAL Ultra Performance.json | 2 +- .../filament/Volumic UNIVERSAL Ultra.json | 2 +- .../filament/YUMI PLA Bowden.json | 6 - ...rauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json | 2 +- scripts/filament_id_snapshot.json | 236 +++++++++++++----- 60 files changed, 227 insertions(+), 125 deletions(-) diff --git a/resources/profiles/Afinia/filament/Afinia ABS+@HS.json b/resources/profiles/Afinia/filament/Afinia ABS+@HS.json index 79a5b294b9..d480c574c0 100644 --- a/resources/profiles/Afinia/filament/Afinia ABS+@HS.json +++ b/resources/profiles/Afinia/filament/Afinia ABS+@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00_01", + "filament_id": "OFYG2Gfy", "setting_id": "wAJTMxtCY7EoavRi", "name": "Afinia ABS+@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json b/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json index 79b0ea9db3..37daf620a9 100644 --- a/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json +++ b/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00_01", + "filament_id": "OFuYvNS3", "setting_id": "OxIiEYjbhEvSykaQ", "name": "Afinia Value ABS@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json b/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json index 20dceb0249..da0a1ecb8c 100644 --- a/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json +++ b/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00_01", + "filament_id": "OFvw0owy", "setting_id": "BASsUdyvElEVJ9AA", "name": "Afinia Value PLA@HS", "from": "system", diff --git a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json b/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json index d6d5a092ef..5373b92b4c 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json +++ b/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "FF6D7i492XTrb8AO", - "filament_id": "BSFI010", + "filament_id": "OFy7oQ1g", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json b/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json index 355637d63c..9e0a23abf9 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json +++ b/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "3IxBZSWFfFGmKAQ7", - "filament_id": "GFG99", + "filament_id": "OFAUX5fB", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json index 10415dcb72..e7f023b4a2 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json @@ -4,7 +4,6 @@ "inherits": "Chuanying Generic ASA", "from": "system", "setting_id": "px1EPCDgOG8eE81V", - "filament_id": "GFL99", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json b/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json index b95df151c5..d48f96d7cc 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "wBBQiy8JV2LrnIav", - "filament_id": "GFL99", + "filament_id": "OF7tgL9c", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json b/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json index 1087346c34..c919e8f921 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic ABS", "from": "system", "setting_id": "bBNozld07rP6mV3d", - "filament_id": "GFB99", + "filament_id": "OFzQQeCi", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json b/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json index f53cf22703..d12453cdb1 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "YZT1Uv73b8ArVoX3", - "filament_id": "GFL99", + "filament_id": "OFfiN1Lw", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json b/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json index c7b8e6008d..99304dfd88 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "S2vCGI7sqN8FwodT", - "filament_id": "GFG99", + "filament_id": "OF3YOOOs", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json index f001e5b391..58b3a1d750 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "EZA59VPwew1cpyUJ", - "filament_id": "GFL99", + "filament_id": "OFxVzzn4", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json index ca9a1398ed..861b4d9721 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "M9wzNVOPRQlayQH1", - "filament_id": "GFL99", + "filament_id": "OFlN56xW", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json b/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json index a68d62d485..d8650e8a97 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic PLA", "from": "system", "setting_id": "ePZFnkgBiyFuKvji", - "filament_id": "GFB99", + "filament_id": "OFQ5xAKf", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json b/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json index d9a05782e4..a743d646e4 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "HYciEf4160uMYGnH", - "filament_id": "GFG99", + "filament_id": "OFUqBrgf", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json index e4a7a6eba5..fb874cdb9f 100644 --- a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json @@ -4,7 +4,6 @@ "inherits": "Chuanying Generic HS PLA", "from": "system", "setting_id": "CAdli5S8JIFafvRG", - "filament_id": "GFL99", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" diff --git a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json index 3008059f68..4e3a0391dc 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json @@ -4,7 +4,6 @@ "inherits": "Chuanying Generic PLA-Silk", "from": "system", "setting_id": "kph5feBjhPi0oo0G", - "filament_id": "GFL99", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json b/resources/profiles/Co Print/filament/CoPrint Generic ABS.json index 930950d68e..6ec666e6f0 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "xW2rHuxT9o7MG8qB", - "filament_id": "GFL99", + "filament_id": "OFNvrbnf", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json b/resources/profiles/Co Print/filament/CoPrint Generic PETG.json index f4540a98b2..b2661a6c91 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "k4m484S1samBGEVb", - "filament_id": "GFL99", + "filament_id": "OFDramZ2", "instantiation": "true", "fan_max_speed": [ "90" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json b/resources/profiles/Co Print/filament/CoPrint Generic TPU.json index b4e28ee73b..506acb77ff 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "2mWqeih012I5D2CK", - "filament_id": "GFL99", + "filament_id": "OF2Psxdc", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json index 40e871c663..013aa09259 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Gj0o6Rmn4qWXDLov", - "filament_id": "GFA99", + "filament_id": "OFfoA8kJ", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json index b9a15b3e1b..677ec930e3 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "mLgBNw0OzvJSS8IG", - "filament_id": "GFA99", + "filament_id": "OFxlch4V", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json index 2d905807fb..e32baac8f9 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "bvZOHe5ejWqBALPQ", - "filament_id": "GFL99", + "filament_id": "OFxodd2u", "instantiation": "true", "filament_flow_ratio": [ "0.987" diff --git a/resources/profiles/Eryone/filament/Eryone PP.json b/resources/profiles/Eryone/filament/Eryone PP.json index 835f8fc5a0..ffca123024 100644 --- a/resources/profiles/Eryone/filament/Eryone PP.json +++ b/resources/profiles/Eryone/filament/Eryone PP.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "sZF6qOPqqu88Yu5e", - "filament_id": "EFL43", + "filament_id": "OFf0JIqs", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json index 4cb721859e..91e22b993c 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "v2clpNXXo8m6dV33", - "filament_id": "GFL99", + "filament_id": "OFR8dTVW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json index af4d4b9379..9536db0750 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "164Bn4YchxJAaLsa", - "filament_id": "GFL99", + "filament_id": "OFFenwbU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json index 95b2ba75a5..a1316569c2 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "E4lpSLLlAxUW04ik", - "filament_id": "GFL99", + "filament_id": "OFyt23xJ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json index 04c82ce071..b76f537a45 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "gElUb4GnCoEfVlEd", - "filament_id": "GFL99", + "filament_id": "OFt1YdX8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json index 45c67d8876..3437d6f571 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json +++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json @@ -5,6 +5,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "ue95N2e65rdp5K6c", + "filament_id": "P510eff9", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json index 8038a710c0..4575f32060 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json +++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json @@ -5,6 +5,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "Z1scjKDBFoDaTa2C", + "filament_id": "OFziUL2X", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_common.json b/resources/profiles/Ginger Additive/filament/fdm_filament_common.json index 8c906528a0..71e447d01e 100644 --- a/resources/profiles/Ginger Additive/filament/fdm_filament_common.json +++ b/resources/profiles/Ginger Additive/filament/fdm_filament_common.json @@ -2,7 +2,6 @@ "type": "filament", "name": "fdm_filament_common", "from": "system", - "filament_id": "P510eff9", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json index 7d6f5e3020..88fca4407a 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA05", + "filament_id": "OFqSTJ3I", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json b/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json index c00354396c..b6da7244c7 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ufcIVt3x0FqV69h4", - "filament_id": "GFL99", + "filament_id": "OFqkcvDI", "instantiation": "true", "filament_flow_ratio": [ "0.91" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json index 3ec4ef2909..1877ed8e3d 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "xSaZKOpjStJuKiM7", - "filament_id": "GFL99", + "filament_id": "OFlzQ0IS", "instantiation": "true", "filament_flow_ratio": [ "0.90" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json index ccdc0fc0ba..34e8f586a4 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_petg", "from": "system", "setting_id": "aUX6OHQrKPghlPBb", - "filament_id": "GFL99", + "filament_id": "OFV1szQh", "instantiation": "true", "fan_cooling_layer_time": [ "20" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json index 7f417378eb..d9d1acd1d5 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "EFHW4uKJCsBCjAEU", - "filament_id": "GFL99", + "filament_id": "OF9tjFbj", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json index 8f601dba61..cd5e2573fa 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "oE39mwr3PCpeBxZN", - "filament_id": "GFB99", + "filament_id": "OFtcTs1o", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json index a99d58ae34..55855d2045 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "GGkbwdd79jAXnwuf", - "filament_id": "GFB98", + "filament_id": "OFSkBwxf", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json index 38db026fe4..ee05b628c1 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uCKZhFAPvEa2wKnA", - "filament_id": "GFC99", + "filament_id": "OFS1ekCg", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json index e1cf036ece..ba7316afc7 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "bf3YMNVRSE1i1E8N", - "filament_id": "GFG99", + "filament_id": "OFjj9Yiz", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json index d734dce4b7..fd155fac44 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "dyG3zLuhX2qe8XJP", - "filament_id": "GFL99", + "filament_id": "OF7M9vy4", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json index 11dae068e0..1dc5ca8791 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "wLJ3X05Jnz1EqeOI", - "filament_id": "GFL99", + "filament_id": "OFYehFGr", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json index 89031567bf..754c1e5667 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SG4Gt87iS1ql3s8S", - "filament_id": "GFC99", + "filament_id": "OFzb2BLs", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json b/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json index 5fa20b8246..3e5428690b 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "AzjpmeEXD6enWOG6", - "filament_id": "GFB99", + "filament_id": "OFL7U2MV", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json index 73a5920ee8..8765e295fc 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "o2dP6EwooarikQ8R", - "filament_id": "GFB99", + "filament_id": "OFXQX0tr", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json index 170b1e0c99..14bc8db764 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "e1QXBJqpkhHxXor1", - "filament_id": "GFB99", + "filament_id": "OFnRTkEq", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json b/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json index 353838867a..359885ab4a 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_sbs", "from": "system", "setting_id": "tHfCQJdD7qiIF4uT", - "filament_id": "GFL99", + "filament_id": "OFlxnxDx", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json index 429f1bd78a..9fed905ccd 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_sbs", "from": "system", "setting_id": "neqjohDEPRiOa6ut", - "filament_id": "GFL99_01", + "filament_id": "OFlxnxDx", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json b/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json index 362b3b3720..f780cd48c2 100644 --- a/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json +++ b/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFN99", + "filament_id": "OFHDaMut", "setting_id": "wuZ0EvlbcJ8GxajY", "name": "PA6 CF20 (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/PETG ESD (Performance).json b/resources/profiles/Volumic/filament/PETG ESD (Performance).json index ba8e94a875..c50871b2a5 100644 --- a/resources/profiles/Volumic/filament/PETG ESD (Performance).json +++ b/resources/profiles/Volumic/filament/PETG ESD (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFO3IOWM", "setting_id": "May8rNEMOOs1qtae", "name": "PETG ESD (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/PPS Carbone (Performance).json b/resources/profiles/Volumic/filament/PPS Carbone (Performance).json index 996494cc43..19d79c2174 100644 --- a/resources/profiles/Volumic/filament/PPS Carbone (Performance).json +++ b/resources/profiles/Volumic/filament/PPS Carbone (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFN99", + "filament_id": "OFBRSZom", "setting_id": "HE0yILdkhbiXbH1j", "name": "PPS Carbone (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json index ea3f078ce4..212d36d0d7 100644 --- a/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFLhOFQk", "setting_id": "uE5jxeOBISvO5o7L", "name": "Volumic ASA Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json index 62de93ee24..638b2ce47c 100644 --- a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OF7f0eUZ", "setting_id": "LOAp2zgQWqg1lQQ4", "name": "Volumic ASA Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json b/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json index d28d3732ed..d45447dbe7 100644 --- a/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json +++ b/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFxfCy9m", "setting_id": "NdegYSDVrQ4Rawtp", "name": "Volumic PCTG Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json index 91bfcf197d..401033bc96 100644 --- a/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFPGelMX", "setting_id": "nsiOJ8ExySR1RksQ", "name": "Volumic PP Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PP Ultra.json b/resources/profiles/Volumic/filament/Volumic PP Ultra.json index 895c9ed467..a79589876f 100644 --- a/resources/profiles/Volumic/filament/Volumic PP Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PP Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFAGqTQG", "setting_id": "UA91pv54dzbBRkFe", "name": "Volumic PP Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json index e20e88ed67..025e1ada57 100644 --- a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFPeGtB1", "setting_id": "rxVkBvMZYgHOoFW6", "name": "Volumic UNIVERSAL Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json index 568b3a5beb..b061d498c2 100644 --- a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFIzguhB", "setting_id": "6iOFERN4x6xBbtuT", "name": "Volumic UNIVERSAL Ultra", "from": "system", diff --git a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json index d6a5d6dcc6..f7bac7a60c 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json +++ b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json @@ -58,12 +58,6 @@ "0.4" ], "compatible_printers": [ - "D12 230 PRO M2 DIRECT 0.4 nozzle", - "D12 230 PRO SMARTPAD DIRECT 0.4 nozzle", - "D12 300 PRO M2 DIRECT 0.4 nozzle", - "D12 300 PRO SMARTPAD DIRECT 0.4 nozzle", - "D12 500 PRO M2 DIRECT 0.4 nozzle", - "D12 500 PRO SMARTPAD DIRECT 0.4 nozzle", "D12 230 PRO M2 MONO DUAL 0.4 nozzle", "D12 230 PRO M2 MONO DUAL 0.4 nozzle PoopTool", "D12 300 PRO M2 MONO DUAL PoopTool 0.4 nozzle", diff --git a/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json index b692152c71..986de30106 100644 --- a/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "5M829nxsQdq2Sde5", - "filament_id": "IQM1", + "filament_id": "OFL4BLAC", "instantiation": "true", "compatible_prints": [ "0.20mm Standard @iQ TiQ2 P1 - HPP4GF25 Grauts (0.4 Nozzle)" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 7272d33806..ea53ee25cc 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -314,6 +314,7 @@ "CONSTRUCT3D/C1 Generic High Flow PETG", "CONSTRUCT3D/C1 Generic PETG", "CONSTRUCT3D/C1 Generic PLA", + "Chuanying/Chuanying Generic HIPS", "Chuanying/Chuanying Generic HS PLA", "Chuanying/Chuanying Generic PETG", "Chuanying/Chuanying Generic PETG-CF10", @@ -321,7 +322,10 @@ "Chuanying/Chuanying Generic PLA-CF10", "Chuanying/Chuanying Generic PLA-Silk", "Chuanying/Chuanying Generic PVA", + "Co Print/CoPrint Generic ABS", + "Co Print/CoPrint Generic PETG", "Co Print/CoPrint Generic PLA", + "Co Print/CoPrint Generic TPU", "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", @@ -704,6 +708,10 @@ "FLSun/FLSun Generic PETG", "FLSun/FLSun Generic PLA", "FLSun/FLSun Generic PLA-CF", + "FLSun/FLSun S1 PLA High Speed", + "FLSun/FLSun S1 PLA Silk", + "FLSun/FLSun T1 PLA High Speed", + "FLSun/FLSun T1 PLA Silk", "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", "Flashforge/FlashForge PC @FF G4 0.6 nozzle", "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", @@ -2645,7 +2653,6 @@ "Blocks/Blocks Generic PVA" ], "BSFI010": [ - "Blocks/Blocks Generic ASA-CF", "Blocks/Blocks Generic PLA-CF" ], "BTUB00": [ @@ -2786,8 +2793,7 @@ "Eryone/Eryone PLA-CF" ], "EFL43": [ - "Eryone/Eryone PETG-CF", - "Eryone/Eryone PP" + "Eryone/Eryone PETG-CF" ], "EFL71": [ "Eryone/Eryone PA" @@ -3095,7 +3101,6 @@ ], "GFA00_01": [ "Afinia/Afinia PLA", - "Afinia/Afinia Value PLA", "Tiertime/Tiertime PLA" ], "GFA01": [ @@ -3114,7 +3119,6 @@ "GFA05": [ "BBL/Bambu PLA Silk", "OrcaArena/Arena PLA Silk", - "OrcaArena/OrcaArena Generic PLA Silk", "Qidi/Qidi Generic PLA Silk", "WonderMaker/WonderMaker PLA Silk" ], @@ -3170,8 +3174,6 @@ "GFA99": [ "Anycubic/Anycubic ASA", "CoLiDo/CoLiDo Generic PLA", - "CoLiDo/CoLiDo PLA", - "CoLiDo/CoLiDo PLA Silk", "CoLiDo/CoLiDo PLA+" ], "GFASA": [ @@ -3188,8 +3190,6 @@ ], "GFB00_01": [ "Afinia/Afinia ABS", - "Afinia/Afinia ABS+", - "Afinia/Afinia Value ABS", "Tiertime/Tiertime ABS" ], "GFB01": [ @@ -3229,7 +3229,6 @@ "OrcaArena/OrcaArena Generic ASA", "Prusa/Prusa Generic ASA", "Prusa/Prusament ASA", - "Ratrig/RatRig BigNozzle ASA", "Ratrig/RatRig Generic ASA", "SecKit/SecKit Generic ASA", "Tiertime/Tiertime Generic ASA", @@ -3266,8 +3265,6 @@ "BBL/Generic ABS", "Chuanying/Chuanying ABS", "Chuanying/Chuanying Generic ABS", - "Chuanying/Chuanying Generic HIPS", - "Chuanying/Chuanying Generic PVA", "CoLiDo/CoLiDo ABS", "CoLiDo/CoLiDo Generic ABS", "Comgrow/Comgrow Generic ABS", @@ -3284,19 +3281,11 @@ "OrcaArena/OrcaArena Generic ABS", "Prusa/Prusa Generic ABS", "Qidi/Qidi Generic ABS", - "Ratrig/RatRig BigNozzle ABS", "Ratrig/RatRig Generic ABS", - "Ratrig/RatRig PunkFil ABS", - "Ratrig/RatRig PunkFil PETG", - "Ratrig/RatRig PunkFil PETG CF", "SecKit/SecKit Generic ABS", "Tiertime/Tiertime Generic ABS", "Volumic/Volumic ABS Ultra", "Volumic/Volumic ABS Ultra (Performance)", - "Volumic/Volumic ASA Ultra", - "Volumic/Volumic ASA Ultra (Performance)", - "Volumic/Volumic PP Ultra", - "Volumic/Volumic PP Ultra (Performance)", "Vzbot/Vzbot Generic ABS" ], "GFB99_01": [ @@ -3350,9 +3339,7 @@ "Prusa/Prusa Generic PC", "Prusa/Prusament PC Blend", "Qidi/Qidi Generic PC", - "Ratrig/RatRig BigNozzle PCTG", "Ratrig/RatRig Generic PC", - "Ratrig/RatRig Generic PCTG", "SecKit/SecKit Generic PC", "Tiertime/Tiertime Generic PC", "Volumic/Volumic PC", @@ -3438,11 +3425,8 @@ "Anycubic/Anycubic Generic PETG", "Artillery/Artillery Generic PETG", "BBL/Generic PETG", - "CONSTRUCT3D/C1 Generic High Flow PETG", "CONSTRUCT3D/C1 Generic PETG", "Chuanying/Chuanying Generic PETG", - "Chuanying/Chuanying Generic PETG-CF10", - "Chuanying/Chuanying Generic TPU", "Chuanying/Chuanying PETG", "CoLiDo/CoLiDo Generic PETG", "CoLiDo/CoLiDo PETG", @@ -3462,12 +3446,9 @@ "MagicMaker/MM Generic PEEK", "OrcaArena/OrcaArena Generic PETG", "Qidi/Qidi Generic PETG", - "Ratrig/RatRig BigNozzle PETG", "Ratrig/RatRig Generic PETG", "SecKit/SecKit Generic PETG", "Tiertime/Tiertime Generic PETG", - "Volumic/PETG ESD (Performance)", - "Volumic/Volumic PCTG Ultra (Performance)", "Volumic/Volumic PETG Ultra", "Volumic/Volumic PETG Ultra (Performance)", "Vzbot/Vzbot Generic PETG", @@ -3741,33 +3722,18 @@ "Artillery/Artillery Generic PLA", "BBL/Generic PLA", "CONSTRUCT3D/C1 Generic PLA", - "Chuanying/Chuanying ASA", - "Chuanying/Chuanying Generic ASA", - "Chuanying/Chuanying Generic HS PLA", "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying Generic PLA-CF10", - "Chuanying/Chuanying Generic PLA-Silk", - "Chuanying/Chuanying HS PLA", "Chuanying/Chuanying PLA", - "Chuanying/Chuanying PLA-SILK", - "Co Print/CoPrint Generic ABS", - "Co Print/CoPrint Generic PETG", "Co Print/CoPrint Generic PLA", - "Co Print/CoPrint Generic TPU", "Comgrow/Comgrow Generic PLA", "Comgrow/Comgrow T300 PLA", "Creality/Creality Generic PLA", "Custom/Generic PLA", - "DeltaMaker/DeltaMaker Brand PLA", "DeltaMaker/DeltaMaker Generic PLA", "Dremel/Dremel Generic PLA", "FLSun/FLSun Generic PLA", "FLSun/FLSun S1 PLA Generic", - "FLSun/FLSun S1 PLA High Speed", - "FLSun/FLSun S1 PLA Silk", "FLSun/FLSun T1 PLA Generic", - "FLSun/FLSun T1 PLA High Speed", - "FLSun/FLSun T1 PLA Silk", "Flashforge/Generic PLA", "Flashforge/Generic PLA High Speed", "FlyingBear/FlyingBear Generic PLA", @@ -3775,30 +3741,20 @@ "Lulzbot/Lulzbot 2.85mm PLA", "OrcaArena/OrcaArena Generic PLA", "Peopoly/Peopoly Generic PLA", - "Peopoly/Peopoly Lancer ABS-GF", - "Peopoly/Peopoly Lancer PET-CF", - "Peopoly/Peopoly Lancer PETG-C", - "Peopoly/Peopoly Lancer PLA-C", "Phrozen/Phrozen PLA", "Prusa/Prusa Generic PLA", "Qidi/Qidi Generic PLA", - "Ratrig/RatRig BigNozzle PLA", - "Ratrig/RatRig BigNozzle TPU", "Ratrig/RatRig Generic PLA", "SecKit/SecKit Generic PLA", "Sovol/Sovol SV07 PLA", "Tiertime/Tiertime Generic PLA", - "Tiertime/Tiertime Generic SBS", "Volumic/Volumic PLA Ultra", "Volumic/Volumic PLA Ultra (Performance)", - "Volumic/Volumic UNIVERSAL Ultra", - "Volumic/Volumic UNIVERSAL Ultra (Performance)", "Vzbot/Vzbot Generic PLA", "re3D/re3D PLA" ], "GFL99_01": [ - "Tiertime/Tiertime Generic PLA", - "Tiertime/Tiertime Generic SBS" + "Tiertime/Tiertime Generic PLA" ], "GFL99_2": [ "Prusa/Prusa Generic PLA" @@ -3911,8 +3867,6 @@ "Ratrig/RatRig Generic PA", "SecKit/SecKit Generic PA", "Tiertime/Tiertime Generic PA", - "Volumic/PA6 CF20 (Performance)", - "Volumic/PPS Carbone (Performance)", "Volumic/Volumic NYLON Ultra", "Volumic/Volumic NYLON Ultra (Performance)", "Vzbot/Vzbot Generic PA" @@ -4526,8 +4480,7 @@ "RH3D/Generic TPU" ], "IQM1": [ - "iQ/Fiberthree PACF Pro P1", - "iQ/Grauts HPP4GF25 P1" + "iQ/Fiberthree PACF Pro P1" ], "IQM1011": [ "iQ/VXL90 TiQ2 P2" @@ -4637,6 +4590,9 @@ "OF22AxCm": [ "Sovol/Polymaker PETG" ], + "OF2Psxdc": [ + "Co Print/CoPrint Generic TPU" + ], "OF2UFmOo": [ "Qidi/Bambu PLA" ], @@ -4652,6 +4608,9 @@ "OF3XeEuV": [ "Qidi/QIDI PET-GF" ], + "OF3YOOOs": [ + "Chuanying/Chuanying Generic PETG-CF10" + ], "OF3arl18": [ "Elegoo/Elegoo Rapid PETG" ], @@ -4727,9 +4686,19 @@ "OF79FFkO": [ "OrcaFilamentLibrary/Elegoo PC-FR" ], + "OF7M9vy4": [ + "Ratrig/RatRig BigNozzle PLA" + ], "OF7cv1Ub": [ "Qidi/QIDI PLA-CF" ], + "OF7f0eUZ": [ + "Volumic/Volumic ASA Ultra" + ], + "OF7tgL9c": [ + "Chuanying/Chuanying ASA", + "Chuanying/Chuanying Generic ASA" + ], "OF8HQmJD": [ "OrcaFilamentLibrary/Elegoo PLA Sparkle" ], @@ -4745,12 +4714,18 @@ "OF9sr3Vn": [ "Flashforge/Flashforge PLA Sparkle" ], + "OF9tjFbj": [ + "Peopoly/Peopoly Lancer PLA-C" + ], "OF9vnvM8": [ "Artillery/Artillery PETG-CF" ], "OFAEqlWa": [ "Flashforge/Flashforge Generic PLA-SILK" ], + "OFAGqTQG": [ + "Volumic/Volumic PP Ultra" + ], "OFAGrVjP": [ "Flashforge/Flashforge PLA Silk" ], @@ -4763,6 +4738,9 @@ "OFAUDGEQ": [ "Qidi/QIDI PLA Rapido Matte" ], + "OFAUX5fB": [ + "CONSTRUCT3D/C1 Generic High Flow PETG" + ], "OFAbsMuV": [ "Snapmaker/Snapmaker Dual TPE" ], @@ -4784,6 +4762,9 @@ "OFBGxHgT": [ "FlyingBear/FlyingBear PLA" ], + "OFBRSZom": [ + "Volumic/PPS Carbone (Performance)" + ], "OFBvxnjM": [ "Elegoo/Elegoo PETG-GF" ], @@ -4820,6 +4801,9 @@ "OFDkABjZ": [ "Flashforge/Generic TPU-90A" ], + "OFDramZ2": [ + "Co Print/CoPrint Generic PETG" + ], "OFE22Uba": [ "Flashforge/Flashforge TPU-90A" ], @@ -4832,6 +4816,9 @@ "OFFIL5pD": [ "Qidi/QIDI PA12-CF" ], + "OFFenwbU": [ + "FLSun/FLSun S1 PLA Silk" + ], "OFFmJ8aR": [ "FlyingBear/Other PLA Hyper" ], @@ -4853,6 +4840,9 @@ "OFHBTqyD": [ "Flashforge/Flashforge PLA Basic" ], + "OFHDaMut": [ + "Volumic/PA6 CF20 (Performance)" + ], "OFHL32M0": [ "Anycubic/Anycubic TPU" ], @@ -4868,6 +4858,9 @@ "OFIl3ar9": [ "Sovol/Sovol SV08 PETG" ], + "OFIzguhB": [ + "Volumic/Volumic UNIVERSAL Ultra" + ], "OFJIImD5": [ "OrcaFilamentLibrary/Elegoo PET-CF" ], @@ -4904,9 +4897,15 @@ "OFKzh9lx": [ "InfiMech/InfiMech PLA" ], + "OFL4BLAC": [ + "iQ/Grauts HPP4GF25 P1" + ], "OFL4KniM": [ "Elegoo/Elegoo Rapid TPU 95A" ], + "OFL7U2MV": [ + "Ratrig/RatRig PunkFil ABS" + ], "OFL7vEML": [ "Flashforge/FlashForge PC" ], @@ -4916,6 +4915,9 @@ "OFLeFaUO": [ "Flashforge/Flashforge Generic PVA" ], + "OFLhOFQk": [ + "Volumic/Volumic ASA Ultra (Performance)" + ], "OFLiTjQK": [ "FlyingBear/Other PA-CF" ], @@ -4952,9 +4954,15 @@ "OFNbajj9": [ "Creality/Creality Generic ASA-CF" ], + "OFNvrbnf": [ + "Co Print/CoPrint Generic ABS" + ], "OFNz8rrn": [ "FlyingBear/FlyingBear PLA Hyper" ], + "OFO3IOWM": [ + "Volumic/PETG ESD (Performance)" + ], "OFO5R9KJ": [ "Sovol/Sovol Zero TPU" ], @@ -4976,18 +4984,27 @@ "OFP4poIv": [ "Sovol/Sovol Zero PLA Silk HS Nozzle" ], + "OFPGelMX": [ + "Volumic/Volumic PP Ultra (Performance)" + ], "OFPJJxkF": [ "Flashforge/Flashforge PET-CF" ], "OFPJrlC3": [ "Flashforge/Flashforge PLA-CF" ], + "OFPeGtB1": [ + "Volumic/Volumic UNIVERSAL Ultra (Performance)" + ], "OFPokkKe": [ "Qidi/QIDI PETG-CF" ], "OFPwi9X0": [ "Qidi/HATCHBOX ABS" ], + "OFQ5xAKf": [ + "Chuanying/Chuanying Generic PVA" + ], "OFQ9dI8j": [ "Prusa/Prusa Generic PC HF" ], @@ -5003,6 +5020,9 @@ "OFQkWxJy": [ "OrcaFilamentLibrary/Elegoo PLA Matte" ], + "OFR8dTVW": [ + "FLSun/FLSun S1 PLA High Speed" + ], "OFRNU58t": [ "Flashforge/Flashforge TPU 95A" ], @@ -5015,6 +5035,9 @@ "OFRgDMDJ": [ "Flashforge/Flashforge PETG Transparent" ], + "OFS1ekCg": [ + "Ratrig/RatRig BigNozzle PCTG" + ], "OFS3HrR1": [ "InfiMech/Other PLA" ], @@ -5027,6 +5050,9 @@ "OFSdF3B1": [ "Flashforge/FusRock PAHT-CF" ], + "OFSkBwxf": [ + "Ratrig/RatRig BigNozzle ASA" + ], "OFSoZBK2": [ "Sovol/Sovol SV06 Plus ACE PLA" ], @@ -5063,6 +5089,12 @@ "OFUkpobY": [ "Qidi/QIDI PAHT-CF" ], + "OFUqBrgf": [ + "Chuanying/Chuanying Generic TPU" + ], + "OFV1szQh": [ + "Peopoly/Peopoly Lancer PETG-C" + ], "OFV4hD1o": [ "Qidi/QIDI PLA Rapido Metal" ], @@ -5099,6 +5131,9 @@ "OFXNO5Of": [ "Qidi/QIDI PLA Rapido 0.2 nozzle" ], + "OFXQX0tr": [ + "Ratrig/RatRig PunkFil PETG CF" + ], "OFXcfTEb": [ "Qidi/Tinmorry PETG-ECO" ], @@ -5117,6 +5152,9 @@ "OFY1U4uM": [ "Sovol/Sovol SV08 TPU" ], + "OFYG2Gfy": [ + "Afinia/Afinia ABS+" + ], "OFYH00jV": [ "Qidi/QIDI ABS-GF" ], @@ -5129,6 +5167,9 @@ "OFYZs7dN": [ "Flashforge/Flashforge Generic HS PLA" ], + "OFYehFGr": [ + "Ratrig/RatRig BigNozzle TPU" + ], "OFYfZgxU": [ "FlyingBear/FlyingBear TPU" ], @@ -5219,6 +5260,9 @@ "OFeybQvK": [ "Qidi/QIDI ABS Rapido 0.2 nozzle" ], + "OFf0JIqs": [ + "Eryone/Eryone PP" + ], "OFf2b9wu": [ "Anycubic/Anycubic ABS" ], @@ -5231,9 +5275,16 @@ "OFfdxQok": [ "Qidi/Generic PLA+" ], + "OFfiN1Lw": [ + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying HS PLA" + ], "OFfkPhrJ": [ "Creality/Creality HF Generic Speed PLA" ], + "OFfoA8kJ": [ + "CoLiDo/CoLiDo PLA" + ], "OFftQOek": [ "Flashforge/Flashforge PLA Matte" ], @@ -5303,6 +5354,9 @@ "OFjepy6j": [ "Flashforge/FusRock Generic S-PAHT" ], + "OFjj9Yiz": [ + "Ratrig/RatRig BigNozzle PETG" + ], "OFjohFkg": [ "Qidi/QIDI PETG Translucent" ], @@ -5333,12 +5387,22 @@ "OFkoT6jl": [ "Prusa/Prusament PLA" ], + "OFlN56xW": [ + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying PLA-SILK" + ], "OFlNKZLP": [ "Flashforge/Flashforge PLA Metal" ], "OFlbn4FY": [ "Snapmaker/Snapmaker PLA Matte" ], + "OFlxnxDx": [ + "Tiertime/Tiertime Generic SBS" + ], + "OFlzQ0IS": [ + "Peopoly/Peopoly Lancer PET-CF" + ], "OFm1VZed": [ "Flashforge/Flashforge Generic PLA-CF" ], @@ -5369,6 +5433,9 @@ "OFnMW5jr": [ "FlyingBear/FlyingBear ABS" ], + "OFnRTkEq": [ + "Ratrig/RatRig PunkFil PETG" + ], "OFnY9ovF": [ "Artillery/Artillery PA-CF" ], @@ -5417,9 +5484,15 @@ "OFqRWRU6": [ "Flashforge/Flashforge ABS-GF" ], + "OFqSTJ3I": [ + "OrcaArena/OrcaArena Generic PLA Silk" + ], "OFqh1Ngp": [ "OrcaFilamentLibrary/Elegoo PLA-CF" ], + "OFqkcvDI": [ + "Peopoly/Peopoly Lancer ABS-GF" + ], "OFqyIUDi": [ "Qidi/Qidi PLA-CF" ], @@ -5453,6 +5526,9 @@ "OFsmPFwh": [ "Sovol/Sovol SV06 Plus ACE TPU" ], + "OFt1YdX8": [ + "FLSun/FLSun T1 PLA Silk" + ], "OFt5bvKK": [ "Artillery/Artillery PETG Basic" ], @@ -5471,6 +5547,9 @@ "OFtXBjvb": [ "Artillery/Artillery PLA Tough" ], + "OFtcTs1o": [ + "Ratrig/RatRig BigNozzle ABS" + ], "OFtemzzw": [ "Sovol/Sovol SV06 ACE ABS" ], @@ -5495,6 +5574,9 @@ "OFuXkYly": [ "Elegoo/Elegoo PLA Glow" ], + "OFuYvNS3": [ + "Afinia/Afinia Value ABS" + ], "OFuidAEg": [ "Qidi/Bambu ABS" ], @@ -5537,6 +5619,9 @@ "OFvsS7Fb": [ "Flashforge/Generic TPU-64D" ], + "OFvw0owy": [ + "Afinia/Afinia Value PLA" + ], "OFvxvkAd": [ "Artillery/Artillery PLA-CF" ], @@ -5564,12 +5649,27 @@ "OFxLeRyT": [ "Prusa/Prusa Generic PVA HF" ], + "OFxVzzn4": [ + "Chuanying/Chuanying Generic PLA-CF10" + ], + "OFxfCy9m": [ + "Volumic/Volumic PCTG Ultra (Performance)" + ], "OFxjFYxE": [ "Elegoo/Elegoo PETG HF" ], + "OFxlch4V": [ + "CoLiDo/CoLiDo PLA Silk" + ], + "OFxodd2u": [ + "DeltaMaker/DeltaMaker Brand PLA" + ], "OFxxa5yn": [ "Snapmaker/Snapmaker Dual ABS Benchy" ], + "OFy7oQ1g": [ + "Blocks/Blocks Generic ASA-CF" + ], "OFyD1Zo8": [ "InfiMech/Other PC" ], @@ -5579,12 +5679,24 @@ "OFypQeKR": [ "Elegoo/Generic PC-CF" ], + "OFyt23xJ": [ + "FLSun/FLSun T1 PLA High Speed" + ], "OFyxAbO4": [ "Flashforge/Flashforge TPU-95A" ], "OFzFbFcl": [ "Elegoo/Elegoo PC-FR" ], + "OFzQQeCi": [ + "Chuanying/Chuanying Generic HIPS" + ], + "OFzb2BLs": [ + "Ratrig/RatRig Generic PCTG" + ], + "OFziUL2X": [ + "Ginger Additive/Ginger Generic PLA" + ], "OFzrWlH5": [ "OrcaFilamentLibrary/Elegoo PETG HF" ], @@ -5968,8 +6080,7 @@ "Cubicon/Cubicon PA-CF" ], "P510eff9": [ - "Ginger Additive/Ginger Generic PETG", - "Ginger Additive/Ginger Generic PLA" + "Ginger Additive/Ginger Generic PETG" ], "Pfcf9c4c": [ "Artillery/Artillery PLA" @@ -6965,7 +7076,6 @@ "CONSTRUCT3D/C1 Generic PETG", "CONSTRUCT3D/C1 Generic PLA", "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying ASA @Chuanying X1 0.25 Nozzle", "Chuanying/Chuanying Generic ABS", "Chuanying/Chuanying Generic ASA", "Chuanying/Chuanying Generic HIPS", @@ -6977,9 +7087,7 @@ "Chuanying/Chuanying Generic PLA-Silk", "Chuanying/Chuanying Generic PVA", "Chuanying/Chuanying Generic TPU", - "Chuanying/Chuanying HS PLA @Chuanying X1 0.25 Nozzle", "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", "Co Print/CoPrint Generic ABS", "Co Print/CoPrint Generic PETG", "Co Print/CoPrint Generic PLA", @@ -8122,6 +8230,8 @@ "FlyingBear/Other PLA @S1", "FlyingBear/Other PLA Hyper @S1", "FlyingBear/Other TPU @S1", + "Ginger Additive/Ginger Generic PETG", + "Ginger Additive/Ginger Generic PLA", "InfiMech/InfiMech ABS @EX", "InfiMech/InfiMech ABS @EX+APS", "InfiMech/InfiMech ABS @HSN", From 33923464aed34770eceea86162e8bb3bcdf247bd Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 00:51:29 +0800 Subject: [PATCH 011/164] Cubicon: keep @base presets selectable; mint the variant tier instead The custom-preset fixture validation (check_profiles.yml step 5, run locally against the v2.3.2/v2.4.0/v2.4.1 archives) caught a real regression in the previous Cubicon fix: those archives contain user presets whose inherits names the @base presets directly ("can not find parent Cubicon ABS @base"). A system preset with instantiation:false is not added to the preset collection, so flipping the nine @bases was equivalent to deleting their names - exactly the user-preset drop hazard the migration rules forbid. Repair: restore all nine @bases byte-identically to their pre-flip state (instantiated, setting_id, original P510cf* ids; Cubicon PC @base keeps its minted OFnLnZQo from the copy-paste fix). The AMS ambiguity is instead resolved Dremel-style: each family's three passthrough variants share one fresh variant-tier mint as own keys, so on every printer the base and the variant carry different ids. Zero preset-set change, zero config change, user presets and fixtures resolve exactly as before the migration. Verified: fixture archives v2.3.2/v2.4.0/v2.4.1 no longer report missing parents; config-equivalence holds; orca_extra_profile_check.py exit 0; assign_filament_ids.py --check exit 0; validator -l 2 exit 0; tree-wide extended -f still exit 0. --- ...icon ABS @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...n ABS @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...n ABS @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon ABS @base.json | 3 +- ...ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...-A100 @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...-A100 @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../filament/Cubicon ABS-A100 @base.json | 3 +- ...con ABSk @Cubicon xCeler-I 0.4 nozzle.json | 1 + ... ABSk @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ... ABSk @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon ABSk @base.json | 3 +- ...on PA-CF @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PA-CF @base.json | 3 +- ...bicon PC @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...on PC @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...on PC @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PC @base.json | 3 +- ...con PETG @Cubicon xCeler-I 0.4 nozzle.json | 1 + ... PETG @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ... PETG @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PETG @base.json | 3 +- ...icon PLA @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...n PLA @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...n PLA @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PLA @base.json | 3 +- ...con PLA+ @Cubicon xCeler-I 0.4 nozzle.json | 1 + ... PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ... PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PLA+ @base.json | 3 +- ...n PLAi21 @Cubicon xCeler-I 0.4 nozzle.json | 1 + ...LAi21 @Cubicon xCeler-Mini 0.4 nozzle.json | 1 + ...LAi21 @Cubicon xCeler-Plus 0.4 nozzle.json | 1 + .../filament/Cubicon PLAi21 @base.json | 3 +- scripts/filament_id_snapshot.json | 90 +++++++++++++++++++ 37 files changed, 135 insertions(+), 9 deletions(-) diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json index ca0143d65c..8446df4752 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS @base", "setting_id": "VJEyK87ZYvHmamB9", + "filament_id": "OF6XuVQE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json index 72b2c51e50..c7b34c9694 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon ABS @base", "from": "system", "setting_id": "Kz41mb2M9xLbEJ97", + "filament_id": "OF6XuVQE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json index 38a00a4624..3865f034fa 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABS @base", "setting_id": "A5FQdwh0Xo7aTRpq", + "filament_id": "OF6XuVQE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json index cae2d0bcf9..55fbd40ee4 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon ABS @base", "inherits": "fdm_filament_abs", + "setting_id": "aZRVIlDze62Bbw81", "filament_id": "P510cfb0", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json index 897f3cceff..40cec441cc 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS-A100 @base", "setting_id": "OfiOryklf7FDVCz8", + "filament_id": "OFcZZWnB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json index f0d3715d32..77205f02c2 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon ABS-A100 @base", "from": "system", "setting_id": "pIyU9uXQ5V3hsg5F", + "filament_id": "OFcZZWnB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json index c6965435a0..c78d3720df 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABS-A100 @base", "setting_id": "xhYh9x1vescinfbF", + "filament_id": "OFcZZWnB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json index b715900dae..dddc147ff2 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon ABS-A100 @base", "inherits": "Cubicon ABS @base", + "setting_id": "vGIT4KZvqojIh2up", "filament_id": "P510cfb1", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json index 7596fa618a..296268a3f0 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABSk @base", "setting_id": "TXcodZkab4fofnEn", + "filament_id": "OFNQHqAV", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json index 63c827c034..afd798384f 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon ABSk @base", "from": "system", "setting_id": "CsthNnKn8WlBbkP4", + "filament_id": "OFNQHqAV", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json index 586982ea51..6f60bb4c13 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABSk @base", "setting_id": "UVitMFMxvdf34qZw", + "filament_id": "OFNQHqAV", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json index 7daddfb940..e1546d3bae 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon ABSk @base", "inherits": "Cubicon ABS @base", + "setting_id": "UbOUO0K3Y2iRPBtf", "filament_id": "P510cfb2", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json index c8af313f4f..8edf5f65e5 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PA-CF @base", "setting_id": "nupuIJggdc1EKDqG", + "filament_id": "OFOJUJAS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json index 40aa29b577..eda94acc49 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PA-CF @base", "from": "system", "setting_id": "NPjuy4deP6Ly7u9s", + "filament_id": "OFOJUJAS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json index 6e307bed78..f67e32c8ac 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PA-CF @base", "setting_id": "ygB1Uf9Vbw9LJZc8", + "filament_id": "OFOJUJAS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json index 6177b6fd6a..51c89949f6 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon PA-CF @base", "inherits": "fdm_filament_pa", + "setting_id": "55cJDyCoEudfOePY", "filament_id": "P510cfd0", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json index b83d690fff..aa761b7454 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PC @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PC @base", "setting_id": "c0sUPS0SRYUNjEpB", + "filament_id": "OFaxQnfz", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json index 868ec82e34..e5c07509a4 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PC @base", "from": "system", "setting_id": "XGXjHwuHUjtAJGl1", + "filament_id": "OFaxQnfz", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json index 07a2308add..f565564c82 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PC @base", "setting_id": "jbYKOK1A0Oxm9t0f", + "filament_id": "OFaxQnfz", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @base.json b/resources/profiles/Cubicon/filament/Cubicon PC @base.json index aa2f9ac347..5ecc4082c8 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon PC @base", "inherits": "fdm_filament_pc", + "setting_id": "Mzg6jfwb2nqfGkdV", "filament_id": "OFnLnZQo", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json index 62a4f58c53..c9db611832 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PETG @base", "setting_id": "dsX01tCkd2Usk104", + "filament_id": "OF0VEdLB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json index 9c1108a73f..653ca65758 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PETG @base", "from": "system", "setting_id": "2hYoCR5qUXCWIAxZ", + "filament_id": "OF0VEdLB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json index 14a23cc728..919a262523 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,6 +3,7 @@ "name": "Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PETG @base", "setting_id": "5pfiRdyNz9dvT4Q6", + "filament_id": "OF0VEdLB", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json index 0912884adf..2242ba36ca 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon PETG @base", "inherits": "fdm_filament_pet", + "setting_id": "bGfz4phwIdqSz0Hx", "filament_id": "P510cfc0", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json index bca40b2814..fc5d62bdc5 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "xXJgHAeNf1JdCitr", + "filament_id": "OFq6IhFg", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json index 54ffbd694c..39d9a7835e 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "o2BQL6OKtxDmBkWV", + "filament_id": "OFq6IhFg", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json index 04cac6ab7d..d94d38529c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "WkZrzDlGvb25OtrF", + "filament_id": "OFq6IhFg", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json index 82dffb7070..665ba58d59 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json @@ -3,8 +3,9 @@ "name": "Cubicon PLA @base", "inherits": "fdm_filament_pla", "from": "system", + "setting_id": "ypwdJAu0NlEsWpf4", "filament_id": "P510cfa0", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json index 7442cf2490..c068eba680 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "fNR2Bw3e4TGcWhq0", + "filament_id": "OF2HQqTC", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json index 76a31d14c1..f8c8331b31 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "wukhnaCJaOLUUdiU", + "filament_id": "OF2HQqTC", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json index 2f37996fe3..0da1b35a44 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "JVShu8DKQ3euGHec", + "filament_id": "OF2HQqTC", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json index 0e31e96a81..cb916a9410 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon PLA+ @base", "inherits": "Cubicon PLA @base", + "setting_id": "ETnuhiOZRh1jxrVk", "filament_id": "P510cfa1", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json index 10d2a2e6ae..b0a23bdd31 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "vcLVF3cglagBfVAF", + "filament_id": "OFti31HS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json index 73404c4729..43f571041e 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "3TbOucKB5TGk8sXG", + "filament_id": "OFti31HS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json index 0769e1fa3d..e797ea0312 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "Vm1oDASHoFUfDrzQ", + "filament_id": "OFti31HS", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json index a9d46012c6..831450deef 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json @@ -2,8 +2,9 @@ "type": "filament", "name": "Cubicon PLAi21 @base", "inherits": "Cubicon PLA @base", + "setting_id": "mnwC7ijXXV72lBOt", "filament_id": "P510cfa2", - "instantiation": "false", + "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index ea53ee25cc..24d51970bc 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -643,13 +643,40 @@ "Creality/eSUN PLA-Lite @K2 Plus-all", "Creality/eSUN PLA-Matte @K2 Plus-all", "Creality/eSUN PLA-Silk @K2 Plus-all", + "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon ABS-A100 @base", + "Cubicon/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon ABSk @base", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PA-CF @base", + "Cubicon/Cubicon PC @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PC @base", + "Cubicon/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PETG @base", + "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLA @base", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLA+ @base", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLAi21 @base", "Custom/Generic PC @MyToolChanger", "Custom/Generic PETG @MyToolChanger", @@ -4569,6 +4596,9 @@ "OF0UbONm": [ "Flashforge/FusRock S-PAHT" ], + "OF0VEdLB": [ + "Cubicon/Cubicon PETG" + ], "OF0Y5MLd": [ "Qidi/QIDI PETG-GF" ], @@ -4590,6 +4620,9 @@ "OF22AxCm": [ "Sovol/Polymaker PETG" ], + "OF2HQqTC": [ + "Cubicon/Cubicon PLA+" + ], "OF2Psxdc": [ "Co Print/CoPrint Generic TPU" ], @@ -4680,6 +4713,9 @@ "OF6XIeUW": [ "Flashforge/Generic PLA-CF10" ], + "OF6XuVQE": [ + "Cubicon/Cubicon ABS" + ], "OF70DKqH": [ "Snapmaker/Snapmaker TPE" ], @@ -4945,6 +4981,9 @@ "OFN0pBpo": [ "Qidi/Qidi Generic TPU 95A" ], + "OFNQHqAV": [ + "Cubicon/Cubicon ABSk" + ], "OFNRgSch": [ "Artillery/Artillery PC" ], @@ -4966,6 +5005,9 @@ "OFO5R9KJ": [ "Sovol/Sovol Zero TPU" ], + "OFOJUJAS": [ + "Cubicon/Cubicon PA-CF" + ], "OFOSzSuh": [ "Flashforge/Flashforge PA-CF" ], @@ -5200,6 +5242,9 @@ "OFaKZ6JI": [ "Anycubic/Generic PETG Basic" ], + "OFaxQnfz": [ + "Cubicon/Cubicon PC" + ], "OFb3UzMZ": [ "InfiMech/InfiMech PA-CF" ], @@ -5218,6 +5263,9 @@ "OFc2SnEp": [ "Artillery/Artillery PVA" ], + "OFcZZWnB": [ + "Cubicon/Cubicon ABS-A100" + ], "OFceJcLf": [ "Qidi/PolyLite PLA" ], @@ -5478,6 +5526,9 @@ "OFpwg2Qh": [ "OrcaFilamentLibrary/Elegoo ASA-CF" ], + "OFq6IhFg": [ + "Cubicon/Cubicon PLA" + ], "OFqPp2yL": [ "Qidi/QIDI PETG Tough 0.6 nozzle" ], @@ -5556,6 +5607,9 @@ "OFtet8ui": [ "Snapmaker/Snapmaker TPU High-Flow" ], + "OFti31HS": [ + "Cubicon/Cubicon PLAi21" + ], "OFtmT4Nd": [ "Artillery/Artillery ASA" ], @@ -7620,6 +7674,42 @@ "Creality/eSUN PLA-Lite @K2 Plus-all", "Creality/eSUN PLA-Matte @K2 Plus-all", "Creality/eSUN PLA-Silk @K2 Plus-all", + "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon ABS @base", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon ABS-A100 @base", + "Cubicon/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon ABSk @base", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PA-CF @base", + "Cubicon/Cubicon PC @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PC @base", + "Cubicon/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PETG @base", + "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PLA @base", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PLA+ @base", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", + "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon/Cubicon PLAi21 @base", "Custom/Generic PC @MyToolChanger", "Custom/Generic PETG @MyToolChanger", "Custom/Generic PLA @MyToolChanger", From ac12dff1af225f7f5526a20e567ee6f95fc89503 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 01:10:54 +0800 Subject: [PATCH 012/164] CI: run the filament subtype check tree-wide With every vendor's filament_id collisions fixed (356 collision groups / 1256 printer-level ambiguity errors across 30 vendors, plus the 16 library-internal ids and the 10 live library-cross groups), the duplicate-filament-subtype validation no longer needs the BBL-only scope: drop -v BBL from the -f step so any new ambiguity in any vendor fails CI. Local verification of the full workflow against this branch: - extra JSON check exit 0; validator -l 2 exit 0 (66 vendors); -f tree-wide exit 0 (with the library-aware extended validator, which is strictly stricter than the released binary CI downloads); -r exit 0 for BBL and Qidi. - custom-preset fixture archives v1.9.0..v2.4.1 overlaid per the workflow: six pass outright; v2.3.1/v2.3.2/v2.4.0/v2.4.1 fail locally only on a pre-existing Windows-only validator limitation (a user preset with a non-ASCII filename reads as empty; reproduced byte-identically on the pre-migration base commit, and absent on CI's Linux runners where these archives validate green). --- .github/workflows/check_profiles.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index e8404d9e4e..8fbd7fc393 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -49,13 +49,14 @@ jobs: set +e ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_system.log exit ${PIPESTATUS[0]} - # For now run filament subtype check only for BBL profiles until we fix other vendors' profiles. - - name: validate filament subtype check for BBL profiles + # All vendors' filament_id collisions were fixed (see scripts/filament_id_snapshot.json), + # so the duplicate-filament-subtype check runs tree-wide. + - name: validate filament subtype check id: validate_filament_subtypes continue-on-error: true run: | set +e - ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -v BBL -f 2>&1 | tee ${{ runner.temp }}/validate_filament_subtypes.log + ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -f 2>&1 | tee ${{ runner.temp }}/validate_filament_subtypes.log exit ${PIPESTATUS[0]} # Flag inherits/compatible_printers/compatible_prints references that point at a deleted or # renamed preset. Opt-in per vendor for now (via -r); enabled for BBL and Qidi until other @@ -207,7 +208,7 @@ jobs: fi if [ "${{ steps.validate_filament_subtypes.outcome }}" = "failure" ]; then - echo "### BBL Filament Subtype Validation Failed" + echo "### Filament Subtype Validation Failed" echo "" echo '```' head -c 30000 ${{ runner.temp }}/validate_filament_subtypes.log || echo "No output captured" From a395701f29cda51f32eaa108ce2dd97c0810b7bb Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 3 Jul 2026 10:12:21 +0800 Subject: [PATCH 013/164] plan: validate the P+md5 (get_filament_id) mint proposal; record verdict as plan v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Examined minting system filament_ids with CreatePresetsDialog.cpp:487's user-custom allocator (adopt-by-base-name, else "P"+md5(name)[0:7]) for Bambu AMS-sync compatibility. Verdict: keep the OF* mint; capture the proposal's value through bounded work items instead of a re-mint. - The device path never validates id shape: tray_info_idx is an opaque string end-to-end (DeviceManager.cpp:1642; DevFilaSystem.cpp:512-514) and firmware persists arbitrary bytes (bambulab/BambuStudio#5436). Resolution is by value against the GF catalog plus the account's cloud custom cache; unknown ids show "?" regardless of shape, and system presets can never enter that cache (Preset.cpp:2071 gates upload on is_user()). - The only id-shape dispatch in the tree is destructive for P-shaped ids: check_ams_filament_valid (DeviceManager.cpp:5335/5352/5395/5410) remotely clears an AMS tray (:5345) or rewrites its temps when a P-shaped tray id drops out of the user-root preset list — a state name-keyed minting creates by construction. GF* and OF* ids are structurally immune. - The real value is captured without re-minting 391 unshipped ids across 1327 files: the adopt step == curated GF adoption via the snapshot ledger (W4); the hash belongs to user presets (W5, cf. PR #13315); client hardening (W1) that the ten already-shipped P-hex system ids (Cubicon x8, Ginger, Artillery) need today anyway. Method: 6 parallel evidence agents (generator semantics, AMS/device path, exhaustive shape-dispatch sweep, upstream + online sources, tree-wide dry-run over 5892 presets / 1148 base names, branch change inventory) into a 3-judge panel (keep-OF* won 23/40 aggregate); the upstream generator was verified byte-identical to BambuStudio master, and every load-bearing file:line and number in the document was re-verified against the tree before commit. --- filament_id_plan_v2.md | 310 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 310 insertions(+) create mode 100644 filament_id_plan_v2.md diff --git a/filament_id_plan_v2.md b/filament_id_plan_v2.md new file mode 100644 index 0000000000..dd8c6957c3 --- /dev/null +++ b/filament_id_plan_v2.md @@ -0,0 +1,310 @@ +# filament_id plan v2: the `get_filament_id` (P+md5) proposal, validated + +Follow-up to `filament_id_plan.md` (v1, implemented on `feature/filament_id`: deterministic +`OF*` mint + snapshot ledger + 30-vendor migration, tree-wide validator `-f` = 0). + +**Proposal under review:** mint system `filament_id`s with the scheme of +`static std::string get_filament_id(std::string vendor_typr_serial)` +(`src/slic3r/GUI/CreatePresetsDialog.cpp:487-552`) — Bambu's user-custom-filament id +allocator — so system ids are "compatible with Bambu AMS sync". + +Every claim below was verified in source (`file:line`), against upstream BambuStudio, or in +primary online sources (URLs in §8). Verdict first, evidence after. + +--- + +## 0. Executive summary — the verdict + +**Do not re-mint system ids as `P+md5(name)`. Keep the v1 `OF*` mint.** Three facts decide it: + +1. **The AMS/device path never validates id *shape*.** `tray_info_idx` is an opaque string + end-to-end: sent verbatim (`DeviceManager.cpp:1642`), parsed verbatim + (`DevFilaSystem.cpp:512-514`), and firmware persists arbitrary bytes — an A1 stored and + echoed a *corrupted* id `Pde2\xea58c` (bambulab/BambuStudio#5436). A P-shaped system id + is not "more acceptable" to the device than an `OF*` one. +2. **P-shape buys zero recognition.** The printer resolves tray ids only against its built-in + `GF*` catalog plus the *account's* cloud custom-filament cache (official Bambu wiki); ids + it cannot resolve round-trip as `?`. Orca can never upload system presets into that cache + (`Preset.cpp:2071` gates cloud upload on `is_user()`), so an Orca system `P` id shows `?` + exactly like an `OF` id. The public catalog id space is 100% `GF*` (ha-bambulab + `filaments.json`: 86/86 ids). +3. **P-shape is the one shape the codebase punishes.** The *only* id-shape dispatch in the + entire tree is `MachineObject::check_ams_filament_valid` + `update_filament_list` + (`DeviceManager.cpp:5335/5352/5395/5410`, gate `setting_id.size()==8 && [0]=='P'`), a + user-custom lifecycle reconciler that **remotely wipes an AMS tray** + (`command_ams_filament_settings(..., "", "", white, "", 0, 0)` at `:5345`) or rewrites its + temps (`:5361-5367`) when a P-shaped tray id drops out of the user-root preset list + (`:5219`, armed at `:5268`). Name-keyed minting makes system id == user-custom id *by + design* (same name → same id), so "user deletes their now-redundant custom after the + system preset ships" becomes a remote tray wipe. `GF*` (wrong length) and `OF*` (wrong + first char) are structurally immune. + +The proposal's *real* value lives in two places, and v2 captures both without the re-mint: + +- **The adopt step** (the function's first branch, `:509-511/:526-528`): same base name → + same id. In-app, this already gives Orca-local convergence today — a user custom named + like a system family adopts the system id *whatever its shape*. At authoring time, the + same semantics = the v1 `shared_catalog` mechanism; §5/W4 extends it (curated, optional) + to let byte-authentic Bambu-catalog families carry authentic `GF*` ids. +- **The hash step belongs to user space.** `P+md5(name)` is Bambu's allocator for *user* + presets; the community is already asking for it there (OrcaSlicer PR #13315, unique ids + for inherited user presets). §5/W5 endorses that lane. System profiles stay out of the + `P` namespace — and v2 adds client hardening (W1) because ten *already-shipped* system + P-hex ids (Cubicon `P510cf**`×8, Ginger `P510eff9`, Artillery `Pfcf9c4c`) sit inside the + wipe-gate's shape match today. + +Judge panel (3 independent lenses over 4 variants; §7): keep-`OF*` won 23/40 aggregate +(device-ecosystem 6, identity-semantics 8, migration-enforceability 9) vs full Bambu +emulation 11, hash-only name-keyed 12, vendor-scoped P-hash 12. The single dissent +(device-ecosystem, favoring adoption) is honored by W4; its own verdict on the shape was +"adopt the semantics, not the costume". + +--- + +## 1. What the proposed generator actually is (verified) + +`get_filament_id(vendor_typr_serial)` (`CreatePresetsDialog.cpp:487-552`), called with +`" "` (`:1128`, `PLA-AERO`→`"PLA Aero"`), and per-preset with the +display base name when cloning presets for a user-created printer +(`Preset.cpp:2785-2803` → `:2798-2800`): + +1. **Adopt:** scan a temp bundle of *every* vendor bundle on disk + (`PresetBundle::load_system_filaments_json`, `PresetBundle.cpp:2342-2391`) plus the + user's presets, then the live bundle (`Preset.cpp:2831-2842`); if any preset's base name + (`name.substr(0, first('@') - 1)`) equals the input and its id ≠ `"null"`, **return that + id** — which can be `GF*`, `QD_*`, `OF*`, or another user's P-hex. +2. **Mint:** `"P" + md5(input)[0:7]`, lowercase hex over the raw UTF-8 bytes (`:533`, + `:480`). +3. **Collide:** if the id is held by a *different* name, re-hash with a local wall-clock + salt (`md5(input + get_curr_time())`, `:547`) — non-deterministic by construction. + +Upstream parity: the function and its caller input construction are **byte-identical** in +BambuStudio master (`CreatePresetsDialog.cpp` L434-499 / L1061; diff empty, fetched +2026-07-03). So identical dialog inputs in BBS and Orca yield identical ids — the kernel of +the proposal's compatibility claim. + +Reproduction limits (why "exactly the approach" cannot be ported to system minting anyway): + +- The base-name parser truncates names lacking a space before `@` (`"Afinia PLA@HS"` → + `"Afinia PL"`); 48 shipped presets hit this, and the *clone* path parses differently + (`" @"` two-char, `Preset.cpp:2792`), so the app itself is internally inconsistent. +- 597 presets (361 whole families, e.g. all of Anker) contain no `@` and are invisible to + the adopt scan and its collision map (`:505-508`). +- The collision salt is wall-clock time — unreproducible across machines, so id values + cannot be CI-verified from names; a ledger would still be the sole source of truth. +- Shipped P-hex ids don't round-trip from names today: Cubicon `P510cfb0` ≠ + `P+md5("Cubicon ABS")` = `Pc624b68` (verified) — so even Bambu-lineage P ids are not + name-derivable in practice. + +## 2. What Bambu AMS sync actually consumes (verified) + +- Send: `command_ams_filament_settings` puts the preset's `filament_id` verbatim into + `tray_info_idx` (`DeviceManager.cpp:1642`); cloud vs LAN differ only in transport + (`:2502-2536`). No client- or firmware-side rejection path exists; the ack parse stores + whatever the printer echoes (`:3808-3860`). +- Resolve (slicer side): tray id → first compatible root preset with equal `filament_id` — + system *and* user roots, no shape filter (`PresetBundle.cpp:3151`, `:3252-3254`); misses + fall back by `"Generic "` name, then similarity, then keep-previous + (`:3157-3169`, `:3260-3305`). `setting_id_to_type` resolves against `is_system` presets + only (`DeviceManager.cpp:2538-2559`) — a system preset resolves *because it is system*, + never because of its id shape. +- Resolve (device side): built-in `GF*` catalog + the account's cloud custom cache; + custom-filament sync is **cloud-only** (not LAN), and an id the printer has no data for + displays `?` until opened once on the printer screen (official wiki, §8). Third-party + consumers see customs as "unknown" (ha-bambulab #466/#540). +- Since Jan 2025, AMS configuration is gated behind Bambu-signed clients on new firmware + (Developer Mode / older firmware exempt) — any AMS-sync benefit for Orca is conditional + on that regardless of id scheme (Bambu authorization blog, §8). +- Orca already ships non-`GF`/non-`P` shapes to Bambu trays in the field: OFL presets are + compatible with every printer (`PresetBundle.cpp:5681-5684`) and carry `OGF*`/`OFL*` ids + (e.g. `OFLSBS99`, hardcoded in `MoonrakerPrinterAgent.cpp:654`). The premise "the + ecosystem has only ever seen `GF*`/P-hex" is already false, with no observed rejection. + +**Cross-client reality check.** The name-keyed benefit ("a BBS-created custom named like an +Orca system preset lands on the same id, so Orca's sync matches the system preset") is +mechanically true but narrow: it needs byte-exact names (including the `PLA Aero` mapping +and single spacing), the unsalted hash path, cloud mode, and permissive firmware. The +symmetric case already works in Orca *without* any re-mint: an Orca user creating a custom +named like a system family **adopts the system id** via the in-app adopt branch, so local +custom ↔ system ↔ tray matching is shape-independent today. + +## 3. The disqualifying finding, in mechanism form + +`update_filament_list` (`DeviceManager.cpp:5208-5272`) snapshots `{filament_id → temps}` +over **user root presets only** (`preset.is_user() && preset.inherits() == ""`, `:5219`); +ids that vanish or change temps between snapshots are armed into `checked_filament` +(`:5268`). `check_ams_filament_valid` (`:5311-5445`) then, for every AMS/virtual tray whose +`setting_id` matches `size()==8 && [0]=='P'`: + +- id armed and **not** in the current user-root list → remotely **clears the tray** + (`:5335-5349`, `:5395-5408`); +- id armed and in the list with unequal temps → **rewrites tray temps from the user + preset**, ignoring same-id system presets (`:5352-5374`; `PresetBundle.cpp:3719` skips + non-user presets; unguarded `find()->second` at `:3717`). + +Failure scenario under the proposal: system `"PolyLite PLA"` ships with +`P+md5("PolyLite PLA")`. A user's same-named custom (BBS- or Orca-created — same id by +design) is on an AMS tray. The user deletes the now-redundant custom. Next status refresh: +the id is armed, absent from user roots → Orca wipes the tray, even though the system +preset still resolves that id perfectly. Runs continuously (`StatusPanel.cpp:3275-3277`). + +Two corollaries independent of the proposal (→ W1): + +- The ten shipped P-hex **system** ids (Cubicon/Ginger/Artillery) already pass the shape + gate; only the "id must transit a user root" arming condition protects them, and the + in-app adopt branch can create exactly that transit today. +- `assert(it->first.size() == 8 && it->first[0] == 'P')` (`:5252`) is violable today: a + user custom named `"Bambu PLA Basic"` adopts `GFA00` onto a user root and aborts debug + builds. + +## 4. Identity costs the re-mint would add (quantified, tree dry-run) + +- 1148 distinct family base names; **198** appear in 2+ vendors; **159** groups carry ≥2 + distinct ids today and would silently merge under name-keying (Generic PETG alone: 15 + ids today). 112 involve BBL; 82 are `GF↔OGF` mirror pairs. +- **4** cross-vendor groups share a name across materially different `filament_type` + (Generic PLA Silk, Generic PETG-CF, Generic PA6-CF, Generic PE-CF) — one merged id would + feed wrong type/name/vitrification to the global unscoped consumers + (`PresetBundle.cpp:690-733`; `DeviceManager.cpp:2538`; `FilamentGroup.cpp:513-519`) (→ W3). +- 33 deliberately-split families on the branch would re-merge (25 Elegoo-vs-OFL pairs, 7 + FlyingBear-vs-InfiMech "Other *" pairs, the salted Cubicon PC pair) — undoing v1 + decisions that the fixture gate forced. +- Renames become id migrations: name-keyed ids re-key on any marketing rename; the ledger + can freeze them, but then name-derivability — the scheme's selling point — dies family + by family. The `OF*` key (`vendor/family`) survives display-name churn. +- Entropy drops 35.7 → 28 bits (still 0 collisions at today's 1148 names; ~0.75 expected + at 20k). Re-mint surface: 391 unshipped ids across 1327 files, 13 hardcoded tests, the + reserved-namespace policy inversion, and a retired-ledger rebuild. + +## 5. Work items (delta from `feature/filament_id` HEAD) + +**W1 — client hardening (C++, small, ships with the migration PR train).** + a. Skip the tray-reset and temp-rewrite in `check_ams_filament_valid` when **any + `is_system` filament preset carries the tray's id** — no compatibility filter, + mirroring the semantics of the global consumers (`get_filament_by_filament_id`, + `setting_id_to_type`). This protects the ten shipped P-hex system ids and any BBS + custom colliding with them, while ids resolving only to user presets (or to nothing) + keep today's cleanup behavior. + b. Relax the debug assert `DeviceManager.cpp:5252` to a log (user roots legitimately + carry adopted `GF*`/`OF*` ids). + c. Guard `PresetBundle.cpp:3717` (`find()` unchecked before `->second`). + d. Regression-check that AMS sync never clears trays whose id it merely cannot resolve + (OrcaSlicer#4431 class): the keep-previous fallbacks at `PresetBundle.cpp:3163-3169`, + `:3296-3305` must cover the UI paths. + +**W2 — tooling + doc guardrails.** + a. Document `^OF[0-9A-Za-z]{6}$` as the system-mint namespace. **Do not add it to + `reserved_space_owner`** (`scripts/assign_filament_ids.py:394-402`): check 6 exempts + only snapshot-grandfathered claims and the `--update-snapshot` refusal gate + (`:596-621`) would then reject every *future* mint. The space is already enforced — + check 3 (mint conformance, `:488-509`) errors on any OF-shaped id that does not equal + its own family's mint (covered by `test_check3_of_id_must_match_mint`), and the + snapshot diff is the human gate. Add one doc paragraph + a test asserting a foreign + vendor claiming another family's OF id fails check 3. + b. `doc/developer-reference/filament_id.md`: add a "why not P-hex" section citing the + `DeviceManager.cpp:5335` gate and the account-cache resolution model — community + pressure toward `P+md5` exists (PR #13315) and will recur. + c. Document that user roots may legitimately hold adopted system ids (incl. what that + means for cloud upload, `Preset.cpp:1874-1876`), matching BBS behavior. + +**W3 — data hygiene: the 4 same-name-different-type groups.** Audit each (they confuse + name-based fallback matching and any future interop even under vendor-scoped ids): + verify whether the divergent `filament_type` is a data bug (e.g. OFL `Generic PETG-CF` + resolving `PETG`, OFL `Generic PE-CF` resolving `PE`, Flashforge `Generic PLA Silk` + mixing `SILK`+`PLA`, Creality-vs-Elegoo `Generic PA6-CF` as `PA-CF`/`PA6-CF`) or + intentional; fix by type alignment or rename with evidence, gated by + config-equivalence (only `filament_type` diffs as prescribed) + full validator suite. + +**W4 — optional, curated GF adoption (the proposal's adopt step, done safely).** Extend the + v1 `--allow-shared-catalog` mechanism into an explicit per-family adoption worksheet: a + family may carry a byte-authentic Bambu catalog id iff (i) it is verifiably the same + commercial product as the BBL family (vendor evidence + equal `filament_type`), (ii) + validator `-f` stays 0 tree-wide (alias shadowing covers BBL/OFL overlaps), (iii) the + fixture gate passes, (iv) the snapshot diff records the adoption. Candidates: the 13 + actionable BBL-overlapping families minted `OF*` in v1 (e.g. Qidi `Bambu ABS`→`GFB00`, + `PolyLite PLA`→`GFL00`, `Overture PLA`→`GFL04`, `PolyLite ABS`→`GFB60`; `OFLSBS99` is + shipped and frozen; the two type-hazard OFL families are excluded until W3 lands). + **Honest benefit statement:** these presets are compatible only with non-Bambu printers, + so no Bambu device resolves their ids today; the payoff is one-product-one-id coherence + for the global consumers, project portability, and readiness for W6. Recommended seed: + the four Qidi brand families; generics deferred. + +**W5 — user-preset lane (where the proposal's hash belongs).** Support unique ids for + inherited user presets (the PR #13315 pain: children share the parent's id, so AMS always + resolves the generic parent). `P + md5(preset name)` matching + `CreatePresetsDialog::get_filament_id` is correct *in user space*: adopt-first against + existing ids, then hash; ids frozen per preset after mint. Constraints: never emitted + into system profiles (W2a makes that mechanical); W1 must land first so shared-id + lifecycles can't wipe trays. + +**W6 — recorded future option:** SoftFever's "upload OrcaSlicer's filament database + (especially the filament ID) to the printer" (PR #12724 comment). If pursued, Orca ids + become first-class device-visible artifacts and the P-mimicry question is permanently + moot; the `OF*` scheme is the *better* citizen there (collision-free vendor-scoped ids, + no user-custom masquerade). + +Unchanged from v1: mint rule, snapshot/retired ledgers (no OF retirement — nothing is +re-minted), CI wiring, migration commits. `filament_id_plan.md` remains the implemented +baseline; this document records the v2 decision and its follow-on work. + +## 6. Gates (per work item) + +Same battery as v1, all local: `python scripts/orca_extra_profile_check.py` exit 0; +`assign_filament_ids.py --check` exit 0 (46+ unit tests green; new tests for W2a +reservation and, when implemented, W4 adoption sanctioning); validator `-l 2` exit 0, +`-f` tree-wide exit 0, `-r` BBL+Qidi exit 0; custom-preset fixture overlays (the W1/W4 +changes touch exactly the preset-visibility machinery the fixtures exist to protect); +config-equivalence: flattened effective configs differ only in prescribed keys +(`filament_id` for W4, `filament_type` for W3, none for W1/W2). W1 additionally needs a +manual AMS smoke test on a live Bambu printer (tray set/clear round-trip) — a release +checklist item, not CI (the workflows have no hardware runners). + +## 7. Scheme comparison (judge panel record) + +| Variant | Device lens | Identity lens | Migration lens | Σ | +|---|---|---|---|---| +| V1 full Bambu emulation (adopt incl. `GF*` + P+md5 + salt) | 7 | 2 | 2 | 11 | +| V2 hash-only name-keyed `P+md5(base name)` | 4 | 4 | 4 | 12 | +| V3 vendor-scoped P-hash (`P+md5(vendor/family)`) | 2 | 5 | 5 | 12 | +| **V4 keep `OF*` uuid5 vendor-scoped (chosen)** | 6 | 8 | 9 | **23** | + +All three judges answered the pivotal question the same way: the P-hex **shape** confers no +device/cloud benefit (resolution is by value against catalog + account cache; the path is +otherwise shape-agnostic) and is the only shape with a destructive client-side gate. V3 is +strictly dominated (all of the re-mint cost, none of the name-keyed benefit). V1's genuine +half — GF adoption — is captured by W4 at zero re-mint cost. + +## 8. Evidence index + +Code (this branch): `CreatePresetsDialog.cpp:487-552,1128,2798-2800` (generator + callers); +`DeviceManager.cpp:1642` (verbatim send), `:2538-2559` (system-only type resolve), +`:5208-5272` (user-root snapshot, `:5219`, `:5252` assert, `:5268` arming), `:5311-5445` +(P-shape gate + tray wipe `:5335/:5345`, temp rewrite `:5352-5374`, virtual tray +`:5395-5435`); `DevFilaSystem.cpp:512-524`; `PresetBundle.cpp:690-733,3116-3128,3151, +3252-3254,3709-3767,5674-5753`; `Preset.cpp:1874-1876,2071,2785-2842`; +`AMSMaterialsSetting.cpp:886,894-897`; `WebGuideDialog.cpp:67`; +`PresetComboBoxes.cpp:1952-1966`; `MoonrakerPrinterAgent.cpp:654`; +`scripts/assign_filament_ids.py:69,71-72,118-144,394-402,596-621`. + +Online (fetched 2026-07-03): BambuStudio master `CreatePresetsDialog.cpp` L434-499 +(byte-identical generator); wiki.bambulab.com `create-filament` (custom filaments AMS-able +from firmware 1.6.6; only dialog-created presets sync) and `custom-filament-issue` +(cloud-only sync; unknown ids show `?`); blog.bambulab.com authorization-control (Jan-2025 +AMS-config gating); bambulab/BambuStudio#5436 (firmware persists corrupted id); +OrcaSlicer #4431 (tray clobber to `?`), #3874 (cloud-only confirmation), PR #14459 +(the `-f` invariant), PR #14423 + PR #12724 + PR #13315 (maintainer statements / community +P+md5 pressure); greghesp/ha-bambulab `filaments.json` (86/86 `GF*`) + #466/#540. + +Method: 6 parallel evidence agents (generator semantics; AMS/device path; exhaustive +shape-dispatch sweep; upstream/online; tree-wide dry-run over 5892 presets / 1455 families; +branch change inventory) → 3-judge panel (device-ecosystem, identity-semantics, +migration-enforceability lenses). Dry-run artifacts: session scratchpad +`phex_dryrun_{summary,details,followup}.json`. + +## 9. Open decisions for maintainers + +1. **W4 scope**: none / 4 Qidi brand families (recommended) / + generic-tier re-adoption. +2. **W5 timing**: implement in-repo vs review upstream PR #13315 with the W1 hardening as a + prerequisite either way. +3. **W6**: pursue the filament-database-upload design (makes Orca ids device-visible and + ends the mimicry debate for good). From 67406b24babaada2694787ce62620d2ced61bc78 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 14:54:48 +0800 Subject: [PATCH 014/164] plan v3: OFL as the catalog, content-addressed product ids MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revises the v1 mint rule after the maintainer catch that its key scoped families to the profile bundle (printer brand), fragmenting one commercial product into N ids (PolyLite PLA: five bundles, all filament_vendor "Polymaker", up to five ids). Architecture: BBL and QD_* stay frozen islands; OrcaFilamentLibrary becomes the single declaration point for every other material family; vendor bundles carry only same-alias specializations (no filament_id key) that shadow the OFL preset per printer and resolve its id through the loader walk. New mint key: uuid5 over "filament_product///" from the root's flattened config — bundle-independent (hoisting families into OFL is id-stable), and the type component keeps the four known same-name- different-type groups apart until their data bugs are fixed. Content-addressing replaces "ids immutable once shipped": identity edits re-id the family, made safe by turning retired_filament_ids.json into a shipped succession ledger (old id -> successor, chains allowed, cross-island hints permitted) consulted on resolution miss in the AMS sync and lookup paths. The MoonrakerPrinterAgent hardcoded generic-id map is replaced by a runtime preset lookup, removing the code/profile lockstep. Migration: v3.0 tooling + W1 client hardening + W3 type fixes; v3.1 OFL re-mint with succession entries; v3.2 vendor bundles (391 unshipped OF ids re-derive without retirement; generic tunings re-point to OFL; ~800 shipped legacy ids re-mint with succession, incl. the 57 multi-vendor GF residue and the 10 P-hex system ids, which also exits them from the destructive check_ams_filament_valid P-gate); v3.3 optional id-stable consolidation into OFL. Gate battery unchanged plus succession-resolution tests. filament_id_plan_v2.md gets a status note: its P+md5 verdict stands; its work items are absorbed or superseded by v3. --- filament_id_plan_v2.md | 4 + filament_id_plan_v3.md | 203 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 207 insertions(+) create mode 100644 filament_id_plan_v3.md diff --git a/filament_id_plan_v2.md b/filament_id_plan_v2.md index dd8c6957c3..b5bf0f1c65 100644 --- a/filament_id_plan_v2.md +++ b/filament_id_plan_v2.md @@ -1,5 +1,9 @@ # filament_id plan v2: the `get_filament_id` (P+md5) proposal, validated +> **Status note:** the verdict in §0-§4 and §7-§8 stands. The work items in §5 are +> superseded by `filament_id_plan_v3.md` (OFL-as-catalog, content-addressed triple key, +> succession ledger): W1/W3 are carried into v3.0, W2/W5 carry unchanged, W4 is dropped. + Follow-up to `filament_id_plan.md` (v1, implemented on `feature/filament_id`: deterministic `OF*` mint + snapshot ledger + 30-vendor migration, tree-wide validator `-f` = 0). diff --git a/filament_id_plan_v3.md b/filament_id_plan_v3.md new file mode 100644 index 0000000000..5cf4cf61a4 --- /dev/null +++ b/filament_id_plan_v3.md @@ -0,0 +1,203 @@ +# filament_id plan v3: OFL as the catalog, content-addressed product ids + +Supersedes §5 of `filament_id_plan_v2.md` (whose P+md5 verdict stands unchanged) and +revises the mint rule of `filament_id_plan.md` (v1, implemented on `feature/filament_id`). +Decision driver: v1's mint key scoped families to the *profile bundle* (printer brand), so +one commercial product tuned in N bundles carries N ids — e.g. PolyLite PLA ships in five +bundles (`BBL`, `OrcaFilamentLibrary`, `OrcaArena`, `Qidi`, `Snapmaker`), all with +`filament_vendor: "Polymaker"`, under up to five different ids (`GFL00`, `OFceJcLf`, …). +That contradicts what `filament_id` means: one id per commercial product line. + +## 0. The architecture + +Three tiers, two frozen islands: + +1. **BBL island — untouched.** Bambu profiles keep their `GF*` catalog ids byte-for-byte + (device/RFID/cloud contract). No convergence between GF and OFL ids is attempted: the + same product may permanently carry `GFL00` on the BBL side and an `OF*` id everywhere + else. This is a deliberate trade for simplicity; v2's curated-GF-adoption (old W4) is + dropped. +2. **`QD_*` island — untouched.** Qidi's box builds `QD___` from + device enums and requires exactly-matching presets (`QidiPrinterAgent.cpp:146-152`). + Qidi presets carrying `QD_*` are exempt from re-minting, forever. +3. **Everything else converges on OrcaFilamentLibrary.** OFL is the product catalog: a + material family's id is declared once, on its OFL family root. Vendor bundles carry + only per-printer *specializations* of OFL families — same base name, non-empty + `compatible_printers`, **no `filament_id` key** — which (a) alias-shadow the OFL preset + on the printers they claim (`Preset.cpp:3684-3714`: "Generic PLA @Qidi Q2 0.4mm nozzle" + hides "Generic PLA @System" on that machine) and (b) resolve the OFL family's id + through the loader's inherits/base-bundle walk (`PresetBundle.cpp:4842-5080`). Products + OFL does not (yet) carry mint their id in the vendor bundle **with the same rule**; + because the key is bundle-independent (§1), later hoisting the family into OFL never + changes its id. + +Convergence therefore happens by *single declaration point*, not by copying ids across +bundles — no adoption registry, no cross-bundle id claims to curate. + +## 1. The mint rule + +``` +triple = (filament_vendor, filament_type, family_name) # from the family ROOT's flattened config +key = "filament_product///" +id = "OF" + base62_6( uuid5( FILAMENT_ID_NAMESPACE, key ) ) # namespace unchanged: + # c4d3ff49-4c32-5534-a3e3-00894157ab97 +``` + +- **Triple resolution.** All three values come from the family root preset's *flattened + effective config* (`filament_vendor` and `filament_type` are inheritable list options — + take the first element; family_name = the root's base name, `\s?@.*` stripped once). + For own-key-layout families (no root), each declaring preset's flattened config is used + and CI requires all declarers of one family to agree on the triple. A root that resolves + an empty `filament_vendor` or `filament_type` is a CI error (generics use `"Generic"`). + Values enter the key verbatim (UTF-8, no case folding). +- **Bundle-independent by design.** The key contains no bundle name, so the same product + yields the same id whether minted in OFL or in a vendor bundle; migrating a family into + OFL (§0.3) is id-stable. Two bundles independently adding the same triple converge + automatically — and that is correct, because equal (vendor, type, name) *is* the + definition of "same product" here. The known look-alike hazards stay separated by the + type component: the 4 same-name-different-type groups (Flashforge `Generic PLA Silk` as + SILK, OFL `Generic PETG-CF` as PETG, `Generic PA6-CF`, `Generic PE-CF`) hash apart until + their type bugs are fixed (§5, W3) and converge automatically after — self-healing that + pure name-keying (rejected in v2) could not provide. +- **Format and salt unchanged from v1**: 8 chars, `OF` + 6 base62; deterministic `/1`, + `/2`… salt past any taken or retired id (the O+7 widening was evaluated and rejected: + 62⁶ expects 1.9×10⁻⁵ collisions at today's 1,455 families, and `^O.{7}$` would sweep 35 + legacy ids into the conformance gate vs. one today). +- **Content-addressed, deliberately.** If any triple component changes — a family rename, + a `filament_vendor` correction, a `filament_type` fix — the id changes with it. This + *replaces* v1's "ids are immutable once shipped" with "ids are derivable from the + product identity, and identity changes are migrations" — made safe by the succession + ledger (§2). `renamed_from` still gates preset-name compatibility as before. +- CLI: `--mint "Polymaker/PLA/PolyLite PLA"` prints without touching the tree; running + the script plain inserts missing ids; CI errors print the expected id. + +## 2. The succession ledger (the amendment that makes this safe) + +Shipped ids are referenced outside the tree: AFC/Klipper lane data, Bambu AMS trays +holding OFL-only materials, on-device PA-calibration records, user-root preset copies, +3mf `slice_info`. Retiring an id without a forwarding pointer downgrades all of those to +`Generic ` fallbacks. Therefore: + +- **Schema.** `scripts/retired_filament_ids.json` entries become objects: + `{"retired": {"OGFL99": {"claims": [...], "successor": "OFxxxxxx"}}}`. Append-only as + before; a successor may itself be retired later (chains allowed, cycle-checked, and + followed to the live end). A retired id may never be minted again (check 4 unchanged). + Cross-island *hint* entries are permitted for ids Orca cannot retire because another + island owns them (e.g. `GFL99 → `): consulted only when no live + preset matches, so BBL installs still resolve `GFL99` natively first. +- **Shipped and consulted at runtime.** The ledger ships in `resources/`; a small helper + (`resolve_filament_id_succession(id)`) follows the chain and is consulted **only on + resolution miss**, before the `Generic ` name fallback, in: + `PresetBundle::get_filament_by_filament_id` (covers `DevFilaBlackList`, `SelectMachine` + warnings, `Plater` tray configs in one place), the AMS sync match predicates + (`PresetBundle.cpp:3151`, `:3252-3254` miss paths at `:3157-3169`/`:3260-3305`), + `PresetComboBoxes::add_ams_filaments`, `MachineObject::setting_id_to_type` + (`DeviceManager.cpp:2545` miss branch), calibration-history name lookup + (`CaliHistoryDialog.cpp:62`), and the #14423 Moonraker lane matching when it lands. + With this in place the OFL re-mint is near-residue-free and every future + content-addressed rename stays safe. +- **Kill the hardcoded generic map.** `MoonrakerPrinterAgent::map_filament_type_to_generic_id` + (`MoonrakerPrinterAgent.cpp:608-658`) hardcodes 23 OFL ids (`OGFL99`… `OFLSBS99`). + Replace it with a runtime lookup of the OFL generic preset by name ("Generic PLA + @System" → its current id), removing the code↔profile lockstep permanently. (This also + releases `OFLSBS99`, v2's one frozen OF-shaped legacy id, for normal re-minting.) + +## 3. Validation rule changes + +- **Check 3 (mint conformance)** becomes a pure function of the root's triple: a non-BBL, + non-`QD_*` id must equal `mint(triple)` ± salt, or be snapshot-grandfathered (the + grandfather set shrinks to ≈ nothing for non-BBL once migration completes). +- **Check 5 (alias hygiene) generalizes and becomes load-bearing.** For *every* + OFL-carried family (not just `Generic * @System`): a vendor specialization must keep the + OFL base name (else the OFL preset un-shadows and creates a live per-printer duplicate — + v1's P7 pattern) and non-empty `compatible_printers`, and must not declare an id. The + C++ validator's OFL-aware `-f` (`PresetBundle.cpp:5674-5753`) already enforces the + runtime consequence; the script check names the rename as the cause. +- **New check 8 (triple integrity):** every id-declaring family resolves a complete, + family-consistent triple; roots missing `filament_vendor`/`filament_type` error. +- **New check 9 (succession integrity):** every retired entry's successor chain ends at a + live tree id (or a documented cross-island hint target); no cycles; retired ids absent + from the tree. +- Snapshot mechanism, reserved spaces (`GF*`→BBL, `QD_*`→Qidi, `P`-hex/`null`→user-custom; + v2's do-not-reserve-`OF*` note stands), and check 1/2/4/7 are unchanged. + +## 4. Migration phases + +**v3.0 — tooling + prerequisites (no profile changes).** New mint + triple resolver +(reuse the flatten machinery), succession schema migration + C++ lookup helper wired into +the §2 miss paths, Moonraker map → runtime lookup, checks 3/5/8/9, tests. Carry v2's W1 +client hardening (skip tray-wipe/temp-rewrite when a system preset holds the id; relax +the `DeviceManager.cpp:5252` assert; guard the `PresetBundle.cpp:3717` deref) — it ships +first regardless. **W3 type fixes land here**, *before* any re-mint: type is now a key +component, so minting before fixing OFL `Generic PETG-CF`/`Generic PE-CF` would re-id +those families twice. + +**v3.1 — OFL re-mint.** Every OFL-declared id re-derives from its triple (mirrors like +`OGFA00`, generics like `OGFL99`, blocks like `OEPLAB00` — all of it); each old shipped id +gains a succession entry pointing at its replacement; the 26 BBL×OFL byte-shared ids +dissolve (BBL keeps its id; the OFL family gets its own — two-island purity). Snapshot +regenerated; full gate battery + fixture overlays (this phase touches preset-visibility +machinery only via ids, but the fixtures are cheap insurance). + +**v3.2 — vendor bundles, worksheet-per-vendor (v1 machinery).** Three sub-cases: + (a) the **391 unshipped v1 `OF*` mints** re-derive under the triple key — no succession + entries (they never shipped; a documented one-time `--forget-never-shipped ` drops + them from the ledger lineage instead of retiring them, since the ledger's rationale — + ids live on in user presets and 3mfs — cannot apply to unreleased ids); + (b) **true generic tunings** riding copied legacy ids (`GFL99`-class) drop their own id + and re-point to the OFL generic family (the v1 Sovol pattern) — their old ids get + cross-island hints where BBL owns them, succession entries otherwise; + (c) remaining **shipped legacy ids** (numeric, name-shaped, pseudo-GF, the 57 + multi-vendor GF residue, the 10 P-hex — everything non-BBL/non-`QD_*`, ~800 ids) + re-mint with succession entries. Retiring the 10 P-hex system ids also removes the last + system ids from `check_ams_filament_valid`'s destructive P-gate. + +**v3.3 — ongoing consolidation (optional, per-vendor, id-stable).** Hoist vendor-unique +products into OFL where a family is genuinely multi-vendor material; thanks to the +bundle-independent key this never changes ids, so it can proceed opportunistically. + +## 5. Gates (every phase) + +`python scripts/orca_extra_profile_check.py` exit 0; `assign_filament_ids.py --check` +exit 0; unit tests green (existing 46 + new triple/succession/adoption tests); validator +`-l 2` exit 0, `-f` tree-wide exit 0, `-r` BBL+Qidi exit 0; custom-preset fixture +archives; config-equivalence — flattened effective configs differ only in `filament_id` +(re-mints), `inherits`/`compatible_printers` (re-points, as prescribed per worksheet), and +the W3 `filament_type` corrections. New for v3: a C++ test that a retired id resolves +through the succession chain in the sync miss path, and a Moonraker test that the generic +map lookup matches the shipped OFL presets. Manual AMS smoke test (tray set → old-id +resolve → clear) stays a release-checklist item. + +## 6. Accepted costs (explicit) + +- **GF ↔ OFL divergence is permanent** for products in both catalogs (PolyLite PLA ≠ + `GFL00` outside BBL). The forward-looking fix is PR #12724-style filament-database + upload, where Orca ids become first-class device artifacts. +- **Renames/type-fixes re-id families** (by design); the succession ledger absorbs the + device/user residue, but each one is still a ledger entry and a snapshot diff to review. +- **User roots** keep whatever id they copied at creation; with succession lookup in + `get_filament_by_filament_id` they now *resolve* instead of dangling — strictly better + than v1's accepted residue. +- **One-time field transition**: devices holding pre-v3 ids (AFC lanes, AMS trays, cali + records) resolve via succession on updated clients; *older* Orca versions and + BambuStudio never resolved OFL-only ids anyway (`?`/generic fallback — unchanged for + them). + +## 7. Open decisions + +1. Whether v3.2(b)'s cross-island hints (`GFL99` → OFL generic) are wanted at launch or + deferred (pure-miss-path feature; zero risk to BBL installs, small review surface). +2. v3.3 pacing: per-vendor PRs opportunistically vs. a dedicated consolidation train. +3. Whether to fold v2's W5 (P+md5 ids for inherited *user* presets, PR #13315) into v3.0's + C++ work or keep it a separate PR (recommended: separate; W1 is its only prerequisite). + +## 8. Evidence + +Carried from v2 §8 (all re-verified this session), plus: `filament_vendor` audit — 49 +distinct strings tree-wide, `"Polymaker"` byte-consistent across all five PolyLite-PLA +bundles; multi-vendor different-family GF residue = 57 ids; `MoonrakerPrinterAgent.cpp: +608-658` = 23 hardcoded OFL ids; mint examples verified live (`Qidi/PolyLite PLA` → +`OFceJcLf` under the v1 key — the fragmentation this plan removes; salt determinism +`OF8afiMO`). Alias shadowing and the OFL id fallback verified at `Preset.cpp:3684-3714` +and `PresetBundle.cpp:4842-5080` during the v1 audit; per-printer `-f` semantics at +`PresetBundle.cpp:5674-5753`. From 2c0867619c1276454c9c6f9ae73c99de00e35f06 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 16:28:35 +0800 Subject: [PATCH 015/164] 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/// ", 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 @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. --- doc/developer-reference/filament_id.md | 74 +- filament_id_plan_v3.md | 12 +- ...95A @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ACE @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ACE @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- .../Generic PA6-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PA6-CF @K1C-all.json | 2 +- .../Generic PA6-CF @K1C_CFS-C-all.json | 2 +- .../Generic PA6-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PA6-CF @K2 Plus-all.json | 2 +- .../filament/Generic PA6-CF @K2 Pro-all.json | 2 +- .../filament/Flashforge ABS-CF @FF G4.json | 3 + .../filament/Flashforge ABS-CF @FF G4P.json | 3 + ...shforge ASA Basic @FF AD5X 0.6 nozzle.json | 3 + ...shforge ASA Basic @FF AD5X 0.8 nozzle.json | 3 + .../Flashforge ASA Basic @FF AD5X.json | 3 + .../filament/Flashforge ASA-CF @FF G4.json | 2 +- .../filament/Flashforge ASA-CF @FF G4P.json | 2 +- .../filament/Flashforge ASA-CF.json | 2 +- .../Flashforge HIPS @FF G4 0.6 HF nozzle.json | 3 + .../Flashforge HIPS @FF G4 0.6 nozzle.json | 3 + .../Flashforge HIPS @FF G4 0.8 HF nozzle.json | 3 + ...Flashforge HIPS @FF G4P 0.6 HF nozzle.json | 3 + .../Flashforge HIPS @FF G4P 0.6 nozzle.json | 3 + ...Flashforge HIPS @FF G4P 0.8 HF nozzle.json | 3 + .../filament/Flashforge PAHT-CF @FF G4.json | 2 +- .../filament/Flashforge PAHT-CF @FF G4P.json | 2 +- ...shforge PLA Silk @FF AD5X 0.25 nozzle.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.6 nozzle.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Silk @FF AD5X.json | 2 +- .../filament/Flashforge PLA Silk @FF C5.json | 2 +- .../filament/Flashforge PLA Silk @FF C5P.json | 2 +- .../FusRock PAHT @FF G4 0.6 HF nozzle.json | 3 + .../FusRock PAHT @FF G4 0.8 HF nozzle.json | 3 + .../FusRock PAHT @FF G4P 0.6 HF nozzle.json | 3 + .../FusRock PAHT @FF G4P 0.8 HF nozzle.json | 3 + .../filament/FusRock PAHT-CF @FF G4.json | 2 +- .../filament/FusRock PAHT-CF @FF G4P.json | 2 +- .../FusRock/FusRock Generic PAHT-CF.json | 2 +- .../filament/Generic PLA Silk @FF C5.json | 2 +- .../filament/Generic PLA Silk @FF C5P.json | 2 +- .../EX+APS/fdm_filament_pet @EX+APS.json | 2 +- .../filament/EX/fdm_filament_pet @EX.json | 2 +- .../filament/Generic PE-CF @base.json | 5 +- .../filament/Generic PETG-CF @base.json | 5 +- .../filament/Generic PP-CF @base.json | 5 +- .../filament/Prusa Generic PA-CF @base.json | 5 +- .../filament/Prusa Generic PLA-CF @base.json | 5 +- .../filament/Snapmaker PLA Lite @U1 base.json | 3 + .../Snapmaker PLA Matte @U1 base.json | 3 + .../Snapmaker PLA SnapSpeed @U1 base.json | 3 + resources/profiles/retired_filament_ids.json | 90 + scripts/assign_filament_ids.py | 941 +- scripts/filament_id_snapshot.json | 11001 +++++++++++++++- scripts/retired_filament_ids.json | 47 - scripts/test_moonraker_lane_data.py | 115 +- scripts/tests/test_filament_id.py | 917 +- src/libslic3r/Preset.cpp | 54 + src/libslic3r/Preset.hpp | 17 + src/libslic3r/PresetBundle.cpp | 31 +- src/slic3r/GUI/CaliHistoryDialog.cpp | 8 +- src/slic3r/GUI/DeviceManager.cpp | 42 +- src/slic3r/GUI/PresetComboBoxes.cpp | 7 + src/slic3r/Utils/MoonrakerPrinterAgent.cpp | 90 +- tests/libslic3r/CMakeLists.txt | 1 + .../libslic3r/test_filament_id_succession.cpp | 61 + 67 files changed, 13311 insertions(+), 330 deletions(-) create mode 100644 resources/profiles/retired_filament_ids.json delete mode 100644 scripts/retired_filament_ids.json create mode 100644 tests/libslic3r/test_filament_id_succession.cpp diff --git a/doc/developer-reference/filament_id.md b/doc/developer-reference/filament_id.md index a45268b6aa..377c390422 100644 --- a/doc/developer-reference/filament_id.md +++ b/doc/developer-reference/filament_id.md @@ -69,9 +69,12 @@ the `Generic X` base name, write no id key). `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library preset on your printers), sets a non-empty `compatible_printers`, and writes no id key. A vendor-*branded* filament never rides a generic family id. -5. **Ids are immutable once shipped.** Renaming a family does not change its id — use - `renamed_from`. A shipped id is never recycled for a different material: old ids live on in - user presets and 3mf files and a recycled id would silently match the wrong material. +5. **Ids follow the product identity.** The id is a pure function of the product triple + `(filament_vendor, filament_type, family name)` — correcting any of them re-mints the id + **by design**, and `--update-snapshot` records the old id in the shipped succession ledger + with its successor so device trays, calibration records, and user presets keep resolving + (`renamed_from` still gates preset-*name* compatibility as before). A shipped id is never + recycled for a different material: retired ids are blocked forever. ## Minting — nobody invents ids @@ -81,15 +84,20 @@ New ids are deterministic, computed exactly like the `setting_id` precedent ```text FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") = c4d3ff49-4c32-5534-a3e3-00894157ab97 -filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, "filament_family//") ) +filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, + "filament_product///") ) ``` `base62_6` is the low 6 base62 digits (alphabet `0-9A-Za-z`) of the UUID taken as a big-endian -integer, most-significant digit first — 8 chars total, within the AMS length limit. `` -is the vendor bundle name (the stem of the vendor index json, e.g. `Qidi`, -`OrcaFilamentLibrary`); `` is the family base name. On the rare collision with any -existing or retired id, the minter salts the input (`…/1`, `…/2`, …) until free and the result -is frozen in the file. Example: family `MyBrand PLA` in vendor `Orca 3D` mints `OFvCEY5V`. +integer, most-significant digit first — 8 chars total, within the AMS length limit. The triple +comes from the family root's *flattened* config: `` is the filament +**manufacturer** (`"Polymaker"`, or `"Generic"` for generics — never the printer brand), +`` the material type, `` the root's base name; the two config +values are inheritable list options and the first element counts. The key contains no bundle +name, so the same product mints the same id in every bundle — hoisting a family into +OrcaFilamentLibrary never changes its id. On the rare collision with any existing or retired +id, the minter salts the input (`…/1`, `…/2`, …) until free and the result is frozen in the +file. Example: `Polymaker/PLA/PolyLite PLA` mints `OF5CgdDq`. Workflow for a new family: @@ -101,8 +109,12 @@ python scripts/assign_filament_ids.py --check # 4. verify — the sam # 5. Commit the profile edits together with scripts/filament_id_snapshot.json. ``` -`--mint "Vendor/Family"` prints the id for one family without touching anything. The default -run is idempotent and never rewrites a valid existing id. +`--mint "filament_vendor/filament_type/family_name"` prints the id a triple would mint without +touching anything. The default run is idempotent and never rewrites a valid existing id. +Maintenance modes (normally only used by id migrations): `--remint VENDOR` re-derives a +vendor's declared ids from their triples, `--drop-redundant-ids VENDOR` deletes declarations +that merely re-declare an inherited OFL id, and `--add-hint "OLD=NEW"` records a cross-island +succession hint. If you skip the tooling, CI fails and prints the remedy: the expected id for your family, and the instruction to run `python scripts/assign_filament_ids.py --update-snapshot` and commit @@ -116,7 +128,20 @@ the resulting diff. | `QD_*` | Qidi device protocol | frozen device contract; Qidi vendor only | | `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | | every already-shipped id | grandfather snapshot | frozen as-is; new claims need maintainer sign-off | -| every retired id | `scripts/retired_filament_ids.json` | never used again, for anything | +| every retired id | `resources/profiles/retired_filament_ids.json` | never used again, for anything | + +## The succession ledger + +`resources/profiles/retired_filament_ids.json` ships with the app. Each retired id maps to +`{"claims": [...], "successor": }` — successor chains are followed to the live end — +and a `hints` map carries the same forwarding for ids Orca cannot retire because another +island owns them (e.g. a `GF*` id whose material also exists as an OFL family). The client +consults the ledger **only on resolution miss** (AMS tray sync, tray-id type lookup, +calibration history, filament-id preset lookup): a live preset always wins first, so BBL +installs resolve `GF*` natively and behavior is unchanged wherever the raw id still exists. +This is what makes identity-driven re-mints (structure rule 5) safe: the old id keeps +resolving to the family's current preset instead of degrading to a `Generic ` fallback. +The file is append-only and maintained exclusively by `--update-snapshot` / `--add-hint`. ## How CI enforces this @@ -131,14 +156,22 @@ deterministically (running it twice changes nothing). The checks, in brief: - **Format** — every id is either in the snapshot, `OF` + 6 base62 chars, BBL's, or Qidi `QD_*`. -- **Snapshot equality** — tree claims == snapshot claims, both directions. -- **Mint conformance** — a non-grandfathered `OF*` claim must equal the mint (or a salt - iteration) of its `(vendor, family)`; the error prints the expected id. -- **Retired reuse** — any tree id present in `scripts/retired_filament_ids.json` is an error. +- **Snapshot equality** — tree claims == snapshot claims **and** tree triples == snapshot + triples, both directions: any `filament_vendor`/`filament_type`/family-name change surfaces + as a snapshot diff. +- **Mint conformance** — a non-grandfathered `OF*` id must equal the mint (or a salt + iteration) of its declarer's product triple; the error prints the expected id. +- **Retired reuse** — any tree id present in `resources/profiles/retired_filament_ids.json` is an error. Ids that fully vanish from the tree are appended there by `--update-snapshot`; the file is **append-only**. -- **Alias hygiene** — a tuned generic must keep the library preset's base name and a non-empty - `compatible_printers` (structure rule 4); the error names the rename as the cause. +- **Alias hygiene** — any vendor preset riding an OFL family id must keep the library + preset's base name, a non-empty `compatible_printers`, and no own id key (structure rule 4); + the error names the rename as the cause. +- **Triple integrity** — every declarer outside the BBL/`QD_*` islands must resolve a + non-empty `filament_vendor` and `filament_type` (generics use `"Generic"`), and all + declarers of one family within a bundle must agree on the triple. +- **Succession integrity** — retired successor chains terminate at a live id (or null) with + no cycles; `hints` keys are live, island-owned ids. - **Reserved namespaces** — `GF*` outside BBL, `QD_*` outside Qidi, `P<7-hex>` or `null` anywhere, unless that exact claim is grandfathered in the snapshot. - **Structure** — no `filament_id` key on instantiated presets; no declared-vs-inherited id @@ -161,7 +194,10 @@ check instead. inherit the family's root, write no id key. - **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the `Generic PLA` base name, set `compatible_printers`, write no id key. -- **I need to rename a family.** Keep the id, add `renamed_from`. Ids never change. +- **I need to rename a family (or fix its `filament_vendor`/`filament_type`).** Add + `renamed_from` for the name, run `--remint ` then `--update-snapshot`: the id + re-derives from the corrected identity and the old id lands in the succession ledger + pointing at the new one. Commit the profile, snapshot, and ledger diffs together. - **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then `--update-snapshot`, and commit both diffs. Do not type an id by hand. diff --git a/filament_id_plan_v3.md b/filament_id_plan_v3.md index 5cf4cf61a4..5a4bdedb26 100644 --- a/filament_id_plan_v3.md +++ b/filament_id_plan_v3.md @@ -84,7 +84,12 @@ holding OFL-only materials, on-device PA-calibration records, user-root preset c followed to the live end). A retired id may never be minted again (check 4 unchanged). Cross-island *hint* entries are permitted for ids Orca cannot retire because another island owns them (e.g. `GFL99 → `): consulted only when no live - preset matches, so BBL installs still resolve `GFL99` natively first. + preset matches, so BBL installs still resolve `GFL99` natively first. By the same + principle, an id in a foreign island's space (`GF*`/`QD_*`) that vanishes from the tree + is **released with a hint, never retired** — the island's catalog owns it and may + legitimately (re)ship it later, which check 4 must never block. (Implementation + amendment, v3.0: `--update-snapshot` routes such ids to `hints` automatically; hint + keys may be absent from the tree.) - **Shipped and consulted at runtime.** The ledger ships in `resources/`; a small helper (`resolve_filament_id_succession(id)`) follows the chain and is consulted **only on resolution miss**, before the `Generic ` name fallback, in: @@ -134,8 +139,9 @@ those families twice. **v3.1 — OFL re-mint.** Every OFL-declared id re-derives from its triple (mirrors like `OGFA00`, generics like `OGFL99`, blocks like `OEPLAB00` — all of it); each old shipped id -gains a succession entry pointing at its replacement; the 26 BBL×OFL byte-shared ids -dissolve (BBL keeps its id; the OFL family gets its own — two-island purity). Snapshot +gains a succession entry pointing at its replacement; the 26 GF-shaped ids OFL declares +(measured at v3.0: only one of them, `GFOT001`, is also declared by BBL) are released to +the BBL island space with hints at the re-minted families — two-island purity. Snapshot regenerated; full gate battery + fixture overlays (this phase touches preset-visibility machinery only via ids, but the fixtures are cheap insurance). diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json index ababa2bbb9..6b5699d6eb 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -13,7 +13,7 @@ "Anycubic" ], "filament_type": [ - "PEBA" + "TPU" ], "compatible_printers": [ "Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json index 7f8d97a333..7d4b5e30c3 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -13,7 +13,7 @@ "Anycubic" ], "filament_type": [ - "TPU for ACE" + "TPU" ], "compatible_printers": [ "Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json index e9b2079dff..7b820c0957 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -13,7 +13,7 @@ "Anycubic" ], "filament_type": [ - "PEBA" + "TPU" ], "compatible_printers": [ "Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json index c9aa3f2918..82cd2c4faa 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json @@ -87,7 +87,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json index c3108d354a..12f1662b2d 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json @@ -87,7 +87,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json index d745af0009..9e3a508a5d 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json @@ -87,7 +87,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json index 6eb1569816..ee75cdd734 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json @@ -87,7 +87,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json index 162ec5e7d1..71c4ef7a31 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json @@ -84,7 +84,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json index 6049b3b882..5c71b8ea97 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json @@ -84,7 +84,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PA6-CF" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json index b45e46341e..f1917abb9a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json index 16bcc1aeb3..03194dd913 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json index bf4a2d3194..eb123cc3ad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json index f74bcf4ab7..2e7ff56b63 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json index 4c3018a061..a63e1c7dfe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json @@ -27,6 +27,9 @@ "filament_settings_id": [ "Flashforge ASA Basic @FF AD5X" ], + "filament_type": [ + "ASA" + ], "compatible_printers": [ "Flashforge AD5X 0.4 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json index d59ed639a3..62f2f92006 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json index ed2467c6e7..8d88edb2ad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json index 30ead39e25..b400c7d253 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json @@ -16,7 +16,7 @@ "Flashforge ASA-CF" ], "filament_type": [ - "ASA" + "ASA-CF" ], "hot_plate_temp": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json index cd5ca2143f..9622514949 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json index e4b4e3171d..1f6bec0997 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json index 03cf58e9e0..684f303f65 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json index 7ea19866be..2468478e6a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json index 3a44280bc2..7b28d67e08 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json index 5943947947..4356a46961 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json index 784d279539..62f9c06854 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json index f5b823f2ea..b7f3bc5386 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json index 3074f553f0..e3d9c57369 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json @@ -31,7 +31,7 @@ "Flashforge PLA Silk @FF AD5X 0.25 nozzle" ], "filament_type": [ - "SILK" + "PLA" ], "compatible_printers": [ "Flashforge AD5X 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json index 9de378b7cc..058dce03c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json @@ -22,7 +22,7 @@ "Flashforge PLA Silk @FF AD5X 0.6 nozzle" ], "filament_type": [ - "SILK" + "PLA" ], "compatible_printers": [ "Flashforge AD5X 0.6 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json index c3dbf86193..c2f9796beb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json @@ -22,7 +22,7 @@ "Flashforge PLA Silk @FF AD5X 0.8 nozzle" ], "filament_type": [ - "SILK" + "PLA" ], "compatible_printers": [ "Flashforge AD5X 0.8 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json index 5d7ff07d01..6ebc636b10 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json @@ -22,7 +22,7 @@ "Flashforge PLA Silk @FF AD5X" ], "filament_type": [ - "SILK" + "PLA" ], "hot_plate_temp": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json index 069b924da4..7aa85e29bf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json @@ -54,7 +54,7 @@ "; filament start gcode" ], "filament_type": [ - "SILK" + "PLA" ], "hot_plate_temp": [ "65" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json index 4c9b89d97e..67ca938c59 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json @@ -57,7 +57,7 @@ "; filament start gcode" ], "filament_type": [ - "SILK" + "PLA" ], "nozzle_temperature": [ "230" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json index 06012ecf04..646f8971b2 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json index 57380ab9e4..b0cb4812c8 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json index c6b435b34b..dbccec4551 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json index e69ba59f78..07e8702da2 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json @@ -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" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index ac82265489..2e264e4b2f 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 71b3ae9af1..0aaa19dd68 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -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" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json index 98dcbdde4c..16ce25c253 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json @@ -168,7 +168,7 @@ "0" ], "filament_type": [ - "PA-CF" + "PAHT-CF" ], "filament_unload_time": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json index 16e1f0d278..2087257bcb 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5.json @@ -53,7 +53,7 @@ "; filament start gcode" ], "filament_type": [ - "SILK" + "PLA" ], "hot_plate_temp": [ "65" diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json index eb0aa584da..a5de4c8f4a 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @FF C5P.json @@ -56,7 +56,7 @@ "; filament start gcode" ], "filament_type": [ - "SILK" + "PLA" ], "nozzle_temperature": [ "230" diff --git a/resources/profiles/InfiMech/filament/EX+APS/fdm_filament_pet @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/fdm_filament_pet @EX+APS.json index 396373accc..0d8b7f36ef 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/fdm_filament_pet @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/fdm_filament_pet @EX+APS.json @@ -44,7 +44,7 @@ "12" ], "filament_type": [ - "PETG Basic" + "PETG" ], "filament_density": [ "1.27" diff --git a/resources/profiles/InfiMech/filament/EX/fdm_filament_pet @EX.json b/resources/profiles/InfiMech/filament/EX/fdm_filament_pet @EX.json index c718df9d89..0213942153 100644 --- a/resources/profiles/InfiMech/filament/EX/fdm_filament_pet @EX.json +++ b/resources/profiles/InfiMech/filament/EX/fdm_filament_pet @EX.json @@ -44,7 +44,7 @@ "12" ], "filament_type": [ - "PETG Basic" + "PETG" ], "filament_density": [ "1.27" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json index 74aea8b342..48212f7143 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pe", "from": "system", "filament_id": "OFJfx0Cl", - "instantiation": "false" + "instantiation": "false", + "filament_type": [ + "PE-CF" + ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json index 21b93a089d..08bc8ad547 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pet", "from": "system", "filament_id": "OFDCk0cz", - "instantiation": "false" + "instantiation": "false", + "filament_type": [ + "PETG-CF" + ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json index f1898eb1f6..f5fefcf0cb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pp", "from": "system", "filament_id": "OFRS2Ggt", - "instantiation": "false" + "instantiation": "false", + "filament_type": [ + "PP-CF" + ] } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json index 0b0059fa9a..350ab54889 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pa", "from": "system", "filament_id": "OFXfgh61", - "instantiation": "false" + "instantiation": "false", + "filament_type": [ + "PA-CF" + ] } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json index f45f0e0bf0..c899728e68 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pla", "from": "system", "filament_id": "OFv8SRZh", - "instantiation": "false" + "instantiation": "false", + "filament_type": [ + "PLA-CF" + ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json index b75944c3ec..351390aace 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json @@ -46,6 +46,9 @@ "filament_type": [ "PLA" ], + "filament_vendor": [ + "Snapmaker" + ], "filament_density": [ "1.24" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json index ac2ea870ea..816b04dcd5 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json @@ -46,6 +46,9 @@ "filament_type": [ "PLA" ], + "filament_vendor": [ + "Snapmaker" + ], "filament_density": [ "1.24" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json index adaaf5c3c6..12caa4b25c 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json @@ -46,6 +46,9 @@ "filament_type": [ "PLA" ], + "filament_vendor": [ + "Snapmaker" + ], "filament_density": [ "1.24" ], diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json new file mode 100644 index 0000000000..3840098c11 --- /dev/null +++ b/resources/profiles/retired_filament_ids.json @@ -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" + } + } +} diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 8100ecb880..3945c2ec8d 100644 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -1,44 +1,69 @@ #!/usr/bin/env python3 """ -Mint deterministic filament_id values for OrcaSlicer system filament families and +Mint deterministic filament_id values for OrcaSlicer system filament products and validate the tree against the sanctioned-state ledger. -Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan.md): - * filament_id is a MATERIAL-FAMILY id: one commercial product line = one id, - shared by all of that material's per-printer/per-nozzle variants. The key is - declared only on family ROOT presets (instantiation != "true"); instantiated - variants inherit it through `inherits` and never write the key themselves. - * New ids are a pure function of the family's identity: +Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan_v3.md): + * filament_id is a PRODUCT id: one commercial product line = one id, shared by + all of that material's per-printer/per-nozzle variants in every bundle. + OrcaFilamentLibrary (OFL) is the product catalog: a family's id is declared + once, on its family root (instantiation != "true"); vendor bundles carry + only specializations of OFL families — same base name, non-empty + compatible_printers, no filament_id key — which resolve the OFL id through + the loader's inherits/base-bundle walk. Products OFL does not carry mint + their id in the vendor bundle with the same rule; the key is + bundle-independent, so hoisting a family into OFL never changes its id. + * New ids are content-addressed by the product triple, resolved from the + declaring preset's flattened config (filament_vendor and filament_type are + inheritable list options — first element; family name = preset base name): filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, - "filament_family//") ) - where is the vendor bundle name (stem of the vendor index json) and - is the family name = preset base name (name with /\\s?@.*$/ stripped). + "filament_product///") ) 8 chars total, which satisfies the AMS length limit. Nobody invents ids by - hand; on the astronomically rare collision with any existing or retired id the - input is salted ("/1", "/2", ...) until free and the result is frozen in file. + hand; on the astronomically rare collision with any existing or retired id + the input is salted ("/1", "/2", ...) until free and the result is frozen + in file. Identity changes (a family rename, a filament_vendor/filament_type + fix) change the id BY DESIGN — the succession ledger keeps old ids + resolving. * Reserved id spaces that are never minted into or altered: - GF* Bambu AMS/RFID catalog (vendor BBL untouchable) - QD_* Qidi device protocol - P + 7 hex chars (case-insensitive) and the literal "null" user-custom presets (CreatePresetsDialog.cpp) - every already-shipped id, grandfathered via scripts/filament_id_snapshot.json - * scripts/filament_id_snapshot.json is the sanctioned-state ledger: it must - exactly equal the tree-derived state at all times, so any id/claim change shows - up as a reviewable diff to that file (the maintainer gate). Ids that fully - vanish from the tree are appended to scripts/retired_filament_ids.json; a - retired id may never be used again for anything. + * scripts/filament_id_snapshot.json is the sanctioned-state ledger (ids, + claims and declared triples): it must exactly equal the tree-derived state + at all times, so any id/claim/triple change shows up as a reviewable diff to + that file (the maintainer gate). Ids that fully vanish from the tree are + appended to the SHIPPED succession ledger + resources/profiles/retired_filament_ids.json as + {"claims": [...], "successor": } — successor picked by the mode + rule over the vanished id's old claims — and the runtime follows those + chains (plus cross-island "hints" for ids Orca cannot retire, e.g. GF*) + on resolution miss. A retired id may never be used again for anything. + Vanished ids in a FOREIGN island's space (GF*/QD_*) are released with a + hint instead of retired: the island's catalog owns them and may + legitimately (re)ship them. The effective-id resolution below is loader-faithful (PresetBundle.cpp load_vendor_configs_from_json): own filament_id key, else walk `inherits` within the vendor map, with OrcaFilamentLibrary base-bundle fallback; once a chain enters OFL it stays in OFL; a vendor chain that dead-ends id-less retries its direct -parent in the OFL map. +parent in the OFL map. filament_vendor / filament_type resolve the same way. Run from anywhere: python3 scripts/assign_filament_ids.py (default) mint + insert ids for id-less families; idempotent, never rewrites a valid existing id; a no-op on a fully-idded tree - --mint "V/Family" print the id that would be minted; touches nothing + --mint "Vendor/Type/Family" + print the id that triple would mint; touches nothing --update-snapshot regenerate the snapshot from the tree; retire vanished ids + with a mode-rule successor (--forget-never-shipped FILE + drops listed never-shipped ids from lineage instead) + --add-hint "OLD=NEW" + record a cross-island succession hint (standalone) + --remint VENDOR re-derive VENDOR's declared ids from their triples and + rewrite mismatches in place (repeatable) + --drop-redundant-ids VENDOR + delete declarations that re-declare an inherited OFL id --check run the validation checks (also run by CI through orca_extra_profile_check.py); exit nonzero on errors """ @@ -62,7 +87,10 @@ FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) PROFILES_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "resources", "profiles")) SNAPSHOT_PATH = os.path.join(SCRIPTS_DIR, "filament_id_snapshot.json") -RETIRED_PATH = os.path.join(SCRIPTS_DIR, "retired_filament_ids.json") +# The succession ledger ships with the app (resources/) so the runtime can +# follow retired->successor chains and cross-island hints on resolution miss. +RETIRED_PATH = os.path.join(PROFILES_DIR, "retired_filament_ids.json") +RETIRED_REL = "resources/profiles/retired_filament_ids.json" OFL = "OrcaFilamentLibrary" @@ -73,8 +101,6 @@ USER_CUSTOM_ID_RE = re.compile(r"^P[0-9A-Fa-f]{7}$", re.IGNORECASE) # Family name = preset base name: strip the first "@..." suffix. The space before # "@" is optional because names like "Afinia PLA@HS" exist. BASE_NAME_RE = re.compile(r"\s?@.*$") -# OFL generic presets relevant for alias hygiene (check 5). -OFL_GENERIC_RE = re.compile(r"^Generic .* @System$") # Salt iterations accepted by the mint-conformance check (check 3). MAX_CHECK_SALT = 8 @@ -115,15 +141,15 @@ def base_name(name): return BASE_NAME_RE.sub("", name, count=1) -def generate_filament_id(vendor, family, salt=0): - """Deterministic "OF" + 6-char base62 filament_id for a material family. +def generate_filament_id(filament_vendor, filament_type, family, salt=0): + """Deterministic "OF" + 6-char base62 filament_id for a filament product. - input = "filament_family//" (+ "/" when salted); - u = uuid5(FILAMENT_ID_NAMESPACE, input); the id tail is the low - FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), most-significant - first — the same derivation as generate_preset_setting_id. + input = "filament_product///" + (+ "/" when salted); u = uuid5(FILAMENT_ID_NAMESPACE, input); the id + tail is the low FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), + most-significant first — the same derivation as generate_preset_setting_id. """ - key = f"filament_family/{vendor}/{family}" + key = f"filament_product/{filament_vendor}/{filament_type}/{family}" if salt: key = f"{key}/{salt}" u = uuid.uuid5(FILAMENT_ID_NAMESPACE, key) @@ -135,13 +161,14 @@ def generate_filament_id(vendor, family, salt=0): return "OF" + "".join(reversed(digits)) -def mint_filament_id(vendor, family, taken): - """Mint the family's id, salting past any id in `taken` (existing + retired).""" +def mint_filament_id(filament_vendor, filament_type, family, taken): + """Mint the product's id, salting past any id in `taken` (existing + retired).""" for salt in range(10000): - candidate = generate_filament_id(vendor, family, salt) + candidate = generate_filament_id(filament_vendor, filament_type, family, salt) if candidate not in taken: return candidate - raise RuntimeError(f"could not mint a free filament_id for {vendor}/{family}") + raise RuntimeError( + f"could not mint a free filament_id for {filament_vendor}/{filament_type}/{family}") # --------------------------------------------------------------------------- @@ -157,7 +184,7 @@ def list_vendor_names(profiles_dir): """Vendor bundles = subdirectories with a matching .json index file. (Ignores stray non-bundle entries such as the tracked "user" directory, - which has no user.json index.) + which has no user.json index, and the retired_filament_ids.json ledger.) """ profiles_dir = str(profiles_dir) return sorted( @@ -196,6 +223,8 @@ def load_vendor_filaments(profiles_dir, vendor): "inherits": data.get("inherits"), "instantiation": str(data.get("instantiation", "")).lower() == "true", "compatible_printers": data.get("compatible_printers") or [], + "filament_vendor": data.get("filament_vendor"), + "filament_type": data.get("filament_type"), } return presets, errors @@ -248,6 +277,53 @@ def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, return None, "missing", entry +def resolve_filament_field(name, field, filaments, ofl_filaments, seen=None, in_ofl=False): + """Resolve an inheritable list option (filament_vendor / filament_type) with + the same hop semantics as resolve_filament_id: own value, else walk + `inherits` in the vendor map with OFL base-bundle fallback. Values are list + options — the first element counts; "" when the chain never defines one. + """ + if seen is None: + seen = set() + if name in seen: + return "" + seen.add(name) + if in_ofl: + rec = ofl_filaments.get(name) + else: + rec = filaments.get(name) + if rec is None and name in ofl_filaments: + rec, in_ofl = ofl_filaments[name], True + if rec is None: + return "" + value = rec.get(field) + if isinstance(value, str): + value = [value] + if value and value[0]: + return value[0] + parent = rec.get("inherits") + if parent: + found = resolve_filament_field(parent, field, filaments, ofl_filaments, seen, in_ofl) + if found or in_ofl: + return found + if parent in ofl_filaments: + return resolve_filament_field(parent, field, filaments, ofl_filaments, set(), True) + return found + return "" + + +def resolve_triple(name, filaments, ofl_filaments): + """The preset's mint-key triple (filament_vendor, filament_type, family).""" + return (resolve_filament_field(name, "filament_vendor", filaments, ofl_filaments), + resolve_filament_field(name, "filament_type", filaments, ofl_filaments), + base_name(name)) + + +def is_island_declaration(vendor, fid): + """Declarations frozen outside the OF mint domain: all of BBL, QD_* in Qidi.""" + return vendor == "BBL" or (vendor == "Qidi" and fid.startswith("QD_")) + + def analyze_tree(profiles_dir): """Load every vendor bundle and derive the full filament_id state. @@ -260,6 +336,7 @@ def analyze_tree(profiles_dir): ofl_filaments, ofl_errors = ( load_vendor_filaments(profiles_dir, OFL) if OFL in vendor_names else ({}, []) ) + ofl_declared = {r["filament_id"] for r in ofl_filaments.values() if r.get("filament_id")} vendors = {} read_errors = list(ofl_errors) @@ -287,21 +364,35 @@ def analyze_tree(profiles_dir): instantiated_with_id = [] # "Vendor/PresetName" (own filament_id key on an instantiated preset) overrides = [] # (vendor, name, declared, inherited, file) missing_effective = [] # (vendor, name, file) instantiated presets resolving no id - alias_candidates = [] # (vendor, rec, ofl_entry) presets id-resolved through an OFL generic + alias_candidates = [] # (vendor, rec, ofl_entry, own_key) presets riding an OFL family + triples = {} # fid -> set of triples of its non-island declarers + declarer_triples = [] # (vendor, rec, fid, triple) per non-island declarer + family_triples = {} # (vendor, family) -> {triple: [declarer names]} for vendor, filaments in vendors.items(): occurring = vendor_ids.setdefault(vendor, set()) for rec in filaments.values(): if rec.get("filament_id"): - occurring.add(rec["filament_id"]) - declared_ids.setdefault(vendor, set()).add(rec["filament_id"]) - ids.setdefault(rec["filament_id"], set()) + fid = rec["filament_id"] + occurring.add(fid) + declared_ids.setdefault(vendor, set()).add(fid) + ids.setdefault(fid, set()) + if not is_island_declaration(vendor, fid): + triple = resolve_triple(rec["name"], filaments, ofl_filaments) + rec["triple"] = triple + declarer_triples.append((vendor, rec, fid, triple)) + triples.setdefault(fid, set()).add(triple) + family_triples.setdefault( + (vendor, base_name(rec["name"])), {}).setdefault( + triple, []).append(rec["name"]) if rec.get("inherits"): - inherited, _src, _e = resolve_filament_id( + inherited, _src, skip_entry = resolve_filament_id( rec["name"], filaments, ofl_filaments, skip_own=True) - if inherited and inherited != rec["filament_id"]: - overrides.append( - (vendor, rec["name"], rec["filament_id"], inherited, rec["file"])) + if inherited and inherited != fid: + overrides.append((vendor, rec["name"], fid, inherited, rec["file"])) + if (vendor != OFL and skip_entry and inherited + and inherited in ofl_declared): + alias_candidates.append((vendor, rec, skip_entry, True)) if not rec["instantiation"]: continue eff = rec.get("eff_filament_id") @@ -312,18 +403,25 @@ def analyze_tree(profiles_dir): ids.setdefault(eff, set()).add(f"{vendor}/{base_name(rec['name'])}") if rec.get("filament_id"): instantiated_with_id.append(f"{vendor}/{rec['name']}") - if vendor != OFL and rec["ofl_entry"] and OFL_GENERIC_RE.match(rec["ofl_entry"]): - alias_candidates.append((vendor, rec, rec["ofl_entry"])) + if vendor != OFL and rec["ofl_entry"] and eff in ofl_declared: + alias_candidates.append((vendor, rec, rec["ofl_entry"], False)) - # Alias hygiene (check 5): a vendor preset that tunes an OFL generic (no id - # anywhere in its vendor-side chain) is matched to the OFL preset by ALIAS - # (base name); renaming it re-exposes the OFL generic and creates a live - # duplicate, and empty compatible_printers cannot claim any printer. + # Alias hygiene (check 5): a vendor preset that rides an OFL family (its id + # resolves through OFL) is matched to the OFL preset by ALIAS (base name); + # renaming it re-exposes the OFL preset and creates a live duplicate, empty + # compatible_printers cannot claim any printer, and declaring its own + # filament_id key forks the family off the catalog id. alias_violations = [] # (vendor, name, ofl_entry, reason, file) - for vendor, rec, entry in alias_candidates: + for vendor, rec, entry, own_key in alias_candidates: expected = base_name(entry) own_base = base_name(rec["name"]) - if own_base != expected: + if own_key: + alias_violations.append(( + vendor, rec["name"], entry, + f'declares its own filament_id "{rec["filament_id"]}" — dropping the key ' + f"lets it resolve the OFL family's id through inherits", + rec["file"])) + elif own_base != expected: alias_violations.append(( vendor, rec["name"], entry, f'base name "{own_base}" != "{expected}" — the rename re-exposes the ' @@ -335,6 +433,18 @@ def analyze_tree(profiles_dir): "empty compatible_printers cannot shadow the OFL preset anywhere", rec["file"])) + # Cross-bundle triple divergence (check 8, warning only): the same family + # name declared in several bundles with different triples cannot converge + # on one id until the divergence is fixed. + name_bundles = {} + for (vendor, family), tmap in family_triples.items(): + name_bundles.setdefault(family, {})[vendor] = frozenset(tmap) + cross_bundle_triples = [ + (family, {v: sorted(ts) for v, ts in per_vendor.items()}) + for family, per_vendor in sorted(name_bundles.items()) + if len(per_vendor) > 1 and len(set(per_vendor.values())) > 1 + ] + return { "vendors": vendors, "read_errors": read_errors, @@ -347,11 +457,18 @@ def analyze_tree(profiles_dir): "missing_effective": sorted(missing_effective), "alias_violations": alias_violations, "alias_exceptions": sorted(f"{v}/{n}" for v, n, _e, _r, _f in alias_violations), + "triples": {fid: sorted(list(t) for t in ts) for fid, ts in triples.items()}, + "triple_sets": triples, + "declarer_triples": declarer_triples, + "family_triples": family_triples, + "triple_exceptions": sorted( + f"{v}/{f}" for (v, f), tmap in family_triples.items() if len(tmap) > 1), + "cross_bundle_triples": cross_bundle_triples, } # --------------------------------------------------------------------------- -# Snapshot / retired-ledger IO +# Snapshot / succession-ledger IO # --------------------------------------------------------------------------- def snapshot_from_analysis(analysis): @@ -360,6 +477,8 @@ def snapshot_from_analysis(analysis): "instantiated_with_id": analysis["instantiated_with_id"], "id_overrides": analysis["id_overrides"], "alias_exceptions": analysis["alias_exceptions"], + "triples": analysis["triples"], + "triple_exceptions": analysis["triple_exceptions"], } @@ -368,16 +487,28 @@ def load_snapshot(path): if not os.path.exists(path): return None data = load_json(path) - for key in ("ids", "instantiated_with_id", "id_overrides", "alias_exceptions"): - data.setdefault(key, {} if key == "ids" else []) + for key in ("ids", "triples"): + data.setdefault(key, {}) + for key in ("instantiated_with_id", "id_overrides", "alias_exceptions", + "triple_exceptions"): + data.setdefault(key, []) return data -def load_retired(path): - """Return the retired-ids map {id: ["Vendor/Family", ...]} ({} if absent).""" +def load_ledger(path): + """The shipped succession ledger: + {"retired": {id: {"claims": [...], "successor": id|None}}, "hints": {id: id}}. + Empty maps when the file is absent. + """ if not os.path.exists(path): - return {} - return load_json(path).get("retired", {}) + return {"retired": {}, "hints": {}} + data = load_json(path) + return {"retired": data.get("retired", {}), "hints": data.get("hints", {})} + + +def load_retired(path): + """The ledger's retired map (see load_ledger); {} when the file is absent.""" + return load_ledger(path)["retired"] def write_ledger(path, obj): @@ -387,6 +518,72 @@ def write_ledger(path, obj): f.write("\n") +def claim_effective_ids(analysis): + """Reverse of analysis["ids"]: claim "Vendor/Family" -> set of effective ids.""" + claim_ids = {} + for fid, claims in analysis["ids"].items(): + for claim in claims: + claim_ids.setdefault(claim, set()).add(fid) + return claim_ids + + +def successor_by_mode(claims, claim_ids): + """Mode rule for a retiring id's successor: every old claim whose family + still exists votes for the family's current effective id(s); most votes + wins, ties break to the lexicographically smallest id, no votes -> None. + Returns (successor_or_None, vote_counts). + """ + counts = {} + for claim in claims: + for fid in claim_ids.get(claim, ()): + counts[fid] = counts.get(fid, 0) + 1 + if not counts: + return None, counts + best = max(counts.values()) + return min(f for f, n in counts.items() if n == best), counts + + +def migrate_retired_entries(old_retired, claim_ids): + """One-shot v3 schema migration: list-valued entries {id: [claims]} become + {id: {"claims": [...], "successor": }}; object entries + pass through untouched. + """ + migrated = {} + for fid, entry in old_retired.items(): + if isinstance(entry, dict): + migrated[fid] = entry + continue + successor, _counts = successor_by_mode(entry, claim_ids) + migrated[fid] = {"claims": sorted(entry), "successor": successor} + return migrated + + +def follow_succession(fid, seen, retired, hints, live): + """Follow retired->successor / hints->target forwarding starting at `fid`. + + Returns (status, node): "null" (chain ended on an heirless retirement), + "live" (reached a live tree id), "cycle", or "dead-end" (an id that is + neither live nor forwarded anywhere). `seen` pre-seeds the cycle guard. + """ + seen = set(seen) + cur = fid + while True: + if cur is None: + return "null", None + if cur in seen: + return "cycle", cur + seen.add(cur) + if cur in live: + return "live", cur + entry = retired.get(cur) + if entry is not None: + cur = entry.get("successor") if isinstance(entry, dict) else None + elif cur in hints: + cur = hints[cur] + else: + return "dead-end", cur + + # --------------------------------------------------------------------------- # Reserved namespaces # --------------------------------------------------------------------------- @@ -414,17 +611,28 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, the snapshot, or match ^OF[0-9A-Za-z]{6}$, or belong to vendor BBL, or be a QD_* id within vendor Qidi. 2. Snapshot equality, both directions: the tree-derived id->families multimap - must equal the snapshot exactly (the snapshot diff is the maintainer gate). - 3. Mint conformance: an OF-format id's claim that is not grandfathered must - equal the mint of (vendor, family) or a salted iteration. + AND the id->triples map of the declarers must equal the snapshot exactly + (the snapshot diff is the maintainer gate). + 3. Mint conformance: a non-island OF-format declaration must equal the mint + of the declarer's triple or a salted iteration, unless that exact + (id, triple) pair is grandfathered in the snapshot. 4. Retired ids may never occur again. - 5. Alias hygiene: a tuned OFL generic must keep the generic's base name and - claim printers via non-empty compatible_printers. + 5. Alias hygiene: a vendor preset riding an OFL family must keep the OFL + base name, claim printers via non-empty compatible_printers, and declare + no filament_id key of its own. 6. Reserved namespaces (GF*/QD_*/P-hex/"null") only for their owner vendors, except claims grandfathered in the snapshot. 7. Structure ratchet: (a) no NEW instantiated preset carries its own filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every instantiated filament resolves an effective id (a hard load error in C++). + 8. Triple integrity: (a) every non-island declarer resolves non-empty + filament_vendor and filament_type (hard error, no grandfathering); + (b) declarers of one (bundle, family) resolve identical triples, unless + grandfathered in snapshot triple_exceptions; cross-bundle divergence on + the same family name is a warning only. + 9. Succession integrity: retired successor chains terminate at a live id or + null without cycles; hint keys are live island-declared ids and hint + chains terminate live. """ _utf8_console() errors = 0 @@ -433,7 +641,9 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if snapshot is None: print_error(f"filament_id snapshot not found at {snapshot_path}; {UPDATE_HINT}") return 1 - retired = load_retired(retired_path) + ledger = load_ledger(retired_path) + retired = ledger["retired"] + hints = ledger["hints"] for msg in analysis["read_errors"]: print_error(msg) @@ -475,38 +685,48 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if fid not in tree_ids: print_error( f'filament_id stability: snapshot id "{fid}" vanished from the tree ' - f"(ids are immutable once shipped); {UPDATE_HINT}") + f"(shipped ids retire through the succession ledger); {UPDATE_HINT}") errors += 1 continue for claim in snap_ids[fid]: if claim not in tree_ids[fid]: print_error( f'filament_id stability: snapshot claim "{claim}" of id "{fid}" ' - f"vanished from the tree (ids are immutable once shipped); {UPDATE_HINT}") + f"vanished from the tree; {UPDATE_HINT}") + errors += 1 + # ... and the declared triples, both directions. + snap_triples = snapshot["triples"] + tree_triples = analysis["triples"] + for fid in sorted(tree_triples): + for t in tree_triples[fid]: + if t not in snap_triples.get(fid, []): + print_error( + f'filament_id "{fid}" triple "{"/".join(t)}" is not sanctioned by ' + f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") + errors += 1 + for fid in sorted(snap_triples): + for t in snap_triples[fid]: + if t not in tree_triples.get(fid, []): + print_error( + f'filament_id triple stability: snapshot triple "{"/".join(t)}" of ' + f'id "{fid}" vanished from the tree; {UPDATE_HINT}') errors += 1 - # -- 3. mint conformance for OF-format ids ------------------------------ - for fid in sorted(tree_ids): + # -- 3. mint conformance for OF-format declarations ---------------------- + for vendor, rec, fid, triple in sorted( + analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): if not OF_ID_RE.match(fid): continue - for claim in tree_ids[fid]: - if claim in snap_ids.get(fid, []): - continue # grandfathered - vendor, family = claim.split("/", 1) - if fid not in analysis["declared_ids"].get(vendor, set()): - # The claiming vendor never declares this id — it is inherited - # from another vendor's root (an OFL generic family): correctly - # tuned generics ride the OFL family id by design, so only the - # snapshot gate (check 2) applies to this claim. - continue - minted = [generate_filament_id(vendor, family, s) for s in range(MAX_CHECK_SALT + 1)] - if fid not in minted: - print_error( - f'filament_id "{fid}" of family "{claim}" does not match its mint: ' - f'expected "{minted[0]}" (or a salted iteration); paste the expected ' - f"id into the family root (or, for an intentionally shared id, " - f"{UPDATE_HINT})") - errors += 1 + if list(triple) in snap_triples.get(fid, []): + continue # grandfathered (id, triple) pair + minted = [generate_filament_id(*triple, salt=s) for s in range(MAX_CHECK_SALT + 1)] + if fid not in minted: + print_error( + f'filament_id "{fid}" declared by "{rec["name"]}" ({rec["file"]}) does ' + f'not match the mint of its triple "{"/".join(triple)}": expected ' + f'"{minted[0]}" (or a salted iteration); paste the expected id into the ' + f"family root (or, for an intentionally kept id, {UPDATE_HINT})") + errors += 1 # -- 4. retired ids may never come back --------------------------------- for vendor in sorted(analysis["vendor_ids"]): @@ -514,18 +734,19 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if fid in retired: print_error( f'filament_id "{fid}" ({vendor}) is retired ' - f"(scripts/retired_filament_ids.json) and may never be reused") + f"({RETIRED_REL}) and may never be reused") errors += 1 - # -- 5. alias hygiene for tuned OFL generics ----------------------------- + # -- 5. alias hygiene for presets riding OFL families -------------------- exceptions = set(snapshot["alias_exceptions"]) for vendor, name, entry, reason, file in analysis["alias_violations"]: if f"{vendor}/{name}" in exceptions: continue print_error( - f'preset "{name}" ({file}) tunes the OFL generic "{entry}" but {reason}; ' - f'keep the OFL base name and non-empty compatible_printers, or give the ' - f"family its own minted id") + f'preset "{name}" ({file}) rides the OFL family "{entry}" but {reason}; ' + f"a vendor specialization keeps the OFL base name, sets non-empty " + f"compatible_printers and declares no filament_id key — or the family " + f"gets its own minted id") errors += 1 # -- 6. reserved namespaces ---------------------------------------------- @@ -562,8 +783,10 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f'inherits chain resolves "{inherited}"; a preset must not override its ' f"family's id") errors += 1 + ofl_map = analysis["vendors"].get(OFL, {}) for vendor, name, file in analysis["missing_effective"]: - expected = generate_filament_id(vendor, base_name(name)) + triple = resolve_triple(name, analysis["vendors"][vendor], ofl_map) + expected = generate_filament_id(*triple) print_error( f'instantiated filament "{name}" ({file}) resolves no filament_id anywhere ' f"in its inherits chain — this is a hard load error in the C++ loader; " @@ -571,6 +794,95 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') errors += 1 + # -- 8. triple integrity --------------------------------------------------- + for vendor, rec, fid, triple in sorted( + analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): + if triple[0] and triple[1]: + continue + missing = " and ".join( + k for k, v in (("filament_vendor", triple[0]), + ("filament_type", triple[1])) if not v) + print_error( + f'preset "{rec["name"]}" ({rec["file"]}) declares filament_id "{fid}" but ' + f"resolves empty {missing}; the mint key needs both (generic materials " + f'use filament_vendor "Generic")') + errors += 1 + triple_exceptions = set(snapshot["triple_exceptions"]) + for (vendor, family), tmap in sorted(analysis["family_triples"].items()): + if len(tmap) < 2 or f"{vendor}/{family}" in triple_exceptions: + continue + detail = "; ".join( + f'"{"/".join(t)}" ({", ".join(sorted(names))})' + for t, names in sorted(tmap.items())) + print_error( + f'family "{vendor}/{family}" declarers resolve divergent triples: {detail}; ' + f"declarers of one family must agree on (filament_vendor, filament_type)") + errors += 1 + for family, per_vendor in analysis["cross_bundle_triples"]: + detail = "; ".join( + f'{v}: {", ".join("/".join(t) for t in ts)}' + for v, ts in sorted(per_vendor.items())) + print_warning( + f'family name "{family}" resolves different triples across bundles ' + f"({detail}); bundles of one product converge on one id only once " + f"their triples agree") + + # -- 9. succession integrity (ledger-internal) ----------------------------- + live = set(tree_ids) + for fid in sorted(retired): + entry = retired[fid] + if (not isinstance(entry, dict) + or not isinstance(entry.get("claims", []), list) + or not (entry.get("successor") is None + or isinstance(entry.get("successor"), str))): + print_error( + f'retired entry "{fid}" ({RETIRED_REL}) is not of the form ' + f'{{"claims": [...], "successor": }}') + errors += 1 + continue + status, node = follow_succession(entry.get("successor"), {fid}, retired, hints, live) + if status == "cycle": + print_error( + f'succession chain of retired id "{fid}" cycles at "{node}" ({RETIRED_REL})') + errors += 1 + elif status == "dead-end": + print_error( + f'succession chain of retired id "{fid}" dead-ends at "{node}", which is ' + f"neither a live tree id nor retired/hinted ({RETIRED_REL})") + errors += 1 + for key in sorted(hints): + target = hints[key] + _is_reserved, island = reserved_space_owner(key) + if island is None: + print_error( + f'hint key "{key}" ({RETIRED_REL}) is not in an island id space ' + f"(GF*/QD_*); non-island ids are retired with a successor instead") + errors += 1 + continue + if key in retired: + print_error( + f'hint key "{key}" ({RETIRED_REL}) is also retired; an id is either ' + f"retired (Orca-owned) or hinted (island-owned), never both") + errors += 1 + continue + # A hint key may be absent from the tree (released to its island); when + # live, only island vendors may declare it. + outsiders = sorted( + v for v in analysis["declared_ids"] + if key in analysis["declared_ids"][v] and not is_island_declaration(v, key)) + if outsiders: + print_error( + f'hint key "{key}" ({RETIRED_REL}) is declared by non-island vendor(s) ' + f"{outsiders}; hints apply only once no non-island vendor declares the " + f"id — re-mint those declarers first") + errors += 1 + status, node = follow_succession(target, {key}, retired, hints, live) + if status != "live": + print_error( + f'hint "{key}" -> "{target}" ({RETIRED_REL}) must chain-terminate at a ' + f"live tree id (got {status} at \"{node}\")") + errors += 1 + return errors @@ -579,9 +891,19 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # --------------------------------------------------------------------------- def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - retired_path=RETIRED_PATH, allow_shared_catalog=False): + retired_path=RETIRED_PATH, allow_shared_catalog=False, + forget_path=None): """Regenerate the snapshot from the tree; retire ids that fully vanished. + Vanished ids gain a succession-ledger entry whose successor is picked by + the mode rule over their old claims (None when the family died heirless); + vanished ids in a foreign island's space (GF*/QD_*) are released with a + hint instead — the island catalog owns them, so they must stay mintable + there and must never be blocked by check 4. + --forget-never-shipped lists ids to drop from lineage instead of retiring + (never shipped => nothing outside the tree references them); succession + chains through them are spliced to their mode-rule successor. + Refuses to sanction NEW reserved-namespace ids (or new claims on them) for non-owner vendors unless --allow-shared-catalog is passed. Idempotent: a second run over an unchanged tree changes nothing. Returns 0 on success. @@ -593,6 +915,21 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, old_snap = load_snapshot(snapshot_path) old_ids = old_snap["ids"] if old_snap else {} + forget = set() + if forget_path: + data = load_json(forget_path) + if not isinstance(data, list) or not all(isinstance(x, str) for x in data): + print_error(f"--forget-never-shipped expects a JSON list of ids: {forget_path}") + return 1 + forget = set(data) + still_live = sorted(forget & set(new_snap["ids"])) + if still_live: + for fid in still_live: + print_error( + f'--forget-never-shipped: id "{fid}" is still in the tree and can ' + f"neither be forgotten nor retired") + return 1 + # Gate: new reserved-namespace ids / claims for non-owner vendors. refusals = [] for fid, claims in sorted(new_snap["ids"].items()): @@ -622,22 +959,69 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # Retirement is permanent: refuse to sanction a tree that resurrects a # retired id (check 4 would reject the resulting snapshot forever anyway). - retired = load_retired(retired_path) + ledger = load_ledger(retired_path) + retired = ledger["retired"] reused = sorted(set(new_snap["ids"]) & set(retired)) if reused: for fid in reused: print_error( f'refusing to sanction retired filament_id "{fid}" ' - f"(scripts/retired_filament_ids.json is append-only; retired ids may " + f"({RETIRED_REL} is append-only; retired ids may " f"never be reused — mint a fresh id for the family instead)") return 1 - # Retire ids that fully vanished from the tree (append-only ledger). + # Retire ids that fully vanished from the tree (append-only ledger), with a + # mode-rule successor so devices and user presets keep resolving. Vanished + # ids in a FOREIGN island's reserved space (GF*/QD_*) are never retired — + # the island's catalog still owns them and may legitimately (re)ship them — + # they are RELEASED, with a succession hint so they keep resolving on miss. + claim_ids = claim_effective_ids(analysis) newly_retired = [] + forgotten = [] + released = [] for fid in sorted(old_ids): - if fid not in new_snap["ids"]: - retired[fid] = sorted(set(retired.get(fid, [])) | set(old_ids[fid])) - newly_retired.append(fid) + if fid in new_snap["ids"]: + continue + if fid in forget: + forgotten.append(fid) + print_info(f'forgotten (never shipped): "{fid}" — no retirement entry') + continue + _is_reserved, island = reserved_space_owner(fid) + if island is not None: + successor, _counts = successor_by_mode(old_ids[fid], claim_ids) + if successor and fid not in ledger["hints"]: + ledger["hints"][fid] = successor + released.append(fid) + print_info( + f'released to the {island} island space: "{fid}"' + + (f' — hint -> "{ledger["hints"][fid]}"' if fid in ledger["hints"] + else " (no successor computable; --add-hint if one is needed)")) + continue + entry = retired.get(fid) + if not isinstance(entry, dict): + successor, counts = successor_by_mode(old_ids[fid], claim_ids) + if len(counts) > 1: + losers = sorted(set(counts) - {successor}) + print_warning( + f'retiring "{fid}": successor "{successor}" won the claim vote ' + f"({counts[successor]}); losing candidate(s): {', '.join(losers)}") + entry = {"claims": list(entry) if entry else [], "successor": successor} + entry["claims"] = sorted(set(entry["claims"]) | set(old_ids[fid])) + retired[fid] = entry + newly_retired.append(fid) + + # Splice succession chains through forgotten ids so they stay live. + spliced = [] + for fid in sorted(retired): + entry = retired[fid] + successor = entry.get("successor") if isinstance(entry, dict) else None + if successor in forget: + new_successor, _counts = successor_by_mode(old_ids.get(successor, []), claim_ids) + entry["successor"] = new_successor + spliced.append(fid) + print_info( + f'spliced succession: "{fid}" -> {json.dumps(new_successor)} ' + f'(through forgotten "{successor}")') # Diff summary. added_ids = sorted(set(new_snap["ids"]) - set(old_ids)) @@ -649,20 +1033,29 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, len(set(claims) - set(new_snap["ids"].get(fid, []))) for fid, claims in old_ids.items()) old_snap = old_snap or {"ids": {}, "instantiated_with_id": [], "id_overrides": [], - "alias_exceptions": []} + "alias_exceptions": [], "triples": {}, + "triple_exceptions": []} changed = new_snap != old_snap if changed: write_ledger(snapshot_path, new_snap) - if newly_retired or not os.path.exists(retired_path): - write_ledger(retired_path, {"retired": retired}) + if newly_retired or spliced or released or not os.path.exists(retired_path): + write_ledger(retired_path, {"retired": retired, "hints": ledger["hints"]}) print_info(f"snapshot ids : {len(new_snap['ids'])} (+{len(added_ids)} / -{len(removed_ids)})") print_info(f"claims added : {added_claims}") print_info(f"claims removed : {removed_claims}") + print_info(f"declared triples : {len(new_snap['triples'])}") print_info(f"ids retired now : {len(newly_retired)}" + (f" ({', '.join(newly_retired)})" if newly_retired else "")) - for section in ("instantiated_with_id", "id_overrides", "alias_exceptions"): + if forgotten: + print_info(f"ids forgotten : {len(forgotten)} ({', '.join(forgotten)})") + if released: + print_info(f"ids released : {len(released)} ({', '.join(released)})") + if spliced: + print_info(f"chains spliced : {len(spliced)} ({', '.join(spliced)})") + for section in ("instantiated_with_id", "id_overrides", "alias_exceptions", + "triple_exceptions"): before, after = len(old_snap.get(section, [])), len(new_snap[section]) print_info(f"{section:<18}: {after} ({after - before:+d})") if changed: @@ -672,8 +1065,64 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, return 0 +def add_hints(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): + """--add-hint "OLD=NEW": forward an island-space id to a live id. + + OLD must sit in an island id space (GF*/QD_*), must not be retired, and — + when live in the tree — may be declared only by island vendors (Orca cannot + retire it). An absent OLD is fine: island catalogs own ids Orca never + shipped or has released. NEW must be live in the tree. All pairs validate + before anything is written. Returns 0 on success. + """ + _utf8_console() + analysis = analyze_tree(profiles_dir) + errors = 0 + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + ledger = load_ledger(retired_path) + live = set(analysis["ids"]) + parsed = [] + for pair in pairs: + if "=" not in pair: + print_error(f'--add-hint expects "OLD=NEW", got "{pair}"') + errors += 1 + continue + old, new = pair.split("=", 1) + _is_reserved, island = reserved_space_owner(old) + outsiders = sorted( + v for v in analysis["declared_ids"] + if old in analysis["declared_ids"][v] and not is_island_declaration(v, old)) + if old in ledger["retired"]: + print_error(f'--add-hint: "{old}" is retired; its succession entry already forwards it') + errors += 1 + elif island is None: + print_error( + f'--add-hint: "{old}" is not in an island id space (GF*/QD_*); ' + f"non-island ids are retired with a successor by --update-snapshot") + errors += 1 + elif outsiders: + print_error( + f'--add-hint: "{old}" is declared by non-island vendor(s) {outsiders}; ' + f"hints apply only once no non-island vendor declares the id — re-mint " + f"those declarers first") + errors += 1 + elif new not in live: + print_error(f'--add-hint: target "{new}" is not a live tree id') + errors += 1 + else: + parsed.append((old, new)) + if errors: + return 1 + for old, new in parsed: + ledger["hints"][old] = new + print_info(f'hint added: "{old}" -> "{new}"') + write_ledger(retired_path, {"retired": ledger["retired"], "hints": ledger["hints"]}) + return 0 + + # --------------------------------------------------------------------------- -# Default run: mint + insert ids for id-less families +# Byte-preserving profile edits # --------------------------------------------------------------------------- def insert_filament_id(text, new_id): @@ -694,33 +1143,90 @@ def insert_filament_id(text, new_id): return text, 0 -def write_filament_id(path, new_id): - """Insert new_id into the profile at path, byte-preserving everything else. +def replace_filament_id_value(text, old_id, new_id): + """Swap the JSON string VALUE on the `"filament_id"` line, byte-preserving + everything else. Returns (text, replacements made). + """ + pattern = re.compile( + r'(^[ \t]*"filament_id"[ \t]*:[ \t]*)' + + re.escape(json.dumps(old_id, ensure_ascii=False)), + re.MULTILINE) + return pattern.subn( + lambda m: m.group(1) + json.dumps(new_id, ensure_ascii=False), text, count=1) - Binary IO keeps the file's original line endings (LF or CRLF) and exact - formatting apart from the inserted line; the result is re-parsed to - guarantee it is still valid JSON. + +def delete_filament_id_line(text, old_id): + """Delete the `"filament_id"` line, byte-preserving the rest. + + Handles both the canonical layout (trailing comma) and a last-property + layout (comma on the preceding line). Returns (text, deletions made). + """ + val = re.escape(json.dumps(old_id, ensure_ascii=False)) + m = re.search(r'^[ \t]*"filament_id"[ \t]*:[ \t]*' + val + r'[ \t]*,[ \t]*\r?\n', + text, re.MULTILINE) + if m: + return text[:m.start()] + text[m.end():], 1 + m = re.search(r',[ \t]*\r?\n[ \t]*"filament_id"[ \t]*:[ \t]*' + val + r'[ \t]*(?=\r?\n)', + text) + if m: + return text[:m.start()] + text[m.end():], 1 + return text, 0 + + +def _edit_profile(path, edit): + """Apply `edit(text) -> (text, n)` to the profile at path, byte-preserving. + + Binary IO keeps the file's original line endings (LF or CRLF), BOM and exact + formatting apart from the edit; the result is re-parsed and returned so the + caller can verify the outcome. Raises when the edit found no anchor. """ with open(path, "rb") as f: raw = f.read() bom = raw.startswith(b"\xef\xbb\xbf") text = raw.decode("utf-8-sig") - text, n = insert_filament_id(text, new_id) + text, n = edit(text) if n == 0: - raise RuntimeError(f"Could not insert filament_id into {path}") - json.loads(text) # fail loudly if the edit broke the JSON + raise RuntimeError(f"could not apply filament_id edit to {path}") + data = json.loads(text) # fail loudly if the edit broke the JSON with open(path, "wb") as f: f.write((b"\xef\xbb\xbf" if bom else b"") + text.encode("utf-8")) + return data +def write_filament_id(path, new_id): + """Insert new_id into the profile at path, byte-preserving everything else.""" + _edit_profile(path, lambda text: insert_filament_id(text, new_id)) + + +def rewrite_filament_id(path, old_id, new_id): + """Replace the filament_id value old_id -> new_id; re-parses to verify.""" + data = _edit_profile(path, lambda text: replace_filament_id_value(text, old_id, new_id)) + if data.get("filament_id") != new_id: + raise RuntimeError(f'rewrite of filament_id "{old_id}" -> "{new_id}" in {path} ' + f"did not take effect") + + +def remove_filament_id(path, old_id): + """Delete the filament_id declaration line; re-parses to verify.""" + data = _edit_profile(path, lambda text: delete_filament_id_line(text, old_id)) + if "filament_id" in data: + raise RuntimeError(f'deletion of filament_id "{old_id}" from {path} did not take effect') + + +# --------------------------------------------------------------------------- +# Default run: mint + insert ids for id-less families +# --------------------------------------------------------------------------- + def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, retired_path=RETIRED_PATH): """Mint + insert ids for id-less families. Never rewrites a valid existing id. A family = (vendor, base name) group over instantiated filaments with no - effective id. The minted id is inserted into the family's root(s): the - presets its members inherit that carry no id, or the member itself when it - has no vendor-side parent. Returns (files_changed, errors). + effective id. The minted id is a pure function of the family's triple — + (filament_vendor, filament_type) resolved on the root(s), family name — and + is inserted into the family's root(s): the presets its members inherit that + carry no id, or the member itself when it has no vendor-side parent. + Returns (files_changed, errors). """ analysis = analyze_tree(profiles_dir) errors = 0 @@ -767,6 +1273,7 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, root_claims.setdefault((vendor, root["name"]), set()).add(key) roots[key] = family_roots + ofl_map = analysis["vendors"].get(OFL, {}) files_changed = 0 families_minted = 0 for key, family_roots in sorted(roots.items()): @@ -782,7 +1289,29 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"roots so each family has its own") errors += 1 continue - new_id = mint_filament_id(vendor, family, taken) + vendor_map = analysis["vendors"][vendor] + fields = {(resolve_filament_field(n, "filament_vendor", vendor_map, ofl_map), + resolve_filament_field(n, "filament_type", vendor_map, ofl_map)) + for n in family_roots} + if len(fields) > 1: + print_error( + f'cannot mint for family "{vendor}/{family}": its roots resolve ' + f"divergent (filament_vendor, filament_type) pairs {sorted(fields)}; " + f"align the fields first") + errors += 1 + continue + fvendor, ftype = next(iter(fields)) + if not fvendor or not ftype: + missing = " and ".join( + k for k, v in (("filament_vendor", fvendor), + ("filament_type", ftype)) if not v) + print_error( + f'cannot mint for family "{vendor}/{family}": it resolves empty ' + f'{missing}; the mint key needs both (generic materials use ' + f'filament_vendor "Generic")') + errors += 1 + continue + new_id = mint_filament_id(fvendor, ftype, family, taken) taken.add(new_id) families_minted += 1 for name in sorted(family_roots): @@ -798,6 +1327,130 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, return files_changed, errors +# --------------------------------------------------------------------------- +# --remint / --drop-redundant-ids (v3.1/v3.2 migration modes) +# --------------------------------------------------------------------------- + +def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): + """Re-derive every non-island declared id in the given vendors from its + triple; rewrite mismatching declarations in place (byte-preserving). Never + touches the snapshot — run --update-snapshot afterwards and review the diff. + + A candidate id is blocked when it is a retired key, a hints key, or occurs + in the tree with any triple set other than exactly {T}. Equal-triple reuse + is convergence: the same product must end up under the same id everywhere. + Returns (rewritten, errors). + """ + _utf8_console() + analysis = analyze_tree(profiles_dir) + errors = 0 + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + if "BBL" in vendor_list: + print_error("--remint BBL is forbidden (the GF* catalog is frozen)") + return 0, errors + 1 + unknown = sorted(set(vendor_list) - set(analysis["vendors"])) + if unknown: + for v in unknown: + print_error(f"--remint: unknown vendor {v!r}") + return 0, errors + len(unknown) + + ledger = load_ledger(retired_path) + blocked_keys = set(ledger["retired"]) | set(ledger["hints"]) + occurring = set() + for vids in analysis["vendor_ids"].values(): + occurring |= vids + triple_sets = analysis["triple_sets"] + + assigned = {} # triple -> id chosen this run (all declarers converge) + run_taken = {} # id -> triple (a run-local mint may not collide either) + + def want_id(triple): + if triple in assigned: + return assigned[triple] + for salt in range(10000): + cand = generate_filament_id(*triple, salt=salt) + if cand in blocked_keys: + continue + if cand in occurring and triple_sets.get(cand, set()) != {triple}: + continue + if run_taken.get(cand, triple) != triple: + continue + assigned[triple] = cand + run_taken[cand] = triple + return cand + raise RuntimeError(f"could not mint a free filament_id for triple {triple}") + + scanned = 0 + rewritten = 0 + for vendor in sorted(set(vendor_list)): + recs = sorted( + (rec for rec in analysis["vendors"][vendor].values() if rec.get("filament_id")), + key=lambda r: r["file"]) + for rec in recs: + fid = rec["filament_id"] + if is_island_declaration(vendor, fid): + continue + scanned += 1 + want = want_id(rec["triple"]) + if fid == want: + continue + rewrite_filament_id(rec["path"], fid, want) + rewritten += 1 + print_info(f'{rec["file"]}: "{fid}" -> "{want}" ' + f'(triple "{"/".join(rec["triple"])}")') + print_info(f"declarations scanned : {scanned}") + print_info(f"declarations reminted: {rewritten}") + if rewritten: + print_warning(f"now {UPDATE_HINT}") + return rewritten, errors + + +def drop_redundant_ids(vendor, profiles_dir=PROFILES_DIR): + """Delete filament_id declarations in `vendor` that merely re-declare an OFL + family's id path: ignoring its own key, the preset's inherits chain enters + OFL and resolves an OFL-declared id, and the preset keeps the OFL family's + base name. Such a preset is a specialization and rides the OFL id (v3.2(b)). + Never touches the snapshot. Returns (dropped, errors). + """ + _utf8_console() + analysis = analyze_tree(profiles_dir) + errors = 0 + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + if vendor == "BBL": + print_error("--drop-redundant-ids BBL is forbidden (the GF* catalog is frozen)") + return 0, errors + 1 + if vendor not in analysis["vendors"]: + print_error(f"--drop-redundant-ids: unknown vendor {vendor!r}") + return 0, errors + 1 + + vendor_map = analysis["vendors"][vendor] + ofl_map = analysis["vendors"].get(OFL, {}) + ofl_declared = {r["filament_id"] for r in ofl_map.values() if r.get("filament_id")} + dropped = 0 + for rec in sorted(vendor_map.values(), key=lambda r: r["file"]): + fid = rec.get("filament_id") + if not fid or is_island_declaration(vendor, fid) or not rec.get("inherits"): + continue + resolved, _src, entry = resolve_filament_id( + rec["name"], vendor_map, ofl_map, skip_own=True) + if not (entry and resolved and resolved in ofl_declared): + continue + if base_name(rec["name"]) != base_name(entry): + continue + remove_filament_id(rec["path"], fid) + dropped += 1 + print_info(f'{rec["file"]}: dropped filament_id "{fid}" ' + f'(rides OFL "{entry}", id "{resolved}")') + print_info(f"declarations dropped : {dropped}") + if dropped: + print_warning(f"now {UPDATE_HINT}") + return dropped, errors + + # --------------------------------------------------------------------------- # CLI # --------------------------------------------------------------------------- @@ -807,33 +1460,73 @@ def main(argv=None): parser = argparse.ArgumentParser( description="Mint deterministic filament_id values for id-less filament " "families and validate the tree against the sanctioned snapshot.") - parser.add_argument("--mint", metavar='"Vendor/Family"', - help="print the id that would be minted for a family; " - "touches nothing") + parser.add_argument("--mint", metavar='"Vendor/Type/Family"', + help="print the id the (filament_vendor, filament_type, " + "family name) triple would mint; touches nothing") parser.add_argument("--update-snapshot", action="store_true", help="regenerate scripts/filament_id_snapshot.json from the " - "tree; ids that fully vanished are retired") + "tree; ids that fully vanished are retired with a " + "mode-rule successor") parser.add_argument("--check", action="store_true", help="run the filament_id checks; exit nonzero on errors") parser.add_argument("--allow-shared-catalog", action="store_true", help="with --update-snapshot: allow sanctioning new claims " "on reserved-namespace ids for non-owner vendors") + parser.add_argument("--forget-never-shipped", metavar="JSON_FILE", + help="with --update-snapshot: vanished ids listed in the file " + "(JSON list) are dropped without a retirement entry and " + "succession chains are spliced through them; refused if " + "a listed id is still in the tree") + parser.add_argument("--add-hint", metavar='"OLD=NEW"', action="append", + help="record a cross-island succession hint (island-owned " + "live id -> live id) in the shipped ledger; standalone, " + "repeatable") + parser.add_argument("--remint", metavar="VENDOR", action="append", + help="re-derive VENDOR's declared filament_ids from their " + "triples and rewrite mismatches in place; repeatable") + parser.add_argument("--drop-redundant-ids", metavar="VENDOR", + help="delete filament_id declarations in VENDOR that " + "re-declare the OFL family id they already resolve " + "through inherits") parser.add_argument("--profiles", default=PROFILES_DIR, help="profiles directory (default: resources/profiles)") args = parser.parse_args(argv) + if args.forget_never_shipped and not args.update_snapshot: + parser.error("--forget-never-shipped requires --update-snapshot") + if args.mint: - if "/" not in args.mint: - parser.error('--mint expects "Vendor/Family"') - vendor, family = args.mint.split("/", 1) + parts = args.mint.split("/", 2) + if len(parts) != 3 or not all(parts): + parser.error('--mint expects "filament_vendor/filament_type/family_name" ' + "with all three components non-empty (check 8 rejects empty " + "vendor/type in the tree)") snapshot = load_snapshot(SNAPSHOT_PATH) or {"ids": {}} taken = set(snapshot["ids"]) | set(load_retired(RETIRED_PATH)) - print(mint_filament_id(vendor, family, taken)) + print(mint_filament_id(parts[0], parts[1], parts[2], taken)) return 0 + if args.add_hint: + if args.update_snapshot or args.check or args.remint or args.drop_redundant_ids: + parser.error("--add-hint runs standalone") + return add_hints(args.add_hint, args.profiles, RETIRED_PATH) + + if args.remint: + if args.update_snapshot or args.check or args.drop_redundant_ids: + parser.error("--remint cannot be combined with other modes") + _changed, errors = remint_vendors(args.remint, args.profiles, RETIRED_PATH) + return 1 if errors else 0 + + if args.drop_redundant_ids: + if args.update_snapshot or args.check: + parser.error("--drop-redundant-ids cannot be combined with other modes") + _changed, errors = drop_redundant_ids(args.drop_redundant_ids, args.profiles) + return 1 if errors else 0 + if args.update_snapshot: return update_snapshot(args.profiles, SNAPSHOT_PATH, RETIRED_PATH, - allow_shared_catalog=args.allow_shared_catalog) + allow_shared_catalog=args.allow_shared_catalog, + forget_path=args.forget_never_shipped) if args.check: errors = check_filament_ids(args.profiles, SNAPSHOT_PATH, RETIRED_PATH) diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 24d51970bc..f3004c5077 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1,5 +1,1042 @@ { - "alias_exceptions": [], + "alias_exceptions": [ + "Afinia/Afinia PLA", + "Afinia/Afinia PLA@HS", + "Afinia/Afinia Value PLA", + "Afinia/Afinia Value PLA@HS", + "Anker/Anker Generic PA @base", + "Anker/Anker Generic PA-CF @base", + "Anker/Anker Generic PC @base", + "Anker/Anker Generic PETG @base", + "Anker/Anker Generic PETG-CF @base", + "Anker/Anker Generic PLA @base", + "Anker/Anker Generic PLA Silk @base", + "Anker/Anker Generic PLA+ @base", + "Anker/Anker Generic PLA-CF @base", + "Anycubic/Anycubic Generic PA", + "Anycubic/Anycubic Generic PA-CF", + "Anycubic/Anycubic Generic PC", + "Anycubic/Anycubic Generic PETG", + "Anycubic/Anycubic Generic PLA", + "Anycubic/Anycubic Generic PLA-CF", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", + "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", + "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", + "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Panchroma PLA @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", + "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "Artillery/Artillery Generic PETG", + "Artillery/Artillery Generic PLA", + "Artillery/Artillery Generic PLA-CF", + "BBL/BETA HIPS @base", + "BBL/BETA PAHT-CF @base", + "BBL/BETA PETG @base", + "BBL/BETA PETG Fluorescence @base", + "BBL/BETA PETG Glitter @base", + "BBL/BETA PETG Glow @base", + "BBL/BETA PETG Gradient @base", + "BBL/BETA PETG HF @base", + "BBL/BETA PETG Heat Color Change @base", + "BBL/BETA PETG Marble @base", + "BBL/BETA PETG Matte @base", + "BBL/BETA PETG Metallic @base", + "BBL/BETA PETG Transparent @base", + "BBL/BETA PETG UV Color Change @base", + "BBL/BETA PETG-CF @base", + "BBL/BETA PETG-GF @base", + "BBL/BETA PLA Basic @base", + "BBL/BETA PLA Chameleon @base", + "BBL/BETA PLA Fluorescence @base", + "BBL/BETA PLA Glitter @base", + "BBL/BETA PLA Glow @base", + "BBL/BETA PLA Gradient @base", + "BBL/BETA PLA Heat Color Change @base", + "BBL/BETA PLA High Speed @base", + "BBL/BETA PLA High Temp @base", + "BBL/BETA PLA Marble @base", + "BBL/BETA PLA Matte @base", + "BBL/BETA PLA Metal @base", + "BBL/BETA PLA Metallic @base", + "BBL/BETA PLA PRO @base", + "BBL/BETA PLA Silk @base", + "BBL/BETA PLA Silk+ @base", + "BBL/BETA PLA Transparent @base", + "BBL/BETA PLA UV Color Change @base", + "BBL/BETA PLA Wood @base", + "BBL/BETA PLA Youth @base", + "BBL/BETA PLA-CF @base", + "BBL/Bambu PA-CF @base", + "BBL/Bambu PA6-CF @base", + "BBL/Bambu PA6-GF @base", + "BBL/Bambu PAHT-CF @base", + "BBL/Bambu PC @base", + "BBL/Bambu PC FR @base", + "BBL/Bambu PET-CF @base", + "BBL/Bambu PETG Basic @base", + "BBL/Bambu PETG HF @base", + "BBL/Bambu PETG Translucent @base", + "BBL/Bambu PETG-CF @base", + "BBL/Bambu PLA Aero @base", + "BBL/Bambu PLA Basic @base", + "BBL/Bambu PLA Dynamic @base", + "BBL/Bambu PLA Galaxy @base", + "BBL/Bambu PLA Glow @base", + "BBL/Bambu PLA Lite @base", + "BBL/Bambu PLA Marble @base", + "BBL/Bambu PLA Matte @base", + "BBL/Bambu PLA Metal @base", + "BBL/Bambu PLA Silk @base", + "BBL/Bambu PLA Silk+ @base", + "BBL/Bambu PLA Sparkle @base", + "BBL/Bambu PLA Tough @base", + "BBL/Bambu PLA Tough+ @base", + "BBL/Bambu PLA Translucent @base", + "BBL/Bambu PLA Wood @base", + "BBL/Bambu PLA-CF @base", + "BBL/Bambu PPA-CF @base", + "BBL/Bambu Support For PA/PET @base", + "BBL/Bambu Support For PLA @base", + "BBL/Bambu Support For PLA/PETG @base", + "BBL/Bambu Support G @base", + "BBL/Bambu Support W @base", + "BBL/COEX NYLEX UNFILLED @BBL X1C", + "BBL/Fiberon PA12-CF @base", + "BBL/Fiberon PA12-CF10 @base", + "BBL/Fiberon PA6-CF @base", + "BBL/Fiberon PA6-CF20 @base", + "BBL/Fiberon PA6-GF @base", + "BBL/Fiberon PA6-GF25 @base", + "BBL/Fiberon PA612-CF @base", + "BBL/Fiberon PA612-CF15 @base", + "BBL/Fiberon PET-CF @base", + "BBL/Fiberon PET-CF17 @base", + "BBL/Fiberon PETG-ESD @base", + "BBL/Fiberon PETG-rCF @base", + "BBL/Fiberon PETG-rCF08 @base", + "BBL/Generic BVOH @base", + "BBL/Generic EVA @base", + "BBL/Generic HIPS @base", + "BBL/Generic PA @base", + "BBL/Generic PA-CF @base", + "BBL/Generic PC @base", + "BBL/Generic PCTG @base", + "BBL/Generic PE @base", + "BBL/Generic PE-CF @base", + "BBL/Generic PETG @base", + "BBL/Generic PETG HF @base", + "BBL/Generic PETG-CF @base", + "BBL/Generic PHA @base", + "BBL/Generic PLA @base", + "BBL/Generic PLA High Speed @base", + "BBL/Generic PLA Silk @base", + "BBL/Generic PLA-CF @base", + "BBL/Generic PP @base", + "BBL/Generic PP-CF @base", + "BBL/Generic PP-GF @base", + "BBL/Generic PPA-CF @base", + "BBL/Generic PPA-GF @base", + "BBL/Generic SBS @base", + "BBL/Numakers PLA+ @base", + "BBL/Overture Matte PLA @base", + "BBL/Overture PLA @base", + "BBL/Overture PLA Pro @base", + "BBL/Panchroma CoPE @base", + "BBL/Panchroma PLA @base", + "BBL/Panchroma PLA Celestial @base", + "BBL/Panchroma PLA Galaxy @base", + "BBL/Panchroma PLA Glow @base", + "BBL/Panchroma PLA Luminous @base", + "BBL/Panchroma PLA Marble @base", + "BBL/Panchroma PLA Matte @base", + "BBL/Panchroma PLA Metallic @base", + "BBL/Panchroma PLA Neon @base", + "BBL/Panchroma PLA Satin @base", + "BBL/Panchroma PLA Silk @base", + "BBL/Panchroma PLA Starlight @base", + "BBL/Panchroma PLA Temp Shift @base", + "BBL/Panchroma PLA Translucent @base", + "BBL/Panchroma PLA UV Shift @base", + "BBL/PolyLite CosPLA @base", + "BBL/PolyLite PETG @base", + "BBL/PolyLite PLA @base", + "BBL/PolyLite PLA Galaxy @base", + "BBL/PolyLite PLA Glow @base", + "BBL/PolyLite PLA Luminous @base", + "BBL/PolyLite PLA Neon @base", + "BBL/PolyLite PLA Pro @base", + "BBL/PolyLite PLA Starlight @base", + "BBL/PolyLite PLA Translucent @base", + "BBL/PolyTerra PLA @base", + "BBL/PolyTerra PLA Marble @base", + "BBL/PolyTerra PLA+ @base", + "BBL/Polymaker HT-PLA @base", + "BBL/Polymaker HT-PLA-GF @base", + "BBL/SUNLU PETG @base", + "BBL/SUNLU PLA Marble @base", + "BBL/SUNLU PLA Matte @base", + "BBL/SUNLU PLA+ 2.0 @base", + "BBL/SUNLU PLA+ @base", + "BBL/SUNLU Silk PLA+ @base", + "BBL/SUNLU Wood PLA @base", + "BBL/eSUN PLA+ @base", + "Blocks/Blocks Generic PA", + "Blocks/Blocks Generic PA-CF", + "Blocks/Blocks Generic PC", + "Blocks/Blocks Generic PLA", + "Blocks/Blocks Generic PLA-CF", + "CONSTRUCT3D/C1 Generic High Flow PETG", + "CONSTRUCT3D/C1 Generic PETG", + "CONSTRUCT3D/C1 Generic PLA", + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying Generic PETG", + "Chuanying/Chuanying Generic PETG-CF10", + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying Generic PLA-CF10", + "Chuanying/Chuanying Generic PLA-Silk", + "Co Print/CoPrint Generic PLA", + "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", + "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", + "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", + "CoLiDo/CoLiDo PETG @CoLiDo SR1", + "CoLiDo/CoLiDo PLA @CoLiDo SR1", + "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", + "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", + "Comgrow/Comgrow Generic PETG", + "Comgrow/Comgrow Generic PLA", + "Creality/CR-Nylon @K1 Max_CFS-C-all", + "Creality/CR-Nylon @K1C-all", + "Creality/CR-Nylon @K1C_CFS-C-all", + "Creality/CR-Nylon @K1_CFS-C-all", + "Creality/CR-Nylon @K2 Plus-all", + "Creality/CR-PLA @Ender-3 V4-all", + "Creality/CR-PLA @Hi-all", + "Creality/CR-PLA @K1 Max_CFS-C-all", + "Creality/CR-PLA @K1 SE-all", + "Creality/CR-PLA @K1 SE_CFS-C-all", + "Creality/CR-PLA @K1C-all", + "Creality/CR-PLA @K1C_CFS-C-all", + "Creality/CR-PLA @K1_CFS-C-all", + "Creality/CR-PLA @K2 Plus-all", + "Creality/CR-PLA @K2 Pro-all", + "Creality/CR-PLA @K2 SE-all", + "Creality/CR-PLA @K2-all", + "Creality/CR-PLA @SPARKX i7-all", + "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", + "Creality/CR-PLA Carbon @K1C-all", + "Creality/CR-PLA Carbon @K1C_CFS-C-all", + "Creality/CR-PLA Carbon @K1_CFS-C-all", + "Creality/CR-PLA Carbon @K2 Plus-all", + "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", + "Creality/CR-PLA Fluo @K1C-all", + "Creality/CR-PLA Fluo @K1C_CFS-C-all", + "Creality/CR-PLA Fluo @K1_CFS-C-all", + "Creality/CR-PLA Fluo @K2 Plus-all", + "Creality/CR-PLA Fluo @K2 Pro-all", + "Creality/CR-PLA Fluo @K2-all", + "Creality/CR-PLA Fluo @SPARKX i7-all", + "Creality/CR-PLA Matte @Ender-3 V4-all", + "Creality/CR-PLA Matte @K1 Max_CFS-C-all", + "Creality/CR-PLA Matte @K1C-all", + "Creality/CR-PLA Matte @K1C_CFS-C-all", + "Creality/CR-PLA Matte @K1_CFS-C-all", + "Creality/CR-PLA Matte @K2 Plus-all", + "Creality/CR-PLA Matte @K2 Pro-all", + "Creality/CR-PLA Matte @K2-all", + "Creality/CR-PLA Matte @SPARKX i7-all", + "Creality/CR-Silk @Ender-3 V4-all", + "Creality/CR-Silk @Hi-all", + "Creality/CR-Silk @K1 Max_CFS-C-all", + "Creality/CR-Silk @K1 SE-all", + "Creality/CR-Silk @K1 SE_CFS-C-all", + "Creality/CR-Silk @K1C-all", + "Creality/CR-Silk @K1C_CFS-C-all", + "Creality/CR-Silk @K1_CFS-C-all", + "Creality/CR-Silk @K2 Plus-all", + "Creality/CR-Silk @K2 Pro-all", + "Creality/CR-Silk @K2 SE-all", + "Creality/CR-Silk @K2-all", + "Creality/CR-Silk @SPARKX i7-all", + "Creality/CR-Wood @K1 Max_CFS-C-all", + "Creality/CR-Wood @K1C-all", + "Creality/CR-Wood @K1C_CFS-C-all", + "Creality/CR-Wood @K1_CFS-C-all", + "Creality/CR-Wood @K2 Plus-all", + "Creality/Creality Generic PA-CF", + "Creality/Creality Generic PC", + "Creality/Creality Generic PETG", + "Creality/Creality Generic PLA", + "Creality/Creality Generic PLA-CF", + "Creality/Creality HF Generic PLA", + "Creality/Creality HF Generic Speed PLA", + "Creality/EN-PLA+ @K1 Max_CFS-C-all", + "Creality/EN-PLA+ @K1C-all", + "Creality/EN-PLA+ @K1C_CFS-C-all", + "Creality/EN-PLA+ @K1_CFS-C-all", + "Creality/EN-PLA+ @K2 Plus-all", + "Creality/EN-PLA+ @K2 Pro-all", + "Creality/EN-PLA+ @K2-all", + "Creality/EN-PLA+ @SPARKX i7-all", + "Creality/ENDER FAST PLA @Hi-all", + "Creality/ENDER FAST PLA @K2 Plus-all", + "Creality/ENDER FAST PLA @K2 Pro-all", + "Creality/ENDER FAST PLA @K2-all", + "Creality/ENDER FAST PLA @SPARKX i7-all", + "Creality/Ender-PLA @Ender-3 V4-all", + "Creality/Ender-PLA @Hi-all", + "Creality/Ender-PLA @K1 Max_CFS-C-all", + "Creality/Ender-PLA @K1C-all", + "Creality/Ender-PLA @K1C_CFS-C-all", + "Creality/Ender-PLA @K1_CFS-C-all", + "Creality/Ender-PLA @K2 Plus-all", + "Creality/Ender-PLA @K2 Pro-all", + "Creality/Ender-PLA @K2-all", + "Creality/Ender-PLA @SPARKX i7-all", + "Creality/Generic HIPS @K1 Max_CFS-C-all", + "Creality/Generic HIPS @K1C-all", + "Creality/Generic HIPS @K1C_CFS-C-all", + "Creality/Generic HIPS @K1_CFS-C-all", + "Creality/Generic HIPS @K2 Plus-all", + "Creality/Generic PA @K1 Max_CFS-C-all", + "Creality/Generic PA @K1C-all", + "Creality/Generic PA @K1C_CFS-C-all", + "Creality/Generic PA @K1_CFS-C-all", + "Creality/Generic PA @K2 Plus-all", + "Creality/Generic PA @K2 Pro-all", + "Creality/Generic PA @K2-all", + "Creality/Generic PA-CF @K1 Max_CFS-C-all", + "Creality/Generic PA-CF @K1C-all", + "Creality/Generic PA-CF @K1C_CFS-C-all", + "Creality/Generic PA-CF @K1_CFS-C-all", + "Creality/Generic PA-CF @K2 Plus-all", + "Creality/Generic PA12-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K1 Max_CFS-C-all", + "Creality/Generic PA6-CF @K1C-all", + "Creality/Generic PA6-CF @K1C_CFS-C-all", + "Creality/Generic PA6-CF @K1_CFS-C-all", + "Creality/Generic PA6-CF @K2 Plus-all", + "Creality/Generic PA6-CF @K2 Pro-all", + "Creality/Generic PA612-CF @K2 Plus-all", + "Creality/Generic PA612-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", + "Creality/Generic PAHT-CF @K1C-all", + "Creality/Generic PAHT-CF @K1C_CFS-C-all", + "Creality/Generic PAHT-CF @K1_CFS-C-all", + "Creality/Generic PAHT-CF @K2 Plus-all", + "Creality/Generic PAHT-CF @K2 Pro-all", + "Creality/Generic PAHT-CF @K2-all", + "Creality/Generic PC @K1 Max_CFS-C-all", + "Creality/Generic PC @K1C-all", + "Creality/Generic PC @K1C_CFS-C-all", + "Creality/Generic PC @K1_CFS-C-all", + "Creality/Generic PC @K2 Plus-all", + "Creality/Generic PC @K2 Pro-all", + "Creality/Generic PET @K1 Max_CFS-C-all", + "Creality/Generic PET @K1C-all", + "Creality/Generic PET @K1C_CFS-C-all", + "Creality/Generic PET @K1_CFS-C-all", + "Creality/Generic PET @K2 Plus-all", + "Creality/Generic PET @K2 Pro-all", + "Creality/Generic PET @K2-all", + "Creality/Generic PET-CF @K1 Max_CFS-C-all", + "Creality/Generic PET-CF @K1C-all", + "Creality/Generic PET-CF @K1C_CFS-C-all", + "Creality/Generic PET-CF @K1_CFS-C-all", + "Creality/Generic PET-CF @K2 Plus-all", + "Creality/Generic PET-CF @K2 Pro-all", + "Creality/Generic PLA @Ender-3 V4-all", + "Creality/Generic PLA @Hi-all", + "Creality/Generic PLA @K1 Max_CFS-C-all", + "Creality/Generic PLA @K1 SE-all", + "Creality/Generic PLA @K1 SE_CFS-C-all", + "Creality/Generic PLA @K1C-all", + "Creality/Generic PLA @K1C_CFS-C-all", + "Creality/Generic PLA @K1_CFS-C-all", + "Creality/Generic PLA @K2 Plus-all", + "Creality/Generic PLA @K2 Pro-all", + "Creality/Generic PLA @K2 SE-all", + "Creality/Generic PLA @K2-all", + "Creality/Generic PLA @SPARKX i7-all", + "Creality/Generic PLA-CF @Ender-3 V4-all", + "Creality/Generic PLA-CF @K1 Max_CFS-C-all", + "Creality/Generic PLA-CF @K1 SE-all", + "Creality/Generic PLA-CF @K1 SE_CFS-C-all", + "Creality/Generic PLA-CF @K1C-all", + "Creality/Generic PLA-CF @K1C_CFS-C-all", + "Creality/Generic PLA-CF @K1_CFS-C-all", + "Creality/Generic PLA-CF @K2 Plus-all", + "Creality/Generic PLA-CF @K2 Pro-all", + "Creality/Generic PLA-CF @K2 SE-all", + "Creality/Generic PLA-CF @K2-all", + "Creality/Generic PLA-CF @SPARKX i7-all", + "Creality/Generic PLA-Silk @Ender-3 V4-all", + "Creality/Generic PLA-Silk @Hi-all", + "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", + "Creality/Generic PLA-Silk @K1 SE-all", + "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", + "Creality/Generic PLA-Silk @K1C-all", + "Creality/Generic PLA-Silk @K1C_CFS-C-all", + "Creality/Generic PLA-Silk @K1_CFS-C-all", + "Creality/Generic PLA-Silk @K2 Plus-all", + "Creality/Generic PLA-Silk @K2 Pro-all", + "Creality/Generic PLA-Silk @K2 SE-all", + "Creality/Generic PLA-Silk @K2-all", + "Creality/Generic PLA-Silk @SPARKX i7-all", + "Creality/Generic PP @K1 Max_CFS-C-all", + "Creality/Generic PP @K1C-all", + "Creality/Generic PP @K1C_CFS-C-all", + "Creality/Generic PP @K1_CFS-C-all", + "Creality/Generic PP @K2 Plus-all", + "Creality/Generic PP @K2 Pro-all", + "Creality/Generic PP @K2-all", + "Creality/Generic Support for PA @K2 Plus-all", + "Creality/Generic Support for PLA @K2 Plus-all", + "Creality/HP Ultra PLA @K1 Max_CFS-C-all", + "Creality/HP Ultra PLA @K1C-all", + "Creality/HP Ultra PLA @K1C_CFS-C-all", + "Creality/HP Ultra PLA @K1_CFS-C-all", + "Creality/HP Ultra PLA @K2 Plus-all", + "Creality/Hyper L-W PLA @Hi-all", + "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", + "Creality/Hyper L-W PLA @K1 SE-all", + "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", + "Creality/Hyper L-W PLA @K1C-all", + "Creality/Hyper L-W PLA @K1C_CFS-C-all", + "Creality/Hyper L-W PLA @K1_CFS-C-all", + "Creality/Hyper L-W PLA @K2 Plus-all", + "Creality/Hyper L-W PLA @K2 Pro-all", + "Creality/Hyper L-W PLA @K2-all", + "Creality/Hyper Luminous @Hi-all", + "Creality/Hyper Luminous @K1C-all", + "Creality/Hyper Luminous @K2 Plus-all", + "Creality/Hyper Luminous @K2 Pro-all", + "Creality/Hyper Luminous @K2-all", + "Creality/Hyper Luminous @SPARKX i7-all", + "Creality/Hyper Marble @Hi-all", + "Creality/Hyper Marble @K1 Max_CFS-C-all", + "Creality/Hyper Marble @K1C-all", + "Creality/Hyper Marble @K1C_CFS-C-all", + "Creality/Hyper Marble @K1_CFS-C-all", + "Creality/Hyper Marble @K2 Plus-all", + "Creality/Hyper Marble @K2 Pro-all", + "Creality/Hyper Marble @K2 SE-all", + "Creality/Hyper Marble @K2-all", + "Creality/Hyper Marble @SPARKX i7-all", + "Creality/Hyper PA6-CF @K2 Plus-all", + "Creality/Hyper PA6-CF @K2 Pro-all", + "Creality/Hyper PA612-CF @K2 Plus-all", + "Creality/Hyper PA612-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", + "Creality/Hyper PAHT-CF @K1C-all", + "Creality/Hyper PAHT-CF @K1C_CFS-C-all", + "Creality/Hyper PAHT-CF @K1_CFS-C-all", + "Creality/Hyper PAHT-CF @K2 Plus-all", + "Creality/Hyper PAHT-CF @K2 Pro-all", + "Creality/Hyper PAHT-CF @K2-all", + "Creality/Hyper PC @K2 Plus-all", + "Creality/Hyper PC @K2 Pro-all", + "Creality/Hyper PLA @Ender-3 V4-all", + "Creality/Hyper PLA @Hi-all", + "Creality/Hyper PLA @K1 Max_CFS-C-all", + "Creality/Hyper PLA @K1 SE-all", + "Creality/Hyper PLA @K1 SE_CFS-C-all", + "Creality/Hyper PLA @K1C-all", + "Creality/Hyper PLA @K1C_CFS-C-all", + "Creality/Hyper PLA @K1_CFS-C-all", + "Creality/Hyper PLA @K2 Plus-all", + "Creality/Hyper PLA @K2 Pro-all", + "Creality/Hyper PLA @K2 SE-all", + "Creality/Hyper PLA @K2-all", + "Creality/Hyper PLA @SPARKX i7-all", + "Creality/Hyper PLA-CF @Ender-3 V4-all", + "Creality/Hyper PLA-CF @Hi-all", + "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", + "Creality/Hyper PLA-CF @K1 SE-all", + "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", + "Creality/Hyper PLA-CF @K1C-all", + "Creality/Hyper PLA-CF @K1C_CFS-C-all", + "Creality/Hyper PLA-CF @K1_CFS-C-all", + "Creality/Hyper PLA-CF @K2 Plus-all", + "Creality/Hyper PLA-CF @K2 Pro-all", + "Creality/Hyper PLA-CF @K2 SE-all", + "Creality/Hyper PLA-CF @K2-all", + "Creality/Hyper PLA-CF @SPARKX i7-all", + "Creality/Hyper PPA-CF @K2 Plus-all", + "Creality/Hyper PPA-CF @K2 Pro-all", + "Creality/Hyper Stardust @Hi-all", + "Creality/Hyper Stardust @K1 Max_CFS-C-all", + "Creality/Hyper Stardust @K1C-all", + "Creality/Hyper Stardust @K1C_CFS-C-all", + "Creality/Hyper Stardust @K1_CFS-C-all", + "Creality/Hyper Stardust @K2 Plus-all", + "Creality/Hyper Stardust @K2 Pro-all", + "Creality/Hyper Stardust @K2 SE-all", + "Creality/Hyper Stardust @K2-all", + "Creality/Hyper Stardust @SPARKX i7-all", + "Creality/Panchroma PLA Matte @K2 Plus-all", + "Creality/Panchroma PLA Satin @K2 Plus-all", + "Creality/PolySonic PLA @K2 Plus-all", + "Creality/PolySonic PLA Pro @K2 Plus-all", + "Creality/Soleyin Ultra PLA @Ender-3 V4-all", + "Creality/Soleyin Ultra PLA @Hi-all", + "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1C-all", + "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", + "Creality/Soleyin Ultra PLA @K1_CFS-C-all", + "Creality/Soleyin Ultra PLA @K2 Plus-all", + "Creality/Soleyin Ultra PLA @K2 Pro-all", + "Creality/Soleyin Ultra PLA @K2 SE-all", + "Creality/Soleyin Ultra PLA @K2-all", + "Creality/Soleyin Ultra PLA @SPARKX i7-all", + "Creality/eSUN PET-Basic @K2 Plus-all", + "Creality/eSUN PLA+ @K2 Plus-all", + "Creality/eSUN PLA-CF @K2 Plus-all", + "Creality/eSUN PLA-HS @K2 Plus-all", + "Creality/eSUN PLA-LW @K2 Plus-all", + "Creality/eSUN PLA-Lite @K2 Plus-all", + "Creality/eSUN PLA-Matte @K2 Plus-all", + "Creality/eSUN PLA-Silk @K2 Plus-all", + "Cubicon/Cubicon PLA @base", + "Custom/Generic PC @MyToolChanger", + "Custom/Generic PETG @MyToolChanger", + "Custom/Generic PLA @MyToolChanger", + "Custom/Generic PLA-CF @MyToolChanger", + "Custom/Generic PVA @MyToolChanger", + "Custom/Generic TPU @MyToolChanger", + "DeltaMaker/DeltaMaker Brand PLA", + "DeltaMaker/DeltaMaker Generic PETG", + "DeltaMaker/DeltaMaker Generic PLA", + "Dremel/Dremel Generic PLA", + "Elegoo/Elegoo PAHT @base", + "Elegoo/Elegoo PC @base", + "Elegoo/Elegoo PETG @base", + "Elegoo/Elegoo PLA @base", + "Elegoo/Generic PA @base", + "Elegoo/Generic PC @base", + "Elegoo/Generic PET @base", + "Elegoo/Generic PETG @base", + "Elegoo/Generic PLA @base", + "FLSun/FLSun Generic PA", + "FLSun/FLSun Generic PA-CF", + "FLSun/FLSun Generic PC", + "FLSun/FLSun Generic PETG", + "FLSun/FLSun Generic PLA", + "FLSun/FLSun Generic PLA-CF", + "Flashforge/Flashforge ABS Basic @FF C5", + "Flashforge/Flashforge ABS Basic @FF C5P", + "Flashforge/Flashforge ABS-GF @FF C5", + "Flashforge/Flashforge ABS-GF @FF C5P", + "Flashforge/Flashforge ASA Basic @FF C5", + "Flashforge/Flashforge ASA Basic @FF C5P", + "Flashforge/Flashforge ASA-CF @FF C5", + "Flashforge/Flashforge ASA-CF @FF C5P", + "Flashforge/Flashforge ASA-GF @FF C5", + "Flashforge/Flashforge ASA-GF @FF C5P", + "Flashforge/Flashforge Generic HS PLA", + "Flashforge/Flashforge Generic PETG", + "Flashforge/Flashforge Generic PETG-CF10", + "Flashforge/Flashforge Generic PLA", + "Flashforge/Flashforge Generic PLA-CF10", + "Flashforge/Flashforge Generic PLA-Silk", + "Flashforge/Flashforge HIPS @FF C5", + "Flashforge/Flashforge HIPS @FF C5P", + "Flashforge/Flashforge HS PETG @FF C5", + "Flashforge/Flashforge HS PETG @FF C5P", + "Flashforge/Flashforge HS PLA @FF C5", + "Flashforge/Flashforge HS PLA @FF C5P", + "Flashforge/Flashforge PA-CF @FF C5", + "Flashforge/Flashforge PA-CF @FF C5P", + "Flashforge/Flashforge PAHT-CF @FF C5", + "Flashforge/Flashforge PAHT-CF @FF C5P", + "Flashforge/Flashforge PET-CF @FF C5", + "Flashforge/Flashforge PET-CF @FF C5P", + "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PETG Pro @FF C5", + "Flashforge/Flashforge PETG Pro @FF C5P", + "Flashforge/Flashforge PETG Transparent @FF C5", + "Flashforge/Flashforge PETG Transparent @FF C5P", + "Flashforge/Flashforge PETG-CF @FF C5", + "Flashforge/Flashforge PETG-CF @FF C5P", + "Flashforge/Flashforge PLA", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", + "Flashforge/Flashforge PLA Basic @FF C5", + "Flashforge/Flashforge PLA Basic @FF C5P", + "Flashforge/Flashforge PLA Color Change @FF C5", + "Flashforge/Flashforge PLA Color Change @FF C5P", + "Flashforge/Flashforge PLA Galaxy @FF C5", + "Flashforge/Flashforge PLA Galaxy @FF C5P", + "Flashforge/Flashforge PLA Luminous @FF C5", + "Flashforge/Flashforge PLA Luminous @FF C5P", + "Flashforge/Flashforge PLA Silk @FF C5", + "Flashforge/Flashforge PLA Silk @FF C5P", + "Flashforge/Flashforge PLA-CF @FF C5", + "Flashforge/Flashforge PLA-CF @FF C5P", + "Flashforge/Flashforge PPA-CF @FF C5", + "Flashforge/Flashforge PPA-CF @FF C5P", + "Flashforge/Flashforge PPS-CF @FF C5", + "Flashforge/Flashforge PPS-CF @FF C5P", + "Flashforge/Flashforge PVA @FF C5", + "Flashforge/Flashforge PVA @FF C5P", + "Flashforge/Flashforge TPU-64D @FF C5", + "Flashforge/Flashforge TPU-64D @FF C5P", + "Flashforge/Flashforge TPU-90A @FF C5", + "Flashforge/Flashforge TPU-90A @FF C5P", + "Flashforge/Flashforge TPU-95A @FF C5", + "Flashforge/Flashforge TPU-95A @FF C5P", + "Flashforge/FusRock PAHT-CF @FF C5", + "Flashforge/FusRock PAHT-CF @FF C5P", + "Flashforge/FusRock S-Multi @FF C5", + "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-PAHT @FF C5", + "Flashforge/FusRock S-PAHT @FF C5P", + "Flashforge/Generic PETG @Flashforge Artemis", + "Flashforge/Generic TPU-64D @FF C5", + "Flashforge/Generic TPU-64D @FF C5P", + "Flashforge/Generic TPU-90A @FF C5", + "Flashforge/Generic TPU-90A @FF C5P", + "Flashforge/Generic TPU-95A @FF C5", + "Flashforge/Generic TPU-95A @FF C5P", + "Flashforge/SUNLU PETG @base", + "Flashforge/SUNLU PLA Marble @base", + "Flashforge/SUNLU PLA Matte @base", + "Flashforge/SUNLU PLA+ 2.0 @base", + "Flashforge/SUNLU PLA+ @base", + "Flashforge/SUNLU Silk PLA+ @base", + "Flashforge/SUNLU Wood PLA @base", + "FlyingBear/FlyingBear Generic PA-CF", + "FlyingBear/FlyingBear Generic PC", + "FlyingBear/FlyingBear Generic PETG", + "FlyingBear/FlyingBear Generic PLA", + "InfiMech/InfiMech Generic PA-CF", + "InfiMech/InfiMech Generic PC", + "InfiMech/InfiMech Generic PETG", + "InfiMech/InfiMech Generic PLA", + "LH/LHS PC CF", + "LH/LHS PCTG", + "LH/LHS PETG", + "LH/LHS PLA", + "LONGER/Generic PETG @LONGER LK10", + "LONGER/Generic PETG @LONGER LK10 Plus", + "LONGER/Generic PLA @LONGER LK10", + "LONGER/Generic PLA @LONGER LK10 Plus", + "Lulzbot/Lulzbot 2.85mm ABS", + "Lulzbot/Lulzbot 2.85mm PETG", + "Lulzbot/Lulzbot 2.85mm PLA", + "OrcaArena/Arena PA-CF @base", + "OrcaArena/Arena PAHT-CF @base", + "OrcaArena/Arena PC @base", + "OrcaArena/Arena PET-CF @base", + "OrcaArena/Arena PETG Basic @base", + "OrcaArena/Arena PETG-CF @base", + "OrcaArena/Arena PLA Basic @base", + "OrcaArena/Arena PLA Impact @base", + "OrcaArena/Arena PLA Marble @base", + "OrcaArena/Arena PLA Matte @base", + "OrcaArena/Arena PLA Metal @base", + "OrcaArena/Arena PLA Silk @base", + "OrcaArena/Arena PLA Sparkle @base", + "OrcaArena/Arena PLA Tough @base", + "OrcaArena/Arena PLA-CF @base", + "OrcaArena/Arena Support G @base", + "OrcaArena/Arena Support W @base", + "OrcaArena/OrcaArena Generic PA", + "OrcaArena/OrcaArena Generic PA-CF", + "OrcaArena/OrcaArena Generic PC @base", + "OrcaArena/OrcaArena Generic PETG @base", + "OrcaArena/OrcaArena Generic PETG-CF @base", + "OrcaArena/OrcaArena Generic PLA @base", + "OrcaArena/OrcaArena Generic PLA Silk @base", + "OrcaArena/OrcaArena Generic PLA-CF @base", + "OrcaArena/PolyLite PLA @base", + "OrcaArena/PolyTerra PLA @base", + "Peopoly/Peopoly Generic PLA", + "Peopoly/Peopoly Lancer PLA-C", + "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", + "Prusa/Prusa Generic PA @MK3.5", + "Prusa/Prusa Generic PA @MK3.5 0.25", + "Prusa/Prusa Generic PA @MK3.5 0.6", + "Prusa/Prusa Generic PA @MK3.5 0.8", + "Prusa/Prusa Generic PA @base", + "Prusa/Prusa Generic PA-CF @MK3.5", + "Prusa/Prusa Generic PA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PA-CF @base", + "Prusa/Prusa Generic PETG @CORE One", + "Prusa/Prusa Generic PETG @MK3.5", + "Prusa/Prusa Generic PETG @MK3.5 0.25", + "Prusa/Prusa Generic PETG @MK3.5 0.6", + "Prusa/Prusa Generic PETG @MK3.5 0.8", + "Prusa/Prusa Generic PETG @MK4S", + "Prusa/Prusa Generic PETG @base", + "Prusa/Prusa Generic PETG HF @MK3.5", + "Prusa/Prusa Generic PETG HF @MK3.5 0.6", + "Prusa/Prusa Generic PETG HF @MK3.5 0.8", + "Prusa/Prusa Generic PETG HF @base", + "Prusa/Prusa Generic PLA @CORE One", + "Prusa/Prusa Generic PLA @MK3.5", + "Prusa/Prusa Generic PLA @MK3.5 0.25", + "Prusa/Prusa Generic PLA @MK3.5 0.6", + "Prusa/Prusa Generic PLA @MK3.5 0.8", + "Prusa/Prusa Generic PLA @MK4S", + "Prusa/Prusa Generic PLA @base", + "Prusa/Prusa Generic PLA HF @MK3.5", + "Prusa/Prusa Generic PLA HF @MK3.5 0.6", + "Prusa/Prusa Generic PLA HF @MK3.5 0.8", + "Prusa/Prusa Generic PLA HF @base", + "Prusa/Prusa Generic PLA Silk @CORE One", + "Prusa/Prusa Generic PLA-CF @MK3.5", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", + "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PLA-CF @base", + "Prusa/Prusament PA-CF @CORE One", + "Prusa/Prusament PETG @CORE One", + "Prusa/Prusament PETG @base", + "Prusa/Prusament PLA @CORE One", + "Prusa/Prusament PLA @base", + "Prusa/Prusament rPLA @CORE One", + "Prusa/Prusament rPLA @base", + "Qidi/Bambu PETG", + "Qidi/Bambu PLA", + "Qidi/HATCHBOX PETG @Qidi", + "Qidi/HATCHBOX PLA @Qidi", + "Qidi/Overture PLA @Qidi", + "Qidi/PolyLite PLA @Qidi", + "Qidi/QIDI PA-Ultra", + "Qidi/QIDI PA12-CF", + "Qidi/QIDI PAHT-CF", + "Qidi/QIDI PAHT-GF", + "Qidi/QIDI PET-CF", + "Qidi/QIDI PET-GF", + "Qidi/QIDI PETG Basic", + "Qidi/QIDI PETG Rapido", + "Qidi/QIDI PETG Tough", + "Qidi/QIDI PETG Translucent", + "Qidi/QIDI PETG-CF", + "Qidi/QIDI PETG-GF", + "Qidi/QIDI PLA Basic", + "Qidi/QIDI PLA Matte Basic", + "Qidi/QIDI PLA Rapido", + "Qidi/QIDI PLA Rapido Matte", + "Qidi/QIDI PLA Rapido Metal", + "Qidi/QIDI PLA Rapido Silk", + "Qidi/QIDI PPS-CF", + "Qidi/QIDI PPS-GF", + "Qidi/QIDI Support For PAHT", + "Qidi/QIDI Support For PET/PA", + "Qidi/QIDI UltraPA-CF25", + "Qidi/QIDI WOOD Rapido", + "Qidi/Qidi Generic PA", + "Qidi/Qidi Generic PA-CF", + "Qidi/Qidi Generic PC", + "Qidi/Qidi Generic PETG", + "Qidi/Qidi Generic PETG-CF", + "Qidi/Qidi Generic PLA", + "Qidi/Qidi Generic PLA Silk", + "Qidi/Qidi Generic PLA+", + "Qidi/Qidi Generic PLA-CF", + "Qidi/Qidi PLA-CF", + "Qidi/Tinmorry PETG-ECO", + "Ratrig/RatRig BigNozzle PCTG", + "Ratrig/RatRig BigNozzle PETG", + "Ratrig/RatRig BigNozzle PLA", + "Ratrig/RatRig Generic PA", + "Ratrig/RatRig Generic PA-CF", + "Ratrig/RatRig Generic PC", + "Ratrig/RatRig Generic PCTG", + "Ratrig/RatRig Generic PETG", + "Ratrig/RatRig Generic PLA", + "Ratrig/RatRig Generic PLA-CF", + "Ratrig/RatRig PunkFil PETG", + "Ratrig/RatRig PunkFil PETG CF", + "SecKit/SecKit Generic PA", + "SecKit/SecKit Generic PA-CF", + "SecKit/SecKit Generic PC", + "SecKit/SecKit Generic PETG", + "SecKit/SecKit Generic PLA", + "SecKit/SecKit Generic PLA-CF", + "Snapmaker/Fiberon PA12-CF10 @Snapmaker U1 base", + "Snapmaker/Fiberon PA6-CF20 @Snapmaker U1 base", + "Snapmaker/Fiberon PA612-ESD @Snapmaker U1 base", + "Snapmaker/Panchroma CoPE @Snapmaker U1 base", + "Snapmaker/Panchroma PLA @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Celestial @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Galaxy @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Glow @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Luminous @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Marble @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Matte @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Metallic @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Neon @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Satin @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Silk @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Starlight @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Temp Shift @Snapmaker U1 base", + "Snapmaker/Panchroma PLA Translucent @Snapmaker U1 base", + "Snapmaker/Panchroma PLA UV Shift @Snapmaker U1 base", + "Snapmaker/PolyLite CosPLA @Snapmaker U1 base", + "Snapmaker/PolyLite PLA @Snapmaker U1 base", + "Snapmaker/PolyLite PLA @base", + "Snapmaker/PolyLite PLA Galaxy @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Glow @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Luminous @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Neon @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Pro @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Pro Metallic @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Starlight @Snapmaker U1 base", + "Snapmaker/PolyLite PLA Translucent @Snapmaker U1 base", + "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", + "Snapmaker/PolyTerra J1 PLA", + "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", + "Snapmaker/PolyTerra PLA @Snapmaker U1 base", + "Snapmaker/PolyTerra PLA Marble @Snapmaker U1 base", + "Snapmaker/PolyTerra PLA+ @Snapmaker U1 base", + "Snapmaker/Polymaker HT-PLA @Snapmaker U1 base", + "Snapmaker/Polymaker HT-PLA-GF @Snapmaker U1 base", + "Snapmaker/Polymaker PLA @Snapmaker U1 base", + "Snapmaker/Polymaker PLA Pro @Snapmaker U1 base", + "Snapmaker/Polymaker PLA Pro Metallic @Snapmaker U1 base", + "Snapmaker/Snapmaker Dual PA-CF @base", + "Snapmaker/Snapmaker Dual PET @base", + "Snapmaker/Snapmaker Dual PLA @base", + "Snapmaker/Snapmaker Dual PLA Eco @base", + "Snapmaker/Snapmaker Dual PLA Matte @base", + "Snapmaker/Snapmaker Dual PLA Metal @base", + "Snapmaker/Snapmaker Dual PLA Silk @base", + "Snapmaker/Snapmaker Dual PLA-CF @base", + "Snapmaker/Snapmaker J1 PA-CF @base", + "Snapmaker/Snapmaker J1 PET @base", + "Snapmaker/Snapmaker J1 PLA @base", + "Snapmaker/Snapmaker J1 PLA Eco @base", + "Snapmaker/Snapmaker J1 PLA Matte @base", + "Snapmaker/Snapmaker J1 PLA Metal @base", + "Snapmaker/Snapmaker J1 PLA Silk @base", + "Snapmaker/Snapmaker J1 PLA-CF @base", + "Snapmaker/Snapmaker PA-CF @U1 base", + "Snapmaker/Snapmaker PA-CF @base", + "Snapmaker/Snapmaker PET @U1 base", + "Snapmaker/Snapmaker PET @base", + "Snapmaker/Snapmaker PLA @U1 base", + "Snapmaker/Snapmaker PLA @base", + "Snapmaker/Snapmaker PLA Eco @U1 base", + "Snapmaker/Snapmaker PLA Eco @base", + "Snapmaker/Snapmaker PLA Metal @U1 base", + "Snapmaker/Snapmaker PLA Silk @U1 base", + "Snapmaker/Snapmaker PLA Silk @base", + "Snapmaker/Snapmaker PLA-CF @U1 base", + "Snapmaker/Snapmaker PLA-CF @base", + "Sovol/Generic PLA Silk @Sovol SV08 MAX", + "Sovol/Polymaker PETG @Sovol SV08 MAX", + "Sovol/SUNLU PETG @Sovol SV08 MAX", + "Sovol/Sovol SV06 ACE ABS", + "Sovol/Sovol SV06 ACE PETG", + "Sovol/Sovol SV06 ACE PLA", + "Sovol/Sovol SV06 ACE TPU", + "Sovol/Sovol SV06 Plus ACE ABS", + "Sovol/Sovol SV06 Plus ACE PETG", + "Sovol/Sovol SV06 Plus ACE PLA", + "Sovol/Sovol SV06 Plus ACE TPU", + "Sovol/Sovol SV07 PLA", + "Sovol/Sovol SV08 ABS", + "Sovol/Sovol SV08 PETG", + "Sovol/Sovol SV08 PLA", + "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", + "Sovol/Sovol SV08 TPU", + "Sovol/Sovol Zero ABS", + "Sovol/Sovol Zero PC", + "Sovol/Sovol Zero PETG", + "Sovol/Sovol Zero PETG HS Nozzle", + "Sovol/Sovol Zero PLA Basic", + "Sovol/Sovol Zero PLA Basic HS Nozzle", + "Sovol/Sovol Zero PLA Silk", + "Sovol/Sovol Zero PLA Silk HS Nozzle", + "Sovol/Sovol Zero TPU", + "Tiertime/Tiertime Generic BVOH", + "Tiertime/Tiertime Generic BVOH@300HS", + "Tiertime/Tiertime Generic EVA", + "Tiertime/Tiertime Generic EVA@300HS", + "Tiertime/Tiertime Generic HIPS", + "Tiertime/Tiertime Generic HIPS@300HS", + "Tiertime/Tiertime Generic PA", + "Tiertime/Tiertime Generic PA-CF", + "Tiertime/Tiertime Generic PA-CF@300HS", + "Tiertime/Tiertime Generic PA@300HS", + "Tiertime/Tiertime Generic PC", + "Tiertime/Tiertime Generic PC@300HS", + "Tiertime/Tiertime Generic PCTG", + "Tiertime/Tiertime Generic PCTG@300HS", + "Tiertime/Tiertime Generic PE", + "Tiertime/Tiertime Generic PE-CF", + "Tiertime/Tiertime Generic PE-CF@300HS", + "Tiertime/Tiertime Generic PE@300HS", + "Tiertime/Tiertime Generic PETG", + "Tiertime/Tiertime Generic PETG-CF", + "Tiertime/Tiertime Generic PETG-CF@300HS", + "Tiertime/Tiertime Generic PETG@300HS", + "Tiertime/Tiertime Generic PHA", + "Tiertime/Tiertime Generic PHA@300HS", + "Tiertime/Tiertime Generic PLA", + "Tiertime/Tiertime Generic PLA High Speed", + "Tiertime/Tiertime Generic PLA High Speed@300HS", + "Tiertime/Tiertime Generic PLA Silk", + "Tiertime/Tiertime Generic PLA Silk@300HS", + "Tiertime/Tiertime Generic PLA-CF", + "Tiertime/Tiertime Generic PLA-CF@300HS", + "Tiertime/Tiertime Generic PLA@300HS", + "Tiertime/Tiertime Generic PP", + "Tiertime/Tiertime Generic PP-CF", + "Tiertime/Tiertime Generic PP-CF@300HS", + "Tiertime/Tiertime Generic PP-GF", + "Tiertime/Tiertime Generic PP-GF@300HS", + "Tiertime/Tiertime Generic PP@300HS", + "Tiertime/Tiertime Generic PPA-CF", + "Tiertime/Tiertime Generic PPA-CF@300HS", + "Tiertime/Tiertime Generic PPA-GF", + "Tiertime/Tiertime Generic PPA-GF@300HS", + "Tiertime/Tiertime Generic SBS", + "Tiertime/Tiertime Generic SBS@300HS", + "Tiertime/Tiertime PA6-CF", + "Tiertime/Tiertime PA6-CF@300HS", + "Tiertime/Tiertime PC", + "Tiertime/Tiertime PC@300HS", + "Tiertime/Tiertime PET-CF", + "Tiertime/Tiertime PET-CF@300HS", + "Tiertime/Tiertime PETG", + "Tiertime/Tiertime PETG@300HS", + "Tiertime/Tiertime PLA", + "Tiertime/Tiertime PLA-CF", + "Tiertime/Tiertime PLA-CF@300HS", + "Tiertime/Tiertime PLA@300HS", + "TwoTrees/TwoTrees Generic HS PLA @SK1", + "Volumic/Désactivé", + "Volumic/PA6 CF20 (Performance)", + "Volumic/PETG ESD (Performance)", + "Volumic/PPS Carbone (Performance)", + "Volumic/Volumic NYLON Ultra", + "Volumic/Volumic NYLON Ultra (Performance)", + "Volumic/Volumic PC", + "Volumic/Volumic PC (Performance)", + "Volumic/Volumic PCTG Ultra (Performance)", + "Volumic/Volumic PETG Ultra", + "Volumic/Volumic PETG Ultra (Performance)", + "Volumic/Volumic PETG Ultra carbone", + "Volumic/Volumic PETG Ultra carbone (Performance)", + "Volumic/Volumic PLA Ultra", + "Volumic/Volumic PLA Ultra (Performance)", + "Volumic/Volumic PP Ultra", + "Volumic/Volumic PP Ultra (Performance)", + "Volumic/Volumic UNIVERSAL Ultra", + "Volumic/Volumic UNIVERSAL Ultra (Performance)", + "Vzbot/Vzbot Generic PA", + "Vzbot/Vzbot Generic PA-CF", + "Vzbot/Vzbot Generic PC", + "Vzbot/Vzbot Generic PETG", + "Vzbot/Vzbot Generic PLA", + "Vzbot/Vzbot Generic PLA-CF", + "Wanhao France/Yumi Generic PETG", + "Wanhao France/Yumi Generic PLA", + "WonderMaker/WonderMaker PET-CF", + "WonderMaker/WonderMaker PETG Basic", + "WonderMaker/WonderMaker PLA Basic", + "WonderMaker/WonderMaker PLA Marble", + "WonderMaker/WonderMaker PLA Matte", + "WonderMaker/WonderMaker PLA Metal", + "WonderMaker/WonderMaker PLA Silk", + "WonderMaker/WonderMaker PLA Wood", + "Z-Bolt/Generic PA @Z-Bolt Base", + "Z-Bolt/Generic PETG @Z-Bolt Base", + "Z-Bolt/Generic PLA @Z-Bolt Base", + "re3D/re3D Greengate rPETG", + "re3D/re3D Greengate rPETG @0.8 nozzle", + "re3D/re3D Greengate rPETG @1.75 nozzle", + "re3D/re3D PC", + "re3D/re3D PC @0.4 nozzle", + "re3D/re3D PC @0.8 nozzle", + "re3D/re3D PETG", + "re3D/re3D PETG @0.4 nozzle", + "re3D/re3D PETG @0.8 nozzle", + "re3D/re3D PLA", + "re3D/re3D PLA @0.4 nozzle", + "re3D/re3D PLA @0.8 nozzle", + "re3D/re3D rPP", + "re3D/re3D rPP @0.8 nozzle", + "re3D/re3D rPP @1.75 nozzle" + ], "id_overrides": [ "Afinia/Afinia PLA", "Afinia/Afinia PLA@HS", @@ -9446,5 +10483,9965 @@ "re3D/re3D rPP", "re3D/re3D rPP @0.8 nozzle", "re3D/re3D rPP @1.75 nozzle" - ] + ], + "triple_exceptions": [ + "Anycubic/Anycubic ABS", + "Anycubic/Anycubic ASA", + "Anycubic/Anycubic PETG", + "Anycubic/Anycubic PLA", + "Anycubic/Anycubic PLA High Speed", + "Anycubic/Anycubic PLA Silk", + "Anycubic/Anycubic PLA+", + "Anycubic/Anycubic TPU", + "Anycubic/Generic PETG", + "Creality/Creality Generic ABS", + "Creality/Creality Generic ASA", + "Creality/Creality Generic PETG", + "Creality/Creality Generic TPU", + "Creality/Generic PETG-GF", + "Flashforge/Flashforge ABS", + "Flashforge/Flashforge ASA-CF", + "Flashforge/Flashforge PET-CF", + "Flashforge/Flashforge PETG", + "Flashforge/Flashforge PPA-CF", + "Flashforge/Flashforge PPS-CF", + "Flashforge/FusRock Generic PAHT-CF", + "Flashforge/FusRock Generic PET-CF", + "Flashforge/FusRock Generic S-Multi", + "Flashforge/FusRock Generic S-PAHT", + "Prusa/Prusa Generic ASA", + "Prusa/Prusa Generic TPU", + "Prusa/Prusa Generic TPU HF", + "Prusa/Prusament PETG", + "Prusa/Prusament PLA", + "Prusa/Prusament rPLA", + "Snapmaker/PolyLite PLA", + "re3D/re3D Greengate rPETG" + ], + "triples": { + "00001": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "00002": [ + [ + "Generic", + "PLA", + "Generic PLA-Silk" + ] + ], + "00003": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "00004": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "00005": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], + "00006": [ + [ + "Generic", + "PLA-CF", + "Generic PLA-CF" + ] + ], + "00007": [ + [ + "Generic", + "ASA", + "Generic ASA" + ] + ], + "00008": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "00009": [ + [ + "Generic", + "PA-CF", + "Generic PA-CF" + ] + ], + "00010": [ + [ + "Generic", + "BVOH", + "Generic BVOH" + ] + ], + "00011": [ + [ + "Generic", + "PVA", + "Generic PVA" + ] + ], + "00012": [ + [ + "Generic", + "HIPS", + "Generic HIPS" + ] + ], + "00013": [ + [ + "Generic", + "PET-CF", + "Generic PET-CF" + ] + ], + "00014": [ + [ + "Generic", + "PETG-CF", + "Generic PETG-CF" + ] + ], + "00015": [ + [ + "Generic", + "PA6-CF", + "Generic PA6-CF" + ] + ], + "00016": [ + [ + "Generic", + "PA-CF", + "Generic PAHT-CF" + ] + ], + "00017": [ + [ + "Generic", + "PPS", + "Generic PPS" + ] + ], + "00018": [ + [ + "Generic", + "PPS-CF", + "Generic PPS-CF" + ] + ], + "00019": [ + [ + "Generic", + "PP", + "Generic PP" + ] + ], + "00020": [ + [ + "Generic", + "PET", + "Generic PET" + ] + ], + "00021": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "00022": [ + [ + "Generic", + "PA-CF", + "Generic PA612-CF" + ] + ], + "00023": [ + [ + "Generic", + "PA", + "Generic Support for PA" + ] + ], + "00024": [ + [ + "Generic", + "PLA", + "Generic Support for PLA" + ] + ], + "00025": [ + [ + "Generic", + "PA-CF", + "Generic PA12-CF" + ] + ], + "00026": [ + [ + "Generic", + "TPU", + "Generic TPU 64D" + ] + ], + "00027": [ + [ + "Creality", + "PETG-GF", + "Generic PETG-GF" + ], + [ + "Generic", + "PETG-GF", + "Generic PETG-GF" + ] + ], + "00031": [ + [ + "Generic", + "PP-CF", + "Generic PP-CF" + ] + ], + "00032": [ + [ + "Generic", + "PCTG", + "Generic PCTG" + ] + ], + "00033": [ + [ + "Generic", + "ASA-CF", + "Generic ASA-CF" + ] + ], + "00034": [ + [ + "Generic", + "PA-GF", + "Generic PA6-GF" + ] + ], + "00035": [ + [ + "eSUN", + "PLA", + "eSUN PLA-LW" + ] + ], + "01001": [ + [ + "Creality", + "PLA", + "Creality Hyper PLA" + ], + [ + "Creality", + "PLA", + "Hyper PLA" + ] + ], + "01002": [ + [ + "Creality", + "PLA", + "Hyper L-W PLA" + ] + ], + "01003": [ + [ + "Creality", + "PLA", + "Hyper Luminous" + ] + ], + "01004": [ + [ + "Creality", + "PLA", + "Hyper Stardust" + ] + ], + "01601": [ + [ + "Creality", + "PLA", + "Soleyin Ultra PLA" + ] + ], + "02001": [ + [ + "Creality", + "PLA-CF", + "Creality Hyper PLA-CF" + ], + [ + "Creality", + "PLA-CF", + "Hyper PLA-CF" + ] + ], + "03001": [ + [ + "Creality", + "ABS", + "Creality Hyper ABS" + ], + [ + "Creality", + "ABS", + "Hyper ABS" + ] + ], + "04001": [ + [ + "Creality", + "PLA", + "CR-PLA" + ], + [ + "Generic", + "PLA", + "Creality Generic PLA" + ] + ], + "05001": [ + [ + "Creality", + "PLA", + "CR-Silk" + ], + [ + "Creality", + "PLA", + "Creality Silk PLA" + ] + ], + "06001": [ + [ + "Creality", + "PETG", + "CR-PETG" + ], + [ + "Creality", + "PETG", + "Creality Generic PETG" + ] + ], + "06002": [ + [ + "Creality", + "PETG", + "Hyper PETG" + ] + ], + "06003": [ + [ + "Creality", + "PETG-CF", + "Hyper PETG-CF" + ] + ], + "06004": [ + [ + "Creality", + "PETG-GF", + "Hyper PETG-GF" + ] + ], + "06005": [ + [ + "Creality", + "PETG", + "Soleyin Basic PETG" + ] + ], + "07001": [ + [ + "Creality", + "ABS", + "CR-ABS" + ], + [ + "Creality", + "ABS", + "Creality Generic ABS" + ] + ], + "07002": [ + [ + "Creality", + "PC", + "Hyper PC" + ] + ], + "08001": [ + [ + "Creality", + "PLA", + "Ender-PLA" + ] + ], + "09001": [ + [ + "Creality", + "PLA", + "EN-PLA+" + ] + ], + "09002": [ + [ + "Creality", + "PLA", + "ENDER FAST PLA" + ] + ], + "10001": [ + [ + "Creality", + "TPU", + "Creality Generic TPU" + ], + [ + "Creality", + "TPU", + "HP-TPU" + ] + ], + "1009481135": [ + [ + "Snapmaker", + "PET", + "Snapmaker J1 PET" + ] + ], + "1042511226": [ + [ + "Snapmaker", + "PETG-CF", + "Snapmaker Dual PETG-CF" + ] + ], + "10425112260": [ + [ + "Snapmaker", + "PETG-CF", + "Snapmaker PETG-CF" + ] + ], + "11001": [ + [ + "Creality", + "PA", + "CR-Nylon" + ], + [ + "Creality", + "PA", + "Creality Generic PA" + ] + ], + "1172603684": [ + [ + "Snapmaker", + "PETG", + "Snapmaker J1 PETG" + ] + ], + "1181363872": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Silk" + ] + ], + "11813638720": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Silk" + ] + ], + "1192769348": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Matte" + ] + ], + "12002": [ + [ + "Creality", + "PA-CF", + "Hyper PPA-CF" + ] + ], + "12003": [ + [ + "Creality", + "PA-CF", + "Hyper PAHT-CF" + ] + ], + "12004": [ + [ + "Creality", + "PA-CF", + "Hyper PA612-CF" + ] + ], + "12005": [ + [ + "Creality", + "PA-CF", + "Hyper PA6-CF" + ] + ], + "1207881278": [ + [ + "Snapmaker", + "Breakaway Support", + "Snapmaker Dual Breakaway" + ] + ], + "1210173120": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker J1 PA-CF" + ] + ], + "1223824394": [ + [ + "Snapmaker", + "ABS", + "Snapmaker J1 ABS" + ] + ], + "1247172706": [ + [ + "Snapmaker", + "ASA", + "Snapmaker Dual ASA" + ] + ], + "12471727060": [ + [ + "Snapmaker", + "ASA", + "Snapmaker ASA" + ] + ], + "13001": [ + [ + "Creality", + "PLA-CF", + "CR-PLA Carbon" + ] + ], + "1344609062": [ + [ + "Snapmaker", + "PVA", + "Snapmaker PVA" + ] + ], + "1355502217": [ + [ + "Snapmaker", + "PETG-CF", + "Snapmaker PETG-CF" + ] + ], + "1393866034": [ + [ + "Snapmaker", + "PLA", + "PolyLite PLA" + ] + ], + "14001": [ + [ + "Creality", + "PLA", + "CR-PLA Matte" + ] + ], + "1417031127": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA" + ] + ], + "14170311270": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA" + ] + ], + "141703112701": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA SnapSpeed" + ] + ], + "1417031127011": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Lite" + ] + ], + "144877656": [ + [ + "Snapmaker", + "ASA", + "Snapmaker J1 ASA" + ] + ], + "1480063856": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU" + ] + ], + "15001": [ + [ + "Creality", + "PLA", + "CR-PLA Fluo" + ] + ], + "1528786603": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Silk" + ] + ], + "16001": [ + [ + "Creality", + "TPU", + "CR-TPU" + ] + ], + "1655727393": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Silk" + ] + ], + "168223792": [ + [ + "Snapmaker", + "ABS", + "Snapmaker Dual ABS" + ] + ], + "1682237920": [ + [ + "Snapmaker", + "ABS", + "Snapmaker ABS" + ] + ], + "1695556157": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Eco" + ] + ], + "17001": [ + [ + "Creality", + "PLA", + "CR-Wood" + ] + ], + "1702147325": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker Dual PLA-CF" + ] + ], + "17021473250": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker PLA-CF" + ] + ], + "18001": [ + [ + "Creality", + "PLA", + "HP Ultra PLA" + ] + ], + "1895495477": [ + [ + "Snapmaker", + "PETG", + "Snapmaker PETG" + ] + ], + "19001": [ + [ + "Creality", + "ASA", + "Creality Generic ASA" + ], + [ + "Creality", + "ASA", + "HP-ASA" + ] + ], + "200803790": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Eco" + ] + ], + "2008037900": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Eco" + ] + ], + "2029994346": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Metal" + ] + ], + "20299943460": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Metal" + ] + ], + "2128577941": [ + [ + "Snapmaker", + "PET", + "Snapmaker Dual PET" + ] + ], + "21285779410": [ + [ + "Snapmaker", + "PET", + "Snapmaker PET" + ] + ], + "2209001062": [ + [ + "Snapmaker", + "PETG", + "Snapmaker Dual PETG" + ] + ], + "22090010620": [ + [ + "Snapmaker", + "PETG", + "Snapmaker PETG" + ] + ], + "2549587591": [ + [ + "Snapmaker", + "PET", + "Snapmaker PET" + ] + ], + "2742961008": [ + [ + "Snapmaker", + "ASA", + "Snapmaker ASA" + ] + ], + "29001": [ + [ + "Creality", + "PLA", + "Hyper Marble" + ] + ], + "2971656290": [ + [ + "Snapmaker", + "TPU", + "Snapmaker Dual TPU" + ] + ], + "29716562900": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU" + ] + ], + "297165629001": [ + [ + "Generic", + "TPU", + "Snapmaker TPU 95A" + ] + ], + "3104636980": [ + [ + "Snapmaker", + "PVA", + "Snapmaker Dual PVA" + ] + ], + "31046369800": [ + [ + "Snapmaker", + "PVA", + "Snapmaker PVA" + ] + ], + "3177068229": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA" + ] + ], + "3383257822": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Eco" + ] + ], + "3492897526": [ + [ + "Snapmaker", + "Breakaway Support", + "Snapmaker J1 Breakaway" + ] + ], + "3493177425": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker Dual PA-CF" + ] + ], + "34931774250": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker PA-CF" + ] + ], + "3503790988": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Matte" + ] + ], + "377675245": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA" + ] + ], + "3806593857": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker J1 PLA-CF" + ] + ], + "3811508002": [ + [ + "Snapmaker", + "ABS", + "Snapmaker ABS" + ] + ], + "3864371306": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker PLA-CF" + ] + ], + "4012961186": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Metal" + ] + ], + "4092268632": [ + [ + "Snapmaker", + "TPU", + "Snapmaker J1 TPU" + ] + ], + "4227461134": [ + [ + "Snapmaker", + "PVA", + "Snapmaker J1 PVA" + ] + ], + "4235401834": [ + [ + "Snapmaker", + "PETG-CF", + "Snapmaker J1 PETG-CF" + ] + ], + "581236806": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker PA-CF" + ] + ], + "AZ01-1": [ + [ + "Aliz", + "PETG-CF", + "AliZ PETG-CF" + ] + ], + "AZ01-2": [ + [ + "Aliz", + "PETG", + "AliZ PETG-Metal" + ] + ], + "AliZ001": [ + [ + "Aliz", + "PETG", + "AliZ PETG" + ] + ], + "AliZ002": [ + [ + "Aliz", + "PLA", + "AliZ PLA" + ] + ], + "AliZ003": [ + [ + "Aliz", + "PA-CF", + "AliZ PA-CF" + ] + ], + "BSFI001": [ + [ + "Generic", + "PLA", + "Blocks Generic PLA" + ] + ], + "BSFI002": [ + [ + "Generic", + "PETG", + "Blocks Generic PETG" + ] + ], + "BSFI003": [ + [ + "Generic", + "TPU", + "Blocks Generic TPU" + ] + ], + "BSFI004": [ + [ + "Generic", + "ABS", + "Blocks Generic ABS" + ] + ], + "BSFI005": [ + [ + "Generic", + "ASA", + "Blocks Generic ASA" + ] + ], + "BSFI006": [ + [ + "Generic", + "PA", + "Blocks Generic PA" + ] + ], + "BSFI007": [ + [ + "Generic", + "PA-CF", + "Blocks Generic PA-CF" + ] + ], + "BSFI008": [ + [ + "Generic", + "PC", + "Blocks Generic PC" + ] + ], + "BSFI009": [ + [ + "Generic", + "PVA", + "Blocks Generic PVA" + ] + ], + "BSFI010": [ + [ + "Generic", + "PLA-CF", + "Blocks Generic PLA-CF" + ] + ], + "CX30DB20": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 30D" + ] + ], + "CX40DB20": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 40D" + ] + ], + "CX60AB17": [ + [ + "COEX 3D", + "TPU", + "COEX TPU 60A" + ] + ], + "CX60DB19": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 60D" + ] + ], + "CXABPB09": [ + [ + "COEX 3D", + "ABS", + "COEX ABS PRIME" + ] + ], + "CXABSB01": [ + [ + "COEX 3D", + "ABS", + "COEX ABS" + ] + ], + "CXASAB04": [ + [ + "COEX 3D", + "ASA", + "COEX ASA PRIME" + ] + ], + "CXPACB23": [ + [ + "COEX 3D", + "PA-CF", + "COEX NYLEX PA6-CF" + ] + ], + "CXPAUB21": [ + [ + "COEX 3D", + "PA", + "COEX NYLEX UNFILLED" + ] + ], + "CXPCTB15": [ + [ + "COEX 3D", + "PCTG", + "COEX PCTG PRIME" + ] + ], + "CXPETB13": [ + [ + "COEX 3D", + "PETG", + "COEX PETG" + ] + ], + "CXPLAB02": [ + [ + "COEX 3D", + "PLA", + "COEX PLA" + ] + ], + "CXPLAB08": [ + [ + "COEX 3D", + "PLA", + "COEX PLA PRIME" + ] + ], + "CXPLSB03": [ + [ + "COEX 3D", + "PLA", + "COEX PLA+Silk" + ] + ], + "DFL99": [ + [ + "Volumic", + "PLA", + "Désactivé" + ] + ], + "DREMC001": [ + [ + "DREMC", + "PLA", + "DREMC PLA+" + ] + ], + "DREMC002": [ + [ + "DREMC", + "PETG", + "DREMC PETG" + ] + ], + "DREMC003": [ + [ + "DREMC", + "ABS", + "DREMC ABS" + ] + ], + "DREMC004": [ + [ + "DREMC", + "ABS", + "DREMC ABS+" + ] + ], + "DREMC005": [ + [ + "DREMC", + "ASA", + "DREMC ASA" + ] + ], + "DREMC006": [ + [ + "DREMC", + "PA6-CF", + "DREMC PA6-CF" + ] + ], + "DREMC007": [ + [ + "DREMC", + "PA-CF", + "DREMC PA12-CF" + ] + ], + "DREMC008": [ + [ + "DREMC", + "PET-CF", + "DREMC PET-CF" + ] + ], + "DREMC009": [ + [ + "DREMC", + "ABS-GF", + "DREMC ABS-GF" + ] + ], + "DREMC010": [ + [ + "DREMC", + "PPA-CF", + "DREMC PPA-CF" + ], + [ + "DREMC", + "TPU", + "DREMC TPU 95A" + ] + ], + "DREMC011": [ + [ + "DREMC", + "PLA", + "DREMC PLA+ HS" + ] + ], + "DREMC012": [ + [ + "DREMC", + "ASA", + "DREMC ASA CF" + ] + ], + "DREMC013": [ + [ + "DREMC", + "ASA", + "DREMC ASA GF" + ] + ], + "E1001": [ + [ + "eSUN", + "PLA", + "eSUN PLA+" + ] + ], + "E1002": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Silk" + ] + ], + "E1003": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Matte" + ] + ], + "E1004": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Lite" + ] + ], + "E1005": [ + [ + "eSUN", + "PLA-CF", + "eSUN PLA-CF" + ] + ], + "E1006": [ + [ + "eSUN", + "PLA", + "eSUN PLA-HS" + ] + ], + "E2001": [ + [ + "eSUN", + "PETG", + "eSUN PETG" + ] + ], + "E2002": [ + [ + "eSUN", + "PETG", + "eSUN PETG+HS" + ] + ], + "E2003": [ + [ + "eSUN", + "PETG", + "eSUN PETG-Basic" + ] + ], + "E3001": [ + [ + "eSUN", + "ABS", + "eSUN ABS+" + ] + ], + "E4001": [ + [ + "eSUN", + "ASA", + "eSUN ASA+" + ] + ], + "E8001": [ + [ + "eSUN", + "PET", + "eSUN PET-Basic" + ] + ], + "EABSB00": [ + [ + "Elegoo", + "ABS", + "Elegoo ABS" + ] + ], + "EASAB00": [ + [ + "Elegoo", + "ASA", + "Elegoo ASA" + ] + ], + "EFL33": [ + [ + "Eryone", + "PP-CF", + "Eryone PP-CF" + ] + ], + "EFL40": [ + [ + "Eryone", + "PLA-CF", + "Eryone PLA-CF" + ] + ], + "EFL43": [ + [ + "Eryone", + "PETG-CF", + "Eryone PETG-CF" + ] + ], + "EFL71": [ + [ + "Eryone", + "PA", + "Eryone PA" + ] + ], + "EFL72": [ + [ + "Eryone", + "PA-CF", + "Eryone PA-CF" + ] + ], + "EFL73": [ + [ + "Eryone", + "PA-GF", + "Eryone PA-GF" + ] + ], + "EFL81": [ + [ + "Eryone", + "ABS-CF", + "Eryone ABS-CF" + ] + ], + "EFL82": [ + [ + "Eryone", + "ASA-CF", + "Eryone ASA-CF" + ] + ], + "EFL90": [ + [ + "Eryone", + "PLA", + "Eryone PLA" + ] + ], + "EFL91": [ + [ + "Eryone", + "ABS", + "Eryone ABS" + ] + ], + "EFL92": [ + [ + "Eryone", + "ASA", + "Eryone ASA" + ] + ], + "EFL93": [ + [ + "Eryone", + "PETG", + "Eryone PETG" + ] + ], + "EFL941": [ + [ + "Eryone", + "PLA Silk", + "Eryone Silk PLA" + ] + ], + "EFL95": [ + [ + "Eryone", + "TPU", + "Eryone TPU" + ] + ], + "EPAHTB00": [ + [ + "Elegoo", + "PA", + "Elegoo PAHT" + ] + ], + "EPCB00": [ + [ + "Elegoo", + "PC", + "Elegoo PC" + ] + ], + "EPETGB00": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG" + ] + ], + "EPLAB00": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA" + ] + ], + "ESN02": [ + [ + "eSUN", + "PLA-AERO", + "eSUN ePLA-LW" + ] + ], + "ESN03": [ + [ + "eSUN", + "PETG", + "eSUN PETG" + ] + ], + "ETPUB00": [ + [ + "Elegoo", + "TPU", + "Elegoo TPU" + ] + ], + "FDPLAST01": [ + [ + "FDplast", + "ABS", + "FDplast ABS" + ] + ], + "FDPLAST02": [ + [ + "FDplast", + "HIPS", + "FDplast HIPS" + ] + ], + "FDPLAST03": [ + [ + "FDplast", + "PETG", + "FDplast PETG" + ] + ], + "FDPLAST04": [ + [ + "FDplast", + "PLA", + "FDplast PLA" + ] + ], + "FDPLAST05": [ + [ + "FDplast", + "SBS", + "FDplast SBS" + ] + ], + "FDPLAST06": [ + [ + "FDplast", + "TPU", + "FDplast TPU" + ] + ], + "FFF01": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA" + ] + ], + "FFF02": [ + [ + "Flashforge", + "ABS", + "Flashforge ABS" + ] + ], + "FFF03": [ + [ + "Flashforge", + "PETG", + "Flashforge PETG" + ], + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "FFG01": [ + [ + "Generic", + "PLA", + "Flashforge Generic PLA" + ] + ], + "FILAR0001": [ + [ + "FilAr", + "PLA", + "FilAr PLA Bronce" + ] + ], + "FILAR0002": [ + [ + "FilAr", + "PLA", + "FilAr PLA Gris Plata" + ] + ], + "FILAR0003": [ + [ + "FilAr", + "PLA", + "FilAr PLA Cobre" + ] + ], + "FILAR0004": [ + [ + "FilAr", + "PLA", + "FilAr PLA Titanio" + ] + ], + "FILAR0005": [ + [ + "FilAr", + "PLA", + "FilAr PLA Tabaco" + ] + ], + "FILAR0006": [ + [ + "FilAr", + "PLA", + "FilAr PLA Cafe con Leche" + ] + ], + "FILAR0007": [ + [ + "FilAr", + "PLA", + "FilAr PLA Manteca" + ] + ], + "FILAR0008": [ + [ + "FilAr", + "PLA", + "FilAr PLA Marron Oxido" + ] + ], + "FILAR0009": [ + [ + "FilAr", + "PLA", + "FilAr PLA Carpincho" + ] + ], + "FILAR0010": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rosa Amaranto" + ] + ], + "FILAR0011": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rosa Flamenco" + ] + ], + "FILAR0012": [ + [ + "FilAr", + "PLA", + "FilAr PLA Piel" + ] + ], + "FILAR0013": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde FilAr" + ] + ], + "FILAR0014": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Manzana" + ] + ], + "FILAR0015": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Pixel" + ] + ], + "FILAR0016": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Oliva" + ] + ], + "FILAR0017": [ + [ + "FilAr", + "PLA", + "FilAr PLA Blanco Antartida" + ] + ], + "FILAR0018": [ + [ + "FilAr", + "PLA", + "FilAr PLA Blanco Calido" + ] + ], + "FILAR0019": [ + [ + "FilAr", + "PLA", + "FilAr PLA Negro Azabache" + ] + ], + "FILAR0020": [ + [ + "FilAr", + "PLA", + "FilAr PLA Naranja Tigre" + ] + ], + "FILAR0021": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rojo de Carreras" + ] + ], + "FILAR0022": [ + [ + "FilAr", + "PLA", + "FilAr PLA Amarillo Lirio" + ] + ], + "FILAR0023": [ + [ + "FilAr", + "PLA", + "FilAr PLA Violeta Jacaranda" + ] + ], + "FILAR0024": [ + [ + "FilAr", + "PLA", + "FilAr PLA Gris Pizarra" + ] + ], + "FILAR0025": [ + [ + "FilAr", + "PLA", + "FilAr PLA Gris Ceniza" + ] + ], + "FILAR0026": [ + [ + "FilAr", + "PLA", + "FilAr PLA Azul Francia" + ] + ], + "FILAR0027": [ + [ + "FilAr", + "PLA", + "FilAr PLA Celeste Cielo" + ] + ], + "FILAR0028": [ + [ + "FilAr", + "PLA", + "FilAr PLA Oro" + ] + ], + "FILAR0029": [ + [ + "FilAr", + "PLA", + "FilAr PLA Dorado" + ] + ], + "FILAR0030": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Amarillo" + ] + ], + "FILAR0031": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Azul" + ] + ], + "FILAR0032": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Beige" + ] + ], + "FILAR0033": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Blanco" + ] + ], + "FILAR0034": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Bordo" + ] + ], + "FILAR0035": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Celeste Cielo" + ] + ], + "FILAR0036": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Chocolate" + ] + ], + "FILAR0037": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Gris" + ] + ], + "FILAR0038": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Marron" + ] + ], + "FILAR0039": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Naranja" + ] + ], + "FILAR0040": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Negro" + ] + ], + "FILAR0041": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Piel" + ] + ], + "FILAR0042": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Rojo" + ] + ], + "FILAR0043": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Rosa" + ] + ], + "FILAR0044": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Uva" + ] + ], + "FILAR0045": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Verde" + ] + ], + "FILAR0046": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Violeta" + ] + ], + "FILAR0047": [ + [ + "FilAr", + "PETG", + "FilAr PETG Amarillo Lima" + ] + ], + "FILAR0048": [ + [ + "FilAr", + "PETG", + "FilAr PETG Amarillo Radiante" + ] + ], + "FILAR0049": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Boreal" + ] + ], + "FILAR0050": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Francia" + ] + ], + "FILAR0051": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Imperial" + ] + ], + "FILAR0052": [ + [ + "FilAr", + "PETG", + "FilAr PETG Blanco Antartida" + ] + ], + "FILAR0053": [ + [ + "FilAr", + "PETG", + "FilAr PETG Cian" + ] + ], + "FILAR0054": [ + [ + "FilAr", + "PETG", + "FilAr PETG Coral" + ] + ], + "FILAR0055": [ + [ + "FilAr", + "PETG", + "FilAr PETG Cristal" + ] + ], + "FILAR0056": [ + [ + "FilAr", + "PETG", + "FilAr PETG Gris Ceniza" + ] + ], + "FILAR0057": [ + [ + "FilAr", + "PETG", + "FilAr PETG Gris Plata" + ] + ], + "FILAR0058": [ + [ + "FilAr", + "PETG", + "FilAr PETG Magenta" + ] + ], + "FILAR0059": [ + [ + "FilAr", + "PETG", + "FilAr PETG Negro Azabache" + ] + ], + "FILAR0060": [ + [ + "FilAr", + "PETG", + "FilAr PETG Rojo Carmesi" + ] + ], + "FILARB01": [ + [ + "FilAr", + "PLA", + "FilAr PLA" + ] + ], + "FILARB02": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate" + ] + ], + "FILARB03": [ + [ + "FilAr", + "PETG", + "FilAr PETG" + ] + ], + "FILL3D001": [ + [ + "FILL3D", + "PLA", + "FILL3D PLA Turbo" + ] + ], + "FILL3D002": [ + [ + "FILL3D", + "PLA", + "FILL3D PLA Basic" + ] + ], + "FILL3D003": [ + [ + "FILL3D", + "PETG", + "FILL3D PETG" + ] + ], + "FILL3D004": [ + [ + "FILL3D", + "PP", + "FILL3D PP" + ] + ], + "FILL3D005": [ + [ + "FILL3D", + "PP", + "FILL3D PPCF" + ] + ], + "FILL3D006": [ + [ + "FILL3D", + "PA", + "FILL3D PA" + ] + ], + "FILL3D007": [ + [ + "FILL3D", + "PETG-CF", + "FILL3D PETG CF" + ] + ], + "GABSB00": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "GASAB00": [ + [ + "Generic", + "ASA", + "Generic ASA" + ] + ], + "GFA00": [ + [ + "Afinia", + "PLA", + "Afinia PLA" + ], + [ + "Afinia", + "PLA", + "Afinia Value PLA" + ], + [ + "Orca Arena", + "PLA", + "Arena PLA Basic" + ], + [ + "Tiertime", + "PLA", + "Tiertime PLA" + ], + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Basic" + ] + ], + "GFA00_01": [ + [ + "Afinia", + "PLA", + "Afinia PLA" + ], + [ + "Tiertime", + "PLA", + "Tiertime PLA" + ] + ], + "GFA01": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Matte" + ], + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Matte" + ] + ], + "GFA02": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Metal" + ], + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Metal" + ] + ], + "GFA03": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Impact" + ] + ], + "GFA05": [ + [ + "Generic", + "PLA", + "Qidi Generic PLA Silk" + ], + [ + "Orca Arena", + "PLA", + "Arena PLA Silk" + ], + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Silk" + ] + ], + "GFA07": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Marble" + ], + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Marble" + ] + ], + "GFA08": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Sparkle" + ] + ], + "GFA09": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Tough" + ] + ], + "GFA16": [ + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Wood" + ] + ], + "GFA50": [ + [ + "Orca Arena", + "PLA-CF", + "Arena PLA-CF" + ], + [ + "Tiertime", + "PLA-CF", + "Tiertime PLA-CF" + ] + ], + "GFA50_01": [ + [ + "Tiertime", + "PLA-CF", + "Tiertime PLA-CF" + ] + ], + "GFA99": [ + [ + "Anycubic", + "ASA", + "Anycubic ASA" + ], + [ + "CoLiDo", + "PLA", + "CoLiDo Generic PLA" + ], + [ + "CoLiDo", + "PLA", + "CoLiDo PLA+" + ], + [ + "Generic", + "ASA", + "Anycubic ASA" + ] + ], + "GFASA": [ + [ + "Anycubic", + "ASA", + "Anycubic ASA" + ], + [ + "Generic", + "ASA", + "Anycubic ASA" + ] + ], + "GFB00": [ + [ + "Afinia", + "ABS", + "Afinia ABS" + ], + [ + "Afinia", + "ABS", + "Afinia ABS+" + ], + [ + "Afinia", + "ABS", + "Afinia Value ABS" + ], + [ + "Orca Arena", + "ABS", + "Arena ABS" + ], + [ + "Tiertime", + "ABS", + "Tiertime ABS" + ], + [ + "WonderMaker", + "ABS", + "WonderMaker ABS" + ] + ], + "GFB00_01": [ + [ + "Afinia", + "ABS", + "Afinia ABS" + ], + [ + "Tiertime", + "ABS", + "Tiertime ABS" + ] + ], + "GFB01": [ + [ + "Tiertime", + "ASA", + "Tiertime ASA" + ], + [ + "WonderMaker", + "ASA", + "WonderMaker ASA" + ] + ], + "GFB01_01": [ + [ + "Tiertime", + "ASA", + "Tiertime ASA" + ] + ], + "GFB98": [ + [ + "Generic", + "ASA", + "Anker Generic ASA" + ], + [ + "Generic", + "ASA", + "Anycubic Generic ASA" + ], + [ + "Generic", + "ASA", + "Artillery Generic ASA" + ], + [ + "Generic", + "ASA", + "Creality Generic ASA" + ], + [ + "Generic", + "ASA", + "FLSun Generic ASA" + ], + [ + "Generic", + "ASA", + "FLSun S1 ASA" + ], + [ + "Generic", + "ASA", + "FLSun T1 ASA" + ], + [ + "Generic", + "ASA", + "OrcaArena Generic ASA" + ], + [ + "Generic", + "ASA", + "RatRig Generic ASA" + ], + [ + "Generic", + "ASA", + "SecKit Generic ASA" + ], + [ + "Generic", + "ASA", + "Tiertime Generic ASA" + ], + [ + "Generic", + "ASA", + "Vzbot Generic ASA" + ], + [ + "Generic", + "ASA", + "fdm_filament_asa" + ] + ], + "GFB98_01": [ + [ + "Generic", + "ASA", + "Tiertime Generic ASA" + ] + ], + "GFB98_2": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "GFB98_3": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "GFB98_4": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "GFB98_5": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ], + [ + "Generic", + "ASA", + "Prusa Generic ASA HF" + ] + ], + "GFB98_6": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA HF" + ] + ], + "GFB98_7": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA HF" + ] + ], + "GFB99": [ + [ + "CoLiDo", + "ABS", + "CoLiDo ABS" + ], + [ + "CoLiDo", + "ABS", + "CoLiDo Generic ABS" + ], + [ + "FlyingBear", + "ABS", + "FlyingBear Generic ABS" + ], + [ + "Generic", + "ABS", + "Anker Generic ABS" + ], + [ + "Generic", + "ABS", + "Anycubic Generic ABS" + ], + [ + "Generic", + "ABS", + "Artillery Generic ABS" + ], + [ + "Generic", + "ABS", + "Chuanying ABS" + ], + [ + "Generic", + "ABS", + "Chuanying Generic ABS" + ], + [ + "Generic", + "ABS", + "Comgrow Generic ABS" + ], + [ + "Generic", + "ABS", + "Creality Generic ABS" + ], + [ + "Generic", + "ABS", + "FLSun Generic ABS" + ], + [ + "Generic", + "ABS", + "FLSun S1 ABS" + ], + [ + "Generic", + "ABS", + "FLSun T1 ABS" + ], + [ + "Generic", + "ABS", + "Flashforge ABS" + ], + [ + "Generic", + "ABS", + "Flashforge Generic ABS" + ], + [ + "Generic", + "ABS", + "Generic ABS" + ], + [ + "Generic", + "ABS", + "Lulzbot 2.85mm ABS" + ], + [ + "Generic", + "ABS", + "OrcaArena Generic ABS" + ], + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ], + [ + "Generic", + "ABS", + "Qidi Generic ABS" + ], + [ + "Generic", + "ABS", + "RatRig Generic ABS" + ], + [ + "Generic", + "ABS", + "SecKit Generic ABS" + ], + [ + "Generic", + "ABS", + "Tiertime Generic ABS" + ], + [ + "Generic", + "ABS", + "Vzbot Generic ABS" + ], + [ + "Generic", + "TPU", + "DeltaMaker Generic TPU" + ], + [ + "InfiMech", + "ABS", + "InfiMech Generic ABS" + ], + [ + "Volumic", + "ABS", + "Volumic ABS Ultra" + ], + [ + "Volumic", + "ABS", + "Volumic ABS Ultra (Performance)" + ] + ], + "GFB99_01": [ + [ + "Generic", + "ABS", + "Tiertime Generic ABS" + ] + ], + "GFB99_2": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "GFB99_3": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "GFB99_4": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "GFB99_5": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ], + [ + "Generic", + "ABS", + "Prusa Generic ABS HF" + ] + ], + "GFB99_6": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS HF" + ] + ], + "GFB99_7": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS HF" + ] + ], + "GFC00": [ + [ + "Orca Arena", + "PC", + "Arena PC" + ], + [ + "Tiertime", + "PC", + "Tiertime PC" + ] + ], + "GFC00_01": [ + [ + "Tiertime", + "PC", + "Tiertime PC" + ] + ], + "GFC98": [ + [ + "Generic", + "PC-CF", + "fdm_filament_pccf" + ] + ], + "GFC99": [ + [ + "FlyingBear", + "PC", + "FlyingBear Generic PC" + ], + [ + "Generic", + "PC", + "Anker Generic PC" + ], + [ + "Generic", + "PC", + "Anycubic Generic PC" + ], + [ + "Generic", + "PC", + "Creality Generic PC" + ], + [ + "Generic", + "PC", + "FLSun Generic PC" + ], + [ + "Generic", + "PC", + "Generic PC" + ], + [ + "Generic", + "PC", + "OrcaArena Generic PC" + ], + [ + "Generic", + "PC", + "Qidi Generic PC" + ], + [ + "Generic", + "PC", + "RatRig Generic PC" + ], + [ + "Generic", + "PC", + "SecKit Generic PC" + ], + [ + "Generic", + "PC", + "Tiertime Generic PC" + ], + [ + "Generic", + "PC", + "Vzbot Generic PC" + ], + [ + "Generic", + "PC", + "fdm_filament_pc" + ], + [ + "InfiMech", + "PC", + "InfiMech Generic PC" + ], + [ + "Volumic", + "PC", + "Volumic PC" + ], + [ + "Volumic", + "PC", + "Volumic PC (Performance)" + ] + ], + "GFC99_01": [ + [ + "Generic", + "PC", + "Tiertime Generic PC" + ] + ], + "GFC99_1": [ + [ + "Generic", + "PC", + "Prusa Generic PC" + ] + ], + "GFC99_2": [ + [ + "Generic", + "PC", + "Prusa Generic PC" + ] + ], + "GFC99_3": [ + [ + "Generic", + "PC", + "Prusa Generic PC" + ] + ], + "GFC99_4": [ + [ + "Generic", + "PC", + "Prusa Generic PC" + ], + [ + "Generic", + "PC", + "Prusa Generic PC HF" + ] + ], + "GFC99_5": [ + [ + "Generic", + "PC", + "Prusa Generic PC HF" + ] + ], + "GFC99_6": [ + [ + "Generic", + "PC", + "Prusa Generic PC HF" + ] + ], + "GFG00": [ + [ + "Orca Arena", + "PETG", + "Arena PETG Basic" + ], + [ + "Tiertime", + "PETG", + "Tiertime PETG" + ], + [ + "WonderMaker", + "PETG", + "WonderMaker PETG Basic" + ] + ], + "GFG00_01": [ + [ + "Tiertime", + "PETG", + "Tiertime PETG" + ] + ], + "GFG01": [ + [ + "Generic", + "PETG", + "re3D Greengate rPETG" + ], + [ + "re3D", + "PETG", + "re3D Greengate rPETG" + ] + ], + "GFG02": [ + [ + "re3D", + "PP", + "re3D rPP" + ] + ], + "GFG03": [ + [ + "re3D", + "PETG", + "re3D PETG" + ] + ], + "GFG50": [ + [ + "Orca Arena", + "PETG-CF", + "Arena PETG-CF" + ] + ], + "GFG60": [ + [ + "Polymaker", + "PETG", + "PolyLite PETG" + ] + ], + "GFG97": [ + [ + "Generic", + "PCTG", + "Tiertime Generic PCTG" + ] + ], + "GFG97-01": [ + [ + "Generic", + "PCTG", + "Tiertime Generic PCTG" + ] + ], + "GFG98": [ + [ + "Generic", + "PETG-CF", + "Anker Generic PETG-CF" + ], + [ + "Generic", + "PETG-CF", + "Qidi Generic PETG-CF" + ], + [ + "Generic", + "PETG-CF", + "Tiertime Generic PETG-CF" + ], + [ + "Orca Arena", + "PETG-CF", + "OrcaArena Generic PETG-CF" + ], + [ + "Volumic", + "PETG", + "Volumic PETG Ultra carbone" + ], + [ + "Volumic", + "PETG", + "Volumic PETG Ultra carbone (Performance)" + ] + ], + "GFG98_01": [ + [ + "Generic", + "PETG-CF", + "Tiertime Generic PETG-CF" + ] + ], + "GFG99": [ + [ + "CoLiDo", + "PETG", + "CoLiDo Generic PETG" + ], + [ + "CoLiDo", + "PETG", + "CoLiDo PETG" + ], + [ + "FlyingBear", + "PETG", + "FlyingBear Generic PETG" + ], + [ + "FlyingBear", + "PETG Basic", + "FlyingBear PETG Basic" + ], + [ + "Generic", + "PEEK", + "MM Generic PEEK" + ], + [ + "Generic", + "PETG", + "Anker Generic PETG" + ], + [ + "Generic", + "PETG", + "Anycubic Generic PETG" + ], + [ + "Generic", + "PETG", + "Artillery Generic PETG" + ], + [ + "Generic", + "PETG", + "C1 Generic PETG" + ], + [ + "Generic", + "PETG", + "Chuanying Generic PETG" + ], + [ + "Generic", + "PETG", + "Chuanying PETG" + ], + [ + "Generic", + "PETG", + "Comgrow Generic PETG" + ], + [ + "Generic", + "PETG", + "Creality Generic PETG" + ], + [ + "Generic", + "PETG", + "DeltaMaker Generic PETG" + ], + [ + "Generic", + "PETG", + "FLSun Generic PETG" + ], + [ + "Generic", + "PETG", + "FLSun S1 PETG" + ], + [ + "Generic", + "PETG", + "FLSun T1 PETG" + ], + [ + "Generic", + "PETG", + "Flashforge Generic PETG" + ], + [ + "Generic", + "PETG", + "Flashforge PETG" + ], + [ + "Generic", + "PETG", + "Generic PETG" + ], + [ + "Generic", + "PETG", + "Lulzbot 2.85mm PETG" + ], + [ + "Generic", + "PETG", + "OrcaArena Generic PETG" + ], + [ + "Generic", + "PETG", + "Qidi Generic PETG" + ], + [ + "Generic", + "PETG", + "RatRig Generic PETG" + ], + [ + "Generic", + "PETG", + "SecKit Generic PETG" + ], + [ + "Generic", + "PETG", + "Tiertime Generic PETG" + ], + [ + "Generic", + "PETG", + "Vzbot Generic PETG" + ], + [ + "Generic", + "PETG", + "Yumi Generic PETG" + ], + [ + "InfiMech", + "PETG", + "InfiMech Generic PETG" + ], + [ + "Volumic", + "PETG", + "Volumic PETG Ultra" + ], + [ + "Volumic", + "PETG", + "Volumic PETG Ultra (Performance)" + ], + [ + "Yumi", + "PETG", + "YUMI PETG" + ], + [ + "re3D", + "PC", + "re3D PC" + ] + ], + "GFG99_01": [ + [ + "Generic", + "PETG", + "Tiertime Generic PETG" + ] + ], + "GFG99_2": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "GFG99_3": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "GFG99_4": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "GFG99_5": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ], + [ + "Generic", + "PETG", + "Prusa Generic PETG HF" + ] + ], + "GFG99_6": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG HF" + ] + ], + "GFG99_7": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG HF" + ] + ], + "GFL00": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA" + ] + ], + "GFL01": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA" + ] + ], + "GFL06": [ + [ + "Polymaker", + "PETG", + "Fiberon PETG-ESD" + ] + ], + "GFL100": [ + [ + "Generic", + "PLA", + "Generic PLA" + ], + [ + "Generic", + "PLA", + "TwoTrees Generic HS PLA" + ] + ], + "GFL106": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "GFL108": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "GFL200": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "GFL204": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "GFL206": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "GFL208": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "GFL300": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFL304": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFL306": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFL308": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFL400": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "GFL404": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "GFL406": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "GFL408": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "GFL500": [ + [ + "Generic", + "ABS", + "Generic ABS HT" + ] + ], + "GFL504": [ + [ + "Generic", + "ABS", + "Generic ABS HT" + ] + ], + "GFL506": [ + [ + "Generic", + "ABS", + "Generic ABS HT" + ] + ], + "GFL508": [ + [ + "Generic", + "ABS", + "Generic ABS HT" + ] + ], + "GFL56": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA12-CF10" + ] + ], + "GFL57": [ + [ + "Polymaker", + "PA6-CF", + "Fiberon PA6-CF20" + ] + ], + "GFL62": [ + [ + "Polymaker", + "PLA", + "PolyLite CosPLA" + ] + ], + "GFL63": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Galaxy" + ] + ], + "GFL64": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Glow" + ] + ], + "GFL65": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Luminous" + ] + ], + "GFL66": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Neon" + ] + ], + "GFL67": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Starlight" + ] + ], + "GFL68": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Translucent" + ] + ], + "GFL69": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA Marble" + ] + ], + "GFL70": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA+" + ] + ], + "GFL71": [ + [ + "Polymaker", + "ASA", + "Fiberon ASA-CF08" + ] + ], + "GFL72": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA612-ESD" + ] + ], + "GFL73": [ + [ + "Polymaker", + "ABS", + "Fiberon PPS-GF20" + ] + ], + "GFL74": [ + [ + "Polymaker", + "PETG", + "PolyLite PETG Translucent" + ] + ], + "GFL75": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Pro Metallic" + ] + ], + "GFL76": [ + [ + "Polymaker", + "PETG", + "Polymaker PETG" + ] + ], + "GFL77": [ + [ + "Polymaker", + "PETG", + "Polymaker PETG Galaxy" + ] + ], + "GFL78": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA" + ] + ], + "GFL79": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA Pro" + ] + ], + "GFL80": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA Pro Metallic" + ] + ], + "GFL94": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Slik" + ] + ], + "GFL95": [ + [ + "Generic", + "PLA", + "Anker Generic PLA+" + ], + [ + "Generic", + "PLA", + "Tiertime Generic PLA High Speed" + ] + ], + "GFL95_01": [ + [ + "Generic", + "PLA", + "Tiertime Generic PLA High Speed" + ] + ], + "GFL96": [ + [ + "Generic", + "PLA", + "Anker Generic PLA Silk" + ], + [ + "Generic", + "PLA", + "Tiertime Generic PLA Silk" + ] + ], + "GFL96_01": [ + [ + "Generic", + "PLA", + "Tiertime Generic PLA Silk" + ] + ], + "GFL97": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA SE" + ] + ], + "GFL98": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Glow" + ], + [ + "Generic", + "PLA-CF", + "Anker Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Anycubic Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Artillery Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Creality Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "FLSun Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "OrcaArena Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Qidi Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "RatRig Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "SecKit Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Tiertime Generic PLA-CF" + ], + [ + "Generic", + "PLA-CF", + "Vzbot Generic PLA-CF" + ] + ], + "GFL98_01": [ + [ + "Generic", + "PLA-CF", + "Tiertime Generic PLA-CF" + ] + ], + "GFL98_1": [ + [ + "Generic", + "PLA-CF", + "Prusa Generic PLA-CF" + ] + ], + "GFL98_3": [ + [ + "Generic", + "PLA-CF", + "Prusa Generic PLA-CF" + ] + ], + "GFL98_4": [ + [ + "Generic", + "PLA-CF", + "Prusa Generic PLA-CF" + ] + ], + "GFL98_5": [ + [ + "Generic", + "PLA-CF", + "Prusa Generic PLA-CF" + ] + ], + "GFL99": [ + [ + "Co Print", + "PLA", + "CoPrint Generic PLA" + ], + [ + "FlyingBear", + "PLA", + "FlyingBear Generic PLA" + ], + [ + "Generic", + "ASA", + "Flashforge ASA" + ], + [ + "Generic", + "PLA", + "Anker Generic PLA" + ], + [ + "Generic", + "PLA", + "Anycubic Generic PLA" + ], + [ + "Generic", + "PLA", + "Artillery Generic PLA" + ], + [ + "Generic", + "PLA", + "C1 Generic PLA" + ], + [ + "Generic", + "PLA", + "Chuanying Generic PLA" + ], + [ + "Generic", + "PLA", + "Comgrow Generic PLA" + ], + [ + "Generic", + "PLA", + "Comgrow T300 PLA" + ], + [ + "Generic", + "PLA", + "Creality Generic PLA" + ], + [ + "Generic", + "PLA", + "DeltaMaker Generic PLA" + ], + [ + "Generic", + "PLA", + "Dremel Generic PLA" + ], + [ + "Generic", + "PLA", + "FLSun Generic PLA" + ], + [ + "Generic", + "PLA", + "FLSun S1 PLA Generic" + ], + [ + "Generic", + "PLA", + "FLSun T1 PLA Generic" + ], + [ + "Generic", + "PLA", + "Flashforge PLA-SILK" + ], + [ + "Generic", + "PLA", + "Generic PLA" + ], + [ + "Generic", + "PLA", + "Generic PLA High Speed" + ], + [ + "Generic", + "PLA", + "Lulzbot 2.85mm PLA" + ], + [ + "Generic", + "PLA", + "OrcaArena Generic PLA" + ], + [ + "Generic", + "PLA", + "Peopoly Generic PLA" + ], + [ + "Generic", + "PLA", + "Phrozen PLA" + ], + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ], + [ + "Generic", + "PLA", + "Qidi Generic PLA" + ], + [ + "Generic", + "PLA", + "RatRig Generic PLA" + ], + [ + "Generic", + "PLA", + "SecKit Generic PLA" + ], + [ + "Generic", + "PLA", + "Sovol SV07 PLA" + ], + [ + "Generic", + "PLA", + "Tiertime Generic PLA" + ], + [ + "Generic", + "PLA", + "Vzbot Generic PLA" + ], + [ + "Generic", + "PLA", + "Yumi Generic PLA" + ], + [ + "InfiMech", + "PLA", + "InfiMech Generic PLA" + ], + [ + "Volumic", + "PLA", + "Volumic PLA Ultra" + ], + [ + "Volumic", + "PLA", + "Volumic PLA Ultra (Performance)" + ], + [ + "re3D", + "PLA", + "re3D PLA" + ] + ], + "GFL99_01": [ + [ + "Generic", + "PLA", + "Tiertime Generic PLA" + ] + ], + "GFL99_2": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "GFL99_3": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "GFL99_4": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "GFL99_5": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ], + [ + "Generic", + "PLA", + "Prusa Generic PLA HF" + ] + ], + "GFL99_6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA HF" + ] + ], + "GFL99_7": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA HF" + ] + ], + "GFLLK10PETG": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFLLK10PLA": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "GFLLK10PPETG": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFLLK10PPLA": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "GFN03": [ + [ + "Orca Arena", + "PA-CF", + "Arena PA-CF" + ] + ], + "GFN04": [ + [ + "Orca Arena", + "PA-CF", + "Arena PAHT-CF" + ] + ], + "GFN05": [ + [ + "Tiertime", + "PA6-CF", + "Tiertime PA6-CF" + ] + ], + "GFN05_01": [ + [ + "Tiertime", + "PA6-CF", + "Tiertime PA6-CF" + ] + ], + "GFN96": [ + [ + "Generic", + "PPA-GF", + "Tiertime Generic PPA-GF" + ] + ], + "GFN96_01": [ + [ + "Generic", + "PPA-GF", + "Tiertime Generic PPA-GF" + ] + ], + "GFN97": [ + [ + "Generic", + "PPA-CF", + "Tiertime Generic PPA-CF" + ] + ], + "GFN97_01": [ + [ + "Generic", + "PPA-CF", + "Tiertime Generic PPA-CF" + ] + ], + "GFN98": [ + [ + "FlyingBear", + "PA-CF", + "FlyingBear Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Anker Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Anycubic Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Creality Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "FLSun Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "OrcaArena Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Qidi Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "RatRig Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "SecKit Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Tiertime Generic PA-CF" + ], + [ + "Generic", + "PA-CF", + "Vzbot Generic PA-CF" + ], + [ + "Generic", + "PA11-CF", + "fdm_filament_pa11cf" + ], + [ + "InfiMech", + "PA-CF", + "InfiMech Generic PA-CF" + ] + ], + "GFN98_02": [ + [ + "Generic", + "PA-CF", + "Tiertime Generic PA-CF" + ] + ], + "GFN98_1": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "GFN98_2": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "GFN98_3": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "GFN98_4": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "GFN99": [ + [ + "Generic", + "PA", + "Anker Generic PA" + ], + [ + "Generic", + "PA", + "Anycubic Generic PA" + ], + [ + "Generic", + "PA", + "FLSun Generic PA" + ], + [ + "Generic", + "PA", + "OrcaArena Generic PA" + ], + [ + "Generic", + "PA", + "Prusa Generic PA" + ], + [ + "Generic", + "PA", + "Qidi Generic PA" + ], + [ + "Generic", + "PA", + "RatRig Generic PA" + ], + [ + "Generic", + "PA", + "SecKit Generic PA" + ], + [ + "Generic", + "PA", + "Tiertime Generic PA" + ], + [ + "Generic", + "PA", + "Vzbot Generic PA" + ], + [ + "Volumic", + "PA", + "Volumic NYLON Ultra" + ], + [ + "Volumic", + "PA", + "Volumic NYLON Ultra (Performance)" + ] + ], + "GFN99_01": [ + [ + "Generic", + "PA", + "Tiertime Generic PA" + ] + ], + "GFN99_1": [ + [ + "Generic", + "PA", + "Prusa Generic PA" + ] + ], + "GFN99_2": [ + [ + "Generic", + "PA", + "Prusa Generic PA" + ] + ], + "GFN99_3": [ + [ + "Generic", + "PA", + "Prusa Generic PA" + ] + ], + "GFN99_4": [ + [ + "Generic", + "PA", + "Prusa Generic PA" + ] + ], + "GFOT001": [ + [ + "Overture", + "PLA", + "Overture PLA Pro" + ] + ], + "GFOT002": [ + [ + "Overture", + "PLA", + "Overture Silk PLA" + ] + ], + "GFOT003": [ + [ + "Overture", + "PLA", + "Overture Easy PLA" + ] + ], + "GFOT004": [ + [ + "Overture", + "PLA", + "Overture Rock PLA" + ] + ], + "GFOT005": [ + [ + "Overture", + "PLA", + "Overture Super PLA+" + ] + ], + "GFOT006": [ + [ + "Overture", + "PLA", + "Overture Air PLA" + ] + ], + "GFOT008": [ + [ + "Overture", + "TPU", + "Overture TPU" + ] + ], + "GFOT009": [ + [ + "Overture", + "ASA", + "Overture ASA" + ] + ], + "GFP95": [ + [ + "Generic", + "PP-GF", + "Tiertime Generic PP-GF" + ] + ], + "GFP95_01": [ + [ + "Generic", + "PP-GF", + "Tiertime Generic PP-GF" + ] + ], + "GFP96": [ + [ + "Generic", + "PP-CF", + "Tiertime Generic PP-CF" + ] + ], + "GFP96_01": [ + [ + "Generic", + "PP-CF", + "Tiertime Generic PP-CF" + ] + ], + "GFP97": [ + [ + "Generic", + "PP", + "Tiertime Generic PP" + ] + ], + "GFP97_01": [ + [ + "Generic", + "PP", + "Tiertime Generic PP" + ] + ], + "GFP98": [ + [ + "Generic", + "PE-CF", + "Tiertime Generic PE-CF" + ] + ], + "GFP98_01": [ + [ + "Generic", + "PE-CF", + "Tiertime Generic PE-CF" + ] + ], + "GFP99": [ + [ + "Generic", + "PE", + "Tiertime Generic PE" + ] + ], + "GFP99_01": [ + [ + "Generic", + "PE", + "Tiertime Generic PE" + ] + ], + "GFPA": [ + [ + "Anycubic", + "PA", + "Anycubic PA" + ] + ], + "GFPA6-CF": [ + [ + "Anycubic", + "PA6-CF", + "Anycubic PA6-CF" + ] + ], + "GFPAHT-CF": [ + [ + "Anycubic", + "PAHT-CF", + "Anycubic PAHT-CF" + ] + ], + "GFPC": [ + [ + "Anycubic", + "PC", + "Anycubic PC" + ] + ], + "GFPC-CF": [ + [ + "Anycubic", + "PC-CF", + "Anycubic PC-CF" + ] + ], + "GFPC-GF": [ + [ + "Anycubic", + "PC-GF", + "Anycubic PC-GF" + ] + ], + "GFPEBA": [ + [ + "Anycubic", + "PEBA", + "Anycubic PEBA" + ] + ], + "GFPET-CF": [ + [ + "Anycubic", + "PET-CF", + "Anycubic PET-CF" + ] + ], + "GFPETG": [ + [ + "Anycubic", + "PETG", + "Generic PETG" + ], + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GFPETG-1": [ + [ + "Generic", + "PETG", + "Peopoly Generic PETG" + ] + ], + "GFPETG-CF": [ + [ + "Anycubic", + "PETG-CF", + "Anycubic PETG-CF" + ] + ], + "GFPLA Glow": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Glow" + ] + ], + "GFPLA Translucent": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Translucent" + ] + ], + "GFPLA-CF": [ + [ + "Anycubic", + "PLA-CF", + "Anycubic PLA-CF" + ] + ], + "GFPM001": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA" + ] + ], + "GFPM002": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Matte" + ] + ], + "GFPM003": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Marble" + ] + ], + "GFPM004": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Silk" + ] + ], + "GFPM005": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Satin" + ] + ], + "GFPM006": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Translucent" + ] + ], + "GFPM007": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Galaxy" + ] + ], + "GFPM008": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Celestial" + ] + ], + "GFPM009": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Starlight" + ] + ], + "GFPM010": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Glow" + ] + ], + "GFPM011": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Luminous" + ] + ], + "GFPM012": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Metallic" + ] + ], + "GFPM013": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Neon" + ] + ], + "GFPM014": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA UV Shift" + ] + ], + "GFPM015": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Temp Shift" + ] + ], + "GFPM016": [ + [ + "Polymaker", + "PLA", + "Panchroma CoPE" + ] + ], + "GFPM017": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA" + ] + ], + "GFPM018": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA-GF" + ] + ], + "GFPM019": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Pro" + ] + ], + "GFPVA": [ + [ + "Anycubic", + "PVA", + "Anycubic PVA" + ] + ], + "GFR98": [ + [ + "Generic", + "PHA", + "Tiertime Generic PHA" + ] + ], + "GFR98_01": [ + [ + "Generic", + "PHA", + "Tiertime Generic PHA" + ] + ], + "GFR99": [ + [ + "Generic", + "EVA", + "Tiertime Generic EVA" + ] + ], + "GFR99_01": [ + [ + "Generic", + "EVA", + "Tiertime Generic EVA" + ] + ], + "GFRH01": [ + [ + "Generic", + "ABS", + "fdm_filament_abs" + ] + ], + "GFRH02": [ + [ + "Generic", + "ASA", + "fdm_filament_asa" + ] + ], + "GFRH03": [ + [ + "Generic", + "PETG", + "fdm_filament_petg" + ] + ], + "GFRH04": [ + [ + "Generic", + "PLA", + "fdm_filament_pla" + ] + ], + "GFRH05": [ + [ + "Generic", + "TPU", + "fdm_filament_tpu" + ] + ], + "GFRH06": [ + [ + "Generic", + "PC-CF", + "fdm_filament_pccf" + ] + ], + "GFS00": [ + [ + "Orca Arena", + "PLA", + "Arena Support W" + ] + ], + "GFS01": [ + [ + "Orca Arena", + "PA", + "Arena Support G" + ] + ], + "GFS04": [ + [ + "Tiertime", + "PVA", + "Tiertime PVA" + ], + [ + "WonderMaker", + "PVA", + "WonderMaker PVA" + ] + ], + "GFS04_01": [ + [ + "Tiertime", + "PVA", + "Tiertime PVA" + ] + ], + "GFS97": [ + [ + "Generic", + "BVOH", + "Tiertime Generic BVOH" + ] + ], + "GFS97_01": [ + [ + "Generic", + "BVOH", + "Tiertime Generic BVOH" + ] + ], + "GFS98": [ + [ + "Generic", + "HIPS", + "Tiertime Generic HIPS" + ], + [ + "Generic", + "PVB", + "fdm_filament_pvb" + ] + ], + "GFS98_01": [ + [ + "Generic", + "HIPS", + "Tiertime Generic HIPS" + ] + ], + "GFS99": [ + [ + "Generic", + "PVA", + "Anker Generic PVA" + ], + [ + "Generic", + "PVA", + "Anycubic Generic PVA" + ], + [ + "Generic", + "PVA", + "FLSun Generic PVA" + ], + [ + "Generic", + "PVA", + "Generic PVA" + ], + [ + "Generic", + "PVA", + "OrcaArena Generic PVA" + ], + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ], + [ + "Generic", + "PVA", + "Qidi Generic PVA" + ], + [ + "Generic", + "PVA", + "RatRig Generic PVA" + ], + [ + "Generic", + "PVA", + "SecKit Generic PVA" + ], + [ + "Generic", + "PVA", + "Tiertime Generic PVA" + ], + [ + "Generic", + "PVA", + "Vzbot Generic PVA" + ], + [ + "Volumic", + "PVA", + "Volumic PVA" + ], + [ + "Volumic", + "PVA", + "Volumic PVA-BVOH (Performance)" + ] + ], + "GFS99_01": [ + [ + "Generic", + "PVA", + "Tiertime Generic PVA" + ] + ], + "GFS99_1": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ] + ], + "GFS99_2": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ] + ], + "GFS99_3": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ] + ], + "GFS99_4": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ], + [ + "Generic", + "PVA", + "Prusa Generic PVA HF" + ] + ], + "GFS99_5": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA HF" + ] + ], + "GFS99_6": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA HF" + ] + ], + "GFSEP001": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Premium" + ] + ], + "GFSEP002": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Matte" + ] + ], + "GFSEP003": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Silk" + ] + ], + "GFSEP004": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Neon" + ] + ], + "GFSEP005": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA High Speed" + ] + ], + "GFSEP006": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA INGEO 850" + ] + ], + "GFSEP007": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA INGEO 870" + ] + ], + "GFSEP008": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Antibacterial" + ] + ], + "GFSEP009": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Transition" + ] + ], + "GFSEP010": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG" + ] + ], + "GFSEP011": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG UV Resistant" + ] + ], + "GFSEP012": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG Transition" + ] + ], + "GFSEP013": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Flex 93A" + ] + ], + "GFSEP014": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Flex D53" + ] + ], + "GFSEP015": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU D60 UV Resistant" + ] + ], + "GFSEP016": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Transition" + ] + ], + "GFSEP017": [ + [ + "Eolas Prints", + "ABS", + "Eolas Prints ABS" + ] + ], + "GFSEP018": [ + [ + "Eolas Prints", + "ASA", + "Eolas Prints ASA" + ] + ], + "GFSL99": [ + [ + "Generic", + "ABS", + "Peopoly Generic ABS" + ] + ], + "GFSNL02": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Matte" + ] + ], + "GFSNL03": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+" + ] + ], + "GFSNL04": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+ 2.0" + ] + ], + "GFSNL05": [ + [ + "SUNLU", + "PLA", + "SUNLU Silk PLA+" + ] + ], + "GFSNL06": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Marble" + ] + ], + "GFSNL07": [ + [ + "SUNLU", + "PLA", + "SUNLU Wood PLA" + ] + ], + "GFSNL08": [ + [ + "SUNLU", + "PETG", + "SUNLU PETG" + ] + ], + "GFT01": [ + [ + "Orca Arena", + "PET-CF", + "Arena PET-CF" + ], + [ + "Tiertime", + "PET-CF", + "Tiertime PET-CF" + ], + [ + "WonderMaker", + "PET-CF", + "WonderMaker PET-CF" + ] + ], + "GFT01_01": [ + [ + "Tiertime", + "PET-CF", + "Tiertime PET-CF" + ] + ], + "GFT02": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "GFT97": [ + [ + "Generic", + "PPS", + "Tiertime Generic PPS" + ] + ], + "GFT97_01": [ + [ + "Generic", + "PPS", + "Tiertime Generic PPS" + ] + ], + "GFT98": [ + [ + "Generic", + "PPS-CF", + "Tiertime Generic PPS-CF" + ] + ], + "GFT98_01": [ + [ + "Generic", + "PPS-CF", + "Tiertime Generic PPS-CF" + ] + ], + "GFTPU 95A": [ + [ + "Anycubic", + "TPU", + "Anycubic TPU 95A" + ] + ], + "GFTPU for ACE": [ + [ + "Anycubic", + "TPU", + "Anycubic TPU for ACE" + ] + ], + "GFU01": [ + [ + "Afinia", + "TPU", + "Afinia TPU" + ], + [ + "Orca Arena", + "TPU", + "Arena TPU 95A" + ], + [ + "Tiertime", + "TPU", + "Tiertime TPU 95A" + ], + [ + "WonderMaker", + "TPU", + "WonderMaker TPU 95A" + ] + ], + "GFU01_01": [ + [ + "Afinia", + "TPU", + "Afinia TPU" + ], + [ + "Tiertime", + "TPU", + "Tiertime TPU 95A" + ] + ], + "GFU99": [ + [ + "CoLiDo", + "TPU", + "CoLiDo Generic TPU" + ], + [ + "FlyingBear", + "TPU", + "FlyingBear Generic TPU" + ], + [ + "FlyingBear", + "TPU", + "FlyingBear TPU Basic" + ], + [ + "Generic", + "FLEX", + "fdm_filament_flex" + ], + [ + "Generic", + "TPU", + "Anker Generic TPU" + ], + [ + "Generic", + "TPU", + "Anycubic Generic TPU" + ], + [ + "Generic", + "TPU", + "Artillery Generic TPU" + ], + [ + "Generic", + "TPU", + "Creality Generic TPU" + ], + [ + "Generic", + "TPU", + "FLSun Generic TPU" + ], + [ + "Generic", + "TPU", + "FLSun S1 TPU" + ], + [ + "Generic", + "TPU", + "FLSun T1 TPU" + ], + [ + "Generic", + "TPU", + "Generic TPU" + ], + [ + "Generic", + "TPU", + "OrcaArena Generic TPU" + ], + [ + "Generic", + "TPU", + "Prusa Generic TPU" + ], + [ + "Generic", + "TPU", + "Qidi Generic TPU" + ], + [ + "Generic", + "TPU", + "RatRig Generic TPU" + ], + [ + "Generic", + "TPU", + "SecKit Generic TPU" + ], + [ + "Generic", + "TPU", + "Tiertime Generic TPU" + ], + [ + "Generic", + "TPU", + "TwoTrees Generic 95A TPU" + ], + [ + "Generic", + "TPU", + "Vzbot Generic TPU" + ], + [ + "InfiMech", + "TPU", + "InfiMech Generic TPU" + ], + [ + "InfiMech", + "TPU", + "InfiMech TPU Basic" + ], + [ + "Volumic", + "TPU", + "Volumic FLEX93 Ultra" + ], + [ + "Volumic", + "TPU", + "Volumic FLEX93 Ultra (Performance)" + ], + [ + "Yumi", + "PLA", + "YUMI PLA Bowden" + ], + [ + "Yumi", + "PLA", + "YUMI PLA Direct Drive" + ] + ], + "GFU99_01": [ + [ + "Generic", + "TPU", + "Tiertime Generic TPU" + ] + ], + "GFU99_2": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "GFU99_3": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU HF" + ] + ], + "GPAB00": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], + "GPCB00": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "GPETB00": [ + [ + "Generic", + "PET", + "Generic PET" + ] + ], + "GPETGB00": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "GPLAB00": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "Generic ABS @E3NG v1.2S": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "Generic ABS @MK4S": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S 0.6": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S 0.8": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S HF0.4": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S HF0.5": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S HF0.6": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ABS @MK4S HF0.8": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Generic ASA @E3NG v1.2S": [ + [ + "Generic", + "ASA", + "Generic ASA" + ] + ], + "Generic FLEX @MK4S": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Generic FLEX @MK4S 0.6": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Generic FLEX @MK4S 0.8": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Generic PCCF @E3NG v1.2S": [ + [ + "Generic", + "PC-CF", + "Generic PCCF" + ] + ], + "Generic PETG @E3NG v1.2S": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "Generic PETG @MK4S": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S 0.6": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S 0.8": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S HF0.4": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S HF0.5": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S HF0.6": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PETG @MK4S HF0.8": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Generic PLA @E3NG v1.2S": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "Generic PLA @MK4S": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S 0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S 0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S HF0.4": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S HF0.5": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S HF0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA @MK4S HF0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Generic PLA Silk @MK4S": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Generic PLA Silk @MK4S 0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Generic PLA Silk @MK4S 0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Generic TPU @E3NG v1.2S": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], + "IQM1": [ + [ + "iQ Materials", + "PACF Pro", + "Fiberthree PACF Pro P1" + ] + ], + "IQM1011": [ + [ + "iQ Materials", + "VXL90 Xioneer", + "VXL90 TiQ2 P2" + ] + ], + "IQM2": [ + [ + "iQ Materials", + "ABS Material4Print Natur", + "Material4Print ABS Natur P1" + ] + ], + "IQM3": [ + [ + "iQ Materials", + "PETG Polymax", + "Polymaker PETG Polymax black P1" + ] + ], + "IQM7": [ + [ + "iQ Materials", + "PACF Pro", + "Fiberthree PACF Pro P2" + ] + ], + "LHF_abs": [ + [ + "LH Stinger", + "ASA", + "LHS ABS" + ] + ], + "LHF_asa": [ + [ + "LH Stinger", + "ASA", + "LHS ASA" + ] + ], + "LHF_ftpuf": [ + [ + "LH Stinger", + "TPU", + "LHS TPU Foamy 78A" + ] + ], + "LHF_pccf": [ + [ + "LH Stinger", + "PC", + "LHS PC CF" + ] + ], + "LHF_pctg": [ + [ + "LH Stinger", + "PCTG", + "LHS PCTG" + ] + ], + "LHF_petg": [ + [ + "LH Stinger", + "PETG", + "LHS PETG" + ] + ], + "LHF_pla": [ + [ + "LH Stinger", + "PLA", + "LHS PLA" + ] + ], + "LHF_ptpu_pl": [ + [ + "LH Stinger", + "TPU", + "LHS TPU" + ] + ], + "NIT01": [ + [ + "NIT", + "ABS", + "NIT ABS" + ] + ], + "NIT02": [ + [ + "NIT", + "PLA", + "NIT PLA" + ] + ], + "NIT03": [ + [ + "NIT", + "PETG", + "NIT PETG" + ] + ], + "OEABSB00": [ + [ + "Elegoo", + "ABS", + "Elegoo ABS" + ] + ], + "OEASAB00": [ + [ + "Elegoo", + "ASA", + "Elegoo ASA" + ] + ], + "OEPAHTB0": [ + [ + "Elegoo", + "PA", + "Elegoo PAHT" + ] + ], + "OEPCB00": [ + [ + "Elegoo", + "PC", + "Elegoo PC" + ] + ], + "OEPETGB0": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG" + ] + ], + "OEPLAB00": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA" + ] + ], + "OETPUB00": [ + [ + "Elegoo", + "TPU", + "Elegoo TPU" + ] + ], + "OF09vOcG": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Galaxy" + ] + ], + "OF0Ee2jQ": [ + [ + "Snapmaker", + "TPU", + "Snapmaker Dual TPU High-Flow" + ] + ], + "OF0M6QAQ": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Galaxy" + ] + ], + "OF0SyJhk": [ + [ + "FusRock", + "PA6-CF", + "Flashforge PA6-CF" + ] + ], + "OF0TODnN": [ + [ + "Generic", + "PET-CF", + "Generic PET-CF" + ] + ], + "OF0TjJ0G": [ + [ + "QIDI", + "ASA-AERO", + "Qidi ASA-Aero" + ] + ], + "OF0UbONm": [ + [ + "Generic", + "S-PAHT", + "FusRock S-PAHT" + ] + ], + "OF0VEdLB": [ + [ + "Cubicon", + "PETG", + "Cubicon PETG" + ] + ], + "OF0Y5MLd": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "OF0wk0Pk": [ + [ + "Generic", + "PLA", + "Flashforge PLA Pro" + ] + ], + "OF0z1XpN": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "OF102WKM": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG PRO" + ] + ], + "OF17cONC": [ + [ + "Polymaker", + "PLA", + "PolyTerra Dual PLA" + ] + ], + "OF1Zypyy": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "OF22AxCm": [ + [ + "Generic", + "PETG", + "Polymaker PETG" + ] + ], + "OF2HQqTC": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA+" + ] + ], + "OF2Psxdc": [ + [ + "Co Print", + "TPU", + "CoPrint Generic TPU" + ] + ], + "OF2UFmOo": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA" + ] + ], + "OF2tvNYA": [ + [ + "Generic", + "PLA", + "Sovol Zero PLA Silk" + ] + ], + "OF38Hyk4": [ + [ + "Generic", + "PETG", + "Flashforge PETG Pro" + ] + ], + "OF3GKs2i": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Matte" + ] + ], + "OF3XeEuV": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "OF3YOOOs": [ + [ + "Generic", + "PETG-CF", + "Chuanying Generic PETG-CF10" + ] + ], + "OF3arl18": [ + [ + "Elegoo", + "PETG", + "Elegoo Rapid PETG" + ] + ], + "OF41QVDH": [ + [ + "Generic", + "PLA", + "Flashforge Generic PLA-Silk" + ] + ], + "OF43idK2": [ + [ + "Generic", + "PLA", + "Creality Generic PLA Matte" + ] + ], + "OF48G7He": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough 0.8 nozzle" + ] + ], + "OF4RKeng": [ + [ + "Generic", + "ASA", + "Flashforge Generic ASA" + ] + ], + "OF4fgpse": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Marble" + ] + ], + "OF4gzzE4": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "OF4jILJA": [ + [ + "FlyingBear", + "PC", + "FlyingBear PC" + ] + ], + "OF4m9A5w": [ + [ + "Generic", + "HIPS", + "Flashforge Generic HIPS" + ] + ], + "OF50NUZI": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA Basic" + ] + ], + "OF57IbZT": [ + [ + "Artillery", + "PLA Basic", + "Artillery PLA Basic" + ] + ], + "OF5Bmdtg": [ + [ + "Generic", + "ABS", + "Sovol SV06 Plus ACE ABS" + ] + ], + "OF5J2axC": [ + [ + "Generic", + "PLA", + "Sovol Zero PLA Basic" + ] + ], + "OF5T1Y9R": [ + [ + "Generic", + "ABS", + "Flashforge ABS Basic" + ] + ], + "OF5UUaUM": [ + [ + "Generic", + "PLA", + "Qidi Generic PLA High Speed" + ] + ], + "OF5Ugv12": [ + [ + "Other", + "PLA", + "Other PLA" + ] + ], + "OF5kwfZu": [ + [ + "FusRock", + "PA-CF", + "FusRock Generic NexPA-CF25" + ] + ], + "OF60Lmeq": [ + [ + "Generic", + "PLA", + "Flashforge PLA Matte" + ] + ], + "OF6EOy1A": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG" + ] + ], + "OF6FM5F7": [ + [ + "Generic", + "PAHT", + "FusRock PAHT" + ] + ], + "OF6Mxzsg": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], + "OF6SEkeJ": [ + [ + "Generic", + "PET-CF", + "FusRock PET-CF" + ] + ], + "OF6XIeUW": [ + [ + "Generic", + "PLA-CF", + "Generic PLA-CF10" + ] + ], + "OF6XuVQE": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS" + ] + ], + "OF70DKqH": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPE" + ] + ], + "OF79FFkO": [ + [ + "Elegoo", + "PC", + "Elegoo PC-FR" + ] + ], + "OF7M9vy4": [ + [ + "Generic", + "PLA", + "RatRig BigNozzle PLA" + ] + ], + "OF7cv1Ub": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "OF7f0eUZ": [ + [ + "Volumic", + "ASA", + "Volumic ASA Ultra" + ] + ], + "OF7tgL9c": [ + [ + "Generic", + "ASA", + "Chuanying Generic ASA" + ] + ], + "OF8HQmJD": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Sparkle" + ] + ], + "OF8WvPVL": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido 0.8 nozzle" + ] + ], + "OF9RZyBz": [ + [ + "Polymaker", + "PA", + "Polymaker Generic S1" + ] + ], + "OF9qvJxV": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Translucent2" + ] + ], + "OF9sr3Vn": [ + [ + "Generic", + "PLA", + "Flashforge PLA Sparkle" + ] + ], + "OF9tjFbj": [ + [ + "Peopoly", + "PLA", + "Peopoly Lancer PLA-C" + ] + ], + "OF9vnvM8": [ + [ + "Artillery", + "PETG-CF", + "Artillery PETG-CF" + ] + ], + "OFAEqlWa": [ + [ + "Generic", + "PLA", + "Flashforge Generic PLA-SILK" + ] + ], + "OFAGqTQG": [ + [ + "Volumic", + "PP", + "Volumic PP Ultra" + ] + ], + "OFAGrVjP": [ + [ + "Generic", + "PLA", + "Flashforge PLA Silk" + ] + ], + "OFAHagT9": [ + [ + "Elegoo", + "PLA", + "Elegoo Rapid PLA+" + ] + ], + "OFAK2XjZ": [ + [ + "Other", + "ABS", + "Other ABS" + ] + ], + "OFAUDGEQ": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "OFAUX5fB": [ + [ + "Generic", + "PETG", + "C1 Generic High Flow PETG" + ] + ], + "OFAbsMuV": [ + [ + "Snapmaker", + "TPU", + "Snapmaker Dual TPE" + ] + ], + "OFAdAYYk": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "OFAdZFD1": [ + [ + "FusRock", + "PET-GF", + "FusRock Generic PET-GF" + ] + ], + "OFAiqi5v": [ + [ + "Elegoo", + "ASA", + "Elegoo ASA-CF" + ] + ], + "OFAnyzjN": [ + [ + "HATCHBOX", + "PETG", + "HATCHBOX PETG" + ] + ], + "OFAtydxE": [ + [ + "Generic", + "S-Multi", + "FusRock S-Multi" + ] + ], + "OFBGxHgT": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA" + ] + ], + "OFBRSZom": [ + [ + "Volumic", + "PPS-CF", + "PPS Carbone (Performance)" + ] + ], + "OFBvxnjM": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-GF" + ] + ], + "OFC2FSsV": [ + [ + "Overture", + "PLA", + "Overture PLA" + ] + ], + "OFC5CCeo": [ + [ + "Generic", + "PETG-CF", + "Flashforge Generic PETG-CF" + ] + ], + "OFCJaXZS": [ + [ + "Generic", + "PPS", + "Flashforge PPS" + ] + ], + "OFCKK3u9": [ + [ + "FlyingBear", + "PA-CF", + "FlyingBear PA-CF" + ] + ], + "OFCgpxn2": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS HF" + ] + ], + "OFChH9xu": [ + [ + "Snapmaker", + "TPU", + "Snapmaker J1 TPE" + ] + ], + "OFD5e0sH": [ + [ + "Elegoo", + "PLA", + "Elegoo Rapid PLA+" + ] + ], + "OFDCk0cz": [ + [ + "Generic", + "PETG-CF", + "Generic PETG-CF" + ] + ], + "OFDMWB6t": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA+" + ] + ], + "OFDNiRTx": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA+" + ] + ], + "OFDkABjZ": [ + [ + "Generic", + "TPU-90A", + "Generic TPU-90A" + ] + ], + "OFDramZ2": [ + [ + "Co Print", + "PETG", + "CoPrint Generic PETG" + ] + ], + "OFE22Uba": [ + [ + "Generic", + "TPU-90A", + "Flashforge TPU-90A" + ] + ], + "OFEYKrjb": [ + [ + "Artillery", + "PETG", + "Artillery PETG" + ] + ], + "OFEdyZqS": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Luminous" + ] + ], + "OFFIL5pD": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "OFFenwbU": [ + [ + "Generic", + "PLA", + "FLSun S1 PLA Silk" + ] + ], + "OFFmJ8aR": [ + [ + "Other", + "PLA", + "Other PLA Hyper" + ] + ], + "OFFrbsvQ": [ + [ + "Other", + "TPU", + "Other TPU" + ] + ], + "OFG8vHw8": [ + [ + "Generic", + "ASA", + "Qidi Generic ASA" + ] + ], + "OFGFZhWu": [ + [ + "Generic", + "PETG", + "Sovol SV06 ACE PETG" + ] + ], + "OFGb4hPY": [ + [ + "Anycubic", + "PEBA", + "Anycubic PEBA 95A" + ] + ], + "OFGfdP6J": [ + [ + "FusRock", + "S-Multi", + "FusRock Generic S-Multi" + ], + [ + "Generic", + "PET-CF", + "FusRock Generic S-Multi" + ] + ], + "OFHBTqyD": [ + [ + "Generic", + "PLA", + "Flashforge PLA Basic" + ] + ], + "OFHDaMut": [ + [ + "Volumic", + "PA6-CF", + "PA6 CF20 (Performance)" + ] + ], + "OFHL32M0": [ + [ + "Anycubic", + "TPU", + "Anycubic TPU" + ], + [ + "Generic", + "TPU", + "Anycubic TPU" + ] + ], + "OFHtQDC9": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Basic" + ] + ], + "OFICPchn": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Basic" + ] + ], + "OFIGHU7W": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-CF" + ] + ], + "OFIl3ar9": [ + [ + "Generic", + "PETG", + "Sovol SV08 PETG" + ] + ], + "OFIzguhB": [ + [ + "Volumic", + "UNIV", + "Volumic UNIVERSAL Ultra" + ] + ], + "OFJIImD5": [ + [ + "Elegoo", + "PETG", + "Elegoo PET-CF" + ] + ], + "OFJfx0Cl": [ + [ + "Generic", + "PE-CF", + "Generic PE-CF" + ] + ], + "OFJsqMzx": [ + [ + "Generic", + "PLA", + "Generic PLA Matte" + ] + ], + "OFK39W9u": [ + [ + "Generic", + "PETG-CF", + "Flashforge Generic PETG-CF10" + ] + ], + "OFK820gS": [ + [ + "QIDI", + "ASA", + "QIDI ASA" + ] + ], + "OFKDnrjL": [ + [ + "Artillery", + "PLA Matte", + "Artillery PLA Matte" + ] + ], + "OFKH15Hd": [ + [ + "Generic", + "ABS", + "Sovol SV08 ABS" + ] + ], + "OFKWVi10": [ + [ + "Generic", + "PLA-CF", + "Flashforge Generic PLA-CF10" + ] + ], + "OFKZH00L": [ + [ + "FusRock", + "PET-CF", + "FusRock Generic PET-CF" + ], + [ + "Generic", + "PET-CF", + "FusRock Generic PET-CF" + ] + ], + "OFKhtNBx": [ + [ + "Snapmaker", + "TPU", + "Snapmaker J1 TPU High-Flow" + ] + ], + "OFKjlAbC": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "OFKzh9lx": [ + [ + "InfiMech", + "PLA", + "InfiMech PLA" + ] + ], + "OFL4BLAC": [ + [ + "iQ Materials", + "HPP4GF25", + "Grauts HPP4GF25 P1" + ] + ], + "OFL4KniM": [ + [ + "Elegoo", + "TPU", + "Elegoo Rapid TPU 95A" + ] + ], + "OFL7U2MV": [ + [ + "RatRig", + "ABS", + "RatRig PunkFil ABS" + ] + ], + "OFL7vEML": [ + [ + "Generic", + "PC", + "FlashForge PC" + ] + ], + "OFLSBS99": [ + [ + "Generic", + "SBS", + "fdm_filament_sbs" + ] + ], + "OFLeFaUO": [ + [ + "Generic", + "PVA", + "Flashforge Generic PVA" + ] + ], + "OFLhOFQk": [ + [ + "Volumic", + "ASA", + "Volumic ASA Ultra (Performance)" + ] + ], + "OFLiTjQK": [ + [ + "Other", + "PA-CF", + "Other PA-CF" + ] + ], + "OFLriDvE": [ + [ + "Generic", + "PLA", + "Creality Generic PLA High Speed" + ] + ], + "OFLxO2Oc": [ + [ + "Generic", + "PET", + "FusRock PET" + ] + ], + "OFM3PeVe": [ + [ + "FusRock", + "ASA-CF", + "Flashforge ASA-CF" + ], + [ + "Generic", + "ASA-CF", + "Flashforge ASA-CF" + ] + ], + "OFMCMXSG": [ + [ + "Generic", + "PP", + "Generic PP-GF" + ] + ], + "OFMHTnPP": [ + [ + "FusRock", + "PA-CF", + "Flashforge PA12-CF" + ] + ], + "OFMQJToc": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-GF" + ] + ], + "OFN0X7oN": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "OFN0pBpo": [ + [ + "Generic", + "TPU", + "Qidi Generic TPU 95A" + ] + ], + "OFNQHqAV": [ + [ + "Cubicon", + "ABS", + "Cubicon ABSk" + ] + ], + "OFNRgSch": [ + [ + "Artillery", + "PC", + "Artillery PC" + ] + ], + "OFNX5uRT": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "OFNbajj9": [ + [ + "Generic", + "ASA", + "Creality Generic ASA-CF" + ] + ], + "OFNvrbnf": [ + [ + "Co Print", + "ABS", + "CoPrint Generic ABS" + ] + ], + "OFNz8rrn": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA Hyper" + ] + ], + "OFO3IOWM": [ + [ + "Volumic", + "PETG-ESD", + "PETG ESD (Performance)" + ] + ], + "OFO5R9KJ": [ + [ + "Generic", + "TPU", + "Sovol Zero TPU" + ] + ], + "OFOJUJAS": [ + [ + "Cubicon", + "PA", + "Cubicon PA-CF" + ] + ], + "OFOSzSuh": [ + [ + "Generic", + "PA-CF", + "Flashforge PA-CF" + ] + ], + "OFOW9K96": [ + [ + "QIDI", + "TPU", + "Qidi TPU 95A-HF" + ] + ], + "OFOkTA0C": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG Translucent" + ] + ], + "OFOp3Oef": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "OFOysPuE": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "OFP4poIv": [ + [ + "Generic", + "PLA", + "Sovol Zero PLA Silk HS Nozzle" + ] + ], + "OFPGelMX": [ + [ + "Volumic", + "PP", + "Volumic PP Ultra (Performance)" + ] + ], + "OFPJJxkF": [ + [ + "FusRock", + "PET-CF", + "Flashforge PET-CF" + ], + [ + "Generic", + "PET-CF", + "Flashforge PET-CF" + ] + ], + "OFPJrlC3": [ + [ + "Generic", + "PLA-CF", + "Flashforge PLA-CF" + ] + ], + "OFPeGtB1": [ + [ + "Volumic", + "UNIV", + "Volumic UNIVERSAL Ultra (Performance)" + ] + ], + "OFPokkKe": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "OFPwi9X0": [ + [ + "HATCHBOX", + "ABS", + "HATCHBOX ABS" + ] + ], + "OFQ5xAKf": [ + [ + "Generic", + "PVA", + "Chuanying Generic PVA" + ] + ], + "OFQ9dI8j": [ + [ + "Generic", + "PC", + "Prusa Generic PC HF" + ] + ], + "OFQCAYAt": [ + [ + "FusRock", + "PPA-CF", + "Flashforge PPA-CF" + ], + [ + "Generic", + "PPA-CF", + "Flashforge PPA-CF" + ] + ], + "OFQZINrX": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF10" + ] + ], + "OFQhLoxN": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Wood" + ] + ], + "OFQkWxJy": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Matte" + ] + ], + "OFR8dTVW": [ + [ + "Generic", + "PLA", + "FLSun S1 PLA High Speed" + ] + ], + "OFRNU58t": [ + [ + "Generic", + "TPU", + "Flashforge TPU 95A" + ] + ], + "OFRR8LUh": [ + [ + "Generic", + "ASA", + "Generic ASA" + ] + ], + "OFRS2Ggt": [ + [ + "Generic", + "PP-CF", + "Generic PP-CF" + ] + ], + "OFRgDMDJ": [ + [ + "Generic", + "PETG", + "Flashforge PETG Transparent" + ] + ], + "OFS1ekCg": [ + [ + "Generic", + "PETG", + "RatRig BigNozzle PCTG" + ] + ], + "OFS3HrR1": [ + [ + "Other", + "PLA", + "Other PLA" + ] + ], + "OFSCm6pJ": [ + [ + "Elegoo", + "PETG", + "Elegoo PET-CF" + ] + ], + "OFSSuKRr": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "OFSdF3B1": [ + [ + "Generic", + "PAHT-CF", + "FusRock PAHT-CF" + ] + ], + "OFSkBwxf": [ + [ + "Generic", + "ASA", + "RatRig BigNozzle ASA" + ] + ], + "OFSoZBK2": [ + [ + "Generic", + "PLA", + "Sovol SV06 Plus ACE PLA" + ] + ], + "OFSpTWdv": [ + [ + "Other", + "PA-CF", + "Other PA-CF" + ] + ], + "OFT3TqB6": [ + [ + "Elas", + "ASA", + "Elas ASA" + ] + ], + "OFTa6gPH": [ + [ + "Generic", + "PLA", + "Flashforge PLA Pro" + ] + ], + "OFTbdJyT": [ + [ + "Other", + "PC", + "Other PC" + ] + ], + "OFTbsWVg": [ + [ + "Artillery", + "TPU", + "Artillery TPU" + ] + ], + "OFToBodi": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "OFTsGps3": [ + [ + "InfiMech", + "PC", + "InfiMech PC" + ] + ], + "OFTszIHE": [ + [ + "Generic", + "PLA", + "Creality Generic PLA Silk" + ] + ], + "OFUJw3Lx": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "OFUYjPc4": [ + [ + "Generic", + "PLA", + "Dremel Generic PLA" + ] + ], + "OFUkpobY": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "OFUqBrgf": [ + [ + "Generic", + "TPU", + "Chuanying Generic TPU" + ] + ], + "OFV1szQh": [ + [ + "Peopoly", + "PETG", + "Peopoly Lancer PETG-C" + ] + ], + "OFV4hD1o": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "OFVBNoov": [ + [ + "InfiMech", + "ABS", + "InfiMech ABS" + ] + ], + "OFVJXE4n": [ + [ + "Other", + "ABS", + "Other ABS" + ] + ], + "OFVLuVmD": [ + [ + "Elegoo", + "PETG", + "Elegoo Rapid PETG" + ] + ], + "OFVhG0yM": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], + "OFW8UdlP": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], + "OFWkCAdc": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough 0.2 nozzle" + ] + ], + "OFWs8KIZ": [ + [ + "Generic", + "ABS-CF", + "Flashforge ABS-CF" + ] + ], + "OFWv6JYn": [ + [ + "Generic", + "PLA", + "Flashforge PLA Metal" + ] + ], + "OFWyCd0Y": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "OFXA8vy9": [ + [ + "Artillery", + "PLA Basic+", + "Artillery PLA Basic+" + ] + ], + "OFXNO5Of": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido 0.2 nozzle" + ] + ], + "OFXQX0tr": [ + [ + "RatRig", + "PETG-CF10", + "RatRig PunkFil PETG CF" + ] + ], + "OFXcfTEb": [ + [ + "Generic", + "PETG", + "Tinmorry PETG-ECO" + ] + ], + "OFXfgh61": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "OFXkwkn6": [ + [ + "QIDI", + "UltraPA", + "QIDI PA-Ultra" + ] + ], + "OFXmQgno": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Marble" + ] + ], + "OFXv4FUi": [ + [ + "Generic", + "PLA", + "Flashforge PLA Galaxy" + ] + ], + "OFY1U4uM": [ + [ + "Generic", + "TPU", + "Sovol SV08 TPU" + ] + ], + "OFYG2Gfy": [ + [ + "Afinia", + "ABS", + "Afinia ABS+" + ] + ], + "OFYH00jV": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" + ] + ], + "OFYICbI4": [ + [ + "FusRock", + "PAHT-CF", + "FusRock Generic PAHT-CF" + ], + [ + "Generic", + "PAHT-CF", + "FusRock Generic PAHT-CF" + ] + ], + "OFYRS7GZ": [ + [ + "Generic", + "TPU-95A", + "Generic TPU-95A" + ] + ], + "OFYZs7dN": [ + [ + "Generic", + "PLA", + "Flashforge Generic HS PLA" + ] + ], + "OFYehFGr": [ + [ + "Generic", + "TPU", + "RatRig BigNozzle TPU" + ] + ], + "OFYfZgxU": [ + [ + "FlyingBear", + "TPU", + "FlyingBear TPU" + ] + ], + "OFZAkPHG": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "OFZQFvHQ": [ + [ + "Generic", + "PETG", + "Flashforge HS PETG" + ] + ], + "OFZcrV9c": [ + [ + "FusRock", + "PPS-CF", + "Flashforge PPS-CF" + ], + [ + "Generic", + "PPS-CF", + "Flashforge PPS-CF" + ] + ], + "OFZhdVnP": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Basic" + ] + ], + "OFZjZ1k7": [ + [ + "Generic", + "PLA", + "Creality HF Generic PLA" + ] + ], + "OFa5cFqE": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "OFa6L3Of": [ + [ + "QIDI", + "PC-ABS-FR", + "Qidi PC-ABS-FR" + ] + ], + "OFaKIoH2": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Sparkle" + ] + ], + "OFaKZ6JI": [ + [ + "Generic", + "PETG", + "Generic PETG Basic" + ] + ], + "OFaxQnfz": [ + [ + "Cubicon", + "PC", + "Cubicon PC" + ] + ], + "OFb3UzMZ": [ + [ + "InfiMech", + "PA-CF", + "InfiMech PA-CF" + ] + ], + "OFbK5wve": [ + [ + "Generic", + "TPU", + "Prusa Generic TPU HF" + ] + ], + "OFbS9rjH": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "OFbYP6Wb": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Marble" + ] + ], + "OFbgt3u3": [ + [ + "Elas", + "PLA", + "Elas PLA Basic" + ] + ], + "OFc2SnEp": [ + [ + "Artillery", + "PVA", + "Artillery PVA" + ] + ], + "OFcZZWnB": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS-A100" + ] + ], + "OFceJcLf": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA" + ] + ], + "OFcqs5g7": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Translucent2" + ] + ], + "OFcsHCy4": [ + [ + "Generic", + "PLA", + "Sovol SV08 PLA" + ] + ], + "OFcy60o4": [ + [ + "Generic", + "ASA", + "Flashforge ASA Basic" + ] + ], + "OFdLGn0R": [ + [ + "Generic", + "PLA", + "Creality Generic PLA Wood" + ] + ], + "OFdNORGt": [ + [ + "Generic", + "ASA-GF", + "Flashforge ASA-GF" + ] + ], + "OFdSGkUG": [ + [ + "Anycubic", + "PETG", + "Anycubic PETG" + ], + [ + "Generic", + "PETG", + "Anycubic PETG" + ] + ], + "OFdhVJql": [ + [ + "Generic", + "PLA", + "Flashforge PLA Buint Ti" + ] + ], + "OFeFRwST": [ + [ + "Generic", + "PVA", + "Flashforge PVA" + ] + ], + "OFePPmng": [ + [ + "Snapmaker", + "ABS", + "Snapmaker J1 ABS Benchy" + ] + ], + "OFeWMAGH": [ + [ + "Generic", + "PLA", + "Flashforge HS PLA Burnt Ti" + ] + ], + "OFefhSuj": [ + [ + "InfiMech", + "PLA", + "InfiMech PLA Hyper" + ] + ], + "OFenGPBR": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG Translucent" + ] + ], + "OFeybQvK": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido 0.2 nozzle" + ] + ], + "OFf0JIqs": [ + [ + "Eryone", + "PP", + "Eryone PP" + ] + ], + "OFf2b9wu": [ + [ + "Anycubic", + "ABS", + "Anycubic ABS" + ], + [ + "Generic", + "ABS", + "Anycubic ABS" + ] + ], + "OFfB1QKi": [ + [ + "Generic", + "PETG", + "Generic PETG HF" + ] + ], + "OFfJoIgg": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "OFfdxQok": [ + [ + "Generic", + "PLA", + "Generic PLA+" + ] + ], + "OFfiN1Lw": [ + [ + "Generic", + "PLA", + "Chuanying Generic HS PLA" + ] + ], + "OFfkPhrJ": [ + [ + "Generic", + "PLA", + "Creality HF Generic Speed PLA" + ] + ], + "OFfoA8kJ": [ + [ + "CoLiDo", + "PLA", + "CoLiDo PLA" + ] + ], + "OFftQOek": [ + [ + "Generic", + "PLA", + "Flashforge PLA Matte" + ] + ], + "OFg4N6ZL": [ + [ + "FlyingBear", + "PETG", + "FlyingBear PETG" + ] + ], + "OFgJX0Fc": [ + [ + "Generic", + "PPS", + "FlashForge PPS" + ] + ], + "OFgK2Xvv": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA" + ], + [ + "Generic", + "PLA", + "Anycubic PLA" + ] + ], + "OFgMGSpF": [ + [ + "Generic", + "PETG", + "Sovol SV06 Plus ACE PETG" + ] + ], + "OFgNzLVh": [ + [ + "Generic", + "ABS", + "Sovol Zero ABS" + ] + ], + "OFgSK1hL": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA High Speed" + ], + [ + "Generic", + "PLA", + "Anycubic PLA High Speed" + ] + ], + "OFglpvEE": [ + [ + "Generic", + "TPU", + "Sovol SV06 ACE TPU" + ] + ], + "OFgrGfPy": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA+" + ], + [ + "Generic", + "PLA", + "Anycubic PLA+" + ] + ], + "OFgtZjeX": [ + [ + "Snapmaker", + "ABS", + "Snapmaker ABS Benchy" + ] + ], + "OFh5GUhZ": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Wood" + ] + ], + "OFhKNHC8": [ + [ + "Generic", + "PETG", + "Generic PETG PRO" + ] + ], + "OFhzHd2Y": [ + [ + "Generic", + "HIPS", + "Flashforge HIPS" + ] + ], + "OFi1ocNv": [ + [ + "Generic", + "PA", + "Flashforge PA" + ] + ], + "OFiJYDPC": [ + [ + "HATCHBOX", + "PLA", + "HATCHBOX PLA" + ] + ], + "OFic2uNr": [ + [ + "Generic", + "PLA", + "Sovol SV06 ACE PLA" + ] + ], + "OFicxmSa": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA HF" + ] + ], + "OFidJLn8": [ + [ + "Polymaker", + "ABS", + "PolyLite ABS" + ] + ], + "OFiyGNbI": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-CF" + ] + ], + "OFjFPhUC": [ + [ + "Generic", + "PLA", + "Prusament rPLA" + ] + ], + "OFjZw7k1": [ + [ + "Polymaker", + "PLA", + "PolyTerra J1 PLA" + ] + ], + "OFjdTQd6": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Silk" + ], + [ + "Generic", + "PLA", + "Anycubic PLA Silk" + ] + ], + "OFjepy6j": [ + [ + "FusRock", + "S-PAHT", + "FusRock Generic S-PAHT" + ], + [ + "Generic", + "PA-CF", + "FusRock Generic S-PAHT" + ] + ], + "OFjj9Yiz": [ + [ + "Generic", + "PETG", + "RatRig BigNozzle PETG" + ] + ], + "OFjohFkg": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "OFjqPjjl": [ + [ + "Generic", + "PET", + "Generic PET" + ] + ], + "OFjurQ3I": [ + [ + "Generic", + "PETG", + "Sovol Zero PETG" + ] + ], + "OFk388hR": [ + [ + "Generic", + "PA6-CF", + "Generic PA6-CF" + ] + ], + "OFk6T5YH": [ + [ + "Generic", + "PETG", + "Sovol Zero PETG HS Nozzle" + ] + ], + "OFkaDtKx": [ + [ + "FusRock", + "PA-CF", + "Flashforge PA66-CF" + ] + ], + "OFkeeluv": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA HF" + ] + ], + "OFkfK62J": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Silk" + ] + ], + "OFklg4aM": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA PRO" + ] + ], + "OFkoT6jl": [ + [ + "Generic", + "PLA", + "Prusament PLA" + ] + ], + "OFlN56xW": [ + [ + "Generic", + "PLA", + "Chuanying Generic PLA-Silk" + ] + ], + "OFlNKZLP": [ + [ + "Generic", + "PLA", + "Flashforge PLA Metal" + ] + ], + "OFlbn4FY": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Matte" + ] + ], + "OFlxnxDx": [ + [ + "Generic", + "SBS", + "Tiertime Generic SBS" + ] + ], + "OFlzQ0IS": [ + [ + "Peopoly", + "PET-CF", + "Peopoly Lancer PET-CF" + ] + ], + "OFm1VZed": [ + [ + "Generic", + "PLA-CF", + "Flashforge Generic PLA-CF" + ] + ], + "OFmF1xL9": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "OFmKNi3f": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "OFmOWC74": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG PRO" + ] + ], + "OFmcJsqt": [ + [ + "InfiMech", + "TPU", + "InfiMech TPU" + ] + ], + "OFmduKVr": [ + [ + "Generic", + "PPS-CF", + "FlashForge PPS-CF" + ] + ], + "OFmeQjRP": [ + [ + "Elegoo", + "TPU", + "Elegoo Rapid TPU 95A" + ] + ], + "OFmgesco": [ + [ + "Generic", + "TPU", + "Flashforge TPU 65D" + ] + ], + "OFnLnZQo": [ + [ + "Cubicon", + "PC", + "Cubicon PC" + ] + ], + "OFnMW5jr": [ + [ + "FlyingBear", + "ABS", + "FlyingBear ABS" + ] + ], + "OFnRTkEq": [ + [ + "RatRig", + "PETG", + "RatRig PunkFil PETG" + ] + ], + "OFnY9ovF": [ + [ + "Artillery", + "PA-CF", + "Artillery PA-CF" + ] + ], + "OFnj7bPm": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido 0.6 nozzle" + ] + ], + "OFnsWQTp": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "OFnyirh9": [ + [ + "Artillery", + "PLA Silk", + "Artillery PLA Silk" + ] + ], + "OFo4VB3w": [ + [ + "Generic", + "ABS-CF", + "Generic ABS-CF" + ] + ], + "OFo9EwvK": [ + [ + "Generic", + "PETG-CF", + "Generic PETG-CF10" + ] + ], + "OFoAaHcF": [ + [ + "FusRock", + "PAHT-GF", + "FusRock Generic PAHT-GF" + ] + ], + "OFoJUGj6": [ + [ + "Generic", + "PLA", + "Flashforge HS PLA" + ] + ], + "OFoimrpo": [ + [ + "Generic", + "PETG-CF", + "Flashforge PETG-CF" + ] + ], + "OFp8lkYD": [ + [ + "FusRock", + "PPA-GF", + "Flashforge PPA-GF" + ] + ], + "OFp90N8a": [ + [ + "Artillery", + "PA", + "Artillery PA" + ] + ], + "OFpHq9gJ": [ + [ + "Generic", + "PETG", + "Prusament PETG" + ] + ], + "OFphFSUJ": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG HF" + ] + ], + "OFpwg2Qh": [ + [ + "Elegoo", + "ASA", + "Elegoo ASA-CF" + ] + ], + "OFq6IhFg": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA" + ] + ], + "OFqPp2yL": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough 0.6 nozzle" + ] + ], + "OFqRWRU6": [ + [ + "Generic", + "ABS-GF", + "Flashforge ABS-GF" + ] + ], + "OFqSTJ3I": [ + [ + "Generic", + "PLA", + "OrcaArena Generic PLA Silk" + ] + ], + "OFqh1Ngp": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA-CF" + ] + ], + "OFqkcvDI": [ + [ + "Peopoly", + "ABS", + "Peopoly Lancer ABS-GF" + ] + ], + "OFqyIUDi": [ + [ + "QIDI", + "PLA-CF", + "Qidi PLA-CF" + ] + ], + "OFrbbq6E": [ + [ + "Other", + "PLA", + "Other PLA Hyper" + ] + ], + "OFrgQ1Ns": [ + [ + "Elas", + "PLA", + "Elas PLA Pro" + ] + ], + "OFs1CbB1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido 0.8 nozzle" + ] + ], + "OFs6lLH7": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Silk" + ] + ], + "OFsCOJv7": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], + "OFsKqcQW": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA PRO" + ] + ], + "OFsLkLw6": [ + [ + "Generic", + "PLA", + "Generic PLA Matte" + ] + ], + "OFsNZcid": [ + [ + "Polymaker", + "PLA", + "PolyLite Dual PLA" + ] + ], + "OFsgANe3": [ + [ + "Generic", + "PAHT-CF", + "Flashforge PAHT-CF" + ] + ], + "OFsmPFwh": [ + [ + "Generic", + "TPU", + "Sovol SV06 Plus ACE TPU" + ] + ], + "OFt1YdX8": [ + [ + "Generic", + "PLA", + "FLSun T1 PLA Silk" + ] + ], + "OFt5bvKK": [ + [ + "Artillery", + "PETG Basic", + "Artillery PETG Basic" + ] + ], + "OFt9AiN5": [ + [ + "Generic", + "PA", + "Polymaker CoPA" + ] + ], + "OFtEFtsz": [ + [ + "Polymaker", + "PA", + "Polymaker Generic CoPA" + ] + ], + "OFtJMczs": [ + [ + "Generic", + "TPU-64D", + "Flashforge TPU-64D" + ] + ], + "OFtL05hE": [ + [ + "Generic", + "PLA", + "Sovol Zero PLA Basic HS Nozzle" + ] + ], + "OFtXBjvb": [ + [ + "Artillery", + "PLA Tough", + "Artillery PLA Tough" + ] + ], + "OFtcTs1o": [ + [ + "Generic", + "ABS", + "RatRig BigNozzle ABS" + ] + ], + "OFtemzzw": [ + [ + "Generic", + "ABS", + "Sovol SV06 ACE ABS" + ] + ], + "OFtet8ui": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU High-Flow" + ] + ], + "OFti31HS": [ + [ + "Cubicon", + "PLA", + "Cubicon PLAi21" + ] + ], + "OFtmT4Nd": [ + [ + "Artillery", + "ASA", + "Artillery ASA" + ] + ], + "OFtwA91m": [ + [ + "Generic", + "PC", + "Sovol Zero PC" + ] + ], + "OFuPC4S8": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA-CF" + ] + ], + "OFuPN3iW": [ + [ + "Other", + "PETG", + "Other PETG" + ] + ], + "OFuTFxVP": [ + [ + "Overture", + "ABS", + "Overture ABS" + ] + ], + "OFuXkYly": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Glow" + ] + ], + "OFuYvNS3": [ + [ + "Afinia", + "ABS", + "Afinia Value ABS" + ] + ], + "OFuidAEg": [ + [ + "Bambu Lab", + "ABS", + "Bambu ABS" + ] + ], + "OFuq9tqb": [ + [ + "InfiMech", + "PLA", + "InfiMech PLA Basic" + ] + ], + "OFuswXlp": [ + [ + "Generic", + "TPU", + "Generic TPU 85A" + ] + ], + "OFutwD6f": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Glow" + ] + ], + "OFuyJhLF": [ + [ + "Generic", + "PETG", + "Flashforge PETG Basic" + ] + ], + "OFv2NHLC": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF25" + ] + ], + "OFv8SRZh": [ + [ + "Generic", + "PLA-CF", + "Prusa Generic PLA-CF" + ] + ], + "OFvGSn0l": [ + [ + "Generic", + "PETG", + "Creality Generic PETG-CF" + ] + ], + "OFvN3117": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] + ], + "OFvOhSjO": [ + [ + "Other", + "TPU", + "Other TPU" + ] + ], + "OFvYfHPB": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Matte" + ] + ], + "OFvaXhYD": [ + [ + "InfiMech", + "PETG", + "InfiMech PETG" + ] + ], + "OFviQ9lH": [ + [ + "Generic", + "TPU", + "Flashforge Generic TPU" + ] + ], + "OFvsS7Fb": [ + [ + "Generic", + "TPU-64D", + "Generic TPU-64D" + ] + ], + "OFvw0owy": [ + [ + "Afinia", + "PLA", + "Afinia Value PLA" + ] + ], + "OFvxvkAd": [ + [ + "Artillery", + "PLA-CF", + "Artillery PLA-CF" + ] + ], + "OFw05rkF": [ + [ + "Other", + "PETG", + "Other PETG" + ] + ], + "OFw0qp7w": [ + [ + "Artillery", + "PET", + "Artillery PET" + ] + ], + "OFw1S8lL": [ + [ + "Artillery", + "ABS", + "Artillery ABS" + ] + ], + "OFw4OHWE": [ + [ + "Elas", + "PETG", + "Elas PETG Basic" + ] + ], + "OFwHPTvy": [ + [ + "Generic", + "PLA", + "Qidi Generic PLA+" + ] + ], + "OFwf0oWp": [ + [ + "Generic", + "PLA", + "Flashforge PLA Luminous" + ] + ], + "OFwyqcGn": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Matte" + ] + ], + "OFxLeRyT": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA HF" + ] + ], + "OFxVzzn4": [ + [ + "Generic", + "PLA-CF", + "Chuanying Generic PLA-CF10" + ] + ], + "OFxfCy9m": [ + [ + "Volumic", + "PETG", + "Volumic PCTG Ultra (Performance)" + ] + ], + "OFxjFYxE": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG HF" + ] + ], + "OFxlch4V": [ + [ + "CoLiDo", + "PLA", + "CoLiDo PLA Silk" + ] + ], + "OFxodd2u": [ + [ + "DeltaMaker", + "PLA", + "DeltaMaker Brand PLA" + ] + ], + "OFxxa5yn": [ + [ + "Snapmaker", + "ABS", + "Snapmaker Dual ABS Benchy" + ] + ], + "OFy7oQ1g": [ + [ + "Generic", + "ASA", + "Blocks Generic ASA-CF" + ] + ], + "OFyD1Zo8": [ + [ + "Other", + "PC", + "Other PC" + ] + ], + "OFyoW5W2": [ + [ + "Generic", + "PLA", + "Flashforge PLA Color Change" + ] + ], + "OFypQeKR": [ + [ + "Generic", + "PC-CF", + "Generic PC-CF" + ] + ], + "OFyt23xJ": [ + [ + "Generic", + "PLA", + "FLSun T1 PLA High Speed" + ] + ], + "OFyxAbO4": [ + [ + "Generic", + "TPU-95A", + "Flashforge TPU-95A" + ] + ], + "OFzFbFcl": [ + [ + "Elegoo", + "PC", + "Elegoo PC-FR" + ] + ], + "OFzQQeCi": [ + [ + "Generic", + "HIPS", + "Chuanying Generic HIPS" + ] + ], + "OFzb2BLs": [ + [ + "Generic", + "PETG", + "RatRig Generic PCTG" + ] + ], + "OFziUL2X": [ + [ + "Generic", + "PLA", + "Ginger Generic PLA" + ] + ], + "OFzrWlH5": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG HF" + ] + ], + "OGFA00": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Basic" + ] + ], + "OGFA01": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Matte" + ] + ], + "OGFA02": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Metal" + ] + ], + "OGFA03": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Impact" + ] + ], + "OGFA05": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Silk" + ] + ], + "OGFA06": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Silk+" + ] + ], + "OGFA07": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Marble" + ] + ], + "OGFA08": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Sparkle" + ] + ], + "OGFA09": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Tough" + ] + ], + "OGFA11": [ + [ + "Bambu Lab", + "PLA-AERO", + "Bambu PLA Aero" + ] + ], + "OGFA12": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Glow" + ] + ], + "OGFA13": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Dynamic" + ] + ], + "OGFA15": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Galaxy" + ] + ], + "OGFA16": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Wood" + ] + ], + "OGFA50": [ + [ + "Bambu Lab", + "PLA-CF", + "Bambu PLA-CF" + ] + ], + "OGFB00": [ + [ + "Bambu Lab", + "ABS", + "Bambu ABS" + ] + ], + "OGFB01": [ + [ + "Bambu Lab", + "ASA", + "Bambu ASA" + ] + ], + "OGFB02": [ + [ + "Bambu Lab", + "ASA-AERO", + "Bambu ASA-Aero" + ] + ], + "OGFB50": [ + [ + "Bambu Lab", + "ABS-GF", + "Bambu ABS-GF" + ] + ], + "OGFB51": [ + [ + "Bambu Lab", + "ASA-CF", + "Bambu ASA-CF" + ] + ], + "OGFB60": [ + [ + "Polymaker", + "ABS", + "PolyLite ABS" + ] + ], + "OGFB61": [ + [ + "Polymaker", + "ASA", + "PolyLite ASA" + ] + ], + "OGFB98": [ + [ + "Generic", + "ASA", + "Generic ASA" + ] + ], + "OGFB99": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "OGFC00": [ + [ + "Bambu Lab", + "PC", + "Bambu PC" + ] + ], + "OGFC01": [ + [ + "Bambu Lab", + "PC", + "Bambu PC FR" + ] + ], + "OGFC99": [ + [ + "Generic", + "PC", + "Generic PC" + ], + [ + "Generic", + "PC", + "fdm_filament_pc" + ] + ], + "OGFG00": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG Basic" + ] + ], + "OGFG01": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG Translucent" + ] + ], + "OGFG02": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG HF" + ] + ], + "OGFG50": [ + [ + "Bambu Lab", + "PETG-CF", + "Bambu PETG-CF" + ] + ], + "OGFG60": [ + [ + "Polymaker", + "PETG", + "PolyLite PETG" + ] + ], + "OGFG97": [ + [ + "Generic", + "PCTG", + "fdm_filament_pctg" + ] + ], + "OGFG99": [ + [ + "Generic", + "PETG", + "Generic PETG" + ], + [ + "Generic", + "PETG", + "fdm_filament_pet" + ] + ], + "OGFGG300": [ + [ + "GreenGate3D", + "PETG", + "GreenGate3D PETG" + ] + ], + "OGFL00": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA" + ] + ], + "OGFL00-1": [ + [ + "Polymaker", + "PLA", + "PolyTerra Dual PLA" + ] + ], + "OGFL01": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA" + ] + ], + "OGFL03": [ + [ + "eSUN", + "PLA", + "eSUN PLA+" + ] + ], + "OGFL04": [ + [ + "Overture", + "PLA", + "Overture PLA" + ] + ], + "OGFL05": [ + [ + "Overture", + "PLA", + "Overture Matte PLA" + ] + ], + "OGFL06": [ + [ + "Polymaker", + "PETG", + "Fiberon PETG-ESD" + ] + ], + "OGFL50": [ + [ + "Polymaker", + "PA6-CF", + "Fiberon PA6-CF" + ] + ], + "OGFL51": [ + [ + "Polymaker", + "PA-GF", + "Fiberon PA6-GF" + ] + ], + "OGFL52": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA12-CF" + ] + ], + "OGFL53": [ + [ + "Polymaker", + "PA", + "Fiberon PA612-CF" + ] + ], + "OGFL54": [ + [ + "Polymaker", + "PET-CF", + "Fiberon PET-CF" + ] + ], + "OGFL55": [ + [ + "Polymaker", + "PETG-CF", + "Fiberon PETG-rCF" + ] + ], + "OGFL95": [ + [ + "Generic", + "PLA", + "Generic PLA High Speed" + ] + ], + "OGFL96": [ + [ + "Generic", + "PLA", + "Generic PLA Silk" + ], + [ + "Generic", + "PLA", + "fdm_filament_pla_silk" + ] + ], + "OGFL98": [ + [ + "Generic", + "PLA-CF", + "Generic PLA-CF" + ] + ], + "OGFL99": [ + [ + "Generic", + "PLA", + "fdm_filament_pla" + ] + ], + "OGFLC99": [ + [ + "Generic", + "CoPE", + "fdm_filament_cope" + ] + ], + "OGFN03": [ + [ + "Bambu Lab", + "PA-CF", + "Bambu PA-CF" + ] + ], + "OGFN04": [ + [ + "Bambu Lab", + "PA-CF", + "Bambu PAHT-CF" + ] + ], + "OGFN05": [ + [ + "Bambu Lab", + "PA6-CF", + "Bambu PA6-CF" + ] + ], + "OGFN06": [ + [ + "Bambu Lab", + "PPA-CF", + "Bambu PPA-CF" + ] + ], + "OGFN08": [ + [ + "Bambu Lab", + "PA-GF", + "Bambu PA6-GF" + ] + ], + "OGFN96": [ + [ + "Generic", + "PPA-GF", + "Generic PPA-GF" + ] + ], + "OGFN97": [ + [ + "Generic", + "PPA-CF", + "fdm_filament_ppa" + ] + ], + "OGFN98": [ + [ + "Generic", + "PA-CF", + "Generic PA-CF" + ] + ], + "OGFN99": [ + [ + "Generic", + "PA", + "Generic PA" + ], + [ + "Generic", + "PA", + "fdm_filament_pa" + ] + ], + "OGFNMK00": [ + [ + "Numakers", + "PLA", + "Numakers PLA+" + ] + ], + "OGFP97": [ + [ + "Generic", + "PP", + "fdm_filament_pp" + ] + ], + "OGFP99": [ + [ + "Generic", + "PE", + "fdm_filament_pe" + ] + ], + "OGFPM001": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA" + ] + ], + "OGFPM002": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Matte" + ] + ], + "OGFPM003": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Marble" + ] + ], + "OGFPM004": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Silk" + ] + ], + "OGFPM005": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Satin" + ] + ], + "OGFPM006": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Translucent" + ] + ], + "OGFPM007": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Galaxy" + ] + ], + "OGFPM008": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Celestial" + ] + ], + "OGFPM009": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Starlight" + ] + ], + "OGFPM010": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Glow" + ] + ], + "OGFPM011": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Luminous" + ] + ], + "OGFPM012": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Metallic" + ] + ], + "OGFPM013": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Neon" + ] + ], + "OGFPM014": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA UV Shift" + ] + ], + "OGFPM015": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Temp Shift" + ] + ], + "OGFPM016": [ + [ + "Polymaker", + "PLA", + "Panchroma CoPE" + ] + ], + "OGFPM017": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA" + ] + ], + "OGFPM018": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA-GF" + ] + ], + "OGFPM019": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Pro" + ] + ], + "OGFR00": [ + [ + "FusRock", + "ABS-GF", + "FusRock ABS-GF" + ] + ], + "OGFR98": [ + [ + "Generic", + "PHA", + "fdm_filament_pha" + ] + ], + "OGFR99": [ + [ + "Generic", + "EVA", + "fdm_filament_eva" + ] + ], + "OGFS00": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support W" + ] + ], + "OGFS01": [ + [ + "Bambu Lab", + "PA", + "Bambu Support G" + ] + ], + "OGFS02": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support For PLA" + ] + ], + "OGFS03": [ + [ + "Bambu Lab", + "PA", + "Bambu Support For PA/PET" + ] + ], + "OGFS04": [ + [ + "Bambu Lab", + "PVA", + "Bambu PVA" + ] + ], + "OGFS05": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support For PLA/PETG" + ] + ], + "OGFS06": [ + [ + "Bambu Lab", + "ABS", + "Bambu Support for ABS" + ] + ], + "OGFS97": [ + [ + "Generic", + "BVOH", + "fdm_filament_bvoh" + ] + ], + "OGFS98": [ + [ + "Generic", + "HIPS", + "fdm_filament_hips" + ] + ], + "OGFS99": [ + [ + "Generic", + "PVA", + "Generic PVA" + ] + ], + "OGFSNL02": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Matte" + ] + ], + "OGFSNL03": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+" + ] + ], + "OGFSNL04": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+ 2.0" + ] + ], + "OGFSNL05": [ + [ + "SUNLU", + "PLA", + "SUNLU Silk PLA+" + ] + ], + "OGFSNL06": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Marble" + ] + ], + "OGFSNL07": [ + [ + "SUNLU", + "PLA", + "SUNLU Wood PLA" + ] + ], + "OGFSNL08": [ + [ + "Generic", + "PETG", + "SUNLU PETG" + ], + [ + "SUNLU", + "PETG", + "SUNLU PETG" + ] + ], + "OGFT01": [ + [ + "Bambu Lab", + "PET-CF", + "Bambu PET-CF" + ] + ], + "OGFT02": [ + [ + "Bambu Lab", + "PPS-CF", + "Bambu PPS-CF" + ] + ], + "OGFU00": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 95A HF" + ] + ], + "OGFU01": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 95A" + ] + ], + "OGFU99": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], + "OVTABS08": [ + [ + "Overture", + "ABS", + "Overture ABS Basic" + ] + ], + "P1001": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Satin" + ] + ], + "P1002": [ + [ + "Polymaker", + "PLA", + "PolySonic PLA Pro" + ] + ], + "P1003": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Matte" + ] + ], + "P1004": [ + [ + "Polymaker", + "PLA", + "PolySonic PLA" + ] + ], + "P510cfa0": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA" + ] + ], + "P510cfa1": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA+" + ] + ], + "P510cfa2": [ + [ + "Cubicon", + "PLA", + "Cubicon PLAi21" + ] + ], + "P510cfb0": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS" + ] + ], + "P510cfb1": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS-A100" + ] + ], + "P510cfb2": [ + [ + "Cubicon", + "ABS", + "Cubicon ABSk" + ] + ], + "P510cfc0": [ + [ + "Cubicon", + "PETG", + "Cubicon PETG" + ] + ], + "P510cfd0": [ + [ + "Cubicon", + "PA", + "Cubicon PA-CF" + ] + ], + "P510eff9": [ + [ + "Generic", + "PETG", + "Ginger Generic PETG" + ] + ], + "Pfcf9c4c": [ + [ + "Artillery", + "PLA", + "Artillery PLA" + ] + ], + "Prusa Generic ABS @CORE One": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One 0.6": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One 0.8": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One HF 0.4": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One HF 0.5": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One HF 0.6": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ABS @CORE One HF 0.8": [ + [ + "Generic", + "ABS", + "Prusa Generic ABS" + ] + ], + "Prusa Generic ASA @CORE One": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One 0.6": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One 0.8": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One HF 0.4": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One HF 0.5": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One HF 0.6": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic ASA @CORE One HF 0.8": [ + [ + "Prusa Polymers", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusa Generic PETG @CORE One": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One 0.6": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One 0.8": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One HF 0.4": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One HF 0.5": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One HF 0.6": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PETG @CORE One HF 0.8": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" + ] + ], + "Prusa Generic PLA @CORE One": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One 0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One 0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One HF 0.4": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One HF 0.5": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One HF 0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA @CORE One HF 0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" + ] + ], + "Prusa Generic PLA Silk @CORE One": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Prusa Generic PLA Silk @CORE One 0.6": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Prusa Generic PLA Silk @CORE One 0.8": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA Silk" + ] + ], + "Prusa Generic TPU @CORE One": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Prusa Generic TPU @CORE One 0.6": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Prusa Generic TPU @CORE One 0.8": [ + [ + "Generic", + "FLEX", + "Prusa Generic TPU" + ] + ], + "Prusament ASA @CORE One": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One 0.6": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One 0.8": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One HF 0.4": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One HF 0.5": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One HF 0.6": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @CORE One HF 0.8": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" + ] + ], + "Prusament ASA @MK4S": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S 0.6": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S 0.8": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S HF0.4": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S HF0.5": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S HF0.6": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament ASA @MK4S HF0.8": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" + ] + ], + "Prusament PA-CF @CORE One": [ + [ + "Prusa Polymers", + "PA", + "Prusament PA-CF" + ] + ], + "Prusament PA-CF @CORE One 0.6": [ + [ + "Prusa Polymers", + "PA", + "Prusament PA-CF" + ] + ], + "Prusament PA-CF @CORE One 0.8": [ + [ + "Prusa Polymers", + "PA", + "Prusament PA-CF" + ] + ], + "Prusament PC Blend @CORE One": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One 0.6": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One 0.8": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One HF 0.4": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One HF 0.5": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One HF 0.6": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC Blend @CORE One HF 0.8": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC Blend" + ] + ], + "Prusament PC-CF @CORE One": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC-CF" + ] + ], + "Prusament PC-CF @CORE One 0.6": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC-CF" + ] + ], + "Prusament PC-CF @CORE One 0.8": [ + [ + "Prusa Polymers", + "PC", + "Prusament PC-CF" + ] + ], + "Prusament PETG @CORE One": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One 0.6": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One 0.8": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One HF 0.4": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One HF 0.5": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One HF 0.6": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PETG @CORE One HF 0.8": [ + [ + "Prusa Polymers", + "PETG", + "Prusament PETG" + ] + ], + "Prusament PLA @CORE One": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One 0.6": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One 0.8": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One HF 0.4": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One HF 0.5": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One HF 0.6": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PLA @CORE One HF 0.8": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "Prusament PVB @CORE One": [ + [ + "Prusa Polymers", + "PVB", + "Prusament PVB" + ] + ], + "Prusament PVB @CORE One 0.6": [ + [ + "Prusa Polymers", + "PVB", + "Prusament PVB" + ] + ], + "Prusament PVB @CORE One 0.8": [ + [ + "Prusa Polymers", + "PVB", + "Prusament PVB" + ] + ], + "Prusament rPLA @CORE One": [ + [ + "Prusa Polymers", + "PLA", + "Prusament rPLA" + ] + ], + "Prusament rPLA @CORE One 0.6": [ + [ + "Prusa Polymers", + "PLA", + "Prusament rPLA" + ] + ], + "Prusament rPLA @CORE One 0.8": [ + [ + "Prusa Polymers", + "PLA", + "Prusament rPLA" + ] + ], + "SMCFB001": [ + [ + "SeeMeCNC", + "ABS", + "SeeMeCNC ABS" + ] + ], + "SMCFG001": [ + [ + "SeeMeCNC", + "PETG", + "SeeMeCNC PETG" + ] + ], + "SMCFG002": [ + [ + "SeeMeCNC", + "PETG-CF", + "SeeMeCNC PETG-CF" + ] + ], + "SMCFL001": [ + [ + "SeeMeCNC", + "PLA", + "SeeMeCNC PLA" + ] + ], + "SMCFN001": [ + [ + "SeeMeCNC", + "PA-CF", + "SeeMeCNC PA-CF" + ] + ], + "SMCFU001": [ + [ + "SeeMeCNC", + "TPU", + "SeeMeCNC TPU" + ] + ], + "VLMNT01": [ + [ + "Valment", + "PLA", + "Valment PLA" + ] + ], + "VLMNT02": [ + [ + "Valment", + "PLA", + "Valment PLA Silk" + ] + ], + "VLMNT03": [ + [ + "Valment", + "PLA-CF", + "Valment PLA-CF" + ] + ], + "VLMNT04": [ + [ + "Valment", + "PLA", + "Valment PLA Galaxy" + ] + ] + } } diff --git a/scripts/retired_filament_ids.json b/scripts/retired_filament_ids.json deleted file mode 100644 index d71f89d9ac..0000000000 --- a/scripts/retired_filament_ids.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "retired": { - "GFABS": [ - "Anycubic/Anycubic ABS" - ], - "GFL92": [ - "Anycubic/Anycubic PLA" - ], - "GFL93": [ - "Anycubic/Anycubic PLA+" - ], - "GFPLA": [ - "Anycubic/Anycubic PLA" - ], - "GFPLA High Speed": [ - "Anycubic/Anycubic PLA High Speed" - ], - "GFPLA Matte": [ - "Anycubic/Anycubic PLA Matte" - ], - "GFPLA Silk": [ - "Anycubic/Anycubic PLA Silk" - ], - "GFPLA+": [ - "Anycubic/Anycubic PLA+" - ], - "P11851ba": [ - "Artillery/Artillery PET" - ], - "P284941e": [ - "Artillery/Artillery PETG", - "Artillery/Artillery PETG Basic" - ], - "P2fbf0c0": [ - "Artillery/Artillery TPU" - ], - "P39db358": [ - "Artillery/Artillery ABS" - ], - "P8163162": [ - "Artillery/Artillery PVA" - ], - "P87436f6": [ - "Artillery/Artillery ASA" - ] - } -} diff --git a/scripts/test_moonraker_lane_data.py b/scripts/test_moonraker_lane_data.py index 44a0a7e30e..16ed4924e0 100644 --- a/scripts/test_moonraker_lane_data.py +++ b/scripts/test_moonraker_lane_data.py @@ -5,10 +5,15 @@ Inserts/deletes/modifies random lane data in Moonraker database, then reads back and displays with colored output. """ -import requests +try: + import requests +except ImportError: + requests = None # only needed for live-printer operations, not --check-ofl-map import random import argparse import json +import os +import re import time import sys @@ -16,6 +21,11 @@ import sys DEFAULT_HOST = "192.168.88.9" DEFAULT_PORT = 7125 NAMESPACE = "lane_data" + +# Repo-relative paths for the offline generic-map check +REPO_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +MOONRAKER_AGENT_CPP = os.path.join(REPO_ROOT, "src", "slic3r", "Utils", "MoonrakerPrinterAgent.cpp") +OFL_FILAMENT_DIR = os.path.join(REPO_ROOT, "resources", "profiles", "OrcaFilamentLibrary", "filament") LANE_KEYS = [f"lane{i}" for i in range(1, 9)] # lane1-lane8 MATERIALS = ["PLA", "ABS", "PETG", "ASA", "ASA Sparkle", "TPU", ""] @@ -30,6 +40,95 @@ MATERIAL_TEMPS = { "": {"nozzle": None, "bed": None}, } +def parse_cpp_type_map(): + """Extract the normalized-type -> OFL generic family table from MoonrakerPrinterAgent.cpp. + + Reads MoonrakerPrinterAgent::map_filament_type_to_generic_id's type_to_ofl_family + initializer so the check tracks the C++ normalization without a duplicated list. + """ + with open(MOONRAKER_AGENT_CPP, encoding="utf-8") as f: + src = f.read() + m = re.search(r"type_to_ofl_family\s*=\s*\{(.*?)\n\s*\};", src, re.DOTALL) + if not m: + raise RuntimeError(f"type_to_ofl_family table not found in {MOONRAKER_AGENT_CPP}") + pairs = re.findall(r'\{\s*"([^"]+)"\s*,\s*"([^"]+)"\s*\}', m.group(1)) + if not pairs: + raise RuntimeError("type_to_ofl_family table parsed empty") + return dict(pairs) + +def load_ofl_presets(): + """Map preset name -> parsed JSON for every OrcaFilamentLibrary filament profile.""" + presets = {} + for root, _dirs, files in os.walk(OFL_FILAMENT_DIR): + for fn in files: + if not fn.endswith(".json"): + continue + try: + with open(os.path.join(root, fn), encoding="utf-8") as f: + data = json.load(f) + except (OSError, ValueError): + continue + name = data.get("name") + if isinstance(name, str) and name: + presets[name] = data + return presets + +def resolve_ofl_filament_id(presets, name): + """Follow the inherits chain (within OFL) until a filament_id is declared.""" + seen = set() + while name and name not in seen: + seen.add(name) + preset = presets.get(name) + if preset is None: + return None + fid = preset.get("filament_id") + if fid: + return fid + name = preset.get("inherits") + return None + +def check_ofl_generic_map(): + """Assert every material type the C++ normalization handles resolves to a shipped + OrcaFilamentLibrary generic preset carrying a filament_id. + + Expectations are derived from the shipped profiles, not pinned id literals, so the + check stays valid across filament_id re-mints. + """ + print("Checking C++ generic-type map against shipped OrcaFilamentLibrary presets...") + try: + type_map = parse_cpp_type_map() + except (OSError, RuntimeError) as e: + print(f" FAIL: {e}") + return False + presets = load_ofl_presets() + if not presets: + print(f" FAIL: no OFL filament profiles found under {OFL_FILAMENT_DIR}") + return False + errors = [] + for family in sorted(set(type_map.values())): + preset_name = f"Generic {family} @System" + if preset_name not in presets: + errors.append(f"{preset_name}: no such OFL preset") + continue + if str(presets[preset_name].get("instantiation", "")).lower() != "true": + errors.append(f"{preset_name}: not instantiated — the C++ runtime lookup " + f"only sees presets loaded into the PresetBundle") + continue + fid = resolve_ofl_filament_id(presets, preset_name) + if not fid: + errors.append(f"{preset_name}: no filament_id resolvable through inherits") + continue + aliases = ", ".join(sorted(t for t, fam in type_map.items() if fam == family)) + print(f" {fid:10s} {preset_name:32s} <- {aliases}") + if errors: + for e in errors: + print(f" FAIL: {e}") + print(f"OFL generic map check FAILED ({len(errors)} error(s))") + return False + print(f"OFL generic map check passed: {len(type_map)} type aliases, " + f"{len(set(type_map.values()))} OFL generic presets\n") + return True + def test_connection(host, port, api_key=None, verbose=False): """Test basic connectivity to Moonraker.""" url = f"http://{host}:{port}/server/info" @@ -404,11 +503,25 @@ def main(): help="Only read and display current lane data") parser.add_argument("--load", metavar="FILE", help="Load lane data from JSON file and overwrite printer lanes") + parser.add_argument("--check-ofl-map", action="store_true", + help="Only run the offline check that the C++ generic-type map " + "resolves against shipped OrcaFilamentLibrary presets") parser.add_argument("--verbose", "-v", action="store_true", help="Verbose output for debugging") args = parser.parse_args() + # Offline check first: the C++ type normalization must resolve against shipped + # OFL presets (no printer needed). + if not check_ofl_generic_map(): + return 1 + if args.check_ofl_map: + return 0 + + if requests is None: + print("The 'requests' module is required for live printer operations (pip install requests).") + return 1 + print(f"\nConnecting to Moonraker at {args.host}:{args.port}...") # First test basic connectivity diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 14d7d439b7..d60377f51e 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -34,12 +34,18 @@ def load_json_file(path): # --------------------------------------------------------------------------- def preset(name, filament_id=None, inherits=None, instantiation=True, - compatible_printers=None): + compatible_printers=None, filament_vendor=None, filament_type=None): data = {"type": "filament", "name": name} if inherits is not None: data["inherits"] = inherits if filament_id is not None: data["filament_id"] = filament_id + if filament_vendor is not None: + data["filament_vendor"] = ( + [filament_vendor] if isinstance(filament_vendor, str) else filament_vendor) + if filament_type is not None: + data["filament_type"] = ( + [filament_type] if isinstance(filament_type, str) else filament_type) data["instantiation"] = "true" if instantiation else "false" if compatible_printers is not None: data["compatible_printers"] = compatible_printers @@ -102,13 +108,18 @@ class SyntheticTree: with open(idx_path, "w", encoding="utf-8") as f: json.dump(index, f, indent=4, ensure_ascii=False) + def write_ledger(self, retired=None, hints=None): + afi.write_ledger(self.retired, {"retired": retired or {}, + "hints": hints or {}}) + # -- pipeline wrappers --------------------------------------------------- - def update_snapshot(self, allow_shared_catalog=False): + def update_snapshot(self, allow_shared_catalog=False, forget_path=None): buf = io.StringIO() with contextlib.redirect_stdout(buf): rc = afi.update_snapshot(self.profiles, self.snapshot, self.retired, - allow_shared_catalog=allow_shared_catalog) + allow_shared_catalog=allow_shared_catalog, + forget_path=forget_path) return rc, buf.getvalue() def check(self): @@ -124,17 +135,37 @@ class SyntheticTree: self.retired) return changed, errors, buf.getvalue() + def remint(self, vendors): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + changed, errors = afi.remint_vendors(vendors, self.profiles, self.retired) + return changed, errors, buf.getvalue() + + def drop_redundant(self, vendor): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + dropped, errors = afi.drop_redundant_ids(vendor, self.profiles) + return dropped, errors, buf.getvalue() + + def add_hint(self, pairs): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.add_hints(pairs, self.profiles, self.retired) + return rc, buf.getvalue() + def make_clean_tree(): """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic.""" t = SyntheticTree() t.add_vendor(OFL, [ - preset("fdm_pla", filament_id="OGFL99", instantiation=False), + preset("fdm_pla", filament_id="OGFL99", instantiation=False, + filament_vendor="Generic", filament_type="PLA"), preset("Generic PLA @System", inherits="fdm_pla", compatible_printers=[]), ]) t.add_vendor("VendorA", [ - preset("APLA @base", filament_id="AX01", instantiation=False), + preset("APLA @base", filament_id="AX01", instantiation=False, + filament_vendor="AVendor", filament_type="PLA"), preset("APLA @P1", inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), # Correctly tuned OFL generic: keeps the OFL base name, claims a printer. @@ -163,33 +194,45 @@ class TestMint(unittest.TestCase): uuid.UUID("c4d3ff49-4c32-5534-a3e3-00894157ab97")) def test_known_vector(self): - # Hardcoded, independently computed vector: freezes prefix, input string - # layout ("filament_family//") and base62 derivation. - self.assertEqual(afi.generate_filament_id("Qidi", "HATCHBOX PLA"), "OFiJYDPC") + # Hardcoded, independently computed vectors: freeze prefix, input string + # layout ("filament_product///") and base62 tail. + self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA"), + "OF5CgdDq") + self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA", + salt=1), "OFD9mV8H") + self.assertEqual(afi.generate_filament_id("Generic", "PLA", "Generic PLA"), + "OFDSrzZ8") def test_determinism_and_format(self): - for vendor, family in [("Qidi", "HATCHBOX PLA"), ("Creality", "CR PLA"), - ("OrcaFilamentLibrary", "Generic ABS"), - ("BBL", "拓竹 PLA")]: # unicode family - a = afi.generate_filament_id(vendor, family) - b = afi.generate_filament_id(vendor, family) + for triple in [("Polymaker", "PLA", "PolyLite PLA"), + ("Creality", "PLA", "CR PLA"), + ("Generic", "ABS", "Generic ABS"), + ("拓竹", "PLA", "拓竹 PLA")]: # unicode components + a = afi.generate_filament_id(*triple) + b = afi.generate_filament_id(*triple) self.assertEqual(a, b) self.assertRegex(a, r"^OF[0-9A-Za-z]{6}$") self.assertEqual(len(a), 8) + def test_every_triple_component_changes_the_id(self): + base = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") + self.assertNotEqual(base, afi.generate_filament_id("Other", "PLA", "PolyLite PLA")) + self.assertNotEqual(base, afi.generate_filament_id("Polymaker", "PETG", "PolyLite PLA")) + self.assertNotEqual(base, afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA Pro")) + def test_salt_changes_id(self): - base = afi.generate_filament_id("Qidi", "HATCHBOX PLA") - salted = afi.generate_filament_id("Qidi", "HATCHBOX PLA", salt=1) + base = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") + salted = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA", salt=1) self.assertNotEqual(base, salted) self.assertRegex(salted, r"^OF[0-9A-Za-z]{6}$") def test_mint_salt_iteration(self): - v, fam = "Qidi", "HATCHBOX PLA" - taken = {afi.generate_filament_id(v, fam, s) for s in range(2)} - self.assertEqual(afi.mint_filament_id(v, fam, taken), - afi.generate_filament_id(v, fam, salt=2)) - self.assertEqual(afi.mint_filament_id(v, fam, set()), - afi.generate_filament_id(v, fam)) + triple = ("Polymaker", "PLA", "PolyLite PLA") + taken = {afi.generate_filament_id(*triple, salt=s) for s in range(2)} + self.assertEqual(afi.mint_filament_id(*triple, taken), + afi.generate_filament_id(*triple, salt=2)) + self.assertEqual(afi.mint_filament_id(*triple, set()), + afi.generate_filament_id(*triple)) class TestBaseName(unittest.TestCase): @@ -278,8 +321,74 @@ class TestResolver(unittest.TestCase): self.assertEqual(fid, "PARENT") +class TestTripleResolution(unittest.TestCase): + @staticmethod + def rec(name, inherits=None, filament_vendor=None, filament_type=None): + return {"name": name, "inherits": inherits, + "filament_vendor": filament_vendor, "filament_type": filament_type} + + def field(self, name, vendor_recs, ofl_recs, field="filament_vendor"): + fmap = {r["name"]: r for r in vendor_recs} + omap = {r["name"]: r for r in ofl_recs} + return afi.resolve_filament_field(name, field, fmap, omap) + + def test_own_value_first_element_of_list(self): + got = self.field("A", [self.rec("A", filament_vendor=["Poly", "Ignored"])], []) + self.assertEqual(got, "Poly") + + def test_plain_string_value_tolerated(self): + got = self.field("A", [self.rec("A", filament_vendor="Poly")], []) + self.assertEqual(got, "Poly") + + def test_inherited_within_vendor(self): + got = self.field( + "A", [self.rec("A", inherits="B"), self.rec("B", inherits="C"), + self.rec("C", filament_vendor=["Poly"])], []) + self.assertEqual(got, "Poly") + + def test_empty_list_keeps_walking(self): + got = self.field( + "A", [self.rec("A", inherits="B", filament_vendor=[]), + self.rec("B", filament_vendor=["Poly"])], []) + self.assertEqual(got, "Poly") + + def test_ofl_fallback(self): + got = self.field( + "A", [self.rec("A", inherits="Generic PLA @System")], + [self.rec("Generic PLA @System", inherits="fdm_pla"), + self.rec("fdm_pla", filament_vendor=["Generic"])]) + self.assertEqual(got, "Generic") + + def test_ofl_stays_in_ofl(self): + got = self.field( + "A", + [self.rec("A", inherits="ofl_entry"), + self.rec("fdm_pla", filament_vendor=["WRONG"])], + [self.rec("ofl_entry", inherits="fdm_pla"), + self.rec("fdm_pla", filament_vendor=["RIGHT"])]) + self.assertEqual(got, "RIGHT") + + def test_dead_end_retries_parent_in_ofl(self): + got = self.field( + "A", [self.rec("A", inherits="shared"), self.rec("shared")], + [self.rec("shared", filament_vendor=["Poly"])]) + self.assertEqual(got, "Poly") + + def test_missing_is_empty(self): + self.assertEqual(self.field("A", [self.rec("A")], []), "") + self.assertEqual(self.field("A", [self.rec("A", inherits="nope")], []), "") + + def test_resolve_triple(self): + recs = [self.rec("MyPLA @base", filament_vendor=["MyVendor"], + filament_type=["PLA"]), + self.rec("MyPLA @P1", inherits="MyPLA @base")] + fmap = {r["name"]: r for r in recs} + self.assertEqual(afi.resolve_triple("MyPLA @P1", fmap, {}), + ("MyVendor", "PLA", "MyPLA")) + + # --------------------------------------------------------------------------- -# reserved namespaces +# reserved namespaces / islands # --------------------------------------------------------------------------- class TestReservedSpaces(unittest.TestCase): @@ -289,9 +398,16 @@ class TestReservedSpaces(unittest.TestCase): self.assertEqual(afi.reserved_space_owner("P1234abc"), (True, None)) self.assertEqual(afi.reserved_space_owner("pAbCdEf1"), (True, None)) # case-insensitive self.assertEqual(afi.reserved_space_owner("null"), (True, None)) - self.assertEqual(afi.reserved_space_owner("OFiJYDPC"), (False, None)) + self.assertEqual(afi.reserved_space_owner("OF5CgdDq"), (False, None)) self.assertEqual(afi.reserved_space_owner("P1234abcd"), (False, None)) # 8 hex chars: not the user space + def test_island_declarations(self): + self.assertTrue(afi.is_island_declaration("BBL", "GFL99")) + self.assertTrue(afi.is_island_declaration("BBL", "OF5CgdDq")) + self.assertTrue(afi.is_island_declaration("Qidi", "QD_X4_PLA")) + self.assertFalse(afi.is_island_declaration("Qidi", "OF5CgdDq")) + self.assertFalse(afi.is_island_declaration("VendorA", "GFL99")) + # --------------------------------------------------------------------------- # checks on synthetic trees @@ -302,10 +418,12 @@ class TestChecks(SyntheticTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) self.assertNotIn("[ERROR]", out) + self.assertNotIn("[WARNING]", out) def test_check1_unknown_non_of_id(self): self.t.write_preset("VendorA", preset("BPLA @base", filament_id="BOGUS_9", - instantiation=False)) + instantiation=False, + filament_vendor="BV", filament_type="PLA")) self.t.write_preset("VendorA", preset("BPLA @P1", inherits="BPLA @base", compatible_printers=["P1"])) errors, out = self.t.check() @@ -328,27 +446,57 @@ class TestChecks(SyntheticTreeCase): self.assertIn("stability", out) self.assertIn('"VendorA/APLA"', out) - def test_check3_of_id_must_match_mint(self): + def test_check2_triple_change_needs_snapshot_update(self): + self.t.write_preset("VendorA", preset("APLA @base", filament_id="AX01", + instantiation=False, + filament_vendor="AVendor", + filament_type="PETG"), + register=False) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn('triple "AVendor/PETG/APLA" is not sanctioned', out) + self.assertIn('triple stability: snapshot triple "AVendor/PLA/APLA"', out) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_check3_of_id_must_match_triple_mint(self): self.t.write_preset("VendorA", preset("BNEW @base", filament_id="OFZZZZZZ", - instantiation=False)) + instantiation=False, + filament_vendor="BV", filament_type="PLA")) self.t.write_preset("VendorA", preset("BNEW @P1", inherits="BNEW @base", compatible_printers=["P1"])) errors, out = self.t.check() self.assertGreater(errors, 0) - self.assertIn("does not match its mint", out) - self.assertIn(afi.generate_filament_id("VendorA", "BNEW"), out) + self.assertIn("does not match the mint of its triple", out) + self.assertIn(afi.generate_filament_id("BV", "PLA", "BNEW"), out) def test_check3_salted_mint_is_accepted(self): - salted = afi.generate_filament_id("VendorA", "BNEW", salt=3) + salted = afi.generate_filament_id("BV", "PLA", "BNEW", salt=3) self.t.write_preset("VendorA", preset("BNEW @base", filament_id=salted, - instantiation=False)) + instantiation=False, + filament_vendor="BV", filament_type="PLA")) self.t.write_preset("VendorA", preset("BNEW @P1", inherits="BNEW @base", compatible_printers=["P1"])) _errors, out = self.t.check() # check 2 still wants a snapshot update - self.assertNotIn("does not match its mint", out) + self.assertNotIn("does not match the mint", out) + + def test_check3_grandfathered_id_triple_pair(self): + # A non-conforming (id, triple) pair sanctioned by the snapshot passes. + self.t.write_preset("VendorA", preset("CNEW @base", filament_id="OFZZZZZZ", + instantiation=False, + filament_vendor="CV", filament_type="PLA")) + self.t.write_preset("VendorA", preset("CNEW @P1", inherits="CNEW @base", + compatible_printers=["P1"])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) def test_check4_retired_id_reuse(self): - afi.write_ledger(self.t.retired, {"retired": {"AX01": ["VendorA/APLA"]}}) + self.t.write_ledger(retired={"AX01": {"claims": ["VendorA/APLA"], + "successor": None}}) errors, out = self.t.check() self.assertGreater(errors, 0) self.assertIn("retired", out) @@ -371,6 +519,37 @@ class TestChecks(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn("cannot shadow the OFL preset", out) + def test_check5_own_id_key_on_ofl_rider(self): + # A vendor root that declares its own id while inheriting an OFL family + # forks the family off the catalog id. + self.t.write_preset("VendorA", preset("GPLA @base", filament_id="AX77", + instantiation=False, + inherits="Generic PLA @System")) + self.t.write_preset("VendorA", preset("GPLA @P1", inherits="GPLA @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn('declares its own filament_id "AX77"', out) + + def test_check5_applies_to_non_generic_ofl_families(self): + fid = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") + self.t.write_preset(OFL, preset("poly_pla_base", filament_id=fid, + instantiation=False, + filament_vendor="Polymaker", + filament_type="PLA")) + self.t.write_preset(OFL, preset("PolyLite PLA @System", + inherits="poly_pla_base", + compatible_printers=[])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.t.write_preset("VendorA", preset("PolyX PLA @P1", + inherits="PolyLite PLA @System", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("rename re-exposes the OFL preset", out) + self.assertIn("PolyX PLA @P1", out) + def test_check5_exception_is_grandfathered(self): self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="Generic PLA @System", @@ -388,7 +567,9 @@ class TestChecks(SyntheticTreeCase): with self.subTest(fid=fid): name = f"R{fid} @base" self.t.write_preset("VendorA", preset(name, filament_id=fid, - instantiation=False)) + instantiation=False, + filament_vendor="RV", + filament_type="PLA")) self.t.write_preset("VendorA", preset(f"R{fid} @P1", inherits=name, compatible_printers=["P1"])) errors, out = self.t.check() @@ -428,6 +609,184 @@ class TestChecks(SyntheticTreeCase): self.assertIn("snapshot not found", out) +class TestCheck8(SyntheticTreeCase): + def test_8a_empty_vendor_is_hard_error(self): + fid = afi.generate_filament_id("", "PLA", "NVPLA") + self.t.write_preset("VendorA", preset("NVPLA @base", filament_id=fid, + instantiation=False, + filament_type="PLA")) + self.t.write_preset("VendorA", preset("NVPLA @P1", inherits="NVPLA @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("resolves empty filament_vendor", out) + self.assertIn('filament_vendor "Generic"', out) + # No grandfathering: sanctioning the tree does not silence check 8a. + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("resolves empty filament_vendor", out) + + def test_8b_divergent_family_triples(self): + id1 = afi.generate_filament_id("MV", "PLA", "MPLA") + id2 = afi.generate_filament_id("MV", "PETG", "MPLA") + self.t.write_preset("VendorA", preset("MPLA @base1", filament_id=id1, + instantiation=False, + filament_vendor="MV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("MPLA @base2", filament_id=id2, + instantiation=False, + filament_vendor="MV", + filament_type="PETG")) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("divergent triples", out) + self.assertIn("MV/PLA/MPLA", out) + self.assertIn("MV/PETG/MPLA", out) + # ... until --update-snapshot grandfathers the family in triple_exceptions. + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("VendorA/MPLA", load_json_file(self.t.snapshot)["triple_exceptions"]) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_8_cross_bundle_divergence_is_warning_only(self): + fid = afi.generate_filament_id("BV", "PETG", "APLA") + self.t.add_vendor("VendorB", [ + preset("APLA @base", filament_id=fid, instantiation=False, + filament_vendor="BV", filament_type="PETG"), + preset("APLA @PB", inherits="APLA @base", + compatible_printers=["PB 0.4 nozzle"]), + ]) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + self.assertIn("[WARNING]", out) + self.assertIn("across bundles", out) + self.assertIn('"APLA"', out) + + +class TestCheck9(SyntheticTreeCase): + def test_ok_chain_null_and_live(self): + self.t.write_ledger(retired={ + "R1": {"claims": ["VendorA/Gone1"], "successor": "AX01"}, + "R2": {"claims": ["VendorA/Gone2"], "successor": "R1"}, + "R3": {"claims": ["VendorA/Gone3"], "successor": None}, + }) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_cycle_is_an_error(self): + self.t.write_ledger(retired={ + "C1": {"claims": [], "successor": "C2"}, + "C2": {"claims": [], "successor": "C1"}, + }) + errors, out = self.t.check() + self.assertEqual(errors, 2, out) + self.assertIn("cycles", out) + + def test_dead_end_is_an_error(self): + self.t.write_ledger(retired={ + "D1": {"claims": [], "successor": "OFnope99"}, + }) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("dead-ends", out) + self.assertIn("OFnope99", out) + + def test_hint_key_must_be_in_island_space(self): + self.t.write_ledger(hints={"AX01": "OGFL99"}) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("not in an island id space", out) + + def test_hint_key_may_be_absent_island_id(self): + # Released / never-shipped island-catalog ids are valid hint keys. + self.t.write_ledger(hints={"GFXX99": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_hint_key_must_not_be_retired_too(self): + self.t.write_ledger(retired={"GFXX99": {"claims": [], "successor": "AX01"}}, + hints={"GFXX99": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("never both", out) + + def test_live_hint_key_with_non_island_declarer_is_an_error(self): + self.t.write_preset("VendorA", preset( + "GPLA @base", filament_id="GFZZ01", instantiation=False, + filament_vendor="Generic", filament_type="PLA")) + self.t.write_preset("VendorA", preset( + "GPLA @P1", inherits="GPLA @base", + compatible_printers=["P1 0.4 nozzle"])) + rc, _out = self.t.update_snapshot(allow_shared_catalog=True) + self.assertEqual(rc, 0) + self.t.write_ledger(hints={"GFZZ01": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("re-mint those declarers first", out) + + def test_island_hint_ok_and_value_must_chain_live(self): + self.t.add_vendor("BBL", [ + preset("BPLA @base", filament_id="GFB01", instantiation=False), + preset("BPLA @X1C", inherits="BPLA @base", + compatible_printers=["X1C 0.4 nozzle"]), + ]) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.t.write_ledger(hints={"GFB01": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + # A hint chain ending on a null retirement is dead for the runtime. + self.t.write_ledger(retired={"R9": {"claims": [], "successor": None}}, + hints={"GFB01": "R9"}) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("chain-terminate at a live tree id", out) + + +# --------------------------------------------------------------------------- +# successor mode rule + ledger schema migration +# --------------------------------------------------------------------------- + +class TestSuccessorMode(unittest.TestCase): + def test_majority_wins(self): + claim_ids = {"V/A": {"ID1"}, "V/B": {"ID1"}, "V/C": {"ID2"}} + succ, counts = afi.successor_by_mode(["V/A", "V/B", "V/C"], claim_ids) + self.assertEqual(succ, "ID1") + self.assertEqual(counts, {"ID1": 2, "ID2": 1}) + + def test_tie_breaks_lexicographically(self): + claim_ids = {"V/A": {"IDB"}, "V/B": {"IDA"}} + succ, counts = afi.successor_by_mode(["V/A", "V/B"], claim_ids) + self.assertEqual(succ, "IDA") + self.assertEqual(counts, {"IDA": 1, "IDB": 1}) + + def test_no_surviving_family_means_null(self): + self.assertEqual(afi.successor_by_mode(["V/GONE"], {}), (None, {})) + self.assertEqual(afi.successor_by_mode([], {"V/A": {"ID1"}}), (None, {})) + + +class TestLedgerMigration(SyntheticTreeCase): + def test_backfill_successors_via_mode_rule(self): + analysis = afi.analyze_tree(self.t.profiles) + claim_ids = afi.claim_effective_ids(analysis) + old = { + "X9": ["VendorA/APLA"], # family lives on + "Y9": ["VendorA/GONE"], # family died + "Z9": {"claims": ["kept"], "successor": "AX01"}, # already migrated + } + migrated = afi.migrate_retired_entries(old, claim_ids) + self.assertEqual(migrated["X9"], + {"claims": ["VendorA/APLA"], "successor": "AX01"}) + self.assertEqual(migrated["Y9"], + {"claims": ["VendorA/GONE"], "successor": None}) + self.assertEqual(migrated["Z9"], old["Z9"]) + + # --------------------------------------------------------------------------- # --update-snapshot # --------------------------------------------------------------------------- @@ -448,30 +807,117 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertEqual(snap["ids"]["AX01"], ["VendorA/APLA"]) self.assertEqual(snap["ids"]["OGFL99"], ["OrcaFilamentLibrary/Generic PLA", "VendorA/Generic PLA"]) + self.assertEqual(snap["triples"]["AX01"], [["AVendor", "PLA", "APLA"]]) + self.assertEqual(snap["triples"]["OGFL99"], [["Generic", "PLA", "fdm_pla"]]) + self.assertEqual(snap["triple_exceptions"], []) - def test_vanished_id_is_retired(self): + def test_vanished_island_id_released_with_hint_not_retired(self): + self.t.write_preset("VendorA", preset( + "GPLA @base", filament_id="GFZZ01", instantiation=False, + filament_vendor="Generic", filament_type="PLA")) + self.t.write_preset("VendorA", preset( + "GPLA @P1", inherits="GPLA @base", + compatible_printers=["P1 0.4 nozzle"])) + rc, _out = self.t.update_snapshot(allow_shared_catalog=True) + self.assertEqual(rc, 0) + # The family re-mints away from the island id: released, not retired. + self.t.write_preset("VendorA", preset( + "GPLA @base", filament_id="OFaaaaaa", instantiation=False, + filament_vendor="Generic", filament_type="PLA"), register=False) + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("released to the BBL island space", out) + ledger = afi.load_ledger(self.t.retired) + self.assertNotIn("GFZZ01", ledger["retired"]) + self.assertEqual(ledger["hints"].get("GFZZ01"), "OFaaaaaa") + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + # The island may legitimately (re)ship a released id later. + self.t.add_vendor("BBL", [ + preset("BPLA @base", filament_id="GFZZ01", instantiation=False), + preset("BPLA @X1C", inherits="BPLA @base", + compatible_printers=["X1C 0.4 nozzle"]), + ]) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_vanished_id_is_retired_with_null_successor(self): self.t.remove_preset("VendorA", "APLA @base") self.t.remove_preset("VendorA", "APLA @P1") rc, out = self.t.update_snapshot() self.assertEqual(rc, 0) self.assertIn("AX01", out) - retired = load_json_file(self.t.retired) - self.assertEqual(retired["retired"], {"AX01": ["VendorA/APLA"]}) + retired = load_json_file(self.t.retired)["retired"] + self.assertEqual(retired, + {"AX01": {"claims": ["VendorA/APLA"], "successor": None}}) snap = load_json_file(self.t.snapshot) self.assertNotIn("AX01", snap["ids"]) + self.assertNotIn("AX01", snap["triples"]) # append-only + idempotent: a second run keeps the ledger intact rc, out = self.t.update_snapshot() self.assertEqual(rc, 0) self.assertIn("nothing changed", out) - retired2 = load_json_file(self.t.retired) - self.assertEqual(retired, retired2) + self.assertEqual(retired, load_json_file(self.t.retired)["retired"]) # ... and a retired id may never be minted again - self.assertNotIn(afi.mint_filament_id("VendorA", "APLA", - set(retired["retired"])), retired["retired"]) + self.assertNotIn(afi.mint_filament_id("AVendor", "PLA", "APLA", + set(retired)), retired) + + def test_vanished_id_successor_follows_surviving_family(self): + # The family lives on under a new id (a re-mint): the mode rule finds it. + self.t.write_preset("VendorA", preset("APLA @base", filament_id="AXNEW", + instantiation=False, + filament_vendor="AVendor", + filament_type="PLA"), + register=False) + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + retired = load_json_file(self.t.retired)["retired"] + self.assertEqual(retired["AX01"], + {"claims": ["VendorA/APLA"], "successor": "AXNEW"}) + + def test_multi_candidate_retirement_warns_and_ties_break(self): + self.t.write_preset("VendorA", preset("SHRD @base", filament_id="SH01", + instantiation=False, + filament_vendor="SV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("CH1 @P1", inherits="SHRD @base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("CH2 @P1", inherits="SHRD @base", + compatible_printers=["P1"])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + # Split the two families onto their own roots and drop the shared id. + self.t.write_preset("VendorA", preset("CH1 @base", filament_id="SA01", + instantiation=False, + filament_vendor="SV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("CH2 @base", filament_id="SB01", + instantiation=False, + filament_vendor="SV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("CH1 @P1", inherits="CH1 @base", + compatible_printers=["P1"]), + register=False) + self.t.write_preset("VendorA", preset("CH2 @P1", inherits="CH2 @base", + compatible_printers=["P1"]), + register=False) + self.t.remove_preset("VendorA", "SHRD @base") + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("[WARNING]", out) + self.assertIn("SB01", out) # the losing candidate is named + retired = load_json_file(self.t.retired)["retired"] + self.assertEqual(retired["SH01"]["successor"], "SA01") + self.assertEqual(retired["SH01"]["claims"], + ["VendorA/CH1", "VendorA/CH2"]) def test_refuses_new_reserved_namespace_claims(self): self.t.write_preset("VendorA", preset("CNEW @base", filament_id="GFX99", - instantiation=False)) + instantiation=False, + filament_vendor="CV", + filament_type="PLA")) self.t.write_preset("VendorA", preset("CNEW @P1", inherits="CNEW @base", compatible_printers=["P1"])) with open(self.t.snapshot, "rb") as f: @@ -487,6 +933,122 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertEqual(snap["ids"]["GFX99"], ["VendorA/CNEW"]) +class TestForgetNeverShipped(SyntheticTreeCase): + def forget_file(self, ids): + path = os.path.join(self.t.dir, "forget.json") + with open(path, "w", encoding="utf-8") as f: + json.dump(ids, f) + return path + + def test_refuses_when_listed_id_is_live(self): + with open(self.t.snapshot, "rb") as f: + before = f.read() + rc, out = self.t.update_snapshot(forget_path=self.forget_file(["AX01"])) + self.assertEqual(rc, 1) + self.assertIn("still in the tree", out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), before) + + def test_forgotten_id_is_not_retired(self): + self.t.write_preset("VendorA", preset("ZN @base", filament_id="Y999", + instantiation=False, + filament_vendor="ZV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("ZN @P1", inherits="ZN @base", + compatible_printers=["P1"])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.t.remove_preset("VendorA", "ZN @base") + self.t.remove_preset("VendorA", "ZN @P1") + rc, out = self.t.update_snapshot(forget_path=self.forget_file(["Y999"])) + self.assertEqual(rc, 0) + self.assertIn("forgotten (never shipped)", out) + self.assertNotIn("Y999", load_json_file(self.t.retired)["retired"]) + self.assertNotIn("Y999", load_json_file(self.t.snapshot)["ids"]) + + def test_splices_chains_through_forgotten_id(self): + self.t.write_preset("VendorA", preset("ZN @base", filament_id="Y999", + instantiation=False, + filament_vendor="ZV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("ZN @P1", inherits="ZN @base", + compatible_printers=["P1"])) + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + # A shipped id already forwards to Y999, which turns out never shipped. + self.t.write_ledger(retired={ + "OLD1": {"claims": ["VendorA/ZN"], "successor": "Y999"}}) + # The family re-mints to NEWZ and Y999 vanishes. + self.t.write_preset("VendorA", preset("ZN @base", filament_id="NEWZ", + instantiation=False, + filament_vendor="ZV", + filament_type="PLA"), + register=False) + rc, out = self.t.update_snapshot(forget_path=self.forget_file(["Y999"])) + self.assertEqual(rc, 0) + self.assertIn("spliced succession", out) + retired = load_json_file(self.t.retired)["retired"] + self.assertNotIn("Y999", retired) + self.assertEqual(retired["OLD1"], + {"claims": ["VendorA/ZN"], "successor": "NEWZ"}) + + +# --------------------------------------------------------------------------- +# --add-hint +# --------------------------------------------------------------------------- + +class TestAddHint(SyntheticTreeCase): + def add_bbl(self): + self.t.add_vendor("BBL", [ + preset("BPLA @base", filament_id="GFB01", instantiation=False), + preset("BPLA @X1C", inherits="BPLA @base", + compatible_printers=["X1C 0.4 nozzle"]), + ]) + rc, _out = self.t.update_snapshot() + assert rc == 0 + + def test_adds_island_hint(self): + self.add_bbl() + rc, out = self.t.add_hint(["GFB01=AX01"]) + self.assertEqual(rc, 0, out) + self.assertEqual(load_json_file(self.t.retired)["hints"], + {"GFB01": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_rejects_non_island_old(self): + rc, out = self.t.add_hint(["AX01=OGFL99"]) + self.assertEqual(rc, 1) + self.assertIn("not in an island id space", out) + self.assertEqual(afi.load_ledger(self.t.retired)["hints"], {}) + + def test_accepts_absent_island_old(self): + # Island catalogs own ids Orca never shipped (or has released). + rc, out = self.t.add_hint(["GFXX99=AX01"]) + self.assertEqual(rc, 0, out) + self.assertEqual(load_json_file(self.t.retired)["hints"], + {"GFXX99": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_rejects_retired_old(self): + self.t.write_ledger(retired={"ROLD": {"claims": [], "successor": None}}) + rc, out = self.t.add_hint(["ROLD=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("is retired", out) + + def test_rejects_dead_target(self): + self.add_bbl() + rc, out = self.t.add_hint(["GFB01=OFnope99"]) + self.assertEqual(rc, 1) + self.assertIn("not a live tree id", out) + + def test_rejects_malformed_pair(self): + rc, out = self.t.add_hint(["GFB01"]) + self.assertEqual(rc, 1) + self.assertIn('expects "OLD=NEW"', out) + + # --------------------------------------------------------------------------- # default run: mint + insert # --------------------------------------------------------------------------- @@ -498,21 +1060,25 @@ class TestAssign(SyntheticTreeCase): self.assertIn("nothing to do (0 files changed)", out) def test_mints_into_family_root_and_rootless_member(self): - self.t.write_preset("VendorA", preset("FNEW @base", instantiation=False)) + self.t.write_preset("VendorA", preset("FNEW @base", instantiation=False, + filament_vendor="FV", + filament_type="PLA")) self.t.write_preset("VendorA", preset("FNEW @P1", inherits="FNEW @base", compatible_printers=["P1"])) self.t.write_preset("VendorA", preset("FNEW @P2", inherits="FNEW @base", compatible_printers=["P2"])) - self.t.write_preset("VendorA", preset("GNEW @P1", compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("GNEW @P1", compatible_printers=["P1"], + filament_vendor="GV", + filament_type="PETG")) changed, errors, _out = self.t.assign() self.assertEqual(errors, 0) self.assertEqual(changed, 2) # one root + one root-less member root = load_json_file(self.t.preset_path("VendorA", "FNEW @base")) self.assertEqual(root["filament_id"], - afi.generate_filament_id("VendorA", "FNEW")) + afi.generate_filament_id("FV", "PLA", "FNEW")) member = load_json_file(self.t.preset_path("VendorA", "GNEW @P1")) self.assertEqual(member["filament_id"], - afi.generate_filament_id("VendorA", "GNEW")) + afi.generate_filament_id("GV", "PETG", "GNEW")) # variants themselves never get the key child = load_json_file(self.t.preset_path("VendorA", "FNEW @P1")) self.assertNotIn("filament_id", child) @@ -521,8 +1087,36 @@ class TestAssign(SyntheticTreeCase): self.assertEqual((changed, errors), (0, 0)) self.assertIn("nothing to do", out) + def test_refuses_family_with_incomplete_triple(self): + self.t.write_preset("VendorA", preset("ENEW @base", instantiation=False)) + self.t.write_preset("VendorA", preset("ENEW @P1", inherits="ENEW @base", + compatible_printers=["P1"])) + changed, errors, out = self.t.assign() + self.assertEqual(changed, 0) + self.assertGreater(errors, 0) + self.assertIn("resolves empty filament_vendor and filament_type", out) + self.assertIn("mint key needs both", out) + + def test_refuses_family_with_divergent_root_fields(self): + self.t.write_preset("VendorA", preset("HNEW @base1", instantiation=False, + filament_vendor="HV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("HNEW @base2", instantiation=False, + filament_vendor="HV", + filament_type="PETG")) + self.t.write_preset("VendorA", preset("HNEW @P1", inherits="HNEW @base1", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("HNEW @P2", inherits="HNEW @base2", + compatible_printers=["P2"])) + changed, errors, out = self.t.assign() + self.assertEqual(changed, 0) + self.assertGreater(errors, 0) + self.assertIn("divergent (filament_vendor, filament_type)", out) + def test_shared_root_between_families_is_refused(self): - self.t.write_preset("VendorA", preset("shared_base", instantiation=False)) + self.t.write_preset("VendorA", preset("shared_base", instantiation=False, + filament_vendor="SV", + filament_type="PLA")) self.t.write_preset("VendorA", preset("HNEW @P1", inherits="shared_base", compatible_printers=["P1"])) self.t.write_preset("VendorA", preset("INEW @P1", inherits="shared_base", @@ -533,6 +1127,10 @@ class TestAssign(SyntheticTreeCase): self.assertIn("shared with famil", out) +# --------------------------------------------------------------------------- +# byte-preserving profile edits +# --------------------------------------------------------------------------- + class TestInsertEditing(unittest.TestCase): CRLF_TEXT = ( '{\r\n' @@ -546,6 +1144,17 @@ class TestInsertEditing(unittest.TestCase): '\t]\r\n' '}\r\n' ) + CRLF_WITH_ID = ( + '{\r\n' + '\t"type": "filament",\r\n' + '\t"name": "JNEW @base",\r\n' + '\t"filament_id": "OFold123",\r\n' + '\t"instantiation": "false",\r\n' + '\t"filament_type": [\r\n' + '\t\t"PLA"\r\n' + '\t]\r\n' + '}\r\n' + ) def test_insert_before_instantiation_preserves_bytes(self): text, n = afi.insert_filament_id(self.CRLF_TEXT, "OFabc123") @@ -585,6 +1194,192 @@ class TestInsertEditing(unittest.TestCase): raw.replace(b'\t"filament_id": "OFabc123",\r\n', b"", 1), self.CRLF_TEXT.encode("utf-8")) + def test_replace_value_preserves_every_other_byte(self): + text, n = afi.replace_filament_id_value(self.CRLF_WITH_ID, + "OFold123", "OFnew456") + self.assertEqual(n, 1) + self.assertEqual(json.loads(text)["filament_id"], "OFnew456") + self.assertEqual(text, self.CRLF_WITH_ID.replace('"OFold123"', '"OFnew456"')) + + def test_replace_value_requires_exact_old_value(self): + _text, n = afi.replace_filament_id_value(self.CRLF_WITH_ID, + "OFwrong1", "OFnew456") + self.assertEqual(n, 0) + + def test_rewrite_filament_id_on_disk(self): + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("VendorA", []) + path = t.preset_path("VendorA", "JNEW @base") + with open(path, "wb") as f: + f.write(self.CRLF_WITH_ID.encode("utf-8")) + afi.rewrite_filament_id(path, "OFold123", "OFnew456") + with open(path, "rb") as f: + raw = f.read() + self.assertEqual(raw, + self.CRLF_WITH_ID.replace('"OFold123"', '"OFnew456"') + .encode("utf-8")) + with self.assertRaises(RuntimeError): + afi.rewrite_filament_id(path, "OFold123", "OFxxx999") # stale old id + + def test_delete_line_with_trailing_comma(self): + text, n = afi.delete_filament_id_line(self.CRLF_WITH_ID, "OFold123") + self.assertEqual(n, 1) + self.assertNotIn("filament_id", json.loads(text)) + self.assertEqual(text, self.CRLF_WITH_ID.replace( + '\t"filament_id": "OFold123",\r\n', "", 1)) + + def test_delete_last_property_line(self): + lf_text = ('{\n "name": "K @base",\n "instantiation": "false",\n' + ' "filament_id": "OFold123"\n}\n') + text, n = afi.delete_filament_id_line(lf_text, "OFold123") + self.assertEqual(n, 1) + data = json.loads(text) + self.assertNotIn("filament_id", data) + self.assertEqual(data["instantiation"], "false") + + +# --------------------------------------------------------------------------- +# --remint +# --------------------------------------------------------------------------- + +class TestRemint(SyntheticTreeCase): + TRIPLE = ("AVendor", "PLA", "APLA") + + def test_rewrites_mismatching_declaration(self): + want = afi.generate_filament_id(*self.TRIPLE) + changed, errors, out = self.t.remint(["VendorA"]) + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 1) + self.assertIn('"AX01" -> "%s"' % want, out) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], want) + # OFL was not part of the run + ofl_root = load_json_file(self.t.preset_path(OFL, "fdm_pla")) + self.assertEqual(ofl_root["filament_id"], "OGFL99") + # idempotent: a second run over the same vendor rewrites nothing + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (0, 0)) + + def test_same_triple_converges_within_run(self): + self.t.add_vendor("VendorB", [ + preset("APLA @Bbase", filament_id="BX01", instantiation=False, + filament_vendor="AVendor", filament_type="PLA"), + preset("APLA @PB", inherits="APLA @Bbase", + compatible_printers=["PB 0.4 nozzle"]), + ]) + want = afi.generate_filament_id(*self.TRIPLE) + changed, errors, _out = self.t.remint(["VendorA", "VendorB"]) + self.assertEqual(errors, 0) + self.assertEqual(changed, 2) + a = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + b = load_json_file(self.t.preset_path("VendorB", "APLA @Bbase")) + self.assertEqual(a["filament_id"], want) + self.assertEqual(b["filament_id"], want) + + def test_same_triple_converges_with_existing_tree_id(self): + # Another bundle already carries the conforming id for the same triple: + # reuse is required, not blocked. + want = afi.generate_filament_id(*self.TRIPLE) + self.t.add_vendor("VendorB", [ + preset("APLA @Bbase", filament_id=want, instantiation=False, + filament_vendor="AVendor", filament_type="PLA"), + ]) + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 0)) + a = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(a["filament_id"], want) + + def test_blocked_by_retired_id(self): + want0 = afi.generate_filament_id(*self.TRIPLE) + self.t.write_ledger(retired={want0: {"claims": [], "successor": None}}) + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 0)) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id(*self.TRIPLE, salt=1)) + + def test_blocked_by_hint_key(self): + want0 = afi.generate_filament_id(*self.TRIPLE) + self.t.write_ledger(hints={want0: "AX01"}) + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 0)) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id(*self.TRIPLE, salt=1)) + + def test_blocked_by_other_triple_occurrence(self): + want0 = afi.generate_filament_id(*self.TRIPLE) + self.t.add_vendor("VendorB", [ + preset("BPLA @base", filament_id=want0, instantiation=False, + filament_vendor="BV", filament_type="PETG"), + ]) + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 0)) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id(*self.TRIPLE, salt=1)) + + def test_bbl_is_forbidden(self): + changed, errors, out = self.t.remint(["BBL"]) + self.assertEqual(changed, 0) + self.assertGreater(errors, 0) + self.assertIn("forbidden", out) + + +# --------------------------------------------------------------------------- +# --drop-redundant-ids +# --------------------------------------------------------------------------- + +class TestDropRedundantIds(SyntheticTreeCase): + def test_drops_only_ofl_riding_same_base_name_declarations(self): + # Redundant: same base name, rides the OFL generic, re-declares its id. + self.t.write_preset("VendorA", preset("Generic PLA @P2", + inherits="Generic PLA @System", + compatible_printers=["P2"], + filament_id="OGFL99")) + # Renamed rider: not dropped (a repoint worksheet decision, not a drop). + self.t.write_preset("VendorA", preset("Tuned PLA @P3", + inherits="Generic PLA @System", + compatible_printers=["P3"], + filament_id="OGFL99")) + dropped, errors, out = self.t.drop_redundant("VendorA") + self.assertEqual(errors, 0, out) + self.assertEqual(dropped, 1) + self.assertIn('dropped filament_id "OGFL99"', out) + self.assertIn('rides OFL "Generic PLA @System"', out) + gone = load_json_file(self.t.preset_path("VendorA", "Generic PLA @P2")) + self.assertNotIn("filament_id", gone) + kept = load_json_file(self.t.preset_path("VendorA", "Tuned PLA @P3")) + self.assertEqual(kept["filament_id"], "OGFL99") + # vendor-rooted families are untouched + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], "AX01") + + def test_bbl_is_forbidden(self): + dropped, errors, out = self.t.drop_redundant("BBL") + self.assertEqual(dropped, 0) + self.assertGreater(errors, 0) + self.assertIn("forbidden", out) + + +# --------------------------------------------------------------------------- +# --mint CLI +# --------------------------------------------------------------------------- + +class TestMintCli(unittest.TestCase): + def test_prints_an_of_id(self): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.main(["--mint", "Polymaker/PLA/PolyLite PLA"]) + self.assertEqual(rc, 0) + self.assertRegex(buf.getvalue().strip(), r"^OF[0-9A-Za-z]{6}$") + + def test_requires_exactly_three_parts(self): + with self.assertRaises(SystemExit), \ + contextlib.redirect_stderr(io.StringIO()): + afi.main(["--mint", "Vendor/Family"]) + # --------------------------------------------------------------------------- # the real tree @@ -610,9 +1405,11 @@ class TestRealTree(unittest.TestCase): class TestReviewFixes(SyntheticTreeCase): def test_update_snapshot_refuses_retired_id_reuse(self): - fid = afi.generate_filament_id("VendorA", "LONER") + fid = afi.generate_filament_id("LV", "PLA", "LONER") self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, - instantiation=False)) + instantiation=False, + filament_vendor="LV", + filament_type="PLA")) self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", compatible_printers=["P1 0.4 nozzle"])) rc, _ = self.t.update_snapshot() @@ -624,7 +1421,9 @@ class TestReviewFixes(SyntheticTreeCase): self.assertIn(fid, afi.load_retired(self.t.retired)) # Resurrect the same id: --update-snapshot must refuse, not sanction. self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, - instantiation=False)) + instantiation=False, + filament_vendor="LV", + filament_type="PLA")) self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", compatible_printers=["P1 0.4 nozzle"])) rc, out = self.t.update_snapshot() @@ -633,12 +1432,14 @@ class TestReviewFixes(SyntheticTreeCase): self.assertNotIn(fid, load_json_file(self.t.snapshot)["ids"]) def test_check3_skips_of_id_inherited_from_other_vendor(self): - # Post-Phase-1 world: an OFL generic carries its own minted OF id and a - # vendor tunes it correctly (same base name, non-empty printers). The - # new claim must trip only the snapshot gate, never mint conformance. - fid = afi.generate_filament_id(OFL, "Generic PLA Matte") + # An OFL family carries its own minted OF id and a vendor tunes it + # correctly (same base name, non-empty printers). The new claim must + # trip only the snapshot gate, never mint conformance. + fid = afi.generate_filament_id("Generic", "PLA", "Generic PLA Matte") self.t.write_preset(OFL, preset("Generic PLA Matte @base", filament_id=fid, - instantiation=False)) + instantiation=False, + filament_vendor="Generic", + filament_type="PLA")) self.t.write_preset(OFL, preset("Generic PLA Matte @System", inherits="Generic PLA Matte @base", compatible_printers=[])) @@ -648,7 +1449,7 @@ class TestReviewFixes(SyntheticTreeCase): inherits="Generic PLA Matte @System", compatible_printers=["P1 0.4 nozzle"])) errors, out = self.t.check() - self.assertNotIn("does not match its mint", out) + self.assertNotIn("does not match the mint", out) self.assertIn("not sanctioned", out) self.assertEqual(errors, 1, out) # After sanctioning the claim the tree is fully green again. @@ -659,10 +1460,12 @@ class TestReviewFixes(SyntheticTreeCase): def test_check7c_prints_expected_mint(self): self.t.write_preset("VendorA", preset("Orphan PLA @P1", - compatible_printers=["P1 0.4 nozzle"])) + compatible_printers=["P1 0.4 nozzle"], + filament_vendor="OV", + filament_type="PLA")) errors, out = self.t.check() self.assertGreater(errors, 0) - self.assertIn(afi.generate_filament_id("VendorA", "Orphan PLA"), out) + self.assertIn(afi.generate_filament_id("OV", "PLA", "Orphan PLA"), out) if __name__ == "__main__": diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index bc728f62e5..c3a44c25f1 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -555,6 +555,60 @@ std::string generate_preset_setting_id(const std::string& vendor, const std::str return std::string(out, 16); } +std::string follow_filament_id_succession(const std::string& id, const std::map& forwards) +{ + auto it = forwards.find(id); + if (it == forwards.end()) + return std::string(); + std::set visited { id }; + std::string current = id; + while (it != forwards.end() && visited.insert(it->second).second) { + current = it->second; + it = forwards.find(current); + } + // it == end(): current is the live end of the chain; otherwise the ledger is + // cyclic and current is the last id reached before a repeat. + return current; +} + +const std::map& filament_id_succession_map() +{ + // Loaded once; C++11 magic-static initialization makes this thread-safe. + // Succession is a best-effort miss-path fallback, so a missing or corrupt + // ledger is not an error for the client - it just yields an empty map. + static const std::map forwards = []() { + std::map map; + const std::string path = Slic3r::resources_dir() + "/profiles/retired_filament_ids.json"; + boost::nowide::ifstream file(path.c_str()); + if (!file.is_open()) { + BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": cannot open " << path; + return map; + } + try { + nlohmann::json ledger; + file >> ledger; + if (ledger.contains("retired") && ledger["retired"].is_object()) + for (auto& [old_id, entry] : ledger["retired"].items()) + if (entry.is_object() && entry.contains("successor") && entry["successor"].is_string()) + map[old_id] = entry["successor"].get(); + if (ledger.contains("hints") && ledger["hints"].is_object()) + for (auto& [old_id, target] : ledger["hints"].items()) + if (target.is_string()) + map[old_id] = target.get(); + } catch (...) { + BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": failed to parse " << path; + map.clear(); + } + return map; + }(); + return forwards; +} + +std::string resolve_filament_id_succession(const std::string& id) +{ + return follow_filament_id_succession(id, filament_id_succession_map()); +} + std::string Preset::get_iot_type_string(Preset::Type type) { switch (type) { diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index bbbdc6c5ff..e84f56b107 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -100,6 +100,23 @@ std::string generate_preset_setting_id(const std::string& vendor, const std::string& type, const std::string& name); +// Succession forwarding for retired/renamed filament_ids, backed by the shipped +// ledger resources/profiles/retired_filament_ids.json. Consulted on a filament_id +// resolution miss only, so live ids always resolve natively first. +// +// Pure chain walk over `forwards` (old id -> successor). Returns the final id of the +// chain, or an empty string when `id` has no entry. Cycle-guarded: on a malformed +// cyclic ledger it stops at the last id reached before any repeat (a self-loop +// returns `id` itself). +std::string follow_filament_id_succession(const std::string& id, + const std::map& forwards); +// Forwarding map loaded once (thread-safe) from the ledger, merging +// "retired" {id -> non-null successor} and "hints" {island-owned id -> live id}. +// A missing or corrupt file yields an empty map. +const std::map& filament_id_succession_map(); +// Convenience: follow_filament_id_succession(id, filament_id_succession_map()). +std::string resolve_filament_id_succession(const std::string& id); + enum ConfigFileType { CONFIG_FILE_TYPE_UNKNOWN, diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 399443a706..a0f687c26b 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -729,6 +729,12 @@ std::optional PresetBundle::get_filament_by_filament_id(const } } } + // Miss: a retired/renamed id may forward to a live successor through the shipped + // succession ledger. resolve() returns a chain-final id, so the retry below cannot + // recurse further (a malformed cyclic ledger yields a non-final id, rejected here). + const std::string successor = resolve_filament_id_succession(filament_id); + if (!successor.empty() && resolve_filament_id_succession(successor).empty()) + return get_filament_by_filament_id(successor, printer_name); return std::nullopt; } @@ -3150,6 +3156,15 @@ void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info) auto iter = std::find_if(filaments.begin(), filaments.end(), [this, &filament_id](auto &f) { return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == filament_id; }); warn_ambiguous_filament_id_match(filaments, iter, filament_id); + if (iter == filaments.end()) { + // Retired/renamed ids forward to a live successor through the shipped succession ledger. + const std::string successor = resolve_filament_id_succession(filament_id); + if (!successor.empty()) { + iter = std::find_if(filaments.begin(), filaments.end(), + [this, &successor](auto &f) { return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == successor; }); + warn_ambiguous_filament_id_match(filaments, iter, successor); + } + } if (iter == filaments.end()) { BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": filament_id %1% not found or system or compatible") % filament_id; auto filament_type = ams.opt_string("filament_type", 0u); @@ -3253,6 +3268,16 @@ unsigned int PresetBundle::sync_ams_list(std::vector> filament_list = filaments.get_filament_presets(); std::set printer_names = get_printer_names_by_printer_type_and_nozzle(printer_type, nozzle_diameter_str); - for (const Preset *preset : filament_list.find(setting_id)->second) { + auto filament_iter = filament_list.find(setting_id); + if (filament_iter == filament_list.end()) + return is_equation; + + for (const Preset *preset : filament_iter->second) { if (tag_uid == "0" || (tag_uid.size() == 16 && tag_uid.substr(12, 2) == "01")) continue; if (preset && !preset->is_user()) continue; ConfigOption * printer_opt = const_cast(preset)->config.option("compatible_printers"); diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 8ed0305369..e568078851 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -59,7 +59,7 @@ int get_colume_idx(CaliColumnType type, MachineObject* obj) return type; } -static wxString get_preset_name_by_filament_id(std::string filament_id) +static wxString get_preset_name_by_filament_id(std::string filament_id, bool follow_succession = true) { auto preset_bundle = wxGetApp().preset_bundle; auto collection = &preset_bundle->filaments; @@ -93,6 +93,12 @@ static wxString get_preset_name_by_filament_id(std::string filament_id) } } } + if (preset_name.empty() && follow_succession) { + // Retired/renamed ids forward to a live successor through the shipped succession ledger. + const std::string successor = resolve_filament_id_succession(filament_id); + if (!successor.empty()) + preset_name = get_preset_name_by_filament_id(successor, false); + } return preset_name; } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 9d7afd13b9..963ecca4e5 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2540,14 +2540,22 @@ std::string MachineObject::setting_id_to_type(std::string setting_id, std::strin std::string type; PresetBundle* preset_bundle = GUI::wxGetApp().preset_bundle; if (preset_bundle) { - for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { - - if (it->filament_id.compare(setting_id) == 0 && it->is_system) { - std::string display_filament_type; - it->config.get_filament_type(display_filament_type); - type = display_filament_type; - break; + auto lookup_system_type = [preset_bundle](const std::string &id) { + std::string display_filament_type; + for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { + if (it->filament_id.compare(id) == 0 && it->is_system) { + it->config.get_filament_type(display_filament_type); + break; + } } + return display_filament_type; + }; + type = lookup_system_type(setting_id); + if (type.empty()) { + // Retired/renamed ids forward to a live successor through the shipped succession ledger. + const std::string successor = resolve_filament_id_succession(setting_id); + if (!successor.empty()) + type = lookup_system_type(successor); } } @@ -5249,7 +5257,10 @@ void MachineObject::update_filament_list() for (auto it = filament_list.begin(); it != filament_list.end(); it++) { if (m_filament_list.find(it->first) != m_filament_list.end()) { - assert(it->first.size() == 8 && it->first[0] == 'P'); + // User roots may legitimately carry adopted system-shaped ids (GF*/OF*/P-hex + // system), so a non-'P' id here is expected, not an invariant violation. + if (it->first.size() != 8 || it->first[0] != 'P') + BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": user-root filament_id is not user-shaped: " << it->first; if (it->second.first != m_filament_list[it->first].first) { BOOST_LOG_TRIVIAL(info) << "old min temp is not equal to new min temp and filament id: " << it->first; @@ -5311,6 +5322,17 @@ void MachineObject::update_printer_preset_name() void MachineObject::check_ams_filament_valid() { PresetBundle * preset_bundle = Slic3r::GUI::wxGetApp().preset_bundle; + // A tray id carried by ANY system filament preset is not a dangling user-preset id + // (ten shipped P-hex system ids pass the 'P' shape gates below), so the destructive + // tray-wipe / temp-rewrite handling must never fire for it. + auto is_system_filament_id = [preset_bundle](const std::string &id) { + if (!preset_bundle) + return false; + for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) + if (it->is_system && it->filament_id == id) + return true; + return false; + }; auto printer_model = DevPrinterConfigUtil::get_printer_display_name(this->printer_type); std::map> need_checked_filament_id; for (auto &ams_pair : m_fila_system->GetAmsList()) { @@ -5332,6 +5354,8 @@ void MachineObject::check_ams_filament_valid() auto &checked_filament = data.checked_filament; for (const auto &[slot_id, curr_tray] : ams->GetTrays()) { + if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && is_system_filament_id(curr_tray->setting_id)) + continue; if (curr_tray->setting_id.size() == 8 && curr_tray->setting_id[0] == 'P' && filament_list.find(curr_tray->setting_id) == filament_list.end()) { if (checked_filament.find(curr_tray->setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(curr_tray->setting_id); @@ -5392,6 +5416,8 @@ void MachineObject::check_ams_filament_valid() auto &data = m_nozzle_filament_data[nozzle_diameter_str]; auto &checked_filament = data.checked_filament; auto &filament_list = data.filament_list; + if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && is_system_filament_id(vt_tray.setting_id)) + continue; if (vt_tray.setting_id.size() == 8 && vt_tray.setting_id[0] == 'P' && filament_list.find(vt_tray.setting_id) == filament_list.end()) { if (checked_filament.find(vt_tray.setting_id) != checked_filament.end()) { need_checked_filament_id[nozzle_diameter_str].insert(vt_tray.setting_id); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 6475ae1c88..2a512497dc 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -537,6 +537,13 @@ bool PresetComboBox::add_ams_filaments(std::string selected, bool alias_name) } auto iter = std::find_if(filaments.begin(), filaments.end(), [&filament_id, this](auto &f) { return f.is_compatible && m_collection->get_preset_base(f) == &f && f.filament_id == filament_id; }); + if (iter == filaments.end()) { + // Retired/renamed ids forward to a live successor through the shipped succession ledger. + const std::string successor = resolve_filament_id_succession(filament_id); + if (!successor.empty()) + iter = std::find_if(filaments.begin(), filaments.end(), + [&successor, this](auto &f) { return f.is_compatible && m_collection->get_preset_base(f) == &f && f.filament_id == successor; }); + } if (iter == filaments.end()) { auto filament_type = tray.opt_string("filament_type", 0u); if (!filament_type.empty()) { diff --git a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp index f1d892134b..ecb23c926c 100644 --- a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp +++ b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include namespace { @@ -609,51 +610,70 @@ std::string MoonrakerPrinterAgent::map_filament_type_to_generic_id(const std::st { const std::string upper = trim_and_upper(filament_type); - // Map to OrcaFilamentLibrary preset IDs (compatible with all printers) - // Source: resources/profiles/OrcaFilamentLibrary/filament/ + // Normalize reported material names (trimmed, uppercased) to an OrcaFilamentLibrary + // generic family. The family's filament_id is resolved from the loaded system presets + // below rather than hardcoded, so profile id re-mints never require touching this table. + // scripts/test_moonraker_lane_data.py parses this initializer; keep the {"A", "B"} format. + static const std::map type_to_ofl_family = { + // PLA variants + {"PLA", "PLA"}, + {"PLA-CF", "PLA-CF"}, + {"PLA SILK", "PLA Silk"}, + {"PLA-SILK", "PLA Silk"}, + {"PLA HIGH SPEED", "PLA High Speed"}, + {"PLA-HS", "PLA High Speed"}, + {"PLA HS", "PLA High Speed"}, - // PLA variants - if (upper == "PLA") return "OGFL99"; - if (upper == "PLA-CF") return "OGFL98"; - if (upper == "PLA SILK" || upper == "PLA-SILK") return "OGFL96"; - if (upper == "PLA HIGH SPEED" || upper == "PLA-HS" || upper == "PLA HS") return "OGFL95"; + // ABS/ASA variants + {"ABS", "ABS"}, + {"ASA", "ASA"}, - // ABS/ASA variants - if (upper == "ABS") return "OGFB99"; - if (upper == "ASA") return "OGFB98"; + // PETG/PET variants + {"PETG", "PETG"}, + {"PET", "PETG"}, + {"PCTG", "PCTG"}, - // PETG/PET variants - if (upper == "PETG" || upper == "PET") return "OGFG99"; - if (upper == "PCTG") return "OGFG97"; + // PA/Nylon variants + {"PA", "PA"}, + {"NYLON", "PA"}, + {"PA-CF", "PA-CF"}, + {"PPA", "PPA-CF"}, + {"PPA-CF", "PPA-CF"}, + {"PPA-GF", "PPA-GF"}, - // PA/Nylon variants - if (upper == "PA" || upper == "NYLON") return "OGFN99"; - if (upper == "PA-CF") return "OGFN98"; - if (upper == "PPA" || upper == "PPA-CF") return "OGFN97"; - if (upper == "PPA-GF") return "OGFN96"; + // PC variants + {"PC", "PC"}, - // PC variants - if (upper == "PC") return "OGFC99"; + // PP/PE variants + {"PE", "PE"}, + {"PP", "PP"}, - // PP/PE variants - if (upper == "PE") return "OGFP99"; - if (upper == "PP") return "OGFP97"; + // Support materials + {"PVA", "PVA"}, + {"HIPS", "HIPS"}, + {"BVOH", "BVOH"}, - // Support materials - if (upper == "PVA") return "OGFS99"; - if (upper == "HIPS") return "OGFS98"; - if (upper == "BVOH") return "OGFS97"; + // TPU variants + {"TPU", "TPU"}, - // TPU variants - if (upper == "TPU") return "OGFU99"; + // Other materials + {"EVA", "EVA"}, + {"PHA", "PHA"}, + {"COPE", "CoPE"}, + {"SBS", "SBS"}, + }; - // Other materials - if (upper == "EVA") return "OGFR99"; - if (upper == "PHA") return "OGFR98"; - if (upper == "COPE") return "OGFLC99"; - if (upper == "SBS") return "OFLSBS99"; + auto it = type_to_ofl_family.find(upper); + if (it == type_to_ofl_family.end()) + return UNKNOWN_FILAMENT_ID; - // Unknown material + if (auto* bundle = GUI::wxGetApp().preset_bundle) { + const Preset* preset = bundle->filaments.find_preset("Generic " + it->second + " @System"); + if (preset != nullptr && preset->is_system && !preset->filament_id.empty()) + return preset->filament_id; + } + + // Unknown material, or no loaded preset data to resolve against return UNKNOWN_FILAMENT_ID; } diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index d5e6eb958e..328ffda8da 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -14,6 +14,7 @@ add_executable(${_TEST_NAME}_tests test_config.cpp test_preset_bundle_loading.cpp test_preset_setting_id.cpp + test_filament_id_succession.cpp test_elephant_foot_compensation.cpp test_geometry.cpp test_placeholder_parser.cpp diff --git a/tests/libslic3r/test_filament_id_succession.cpp b/tests/libslic3r/test_filament_id_succession.cpp new file mode 100644 index 0000000000..36268277f8 --- /dev/null +++ b/tests/libslic3r/test_filament_id_succession.cpp @@ -0,0 +1,61 @@ +#include + +#include "libslic3r/Preset.hpp" + +using namespace Slic3r; + +// Pure-function coverage of the succession chain walk (follow_filament_id_succession). +// The ledger-file loader (filament_id_succession_map) is deliberately untested here so +// the test carries no resources-dir dependency. +TEST_CASE("filament_id succession follows forwarding chains", "[Preset][filament_id]") { + SECTION("empty map returns empty") { + const std::map empty; + CHECK(follow_filament_id_succession("OFabc123", empty).empty()); + CHECK(follow_filament_id_succession("", empty).empty()); + } + + const std::map forwards = { + {"OFold001", "OFnew001"}, + {"OFchainA", "OFchainB"}, + {"OFchainB", "OFchainC"}, + {"OFchainC", "OFlive00"}, + }; + + SECTION("absent id returns empty") { + CHECK(follow_filament_id_succession("GFL99", forwards).empty()); + } + + SECTION("single hop resolves to the successor") { + CHECK(follow_filament_id_succession("OFold001", forwards) == "OFnew001"); + } + + SECTION("multi-hop chain resolves to the live end") { + CHECK(follow_filament_id_succession("OFchainA", forwards) == "OFlive00"); + CHECK(follow_filament_id_succession("OFchainB", forwards) == "OFlive00"); + CHECK(follow_filament_id_succession("OFchainC", forwards) == "OFlive00"); + } +} + +// Cycles are a ledger-validation error (script check 9) and never ship, but the client +// walk must still terminate on corrupt data: it stops at the last id reached before any +// id would repeat. +TEST_CASE("filament_id succession terminates on malformed cycles", "[Preset][filament_id]") { + SECTION("two-node cycle returns the last id before revisiting") { + const std::map cycle = {{"A", "B"}, {"B", "A"}}; + CHECK(follow_filament_id_succession("A", cycle) == "B"); + CHECK(follow_filament_id_succession("B", cycle) == "A"); + } + + SECTION("cycle entered through a tail stops before re-entering it") { + // T -> A -> B -> C -> A: stops at C, the last id reached before repeating A. + const std::map cycle = { + {"T", "A"}, {"A", "B"}, {"B", "C"}, {"C", "A"}}; + CHECK(follow_filament_id_succession("T", cycle) == "C"); + CHECK(follow_filament_id_succession("A", cycle) == "C"); + } + + SECTION("self-loop returns the id itself") { + const std::map loop = {{"A", "A"}}; + CHECK(follow_filament_id_succession("A", loop) == "A"); + } +} From acd5dd07947f4f9f47c99ebacd877afae860a14d Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 16:41:41 +0800 Subject: [PATCH 016/164] v3.1: OrcaFilamentLibrary re-mint under the product-triple rule Phase v3.1 of filament_id_plan_v3.md: every OFL-declared filament_id re-derives from its product triple; the succession ledger absorbs the old ids. Config-equivalence verified: flattened effective configs differ ONLY in filament_id (284 consistent old->new changes tree-wide, including every vendor preset that rides an OFL family), zero config/compatible_printers/ setting_id drift. Structural pre-step (id-value-neutral, verified): OFL generic family ids move from the shared fdm_filament_* template bases onto the product-named "Generic X @System" presets, so the v3 triple's family component is the product name, not an internal file name (12 relocations; 2 dead duplicate declarations on fdm_filament_pa/pet pruned; every consumer chain itemized first - the +12 instantiated_with_id entries are this deliberate pattern, matching the 11 generics that already declared on @System). fdm_filament_pc keeps its declaration this phase: 7 Prusa presets (Prusa Generic PC, Prusament PC Blend) inherit it directly and re-home in the v3.2 Prusa worksheet; its transitional id is documented in the plan. Re-mint: 301 declarations re-derived (e.g. Generic PLA OGFL99 -> OFDSrzZ8 = mint("filament_product/Generic/PLA/Generic PLA")). Snapshot: 1477 ids (+300/-292). Ledger: - 230 shipped ids retired with mode-rule successors (OGF* library ids, OFLSBS99, DREMC/FILAR/AliZ/eSUN/... legacy strings). DREMC010 had been shared by a PPA-CF and a TPU family - a data bug this split resolves; its successor follows its only shipped claim (DREMC PPA-CF). - 25 GF-shaped ids OFL had copied from the Bambu catalog (GFOT00x Overture, GFSEP0xx) are RELEASED to the BBL island space with hints at the re-minted families - never retired, so a future legitimate BBL catalog addition is never blocked; plus an explicit GFOT001 -> OFxA1p01 hint (Overture PLA Pro, still live in BBL). - 37 never-shipped v1 branch mints dropped from lineage (--forget-never-shipped; they exist in no release, no forwarding needed). - OGFC99/OGFG99/OGFL96/OGFN99/OGFSNL08 stay live (still declared by vendor bundles); they retire in v3.2 when those declarers re-mint. Gates: 106 unit tests OK; --check exit 0; orca_extra_profile_check exit 0; validator -l 2 / -f tree-wide / -r BBL+Qidi exit 0; Moonraker OFL map check resolves all 29 aliases against the re-minted presets; flatten equivalence pre/post as above; snapshot regen idempotent. --- filament_id_plan_v3.md | 6 +- .../filament/AliZ/AliZ PA-CF @base.json | 2 +- .../filament/AliZ/AliZ PETG @base.json | 2 +- .../filament/AliZ/AliZ PETG-CF @base.json | 2 +- .../filament/AliZ/AliZ PETG-Metal @base.json | 2 +- .../filament/AliZ/AliZ PLA @base.json | 2 +- .../filament/Bambu/Bambu ABS @base.json | 2 +- .../filament/Bambu/Bambu ABS-GF @base.json | 2 +- .../filament/Bambu/Bambu ASA @base.json | 2 +- .../filament/Bambu/Bambu ASA-Aero @base.json | 2 +- .../filament/Bambu/Bambu ASA-CF @base.json | 2 +- .../filament/Bambu/Bambu PA-CF @base.json | 2 +- .../filament/Bambu/Bambu PA6-CF @base.json | 2 +- .../filament/Bambu/Bambu PA6-GF @base.json | 2 +- .../filament/Bambu/Bambu PAHT-CF @base.json | 2 +- .../filament/Bambu/Bambu PC @base.json | 2 +- .../filament/Bambu/Bambu PC FR @base.json | 2 +- .../filament/Bambu/Bambu PET-CF @base.json | 2 +- .../Bambu/Bambu PETG Basic @base.json | 2 +- .../filament/Bambu/Bambu PETG HF @base.json | 2 +- .../Bambu/Bambu PETG Translucent @base.json | 2 +- .../filament/Bambu/Bambu PETG-CF @base.json | 2 +- .../filament/Bambu/Bambu PLA Aero @base.json | 2 +- .../filament/Bambu/Bambu PLA Basic @base.json | 2 +- .../Bambu/Bambu PLA Dynamic @base.json | 2 +- .../Bambu/Bambu PLA Galaxy @base.json | 2 +- .../filament/Bambu/Bambu PLA Glow @base.json | 2 +- .../Bambu/Bambu PLA Impact @base.json | 2 +- .../Bambu/Bambu PLA Marble @base.json | 2 +- .../filament/Bambu/Bambu PLA Matte @base.json | 2 +- .../filament/Bambu/Bambu PLA Metal @base.json | 2 +- .../filament/Bambu/Bambu PLA Silk @base.json | 2 +- .../filament/Bambu/Bambu PLA Silk+ @base.json | 2 +- .../Bambu/Bambu PLA Sparkle @base.json | 2 +- .../filament/Bambu/Bambu PLA Tough @base.json | 2 +- .../filament/Bambu/Bambu PLA Wood @base.json | 2 +- .../filament/Bambu/Bambu PLA-CF @base.json | 2 +- .../filament/Bambu/Bambu PPA-CF @base.json | 2 +- .../filament/Bambu/Bambu PPS-CF @base.json | 2 +- .../filament/Bambu/Bambu PVA @base.json | 2 +- .../Bambu/Bambu Support For PA PET @base.json | 2 +- .../Bambu/Bambu Support For PLA @base.json | 2 +- .../Bambu Support For PLA-PETG @base.json | 2 +- .../filament/Bambu/Bambu Support G @base.json | 2 +- .../filament/Bambu/Bambu Support W @base.json | 2 +- .../Bambu/Bambu Support for ABS @base.json | 2 +- .../filament/Bambu/Bambu TPU 95A @base.json | 2 +- .../Bambu/Bambu TPU 95A HF @base.json | 2 +- .../filament/COEX/COEX ABS @base.json | 2 +- .../filament/COEX/COEX ABS PRIME @base.json | 2 +- .../filament/COEX/COEX ASA PRIME @base.json | 2 +- .../COEX/COEX NYLEX PA6-CF @base.json | 2 +- .../COEX/COEX NYLEX UNFILLED @base.json | 2 +- .../filament/COEX/COEX PCTG PRIME @base.json | 2 +- .../filament/COEX/COEX PETG @base.json | 2 +- .../filament/COEX/COEX PLA @base.json | 2 +- .../filament/COEX/COEX PLA PRIME @base.json | 2 +- .../filament/COEX/COEX PLA+Silk @base.json | 2 +- .../filament/COEX/COEX TPE 30D @base.json | 2 +- .../filament/COEX/COEX TPE 40D @base.json | 2 +- .../filament/COEX/COEX TPE 60D @base.json | 2 +- .../filament/COEX/COEX TPU 60A @base.json | 2 +- .../filament/DREMC/DREMC ABS @base.json | 2 +- .../filament/DREMC/DREMC ABS+ @base.json | 2 +- .../filament/DREMC/DREMC ABS-GF @base.json | 2 +- .../filament/DREMC/DREMC ASA @base.json | 2 +- .../filament/DREMC/DREMC ASA CF @base.json | 2 +- .../filament/DREMC/DREMC ASA GF @base.json | 2 +- .../filament/DREMC/DREMC PA12-CF @base.json | 2 +- .../filament/DREMC/DREMC PA6-CF @base.json | 2 +- .../filament/DREMC/DREMC PET-CF @base.json | 2 +- .../filament/DREMC/DREMC PETG @base.json | 2 +- .../filament/DREMC/DREMC PLA HS @base.json | 2 +- .../filament/DREMC/DREMC PLA+ @base.json | 2 +- .../filament/DREMC/DREMC PPA-CF @base.json | 2 +- .../filament/DREMC/DREMC TPU 95A @base.json | 2 +- .../filament/Elas/Elas ASA @base.json | 2 +- .../filament/Elas/Elas PETG Basic @base.json | 2 +- .../filament/Elas/Elas PLA Basic @base.json | 2 +- .../filament/Elas/Elas PLA Pro @base.json | 2 +- .../filament/Elegoo/Elegoo ABS @base.json | 2 +- .../filament/Elegoo/Elegoo ASA @base.json | 2 +- .../filament/Elegoo/Elegoo ASA-CF @base.json | 2 +- .../filament/Elegoo/Elegoo PAHT @base.json | 2 +- .../filament/Elegoo/Elegoo PC @base.json | 2 +- .../filament/Elegoo/Elegoo PC-FR @base.json | 2 +- .../filament/Elegoo/Elegoo PET-CF @base.json | 2 +- .../filament/Elegoo/Elegoo PETG @base.json | 2 +- .../filament/Elegoo/Elegoo PETG HF @base.json | 2 +- .../Elegoo/Elegoo PETG PRO @base.json | 2 +- .../Elegoo/Elegoo PETG Translucent @base.json | 2 +- .../filament/Elegoo/Elegoo PETG-CF @base.json | 2 +- .../filament/Elegoo/Elegoo PETG-GF @base.json | 2 +- .../filament/Elegoo/Elegoo PLA @base.json | 2 +- .../Elegoo/Elegoo PLA Basic @base.json | 2 +- .../Elegoo/Elegoo PLA Galaxy @base.json | 2 +- .../Elegoo/Elegoo PLA Glow @base.json | 2 +- .../Elegoo/Elegoo PLA Marble @base.json | 2 +- .../Elegoo/Elegoo PLA Matte @base.json | 2 +- .../filament/Elegoo/Elegoo PLA PRO @base.json | 2 +- .../Elegoo/Elegoo PLA Silk @base.json | 2 +- .../Elegoo/Elegoo PLA Sparkle @base.json | 2 +- .../Elegoo/Elegoo PLA Translucent2 @base.json | 2 +- .../Elegoo/Elegoo PLA Wood @base.json | 2 +- .../filament/Elegoo/Elegoo PLA+ @base.json | 2 +- .../filament/Elegoo/Elegoo PLA-CF @base.json | 2 +- .../Elegoo/Elegoo Rapid PETG @base.json | 2 +- .../Elegoo/Elegoo Rapid PLA+ @base.json | 2 +- .../Elegoo/Elegoo Rapid TPU 95A @base.json | 2 +- .../filament/Elegoo/Elegoo TPU @base.json | 2 +- .../Eolas Prints ABS @System.json | 2 +- .../Eolas Prints ASA @System.json | 2 +- .../Eolas Prints PETG @System.json | 2 +- .../Eolas Prints PETG Transition @System.json | 2 +- ...olas Prints PETG UV Resistant @System.json | 2 +- ...olas Prints PLA Antibacterial @System.json | 2 +- .../Eolas Prints PLA High Speed @System.json | 2 +- .../Eolas Prints PLA INGEO 850 @System.json | 2 +- .../Eolas Prints PLA INGEO 870 @System.json | 2 +- .../Eolas Prints PLA Matte @System.json | 2 +- .../Eolas Prints PLA Neon @System.json | 2 +- .../Eolas Prints PLA Premium @System.json | 2 +- .../Eolas Prints PLA Silk @System.json | 2 +- .../Eolas Prints PLA Transition @System.json | 2 +- .../Eolas Prints TPU Flex 93A @System.json | 2 +- .../Eolas Prints TPU Flex D53 @System.json | 2 +- ...nts TPU Flex D60 UV Resistant @System.json | 2 +- .../Eolas Prints TPU Transition @System.json | 2 +- .../filament/FDplast/FDplast ABS @base.json | 2 +- .../filament/FDplast/FDplast HIPS @base.json | 2 +- .../filament/FDplast/FDplast PETG @base.json | 2 +- .../filament/FDplast/FDplast PLA @base.json | 2 +- .../filament/FDplast/FDplast SBS @base.json | 2 +- .../filament/FDplast/FDplast TPU @base.json | 2 +- .../filament/FILL3D/FILL3D PA @base.json | 2 +- .../filament/FILL3D/FILL3D PETG @base.json | 2 +- .../filament/FILL3D/FILL3D PETG CF @base.json | 2 +- .../FILL3D/FILL3D PLA Basic @base.json | 2 +- .../FILL3D/FILL3D PLA Turbo @base.json | 2 +- .../filament/FILL3D/FILL3D PP @base.json | 2 +- .../filament/FILL3D/FILL3D PPCF @base.json | 2 +- .../filament/FilAr/FilAr PETG @base.json | 2 +- .../FilAr/FilAr PETG Amarillo Lima.json | 2 +- .../FilAr/FilAr PETG Amarillo Radiante.json | 2 +- .../FilAr/FilAr PETG Azul Boreal.json | 2 +- .../FilAr/FilAr PETG Azul Francia.json | 2 +- .../FilAr/FilAr PETG Azul Imperial.json | 2 +- .../FilAr/FilAr PETG Blanco Antartida.json | 2 +- .../filament/FilAr/FilAr PETG Cian.json | 2 +- .../filament/FilAr/FilAr PETG Coral.json | 2 +- .../filament/FilAr/FilAr PETG Cristal.json | 2 +- .../FilAr/FilAr PETG Gris Ceniza.json | 2 +- .../filament/FilAr/FilAr PETG Gris Plata.json | 2 +- .../filament/FilAr/FilAr PETG Magenta.json | 2 +- .../FilAr/FilAr PETG Negro Azabache.json | 2 +- .../FilAr/FilAr PETG Rojo Carmesi.json | 2 +- .../filament/FilAr/FilAr PLA @base.json | 2 +- .../FilAr/FilAr PLA Amarillo Lirio.json | 2 +- .../FilAr/FilAr PLA Azul Francia.json | 2 +- .../FilAr/FilAr PLA Blanco Antartida.json | 2 +- .../FilAr/FilAr PLA Blanco Calido.json | 2 +- .../filament/FilAr/FilAr PLA Bronce.json | 2 +- .../FilAr/FilAr PLA Cafe con Leche.json | 2 +- .../filament/FilAr/FilAr PLA Carpincho.json | 2 +- .../FilAr/FilAr PLA Celeste Cielo.json | 2 +- .../filament/FilAr/FilAr PLA Cobre.json | 2 +- .../filament/FilAr/FilAr PLA Dorado.json | 2 +- .../filament/FilAr/FilAr PLA Gris Ceniza.json | 2 +- .../FilAr/FilAr PLA Gris Pizarra.json | 2 +- .../filament/FilAr/FilAr PLA Gris Plata.json | 2 +- .../filament/FilAr/FilAr PLA Manteca.json | 2 +- .../FilAr/FilAr PLA Marron Oxido.json | 2 +- .../FilAr/FilAr PLA Naranja Tigre.json | 2 +- .../FilAr/FilAr PLA Negro Azabache.json | 2 +- .../filament/FilAr/FilAr PLA Oro.json | 2 +- .../filament/FilAr/FilAr PLA Piel.json | 2 +- .../FilAr/FilAr PLA Rojo de Carreras.json | 2 +- .../FilAr/FilAr PLA Rosa Amaranto.json | 2 +- .../FilAr/FilAr PLA Rosa Flamenco.json | 2 +- .../filament/FilAr/FilAr PLA Tabaco.json | 2 +- .../filament/FilAr/FilAr PLA Titanio.json | 2 +- .../filament/FilAr/FilAr PLA Verde FilAr.json | 2 +- .../FilAr/FilAr PLA Verde Manzana.json | 2 +- .../filament/FilAr/FilAr PLA Verde Oliva.json | 2 +- .../filament/FilAr/FilAr PLA Verde Pixel.json | 2 +- .../FilAr/FilAr PLA Violeta Jacaranda.json | 2 +- .../filament/FilAr/FilAr PLA-mate @base.json | 2 +- .../FilAr/FilAr PLA-mate Amarillo.json | 2 +- .../filament/FilAr/FilAr PLA-mate Azul.json | 2 +- .../filament/FilAr/FilAr PLA-mate Beige.json | 2 +- .../filament/FilAr/FilAr PLA-mate Blanco.json | 2 +- .../filament/FilAr/FilAr PLA-mate Bordo.json | 2 +- .../FilAr/FilAr PLA-mate Celeste Cielo.json | 2 +- .../FilAr/FilAr PLA-mate Chocolate.json | 2 +- .../filament/FilAr/FilAr PLA-mate Gris.json | 2 +- .../filament/FilAr/FilAr PLA-mate Marron.json | 2 +- .../FilAr/FilAr PLA-mate Naranja.json | 2 +- .../filament/FilAr/FilAr PLA-mate Negro.json | 2 +- .../filament/FilAr/FilAr PLA-mate Piel.json | 2 +- .../filament/FilAr/FilAr PLA-mate Rojo.json | 2 +- .../filament/FilAr/FilAr PLA-mate Rosa.json | 2 +- .../filament/FilAr/FilAr PLA-mate Uva.json | 2 +- .../filament/FilAr/FilAr PLA-mate Verde.json | 2 +- .../FilAr/FilAr PLA-mate Violeta.json | 2 +- .../FusRock/FusRock ABS-GF @base.json | 2 +- .../filament/Generic ABS @System.json | 2 +- .../filament/Generic ASA @System.json | 2 +- .../filament/Generic BVOH @System.json | 1 + .../filament/Generic CoPE @System.json | 1 + .../filament/Generic EVA @System.json | 1 + .../filament/Generic HIPS @System.json | 1 + .../filament/Generic PA @System.json | 2 +- .../filament/Generic PA-CF @System.json | 2 +- .../filament/Generic PC @System.json | 2 +- .../filament/Generic PCTG @System.json | 1 + .../filament/Generic PE @System.json | 1 + .../filament/Generic PE-CF @base.json | 2 +- .../filament/Generic PETG @System.json | 2 +- .../filament/Generic PETG HF @base.json | 2 +- .../filament/Generic PETG-CF @base.json | 2 +- .../filament/Generic PHA @System.json | 1 + .../filament/Generic PLA @System.json | 1 + .../Generic PLA High Speed @System.json | 2 +- .../filament/Generic PLA Matte @base.json | 2 +- .../filament/Generic PLA Silk @System.json | 1 + .../filament/Generic PLA-CF @System.json | 2 +- .../filament/Generic PP @System.json | 1 + .../filament/Generic PP-CF @base.json | 2 +- .../filament/Generic PP-GF @base.json | 2 +- .../filament/Generic PPA-CF @System.json | 1 + .../filament/Generic PPA-GF @System.json | 2 +- .../filament/Generic PVA @System.json | 2 +- .../filament/Generic SBS @System.json | 1 + .../filament/Generic TPU @System.json | 2 +- .../GreenGate3D/GreenGate3D PETG @base.json | 2 +- .../filament/NIT/NIT ABS @base.json | 2 +- .../filament/NIT/NIT PETG @base.json | 2 +- .../filament/NIT/NIT PLA @base.json | 2 +- .../Numakers/Numakers PLA+ @base.json | 2 +- .../Overture/Overture ABS Basic @base.json | 2 +- .../filament/Overture/Overture ASA @base.json | 2 +- .../Overture/Overture Air PLA @base.json | 2 +- .../Overture/Overture Easy PLA @base.json | 2 +- .../Overture/Overture Matte PLA @base.json | 2 +- .../filament/Overture/Overture PLA @base.json | 2 +- .../Overture/Overture PLA Pro @base.json | 2 +- .../Overture/Overture Rock PLA @base.json | 2 +- .../Overture/Overture Silk PLA @base.json | 2 +- .../Overture/Overture Super PLA+ @base.json | 2 +- .../filament/Overture/Overture TPU @base.json | 2 +- .../Polymaker/Fiberon PA12-CF @base.json | 2 +- .../Polymaker/Fiberon PA6-CF @base.json | 2 +- .../Polymaker/Fiberon PA6-GF @base.json | 2 +- .../Polymaker/Fiberon PA612-CF @base.json | 2 +- .../Polymaker/Fiberon PET-CF @base.json | 2 +- .../Polymaker/Fiberon PETG-ESD @base.json | 2 +- .../Polymaker/Fiberon PETG-rCF @base.json | 2 +- .../Polymaker/Panchroma CoPE @base.json | 2 +- .../Polymaker/Panchroma PLA @base.json | 2 +- .../Panchroma PLA Celestial @base.json | 2 +- .../Polymaker/Panchroma PLA Galaxy @base.json | 2 +- .../Polymaker/Panchroma PLA Glow @base.json | 2 +- .../Panchroma PLA Luminous @base.json | 2 +- .../Polymaker/Panchroma PLA Marble @base.json | 2 +- .../Polymaker/Panchroma PLA Matte @base.json | 2 +- .../Panchroma PLA Metallic @base.json | 2 +- .../Polymaker/Panchroma PLA Neon @base.json | 2 +- .../Polymaker/Panchroma PLA Satin @base.json | 2 +- .../Polymaker/Panchroma PLA Silk @base.json | 2 +- .../Panchroma PLA Starlight @base.json | 2 +- .../Panchroma PLA Temp Shift @base.json | 2 +- .../Panchroma PLA Translucent @base.json | 2 +- .../Panchroma PLA UV Shift @base.json | 2 +- .../Polymaker/PolyLite ABS @base.json | 2 +- .../Polymaker/PolyLite ASA @base.json | 2 +- .../Polymaker/PolyLite Dual PLA @base.json | 2 +- .../Polymaker/PolyLite PETG @base.json | 2 +- .../Polymaker/PolyLite PLA @System.json | 2 +- .../Polymaker/PolyLite PLA @base.json | 2 +- .../Polymaker/PolyLite PLA Pro @base.json | 2 +- .../Polymaker/PolyTerra Dual PLA @System.json | 2 +- .../Polymaker/PolyTerra PLA @base.json | 2 +- .../Polymaker/Polymaker HT-PLA @base.json | 2 +- .../Polymaker/Polymaker HT-PLA-GF @base.json | 2 +- .../SUNLU/SUNLU Marble PLA @base.json | 2 +- .../filament/SUNLU/SUNLU PETG @base.json | 2 +- .../filament/SUNLU/SUNLU PLA Matte @base.json | 2 +- .../filament/SUNLU/SUNLU PLA+ 2.0 @base.json | 2 +- .../filament/SUNLU/SUNLU PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Silk PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Wood PLA @base.json | 2 +- .../filament/Valment/Valment PLA @base.json | 2 +- .../Valment/Valment PLA Galaxy @base.json | 2 +- .../Valment/Valment PLA Silk @base.json | 2 +- .../Valment/Valment PLA-CF @base.json | 2 +- .../filament/base/fdm_filament_bvoh.json | 1 - .../filament/base/fdm_filament_cope.json | 1 - .../filament/base/fdm_filament_eva.json | 1 - .../filament/base/fdm_filament_hips.json | 1 - .../filament/base/fdm_filament_pa.json | 1 - .../filament/base/fdm_filament_pc.json | 2 +- .../filament/base/fdm_filament_pctg.json | 1 - .../filament/base/fdm_filament_pe.json | 1 - .../filament/base/fdm_filament_pet.json | 1 - .../filament/base/fdm_filament_pha.json | 1 - .../filament/base/fdm_filament_pla.json | 1 - .../filament/base/fdm_filament_pla_silk.json | 1 - .../filament/base/fdm_filament_pp.json | 1 - .../filament/base/fdm_filament_ppa.json | 1 - .../filament/base/fdm_filament_sbs.json | 1 - .../filament/eSUN/eSUN PETG @base.json | 2 +- .../filament/eSUN/eSUN PLA+ @base.json | 2 +- .../filament/eSUN/eSUN PLA-Basic @base.json | 2 +- .../filament/eSUN/eSUN PLA-Marble @base.json | 2 +- .../filament/eSUN/eSUN PLA-Matte @base.json | 2 +- .../filament/eSUN/eSUN ePLA-LW @System.json | 2 +- resources/profiles/retired_filament_ids.json | 1408 ++- scripts/filament_id_snapshot.json | 7716 +++++++---------- 318 files changed, 4636 insertions(+), 5098 deletions(-) diff --git a/filament_id_plan_v3.md b/filament_id_plan_v3.md index 5a4bdedb26..14b547600f 100644 --- a/filament_id_plan_v3.md +++ b/filament_id_plan_v3.md @@ -143,7 +143,11 @@ gains a succession entry pointing at its replacement; the 26 GF-shaped ids OFL d (measured at v3.0: only one of them, `GFOT001`, is also declared by BBL) are released to the BBL island space with hints at the re-minted families — two-island purity. Snapshot regenerated; full gate battery + fixture overlays (this phase touches preset-visibility -machinery only via ids, but the fixtures are cheap insurance). +machinery only via ids, but the fixtures are cheap insurance). Implementation notes +(v3.1, executed): OFL generic ids relocate from the fdm_filament_* template bases onto +the product-named "Generic X @System" presets first, so their triples carry the product +name; `fdm_filament_pc` keeps a (transitional) declaration because 7 Prusa presets +inherit it directly — the v3.2 Prusa worksheet re-homes them and deletes it. **v3.2 — vendor bundles, worksheet-per-vendor (v1 machinery).** Three sub-cases: (a) the **391 unshipped v1 `OF*` mints** re-derive under the triple key — no succession diff --git a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PA-CF @base.json index 29d9f1c39c..22fcfceefa 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PA-CF @base.json @@ -3,7 +3,7 @@ "name": "AliZ PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "AliZ003", + "filament_id": "OFd4zw5l", "instantiation": "false", "filament_type": [ "PA-CF" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG @base.json index 463a0d954e..1796d82a77 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG @base.json @@ -3,7 +3,7 @@ "name": "AliZ PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "AliZ001", + "filament_id": "OFocyw69", "instantiation": "false", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-CF @base.json index ad96c2621f..5c5a0113d5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "AliZ PETG-CF @base", "inherits": "AliZ PETG @base", "from": "system", - "filament_id": "AZ01-1", + "filament_id": "OFJOFnOZ", "instantiation": "false", "fan_cooling_layer_time": [ "30" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-Metal @base.json b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-Metal @base.json index f92cb73736..d6f9adc470 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-Metal @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PETG-Metal @base.json @@ -3,7 +3,7 @@ "name": "AliZ PETG-Metal @base", "inherits": "AliZ PETG @base", "from": "system", - "filament_id": "AZ01-2", + "filament_id": "OFOABq7t", "instantiation": "false", "fan_cooling_layer_time": [ "30" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PLA @base.json index 6323f62cca..8bb139bdbb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/AliZ/AliZ PLA @base.json @@ -3,7 +3,7 @@ "name": "AliZ PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "AliZ002", + "filament_id": "OFyxayW4", "instantiation": "false", "enable_pressure_advance": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json index 6628007eef..62c2f3bc84 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS @base.json @@ -3,7 +3,7 @@ "name": "Bambu ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OGFB00", + "filament_id": "OFhuaUQB", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json index a34c88e45d..5cdd145c56 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ABS-GF @base.json @@ -3,7 +3,7 @@ "name": "Bambu ABS-GF @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OGFB50", + "filament_id": "OFknl9Iz", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json index c06136e268..432f106879 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OGFB01", + "filament_id": "OFfBpSRI", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "eng_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json index 043335fe0d..8343f4f8cb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-Aero @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA-Aero @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OGFB02", + "filament_id": "OFXzQ4yL", "instantiation": "false", "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: ASA Aero Printing Guide.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json index 98d86450d2..66abe8195a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu ASA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA-CF @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OGFB51", + "filament_id": "OF0wBGNx", "instantiation": "false", "eng_plate_temp": [ "100" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json index f63213b0b1..00df3d58ef 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFN03", + "filament_id": "OFFNYwWR", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json index 21d5b6c18b..578e30294c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFN05", + "filament_id": "OFniMuTN", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json index cd54c4ac9b..c9eb830cad 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PA6-GF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA6-GF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFN08", + "filament_id": "OFNk8bxk", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json index 9bde2b612b..a028b7f7dc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PAHT-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFN04", + "filament_id": "OF2VFe4J", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json index 577ae892f4..5ce775f0d0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC @base.json @@ -3,7 +3,7 @@ "name": "Bambu PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OGFC00", + "filament_id": "OFKhMPeX", "instantiation": "false", "filament_vendor": [ "Bambu Lab" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json index 40527941a2..18c02b41a1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PC FR @base.json @@ -3,7 +3,7 @@ "name": "Bambu PC FR @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OGFC01", + "filament_id": "OFg57Nmc", "instantiation": "false", "filament_cost": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json index 5a4e910502..a14ea627ab 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFT01", + "filament_id": "OFHa48An", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json index 9117643990..9f30826efe 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG Basic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG00", + "filament_id": "OFFvzqcd", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json index 7a829f34dc..ef4a817974 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG HF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG02", + "filament_id": "OFovEIbw", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json index 69cfb1dab7..bbde9ee8a2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG Translucent @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG01", + "filament_id": "OFwPrlCM", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json index 8112a1d025..89fe7b3dde 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG50", + "filament_id": "OFTRZ8Y4", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json index 889822b02f..ed2b367f9c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Aero @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA11", + "filament_id": "OFBSW57R", "instantiation": "false", "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero).", "fan_min_speed": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json index 379db35b99..d5614af65f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA00", + "filament_id": "OFoiVqVM", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json index abd30f6606..7b1290817d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Dynamic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Dynamic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA13", + "filament_id": "OFDGigEI", "instantiation": "false", "filament_cost": [ "31.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json index b52fc99f23..3ecc707ddf 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA15", + "filament_id": "OFQ3e56w", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json index 9ab5d3b6ff..8395082e6d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA12", + "filament_id": "OFEkPBwx", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json index 11edaa9736..1ff6cb84cc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Impact @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Impact @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA03", + "filament_id": "OFTGHyNC", "instantiation": "false", "filament_cost": [ "25.4" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json index 0f427b2047..0faa115520 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA07", + "filament_id": "OF9OlTWH", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json index b1685a3aa1..ac7760f632 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA01", + "filament_id": "OFXIbw5D", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json index c24f1d8d9b..81a9c95c24 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA02", + "filament_id": "OFrKLeE3", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json index e4930ed9c3..f76daf5b77 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA05", + "filament_id": "OFEGNJD4", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json index c4e44ff4ac..93e6e81148 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Silk+ @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Silk+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA06", + "filament_id": "OFUanySo", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json index 62ae9c7d6b..152b762069 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Sparkle @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Sparkle @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA08", + "filament_id": "OFDxfPgH", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json index d257a2bc53..a5aa15e8c1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Tough @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Tough @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA09", + "filament_id": "OFaQMgRH", "instantiation": "false", "filament_cost": [ "28.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json index 3ebad53cd8..b9686af187 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Wood @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Wood @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA16", + "filament_id": "OFMjtqTC", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json index e5c0a31499..7bd37d40a4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFA50", + "filament_id": "OFEswT5W", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json index 43b897ca86..8519203173 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PPA-CF @base", "inherits": "fdm_filament_ppa", "from": "system", - "filament_id": "OGFN06", + "filament_id": "OF54B0S0", "instantiation": "false", "filament_vendor": [ "Bambu Lab" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json index d27c9164d1..b48f3b9300 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PPS-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PPS-CF @base", "inherits": "fdm_filament_pps", "from": "system", - "filament_id": "OGFT02", + "filament_id": "OF4RvVuU", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_max_speed": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json index 8b73770499..1c6e0f2201 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PVA @base.json @@ -3,7 +3,7 @@ "name": "Bambu PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OGFS04", + "filament_id": "OFzyIxba", "instantiation": "false", "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json index 2662d49840..7adbcb812d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PA PET @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PA/PET @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFS03", + "filament_id": "OFMTK0UC", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json index 68d2468a07..9511f5c0cd 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFS02", + "filament_id": "OFAnyRUI", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json index 49fdcb1e1b..10e57855ad 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PLA/PETG @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFS05", + "filament_id": "OFIfnzxC", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json index 5b7ce7f02b..35cc03e9b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support G @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support G @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFS01", + "filament_id": "OFQHiNJs", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json index 2e1f1429c1..a922afd83e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support W @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support W @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFS00", + "filament_id": "OFsHSVZc", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json index 3fe47727e1..31dfbba311 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support for ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OGFS06", + "filament_id": "OFf6mfQO", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_max_speed": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json index a79d6a575e..5b71c52f81 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OGFU01", + "filament_id": "OFVCkX5w", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json index 00bef8980a..95263eb4ef 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu TPU 95A HF @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 95A HF @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OGFU00", + "filament_id": "OFvKUnLh", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS @base.json index 201d230ad3..c234e34567 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS @base.json @@ -3,7 +3,7 @@ "name": "COEX ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "CXABSB01", + "filament_id": "OF99UMPq", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS PRIME @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS PRIME @base.json index 08c5edfc25..7e965bc256 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS PRIME @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ABS PRIME @base.json @@ -3,7 +3,7 @@ "name": "COEX ABS PRIME @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "CXABPB09", + "filament_id": "OFuWCQXN", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ASA PRIME @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ASA PRIME @base.json index b5c2b540be..1bc1230eae 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ASA PRIME @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX ASA PRIME @base.json @@ -3,7 +3,7 @@ "name": "COEX ASA PRIME @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "CXASAB04", + "filament_id": "OFtpXCCv", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX PA6-CF @base.json index 807e723f78..c023668f4a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX PA6-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "COEX NYLEX PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "CXPACB23", + "filament_id": "OF0NgY1y", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX UNFILLED @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX UNFILLED @base.json index 34c323d800..15de223500 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX UNFILLED @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX NYLEX UNFILLED @base.json @@ -3,7 +3,7 @@ "name": "COEX NYLEX UNFILLED @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "CXPAUB21", + "filament_id": "OFJs1ToM", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PCTG PRIME @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PCTG PRIME @base.json index acecaf1737..9fce322405 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PCTG PRIME @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PCTG PRIME @base.json @@ -3,7 +3,7 @@ "name": "COEX PCTG PRIME @base", "inherits": "fdm_filament_pctg", "from": "system", - "filament_id": "CXPCTB15", + "filament_id": "OFwu7IAG", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PETG @base.json index 09c882e777..9f22293450 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PETG @base.json @@ -3,7 +3,7 @@ "name": "COEX PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "CXPETB13", + "filament_id": "OFvTVZc3", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA @base.json index faabeaea75..a0b2f76888 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA @base.json @@ -3,7 +3,7 @@ "name": "COEX PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "CXPLAB02", + "filament_id": "OFhlCNqq", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA PRIME @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA PRIME @base.json index d2423972a7..a9a5e83c0b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA PRIME @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA PRIME @base.json @@ -3,7 +3,7 @@ "name": "COEX PLA PRIME @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "CXPLAB08", + "filament_id": "OFd2vX0G", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA+Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA+Silk @base.json index 40a9e1eb05..f06642c432 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA+Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX PLA+Silk @base.json @@ -3,7 +3,7 @@ "name": "COEX PLA+Silk @base", "inherits": "fdm_filament_pla_silk", "from": "system", - "filament_id": "CXPLSB03", + "filament_id": "OF0pzFLc", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 30D @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 30D @base.json index 4f1f540a5f..5c715dea33 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 30D @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 30D @base.json @@ -3,7 +3,7 @@ "name": "COEX TPE 30D @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "CX30DB20", + "filament_id": "OFVptRxp", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 40D @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 40D @base.json index 6130ef11b2..81d5d81f1c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 40D @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 40D @base.json @@ -3,7 +3,7 @@ "name": "COEX TPE 40D @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "CX40DB20", + "filament_id": "OFfnXFie", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 60D @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 60D @base.json index 0ab5886963..b2e0aab688 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 60D @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPE 60D @base.json @@ -3,7 +3,7 @@ "name": "COEX TPE 60D @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "CX60DB19", + "filament_id": "OFfr4XNO", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json index 00834bb4a5..7ec2102478 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json @@ -3,7 +3,7 @@ "name": "COEX TPU 60A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "CX60AB17", + "filament_id": "OFE0NFRh", "instantiation": "false", "filament_vendor": [ "COEX 3D" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @base.json index b4835fdeca..fbd2a32e8f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @base.json @@ -3,7 +3,7 @@ "name": "DREMC ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "DREMC003", + "filament_id": "OFzrUUxc", "instantiation": "false", "filament_cost": [ "24" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @base.json index f9b2cd2c40..6817351573 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @base.json @@ -3,7 +3,7 @@ "name": "DREMC ABS+ @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "DREMC004", + "filament_id": "OF99vXPs", "instantiation": "false", "filament_cost": [ "24" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS-GF @base.json index b5917c922e..046a015930 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS-GF @base.json @@ -3,7 +3,7 @@ "name": "DREMC ABS-GF @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "DREMC009", + "filament_id": "OFCidU7j", "instantiation": "false", "fan_cooling_layer_time": [ "12" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @base.json index 324e484437..5e5e96b148 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @base.json @@ -3,7 +3,7 @@ "name": "DREMC ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "DREMC005", + "filament_id": "OFLNgV3C", "instantiation": "false", "eng_plate_temp": [ "110" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @base.json index b15fa0f629..ef6c3bc7b5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @base.json @@ -3,7 +3,7 @@ "name": "DREMC ASA CF @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "DREMC012", + "filament_id": "OFdI4zMo", "instantiation": "false", "eng_plate_temp": [ "110" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @base.json index 11f4e56de4..b916335f2f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @base.json @@ -3,7 +3,7 @@ "name": "DREMC ASA GF @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "DREMC013", + "filament_id": "OF2xccEe", "instantiation": "false", "eng_plate_temp": [ "110" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @base.json index aee897f402..3482ecedf6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @base.json @@ -3,7 +3,7 @@ "name": "DREMC PA12-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "DREMC007", + "filament_id": "OFEhuUNq", "instantiation": "false", "fan_cooling_layer_time": [ "15" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA6-CF @base.json index 7d693fc142..fe5ef518a1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA6-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "DREMC PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "DREMC006", + "filament_id": "OFsoykbm", "instantiation": "false", "fan_cooling_layer_time": [ "15" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @base.json index cc568e5ad6..9f7d27a1a0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @base.json @@ -3,7 +3,7 @@ "name": "DREMC PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "DREMC008", + "filament_id": "OFwJ0qu2", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @base.json index 840e0104f3..c67e185527 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @base.json @@ -3,7 +3,7 @@ "name": "DREMC PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "DREMC002", + "filament_id": "OFVBlUFH", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @base.json index cb2f3e166d..1d7f1b47af 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @base.json @@ -3,7 +3,7 @@ "name": "DREMC PLA+ HS @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "DREMC011", + "filament_id": "OFJHBEGD", "instantiation": "false", "filament_cost": [ "26" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @base.json index 698712e1dd..b989f6d59d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @base.json @@ -3,7 +3,7 @@ "name": "DREMC PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "DREMC001", + "filament_id": "OFSwbBWS", "instantiation": "false", "filament_cost": [ "26" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PPA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PPA-CF @base.json index ec5cecd565..6a696177e7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PPA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PPA-CF @base.json @@ -3,7 +3,7 @@ "name": "DREMC PPA-CF @base", "inherits": "fdm_filament_ppa", "from": "system", - "filament_id": "DREMC010", + "filament_id": "OFiWaoqD", "instantiation": "false", "filament_vendor": [ "DREMC" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @base.json index ba17ff46a8..63d4669b47 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @base.json @@ -3,7 +3,7 @@ "name": "DREMC TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "DREMC010", + "filament_id": "OFYd5uS3", "instantiation": "false", "filament_cost": [ "40" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json index 961b8aa903..027af22dce 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json @@ -3,7 +3,7 @@ "name": "Elas ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OFT3TqB6", + "filament_id": "OFCoRobU", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "activate_air_filtration": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json index 145e0472ae..378a0ea241 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json @@ -3,7 +3,7 @@ "name": "Elas PETG Basic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFw4OHWE", + "filament_id": "OFXTPuqV", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "complete_print_exhaust_fan_speed": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json index 64e0f025b8..f20c4cc388 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "Elas PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFbgt3u3", + "filament_id": "OFMuXBmO", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json index faba40142f..ec36457c48 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "Elas PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFrgQ1Ns", + "filament_id": "OFaYz8iE", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ABS @base.json index af0dad8787..539b56876e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ABS @base.json @@ -3,7 +3,7 @@ "name": "Elegoo ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OEABSB00", + "filament_id": "OFxOHhZw", "instantiation": "false", "eng_plate_temp": [ "90" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA @base.json index da502cf7b6..64875346e3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA @base.json @@ -3,7 +3,7 @@ "name": "Elegoo ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OEASAB00", + "filament_id": "OFobDOW5", "instantiation": "false", "eng_plate_temp": [ "90" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json index ff15b78c5d..155d6f8290 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo ASA-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo ASA-CF @base", "inherits": "Elegoo ASA @base", "from": "system", - "filament_id": "OFpwg2Qh", + "filament_id": "OFryjl35", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json index dd444cd846..d85796e7b1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PAHT @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OEPAHTB0", + "filament_id": "OF0h7ERL", "instantiation": "false", "activate_air_filtration": [ "1" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC @base.json index b7a5a62eda..ca5be19aa7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OEPCB00", + "filament_id": "OFUyDDNv", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json index 1f6564cbf1..91034fda41 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PC-FR @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PC-FR @base", "inherits": "Elegoo PC @base", "from": "system", - "filament_id": "OF79FFkO", + "filament_id": "OFlsTpJG", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json index 9e669f1e14..c1b9e78897 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PET-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFJIImD5", + "filament_id": "OFV5tNw6", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json index d6cd360eba..2f695a48b2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OEPETGB0", + "filament_id": "OFLcd093", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json index 2e3e74ef22..9645c4572f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG HF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG HF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFzrWlH5", + "filament_id": "OFlP3KWq", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json index 4b63edb4ed..ec604d722c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG PRO @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG PRO @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OF102WKM", + "filament_id": "OFOsHDnB", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json index 10b46e8f76..2d7d0f9777 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG Translucent @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG Translucent @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFenGPBR", + "filament_id": "OF6Ll8lK", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json index 20897108cd..60a643b2a3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFIGHU7W", + "filament_id": "OFuUuIhR", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json index 1b62b3aeaa..3ff4b96375 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG-GF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG-GF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFMQJToc", + "filament_id": "OFmveLWz", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json index 6b4622c0ed..45456ab6d8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OEPLAB00", + "filament_id": "OFvgE0Zh", "instantiation": "false", "fan_cooling_layer_time": [ "80" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json index d361721096..93c52a3382 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Basic @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Basic @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFICPchn", + "filament_id": "OFm06H6V", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json index a36b51384a..a25fcf8daa 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Galaxy @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Galaxy @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OF0M6QAQ", + "filament_id": "OFU1zPxE", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json index b839aca5dc..a07012d83b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Glow @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Glow @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFutwD6f", + "filament_id": "OFjPXrXO", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json index 7fc24ca532..b8990a7c1b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Marble @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Marble @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OF4fgpse", + "filament_id": "OFfuhviw", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json index 07c0dcf1ef..0394308e99 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Matte @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Matte @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFQkWxJy", + "filament_id": "OFsB2lxm", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json index 368f6b89d9..731f5c5ca4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA PRO @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA PRO @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFsKqcQW", + "filament_id": "OF1hznGB", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json index a19d767778..e708794eea 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Silk @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Silk @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFs6lLH7", + "filament_id": "OFXz7Mwx", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json index cdf18ad328..cc292ac240 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Sparkle @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Sparkle @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OF8HQmJD", + "filament_id": "OFhcYzR8", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json index 00d0e20932..c0e2e23dfe 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Translucent2 @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Translucent2 @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OF9qvJxV", + "filament_id": "OFn1QaY3", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json index 934992440e..4e3362a5d3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Wood @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFQhLoxN", + "filament_id": "OFWYtgCa", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json index 23ae2c1ddb..f90355d85c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA+ @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA+ @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFDNiRTx", + "filament_id": "OFBUIlZ7", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json index 3115358207..4f4979d95f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA-CF @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFqh1Ngp", + "filament_id": "OFln72PT", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json index afdb0eda7a..e328cf0a75 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PETG @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid PETG @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFVLuVmD", + "filament_id": "OFLXvuMr", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json index 21c1b99c63..06fd489c41 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid PLA+ @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid PLA+ @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFD5e0sH", + "filament_id": "OFkhhUS0", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json index 299f0cee8d..58cec037c3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid TPU 95A @base", "inherits": "Elegoo TPU @base", "from": "system", - "filament_id": "OFmeQjRP", + "filament_id": "OF30Ftju", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json index 28b8c921a6..e2fe95548a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json @@ -3,7 +3,7 @@ "name": "Elegoo TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OETPUB00", + "filament_id": "OFmhJs5V", "instantiation": "false", "filament_density": [ "1.21" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json index 6d5dd368bf..09fe0e6298 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP017", + "filament_id": "OFXCBZTA", "setting_id": "R1lkPc60BdFq6i2Z", "name": "Eolas Prints ABS @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json index 8446ca6746..263752abf1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP018", + "filament_id": "OFlSNkhc", "setting_id": "JFXFsEzqXxNqxnsL", "name": "Eolas Prints ASA @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json index 104dd1e567..9f1c691c30 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP010", + "filament_id": "OFhWhL1i", "setting_id": "u9fzEmHRAACOHT6J", "name": "Eolas Prints PETG @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json index 8e1aa05628..47245f3f54 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP012", + "filament_id": "OFRiFnfQ", "setting_id": "BY3z4yKW9PQZwgto", "name": "Eolas Prints PETG Transition @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json index 8c4c299849..749b37cb54 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP011", + "filament_id": "OFx8Lmsd", "setting_id": "eexjO9xiesNROPCK", "name": "Eolas Prints PETG UV Resistant @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json index 9ce7087dd2..a9cbc62ed2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP008", + "filament_id": "OFkzr35f", "setting_id": "LAihILsSxo3djWjq", "name": "Eolas Prints PLA Antibacterial @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json index 2f7d92c799..7488530282 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP005", + "filament_id": "OFvzvwCu", "setting_id": "5g69jS4PRY0PbXvI", "name": "Eolas Prints PLA High Speed @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json index 7200a7d631..c4c66400e4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP006", + "filament_id": "OFH2nN08", "setting_id": "jdjLUTsIovrt3UAF", "name": "Eolas Prints PLA INGEO 850 @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json index 4df9130980..f8ae8e662c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP007", + "filament_id": "OFPc4zVY", "setting_id": "AafBj7XbFWaNhKHu", "name": "Eolas Prints PLA INGEO 870 @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json index 4b14da901c..9489d9f0f7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP002", + "filament_id": "OFf5awy4", "setting_id": "7LiJHuwirgABvbUa", "name": "Eolas Prints PLA Matte @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json index b40ce2310b..4486eac1f3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP004", + "filament_id": "OFrFBEfd", "setting_id": "sKgUBhF3VvETDkwg", "name": "Eolas Prints PLA Neon @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json index b2455b02e3..03c332daa0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP001", + "filament_id": "OFtudokz", "setting_id": "O2Ur7FIG2YlVEyZp", "name": "Eolas Prints PLA Premium @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json index 843cf72fc5..d80cb44978 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP003", + "filament_id": "OFbP8zEO", "setting_id": "WN0GdqBsjhvnyDmG", "name": "Eolas Prints PLA Silk @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json index 90e0b8d2f4..22bb2af20a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP009", + "filament_id": "OFHfzQXo", "setting_id": "o3RoG3NGSBlyBkfZ", "name": "Eolas Prints PLA Transition @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json index c7b9c26180..c2252c5df8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP013", + "filament_id": "OFhfd722", "setting_id": "bQPvp6BCMzcG8FOi", "name": "Eolas Prints TPU Flex 93A @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json index c5a9a84ac3..f6b85ebd29 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP014", + "filament_id": "OFIegjmD", "setting_id": "XIFP4KMuMtXF5bjQ", "name": "Eolas Prints TPU Flex D53 @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json index 169d681f39..4fc33c0d64 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP015", + "filament_id": "OFvVy7yo", "setting_id": "rJmsm0zjvsk9Dy0G", "name": "Eolas Prints TPU D60 UV Resistant @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json index f5cd2eb40c..31dd33a87d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFSEP016", + "filament_id": "OFTOPcx0", "setting_id": "CM24KGoHLt0yLH93", "name": "Eolas Prints TPU Transition @System", "from": "system", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast ABS @base.json index be5c677c64..644ba0b1b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast ABS @base.json @@ -3,7 +3,7 @@ "name": "FDplast ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "FDPLAST01", + "filament_id": "OFjorDcx", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast HIPS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast HIPS @base.json index 41563b6208..60e86f17eb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast HIPS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast HIPS @base.json @@ -3,7 +3,7 @@ "name": "FDplast HIPS @base", "inherits": "fdm_filament_hips", "from": "system", - "filament_id": "FDPLAST02", + "filament_id": "OFmJAd3A", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PETG @base.json index a1cdfe34fc..9087e8afa7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PETG @base.json @@ -3,7 +3,7 @@ "name": "FDplast PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "FDPLAST03", + "filament_id": "OFfJSCzm", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PLA @base.json index c2ce9ccd38..e98c3d22fb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast PLA @base.json @@ -3,7 +3,7 @@ "name": "FDplast PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "FDPLAST04", + "filament_id": "OFtr8eZw", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast SBS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast SBS @base.json index e396fee0fb..1ae33c2990 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast SBS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast SBS @base.json @@ -3,7 +3,7 @@ "name": "FDplast SBS @base", "inherits": "fdm_filament_sbs", "from": "system", - "filament_id": "FDPLAST05", + "filament_id": "OFtRn8X8", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast TPU @base.json index 4db983cd87..bf288f545b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast TPU @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FDplast/FDplast TPU @base.json @@ -3,7 +3,7 @@ "name": "FDplast TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "FDPLAST06", + "filament_id": "OFfmZrI3", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PA @base.json index 64800fce25..bb8f8905e3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PA @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PA @base", "from": "system", - "filament_id": "FILL3D006", + "filament_id": "OFJNeELv", "instantiation": "false", "inherits": "fdm_filament_pa", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG @base.json index c310be8cb2..f0a0e32f26 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PETG @base", "from": "system", - "filament_id": "FILL3D003", + "filament_id": "OFQbjX3s", "instantiation": "false", "inherits": "fdm_filament_pet", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG CF @base.json index 38214eec2c..0d1dc4a737 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PETG CF @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PETG CF @base", "from": "system", - "filament_id": "FILL3D007", + "filament_id": "OFOiJfLM", "instantiation": "false", "inherits": "fdm_filament_pet", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Basic @base.json index 8f2ee4ddf8..13d29eaaa8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Basic @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PLA Basic @base", "from": "system", - "filament_id": "FILL3D002", + "filament_id": "OFDpW3J8", "instantiation": "false", "inherits": "fdm_filament_pla", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Turbo @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Turbo @base.json index f5ec5f906a..38be0d7078 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Turbo @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PLA Turbo @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PLA Turbo @base", "from": "system", - "filament_id": "FILL3D001", + "filament_id": "OFoSknDB", "instantiation": "false", "inherits": "fdm_filament_pla", "adaptive_pressure_advance": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PP @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PP @base.json index 9e74676e50..708e4c50ec 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PP @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PP @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PP @base", "from": "system", - "filament_id": "FILL3D004", + "filament_id": "OFPWPlSC", "instantiation": "false", "inherits": "fdm_filament_pp", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PPCF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PPCF @base.json index 813eb8faf2..6d6aaf9e34 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PPCF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FILL3D/FILL3D PPCF @base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "FILL3D PPCF @base", "from": "system", - "filament_id": "FILL3D005", + "filament_id": "OFg8hMzT", "instantiation": "false", "inherits": "fdm_filament_pp", "filament_vendor": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG @base.json index 5195e151e3..340dc5da23 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG @base.json @@ -3,7 +3,7 @@ "name": "FilAr PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "FILARB03", + "filament_id": "OF5rnhjh", "instantiation": "false", "filament_type": [ "PETG" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Lima.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Lima.json index f63b93f11f..b1284f1d3d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Lima.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Lima.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "QuJY74Af8ssl9uuB", - "filament_id": "FILAR0047", + "filament_id": "OFt6e0US", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Radiante.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Radiante.json index 75b1bda3c7..00e5af59a1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Radiante.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Amarillo Radiante.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "aFO2PDBIQqvNlH9p", - "filament_id": "FILAR0048", + "filament_id": "OF0Vtzaw", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Boreal.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Boreal.json index ccb0abfbfe..cbed2c3aa7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Boreal.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Boreal.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "JQsOaH7Zcs0cLLPY", - "filament_id": "FILAR0049", + "filament_id": "OFNU9YIW", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Francia.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Francia.json index 135bea1c45..f2d8c16a43 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Francia.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Francia.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "O24dTvHOzlbikvmq", - "filament_id": "FILAR0050", + "filament_id": "OF44VYzK", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Imperial.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Imperial.json index af4921a5a8..8c917d750a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Imperial.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Azul Imperial.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "JAUmcvfO2lnmxGj5", - "filament_id": "FILAR0051", + "filament_id": "OF2Z1nT5", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Blanco Antartida.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Blanco Antartida.json index 19ece09a31..c2bd7f3368 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Blanco Antartida.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Blanco Antartida.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "dd4fL2ztjz4UiTaG", - "filament_id": "FILAR0052", + "filament_id": "OFsXQXbs", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cian.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cian.json index cc9e4d7422..ac1d1be6fe 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cian.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cian.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "kQFbBS3nxU7M2yPa", - "filament_id": "FILAR0053", + "filament_id": "OFnejEt4", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Coral.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Coral.json index 779c773a3e..9b3e380b57 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Coral.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Coral.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "fspbgXmAOWjFBQqh", - "filament_id": "FILAR0054", + "filament_id": "OFysxCep", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cristal.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cristal.json index 00b2b360f5..1e7c947bea 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cristal.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Cristal.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "MnA2FnHdIuViwo41", - "filament_id": "FILAR0055", + "filament_id": "OFJQDUk3", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Ceniza.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Ceniza.json index 194848d1bb..c20eb5fcad 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Ceniza.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Ceniza.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "oYjDczRs4U1JdteC", - "filament_id": "FILAR0056", + "filament_id": "OFybzvQN", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Plata.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Plata.json index bfba887890..93335c7951 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Plata.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Gris Plata.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "eCJ5aFcQ00m97U35", - "filament_id": "FILAR0057", + "filament_id": "OFgpLTMR", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Magenta.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Magenta.json index a7bb2ee141..5a8ac777f5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Magenta.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Magenta.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "CEOhwBE63SWwuh6P", - "filament_id": "FILAR0058", + "filament_id": "OFurdQxc", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Negro Azabache.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Negro Azabache.json index 6e51c8b275..5cba6c4a02 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Negro Azabache.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Negro Azabache.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "OPZin7y48ZEeiH8D", - "filament_id": "FILAR0059", + "filament_id": "OFq8gfS4", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Rojo Carmesi.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Rojo Carmesi.json index dc573cba91..3ed33ea0f9 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Rojo Carmesi.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PETG Rojo Carmesi.json @@ -4,7 +4,7 @@ "inherits": "FilAr PETG @base", "from": "system", "setting_id": "ok1h38XzyQXPBIMM", - "filament_id": "FILAR0060", + "filament_id": "OFPbyOSk", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA @base.json index 04426a96ca..c5ed35c1f1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA @base.json @@ -3,7 +3,7 @@ "name": "FilAr PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "FILARB01", + "filament_id": "OF4KsW72", "instantiation": "false", "filament_type": [ "PLA" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Amarillo Lirio.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Amarillo Lirio.json index 6ba4cbfb87..1d6c41003b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Amarillo Lirio.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Amarillo Lirio.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "sZEY2QrlLsDkgZin", - "filament_id": "FILAR0022", + "filament_id": "OF8aFWfQ", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Azul Francia.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Azul Francia.json index ffc1c97a5a..a2f84470c4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Azul Francia.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Azul Francia.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "kOF3UfqKVqWKFwiH", - "filament_id": "FILAR0026", + "filament_id": "OFnYVFk2", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Antartida.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Antartida.json index a5bfa7d2d2..e9d68452dc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Antartida.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Antartida.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "9KxtnS1WoUAgH323", - "filament_id": "FILAR0017", + "filament_id": "OFHAccHz", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Calido.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Calido.json index 2f03fc3ce8..1166928647 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Calido.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Blanco Calido.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "pAToQatK3PVTMHrW", - "filament_id": "FILAR0018", + "filament_id": "OFKTSiYF", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Bronce.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Bronce.json index 58eafa2f7c..599c64038c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Bronce.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Bronce.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "bJuNDmVGIF0TXvkk", - "filament_id": "FILAR0001", + "filament_id": "OFWTRJ1K", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cafe con Leche.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cafe con Leche.json index 3e98bc7ebf..b70feb22d4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cafe con Leche.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cafe con Leche.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "vlPu3T66cQhIr5nl", - "filament_id": "FILAR0006", + "filament_id": "OFWwF7K7", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Carpincho.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Carpincho.json index 276d339eae..bdb948112a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Carpincho.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Carpincho.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "dNsCH2BVjuq3jrN7", - "filament_id": "FILAR0009", + "filament_id": "OFKWWgyp", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Celeste Cielo.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Celeste Cielo.json index 9294b3e0d5..f0ca1c323c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Celeste Cielo.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Celeste Cielo.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "baAQZuzRZD0nwmqH", - "filament_id": "FILAR0027", + "filament_id": "OFaDOaNt", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cobre.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cobre.json index 4fd0d180f7..44402e7b5a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cobre.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Cobre.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "BpYgVH5d3LOdib3U", - "filament_id": "FILAR0003", + "filament_id": "OFNemJM6", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Dorado.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Dorado.json index 77c31289ff..fd25d70050 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Dorado.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Dorado.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "KHIdy0oNw9YYDNOD", - "filament_id": "FILAR0029", + "filament_id": "OF5P4jgA", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Ceniza.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Ceniza.json index acd8b8c9a0..d09d053c53 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Ceniza.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Ceniza.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "LBpWNtHWPyZi96wr", - "filament_id": "FILAR0025", + "filament_id": "OFIamQnD", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Pizarra.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Pizarra.json index 1bf3af9593..c6809d1104 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Pizarra.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Pizarra.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "SeePXOShT3cge6TS", - "filament_id": "FILAR0024", + "filament_id": "OFTlRzpe", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Plata.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Plata.json index 1cb23756fb..3748c83352 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Plata.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Gris Plata.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "B6HABCdHSblZS7lQ", - "filament_id": "FILAR0002", + "filament_id": "OFKKajh6", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Manteca.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Manteca.json index 00dbe089e4..81c6eb5928 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Manteca.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Manteca.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "tR4io22VQO0J8UsV", - "filament_id": "FILAR0007", + "filament_id": "OFexaZU2", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Marron Oxido.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Marron Oxido.json index bcd1b5ffb4..452b48010d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Marron Oxido.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Marron Oxido.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "r9eviTeCeTW4rLuz", - "filament_id": "FILAR0008", + "filament_id": "OFAt6ec0", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Naranja Tigre.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Naranja Tigre.json index ca76d328c1..dd5475f0c6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Naranja Tigre.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Naranja Tigre.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "zLZxXa78e1oiYWSg", - "filament_id": "FILAR0020", + "filament_id": "OFKZ9skj", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Negro Azabache.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Negro Azabache.json index 06082ff8c6..aaf06f8833 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Negro Azabache.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Negro Azabache.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "glc7ip75qjodcceS", - "filament_id": "FILAR0019", + "filament_id": "OFgMWJ8T", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Oro.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Oro.json index 9cb39d2135..03e171b525 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Oro.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Oro.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "hCv43F2tNJagwzC7", - "filament_id": "FILAR0028", + "filament_id": "OF5nlfKY", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Piel.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Piel.json index b18da8d2e8..4ae2924081 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Piel.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Piel.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "6ZwTYvV27Oj3l33v", - "filament_id": "FILAR0012", + "filament_id": "OFsDXRpS", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rojo de Carreras.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rojo de Carreras.json index 516ceb83f9..95c3c870bc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rojo de Carreras.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rojo de Carreras.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "5dINxIgy0kMYYNDT", - "filament_id": "FILAR0021", + "filament_id": "OFaEesXQ", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Amaranto.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Amaranto.json index 512340cfdf..62763f36a5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Amaranto.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Amaranto.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "wgxgJfhOa2ZPikRH", - "filament_id": "FILAR0010", + "filament_id": "OFPqX3x2", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Flamenco.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Flamenco.json index afe39634fe..9fb203bb0c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Flamenco.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Rosa Flamenco.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "FhROwdLMSz3cyRZo", - "filament_id": "FILAR0011", + "filament_id": "OFZ4QbfK", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Tabaco.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Tabaco.json index 05e71143ca..6925843d95 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Tabaco.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Tabaco.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "6ax7ka7LBHqhBigT", - "filament_id": "FILAR0005", + "filament_id": "OFjT9PkZ", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Titanio.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Titanio.json index fe00512045..f7b823fe5b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Titanio.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Titanio.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "ZRedeSWJhUayeJLw", - "filament_id": "FILAR0004", + "filament_id": "OFQWIKbV", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde FilAr.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde FilAr.json index da619c819a..e3355ffa43 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde FilAr.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde FilAr.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "SYWoimklLqx5O2Xh", - "filament_id": "FILAR0013", + "filament_id": "OFvPPMxL", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Manzana.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Manzana.json index ac3fae3303..46772cf083 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Manzana.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Manzana.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "FlPRrQEcKnVKwJDM", - "filament_id": "FILAR0014", + "filament_id": "OFdb8YNz", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Oliva.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Oliva.json index a1e594b840..6fe74aa2f3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Oliva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Oliva.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "eWAcT15sDLZeV2uS", - "filament_id": "FILAR0016", + "filament_id": "OFkoLUtR", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Pixel.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Pixel.json index c6932f6b22..9068b293f2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Pixel.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Verde Pixel.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "Z7toK1R2GuzHVgfo", - "filament_id": "FILAR0015", + "filament_id": "OFkGvN4d", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Violeta Jacaranda.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Violeta Jacaranda.json index 819187e0fe..fa12bcc077 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Violeta Jacaranda.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA Violeta Jacaranda.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA @base", "from": "system", "setting_id": "4VO2Qb2cTXQ1TJv2", - "filament_id": "FILAR0023", + "filament_id": "OFP26zNb", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json index d012487eb7..729e9d7b9c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json @@ -3,7 +3,7 @@ "name": "FilAr PLA-mate @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "FILARB02", + "filament_id": "OFtOoWIj", "instantiation": "false", "filament_type": [ "PLA" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Amarillo.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Amarillo.json index e6e4811b6c..98a2349ac1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Amarillo.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Amarillo.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "f8DPrkYuTUPJ3cru", - "filament_id": "FILAR0030", + "filament_id": "OFj3bTjw", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Azul.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Azul.json index d752c69555..7688708656 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Azul.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Azul.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "QMBocqysEed86R9y", - "filament_id": "FILAR0031", + "filament_id": "OF5vgi2G", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Beige.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Beige.json index 3d4c2eb19a..2324dadcc5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Beige.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Beige.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "XoilIv3HqpDTVRwv", - "filament_id": "FILAR0032", + "filament_id": "OFGcLA5R", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Blanco.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Blanco.json index d08673007a..92f10acf51 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Blanco.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Blanco.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "xkotTQheAIUUhPd7", - "filament_id": "FILAR0033", + "filament_id": "OFtefokm", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Bordo.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Bordo.json index 8277b74545..4018c1d710 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Bordo.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Bordo.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "zV2dKrknk0ThDv36", - "filament_id": "FILAR0034", + "filament_id": "OFiDpM1B", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Celeste Cielo.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Celeste Cielo.json index fadf1b26ff..ff47203106 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Celeste Cielo.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Celeste Cielo.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "UZW4F0aVz1TqstYi", - "filament_id": "FILAR0035", + "filament_id": "OFqtx549", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Chocolate.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Chocolate.json index f184b6be29..b67e57db85 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Chocolate.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Chocolate.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "DdW1XKqqRuLM1cAd", - "filament_id": "FILAR0036", + "filament_id": "OFdzlrhi", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Gris.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Gris.json index b2740bc3b4..445a44b1e4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Gris.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Gris.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "6OtKg1UxWuNCqsZy", - "filament_id": "FILAR0037", + "filament_id": "OFGVwfK0", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Marron.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Marron.json index b3190c28d9..aa411c3d77 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Marron.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Marron.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "lKOXMY37q8WpMdBA", - "filament_id": "FILAR0038", + "filament_id": "OF8jh0Lk", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Naranja.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Naranja.json index b3fabc3603..2c382c085d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Naranja.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Naranja.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "MabNpNP8G9RqEruP", - "filament_id": "FILAR0039", + "filament_id": "OFmaeU4a", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Negro.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Negro.json index d46222cad5..7ec4105a25 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Negro.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Negro.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "Jwrm1uuCo7UjvgWn", - "filament_id": "FILAR0040", + "filament_id": "OFufTAK9", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Piel.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Piel.json index 49fd32c1ac..6635fe8b78 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Piel.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Piel.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "ifbCS3WypTUa1JHr", - "filament_id": "FILAR0041", + "filament_id": "OFfZcoKr", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rojo.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rojo.json index 63a280b0c4..bed097ad9a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rojo.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rojo.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "ak2QX0IS74Nmtyex", - "filament_id": "FILAR0042", + "filament_id": "OFIBXa0k", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rosa.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rosa.json index 78208657c8..1767674916 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rosa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Rosa.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "GrEXuL6TYue238MK", - "filament_id": "FILAR0043", + "filament_id": "OFausr3F", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Uva.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Uva.json index 860ac8347d..0e5bb137e1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Uva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Uva.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "PK1CsK7AS1p1IJaR", - "filament_id": "FILAR0044", + "filament_id": "OFEZ449N", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Verde.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Verde.json index 7f49cb138e..67fe0ebfee 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Verde.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Verde.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "rsLi8jr62hHPgERG", - "filament_id": "FILAR0045", + "filament_id": "OFCjG251", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Violeta.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Violeta.json index f60b17b69e..e842875905 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Violeta.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate Violeta.json @@ -4,7 +4,7 @@ "inherits": "FilAr PLA-mate @base", "from": "system", "setting_id": "z2Pk06JzY9Tr1WjQ", - "filament_id": "FILAR0046", + "filament_id": "OF2EK9F1", "instantiation": "true", "filament_vendor": [ "FilAr" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FusRock/FusRock ABS-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FusRock/FusRock ABS-GF @base.json index bb09f036ff..95a8fd47ea 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FusRock/FusRock ABS-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FusRock/FusRock ABS-GF @base.json @@ -3,7 +3,7 @@ "name": "FusRock ABS-GF @base", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFR00", + "filament_id": "OFmn9NZL", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials(https://wiki.fusrock.com).", "filament_extruder_variant": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json index fa4788b45a..e499fa3a73 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic ABS @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "W0LP8Ah5MHMzogvV", - "filament_id": "OGFB99", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json index a4e10439c2..f55ee5e239 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic ASA @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "bcsNcj4DzLb4K5zN", - "filament_id": "OGFB98", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json index 96c3dc4f34..7b34746bb2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic BVOH @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_bvoh", "from": "system", "setting_id": "oUpbqz3uzQqND5DG", + "filament_id": "OFo2UF2C", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic CoPE @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic CoPE @System.json index dbf10cf3f5..60c330fc39 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic CoPE @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic CoPE @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_cope", "from": "system", "setting_id": "KlHtaJU2GM0uaRGM", + "filament_id": "OFjt9en1", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json index 6caf96f6b1..646bef3f28 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic EVA @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_eva", "from": "system", "setting_id": "cFGhkhQKiFilQ9gZ", + "filament_id": "OFCD8qiU", "instantiation": "true", "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", "compatible_printers": [] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json index 44cedfc810..c4acb079be 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic HIPS @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_hips", "from": "system", "setting_id": "A7gedcxip65DXKuf", + "filament_id": "OFsFon5l", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json index 2cf8b79680..4bea15a407 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "9DoeedUBMRPSCyu2", - "filament_id": "OGFN99", + "filament_id": "OFg8ndtj", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json index f7b9df437a..002959ab2d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "rchW8WI6gcXuAE0V", - "filament_id": "OGFN98", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json index fd5c80443c..f84c7fe7b6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PC @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "LNjv9LwZnbu7ZASC", - "filament_id": "OGFC99", + "filament_id": "OFLakOUI", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json index 967c5627cb..41ff08bd5c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PCTG @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pctg", "from": "system", "setting_id": "21dhMVBuVwR2lzIX", + "filament_id": "OFu1evlr", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json index 844ee902df..210c48b77a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pe", "from": "system", "setting_id": "8HpfeTNwthJ7L0XE", + "filament_id": "OFPklMI1", "instantiation": "true", "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", "compatible_printers": [] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json index 48212f7143..53ca2e0f9d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PE-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PE-CF @base", "inherits": "fdm_filament_pe", "from": "system", - "filament_id": "OFJfx0Cl", + "filament_id": "OFd0Fv0k", "instantiation": "false", "filament_type": [ "PE-CF" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json index 2eb975f56c..f6fb133324 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "YiQZfhL6hH0giSHL", - "filament_id": "OGFG99", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json index f8de64e2a8..173f397a49 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @base.json @@ -3,6 +3,6 @@ "name": "Generic PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFfB1QKi", + "filament_id": "OF7lOgYF", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json index 08bc8ad547..8bf644a26d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFDCk0cz", + "filament_id": "OFoYSJKi", "instantiation": "false", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json index dab5219261..c50840c55a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PHA @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pha", "from": "system", "setting_id": "kks2z4JbypqY68RW", + "filament_id": "OF74KeQR", "instantiation": "true", "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", "compatible_printers": [] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json index c018544fa5..7bf0a0e72b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA @System.json @@ -5,6 +5,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "RcBNzytWgwRrwXXz", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json index 041ff59c44..d587a6d68d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "L9wOwDxavVR7vrL7", - "filament_id": "OGFL95", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json index 931ec3ea7e..7fed10e48e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @base.json @@ -3,6 +3,6 @@ "name": "Generic PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFJsqMzx", + "filament_id": "OFmY0l6t", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json index 700b80761f..3bee7ccde6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Silk @System.json @@ -5,6 +5,7 @@ "inherits": "fdm_filament_pla_silk", "from": "system", "setting_id": "oPkXDCBrTQB3SRm4", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json index d6a80ed8ee..972ef33800 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA-CF @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "l2LkEql1SVH0iRqY", - "filament_id": "OGFL98", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json index e2c16e704f..14e38bc340 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "yos4oScjK83JuXJV", + "filament_id": "OF1UNk9P", "instantiation": "true", "description": "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.", "compatible_printers": [] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json index f5fefcf0cb..1852185476 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PP-CF @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "OFRS2Ggt", + "filament_id": "OFXkm8q1", "instantiation": "false", "filament_type": [ "PP-CF" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json index 2544bac78a..08a8158d91 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json @@ -3,6 +3,6 @@ "name": "Generic PP-GF @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "OFMCMXSG", + "filament_id": "OFNiSLfL", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json index a5fdd90f9c..99ee7acda7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-CF @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "rZpVQIyltFNiQyW3", + "filament_id": "OF8tPByX", "instantiation": "true", "fan_max_speed": [ "35" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json index 9ebf9cb656..3b5e1b7583 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PPA-GF @System.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "yJCAFLt5wstMgMAY", - "filament_id": "OGFN96", + "filament_id": "OF8Tlg47", "instantiation": "true", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json index e1cf8643d1..c6300423ba 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PVA @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "1dlLnJKh1HzQCZVJ", - "filament_id": "OGFS99", + "filament_id": "OFDvXujf", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json index 082c4dd4bf..cf5aa1a8f6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic SBS @System.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_sbs", "from": "system", "setting_id": "fjVWcIfxaOAZHNU1", + "filament_id": "OFhQfUQY", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json index be4543b662..c8ae9f2562 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic TPU @System.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "D6O8IcmSe8WGqOvb", - "filament_id": "OGFU99", + "filament_id": "OFgbpcy9", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/GreenGate3D/GreenGate3D PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/GreenGate3D/GreenGate3D PETG @base.json index 284c63ab9c..a0ba8360d6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/GreenGate3D/GreenGate3D PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/GreenGate3D/GreenGate3D PETG @base.json @@ -3,7 +3,7 @@ "name": "GreenGate3D PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFGG300", + "filament_id": "OFhMO9Kh", "instantiation": "false", "filament_cost": [ "32" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT ABS @base.json index 78d2166f9e..8fb4f4c187 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT ABS @base.json @@ -3,7 +3,7 @@ "name": "NIT ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "NIT01", + "filament_id": "OFhWc5Bv", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PETG @base.json index 8e84b68607..2fd955a1b1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PETG @base.json @@ -3,7 +3,7 @@ "name": "NIT PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "NIT03", + "filament_id": "OFJu1XwK", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PLA @base.json index 89b6842010..ff541d0239 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/NIT/NIT PLA @base.json @@ -3,7 +3,7 @@ "name": "NIT PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "NIT02", + "filament_id": "OFwRJ4g0", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Numakers/Numakers PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Numakers/Numakers PLA+ @base.json index c0c2c86585..818b181355 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Numakers/Numakers PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Numakers/Numakers PLA+ @base.json @@ -3,7 +3,7 @@ "name": "Numakers PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFNMK00", + "filament_id": "OFqGRZyH", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ABS Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ABS Basic @base.json index 3ceb467a61..5029f42e5d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ABS Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ABS Basic @base.json @@ -3,7 +3,7 @@ "name": "Overture ABS Basic @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OVTABS08", + "filament_id": "OFDvqJ6n", "instantiation": "false", "description": "Overture ABS settings from https://overture3d.com/.", "activate_air_filtration": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ASA @base.json index 415bf9e6d1..31357aadf6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture ASA @base.json @@ -3,7 +3,7 @@ "name": "Overture ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFOT009", + "filament_id": "OFM91vZs", "instantiation": "false", "fan_cooling_layer_time": [ "45" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json index 39e351a24c..6ce9a126cc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Air PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT006", + "filament_id": "OFcfQk4h", "instantiation": "false", "filament_cost": [ "27.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Easy PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Easy PLA @base.json index a0c11e0a81..d4388a6c90 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Easy PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Easy PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Easy PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT003", + "filament_id": "OF1Pke8t", "instantiation": "false", "filament_cost": [ "17.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json index 3f4dd854a3..43d4abe1d8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Matte PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Matte PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL05", + "filament_id": "OFBw6eEG", "instantiation": "false", "filament_cost": [ "24.52" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json index 486d34d0e5..45ae0ba24b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL04", + "filament_id": "OFc3xdm9", "instantiation": "false", "filament_cost": [ "24.15" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA Pro @base.json index 80525e03b2..454c36e7b0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA Pro @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "Overture PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT001", + "filament_id": "OFxA1p01", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Rock PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Rock PLA @base.json index 3317a8e0a9..5027f3ac01 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Rock PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Rock PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Rock PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT004", + "filament_id": "OFMZvH0z", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Silk PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Silk PLA @base.json index 0fd19a6323..ca1a187fe0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Silk PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Silk PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Silk PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT002", + "filament_id": "OFGkyftV", "instantiation": "false", "filament_cost": [ "25.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Super PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Super PLA+ @base.json index 0bab3f81f0..776367ba06 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Super PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Super PLA+ @base.json @@ -3,7 +3,7 @@ "name": "Overture Super PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT005", + "filament_id": "OF2pj5l5", "instantiation": "false", "filament_cost": [ "28.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture TPU @base.json index bdc7f4e236..20ff507393 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture TPU @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture TPU @base.json @@ -3,7 +3,7 @@ "name": "Overture TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFOT008", + "filament_id": "OFcvKkrs", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json index 7b5740c1df..a5aa03bf9b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA12-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA12-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFL52", + "filament_id": "OFX0ycRQ", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json index d96e531b0d..96b913c738 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFL50", + "filament_id": "OFkOviHk", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json index b5e9c57851..607b1c8e00 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA6-GF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-GF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFL51", + "filament_id": "OFwaYjL6", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json index 4fa1bd200d..3765f754f5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PA612-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA612-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OGFL53", + "filament_id": "OFS2tn6G", "instantiation": "false", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json index 1e74b59930..6946d6e0a3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PET-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFL54", + "filament_id": "OFHWSM21", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json index 500fac4037..11d2f9023f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-ESD @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-ESD @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFL06", + "filament_id": "OFcytyoA", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json index 12cc822453..489e03bc64 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Fiberon PETG-rCF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-rCF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFL55", + "filament_id": "OFk8t9mz", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma CoPE @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma CoPE @base.json index d856da86cc..52f2ed96f4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma CoPE @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma CoPE @base.json @@ -3,7 +3,7 @@ "name": "Panchroma CoPE @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM016", + "filament_id": "OFqw2PQA", "instantiation": "false", "filament_cost": [ "19.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA @base.json index 2c4f278387..94d7383fef 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM001", + "filament_id": "OFsRDvTM", "instantiation": "false", "filament_cost": [ "19.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Celestial @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Celestial @base.json index 10c999c3a8..123ba02747 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Celestial @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Celestial @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Celestial @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM008", + "filament_id": "OFRiYgMK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Galaxy @base.json index 40ae42e78c..d98e119c0b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Galaxy @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM007", + "filament_id": "OFFkCLBl", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Glow @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Glow @base.json index c5219dea65..9a162062a3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Glow @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM010", + "filament_id": "OF0gGRWk", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Luminous @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Luminous @base.json index 48158b336a..a6f61c9e5f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Luminous @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Luminous @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Luminous @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM011", + "filament_id": "OF0kCNDK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Marble @base.json index 11954166b9..e514df6f78 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM003", + "filament_id": "OFKiSMWR", "instantiation": "false", "filament_cost": [ "21.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Matte @base.json index 6e965f908d..87da70c021 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM002", + "filament_id": "OFrOh600", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Metallic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Metallic @base.json index 3a7d3f93eb..820fc99703 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Metallic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Metallic @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Metallic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM012", + "filament_id": "OFjb0wos", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Neon @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Neon @base.json index d9a68636c8..c57c976d11 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Neon @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Neon @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Neon @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM013", + "filament_id": "OFO1GEq6", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json index 4e55dcd18c..52d96d24d1 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json @@ -4,7 +4,7 @@ "renamed_from": "Panchroma PLA Stain @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM005", + "filament_id": "OFPkCJKE", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Silk @base.json index 08fabb165e..d0df636abb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM004", + "filament_id": "OFS8lTQt", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Starlight @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Starlight @base.json index bed7d34e53..d271daa50a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Starlight @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Starlight @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Starlight @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM009", + "filament_id": "OFC78WGQ", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Temp Shift @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Temp Shift @base.json index 5d8adcda38..9de5e084b3 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Temp Shift @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Temp Shift @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Temp Shift @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM015", + "filament_id": "OFhASRWj", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Translucent @base.json index e3c3355b43..d6da194349 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Translucent @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Translucent @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Translucent @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM006", + "filament_id": "OFCIUsWh", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA UV Shift @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA UV Shift @base.json index 97009b894d..1a2662f1bc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA UV Shift @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA UV Shift @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA UV Shift @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM014", + "filament_id": "OF1N1qMK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json index 759c29892a..540a6b846d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ABS @base.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OGFB60", + "filament_id": "OFOvv91M", "instantiation": "false", "filament_cost": [ "26.9" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json index 78340f6984..95b4d39c1a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite ASA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OGFB61", + "filament_id": "OFvrXuV7", "instantiation": "false", "eng_plate_temp": [ "100" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json index fc31b9bc35..814e641e1a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite Dual PLA @base.json @@ -3,6 +3,6 @@ "name": "PolyLite Dual PLA @base", "inherits": "PolyLite PLA @base", "from": "system", - "filament_id": "OFsNZcid", + "filament_id": "OFYGbPHX", "instantiation": "false" } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json index 448bb2c66f..7e8312f282 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PETG @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFG60", + "filament_id": "OF0UJcb6", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json index 4fc233d3e6..00547fdbe8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @System.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @base", "from": "system", "setting_id": "MKxTIucBtfpUvIhZ", - "filament_id": "OGFL00", + "filament_id": "OF5CgdDq", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json index 65e8f261fb..55ea664946 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL00", + "filament_id": "OF5CgdDq", "instantiation": "false", "filament_cost": [ "25.4" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA Pro @base.json index bdd34f2b03..0b21f98254 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA Pro @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyLite PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM019", + "filament_id": "OFF9OKoY", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json index 84b6fb4aea..05d3492408 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra Dual PLA @System.json @@ -5,7 +5,7 @@ "inherits": "PolyTerra PLA @base", "from": "system", "setting_id": "OajdcsUZSmrTA2vC", - "filament_id": "OGFL00-1", + "filament_id": "OFCccVrQ", "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json index d2bec7fcd5..3b13c5b55c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/PolyTerra PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL01", + "filament_id": "OFW29a9R", "instantiation": "false", "filament_cost": [ "25.4" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA @base.json index 22b1106271..db7624e45a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA @base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM017", + "filament_id": "OFPoyiFs", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA-GF @base.json index 38a73bca9f..866ce490e9 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker HT-PLA-GF @base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA-GF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFPM018", + "filament_id": "OFlwmqrC", "instantiation": "false", "filament_cost": [ "32.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json index 149a1dc107..aa1a2bab42 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Marble PLA @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL06", + "filament_id": "OFxUwUeW", "instantiation": "false", "filament_cost": [ "31.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json index 4c564801df..e8152acbcf 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PETG @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OGFSNL08", + "filament_id": "OF2GCW1l", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json index f99430b2f7..34035846fb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL02", + "filament_id": "OFpW4gdi", "instantiation": "false", "filament_cost": [ "25.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json index 7424503b9f..832c2a4f06 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ 2.0 @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ 2.0 @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL04", + "filament_id": "OFHmPYRy", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json index f890c225be..1fffd42112 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL03", + "filament_id": "OFMUWNkp", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json index ac28782615..35f599e125 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Silk PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Silk PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL05", + "filament_id": "OFpPGSKG", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json index cd9bbec953..fc94c630a0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/SUNLU/SUNLU Wood PLA @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Wood PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFSNL07", + "filament_id": "OFLJ8S6I", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA @base.json index 77fa861c7b..6fa2f8a04d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA @base.json @@ -3,7 +3,7 @@ "name": "Valment PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "VLMNT01", + "filament_id": "OFDe8uyM", "instantiation": "false", "filament_cost": [ "670" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Galaxy @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Galaxy @base.json index 9920f9a504..e181556086 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Galaxy @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "Valment PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "VLMNT04", + "filament_id": "OFB5SmWk", "instantiation": "false", "filament_cost": [ "850" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json index d873590f08..1deb8d1983 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Valment PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "VLMNT02", + "filament_id": "OFpBlrvY", "instantiation": "false", "filament_cost": [ "710" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA-CF @base.json index 4451cffadb..f498a6f162 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Valment PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "VLMNT03", + "filament_id": "OFfq5YXA", "instantiation": "false", "filament_cost": [ "1400" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json index d37476f458..78a3698530 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json @@ -3,7 +3,6 @@ "name": "fdm_filament_bvoh", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFS97", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json index 80ffd173de..6f41efb419 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json @@ -3,7 +3,6 @@ "name": "fdm_filament_cope", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFLC99", "instantiation": "false", "filament_type": [ "CoPE" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json index bf1ff86af1..4edb63b575 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json @@ -3,7 +3,6 @@ "name": "fdm_filament_eva", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFR99", "instantiation": "false", "filament_type": [ "EVA" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json index beaebbd0e7..f8684e81cf 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json @@ -3,7 +3,6 @@ "name": "fdm_filament_hips", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFS98", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json index c2e4cf86df..b75ab9a8c9 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFN99", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json index 0f550063ad..b33b21cdab 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json @@ -3,7 +3,7 @@ "name": "fdm_filament_pc", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFC99", + "filament_id": "OFtcKVgP", "instantiation": "false", "supertack_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json index 8ca7e39994..a7f543bac5 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pctg", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFG97", "instantiation": "false", "eng_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json index beb533d07f..52bf63abab 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pe", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFP99", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json index eabb12c708..81a9bf77ab 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pet", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFG99", "instantiation": "false", "eng_plate_temp": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json index f6ef3ffc0c..9d35570511 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pha", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFR98", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json index ae82d44129..43d579a2eb 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pla", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFL99", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json index 3680a85602..67f18caf9e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pla_silk", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL96", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_flow_ratio": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json index ec9405ef9a..9ba5c3504c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pp", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFP97", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json index 3eac71bc69..abfda9f1a8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_ppa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFN97", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json index 96626d808d..f8aa9b6d99 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json @@ -3,7 +3,6 @@ "name": "fdm_filament_sbs", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OFLSBS99", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PETG @base.json index 576da66278..53a489aaf2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PETG @base.json @@ -3,7 +3,7 @@ "name": "eSUN PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "ESN03", + "filament_id": "OF3kBrdA", "instantiation": "false", "filament_vendor": [ "eSUN" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json index 26bbba31d9..4e3ab1d49f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA+ @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL03", + "filament_id": "OFqINlYj", "instantiation": "false", "filament_cost": [ "22.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json index cef96aa7fc..16fc0dad97 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Basic @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFZhdVnP", + "filament_id": "OFTcE0nA", "instantiation": "false", "filament_cost": [ "11.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json index 1b6302372c..13fda6764f 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFXmQgno", + "filament_id": "OF7H3VJM", "instantiation": "false", "filament_cost": [ "28.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json index e4c42a3a5b..ffb7bd8dcd 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA-Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OF3GKs2i", + "filament_id": "OFDETOM6", "instantiation": "false", "filament_cost": [ "14.99" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json index 138a388419..d80efe22cf 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "pYoZnuVPPIlMbdT1", - "filament_id": "ESN02", + "filament_id": "OFRzR5mi", "instantiation": "true", "filament_type": [ "PLA-AERO" diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index 3840098c11..a23c0d8cbc 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -1,6 +1,685 @@ { - "hints": {}, + "hints": { + "GFOT001": "OFxA1p01", + "GFOT002": "OFGkyftV", + "GFOT003": "OF1Pke8t", + "GFOT004": "OFMZvH0z", + "GFOT005": "OF2pj5l5", + "GFOT006": "OFcfQk4h", + "GFOT008": "OFcvKkrs", + "GFOT009": "OFM91vZs", + "GFSEP001": "OFtudokz", + "GFSEP002": "OFf5awy4", + "GFSEP003": "OFbP8zEO", + "GFSEP004": "OFrFBEfd", + "GFSEP005": "OFvzvwCu", + "GFSEP006": "OFH2nN08", + "GFSEP007": "OFPc4zVY", + "GFSEP008": "OFkzr35f", + "GFSEP009": "OFHfzQXo", + "GFSEP010": "OFhWhL1i", + "GFSEP011": "OFx8Lmsd", + "GFSEP012": "OFRiFnfQ", + "GFSEP013": "OFhfd722", + "GFSEP014": "OFIegjmD", + "GFSEP015": "OFvVy7yo", + "GFSEP016": "OFTOPcx0", + "GFSEP017": "OFXCBZTA", + "GFSEP018": "OFlSNkhc" + }, "retired": { + "AZ01-1": { + "claims": [ + "BBL/AliZ PETG-CF", + "OrcaFilamentLibrary/AliZ PETG-CF" + ], + "successor": "OFJOFnOZ" + }, + "AZ01-2": { + "claims": [ + "BBL/AliZ PETG-Metal", + "OrcaFilamentLibrary/AliZ PETG-Metal" + ], + "successor": "OFOABq7t" + }, + "AliZ001": { + "claims": [ + "BBL/AliZ PETG", + "OrcaFilamentLibrary/AliZ PETG" + ], + "successor": "OFocyw69" + }, + "AliZ002": { + "claims": [ + "BBL/AliZ PLA", + "OrcaFilamentLibrary/AliZ PLA" + ], + "successor": "OFyxayW4" + }, + "AliZ003": { + "claims": [ + "BBL/AliZ PA-CF", + "OrcaFilamentLibrary/AliZ PA-CF" + ], + "successor": "OFd4zw5l" + }, + "CX30DB20": { + "claims": [ + "BBL/COEX TPE 30D", + "OrcaFilamentLibrary/COEX TPE 30D" + ], + "successor": "OFVptRxp" + }, + "CX40DB20": { + "claims": [ + "BBL/COEX TPE 40D", + "OrcaFilamentLibrary/COEX TPE 40D" + ], + "successor": "OFfnXFie" + }, + "CX60AB17": { + "claims": [ + "BBL/COEX TPU 60A", + "OrcaFilamentLibrary/COEX TPU 60A" + ], + "successor": "OFE0NFRh" + }, + "CX60DB19": { + "claims": [ + "BBL/COEX TPE 60D", + "OrcaFilamentLibrary/COEX TPE 60D" + ], + "successor": "OFfr4XNO" + }, + "CXABPB09": { + "claims": [ + "BBL/COEX ABS PRIME", + "OrcaFilamentLibrary/COEX ABS PRIME" + ], + "successor": "OFuWCQXN" + }, + "CXABSB01": { + "claims": [ + "BBL/COEX ABS", + "OrcaFilamentLibrary/COEX ABS" + ], + "successor": "OF99UMPq" + }, + "CXASAB04": { + "claims": [ + "BBL/COEX ASA PRIME", + "OrcaFilamentLibrary/COEX ASA PRIME" + ], + "successor": "OFtpXCCv" + }, + "CXPACB23": { + "claims": [ + "BBL/COEX NYLEX PA6-CF", + "OrcaFilamentLibrary/COEX NYLEX PA6-CF" + ], + "successor": "OF0NgY1y" + }, + "CXPAUB21": { + "claims": [ + "BBL/COEX NYLEX UNFILLED " + ], + "successor": "OFJs1ToM" + }, + "CXPCTB15": { + "claims": [ + "BBL/COEX PCTG PRIME", + "OrcaFilamentLibrary/COEX PCTG PRIME" + ], + "successor": "OFwu7IAG" + }, + "CXPETB13": { + "claims": [ + "BBL/COEX PETG", + "OrcaFilamentLibrary/COEX PETG" + ], + "successor": "OFvTVZc3" + }, + "CXPLAB02": { + "claims": [ + "BBL/COEX PLA", + "OrcaFilamentLibrary/COEX PLA" + ], + "successor": "OFhlCNqq" + }, + "CXPLAB08": { + "claims": [ + "BBL/COEX PLA PRIME", + "OrcaFilamentLibrary/COEX PLA PRIME" + ], + "successor": "OFd2vX0G" + }, + "CXPLSB03": { + "claims": [ + "BBL/COEX PLA+Silk", + "OrcaFilamentLibrary/COEX PLA+Silk" + ], + "successor": "OF0pzFLc" + }, + "DREMC001": { + "claims": [], + "successor": null + }, + "DREMC002": { + "claims": [], + "successor": null + }, + "DREMC003": { + "claims": [], + "successor": null + }, + "DREMC004": { + "claims": [], + "successor": null + }, + "DREMC005": { + "claims": [], + "successor": null + }, + "DREMC006": { + "claims": [ + "OrcaFilamentLibrary/DREMC PA6-CF" + ], + "successor": "OFsoykbm" + }, + "DREMC007": { + "claims": [], + "successor": null + }, + "DREMC008": { + "claims": [], + "successor": null + }, + "DREMC009": { + "claims": [ + "OrcaFilamentLibrary/DREMC ABS-GF" + ], + "successor": "OFCidU7j" + }, + "DREMC010": { + "claims": [ + "OrcaFilamentLibrary/DREMC PPA-CF" + ], + "successor": "OFiWaoqD" + }, + "DREMC011": { + "claims": [], + "successor": null + }, + "DREMC012": { + "claims": [], + "successor": null + }, + "DREMC013": { + "claims": [], + "successor": null + }, + "ESN02": { + "claims": [ + "OrcaFilamentLibrary/eSUN ePLA-LW" + ], + "successor": "OFRzR5mi" + }, + "ESN03": { + "claims": [ + "OrcaFilamentLibrary/eSUN PETG" + ], + "successor": "OF3kBrdA" + }, + "FDPLAST01": { + "claims": [ + "OrcaFilamentLibrary/FDplast ABS" + ], + "successor": "OFjorDcx" + }, + "FDPLAST02": { + "claims": [ + "OrcaFilamentLibrary/FDplast HIPS" + ], + "successor": "OFmJAd3A" + }, + "FDPLAST03": { + "claims": [ + "OrcaFilamentLibrary/FDplast PETG" + ], + "successor": "OFfJSCzm" + }, + "FDPLAST04": { + "claims": [ + "OrcaFilamentLibrary/FDplast PLA" + ], + "successor": "OFtr8eZw" + }, + "FDPLAST05": { + "claims": [ + "OrcaFilamentLibrary/FDplast SBS" + ], + "successor": "OFtRn8X8" + }, + "FDPLAST06": { + "claims": [ + "OrcaFilamentLibrary/FDplast TPU" + ], + "successor": "OFfmZrI3" + }, + "FILAR0001": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Bronce" + ], + "successor": "OFWTRJ1K" + }, + "FILAR0002": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Gris Plata" + ], + "successor": "OFKKajh6" + }, + "FILAR0003": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Cobre" + ], + "successor": "OFNemJM6" + }, + "FILAR0004": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Titanio" + ], + "successor": "OFQWIKbV" + }, + "FILAR0005": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Tabaco" + ], + "successor": "OFjT9PkZ" + }, + "FILAR0006": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" + ], + "successor": "OFWwF7K7" + }, + "FILAR0007": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Manteca" + ], + "successor": "OFexaZU2" + }, + "FILAR0008": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Marron Oxido" + ], + "successor": "OFAt6ec0" + }, + "FILAR0009": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Carpincho" + ], + "successor": "OFKWWgyp" + }, + "FILAR0010": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" + ], + "successor": "OFPqX3x2" + }, + "FILAR0011": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" + ], + "successor": "OFZ4QbfK" + }, + "FILAR0012": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Piel" + ], + "successor": "OFsDXRpS" + }, + "FILAR0013": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Verde FilAr" + ], + "successor": "OFvPPMxL" + }, + "FILAR0014": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Verde Manzana" + ], + "successor": "OFdb8YNz" + }, + "FILAR0015": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Verde Pixel" + ], + "successor": "OFkGvN4d" + }, + "FILAR0016": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Verde Oliva" + ], + "successor": "OFkoLUtR" + }, + "FILAR0017": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" + ], + "successor": "OFHAccHz" + }, + "FILAR0018": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Calido" + ], + "successor": "OFKTSiYF" + }, + "FILAR0019": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Negro Azabache" + ], + "successor": "OFgMWJ8T" + }, + "FILAR0020": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" + ], + "successor": "OFKZ9skj" + }, + "FILAR0021": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" + ], + "successor": "OFaEesXQ" + }, + "FILAR0022": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" + ], + "successor": "OF8aFWfQ" + }, + "FILAR0023": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" + ], + "successor": "OFP26zNb" + }, + "FILAR0024": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" + ], + "successor": "OFTlRzpe" + }, + "FILAR0025": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" + ], + "successor": "OFIamQnD" + }, + "FILAR0026": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Azul Francia" + ], + "successor": "OFnYVFk2" + }, + "FILAR0027": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" + ], + "successor": "OFaDOaNt" + }, + "FILAR0028": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Oro" + ], + "successor": "OF5nlfKY" + }, + "FILAR0029": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA Dorado" + ], + "successor": "OF5P4jgA" + }, + "FILAR0030": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" + ], + "successor": "OFj3bTjw" + }, + "FILAR0031": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Azul" + ], + "successor": "OF5vgi2G" + }, + "FILAR0032": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Beige" + ], + "successor": "OFGcLA5R" + }, + "FILAR0033": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Blanco" + ], + "successor": "OFtefokm" + }, + "FILAR0034": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Bordo" + ], + "successor": "OFiDpM1B" + }, + "FILAR0035": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" + ], + "successor": "OFqtx549" + }, + "FILAR0036": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" + ], + "successor": "OFdzlrhi" + }, + "FILAR0037": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Gris" + ], + "successor": "OFGVwfK0" + }, + "FILAR0038": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Marron" + ], + "successor": "OF8jh0Lk" + }, + "FILAR0039": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Naranja" + ], + "successor": "OFmaeU4a" + }, + "FILAR0040": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Negro" + ], + "successor": "OFufTAK9" + }, + "FILAR0041": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Piel" + ], + "successor": "OFfZcoKr" + }, + "FILAR0042": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rojo" + ], + "successor": "OFIBXa0k" + }, + "FILAR0043": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rosa" + ], + "successor": "OFausr3F" + }, + "FILAR0044": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Uva" + ], + "successor": "OFEZ449N" + }, + "FILAR0045": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Verde" + ], + "successor": "OFCjG251" + }, + "FILAR0046": { + "claims": [ + "OrcaFilamentLibrary/FilAr PLA-mate Violeta" + ], + "successor": "OF2EK9F1" + }, + "FILAR0047": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" + ], + "successor": "OFt6e0US" + }, + "FILAR0048": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" + ], + "successor": "OF0Vtzaw" + }, + "FILAR0049": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Azul Boreal" + ], + "successor": "OFNU9YIW" + }, + "FILAR0050": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Azul Francia" + ], + "successor": "OF44VYzK" + }, + "FILAR0051": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Azul Imperial" + ], + "successor": "OF2Z1nT5" + }, + "FILAR0052": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" + ], + "successor": "OFsXQXbs" + }, + "FILAR0053": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Cian" + ], + "successor": "OFnejEt4" + }, + "FILAR0054": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Coral" + ], + "successor": "OFysxCep" + }, + "FILAR0055": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Cristal" + ], + "successor": "OFJQDUk3" + }, + "FILAR0056": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" + ], + "successor": "OFybzvQN" + }, + "FILAR0057": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Gris Plata" + ], + "successor": "OFgpLTMR" + }, + "FILAR0058": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Magenta" + ], + "successor": "OFurdQxc" + }, + "FILAR0059": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Negro Azabache" + ], + "successor": "OFq8gfS4" + }, + "FILAR0060": { + "claims": [ + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" + ], + "successor": "OFPbyOSk" + }, + "FILARB01": { + "claims": [], + "successor": null + }, + "FILARB02": { + "claims": [], + "successor": null + }, + "FILARB03": { + "claims": [], + "successor": null + }, + "FILL3D001": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PLA Turbo" + ], + "successor": "OFoSknDB" + }, + "FILL3D002": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PLA Basic" + ], + "successor": "OFDpW3J8" + }, + "FILL3D003": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PETG" + ], + "successor": "OFQbjX3s" + }, + "FILL3D004": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PP" + ], + "successor": "OFPWPlSC" + }, + "FILL3D005": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PPCF" + ], + "successor": "OFg8hMzT" + }, + "FILL3D006": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PA" + ], + "successor": "OFJNeELv" + }, + "FILL3D007": { + "claims": [ + "OrcaFilamentLibrary/FILL3D PETG CF" + ], + "successor": "OFOiJfLM" + }, "GFABS": { "claims": [ "Anycubic/Anycubic ABS" @@ -49,6 +728,709 @@ ], "successor": "OFgrGfPy" }, + "NIT01": { + "claims": [ + "OrcaFilamentLibrary/NIT ABS" + ], + "successor": "OFhWc5Bv" + }, + "NIT02": { + "claims": [ + "OrcaFilamentLibrary/NIT PLA" + ], + "successor": "OFwRJ4g0" + }, + "NIT03": { + "claims": [ + "OrcaFilamentLibrary/NIT PETG" + ], + "successor": "OFJu1XwK" + }, + "OEABSB00": { + "claims": [ + "OrcaFilamentLibrary/Elegoo ABS" + ], + "successor": "OFxOHhZw" + }, + "OEASAB00": { + "claims": [ + "OrcaFilamentLibrary/Elegoo ASA" + ], + "successor": "OFobDOW5" + }, + "OEPAHTB0": { + "claims": [ + "OrcaFilamentLibrary/Elegoo PAHT-CF" + ], + "successor": "OF0h7ERL" + }, + "OEPCB00": { + "claims": [ + "OrcaFilamentLibrary/Elegoo PC" + ], + "successor": "OFUyDDNv" + }, + "OEPETGB0": { + "claims": [ + "OrcaFilamentLibrary/Elegoo PETG" + ], + "successor": "OFLcd093" + }, + "OEPLAB00": { + "claims": [ + "OrcaFilamentLibrary/Elegoo PLA" + ], + "successor": "OFvgE0Zh" + }, + "OETPUB00": { + "claims": [ + "OrcaFilamentLibrary/Elegoo TPU 95A" + ], + "successor": "OFmhJs5V" + }, + "OFLSBS99": { + "claims": [ + "OrcaFilamentLibrary/Generic SBS" + ], + "successor": "OFhQfUQY" + }, + "OGFA00": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Basic" + ], + "successor": "OFoiVqVM" + }, + "OGFA01": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Matte" + ], + "successor": "OFXIbw5D" + }, + "OGFA02": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Metal" + ], + "successor": "OFrKLeE3" + }, + "OGFA03": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Impact" + ], + "successor": "OFTGHyNC" + }, + "OGFA05": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Silk" + ], + "successor": "OFEGNJD4" + }, + "OGFA06": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Silk+" + ], + "successor": "OFUanySo" + }, + "OGFA07": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Marble" + ], + "successor": "OF9OlTWH" + }, + "OGFA08": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Sparkle" + ], + "successor": "OFDxfPgH" + }, + "OGFA09": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Tough" + ], + "successor": "OFaQMgRH" + }, + "OGFA11": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Aero" + ], + "successor": "OFBSW57R" + }, + "OGFA12": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Glow" + ], + "successor": "OFEkPBwx" + }, + "OGFA13": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Dynamic" + ], + "successor": "OFDGigEI" + }, + "OGFA15": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Galaxy" + ], + "successor": "OFQ3e56w" + }, + "OGFA16": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA Wood" + ], + "successor": "OFMjtqTC" + }, + "OGFA50": { + "claims": [ + "OrcaFilamentLibrary/Bambu PLA-CF" + ], + "successor": "OFEswT5W" + }, + "OGFB00": { + "claims": [ + "OrcaFilamentLibrary/Bambu ABS" + ], + "successor": "OFhuaUQB" + }, + "OGFB01": { + "claims": [ + "OrcaFilamentLibrary/Bambu ASA" + ], + "successor": "OFfBpSRI" + }, + "OGFB02": { + "claims": [ + "OrcaFilamentLibrary/Bambu ASA-Aero" + ], + "successor": "OFXzQ4yL" + }, + "OGFB50": { + "claims": [ + "OrcaFilamentLibrary/Bambu ABS-GF" + ], + "successor": "OFknl9Iz" + }, + "OGFB51": { + "claims": [ + "OrcaFilamentLibrary/Bambu ASA-CF" + ], + "successor": "OF0wBGNx" + }, + "OGFB60": { + "claims": [ + "OrcaFilamentLibrary/PolyLite ABS" + ], + "successor": "OFOvv91M" + }, + "OGFB61": { + "claims": [ + "OrcaFilamentLibrary/PolyLite ASA" + ], + "successor": "OFvrXuV7" + }, + "OGFB98": { + "claims": [ + "Custom/Generic ASA", + "OrcaFilamentLibrary/Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OGFB99": { + "claims": [ + "Custom/Generic ABS", + "OrcaFilamentLibrary/Generic ABS", + "Sovol/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OGFC00": { + "claims": [ + "OrcaFilamentLibrary/Bambu PC" + ], + "successor": "OFKhMPeX" + }, + "OGFC01": { + "claims": [ + "OrcaFilamentLibrary/Bambu PC FR" + ], + "successor": "OFg57Nmc" + }, + "OGFG00": { + "claims": [ + "OrcaFilamentLibrary/Bambu PETG Basic" + ], + "successor": "OFFvzqcd" + }, + "OGFG01": { + "claims": [ + "OrcaFilamentLibrary/Bambu PETG Translucent" + ], + "successor": "OFwPrlCM" + }, + "OGFG02": { + "claims": [ + "OrcaFilamentLibrary/Bambu PETG HF" + ], + "successor": "OFovEIbw" + }, + "OGFG50": { + "claims": [ + "OrcaFilamentLibrary/Bambu PETG-CF" + ], + "successor": "OFTRZ8Y4" + }, + "OGFG60": { + "claims": [ + "OrcaFilamentLibrary/PolyLite PETG" + ], + "successor": "OF0UJcb6" + }, + "OGFG97": { + "claims": [ + "OrcaFilamentLibrary/Generic PCTG" + ], + "successor": "OFu1evlr" + }, + "OGFGG300": { + "claims": [ + "OrcaFilamentLibrary/GreenGate3D PETG" + ], + "successor": "OFhMO9Kh" + }, + "OGFL00": { + "claims": [ + "OrcaFilamentLibrary/PolyLite PLA" + ], + "successor": "OF5CgdDq" + }, + "OGFL00-1": { + "claims": [ + "OrcaFilamentLibrary/PolyTerra Dual PLA" + ], + "successor": "OFCccVrQ" + }, + "OGFL01": { + "claims": [ + "OrcaFilamentLibrary/PolyTerra PLA", + "Snapmaker/PolyTerra PLA" + ], + "successor": "OFW29a9R" + }, + "OGFL03": { + "claims": [ + "OrcaFilamentLibrary/eSUN PLA+" + ], + "successor": "OFqINlYj" + }, + "OGFL04": { + "claims": [ + "OrcaFilamentLibrary/Overture PLA" + ], + "successor": "OFc3xdm9" + }, + "OGFL05": { + "claims": [ + "OrcaFilamentLibrary/Overture Matte PLA" + ], + "successor": "OFBw6eEG" + }, + "OGFL06": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PETG-ESD" + ], + "successor": "OFcytyoA" + }, + "OGFL50": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PA6-CF" + ], + "successor": "OFkOviHk" + }, + "OGFL51": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PA6-GF" + ], + "successor": "OFwaYjL6" + }, + "OGFL52": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PA12-CF" + ], + "successor": "OFX0ycRQ" + }, + "OGFL53": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PA612-CF" + ], + "successor": "OFS2tn6G" + }, + "OGFL54": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PET-CF" + ], + "successor": "OFHWSM21" + }, + "OGFL55": { + "claims": [ + "OrcaFilamentLibrary/Fiberon PETG-rCF" + ], + "successor": "OFk8t9mz" + }, + "OGFL95": { + "claims": [ + "OrcaFilamentLibrary/Generic PLA High Speed" + ], + "successor": "OFmpMwxS" + }, + "OGFL98": { + "claims": [ + "OrcaFilamentLibrary/Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OGFL99": { + "claims": [ + "Flashforge/Generic PLA", + "OrcaFilamentLibrary/Generic PLA", + "Sovol/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OGFLC99": { + "claims": [ + "OrcaFilamentLibrary/Generic CoPE" + ], + "successor": "OFjt9en1" + }, + "OGFN03": { + "claims": [ + "OrcaFilamentLibrary/Bambu PA-CF" + ], + "successor": "OFFNYwWR" + }, + "OGFN04": { + "claims": [ + "OrcaFilamentLibrary/Bambu PAHT-CF" + ], + "successor": "OF2VFe4J" + }, + "OGFN05": { + "claims": [ + "OrcaFilamentLibrary/Bambu PA6-CF" + ], + "successor": "OFniMuTN" + }, + "OGFN06": { + "claims": [ + "OrcaFilamentLibrary/Bambu PPA-CF" + ], + "successor": "OF54B0S0" + }, + "OGFN08": { + "claims": [ + "OrcaFilamentLibrary/Bambu PA6-GF" + ], + "successor": "OFNk8bxk" + }, + "OGFN96": { + "claims": [ + "OrcaFilamentLibrary/Generic PPA-GF" + ], + "successor": "OF8Tlg47" + }, + "OGFN97": { + "claims": [ + "OrcaFilamentLibrary/Generic PPA-CF" + ], + "successor": "OF8tPByX" + }, + "OGFN98": { + "claims": [ + "Custom/Generic PA-CF", + "OrcaFilamentLibrary/Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OGFNMK00": { + "claims": [ + "OrcaFilamentLibrary/Numakers PLA+" + ], + "successor": "OFqGRZyH" + }, + "OGFP97": { + "claims": [ + "OrcaFilamentLibrary/Generic PP" + ], + "successor": "OF1UNk9P" + }, + "OGFP99": { + "claims": [ + "OrcaFilamentLibrary/Generic PE" + ], + "successor": "OFPklMI1" + }, + "OGFPM001": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA" + ], + "successor": "OFsRDvTM" + }, + "OGFPM002": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Matte" + ], + "successor": "OFrOh600" + }, + "OGFPM003": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Marble" + ], + "successor": "OFKiSMWR" + }, + "OGFPM004": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Silk" + ], + "successor": "OFS8lTQt" + }, + "OGFPM005": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Satin" + ], + "successor": "OFPkCJKE" + }, + "OGFPM006": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Translucent" + ], + "successor": "OFCIUsWh" + }, + "OGFPM007": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Galaxy" + ], + "successor": "OFFkCLBl" + }, + "OGFPM008": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Celestial" + ], + "successor": "OFRiYgMK" + }, + "OGFPM009": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Starlight" + ], + "successor": "OFC78WGQ" + }, + "OGFPM010": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Glow" + ], + "successor": "OF0gGRWk" + }, + "OGFPM011": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Luminous" + ], + "successor": "OF0kCNDK" + }, + "OGFPM012": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Metallic" + ], + "successor": "OFjb0wos" + }, + "OGFPM013": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Neon" + ], + "successor": "OFO1GEq6" + }, + "OGFPM014": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA UV Shift" + ], + "successor": "OF1N1qMK" + }, + "OGFPM015": { + "claims": [ + "OrcaFilamentLibrary/Panchroma PLA Temp Shift" + ], + "successor": "OFhASRWj" + }, + "OGFPM016": { + "claims": [ + "OrcaFilamentLibrary/Panchroma CoPE" + ], + "successor": "OFqw2PQA" + }, + "OGFPM017": { + "claims": [ + "OrcaFilamentLibrary/Polymaker HT-PLA" + ], + "successor": "OFPoyiFs" + }, + "OGFPM018": { + "claims": [ + "OrcaFilamentLibrary/Polymaker HT-PLA-GF" + ], + "successor": "OFlwmqrC" + }, + "OGFPM019": { + "claims": [ + "OrcaFilamentLibrary/PolyLite PLA Pro" + ], + "successor": "OFF9OKoY" + }, + "OGFR00": { + "claims": [ + "OrcaFilamentLibrary/FusRock ABS-GF" + ], + "successor": "OFmn9NZL" + }, + "OGFR98": { + "claims": [ + "OrcaFilamentLibrary/Generic PHA" + ], + "successor": "OF74KeQR" + }, + "OGFR99": { + "claims": [ + "OrcaFilamentLibrary/Generic EVA" + ], + "successor": "OFCD8qiU" + }, + "OGFS00": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support W" + ], + "successor": "OFsHSVZc" + }, + "OGFS01": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support G" + ], + "successor": "OFQHiNJs" + }, + "OGFS02": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support For PLA" + ], + "successor": "OFAnyRUI" + }, + "OGFS03": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support For PA/PET" + ], + "successor": "OFMTK0UC" + }, + "OGFS04": { + "claims": [ + "OrcaFilamentLibrary/Bambu PVA" + ], + "successor": "OFzyIxba" + }, + "OGFS05": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support For PLA/PETG" + ], + "successor": "OFIfnzxC" + }, + "OGFS06": { + "claims": [ + "OrcaFilamentLibrary/Bambu Support for ABS" + ], + "successor": "OFf6mfQO" + }, + "OGFS97": { + "claims": [ + "Flashforge/Generic BVOH", + "OrcaFilamentLibrary/Generic BVOH" + ], + "successor": "OFo2UF2C" + }, + "OGFS98": { + "claims": [ + "OrcaFilamentLibrary/Generic HIPS" + ], + "successor": "OFsFon5l" + }, + "OGFS99": { + "claims": [ + "OrcaFilamentLibrary/Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OGFSNL02": { + "claims": [ + "OrcaFilamentLibrary/SUNLU PLA Matte" + ], + "successor": "OFpW4gdi" + }, + "OGFSNL03": { + "claims": [ + "OrcaFilamentLibrary/SUNLU PLA+" + ], + "successor": "OFMUWNkp" + }, + "OGFSNL04": { + "claims": [ + "OrcaFilamentLibrary/SUNLU PLA+ 2.0" + ], + "successor": "OFHmPYRy" + }, + "OGFSNL05": { + "claims": [ + "OrcaFilamentLibrary/SUNLU Silk PLA+" + ], + "successor": "OFpPGSKG" + }, + "OGFSNL06": { + "claims": [ + "OrcaFilamentLibrary/SUNLU PLA Marble" + ], + "successor": "OFxUwUeW" + }, + "OGFSNL07": { + "claims": [ + "OrcaFilamentLibrary/SUNLU Wood PLA" + ], + "successor": "OFLJ8S6I" + }, + "OGFT01": { + "claims": [ + "OrcaFilamentLibrary/Bambu PET-CF" + ], + "successor": "OFHa48An" + }, + "OGFT02": { + "claims": [], + "successor": null + }, + "OGFU00": { + "claims": [ + "OrcaFilamentLibrary/Bambu TPU 95A HF" + ], + "successor": "OFvKUnLh" + }, + "OGFU01": { + "claims": [ + "OrcaFilamentLibrary/Bambu TPU 95A" + ], + "successor": "OFVCkX5w" + }, + "OGFU99": { + "claims": [ + "OrcaFilamentLibrary/Generic TPU", + "Sovol/Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OVTABS08": { + "claims": [ + "OrcaFilamentLibrary/Overture ABS Basic" + ], + "successor": "OFDvqJ6n" + }, "P11851ba": { "claims": [ "Artillery/Artillery PET" @@ -85,6 +1467,30 @@ "Artillery/Artillery ASA" ], "successor": "OFtmT4Nd" + }, + "VLMNT01": { + "claims": [ + "OrcaFilamentLibrary/Valment PLA" + ], + "successor": "OFDe8uyM" + }, + "VLMNT02": { + "claims": [ + "OrcaFilamentLibrary/Valment PLA Silk" + ], + "successor": "OFpBlrvY" + }, + "VLMNT03": { + "claims": [ + "OrcaFilamentLibrary/Valment PLA-CF" + ], + "successor": "OFfq5YXA" + }, + "VLMNT04": { + "claims": [ + "OrcaFilamentLibrary/Valment PLA Galaxy" + ], + "successor": "OFB5SmWk" } } } diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index f3004c5077..69e671d74d 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1,33 +1,7 @@ { "alias_exceptions": [ - "Afinia/Afinia PLA", - "Afinia/Afinia PLA@HS", - "Afinia/Afinia Value PLA", - "Afinia/Afinia Value PLA@HS", - "Anker/Anker Generic PA @base", - "Anker/Anker Generic PA-CF @base", "Anker/Anker Generic PC @base", - "Anker/Anker Generic PETG @base", - "Anker/Anker Generic PETG-CF @base", - "Anker/Anker Generic PLA @base", - "Anker/Anker Generic PLA Silk @base", - "Anker/Anker Generic PLA+ @base", - "Anker/Anker Generic PLA-CF @base", - "Anycubic/Anycubic Generic PA", - "Anycubic/Anycubic Generic PA-CF", "Anycubic/Anycubic Generic PC", - "Anycubic/Anycubic Generic PETG", - "Anycubic/Anycubic Generic PLA", - "Anycubic/Anycubic Generic PLA-CF", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", @@ -37,560 +11,29 @@ "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", - "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Panchroma PLA @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", - "Artillery/Artillery Generic PETG", - "Artillery/Artillery Generic PLA", - "Artillery/Artillery Generic PLA-CF", - "BBL/BETA HIPS @base", - "BBL/BETA PAHT-CF @base", - "BBL/BETA PETG @base", - "BBL/BETA PETG Fluorescence @base", - "BBL/BETA PETG Glitter @base", - "BBL/BETA PETG Glow @base", - "BBL/BETA PETG Gradient @base", - "BBL/BETA PETG HF @base", - "BBL/BETA PETG Heat Color Change @base", - "BBL/BETA PETG Marble @base", - "BBL/BETA PETG Matte @base", - "BBL/BETA PETG Metallic @base", - "BBL/BETA PETG Transparent @base", - "BBL/BETA PETG UV Color Change @base", - "BBL/BETA PETG-CF @base", - "BBL/BETA PETG-GF @base", - "BBL/BETA PLA Basic @base", - "BBL/BETA PLA Chameleon @base", - "BBL/BETA PLA Fluorescence @base", - "BBL/BETA PLA Glitter @base", - "BBL/BETA PLA Glow @base", - "BBL/BETA PLA Gradient @base", - "BBL/BETA PLA Heat Color Change @base", - "BBL/BETA PLA High Speed @base", - "BBL/BETA PLA High Temp @base", - "BBL/BETA PLA Marble @base", - "BBL/BETA PLA Matte @base", - "BBL/BETA PLA Metal @base", - "BBL/BETA PLA Metallic @base", - "BBL/BETA PLA PRO @base", - "BBL/BETA PLA Silk @base", - "BBL/BETA PLA Silk+ @base", - "BBL/BETA PLA Transparent @base", - "BBL/BETA PLA UV Color Change @base", - "BBL/BETA PLA Wood @base", - "BBL/BETA PLA Youth @base", - "BBL/BETA PLA-CF @base", - "BBL/Bambu PA-CF @base", - "BBL/Bambu PA6-CF @base", - "BBL/Bambu PA6-GF @base", - "BBL/Bambu PAHT-CF @base", "BBL/Bambu PC @base", "BBL/Bambu PC FR @base", - "BBL/Bambu PET-CF @base", - "BBL/Bambu PETG Basic @base", - "BBL/Bambu PETG HF @base", - "BBL/Bambu PETG Translucent @base", - "BBL/Bambu PETG-CF @base", - "BBL/Bambu PLA Aero @base", - "BBL/Bambu PLA Basic @base", - "BBL/Bambu PLA Dynamic @base", - "BBL/Bambu PLA Galaxy @base", - "BBL/Bambu PLA Glow @base", - "BBL/Bambu PLA Lite @base", - "BBL/Bambu PLA Marble @base", - "BBL/Bambu PLA Matte @base", - "BBL/Bambu PLA Metal @base", - "BBL/Bambu PLA Silk @base", - "BBL/Bambu PLA Silk+ @base", - "BBL/Bambu PLA Sparkle @base", - "BBL/Bambu PLA Tough @base", - "BBL/Bambu PLA Tough+ @base", - "BBL/Bambu PLA Translucent @base", - "BBL/Bambu PLA Wood @base", - "BBL/Bambu PLA-CF @base", - "BBL/Bambu PPA-CF @base", - "BBL/Bambu Support For PA/PET @base", - "BBL/Bambu Support For PLA @base", - "BBL/Bambu Support For PLA/PETG @base", - "BBL/Bambu Support G @base", - "BBL/Bambu Support W @base", "BBL/COEX NYLEX UNFILLED @BBL X1C", - "BBL/Fiberon PA12-CF @base", - "BBL/Fiberon PA12-CF10 @base", - "BBL/Fiberon PA6-CF @base", - "BBL/Fiberon PA6-CF20 @base", - "BBL/Fiberon PA6-GF @base", - "BBL/Fiberon PA6-GF25 @base", - "BBL/Fiberon PA612-CF @base", - "BBL/Fiberon PA612-CF15 @base", - "BBL/Fiberon PET-CF @base", - "BBL/Fiberon PET-CF17 @base", - "BBL/Fiberon PETG-ESD @base", - "BBL/Fiberon PETG-rCF @base", - "BBL/Fiberon PETG-rCF08 @base", - "BBL/Generic BVOH @base", - "BBL/Generic EVA @base", - "BBL/Generic HIPS @base", - "BBL/Generic PA @base", - "BBL/Generic PA-CF @base", "BBL/Generic PC @base", - "BBL/Generic PCTG @base", - "BBL/Generic PE @base", - "BBL/Generic PE-CF @base", - "BBL/Generic PETG @base", - "BBL/Generic PETG HF @base", - "BBL/Generic PETG-CF @base", - "BBL/Generic PHA @base", - "BBL/Generic PLA @base", - "BBL/Generic PLA High Speed @base", - "BBL/Generic PLA Silk @base", - "BBL/Generic PLA-CF @base", - "BBL/Generic PP @base", - "BBL/Generic PP-CF @base", - "BBL/Generic PP-GF @base", - "BBL/Generic PPA-CF @base", - "BBL/Generic PPA-GF @base", - "BBL/Generic SBS @base", - "BBL/Numakers PLA+ @base", - "BBL/Overture Matte PLA @base", - "BBL/Overture PLA @base", - "BBL/Overture PLA Pro @base", - "BBL/Panchroma CoPE @base", - "BBL/Panchroma PLA @base", - "BBL/Panchroma PLA Celestial @base", - "BBL/Panchroma PLA Galaxy @base", - "BBL/Panchroma PLA Glow @base", - "BBL/Panchroma PLA Luminous @base", - "BBL/Panchroma PLA Marble @base", - "BBL/Panchroma PLA Matte @base", - "BBL/Panchroma PLA Metallic @base", - "BBL/Panchroma PLA Neon @base", - "BBL/Panchroma PLA Satin @base", - "BBL/Panchroma PLA Silk @base", - "BBL/Panchroma PLA Starlight @base", - "BBL/Panchroma PLA Temp Shift @base", - "BBL/Panchroma PLA Translucent @base", - "BBL/Panchroma PLA UV Shift @base", - "BBL/PolyLite CosPLA @base", - "BBL/PolyLite PETG @base", - "BBL/PolyLite PLA @base", - "BBL/PolyLite PLA Galaxy @base", - "BBL/PolyLite PLA Glow @base", - "BBL/PolyLite PLA Luminous @base", - "BBL/PolyLite PLA Neon @base", - "BBL/PolyLite PLA Pro @base", - "BBL/PolyLite PLA Starlight @base", - "BBL/PolyLite PLA Translucent @base", - "BBL/PolyTerra PLA @base", - "BBL/PolyTerra PLA Marble @base", - "BBL/PolyTerra PLA+ @base", - "BBL/Polymaker HT-PLA @base", - "BBL/Polymaker HT-PLA-GF @base", - "BBL/SUNLU PETG @base", - "BBL/SUNLU PLA Marble @base", - "BBL/SUNLU PLA Matte @base", - "BBL/SUNLU PLA+ 2.0 @base", - "BBL/SUNLU PLA+ @base", - "BBL/SUNLU Silk PLA+ @base", - "BBL/SUNLU Wood PLA @base", - "BBL/eSUN PLA+ @base", - "Blocks/Blocks Generic PA", - "Blocks/Blocks Generic PA-CF", "Blocks/Blocks Generic PC", - "Blocks/Blocks Generic PLA", - "Blocks/Blocks Generic PLA-CF", - "CONSTRUCT3D/C1 Generic High Flow PETG", - "CONSTRUCT3D/C1 Generic PETG", - "CONSTRUCT3D/C1 Generic PLA", - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying Generic PETG", - "Chuanying/Chuanying Generic PETG-CF10", - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying Generic PLA-CF10", - "Chuanying/Chuanying Generic PLA-Silk", - "Co Print/CoPrint Generic PLA", - "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", - "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", - "CoLiDo/CoLiDo PETG @CoLiDo SR1", - "CoLiDo/CoLiDo PLA @CoLiDo SR1", - "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", - "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", - "Comgrow/Comgrow Generic PETG", - "Comgrow/Comgrow Generic PLA", - "Creality/CR-Nylon @K1 Max_CFS-C-all", - "Creality/CR-Nylon @K1C-all", - "Creality/CR-Nylon @K1C_CFS-C-all", - "Creality/CR-Nylon @K1_CFS-C-all", - "Creality/CR-Nylon @K2 Plus-all", - "Creality/CR-PLA @Ender-3 V4-all", - "Creality/CR-PLA @Hi-all", - "Creality/CR-PLA @K1 Max_CFS-C-all", - "Creality/CR-PLA @K1 SE-all", - "Creality/CR-PLA @K1 SE_CFS-C-all", - "Creality/CR-PLA @K1C-all", - "Creality/CR-PLA @K1C_CFS-C-all", - "Creality/CR-PLA @K1_CFS-C-all", - "Creality/CR-PLA @K2 Plus-all", - "Creality/CR-PLA @K2 Pro-all", - "Creality/CR-PLA @K2 SE-all", - "Creality/CR-PLA @K2-all", - "Creality/CR-PLA @SPARKX i7-all", - "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", - "Creality/CR-PLA Carbon @K1C-all", - "Creality/CR-PLA Carbon @K1C_CFS-C-all", - "Creality/CR-PLA Carbon @K1_CFS-C-all", - "Creality/CR-PLA Carbon @K2 Plus-all", - "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", - "Creality/CR-PLA Fluo @K1C-all", - "Creality/CR-PLA Fluo @K1C_CFS-C-all", - "Creality/CR-PLA Fluo @K1_CFS-C-all", - "Creality/CR-PLA Fluo @K2 Plus-all", - "Creality/CR-PLA Fluo @K2 Pro-all", - "Creality/CR-PLA Fluo @K2-all", - "Creality/CR-PLA Fluo @SPARKX i7-all", - "Creality/CR-PLA Matte @Ender-3 V4-all", - "Creality/CR-PLA Matte @K1 Max_CFS-C-all", - "Creality/CR-PLA Matte @K1C-all", - "Creality/CR-PLA Matte @K1C_CFS-C-all", - "Creality/CR-PLA Matte @K1_CFS-C-all", - "Creality/CR-PLA Matte @K2 Plus-all", - "Creality/CR-PLA Matte @K2 Pro-all", - "Creality/CR-PLA Matte @K2-all", - "Creality/CR-PLA Matte @SPARKX i7-all", - "Creality/CR-Silk @Ender-3 V4-all", - "Creality/CR-Silk @Hi-all", - "Creality/CR-Silk @K1 Max_CFS-C-all", - "Creality/CR-Silk @K1 SE-all", - "Creality/CR-Silk @K1 SE_CFS-C-all", - "Creality/CR-Silk @K1C-all", - "Creality/CR-Silk @K1C_CFS-C-all", - "Creality/CR-Silk @K1_CFS-C-all", - "Creality/CR-Silk @K2 Plus-all", - "Creality/CR-Silk @K2 Pro-all", - "Creality/CR-Silk @K2 SE-all", - "Creality/CR-Silk @K2-all", - "Creality/CR-Silk @SPARKX i7-all", - "Creality/CR-Wood @K1 Max_CFS-C-all", - "Creality/CR-Wood @K1C-all", - "Creality/CR-Wood @K1C_CFS-C-all", - "Creality/CR-Wood @K1_CFS-C-all", - "Creality/CR-Wood @K2 Plus-all", - "Creality/Creality Generic PA-CF", "Creality/Creality Generic PC", - "Creality/Creality Generic PETG", - "Creality/Creality Generic PLA", - "Creality/Creality Generic PLA-CF", - "Creality/Creality HF Generic PLA", - "Creality/Creality HF Generic Speed PLA", - "Creality/EN-PLA+ @K1 Max_CFS-C-all", - "Creality/EN-PLA+ @K1C-all", - "Creality/EN-PLA+ @K1C_CFS-C-all", - "Creality/EN-PLA+ @K1_CFS-C-all", - "Creality/EN-PLA+ @K2 Plus-all", - "Creality/EN-PLA+ @K2 Pro-all", - "Creality/EN-PLA+ @K2-all", - "Creality/EN-PLA+ @SPARKX i7-all", - "Creality/ENDER FAST PLA @Hi-all", - "Creality/ENDER FAST PLA @K2 Plus-all", - "Creality/ENDER FAST PLA @K2 Pro-all", - "Creality/ENDER FAST PLA @K2-all", - "Creality/ENDER FAST PLA @SPARKX i7-all", - "Creality/Ender-PLA @Ender-3 V4-all", - "Creality/Ender-PLA @Hi-all", - "Creality/Ender-PLA @K1 Max_CFS-C-all", - "Creality/Ender-PLA @K1C-all", - "Creality/Ender-PLA @K1C_CFS-C-all", - "Creality/Ender-PLA @K1_CFS-C-all", - "Creality/Ender-PLA @K2 Plus-all", - "Creality/Ender-PLA @K2 Pro-all", - "Creality/Ender-PLA @K2-all", - "Creality/Ender-PLA @SPARKX i7-all", - "Creality/Generic HIPS @K1 Max_CFS-C-all", - "Creality/Generic HIPS @K1C-all", - "Creality/Generic HIPS @K1C_CFS-C-all", - "Creality/Generic HIPS @K1_CFS-C-all", - "Creality/Generic HIPS @K2 Plus-all", - "Creality/Generic PA @K1 Max_CFS-C-all", - "Creality/Generic PA @K1C-all", - "Creality/Generic PA @K1C_CFS-C-all", - "Creality/Generic PA @K1_CFS-C-all", - "Creality/Generic PA @K2 Plus-all", - "Creality/Generic PA @K2 Pro-all", - "Creality/Generic PA @K2-all", - "Creality/Generic PA-CF @K1 Max_CFS-C-all", - "Creality/Generic PA-CF @K1C-all", - "Creality/Generic PA-CF @K1C_CFS-C-all", - "Creality/Generic PA-CF @K1_CFS-C-all", - "Creality/Generic PA-CF @K2 Plus-all", - "Creality/Generic PA12-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K1 Max_CFS-C-all", - "Creality/Generic PA6-CF @K1C-all", - "Creality/Generic PA6-CF @K1C_CFS-C-all", - "Creality/Generic PA6-CF @K1_CFS-C-all", - "Creality/Generic PA6-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K2 Pro-all", - "Creality/Generic PA612-CF @K2 Plus-all", - "Creality/Generic PA612-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", - "Creality/Generic PAHT-CF @K1C-all", - "Creality/Generic PAHT-CF @K1C_CFS-C-all", - "Creality/Generic PAHT-CF @K1_CFS-C-all", - "Creality/Generic PAHT-CF @K2 Plus-all", - "Creality/Generic PAHT-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K2-all", "Creality/Generic PC @K1 Max_CFS-C-all", "Creality/Generic PC @K1C-all", "Creality/Generic PC @K1C_CFS-C-all", "Creality/Generic PC @K1_CFS-C-all", "Creality/Generic PC @K2 Plus-all", "Creality/Generic PC @K2 Pro-all", - "Creality/Generic PET @K1 Max_CFS-C-all", - "Creality/Generic PET @K1C-all", - "Creality/Generic PET @K1C_CFS-C-all", - "Creality/Generic PET @K1_CFS-C-all", - "Creality/Generic PET @K2 Plus-all", - "Creality/Generic PET @K2 Pro-all", - "Creality/Generic PET @K2-all", - "Creality/Generic PET-CF @K1 Max_CFS-C-all", - "Creality/Generic PET-CF @K1C-all", - "Creality/Generic PET-CF @K1C_CFS-C-all", - "Creality/Generic PET-CF @K1_CFS-C-all", - "Creality/Generic PET-CF @K2 Plus-all", - "Creality/Generic PET-CF @K2 Pro-all", - "Creality/Generic PLA @Ender-3 V4-all", - "Creality/Generic PLA @Hi-all", - "Creality/Generic PLA @K1 Max_CFS-C-all", - "Creality/Generic PLA @K1 SE-all", - "Creality/Generic PLA @K1 SE_CFS-C-all", - "Creality/Generic PLA @K1C-all", - "Creality/Generic PLA @K1C_CFS-C-all", - "Creality/Generic PLA @K1_CFS-C-all", - "Creality/Generic PLA @K2 Plus-all", - "Creality/Generic PLA @K2 Pro-all", - "Creality/Generic PLA @K2 SE-all", - "Creality/Generic PLA @K2-all", - "Creality/Generic PLA @SPARKX i7-all", - "Creality/Generic PLA-CF @Ender-3 V4-all", - "Creality/Generic PLA-CF @K1 Max_CFS-C-all", - "Creality/Generic PLA-CF @K1 SE-all", - "Creality/Generic PLA-CF @K1 SE_CFS-C-all", - "Creality/Generic PLA-CF @K1C-all", - "Creality/Generic PLA-CF @K1C_CFS-C-all", - "Creality/Generic PLA-CF @K1_CFS-C-all", - "Creality/Generic PLA-CF @K2 Plus-all", - "Creality/Generic PLA-CF @K2 Pro-all", - "Creality/Generic PLA-CF @K2 SE-all", - "Creality/Generic PLA-CF @K2-all", - "Creality/Generic PLA-CF @SPARKX i7-all", - "Creality/Generic PLA-Silk @Ender-3 V4-all", - "Creality/Generic PLA-Silk @Hi-all", - "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", - "Creality/Generic PLA-Silk @K1 SE-all", - "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", - "Creality/Generic PLA-Silk @K1C-all", - "Creality/Generic PLA-Silk @K1C_CFS-C-all", - "Creality/Generic PLA-Silk @K1_CFS-C-all", - "Creality/Generic PLA-Silk @K2 Plus-all", - "Creality/Generic PLA-Silk @K2 Pro-all", - "Creality/Generic PLA-Silk @K2 SE-all", - "Creality/Generic PLA-Silk @K2-all", - "Creality/Generic PLA-Silk @SPARKX i7-all", - "Creality/Generic PP @K1 Max_CFS-C-all", - "Creality/Generic PP @K1C-all", - "Creality/Generic PP @K1C_CFS-C-all", - "Creality/Generic PP @K1_CFS-C-all", - "Creality/Generic PP @K2 Plus-all", - "Creality/Generic PP @K2 Pro-all", - "Creality/Generic PP @K2-all", - "Creality/Generic Support for PA @K2 Plus-all", - "Creality/Generic Support for PLA @K2 Plus-all", - "Creality/HP Ultra PLA @K1 Max_CFS-C-all", - "Creality/HP Ultra PLA @K1C-all", - "Creality/HP Ultra PLA @K1C_CFS-C-all", - "Creality/HP Ultra PLA @K1_CFS-C-all", - "Creality/HP Ultra PLA @K2 Plus-all", - "Creality/Hyper L-W PLA @Hi-all", - "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", - "Creality/Hyper L-W PLA @K1 SE-all", - "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", - "Creality/Hyper L-W PLA @K1C-all", - "Creality/Hyper L-W PLA @K1C_CFS-C-all", - "Creality/Hyper L-W PLA @K1_CFS-C-all", - "Creality/Hyper L-W PLA @K2 Plus-all", - "Creality/Hyper L-W PLA @K2 Pro-all", - "Creality/Hyper L-W PLA @K2-all", - "Creality/Hyper Luminous @Hi-all", - "Creality/Hyper Luminous @K1C-all", - "Creality/Hyper Luminous @K2 Plus-all", - "Creality/Hyper Luminous @K2 Pro-all", - "Creality/Hyper Luminous @K2-all", - "Creality/Hyper Luminous @SPARKX i7-all", - "Creality/Hyper Marble @Hi-all", - "Creality/Hyper Marble @K1 Max_CFS-C-all", - "Creality/Hyper Marble @K1C-all", - "Creality/Hyper Marble @K1C_CFS-C-all", - "Creality/Hyper Marble @K1_CFS-C-all", - "Creality/Hyper Marble @K2 Plus-all", - "Creality/Hyper Marble @K2 Pro-all", - "Creality/Hyper Marble @K2 SE-all", - "Creality/Hyper Marble @K2-all", - "Creality/Hyper Marble @SPARKX i7-all", - "Creality/Hyper PA6-CF @K2 Plus-all", - "Creality/Hyper PA6-CF @K2 Pro-all", - "Creality/Hyper PA612-CF @K2 Plus-all", - "Creality/Hyper PA612-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", - "Creality/Hyper PAHT-CF @K1C-all", - "Creality/Hyper PAHT-CF @K1C_CFS-C-all", - "Creality/Hyper PAHT-CF @K1_CFS-C-all", - "Creality/Hyper PAHT-CF @K2 Plus-all", - "Creality/Hyper PAHT-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K2-all", "Creality/Hyper PC @K2 Plus-all", "Creality/Hyper PC @K2 Pro-all", - "Creality/Hyper PLA @Ender-3 V4-all", - "Creality/Hyper PLA @Hi-all", - "Creality/Hyper PLA @K1 Max_CFS-C-all", - "Creality/Hyper PLA @K1 SE-all", - "Creality/Hyper PLA @K1 SE_CFS-C-all", - "Creality/Hyper PLA @K1C-all", - "Creality/Hyper PLA @K1C_CFS-C-all", - "Creality/Hyper PLA @K1_CFS-C-all", - "Creality/Hyper PLA @K2 Plus-all", - "Creality/Hyper PLA @K2 Pro-all", - "Creality/Hyper PLA @K2 SE-all", - "Creality/Hyper PLA @K2-all", - "Creality/Hyper PLA @SPARKX i7-all", - "Creality/Hyper PLA-CF @Ender-3 V4-all", - "Creality/Hyper PLA-CF @Hi-all", - "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", - "Creality/Hyper PLA-CF @K1 SE-all", - "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", - "Creality/Hyper PLA-CF @K1C-all", - "Creality/Hyper PLA-CF @K1C_CFS-C-all", - "Creality/Hyper PLA-CF @K1_CFS-C-all", - "Creality/Hyper PLA-CF @K2 Plus-all", - "Creality/Hyper PLA-CF @K2 Pro-all", - "Creality/Hyper PLA-CF @K2 SE-all", - "Creality/Hyper PLA-CF @K2-all", - "Creality/Hyper PLA-CF @SPARKX i7-all", - "Creality/Hyper PPA-CF @K2 Plus-all", - "Creality/Hyper PPA-CF @K2 Pro-all", - "Creality/Hyper Stardust @Hi-all", - "Creality/Hyper Stardust @K1 Max_CFS-C-all", - "Creality/Hyper Stardust @K1C-all", - "Creality/Hyper Stardust @K1C_CFS-C-all", - "Creality/Hyper Stardust @K1_CFS-C-all", - "Creality/Hyper Stardust @K2 Plus-all", - "Creality/Hyper Stardust @K2 Pro-all", - "Creality/Hyper Stardust @K2 SE-all", - "Creality/Hyper Stardust @K2-all", - "Creality/Hyper Stardust @SPARKX i7-all", - "Creality/Panchroma PLA Matte @K2 Plus-all", - "Creality/Panchroma PLA Satin @K2 Plus-all", - "Creality/PolySonic PLA @K2 Plus-all", - "Creality/PolySonic PLA Pro @K2 Plus-all", - "Creality/Soleyin Ultra PLA @Ender-3 V4-all", - "Creality/Soleyin Ultra PLA @Hi-all", - "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1C-all", - "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1_CFS-C-all", - "Creality/Soleyin Ultra PLA @K2 Plus-all", - "Creality/Soleyin Ultra PLA @K2 Pro-all", - "Creality/Soleyin Ultra PLA @K2 SE-all", - "Creality/Soleyin Ultra PLA @K2-all", - "Creality/Soleyin Ultra PLA @SPARKX i7-all", - "Creality/eSUN PET-Basic @K2 Plus-all", - "Creality/eSUN PLA+ @K2 Plus-all", - "Creality/eSUN PLA-CF @K2 Plus-all", - "Creality/eSUN PLA-HS @K2 Plus-all", - "Creality/eSUN PLA-LW @K2 Plus-all", - "Creality/eSUN PLA-Lite @K2 Plus-all", - "Creality/eSUN PLA-Matte @K2 Plus-all", - "Creality/eSUN PLA-Silk @K2 Plus-all", - "Cubicon/Cubicon PLA @base", "Custom/Generic PC @MyToolChanger", "Custom/Generic PETG @MyToolChanger", "Custom/Generic PLA @MyToolChanger", "Custom/Generic PLA-CF @MyToolChanger", "Custom/Generic PVA @MyToolChanger", "Custom/Generic TPU @MyToolChanger", - "DeltaMaker/DeltaMaker Brand PLA", - "DeltaMaker/DeltaMaker Generic PETG", - "DeltaMaker/DeltaMaker Generic PLA", - "Dremel/Dremel Generic PLA", - "Elegoo/Elegoo PAHT @base", "Elegoo/Elegoo PC @base", - "Elegoo/Elegoo PETG @base", - "Elegoo/Elegoo PLA @base", - "Elegoo/Generic PA @base", "Elegoo/Generic PC @base", - "Elegoo/Generic PET @base", - "Elegoo/Generic PETG @base", - "Elegoo/Generic PLA @base", - "FLSun/FLSun Generic PA", - "FLSun/FLSun Generic PA-CF", "FLSun/FLSun Generic PC", - "FLSun/FLSun Generic PETG", - "FLSun/FLSun Generic PLA", - "FLSun/FLSun Generic PLA-CF", "Flashforge/Flashforge ABS Basic @FF C5", "Flashforge/Flashforge ABS Basic @FF C5P", "Flashforge/Flashforge ABS-GF @FF C5", @@ -601,12 +44,6 @@ "Flashforge/Flashforge ASA-CF @FF C5P", "Flashforge/Flashforge ASA-GF @FF C5", "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge Generic HS PLA", - "Flashforge/Flashforge Generic PETG", - "Flashforge/Flashforge Generic PETG-CF10", - "Flashforge/Flashforge Generic PLA", - "Flashforge/Flashforge Generic PLA-CF10", - "Flashforge/Flashforge Generic PLA-Silk", "Flashforge/Flashforge HIPS @FF C5", "Flashforge/Flashforge HIPS @FF C5P", "Flashforge/Flashforge HS PETG @FF C5", @@ -619,14 +56,12 @@ "Flashforge/Flashforge PAHT-CF @FF C5P", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG", "Flashforge/Flashforge PETG Pro @FF C5", "Flashforge/Flashforge PETG Pro @FF C5P", "Flashforge/Flashforge PETG Transparent @FF C5", "Flashforge/Flashforge PETG Transparent @FF C5P", "Flashforge/Flashforge PETG-CF @FF C5", "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PLA", "Flashforge/Flashforge PLA Matte @FF C5", "Flashforge/Flashforge PLA Matte @FF C5P", "Flashforge/Flashforge PLA Metal @FF C5", @@ -663,243 +98,25 @@ "Flashforge/FusRock S-Multi @FF C5P", "Flashforge/FusRock S-PAHT @FF C5", "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/Generic PETG @Flashforge Artemis", "Flashforge/Generic TPU-64D @FF C5", "Flashforge/Generic TPU-64D @FF C5P", "Flashforge/Generic TPU-90A @FF C5", "Flashforge/Generic TPU-90A @FF C5P", "Flashforge/Generic TPU-95A @FF C5", "Flashforge/Generic TPU-95A @FF C5P", - "Flashforge/SUNLU PETG @base", - "Flashforge/SUNLU PLA Marble @base", - "Flashforge/SUNLU PLA Matte @base", - "Flashforge/SUNLU PLA+ 2.0 @base", - "Flashforge/SUNLU PLA+ @base", - "Flashforge/SUNLU Silk PLA+ @base", - "Flashforge/SUNLU Wood PLA @base", - "FlyingBear/FlyingBear Generic PA-CF", "FlyingBear/FlyingBear Generic PC", - "FlyingBear/FlyingBear Generic PETG", - "FlyingBear/FlyingBear Generic PLA", - "InfiMech/InfiMech Generic PA-CF", "InfiMech/InfiMech Generic PC", - "InfiMech/InfiMech Generic PETG", - "InfiMech/InfiMech Generic PLA", - "LH/LHS PC CF", - "LH/LHS PCTG", - "LH/LHS PETG", - "LH/LHS PLA", - "LONGER/Generic PETG @LONGER LK10", - "LONGER/Generic PETG @LONGER LK10 Plus", - "LONGER/Generic PLA @LONGER LK10", - "LONGER/Generic PLA @LONGER LK10 Plus", "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", - "OrcaArena/Arena PA-CF @base", - "OrcaArena/Arena PAHT-CF @base", "OrcaArena/Arena PC @base", - "OrcaArena/Arena PET-CF @base", - "OrcaArena/Arena PETG Basic @base", - "OrcaArena/Arena PETG-CF @base", - "OrcaArena/Arena PLA Basic @base", - "OrcaArena/Arena PLA Impact @base", - "OrcaArena/Arena PLA Marble @base", - "OrcaArena/Arena PLA Matte @base", - "OrcaArena/Arena PLA Metal @base", - "OrcaArena/Arena PLA Silk @base", - "OrcaArena/Arena PLA Sparkle @base", - "OrcaArena/Arena PLA Tough @base", - "OrcaArena/Arena PLA-CF @base", - "OrcaArena/Arena Support G @base", - "OrcaArena/Arena Support W @base", - "OrcaArena/OrcaArena Generic PA", - "OrcaArena/OrcaArena Generic PA-CF", "OrcaArena/OrcaArena Generic PC @base", - "OrcaArena/OrcaArena Generic PETG @base", - "OrcaArena/OrcaArena Generic PETG-CF @base", - "OrcaArena/OrcaArena Generic PLA @base", - "OrcaArena/OrcaArena Generic PLA Silk @base", - "OrcaArena/OrcaArena Generic PLA-CF @base", - "OrcaArena/PolyLite PLA @base", - "OrcaArena/PolyTerra PLA @base", - "Peopoly/Peopoly Generic PLA", - "Peopoly/Peopoly Lancer PLA-C", - "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", - "Prusa/Prusa Generic PA @MK3.5", - "Prusa/Prusa Generic PA @MK3.5 0.25", - "Prusa/Prusa Generic PA @MK3.5 0.6", - "Prusa/Prusa Generic PA @MK3.5 0.8", - "Prusa/Prusa Generic PA @base", - "Prusa/Prusa Generic PA-CF @MK3.5", - "Prusa/Prusa Generic PA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PA-CF @base", - "Prusa/Prusa Generic PETG @CORE One", - "Prusa/Prusa Generic PETG @MK3.5", - "Prusa/Prusa Generic PETG @MK3.5 0.25", - "Prusa/Prusa Generic PETG @MK3.5 0.6", - "Prusa/Prusa Generic PETG @MK3.5 0.8", - "Prusa/Prusa Generic PETG @MK4S", - "Prusa/Prusa Generic PETG @base", - "Prusa/Prusa Generic PETG HF @MK3.5", - "Prusa/Prusa Generic PETG HF @MK3.5 0.6", - "Prusa/Prusa Generic PETG HF @MK3.5 0.8", - "Prusa/Prusa Generic PETG HF @base", - "Prusa/Prusa Generic PLA @CORE One", - "Prusa/Prusa Generic PLA @MK3.5", - "Prusa/Prusa Generic PLA @MK3.5 0.25", - "Prusa/Prusa Generic PLA @MK3.5 0.6", - "Prusa/Prusa Generic PLA @MK3.5 0.8", - "Prusa/Prusa Generic PLA @MK4S", - "Prusa/Prusa Generic PLA @base", - "Prusa/Prusa Generic PLA HF @MK3.5", - "Prusa/Prusa Generic PLA HF @MK3.5 0.6", - "Prusa/Prusa Generic PLA HF @MK3.5 0.8", - "Prusa/Prusa Generic PLA HF @base", - "Prusa/Prusa Generic PLA Silk @CORE One", - "Prusa/Prusa Generic PLA-CF @MK3.5", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PLA-CF @base", - "Prusa/Prusament PA-CF @CORE One", - "Prusa/Prusament PETG @CORE One", - "Prusa/Prusament PETG @base", - "Prusa/Prusament PLA @CORE One", - "Prusa/Prusament PLA @base", - "Prusa/Prusament rPLA @CORE One", - "Prusa/Prusament rPLA @base", - "Qidi/Bambu PETG", - "Qidi/Bambu PLA", - "Qidi/HATCHBOX PETG @Qidi", - "Qidi/HATCHBOX PLA @Qidi", - "Qidi/Overture PLA @Qidi", - "Qidi/PolyLite PLA @Qidi", - "Qidi/QIDI PA-Ultra", - "Qidi/QIDI PA12-CF", - "Qidi/QIDI PAHT-CF", - "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PET-CF", - "Qidi/QIDI PET-GF", - "Qidi/QIDI PETG Basic", - "Qidi/QIDI PETG Rapido", - "Qidi/QIDI PETG Tough", - "Qidi/QIDI PETG Translucent", - "Qidi/QIDI PETG-CF", - "Qidi/QIDI PETG-GF", - "Qidi/QIDI PLA Basic", - "Qidi/QIDI PLA Matte Basic", - "Qidi/QIDI PLA Rapido", - "Qidi/QIDI PLA Rapido Matte", - "Qidi/QIDI PLA Rapido Metal", - "Qidi/QIDI PLA Rapido Silk", - "Qidi/QIDI PPS-CF", - "Qidi/QIDI PPS-GF", - "Qidi/QIDI Support For PAHT", - "Qidi/QIDI Support For PET/PA", - "Qidi/QIDI UltraPA-CF25", - "Qidi/QIDI WOOD Rapido", - "Qidi/Qidi Generic PA", - "Qidi/Qidi Generic PA-CF", "Qidi/Qidi Generic PC", - "Qidi/Qidi Generic PETG", - "Qidi/Qidi Generic PETG-CF", - "Qidi/Qidi Generic PLA", - "Qidi/Qidi Generic PLA Silk", - "Qidi/Qidi Generic PLA+", - "Qidi/Qidi Generic PLA-CF", - "Qidi/Qidi PLA-CF", - "Qidi/Tinmorry PETG-ECO", - "Ratrig/RatRig BigNozzle PCTG", - "Ratrig/RatRig BigNozzle PETG", - "Ratrig/RatRig BigNozzle PLA", - "Ratrig/RatRig Generic PA", - "Ratrig/RatRig Generic PA-CF", "Ratrig/RatRig Generic PC", - "Ratrig/RatRig Generic PCTG", - "Ratrig/RatRig Generic PETG", - "Ratrig/RatRig Generic PLA", - "Ratrig/RatRig Generic PLA-CF", - "Ratrig/RatRig PunkFil PETG", - "Ratrig/RatRig PunkFil PETG CF", - "SecKit/SecKit Generic PA", - "SecKit/SecKit Generic PA-CF", "SecKit/SecKit Generic PC", - "SecKit/SecKit Generic PETG", - "SecKit/SecKit Generic PLA", - "SecKit/SecKit Generic PLA-CF", - "Snapmaker/Fiberon PA12-CF10 @Snapmaker U1 base", - "Snapmaker/Fiberon PA6-CF20 @Snapmaker U1 base", - "Snapmaker/Fiberon PA612-ESD @Snapmaker U1 base", - "Snapmaker/Panchroma CoPE @Snapmaker U1 base", - "Snapmaker/Panchroma PLA @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Celestial @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Galaxy @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Glow @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Luminous @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Marble @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Matte @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Metallic @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Neon @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Satin @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Silk @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Starlight @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Temp Shift @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Translucent @Snapmaker U1 base", - "Snapmaker/Panchroma PLA UV Shift @Snapmaker U1 base", - "Snapmaker/PolyLite CosPLA @Snapmaker U1 base", - "Snapmaker/PolyLite PLA @Snapmaker U1 base", - "Snapmaker/PolyLite PLA @base", - "Snapmaker/PolyLite PLA Galaxy @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Glow @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Luminous @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Neon @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Pro @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Pro Metallic @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Starlight @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Translucent @Snapmaker U1 base", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", - "Snapmaker/PolyTerra PLA @Snapmaker U1 base", - "Snapmaker/PolyTerra PLA Marble @Snapmaker U1 base", - "Snapmaker/PolyTerra PLA+ @Snapmaker U1 base", - "Snapmaker/Polymaker HT-PLA @Snapmaker U1 base", - "Snapmaker/Polymaker HT-PLA-GF @Snapmaker U1 base", - "Snapmaker/Polymaker PLA @Snapmaker U1 base", - "Snapmaker/Polymaker PLA Pro @Snapmaker U1 base", - "Snapmaker/Polymaker PLA Pro Metallic @Snapmaker U1 base", - "Snapmaker/Snapmaker Dual PA-CF @base", - "Snapmaker/Snapmaker Dual PET @base", - "Snapmaker/Snapmaker Dual PLA @base", - "Snapmaker/Snapmaker Dual PLA Eco @base", - "Snapmaker/Snapmaker Dual PLA Matte @base", - "Snapmaker/Snapmaker Dual PLA Metal @base", - "Snapmaker/Snapmaker Dual PLA Silk @base", - "Snapmaker/Snapmaker Dual PLA-CF @base", - "Snapmaker/Snapmaker J1 PA-CF @base", - "Snapmaker/Snapmaker J1 PET @base", - "Snapmaker/Snapmaker J1 PLA @base", - "Snapmaker/Snapmaker J1 PLA Eco @base", - "Snapmaker/Snapmaker J1 PLA Matte @base", - "Snapmaker/Snapmaker J1 PLA Metal @base", - "Snapmaker/Snapmaker J1 PLA Silk @base", - "Snapmaker/Snapmaker J1 PLA-CF @base", - "Snapmaker/Snapmaker PA-CF @U1 base", - "Snapmaker/Snapmaker PA-CF @base", - "Snapmaker/Snapmaker PET @U1 base", - "Snapmaker/Snapmaker PET @base", - "Snapmaker/Snapmaker PLA @U1 base", - "Snapmaker/Snapmaker PLA @base", - "Snapmaker/Snapmaker PLA Eco @U1 base", - "Snapmaker/Snapmaker PLA Eco @base", - "Snapmaker/Snapmaker PLA Metal @U1 base", - "Snapmaker/Snapmaker PLA Silk @U1 base", - "Snapmaker/Snapmaker PLA Silk @base", - "Snapmaker/Snapmaker PLA-CF @U1 base", - "Snapmaker/Snapmaker PLA-CF @base", "Sovol/Generic PLA Silk @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", @@ -926,147 +143,21 @@ "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", "Sovol/Sovol Zero TPU", - "Tiertime/Tiertime Generic BVOH", - "Tiertime/Tiertime Generic BVOH@300HS", - "Tiertime/Tiertime Generic EVA", - "Tiertime/Tiertime Generic EVA@300HS", - "Tiertime/Tiertime Generic HIPS", - "Tiertime/Tiertime Generic HIPS@300HS", - "Tiertime/Tiertime Generic PA", - "Tiertime/Tiertime Generic PA-CF", - "Tiertime/Tiertime Generic PA-CF@300HS", - "Tiertime/Tiertime Generic PA@300HS", "Tiertime/Tiertime Generic PC", "Tiertime/Tiertime Generic PC@300HS", - "Tiertime/Tiertime Generic PCTG", - "Tiertime/Tiertime Generic PCTG@300HS", - "Tiertime/Tiertime Generic PE", - "Tiertime/Tiertime Generic PE-CF", - "Tiertime/Tiertime Generic PE-CF@300HS", - "Tiertime/Tiertime Generic PE@300HS", - "Tiertime/Tiertime Generic PETG", - "Tiertime/Tiertime Generic PETG-CF", - "Tiertime/Tiertime Generic PETG-CF@300HS", - "Tiertime/Tiertime Generic PETG@300HS", - "Tiertime/Tiertime Generic PHA", - "Tiertime/Tiertime Generic PHA@300HS", - "Tiertime/Tiertime Generic PLA", - "Tiertime/Tiertime Generic PLA High Speed", - "Tiertime/Tiertime Generic PLA High Speed@300HS", - "Tiertime/Tiertime Generic PLA Silk", - "Tiertime/Tiertime Generic PLA Silk@300HS", - "Tiertime/Tiertime Generic PLA-CF", - "Tiertime/Tiertime Generic PLA-CF@300HS", - "Tiertime/Tiertime Generic PLA@300HS", - "Tiertime/Tiertime Generic PP", - "Tiertime/Tiertime Generic PP-CF", - "Tiertime/Tiertime Generic PP-CF@300HS", - "Tiertime/Tiertime Generic PP-GF", - "Tiertime/Tiertime Generic PP-GF@300HS", - "Tiertime/Tiertime Generic PP@300HS", - "Tiertime/Tiertime Generic PPA-CF", - "Tiertime/Tiertime Generic PPA-CF@300HS", - "Tiertime/Tiertime Generic PPA-GF", - "Tiertime/Tiertime Generic PPA-GF@300HS", - "Tiertime/Tiertime Generic SBS", - "Tiertime/Tiertime Generic SBS@300HS", - "Tiertime/Tiertime PA6-CF", - "Tiertime/Tiertime PA6-CF@300HS", "Tiertime/Tiertime PC", "Tiertime/Tiertime PC@300HS", - "Tiertime/Tiertime PET-CF", - "Tiertime/Tiertime PET-CF@300HS", - "Tiertime/Tiertime PETG", - "Tiertime/Tiertime PETG@300HS", - "Tiertime/Tiertime PLA", - "Tiertime/Tiertime PLA-CF", - "Tiertime/Tiertime PLA-CF@300HS", - "Tiertime/Tiertime PLA@300HS", - "TwoTrees/TwoTrees Generic HS PLA @SK1", - "Volumic/Désactivé", - "Volumic/PA6 CF20 (Performance)", - "Volumic/PETG ESD (Performance)", - "Volumic/PPS Carbone (Performance)", - "Volumic/Volumic NYLON Ultra", - "Volumic/Volumic NYLON Ultra (Performance)", "Volumic/Volumic PC", "Volumic/Volumic PC (Performance)", - "Volumic/Volumic PCTG Ultra (Performance)", - "Volumic/Volumic PETG Ultra", - "Volumic/Volumic PETG Ultra (Performance)", - "Volumic/Volumic PETG Ultra carbone", - "Volumic/Volumic PETG Ultra carbone (Performance)", - "Volumic/Volumic PLA Ultra", - "Volumic/Volumic PLA Ultra (Performance)", - "Volumic/Volumic PP Ultra", - "Volumic/Volumic PP Ultra (Performance)", - "Volumic/Volumic UNIVERSAL Ultra", - "Volumic/Volumic UNIVERSAL Ultra (Performance)", - "Vzbot/Vzbot Generic PA", - "Vzbot/Vzbot Generic PA-CF", "Vzbot/Vzbot Generic PC", - "Vzbot/Vzbot Generic PETG", - "Vzbot/Vzbot Generic PLA", - "Vzbot/Vzbot Generic PLA-CF", - "Wanhao France/Yumi Generic PETG", - "Wanhao France/Yumi Generic PLA", - "WonderMaker/WonderMaker PET-CF", - "WonderMaker/WonderMaker PETG Basic", - "WonderMaker/WonderMaker PLA Basic", - "WonderMaker/WonderMaker PLA Marble", - "WonderMaker/WonderMaker PLA Matte", - "WonderMaker/WonderMaker PLA Metal", - "WonderMaker/WonderMaker PLA Silk", - "WonderMaker/WonderMaker PLA Wood", - "Z-Bolt/Generic PA @Z-Bolt Base", - "Z-Bolt/Generic PETG @Z-Bolt Base", - "Z-Bolt/Generic PLA @Z-Bolt Base", - "re3D/re3D Greengate rPETG", - "re3D/re3D Greengate rPETG @0.8 nozzle", - "re3D/re3D Greengate rPETG @1.75 nozzle", "re3D/re3D PC", "re3D/re3D PC @0.4 nozzle", - "re3D/re3D PC @0.8 nozzle", - "re3D/re3D PETG", - "re3D/re3D PETG @0.4 nozzle", - "re3D/re3D PETG @0.8 nozzle", - "re3D/re3D PLA", - "re3D/re3D PLA @0.4 nozzle", - "re3D/re3D PLA @0.8 nozzle", - "re3D/re3D rPP", - "re3D/re3D rPP @0.8 nozzle", - "re3D/re3D rPP @1.75 nozzle" + "re3D/re3D PC @0.8 nozzle" ], "id_overrides": [ - "Afinia/Afinia PLA", - "Afinia/Afinia PLA@HS", - "Afinia/Afinia Value PLA", - "Afinia/Afinia Value PLA@HS", - "Anker/Anker Generic PA @base", - "Anker/Anker Generic PA-CF @base", "Anker/Anker Generic PC @base", - "Anker/Anker Generic PETG @base", - "Anker/Anker Generic PETG-CF @base", - "Anker/Anker Generic PLA @base", - "Anker/Anker Generic PLA Silk @base", - "Anker/Anker Generic PLA+ @base", - "Anker/Anker Generic PLA-CF @base", "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic Generic PA", - "Anycubic/Anycubic Generic PA-CF", "Anycubic/Anycubic Generic PC", - "Anycubic/Anycubic Generic PETG", - "Anycubic/Anycubic Generic PLA", - "Anycubic/Anycubic Generic PLA-CF", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", @@ -1076,22 +167,7 @@ "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", @@ -1100,69 +176,24 @@ "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", "Anycubic/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", "Anycubic/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", "Anycubic/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Panchroma PLA @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", "Artillery/Artillery ABS", "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery Generic PETG", - "Artillery/Artillery Generic PLA", - "Artillery/Artillery Generic PLA-CF", "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", @@ -1192,251 +223,19 @@ "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery TPU", "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "BBL/BETA HIPS @base", - "BBL/BETA PAHT-CF @base", - "BBL/BETA PETG @base", - "BBL/BETA PETG Fluorescence @base", - "BBL/BETA PETG Glitter @base", - "BBL/BETA PETG Glow @base", - "BBL/BETA PETG Gradient @base", - "BBL/BETA PETG HF @base", - "BBL/BETA PETG Heat Color Change @base", - "BBL/BETA PETG Marble @base", - "BBL/BETA PETG Matte @base", - "BBL/BETA PETG Metallic @base", - "BBL/BETA PETG Transparent @base", - "BBL/BETA PETG UV Color Change @base", - "BBL/BETA PETG-CF @base", - "BBL/BETA PETG-GF @base", - "BBL/BETA PLA Basic @base", - "BBL/BETA PLA Chameleon @base", - "BBL/BETA PLA Fluorescence @base", - "BBL/BETA PLA Glitter @base", - "BBL/BETA PLA Glow @base", - "BBL/BETA PLA Gradient @base", - "BBL/BETA PLA Heat Color Change @base", - "BBL/BETA PLA High Speed @base", - "BBL/BETA PLA High Temp @base", - "BBL/BETA PLA Marble @base", - "BBL/BETA PLA Matte @base", - "BBL/BETA PLA Metal @base", - "BBL/BETA PLA Metallic @base", - "BBL/BETA PLA PRO @base", - "BBL/BETA PLA Silk @base", - "BBL/BETA PLA Silk+ @base", - "BBL/BETA PLA Transparent @base", - "BBL/BETA PLA UV Color Change @base", - "BBL/BETA PLA Wood @base", - "BBL/BETA PLA Youth @base", - "BBL/BETA PLA-CF @base", - "BBL/Bambu PA-CF @base", - "BBL/Bambu PA6-CF @base", - "BBL/Bambu PA6-GF @base", - "BBL/Bambu PAHT-CF @base", "BBL/Bambu PC @base", "BBL/Bambu PC FR @base", - "BBL/Bambu PET-CF @base", - "BBL/Bambu PETG Basic @base", - "BBL/Bambu PETG HF @base", - "BBL/Bambu PETG Translucent @base", - "BBL/Bambu PETG-CF @base", - "BBL/Bambu PLA Aero @base", - "BBL/Bambu PLA Basic @base", - "BBL/Bambu PLA Dynamic @base", - "BBL/Bambu PLA Galaxy @base", - "BBL/Bambu PLA Glow @base", - "BBL/Bambu PLA Lite @base", - "BBL/Bambu PLA Marble @base", - "BBL/Bambu PLA Matte @base", - "BBL/Bambu PLA Metal @base", - "BBL/Bambu PLA Silk @base", - "BBL/Bambu PLA Silk+ @base", - "BBL/Bambu PLA Sparkle @base", - "BBL/Bambu PLA Tough @base", - "BBL/Bambu PLA Tough+ @base", - "BBL/Bambu PLA Translucent @base", - "BBL/Bambu PLA Wood @base", - "BBL/Bambu PLA-CF @base", - "BBL/Bambu PPA-CF @base", - "BBL/Bambu Support For PA/PET @base", - "BBL/Bambu Support For PLA @base", - "BBL/Bambu Support For PLA/PETG @base", - "BBL/Bambu Support G @base", - "BBL/Bambu Support W @base", - "BBL/Fiberon PA12-CF @base", - "BBL/Fiberon PA12-CF10 @base", - "BBL/Fiberon PA6-CF @base", - "BBL/Fiberon PA6-CF20 @base", - "BBL/Fiberon PA6-GF @base", - "BBL/Fiberon PA6-GF25 @base", - "BBL/Fiberon PA612-CF @base", - "BBL/Fiberon PA612-CF15 @base", - "BBL/Fiberon PET-CF @base", - "BBL/Fiberon PET-CF17 @base", - "BBL/Fiberon PETG-ESD @base", - "BBL/Fiberon PETG-rCF @base", - "BBL/Fiberon PETG-rCF08 @base", - "BBL/Generic BVOH @base", - "BBL/Generic EVA @base", - "BBL/Generic HIPS @base", - "BBL/Generic PA @base", - "BBL/Generic PA-CF @base", "BBL/Generic PC @base", - "BBL/Generic PCTG @base", - "BBL/Generic PE @base", - "BBL/Generic PE-CF @base", - "BBL/Generic PETG @base", - "BBL/Generic PETG HF @base", - "BBL/Generic PETG-CF @base", - "BBL/Generic PHA @base", - "BBL/Generic PLA @base", - "BBL/Generic PLA High Speed @base", - "BBL/Generic PLA Silk @base", - "BBL/Generic PLA-CF @base", - "BBL/Generic PP @base", - "BBL/Generic PP-CF @base", - "BBL/Generic PP-GF @base", - "BBL/Generic PPA-CF @base", - "BBL/Generic PPA-GF @base", "BBL/Generic SBS", - "BBL/Generic SBS @base", - "BBL/Numakers PLA+ @base", - "BBL/Overture Matte PLA @base", - "BBL/Overture PLA @base", - "BBL/Overture PLA Pro @base", - "BBL/Panchroma CoPE @base", - "BBL/Panchroma PLA @base", - "BBL/Panchroma PLA Celestial @base", - "BBL/Panchroma PLA Galaxy @base", - "BBL/Panchroma PLA Glow @base", - "BBL/Panchroma PLA Luminous @base", - "BBL/Panchroma PLA Marble @base", - "BBL/Panchroma PLA Matte @base", - "BBL/Panchroma PLA Metallic @base", - "BBL/Panchroma PLA Neon @base", - "BBL/Panchroma PLA Satin @base", - "BBL/Panchroma PLA Silk @base", - "BBL/Panchroma PLA Starlight @base", - "BBL/Panchroma PLA Temp Shift @base", - "BBL/Panchroma PLA Translucent @base", - "BBL/Panchroma PLA UV Shift @base", - "BBL/PolyLite CosPLA @base", - "BBL/PolyLite PETG @base", - "BBL/PolyLite PLA @base", - "BBL/PolyLite PLA Galaxy @base", - "BBL/PolyLite PLA Glow @base", - "BBL/PolyLite PLA Luminous @base", - "BBL/PolyLite PLA Neon @base", - "BBL/PolyLite PLA Pro @base", - "BBL/PolyLite PLA Starlight @base", - "BBL/PolyLite PLA Translucent @base", - "BBL/PolyTerra PLA @base", - "BBL/PolyTerra PLA Marble @base", - "BBL/PolyTerra PLA+ @base", - "BBL/Polymaker HT-PLA @base", - "BBL/Polymaker HT-PLA-GF @base", - "BBL/SUNLU PETG @base", - "BBL/SUNLU PLA Marble @base", - "BBL/SUNLU PLA Matte @base", - "BBL/SUNLU PLA+ 2.0 @base", - "BBL/SUNLU PLA+ @base", - "BBL/SUNLU Silk PLA+ @base", - "BBL/SUNLU Wood PLA @base", - "BBL/eSUN PLA+ @base", - "Blocks/Blocks Generic PA", - "Blocks/Blocks Generic PA-CF", "Blocks/Blocks Generic PC", - "Blocks/Blocks Generic PLA", - "Blocks/Blocks Generic PLA-CF", - "CONSTRUCT3D/C1 Generic High Flow PETG", - "CONSTRUCT3D/C1 Generic PETG", - "CONSTRUCT3D/C1 Generic PLA", "Chuanying/Chuanying Generic HIPS", - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying Generic PETG", - "Chuanying/Chuanying Generic PETG-CF10", - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying Generic PLA-CF10", - "Chuanying/Chuanying Generic PLA-Silk", "Chuanying/Chuanying Generic PVA", "Co Print/CoPrint Generic ABS", "Co Print/CoPrint Generic PETG", - "Co Print/CoPrint Generic PLA", "Co Print/CoPrint Generic TPU", - "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", - "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", - "CoLiDo/CoLiDo PETG @CoLiDo SR1", - "CoLiDo/CoLiDo PLA @CoLiDo SR1", - "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", - "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", - "Comgrow/Comgrow Generic PETG", - "Comgrow/Comgrow Generic PLA", - "Creality/CR-Nylon @K1 Max_CFS-C-all", - "Creality/CR-Nylon @K1C-all", - "Creality/CR-Nylon @K1C_CFS-C-all", - "Creality/CR-Nylon @K1_CFS-C-all", - "Creality/CR-Nylon @K2 Plus-all", - "Creality/CR-PLA @Ender-3 V4-all", - "Creality/CR-PLA @Hi-all", - "Creality/CR-PLA @K1 Max_CFS-C-all", - "Creality/CR-PLA @K1 SE-all", - "Creality/CR-PLA @K1 SE_CFS-C-all", - "Creality/CR-PLA @K1C-all", - "Creality/CR-PLA @K1C_CFS-C-all", - "Creality/CR-PLA @K1_CFS-C-all", - "Creality/CR-PLA @K2 Plus-all", - "Creality/CR-PLA @K2 Pro-all", - "Creality/CR-PLA @K2 SE-all", - "Creality/CR-PLA @K2-all", - "Creality/CR-PLA @SPARKX i7-all", - "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", - "Creality/CR-PLA Carbon @K1C-all", - "Creality/CR-PLA Carbon @K1C_CFS-C-all", - "Creality/CR-PLA Carbon @K1_CFS-C-all", - "Creality/CR-PLA Carbon @K2 Plus-all", - "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", - "Creality/CR-PLA Fluo @K1C-all", - "Creality/CR-PLA Fluo @K1C_CFS-C-all", - "Creality/CR-PLA Fluo @K1_CFS-C-all", - "Creality/CR-PLA Fluo @K2 Plus-all", - "Creality/CR-PLA Fluo @K2 Pro-all", - "Creality/CR-PLA Fluo @K2-all", - "Creality/CR-PLA Fluo @SPARKX i7-all", - "Creality/CR-PLA Matte @Ender-3 V4-all", - "Creality/CR-PLA Matte @K1 Max_CFS-C-all", - "Creality/CR-PLA Matte @K1C-all", - "Creality/CR-PLA Matte @K1C_CFS-C-all", - "Creality/CR-PLA Matte @K1_CFS-C-all", - "Creality/CR-PLA Matte @K2 Plus-all", - "Creality/CR-PLA Matte @K2 Pro-all", - "Creality/CR-PLA Matte @K2-all", - "Creality/CR-PLA Matte @SPARKX i7-all", - "Creality/CR-Silk @Ender-3 V4-all", - "Creality/CR-Silk @Hi-all", - "Creality/CR-Silk @K1 Max_CFS-C-all", - "Creality/CR-Silk @K1 SE-all", - "Creality/CR-Silk @K1 SE_CFS-C-all", - "Creality/CR-Silk @K1C-all", - "Creality/CR-Silk @K1C_CFS-C-all", - "Creality/CR-Silk @K1_CFS-C-all", - "Creality/CR-Silk @K2 Plus-all", - "Creality/CR-Silk @K2 Pro-all", - "Creality/CR-Silk @K2 SE-all", - "Creality/CR-Silk @K2-all", - "Creality/CR-Silk @SPARKX i7-all", - "Creality/CR-Wood @K1 Max_CFS-C-all", - "Creality/CR-Wood @K1C-all", - "Creality/CR-Wood @K1C_CFS-C-all", - "Creality/CR-Wood @K1_CFS-C-all", - "Creality/CR-Wood @K2 Plus-all", "Creality/Creality Generic ASA-CF @Hi-all", - "Creality/Creality Generic PA-CF", "Creality/Creality Generic PC", - "Creality/Creality Generic PETG", "Creality/Creality Generic PETG-CF @Hi-all", - "Creality/Creality Generic PLA", "Creality/Creality Generic PLA High Speed @Ender-3V3-all", "Creality/Creality Generic PLA High Speed @Hi-all", "Creality/Creality Generic PLA High Speed @K1-all", @@ -1450,236 +249,14 @@ "Creality/Creality Generic PLA Silk @K1-all", "Creality/Creality Generic PLA Silk @K2-all", "Creality/Creality Generic PLA Wood @Hi-all", - "Creality/Creality Generic PLA-CF", - "Creality/Creality HF Generic PLA", - "Creality/Creality HF Generic Speed PLA", - "Creality/EN-PLA+ @K1 Max_CFS-C-all", - "Creality/EN-PLA+ @K1C-all", - "Creality/EN-PLA+ @K1C_CFS-C-all", - "Creality/EN-PLA+ @K1_CFS-C-all", - "Creality/EN-PLA+ @K2 Plus-all", - "Creality/EN-PLA+ @K2 Pro-all", - "Creality/EN-PLA+ @K2-all", - "Creality/EN-PLA+ @SPARKX i7-all", - "Creality/ENDER FAST PLA @Hi-all", - "Creality/ENDER FAST PLA @K2 Plus-all", - "Creality/ENDER FAST PLA @K2 Pro-all", - "Creality/ENDER FAST PLA @K2-all", - "Creality/ENDER FAST PLA @SPARKX i7-all", - "Creality/Ender-PLA @Ender-3 V4-all", - "Creality/Ender-PLA @Hi-all", - "Creality/Ender-PLA @K1 Max_CFS-C-all", - "Creality/Ender-PLA @K1C-all", - "Creality/Ender-PLA @K1C_CFS-C-all", - "Creality/Ender-PLA @K1_CFS-C-all", - "Creality/Ender-PLA @K2 Plus-all", - "Creality/Ender-PLA @K2 Pro-all", - "Creality/Ender-PLA @K2-all", - "Creality/Ender-PLA @SPARKX i7-all", - "Creality/Generic HIPS @K1 Max_CFS-C-all", - "Creality/Generic HIPS @K1C-all", - "Creality/Generic HIPS @K1C_CFS-C-all", - "Creality/Generic HIPS @K1_CFS-C-all", - "Creality/Generic HIPS @K2 Plus-all", - "Creality/Generic PA @K1 Max_CFS-C-all", - "Creality/Generic PA @K1C-all", - "Creality/Generic PA @K1C_CFS-C-all", - "Creality/Generic PA @K1_CFS-C-all", - "Creality/Generic PA @K2 Plus-all", - "Creality/Generic PA @K2 Pro-all", - "Creality/Generic PA @K2-all", - "Creality/Generic PA-CF @K1 Max_CFS-C-all", - "Creality/Generic PA-CF @K1C-all", - "Creality/Generic PA-CF @K1C_CFS-C-all", - "Creality/Generic PA-CF @K1_CFS-C-all", - "Creality/Generic PA-CF @K2 Plus-all", - "Creality/Generic PA12-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K1 Max_CFS-C-all", - "Creality/Generic PA6-CF @K1C-all", - "Creality/Generic PA6-CF @K1C_CFS-C-all", - "Creality/Generic PA6-CF @K1_CFS-C-all", - "Creality/Generic PA6-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K2 Pro-all", - "Creality/Generic PA612-CF @K2 Plus-all", - "Creality/Generic PA612-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", - "Creality/Generic PAHT-CF @K1C-all", - "Creality/Generic PAHT-CF @K1C_CFS-C-all", - "Creality/Generic PAHT-CF @K1_CFS-C-all", - "Creality/Generic PAHT-CF @K2 Plus-all", - "Creality/Generic PAHT-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K2-all", "Creality/Generic PC @K1 Max_CFS-C-all", "Creality/Generic PC @K1C-all", "Creality/Generic PC @K1C_CFS-C-all", "Creality/Generic PC @K1_CFS-C-all", "Creality/Generic PC @K2 Plus-all", "Creality/Generic PC @K2 Pro-all", - "Creality/Generic PET @K1 Max_CFS-C-all", - "Creality/Generic PET @K1C-all", - "Creality/Generic PET @K1C_CFS-C-all", - "Creality/Generic PET @K1_CFS-C-all", - "Creality/Generic PET @K2 Plus-all", - "Creality/Generic PET @K2 Pro-all", - "Creality/Generic PET @K2-all", - "Creality/Generic PET-CF @K1 Max_CFS-C-all", - "Creality/Generic PET-CF @K1C-all", - "Creality/Generic PET-CF @K1C_CFS-C-all", - "Creality/Generic PET-CF @K1_CFS-C-all", - "Creality/Generic PET-CF @K2 Plus-all", - "Creality/Generic PET-CF @K2 Pro-all", - "Creality/Generic PLA @Ender-3 V4-all", - "Creality/Generic PLA @Hi-all", - "Creality/Generic PLA @K1 Max_CFS-C-all", - "Creality/Generic PLA @K1 SE-all", - "Creality/Generic PLA @K1 SE_CFS-C-all", - "Creality/Generic PLA @K1C-all", - "Creality/Generic PLA @K1C_CFS-C-all", - "Creality/Generic PLA @K1_CFS-C-all", - "Creality/Generic PLA @K2 Plus-all", - "Creality/Generic PLA @K2 Pro-all", - "Creality/Generic PLA @K2 SE-all", - "Creality/Generic PLA @K2-all", - "Creality/Generic PLA @SPARKX i7-all", - "Creality/Generic PLA-CF @Ender-3 V4-all", - "Creality/Generic PLA-CF @K1 Max_CFS-C-all", - "Creality/Generic PLA-CF @K1 SE-all", - "Creality/Generic PLA-CF @K1 SE_CFS-C-all", - "Creality/Generic PLA-CF @K1C-all", - "Creality/Generic PLA-CF @K1C_CFS-C-all", - "Creality/Generic PLA-CF @K1_CFS-C-all", - "Creality/Generic PLA-CF @K2 Plus-all", - "Creality/Generic PLA-CF @K2 Pro-all", - "Creality/Generic PLA-CF @K2 SE-all", - "Creality/Generic PLA-CF @K2-all", - "Creality/Generic PLA-CF @SPARKX i7-all", - "Creality/Generic PLA-Silk @Ender-3 V4-all", - "Creality/Generic PLA-Silk @Hi-all", - "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", - "Creality/Generic PLA-Silk @K1 SE-all", - "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", - "Creality/Generic PLA-Silk @K1C-all", - "Creality/Generic PLA-Silk @K1C_CFS-C-all", - "Creality/Generic PLA-Silk @K1_CFS-C-all", - "Creality/Generic PLA-Silk @K2 Plus-all", - "Creality/Generic PLA-Silk @K2 Pro-all", - "Creality/Generic PLA-Silk @K2 SE-all", - "Creality/Generic PLA-Silk @K2-all", - "Creality/Generic PLA-Silk @SPARKX i7-all", - "Creality/Generic PP @K1 Max_CFS-C-all", - "Creality/Generic PP @K1C-all", - "Creality/Generic PP @K1C_CFS-C-all", - "Creality/Generic PP @K1_CFS-C-all", - "Creality/Generic PP @K2 Plus-all", - "Creality/Generic PP @K2 Pro-all", - "Creality/Generic PP @K2-all", - "Creality/Generic Support for PA @K2 Plus-all", - "Creality/Generic Support for PLA @K2 Plus-all", - "Creality/HP Ultra PLA @K1 Max_CFS-C-all", - "Creality/HP Ultra PLA @K1C-all", - "Creality/HP Ultra PLA @K1C_CFS-C-all", - "Creality/HP Ultra PLA @K1_CFS-C-all", - "Creality/HP Ultra PLA @K2 Plus-all", - "Creality/Hyper L-W PLA @Hi-all", - "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", - "Creality/Hyper L-W PLA @K1 SE-all", - "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", - "Creality/Hyper L-W PLA @K1C-all", - "Creality/Hyper L-W PLA @K1C_CFS-C-all", - "Creality/Hyper L-W PLA @K1_CFS-C-all", - "Creality/Hyper L-W PLA @K2 Plus-all", - "Creality/Hyper L-W PLA @K2 Pro-all", - "Creality/Hyper L-W PLA @K2-all", - "Creality/Hyper Luminous @Hi-all", - "Creality/Hyper Luminous @K1C-all", - "Creality/Hyper Luminous @K2 Plus-all", - "Creality/Hyper Luminous @K2 Pro-all", - "Creality/Hyper Luminous @K2-all", - "Creality/Hyper Luminous @SPARKX i7-all", - "Creality/Hyper Marble @Hi-all", - "Creality/Hyper Marble @K1 Max_CFS-C-all", - "Creality/Hyper Marble @K1C-all", - "Creality/Hyper Marble @K1C_CFS-C-all", - "Creality/Hyper Marble @K1_CFS-C-all", - "Creality/Hyper Marble @K2 Plus-all", - "Creality/Hyper Marble @K2 Pro-all", - "Creality/Hyper Marble @K2 SE-all", - "Creality/Hyper Marble @K2-all", - "Creality/Hyper Marble @SPARKX i7-all", - "Creality/Hyper PA6-CF @K2 Plus-all", - "Creality/Hyper PA6-CF @K2 Pro-all", - "Creality/Hyper PA612-CF @K2 Plus-all", - "Creality/Hyper PA612-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", - "Creality/Hyper PAHT-CF @K1C-all", - "Creality/Hyper PAHT-CF @K1C_CFS-C-all", - "Creality/Hyper PAHT-CF @K1_CFS-C-all", - "Creality/Hyper PAHT-CF @K2 Plus-all", - "Creality/Hyper PAHT-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K2-all", "Creality/Hyper PC @K2 Plus-all", "Creality/Hyper PC @K2 Pro-all", - "Creality/Hyper PLA @Ender-3 V4-all", - "Creality/Hyper PLA @Hi-all", - "Creality/Hyper PLA @K1 Max_CFS-C-all", - "Creality/Hyper PLA @K1 SE-all", - "Creality/Hyper PLA @K1 SE_CFS-C-all", - "Creality/Hyper PLA @K1C-all", - "Creality/Hyper PLA @K1C_CFS-C-all", - "Creality/Hyper PLA @K1_CFS-C-all", - "Creality/Hyper PLA @K2 Plus-all", - "Creality/Hyper PLA @K2 Pro-all", - "Creality/Hyper PLA @K2 SE-all", - "Creality/Hyper PLA @K2-all", - "Creality/Hyper PLA @SPARKX i7-all", - "Creality/Hyper PLA-CF @Ender-3 V4-all", - "Creality/Hyper PLA-CF @Hi-all", - "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", - "Creality/Hyper PLA-CF @K1 SE-all", - "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", - "Creality/Hyper PLA-CF @K1C-all", - "Creality/Hyper PLA-CF @K1C_CFS-C-all", - "Creality/Hyper PLA-CF @K1_CFS-C-all", - "Creality/Hyper PLA-CF @K2 Plus-all", - "Creality/Hyper PLA-CF @K2 Pro-all", - "Creality/Hyper PLA-CF @K2 SE-all", - "Creality/Hyper PLA-CF @K2-all", - "Creality/Hyper PLA-CF @SPARKX i7-all", - "Creality/Hyper PPA-CF @K2 Plus-all", - "Creality/Hyper PPA-CF @K2 Pro-all", - "Creality/Hyper Stardust @Hi-all", - "Creality/Hyper Stardust @K1 Max_CFS-C-all", - "Creality/Hyper Stardust @K1C-all", - "Creality/Hyper Stardust @K1C_CFS-C-all", - "Creality/Hyper Stardust @K1_CFS-C-all", - "Creality/Hyper Stardust @K2 Plus-all", - "Creality/Hyper Stardust @K2 Pro-all", - "Creality/Hyper Stardust @K2 SE-all", - "Creality/Hyper Stardust @K2-all", - "Creality/Hyper Stardust @SPARKX i7-all", - "Creality/Panchroma PLA Matte @K2 Plus-all", - "Creality/Panchroma PLA Satin @K2 Plus-all", - "Creality/PolySonic PLA @K2 Plus-all", - "Creality/PolySonic PLA Pro @K2 Plus-all", - "Creality/Soleyin Ultra PLA @Ender-3 V4-all", - "Creality/Soleyin Ultra PLA @Hi-all", - "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1C-all", - "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1_CFS-C-all", - "Creality/Soleyin Ultra PLA @K2 Plus-all", - "Creality/Soleyin Ultra PLA @K2 Pro-all", - "Creality/Soleyin Ultra PLA @K2 SE-all", - "Creality/Soleyin Ultra PLA @K2-all", - "Creality/Soleyin Ultra PLA @SPARKX i7-all", - "Creality/eSUN PET-Basic @K2 Plus-all", - "Creality/eSUN PLA+ @K2 Plus-all", - "Creality/eSUN PLA-CF @K2 Plus-all", - "Creality/eSUN PLA-HS @K2 Plus-all", - "Creality/eSUN PLA-LW @K2 Plus-all", - "Creality/eSUN PLA-Lite @K2 Plus-all", - "Creality/eSUN PLA-Matte @K2 Plus-all", - "Creality/eSUN PLA-Silk @K2 Plus-all", "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", @@ -1706,7 +283,6 @@ "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA @base", "Cubicon/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle", @@ -1721,25 +297,18 @@ "Custom/Generic PLA-CF @MyToolChanger", "Custom/Generic PVA @MyToolChanger", "Custom/Generic TPU @MyToolChanger", - "DeltaMaker/DeltaMaker Brand PLA", - "DeltaMaker/DeltaMaker Generic PETG", - "DeltaMaker/DeltaMaker Generic PLA", - "Dremel/Dremel Generic PLA", "Dremel/Dremel Generic PLA @3D20 all", "Dremel/Dremel Generic PLA @3D40 all", "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Elegoo ASA-CF @base", - "Elegoo/Elegoo PAHT @base", "Elegoo/Elegoo PC @base", "Elegoo/Elegoo PC-FR @base", "Elegoo/Elegoo PET-CF @base", - "Elegoo/Elegoo PETG @base", "Elegoo/Elegoo PETG HF @base", "Elegoo/Elegoo PETG PRO @base", "Elegoo/Elegoo PETG Translucent @base", "Elegoo/Elegoo PETG-CF @base", "Elegoo/Elegoo PETG-GF @base", - "Elegoo/Elegoo PLA @base", "Elegoo/Elegoo PLA Basic @base", "Elegoo/Elegoo PLA Galaxy @base", "Elegoo/Elegoo PLA Glow @base", @@ -1756,22 +325,13 @@ "Elegoo/Elegoo Rapid PLA+ @base", "Elegoo/Elegoo Rapid TPU 95A @base", "Elegoo/Generic ABS-CF @Elegoo Centauri", - "Elegoo/Generic PA @base", "Elegoo/Generic PA6-CF @Elegoo", "Elegoo/Generic PC @base", "Elegoo/Generic PC-CF @Elegoo", - "Elegoo/Generic PET @base", "Elegoo/Generic PET-CF @Elegoo Centauri", - "Elegoo/Generic PETG @base", "Elegoo/Generic PETG PRO @Elegoo", - "Elegoo/Generic PLA @base", "Elegoo/Generic PLA Matte @Elegoo", - "FLSun/FLSun Generic PA", - "FLSun/FLSun Generic PA-CF", "FLSun/FLSun Generic PC", - "FLSun/FLSun Generic PETG", - "FLSun/FLSun Generic PLA", - "FLSun/FLSun Generic PLA-CF", "FLSun/FLSun S1 PLA High Speed", "FLSun/FLSun S1 PLA Silk", "FLSun/FLSun T1 PLA High Speed", @@ -1847,19 +407,13 @@ "Flashforge/Flashforge Generic ASA @G3U", "Flashforge/Flashforge Generic HIPS", "Flashforge/Flashforge Generic HIPS @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic HS PLA", - "Flashforge/Flashforge Generic PETG", "Flashforge/Flashforge Generic PETG-CF @G3U", "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PETG-CF10", - "Flashforge/Flashforge Generic PLA", "Flashforge/Flashforge Generic PLA-CF @G3U", "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PLA-CF10", "Flashforge/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic PLA-Silk", "Flashforge/Flashforge Generic PVA", "Flashforge/Flashforge HIPS @FF C5", "Flashforge/Flashforge HIPS @FF C5P", @@ -1941,7 +495,6 @@ "Flashforge/Flashforge PET-CF", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG", "Flashforge/Flashforge PETG Basic", "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PETG Pro", @@ -1994,7 +547,6 @@ "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", "Flashforge/Flashforge PETG-CF @FF G4P", "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA", "Flashforge/Flashforge PLA Matte @FF C5", "Flashforge/Flashforge PLA Matte @FF C5P", "Flashforge/Flashforge PLA Metal @FF C5", @@ -2260,7 +812,6 @@ "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", "Flashforge/Generic PET @FF G4P 0.6 nozzle", "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", - "Flashforge/Generic PETG @Flashforge Artemis", "Flashforge/Generic PETG-CF10 @Flashforge AD4", "Flashforge/Generic PLA @Flashforge AD4", "Flashforge/Generic PLA High Speed @Flashforge AD4", @@ -2284,125 +835,26 @@ "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", "Flashforge/Polymaker Generic CoPA", "Flashforge/Polymaker Generic S1", - "Flashforge/SUNLU PETG @base", - "Flashforge/SUNLU PLA Marble @base", - "Flashforge/SUNLU PLA Matte @base", - "Flashforge/SUNLU PLA+ 2.0 @base", - "Flashforge/SUNLU PLA+ @base", - "Flashforge/SUNLU Silk PLA+ @base", - "Flashforge/SUNLU Wood PLA @base", - "FlyingBear/FlyingBear Generic PA-CF", "FlyingBear/FlyingBear Generic PC", - "FlyingBear/FlyingBear Generic PETG", - "FlyingBear/FlyingBear Generic PLA", - "InfiMech/InfiMech Generic PA-CF", "InfiMech/InfiMech Generic PC", - "InfiMech/InfiMech Generic PETG", - "InfiMech/InfiMech Generic PLA", - "LH/LHS PC CF", - "LH/LHS PCTG", - "LH/LHS PETG", - "LH/LHS PLA", - "LONGER/Generic PETG @LONGER LK10", - "LONGER/Generic PETG @LONGER LK10 Plus", - "LONGER/Generic PLA @LONGER LK10", - "LONGER/Generic PLA @LONGER LK10 Plus", "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", - "OrcaArena/Arena PA-CF @base", - "OrcaArena/Arena PAHT-CF @base", "OrcaArena/Arena PC @base", - "OrcaArena/Arena PET-CF @base", - "OrcaArena/Arena PETG Basic @base", - "OrcaArena/Arena PETG-CF @base", - "OrcaArena/Arena PLA Basic @base", - "OrcaArena/Arena PLA Impact @base", - "OrcaArena/Arena PLA Marble @base", - "OrcaArena/Arena PLA Matte @base", - "OrcaArena/Arena PLA Metal @base", - "OrcaArena/Arena PLA Silk @base", - "OrcaArena/Arena PLA Sparkle @base", - "OrcaArena/Arena PLA Tough @base", - "OrcaArena/Arena PLA-CF @base", - "OrcaArena/Arena Support G @base", - "OrcaArena/Arena Support W @base", - "OrcaArena/OrcaArena Generic PA", - "OrcaArena/OrcaArena Generic PA-CF", "OrcaArena/OrcaArena Generic PC @base", - "OrcaArena/OrcaArena Generic PETG @base", - "OrcaArena/OrcaArena Generic PETG-CF @base", - "OrcaArena/OrcaArena Generic PLA @base", - "OrcaArena/OrcaArena Generic PLA Silk @base", - "OrcaArena/OrcaArena Generic PLA-CF @base", - "OrcaArena/PolyLite PLA @base", - "OrcaArena/PolyTerra PLA @base", - "OrcaFilamentLibrary/AliZ PA-CF @base", - "OrcaFilamentLibrary/AliZ PETG @base", "OrcaFilamentLibrary/AliZ PETG-CF @base", "OrcaFilamentLibrary/AliZ PETG-Metal @base", - "OrcaFilamentLibrary/AliZ PLA @base", - "OrcaFilamentLibrary/Bambu PA-CF @base", - "OrcaFilamentLibrary/Bambu PA6-CF @base", - "OrcaFilamentLibrary/Bambu PA6-GF @base", - "OrcaFilamentLibrary/Bambu PAHT-CF @base", "OrcaFilamentLibrary/Bambu PC @base", "OrcaFilamentLibrary/Bambu PC FR @base", - "OrcaFilamentLibrary/Bambu PET-CF @base", - "OrcaFilamentLibrary/Bambu PETG Basic @base", - "OrcaFilamentLibrary/Bambu PETG HF @base", - "OrcaFilamentLibrary/Bambu PETG Translucent @base", - "OrcaFilamentLibrary/Bambu PETG-CF @base", - "OrcaFilamentLibrary/Bambu PLA Aero @base", - "OrcaFilamentLibrary/Bambu PLA Basic @base", - "OrcaFilamentLibrary/Bambu PLA Dynamic @base", - "OrcaFilamentLibrary/Bambu PLA Galaxy @base", - "OrcaFilamentLibrary/Bambu PLA Glow @base", - "OrcaFilamentLibrary/Bambu PLA Impact @base", - "OrcaFilamentLibrary/Bambu PLA Marble @base", - "OrcaFilamentLibrary/Bambu PLA Matte @base", - "OrcaFilamentLibrary/Bambu PLA Metal @base", - "OrcaFilamentLibrary/Bambu PLA Silk @base", - "OrcaFilamentLibrary/Bambu PLA Silk+ @base", - "OrcaFilamentLibrary/Bambu PLA Sparkle @base", - "OrcaFilamentLibrary/Bambu PLA Tough @base", - "OrcaFilamentLibrary/Bambu PLA Wood @base", - "OrcaFilamentLibrary/Bambu PLA-CF @base", - "OrcaFilamentLibrary/Bambu PPA-CF @base", - "OrcaFilamentLibrary/Bambu Support For PA/PET @base", - "OrcaFilamentLibrary/Bambu Support For PLA @base", - "OrcaFilamentLibrary/Bambu Support For PLA/PETG @base", - "OrcaFilamentLibrary/Bambu Support G @base", - "OrcaFilamentLibrary/Bambu Support W @base", - "OrcaFilamentLibrary/COEX NYLEX PA6-CF @base", - "OrcaFilamentLibrary/COEX NYLEX UNFILLED @base", - "OrcaFilamentLibrary/COEX PCTG PRIME @base", - "OrcaFilamentLibrary/COEX PETG @base", - "OrcaFilamentLibrary/COEX PLA @base", - "OrcaFilamentLibrary/COEX PLA PRIME @base", - "OrcaFilamentLibrary/COEX PLA+Silk @base", - "OrcaFilamentLibrary/DREMC PA12-CF @base", - "OrcaFilamentLibrary/DREMC PA6-CF @base", - "OrcaFilamentLibrary/DREMC PET-CF @base", - "OrcaFilamentLibrary/DREMC PETG @base", - "OrcaFilamentLibrary/DREMC PLA+ @base", - "OrcaFilamentLibrary/DREMC PLA+ HS @base", - "OrcaFilamentLibrary/DREMC PPA-CF @base", - "OrcaFilamentLibrary/Elas PETG Basic @base", - "OrcaFilamentLibrary/Elas PLA Basic @base", - "OrcaFilamentLibrary/Elas PLA Pro @base", "OrcaFilamentLibrary/Elegoo ASA-CF @base", - "OrcaFilamentLibrary/Elegoo PAHT @base", "OrcaFilamentLibrary/Elegoo PC @base", "OrcaFilamentLibrary/Elegoo PC-FR @base", "OrcaFilamentLibrary/Elegoo PET-CF @base", - "OrcaFilamentLibrary/Elegoo PETG @base", "OrcaFilamentLibrary/Elegoo PETG HF @base", "OrcaFilamentLibrary/Elegoo PETG PRO @base", "OrcaFilamentLibrary/Elegoo PETG Translucent @base", "OrcaFilamentLibrary/Elegoo PETG-CF @base", "OrcaFilamentLibrary/Elegoo PETG-GF @base", - "OrcaFilamentLibrary/Elegoo PLA @base", "OrcaFilamentLibrary/Elegoo PLA Basic @base", "OrcaFilamentLibrary/Elegoo PLA Galaxy @base", "OrcaFilamentLibrary/Elegoo PLA Glow @base", @@ -2418,37 +870,6 @@ "OrcaFilamentLibrary/Elegoo Rapid PETG @base", "OrcaFilamentLibrary/Elegoo Rapid PLA+ @base", "OrcaFilamentLibrary/Elegoo Rapid TPU 95A @base", - "OrcaFilamentLibrary/Eolas Prints PETG @System", - "OrcaFilamentLibrary/Eolas Prints PETG Transition @System", - "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant @System", - "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial @System", - "OrcaFilamentLibrary/Eolas Prints PLA High Speed @System", - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850 @System", - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870 @System", - "OrcaFilamentLibrary/Eolas Prints PLA Matte @System", - "OrcaFilamentLibrary/Eolas Prints PLA Neon @System", - "OrcaFilamentLibrary/Eolas Prints PLA Premium @System", - "OrcaFilamentLibrary/Eolas Prints PLA Silk @System", - "OrcaFilamentLibrary/Eolas Prints PLA Transition @System", - "OrcaFilamentLibrary/FDplast HIPS @base", - "OrcaFilamentLibrary/FDplast PETG @base", - "OrcaFilamentLibrary/FDplast PLA @base", - "OrcaFilamentLibrary/FDplast SBS @base", - "OrcaFilamentLibrary/FILL3D PA @base", - "OrcaFilamentLibrary/FILL3D PETG @base", - "OrcaFilamentLibrary/FILL3D PETG CF @base", - "OrcaFilamentLibrary/FILL3D PLA Basic @base", - "OrcaFilamentLibrary/FILL3D PLA Turbo @base", - "OrcaFilamentLibrary/FILL3D PP @base", - "OrcaFilamentLibrary/FILL3D PPCF @base", - "OrcaFilamentLibrary/Fiberon PA12-CF @base", - "OrcaFilamentLibrary/Fiberon PA6-CF @base", - "OrcaFilamentLibrary/Fiberon PA6-GF @base", - "OrcaFilamentLibrary/Fiberon PA612-CF @base", - "OrcaFilamentLibrary/Fiberon PET-CF @base", - "OrcaFilamentLibrary/Fiberon PETG-ESD @base", - "OrcaFilamentLibrary/Fiberon PETG-rCF @base", - "OrcaFilamentLibrary/FilAr PETG @base", "OrcaFilamentLibrary/FilAr PETG Amarillo Lima", "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante", "OrcaFilamentLibrary/FilAr PETG Azul Boreal", @@ -2463,7 +884,6 @@ "OrcaFilamentLibrary/FilAr PETG Magenta", "OrcaFilamentLibrary/FilAr PETG Negro Azabache", "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi", - "OrcaFilamentLibrary/FilAr PLA @base", "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio", "OrcaFilamentLibrary/FilAr PLA Azul Francia", "OrcaFilamentLibrary/FilAr PLA Blanco Antartida", @@ -2493,7 +913,6 @@ "OrcaFilamentLibrary/FilAr PLA Verde Oliva", "OrcaFilamentLibrary/FilAr PLA Verde Pixel", "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda", - "OrcaFilamentLibrary/FilAr PLA-mate @base", "OrcaFilamentLibrary/FilAr PLA-mate Amarillo", "OrcaFilamentLibrary/FilAr PLA-mate Azul", "OrcaFilamentLibrary/FilAr PLA-mate Beige", @@ -2511,73 +930,9 @@ "OrcaFilamentLibrary/FilAr PLA-mate Uva", "OrcaFilamentLibrary/FilAr PLA-mate Verde", "OrcaFilamentLibrary/FilAr PLA-mate Violeta", - "OrcaFilamentLibrary/Generic PA-CF @System", - "OrcaFilamentLibrary/Generic PE-CF @base", - "OrcaFilamentLibrary/Generic PETG HF @base", - "OrcaFilamentLibrary/Generic PETG-CF @base", - "OrcaFilamentLibrary/Generic PLA High Speed @System", - "OrcaFilamentLibrary/Generic PLA Matte @base", - "OrcaFilamentLibrary/Generic PLA-CF @System", - "OrcaFilamentLibrary/Generic PP-CF @base", - "OrcaFilamentLibrary/Generic PP-GF @base", - "OrcaFilamentLibrary/Generic PPA-GF @System", - "OrcaFilamentLibrary/GreenGate3D PETG @base", - "OrcaFilamentLibrary/NIT PETG @base", - "OrcaFilamentLibrary/NIT PLA @base", - "OrcaFilamentLibrary/Numakers PLA+ @base", - "OrcaFilamentLibrary/Overture Air PLA @base", - "OrcaFilamentLibrary/Overture Easy PLA @base", - "OrcaFilamentLibrary/Overture Matte PLA @base", - "OrcaFilamentLibrary/Overture PLA @base", - "OrcaFilamentLibrary/Overture PLA Pro @base", - "OrcaFilamentLibrary/Overture Rock PLA @base", - "OrcaFilamentLibrary/Overture Silk PLA @base", - "OrcaFilamentLibrary/Overture Super PLA+ @base", - "OrcaFilamentLibrary/Panchroma CoPE @base", - "OrcaFilamentLibrary/Panchroma PLA @base", - "OrcaFilamentLibrary/Panchroma PLA Celestial @base", - "OrcaFilamentLibrary/Panchroma PLA Galaxy @base", - "OrcaFilamentLibrary/Panchroma PLA Glow @base", - "OrcaFilamentLibrary/Panchroma PLA Luminous @base", - "OrcaFilamentLibrary/Panchroma PLA Marble @base", - "OrcaFilamentLibrary/Panchroma PLA Matte @base", - "OrcaFilamentLibrary/Panchroma PLA Metallic @base", - "OrcaFilamentLibrary/Panchroma PLA Neon @base", - "OrcaFilamentLibrary/Panchroma PLA Satin @base", - "OrcaFilamentLibrary/Panchroma PLA Silk @base", - "OrcaFilamentLibrary/Panchroma PLA Starlight @base", - "OrcaFilamentLibrary/Panchroma PLA Temp Shift @base", - "OrcaFilamentLibrary/Panchroma PLA Translucent @base", - "OrcaFilamentLibrary/Panchroma PLA UV Shift @base", + "OrcaFilamentLibrary/Generic PC @System", "OrcaFilamentLibrary/PolyLite Dual PLA @base", - "OrcaFilamentLibrary/PolyLite PETG @base", - "OrcaFilamentLibrary/PolyLite PLA @base", - "OrcaFilamentLibrary/PolyLite PLA Pro @base", "OrcaFilamentLibrary/PolyTerra Dual PLA @System", - "OrcaFilamentLibrary/PolyTerra PLA @base", - "OrcaFilamentLibrary/Polymaker HT-PLA @base", - "OrcaFilamentLibrary/Polymaker HT-PLA-GF @base", - "OrcaFilamentLibrary/SUNLU PETG @base", - "OrcaFilamentLibrary/SUNLU PLA Marble @base", - "OrcaFilamentLibrary/SUNLU PLA Matte @base", - "OrcaFilamentLibrary/SUNLU PLA+ 2.0 @base", - "OrcaFilamentLibrary/SUNLU PLA+ @base", - "OrcaFilamentLibrary/SUNLU Silk PLA+ @base", - "OrcaFilamentLibrary/SUNLU Wood PLA @base", - "OrcaFilamentLibrary/Valment PLA @base", - "OrcaFilamentLibrary/Valment PLA Galaxy @base", - "OrcaFilamentLibrary/Valment PLA Silk @base", - "OrcaFilamentLibrary/Valment PLA-CF @base", - "OrcaFilamentLibrary/eSUN PETG @base", - "OrcaFilamentLibrary/eSUN PLA+ @base", - "OrcaFilamentLibrary/eSUN PLA-Basic @base", - "OrcaFilamentLibrary/eSUN PLA-Marble @base", - "OrcaFilamentLibrary/eSUN PLA-Matte @base", - "OrcaFilamentLibrary/eSUN ePLA-LW @System", - "OrcaFilamentLibrary/fdm_filament_pla_silk", - "Peopoly/Peopoly Generic PLA", - "Peopoly/Peopoly Lancer PLA-C", - "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", "Prusa/Prusa Generic ABS @CORE One 0.6", "Prusa/Prusa Generic ABS @CORE One 0.8", "Prusa/Prusa Generic ABS @CORE One HF 0.4", @@ -2612,16 +967,6 @@ "Prusa/Prusa Generic ASA HF @MK3.5 0.6", "Prusa/Prusa Generic ASA HF @MK3.5 0.8", "Prusa/Prusa Generic ASA HF @base", - "Prusa/Prusa Generic PA @MK3.5", - "Prusa/Prusa Generic PA @MK3.5 0.25", - "Prusa/Prusa Generic PA @MK3.5 0.6", - "Prusa/Prusa Generic PA @MK3.5 0.8", - "Prusa/Prusa Generic PA @base", - "Prusa/Prusa Generic PA-CF @MK3.5", - "Prusa/Prusa Generic PA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PA-CF @base", "Prusa/Prusa Generic PC @MK3.5", "Prusa/Prusa Generic PC @MK3.5 0.25", "Prusa/Prusa Generic PC @MK3.5 0.6", @@ -2630,63 +975,35 @@ "Prusa/Prusa Generic PC HF @MK3.5 0.6", "Prusa/Prusa Generic PC HF @MK3.5 0.8", "Prusa/Prusa Generic PC HF @base", - "Prusa/Prusa Generic PETG @CORE One", "Prusa/Prusa Generic PETG @CORE One 0.6", "Prusa/Prusa Generic PETG @CORE One 0.8", "Prusa/Prusa Generic PETG @CORE One HF 0.4", "Prusa/Prusa Generic PETG @CORE One HF 0.5", "Prusa/Prusa Generic PETG @CORE One HF 0.6", "Prusa/Prusa Generic PETG @CORE One HF 0.8", - "Prusa/Prusa Generic PETG @MK3.5", - "Prusa/Prusa Generic PETG @MK3.5 0.25", - "Prusa/Prusa Generic PETG @MK3.5 0.6", - "Prusa/Prusa Generic PETG @MK3.5 0.8", - "Prusa/Prusa Generic PETG @MK4S", "Prusa/Prusa Generic PETG @MK4S 0.6", "Prusa/Prusa Generic PETG @MK4S 0.8", "Prusa/Prusa Generic PETG @MK4S HF0.4", "Prusa/Prusa Generic PETG @MK4S HF0.5", "Prusa/Prusa Generic PETG @MK4S HF0.6", "Prusa/Prusa Generic PETG @MK4S HF0.8", - "Prusa/Prusa Generic PETG @base", - "Prusa/Prusa Generic PETG HF @MK3.5", - "Prusa/Prusa Generic PETG HF @MK3.5 0.6", - "Prusa/Prusa Generic PETG HF @MK3.5 0.8", - "Prusa/Prusa Generic PETG HF @base", - "Prusa/Prusa Generic PLA @CORE One", "Prusa/Prusa Generic PLA @CORE One 0.6", "Prusa/Prusa Generic PLA @CORE One 0.8", "Prusa/Prusa Generic PLA @CORE One HF 0.4", "Prusa/Prusa Generic PLA @CORE One HF 0.5", "Prusa/Prusa Generic PLA @CORE One HF 0.6", "Prusa/Prusa Generic PLA @CORE One HF 0.8", - "Prusa/Prusa Generic PLA @MK3.5", - "Prusa/Prusa Generic PLA @MK3.5 0.25", - "Prusa/Prusa Generic PLA @MK3.5 0.6", - "Prusa/Prusa Generic PLA @MK3.5 0.8", - "Prusa/Prusa Generic PLA @MK4S", "Prusa/Prusa Generic PLA @MK4S 0.6", "Prusa/Prusa Generic PLA @MK4S 0.8", "Prusa/Prusa Generic PLA @MK4S HF0.4", "Prusa/Prusa Generic PLA @MK4S HF0.5", "Prusa/Prusa Generic PLA @MK4S HF0.6", "Prusa/Prusa Generic PLA @MK4S HF0.8", - "Prusa/Prusa Generic PLA @base", - "Prusa/Prusa Generic PLA HF @MK3.5", - "Prusa/Prusa Generic PLA HF @MK3.5 0.6", - "Prusa/Prusa Generic PLA HF @MK3.5 0.8", - "Prusa/Prusa Generic PLA HF @base", - "Prusa/Prusa Generic PLA Silk @CORE One", "Prusa/Prusa Generic PLA Silk @CORE One 0.6", "Prusa/Prusa Generic PLA Silk @CORE One 0.8", "Prusa/Prusa Generic PLA Silk @MK4S", "Prusa/Prusa Generic PLA Silk @MK4S 0.6", "Prusa/Prusa Generic PLA Silk @MK4S 0.8", - "Prusa/Prusa Generic PLA-CF @MK3.5", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PLA-CF @base", "Prusa/Prusa Generic TPU @CORE One", "Prusa/Prusa Generic TPU @CORE One 0.6", "Prusa/Prusa Generic TPU @CORE One 0.8", @@ -2699,7 +1016,6 @@ "Prusa/Prusament ASA @CORE One HF 0.5", "Prusa/Prusament ASA @CORE One HF 0.6", "Prusa/Prusament ASA @CORE One HF 0.8", - "Prusa/Prusament PA-CF @CORE One", "Prusa/Prusament PA-CF @CORE One 0.6", "Prusa/Prusament PA-CF @CORE One 0.8", "Prusa/Prusament PC Blend @CORE One", @@ -2712,35 +1028,23 @@ "Prusa/Prusament PC-CF @CORE One", "Prusa/Prusament PC-CF @CORE One 0.6", "Prusa/Prusament PC-CF @CORE One 0.8", - "Prusa/Prusament PETG @CORE One", "Prusa/Prusament PETG @CORE One 0.6", "Prusa/Prusament PETG @CORE One 0.8", "Prusa/Prusament PETG @CORE One HF 0.4", "Prusa/Prusament PETG @CORE One HF 0.5", "Prusa/Prusament PETG @CORE One HF 0.6", "Prusa/Prusament PETG @CORE One HF 0.8", - "Prusa/Prusament PETG @base", - "Prusa/Prusament PLA @CORE One", "Prusa/Prusament PLA @CORE One 0.6", "Prusa/Prusament PLA @CORE One 0.8", "Prusa/Prusament PLA @CORE One HF 0.4", "Prusa/Prusament PLA @CORE One HF 0.5", "Prusa/Prusament PLA @CORE One HF 0.6", "Prusa/Prusament PLA @CORE One HF 0.8", - "Prusa/Prusament PLA @base", "Prusa/Prusament PVB @CORE One", "Prusa/Prusament PVB @CORE One 0.6", "Prusa/Prusament PVB @CORE One 0.8", - "Prusa/Prusament rPLA @CORE One", "Prusa/Prusament rPLA @CORE One 0.6", "Prusa/Prusament rPLA @CORE One 0.8", - "Prusa/Prusament rPLA @base", - "Qidi/Bambu PETG", - "Qidi/Bambu PLA", - "Qidi/HATCHBOX PETG @Qidi", - "Qidi/HATCHBOX PLA @Qidi", - "Qidi/Overture PLA @Qidi", - "Qidi/PolyLite PLA @Qidi", "Qidi/QIDI ABS Rapido 0.2 nozzle", "Qidi/QIDI ABS Rapido 0.6 nozzle", "Qidi/QIDI ABS Rapido 0.8 nozzle", @@ -2756,43 +1060,34 @@ "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle", "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", - "Qidi/QIDI PA-Ultra", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PA12-CF", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-CF", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-GF", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-CF", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PET-GF", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Basic", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Rapido", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Tough", "Qidi/QIDI PETG Tough 0.2 nozzle", "Qidi/QIDI PETG Tough 0.6 nozzle", "Qidi/QIDI PETG Tough 0.8 nozzle", @@ -2800,47 +1095,38 @@ "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Translucent", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-CF", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-GF", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Basic", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Matte Basic", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido", "Qidi/QIDI PLA Rapido 0.2 nozzle", "Qidi/QIDI PLA Rapido 0.8 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Metal", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Silk", "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @0.6 nozzle", @@ -2851,19 +1137,15 @@ "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-CF", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-GF", "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI Support For PAHT", "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI Support For PET/PA", "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", @@ -2872,137 +1154,42 @@ "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI UltraPA-CF25", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI WOOD Rapido", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PA", - "Qidi/Qidi Generic PA-CF", "Qidi/Qidi Generic PC", - "Qidi/Qidi Generic PETG", - "Qidi/Qidi Generic PETG-CF", - "Qidi/Qidi Generic PLA", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PLA Silk", - "Qidi/Qidi Generic PLA+", - "Qidi/Qidi Generic PLA-CF", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi PLA-CF", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Tinmorry PETG-ECO", "RH3D/Generic ABS @E3NG v1.2S", "RH3D/Generic ASA @E3NG v1.2S", "RH3D/Generic PCCF @E3NG v1.2S", "RH3D/Generic PETG @E3NG v1.2S", "RH3D/Generic PLA @E3NG v1.2S", "RH3D/Generic TPU @E3NG v1.2S", - "Ratrig/RatRig BigNozzle PCTG", - "Ratrig/RatRig BigNozzle PETG", - "Ratrig/RatRig BigNozzle PLA", - "Ratrig/RatRig Generic PA", - "Ratrig/RatRig Generic PA-CF", "Ratrig/RatRig Generic PC", - "Ratrig/RatRig Generic PCTG", - "Ratrig/RatRig Generic PETG", - "Ratrig/RatRig Generic PLA", - "Ratrig/RatRig Generic PLA-CF", - "Ratrig/RatRig PunkFil PETG", - "Ratrig/RatRig PunkFil PETG CF", - "SecKit/SecKit Generic PA", - "SecKit/SecKit Generic PA-CF", "SecKit/SecKit Generic PC", - "SecKit/SecKit Generic PETG", - "SecKit/SecKit Generic PLA", - "SecKit/SecKit Generic PLA-CF", - "Snapmaker/Fiberon PA12-CF10 @Snapmaker U1 base", - "Snapmaker/Fiberon PA6-CF20 @Snapmaker U1 base", - "Snapmaker/Fiberon PA612-ESD @Snapmaker U1 base", - "Snapmaker/Panchroma CoPE @Snapmaker U1 base", - "Snapmaker/Panchroma PLA @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Celestial @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Galaxy @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Glow @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Luminous @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Marble @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Matte @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Metallic @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Neon @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Satin @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Silk @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Starlight @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Temp Shift @Snapmaker U1 base", - "Snapmaker/Panchroma PLA Translucent @Snapmaker U1 base", - "Snapmaker/Panchroma PLA UV Shift @Snapmaker U1 base", - "Snapmaker/PolyLite CosPLA @Snapmaker U1 base", - "Snapmaker/PolyLite PLA @Snapmaker U1 base", - "Snapmaker/PolyLite PLA @base", - "Snapmaker/PolyLite PLA Galaxy @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Glow @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Luminous @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Neon @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Pro @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Pro Metallic @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Starlight @Snapmaker U1 base", - "Snapmaker/PolyLite PLA Translucent @Snapmaker U1 base", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", - "Snapmaker/PolyTerra PLA @Snapmaker U1 base", - "Snapmaker/PolyTerra PLA Marble @Snapmaker U1 base", - "Snapmaker/PolyTerra PLA+ @Snapmaker U1 base", - "Snapmaker/Polymaker HT-PLA @Snapmaker U1 base", - "Snapmaker/Polymaker HT-PLA-GF @Snapmaker U1 base", - "Snapmaker/Polymaker PLA @Snapmaker U1 base", - "Snapmaker/Polymaker PLA Pro @Snapmaker U1 base", - "Snapmaker/Polymaker PLA Pro Metallic @Snapmaker U1 base", "Snapmaker/Snapmaker ABS Benchy @U1", "Snapmaker/Snapmaker Dual ABS Benchy", - "Snapmaker/Snapmaker Dual PA-CF @base", - "Snapmaker/Snapmaker Dual PET @base", - "Snapmaker/Snapmaker Dual PLA @base", - "Snapmaker/Snapmaker Dual PLA Eco @base", - "Snapmaker/Snapmaker Dual PLA Matte @base", - "Snapmaker/Snapmaker Dual PLA Metal @base", - "Snapmaker/Snapmaker Dual PLA Silk @base", - "Snapmaker/Snapmaker Dual PLA-CF @base", "Snapmaker/Snapmaker Dual TPE", "Snapmaker/Snapmaker Dual TPU High-Flow", "Snapmaker/Snapmaker J1 ABS Benchy", - "Snapmaker/Snapmaker J1 PA-CF @base", - "Snapmaker/Snapmaker J1 PET @base", - "Snapmaker/Snapmaker J1 PLA @base", - "Snapmaker/Snapmaker J1 PLA Eco @base", - "Snapmaker/Snapmaker J1 PLA Matte @base", - "Snapmaker/Snapmaker J1 PLA Metal @base", - "Snapmaker/Snapmaker J1 PLA Silk @base", - "Snapmaker/Snapmaker J1 PLA-CF @base", "Snapmaker/Snapmaker J1 TPE", "Snapmaker/Snapmaker J1 TPU High-Flow", - "Snapmaker/Snapmaker PA-CF @U1 base", - "Snapmaker/Snapmaker PA-CF @base", "Snapmaker/Snapmaker PET @Dual", - "Snapmaker/Snapmaker PET @U1 base", - "Snapmaker/Snapmaker PET @base", - "Snapmaker/Snapmaker PLA @U1 base", - "Snapmaker/Snapmaker PLA @base", - "Snapmaker/Snapmaker PLA Eco @U1 base", - "Snapmaker/Snapmaker PLA Eco @base", "Snapmaker/Snapmaker PLA Matte @U1", - "Snapmaker/Snapmaker PLA Metal @U1 base", - "Snapmaker/Snapmaker PLA Silk @U1 base", - "Snapmaker/Snapmaker PLA Silk @base", - "Snapmaker/Snapmaker PLA-CF @U1 base", - "Snapmaker/Snapmaker PLA-CF @base", "Snapmaker/Snapmaker TPE", "Snapmaker/Snapmaker TPE @U1", "Snapmaker/Snapmaker TPU High-Flow @U1", @@ -3032,100 +1219,15 @@ "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", "Sovol/Sovol Zero TPU", - "Tiertime/Tiertime Generic BVOH", - "Tiertime/Tiertime Generic BVOH@300HS", - "Tiertime/Tiertime Generic EVA", - "Tiertime/Tiertime Generic EVA@300HS", - "Tiertime/Tiertime Generic HIPS", - "Tiertime/Tiertime Generic HIPS@300HS", - "Tiertime/Tiertime Generic PA", - "Tiertime/Tiertime Generic PA-CF", - "Tiertime/Tiertime Generic PA-CF@300HS", - "Tiertime/Tiertime Generic PA@300HS", "Tiertime/Tiertime Generic PC", "Tiertime/Tiertime Generic PC@300HS", - "Tiertime/Tiertime Generic PCTG", - "Tiertime/Tiertime Generic PCTG@300HS", - "Tiertime/Tiertime Generic PE", - "Tiertime/Tiertime Generic PE-CF", - "Tiertime/Tiertime Generic PE-CF@300HS", - "Tiertime/Tiertime Generic PE@300HS", - "Tiertime/Tiertime Generic PETG", - "Tiertime/Tiertime Generic PETG-CF", - "Tiertime/Tiertime Generic PETG-CF@300HS", - "Tiertime/Tiertime Generic PETG@300HS", - "Tiertime/Tiertime Generic PHA", - "Tiertime/Tiertime Generic PHA@300HS", - "Tiertime/Tiertime Generic PLA", - "Tiertime/Tiertime Generic PLA High Speed", - "Tiertime/Tiertime Generic PLA High Speed@300HS", - "Tiertime/Tiertime Generic PLA Silk", - "Tiertime/Tiertime Generic PLA Silk@300HS", - "Tiertime/Tiertime Generic PLA-CF", - "Tiertime/Tiertime Generic PLA-CF@300HS", - "Tiertime/Tiertime Generic PLA@300HS", - "Tiertime/Tiertime Generic PP", - "Tiertime/Tiertime Generic PP-CF", - "Tiertime/Tiertime Generic PP-CF@300HS", - "Tiertime/Tiertime Generic PP-GF", - "Tiertime/Tiertime Generic PP-GF@300HS", - "Tiertime/Tiertime Generic PP@300HS", - "Tiertime/Tiertime Generic PPA-CF", - "Tiertime/Tiertime Generic PPA-CF@300HS", - "Tiertime/Tiertime Generic PPA-GF", - "Tiertime/Tiertime Generic PPA-GF@300HS", - "Tiertime/Tiertime Generic SBS", - "Tiertime/Tiertime Generic SBS@300HS", - "Tiertime/Tiertime PA6-CF", - "Tiertime/Tiertime PA6-CF@300HS", "Tiertime/Tiertime PC", "Tiertime/Tiertime PC@300HS", - "Tiertime/Tiertime PET-CF", - "Tiertime/Tiertime PET-CF@300HS", - "Tiertime/Tiertime PETG", - "Tiertime/Tiertime PETG@300HS", - "Tiertime/Tiertime PLA", - "Tiertime/Tiertime PLA-CF", - "Tiertime/Tiertime PLA-CF@300HS", - "Tiertime/Tiertime PLA@300HS", - "TwoTrees/TwoTrees Generic HS PLA @SK1", - "Volumic/Désactivé", - "Volumic/PA6 CF20 (Performance)", - "Volumic/PETG ESD (Performance)", - "Volumic/PPS Carbone (Performance)", - "Volumic/Volumic NYLON Ultra", - "Volumic/Volumic NYLON Ultra (Performance)", "Volumic/Volumic PC", "Volumic/Volumic PC (Performance)", - "Volumic/Volumic PCTG Ultra (Performance)", - "Volumic/Volumic PETG Ultra", - "Volumic/Volumic PETG Ultra (Performance)", - "Volumic/Volumic PETG Ultra carbone", - "Volumic/Volumic PETG Ultra carbone (Performance)", - "Volumic/Volumic PLA Ultra", - "Volumic/Volumic PLA Ultra (Performance)", - "Volumic/Volumic PP Ultra", - "Volumic/Volumic PP Ultra (Performance)", - "Volumic/Volumic UNIVERSAL Ultra", - "Volumic/Volumic UNIVERSAL Ultra (Performance)", - "Vzbot/Vzbot Generic PA", - "Vzbot/Vzbot Generic PA-CF", "Vzbot/Vzbot Generic PC", - "Vzbot/Vzbot Generic PETG", - "Vzbot/Vzbot Generic PLA", - "Vzbot/Vzbot Generic PLA-CF", "Wanhao France/YUMI PLA Bowden", "Wanhao France/YUMI PLA Direct Drive", - "Wanhao France/Yumi Generic PETG", - "Wanhao France/Yumi Generic PLA", - "WonderMaker/WonderMaker PET-CF", - "WonderMaker/WonderMaker PETG Basic", - "WonderMaker/WonderMaker PLA Basic", - "WonderMaker/WonderMaker PLA Marble", - "WonderMaker/WonderMaker PLA Matte", - "WonderMaker/WonderMaker PLA Metal", - "WonderMaker/WonderMaker PLA Silk", - "WonderMaker/WonderMaker PLA Wood", "Z-Bolt/Generic ABS @Z-Bolt 0.4 nozzle", "Z-Bolt/Generic ABS @Z-Bolt 0.6 nozzle", "Z-Bolt/Generic ABS @Z-Bolt 0.8 nozzle", @@ -3136,29 +1238,14 @@ "Z-Bolt/Generic PA @Z-Bolt 0.4 nozzle", "Z-Bolt/Generic PA @Z-Bolt 0.6 nozzle", "Z-Bolt/Generic PA @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PA @Z-Bolt Base", "Z-Bolt/Generic PETG @Z-Bolt 0.4 nozzle", "Z-Bolt/Generic PETG @Z-Bolt 0.6 nozzle", "Z-Bolt/Generic PETG @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt Base", "Z-Bolt/Generic PLA @Z-Bolt 0.6 nozzle", "Z-Bolt/Generic PLA @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt Base", - "re3D/re3D Greengate rPETG", - "re3D/re3D Greengate rPETG @0.8 nozzle", - "re3D/re3D Greengate rPETG @1.75 nozzle", "re3D/re3D PC", "re3D/re3D PC @0.4 nozzle", - "re3D/re3D PC @0.8 nozzle", - "re3D/re3D PETG", - "re3D/re3D PETG @0.4 nozzle", - "re3D/re3D PETG @0.8 nozzle", - "re3D/re3D PLA", - "re3D/re3D PLA @0.4 nozzle", - "re3D/re3D PLA @0.8 nozzle", - "re3D/re3D rPP", - "re3D/re3D rPP @0.8 nozzle", - "re3D/re3D rPP @1.75 nozzle" + "re3D/re3D PC @0.8 nozzle" ], "ids": { "00001": [ @@ -3546,26 +1633,6 @@ "581236806": [ "Snapmaker/Snapmaker PA-CF" ], - "AZ01-1": [ - "BBL/AliZ PETG-CF", - "OrcaFilamentLibrary/AliZ PETG-CF" - ], - "AZ01-2": [ - "BBL/AliZ PETG-Metal", - "OrcaFilamentLibrary/AliZ PETG-Metal" - ], - "AliZ001": [ - "BBL/AliZ PETG", - "OrcaFilamentLibrary/AliZ PETG" - ], - "AliZ002": [ - "BBL/AliZ PLA", - "OrcaFilamentLibrary/AliZ PLA" - ], - "AliZ003": [ - "BBL/AliZ PA-CF", - "OrcaFilamentLibrary/AliZ PA-CF" - ], "BABB00": [ "BBL/BETA ABS" ], @@ -3731,83 +1798,9 @@ "BTUB03": [ "BBL/BETA TPU 98A" ], - "CX30DB20": [ - "BBL/COEX TPE 30D", - "OrcaFilamentLibrary/COEX TPE 30D" - ], - "CX40DB20": [ - "BBL/COEX TPE 40D", - "OrcaFilamentLibrary/COEX TPE 40D" - ], - "CX60AB17": [ - "BBL/COEX TPU 60A", - "OrcaFilamentLibrary/COEX TPU 60A" - ], - "CX60DB19": [ - "BBL/COEX TPE 60D", - "OrcaFilamentLibrary/COEX TPE 60D" - ], - "CXABPB09": [ - "BBL/COEX ABS PRIME", - "OrcaFilamentLibrary/COEX ABS PRIME" - ], - "CXABSB01": [ - "BBL/COEX ABS", - "OrcaFilamentLibrary/COEX ABS" - ], - "CXASAB04": [ - "BBL/COEX ASA PRIME", - "OrcaFilamentLibrary/COEX ASA PRIME" - ], - "CXPACB23": [ - "BBL/COEX NYLEX PA6-CF", - "OrcaFilamentLibrary/COEX NYLEX PA6-CF" - ], - "CXPAUB21": [ - "BBL/COEX NYLEX UNFILLED " - ], - "CXPCTB15": [ - "BBL/COEX PCTG PRIME", - "OrcaFilamentLibrary/COEX PCTG PRIME" - ], - "CXPETB13": [ - "BBL/COEX PETG", - "OrcaFilamentLibrary/COEX PETG" - ], - "CXPLAB02": [ - "BBL/COEX PLA", - "OrcaFilamentLibrary/COEX PLA" - ], - "CXPLAB08": [ - "BBL/COEX PLA PRIME", - "OrcaFilamentLibrary/COEX PLA PRIME" - ], - "CXPLSB03": [ - "BBL/COEX PLA+Silk", - "OrcaFilamentLibrary/COEX PLA+Silk" - ], "DFL99": [ "Volumic/Désactivé" ], - "DREMC001": [], - "DREMC002": [], - "DREMC003": [], - "DREMC004": [], - "DREMC005": [], - "DREMC006": [ - "OrcaFilamentLibrary/DREMC PA6-CF" - ], - "DREMC007": [], - "DREMC008": [], - "DREMC009": [ - "OrcaFilamentLibrary/DREMC ABS-GF" - ], - "DREMC010": [ - "OrcaFilamentLibrary/DREMC PPA-CF" - ], - "DREMC011": [], - "DREMC012": [], - "DREMC013": [], "E1001": [ "Creality/eSUN PLA+" ], @@ -3904,33 +1897,9 @@ "EPLAB00": [ "Elegoo/Elegoo PLA" ], - "ESN02": [ - "OrcaFilamentLibrary/eSUN ePLA-LW" - ], - "ESN03": [ - "OrcaFilamentLibrary/eSUN PETG" - ], "ETPUB00": [ "Elegoo/Elegoo TPU 95A" ], - "FDPLAST01": [ - "OrcaFilamentLibrary/FDplast ABS" - ], - "FDPLAST02": [ - "OrcaFilamentLibrary/FDplast HIPS" - ], - "FDPLAST03": [ - "OrcaFilamentLibrary/FDplast PETG" - ], - "FDPLAST04": [ - "OrcaFilamentLibrary/FDplast PLA" - ], - "FDPLAST05": [ - "OrcaFilamentLibrary/FDplast SBS" - ], - "FDPLAST06": [ - "OrcaFilamentLibrary/FDplast TPU" - ], "FFF01": [ "Flashforge/Flashforge PLA" ], @@ -3944,210 +1913,6 @@ "FFG01": [ "Flashforge/Flashforge Generic PLA" ], - "FILAR0001": [ - "OrcaFilamentLibrary/FilAr PLA Bronce" - ], - "FILAR0002": [ - "OrcaFilamentLibrary/FilAr PLA Gris Plata" - ], - "FILAR0003": [ - "OrcaFilamentLibrary/FilAr PLA Cobre" - ], - "FILAR0004": [ - "OrcaFilamentLibrary/FilAr PLA Titanio" - ], - "FILAR0005": [ - "OrcaFilamentLibrary/FilAr PLA Tabaco" - ], - "FILAR0006": [ - "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" - ], - "FILAR0007": [ - "OrcaFilamentLibrary/FilAr PLA Manteca" - ], - "FILAR0008": [ - "OrcaFilamentLibrary/FilAr PLA Marron Oxido" - ], - "FILAR0009": [ - "OrcaFilamentLibrary/FilAr PLA Carpincho" - ], - "FILAR0010": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" - ], - "FILAR0011": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" - ], - "FILAR0012": [ - "OrcaFilamentLibrary/FilAr PLA Piel" - ], - "FILAR0013": [ - "OrcaFilamentLibrary/FilAr PLA Verde FilAr" - ], - "FILAR0014": [ - "OrcaFilamentLibrary/FilAr PLA Verde Manzana" - ], - "FILAR0015": [ - "OrcaFilamentLibrary/FilAr PLA Verde Pixel" - ], - "FILAR0016": [ - "OrcaFilamentLibrary/FilAr PLA Verde Oliva" - ], - "FILAR0017": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" - ], - "FILAR0018": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Calido" - ], - "FILAR0019": [ - "OrcaFilamentLibrary/FilAr PLA Negro Azabache" - ], - "FILAR0020": [ - "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" - ], - "FILAR0021": [ - "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" - ], - "FILAR0022": [ - "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" - ], - "FILAR0023": [ - "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" - ], - "FILAR0024": [ - "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" - ], - "FILAR0025": [ - "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" - ], - "FILAR0026": [ - "OrcaFilamentLibrary/FilAr PLA Azul Francia" - ], - "FILAR0027": [ - "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" - ], - "FILAR0028": [ - "OrcaFilamentLibrary/FilAr PLA Oro" - ], - "FILAR0029": [ - "OrcaFilamentLibrary/FilAr PLA Dorado" - ], - "FILAR0030": [ - "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" - ], - "FILAR0031": [ - "OrcaFilamentLibrary/FilAr PLA-mate Azul" - ], - "FILAR0032": [ - "OrcaFilamentLibrary/FilAr PLA-mate Beige" - ], - "FILAR0033": [ - "OrcaFilamentLibrary/FilAr PLA-mate Blanco" - ], - "FILAR0034": [ - "OrcaFilamentLibrary/FilAr PLA-mate Bordo" - ], - "FILAR0035": [ - "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" - ], - "FILAR0036": [ - "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" - ], - "FILAR0037": [ - "OrcaFilamentLibrary/FilAr PLA-mate Gris" - ], - "FILAR0038": [ - "OrcaFilamentLibrary/FilAr PLA-mate Marron" - ], - "FILAR0039": [ - "OrcaFilamentLibrary/FilAr PLA-mate Naranja" - ], - "FILAR0040": [ - "OrcaFilamentLibrary/FilAr PLA-mate Negro" - ], - "FILAR0041": [ - "OrcaFilamentLibrary/FilAr PLA-mate Piel" - ], - "FILAR0042": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rojo" - ], - "FILAR0043": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rosa" - ], - "FILAR0044": [ - "OrcaFilamentLibrary/FilAr PLA-mate Uva" - ], - "FILAR0045": [ - "OrcaFilamentLibrary/FilAr PLA-mate Verde" - ], - "FILAR0046": [ - "OrcaFilamentLibrary/FilAr PLA-mate Violeta" - ], - "FILAR0047": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" - ], - "FILAR0048": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" - ], - "FILAR0049": [ - "OrcaFilamentLibrary/FilAr PETG Azul Boreal" - ], - "FILAR0050": [ - "OrcaFilamentLibrary/FilAr PETG Azul Francia" - ], - "FILAR0051": [ - "OrcaFilamentLibrary/FilAr PETG Azul Imperial" - ], - "FILAR0052": [ - "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" - ], - "FILAR0053": [ - "OrcaFilamentLibrary/FilAr PETG Cian" - ], - "FILAR0054": [ - "OrcaFilamentLibrary/FilAr PETG Coral" - ], - "FILAR0055": [ - "OrcaFilamentLibrary/FilAr PETG Cristal" - ], - "FILAR0056": [ - "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" - ], - "FILAR0057": [ - "OrcaFilamentLibrary/FilAr PETG Gris Plata" - ], - "FILAR0058": [ - "OrcaFilamentLibrary/FilAr PETG Magenta" - ], - "FILAR0059": [ - "OrcaFilamentLibrary/FilAr PETG Negro Azabache" - ], - "FILAR0060": [ - "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" - ], - "FILARB01": [], - "FILARB02": [], - "FILARB03": [], - "FILL3D001": [ - "OrcaFilamentLibrary/FILL3D PLA Turbo" - ], - "FILL3D002": [ - "OrcaFilamentLibrary/FILL3D PLA Basic" - ], - "FILL3D003": [ - "OrcaFilamentLibrary/FILL3D PETG" - ], - "FILL3D004": [ - "OrcaFilamentLibrary/FILL3D PP" - ], - "FILL3D005": [ - "OrcaFilamentLibrary/FILL3D PPCF" - ], - "FILL3D006": [ - "OrcaFilamentLibrary/FILL3D PA" - ], - "FILL3D007": [ - "OrcaFilamentLibrary/FILL3D PETG CF" - ], "GABSB00": [ "Elegoo/Generic ABS" ], @@ -4954,36 +2719,7 @@ "BBL/Numakers PLA+" ], "GFOT001": [ - "BBL/Overture PLA Pro", - "OrcaFilamentLibrary/Overture PLA Pro" - ], - "GFOT002": [ - "BBL/Overture Silk PLA", - "OrcaFilamentLibrary/Overture Silk PLA" - ], - "GFOT003": [ - "BBL/Overture Easy PLA", - "OrcaFilamentLibrary/Overture Easy PLA" - ], - "GFOT004": [ - "BBL/Overture Rock PLA", - "OrcaFilamentLibrary/Overture Rock PLA" - ], - "GFOT005": [ - "BBL/Overture Super PLA+", - "OrcaFilamentLibrary/Overture Super PLA+" - ], - "GFOT006": [ - "BBL/Overture Air PLA", - "OrcaFilamentLibrary/Overture Air PLA" - ], - "GFOT008": [ - "BBL/Overture TPU", - "OrcaFilamentLibrary/Overture TPU" - ], - "GFOT009": [ - "BBL/Overture ASA", - "OrcaFilamentLibrary/Overture ASA" + "BBL/Overture PLA Pro" ], "GFP95": [ "BBL/Generic PP-GF", @@ -5246,60 +2982,6 @@ "GFS99_6": [ "Prusa/Prusa Generic PVA HF" ], - "GFSEP001": [ - "OrcaFilamentLibrary/Eolas Prints PLA Premium" - ], - "GFSEP002": [ - "OrcaFilamentLibrary/Eolas Prints PLA Matte" - ], - "GFSEP003": [ - "OrcaFilamentLibrary/Eolas Prints PLA Silk" - ], - "GFSEP004": [ - "OrcaFilamentLibrary/Eolas Prints PLA Neon" - ], - "GFSEP005": [ - "OrcaFilamentLibrary/Eolas Prints PLA High Speed" - ], - "GFSEP006": [ - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" - ], - "GFSEP007": [ - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" - ], - "GFSEP008": [ - "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" - ], - "GFSEP009": [ - "OrcaFilamentLibrary/Eolas Prints PLA Transition" - ], - "GFSEP010": [ - "OrcaFilamentLibrary/Eolas Prints PETG" - ], - "GFSEP011": [ - "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" - ], - "GFSEP012": [ - "OrcaFilamentLibrary/Eolas Prints PETG Transition" - ], - "GFSEP013": [ - "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" - ], - "GFSEP014": [ - "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" - ], - "GFSEP015": [ - "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" - ], - "GFSEP016": [ - "OrcaFilamentLibrary/Eolas Prints TPU Transition" - ], - "GFSEP017": [ - "OrcaFilamentLibrary/Eolas Prints ABS" - ], - "GFSEP018": [ - "OrcaFilamentLibrary/Eolas Prints ASA" - ], "GFSL99": [ "Peopoly/Peopoly Generic ABS" ], @@ -5582,44 +3264,15 @@ "LHF_ptpu_pl": [ "LH/LHS TPU" ], - "NIT01": [ - "OrcaFilamentLibrary/NIT ABS" - ], - "NIT02": [ - "OrcaFilamentLibrary/NIT PLA" - ], - "NIT03": [ - "OrcaFilamentLibrary/NIT PETG" - ], - "OEABSB00": [ - "OrcaFilamentLibrary/Elegoo ABS" - ], - "OEASAB00": [ - "OrcaFilamentLibrary/Elegoo ASA" - ], - "OEPAHTB0": [ - "OrcaFilamentLibrary/Elegoo PAHT-CF" - ], - "OEPCB00": [ - "OrcaFilamentLibrary/Elegoo PC" - ], - "OEPETGB0": [ - "OrcaFilamentLibrary/Elegoo PETG" - ], - "OEPLAB00": [ - "OrcaFilamentLibrary/Elegoo PLA" - ], - "OETPUB00": [ - "OrcaFilamentLibrary/Elegoo TPU 95A" - ], "OF09vOcG": [ "Elegoo/Elegoo PLA Galaxy" ], "OF0Ee2jQ": [ "Snapmaker/Snapmaker Dual TPU High-Flow" ], - "OF0M6QAQ": [ - "OrcaFilamentLibrary/Elegoo PLA Galaxy" + "OF0NgY1y": [ + "BBL/COEX NYLEX PA6-CF", + "OrcaFilamentLibrary/COEX NYLEX PA6-CF" ], "OF0SyJhk": [ "Flashforge/Flashforge PA6-CF" @@ -5630,33 +3283,71 @@ "OF0TjJ0G": [ "Qidi/Qidi ASA-Aero" ], + "OF0UJcb6": [ + "OrcaFilamentLibrary/PolyLite PETG" + ], "OF0UbONm": [ "Flashforge/FusRock S-PAHT" ], "OF0VEdLB": [ "Cubicon/Cubicon PETG" ], + "OF0Vtzaw": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" + ], "OF0Y5MLd": [ "Qidi/QIDI PETG-GF" ], + "OF0gGRWk": [ + "OrcaFilamentLibrary/Panchroma PLA Glow" + ], + "OF0h7ERL": [ + "OrcaFilamentLibrary/Elegoo PAHT-CF" + ], + "OF0kCNDK": [ + "OrcaFilamentLibrary/Panchroma PLA Luminous" + ], + "OF0pzFLc": [ + "BBL/COEX PLA+Silk", + "OrcaFilamentLibrary/COEX PLA+Silk" + ], + "OF0wBGNx": [ + "OrcaFilamentLibrary/Bambu ASA-CF" + ], "OF0wk0Pk": [ "Flashforge/Flashforge PLA Pro" ], "OF0z1XpN": [ "Qidi/QIDI PLA Rapido Silk" ], - "OF102WKM": [ - "OrcaFilamentLibrary/Elegoo PETG PRO" - ], "OF17cONC": [ "Snapmaker/PolyTerra Dual PLA" ], + "OF1N1qMK": [ + "OrcaFilamentLibrary/Panchroma PLA UV Shift" + ], + "OF1Pke8t": [ + "BBL/Overture Easy PLA", + "OrcaFilamentLibrary/Overture Easy PLA" + ], + "OF1UNk9P": [ + "OrcaFilamentLibrary/Generic PP" + ], "OF1Zypyy": [ "Qidi/QIDI PETG Tough" ], + "OF1hznGB": [ + "OrcaFilamentLibrary/Elegoo PLA PRO" + ], "OF22AxCm": [ "Sovol/Polymaker PETG" ], + "OF2EK9F1": [ + "OrcaFilamentLibrary/FilAr PLA-mate Violeta" + ], + "OF2GCW1l": [ + "OrcaFilamentLibrary/SUNLU PETG" + ], "OF2HQqTC": [ "Cubicon/Cubicon PLA+" ], @@ -5666,15 +3357,26 @@ "OF2UFmOo": [ "Qidi/Bambu PLA" ], + "OF2VFe4J": [ + "OrcaFilamentLibrary/Bambu PAHT-CF" + ], + "OF2Z1nT5": [ + "OrcaFilamentLibrary/FilAr PETG Azul Imperial" + ], + "OF2pj5l5": [ + "BBL/Overture Super PLA+", + "OrcaFilamentLibrary/Overture Super PLA+" + ], "OF2tvNYA": [ "Sovol/Sovol Zero PLA Silk" ], + "OF2xccEe": [], + "OF30Ftju": [ + "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" + ], "OF38Hyk4": [ "Flashforge/Flashforge PETG Pro" ], - "OF3GKs2i": [ - "OrcaFilamentLibrary/eSUN PLA-Matte" - ], "OF3XeEuV": [ "Qidi/QIDI PET-GF" ], @@ -5684,21 +3386,26 @@ "OF3arl18": [ "Elegoo/Elegoo Rapid PETG" ], + "OF3kBrdA": [ + "OrcaFilamentLibrary/eSUN PETG" + ], "OF41QVDH": [ "Flashforge/Flashforge Generic PLA-Silk" ], "OF43idK2": [ "Creality/Creality Generic PLA Matte" ], + "OF44VYzK": [ + "OrcaFilamentLibrary/FilAr PETG Azul Francia" + ], "OF48G7He": [ "Qidi/QIDI PETG Tough 0.8 nozzle" ], + "OF4KsW72": [], "OF4RKeng": [ "Flashforge/Flashforge Generic ASA" ], - "OF4fgpse": [ - "OrcaFilamentLibrary/Elegoo PLA Marble" - ], + "OF4RvVuU": [], "OF4gzzE4": [ "Qidi/QIDI PET-CF" ], @@ -5711,15 +3418,24 @@ "OF50NUZI": [ "FlyingBear/FlyingBear PLA Basic" ], + "OF54B0S0": [ + "OrcaFilamentLibrary/Bambu PPA-CF" + ], "OF57IbZT": [ "Artillery/Artillery PLA Basic" ], "OF5Bmdtg": [ "Sovol/Sovol SV06 Plus ACE ABS" ], + "OF5CgdDq": [ + "OrcaFilamentLibrary/PolyLite PLA" + ], "OF5J2axC": [ "Sovol/Sovol Zero PLA Basic" ], + "OF5P4jgA": [ + "OrcaFilamentLibrary/FilAr PLA Dorado" + ], "OF5T1Y9R": [ "Flashforge/Flashforge ABS Basic" ], @@ -5732,6 +3448,13 @@ "OF5kwfZu": [ "Flashforge/FusRock Generic NexPA-CF25" ], + "OF5nlfKY": [ + "OrcaFilamentLibrary/FilAr PLA Oro" + ], + "OF5rnhjh": [], + "OF5vgi2G": [ + "OrcaFilamentLibrary/FilAr PLA-mate Azul" + ], "OF60Lmeq": [ "Flashforge/Flashforge PLA Matte" ], @@ -5741,6 +3464,9 @@ "OF6FM5F7": [ "Flashforge/FusRock PAHT" ], + "OF6Ll8lK": [ + "OrcaFilamentLibrary/Elegoo PETG Translucent" + ], "OF6Mxzsg": [ "Flashforge/Generic TPU" ], @@ -5756,8 +3482,11 @@ "OF70DKqH": [ "Snapmaker/Snapmaker TPE" ], - "OF79FFkO": [ - "OrcaFilamentLibrary/Elegoo PC-FR" + "OF74KeQR": [ + "OrcaFilamentLibrary/Generic PHA" + ], + "OF7H3VJM": [ + "OrcaFilamentLibrary/eSUN PLA-Marble" ], "OF7M9vy4": [ "Ratrig/RatRig BigNozzle PLA" @@ -5768,22 +3497,39 @@ "OF7f0eUZ": [ "Volumic/Volumic ASA Ultra" ], + "OF7lOgYF": [ + "OrcaFilamentLibrary/Generic PETG HF" + ], "OF7tgL9c": [ "Chuanying/Chuanying ASA", "Chuanying/Chuanying Generic ASA" ], - "OF8HQmJD": [ - "OrcaFilamentLibrary/Elegoo PLA Sparkle" + "OF8Tlg47": [ + "OrcaFilamentLibrary/Generic PPA-GF" ], "OF8WvPVL": [ "Qidi/QIDI ABS Rapido 0.8 nozzle" ], + "OF8aFWfQ": [ + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" + ], + "OF8jh0Lk": [ + "OrcaFilamentLibrary/FilAr PLA-mate Marron" + ], + "OF8tPByX": [ + "OrcaFilamentLibrary/Generic PPA-CF" + ], + "OF99UMPq": [ + "BBL/COEX ABS", + "OrcaFilamentLibrary/COEX ABS" + ], + "OF99vXPs": [], + "OF9OlTWH": [ + "OrcaFilamentLibrary/Bambu PLA Marble" + ], "OF9RZyBz": [ "Flashforge/Polymaker Generic S1" ], - "OF9qvJxV": [ - "OrcaFilamentLibrary/Elegoo PLA Translucent2" - ], "OF9sr3Vn": [ "Flashforge/Flashforge PLA Sparkle" ], @@ -5826,90 +3572,191 @@ "OFAiqi5v": [ "Elegoo/Elegoo ASA-CF" ], + "OFAnyRUI": [ + "OrcaFilamentLibrary/Bambu Support For PLA" + ], "OFAnyzjN": [ "Qidi/HATCHBOX PETG" ], + "OFAt6ec0": [ + "OrcaFilamentLibrary/FilAr PLA Marron Oxido" + ], "OFAtydxE": [ "Flashforge/FusRock S-Multi" ], + "OFB5SmWk": [ + "OrcaFilamentLibrary/Valment PLA Galaxy" + ], "OFBGxHgT": [ "FlyingBear/FlyingBear PLA" ], "OFBRSZom": [ "Volumic/PPS Carbone (Performance)" ], + "OFBSW57R": [ + "OrcaFilamentLibrary/Bambu PLA Aero" + ], + "OFBUIlZ7": [ + "OrcaFilamentLibrary/Elegoo PLA+" + ], "OFBvxnjM": [ "Elegoo/Elegoo PETG-GF" ], + "OFBw6eEG": [ + "OrcaFilamentLibrary/Overture Matte PLA" + ], "OFC2FSsV": [ "Qidi/Overture PLA" ], "OFC5CCeo": [ "Flashforge/Flashforge Generic PETG-CF" ], + "OFC78WGQ": [ + "OrcaFilamentLibrary/Panchroma PLA Starlight" + ], + "OFCD8qiU": [ + "OrcaFilamentLibrary/Generic EVA" + ], + "OFCIUsWh": [ + "OrcaFilamentLibrary/Panchroma PLA Translucent" + ], "OFCJaXZS": [ "Flashforge/Flashforge PPS" ], "OFCKK3u9": [ "FlyingBear/FlyingBear PA-CF" ], + "OFCccVrQ": [ + "OrcaFilamentLibrary/PolyTerra Dual PLA" + ], "OFCgpxn2": [ "Prusa/Prusa Generic ABS HF" ], "OFChH9xu": [ "Snapmaker/Snapmaker J1 TPE" ], - "OFD5e0sH": [ - "OrcaFilamentLibrary/Elegoo Rapid PLA+" + "OFCidU7j": [ + "OrcaFilamentLibrary/DREMC ABS-GF" ], - "OFDCk0cz": [ - "OrcaFilamentLibrary/Generic PETG-CF" + "OFCjG251": [ + "OrcaFilamentLibrary/FilAr PLA-mate Verde" + ], + "OFCoRobU": [ + "OrcaFilamentLibrary/Elas ASA" + ], + "OFDETOM6": [ + "OrcaFilamentLibrary/eSUN PLA-Matte" + ], + "OFDGigEI": [ + "OrcaFilamentLibrary/Bambu PLA Dynamic" ], "OFDMWB6t": [ "Elegoo/Elegoo PLA+" ], - "OFDNiRTx": [ - "OrcaFilamentLibrary/Elegoo PLA+" + "OFDSrzZ8": [ + "Flashforge/Generic PLA", + "OrcaFilamentLibrary/Generic PLA", + "Sovol/Generic PLA" + ], + "OFDe8uyM": [ + "OrcaFilamentLibrary/Valment PLA" ], "OFDkABjZ": [ "Flashforge/Generic TPU-90A" ], + "OFDpW3J8": [ + "OrcaFilamentLibrary/FILL3D PLA Basic" + ], "OFDramZ2": [ "Co Print/CoPrint Generic PETG" ], + "OFDvXujf": [ + "OrcaFilamentLibrary/Generic PVA" + ], + "OFDvqJ6n": [ + "OrcaFilamentLibrary/Overture ABS Basic" + ], + "OFDxfPgH": [ + "OrcaFilamentLibrary/Bambu PLA Sparkle" + ], + "OFE0NFRh": [ + "BBL/COEX TPU 60A", + "OrcaFilamentLibrary/COEX TPU 60A" + ], "OFE22Uba": [ "Flashforge/Flashforge TPU-90A" ], + "OFEGNJD4": [ + "OrcaFilamentLibrary/Bambu PLA Silk" + ], "OFEYKrjb": [ "Artillery/Artillery PETG" ], + "OFEZ449N": [ + "OrcaFilamentLibrary/FilAr PLA-mate Uva" + ], "OFEdyZqS": [ "Anycubic/Anycubic PLA Luminous" ], + "OFEhuUNq": [], + "OFEkPBwx": [ + "OrcaFilamentLibrary/Bambu PLA Glow" + ], + "OFEswT5W": [ + "OrcaFilamentLibrary/Bambu PLA-CF" + ], + "OFF9OKoY": [ + "OrcaFilamentLibrary/PolyLite PLA Pro" + ], "OFFIL5pD": [ "Qidi/QIDI PA12-CF" ], + "OFFNYwWR": [ + "OrcaFilamentLibrary/Bambu PA-CF" + ], "OFFenwbU": [ "FLSun/FLSun S1 PLA Silk" ], + "OFFkCLBl": [ + "OrcaFilamentLibrary/Panchroma PLA Galaxy" + ], "OFFmJ8aR": [ "FlyingBear/Other PLA Hyper" ], "OFFrbsvQ": [ "InfiMech/Other TPU" ], + "OFFvzqcd": [ + "OrcaFilamentLibrary/Bambu PETG Basic" + ], "OFG8vHw8": [ "Qidi/Qidi Generic ASA" ], "OFGFZhWu": [ "Sovol/Sovol SV06 ACE PETG" ], + "OFGVwfK0": [ + "OrcaFilamentLibrary/FilAr PLA-mate Gris" + ], "OFGb4hPY": [ "Anycubic/Anycubic PEBA 95A" ], + "OFGcLA5R": [ + "OrcaFilamentLibrary/FilAr PLA-mate Beige" + ], "OFGfdP6J": [ "Flashforge/FusRock Generic S-Multi" ], + "OFGkyftV": [ + "BBL/Overture Silk PLA", + "OrcaFilamentLibrary/Overture Silk PLA" + ], + "OFH2nN08": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" + ], + "OFHAccHz": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" + ], "OFHBTqyD": [ "Flashforge/Flashforge PLA Basic" ], @@ -5919,14 +3766,32 @@ "OFHL32M0": [ "Anycubic/Anycubic TPU" ], + "OFHWSM21": [ + "OrcaFilamentLibrary/Fiberon PET-CF" + ], + "OFHa48An": [ + "OrcaFilamentLibrary/Bambu PET-CF" + ], + "OFHfzQXo": [ + "OrcaFilamentLibrary/Eolas Prints PLA Transition" + ], + "OFHmPYRy": [ + "OrcaFilamentLibrary/SUNLU PLA+ 2.0" + ], "OFHtQDC9": [ "Elegoo/Elegoo PLA Basic" ], - "OFICPchn": [ - "OrcaFilamentLibrary/Elegoo PLA Basic" + "OFIBXa0k": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rojo" ], - "OFIGHU7W": [ - "OrcaFilamentLibrary/Elegoo PETG-CF" + "OFIamQnD": [ + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" + ], + "OFIegjmD": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" + ], + "OFIfnzxC": [ + "OrcaFilamentLibrary/Bambu Support For PLA/PETG" ], "OFIl3ar9": [ "Sovol/Sovol SV08 PETG" @@ -5934,14 +3799,22 @@ "OFIzguhB": [ "Volumic/Volumic UNIVERSAL Ultra" ], - "OFJIImD5": [ - "OrcaFilamentLibrary/Elegoo PET-CF" + "OFJHBEGD": [], + "OFJNeELv": [ + "OrcaFilamentLibrary/FILL3D PA" ], - "OFJfx0Cl": [ - "OrcaFilamentLibrary/Generic PE-CF" + "OFJOFnOZ": [ + "BBL/AliZ PETG-CF", + "OrcaFilamentLibrary/AliZ PETG-CF" ], - "OFJsqMzx": [ - "OrcaFilamentLibrary/Generic PLA Matte" + "OFJQDUk3": [ + "OrcaFilamentLibrary/FilAr PETG Cristal" + ], + "OFJs1ToM": [ + "BBL/COEX NYLEX UNFILLED " + ], + "OFJu1XwK": [ + "OrcaFilamentLibrary/NIT PETG" ], "OFK39W9u": [ "Flashforge/Flashforge Generic PETG-CF10" @@ -5955,15 +3828,33 @@ "OFKH15Hd": [ "Sovol/Sovol SV08 ABS" ], + "OFKKajh6": [ + "OrcaFilamentLibrary/FilAr PLA Gris Plata" + ], + "OFKTSiYF": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Calido" + ], "OFKWVi10": [ "Flashforge/Flashforge Generic PLA-CF10" ], + "OFKWWgyp": [ + "OrcaFilamentLibrary/FilAr PLA Carpincho" + ], + "OFKZ9skj": [ + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" + ], "OFKZH00L": [ "Flashforge/FusRock Generic PET-CF" ], + "OFKhMPeX": [ + "OrcaFilamentLibrary/Bambu PC" + ], "OFKhtNBx": [ "Snapmaker/Snapmaker J1 TPU High-Flow" ], + "OFKiSMWR": [ + "OrcaFilamentLibrary/Panchroma PLA Marble" + ], "OFKjlAbC": [ "Qidi/QIDI UltraPA-CF25" ], @@ -5982,8 +3873,23 @@ "OFL7vEML": [ "Flashforge/FlashForge PC" ], - "OFLSBS99": [ - "OrcaFilamentLibrary/Generic SBS" + "OFLJ8S6I": [ + "OrcaFilamentLibrary/SUNLU Wood PLA" + ], + "OFLNgV3C": [], + "OFLPAxz3": [ + "Custom/Generic ASA", + "OrcaFilamentLibrary/Generic ASA" + ], + "OFLXvuMr": [ + "OrcaFilamentLibrary/Elegoo Rapid PETG" + ], + "OFLakOUI": [ + "OrcaFilamentLibrary/Generic PC", + "Sovol/Generic PC" + ], + "OFLcd093": [ + "OrcaFilamentLibrary/Elegoo PETG" ], "OFLeFaUO": [ "Flashforge/Flashforge Generic PVA" @@ -6003,14 +3909,28 @@ "OFM3PeVe": [ "Flashforge/Flashforge ASA-CF" ], - "OFMCMXSG": [ - "OrcaFilamentLibrary/Generic PP-GF" + "OFM91vZs": [ + "BBL/Overture ASA", + "OrcaFilamentLibrary/Overture ASA" ], "OFMHTnPP": [ "Flashforge/Flashforge PA12-CF" ], - "OFMQJToc": [ - "OrcaFilamentLibrary/Elegoo PETG-GF" + "OFMTK0UC": [ + "OrcaFilamentLibrary/Bambu Support For PA/PET" + ], + "OFMUWNkp": [ + "OrcaFilamentLibrary/SUNLU PLA+" + ], + "OFMZvH0z": [ + "BBL/Overture Rock PLA", + "OrcaFilamentLibrary/Overture Rock PLA" + ], + "OFMjtqTC": [ + "OrcaFilamentLibrary/Bambu PLA Wood" + ], + "OFMuXBmO": [ + "OrcaFilamentLibrary/Elas PLA Basic" ], "OFN0X7oN": [ "Qidi/QIDI PLA Basic" @@ -6024,24 +3944,43 @@ "OFNRgSch": [ "Artillery/Artillery PC" ], + "OFNU9YIW": [ + "OrcaFilamentLibrary/FilAr PETG Azul Boreal" + ], "OFNX5uRT": [ "Qidi/QIDI TPU-Aero" ], "OFNbajj9": [ "Creality/Creality Generic ASA-CF" ], + "OFNemJM6": [ + "OrcaFilamentLibrary/FilAr PLA Cobre" + ], + "OFNiSLfL": [ + "OrcaFilamentLibrary/Generic PP-GF" + ], + "OFNk8bxk": [ + "OrcaFilamentLibrary/Bambu PA6-GF" + ], "OFNvrbnf": [ "Co Print/CoPrint Generic ABS" ], "OFNz8rrn": [ "FlyingBear/FlyingBear PLA Hyper" ], + "OFO1GEq6": [ + "OrcaFilamentLibrary/Panchroma PLA Neon" + ], "OFO3IOWM": [ "Volumic/PETG ESD (Performance)" ], "OFO5R9KJ": [ "Sovol/Sovol Zero TPU" ], + "OFOABq7t": [ + "BBL/AliZ PETG-Metal", + "OrcaFilamentLibrary/AliZ PETG-Metal" + ], "OFOJUJAS": [ "Cubicon/Cubicon PA-CF" ], @@ -6051,15 +3990,27 @@ "OFOW9K96": [ "Qidi/Qidi TPU 95A-HF" ], + "OFOiJfLM": [ + "OrcaFilamentLibrary/FILL3D PETG CF" + ], "OFOkTA0C": [ "Elegoo/Elegoo PETG Translucent" ], "OFOp3Oef": [ "Anycubic/Generic ABS" ], + "OFOsHDnB": [ + "OrcaFilamentLibrary/Elegoo PETG PRO" + ], + "OFOvv91M": [ + "OrcaFilamentLibrary/PolyLite ABS" + ], "OFOysPuE": [ "Qidi/QIDI TPU-GF" ], + "OFP26zNb": [ + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" + ], "OFP4poIv": [ "Sovol/Sovol Zero PLA Silk HS Nozzle" ], @@ -6072,15 +4023,39 @@ "OFPJrlC3": [ "Flashforge/Flashforge PLA-CF" ], + "OFPWPlSC": [ + "OrcaFilamentLibrary/FILL3D PP" + ], + "OFPbyOSk": [ + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" + ], + "OFPc4zVY": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" + ], "OFPeGtB1": [ "Volumic/Volumic UNIVERSAL Ultra (Performance)" ], + "OFPkCJKE": [ + "OrcaFilamentLibrary/Panchroma PLA Satin" + ], + "OFPklMI1": [ + "OrcaFilamentLibrary/Generic PE" + ], "OFPokkKe": [ "Qidi/QIDI PETG-CF" ], + "OFPoyiFs": [ + "OrcaFilamentLibrary/Polymaker HT-PLA" + ], + "OFPqX3x2": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" + ], "OFPwi9X0": [ "Qidi/HATCHBOX ABS" ], + "OFQ3e56w": [ + "OrcaFilamentLibrary/Bambu PLA Galaxy" + ], "OFQ5xAKf": [ "Chuanying/Chuanying Generic PVA" ], @@ -6090,14 +4065,21 @@ "OFQCAYAt": [ "Flashforge/Flashforge PPA-CF" ], + "OFQHiNJs": [ + "OrcaFilamentLibrary/Bambu Support G" + ], + "OFQLcbps": [ + "Custom/Generic PA-CF", + "OrcaFilamentLibrary/Generic PA-CF" + ], + "OFQWIKbV": [ + "OrcaFilamentLibrary/FilAr PLA Titanio" + ], "OFQZINrX": [ "Qidi/QIDI ABS-GF10" ], - "OFQhLoxN": [ - "OrcaFilamentLibrary/Elegoo PLA Wood" - ], - "OFQkWxJy": [ - "OrcaFilamentLibrary/Elegoo PLA Matte" + "OFQbjX3s": [ + "OrcaFilamentLibrary/FILL3D PETG" ], "OFR8dTVW": [ "FLSun/FLSun S1 PLA High Speed" @@ -6108,18 +4090,30 @@ "OFRR8LUh": [ "Flashforge/Generic ASA" ], - "OFRS2Ggt": [ - "OrcaFilamentLibrary/Generic PP-CF" - ], "OFRgDMDJ": [ "Flashforge/Flashforge PETG Transparent" ], + "OFRiFnfQ": [ + "OrcaFilamentLibrary/Eolas Prints PETG Transition" + ], + "OFRiYgMK": [ + "OrcaFilamentLibrary/Panchroma PLA Celestial" + ], + "OFRzR5mi": [ + "OrcaFilamentLibrary/eSUN ePLA-LW" + ], "OFS1ekCg": [ "Ratrig/RatRig BigNozzle PCTG" ], + "OFS2tn6G": [ + "OrcaFilamentLibrary/Fiberon PA612-CF" + ], "OFS3HrR1": [ "InfiMech/Other PLA" ], + "OFS8lTQt": [ + "OrcaFilamentLibrary/Panchroma PLA Silk" + ], "OFSCm6pJ": [ "Elegoo/Elegoo PET-CF" ], @@ -6138,8 +4132,15 @@ "OFSpTWdv": [ "InfiMech/Other PA-CF" ], - "OFT3TqB6": [ - "OrcaFilamentLibrary/Elas ASA" + "OFSwbBWS": [], + "OFTGHyNC": [ + "OrcaFilamentLibrary/Bambu PLA Impact" + ], + "OFTOPcx0": [ + "OrcaFilamentLibrary/Eolas Prints TPU Transition" + ], + "OFTRZ8Y4": [ + "OrcaFilamentLibrary/Bambu PETG-CF" ], "OFTa6gPH": [ "Flashforge/Flashforge PLA Pro" @@ -6150,6 +4151,12 @@ "OFTbsWVg": [ "Artillery/Artillery TPU" ], + "OFTcE0nA": [ + "OrcaFilamentLibrary/eSUN PLA-Basic" + ], + "OFTlRzpe": [ + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" + ], "OFToBodi": [ "Qidi/QIDI ABS Rapido Metal" ], @@ -6159,39 +4166,69 @@ "OFTszIHE": [ "Creality/Creality Generic PLA Silk" ], + "OFU1zPxE": [ + "OrcaFilamentLibrary/Elegoo PLA Galaxy" + ], "OFUJw3Lx": [ "Qidi/QIDI PEBA 95A" ], "OFUYjPc4": [ "Dremel/Dremel Generic PLA" ], + "OFUanySo": [ + "OrcaFilamentLibrary/Bambu PLA Silk+" + ], "OFUkpobY": [ "Qidi/QIDI PAHT-CF" ], "OFUqBrgf": [ "Chuanying/Chuanying Generic TPU" ], + "OFUyDDNv": [ + "OrcaFilamentLibrary/Elegoo PC" + ], "OFV1szQh": [ "Peopoly/Peopoly Lancer PETG-C" ], "OFV4hD1o": [ "Qidi/QIDI PLA Rapido Metal" ], + "OFV5tNw6": [ + "OrcaFilamentLibrary/Elegoo PET-CF" + ], "OFVBNoov": [ "InfiMech/InfiMech ABS" ], + "OFVBlUFH": [], + "OFVCkX5w": [ + "OrcaFilamentLibrary/Bambu TPU 95A" + ], "OFVJXE4n": [ "FlyingBear/Other ABS" ], - "OFVLuVmD": [ - "OrcaFilamentLibrary/Elegoo Rapid PETG" - ], "OFVhG0yM": [ "Qidi/QIDI ABS Odorless" ], + "OFVptRxp": [ + "BBL/COEX TPE 30D", + "OrcaFilamentLibrary/COEX TPE 30D" + ], + "OFW29a9R": [ + "OrcaFilamentLibrary/PolyTerra PLA", + "Snapmaker/PolyTerra PLA" + ], "OFW8UdlP": [ "Qidi/QIDI ABS Rapido" ], + "OFWTRJ1K": [ + "OrcaFilamentLibrary/FilAr PLA Bronce" + ], + "OFWYtgCa": [ + "OrcaFilamentLibrary/Elegoo PLA Wood" + ], + "OFWbdGsC": [ + "OrcaFilamentLibrary/Generic PLA-CF" + ], "OFWkCAdc": [ "Qidi/QIDI PETG Tough 0.2 nozzle" ], @@ -6201,57 +4238,94 @@ "OFWv6JYn": [ "Flashforge/Flashforge PLA Metal" ], + "OFWwF7K7": [ + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" + ], "OFWyCd0Y": [ "Qidi/QIDI Support For PET/PA" ], + "OFX0ycRQ": [ + "OrcaFilamentLibrary/Fiberon PA12-CF" + ], "OFXA8vy9": [ "Artillery/Artillery PLA Basic+" ], + "OFXCBZTA": [ + "OrcaFilamentLibrary/Eolas Prints ABS" + ], + "OFXIbw5D": [ + "OrcaFilamentLibrary/Bambu PLA Matte" + ], "OFXNO5Of": [ "Qidi/QIDI PLA Rapido 0.2 nozzle" ], "OFXQX0tr": [ "Ratrig/RatRig PunkFil PETG CF" ], + "OFXTPuqV": [ + "OrcaFilamentLibrary/Elas PETG Basic" + ], "OFXcfTEb": [ "Qidi/Tinmorry PETG-ECO" ], "OFXfgh61": [ "Prusa/Prusa Generic PA-CF" ], + "OFXkm8q1": [ + "OrcaFilamentLibrary/Generic PP-CF" + ], "OFXkwkn6": [ "Qidi/QIDI PA-Ultra" ], - "OFXmQgno": [ - "OrcaFilamentLibrary/eSUN PLA-Marble" - ], "OFXv4FUi": [ "Flashforge/Flashforge PLA Galaxy" ], + "OFXz7Mwx": [ + "OrcaFilamentLibrary/Elegoo PLA Silk" + ], + "OFXzQ4yL": [ + "OrcaFilamentLibrary/Bambu ASA-Aero" + ], "OFY1U4uM": [ "Sovol/Sovol SV08 TPU" ], + "OFY9muEs": [ + "Custom/Generic ABS", + "OrcaFilamentLibrary/Generic ABS", + "Sovol/Generic ABS" + ], "OFYG2Gfy": [ "Afinia/Afinia ABS+" ], + "OFYGbPHX": [ + "OrcaFilamentLibrary/PolyLite Dual PLA" + ], "OFYH00jV": [ "Qidi/QIDI ABS-GF" ], "OFYICbI4": [ "Flashforge/FusRock Generic PAHT-CF" ], + "OFYPdQJh": [ + "OrcaFilamentLibrary/Generic PETG", + "Sovol/Generic PETG" + ], "OFYRS7GZ": [ "Flashforge/Generic TPU-95A" ], "OFYZs7dN": [ "Flashforge/Flashforge Generic HS PLA" ], + "OFYd5uS3": [], "OFYehFGr": [ "Ratrig/RatRig BigNozzle TPU" ], "OFYfZgxU": [ "FlyingBear/FlyingBear TPU" ], + "OFZ4QbfK": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" + ], "OFZAkPHG": [ "Qidi/QIDI PPS-GF" ], @@ -6261,9 +4335,6 @@ "OFZcrV9c": [ "Flashforge/Flashforge PPS-CF" ], - "OFZhdVnP": [ - "OrcaFilamentLibrary/eSUN PLA-Basic" - ], "OFZjZ1k7": [ "Creality/Creality HF Generic PLA" ], @@ -6273,12 +4344,27 @@ "OFa6L3Of": [ "Qidi/Qidi PC-ABS-FR" ], + "OFaDOaNt": [ + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" + ], + "OFaEesXQ": [ + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" + ], "OFaKIoH2": [ "Elegoo/Elegoo PLA Sparkle" ], "OFaKZ6JI": [ "Anycubic/Generic PETG Basic" ], + "OFaQMgRH": [ + "OrcaFilamentLibrary/Bambu PLA Tough" + ], + "OFaYz8iE": [ + "OrcaFilamentLibrary/Elas PLA Pro" + ], + "OFausr3F": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rosa" + ], "OFaxQnfz": [ "Cubicon/Cubicon PC" ], @@ -6288,33 +4374,59 @@ "OFbK5wve": [ "Prusa/Prusa Generic TPU HF" ], + "OFbP8zEO": [ + "OrcaFilamentLibrary/Eolas Prints PLA Silk" + ], "OFbS9rjH": [ "Qidi/QIDI PETG Rapido" ], "OFbYP6Wb": [ "Elegoo/Elegoo PLA Marble" ], - "OFbgt3u3": [ - "OrcaFilamentLibrary/Elas PLA Basic" - ], "OFc2SnEp": [ "Artillery/Artillery PVA" ], + "OFc3xdm9": [ + "OrcaFilamentLibrary/Overture PLA" + ], "OFcZZWnB": [ "Cubicon/Cubicon ABS-A100" ], "OFceJcLf": [ "Qidi/PolyLite PLA" ], + "OFcfQk4h": [ + "BBL/Overture Air PLA", + "OrcaFilamentLibrary/Overture Air PLA" + ], "OFcqs5g7": [ "Elegoo/Elegoo PLA Translucent2" ], "OFcsHCy4": [ "Sovol/Sovol SV08 PLA" ], + "OFcvKkrs": [ + "BBL/Overture TPU", + "OrcaFilamentLibrary/Overture TPU" + ], "OFcy60o4": [ "Flashforge/Flashforge ASA Basic" ], + "OFcytyoA": [ + "OrcaFilamentLibrary/Fiberon PETG-ESD" + ], + "OFd0Fv0k": [ + "OrcaFilamentLibrary/Generic PE-CF" + ], + "OFd2vX0G": [ + "BBL/COEX PLA PRIME", + "OrcaFilamentLibrary/COEX PLA PRIME" + ], + "OFd4zw5l": [ + "BBL/AliZ PA-CF", + "OrcaFilamentLibrary/AliZ PA-CF" + ], + "OFdI4zMo": [], "OFdLGn0R": [ "Creality/Creality Generic PLA Wood" ], @@ -6324,9 +4436,15 @@ "OFdSGkUG": [ "Anycubic/Anycubic PETG" ], + "OFdb8YNz": [ + "OrcaFilamentLibrary/FilAr PLA Verde Manzana" + ], "OFdhVJql": [ "Flashforge/Flashforge PLA Buint Ti" ], + "OFdzlrhi": [ + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" + ], "OFeFRwST": [ "Flashforge/Flashforge PVA" ], @@ -6339,8 +4457,12 @@ "OFefhSuj": [ "InfiMech/InfiMech PLA Hyper" ], - "OFenGPBR": [ - "OrcaFilamentLibrary/Elegoo PETG Translucent" + "OFesA6rF": [ + "Flashforge/Generic PLA Silk", + "OrcaFilamentLibrary/Generic PLA Silk" + ], + "OFexaZU2": [ + "OrcaFilamentLibrary/FilAr PLA Manteca" ], "OFeybQvK": [ "Qidi/QIDI ABS Rapido 0.2 nozzle" @@ -6351,12 +4473,24 @@ "OFf2b9wu": [ "Anycubic/Anycubic ABS" ], - "OFfB1QKi": [ - "OrcaFilamentLibrary/Generic PETG HF" + "OFf5awy4": [ + "OrcaFilamentLibrary/Eolas Prints PLA Matte" + ], + "OFf6mfQO": [ + "OrcaFilamentLibrary/Bambu Support for ABS" + ], + "OFfBpSRI": [ + "OrcaFilamentLibrary/Bambu ASA" + ], + "OFfJSCzm": [ + "OrcaFilamentLibrary/FDplast PETG" ], "OFfJoIgg": [ "Qidi/QIDI PAHT-GF" ], + "OFfZcoKr": [ + "OrcaFilamentLibrary/FilAr PLA-mate Piel" + ], "OFfdxQok": [ "Qidi/Generic PLA+" ], @@ -6367,15 +4501,42 @@ "OFfkPhrJ": [ "Creality/Creality HF Generic Speed PLA" ], + "OFfmZrI3": [ + "OrcaFilamentLibrary/FDplast TPU" + ], + "OFfnXFie": [ + "BBL/COEX TPE 40D", + "OrcaFilamentLibrary/COEX TPE 40D" + ], "OFfoA8kJ": [ "CoLiDo/CoLiDo PLA" ], + "OFfq5YXA": [ + "OrcaFilamentLibrary/Valment PLA-CF" + ], + "OFfr4XNO": [ + "BBL/COEX TPE 60D", + "OrcaFilamentLibrary/COEX TPE 60D" + ], "OFftQOek": [ "Flashforge/Flashforge PLA Matte" ], + "OFfuhviw": [ + "OrcaFilamentLibrary/Elegoo PLA Marble" + ], "OFg4N6ZL": [ "FlyingBear/FlyingBear PETG" ], + "OFg57Nmc": [ + "OrcaFilamentLibrary/Bambu PC FR" + ], + "OFg8hMzT": [ + "OrcaFilamentLibrary/FILL3D PPCF" + ], + "OFg8ndtj": [ + "Custom/Generic PA", + "OrcaFilamentLibrary/Generic PA" + ], "OFgJX0Fc": [ "Flashforge/FlashForge PPS" ], @@ -6385,15 +4546,25 @@ "OFgMGSpF": [ "Sovol/Sovol SV06 Plus ACE PETG" ], + "OFgMWJ8T": [ + "OrcaFilamentLibrary/FilAr PLA Negro Azabache" + ], "OFgNzLVh": [ "Sovol/Sovol Zero ABS" ], "OFgSK1hL": [ "Anycubic/Anycubic PLA High Speed" ], + "OFgbpcy9": [ + "OrcaFilamentLibrary/Generic TPU", + "Sovol/Generic TPU" + ], "OFglpvEE": [ "Sovol/Sovol SV06 ACE TPU" ], + "OFgpLTMR": [ + "OrcaFilamentLibrary/FilAr PETG Gris Plata" + ], "OFgrGfPy": [ "Anycubic/Anycubic PLA+" ], @@ -6403,18 +4574,52 @@ "OFh5GUhZ": [ "Elegoo/Elegoo PLA Wood" ], + "OFhASRWj": [ + "OrcaFilamentLibrary/Panchroma PLA Temp Shift" + ], "OFhKNHC8": [ "Elegoo/Generic PETG PRO" ], + "OFhMO9Kh": [ + "OrcaFilamentLibrary/GreenGate3D PETG" + ], + "OFhQfUQY": [ + "OrcaFilamentLibrary/Generic SBS" + ], + "OFhWc5Bv": [ + "OrcaFilamentLibrary/NIT ABS" + ], + "OFhWhL1i": [ + "OrcaFilamentLibrary/Eolas Prints PETG" + ], + "OFhcYzR8": [ + "OrcaFilamentLibrary/Elegoo PLA Sparkle" + ], + "OFhfd722": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" + ], + "OFhlCNqq": [ + "BBL/COEX PLA", + "OrcaFilamentLibrary/COEX PLA" + ], + "OFhuaUQB": [ + "OrcaFilamentLibrary/Bambu ABS" + ], "OFhzHd2Y": [ "Flashforge/Flashforge HIPS" ], "OFi1ocNv": [ "Flashforge/Flashforge PA" ], + "OFiDpM1B": [ + "OrcaFilamentLibrary/FilAr PLA-mate Bordo" + ], "OFiJYDPC": [ "Qidi/HATCHBOX PLA" ], + "OFiWaoqD": [ + "OrcaFilamentLibrary/DREMC PPA-CF" + ], "OFic2uNr": [ "Sovol/Sovol SV06 ACE PLA" ], @@ -6427,12 +4632,24 @@ "OFiyGNbI": [ "Elegoo/Elegoo PETG-CF" ], + "OFj3bTjw": [ + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" + ], "OFjFPhUC": [ "Prusa/Prusament rPLA" ], + "OFjPXrXO": [ + "OrcaFilamentLibrary/Elegoo PLA Glow" + ], + "OFjT9PkZ": [ + "OrcaFilamentLibrary/FilAr PLA Tabaco" + ], "OFjZw7k1": [ "Snapmaker/PolyTerra J1 PLA" ], + "OFjb0wos": [ + "OrcaFilamentLibrary/Panchroma PLA Metallic" + ], "OFjdTQd6": [ "Anycubic/Anycubic PLA Silk" ], @@ -6445,9 +4662,15 @@ "OFjohFkg": [ "Qidi/QIDI PETG Translucent" ], + "OFjorDcx": [ + "OrcaFilamentLibrary/FDplast ABS" + ], "OFjqPjjl": [ "Flashforge/Generic PET" ], + "OFjt9en1": [ + "OrcaFilamentLibrary/Generic CoPE" + ], "OFjurQ3I": [ "Sovol/Sovol Zero PETG" ], @@ -6457,6 +4680,15 @@ "OFk6T5YH": [ "Sovol/Sovol Zero PETG HS Nozzle" ], + "OFk8t9mz": [ + "OrcaFilamentLibrary/Fiberon PETG-rCF" + ], + "OFkGvN4d": [ + "OrcaFilamentLibrary/FilAr PLA Verde Pixel" + ], + "OFkOviHk": [ + "OrcaFilamentLibrary/Fiberon PA6-CF" + ], "OFkaDtKx": [ "Flashforge/Flashforge PA66-CF" ], @@ -6466,12 +4698,24 @@ "OFkfK62J": [ "Elegoo/Elegoo PLA Silk" ], + "OFkhhUS0": [ + "OrcaFilamentLibrary/Elegoo Rapid PLA+" + ], "OFklg4aM": [ "Elegoo/Elegoo PLA PRO" ], + "OFknl9Iz": [ + "OrcaFilamentLibrary/Bambu ABS-GF" + ], + "OFkoLUtR": [ + "OrcaFilamentLibrary/FilAr PLA Verde Oliva" + ], "OFkoT6jl": [ "Prusa/Prusament PLA" ], + "OFkzr35f": [ + "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" + ], "OFlN56xW": [ "Chuanying/Chuanying Generic PLA-Silk", "Chuanying/Chuanying PLA-SILK" @@ -6479,39 +4723,78 @@ "OFlNKZLP": [ "Flashforge/Flashforge PLA Metal" ], + "OFlP3KWq": [ + "OrcaFilamentLibrary/Elegoo PETG HF" + ], + "OFlSNkhc": [ + "OrcaFilamentLibrary/Eolas Prints ASA" + ], "OFlbn4FY": [ "Snapmaker/Snapmaker PLA Matte" ], + "OFln72PT": [ + "OrcaFilamentLibrary/Elegoo PLA-CF" + ], + "OFlsTpJG": [ + "OrcaFilamentLibrary/Elegoo PC-FR" + ], + "OFlwmqrC": [ + "OrcaFilamentLibrary/Polymaker HT-PLA-GF" + ], "OFlxnxDx": [ "Tiertime/Tiertime Generic SBS" ], "OFlzQ0IS": [ "Peopoly/Peopoly Lancer PET-CF" ], + "OFm06H6V": [ + "OrcaFilamentLibrary/Elegoo PLA Basic" + ], "OFm1VZed": [ "Flashforge/Flashforge Generic PLA-CF" ], "OFmF1xL9": [ "Qidi/QIDI ASA-CF" ], + "OFmJAd3A": [ + "OrcaFilamentLibrary/FDplast HIPS" + ], "OFmKNi3f": [ "Qidi/QIDI PLA Rapido" ], "OFmOWC74": [ "Elegoo/Elegoo PETG PRO" ], + "OFmY0l6t": [ + "OrcaFilamentLibrary/Generic PLA Matte" + ], + "OFmaeU4a": [ + "OrcaFilamentLibrary/FilAr PLA-mate Naranja" + ], "OFmcJsqt": [ "InfiMech/InfiMech TPU" ], "OFmduKVr": [ "Flashforge/FlashForge PPS-CF" ], - "OFmeQjRP": [ - "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" - ], "OFmgesco": [ "Flashforge/Flashforge TPU 65D" ], + "OFmhJs5V": [ + "OrcaFilamentLibrary/Elegoo TPU 95A" + ], + "OFmn9NZL": [ + "OrcaFilamentLibrary/FusRock ABS-GF" + ], + "OFmpMwxS": [ + "OrcaFilamentLibrary/Generic PLA High Speed" + ], + "OFmveLWz": [ + "OrcaFilamentLibrary/Elegoo PETG-GF" + ], + "OFn1QaY3": [ + "OrcaFilamentLibrary/Elegoo PLA Translucent2" + ], "OFnLnZQo": [ "Cubicon/Cubicon PC" ], @@ -6524,6 +4807,15 @@ "OFnY9ovF": [ "Artillery/Artillery PA-CF" ], + "OFnYVFk2": [ + "OrcaFilamentLibrary/FilAr PLA Azul Francia" + ], + "OFnejEt4": [ + "OrcaFilamentLibrary/FilAr PETG Cian" + ], + "OFniMuTN": [ + "OrcaFilamentLibrary/Bambu PA6-CF" + ], "OFnj7bPm": [ "Qidi/QIDI ABS Rapido 0.6 nozzle" ], @@ -6533,6 +4825,10 @@ "OFnyirh9": [ "Artillery/Artillery PLA Silk" ], + "OFo2UF2C": [ + "Flashforge/Generic BVOH", + "OrcaFilamentLibrary/Generic BVOH" + ], "OFo4VB3w": [ "Elegoo/Generic ABS-CF" ], @@ -6545,27 +4841,61 @@ "OFoJUGj6": [ "Flashforge/Flashforge HS PLA" ], + "OFoSknDB": [ + "OrcaFilamentLibrary/FILL3D PLA Turbo" + ], + "OFoYSJKi": [ + "OrcaFilamentLibrary/Generic PETG-CF" + ], + "OFobDOW5": [ + "OrcaFilamentLibrary/Elegoo ASA" + ], + "OFocyw69": [ + "BBL/AliZ PETG", + "OrcaFilamentLibrary/AliZ PETG" + ], + "OFoiVqVM": [ + "OrcaFilamentLibrary/Bambu PLA Basic" + ], "OFoimrpo": [ "Flashforge/Flashforge PETG-CF" ], + "OFovEIbw": [ + "OrcaFilamentLibrary/Bambu PETG HF" + ], "OFp8lkYD": [ "Flashforge/Flashforge PPA-GF" ], "OFp90N8a": [ "Artillery/Artillery PA" ], + "OFpBlrvY": [ + "OrcaFilamentLibrary/Valment PLA Silk" + ], "OFpHq9gJ": [ "Prusa/Prusament PETG" ], + "OFpPGSKG": [ + "OrcaFilamentLibrary/SUNLU Silk PLA+" + ], + "OFpW4gdi": [ + "OrcaFilamentLibrary/SUNLU PLA Matte" + ], "OFphFSUJ": [ "Prusa/Prusa Generic PETG HF" ], - "OFpwg2Qh": [ - "OrcaFilamentLibrary/Elegoo ASA-CF" - ], "OFq6IhFg": [ "Cubicon/Cubicon PLA" ], + "OFq8gfS4": [ + "OrcaFilamentLibrary/FilAr PETG Negro Azabache" + ], + "OFqGRZyH": [ + "OrcaFilamentLibrary/Numakers PLA+" + ], + "OFqINlYj": [ + "OrcaFilamentLibrary/eSUN PLA+" + ], "OFqPp2yL": [ "Qidi/QIDI PETG Tough 0.6 nozzle" ], @@ -6575,38 +4905,59 @@ "OFqSTJ3I": [ "OrcaArena/OrcaArena Generic PLA Silk" ], - "OFqh1Ngp": [ - "OrcaFilamentLibrary/Elegoo PLA-CF" - ], "OFqkcvDI": [ "Peopoly/Peopoly Lancer ABS-GF" ], + "OFqtx549": [ + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" + ], + "OFqw2PQA": [ + "OrcaFilamentLibrary/Panchroma CoPE" + ], "OFqyIUDi": [ "Qidi/Qidi PLA-CF" ], + "OFrFBEfd": [ + "OrcaFilamentLibrary/Eolas Prints PLA Neon" + ], + "OFrKLeE3": [ + "OrcaFilamentLibrary/Bambu PLA Metal" + ], + "OFrOh600": [ + "OrcaFilamentLibrary/Panchroma PLA Matte" + ], "OFrbbq6E": [ "InfiMech/Other PLA Hyper" ], - "OFrgQ1Ns": [ - "OrcaFilamentLibrary/Elas PLA Pro" + "OFryjl35": [ + "OrcaFilamentLibrary/Elegoo ASA-CF" ], "OFs1CbB1": [ "Qidi/QIDI PLA Rapido 0.8 nozzle" ], - "OFs6lLH7": [ - "OrcaFilamentLibrary/Elegoo PLA Silk" + "OFsB2lxm": [ + "OrcaFilamentLibrary/Elegoo PLA Matte" ], "OFsCOJv7": [ "Anycubic/Generic TPU" ], - "OFsKqcQW": [ - "OrcaFilamentLibrary/Elegoo PLA PRO" + "OFsDXRpS": [ + "OrcaFilamentLibrary/FilAr PLA Piel" + ], + "OFsFon5l": [ + "OrcaFilamentLibrary/Generic HIPS" + ], + "OFsHSVZc": [ + "OrcaFilamentLibrary/Bambu Support W" ], "OFsLkLw6": [ "Elegoo/Generic PLA Matte" ], - "OFsNZcid": [ - "OrcaFilamentLibrary/PolyLite Dual PLA" + "OFsRDvTM": [ + "OrcaFilamentLibrary/Panchroma PLA" + ], + "OFsXQXbs": [ + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" ], "OFsgANe3": [ "Flashforge/Flashforge PAHT-CF" @@ -6614,12 +4965,18 @@ "OFsmPFwh": [ "Sovol/Sovol SV06 Plus ACE TPU" ], + "OFsoykbm": [ + "OrcaFilamentLibrary/DREMC PA6-CF" + ], "OFt1YdX8": [ "FLSun/FLSun T1 PLA Silk" ], "OFt5bvKK": [ "Artillery/Artillery PETG Basic" ], + "OFt6e0US": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" + ], "OFt9AiN5": [ "Flashforge/Polymaker CoPA" ], @@ -6632,12 +4989,20 @@ "OFtL05hE": [ "Sovol/Sovol Zero PLA Basic HS Nozzle" ], + "OFtOoWIj": [], + "OFtRn8X8": [ + "OrcaFilamentLibrary/FDplast SBS" + ], "OFtXBjvb": [ "Artillery/Artillery PLA Tough" ], + "OFtcKVgP": [], "OFtcTs1o": [ "Ratrig/RatRig BigNozzle ABS" ], + "OFtefokm": [ + "OrcaFilamentLibrary/FilAr PLA-mate Blanco" + ], "OFtemzzw": [ "Sovol/Sovol SV06 ACE ABS" ], @@ -6650,9 +5015,22 @@ "OFtmT4Nd": [ "Artillery/Artillery ASA" ], + "OFtpXCCv": [ + "BBL/COEX ASA PRIME", + "OrcaFilamentLibrary/COEX ASA PRIME" + ], + "OFtr8eZw": [ + "OrcaFilamentLibrary/FDplast PLA" + ], + "OFtudokz": [ + "OrcaFilamentLibrary/Eolas Prints PLA Premium" + ], "OFtwA91m": [ "Sovol/Sovol Zero PC" ], + "OFu1evlr": [ + "OrcaFilamentLibrary/Generic PCTG" + ], "OFuPC4S8": [ "Elegoo/Elegoo PLA-CF" ], @@ -6662,24 +5040,34 @@ "OFuTFxVP": [ "Qidi/Overture ABS" ], + "OFuUuIhR": [ + "OrcaFilamentLibrary/Elegoo PETG-CF" + ], + "OFuWCQXN": [ + "BBL/COEX ABS PRIME", + "OrcaFilamentLibrary/COEX ABS PRIME" + ], "OFuXkYly": [ "Elegoo/Elegoo PLA Glow" ], "OFuYvNS3": [ "Afinia/Afinia Value ABS" ], + "OFufTAK9": [ + "OrcaFilamentLibrary/FilAr PLA-mate Negro" + ], "OFuidAEg": [ "Qidi/Bambu ABS" ], "OFuq9tqb": [ "InfiMech/InfiMech PLA Basic" ], + "OFurdQxc": [ + "OrcaFilamentLibrary/FilAr PETG Magenta" + ], "OFuswXlp": [ "Flashforge/Generic TPU 85A" ], - "OFutwD6f": [ - "OrcaFilamentLibrary/Elegoo PLA Glow" - ], "OFuyJhLF": [ "Flashforge/Flashforge PETG Basic" ], @@ -6692,21 +5080,40 @@ "OFvGSn0l": [ "Creality/Creality Generic PETG-CF" ], + "OFvKUnLh": [ + "OrcaFilamentLibrary/Bambu TPU 95A HF" + ], "OFvN3117": [ "Qidi/QIDI PLA Matte Basic" ], "OFvOhSjO": [ "FlyingBear/Other TPU" ], + "OFvPPMxL": [ + "OrcaFilamentLibrary/FilAr PLA Verde FilAr" + ], + "OFvTVZc3": [ + "BBL/COEX PETG", + "OrcaFilamentLibrary/COEX PETG" + ], + "OFvVy7yo": [ + "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" + ], "OFvYfHPB": [ "Anycubic/Anycubic PLA Matte" ], "OFvaXhYD": [ "InfiMech/InfiMech PETG" ], + "OFvgE0Zh": [ + "OrcaFilamentLibrary/Elegoo PLA" + ], "OFviQ9lH": [ "Flashforge/Flashforge Generic TPU" ], + "OFvrXuV7": [ + "OrcaFilamentLibrary/PolyLite ASA" + ], "OFvsS7Fb": [ "Flashforge/Generic TPU-64D" ], @@ -6716,6 +5123,9 @@ "OFvxvkAd": [ "Artillery/Artillery PLA-CF" ], + "OFvzvwCu": [ + "OrcaFilamentLibrary/Eolas Prints PLA High Speed" + ], "OFw05rkF": [ "InfiMech/Other PETG" ], @@ -6725,21 +5135,44 @@ "OFw1S8lL": [ "Artillery/Artillery ABS" ], - "OFw4OHWE": [ - "OrcaFilamentLibrary/Elas PETG Basic" - ], "OFwHPTvy": [ "Qidi/Qidi Generic PLA+" ], + "OFwJ0qu2": [], + "OFwPrlCM": [ + "OrcaFilamentLibrary/Bambu PETG Translucent" + ], + "OFwRJ4g0": [ + "OrcaFilamentLibrary/NIT PLA" + ], + "OFwaYjL6": [ + "OrcaFilamentLibrary/Fiberon PA6-GF" + ], "OFwf0oWp": [ "Flashforge/Flashforge PLA Luminous" ], + "OFwu7IAG": [ + "BBL/COEX PCTG PRIME", + "OrcaFilamentLibrary/COEX PCTG PRIME" + ], "OFwyqcGn": [ "Elegoo/Elegoo PLA Matte" ], + "OFx8Lmsd": [ + "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" + ], + "OFxA1p01": [ + "OrcaFilamentLibrary/Overture PLA Pro" + ], "OFxLeRyT": [ "Prusa/Prusa Generic PVA HF" ], + "OFxOHhZw": [ + "OrcaFilamentLibrary/Elegoo ABS" + ], + "OFxUwUeW": [ + "OrcaFilamentLibrary/SUNLU PLA Marble" + ], "OFxVzzn4": [ "Chuanying/Chuanying Generic PLA-CF10" ], @@ -6764,18 +5197,28 @@ "OFyD1Zo8": [ "InfiMech/Other PC" ], + "OFybzvQN": [ + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" + ], "OFyoW5W2": [ "Flashforge/Flashforge PLA Color Change" ], "OFypQeKR": [ "Elegoo/Generic PC-CF" ], + "OFysxCep": [ + "OrcaFilamentLibrary/FilAr PETG Coral" + ], "OFyt23xJ": [ "FLSun/FLSun T1 PLA High Speed" ], "OFyxAbO4": [ "Flashforge/Flashforge TPU-95A" ], + "OFyxayW4": [ + "BBL/AliZ PLA", + "OrcaFilamentLibrary/AliZ PLA" + ], "OFzFbFcl": [ "Elegoo/Elegoo PC-FR" ], @@ -6788,352 +5231,20 @@ "OFziUL2X": [ "Ginger Additive/Ginger Generic PLA" ], - "OFzrWlH5": [ - "OrcaFilamentLibrary/Elegoo PETG HF" - ], - "OGFA00": [ - "OrcaFilamentLibrary/Bambu PLA Basic" - ], - "OGFA01": [ - "OrcaFilamentLibrary/Bambu PLA Matte" - ], - "OGFA02": [ - "OrcaFilamentLibrary/Bambu PLA Metal" - ], - "OGFA03": [ - "OrcaFilamentLibrary/Bambu PLA Impact" - ], - "OGFA05": [ - "OrcaFilamentLibrary/Bambu PLA Silk" - ], - "OGFA06": [ - "OrcaFilamentLibrary/Bambu PLA Silk+" - ], - "OGFA07": [ - "OrcaFilamentLibrary/Bambu PLA Marble" - ], - "OGFA08": [ - "OrcaFilamentLibrary/Bambu PLA Sparkle" - ], - "OGFA09": [ - "OrcaFilamentLibrary/Bambu PLA Tough" - ], - "OGFA11": [ - "OrcaFilamentLibrary/Bambu PLA Aero" - ], - "OGFA12": [ - "OrcaFilamentLibrary/Bambu PLA Glow" - ], - "OGFA13": [ - "OrcaFilamentLibrary/Bambu PLA Dynamic" - ], - "OGFA15": [ - "OrcaFilamentLibrary/Bambu PLA Galaxy" - ], - "OGFA16": [ - "OrcaFilamentLibrary/Bambu PLA Wood" - ], - "OGFA50": [ - "OrcaFilamentLibrary/Bambu PLA-CF" - ], - "OGFB00": [ - "OrcaFilamentLibrary/Bambu ABS" - ], - "OGFB01": [ - "OrcaFilamentLibrary/Bambu ASA" - ], - "OGFB02": [ - "OrcaFilamentLibrary/Bambu ASA-Aero" - ], - "OGFB50": [ - "OrcaFilamentLibrary/Bambu ABS-GF" - ], - "OGFB51": [ - "OrcaFilamentLibrary/Bambu ASA-CF" - ], - "OGFB60": [ - "OrcaFilamentLibrary/PolyLite ABS" - ], - "OGFB61": [ - "OrcaFilamentLibrary/PolyLite ASA" - ], - "OGFB98": [ - "Custom/Generic ASA", - "OrcaFilamentLibrary/Generic ASA" - ], - "OGFB99": [ - "Custom/Generic ABS", - "OrcaFilamentLibrary/Generic ABS", - "Sovol/Generic ABS" - ], - "OGFC00": [ - "OrcaFilamentLibrary/Bambu PC" - ], - "OGFC01": [ - "OrcaFilamentLibrary/Bambu PC FR" - ], - "OGFC99": [ - "OrcaFilamentLibrary/Generic PC", - "Sovol/Generic PC" - ], - "OGFG00": [ - "OrcaFilamentLibrary/Bambu PETG Basic" - ], - "OGFG01": [ - "OrcaFilamentLibrary/Bambu PETG Translucent" - ], - "OGFG02": [ - "OrcaFilamentLibrary/Bambu PETG HF" - ], - "OGFG50": [ - "OrcaFilamentLibrary/Bambu PETG-CF" - ], - "OGFG60": [ - "OrcaFilamentLibrary/PolyLite PETG" - ], - "OGFG97": [ - "OrcaFilamentLibrary/Generic PCTG" - ], - "OGFG99": [ - "OrcaFilamentLibrary/Generic PETG", - "Sovol/Generic PETG" - ], - "OGFGG300": [ - "OrcaFilamentLibrary/GreenGate3D PETG" - ], - "OGFL00": [ - "OrcaFilamentLibrary/PolyLite PLA" - ], - "OGFL00-1": [ - "OrcaFilamentLibrary/PolyTerra Dual PLA" - ], - "OGFL01": [ - "OrcaFilamentLibrary/PolyTerra PLA", - "Snapmaker/PolyTerra PLA" - ], - "OGFL03": [ - "OrcaFilamentLibrary/eSUN PLA+" - ], - "OGFL04": [ - "OrcaFilamentLibrary/Overture PLA" - ], - "OGFL05": [ - "OrcaFilamentLibrary/Overture Matte PLA" - ], - "OGFL06": [ - "OrcaFilamentLibrary/Fiberon PETG-ESD" - ], - "OGFL50": [ - "OrcaFilamentLibrary/Fiberon PA6-CF" - ], - "OGFL51": [ - "OrcaFilamentLibrary/Fiberon PA6-GF" - ], - "OGFL52": [ - "OrcaFilamentLibrary/Fiberon PA12-CF" - ], - "OGFL53": [ - "OrcaFilamentLibrary/Fiberon PA612-CF" - ], - "OGFL54": [ - "OrcaFilamentLibrary/Fiberon PET-CF" - ], - "OGFL55": [ - "OrcaFilamentLibrary/Fiberon PETG-rCF" - ], - "OGFL95": [ - "OrcaFilamentLibrary/Generic PLA High Speed" - ], - "OGFL96": [ - "Flashforge/Generic PLA Silk", - "OrcaFilamentLibrary/Generic PLA Silk", - "Sovol/Generic PLA Silk" - ], - "OGFL98": [ - "OrcaFilamentLibrary/Generic PLA-CF" - ], - "OGFL99": [ - "Flashforge/Generic PLA", - "OrcaFilamentLibrary/Generic PLA", - "Sovol/Generic PLA" - ], - "OGFLC99": [ - "OrcaFilamentLibrary/Generic CoPE" - ], - "OGFN03": [ - "OrcaFilamentLibrary/Bambu PA-CF" - ], - "OGFN04": [ - "OrcaFilamentLibrary/Bambu PAHT-CF" - ], - "OGFN05": [ - "OrcaFilamentLibrary/Bambu PA6-CF" - ], - "OGFN06": [ - "OrcaFilamentLibrary/Bambu PPA-CF" - ], - "OGFN08": [ - "OrcaFilamentLibrary/Bambu PA6-GF" - ], - "OGFN96": [ - "OrcaFilamentLibrary/Generic PPA-GF" - ], - "OGFN97": [ - "OrcaFilamentLibrary/Generic PPA-CF" - ], - "OGFN98": [ - "Custom/Generic PA-CF", - "OrcaFilamentLibrary/Generic PA-CF" - ], - "OGFN99": [ - "Custom/Generic PA", - "OrcaFilamentLibrary/Generic PA" - ], - "OGFNMK00": [ - "OrcaFilamentLibrary/Numakers PLA+" - ], - "OGFP97": [ - "OrcaFilamentLibrary/Generic PP" - ], - "OGFP99": [ - "OrcaFilamentLibrary/Generic PE" - ], - "OGFPM001": [ - "OrcaFilamentLibrary/Panchroma PLA" - ], - "OGFPM002": [ - "OrcaFilamentLibrary/Panchroma PLA Matte" - ], - "OGFPM003": [ - "OrcaFilamentLibrary/Panchroma PLA Marble" - ], - "OGFPM004": [ - "OrcaFilamentLibrary/Panchroma PLA Silk" - ], - "OGFPM005": [ - "OrcaFilamentLibrary/Panchroma PLA Satin" - ], - "OGFPM006": [ - "OrcaFilamentLibrary/Panchroma PLA Translucent" - ], - "OGFPM007": [ - "OrcaFilamentLibrary/Panchroma PLA Galaxy" - ], - "OGFPM008": [ - "OrcaFilamentLibrary/Panchroma PLA Celestial" - ], - "OGFPM009": [ - "OrcaFilamentLibrary/Panchroma PLA Starlight" - ], - "OGFPM010": [ - "OrcaFilamentLibrary/Panchroma PLA Glow" - ], - "OGFPM011": [ - "OrcaFilamentLibrary/Panchroma PLA Luminous" - ], - "OGFPM012": [ - "OrcaFilamentLibrary/Panchroma PLA Metallic" - ], - "OGFPM013": [ - "OrcaFilamentLibrary/Panchroma PLA Neon" - ], - "OGFPM014": [ - "OrcaFilamentLibrary/Panchroma PLA UV Shift" - ], - "OGFPM015": [ - "OrcaFilamentLibrary/Panchroma PLA Temp Shift" - ], - "OGFPM016": [ - "OrcaFilamentLibrary/Panchroma CoPE" - ], - "OGFPM017": [ - "OrcaFilamentLibrary/Polymaker HT-PLA" - ], - "OGFPM018": [ - "OrcaFilamentLibrary/Polymaker HT-PLA-GF" - ], - "OGFPM019": [ - "OrcaFilamentLibrary/PolyLite PLA Pro" - ], - "OGFR00": [ - "OrcaFilamentLibrary/FusRock ABS-GF" - ], - "OGFR98": [ - "OrcaFilamentLibrary/Generic PHA" - ], - "OGFR99": [ - "OrcaFilamentLibrary/Generic EVA" - ], - "OGFS00": [ - "OrcaFilamentLibrary/Bambu Support W" - ], - "OGFS01": [ - "OrcaFilamentLibrary/Bambu Support G" - ], - "OGFS02": [ - "OrcaFilamentLibrary/Bambu Support For PLA" - ], - "OGFS03": [ - "OrcaFilamentLibrary/Bambu Support For PA/PET" - ], - "OGFS04": [ + "OFzrUUxc": [], + "OFzyIxba": [ "OrcaFilamentLibrary/Bambu PVA" ], - "OGFS05": [ - "OrcaFilamentLibrary/Bambu Support For PLA/PETG" - ], - "OGFS06": [ - "OrcaFilamentLibrary/Bambu Support for ABS" - ], - "OGFS97": [ - "Flashforge/Generic BVOH", - "OrcaFilamentLibrary/Generic BVOH" - ], - "OGFS98": [ - "OrcaFilamentLibrary/Generic HIPS" - ], - "OGFS99": [ - "OrcaFilamentLibrary/Generic PVA" - ], - "OGFSNL02": [ - "OrcaFilamentLibrary/SUNLU PLA Matte" - ], - "OGFSNL03": [ - "OrcaFilamentLibrary/SUNLU PLA+" - ], - "OGFSNL04": [ - "OrcaFilamentLibrary/SUNLU PLA+ 2.0" - ], - "OGFSNL05": [ - "OrcaFilamentLibrary/SUNLU Silk PLA+" - ], - "OGFSNL06": [ - "OrcaFilamentLibrary/SUNLU PLA Marble" - ], - "OGFSNL07": [ - "OrcaFilamentLibrary/SUNLU Wood PLA" + "OGFC99": [], + "OGFG99": [], + "OGFL96": [ + "Flashforge/Generic PLA Silk", + "Sovol/Generic PLA Silk" ], + "OGFN99": [], "OGFSNL08": [ - "OrcaFilamentLibrary/SUNLU PETG", "Sovol/SUNLU PETG" ], - "OGFT01": [ - "OrcaFilamentLibrary/Bambu PET-CF" - ], - "OGFT02": [], - "OGFU00": [ - "OrcaFilamentLibrary/Bambu TPU 95A HF" - ], - "OGFU01": [ - "OrcaFilamentLibrary/Bambu TPU 95A" - ], - "OGFU99": [ - "OrcaFilamentLibrary/Generic TPU", - "Sovol/Generic TPU" - ], - "OVTABS08": [ - "OrcaFilamentLibrary/Overture ABS Basic" - ], "P1001": [ "Creality/Panchroma PLA Satin" ], @@ -7916,18 +6027,6 @@ ], "SMCFU001": [ "SeeMeCNC/SeeMeCNC TPU" - ], - "VLMNT01": [ - "OrcaFilamentLibrary/Valment PLA" - ], - "VLMNT02": [ - "OrcaFilamentLibrary/Valment PLA Silk" - ], - "VLMNT03": [ - "OrcaFilamentLibrary/Valment PLA-CF" - ], - "VLMNT04": [ - "OrcaFilamentLibrary/Valment PLA Galaxy" ] }, "instantiated_with_id": [ @@ -9500,14 +7599,26 @@ "OrcaFilamentLibrary/FilAr PLA-mate Violeta", "OrcaFilamentLibrary/Generic ABS @System", "OrcaFilamentLibrary/Generic ASA @System", + "OrcaFilamentLibrary/Generic BVOH @System", + "OrcaFilamentLibrary/Generic CoPE @System", + "OrcaFilamentLibrary/Generic EVA @System", + "OrcaFilamentLibrary/Generic HIPS @System", "OrcaFilamentLibrary/Generic PA @System", "OrcaFilamentLibrary/Generic PA-CF @System", "OrcaFilamentLibrary/Generic PC @System", + "OrcaFilamentLibrary/Generic PCTG @System", + "OrcaFilamentLibrary/Generic PE @System", "OrcaFilamentLibrary/Generic PETG @System", + "OrcaFilamentLibrary/Generic PHA @System", + "OrcaFilamentLibrary/Generic PLA @System", "OrcaFilamentLibrary/Generic PLA High Speed @System", + "OrcaFilamentLibrary/Generic PLA Silk @System", "OrcaFilamentLibrary/Generic PLA-CF @System", + "OrcaFilamentLibrary/Generic PP @System", + "OrcaFilamentLibrary/Generic PPA-CF @System", "OrcaFilamentLibrary/Generic PPA-GF @System", "OrcaFilamentLibrary/Generic PVA @System", + "OrcaFilamentLibrary/Generic SBS @System", "OrcaFilamentLibrary/Generic TPU @System", "OrcaFilamentLibrary/PolyLite PLA @System", "OrcaFilamentLibrary/PolyTerra Dual PLA @System", @@ -11442,41 +9553,6 @@ "Snapmaker PA-CF" ] ], - "AZ01-1": [ - [ - "Aliz", - "PETG-CF", - "AliZ PETG-CF" - ] - ], - "AZ01-2": [ - [ - "Aliz", - "PETG", - "AliZ PETG-Metal" - ] - ], - "AliZ001": [ - [ - "Aliz", - "PETG", - "AliZ PETG" - ] - ], - "AliZ002": [ - [ - "Aliz", - "PLA", - "AliZ PLA" - ] - ], - "AliZ003": [ - [ - "Aliz", - "PA-CF", - "AliZ PA-CF" - ] - ], "BSFI001": [ [ "Generic", @@ -11547,104 +9623,6 @@ "Blocks Generic PLA-CF" ] ], - "CX30DB20": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 30D" - ] - ], - "CX40DB20": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 40D" - ] - ], - "CX60AB17": [ - [ - "COEX 3D", - "TPU", - "COEX TPU 60A" - ] - ], - "CX60DB19": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 60D" - ] - ], - "CXABPB09": [ - [ - "COEX 3D", - "ABS", - "COEX ABS PRIME" - ] - ], - "CXABSB01": [ - [ - "COEX 3D", - "ABS", - "COEX ABS" - ] - ], - "CXASAB04": [ - [ - "COEX 3D", - "ASA", - "COEX ASA PRIME" - ] - ], - "CXPACB23": [ - [ - "COEX 3D", - "PA-CF", - "COEX NYLEX PA6-CF" - ] - ], - "CXPAUB21": [ - [ - "COEX 3D", - "PA", - "COEX NYLEX UNFILLED" - ] - ], - "CXPCTB15": [ - [ - "COEX 3D", - "PCTG", - "COEX PCTG PRIME" - ] - ], - "CXPETB13": [ - [ - "COEX 3D", - "PETG", - "COEX PETG" - ] - ], - "CXPLAB02": [ - [ - "COEX 3D", - "PLA", - "COEX PLA" - ] - ], - "CXPLAB08": [ - [ - "COEX 3D", - "PLA", - "COEX PLA PRIME" - ] - ], - "CXPLSB03": [ - [ - "COEX 3D", - "PLA", - "COEX PLA+Silk" - ] - ], "DFL99": [ [ "Volumic", @@ -11652,102 +9630,6 @@ "Désactivé" ] ], - "DREMC001": [ - [ - "DREMC", - "PLA", - "DREMC PLA+" - ] - ], - "DREMC002": [ - [ - "DREMC", - "PETG", - "DREMC PETG" - ] - ], - "DREMC003": [ - [ - "DREMC", - "ABS", - "DREMC ABS" - ] - ], - "DREMC004": [ - [ - "DREMC", - "ABS", - "DREMC ABS+" - ] - ], - "DREMC005": [ - [ - "DREMC", - "ASA", - "DREMC ASA" - ] - ], - "DREMC006": [ - [ - "DREMC", - "PA6-CF", - "DREMC PA6-CF" - ] - ], - "DREMC007": [ - [ - "DREMC", - "PA-CF", - "DREMC PA12-CF" - ] - ], - "DREMC008": [ - [ - "DREMC", - "PET-CF", - "DREMC PET-CF" - ] - ], - "DREMC009": [ - [ - "DREMC", - "ABS-GF", - "DREMC ABS-GF" - ] - ], - "DREMC010": [ - [ - "DREMC", - "PPA-CF", - "DREMC PPA-CF" - ], - [ - "DREMC", - "TPU", - "DREMC TPU 95A" - ] - ], - "DREMC011": [ - [ - "DREMC", - "PLA", - "DREMC PLA+ HS" - ] - ], - "DREMC012": [ - [ - "DREMC", - "ASA", - "DREMC ASA CF" - ] - ], - "DREMC013": [ - [ - "DREMC", - "ASA", - "DREMC ASA GF" - ] - ], "E1001": [ [ "eSUN", @@ -11972,20 +9854,6 @@ "Elegoo PLA" ] ], - "ESN02": [ - [ - "eSUN", - "PLA-AERO", - "eSUN ePLA-LW" - ] - ], - "ESN03": [ - [ - "eSUN", - "PETG", - "eSUN PETG" - ] - ], "ETPUB00": [ [ "Elegoo", @@ -11993,48 +9861,6 @@ "Elegoo TPU" ] ], - "FDPLAST01": [ - [ - "FDplast", - "ABS", - "FDplast ABS" - ] - ], - "FDPLAST02": [ - [ - "FDplast", - "HIPS", - "FDplast HIPS" - ] - ], - "FDPLAST03": [ - [ - "FDplast", - "PETG", - "FDplast PETG" - ] - ], - "FDPLAST04": [ - [ - "FDplast", - "PLA", - "FDplast PLA" - ] - ], - "FDPLAST05": [ - [ - "FDplast", - "SBS", - "FDplast SBS" - ] - ], - "FDPLAST06": [ - [ - "FDplast", - "TPU", - "FDplast TPU" - ] - ], "FFF01": [ [ "Flashforge", @@ -12068,496 +9894,6 @@ "Flashforge Generic PLA" ] ], - "FILAR0001": [ - [ - "FilAr", - "PLA", - "FilAr PLA Bronce" - ] - ], - "FILAR0002": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Plata" - ] - ], - "FILAR0003": [ - [ - "FilAr", - "PLA", - "FilAr PLA Cobre" - ] - ], - "FILAR0004": [ - [ - "FilAr", - "PLA", - "FilAr PLA Titanio" - ] - ], - "FILAR0005": [ - [ - "FilAr", - "PLA", - "FilAr PLA Tabaco" - ] - ], - "FILAR0006": [ - [ - "FilAr", - "PLA", - "FilAr PLA Cafe con Leche" - ] - ], - "FILAR0007": [ - [ - "FilAr", - "PLA", - "FilAr PLA Manteca" - ] - ], - "FILAR0008": [ - [ - "FilAr", - "PLA", - "FilAr PLA Marron Oxido" - ] - ], - "FILAR0009": [ - [ - "FilAr", - "PLA", - "FilAr PLA Carpincho" - ] - ], - "FILAR0010": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rosa Amaranto" - ] - ], - "FILAR0011": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rosa Flamenco" - ] - ], - "FILAR0012": [ - [ - "FilAr", - "PLA", - "FilAr PLA Piel" - ] - ], - "FILAR0013": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde FilAr" - ] - ], - "FILAR0014": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Manzana" - ] - ], - "FILAR0015": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Pixel" - ] - ], - "FILAR0016": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Oliva" - ] - ], - "FILAR0017": [ - [ - "FilAr", - "PLA", - "FilAr PLA Blanco Antartida" - ] - ], - "FILAR0018": [ - [ - "FilAr", - "PLA", - "FilAr PLA Blanco Calido" - ] - ], - "FILAR0019": [ - [ - "FilAr", - "PLA", - "FilAr PLA Negro Azabache" - ] - ], - "FILAR0020": [ - [ - "FilAr", - "PLA", - "FilAr PLA Naranja Tigre" - ] - ], - "FILAR0021": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rojo de Carreras" - ] - ], - "FILAR0022": [ - [ - "FilAr", - "PLA", - "FilAr PLA Amarillo Lirio" - ] - ], - "FILAR0023": [ - [ - "FilAr", - "PLA", - "FilAr PLA Violeta Jacaranda" - ] - ], - "FILAR0024": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Pizarra" - ] - ], - "FILAR0025": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Ceniza" - ] - ], - "FILAR0026": [ - [ - "FilAr", - "PLA", - "FilAr PLA Azul Francia" - ] - ], - "FILAR0027": [ - [ - "FilAr", - "PLA", - "FilAr PLA Celeste Cielo" - ] - ], - "FILAR0028": [ - [ - "FilAr", - "PLA", - "FilAr PLA Oro" - ] - ], - "FILAR0029": [ - [ - "FilAr", - "PLA", - "FilAr PLA Dorado" - ] - ], - "FILAR0030": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Amarillo" - ] - ], - "FILAR0031": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Azul" - ] - ], - "FILAR0032": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Beige" - ] - ], - "FILAR0033": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Blanco" - ] - ], - "FILAR0034": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Bordo" - ] - ], - "FILAR0035": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Celeste Cielo" - ] - ], - "FILAR0036": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Chocolate" - ] - ], - "FILAR0037": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Gris" - ] - ], - "FILAR0038": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Marron" - ] - ], - "FILAR0039": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Naranja" - ] - ], - "FILAR0040": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Negro" - ] - ], - "FILAR0041": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Piel" - ] - ], - "FILAR0042": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Rojo" - ] - ], - "FILAR0043": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Rosa" - ] - ], - "FILAR0044": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Uva" - ] - ], - "FILAR0045": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Verde" - ] - ], - "FILAR0046": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Violeta" - ] - ], - "FILAR0047": [ - [ - "FilAr", - "PETG", - "FilAr PETG Amarillo Lima" - ] - ], - "FILAR0048": [ - [ - "FilAr", - "PETG", - "FilAr PETG Amarillo Radiante" - ] - ], - "FILAR0049": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Boreal" - ] - ], - "FILAR0050": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Francia" - ] - ], - "FILAR0051": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Imperial" - ] - ], - "FILAR0052": [ - [ - "FilAr", - "PETG", - "FilAr PETG Blanco Antartida" - ] - ], - "FILAR0053": [ - [ - "FilAr", - "PETG", - "FilAr PETG Cian" - ] - ], - "FILAR0054": [ - [ - "FilAr", - "PETG", - "FilAr PETG Coral" - ] - ], - "FILAR0055": [ - [ - "FilAr", - "PETG", - "FilAr PETG Cristal" - ] - ], - "FILAR0056": [ - [ - "FilAr", - "PETG", - "FilAr PETG Gris Ceniza" - ] - ], - "FILAR0057": [ - [ - "FilAr", - "PETG", - "FilAr PETG Gris Plata" - ] - ], - "FILAR0058": [ - [ - "FilAr", - "PETG", - "FilAr PETG Magenta" - ] - ], - "FILAR0059": [ - [ - "FilAr", - "PETG", - "FilAr PETG Negro Azabache" - ] - ], - "FILAR0060": [ - [ - "FilAr", - "PETG", - "FilAr PETG Rojo Carmesi" - ] - ], - "FILARB01": [ - [ - "FilAr", - "PLA", - "FilAr PLA" - ] - ], - "FILARB02": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate" - ] - ], - "FILARB03": [ - [ - "FilAr", - "PETG", - "FilAr PETG" - ] - ], - "FILL3D001": [ - [ - "FILL3D", - "PLA", - "FILL3D PLA Turbo" - ] - ], - "FILL3D002": [ - [ - "FILL3D", - "PLA", - "FILL3D PLA Basic" - ] - ], - "FILL3D003": [ - [ - "FILL3D", - "PETG", - "FILL3D PETG" - ] - ], - "FILL3D004": [ - [ - "FILL3D", - "PP", - "FILL3D PP" - ] - ], - "FILL3D005": [ - [ - "FILL3D", - "PP", - "FILL3D PPCF" - ] - ], - "FILL3D006": [ - [ - "FILL3D", - "PA", - "FILL3D PA" - ] - ], - "FILL3D007": [ - [ - "FILL3D", - "PETG-CF", - "FILL3D PETG CF" - ] - ], "GABSB00": [ [ "Generic", @@ -14599,62 +11935,6 @@ "Prusa Generic PA" ] ], - "GFOT001": [ - [ - "Overture", - "PLA", - "Overture PLA Pro" - ] - ], - "GFOT002": [ - [ - "Overture", - "PLA", - "Overture Silk PLA" - ] - ], - "GFOT003": [ - [ - "Overture", - "PLA", - "Overture Easy PLA" - ] - ], - "GFOT004": [ - [ - "Overture", - "PLA", - "Overture Rock PLA" - ] - ], - "GFOT005": [ - [ - "Overture", - "PLA", - "Overture Super PLA+" - ] - ], - "GFOT006": [ - [ - "Overture", - "PLA", - "Overture Air PLA" - ] - ], - "GFOT008": [ - [ - "Overture", - "TPU", - "Overture TPU" - ] - ], - "GFOT009": [ - [ - "Overture", - "ASA", - "Overture ASA" - ] - ], "GFP95": [ [ "Generic", @@ -15225,132 +12505,6 @@ "Prusa Generic PVA HF" ] ], - "GFSEP001": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Premium" - ] - ], - "GFSEP002": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Matte" - ] - ], - "GFSEP003": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Silk" - ] - ], - "GFSEP004": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Neon" - ] - ], - "GFSEP005": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA High Speed" - ] - ], - "GFSEP006": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA INGEO 850" - ] - ], - "GFSEP007": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA INGEO 870" - ] - ], - "GFSEP008": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Antibacterial" - ] - ], - "GFSEP009": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Transition" - ] - ], - "GFSEP010": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG" - ] - ], - "GFSEP011": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG UV Resistant" - ] - ], - "GFSEP012": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG Transition" - ] - ], - "GFSEP013": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Flex 93A" - ] - ], - "GFSEP014": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Flex D53" - ] - ], - "GFSEP015": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU D60 UV Resistant" - ] - ], - "GFSEP016": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Transition" - ] - ], - "GFSEP017": [ - [ - "Eolas Prints", - "ABS", - "Eolas Prints ABS" - ] - ], - "GFSEP018": [ - [ - "Eolas Prints", - "ASA", - "Eolas Prints ASA" - ] - ], "GFSL99": [ [ "Generic", @@ -16024,76 +13178,6 @@ "LHS TPU" ] ], - "NIT01": [ - [ - "NIT", - "ABS", - "NIT ABS" - ] - ], - "NIT02": [ - [ - "NIT", - "PLA", - "NIT PLA" - ] - ], - "NIT03": [ - [ - "NIT", - "PETG", - "NIT PETG" - ] - ], - "OEABSB00": [ - [ - "Elegoo", - "ABS", - "Elegoo ABS" - ] - ], - "OEASAB00": [ - [ - "Elegoo", - "ASA", - "Elegoo ASA" - ] - ], - "OEPAHTB0": [ - [ - "Elegoo", - "PA", - "Elegoo PAHT" - ] - ], - "OEPCB00": [ - [ - "Elegoo", - "PC", - "Elegoo PC" - ] - ], - "OEPETGB0": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG" - ] - ], - "OEPLAB00": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA" - ] - ], - "OETPUB00": [ - [ - "Elegoo", - "TPU", - "Elegoo TPU" - ] - ], "OF09vOcG": [ [ "Elegoo", @@ -16108,11 +13192,11 @@ "Snapmaker Dual TPU High-Flow" ] ], - "OF0M6QAQ": [ + "OF0NgY1y": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Galaxy" + "COEX 3D", + "PA-CF", + "COEX NYLEX PA6-CF" ] ], "OF0SyJhk": [ @@ -16136,6 +13220,13 @@ "Qidi ASA-Aero" ] ], + "OF0UJcb6": [ + [ + "Polymaker", + "PETG", + "PolyLite PETG" + ] + ], "OF0UbONm": [ [ "Generic", @@ -16150,6 +13241,13 @@ "Cubicon PETG" ] ], + "OF0Vtzaw": [ + [ + "FilAr", + "PETG", + "FilAr PETG Amarillo Radiante" + ] + ], "OF0Y5MLd": [ [ "QIDI", @@ -16157,6 +13255,41 @@ "QIDI PETG-GF" ] ], + "OF0gGRWk": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Glow" + ] + ], + "OF0h7ERL": [ + [ + "Elegoo", + "PA", + "Elegoo PAHT" + ] + ], + "OF0kCNDK": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Luminous" + ] + ], + "OF0pzFLc": [ + [ + "COEX 3D", + "PLA", + "COEX PLA+Silk" + ] + ], + "OF0wBGNx": [ + [ + "Bambu Lab", + "ASA-CF", + "Bambu ASA-CF" + ] + ], "OF0wk0Pk": [ [ "Generic", @@ -16171,13 +13304,6 @@ "QIDI PLA Rapido Silk" ] ], - "OF102WKM": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG PRO" - ] - ], "OF17cONC": [ [ "Polymaker", @@ -16185,6 +13311,27 @@ "PolyTerra Dual PLA" ] ], + "OF1N1qMK": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA UV Shift" + ] + ], + "OF1Pke8t": [ + [ + "Overture", + "PLA", + "Overture Easy PLA" + ] + ], + "OF1UNk9P": [ + [ + "Generic", + "PP", + "Generic PP" + ] + ], "OF1Zypyy": [ [ "QIDI", @@ -16192,6 +13339,13 @@ "QIDI PETG Tough" ] ], + "OF1hznGB": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA PRO" + ] + ], "OF22AxCm": [ [ "Generic", @@ -16199,6 +13353,20 @@ "Polymaker PETG" ] ], + "OF2EK9F1": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Violeta" + ] + ], + "OF2GCW1l": [ + [ + "SUNLU", + "PETG", + "SUNLU PETG" + ] + ], "OF2HQqTC": [ [ "Cubicon", @@ -16220,6 +13388,27 @@ "Bambu PLA" ] ], + "OF2VFe4J": [ + [ + "Bambu Lab", + "PA-CF", + "Bambu PAHT-CF" + ] + ], + "OF2Z1nT5": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Imperial" + ] + ], + "OF2pj5l5": [ + [ + "Overture", + "PLA", + "Overture Super PLA+" + ] + ], "OF2tvNYA": [ [ "Generic", @@ -16227,6 +13416,20 @@ "Sovol Zero PLA Silk" ] ], + "OF2xccEe": [ + [ + "DREMC", + "ASA", + "DREMC ASA GF" + ] + ], + "OF30Ftju": [ + [ + "Elegoo", + "TPU", + "Elegoo Rapid TPU 95A" + ] + ], "OF38Hyk4": [ [ "Generic", @@ -16234,13 +13437,6 @@ "Flashforge PETG Pro" ] ], - "OF3GKs2i": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Matte" - ] - ], "OF3XeEuV": [ [ "QIDI", @@ -16262,6 +13458,13 @@ "Elegoo Rapid PETG" ] ], + "OF3kBrdA": [ + [ + "eSUN", + "PETG", + "eSUN PETG" + ] + ], "OF41QVDH": [ [ "Generic", @@ -16276,6 +13479,13 @@ "Creality Generic PLA Matte" ] ], + "OF44VYzK": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Francia" + ] + ], "OF48G7He": [ [ "QIDI", @@ -16283,6 +13493,13 @@ "QIDI PETG Tough 0.8 nozzle" ] ], + "OF4KsW72": [ + [ + "FilAr", + "PLA", + "FilAr PLA" + ] + ], "OF4RKeng": [ [ "Generic", @@ -16290,11 +13507,11 @@ "Flashforge Generic ASA" ] ], - "OF4fgpse": [ + "OF4RvVuU": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Marble" + "Bambu Lab", + "PPS-CF", + "Bambu PPS-CF" ] ], "OF4gzzE4": [ @@ -16325,6 +13542,13 @@ "FlyingBear PLA Basic" ] ], + "OF54B0S0": [ + [ + "Bambu Lab", + "PPA-CF", + "Bambu PPA-CF" + ] + ], "OF57IbZT": [ [ "Artillery", @@ -16339,6 +13563,13 @@ "Sovol SV06 Plus ACE ABS" ] ], + "OF5CgdDq": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA" + ] + ], "OF5J2axC": [ [ "Generic", @@ -16346,6 +13577,13 @@ "Sovol Zero PLA Basic" ] ], + "OF5P4jgA": [ + [ + "FilAr", + "PLA", + "FilAr PLA Dorado" + ] + ], "OF5T1Y9R": [ [ "Generic", @@ -16374,6 +13612,27 @@ "FusRock Generic NexPA-CF25" ] ], + "OF5nlfKY": [ + [ + "FilAr", + "PLA", + "FilAr PLA Oro" + ] + ], + "OF5rnhjh": [ + [ + "FilAr", + "PETG", + "FilAr PETG" + ] + ], + "OF5vgi2G": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Azul" + ] + ], "OF60Lmeq": [ [ "Generic", @@ -16395,6 +13654,13 @@ "FusRock PAHT" ] ], + "OF6Ll8lK": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG Translucent" + ] + ], "OF6Mxzsg": [ [ "Generic", @@ -16430,11 +13696,18 @@ "Snapmaker TPE" ] ], - "OF79FFkO": [ + "OF74KeQR": [ [ - "Elegoo", - "PC", - "Elegoo PC-FR" + "Generic", + "PHA", + "Generic PHA" + ] + ], + "OF7H3VJM": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Marble" ] ], "OF7M9vy4": [ @@ -16458,6 +13731,13 @@ "Volumic ASA Ultra" ] ], + "OF7lOgYF": [ + [ + "Generic", + "PETG", + "Generic PETG HF" + ] + ], "OF7tgL9c": [ [ "Generic", @@ -16465,11 +13745,11 @@ "Chuanying Generic ASA" ] ], - "OF8HQmJD": [ + "OF8Tlg47": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Sparkle" + "Generic", + "PPA-GF", + "Generic PPA-GF" ] ], "OF8WvPVL": [ @@ -16479,6 +13759,48 @@ "QIDI ABS Rapido 0.8 nozzle" ] ], + "OF8aFWfQ": [ + [ + "FilAr", + "PLA", + "FilAr PLA Amarillo Lirio" + ] + ], + "OF8jh0Lk": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Marron" + ] + ], + "OF8tPByX": [ + [ + "Generic", + "PPA-CF", + "Generic PPA-CF" + ] + ], + "OF99UMPq": [ + [ + "COEX 3D", + "ABS", + "COEX ABS" + ] + ], + "OF99vXPs": [ + [ + "DREMC", + "ABS", + "DREMC ABS+" + ] + ], + "OF9OlTWH": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Marble" + ] + ], "OF9RZyBz": [ [ "Polymaker", @@ -16486,13 +13808,6 @@ "Polymaker Generic S1" ] ], - "OF9qvJxV": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Translucent2" - ] - ], "OF9sr3Vn": [ [ "Generic", @@ -16591,6 +13906,13 @@ "Elegoo ASA-CF" ] ], + "OFAnyRUI": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support For PLA" + ] + ], "OFAnyzjN": [ [ "HATCHBOX", @@ -16598,6 +13920,13 @@ "HATCHBOX PETG" ] ], + "OFAt6ec0": [ + [ + "FilAr", + "PLA", + "FilAr PLA Marron Oxido" + ] + ], "OFAtydxE": [ [ "Generic", @@ -16605,6 +13934,13 @@ "FusRock S-Multi" ] ], + "OFB5SmWk": [ + [ + "Valment", + "PLA", + "Valment PLA Galaxy" + ] + ], "OFBGxHgT": [ [ "FlyingBear", @@ -16619,6 +13955,20 @@ "PPS Carbone (Performance)" ] ], + "OFBSW57R": [ + [ + "Bambu Lab", + "PLA-AERO", + "Bambu PLA Aero" + ] + ], + "OFBUIlZ7": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA+" + ] + ], "OFBvxnjM": [ [ "Elegoo", @@ -16626,6 +13976,13 @@ "Elegoo PETG-GF" ] ], + "OFBw6eEG": [ + [ + "Overture", + "PLA", + "Overture Matte PLA" + ] + ], "OFC2FSsV": [ [ "Overture", @@ -16640,6 +13997,27 @@ "Flashforge Generic PETG-CF" ] ], + "OFC78WGQ": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Starlight" + ] + ], + "OFCD8qiU": [ + [ + "Generic", + "EVA", + "Generic EVA" + ] + ], + "OFCIUsWh": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Translucent" + ] + ], "OFCJaXZS": [ [ "Generic", @@ -16654,6 +14032,13 @@ "FlyingBear PA-CF" ] ], + "OFCccVrQ": [ + [ + "Polymaker", + "PLA", + "PolyTerra Dual PLA" + ] + ], "OFCgpxn2": [ [ "Generic", @@ -16668,18 +14053,39 @@ "Snapmaker J1 TPE" ] ], - "OFD5e0sH": [ + "OFCidU7j": [ [ - "Elegoo", - "PLA", - "Elegoo Rapid PLA+" + "DREMC", + "ABS-GF", + "DREMC ABS-GF" ] ], - "OFDCk0cz": [ + "OFCjG251": [ [ - "Generic", - "PETG-CF", - "Generic PETG-CF" + "FilAr", + "PLA", + "FilAr PLA-mate Verde" + ] + ], + "OFCoRobU": [ + [ + "Elas", + "ASA", + "Elas ASA" + ] + ], + "OFDETOM6": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Matte" + ] + ], + "OFDGigEI": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Dynamic" ] ], "OFDMWB6t": [ @@ -16689,11 +14095,18 @@ "Elegoo PLA+" ] ], - "OFDNiRTx": [ + "OFDSrzZ8": [ [ - "Elegoo", + "Generic", "PLA", - "Elegoo PLA+" + "Generic PLA" + ] + ], + "OFDe8uyM": [ + [ + "Valment", + "PLA", + "Valment PLA" ] ], "OFDkABjZ": [ @@ -16703,6 +14116,13 @@ "Generic TPU-90A" ] ], + "OFDpW3J8": [ + [ + "FILL3D", + "PLA", + "FILL3D PLA Basic" + ] + ], "OFDramZ2": [ [ "Co Print", @@ -16710,6 +14130,34 @@ "CoPrint Generic PETG" ] ], + "OFDvXujf": [ + [ + "Generic", + "PVA", + "Generic PVA" + ] + ], + "OFDvqJ6n": [ + [ + "Overture", + "ABS", + "Overture ABS Basic" + ] + ], + "OFDxfPgH": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Sparkle" + ] + ], + "OFE0NFRh": [ + [ + "COEX 3D", + "TPU", + "COEX TPU 60A" + ] + ], "OFE22Uba": [ [ "Generic", @@ -16717,6 +14165,13 @@ "Flashforge TPU-90A" ] ], + "OFEGNJD4": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Silk" + ] + ], "OFEYKrjb": [ [ "Artillery", @@ -16724,6 +14179,13 @@ "Artillery PETG" ] ], + "OFEZ449N": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Uva" + ] + ], "OFEdyZqS": [ [ "Anycubic", @@ -16731,6 +14193,34 @@ "Anycubic PLA Luminous" ] ], + "OFEhuUNq": [ + [ + "DREMC", + "PA-CF", + "DREMC PA12-CF" + ] + ], + "OFEkPBwx": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Glow" + ] + ], + "OFEswT5W": [ + [ + "Bambu Lab", + "PLA-CF", + "Bambu PLA-CF" + ] + ], + "OFF9OKoY": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Pro" + ] + ], "OFFIL5pD": [ [ "QIDI", @@ -16738,6 +14228,13 @@ "QIDI PA12-CF" ] ], + "OFFNYwWR": [ + [ + "Bambu Lab", + "PA-CF", + "Bambu PA-CF" + ] + ], "OFFenwbU": [ [ "Generic", @@ -16745,6 +14242,13 @@ "FLSun S1 PLA Silk" ] ], + "OFFkCLBl": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Galaxy" + ] + ], "OFFmJ8aR": [ [ "Other", @@ -16759,6 +14263,13 @@ "Other TPU" ] ], + "OFFvzqcd": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG Basic" + ] + ], "OFG8vHw8": [ [ "Generic", @@ -16773,6 +14284,13 @@ "Sovol SV06 ACE PETG" ] ], + "OFGVwfK0": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Gris" + ] + ], "OFGb4hPY": [ [ "Anycubic", @@ -16780,6 +14298,13 @@ "Anycubic PEBA 95A" ] ], + "OFGcLA5R": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Beige" + ] + ], "OFGfdP6J": [ [ "FusRock", @@ -16792,6 +14317,27 @@ "FusRock Generic S-Multi" ] ], + "OFGkyftV": [ + [ + "Overture", + "PLA", + "Overture Silk PLA" + ] + ], + "OFH2nN08": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA INGEO 850" + ] + ], + "OFHAccHz": [ + [ + "FilAr", + "PLA", + "FilAr PLA Blanco Antartida" + ] + ], "OFHBTqyD": [ [ "Generic", @@ -16818,6 +14364,34 @@ "Anycubic TPU" ] ], + "OFHWSM21": [ + [ + "Polymaker", + "PET-CF", + "Fiberon PET-CF" + ] + ], + "OFHa48An": [ + [ + "Bambu Lab", + "PET-CF", + "Bambu PET-CF" + ] + ], + "OFHfzQXo": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Transition" + ] + ], + "OFHmPYRy": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+ 2.0" + ] + ], "OFHtQDC9": [ [ "Elegoo", @@ -16825,18 +14399,32 @@ "Elegoo PLA Basic" ] ], - "OFICPchn": [ + "OFIBXa0k": [ [ - "Elegoo", + "FilAr", "PLA", - "Elegoo PLA Basic" + "FilAr PLA-mate Rojo" ] ], - "OFIGHU7W": [ + "OFIamQnD": [ [ - "Elegoo", - "PETG", - "Elegoo PETG-CF" + "FilAr", + "PLA", + "FilAr PLA Gris Ceniza" + ] + ], + "OFIegjmD": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Flex D53" + ] + ], + "OFIfnzxC": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support For PLA/PETG" ] ], "OFIl3ar9": [ @@ -16853,25 +14441,46 @@ "Volumic UNIVERSAL Ultra" ] ], - "OFJIImD5": [ + "OFJHBEGD": [ [ - "Elegoo", - "PETG", - "Elegoo PET-CF" - ] - ], - "OFJfx0Cl": [ - [ - "Generic", - "PE-CF", - "Generic PE-CF" - ] - ], - "OFJsqMzx": [ - [ - "Generic", + "DREMC", "PLA", - "Generic PLA Matte" + "DREMC PLA+ HS" + ] + ], + "OFJNeELv": [ + [ + "FILL3D", + "PA", + "FILL3D PA" + ] + ], + "OFJOFnOZ": [ + [ + "Aliz", + "PETG-CF", + "AliZ PETG-CF" + ] + ], + "OFJQDUk3": [ + [ + "FilAr", + "PETG", + "FilAr PETG Cristal" + ] + ], + "OFJs1ToM": [ + [ + "COEX 3D", + "PA", + "COEX NYLEX UNFILLED" + ] + ], + "OFJu1XwK": [ + [ + "NIT", + "PETG", + "NIT PETG" ] ], "OFK39W9u": [ @@ -16902,6 +14511,20 @@ "Sovol SV08 ABS" ] ], + "OFKKajh6": [ + [ + "FilAr", + "PLA", + "FilAr PLA Gris Plata" + ] + ], + "OFKTSiYF": [ + [ + "FilAr", + "PLA", + "FilAr PLA Blanco Calido" + ] + ], "OFKWVi10": [ [ "Generic", @@ -16909,6 +14532,20 @@ "Flashforge Generic PLA-CF10" ] ], + "OFKWWgyp": [ + [ + "FilAr", + "PLA", + "FilAr PLA Carpincho" + ] + ], + "OFKZ9skj": [ + [ + "FilAr", + "PLA", + "FilAr PLA Naranja Tigre" + ] + ], "OFKZH00L": [ [ "FusRock", @@ -16921,6 +14558,13 @@ "FusRock Generic PET-CF" ] ], + "OFKhMPeX": [ + [ + "Bambu Lab", + "PC", + "Bambu PC" + ] + ], "OFKhtNBx": [ [ "Snapmaker", @@ -16928,6 +14572,13 @@ "Snapmaker J1 TPU High-Flow" ] ], + "OFKiSMWR": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Marble" + ] + ], "OFKjlAbC": [ [ "QIDI", @@ -16970,11 +14621,46 @@ "FlashForge PC" ] ], - "OFLSBS99": [ + "OFLJ8S6I": [ + [ + "SUNLU", + "PLA", + "SUNLU Wood PLA" + ] + ], + "OFLNgV3C": [ + [ + "DREMC", + "ASA", + "DREMC ASA" + ] + ], + "OFLPAxz3": [ [ "Generic", - "SBS", - "fdm_filament_sbs" + "ASA", + "Generic ASA" + ] + ], + "OFLXvuMr": [ + [ + "Elegoo", + "PETG", + "Elegoo Rapid PETG" + ] + ], + "OFLakOUI": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "OFLcd093": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG" ] ], "OFLeFaUO": [ @@ -17024,11 +14710,11 @@ "Flashforge ASA-CF" ] ], - "OFMCMXSG": [ + "OFM91vZs": [ [ - "Generic", - "PP", - "Generic PP-GF" + "Overture", + "ASA", + "Overture ASA" ] ], "OFMHTnPP": [ @@ -17038,11 +14724,39 @@ "Flashforge PA12-CF" ] ], - "OFMQJToc": [ + "OFMTK0UC": [ [ - "Elegoo", - "PETG", - "Elegoo PETG-GF" + "Bambu Lab", + "PA", + "Bambu Support For PA/PET" + ] + ], + "OFMUWNkp": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA+" + ] + ], + "OFMZvH0z": [ + [ + "Overture", + "PLA", + "Overture Rock PLA" + ] + ], + "OFMjtqTC": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Wood" + ] + ], + "OFMuXBmO": [ + [ + "Elas", + "PLA", + "Elas PLA Basic" ] ], "OFN0X7oN": [ @@ -17073,6 +14787,13 @@ "Artillery PC" ] ], + "OFNU9YIW": [ + [ + "FilAr", + "PETG", + "FilAr PETG Azul Boreal" + ] + ], "OFNX5uRT": [ [ "QIDI", @@ -17087,6 +14808,27 @@ "Creality Generic ASA-CF" ] ], + "OFNemJM6": [ + [ + "FilAr", + "PLA", + "FilAr PLA Cobre" + ] + ], + "OFNiSLfL": [ + [ + "Generic", + "PP", + "Generic PP-GF" + ] + ], + "OFNk8bxk": [ + [ + "Bambu Lab", + "PA-GF", + "Bambu PA6-GF" + ] + ], "OFNvrbnf": [ [ "Co Print", @@ -17101,6 +14843,13 @@ "FlyingBear PLA Hyper" ] ], + "OFO1GEq6": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Neon" + ] + ], "OFO3IOWM": [ [ "Volumic", @@ -17115,6 +14864,13 @@ "Sovol Zero TPU" ] ], + "OFOABq7t": [ + [ + "Aliz", + "PETG", + "AliZ PETG-Metal" + ] + ], "OFOJUJAS": [ [ "Cubicon", @@ -17136,6 +14892,13 @@ "Qidi TPU 95A-HF" ] ], + "OFOiJfLM": [ + [ + "FILL3D", + "PETG-CF", + "FILL3D PETG CF" + ] + ], "OFOkTA0C": [ [ "Elegoo", @@ -17150,6 +14913,20 @@ "Generic ABS" ] ], + "OFOsHDnB": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG PRO" + ] + ], + "OFOvv91M": [ + [ + "Polymaker", + "ABS", + "PolyLite ABS" + ] + ], "OFOysPuE": [ [ "QIDI", @@ -17157,6 +14934,13 @@ "QIDI TPU-GF" ] ], + "OFP26zNb": [ + [ + "FilAr", + "PLA", + "FilAr PLA Violeta Jacaranda" + ] + ], "OFP4poIv": [ [ "Generic", @@ -17190,6 +14974,27 @@ "Flashforge PLA-CF" ] ], + "OFPWPlSC": [ + [ + "FILL3D", + "PP", + "FILL3D PP" + ] + ], + "OFPbyOSk": [ + [ + "FilAr", + "PETG", + "FilAr PETG Rojo Carmesi" + ] + ], + "OFPc4zVY": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA INGEO 870" + ] + ], "OFPeGtB1": [ [ "Volumic", @@ -17197,6 +15002,20 @@ "Volumic UNIVERSAL Ultra (Performance)" ] ], + "OFPkCJKE": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Satin" + ] + ], + "OFPklMI1": [ + [ + "Generic", + "PE", + "Generic PE" + ] + ], "OFPokkKe": [ [ "QIDI", @@ -17204,6 +15023,20 @@ "QIDI PETG-CF" ] ], + "OFPoyiFs": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA" + ] + ], + "OFPqX3x2": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rosa Amaranto" + ] + ], "OFPwi9X0": [ [ "HATCHBOX", @@ -17211,6 +15044,13 @@ "HATCHBOX ABS" ] ], + "OFQ3e56w": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Galaxy" + ] + ], "OFQ5xAKf": [ [ "Generic", @@ -17237,6 +15077,27 @@ "Flashforge PPA-CF" ] ], + "OFQHiNJs": [ + [ + "Bambu Lab", + "PA", + "Bambu Support G" + ] + ], + "OFQLcbps": [ + [ + "Generic", + "PA-CF", + "Generic PA-CF" + ] + ], + "OFQWIKbV": [ + [ + "FilAr", + "PLA", + "FilAr PLA Titanio" + ] + ], "OFQZINrX": [ [ "QIDI", @@ -17244,18 +15105,11 @@ "QIDI ABS-GF10" ] ], - "OFQhLoxN": [ + "OFQbjX3s": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Wood" - ] - ], - "OFQkWxJy": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Matte" + "FILL3D", + "PETG", + "FILL3D PETG" ] ], "OFR8dTVW": [ @@ -17279,13 +15133,6 @@ "Generic ASA" ] ], - "OFRS2Ggt": [ - [ - "Generic", - "PP-CF", - "Generic PP-CF" - ] - ], "OFRgDMDJ": [ [ "Generic", @@ -17293,6 +15140,27 @@ "Flashforge PETG Transparent" ] ], + "OFRiFnfQ": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG Transition" + ] + ], + "OFRiYgMK": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Celestial" + ] + ], + "OFRzR5mi": [ + [ + "eSUN", + "PLA-AERO", + "eSUN ePLA-LW" + ] + ], "OFS1ekCg": [ [ "Generic", @@ -17300,6 +15168,13 @@ "RatRig BigNozzle PCTG" ] ], + "OFS2tn6G": [ + [ + "Polymaker", + "PA", + "Fiberon PA612-CF" + ] + ], "OFS3HrR1": [ [ "Other", @@ -17307,6 +15182,13 @@ "Other PLA" ] ], + "OFS8lTQt": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Silk" + ] + ], "OFSCm6pJ": [ [ "Elegoo", @@ -17349,11 +15231,32 @@ "Other PA-CF" ] ], - "OFT3TqB6": [ + "OFSwbBWS": [ [ - "Elas", - "ASA", - "Elas ASA" + "DREMC", + "PLA", + "DREMC PLA+" + ] + ], + "OFTGHyNC": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Impact" + ] + ], + "OFTOPcx0": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Transition" + ] + ], + "OFTRZ8Y4": [ + [ + "Bambu Lab", + "PETG-CF", + "Bambu PETG-CF" ] ], "OFTa6gPH": [ @@ -17377,6 +15280,20 @@ "Artillery TPU" ] ], + "OFTcE0nA": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Basic" + ] + ], + "OFTlRzpe": [ + [ + "FilAr", + "PLA", + "FilAr PLA Gris Pizarra" + ] + ], "OFToBodi": [ [ "QIDI", @@ -17398,6 +15315,13 @@ "Creality Generic PLA Silk" ] ], + "OFU1zPxE": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Galaxy" + ] + ], "OFUJw3Lx": [ [ "QIDI", @@ -17412,6 +15336,13 @@ "Dremel Generic PLA" ] ], + "OFUanySo": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Silk+" + ] + ], "OFUkpobY": [ [ "QIDI", @@ -17426,6 +15357,13 @@ "Chuanying Generic TPU" ] ], + "OFUyDDNv": [ + [ + "Elegoo", + "PC", + "Elegoo PC" + ] + ], "OFV1szQh": [ [ "Peopoly", @@ -17440,6 +15378,13 @@ "QIDI PLA Rapido Metal" ] ], + "OFV5tNw6": [ + [ + "Elegoo", + "PETG", + "Elegoo PET-CF" + ] + ], "OFVBNoov": [ [ "InfiMech", @@ -17447,6 +15392,20 @@ "InfiMech ABS" ] ], + "OFVBlUFH": [ + [ + "DREMC", + "PETG", + "DREMC PETG" + ] + ], + "OFVCkX5w": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 95A" + ] + ], "OFVJXE4n": [ [ "Other", @@ -17454,13 +15413,6 @@ "Other ABS" ] ], - "OFVLuVmD": [ - [ - "Elegoo", - "PETG", - "Elegoo Rapid PETG" - ] - ], "OFVhG0yM": [ [ "QIDI", @@ -17468,6 +15420,20 @@ "QIDI ABS Odorless" ] ], + "OFVptRxp": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 30D" + ] + ], + "OFW29a9R": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA" + ] + ], "OFW8UdlP": [ [ "QIDI", @@ -17475,6 +15441,27 @@ "QIDI ABS Rapido" ] ], + "OFWTRJ1K": [ + [ + "FilAr", + "PLA", + "FilAr PLA Bronce" + ] + ], + "OFWYtgCa": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Wood" + ] + ], + "OFWbdGsC": [ + [ + "Generic", + "PLA-CF", + "Generic PLA-CF" + ] + ], "OFWkCAdc": [ [ "QIDI", @@ -17496,6 +15483,13 @@ "Flashforge PLA Metal" ] ], + "OFWwF7K7": [ + [ + "FilAr", + "PLA", + "FilAr PLA Cafe con Leche" + ] + ], "OFWyCd0Y": [ [ "QIDI", @@ -17503,6 +15497,13 @@ "QIDI Support For PET/PA" ] ], + "OFX0ycRQ": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA12-CF" + ] + ], "OFXA8vy9": [ [ "Artillery", @@ -17510,6 +15511,20 @@ "Artillery PLA Basic+" ] ], + "OFXCBZTA": [ + [ + "Eolas Prints", + "ABS", + "Eolas Prints ABS" + ] + ], + "OFXIbw5D": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Matte" + ] + ], "OFXNO5Of": [ [ "QIDI", @@ -17524,6 +15539,13 @@ "RatRig PunkFil PETG CF" ] ], + "OFXTPuqV": [ + [ + "Elas", + "PETG", + "Elas PETG Basic" + ] + ], "OFXcfTEb": [ [ "Generic", @@ -17538,6 +15560,13 @@ "Prusa Generic PA-CF" ] ], + "OFXkm8q1": [ + [ + "Generic", + "PP-CF", + "Generic PP-CF" + ] + ], "OFXkwkn6": [ [ "QIDI", @@ -17545,13 +15574,6 @@ "QIDI PA-Ultra" ] ], - "OFXmQgno": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Marble" - ] - ], "OFXv4FUi": [ [ "Generic", @@ -17559,6 +15581,20 @@ "Flashforge PLA Galaxy" ] ], + "OFXz7Mwx": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Silk" + ] + ], + "OFXzQ4yL": [ + [ + "Bambu Lab", + "ASA-AERO", + "Bambu ASA-Aero" + ] + ], "OFY1U4uM": [ [ "Generic", @@ -17566,6 +15602,13 @@ "Sovol SV08 TPU" ] ], + "OFY9muEs": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], "OFYG2Gfy": [ [ "Afinia", @@ -17573,6 +15616,13 @@ "Afinia ABS+" ] ], + "OFYGbPHX": [ + [ + "Polymaker", + "PLA", + "PolyLite Dual PLA" + ] + ], "OFYH00jV": [ [ "QIDI", @@ -17592,6 +15642,13 @@ "FusRock Generic PAHT-CF" ] ], + "OFYPdQJh": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], "OFYRS7GZ": [ [ "Generic", @@ -17606,6 +15663,13 @@ "Flashforge Generic HS PLA" ] ], + "OFYd5uS3": [ + [ + "DREMC", + "TPU", + "DREMC TPU 95A" + ] + ], "OFYehFGr": [ [ "Generic", @@ -17620,6 +15684,13 @@ "FlyingBear TPU" ] ], + "OFZ4QbfK": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rosa Flamenco" + ] + ], "OFZAkPHG": [ [ "QIDI", @@ -17646,13 +15717,6 @@ "Flashforge PPS-CF" ] ], - "OFZhdVnP": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Basic" - ] - ], "OFZjZ1k7": [ [ "Generic", @@ -17674,6 +15738,20 @@ "Qidi PC-ABS-FR" ] ], + "OFaDOaNt": [ + [ + "FilAr", + "PLA", + "FilAr PLA Celeste Cielo" + ] + ], + "OFaEesXQ": [ + [ + "FilAr", + "PLA", + "FilAr PLA Rojo de Carreras" + ] + ], "OFaKIoH2": [ [ "Elegoo", @@ -17688,6 +15766,27 @@ "Generic PETG Basic" ] ], + "OFaQMgRH": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Tough" + ] + ], + "OFaYz8iE": [ + [ + "Elas", + "PLA", + "Elas PLA Pro" + ] + ], + "OFausr3F": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Rosa" + ] + ], "OFaxQnfz": [ [ "Cubicon", @@ -17709,6 +15808,13 @@ "Prusa Generic TPU HF" ] ], + "OFbP8zEO": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Silk" + ] + ], "OFbS9rjH": [ [ "QIDI", @@ -17723,13 +15829,6 @@ "Elegoo PLA Marble" ] ], - "OFbgt3u3": [ - [ - "Elas", - "PLA", - "Elas PLA Basic" - ] - ], "OFc2SnEp": [ [ "Artillery", @@ -17737,6 +15836,13 @@ "Artillery PVA" ] ], + "OFc3xdm9": [ + [ + "Overture", + "PLA", + "Overture PLA" + ] + ], "OFcZZWnB": [ [ "Cubicon", @@ -17751,6 +15857,13 @@ "PolyLite PLA" ] ], + "OFcfQk4h": [ + [ + "Overture", + "PLA", + "Overture Air PLA" + ] + ], "OFcqs5g7": [ [ "Elegoo", @@ -17765,6 +15878,13 @@ "Sovol SV08 PLA" ] ], + "OFcvKkrs": [ + [ + "Overture", + "TPU", + "Overture TPU" + ] + ], "OFcy60o4": [ [ "Generic", @@ -17772,6 +15892,41 @@ "Flashforge ASA Basic" ] ], + "OFcytyoA": [ + [ + "Polymaker", + "PETG", + "Fiberon PETG-ESD" + ] + ], + "OFd0Fv0k": [ + [ + "Generic", + "PE-CF", + "Generic PE-CF" + ] + ], + "OFd2vX0G": [ + [ + "COEX 3D", + "PLA", + "COEX PLA PRIME" + ] + ], + "OFd4zw5l": [ + [ + "Aliz", + "PA-CF", + "AliZ PA-CF" + ] + ], + "OFdI4zMo": [ + [ + "DREMC", + "ASA", + "DREMC ASA CF" + ] + ], "OFdLGn0R": [ [ "Generic", @@ -17798,6 +15953,13 @@ "Anycubic PETG" ] ], + "OFdb8YNz": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Manzana" + ] + ], "OFdhVJql": [ [ "Generic", @@ -17805,6 +15967,13 @@ "Flashforge PLA Buint Ti" ] ], + "OFdzlrhi": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Chocolate" + ] + ], "OFeFRwST": [ [ "Generic", @@ -17833,11 +16002,18 @@ "InfiMech PLA Hyper" ] ], - "OFenGPBR": [ + "OFesA6rF": [ [ - "Elegoo", - "PETG", - "Elegoo PETG Translucent" + "Generic", + "PLA", + "Generic PLA Silk" + ] + ], + "OFexaZU2": [ + [ + "FilAr", + "PLA", + "FilAr PLA Manteca" ] ], "OFeybQvK": [ @@ -17866,11 +16042,32 @@ "Anycubic ABS" ] ], - "OFfB1QKi": [ + "OFf5awy4": [ [ - "Generic", + "Eolas Prints", + "PLA", + "Eolas Prints PLA Matte" + ] + ], + "OFf6mfQO": [ + [ + "Bambu Lab", + "ABS", + "Bambu Support for ABS" + ] + ], + "OFfBpSRI": [ + [ + "Bambu Lab", + "ASA", + "Bambu ASA" + ] + ], + "OFfJSCzm": [ + [ + "FDplast", "PETG", - "Generic PETG HF" + "FDplast PETG" ] ], "OFfJoIgg": [ @@ -17880,6 +16077,13 @@ "QIDI PAHT-GF" ] ], + "OFfZcoKr": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Piel" + ] + ], "OFfdxQok": [ [ "Generic", @@ -17901,6 +16105,20 @@ "Creality HF Generic Speed PLA" ] ], + "OFfmZrI3": [ + [ + "FDplast", + "TPU", + "FDplast TPU" + ] + ], + "OFfnXFie": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 40D" + ] + ], "OFfoA8kJ": [ [ "CoLiDo", @@ -17908,6 +16126,20 @@ "CoLiDo PLA" ] ], + "OFfq5YXA": [ + [ + "Valment", + "PLA-CF", + "Valment PLA-CF" + ] + ], + "OFfr4XNO": [ + [ + "COEX 3D", + "TPU", + "COEX TPE 60D" + ] + ], "OFftQOek": [ [ "Generic", @@ -17915,6 +16147,13 @@ "Flashforge PLA Matte" ] ], + "OFfuhviw": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Marble" + ] + ], "OFg4N6ZL": [ [ "FlyingBear", @@ -17922,6 +16161,27 @@ "FlyingBear PETG" ] ], + "OFg57Nmc": [ + [ + "Bambu Lab", + "PC", + "Bambu PC FR" + ] + ], + "OFg8hMzT": [ + [ + "FILL3D", + "PP", + "FILL3D PPCF" + ] + ], + "OFg8ndtj": [ + [ + "Generic", + "PA", + "Generic PA" + ] + ], "OFgJX0Fc": [ [ "Generic", @@ -17948,6 +16208,13 @@ "Sovol SV06 Plus ACE PETG" ] ], + "OFgMWJ8T": [ + [ + "FilAr", + "PLA", + "FilAr PLA Negro Azabache" + ] + ], "OFgNzLVh": [ [ "Generic", @@ -17967,6 +16234,13 @@ "Anycubic PLA High Speed" ] ], + "OFgbpcy9": [ + [ + "Generic", + "TPU", + "Generic TPU" + ] + ], "OFglpvEE": [ [ "Generic", @@ -17974,6 +16248,13 @@ "Sovol SV06 ACE TPU" ] ], + "OFgpLTMR": [ + [ + "FilAr", + "PETG", + "FilAr PETG Gris Plata" + ] + ], "OFgrGfPy": [ [ "Anycubic", @@ -18000,6 +16281,13 @@ "Elegoo PLA Wood" ] ], + "OFhASRWj": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Temp Shift" + ] + ], "OFhKNHC8": [ [ "Generic", @@ -18007,6 +16295,62 @@ "Generic PETG PRO" ] ], + "OFhMO9Kh": [ + [ + "GreenGate3D", + "PETG", + "GreenGate3D PETG" + ] + ], + "OFhQfUQY": [ + [ + "Generic", + "SBS", + "Generic SBS" + ] + ], + "OFhWc5Bv": [ + [ + "NIT", + "ABS", + "NIT ABS" + ] + ], + "OFhWhL1i": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG" + ] + ], + "OFhcYzR8": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Sparkle" + ] + ], + "OFhfd722": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU Flex 93A" + ] + ], + "OFhlCNqq": [ + [ + "COEX 3D", + "PLA", + "COEX PLA" + ] + ], + "OFhuaUQB": [ + [ + "Bambu Lab", + "ABS", + "Bambu ABS" + ] + ], "OFhzHd2Y": [ [ "Generic", @@ -18021,6 +16365,13 @@ "Flashforge PA" ] ], + "OFiDpM1B": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Bordo" + ] + ], "OFiJYDPC": [ [ "HATCHBOX", @@ -18028,6 +16379,13 @@ "HATCHBOX PLA" ] ], + "OFiWaoqD": [ + [ + "DREMC", + "PPA-CF", + "DREMC PPA-CF" + ] + ], "OFic2uNr": [ [ "Generic", @@ -18056,6 +16414,13 @@ "Elegoo PETG-CF" ] ], + "OFj3bTjw": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Amarillo" + ] + ], "OFjFPhUC": [ [ "Generic", @@ -18063,6 +16428,20 @@ "Prusament rPLA" ] ], + "OFjPXrXO": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Glow" + ] + ], + "OFjT9PkZ": [ + [ + "FilAr", + "PLA", + "FilAr PLA Tabaco" + ] + ], "OFjZw7k1": [ [ "Polymaker", @@ -18070,6 +16449,13 @@ "PolyTerra J1 PLA" ] ], + "OFjb0wos": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Metallic" + ] + ], "OFjdTQd6": [ [ "Anycubic", @@ -18108,6 +16494,13 @@ "QIDI PETG Translucent" ] ], + "OFjorDcx": [ + [ + "FDplast", + "ABS", + "FDplast ABS" + ] + ], "OFjqPjjl": [ [ "Generic", @@ -18115,6 +16508,13 @@ "Generic PET" ] ], + "OFjt9en1": [ + [ + "Generic", + "CoPE", + "Generic CoPE" + ] + ], "OFjurQ3I": [ [ "Generic", @@ -18136,6 +16536,27 @@ "Sovol Zero PETG HS Nozzle" ] ], + "OFk8t9mz": [ + [ + "Polymaker", + "PETG-CF", + "Fiberon PETG-rCF" + ] + ], + "OFkGvN4d": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Pixel" + ] + ], + "OFkOviHk": [ + [ + "Polymaker", + "PA6-CF", + "Fiberon PA6-CF" + ] + ], "OFkaDtKx": [ [ "FusRock", @@ -18157,6 +16578,13 @@ "Elegoo PLA Silk" ] ], + "OFkhhUS0": [ + [ + "Elegoo", + "PLA", + "Elegoo Rapid PLA+" + ] + ], "OFklg4aM": [ [ "Elegoo", @@ -18164,6 +16592,20 @@ "Elegoo PLA PRO" ] ], + "OFknl9Iz": [ + [ + "Bambu Lab", + "ABS-GF", + "Bambu ABS-GF" + ] + ], + "OFkoLUtR": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde Oliva" + ] + ], "OFkoT6jl": [ [ "Generic", @@ -18171,6 +16613,13 @@ "Prusament PLA" ] ], + "OFkzr35f": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Antibacterial" + ] + ], "OFlN56xW": [ [ "Generic", @@ -18185,6 +16634,20 @@ "Flashforge PLA Metal" ] ], + "OFlP3KWq": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG HF" + ] + ], + "OFlSNkhc": [ + [ + "Eolas Prints", + "ASA", + "Eolas Prints ASA" + ] + ], "OFlbn4FY": [ [ "Snapmaker", @@ -18192,6 +16655,27 @@ "Snapmaker PLA Matte" ] ], + "OFln72PT": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA-CF" + ] + ], + "OFlsTpJG": [ + [ + "Elegoo", + "PC", + "Elegoo PC-FR" + ] + ], + "OFlwmqrC": [ + [ + "Polymaker", + "PLA", + "Polymaker HT-PLA-GF" + ] + ], "OFlxnxDx": [ [ "Generic", @@ -18206,6 +16690,13 @@ "Peopoly Lancer PET-CF" ] ], + "OFm06H6V": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Basic" + ] + ], "OFm1VZed": [ [ "Generic", @@ -18220,6 +16711,13 @@ "QIDI ASA-CF" ] ], + "OFmJAd3A": [ + [ + "FDplast", + "HIPS", + "FDplast HIPS" + ] + ], "OFmKNi3f": [ [ "QIDI", @@ -18234,6 +16732,20 @@ "Elegoo PETG PRO" ] ], + "OFmY0l6t": [ + [ + "Generic", + "PLA", + "Generic PLA Matte" + ] + ], + "OFmaeU4a": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Naranja" + ] + ], "OFmcJsqt": [ [ "InfiMech", @@ -18248,13 +16760,6 @@ "FlashForge PPS-CF" ] ], - "OFmeQjRP": [ - [ - "Elegoo", - "TPU", - "Elegoo Rapid TPU 95A" - ] - ], "OFmgesco": [ [ "Generic", @@ -18262,6 +16767,41 @@ "Flashforge TPU 65D" ] ], + "OFmhJs5V": [ + [ + "Elegoo", + "TPU", + "Elegoo TPU" + ] + ], + "OFmn9NZL": [ + [ + "FusRock", + "ABS-GF", + "FusRock ABS-GF" + ] + ], + "OFmpMwxS": [ + [ + "Generic", + "PLA", + "Generic PLA High Speed" + ] + ], + "OFmveLWz": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-GF" + ] + ], + "OFn1QaY3": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA Translucent2" + ] + ], "OFnLnZQo": [ [ "Cubicon", @@ -18290,6 +16830,27 @@ "Artillery PA-CF" ] ], + "OFnYVFk2": [ + [ + "FilAr", + "PLA", + "FilAr PLA Azul Francia" + ] + ], + "OFnejEt4": [ + [ + "FilAr", + "PETG", + "FilAr PETG Cian" + ] + ], + "OFniMuTN": [ + [ + "Bambu Lab", + "PA6-CF", + "Bambu PA6-CF" + ] + ], "OFnj7bPm": [ [ "QIDI", @@ -18311,6 +16872,13 @@ "Artillery PLA Silk" ] ], + "OFo2UF2C": [ + [ + "Generic", + "BVOH", + "Generic BVOH" + ] + ], "OFo4VB3w": [ [ "Generic", @@ -18339,6 +16907,41 @@ "Flashforge HS PLA" ] ], + "OFoSknDB": [ + [ + "FILL3D", + "PLA", + "FILL3D PLA Turbo" + ] + ], + "OFoYSJKi": [ + [ + "Generic", + "PETG-CF", + "Generic PETG-CF" + ] + ], + "OFobDOW5": [ + [ + "Elegoo", + "ASA", + "Elegoo ASA" + ] + ], + "OFocyw69": [ + [ + "Aliz", + "PETG", + "AliZ PETG" + ] + ], + "OFoiVqVM": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Basic" + ] + ], "OFoimrpo": [ [ "Generic", @@ -18346,6 +16949,13 @@ "Flashforge PETG-CF" ] ], + "OFovEIbw": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG HF" + ] + ], "OFp8lkYD": [ [ "FusRock", @@ -18360,6 +16970,13 @@ "Artillery PA" ] ], + "OFpBlrvY": [ + [ + "Valment", + "PLA", + "Valment PLA Silk" + ] + ], "OFpHq9gJ": [ [ "Generic", @@ -18367,6 +16984,20 @@ "Prusament PETG" ] ], + "OFpPGSKG": [ + [ + "SUNLU", + "PLA", + "SUNLU Silk PLA+" + ] + ], + "OFpW4gdi": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Matte" + ] + ], "OFphFSUJ": [ [ "Generic", @@ -18374,13 +17005,6 @@ "Prusa Generic PETG HF" ] ], - "OFpwg2Qh": [ - [ - "Elegoo", - "ASA", - "Elegoo ASA-CF" - ] - ], "OFq6IhFg": [ [ "Cubicon", @@ -18388,6 +17012,27 @@ "Cubicon PLA" ] ], + "OFq8gfS4": [ + [ + "FilAr", + "PETG", + "FilAr PETG Negro Azabache" + ] + ], + "OFqGRZyH": [ + [ + "Numakers", + "PLA", + "Numakers PLA+" + ] + ], + "OFqINlYj": [ + [ + "eSUN", + "PLA", + "eSUN PLA+" + ] + ], "OFqPp2yL": [ [ "QIDI", @@ -18409,13 +17054,6 @@ "OrcaArena Generic PLA Silk" ] ], - "OFqh1Ngp": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA-CF" - ] - ], "OFqkcvDI": [ [ "Peopoly", @@ -18423,6 +17061,20 @@ "Peopoly Lancer ABS-GF" ] ], + "OFqtx549": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Celeste Cielo" + ] + ], + "OFqw2PQA": [ + [ + "Polymaker", + "PLA", + "Panchroma CoPE" + ] + ], "OFqyIUDi": [ [ "QIDI", @@ -18430,6 +17082,27 @@ "Qidi PLA-CF" ] ], + "OFrFBEfd": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Neon" + ] + ], + "OFrKLeE3": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Metal" + ] + ], + "OFrOh600": [ + [ + "Polymaker", + "PLA", + "Panchroma PLA Matte" + ] + ], "OFrbbq6E": [ [ "Other", @@ -18437,11 +17110,11 @@ "Other PLA Hyper" ] ], - "OFrgQ1Ns": [ + "OFryjl35": [ [ - "Elas", - "PLA", - "Elas PLA Pro" + "Elegoo", + "ASA", + "Elegoo ASA-CF" ] ], "OFs1CbB1": [ @@ -18451,11 +17124,11 @@ "QIDI PLA Rapido 0.8 nozzle" ] ], - "OFs6lLH7": [ + "OFsB2lxm": [ [ "Elegoo", "PLA", - "Elegoo PLA Silk" + "Elegoo PLA Matte" ] ], "OFsCOJv7": [ @@ -18465,11 +17138,25 @@ "Generic TPU" ] ], - "OFsKqcQW": [ + "OFsDXRpS": [ [ - "Elegoo", + "FilAr", "PLA", - "Elegoo PLA PRO" + "FilAr PLA Piel" + ] + ], + "OFsFon5l": [ + [ + "Generic", + "HIPS", + "Generic HIPS" + ] + ], + "OFsHSVZc": [ + [ + "Bambu Lab", + "PLA", + "Bambu Support W" ] ], "OFsLkLw6": [ @@ -18479,11 +17166,18 @@ "Generic PLA Matte" ] ], - "OFsNZcid": [ + "OFsRDvTM": [ [ "Polymaker", "PLA", - "PolyLite Dual PLA" + "Panchroma PLA" + ] + ], + "OFsXQXbs": [ + [ + "FilAr", + "PETG", + "FilAr PETG Blanco Antartida" ] ], "OFsgANe3": [ @@ -18500,6 +17194,13 @@ "Sovol SV06 Plus ACE TPU" ] ], + "OFsoykbm": [ + [ + "DREMC", + "PA6-CF", + "DREMC PA6-CF" + ] + ], "OFt1YdX8": [ [ "Generic", @@ -18514,6 +17215,13 @@ "Artillery PETG Basic" ] ], + "OFt6e0US": [ + [ + "FilAr", + "PETG", + "FilAr PETG Amarillo Lima" + ] + ], "OFt9AiN5": [ [ "Generic", @@ -18542,6 +17250,20 @@ "Sovol Zero PLA Basic HS Nozzle" ] ], + "OFtOoWIj": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate" + ] + ], + "OFtRn8X8": [ + [ + "FDplast", + "SBS", + "FDplast SBS" + ] + ], "OFtXBjvb": [ [ "Artillery", @@ -18549,6 +17271,13 @@ "Artillery PLA Tough" ] ], + "OFtcKVgP": [ + [ + "Generic", + "PC", + "fdm_filament_pc" + ] + ], "OFtcTs1o": [ [ "Generic", @@ -18556,6 +17285,13 @@ "RatRig BigNozzle ABS" ] ], + "OFtefokm": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Blanco" + ] + ], "OFtemzzw": [ [ "Generic", @@ -18584,6 +17320,27 @@ "Artillery ASA" ] ], + "OFtpXCCv": [ + [ + "COEX 3D", + "ASA", + "COEX ASA PRIME" + ] + ], + "OFtr8eZw": [ + [ + "FDplast", + "PLA", + "FDplast PLA" + ] + ], + "OFtudokz": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA Premium" + ] + ], "OFtwA91m": [ [ "Generic", @@ -18591,6 +17348,13 @@ "Sovol Zero PC" ] ], + "OFu1evlr": [ + [ + "Generic", + "PCTG", + "Generic PCTG" + ] + ], "OFuPC4S8": [ [ "Elegoo", @@ -18612,6 +17376,20 @@ "Overture ABS" ] ], + "OFuUuIhR": [ + [ + "Elegoo", + "PETG", + "Elegoo PETG-CF" + ] + ], + "OFuWCQXN": [ + [ + "COEX 3D", + "ABS", + "COEX ABS PRIME" + ] + ], "OFuXkYly": [ [ "Elegoo", @@ -18626,6 +17404,13 @@ "Afinia Value ABS" ] ], + "OFufTAK9": [ + [ + "FilAr", + "PLA", + "FilAr PLA-mate Negro" + ] + ], "OFuidAEg": [ [ "Bambu Lab", @@ -18640,6 +17425,13 @@ "InfiMech PLA Basic" ] ], + "OFurdQxc": [ + [ + "FilAr", + "PETG", + "FilAr PETG Magenta" + ] + ], "OFuswXlp": [ [ "Generic", @@ -18647,13 +17439,6 @@ "Generic TPU 85A" ] ], - "OFutwD6f": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Glow" - ] - ], "OFuyJhLF": [ [ "Generic", @@ -18682,6 +17467,13 @@ "Creality Generic PETG-CF" ] ], + "OFvKUnLh": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 95A HF" + ] + ], "OFvN3117": [ [ "QIDI", @@ -18696,6 +17488,27 @@ "Other TPU" ] ], + "OFvPPMxL": [ + [ + "FilAr", + "PLA", + "FilAr PLA Verde FilAr" + ] + ], + "OFvTVZc3": [ + [ + "COEX 3D", + "PETG", + "COEX PETG" + ] + ], + "OFvVy7yo": [ + [ + "Eolas Prints", + "TPU", + "Eolas Prints TPU D60 UV Resistant" + ] + ], "OFvYfHPB": [ [ "Anycubic", @@ -18710,6 +17523,13 @@ "InfiMech PETG" ] ], + "OFvgE0Zh": [ + [ + "Elegoo", + "PLA", + "Elegoo PLA" + ] + ], "OFviQ9lH": [ [ "Generic", @@ -18717,6 +17537,13 @@ "Flashforge Generic TPU" ] ], + "OFvrXuV7": [ + [ + "Polymaker", + "ASA", + "PolyLite ASA" + ] + ], "OFvsS7Fb": [ [ "Generic", @@ -18738,6 +17565,13 @@ "Artillery PLA-CF" ] ], + "OFvzvwCu": [ + [ + "Eolas Prints", + "PLA", + "Eolas Prints PLA High Speed" + ] + ], "OFw05rkF": [ [ "Other", @@ -18759,13 +17593,6 @@ "Artillery ABS" ] ], - "OFw4OHWE": [ - [ - "Elas", - "PETG", - "Elas PETG Basic" - ] - ], "OFwHPTvy": [ [ "Generic", @@ -18773,6 +17600,34 @@ "Qidi Generic PLA+" ] ], + "OFwJ0qu2": [ + [ + "DREMC", + "PET-CF", + "DREMC PET-CF" + ] + ], + "OFwPrlCM": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG Translucent" + ] + ], + "OFwRJ4g0": [ + [ + "NIT", + "PLA", + "NIT PLA" + ] + ], + "OFwaYjL6": [ + [ + "Polymaker", + "PA-GF", + "Fiberon PA6-GF" + ] + ], "OFwf0oWp": [ [ "Generic", @@ -18780,6 +17635,13 @@ "Flashforge PLA Luminous" ] ], + "OFwu7IAG": [ + [ + "COEX 3D", + "PCTG", + "COEX PCTG PRIME" + ] + ], "OFwyqcGn": [ [ "Elegoo", @@ -18787,6 +17649,20 @@ "Elegoo PLA Matte" ] ], + "OFx8Lmsd": [ + [ + "Eolas Prints", + "PETG", + "Eolas Prints PETG UV Resistant" + ] + ], + "OFxA1p01": [ + [ + "Overture", + "PLA", + "Overture PLA Pro" + ] + ], "OFxLeRyT": [ [ "Generic", @@ -18794,6 +17670,20 @@ "Prusa Generic PVA HF" ] ], + "OFxOHhZw": [ + [ + "Elegoo", + "ABS", + "Elegoo ABS" + ] + ], + "OFxUwUeW": [ + [ + "SUNLU", + "PLA", + "SUNLU PLA Marble" + ] + ], "OFxVzzn4": [ [ "Generic", @@ -18850,6 +17740,13 @@ "Other PC" ] ], + "OFybzvQN": [ + [ + "FilAr", + "PETG", + "FilAr PETG Gris Ceniza" + ] + ], "OFyoW5W2": [ [ "Generic", @@ -18864,6 +17761,13 @@ "Generic PC-CF" ] ], + "OFysxCep": [ + [ + "FilAr", + "PETG", + "FilAr PETG Coral" + ] + ], "OFyt23xJ": [ [ "Generic", @@ -18878,6 +17782,13 @@ "Flashforge TPU-95A" ] ], + "OFyxayW4": [ + [ + "Aliz", + "PLA", + "AliZ PLA" + ] + ], "OFzFbFcl": [ [ "Elegoo", @@ -18906,806 +17817,53 @@ "Ginger Generic PLA" ] ], - "OFzrWlH5": [ + "OFzrUUxc": [ [ - "Elegoo", - "PETG", - "Elegoo PETG HF" - ] - ], - "OGFA00": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Basic" - ] - ], - "OGFA01": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Matte" - ] - ], - "OGFA02": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Metal" - ] - ], - "OGFA03": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Impact" - ] - ], - "OGFA05": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Silk" - ] - ], - "OGFA06": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Silk+" - ] - ], - "OGFA07": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Marble" - ] - ], - "OGFA08": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Sparkle" - ] - ], - "OGFA09": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Tough" - ] - ], - "OGFA11": [ - [ - "Bambu Lab", - "PLA-AERO", - "Bambu PLA Aero" - ] - ], - "OGFA12": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Glow" - ] - ], - "OGFA13": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Dynamic" - ] - ], - "OGFA15": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Galaxy" - ] - ], - "OGFA16": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Wood" - ] - ], - "OGFA50": [ - [ - "Bambu Lab", - "PLA-CF", - "Bambu PLA-CF" - ] - ], - "OGFB00": [ - [ - "Bambu Lab", + "DREMC", "ABS", - "Bambu ABS" + "DREMC ABS" ] ], - "OGFB01": [ + "OFzyIxba": [ [ "Bambu Lab", - "ASA", - "Bambu ASA" - ] - ], - "OGFB02": [ - [ - "Bambu Lab", - "ASA-AERO", - "Bambu ASA-Aero" - ] - ], - "OGFB50": [ - [ - "Bambu Lab", - "ABS-GF", - "Bambu ABS-GF" - ] - ], - "OGFB51": [ - [ - "Bambu Lab", - "ASA-CF", - "Bambu ASA-CF" - ] - ], - "OGFB60": [ - [ - "Polymaker", - "ABS", - "PolyLite ABS" - ] - ], - "OGFB61": [ - [ - "Polymaker", - "ASA", - "PolyLite ASA" - ] - ], - "OGFB98": [ - [ - "Generic", - "ASA", - "Generic ASA" - ] - ], - "OGFB99": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "OGFC00": [ - [ - "Bambu Lab", - "PC", - "Bambu PC" - ] - ], - "OGFC01": [ - [ - "Bambu Lab", - "PC", - "Bambu PC FR" + "PVA", + "Bambu PVA" ] ], "OGFC99": [ - [ - "Generic", - "PC", - "Generic PC" - ], [ "Generic", "PC", "fdm_filament_pc" ] ], - "OGFG00": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG Basic" - ] - ], - "OGFG01": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG Translucent" - ] - ], - "OGFG02": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG HF" - ] - ], - "OGFG50": [ - [ - "Bambu Lab", - "PETG-CF", - "Bambu PETG-CF" - ] - ], - "OGFG60": [ - [ - "Polymaker", - "PETG", - "PolyLite PETG" - ] - ], - "OGFG97": [ - [ - "Generic", - "PCTG", - "fdm_filament_pctg" - ] - ], "OGFG99": [ - [ - "Generic", - "PETG", - "Generic PETG" - ], [ "Generic", "PETG", "fdm_filament_pet" ] ], - "OGFGG300": [ - [ - "GreenGate3D", - "PETG", - "GreenGate3D PETG" - ] - ], - "OGFL00": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA" - ] - ], - "OGFL00-1": [ - [ - "Polymaker", - "PLA", - "PolyTerra Dual PLA" - ] - ], - "OGFL01": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA" - ] - ], - "OGFL03": [ - [ - "eSUN", - "PLA", - "eSUN PLA+" - ] - ], - "OGFL04": [ - [ - "Overture", - "PLA", - "Overture PLA" - ] - ], - "OGFL05": [ - [ - "Overture", - "PLA", - "Overture Matte PLA" - ] - ], - "OGFL06": [ - [ - "Polymaker", - "PETG", - "Fiberon PETG-ESD" - ] - ], - "OGFL50": [ - [ - "Polymaker", - "PA6-CF", - "Fiberon PA6-CF" - ] - ], - "OGFL51": [ - [ - "Polymaker", - "PA-GF", - "Fiberon PA6-GF" - ] - ], - "OGFL52": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA12-CF" - ] - ], - "OGFL53": [ - [ - "Polymaker", - "PA", - "Fiberon PA612-CF" - ] - ], - "OGFL54": [ - [ - "Polymaker", - "PET-CF", - "Fiberon PET-CF" - ] - ], - "OGFL55": [ - [ - "Polymaker", - "PETG-CF", - "Fiberon PETG-rCF" - ] - ], - "OGFL95": [ - [ - "Generic", - "PLA", - "Generic PLA High Speed" - ] - ], "OGFL96": [ [ "Generic", "PLA", "Generic PLA Silk" - ], - [ - "Generic", - "PLA", - "fdm_filament_pla_silk" - ] - ], - "OGFL98": [ - [ - "Generic", - "PLA-CF", - "Generic PLA-CF" - ] - ], - "OGFL99": [ - [ - "Generic", - "PLA", - "fdm_filament_pla" - ] - ], - "OGFLC99": [ - [ - "Generic", - "CoPE", - "fdm_filament_cope" - ] - ], - "OGFN03": [ - [ - "Bambu Lab", - "PA-CF", - "Bambu PA-CF" - ] - ], - "OGFN04": [ - [ - "Bambu Lab", - "PA-CF", - "Bambu PAHT-CF" - ] - ], - "OGFN05": [ - [ - "Bambu Lab", - "PA6-CF", - "Bambu PA6-CF" - ] - ], - "OGFN06": [ - [ - "Bambu Lab", - "PPA-CF", - "Bambu PPA-CF" - ] - ], - "OGFN08": [ - [ - "Bambu Lab", - "PA-GF", - "Bambu PA6-GF" - ] - ], - "OGFN96": [ - [ - "Generic", - "PPA-GF", - "Generic PPA-GF" - ] - ], - "OGFN97": [ - [ - "Generic", - "PPA-CF", - "fdm_filament_ppa" - ] - ], - "OGFN98": [ - [ - "Generic", - "PA-CF", - "Generic PA-CF" ] ], "OGFN99": [ - [ - "Generic", - "PA", - "Generic PA" - ], [ "Generic", "PA", "fdm_filament_pa" ] ], - "OGFNMK00": [ - [ - "Numakers", - "PLA", - "Numakers PLA+" - ] - ], - "OGFP97": [ - [ - "Generic", - "PP", - "fdm_filament_pp" - ] - ], - "OGFP99": [ - [ - "Generic", - "PE", - "fdm_filament_pe" - ] - ], - "OGFPM001": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA" - ] - ], - "OGFPM002": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Matte" - ] - ], - "OGFPM003": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Marble" - ] - ], - "OGFPM004": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Silk" - ] - ], - "OGFPM005": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Satin" - ] - ], - "OGFPM006": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Translucent" - ] - ], - "OGFPM007": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Galaxy" - ] - ], - "OGFPM008": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Celestial" - ] - ], - "OGFPM009": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Starlight" - ] - ], - "OGFPM010": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Glow" - ] - ], - "OGFPM011": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Luminous" - ] - ], - "OGFPM012": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Metallic" - ] - ], - "OGFPM013": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Neon" - ] - ], - "OGFPM014": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA UV Shift" - ] - ], - "OGFPM015": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Temp Shift" - ] - ], - "OGFPM016": [ - [ - "Polymaker", - "PLA", - "Panchroma CoPE" - ] - ], - "OGFPM017": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA" - ] - ], - "OGFPM018": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA-GF" - ] - ], - "OGFPM019": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Pro" - ] - ], - "OGFR00": [ - [ - "FusRock", - "ABS-GF", - "FusRock ABS-GF" - ] - ], - "OGFR98": [ - [ - "Generic", - "PHA", - "fdm_filament_pha" - ] - ], - "OGFR99": [ - [ - "Generic", - "EVA", - "fdm_filament_eva" - ] - ], - "OGFS00": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support W" - ] - ], - "OGFS01": [ - [ - "Bambu Lab", - "PA", - "Bambu Support G" - ] - ], - "OGFS02": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support For PLA" - ] - ], - "OGFS03": [ - [ - "Bambu Lab", - "PA", - "Bambu Support For PA/PET" - ] - ], - "OGFS04": [ - [ - "Bambu Lab", - "PVA", - "Bambu PVA" - ] - ], - "OGFS05": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support For PLA/PETG" - ] - ], - "OGFS06": [ - [ - "Bambu Lab", - "ABS", - "Bambu Support for ABS" - ] - ], - "OGFS97": [ - [ - "Generic", - "BVOH", - "fdm_filament_bvoh" - ] - ], - "OGFS98": [ - [ - "Generic", - "HIPS", - "fdm_filament_hips" - ] - ], - "OGFS99": [ - [ - "Generic", - "PVA", - "Generic PVA" - ] - ], - "OGFSNL02": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Matte" - ] - ], - "OGFSNL03": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+" - ] - ], - "OGFSNL04": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+ 2.0" - ] - ], - "OGFSNL05": [ - [ - "SUNLU", - "PLA", - "SUNLU Silk PLA+" - ] - ], - "OGFSNL06": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Marble" - ] - ], - "OGFSNL07": [ - [ - "SUNLU", - "PLA", - "SUNLU Wood PLA" - ] - ], "OGFSNL08": [ [ "Generic", "PETG", "SUNLU PETG" - ], - [ - "SUNLU", - "PETG", - "SUNLU PETG" - ] - ], - "OGFT01": [ - [ - "Bambu Lab", - "PET-CF", - "Bambu PET-CF" - ] - ], - "OGFT02": [ - [ - "Bambu Lab", - "PPS-CF", - "Bambu PPS-CF" - ] - ], - "OGFU00": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 95A HF" - ] - ], - "OGFU01": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 95A" - ] - ], - "OGFU99": [ - [ - "Generic", - "TPU", - "Generic TPU" - ] - ], - "OVTABS08": [ - [ - "Overture", - "ABS", - "Overture ABS Basic" ] ], "P1001": [ @@ -20414,34 +18572,6 @@ "TPU", "SeeMeCNC TPU" ] - ], - "VLMNT01": [ - [ - "Valment", - "PLA", - "Valment PLA" - ] - ], - "VLMNT02": [ - [ - "Valment", - "PLA", - "Valment PLA Silk" - ] - ], - "VLMNT03": [ - [ - "Valment", - "PLA-CF", - "Valment PLA-CF" - ] - ], - "VLMNT04": [ - [ - "Valment", - "PLA", - "Valment PLA Galaxy" - ] ] } } From 3ccc58a9fc6d35483cc0796fb835d1c2496f3a0b Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 19:21:19 +0800 Subject: [PATCH 017/164] fix --- .../filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json | 3 +++ .../Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ ...nycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json | 3 +++ .../Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- .../filament/Creality Generic ABS @Ender-5Max-all.json | 2 +- .../filament/Creality Generic ASA @Ender-5Max-all.json | 2 +- .../filament/Creality Generic PA @Ender-5Max-all.json | 2 +- .../filament/Creality Generic PETG @Ender-5Max-all.json | 2 +- .../filament/Creality Generic TPU @Ender-5Max-all.json | 2 +- .../profiles/Creality/filament/Generic PETG-GF @K2-all.json | 2 +- .../profiles/Prusa/filament/Prusa Generic ASA @CORE One.json | 2 +- .../Prusa/filament/Prusa Generic PC @MINIIS 0.25.json | 1 + .../Prusa/filament/Prusa Generic PC @MINIIS 0.6.json | 1 + .../Prusa/filament/Prusa Generic PC @MINIIS 0.8.json | 1 + .../profiles/Prusa/filament/Prusa Generic PC @MINIIS.json | 1 + resources/profiles/Prusa/filament/Prusa Generic PC.json | 1 + .../profiles/Prusa/filament/Prusa Generic TPU @CORE One.json | 2 +- .../profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json | 2 +- .../profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json | 2 +- .../profiles/Prusa/filament/Prusa Generic TPU @MK4S.json | 2 +- .../Prusa/filament/Prusa Generic TPU HF @MINIIS.json | 2 +- .../profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json | 2 +- resources/profiles/Prusa/filament/Prusament PETG @base.json | 5 ++++- resources/profiles/Prusa/filament/Prusament PLA @base.json | 5 ++++- resources/profiles/Prusa/filament/Prusament rPLA @base.json | 5 ++++- .../Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json | 3 +++ .../profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json | 3 +++ .../re3D/filament/re3D Greengate rPETG @0.8 nozzle.json | 3 +++ .../re3D/filament/re3D Greengate rPETG @1.75 nozzle.json | 3 +++ resources/profiles/re3D/filament/re3D Greengate rPETG.json | 2 +- 36 files changed, 71 insertions(+), 18 deletions(-) diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json index 20d5e6463c..904b9cf13e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.95" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json index 7395073bce..64ca075800 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json index 59113ee018..7829e37710 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_type": [ "ASA" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json index 52f8ed3f9c..a9340e6553 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.96" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json index 4c1cba8e20..3a9a24a8e4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json index 0e975dc8d6..cef58f9461 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.96" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json index 18a8f258ec..6709f9bbd7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.96" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json index 85f0e8a993..5570f249d9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "0.96" ], diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json index 645f098e04..68f8367ed9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle" ], + "filament_vendor": [ + "Anycubic" + ], "filament_flow_ratio": [ "1" ], diff --git a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json index 0c49ed86e1..852b56e0e0 100644 --- a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -10,7 +10,7 @@ "Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle" ], "filament_vendor": [ - "Anycubic" + "Generic" ], "filament_type": [ "PETG" diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json index 2e7d34794d..1c3034cd80 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json @@ -77,7 +77,7 @@ "filament_unloading_speed": "90", "filament_unloading_speed_start": "100", "filament_vendor": [ - "Creality" + "Generic" ], "filament_wipe": "nil", "filament_wipe_distance": "nil", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json index d93db9edb5..d2e8d0d5b5 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json @@ -77,7 +77,7 @@ "filament_unloading_speed": "90", "filament_unloading_speed_start": "100", "filament_vendor": [ - "Creality" + "Generic" ], "filament_wipe": "nil", "filament_wipe_distance": "nil", diff --git a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json index f72b006d9b..3b37837a4c 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json @@ -77,7 +77,7 @@ "filament_unloading_speed": "90", "filament_unloading_speed_start": "100", "filament_vendor": [ - "Creality" + "Generic" ], "filament_wipe": "nil", "filament_wipe_distance": "nil", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json index 63700d9207..6dd5926993 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json @@ -77,7 +77,7 @@ "filament_unloading_speed": "90", "filament_unloading_speed_start": "100", "filament_vendor": [ - "Creality" + "Generic" ], "filament_wipe": "nil", "filament_wipe_distance": "nil", diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json index 20b4033ed4..437e0875bf 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json @@ -77,7 +77,7 @@ "filament_unloading_speed": "90", "filament_unloading_speed_start": "100", "filament_vendor": [ - "Creality" + "Generic" ], "filament_wipe": "nil", "filament_wipe_distance": "nil", diff --git a/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json b/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json index 2505b3ccc8..c2a9b7cc5c 100644 --- a/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json @@ -60,7 +60,7 @@ "PETG-GF" ], "filament_vendor": [ - "Creality" + "Generic" ], "hot_plate_temp": [ "70" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json index 2cffdfabe5..c2c39822d7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json @@ -61,7 +61,7 @@ "ASA" ], "filament_vendor": [ - "Prusa Polymers" + "Generic" ], "hot_plate_temp": [ "110" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json index cb00cb55ac..37520ad405 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "P9dO2M6dPICX7rhQ", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json index f747f7e54f..2642930cc1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "uAzPBVsMr6eS1XXS", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json index 0a59345eef..2a3fe6485b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "MZd6zhq1pvhDj6yz", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json index 8cbe33d5b7..4a3bb29282 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "H7HoG0RfPLMTnCEo", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC.json b/resources/profiles/Prusa/filament/Prusa Generic PC.json index 3cb8ec5c0d..fed8a0bb7b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "51vavWbGjxnBwH7e", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json index 9cba165705..71fe4f21c5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json @@ -72,7 +72,7 @@ "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" ], "filament_type": [ - "FLEX" + "TPU" ], "filament_vendor": [ "Generic" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json index 6108984ad1..e6d596aa4e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json @@ -18,7 +18,7 @@ "50" ], "filament_type": [ - "FLEX" + "TPU" ], "nozzle_temperature_initial_layer": [ "220" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json index bc6d7ad126..c0e8ca4577 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json @@ -19,7 +19,7 @@ "50" ], "filament_type": [ - "FLEX" + "TPU" ], "nozzle_temperature_initial_layer": [ "220" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json index 3fec5776ec..a7b5d1fcf6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json @@ -41,7 +41,7 @@ "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" ], "filament_type": [ - "FLEX" + "TPU" ], "filament_wipe": "0", "filament_z_hop": "0", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json index 954e880fa6..2295816502 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json @@ -18,7 +18,7 @@ "50" ], "filament_type": [ - "FLEX" + "TPU" ], "nozzle_temperature_initial_layer": [ "220" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json index 91e97c5324..611c693da1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json @@ -19,7 +19,7 @@ "50" ], "filament_type": [ - "FLEX" + "TPU" ], "nozzle_temperature_initial_layer": [ "220" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @base.json b/resources/profiles/Prusa/filament/Prusament PETG @base.json index eee47346ca..9077aad91c 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @base.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pet", "from": "system", "filament_id": "OFpHq9gJ", - "instantiation": "false" + "instantiation": "false", + "filament_vendor": [ + "Prusa Polymers" + ] } diff --git a/resources/profiles/Prusa/filament/Prusament PLA @base.json b/resources/profiles/Prusa/filament/Prusament PLA @base.json index 707640da25..acba999339 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @base.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pla", "from": "system", "filament_id": "OFkoT6jl", - "instantiation": "false" + "instantiation": "false", + "filament_vendor": [ + "Prusa Polymers" + ] } diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @base.json b/resources/profiles/Prusa/filament/Prusament rPLA @base.json index bdacf0cc19..c9b731d04c 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @base.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @base.json @@ -4,5 +4,8 @@ "inherits": "fdm_filament_pla", "from": "system", "filament_id": "OFjFPhUC", - "instantiation": "false" + "instantiation": "false", + "filament_vendor": [ + "Prusa Polymers" + ] } diff --git a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json index 2d9196c316..5926d0155d 100644 --- a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json @@ -6,6 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "Generic PETG @System", + "filament_vendor": [ + "Polymaker" + ], "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json index 9df001b6c9..384be40590 100644 --- a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json @@ -6,6 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "Generic PETG @System", + "filament_vendor": [ + "SUNLU" + ], "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json index 028bf042bb..42abbeb819 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json @@ -6,6 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", + "filament_vendor": [ + "GreenGate3D" + ], "nozzle_temperature_initial_layer": [ "0" ], diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json index 5ae3d832ff..43de0b8685 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json @@ -6,6 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", + "filament_vendor": [ + "GreenGate3D" + ], "nozzle_temperature_initial_layer": [ "0" ], diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG.json b/resources/profiles/re3D/filament/re3D Greengate rPETG.json index 5111e5b951..fe0ff8f81b 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG.json @@ -15,6 +15,6 @@ "re3D TerabotX 2" ], "filament_vendor": [ - "re3D" + "GreenGate3D" ] } \ No newline at end of file From e3ac835cc3bce79b7471fffbe5a74534e239983a Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 20:19:49 +0800 Subject: [PATCH 018/164] v3.2 data fixes: per-vendor (filament_vendor, filament_type) reconciliation Reconcile every same-family triple divergence ahead of the v3.2 re-mint, per the pinned decision rule (spool brand; "Generic"-named -> Generic; brand-named -> that brand in every bundle; first-party lines -> printer brand; web evidence beats names). All 32 grandfathered triple_exceptions resolved plus swept same-class finds; every bundle re-verified split-free by loader-faithful re-resolution and adversarially reviewed. - Flashforge: 10 exceptions + swept Flashforge PLA; FusRock S-Multi/S-PAHT illegal types decided with product evidence (PA / PAHT); FusRock Generic roots -> Generic; 57 explicit Generic pins keep 14 uninvolved 0.25-nozzle families triple-identical. - Prusa: Prusament vendor -> "Prusa Polymers"; Generic ASA -> Generic; Generic TPU/TPU HF type FLEX -> TPU; fdm_filament_pc re-home (sanctioned): Prusa Generic PC family = OF97ru74, Prusament PC Blend = OFvDbkFq on the @XL pair; transitional ids deleted from OFL and Prusa fdm_filament_pc. - Anycubic: 8 first-party families -> Anycubic on fdm_filament_common leakers; Generic PETG outlier -> Generic. - Creality: 5 Ender-5Max/K2 generics + swept Creality Generic PA -> Generic. - Snapmaker: PolyLite PLA -> Polymaker; PLA Lite child aligned to root per Snapmaker/Orca_Presets evidence. - Sovol/re3D: Polymaker PETG / SUNLU PETG -> brand; Greengate rPETG -> GreenGate3D per manufacturer evidence. Snapshot/ledger intentionally untouched here: the central mechanical commit regenerates them; --check is expected red between the two. --- .../filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json | 3 +++ .../filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json | 3 +++ .../Flashforge/filament/Flashforge ASA-CF @FF C5.json | 3 +++ .../Flashforge/filament/Flashforge ASA-CF @FF C5P.json | 3 +++ .../Flashforge/filament/Flashforge ASA-CF @FF G4.json | 3 +++ .../Flashforge/filament/Flashforge ASA-CF @FF G4P.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge ASA-CF.json | 3 +++ .../filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PETG @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PLA @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json | 3 +++ .../profiles/Flashforge/filament/Flashforge PA12-CF.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge PA6-CF.json | 3 +++ .../profiles/Flashforge/filament/Flashforge PA66-CF.json | 3 +++ .../Flashforge/filament/Flashforge PET-CF @FF C5.json | 3 +++ .../Flashforge/filament/Flashforge PET-CF @FF C5P.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge PET-CF.json | 3 +++ .../filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json | 3 +++ .../filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json | 3 +++ .../Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json | 3 +++ .../Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json | 3 +++ .../Flashforge PETG Transparent @FF G4 0.25 nozzle.json | 3 +++ .../Flashforge PETG Transparent @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json | 3 +++ .../filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json | 3 +++ .../Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json | 3 +++ .../Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json | 3 +++ .../Flashforge PLA Color Change @FF G4 0.25 nozzle.json | 3 +++ .../Flashforge PLA Color Change @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json | 3 +++ .../Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json | 3 +++ .../Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json | 3 +++ .../filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json | 3 +++ .../Flashforge/filament/Flashforge PPA-CF @FF C5.json | 3 +++ .../Flashforge/filament/Flashforge PPA-CF @FF C5P.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge PPA-CF.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge PPA-GF.json | 3 +++ .../Flashforge/filament/Flashforge PPS-CF @FF C5.json | 3 +++ .../Flashforge/filament/Flashforge PPS-CF @FF C5P.json | 3 +++ .../Flashforge/filament/Flashforge PPS-CF @FF G4.json | 3 +++ .../Flashforge/filament/Flashforge PPS-CF @FF G4P.json | 3 +++ resources/profiles/Flashforge/filament/Flashforge PPS-CF.json | 3 +++ .../Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json | 2 +- .../Flashforge/filament/FusRock/FusRock Generic PET-CF.json | 2 +- .../FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json | 2 +- .../Flashforge/filament/FusRock/FusRock Generic S-Multi.json | 4 ++-- .../FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json | 2 +- .../Flashforge/filament/FusRock/FusRock Generic S-PAHT.json | 4 ++-- .../OrcaFilamentLibrary/filament/base/fdm_filament_pc.json | 1 - .../profiles/Prusa/filament/Prusament PC Blend @XL 5T.json | 4 ++++ resources/profiles/Prusa/filament/Prusament PC Blend @XL.json | 4 ++++ resources/profiles/Prusa/filament/fdm_filament_pc.json | 1 - .../Snapmaker/filament/Polymaker/PolyLite PLA @base.json | 3 +++ .../profiles/Snapmaker/filament/Snapmaker PLA Lite @U1.json | 2 +- 92 files changed, 260 insertions(+), 11 deletions(-) diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json index 97970235e4..6f8cf9429f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json @@ -5,6 +5,9 @@ "from": "system", "filament_id": "GFB99", "instantiation": "false", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", "Flashforge Adventurer 5M Pro 0.25 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json index 97f3d5f8fd..1abb4f5e51 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "SuEfcE6AYK8N1FI4", "filament_id": "OF5T1Y9R", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge ABS Basic @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json index e37450d400..523d9d05dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "gmkc6fRLMI73Iut8", "filament_id": "OF5T1Y9R", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "cool_plate_temp": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json index 09a01dd503..825a80c96d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "CuckX5MsN69806ow", "filament_id": "OF5T1Y9R", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "50" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json index 0d556da17d..3488e5bec6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "MBo02hFXn0ebDRdb", "filament_id": "OF5T1Y9R", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "50" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json index a852169f49..0ce215f69a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "XWta5jJFsCxBdEPd", "filament_id": "OFcy60o4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "50" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json index 9d39413ec7..cd5b00cfe6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "quOwRRLcNfOy0sYf", "filament_id": "OFcy60o4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "50" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json index 575f408c5f..e465ad0da8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json @@ -6,6 +6,9 @@ "setting_id": "TqU1elqwuVr9EhTA", "filament_id": "OFM3PeVe", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json index fbad5b186b..ec34e23dcb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json @@ -6,6 +6,9 @@ "setting_id": "nMczAtoc5W0J2WkS", "filament_id": "OFM3PeVe", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json index 62f2f92006..2a33b88234 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json @@ -6,6 +6,9 @@ "setting_id": "ap7X4nWKfFR53NT0", "filament_id": "OFM3PeVe", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json index 8d88edb2ad..f07085eb07 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json @@ -6,6 +6,9 @@ "setting_id": "kZXg6odPm5iW79Qn", "filament_id": "OFM3PeVe", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json index b400c7d253..b124ce423d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json @@ -6,6 +6,9 @@ "setting_id": "CI5dvVrCNk2XTU82", "filament_id": "OFM3PeVe", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_flow_ratio": [ "0.99" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json index b48169a92a..8a267c6548 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "1NFhtEvvvgZiHcto", "filament_id": "OFZQFvHQ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge HS PETG @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json index 62f46f554c..4ae4f02769 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "eNOkWn5PT8rDpA0g", "filament_id": "OFZQFvHQ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "cool_plate_temp": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json index f98635dba8..2764a938da 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "uXGuyvVxfdQW22vu", "filament_id": "OFZQFvHQ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json index 5df6b09e97..b0ddaf5825 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "bFVYSPkynBBapFjq", "filament_id": "OFZQFvHQ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json index aaac58ce66..56f8ff9792 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "bfPaqPGaR5zpTsLk", "filament_id": "OFoJUGj6", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json index 89eed340d5..25eab9bb09 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "JCQtuv8Abfz4jVRV", "filament_id": "OFoJUGj6", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json index e204e3e522..54be3be396 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "jFUS6233aq4XPgrn", "filament_id": "OFoJUGj6", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json index 78961a532c..3733afd3b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json @@ -6,6 +6,9 @@ "setting_id": "1CevPV960sQWT3NF", "filament_id": "OFMHTnPP", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_density": [ "1.1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json index 9b3764431d..bf2d34204a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json @@ -6,6 +6,9 @@ "setting_id": "NGbZ8pQVTRKw28kp", "filament_id": "OF0SyJhk", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_density": [ "1.1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json index 7c2384dad6..988e26f75f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json @@ -6,6 +6,9 @@ "setting_id": "5pVoGBvbiUlrJSwR", "filament_id": "OFkaDtKx", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_density": [ "1.1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json index a993eeeae0..2077dc5243 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json @@ -6,6 +6,9 @@ "setting_id": "3bguiaEtUsS8ULHW", "filament_id": "OFPJJxkF", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json index af92eaae0a..48c08e910b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json @@ -6,6 +6,9 @@ "setting_id": "W6i9E22BVo11TeCm", "filament_id": "OFPJJxkF", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json index e5e005fd48..d74582ed08 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json @@ -6,6 +6,9 @@ "setting_id": "vflpXTS9GwnODQDH", "filament_id": "OFPJJxkF", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_density": [ "1.1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json index 568a8f3adb..2df9381429 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json @@ -5,6 +5,9 @@ "from": "system", "filament_id": "GFG99", "instantiation": "false", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", "Flashforge Adventurer 5M Pro 0.25 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json index 339ae66b90..ee093e88fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "xOZQvdZa1YCcnjor", "filament_id": "OFuyJhLF", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PETG Basic @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json index 97e6a20e7c..d66f57eb00 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "8EUg1hTLfsyDPbnG", "filament_id": "OF38Hyk4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PETG Pro @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json index 2d32a805ff..56b1f382f0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "UKhV8A2DBc1xyNWc", "filament_id": "OF38Hyk4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json index 182617e5aa..105b1cee65 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "XFSgx95whLw5FD08", "filament_id": "OF38Hyk4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json index 80971691dd..8b3169ba94 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "8Jc4eedkknqNB87s", "filament_id": "OF38Hyk4", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json index 656e6cfa51..c6cca24dde 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "W59yTyPnVv4LYiah", "filament_id": "OFRgDMDJ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PETG Transparent @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json index 996ed62e1d..e29546069a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "NRY4fsPNtnqs0kyH", "filament_id": "OFRgDMDJ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json index 452cabe424..90e1a598de 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "p5c6XJ1VD8cn2Meh", "filament_id": "OFRgDMDJ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json index a25a050f9f..4a05c795b2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "C0VV5Uzsl4icRgKa", "filament_id": "OFRgDMDJ", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json index f799be321a..5fe939a7b7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json @@ -4,6 +4,9 @@ "inherits": "Flashforge Generic PLA", "from": "system", "instantiation": "false", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", "Flashforge Adventurer 5M Pro 0.25 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json index 8043805bec..155f7ddcb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "3fuVuyVcn8U0bRJQ", "filament_id": "OFHBTqyD", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Basic @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json index 53165d7174..86153a46df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "FrRRUl5OT773uCju", "filament_id": "OFHBTqyD", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json index cb49ae9309..fd7393e08c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "QXJgY8OPyaoYUI1D", "filament_id": "OFHBTqyD", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json index 7d438c66c4..3199072e84 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "GrwiA2dArUGV9x2g", "filament_id": "OFHBTqyD", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json index 1b0b0ba477..cfb8df6c5c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "KXy0WyQp06VC2ICh", "filament_id": "OFyoW5W2", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Color Change @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json index 26c2f00a33..0ef7325644 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "9cGw7tXD8YJHEi1H", "filament_id": "OFyoW5W2", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json index 974b8eef26..653af0cdfa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "k1OiugasUs7baG1f", "filament_id": "OFyoW5W2", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json index f9e5526878..33a309150b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "HXVX4mDeUSfW2RgL", "filament_id": "OFyoW5W2", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json index c052d94ea4..70eb17ba53 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "a1jTbQsflD7SDFih", "filament_id": "OFXv4FUi", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Galaxy @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json index c0d94ddeeb..6f3447e0b0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "zyCRsy0mHRgyuQqt", "filament_id": "OFXv4FUi", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json index abf30fd1f3..de910c8202 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "DL7lxDI35YErCTWX", "filament_id": "OFXv4FUi", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json index 7e1caa26a0..58cd97fed5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "ZQYrljZtu3es26hB", "filament_id": "OFXv4FUi", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json index 3b29dee372..1f58b7ce9d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "k8iibCO2EnlTSRyi", "filament_id": "OFwf0oWp", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Luminous @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json index ac148b7b66..316f797d5b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "pACct3L7duMh3hfx", "filament_id": "OFwf0oWp", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json index 3b6dbd321e..99d6e50b42 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "qZ6kKjRCMfe4Ql3F", "filament_id": "OFwf0oWp", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json index bb909dbaaf..f7a674246f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "zJFUJKDJRYi1pRL7", "filament_id": "OFwf0oWp", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json index 8c31d9b88c..21fb7bfe80 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "DcbISTLvKNMZRzKx", "filament_id": "OF60Lmeq", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Matte @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json index 72fa362c28..b6fc07dc4b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "4fwlIrzy6O2EsyBZ", "filament_id": "OF60Lmeq", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json index 921d2dea18..8050f544ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "cnPwhLyBq6JL8gEA", "filament_id": "OF60Lmeq", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json index 03bcc21993..a32fbb2952 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "g1gnICJ3u6hpGazQ", "filament_id": "OF60Lmeq", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json index 7aff3d8593..439527a780 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "vwwb5nfO63U1ErCn", "filament_id": "OFWv6JYn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Metal @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json index 4a0cc3727c..3d67e7a928 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "ekq4MRPyzlYxRhbX", "filament_id": "OFWv6JYn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json index c1ecd24405..184a2ed052 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "VvMaIJwFk4Q6KX4p", "filament_id": "OFWv6JYn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json index b488812551..ec32a91e56 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "vVKalJViJuBvlHkK", "filament_id": "OFWv6JYn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json index 0c9008df95..5cb8fcea1a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "DIMoIGOGedN17WbO", "filament_id": "OFTa6gPH", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Pro @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json index 81bb6aa26f..1e838feabd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "SC5LJcecBaEG5by3", "filament_id": "OFTa6gPH", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json index 15ff802ebb..c29e57868b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "ZENqqRqvEOeloAgs", "filament_id": "OFTa6gPH", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json index 86ac22cb22..d839e8b67f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "wV01bqvZ6MRaEibZ", "filament_id": "OFTa6gPH", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json index e3d9c57369..7ef705723e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "mx6NWRkqyo2U12XQ", "filament_id": "OFAGrVjP", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json index ceef2f32d5..50440528c4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "x5m17Z5UpqpTtwgF", "filament_id": "OFAGrVjP", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json index 1521adad6b..dbd9678eb4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "hnWRLUwnfXiwnqBM", "filament_id": "OFAGrVjP", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json index d4227c010a..3202d660c4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "ojYsAanAPqYhgFoe", "filament_id": "OF9sr3Vn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_settings_id": [ "Flashforge PLA Sparkle @FF AD5M 0.25 nozzle" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json index 027aad1ae3..5156491cfe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "xVYaNvQwM2chTkPe", "filament_id": "OF9sr3Vn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "complete_print_exhaust_fan_speed": [ "80" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json index 8b79997f28..f722c56cbf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "jmVmKMUCcowszvVp", "filament_id": "OF9sr3Vn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json index 7a88f501a1..6817de3a60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json @@ -6,6 +6,9 @@ "setting_id": "4L3Zm1YIxs8J8dp9", "filament_id": "OF9sr3Vn", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "additional_cooling_fan_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json index 4cbd30ea72..6bdea5bcd0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json @@ -6,6 +6,9 @@ "setting_id": "DhC7iFgNKCAq4Zkt", "filament_id": "OFQCAYAt", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json index de09f3ee20..daa6fb18ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json @@ -6,6 +6,9 @@ "setting_id": "Jws2AaLWaNyZhqX4", "filament_id": "OFQCAYAt", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json index 0b5e6a712c..883ee5c3ac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json @@ -6,6 +6,9 @@ "setting_id": "MFItX51zZO0KYjdk", "filament_id": "OFQCAYAt", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_flow_ratio": [ "0.99" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json index 54cfd76a33..e4a3581fe4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json @@ -6,6 +6,9 @@ "setting_id": "KITjZXcyM4N8cVyu", "filament_id": "OFp8lkYD", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "fan_max_speed": [ "40" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json index 5080890de1..54faf072f3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json @@ -6,6 +6,9 @@ "setting_id": "ihXPnFERMjbBgrP5", "filament_id": "OFZcrV9c", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json index d28c9de034..7cb88b5960 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json @@ -6,6 +6,9 @@ "setting_id": "UWFjBmSpUkZLBvoO", "filament_id": "OFZcrV9c", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json index 67150ba1b4..309fb174e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json @@ -6,6 +6,9 @@ "setting_id": "oSGlx5mtGh07BnOz", "filament_id": "OFZcrV9c", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json index c9b3f231e5..67c51aa68e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json @@ -6,6 +6,9 @@ "setting_id": "i5DllSvYjVPO04Su", "filament_id": "OFZcrV9c", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json index db7b6c956b..97ff645bb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json @@ -6,6 +6,9 @@ "setting_id": "l3dYtVM52X0UMRix", "filament_id": "OFZcrV9c", "instantiation": "true", + "filament_vendor": [ + "Flashforge" + ], "filament_flow_ratio": [ "0.99" ], diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json index 16ce25c253..37b5e26001 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json @@ -180,7 +180,7 @@ "40" ], "filament_vendor": [ - "FusRock" + "Generic" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json index 3deed3be44..b87e15f2df 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json @@ -180,7 +180,7 @@ "40" ], "filament_vendor": [ - "FusRock" + "Generic" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json index d259f1a1ef..24c8414b2e 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json @@ -37,7 +37,7 @@ "; filament start gcode" ], "filament_type": [ - "PET-CF" + "PA" ], "filament_unloading_speed": [ "35" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json index d12baa2e6b..66b94a8bc0 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json @@ -167,7 +167,7 @@ "0" ], "filament_type": [ - "S-Multi" + "PA" ], "filament_unload_time": [ "0" @@ -179,7 +179,7 @@ "40" ], "filament_vendor": [ - "FusRock" + "Generic" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json index 6b2ec8baa0..5fa539c9d8 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json @@ -37,7 +37,7 @@ "; filament start gcode" ], "filament_type": [ - "PA-CF" + "PAHT" ], "filament_unloading_speed": [ "35" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json index ca207c1219..6c09203af8 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json @@ -167,7 +167,7 @@ "0" ], "filament_type": [ - "S-PAHT" + "PAHT" ], "filament_unload_time": [ "0" @@ -179,7 +179,7 @@ "40" ], "filament_vendor": [ - "FusRock" + "Generic" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json index b33b21cdab..120689c074 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pc", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OFtcKVgP", "instantiation": "false", "supertack_plate_temp": [ "0" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json index 9e715f9e52..922492ce7c 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json @@ -4,7 +4,11 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "FOgpd4BtawBtmjPB", + "filament_id": "OFvDbkFq", "instantiation": "true", + "filament_vendor": [ + "Prusa Polymers" + ], "nozzle_temperature_intial_layer": "275", "nozzle_temperature": "275", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json index 8494169720..2ea273902c 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json @@ -4,7 +4,11 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "DLTlxt04GREtOiec", + "filament_id": "OFvDbkFq", "instantiation": "true", + "filament_vendor": [ + "Prusa Polymers" + ], "nozzle_temperature_intial_layer": "275", "nozzle_temperature": "275", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/fdm_filament_pc.json b/resources/profiles/Prusa/filament/fdm_filament_pc.json index 01a376d817..bc1b6a3a3a 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pc.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pc.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pc", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFC99", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json index 4173572637..fcdcf7b003 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json @@ -5,6 +5,9 @@ "name": "PolyLite PLA @base", "filament_id": "1393866034", "inherits": "fdm_filament_pla", + "filament_vendor": [ + "Polymaker" + ], "filament_flow_ratio": [ "0.95" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1.json index fab081d5d7..d2c9dddefb 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1.json @@ -198,7 +198,7 @@ "100" ], "filament_vendor": [ - "Polymaker" + "Snapmaker" ], "filament_wipe": [ "nil" From f7c1b290fd07c50f77443400552452d2e975e7e5 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sat, 4 Jul 2026 21:09:29 +0800 Subject: [PATCH 019/164] 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. --- doc/developer-reference/filament_id.md | 14 +- .../profiles/Afinia/filament/Afinia ABS+.json | 2 +- .../Afinia/filament/Afinia ABS+@HS.json | 2 +- .../profiles/Afinia/filament/Afinia ABS.json | 2 +- .../Afinia/filament/Afinia ABS@HS.json | 2 +- .../profiles/Afinia/filament/Afinia PLA.json | 2 +- .../Afinia/filament/Afinia PLA@HS.json | 2 +- .../profiles/Afinia/filament/Afinia TPU.json | 2 +- .../Afinia/filament/Afinia TPU@HS.json | 2 +- .../Afinia/filament/Afinia Value ABS.json | 2 +- .../Afinia/filament/Afinia Value ABS@HS.json | 2 +- .../Afinia/filament/Afinia Value PLA.json | 2 +- .../Afinia/filament/Afinia Value PLA@HS.json | 2 +- .../filament/Anker Generic ABS @base.json | 2 +- .../filament/Anker Generic ASA @base.json | 2 +- .../filament/Anker Generic PA @base.json | 2 +- .../filament/Anker Generic PA-CF @base.json | 2 +- .../filament/Anker Generic PC @base.json | 2 +- .../filament/Anker Generic PETG @base.json | 2 +- .../filament/Anker Generic PETG-CF @base.json | 2 +- .../filament/Anker Generic PLA @base.json | 2 +- .../Anker Generic PLA Silk @base.json | 2 +- .../filament/Anker Generic PLA+ @base.json | 2 +- .../filament/Anker Generic PLA-CF @base.json | 2 +- .../filament/Anker Generic PVA @base.json | 2 +- .../filament/Anker Generic TPU @base.json | 2 +- ... ABS @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... ABS @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... ABS @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...bic ABS @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...BS @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ABS @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic ABS @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...ubic ASA @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ... ASA @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... ASA @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...bic ASA @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...SA @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...ASA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ASA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ASA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic ASA @Anycubic Kobra X 0.4 nozzle.json | 2 +- .../filament/Anycubic Generic ABS.json | 2 +- .../filament/Anycubic Generic ASA.json | 2 +- .../filament/Anycubic Generic PA-CF.json | 2 +- .../filament/Anycubic Generic PA.json | 2 +- .../filament/Anycubic Generic PC.json | 2 +- .../filament/Anycubic Generic PETG.json | 2 +- .../filament/Anycubic Generic PLA-CF.json | 2 +- .../filament/Anycubic Generic PLA.json | 2 +- .../filament/Anycubic Generic PVA.json | 2 +- .../filament/Anycubic Generic TPU.json | 2 +- ... PA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ... PA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ... PA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ... PC @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ... PC @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ... PC @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...-GF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-GF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-GF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ... 95A @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...EBA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...EBA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...EBA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...bic PETG @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ...PETG @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...ic PETG @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...TG @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...bic PETG @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Max 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json | 2 +- ...PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.2 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.6 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.8 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... PLA @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...ic PLA @Anycubic Kobra Neo 0.4 nozzle.json | 2 +- ...bic PLA @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...LA @Anycubic Kobra S1 Max 0.25 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...PLA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...PLA Glow @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...low @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...low @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...low @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...PLA Glow @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...gh Speed @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...peed @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...h Speed @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...eed @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...gh Speed @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...nous @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...LA Matte @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...atte @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...tte @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...LA Matte @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...c PLA SE @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...Silk @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...LA Silk @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ilk @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...PLA Silk @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...PLA Slik @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ent @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...bic PLA+ @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...ic PLA+ @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...LA+ @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...bic PLA+ @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...PVA @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...PVA @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...PVA @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ...ubic PVA @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...95A @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...95A @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...95A @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ... TPU 95A @Anycubic Kobra X 0.4 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.6 nozzle.json | 2 +- ... TPU @Anycubic Kobra 3 Max 0.8 nozzle.json | 2 +- ...bic TPU @Anycubic Kobra S1 0.4 nozzle.json | 2 +- ...ACE @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ACE @Anycubic Kobra S1 Max 0.6 nozzle.json | 2 +- ...ACE @Anycubic Kobra S1 Max 0.8 nozzle.json | 2 +- ... for ACE @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...eric ABS @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ETG @Anycubic Kobra S1 Max 0.4 nozzle.json | 2 +- ...ric PETG @Anycubic Kobra X 0.4 nozzle.json | 2 +- ...asic @Anycubic Kobra 3 Max 0.4 nozzle.json | 2 +- ...eric TPU @Anycubic Kobra 3 0.4 nozzle.json | 2 +- .../Fiberon PA6-CF20 @Anycubic Kobra S1.json | 2 +- .../Panchroma PLA @Anycubic Kobra S1.json | 2 +- .../Polymaker PLA Pro @Anycubic Kobra S1.json | 2 +- ...r PLA Pro Metallic @Anycubic Kobra S1.json | 2 +- ...lery ABS @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery ABS @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../Artillery/filament/Artillery ABS.json | 2 +- ...lery ASA @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery ASA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery ASA @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery ASA @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../filament/Artillery Generic ABS.json | 2 +- .../filament/Artillery Generic ASA.json | 2 +- .../filament/Artillery Generic PETG.json | 2 +- .../filament/Artillery Generic PLA-CF.json | 2 +- .../filament/Artillery Generic PLA.json | 2 +- .../filament/Artillery Generic TPU.json | 2 +- ...llery PA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...ry PA-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...llery PC @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.8 nozzle.json | 2 +- ... PETG-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../Artillery/filament/Artillery PETG.json | 2 +- ...lery PLA @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery PLA @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery PLA @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...LA Basic @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...LA Basic @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...LA Basic @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...LA Basic @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...A Basic+ @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../filament/Artillery PLA Basic.json | 2 +- ...LA Matte @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...LA Matte @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...LA Matte @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...LA Matte @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../filament/Artillery PLA Matte.json | 2 +- ...PLA Silk @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...PLA Silk @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...PLA Silk @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...PLA Silk @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../filament/Artillery PLA Silk.json | 2 +- .../filament/Artillery PLA Tough.json | 2 +- ...y PLA-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.2 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.8 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.6 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.8 nozzle.json | 2 +- .../Artillery/filament/Artillery TPU.json | 2 +- .../Blocks/filament/Blocks Generic ABS.json | 2 +- .../filament/Blocks Generic ASA-CF.json | 2 +- .../Blocks/filament/Blocks Generic ASA.json | 2 +- .../Blocks/filament/Blocks Generic PA-CF.json | 2 +- .../Blocks/filament/Blocks Generic PA.json | 2 +- .../Blocks/filament/Blocks Generic PC.json | 2 +- .../Blocks/filament/Blocks Generic PETG.json | 2 +- .../filament/Blocks Generic PLA-CF.json | 2 +- .../Blocks/filament/Blocks Generic PLA.json | 2 +- .../Blocks/filament/Blocks Generic PVA.json | 2 +- .../Blocks/filament/Blocks Generic TPU.json | 2 +- .../filament/C1 Generic High Flow PETG.json | 2 +- .../CONSTRUCT3D/filament/C1 Generic PETG.json | 2 +- .../CONSTRUCT3D/filament/C1 Generic PLA.json | 2 +- ...uanying ABS @Chuanying X1 0.25 Nozzle.json | 2 +- .../filament/Chuanying Generic ABS.json | 2 +- .../filament/Chuanying Generic ASA.json | 2 +- .../filament/Chuanying Generic HIPS.json | 2 +- .../filament/Chuanying Generic HS PLA.json | 2 +- .../filament/Chuanying Generic PETG-CF10.json | 2 +- .../filament/Chuanying Generic PETG.json | 2 +- .../filament/Chuanying Generic PLA-CF10.json | 2 +- .../filament/Chuanying Generic PLA-Silk.json | 2 +- .../filament/Chuanying Generic PLA.json | 2 +- .../filament/Chuanying Generic PVA.json | 2 +- .../filament/Chuanying Generic TPU.json | 2 +- ...anying PETG @Chuanying X1 0.25 Nozzle.json | 2 +- .../filament/CoPrint Generic ABS.json | 2 +- .../filament/CoPrint Generic PETG.json | 2 +- .../filament/CoPrint Generic PLA.json | 2 +- .../filament/CoPrint Generic TPU.json | 2 +- .../filament/CoLiDo ABS @CoLiDo SR1.json | 2 +- .../CoLiDo Generic ABS @CoLiDo DIY 4.0.json | 2 +- .../CoLiDo Generic ABS @CoLiDo X16.json | 2 +- .../CoLiDo Generic PETG @CoLiDo DIY 4.0.json | 2 +- .../CoLiDo Generic PETG @CoLiDo X16.json | 2 +- .../CoLiDo Generic PLA @CoLiDo DIY 4.0.json | 2 +- .../CoLiDo Generic PLA @CoLiDo X16.json | 2 +- .../CoLiDo Generic TPU @CoLiDo DIY 4.0.json | 2 +- .../CoLiDo Generic TPU @CoLiDo X16.json | 2 +- .../filament/CoLiDo PETG @CoLiDo SR1.json | 2 +- .../filament/CoLiDo PLA @CoLiDo SR1.json | 2 +- .../filament/CoLiDo PLA Silk @CoLiDo SR1.json | 2 +- .../CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json | 2 +- .../Comgrow/filament/Comgrow Generic ABS.json | 2 +- .../filament/Comgrow Generic PETG.json | 2 +- .../Comgrow/filament/Comgrow Generic PLA.json | 2 +- .../Comgrow/filament/Comgrow T300 PLA.json | 2 +- .../filament/CR-ABS @Ender-3 V4-all.json | 2 +- .../Creality/filament/CR-ABS @Hi-all.json | 2 +- .../filament/CR-ABS @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-ABS @K1 SE-all.json | 2 +- .../filament/CR-ABS @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/CR-ABS @K1C-all.json | 2 +- .../filament/CR-ABS @K1C_CFS-C-all.json | 2 +- .../filament/CR-ABS @K1_CFS-C-all.json | 2 +- .../filament/CR-ABS @K2 Plus-all.json | 2 +- .../Creality/filament/CR-ABS @K2 Pro-all.json | 2 +- .../Creality/filament/CR-ABS @K2 SE-all.json | 2 +- .../Creality/filament/CR-ABS @K2-all.json | 2 +- .../filament/CR-Nylon @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-Nylon @K1C-all.json | 2 +- .../filament/CR-Nylon @K1C_CFS-C-all.json | 2 +- .../filament/CR-Nylon @K1_CFS-C-all.json | 2 +- .../filament/CR-Nylon @K2 Plus-all.json | 2 +- .../filament/CR-PETG @Ender-3 V4-all.json | 2 +- .../Creality/filament/CR-PETG @Hi-all.json | 2 +- .../filament/CR-PETG @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-PETG @K1 SE-all.json | 2 +- .../filament/CR-PETG @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/CR-PETG @K1C-all.json | 2 +- .../filament/CR-PETG @K1C_CFS-C-all.json | 2 +- .../filament/CR-PETG @K1_CFS-C-all.json | 2 +- .../filament/CR-PETG @K2 Plus-all.json | 2 +- .../filament/CR-PETG @K2 Pro-all.json | 2 +- .../Creality/filament/CR-PETG @K2 SE-all.json | 2 +- .../Creality/filament/CR-PETG @K2-all.json | 2 +- .../filament/CR-PETG @SPARKX i7-all.json | 2 +- .../filament/CR-PLA @Ender-3 V4-all.json | 2 +- .../Creality/filament/CR-PLA @Hi-all.json | 2 +- .../filament/CR-PLA @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-PLA @K1 SE-all.json | 2 +- .../filament/CR-PLA @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/CR-PLA @K1C-all.json | 2 +- .../filament/CR-PLA @K1C_CFS-C-all.json | 2 +- .../filament/CR-PLA @K1_CFS-C-all.json | 2 +- .../filament/CR-PLA @K2 Plus-all.json | 2 +- .../Creality/filament/CR-PLA @K2 Pro-all.json | 2 +- .../Creality/filament/CR-PLA @K2 SE-all.json | 2 +- .../Creality/filament/CR-PLA @K2-all.json | 2 +- .../filament/CR-PLA @SPARKX i7-all.json | 2 +- .../CR-PLA Carbon @K1 Max_CFS-C-all.json | 2 +- .../filament/CR-PLA Carbon @K1C-all.json | 2 +- .../CR-PLA Carbon @K1C_CFS-C-all.json | 2 +- .../filament/CR-PLA Carbon @K1_CFS-C-all.json | 2 +- .../filament/CR-PLA Carbon @K2 Plus-all.json | 2 +- .../CR-PLA Fluo @K1 Max_CFS-C-all.json | 2 +- .../filament/CR-PLA Fluo @K1C-all.json | 2 +- .../filament/CR-PLA Fluo @K1C_CFS-C-all.json | 2 +- .../filament/CR-PLA Fluo @K1_CFS-C-all.json | 2 +- .../filament/CR-PLA Fluo @K2 Plus-all.json | 2 +- .../filament/CR-PLA Fluo @K2 Pro-all.json | 2 +- .../filament/CR-PLA Fluo @K2-all.json | 2 +- .../filament/CR-PLA Fluo @SPARKX i7-all.json | 2 +- .../CR-PLA Matte @Ender-3 V4-all.json | 2 +- .../CR-PLA Matte @K1 Max_CFS-C-all.json | 2 +- .../filament/CR-PLA Matte @K1C-all.json | 2 +- .../filament/CR-PLA Matte @K1C_CFS-C-all.json | 2 +- .../filament/CR-PLA Matte @K1_CFS-C-all.json | 2 +- .../filament/CR-PLA Matte @K2 Plus-all.json | 2 +- .../filament/CR-PLA Matte @K2 Pro-all.json | 2 +- .../filament/CR-PLA Matte @K2-all.json | 2 +- .../filament/CR-PLA Matte @SPARKX i7-all.json | 2 +- .../filament/CR-Silk @Ender-3 V4-all.json | 2 +- .../Creality/filament/CR-Silk @Hi-all.json | 2 +- .../filament/CR-Silk @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-Silk @K1 SE-all.json | 2 +- .../filament/CR-Silk @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/CR-Silk @K1C-all.json | 2 +- .../filament/CR-Silk @K1C_CFS-C-all.json | 2 +- .../filament/CR-Silk @K1_CFS-C-all.json | 2 +- .../filament/CR-Silk @K2 Plus-all.json | 2 +- .../filament/CR-Silk @K2 Pro-all.json | 2 +- .../Creality/filament/CR-Silk @K2 SE-all.json | 2 +- .../Creality/filament/CR-Silk @K2-all.json | 2 +- .../filament/CR-Silk @SPARKX i7-all.json | 2 +- .../filament/CR-TPU @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-TPU @K1C-all.json | 2 +- .../filament/CR-TPU @K1C_CFS-C-all.json | 2 +- .../filament/CR-TPU @K1_CFS-C-all.json | 2 +- .../filament/CR-TPU @K2 Plus-all.json | 2 +- .../Creality/filament/CR-TPU @K2 Pro-all.json | 2 +- .../Creality/filament/CR-TPU @K2-all.json | 2 +- .../filament/CR-TPU @SPARKX i7-all.json | 2 +- .../filament/CR-Wood @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/CR-Wood @K1C-all.json | 2 +- .../filament/CR-Wood @K1C_CFS-C-all.json | 2 +- .../filament/CR-Wood @K1_CFS-C-all.json | 2 +- .../filament/CR-Wood @K2 Plus-all.json | 2 +- .../Creality Generic ABS @Ender-5Max-all.json | 2 +- .../filament/Creality Generic ABS.json | 2 +- .../Creality Generic ASA @Ender-5Max-all.json | 2 +- .../Creality Generic ASA-CF @Hi-all.json | 2 +- .../filament/Creality Generic ASA.json | 2 +- .../Creality Generic PA @Ender-5Max-all.json | 2 +- .../filament/Creality Generic PA-CF.json | 2 +- .../filament/Creality Generic PC.json | 2 +- ...Creality Generic PETG @Ender-5Max-all.json | 2 +- .../Creality Generic PETG-CF @Hi-all.json | 2 +- .../filament/Creality Generic PETG.json | 2 +- .../Creality Generic PLA @Ender-5Max-all.json | 2 +- ...Generic PLA High Speed @Ender-3V3-all.json | 2 +- ...eality Generic PLA High Speed @Hi-all.json | 2 +- ...eality Generic PLA High Speed @K1-all.json | 2 +- ...eality Generic PLA High Speed @K2-all.json | 2 +- ...lity Generic PLA Matte @Ender-3V3-all.json | 2 +- .../Creality Generic PLA Matte @Hi-all.json | 2 +- .../Creality Generic PLA Matte @K1-all.json | 2 +- .../Creality Generic PLA Matte @K2-all.json | 2 +- ...ality Generic PLA Silk @Ender-3V3-all.json | 2 +- .../Creality Generic PLA Silk @Hi-all.json | 2 +- .../Creality Generic PLA Silk @K1-all.json | 2 +- .../Creality Generic PLA Silk @K2-all.json | 2 +- .../Creality Generic PLA Wood @Hi-all.json | 2 +- .../filament/Creality Generic PLA-CF.json | 2 +- .../filament/Creality Generic PLA.json | 2 +- .../Creality Generic TPU @Ender-5Max-all.json | 2 +- .../filament/Creality Generic TPU.json | 2 +- .../filament/Creality HF Generic PLA.json | 2 +- .../Creality HF Generic Speed PLA.json | 2 +- .../Creality Hyper ABS @Ender-5Max-all.json | 2 +- .../Creality Hyper PLA @Ender-5Max-all.json | 2 +- ...Creality Hyper PLA-CF @Ender-5Max-all.json | 2 +- .../Creality Silk PLA @Ender-5Max-all.json | 2 +- .../filament/EN-PLA+ @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/EN-PLA+ @K1C-all.json | 2 +- .../filament/EN-PLA+ @K1C_CFS-C-all.json | 2 +- .../filament/EN-PLA+ @K1_CFS-C-all.json | 2 +- .../filament/EN-PLA+ @K2 Plus-all.json | 2 +- .../filament/EN-PLA+ @K2 Pro-all.json | 2 +- .../Creality/filament/EN-PLA+ @K2-all.json | 2 +- .../filament/EN-PLA+ @SPARKX i7-all.json | 2 +- .../filament/ENDER FAST PLA @Hi-all.json | 2 +- .../filament/ENDER FAST PLA @K2 Plus-all.json | 2 +- .../filament/ENDER FAST PLA @K2 Pro-all.json | 2 +- .../filament/ENDER FAST PLA @K2-all.json | 2 +- .../ENDER FAST PLA @SPARKX i7-all.json | 2 +- .../filament/Ender-PLA @Ender-3 V4-all.json | 2 +- .../Creality/filament/Ender-PLA @Hi-all.json | 2 +- .../filament/Ender-PLA @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/Ender-PLA @K1C-all.json | 2 +- .../filament/Ender-PLA @K1C_CFS-C-all.json | 2 +- .../filament/Ender-PLA @K1_CFS-C-all.json | 2 +- .../filament/Ender-PLA @K2 Plus-all.json | 2 +- .../filament/Ender-PLA @K2 Pro-all.json | 2 +- .../Creality/filament/Ender-PLA @K2-all.json | 2 +- .../filament/Ender-PLA @SPARKX i7-all.json | 2 +- .../filament/Generic ABS @Ender-3 V4-all.json | 2 +- .../filament/Generic ABS @Hi-all.json | 2 +- .../Generic ABS @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic ABS @K1 SE-all.json | 2 +- .../Generic ABS @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic ABS @K1C-all.json | 2 +- .../filament/Generic ABS @K1C_CFS-C-all.json | 2 +- .../filament/Generic ABS @K1_CFS-C-all.json | 2 +- .../filament/Generic ABS @K2 Plus-all.json | 2 +- .../filament/Generic ABS @K2 Pro-all.json | 2 +- .../filament/Generic ABS @K2 SE-all.json | 2 +- .../filament/Generic ABS @K2-all.json | 2 +- .../Generic ASA @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic ASA @K1 SE-all.json | 2 +- .../Generic ASA @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic ASA @K1C-all.json | 2 +- .../filament/Generic ASA @K1C_CFS-C-all.json | 2 +- .../filament/Generic ASA @K1_CFS-C-all.json | 2 +- .../filament/Generic ASA @K2 Plus-all.json | 2 +- .../filament/Generic ASA @K2 Pro-all.json | 2 +- .../filament/Generic ASA @K2 SE-all.json | 2 +- .../filament/Generic ASA @K2-all.json | 2 +- .../filament/Generic ASA-CF @K2 Plus-all.json | 2 +- .../filament/Generic BVOH @Hi-all.json | 2 +- .../Generic BVOH @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic BVOH @K1C-all.json | 2 +- .../filament/Generic BVOH @K1C_CFS-C-all.json | 2 +- .../filament/Generic BVOH @K1_CFS-C-all.json | 2 +- .../filament/Generic BVOH @K2 Plus-all.json | 2 +- .../filament/Generic BVOH @K2 Pro-all.json | 2 +- .../filament/Generic BVOH @K2-all.json | 2 +- .../Generic HIPS @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic HIPS @K1C-all.json | 2 +- .../filament/Generic HIPS @K1C_CFS-C-all.json | 2 +- .../filament/Generic HIPS @K1_CFS-C-all.json | 2 +- .../filament/Generic HIPS @K2 Plus-all.json | 2 +- .../Generic PA @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PA @K1C-all.json | 2 +- .../filament/Generic PA @K1C_CFS-C-all.json | 2 +- .../filament/Generic PA @K1_CFS-C-all.json | 2 +- .../filament/Generic PA @K2 Plus-all.json | 2 +- .../filament/Generic PA @K2 Pro-all.json | 2 +- .../Creality/filament/Generic PA @K2-all.json | 2 +- .../Generic PA-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PA-CF @K1C-all.json | 2 +- .../Generic PA-CF @K1C_CFS-C-all.json | 2 +- .../filament/Generic PA-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PA-CF @K2 Plus-all.json | 2 +- .../Generic PA12-CF @K2 Plus-all.json | 2 +- .../Generic PA6-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PA6-CF @K1C-all.json | 2 +- .../Generic PA6-CF @K1C_CFS-C-all.json | 2 +- .../Generic PA6-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PA6-CF @K2 Plus-all.json | 2 +- .../filament/Generic PA6-CF @K2 Pro-all.json | 2 +- .../filament/Generic PA6-GF @K2 Plus-all.json | 2 +- .../Generic PA612-CF @K2 Plus-all.json | 2 +- .../Generic PA612-CF @K2 Pro-all.json | 2 +- .../Generic PAHT-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PAHT-CF @K1C-all.json | 2 +- .../Generic PAHT-CF @K1C_CFS-C-all.json | 2 +- .../Generic PAHT-CF @K1_CFS-C-all.json | 2 +- .../Generic PAHT-CF @K2 Plus-all.json | 2 +- .../filament/Generic PAHT-CF @K2 Pro-all.json | 2 +- .../filament/Generic PAHT-CF @K2-all.json | 2 +- .../Generic PC @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PC @K1C-all.json | 2 +- .../filament/Generic PC @K1C_CFS-C-all.json | 2 +- .../filament/Generic PC @K1_CFS-C-all.json | 2 +- .../filament/Generic PC @K2 Plus-all.json | 2 +- .../filament/Generic PC @K2 Pro-all.json | 2 +- .../filament/Generic PCTG @K2 Plus-all.json | 2 +- .../Generic PET @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PET @K1C-all.json | 2 +- .../filament/Generic PET @K1C_CFS-C-all.json | 2 +- .../filament/Generic PET @K1_CFS-C-all.json | 2 +- .../filament/Generic PET @K2 Plus-all.json | 2 +- .../filament/Generic PET @K2 Pro-all.json | 2 +- .../filament/Generic PET @K2-all.json | 2 +- .../Generic PET-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PET-CF @K1C-all.json | 2 +- .../Generic PET-CF @K1C_CFS-C-all.json | 2 +- .../Generic PET-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PET-CF @K2 Plus-all.json | 2 +- .../filament/Generic PET-CF @K2 Pro-all.json | 2 +- .../Generic PETG @Ender-3 V4-all.json | 2 +- .../filament/Generic PETG @Hi-all.json | 2 +- .../Generic PETG @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PETG @K1 SE-all.json | 2 +- .../Generic PETG @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic PETG @K1C-all.json | 2 +- .../filament/Generic PETG @K1C_CFS-C-all.json | 2 +- .../filament/Generic PETG @K1_CFS-C-all.json | 2 +- .../filament/Generic PETG @K2 Plus-all.json | 2 +- .../filament/Generic PETG @K2 Pro-all.json | 2 +- .../filament/Generic PETG @K2 SE-all.json | 2 +- .../filament/Generic PETG @K2-all.json | 2 +- .../filament/Generic PETG @SPARKX i7-all.json | 2 +- .../Generic PETG-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PETG-CF @K1C-all.json | 2 +- .../Generic PETG-CF @K1C_CFS-C-all.json | 2 +- .../Generic PETG-CF @K1_CFS-C-all.json | 2 +- .../Generic PETG-CF @K2 Plus-all.json | 2 +- .../filament/Generic PETG-CF @K2 Pro-all.json | 2 +- .../filament/Generic PETG-CF @K2-all.json | 2 +- .../Generic PETG-CF @SPARKX i7-all.json | 2 +- .../Generic PETG-GF @K2 Plus-all.json | 2 +- .../filament/Generic PETG-GF @K2 Pro-all.json | 2 +- .../filament/Generic PETG-GF @K2-all.json | 2 +- .../filament/Generic PLA @Ender-3 V4-all.json | 2 +- .../filament/Generic PLA @Hi-all.json | 2 +- .../Generic PLA @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PLA @K1 SE-all.json | 2 +- .../Generic PLA @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic PLA @K1C-all.json | 2 +- .../filament/Generic PLA @K1C_CFS-C-all.json | 2 +- .../filament/Generic PLA @K1_CFS-C-all.json | 2 +- .../filament/Generic PLA @K2 Plus-all.json | 2 +- .../filament/Generic PLA @K2 Pro-all.json | 2 +- .../filament/Generic PLA @K2 SE-all.json | 2 +- .../filament/Generic PLA @K2-all.json | 2 +- .../filament/Generic PLA @SPARKX i7-all.json | 2 +- .../Generic PLA-CF @Ender-3 V4-all.json | 2 +- .../Generic PLA-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PLA-CF @K1 SE-all.json | 2 +- .../Generic PLA-CF @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic PLA-CF @K1C-all.json | 2 +- .../Generic PLA-CF @K1C_CFS-C-all.json | 2 +- .../Generic PLA-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PLA-CF @K2 Plus-all.json | 2 +- .../filament/Generic PLA-CF @K2 Pro-all.json | 2 +- .../filament/Generic PLA-CF @K2 SE-all.json | 2 +- .../filament/Generic PLA-CF @K2-all.json | 2 +- .../Generic PLA-CF @SPARKX i7-all.json | 2 +- .../Generic PLA-Silk @Ender-3 V4-all.json | 2 +- .../filament/Generic PLA-Silk @Hi-all.json | 2 +- .../Generic PLA-Silk @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PLA-Silk @K1 SE-all.json | 2 +- .../Generic PLA-Silk @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic PLA-Silk @K1C-all.json | 2 +- .../Generic PLA-Silk @K1C_CFS-C-all.json | 2 +- .../Generic PLA-Silk @K1_CFS-C-all.json | 2 +- .../Generic PLA-Silk @K2 Plus-all.json | 2 +- .../Generic PLA-Silk @K2 Pro-all.json | 2 +- .../filament/Generic PLA-Silk @K2 SE-all.json | 2 +- .../filament/Generic PLA-Silk @K2-all.json | 2 +- .../Generic PLA-Silk @SPARKX i7-all.json | 2 +- .../Generic PP @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PP @K1C-all.json | 2 +- .../filament/Generic PP @K1C_CFS-C-all.json | 2 +- .../filament/Generic PP @K1_CFS-C-all.json | 2 +- .../filament/Generic PP @K2 Plus-all.json | 2 +- .../filament/Generic PP @K2 Pro-all.json | 2 +- .../Creality/filament/Generic PP @K2-all.json | 2 +- .../filament/Generic PP-CF @K2 Plus-all.json | 2 +- .../Generic PPS @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PPS @K1C-all.json | 2 +- .../filament/Generic PPS @K1C_CFS-C-all.json | 2 +- .../filament/Generic PPS @K1_CFS-C-all.json | 2 +- .../filament/Generic PPS @K2 Plus-all.json | 2 +- .../Generic PPS-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PPS-CF @K1C-all.json | 2 +- .../Generic PPS-CF @K1C_CFS-C-all.json | 2 +- .../Generic PPS-CF @K1_CFS-C-all.json | 2 +- .../filament/Generic PPS-CF @K2 Plus-all.json | 2 +- .../filament/Generic PVA @Hi-all.json | 2 +- .../Generic PVA @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic PVA @K1C-all.json | 2 +- .../filament/Generic PVA @K1C_CFS-C-all.json | 2 +- .../filament/Generic PVA @K1_CFS-C-all.json | 2 +- .../filament/Generic PVA @K2 Plus-all.json | 2 +- .../filament/Generic PVA @K2 Pro-all.json | 2 +- .../filament/Generic PVA @K2-all.json | 2 +- .../Generic Support for PA @K2 Plus-all.json | 2 +- .../Generic Support for PLA @K2 Plus-all.json | 2 +- .../Generic TPU 64D @K2 Plus-all.json | 2 +- .../Generic TPU 64D @SPARKX i7-all.json | 2 +- .../filament/Generic TPU @Ender-3 V4-all.json | 2 +- .../Generic TPU @K1 Max_CFS-C-all.json | 2 +- .../filament/Generic TPU @K1 SE-all.json | 2 +- .../Generic TPU @K1 SE_CFS-C-all.json | 2 +- .../filament/Generic TPU @K1C-all.json | 2 +- .../filament/Generic TPU @K1C_CFS-C-all.json | 2 +- .../filament/Generic TPU @K1_CFS-C-all.json | 2 +- .../filament/Generic TPU @K2 Plus-all.json | 2 +- .../filament/Generic TPU @K2 Pro-all.json | 2 +- .../filament/Generic TPU @K2 SE-all.json | 2 +- .../filament/Generic TPU @K2-all.json | 2 +- .../filament/Generic TPU @SPARKX i7-all.json | 2 +- .../HP Ultra PLA @K1 Max_CFS-C-all.json | 2 +- .../filament/HP Ultra PLA @K1C-all.json | 2 +- .../filament/HP Ultra PLA @K1C_CFS-C-all.json | 2 +- .../filament/HP Ultra PLA @K1_CFS-C-all.json | 2 +- .../filament/HP Ultra PLA @K2 Plus-all.json | 2 +- .../filament/HP-ASA @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/HP-ASA @K1C-all.json | 2 +- .../filament/HP-ASA @K1C_CFS-C-all.json | 2 +- .../filament/HP-ASA @K1_CFS-C-all.json | 2 +- .../filament/HP-ASA @K2 Plus-all.json | 2 +- .../Creality/filament/HP-ASA @K2 Pro-all.json | 2 +- .../Creality/filament/HP-ASA @K2 SE-all.json | 2 +- .../Creality/filament/HP-ASA @K2-all.json | 2 +- .../filament/HP-TPU @Ender-3 V4-all.json | 2 +- .../Creality/filament/HP-TPU @Hi-all.json | 2 +- .../filament/HP-TPU @K1 Max_CFS-C-all.json | 2 +- .../Creality/filament/HP-TPU @K1 SE-all.json | 2 +- .../filament/HP-TPU @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/HP-TPU @K1C-all.json | 2 +- .../filament/HP-TPU @K1C_CFS-C-all.json | 2 +- .../filament/HP-TPU @K1_CFS-C-all.json | 2 +- .../filament/HP-TPU @K2 Plus-all.json | 2 +- .../Creality/filament/HP-TPU @K2 Pro-all.json | 2 +- .../Creality/filament/HP-TPU @K2 SE-all.json | 2 +- .../Creality/filament/HP-TPU @K2-all.json | 2 +- .../filament/HP-TPU @SPARKX i7-all.json | 2 +- .../filament/Hyper ABS @Ender-3 V4-all.json | 2 +- .../Creality/filament/Hyper ABS @Hi-all.json | 2 +- .../filament/Hyper ABS @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper ABS @K1 SE-all.json | 2 +- .../filament/Hyper ABS @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/Hyper ABS @K1C-all.json | 2 +- .../filament/Hyper ABS @K1C_CFS-C-all.json | 2 +- .../filament/Hyper ABS @K1_CFS-C-all.json | 2 +- .../filament/Hyper ABS @K2 Plus-all.json | 2 +- .../filament/Hyper ABS @K2 Pro-all.json | 2 +- .../filament/Hyper ABS @K2 SE-all.json | 2 +- .../Creality/filament/Hyper ABS @K2-all.json | 2 +- .../filament/Hyper L-W PLA @Hi-all.json | 2 +- .../Hyper L-W PLA @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper L-W PLA @K1 SE-all.json | 2 +- .../Hyper L-W PLA @K1 SE_CFS-C-all.json | 2 +- .../filament/Hyper L-W PLA @K1C-all.json | 2 +- .../Hyper L-W PLA @K1C_CFS-C-all.json | 2 +- .../filament/Hyper L-W PLA @K1_CFS-C-all.json | 2 +- .../filament/Hyper L-W PLA @K2 Plus-all.json | 2 +- .../filament/Hyper L-W PLA @K2 Pro-all.json | 2 +- .../filament/Hyper L-W PLA @K2-all.json | 2 +- .../filament/Hyper Luminous @Hi-all.json | 2 +- .../filament/Hyper Luminous @K1C-all.json | 2 +- .../filament/Hyper Luminous @K2 Plus-all.json | 2 +- .../filament/Hyper Luminous @K2 Pro-all.json | 2 +- .../filament/Hyper Luminous @K2-all.json | 2 +- .../Hyper Luminous @SPARKX i7-all.json | 2 +- .../filament/Hyper Marble @Hi-all.json | 2 +- .../Hyper Marble @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper Marble @K1C-all.json | 2 +- .../filament/Hyper Marble @K1C_CFS-C-all.json | 2 +- .../filament/Hyper Marble @K1_CFS-C-all.json | 2 +- .../filament/Hyper Marble @K2 Plus-all.json | 2 +- .../filament/Hyper Marble @K2 Pro-all.json | 2 +- .../filament/Hyper Marble @K2 SE-all.json | 2 +- .../filament/Hyper Marble @K2-all.json | 2 +- .../filament/Hyper Marble @SPARKX i7-all.json | 2 +- .../filament/Hyper PA6-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PA6-CF @K2 Pro-all.json | 2 +- .../filament/Hyper PA612-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PA612-CF @K2 Pro-all.json | 2 +- .../Hyper PAHT-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper PAHT-CF @K1C-all.json | 2 +- .../Hyper PAHT-CF @K1C_CFS-C-all.json | 2 +- .../filament/Hyper PAHT-CF @K1_CFS-C-all.json | 2 +- .../filament/Hyper PAHT-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PAHT-CF @K2 Pro-all.json | 2 +- .../filament/Hyper PAHT-CF @K2-all.json | 2 +- .../filament/Hyper PC @K2 Plus-all.json | 2 +- .../filament/Hyper PC @K2 Pro-all.json | 2 +- .../filament/Hyper PETG @Ender-3 V4-all.json | 2 +- .../Creality/filament/Hyper PETG @Hi-all.json | 2 +- .../Hyper PETG @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper PETG @K1 SE-all.json | 2 +- .../filament/Hyper PETG @K1 SE_CFS-C-all.json | 2 +- .../filament/Hyper PETG @K1C-all.json | 2 +- .../filament/Hyper PETG @K1C_CFS-C-all.json | 2 +- .../filament/Hyper PETG @K1_CFS-C-all.json | 2 +- .../filament/Hyper PETG @K2 Plus-all.json | 2 +- .../filament/Hyper PETG @K2 Pro-all.json | 2 +- .../filament/Hyper PETG @K2 SE-all.json | 2 +- .../Creality/filament/Hyper PETG @K2-all.json | 2 +- .../filament/Hyper PETG @SPARKX i7-all.json | 2 +- .../Hyper PETG-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper PETG-CF @K1C-all.json | 2 +- .../Hyper PETG-CF @K1C_CFS-C-all.json | 2 +- .../filament/Hyper PETG-CF @K1_CFS-C-all.json | 2 +- .../filament/Hyper PETG-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PETG-CF @K2 Pro-all.json | 2 +- .../filament/Hyper PETG-CF @K2-all.json | 2 +- .../Hyper PETG-CF @SPARKX i7-all.json | 2 +- .../filament/Hyper PETG-GF @K1C-all.json | 2 +- .../filament/Hyper PETG-GF @K2 Plus-all.json | 2 +- .../filament/Hyper PETG-GF @K2 Pro-all.json | 2 +- .../filament/Hyper PETG-GF @K2-all.json | 2 +- .../filament/Hyper PLA @Ender-3 V4-all.json | 2 +- .../Creality/filament/Hyper PLA @Hi-all.json | 2 +- .../filament/Hyper PLA @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper PLA @K1 SE-all.json | 2 +- .../filament/Hyper PLA @K1 SE_CFS-C-all.json | 2 +- .../Creality/filament/Hyper PLA @K1C-all.json | 2 +- .../filament/Hyper PLA @K1C_CFS-C-all.json | 2 +- .../filament/Hyper PLA @K1_CFS-C-all.json | 2 +- .../filament/Hyper PLA @K2 Plus-all.json | 2 +- .../filament/Hyper PLA @K2 Pro-all.json | 2 +- .../filament/Hyper PLA @K2 SE-all.json | 2 +- .../Creality/filament/Hyper PLA @K2-all.json | 2 +- .../filament/Hyper PLA @SPARKX i7-all.json | 2 +- .../Hyper PLA-CF @Ender-3 V4-all.json | 2 +- .../filament/Hyper PLA-CF @Hi-all.json | 2 +- .../Hyper PLA-CF @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper PLA-CF @K1 SE-all.json | 2 +- .../Hyper PLA-CF @K1 SE_CFS-C-all.json | 2 +- .../filament/Hyper PLA-CF @K1C-all.json | 2 +- .../filament/Hyper PLA-CF @K1C_CFS-C-all.json | 2 +- .../filament/Hyper PLA-CF @K1_CFS-C-all.json | 2 +- .../filament/Hyper PLA-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PLA-CF @K2 Pro-all.json | 2 +- .../filament/Hyper PLA-CF @K2 SE-all.json | 2 +- .../filament/Hyper PLA-CF @K2-all.json | 2 +- .../filament/Hyper PLA-CF @SPARKX i7-all.json | 2 +- .../filament/Hyper PPA-CF @K2 Plus-all.json | 2 +- .../filament/Hyper PPA-CF @K2 Pro-all.json | 2 +- .../filament/Hyper Stardust @Hi-all.json | 2 +- .../Hyper Stardust @K1 Max_CFS-C-all.json | 2 +- .../filament/Hyper Stardust @K1C-all.json | 2 +- .../Hyper Stardust @K1C_CFS-C-all.json | 2 +- .../Hyper Stardust @K1_CFS-C-all.json | 2 +- .../filament/Hyper Stardust @K2 Plus-all.json | 2 +- .../filament/Hyper Stardust @K2 Pro-all.json | 2 +- .../filament/Hyper Stardust @K2 SE-all.json | 2 +- .../filament/Hyper Stardust @K2-all.json | 2 +- .../Hyper Stardust @SPARKX i7-all.json | 2 +- .../Panchroma PLA Matte @K2 Plus-all.json | 2 +- .../Panchroma PLA Satin @K2 Plus-all.json | 2 +- .../filament/PolySonic PLA @K2 Plus-all.json | 2 +- .../PolySonic PLA Pro @K2 Plus-all.json | 2 +- .../filament/Soleyin Basic PETG @Hi-all.json | 2 +- .../filament/Soleyin Basic PETG @K1C-all.json | 2 +- .../Soleyin Basic PETG @K2 Plus-all.json | 2 +- .../Soleyin Basic PETG @K2 Pro-all.json | 2 +- .../filament/Soleyin Basic PETG @K2-all.json | 2 +- .../Soleyin Basic PETG @SPARKX i7-all.json | 2 +- .../Soleyin Ultra PLA @Ender-3 V4-all.json | 2 +- .../filament/Soleyin Ultra PLA @Hi-all.json | 2 +- .../Soleyin Ultra PLA @K1 Max_CFS-C-all.json | 2 +- .../filament/Soleyin Ultra PLA @K1C-all.json | 2 +- .../Soleyin Ultra PLA @K1C_CFS-C-all.json | 2 +- .../Soleyin Ultra PLA @K1_CFS-C-all.json | 2 +- .../Soleyin Ultra PLA @K2 Plus-all.json | 2 +- .../Soleyin Ultra PLA @K2 Pro-all.json | 2 +- .../Soleyin Ultra PLA @K2 SE-all.json | 2 +- .../filament/Soleyin Ultra PLA @K2-all.json | 2 +- .../Soleyin Ultra PLA @SPARKX i7-all.json | 2 +- .../filament/eSUN ABS+ @K2 Plus-all.json | 2 +- .../filament/eSUN ASA+ @K2 Plus-all.json | 2 +- .../filament/eSUN PET-Basic @K2 Plus-all.json | 2 +- .../filament/eSUN PETG @K2 Plus-all.json | 2 +- .../filament/eSUN PETG+HS @K2 Plus-all.json | 2 +- .../eSUN PETG-Basic @K2 Plus-all.json | 2 +- .../filament/eSUN PLA+ @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-CF @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-HS @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-LW @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-Lite @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-Matte @K2 Plus-all.json | 2 +- .../filament/eSUN PLA-Silk @K2 Plus-all.json | 2 +- ...icon ABS @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...n ABS @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...n ABS @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon ABS @base.json | 2 +- ...ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...-A100 @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...-A100 @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../filament/Cubicon ABS-A100 @base.json | 2 +- ...con ABSk @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ... ABSk @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ... ABSk @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon ABSk @base.json | 2 +- ...on PA-CF @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon PA-CF @base.json | 2 +- ...bicon PC @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...on PC @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...on PC @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon PC @base.json | 2 +- ...con PETG @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ... PETG @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ... PETG @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon PETG @base.json | 2 +- ...icon PLA @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...n PLA @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...n PLA @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon PLA @base.json | 2 +- ...con PLA+ @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ... PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ... PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/filament/Cubicon PLA+ @base.json | 2 +- ...n PLAi21 @Cubicon xCeler-I 0.4 nozzle.json | 2 +- ...LAi21 @Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- ...LAi21 @Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../filament/Cubicon PLAi21 @base.json | 2 +- .../Cubicon/filament/fdm_filament_pa.json | 1 - .../Cubicon/filament/fdm_filament_pc.json | 1 - .../Cubicon/filament/fdm_filament_pet.json | 1 - .../filament/Generic PC @MyToolChanger.json | 1 - .../filament/Generic PETG @MyToolChanger.json | 1 - .../filament/Generic PLA @MyToolChanger.json | 1 - .../Generic PLA-CF @MyToolChanger.json | 1 - .../filament/Generic PVA @MyToolChanger.json | 1 - .../filament/Generic TPU @MyToolChanger.json | 1 - .../filament/DeltaMaker Brand PLA.json | 2 +- .../filament/DeltaMaker Generic PETG.json | 2 +- .../filament/DeltaMaker Generic PLA.json | 2 +- .../filament/DeltaMaker Generic TPU.json | 2 +- .../Dremel Generic PLA @3D20 all.json | 2 +- .../Dremel Generic PLA @3D40 all.json | 2 +- .../Dremel Generic PLA @3D45 all.json | 2 +- .../Dremel/filament/Dremel Generic PLA.json | 2 +- .../filament/BASE/Elegoo ABS @base.json | 2 +- .../filament/BASE/Elegoo ASA @base.json | 2 +- .../filament/BASE/Elegoo ASA-CF @base.json | 2 +- .../filament/BASE/Elegoo PAHT @base.json | 2 +- .../Elegoo/filament/BASE/Elegoo PC @base.json | 2 +- .../filament/BASE/Elegoo PC-FR @base.json | 2 +- .../filament/BASE/Elegoo PET-CF @base.json | 2 +- .../filament/BASE/Elegoo PETG @base.json | 2 +- .../filament/BASE/Elegoo PETG HF @base.json | 2 +- .../filament/BASE/Elegoo PETG PRO @base.json | 2 +- .../BASE/Elegoo PETG Translucent @base.json | 2 +- .../filament/BASE/Elegoo PETG-CF @base.json | 2 +- .../filament/BASE/Elegoo PETG-GF @base.json | 2 +- .../filament/BASE/Elegoo PLA @base.json | 2 +- .../filament/BASE/Elegoo PLA Basic @base.json | 2 +- .../BASE/Elegoo PLA Galaxy @base.json | 2 +- .../filament/BASE/Elegoo PLA Glow @base.json | 2 +- .../BASE/Elegoo PLA Marble @base.json | 2 +- .../filament/BASE/Elegoo PLA Matte @base.json | 2 +- .../filament/BASE/Elegoo PLA PRO @base.json | 2 +- .../filament/BASE/Elegoo PLA Silk @base.json | 2 +- .../BASE/Elegoo PLA Sparkle @base.json | 2 +- .../BASE/Elegoo PLA Translucent2 @base.json | 2 +- .../filament/BASE/Elegoo PLA Wood @base.json | 2 +- .../filament/BASE/Elegoo PLA+ @base.json | 2 +- .../filament/BASE/Elegoo PLA-CF @base.json | 2 +- .../BASE/Elegoo Rapid PETG @base.json | 2 +- .../BASE/Elegoo Rapid PLA+ @base.json | 2 +- .../BASE/Elegoo Rapid TPU 95A @base.json | 2 +- .../filament/BASE/Elegoo TPU @base.json | 2 +- .../filament/BASE/Generic ABS @base.json | 2 +- .../filament/BASE/Generic ASA @base.json | 2 +- .../filament/BASE/Generic PA @base.json | 2 +- .../filament/BASE/Generic PC @base.json | 2 +- .../filament/BASE/Generic PET @base.json | 2 +- .../filament/BASE/Generic PETG @base.json | 2 +- .../filament/BASE/Generic PLA @base.json | 2 +- .../Generic ABS-CF @Elegoo Centauri.json | 2 +- .../Generic ASA-CF @Elegoo Centauri.json | 1 + .../Generic/Generic PA6-CF @Elegoo.json | 2 +- .../Generic/Generic PC-CF @Elegoo.json | 2 +- .../Generic PET-CF @Elegoo Centauri.json | 2 +- .../Generic/Generic PETG PRO @Elegoo.json | 2 +- .../Generic PETG-CF @Elegoo Centauri.json | 1 + .../Generic/Generic PLA Matte @Elegoo.json | 2 +- .../Eryone/filament/Eryone ABS-CF.json | 2 +- .../profiles/Eryone/filament/Eryone ABS.json | 2 +- .../Eryone/filament/Eryone ASA-CF.json | 2 +- .../profiles/Eryone/filament/Eryone ASA.json | 2 +- .../Eryone/filament/Eryone PA-CF.json | 2 +- .../Eryone/filament/Eryone PA-GF.json | 2 +- .../profiles/Eryone/filament/Eryone PA.json | 2 +- .../Eryone/filament/Eryone PETG-CF.json | 2 +- .../profiles/Eryone/filament/Eryone PETG.json | 2 +- .../Eryone/filament/Eryone PLA-CF.json | 2 +- .../profiles/Eryone/filament/Eryone PLA.json | 2 +- .../Eryone/filament/Eryone PP-CF.json | 2 +- .../profiles/Eryone/filament/Eryone PP.json | 2 +- .../Eryone/filament/Eryone Silk PLA.json | 2 +- .../profiles/Eryone/filament/Eryone TPU.json | 2 +- .../FLSun/filament/FLSun Generic ABS.json | 2 +- .../FLSun/filament/FLSun Generic ASA.json | 2 +- .../FLSun/filament/FLSun Generic PA-CF.json | 2 +- .../FLSun/filament/FLSun Generic PA.json | 2 +- .../FLSun/filament/FLSun Generic PC.json | 2 +- .../FLSun/filament/FLSun Generic PETG.json | 2 +- .../FLSun/filament/FLSun Generic PLA-CF.json | 2 +- .../FLSun/filament/FLSun Generic PLA.json | 2 +- .../FLSun/filament/FLSun Generic PVA.json | 2 +- .../FLSun/filament/FLSun Generic TPU.json | 2 +- .../profiles/FLSun/filament/FLSun S1 ABS.json | 2 +- .../profiles/FLSun/filament/FLSun S1 ASA.json | 2 +- .../FLSun/filament/FLSun S1 PETG.json | 2 +- .../FLSun/filament/FLSun S1 PLA Generic.json | 2 +- .../filament/FLSun S1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun S1 PLA Silk.json | 2 +- .../profiles/FLSun/filament/FLSun S1 TPU.json | 2 +- .../profiles/FLSun/filament/FLSun T1 ABS.json | 2 +- .../profiles/FLSun/filament/FLSun T1 ASA.json | 2 +- .../FLSun/filament/FLSun T1 PETG.json | 2 +- .../FLSun/filament/FLSun T1 PLA Generic.json | 2 +- .../filament/FLSun T1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun T1 PLA Silk.json | 2 +- .../profiles/FLSun/filament/FLSun T1 TPU.json | 2 +- .../FlashForge PC @FF G4 0.6 HF nozzle.json | 2 +- .../FlashForge PC @FF G4 0.6 nozzle.json | 2 +- .../FlashForge PC @FF G4 0.8 HF nozzle.json | 2 +- .../FlashForge PC @FF G4P 0.6 HF nozzle.json | 2 +- .../FlashForge PC @FF G4P 0.6 nozzle.json | 2 +- .../FlashForge PC @FF G4P 0.8 HF nozzle.json | 2 +- .../FlashForge PPS @FF G4 0.6 HF nozzle.json | 2 +- .../FlashForge PPS @FF G4 0.6 nozzle.json | 2 +- .../FlashForge PPS @FF G4 0.8 HF nozzle.json | 2 +- .../FlashForge PPS @FF G4P 0.6 HF nozzle.json | 2 +- .../FlashForge PPS @FF G4P 0.6 nozzle.json | 2 +- .../FlashForge PPS @FF G4P 0.8 HF nozzle.json | 2 +- .../FlashForge PPS-CF @FF G4 0.6 nozzle.json | 2 +- .../FlashForge PPS-CF @FF G4P 0.6 nozzle.json | 2 +- .../Flashforge ABS @FF AD5M 0.25 Nozzle.json | 2 +- ...hforge ABS Basic @FF AD5M 0.25 nozzle.json | 2 +- ...hforge ABS Basic @FF AD5X 0.25 nozzle.json | 2 +- ...shforge ABS Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge ABS Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge ABS Basic @FF AD5X.json | 2 +- .../filament/Flashforge ABS Basic @FF C5.json | 2 +- .../Flashforge ABS Basic @FF C5P.json | 2 +- ...ashforge ABS Basic @FF G4 0.25 nozzle.json | 2 +- ...hforge ABS Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge ABS Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge ABS Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge ABS Basic @FF G4 HF.json | 2 +- .../filament/Flashforge ABS Basic @FF G4.json | 2 +- ...shforge ABS Basic @FF G4P 0.25 nozzle.json | 2 +- ...forge ABS Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge ABS Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge ABS Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge ABS Basic @FF G4P HF.json | 2 +- .../Flashforge ABS Basic @FF G4P.json | 2 +- .../filament/Flashforge ABS Basic.json | 2 +- .../Flashforge ABS-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge ABS-CF @FF G4.json | 2 +- .../Flashforge ABS-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge ABS-CF @FF G4P.json | 2 +- .../filament/Flashforge ABS-GF @FF C5.json | 2 +- .../filament/Flashforge ABS-GF @FF C5P.json | 2 +- .../Flashforge ASA @FF AD5M 0.25 Nozzle.json | 2 +- ...hforge ASA Basic @FF AD5M 0.25 nozzle.json | 2 +- ...hforge ASA Basic @FF AD5X 0.25 nozzle.json | 2 +- ...shforge ASA Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge ASA Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge ASA Basic @FF AD5X.json | 2 +- .../filament/Flashforge ASA Basic @FF C5.json | 2 +- .../Flashforge ASA Basic @FF C5P.json | 2 +- ...ashforge ASA Basic @FF G4 0.25 nozzle.json | 2 +- ...hforge ASA Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge ASA Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge ASA Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge ASA Basic @FF G4 HF.json | 2 +- .../filament/Flashforge ASA Basic @FF G4.json | 2 +- ...shforge ASA Basic @FF G4P 0.25 nozzle.json | 2 +- ...forge ASA Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge ASA Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge ASA Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge ASA Basic @FF G4P HF.json | 2 +- .../Flashforge ASA Basic @FF G4P.json | 2 +- .../filament/Flashforge ASA Basic.json | 2 +- .../filament/Flashforge ASA-CF @FF C5.json | 2 +- .../filament/Flashforge ASA-CF @FF C5P.json | 2 +- .../filament/Flashforge ASA-CF @FF G4.json | 2 +- .../filament/Flashforge ASA-CF @FF G4P.json | 2 +- .../filament/Flashforge ASA-CF.json | 2 +- .../filament/Flashforge ASA-GF @FF C5.json | 2 +- .../filament/Flashforge ASA-GF @FF C5P.json | 2 +- ...orge Generic ABS @FF AD5M 0.25 Nozzle.json | 2 +- ...lashforge Generic ABS @G3U 0.6 Nozzle.json | 2 +- .../filament/Flashforge Generic ABS @G3U.json | 2 +- .../filament/Flashforge Generic ABS.json | 2 +- ...orge Generic ASA @FF AD5M 0.25 Nozzle.json | 2 +- ...lashforge Generic ASA @G3U 0.6 Nozzle.json | 2 +- .../filament/Flashforge Generic ASA @G3U.json | 2 +- .../filament/Flashforge Generic ASA.json | 2 +- ...ashforge Generic HIPS @G3U 0.6 Nozzle.json | 2 +- .../filament/Flashforge Generic HIPS.json | 2 +- ...e Generic HS PLA @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge Generic HS PLA.json | 2 +- ...rge Generic PETG @FF AD5M 0.25 Nozzle.json | 2 +- ...orge Generic PETG @Flashforge Artemis.json | 2 +- ...ashforge Generic PETG @G3U 0.6 Nozzle.json | 2 +- ...ashforge Generic PETG @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PETG @G3U.json | 2 +- ...forge Generic PETG-CF @G3U 0.6 Nozzle.json | 2 +- ...forge Generic PETG-CF @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PETG-CF @G3U.json | 2 +- .../Flashforge Generic PETG-CF10.json | 2 +- .../filament/Flashforge Generic PETG.json | 2 +- .../filament/Flashforge Generic PLA @G3U.json | 2 +- ...hforge Generic PLA-CF @G3U 0.6 Nozzle.json | 2 +- ...hforge Generic PLA-CF @G3U 0.8 Nozzle.json | 2 +- .../Flashforge Generic PLA-CF @G3U.json | 2 +- .../filament/Flashforge Generic PLA-CF10.json | 2 +- ...Generic PLA-SILK @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge Generic PLA-Silk.json | 2 +- .../filament/Flashforge Generic PLA.json | 2 +- .../filament/Flashforge Generic PVA.json | 2 +- .../filament/Flashforge Generic TPU.json | 2 +- .../filament/Flashforge HIPS @FF C5.json | 2 +- .../filament/Flashforge HIPS @FF C5P.json | 2 +- .../Flashforge HIPS @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HIPS @FF G4 0.6 nozzle.json | 2 +- .../Flashforge HIPS @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HIPS @FF G4 HF.json | 2 +- .../filament/Flashforge HIPS @FF G4.json | 2 +- ...Flashforge HIPS @FF G4P 0.6 HF nozzle.json | 2 +- .../Flashforge HIPS @FF G4P 0.6 nozzle.json | 2 +- ...Flashforge HIPS @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HIPS @FF G4P HF.json | 2 +- .../filament/Flashforge HIPS @FF G4P.json | 2 +- ...ashforge HS PETG @FF AD5M 0.25 nozzle.json | 2 +- ...ashforge HS PETG @FF AD5X 0.25 nozzle.json | 2 +- ...lashforge HS PETG @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge HS PETG @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge HS PETG @FF AD5X.json | 2 +- .../filament/Flashforge HS PETG @FF C5.json | 2 +- .../filament/Flashforge HS PETG @FF C5P.json | 2 +- ...Flashforge HS PETG @FF G4 0.25 nozzle.json | 2 +- ...ashforge HS PETG @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4 0.6 nozzle.json | 2 +- ...ashforge HS PETG @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4 HF.json | 2 +- .../filament/Flashforge HS PETG @FF G4.json | 2 +- ...lashforge HS PETG @FF G4P 0.25 nozzle.json | 2 +- ...shforge HS PETG @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge HS PETG @FF G4P 0.6 nozzle.json | 2 +- ...shforge HS PETG @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4P HF.json | 2 +- .../filament/Flashforge HS PETG @FF G4P.json | 2 +- .../filament/Flashforge HS PETG.json | 2 +- ...lashforge HS PLA @FF AD5M 0.25 Nozzle.json | 2 +- ...lashforge HS PLA @FF AD5X 0.25 nozzle.json | 2 +- ...Flashforge HS PLA @FF AD5X 0.6 nozzle.json | 2 +- ...Flashforge HS PLA @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge HS PLA @FF AD5X.json | 2 +- .../filament/Flashforge HS PLA @FF C5.json | 2 +- .../filament/Flashforge HS PLA @FF C5P.json | 2 +- .../Flashforge HS PLA @FF G4 0.25 nozzle.json | 2 +- ...lashforge HS PLA @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4 0.6 nozzle.json | 2 +- ...lashforge HS PLA @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HS PLA @FF G4 HF.json | 2 +- .../filament/Flashforge HS PLA @FF G4.json | 2 +- ...Flashforge HS PLA @FF G4P 0.25 nozzle.json | 2 +- ...ashforge HS PLA @FF G4P 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4P 0.6 nozzle.json | 2 +- ...ashforge HS PLA @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4P HF.json | 2 +- .../filament/Flashforge HS PLA @FF G4P.json | 2 +- ... HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA Burnt Ti @FF G4 HF.json | 2 +- ...HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge HS PLA Burnt Ti @FF G4P HF.json | 2 +- ...orge HS PLA Burnt Ti@FF G4 0.6 nozzle.json | 2 +- ...e HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json | 2 +- ...rge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json | 2 +- ... HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HS PLA.json | 2 +- .../Flashforge PA @FF G4 0.6 HF nozzle.json | 2 +- .../filament/Flashforge PA @FF G4 HF.json | 2 +- .../filament/Flashforge PA @FF G4.json | 2 +- .../Flashforge PA @FF G4P 0.6 HF nozzle.json | 2 +- .../filament/Flashforge PA @FF G4P HF.json | 2 +- .../filament/Flashforge PA @FF G4P.json | 2 +- .../filament/Flashforge PA-CF @FF C5.json | 2 +- .../filament/Flashforge PA-CF @FF C5P.json | 2 +- .../filament/Flashforge PA-CF @FF G4.json | 2 +- .../filament/Flashforge PA-CF @FF G4P.json | 2 +- .../filament/Flashforge PA12-CF.json | 2 +- .../filament/Flashforge PA6-CF.json | 2 +- .../filament/Flashforge PA66-CF.json | 2 +- .../filament/Flashforge PAHT-CF @FF C5.json | 2 +- .../filament/Flashforge PAHT-CF @FF C5P.json | 2 +- .../filament/Flashforge PAHT-CF @FF G4.json | 2 +- .../filament/Flashforge PAHT-CF @FF G4P.json | 2 +- .../filament/Flashforge PET-CF @FF C5.json | 2 +- .../filament/Flashforge PET-CF @FF C5P.json | 2 +- .../filament/Flashforge PET-CF.json | 2 +- .../Flashforge PETG @FF AD5M 0.25 Nozzle.json | 2 +- ...forge PETG Basic @FF AD5M 0.25 nozzle.json | 2 +- .../filament/Flashforge PETG Basic.json | 2 +- ...shforge PETG Pro @FF AD5M 0.25 nozzle.json | 2 +- ...shforge PETG Pro @FF AD5X 0.25 nozzle.json | 2 +- ...ashforge PETG Pro @FF AD5X 0.6 nozzle.json | 2 +- ...ashforge PETG Pro @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PETG Pro @FF AD5X.json | 2 +- .../filament/Flashforge PETG Pro @FF C5.json | 2 +- .../filament/Flashforge PETG Pro @FF C5P.json | 2 +- ...lashforge PETG Pro @FF G4 0.25 nozzle.json | 2 +- ...shforge PETG Pro @FF G4 0.6 HF nozzle.json | 2 +- ...Flashforge PETG Pro @FF G4 0.6 nozzle.json | 2 +- ...shforge PETG Pro @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PETG Pro @FF G4 HF.json | 2 +- .../filament/Flashforge PETG Pro @FF G4.json | 2 +- ...ashforge PETG Pro @FF G4P 0.25 nozzle.json | 2 +- ...hforge PETG Pro @FF G4P 0.6 HF nozzle.json | 2 +- ...lashforge PETG Pro @FF G4P 0.6 nozzle.json | 2 +- ...hforge PETG Pro @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PETG Pro @FF G4P HF.json | 2 +- .../filament/Flashforge PETG Pro @FF G4P.json | 2 +- .../filament/Flashforge PETG Pro.json | 2 +- ...PETG Transparent @FF AD5M 0.25 nozzle.json | 2 +- ...PETG Transparent @FF AD5X 0.25 nozzle.json | 2 +- ... PETG Transparent @FF AD5X 0.6 nozzle.json | 2 +- ... PETG Transparent @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PETG Transparent @FF AD5X.json | 2 +- .../Flashforge PETG Transparent @FF C5.json | 2 +- .../Flashforge PETG Transparent @FF C5P.json | 2 +- ...e PETG Transparent @FF G4 0.25 nozzle.json | 2 +- ...PETG Transparent @FF G4 0.6 HF nozzle.json | 2 +- ...ge PETG Transparent @FF G4 0.6 nozzle.json | 2 +- ...PETG Transparent @FF G4 0.8 HF nozzle.json | 2 +- ...Flashforge PETG Transparent @FF G4 HF.json | 2 +- .../Flashforge PETG Transparent @FF G4.json | 2 +- ... PETG Transparent @FF G4P 0.25 nozzle.json | 2 +- ...ETG Transparent @FF G4P 0.6 HF nozzle.json | 2 +- ...e PETG Transparent @FF G4P 0.6 nozzle.json | 2 +- ...ETG Transparent @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge PETG Transparent @FF G4P HF.json | 2 +- .../Flashforge PETG Transparent @FF G4P.json | 2 +- .../filament/Flashforge PETG Transparent.json | 2 +- ...lashforge PETG-CF @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge PETG-CF @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF AD5X.json | 2 +- .../filament/Flashforge PETG-CF @FF C5.json | 2 +- .../filament/Flashforge PETG-CF @FF C5P.json | 2 +- .../Flashforge PETG-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF G4.json | 2 +- ...Flashforge PETG-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF G4P.json | 2 +- .../filament/Flashforge PETG-CF.json | 2 +- .../Flashforge PLA Matte @FF C5.json | 2 +- .../Flashforge PLA Matte @FF C5P.json | 2 +- .../Flashforge PLA Metal @FF C5.json | 2 +- .../Flashforge PLA Metal @FF C5P.json | 2 +- .../filament/Flashforge PLA Pro @FF C5.json | 2 +- .../filament/Flashforge PLA Pro @FF C5P.json | 2 +- ...hforge PLA Basic @FF AD5M 0.25 nozzle.json | 2 +- ...hforge PLA Basic @FF AD5X 0.25 nozzle.json | 2 +- ...shforge PLA Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Basic @FF AD5X.json | 2 +- .../filament/Flashforge PLA Basic @FF C5.json | 2 +- .../Flashforge PLA Basic @FF C5P.json | 2 +- ...ashforge PLA Basic @FF G4 0.25 nozzle.json | 2 +- ...hforge PLA Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Basic @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Basic @FF G4.json | 2 +- ...shforge PLA Basic @FF G4P 0.25 nozzle.json | 2 +- ...forge PLA Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Basic @FF G4P HF.json | 2 +- .../Flashforge PLA Basic @FF G4P.json | 2 +- .../filament/Flashforge PLA Basic.json | 2 +- ...hforge PLA Buint Ti @FF G4 0.8 nozzle.json | 2 +- ...forge PLA Buint Ti @FF G4P 0.8 nozzle.json | 2 +- ...PLA Color Change @FF AD5M 0.25 nozzle.json | 2 +- ...PLA Color Change @FF AD5X 0.25 nozzle.json | 2 +- ... PLA Color Change @FF AD5X 0.6 nozzle.json | 2 +- ... PLA Color Change @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Color Change @FF AD5X.json | 2 +- .../Flashforge PLA Color Change @FF C5.json | 2 +- .../Flashforge PLA Color Change @FF C5P.json | 2 +- ...e PLA Color Change @FF G4 0.25 nozzle.json | 2 +- ...PLA Color Change @FF G4 0.6 HF nozzle.json | 2 +- ...ge PLA Color Change @FF G4 0.6 nozzle.json | 2 +- ...PLA Color Change @FF G4 0.8 HF nozzle.json | 2 +- ...Flashforge PLA Color Change @FF G4 HF.json | 2 +- .../Flashforge PLA Color Change @FF G4.json | 2 +- ... PLA Color Change @FF G4P 0.25 nozzle.json | 2 +- ...LA Color Change @FF G4P 0.6 HF nozzle.json | 2 +- ...e PLA Color Change @FF G4P 0.6 nozzle.json | 2 +- ...LA Color Change @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge PLA Color Change @FF G4P HF.json | 2 +- .../Flashforge PLA Color Change @FF G4P.json | 2 +- .../filament/Flashforge PLA Color Change.json | 2 +- ...forge PLA Galaxy @FF AD5M 0.25 nozzle.json | 2 +- ...forge PLA Galaxy @FF AD5X 0.25 nozzle.json | 2 +- ...hforge PLA Galaxy @FF AD5X 0.6 nozzle.json | 2 +- ...hforge PLA Galaxy @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF AD5X.json | 2 +- .../Flashforge PLA Galaxy @FF C5.json | 2 +- .../Flashforge PLA Galaxy @FF C5P.json | 2 +- ...shforge PLA Galaxy @FF G4 0.25 nozzle.json | 2 +- ...forge PLA Galaxy @FF G4 0.6 HF nozzle.json | 2 +- ...ashforge PLA Galaxy @FF G4 0.6 nozzle.json | 2 +- ...forge PLA Galaxy @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF G4 HF.json | 2 +- .../Flashforge PLA Galaxy @FF G4.json | 2 +- ...hforge PLA Galaxy @FF G4P 0.25 nozzle.json | 2 +- ...orge PLA Galaxy @FF G4P 0.6 HF nozzle.json | 2 +- ...shforge PLA Galaxy @FF G4P 0.6 nozzle.json | 2 +- ...orge PLA Galaxy @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF G4P HF.json | 2 +- .../Flashforge PLA Galaxy @FF G4P.json | 2 +- .../filament/Flashforge PLA Galaxy.json | 2 +- ...rge PLA Luminous @FF AD5M 0.25 nozzle.json | 2 +- ...rge PLA Luminous @FF AD5X 0.25 nozzle.json | 2 +- ...orge PLA Luminous @FF AD5X 0.6 nozzle.json | 2 +- ...orge PLA Luminous @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Luminous @FF AD5X.json | 2 +- .../Flashforge PLA Luminous @FF C5.json | 2 +- .../Flashforge PLA Luminous @FF C5P.json | 2 +- ...forge PLA Luminous @FF G4 0.25 nozzle.json | 2 +- ...rge PLA Luminous @FF G4 0.6 HF nozzle.json | 2 +- ...rge PLA Luminous @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Luminous @FF G4 HF.json | 2 +- .../Flashforge PLA Luminous @FF G4.json | 2 +- ...orge PLA Luminous @FF G4P 0.25 nozzle.json | 2 +- ...ge PLA Luminous @FF G4P 0.6 HF nozzle.json | 2 +- ...ge PLA Luminous @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Luminous @FF G4P HF.json | 2 +- .../Flashforge PLA Luminous @FF G4P.json | 2 +- .../filament/Flashforge PLA Luminous.json | 2 +- ...hforge PLA Matte @FF AD5M 0.25 nozzle.json | 2 +- ...hforge PLA Matte @FF AD5X 0.25 nozzle.json | 2 +- ...shforge PLA Matte @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Matte @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Matte @FF AD5X.json | 2 +- ...ashforge PLA Matte @FF G4 0.25 nozzle.json | 2 +- ...hforge PLA Matte @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Matte @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Matte @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Matte @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Matte @FF G4.json | 2 +- ...shforge PLA Matte @FF G4P 0.25 nozzle.json | 2 +- ...forge PLA Matte @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Matte @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Matte @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Matte @FF G4P HF.json | 2 +- .../Flashforge PLA Matte @FF G4P.json | 2 +- .../filament/Flashforge PLA Matte.json | 2 +- ...hforge PLA Metal @FF AD5M 0.25 nozzle.json | 2 +- ...hforge PLA Metal @FF AD5X 0.25 nozzle.json | 2 +- ...shforge PLA Metal @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Metal @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Metal @FF AD5X.json | 2 +- ...ashforge PLA Metal @FF G4 0.25 nozzle.json | 2 +- ...hforge PLA Metal @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Metal @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Metal @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Metal @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Metal @FF G4.json | 2 +- ...shforge PLA Metal @FF G4P 0.25 nozzle.json | 2 +- ...forge PLA Metal @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Metal @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Metal @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Metal @FF G4P HF.json | 2 +- .../Flashforge PLA Metal @FF G4P.json | 2 +- .../filament/Flashforge PLA Metal.json | 2 +- ...ashforge PLA Pro @FF AD5M 0.25 nozzle.json | 2 +- ...ashforge PLA Pro @FF AD5X 0.25 nozzle.json | 2 +- ...lashforge PLA Pro @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge PLA Pro @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PLA Pro @FF AD5X.json | 2 +- ...Flashforge PLA Pro @FF G4 0.25 nozzle.json | 2 +- ...ashforge PLA Pro @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4 0.6 nozzle.json | 2 +- ...ashforge PLA Pro @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Pro @FF G4.json | 2 +- ...lashforge PLA Pro @FF G4P 0.25 nozzle.json | 2 +- ...shforge PLA Pro @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge PLA Pro @FF G4P 0.6 nozzle.json | 2 +- ...shforge PLA Pro @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4P HF.json | 2 +- .../filament/Flashforge PLA Pro @FF G4P.json | 2 +- .../filament/Flashforge PLA Pro.json | 2 +- ...shforge PLA Silk @FF AD5M 0.25 nozzle.json | 2 +- ...shforge PLA Silk @FF AD5X 0.25 nozzle.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.6 nozzle.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Silk @FF AD5X.json | 2 +- .../filament/Flashforge PLA Silk @FF C5.json | 2 +- .../filament/Flashforge PLA Silk @FF C5P.json | 2 +- ...lashforge PLA Silk @FF G4 0.25 nozzle.json | 2 +- ...shforge PLA Silk @FF G4 0.6 HF nozzle.json | 2 +- ...Flashforge PLA Silk @FF G4 0.6 nozzle.json | 2 +- ...shforge PLA Silk @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Silk @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Silk @FF G4.json | 2 +- ...ashforge PLA Silk @FF G4P 0.25 nozzle.json | 2 +- ...hforge PLA Silk @FF G4P 0.6 HF nozzle.json | 2 +- ...lashforge PLA Silk @FF G4P 0.6 nozzle.json | 2 +- ...hforge PLA Silk @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Silk @FF G4P HF.json | 2 +- .../filament/Flashforge PLA Silk @FF G4P.json | 2 +- .../filament/Flashforge PLA Silk.json | 2 +- ...orge PLA Sparkle @FF AD5M 0.25 nozzle.json | 2 +- ...orge PLA Sparkle @FF AD5X 0.25 nozzle.json | 2 +- ...forge PLA Sparkle @FF AD5X 0.6 nozzle.json | 2 +- ...forge PLA Sparkle @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF AD5X.json | 2 +- ...hforge PLA Sparkle @FF G4 0.25 nozzle.json | 2 +- ...orge PLA Sparkle @FF G4 0.6 HF nozzle.json | 2 +- ...shforge PLA Sparkle @FF G4 0.6 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF G4 HF.json | 2 +- .../Flashforge PLA Sparkle @FF G4.json | 2 +- ...forge PLA Sparkle @FF G4P 0.25 nozzle.json | 2 +- ...rge PLA Sparkle @FF G4P 0.6 HF nozzle.json | 2 +- ...hforge PLA Sparkle @FF G4P 0.6 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF G4P HF.json | 2 +- .../Flashforge PLA Sparkle @FF G4P.json | 2 +- .../filament/Flashforge PLA Sparkle.json | 2 +- ...Flashforge PLA-CF @FF AD5X 0.6 nozzle.json | 2 +- ...Flashforge PLA-CF @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF AD5X.json | 2 +- .../filament/Flashforge PLA-CF @FF C5.json | 2 +- .../filament/Flashforge PLA-CF @FF C5P.json | 2 +- .../Flashforge PLA-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF G4.json | 2 +- .../Flashforge PLA-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF G4P.json | 2 +- .../filament/Flashforge PLA-CF.json | 2 +- ...shforge PLA-SILK @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge PPA-CF @FF C5.json | 2 +- .../filament/Flashforge PPA-CF @FF C5P.json | 2 +- .../filament/Flashforge PPA-CF.json | 2 +- .../filament/Flashforge PPA-GF.json | 2 +- .../filament/Flashforge PPS @FF G4.json | 2 +- .../filament/Flashforge PPS @FF G4P.json | 2 +- .../filament/Flashforge PPS-CF @FF C5.json | 2 +- .../filament/Flashforge PPS-CF @FF C5P.json | 2 +- .../filament/Flashforge PPS-CF @FF G4.json | 2 +- .../filament/Flashforge PPS-CF @FF G4P.json | 2 +- .../filament/Flashforge PPS-CF.json | 2 +- .../filament/Flashforge PVA @FF C5.json | 2 +- .../filament/Flashforge PVA @FF C5P.json | 2 +- ...ashforge TPU 65D @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge TPU 65D @FF G4 0.6 nozzle.json | 2 +- ...ashforge TPU 65D @FF G4 0.8 HF nozzle.json | 2 +- ...shforge TPU 65D @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge TPU 65D @FF G4P 0.6 nozzle.json | 2 +- ...shforge TPU 65D @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge TPU 95A @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge TPU 95A @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF AD5X.json | 2 +- ...ashforge TPU 95A @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge TPU 95A @FF G4 0.6 nozzle.json | 2 +- ...ashforge TPU 95A @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF G4.json | 2 +- ...shforge TPU 95A @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge TPU 95A @FF G4P 0.6 nozzle.json | 2 +- ...shforge TPU 95A @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF G4P.json | 2 +- .../filament/Flashforge TPU 95A.json | 2 +- .../filament/Flashforge TPU-64D @FF C5.json | 2 +- .../filament/Flashforge TPU-64D @FF C5P.json | 2 +- .../filament/Flashforge TPU-90A @FF C5.json | 2 +- .../filament/Flashforge TPU-90A @FF C5P.json | 2 +- .../filament/Flashforge TPU-95A @FF C5.json | 2 +- .../filament/Flashforge TPU-95A @FF C5P.json | 2 +- .../Flashforge/Flashforge ABS @FF AD3.json | 2 +- .../Flashforge/Flashforge PETG @FF AD3.json | 2 +- .../Flashforge/Flashforge PLA @FF AD3.json | 2 +- .../FusRock PAHT @FF G4 0.6 HF nozzle.json | 2 +- .../FusRock PAHT @FF G4 0.6 nozzle.json | 2 +- .../FusRock PAHT @FF G4 0.8 HF nozzle.json | 2 +- .../FusRock PAHT @FF G4P 0.6 HF nozzle.json | 2 +- .../FusRock PAHT @FF G4P 0.6 nozzle.json | 2 +- .../FusRock PAHT @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/FusRock PAHT-CF @FF C5.json | 2 +- .../filament/FusRock PAHT-CF @FF C5P.json | 2 +- .../FusRock PAHT-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/FusRock PAHT-CF @FF G4.json | 2 +- .../FusRock PAHT-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/FusRock PAHT-CF @FF G4P.json | 2 +- .../FusRock PET @FF G4P 0.8 HF nozzle.json | 2 +- .../FusRock PET-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/FusRock PET-CF @FF G4.json | 2 +- .../FusRock PET-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/FusRock PET-CF @FF G4P.json | 2 +- .../filament/FusRock S-Multi @FF C5.json | 2 +- .../filament/FusRock S-Multi @FF C5P.json | 2 +- .../filament/FusRock S-PAHT @FF C5.json | 2 +- .../filament/FusRock S-PAHT @FF C5P.json | 2 +- .../FusRock/FusRock Generic NexPA-CF25.json | 2 +- ...sRock Generic PAHT-CF @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic PAHT-CF.json | 2 +- .../FusRock/FusRock Generic PAHT-GF.json | 2 +- ...usRock Generic PET-CF @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic PET-CF.json | 2 +- .../FusRock/FusRock Generic PET-GF.json | 2 +- ...sRock Generic S-Multi @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic S-Multi.json | 2 +- ...usRock Generic S-PAHT @G3U 0.6 Nozzle.json | 2 +- .../FusRock/FusRock Generic S-PAHT.json | 2 +- .../filament/Generic ABS @Flashforge AD4.json | 2 +- .../filament/Generic ASA @Flashforge AD4.json | 2 +- .../Generic PET @FF G4 0.6 HF nozzle.json | 2 +- .../Generic PET @FF G4 0.6 nozzle.json | 2 +- .../Generic PET @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Generic PET @FF G4.json | 2 +- .../Generic PET @FF G4P 0.6 HF nozzle.json | 2 +- .../Generic PET @FF G4P 0.6 nozzle.json | 2 +- .../Generic PET @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Generic PET @FF G4P.json | 2 +- .../Generic PETG @Flashforge AD4.json | 2 +- .../Generic PETG-CF10 @Flashforge AD4.json | 2 +- .../filament/Generic PLA @Flashforge AD4.json | 2 +- ...eneric PLA High Speed @Flashforge AD4.json | 2 +- .../Generic PLA Silk @Flashforge AD4.json | 2 +- .../Generic PLA-CF10 @Flashforge AD4.json | 2 +- .../Generic TPU 85A @FF AD5X 0.6 nozzle.json | 2 +- .../Generic TPU 85A @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Generic TPU 85A @FF AD5X.json | 2 +- .../filament/Generic TPU @Flashforge AD4.json | 2 +- .../filament/Generic TPU-64D @FF C5.json | 2 +- .../filament/Generic TPU-64D @FF C5P.json | 2 +- .../filament/Generic TPU-90A @FF C5.json | 2 +- .../filament/Generic TPU-90A @FF C5P.json | 2 +- .../filament/Generic TPU-95A @FF C5.json | 2 +- .../filament/Generic TPU-95A @FF C5P.json | 2 +- .../Polymaker CoPA @FF G4 0.6 HF nozzle.json | 2 +- .../Polymaker CoPA @FF G4 0.6 nozzle.json | 2 +- .../Polymaker CoPA @FF G4 0.8 HF nozzle.json | 2 +- .../Polymaker CoPA @FF G4P 0.6 HF nozzle.json | 2 +- .../Polymaker CoPA @FF G4P 0.6 nozzle.json | 2 +- .../Polymaker CoPA @FF G4P 0.8 HF nozzle.json | 2 +- .../Polymaker/Polymaker Generic CoPA.json | 2 +- .../Polymaker/Polymaker Generic S1.json | 2 +- .../filament/SUNLU/SUNLU PETG @base.json | 2 +- .../SUNLU/SUNLU PLA Marble @base.json | 2 +- .../filament/SUNLU/SUNLU PLA Matte @base.json | 2 +- .../filament/SUNLU/SUNLU PLA+ 2.0 @base.json | 2 +- .../filament/SUNLU/SUNLU PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Silk PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Wood PLA @base.json | 2 +- .../filament/FlyingBear Generic ABS.json | 2 +- .../filament/FlyingBear Generic PA-CF.json | 2 +- .../filament/FlyingBear Generic PC.json | 2 +- .../filament/FlyingBear Generic PETG.json | 2 +- .../filament/FlyingBear Generic PLA.json | 2 +- .../filament/FlyingBear Generic TPU.json | 2 +- .../filament/FlyingBear PLA Hyper.json | 2 +- .../Ghost7/FlyingBear ABS @Ghost7.json | 2 +- .../Ghost7/FlyingBear PA-CF @Ghost7.json | 2 +- .../Ghost7/FlyingBear PC @Ghost7.json | 2 +- .../Ghost7/FlyingBear PETG Basic @Ghost7.json | 2 +- .../Ghost7/FlyingBear PLA Basic @Ghost7.json | 2 +- .../Ghost7/FlyingBear PLA Hyper @Ghost7.json | 2 +- .../Ghost7/FlyingBear TPU Basic @Ghost7.json | 2 +- .../filament/S1/FlyingBear ABS @S1.json | 2 +- .../filament/S1/FlyingBear PA-CF @S1.json | 2 +- .../filament/S1/FlyingBear PC @S1.json | 2 +- .../filament/S1/FlyingBear PETG @S1.json | 2 +- .../filament/S1/FlyingBear PLA @S1.json | 2 +- .../filament/S1/FlyingBear PLA Hyper @S1.json | 2 +- .../filament/S1/FlyingBear TPU @S1.json | 2 +- .../FlyingBear/filament/S1/Other ABS @S1.json | 2 +- .../filament/S1/Other PA-CF @S1.json | 2 +- .../FlyingBear/filament/S1/Other PC @S1.json | 2 +- .../filament/S1/Other PETG @S1.json | 2 +- .../FlyingBear/filament/S1/Other PLA @S1.json | 2 +- .../filament/S1/Other PLA Hyper @S1.json | 2 +- .../FlyingBear/filament/S1/Other TPU @S1.json | 2 +- .../filament/Ginger Generic PETG.json | 2 +- .../filament/Ginger Generic PLA.json | 2 +- .../filament/EX+APS/InfiMech ABS @EX+APS.json | 2 +- .../EX+APS/InfiMech PA-CF @EX+APS.json | 2 +- .../filament/EX+APS/InfiMech PC @EX+APS.json | 2 +- .../EX+APS/InfiMech PETG @EX+APS.json | 2 +- .../EX+APS/InfiMech PLA Basic @EX+APS.json | 2 +- .../EX+APS/InfiMech PLA Hyper @EX+APS.json | 2 +- .../EX+APS/InfiMech TPU Basic @EX+APS.json | 2 +- .../filament/EX/InfiMech ABS @EX.json | 2 +- .../filament/EX/InfiMech PA-CF @EX.json | 2 +- .../InfiMech/filament/EX/InfiMech PC @EX.json | 2 +- .../filament/EX/InfiMech PETG @EX.json | 2 +- .../filament/EX/InfiMech PLA Basic @EX.json | 2 +- .../filament/EX/InfiMech PLA Hyper @EX.json | 2 +- .../filament/EX/InfiMech TPU Basic @EX.json | 2 +- .../filament/HSN/InfiMech ABS @HSN.json | 2 +- .../filament/HSN/InfiMech PA-CF @HSN.json | 2 +- .../filament/HSN/InfiMech PC @HSN.json | 2 +- .../filament/HSN/InfiMech PETG @HSN.json | 2 +- .../filament/HSN/InfiMech PLA @HSN.json | 2 +- .../filament/HSN/InfiMech PLA Hyper @HSN.json | 2 +- .../filament/HSN/InfiMech TPU @HSN.json | 2 +- .../InfiMech/filament/HSN/Other ABS @HSN.json | 2 +- .../filament/HSN/Other PA-CF @HSN.json | 2 +- .../InfiMech/filament/HSN/Other PC @HSN.json | 2 +- .../filament/HSN/Other PETG @HSN.json | 2 +- .../InfiMech/filament/HSN/Other PLA @HSN.json | 2 +- .../filament/HSN/Other PLA Hyper @HSN.json | 2 +- .../InfiMech/filament/HSN/Other TPU @HSN.json | 2 +- .../filament/InfiMech Generic ABS.json | 2 +- .../filament/InfiMech Generic PA-CF.json | 2 +- .../filament/InfiMech Generic PC.json | 2 +- .../filament/InfiMech Generic PETG.json | 2 +- .../filament/InfiMech Generic PLA.json | 2 +- .../filament/InfiMech Generic TPU.json | 2 +- .../InfiMech/filament/InfiMech PLA Hyper.json | 2 +- .../profiles/InfiMech/filament/Other ABS.json | 2 +- .../InfiMech/filament/Other PA-CF.json | 2 +- .../profiles/InfiMech/filament/Other PC.json | 2 +- .../InfiMech/filament/Other PETG.json | 2 +- .../InfiMech/filament/Other PLA Hyper.json | 2 +- .../profiles/InfiMech/filament/Other PLA.json | 2 +- .../profiles/InfiMech/filament/Other TPU.json | 2 +- resources/profiles/LH/filament/LHS ABS.json | 2 +- resources/profiles/LH/filament/LHS ASA.json | 2 +- resources/profiles/LH/filament/LHS PC CF.json | 2 +- resources/profiles/LH/filament/LHS PCTG.json | 2 +- resources/profiles/LH/filament/LHS PETG.json | 2 +- resources/profiles/LH/filament/LHS PLA.json | 2 +- .../LH/filament/LHS TPU Foamy 78A.json | 2 +- resources/profiles/LH/filament/LHS TPU.json | 2 +- .../Generic PETG @LONGER LK10 Plus.json | 2 +- .../filament/Generic PETG @LONGER LK10.json | 2 +- .../Generic PLA @LONGER LK10 Plus.json | 2 +- .../filament/Generic PLA @LONGER LK10.json | 2 +- .../Lulzbot/filament/Lulzbot 2.85mm ABS.json | 2 +- .../Lulzbot/filament/Lulzbot 2.85mm PETG.json | 2 +- .../Lulzbot/filament/Lulzbot 2.85mm PLA.json | 2 +- .../MagicMaker/filament/MM Generic PEEK.json | 2 +- .../OrcaArena/filament/Arena ABS @base.json | 2 +- .../OrcaArena/filament/Arena PA-CF @base.json | 2 +- .../filament/Arena PAHT-CF @base.json | 2 +- .../OrcaArena/filament/Arena PC @base.json | 2 +- .../filament/Arena PET-CF @base.json | 2 +- .../filament/Arena PETG Basic @base.json | 2 +- .../filament/Arena PETG-CF @base.json | 2 +- .../filament/Arena PLA Basic @base.json | 2 +- .../filament/Arena PLA Impact @base.json | 2 +- .../filament/Arena PLA Marble @base.json | 2 +- .../filament/Arena PLA Matte @base.json | 2 +- .../filament/Arena PLA Metal @base.json | 2 +- .../filament/Arena PLA Silk @base.json | 2 +- .../filament/Arena PLA Sparkle @base.json | 2 +- .../filament/Arena PLA Tough @base.json | 2 +- .../filament/Arena PLA-CF @base.json | 2 +- .../filament/Arena Support G @base.json | 2 +- .../filament/Arena Support W @base.json | 2 +- .../filament/Arena TPU 95A @base.json | 2 +- .../filament/OrcaArena Generic ABS @base.json | 2 +- .../filament/OrcaArena Generic ASA @base.json | 2 +- .../filament/OrcaArena Generic PA-CF.json | 2 +- .../filament/OrcaArena Generic PA.json | 2 +- .../filament/OrcaArena Generic PC @base.json | 2 +- .../OrcaArena Generic PETG @base.json | 2 +- .../OrcaArena Generic PETG-CF @base.json | 2 +- .../filament/OrcaArena Generic PLA @base.json | 2 +- .../OrcaArena Generic PLA Silk @base.json | 2 +- .../OrcaArena Generic PLA-CF @base.json | 2 +- .../filament/OrcaArena Generic PVA @base.json | 2 +- .../filament/OrcaArena Generic TPU.json | 2 +- .../filament/PolyLite PLA @base.json | 2 +- .../filament/PolyTerra PLA @base.json | 2 +- .../Peopoly/filament/Peopoly Generic ABS.json | 2 +- .../filament/Peopoly Generic PETG.json | 2 +- .../Peopoly/filament/Peopoly Generic PLA.json | 2 +- .../filament/Peopoly Lancer ABS-GF.json | 2 +- .../filament/Peopoly Lancer PET-CF.json | 2 +- .../filament/Peopoly Lancer PETG-C.json | 2 +- .../filament/Peopoly Lancer PLA-C.json | 2 +- .../Phrozen PLA @Phrozen Arco 0.4 nozzle.json | 2 +- .../Prusa Generic ABS @CORE One 0.6.json | 2 +- .../Prusa Generic ABS @CORE One 0.8.json | 2 +- .../Prusa Generic ABS @CORE One HF 0.4.json | 2 +- .../Prusa Generic ABS @CORE One HF 0.5.json | 2 +- .../Prusa Generic ABS @CORE One HF 0.6.json | 2 +- .../Prusa Generic ABS @CORE One HF 0.8.json | 2 +- .../filament/Prusa Generic ABS @CORE One.json | 2 +- .../Prusa Generic ABS @MK3.5 0.25.json | 2 +- .../Prusa Generic ABS @MK3.5 0.6.json | 2 +- .../Prusa Generic ABS @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic ABS @MK3.5.json | 2 +- .../filament/Prusa Generic ABS @MK4S 0.6.json | 2 +- .../filament/Prusa Generic ABS @MK4S 0.8.json | 2 +- .../Prusa Generic ABS @MK4S HF0.4.json | 2 +- .../Prusa Generic ABS @MK4S HF0.5.json | 2 +- .../Prusa Generic ABS @MK4S HF0.6.json | 2 +- .../Prusa Generic ABS @MK4S HF0.8.json | 2 +- .../filament/Prusa Generic ABS @MK4S.json | 2 +- .../filament/Prusa Generic ABS @base.json | 2 +- .../Prusa Generic ABS HF @MK3.5 0.6.json | 2 +- .../Prusa Generic ABS HF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic ABS HF @MK3.5.json | 2 +- .../filament/Prusa Generic ABS HF @base.json | 2 +- .../Prusa Generic ASA @CORE One 0.6.json | 2 +- .../Prusa Generic ASA @CORE One 0.8.json | 2 +- .../Prusa Generic ASA @CORE One HF 0.4.json | 2 +- .../Prusa Generic ASA @CORE One HF 0.5.json | 2 +- .../Prusa Generic ASA @CORE One HF 0.6.json | 2 +- .../Prusa Generic ASA @CORE One HF 0.8.json | 2 +- .../filament/Prusa Generic ASA @CORE One.json | 2 +- .../Prusa Generic ASA @MINIIS 0.25.json | 1 + .../Prusa Generic ASA @MINIIS 0.6.json | 1 + .../Prusa Generic ASA @MINIIS 0.8.json | 1 + .../filament/Prusa Generic ASA @MINIIS.json | 1 + .../Prusa Generic ASA @MK3.5 0.25.json | 2 +- .../Prusa Generic ASA @MK3.5 0.6.json | 2 +- .../Prusa Generic ASA @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic ASA @MK3.5.json | 2 +- .../filament/Prusa Generic ASA @MK4.json | 1 + .../filament/Prusa Generic ASA @MK4S 0.6.json | 2 +- .../filament/Prusa Generic ASA @MK4S 0.8.json | 2 +- .../Prusa Generic ASA @MK4S HF0.4.json | 2 +- .../Prusa Generic ASA @MK4S HF0.5.json | 2 +- .../Prusa Generic ASA @MK4S HF0.6.json | 2 +- .../Prusa Generic ASA @MK4S HF0.8.json | 2 +- .../filament/Prusa Generic ASA @MK4S.json | 2 +- .../Prusa Generic ASA HF @MK3.5 0.6.json | 2 +- .../Prusa Generic ASA HF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic ASA HF @MK3.5.json | 2 +- .../filament/Prusa Generic ASA HF @base.json | 2 +- .../Prusa/filament/Prusa Generic ASA.json | 1 + .../filament/Prusa Generic FLEX @XL 5T.json | 1 + .../filament/Prusa Generic FLEX @XL.json | 1 + .../Prusa Generic PA @MK3.5 0.25.json | 2 +- .../filament/Prusa Generic PA @MK3.5 0.6.json | 2 +- .../filament/Prusa Generic PA @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PA @MK3.5.json | 2 +- .../filament/Prusa Generic PA @base.json | 2 +- .../Prusa Generic PA-CF @MK3.5 0.25.json | 2 +- .../Prusa Generic PA-CF @MK3.5 0.6.json | 2 +- .../Prusa Generic PA-CF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PA-CF @MK3.5.json | 2 +- .../filament/Prusa Generic PA-CF @base.json | 2 +- .../Prusa Generic PC @MK3.5 0.25.json | 2 +- .../filament/Prusa Generic PC @MK3.5 0.6.json | 2 +- .../filament/Prusa Generic PC @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PC @MK3.5.json | 2 +- .../Prusa Generic PC HF @MK3.5 0.6.json | 2 +- .../Prusa Generic PC HF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PC HF @MK3.5.json | 2 +- .../filament/Prusa Generic PC HF @base.json | 2 +- .../Prusa Generic PETG @CORE One 0.6.json | 2 +- .../Prusa Generic PETG @CORE One 0.8.json | 2 +- .../Prusa Generic PETG @CORE One HF 0.4.json | 2 +- .../Prusa Generic PETG @CORE One HF 0.5.json | 2 +- .../Prusa Generic PETG @CORE One HF 0.6.json | 2 +- .../Prusa Generic PETG @CORE One HF 0.8.json | 2 +- .../Prusa Generic PETG @CORE One.json | 2 +- .../Prusa Generic PETG @MK3.5 0.25.json | 2 +- .../Prusa Generic PETG @MK3.5 0.6.json | 2 +- .../Prusa Generic PETG @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PETG @MK3.5.json | 2 +- .../Prusa Generic PETG @MK4S 0.6.json | 2 +- .../Prusa Generic PETG @MK4S 0.8.json | 2 +- .../Prusa Generic PETG @MK4S HF0.4.json | 2 +- .../Prusa Generic PETG @MK4S HF0.5.json | 2 +- .../Prusa Generic PETG @MK4S HF0.6.json | 2 +- .../Prusa Generic PETG @MK4S HF0.8.json | 2 +- .../filament/Prusa Generic PETG @MK4S.json | 2 +- .../filament/Prusa Generic PETG @base.json | 2 +- .../Prusa Generic PETG HF @MK3.5 0.6.json | 2 +- .../Prusa Generic PETG HF @MK3.5 0.8.json | 2 +- .../Prusa Generic PETG HF @MK3.5.json | 2 +- .../filament/Prusa Generic PETG HF @base.json | 2 +- .../Prusa Generic PLA @CORE One 0.6.json | 2 +- .../Prusa Generic PLA @CORE One 0.8.json | 2 +- .../Prusa Generic PLA @CORE One HF 0.4.json | 2 +- .../Prusa Generic PLA @CORE One HF 0.5.json | 2 +- .../Prusa Generic PLA @CORE One HF 0.6.json | 2 +- .../Prusa Generic PLA @CORE One HF 0.8.json | 2 +- .../filament/Prusa Generic PLA @CORE One.json | 2 +- .../Prusa Generic PLA @MK3.5 0.25.json | 2 +- .../Prusa Generic PLA @MK3.5 0.6.json | 2 +- .../Prusa Generic PLA @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PLA @MK3.5.json | 2 +- .../filament/Prusa Generic PLA @MK4S 0.6.json | 2 +- .../filament/Prusa Generic PLA @MK4S 0.8.json | 2 +- .../Prusa Generic PLA @MK4S HF0.4.json | 2 +- .../Prusa Generic PLA @MK4S HF0.5.json | 2 +- .../Prusa Generic PLA @MK4S HF0.6.json | 2 +- .../Prusa Generic PLA @MK4S HF0.8.json | 2 +- .../filament/Prusa Generic PLA @MK4S.json | 2 +- .../filament/Prusa Generic PLA @base.json | 2 +- .../Prusa Generic PLA HF @MK3.5 0.6.json | 2 +- .../Prusa Generic PLA HF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PLA HF @MK3.5.json | 2 +- .../filament/Prusa Generic PLA HF @base.json | 2 +- .../Prusa Generic PLA Silk @CORE One 0.6.json | 2 +- .../Prusa Generic PLA Silk @CORE One 0.8.json | 2 +- .../Prusa Generic PLA Silk @CORE One.json | 2 +- .../Prusa Generic PLA Silk @MK4S 0.6.json | 2 +- .../Prusa Generic PLA Silk @MK4S 0.8.json | 2 +- .../Prusa Generic PLA Silk @MK4S.json | 2 +- .../Prusa Generic PLA-CF @MK3.5 0.25.json | 2 +- .../Prusa Generic PLA-CF @MK3.5 0.6.json | 2 +- .../Prusa Generic PLA-CF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PLA-CF @MK3.5.json | 2 +- .../filament/Prusa Generic PLA-CF @base.json | 2 +- .../Prusa Generic PVA @MK3.5 0.25.json | 2 +- .../Prusa Generic PVA @MK3.5 0.6.json | 2 +- .../Prusa Generic PVA @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PVA @MK3.5.json | 2 +- .../filament/Prusa Generic PVA @base.json | 2 +- .../Prusa Generic PVA HF @MK3.5 0.6.json | 2 +- .../Prusa Generic PVA HF @MK3.5 0.8.json | 2 +- .../filament/Prusa Generic PVA HF @MK3.5.json | 2 +- .../filament/Prusa Generic PVA HF @base.json | 2 +- .../Prusa Generic TPU @CORE One 0.6.json | 2 +- .../Prusa Generic TPU @CORE One 0.8.json | 2 +- .../filament/Prusa Generic TPU @CORE One.json | 2 +- .../filament/Prusa Generic TPU @MK3.5.json | 2 +- .../filament/Prusa Generic TPU @MK4S 0.6.json | 2 +- .../filament/Prusa Generic TPU @MK4S 0.8.json | 2 +- .../filament/Prusa Generic TPU @MK4S.json | 2 +- .../filament/Prusa Generic TPU @base.json | 2 +- .../filament/Prusa Generic TPU HF @MK3.5.json | 2 +- .../filament/Prusa Generic TPU HF @base.json | 2 +- .../filament/Prusament ASA @CORE One 0.6.json | 2 +- .../filament/Prusament ASA @CORE One 0.8.json | 2 +- .../Prusament ASA @CORE One HF 0.4.json | 2 +- .../Prusament ASA @CORE One HF 0.5.json | 2 +- .../Prusament ASA @CORE One HF 0.6.json | 2 +- .../Prusament ASA @CORE One HF 0.8.json | 2 +- .../filament/Prusament ASA @CORE One.json | 2 +- .../Prusa/filament/Prusament ASA @XL 5T.json | 2 + .../Prusa/filament/Prusament ASA @XL.json | 2 + .../Prusament PA-CF @CORE One 0.6.json | 2 +- .../Prusament PA-CF @CORE One 0.8.json | 2 +- .../filament/Prusament PA-CF @CORE One.json | 4 +- .../filament/Prusament PA-CF @XL 5T.json | 2 + .../Prusa/filament/Prusament PA-CF @XL.json | 2 + .../Prusament PC Blend @CORE One 0.6.json | 2 +- .../Prusament PC Blend @CORE One 0.8.json | 2 +- .../Prusament PC Blend @CORE One HF 0.4.json | 2 +- .../Prusament PC Blend @CORE One HF 0.5.json | 2 +- .../Prusament PC Blend @CORE One HF 0.6.json | 2 +- .../Prusament PC Blend @CORE One HF 0.8.json | 2 +- .../Prusament PC Blend @CORE One.json | 2 +- .../Prusament PC-CF @CORE One 0.6.json | 2 +- .../Prusament PC-CF @CORE One 0.8.json | 2 +- .../filament/Prusament PC-CF @CORE One.json | 4 +- .../filament/Prusament PC-CF @XL 5T.json | 2 + .../Prusa/filament/Prusament PC-CF @XL.json | 2 + .../Prusament PETG @CORE One 0.6.json | 2 +- .../Prusament PETG @CORE One 0.8.json | 2 +- .../Prusament PETG @CORE One HF 0.4.json | 2 +- .../Prusament PETG @CORE One HF 0.5.json | 2 +- .../Prusament PETG @CORE One HF 0.6.json | 2 +- .../Prusament PETG @CORE One HF 0.8.json | 2 +- .../filament/Prusament PETG @CORE One.json | 2 +- .../Prusa/filament/Prusament PETG @base.json | 2 +- .../filament/Prusament PLA @CORE One 0.6.json | 2 +- .../filament/Prusament PLA @CORE One 0.8.json | 2 +- .../Prusament PLA @CORE One HF 0.4.json | 2 +- .../Prusament PLA @CORE One HF 0.5.json | 2 +- .../Prusament PLA @CORE One HF 0.6.json | 2 +- .../Prusament PLA @CORE One HF 0.8.json | 2 +- .../filament/Prusament PLA @CORE One.json | 2 +- .../Prusa/filament/Prusament PLA @base.json | 2 +- .../filament/Prusament PVB @CORE One 0.6.json | 2 +- .../filament/Prusament PVB @CORE One 0.8.json | 2 +- .../filament/Prusament PVB @CORE One.json | 2 +- .../Prusa/filament/Prusament PVB @XL 5T.json | 2 + .../Prusa/filament/Prusament PVB @XL.json | 2 + .../Prusament rPLA @CORE One 0.6.json | 2 +- .../Prusament rPLA @CORE One 0.8.json | 2 +- .../filament/Prusament rPLA @CORE One.json | 2 +- .../Prusa/filament/Prusament rPLA @base.json | 2 +- .../Prusa/filament/fdm_filament_asa.json | 1 - .../Prusa/filament/fdm_filament_flex.json | 1 - .../Prusa/filament/fdm_filament_pa11cf.json | 1 - .../Prusa/filament/fdm_filament_pccf.json | 1 - .../Prusa/filament/fdm_filament_pvb.json | 1 - .../Qidi/filament/Bambu ABS @0.2 nozzle.json | 2 +- .../Qidi/filament/Bambu ABS @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu ABS @0.8 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu ABS.json | 2 +- .../Qidi/filament/Bambu PETG @0.2 nozzle.json | 2 +- .../Qidi/filament/Bambu PETG @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu PETG @0.8 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu PETG.json | 2 +- .../Qidi/filament/Bambu PLA @0.2 nozzle.json | 2 +- .../Qidi/filament/Bambu PLA @0.6 nozzle.json | 2 +- .../Qidi/filament/Bambu PLA @0.8 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/Bambu PLA.json | 2 +- .../HATCHBOX ABS @Qidi 0.2 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi 0.8 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...ATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX ABS @Qidi.json | 2 +- .../HATCHBOX PETG @Qidi 0.2 nozzle.json | 2 +- .../HATCHBOX PETG @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX PETG @Qidi 0.8 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...TCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX PETG @Qidi.json | 2 +- .../HATCHBOX PLA @Qidi 0.2 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi 0.6 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi 0.8 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...ATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/HATCHBOX PLA @Qidi.json | 2 +- .../Overture ABS @Qidi 0.2 nozzle.json | 2 +- .../Overture ABS @Qidi 0.6 nozzle.json | 2 +- .../Overture ABS @Qidi 0.8 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Overture ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...verture ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Overture ABS @Qidi.json | 2 +- .../Overture PLA @Qidi 0.2 nozzle.json | 2 +- .../Overture PLA @Qidi 0.6 nozzle.json | 2 +- .../Overture PLA @Qidi 0.8 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Overture PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...verture PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Overture PLA @Qidi.json | 2 +- .../PolyLite ABS @Qidi 0.2 nozzle.json | 2 +- .../PolyLite ABS @Qidi 0.6 nozzle.json | 2 +- .../PolyLite ABS @Qidi 0.8 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...olyLite ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/PolyLite ABS @Qidi.json | 2 +- .../PolyLite PLA @Qidi 0.2 nozzle.json | 2 +- .../PolyLite PLA @Qidi 0.6 nozzle.json | 2 +- .../PolyLite PLA @Qidi 0.8 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...olyLite PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/PolyLite PLA @Qidi.json | 2 +- .../Qidi/filament/Q2/Bambu ABS @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/Bambu PETG @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu PETG @Q2C.json | 2 +- .../Qidi/filament/Q2/Bambu PLA @Q2.json | 2 +- .../Qidi/filament/Q2/Bambu PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic PLA+ @Q2.json | 2 +- .../Qidi/filament/Q2/Generic PLA+ @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX ABS @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PETG @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PETG @Q2C.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PLA @Q2.json | 2 +- .../Qidi/filament/Q2/HATCHBOX PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/Overture ABS @Q2.json | 2 +- .../Qidi/filament/Q2/Overture ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/Overture PLA @Q2.json | 2 +- .../Qidi/filament/Q2/Overture PLA @Q2C.json | 2 +- .../Qidi/filament/Q2/PolyLite ABS @Q2.json | 2 +- .../Qidi/filament/Q2/PolyLite ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/PolyLite PLA @Q2.json | 2 +- .../Qidi/filament/Q2/PolyLite PLA @Q2C.json | 2 +- .../QIDI ABS Odorless @0.2 nozzle.json | 2 +- .../QIDI ABS Odorless @0.6 nozzle.json | 2 +- .../QIDI ABS Odorless @0.8 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...BS Odorless @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI ABS Odorless.json | 2 +- .../filament/QIDI ABS Rapido 0.2 nozzle.json | 2 +- .../filament/QIDI ABS Rapido 0.6 nozzle.json | 2 +- .../filament/QIDI ABS Rapido 0.8 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.2 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.6 nozzle.json | 2 +- .../QIDI ABS Rapido Metal @0.8 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI ABS Rapido Metal.json | 2 +- .../Qidi/filament/QIDI ABS Rapido.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...DI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF10.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...DI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ABS-GF25.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Max 3 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json | 2 +- .../QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json | 2 +- ...QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json | 2 +- ...IDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI ASA.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PA-Ultra.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PA12-CF.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PAHT-CF.json | 2 +- .../filament/QIDI PAHT-GF @0.6 nozzle.json | 2 +- .../filament/QIDI PAHT-GF @0.8 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PAHT-GF.json | 2 +- ...QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PET-CF.json | 2 +- .../filament/QIDI PET-GF @0.6 nozzle.json | 2 +- .../filament/QIDI PET-GF @0.8 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PET-GF.json | 2 +- .../filament/QIDI PETG Basic @0.2 nozzle.json | 2 +- .../filament/QIDI PETG Basic @0.6 nozzle.json | 2 +- .../filament/QIDI PETG Basic @0.8 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Basic.json | 2 +- .../QIDI PETG Rapido @0.2 nozzle.json | 2 +- .../QIDI PETG Rapido @0.6 nozzle.json | 2 +- .../QIDI PETG Rapido @0.8 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...I PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Rapido.json | 2 +- .../filament/QIDI PETG Tough 0.2 nozzle.json | 2 +- .../filament/QIDI PETG Tough 0.6 nozzle.json | 2 +- .../filament/QIDI PETG Tough 0.8 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Tough.json | 2 +- .../QIDI PETG Translucent @0.2 nozzle.json | 2 +- .../QIDI PETG Translucent @0.6 nozzle.json | 2 +- .../QIDI PETG Translucent @0.8 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...G Translucent @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PETG Translucent.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PETG-CF.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PETG-GF.json | 2 +- .../filament/QIDI PLA Basic @0.2 nozzle.json | 2 +- .../filament/QIDI PLA Basic @0.6 nozzle.json | 2 +- .../filament/QIDI PLA Basic @0.8 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...IDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Basic.json | 2 +- .../QIDI PLA Matte Basic @0.2 nozzle.json | 2 +- .../QIDI PLA Matte Basic @0.6 nozzle.json | 2 +- .../QIDI PLA Matte Basic @0.8 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...A Matte Basic @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Matte Basic.json | 2 +- .../filament/QIDI PLA Rapido 0.2 nozzle.json | 2 +- .../filament/QIDI PLA Rapido 0.8 nozzle.json | 2 +- .../filament/QIDI PLA Rapido @0.6 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...DI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.2 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.6 nozzle.json | 2 +- .../QIDI PLA Rapido Matte @0.8 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Matte.json | 2 +- .../QIDI PLA Rapido Metal @0.2 nozzle.json | 2 +- .../QIDI PLA Rapido Metal @0.6 nozzle.json | 2 +- .../QIDI PLA Rapido Metal @0.8 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Metal.json | 2 +- .../QIDI PLA Rapido Silk @0.6 nozzle.json | 2 +- ...A Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...A Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Qidi/filament/QIDI PLA Rapido Silk.json | 2 +- .../Qidi/filament/QIDI PLA Rapido.json | 2 +- .../filament/QIDI PLA-CF @0.6 nozzle.json | 2 +- .../filament/QIDI PLA-CF @0.8 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../filament/QIDI PPS-CF @0.6 nozzle.json | 2 +- .../filament/QIDI PPS-CF @0.8 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PPS-CF.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI Support For PAHT.json | 2 +- .../filament/QIDI Support For PET-PA.json | 2 +- ...QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI TPU-Aero.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI UltraPA-CF25.json | 2 +- .../QIDI WOOD Rapido @0.6 nozzle.json | 2 +- .../QIDI WOOD Rapido @0.8 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...I WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/QIDI WOOD Rapido.json | 2 +- ...Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...di ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../profiles/Qidi/filament/Qidi ASA-Aero.json | 2 +- ...i Generic ABS @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...i Generic ABS @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...i Generic ABS @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...i Generic ABS @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... Generic ABS @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...Generic ABS @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...Generic ABS @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Generic ABS @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Generic ABS @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Generic ABS @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...eneric ABS @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic ABS.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...i Generic ASA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... Generic ASA @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Generic ASA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...eneric ASA @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic ASA.json | 2 +- .../Qidi/filament/Qidi Generic PA-CF.json | 2 +- .../Qidi/filament/Qidi Generic PA.json | 2 +- .../filament/Qidi Generic PC @0.2 nozzle.json | 2 +- .../filament/Qidi Generic PC @0.8 nozzle.json | 2 +- ...di Generic PC @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...di Generic PC @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...di Generic PC @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...di Generic PC @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... Generic PC @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... Generic PC @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... Generic PC @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... Generic PC @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic PC.json | 2 +- ... Generic PETG @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Generic PETG @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Generic PETG @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Generic PETG @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...Generic PETG @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...eneric PETG @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...neric PETG @Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic PETG-CF.json | 2 +- .../Qidi/filament/Qidi Generic PETG.json | 2 +- ...i Generic PLA @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ...i Generic PLA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...i Generic PLA @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...i Generic PLA @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ... Generic PLA @Qidi X-Max 3 0.2 nozzle.json | 2 +- ... Generic PLA @Qidi X-Max 3 0.6 nozzle.json | 2 +- ... Generic PLA @Qidi X-Max 3 0.8 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 3 0.6 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 3 0.8 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Generic PLA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...eneric PLA @Qidi X-Smart 3 0.2 nozzle.json | 2 +- ...eneric PLA @Qidi X-Smart 3 0.6 nozzle.json | 2 +- ...eneric PLA @Qidi X-Smart 3 0.8 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... High Speed @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...eric PLA Silk @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...ic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic PLA Silk.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ... Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json | 2 +- ...Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.2 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.6 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 3 0.8 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...eneric PLA+ @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.2 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.6 nozzle.json | 2 +- ...neric PLA+ @Qidi X-Smart 3 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic PLA+.json | 2 +- .../Qidi/filament/Qidi Generic PLA-CF.json | 2 +- .../Qidi/filament/Qidi Generic PLA.json | 2 +- .../Qidi/filament/Qidi Generic PVA.json | 2 +- ...neric TPU 95A @Qidi Q1 Pro 0.8 nozzle.json | 2 +- ...ric TPU 95A @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic TPU 95A.json | 2 +- ...i Generic TPU @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...Generic TPU @Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../Qidi/filament/Qidi Generic TPU.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json | 2 +- ...idi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi PC-ABS-FR.json | 2 +- .../profiles/Qidi/filament/Qidi PLA-CF.json | 2 +- ...di TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json | 2 +- ...di TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../Qidi/filament/Qidi TPU 95A-HF.json | 2 +- .../Qidi/filament/Tinmorry PETG-ECO.json | 2 +- .../Qidi/filament/X4/Bambu ABS @X-Max 4.json | 2 +- .../Qidi/filament/X4/Bambu PETG @X-Max 4.json | 2 +- .../Qidi/filament/X4/Bambu PLA @X-Max 4.json | 2 +- .../filament/X4/Generic PLA+ @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX ABS @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX PETG @X-Max 4.json | 2 +- .../filament/X4/HATCHBOX PLA @X-Max 4.json | 2 +- .../filament/X4/Overture ABS @X-Max 4.json | 2 +- .../filament/X4/Overture PLA @X-Max 4.json | 2 +- .../filament/X4/PolyLite ABS @X-Max 4.json | 2 +- .../filament/X4/PolyLite PLA @X-Max 4.json | 2 +- .../filament/Generic ABS @E3NG v1.2S.json | 2 +- .../filament/Generic ASA @E3NG v1.2S.json | 2 +- .../filament/Generic PCCF @E3NG v1.2S.json | 2 +- .../filament/Generic PETG @E3NG v1.2S.json | 2 +- .../filament/Generic PLA @E3NG v1.2S.json | 2 +- .../filament/Generic TPU @E3NG v1.2S.json | 2 +- .../RH3D/filament/fdm_filament_abs.json | 1 - .../RH3D/filament/fdm_filament_asa.json | 1 - .../RH3D/filament/fdm_filament_pccf.json | 1 - .../RH3D/filament/fdm_filament_petg.json | 1 - .../RH3D/filament/fdm_filament_pla.json | 1 - .../RH3D/filament/fdm_filament_tpu.json | 1 - .../Ratrig/filament/RatRig BigNozzle ABS.json | 2 +- .../Ratrig/filament/RatRig BigNozzle ASA.json | 2 +- .../filament/RatRig BigNozzle PCTG.json | 2 +- .../filament/RatRig BigNozzle PETG.json | 2 +- .../Ratrig/filament/RatRig BigNozzle PLA.json | 2 +- .../Ratrig/filament/RatRig BigNozzle TPU.json | 2 +- .../Ratrig/filament/RatRig Generic ABS.json | 2 +- .../Ratrig/filament/RatRig Generic ASA.json | 2 +- .../Ratrig/filament/RatRig Generic PA-CF.json | 2 +- .../Ratrig/filament/RatRig Generic PA.json | 2 +- .../Ratrig/filament/RatRig Generic PC.json | 2 +- .../Ratrig/filament/RatRig Generic PCTG.json | 2 +- .../Ratrig/filament/RatRig Generic PETG.json | 2 +- .../filament/RatRig Generic PLA-CF.json | 2 +- .../Ratrig/filament/RatRig Generic PLA.json | 2 +- .../Ratrig/filament/RatRig Generic PVA.json | 2 +- .../Ratrig/filament/RatRig Generic TPU.json | 2 +- .../Ratrig/filament/RatRig PunkFil ABS.json | 2 +- .../filament/RatRig PunkFil PETG CF.json | 2 +- .../Ratrig/filament/RatRig PunkFil PETG.json | 2 +- .../SecKit/filament/SecKit Generic ABS.json | 2 +- .../SecKit/filament/SecKit Generic ASA.json | 2 +- .../SecKit/filament/SecKit Generic PA-CF.json | 2 +- .../SecKit/filament/SecKit Generic PA.json | 2 +- .../SecKit/filament/SecKit Generic PC.json | 2 +- .../SecKit/filament/SecKit Generic PETG.json | 2 +- .../filament/SecKit Generic PLA-CF.json | 2 +- .../SecKit/filament/SecKit Generic PLA.json | 2 +- .../SecKit/filament/SecKit Generic PVA.json | 2 +- .../SecKit/filament/SecKit Generic TPU.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_ABS.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_PA-CF.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_PETG-CF.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_PETG.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_PLA.json | 2 +- .../SeeMeCNC/filament/SeeMeCNC_TPU.json | 2 +- .../Fiberon ASA-CF08 @Snapmaker U1 base.json | 2 +- .../Fiberon PA12-CF10 @Snapmaker U1 base.json | 2 +- .../Fiberon PA6-CF20 @Snapmaker U1 base.json | 2 +- .../Fiberon PA612-ESD @Snapmaker U1 base.json | 2 +- .../Fiberon PETG-ESD @Snapmaker U1 base.json | 2 +- .../Fiberon PPS-GF20 @Snapmaker U1 base.json | 2 +- .../Panchroma CoPE @Snapmaker U1 base.json | 2 +- .../Panchroma PLA @Snapmaker U1 base.json | 2 +- ...roma PLA Celestial @Snapmaker U1 base.json | 2 +- ...nchroma PLA Galaxy @Snapmaker U1 base.json | 2 +- ...Panchroma PLA Glow @Snapmaker U1 base.json | 2 +- ...hroma PLA Luminous @Snapmaker U1 base.json | 2 +- ...nchroma PLA Marble @Snapmaker U1 base.json | 2 +- ...anchroma PLA Matte @Snapmaker U1 base.json | 2 +- ...hroma PLA Metallic @Snapmaker U1 base.json | 2 +- ...Panchroma PLA Neon @Snapmaker U1 base.json | 2 +- ...anchroma PLA Satin @Snapmaker U1 base.json | 2 +- ...Panchroma PLA Silk @Snapmaker U1 base.json | 2 +- ...roma PLA Starlight @Snapmaker U1 base.json | 2 +- ...oma PLA Temp Shift @Snapmaker U1 base.json | 2 +- ...ma PLA Translucent @Snapmaker U1 base.json | 2 +- ...hroma PLA UV Shift @Snapmaker U1 base.json | 2 +- .../PolyLite CosPLA @Snapmaker U1 base.json | 2 +- .../PolyLite Dual PLA @0.2 nozzle.json | 1 + .../PolyLite J1 PLA @0.2 nozzle.json | 1 + .../filament/Polymaker/PolyLite J1 PLA.json | 1 + .../PolyLite PETG @Snapmaker U1 base.json | 2 +- ...e PETG Translucent @Snapmaker U1 base.json | 2 +- .../PolyLite PLA @Snapmaker U1 base.json | 2 +- .../Polymaker/PolyLite PLA @base.json | 2 +- ...olyLite PLA Galaxy @Snapmaker U1 base.json | 2 +- .../PolyLite PLA Glow @Snapmaker U1 base.json | 2 +- ...yLite PLA Luminous @Snapmaker U1 base.json | 2 +- .../PolyLite PLA Neon @Snapmaker U1 base.json | 2 +- .../PolyLite PLA Pro @Snapmaker U1 base.json | 2 +- ...e PLA Pro Metallic @Snapmaker U1 base.json | 2 +- ...Lite PLA Starlight @Snapmaker U1 base.json | 2 +- ...te PLA Translucent @Snapmaker U1 base.json | 2 +- .../PolyTerra Dual PLA @0.2 nozzle.json | 2 +- .../PolyTerra J1 PLA @0.2 nozzle.json | 2 +- .../filament/Polymaker/PolyTerra J1 PLA.json | 2 +- .../PolyTerra PLA @Snapmaker U1 base.json | 2 +- ...lyTerra PLA Marble @Snapmaker U1 base.json | 2 +- .../PolyTerra PLA+ @Snapmaker U1 base.json | 2 +- .../Polymaker HT-PLA @Snapmaker U1 base.json | 2 +- ...olymaker HT-PLA-GF @Snapmaker U1 base.json | 2 +- .../Polymaker PETG @Snapmaker U1 base.json | 2 +- ...ymaker PETG Galaxy @Snapmaker U1 base.json | 2 +- .../Polymaker PLA @Snapmaker U1 base.json | 2 +- .../Polymaker PLA Pro @Snapmaker U1 base.json | 2 +- ...r PLA Pro Metallic @Snapmaker U1 base.json | 2 +- .../filament/Snapmaker ABS @U1 base.json | 2 +- .../filament/Snapmaker ABS @base.json | 2 +- .../filament/Snapmaker ABS Benchy @U1.json | 2 +- .../filament/Snapmaker ASA @U1 base.json | 2 +- .../filament/Snapmaker ASA @base.json | 2 +- .../filament/Snapmaker Dual ABS @base.json | 2 +- .../filament/Snapmaker Dual ABS Benchy.json | 2 +- .../filament/Snapmaker Dual ASA @base.json | 2 +- .../Snapmaker Dual Breakaway @base.json | 2 +- .../filament/Snapmaker Dual PA-CF @base.json | 2 +- .../filament/Snapmaker Dual PET @base.json | 2 +- .../filament/Snapmaker Dual PETG @base.json | 2 +- .../Snapmaker Dual PETG-CF @base.json | 2 +- .../filament/Snapmaker Dual PLA @base.json | 2 +- .../Snapmaker Dual PLA Eco @base.json | 2 +- .../Snapmaker Dual PLA Matte @base.json | 2 +- .../Snapmaker Dual PLA Metal @base.json | 2 +- .../Snapmaker Dual PLA Silk @base.json | 2 +- .../filament/Snapmaker Dual PLA-CF @base.json | 2 +- .../filament/Snapmaker Dual PVA @base.json | 2 +- .../filament/Snapmaker Dual TPE.json | 2 +- .../filament/Snapmaker Dual TPU @base.json | 2 +- .../Snapmaker Dual TPU High-Flow.json | 2 +- .../filament/Snapmaker J1 ABS @base.json | 2 +- .../filament/Snapmaker J1 ABS Benchy.json | 2 +- .../filament/Snapmaker J1 ASA @base.json | 2 +- .../Snapmaker J1 Breakaway @base.json | 2 +- .../filament/Snapmaker J1 PA-CF @base.json | 2 +- .../filament/Snapmaker J1 PET @base.json | 2 +- .../filament/Snapmaker J1 PETG @base.json | 2 +- .../filament/Snapmaker J1 PETG-CF @base.json | 2 +- .../filament/Snapmaker J1 PLA @base.json | 2 +- .../filament/Snapmaker J1 PLA Eco @base.json | 2 +- .../Snapmaker J1 PLA Matte @base.json | 2 +- .../Snapmaker J1 PLA Metal @base.json | 2 +- .../filament/Snapmaker J1 PLA Silk @base.json | 2 +- .../filament/Snapmaker J1 PLA-CF @base.json | 2 +- .../filament/Snapmaker J1 PVA @base.json | 2 +- .../Snapmaker/filament/Snapmaker J1 TPE.json | 2 +- .../filament/Snapmaker J1 TPU @base.json | 2 +- .../filament/Snapmaker J1 TPU High-Flow.json | 2 +- .../filament/Snapmaker PA-CF @U1 base.json | 2 +- .../filament/Snapmaker PA-CF @base.json | 2 +- .../filament/Snapmaker PET @Dual.json | 2 +- .../filament/Snapmaker PET @U1 base.json | 2 +- .../filament/Snapmaker PET @base.json | 2 +- .../filament/Snapmaker PETG @U1 base.json | 2 +- .../filament/Snapmaker PETG @base.json | 2 +- .../filament/Snapmaker PETG-CF @U1 base.json | 2 +- .../filament/Snapmaker PETG-CF @base.json | 2 +- .../filament/Snapmaker PLA @U1 base.json | 2 +- .../filament/Snapmaker PLA @base.json | 2 +- .../filament/Snapmaker PLA Eco @U1 base.json | 2 +- .../filament/Snapmaker PLA Eco @base.json | 2 +- .../filament/Snapmaker PLA Lite @U1 base.json | 2 +- .../Snapmaker PLA Matte @U1 base.json | 2 +- .../filament/Snapmaker PLA Matte @U1.json | 2 +- .../Snapmaker PLA Metal @U1 base.json | 2 +- .../filament/Snapmaker PLA Silk @U1 base.json | 2 +- .../filament/Snapmaker PLA Silk @base.json | 2 +- .../Snapmaker PLA SnapSpeed @U1 base.json | 2 +- .../filament/Snapmaker PLA-CF @U1 base.json | 2 +- .../filament/Snapmaker PLA-CF @base.json | 2 +- .../filament/Snapmaker PVA @U1 base.json | 2 +- .../filament/Snapmaker PVA @base.json | 2 +- .../Snapmaker/filament/Snapmaker TPE @U1.json | 2 +- .../Snapmaker/filament/Snapmaker TPE.json | 2 +- .../filament/Snapmaker TPU 95A @U1 base.json | 2 +- .../filament/Snapmaker TPU @U1 base.json | 2 +- .../filament/Snapmaker TPU @base.json | 2 +- .../filament/Snapmaker TPU High-Flow @U1.json | 2 +- .../Generic PLA Silk @Sovol SV08 MAX.json | 2 +- .../Polymaker PETG @Sovol SV08 MAX.json | 2 +- .../filament/SUNLU PETG @Sovol SV08 MAX.json | 2 +- .../Sovol/filament/Sovol SV06 ACE ABS.json | 2 +- .../Sovol/filament/Sovol SV06 ACE PETG.json | 2 +- .../Sovol/filament/Sovol SV06 ACE PLA.json | 2 +- .../Sovol/filament/Sovol SV06 ACE TPU.json | 2 +- .../filament/Sovol SV06 Plus ACE ABS.json | 2 +- .../filament/Sovol SV06 Plus ACE PETG.json | 2 +- .../filament/Sovol SV06 Plus ACE PLA.json | 2 +- .../filament/Sovol SV06 Plus ACE TPU.json | 2 +- .../Sovol/filament/Sovol SV07 PLA.json | 2 +- .../Sovol/filament/Sovol SV08 ABS.json | 2 +- .../Sovol/filament/Sovol SV08 PETG.json | 2 +- .../Sovol SV08 PLA @SV08 0.2 nozzle.json | 2 +- .../Sovol/filament/Sovol SV08 PLA.json | 2 +- .../Sovol/filament/Sovol SV08 TPU.json | 2 +- .../Sovol/filament/Sovol Zero ABS.json | 2 +- .../Sovol/filament/Sovol Zero PC.json | 2 +- .../filament/Sovol Zero PETG HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PETG.json | 2 +- .../Sovol Zero PLA Basic HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PLA Basic.json | 2 +- .../Sovol Zero PLA Silk HS Nozzle.json | 2 +- .../Sovol/filament/Sovol Zero PLA Silk.json | 2 +- .../Sovol/filament/Sovol Zero TPU.json | 2 +- .../Tiertime/filament/Tiertime ABS.json | 2 +- .../Tiertime/filament/Tiertime ABS@300HS.json | 2 +- .../Tiertime/filament/Tiertime ASA.json | 2 +- .../Tiertime/filament/Tiertime ASA@300HS.json | 2 +- .../filament/Tiertime Generic ABS.json | 2 +- .../filament/Tiertime Generic ABS@300HS.json | 2 +- .../filament/Tiertime Generic ASA.json | 2 +- .../filament/Tiertime Generic ASA@300HS.json | 2 +- .../filament/Tiertime Generic BVOH.json | 2 +- .../filament/Tiertime Generic BVOH@300HS.json | 2 +- .../filament/Tiertime Generic EVA.json | 2 +- .../filament/Tiertime Generic EVA@300HS.json | 2 +- .../filament/Tiertime Generic HIPS.json | 2 +- .../filament/Tiertime Generic HIPS@300HS.json | 2 +- .../filament/Tiertime Generic PA-CF.json | 2 +- .../Tiertime Generic PA-CF@300HS.json | 2 +- .../filament/Tiertime Generic PA.json | 2 +- .../filament/Tiertime Generic PA@300HS.json | 2 +- .../filament/Tiertime Generic PC.json | 2 +- .../filament/Tiertime Generic PC@300HS.json | 2 +- .../filament/Tiertime Generic PCTG.json | 2 +- .../filament/Tiertime Generic PCTG@300HS.json | 2 +- .../filament/Tiertime Generic PE-CF.json | 2 +- .../Tiertime Generic PE-CF@300HS.json | 2 +- .../filament/Tiertime Generic PE.json | 2 +- .../filament/Tiertime Generic PE@300HS.json | 2 +- .../filament/Tiertime Generic PETG-CF.json | 2 +- .../Tiertime Generic PETG-CF@300HS.json | 2 +- .../filament/Tiertime Generic PETG.json | 2 +- .../filament/Tiertime Generic PETG@300HS.json | 2 +- .../filament/Tiertime Generic PHA.json | 2 +- .../filament/Tiertime Generic PHA@300HS.json | 2 +- .../Tiertime Generic PLA High Speed.json | 2 +- ...Tiertime Generic PLA High Speed@300HS.json | 2 +- .../filament/Tiertime Generic PLA Silk.json | 2 +- .../Tiertime Generic PLA Silk@300HS.json | 2 +- .../filament/Tiertime Generic PLA-CF.json | 2 +- .../Tiertime Generic PLA-CF@300HS.json | 2 +- .../filament/Tiertime Generic PLA.json | 2 +- .../filament/Tiertime Generic PLA@300HS.json | 2 +- .../filament/Tiertime Generic PP-CF.json | 2 +- .../Tiertime Generic PP-CF@300HS.json | 2 +- .../filament/Tiertime Generic PP-GF.json | 2 +- .../Tiertime Generic PP-GF@300HS.json | 2 +- .../filament/Tiertime Generic PP.json | 2 +- .../filament/Tiertime Generic PP@300HS.json | 2 +- .../filament/Tiertime Generic PPA-CF.json | 2 +- .../Tiertime Generic PPA-CF@300HS.json | 2 +- .../filament/Tiertime Generic PPA-GF.json | 2 +- .../Tiertime Generic PPA-GF@300HS.json | 2 +- .../filament/Tiertime Generic PPS-CF.json | 2 +- .../Tiertime Generic PPS-CF@300HS.json | 2 +- .../filament/Tiertime Generic PPS.json | 2 +- .../filament/Tiertime Generic PPS@300HS.json | 2 +- .../filament/Tiertime Generic PVA.json | 2 +- .../filament/Tiertime Generic PVA@300HS.json | 2 +- .../filament/Tiertime Generic SBS.json | 2 +- .../filament/Tiertime Generic SBS@300HS.json | 2 +- .../filament/Tiertime Generic TPU.json | 2 +- .../filament/Tiertime Generic TPU@300HS.json | 2 +- .../Tiertime/filament/Tiertime PA6-CF.json | 2 +- .../filament/Tiertime PA6-CF@300HS.json | 2 +- .../Tiertime/filament/Tiertime PC.json | 2 +- .../Tiertime/filament/Tiertime PC@300HS.json | 2 +- .../Tiertime/filament/Tiertime PET-CF.json | 2 +- .../filament/Tiertime PET-CF@300HS.json | 2 +- .../Tiertime/filament/Tiertime PETG.json | 2 +- .../filament/Tiertime PETG@300HS.json | 2 +- .../Tiertime/filament/Tiertime PLA-CF.json | 2 +- .../filament/Tiertime PLA-CF@300HS.json | 2 +- .../Tiertime/filament/Tiertime PLA.json | 2 +- .../Tiertime/filament/Tiertime PLA@300HS.json | 2 +- .../Tiertime/filament/Tiertime PVA.json | 2 +- .../Tiertime/filament/Tiertime PVA@300HS.json | 2 +- .../Tiertime/filament/Tiertime TPU 95A.json | 2 +- .../filament/Tiertime TPU 95A@300HS.json | 2 +- .../TwoTrees Generic 95A TPU @SK1.json | 2 +- .../TwoTrees Generic HS PLA @SK1.json | 2 +- .../filament/PA6 CF20 (Performance).json | 2 +- .../filament/PETG ESD (Performance).json | 2 +- .../filament/PPS Carbone (Performance).json | 2 +- .../Volumic ABS Ultra Performance.json | 2 +- .../Volumic/filament/Volumic ABS Ultra.json | 2 +- .../Volumic ASA Ultra Performance.json | 2 +- .../Volumic/filament/Volumic ASA Ultra.json | 2 +- .../Volumic FLEX93 Ultra Performance.json | 2 +- .../filament/Volumic FLEX93 Ultra.json | 2 +- .../Volumic NYLON Ultra Performance.json | 2 +- .../Volumic/filament/Volumic NYLON Ultra.json | 2 +- .../filament/Volumic PC Performance.json | 2 +- .../profiles/Volumic/filament/Volumic PC.json | 2 +- .../Volumic PCTG Ultra (Performance).json | 2 +- .../Volumic PETG Ultra Performance.json | 2 +- ...olumic PETG Ultra carbone Performance.json | 2 +- .../filament/Volumic PETG Ultra carbone.json | 2 +- .../Volumic/filament/Volumic PETG Ultra.json | 2 +- .../Volumic PLA Ultra Performance.json | 2 +- .../Volumic/filament/Volumic PLA Ultra.json | 2 +- .../Volumic PP Ultra Performance.json | 2 +- .../Volumic/filament/Volumic PP Ultra.json | 2 +- .../filament/Volumic PVA Performance.json | 2 +- .../Volumic/filament/Volumic PVA.json | 2 +- .../Volumic UNIVERSAL Ultra Performance.json | 2 +- .../filament/Volumic UNIVERSAL Ultra.json | 2 +- .../profiles/Volumic/filament/desactive.json | 2 +- .../Vzbot/filament/Vzbot Generic ABS.json | 2 +- .../Vzbot/filament/Vzbot Generic ASA.json | 2 +- .../Vzbot/filament/Vzbot Generic PA-CF.json | 2 +- .../Vzbot/filament/Vzbot Generic PA.json | 2 +- .../Vzbot/filament/Vzbot Generic PC.json | 2 +- .../Vzbot/filament/Vzbot Generic PETG.json | 2 +- .../Vzbot/filament/Vzbot Generic PLA-CF.json | 2 +- .../Vzbot/filament/Vzbot Generic PLA.json | 2 +- .../Vzbot/filament/Vzbot Generic PVA.json | 2 +- .../Vzbot/filament/Vzbot Generic TPU.json | 2 +- .../Wanhao France/filament/YUMI PETG.json | 2 +- .../filament/YUMI PLA Bowden.json | 2 +- .../filament/YUMI PLA Direct Drive.json | 2 +- .../filament/Yumi Generic PETG.json | 2 +- .../filament/Yumi Generic PLA.json | 2 +- .../WonderMaker/filament/WonderMaker ABS.json | 2 +- .../WonderMaker/filament/WonderMaker ASA.json | 2 +- .../filament/WonderMaker PET-CF.json | 2 +- .../filament/WonderMaker PETG Basic.json | 2 +- .../filament/WonderMaker PLA Basic.json | 2 +- .../filament/WonderMaker PLA Marble.json | 2 +- .../filament/WonderMaker PLA Matte.json | 2 +- .../filament/WonderMaker PLA Metal.json | 2 +- .../filament/WonderMaker PLA Silk.json | 2 +- .../filament/WonderMaker PLA Wood.json | 2 +- .../WonderMaker/filament/WonderMaker PVA.json | 2 +- .../filament/WonderMaker TPU 95A.json | 2 +- .../Generic ABS @Z-Bolt 0.4 nozzle.json | 2 +- .../Generic ABS @Z-Bolt 0.6 nozzle.json | 2 +- .../Generic ABS @Z-Bolt 0.8 nozzle.json | 2 +- .../filament/Generic ABS @Z-Bolt Base.json | 2 +- .../Generic ABS HT @Z-Bolt 0.4 nozzle.json | 2 +- .../Generic ABS HT @Z-Bolt 0.6 nozzle.json | 2 +- .../Generic ABS HT @Z-Bolt 0.8 nozzle.json | 2 +- .../filament/Generic ABS HT @Z-Bolt Base.json | 2 +- .../Generic PA @Z-Bolt 0.4 nozzle.json | 2 +- .../Generic PA @Z-Bolt 0.6 nozzle.json | 2 +- .../Generic PA @Z-Bolt 0.8 nozzle.json | 2 +- .../filament/Generic PA @Z-Bolt Base.json | 2 +- .../Generic PETG @Z-Bolt 0.4 nozzle.json | 2 +- .../Generic PETG @Z-Bolt 0.6 nozzle.json | 2 +- .../Generic PETG @Z-Bolt 0.8 nozzle.json | 2 +- .../filament/Generic PETG @Z-Bolt Base.json | 2 +- .../Generic PLA @Z-Bolt 0.4 nozzle.json | 2 +- .../Generic PLA @Z-Bolt 0.6 nozzle.json | 2 +- .../Generic PLA @Z-Bolt 0.8 nozzle.json | 2 +- .../filament/Generic PLA @Z-Bolt Base.json | 2 +- ...three PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json | 2 +- ...three PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json | 2 +- ...rauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json | 2 +- ...rint ABS Natur P1 @iQ TiQ8 0.4 Nozzle.json | 2 +- ... Polymax black P1 @iQ TiQ2 0.4 Nozzle.json | 2 +- .../VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json | 2 +- .../re3D Greengate rPETG @0.8 nozzle.json | 2 +- .../re3D Greengate rPETG @1.75 nozzle.json | 2 +- .../re3D/filament/re3D Greengate rPETG.json | 2 +- .../re3D/filament/re3D PC @0.4 nozzle.json | 2 +- .../re3D/filament/re3D PC @0.8 nozzle.json | 2 +- resources/profiles/re3D/filament/re3D PC.json | 2 +- .../re3D/filament/re3D PETG @0.4 nozzle.json | 2 +- .../re3D/filament/re3D PETG @0.8 nozzle.json | 2 +- .../profiles/re3D/filament/re3D PETG.json | 2 +- .../re3D/filament/re3D PLA @0.4 nozzle.json | 2 +- .../re3D/filament/re3D PLA @0.8 nozzle.json | 2 +- .../profiles/re3D/filament/re3D PLA.json | 2 +- .../re3D/filament/re3D rPP @0.8 nozzle.json | 2 +- .../re3D/filament/re3D rPP @1.75 nozzle.json | 2 +- .../profiles/re3D/filament/re3D rPP.json | 2 +- resources/profiles/retired_filament_ids.json | 2195 +- scripts/assign_filament_ids.py | 90 +- scripts/filament_id_snapshot.json | 16851 +++++++--------- scripts/tests/test_filament_id.py | 80 + 2663 files changed, 12019 insertions(+), 12498 deletions(-) diff --git a/doc/developer-reference/filament_id.md b/doc/developer-reference/filament_id.md index 377c390422..c17e4e44e4 100644 --- a/doc/developer-reference/filament_id.md +++ b/doc/developer-reference/filament_id.md @@ -112,9 +112,14 @@ python scripts/assign_filament_ids.py --check # 4. verify — the sam `--mint "filament_vendor/filament_type/family_name"` prints the id a triple would mint without touching anything. The default run is idempotent and never rewrites a valid existing id. Maintenance modes (normally only used by id migrations): `--remint VENDOR` re-derives a -vendor's declared ids from their triples, `--drop-redundant-ids VENDOR` deletes declarations -that merely re-declare an inherited OFL id, and `--add-hint "OLD=NEW"` records a cross-island -succession hint. +vendor's declared ids from their triples (a declaration already equal to a salt iteration +of its own triple is conformant and left alone — deliberate salt splits keeping two +presets of one product apart for per-printer AMS matching survive), +`--drop-redundant-ids VENDOR` deletes declarations +that merely re-declare an inherited OFL id, `--add-hint "OLD=NEW"` records a cross-island +succession hint, and `--retire "OLD=NEW"` records succession for a shipped non-island id +that vanished while another declarer kept it alive (lineage the automatic claim vote can no +longer see). If you skip the tooling, CI fails and prints the remedy: the expected id for your family, and the instruction to run `python scripts/assign_filament_ids.py --update-snapshot` and commit @@ -141,7 +146,8 @@ calibration history, filament-id preset lookup): a live preset always wins first installs resolve `GF*` natively and behavior is unchanged wherever the raw id still exists. This is what makes identity-driven re-mints (structure rule 5) safe: the old id keeps resolving to the family's current preset instead of degrading to a `Generic ` fallback. -The file is append-only and maintained exclusively by `--update-snapshot` / `--add-hint`. +The file is append-only and maintained exclusively by `--update-snapshot` / `--add-hint` / +`--retire`. ## How CI enforces this diff --git a/resources/profiles/Afinia/filament/Afinia ABS+.json b/resources/profiles/Afinia/filament/Afinia ABS+.json index 74308bad42..ab908a0583 100644 --- a/resources/profiles/Afinia/filament/Afinia ABS+.json +++ b/resources/profiles/Afinia/filament/Afinia ABS+.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00", + "filament_id": "OFLfywkp", "setting_id": "i5tf9foHnTVNmA2r", "name": "Afinia ABS+", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia ABS+@HS.json b/resources/profiles/Afinia/filament/Afinia ABS+@HS.json index d480c574c0..77fc0deee9 100644 --- a/resources/profiles/Afinia/filament/Afinia ABS+@HS.json +++ b/resources/profiles/Afinia/filament/Afinia ABS+@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFYG2Gfy", + "filament_id": "OFLfywkp", "setting_id": "wAJTMxtCY7EoavRi", "name": "Afinia ABS+@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia ABS.json b/resources/profiles/Afinia/filament/Afinia ABS.json index d51254c1b9..31ad94602c 100644 --- a/resources/profiles/Afinia/filament/Afinia ABS.json +++ b/resources/profiles/Afinia/filament/Afinia ABS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00", + "filament_id": "OFV5wEMe", "setting_id": "LhDHvMepbh8ecfQT", "name": "Afinia ABS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia ABS@HS.json b/resources/profiles/Afinia/filament/Afinia ABS@HS.json index 90c4f9610a..e905e002bd 100644 --- a/resources/profiles/Afinia/filament/Afinia ABS@HS.json +++ b/resources/profiles/Afinia/filament/Afinia ABS@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00_01", + "filament_id": "OFV5wEMe", "setting_id": "qCDnb2iBaz4hd4vX", "name": "Afinia ABS@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia PLA.json b/resources/profiles/Afinia/filament/Afinia PLA.json index c04d368e42..bca3dd518f 100644 --- a/resources/profiles/Afinia/filament/Afinia PLA.json +++ b/resources/profiles/Afinia/filament/Afinia PLA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00", + "filament_id": "OF9HCdyQ", "setting_id": "1qEFsay7kjYIUkpG", "name": "Afinia PLA", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia PLA@HS.json b/resources/profiles/Afinia/filament/Afinia PLA@HS.json index 6f37a09ac3..cfd15a574b 100644 --- a/resources/profiles/Afinia/filament/Afinia PLA@HS.json +++ b/resources/profiles/Afinia/filament/Afinia PLA@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00_01", + "filament_id": "OF9HCdyQ", "setting_id": "N3sCgjdjvp6FTtw9", "name": "Afinia PLA@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia TPU.json b/resources/profiles/Afinia/filament/Afinia TPU.json index d4310612b3..f407976459 100644 --- a/resources/profiles/Afinia/filament/Afinia TPU.json +++ b/resources/profiles/Afinia/filament/Afinia TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "E7WBTARZ971LaDMj", - "filament_id": "GFU01", + "filament_id": "OFDJU6R3", "instantiation": "true", "filament_vendor": [ "Afinia" diff --git a/resources/profiles/Afinia/filament/Afinia TPU@HS.json b/resources/profiles/Afinia/filament/Afinia TPU@HS.json index c2590ff9ef..56992bf983 100644 --- a/resources/profiles/Afinia/filament/Afinia TPU@HS.json +++ b/resources/profiles/Afinia/filament/Afinia TPU@HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "zUqTgAEbqTN1EdRl", - "filament_id": "GFU01_01", + "filament_id": "OFDJU6R3", "instantiation": "true", "filament_vendor": [ "Afinia" diff --git a/resources/profiles/Afinia/filament/Afinia Value ABS.json b/resources/profiles/Afinia/filament/Afinia Value ABS.json index 0036bea580..8a4f2bec1b 100644 --- a/resources/profiles/Afinia/filament/Afinia Value ABS.json +++ b/resources/profiles/Afinia/filament/Afinia Value ABS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00", + "filament_id": "OFXi59OX", "setting_id": "jEYVpOPBjFtQ0DXn", "name": "Afinia Value ABS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json b/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json index 37daf620a9..f98da8225d 100644 --- a/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json +++ b/resources/profiles/Afinia/filament/Afinia Value ABS@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFuYvNS3", + "filament_id": "OFXi59OX", "setting_id": "OxIiEYjbhEvSykaQ", "name": "Afinia Value ABS@HS", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia Value PLA.json b/resources/profiles/Afinia/filament/Afinia Value PLA.json index 52d27a1f8c..1df7bd969f 100644 --- a/resources/profiles/Afinia/filament/Afinia Value PLA.json +++ b/resources/profiles/Afinia/filament/Afinia Value PLA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00", + "filament_id": "OFgHh8ly", "setting_id": "oNBk0IxmW7C99WI3", "name": "Afinia Value PLA", "from": "system", diff --git a/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json b/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json index da0a1ecb8c..1d9f669bd0 100644 --- a/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json +++ b/resources/profiles/Afinia/filament/Afinia Value PLA@HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFvw0owy", + "filament_id": "OFgHh8ly", "setting_id": "BASsUdyvElEVJ9AA", "name": "Afinia Value PLA@HS", "from": "system", diff --git a/resources/profiles/Anker/filament/Anker Generic ABS @base.json b/resources/profiles/Anker/filament/Anker Generic ABS @base.json index 1f6ad45f63..c4982fcfb4 100644 --- a/resources/profiles/Anker/filament/Anker Generic ABS @base.json +++ b/resources/profiles/Anker/filament/Anker Generic ABS @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB99", + "filament_id": "OF3P0BQA", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic ASA @base.json b/resources/profiles/Anker/filament/Anker Generic ASA @base.json index fb0ef78ee7..585c1d0079 100644 --- a/resources/profiles/Anker/filament/Anker Generic ASA @base.json +++ b/resources/profiles/Anker/filament/Anker Generic ASA @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB98", + "filament_id": "OFRiyes1", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PA @base.json b/resources/profiles/Anker/filament/Anker Generic PA @base.json index 9215733825..f95b038b25 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PA @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic PA @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN99", + "filament_id": "OFMgJQCZ", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json b/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json index 7f23645d43..ef1343cd5a 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN98", + "filament_id": "OF7uE5KB", "instantiation": "false", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Anker/filament/Anker Generic PC @base.json b/resources/profiles/Anker/filament/Anker Generic PC @base.json index 1947ecdd35..85eb21469c 100644 --- a/resources/profiles/Anker/filament/Anker Generic PC @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PC @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC99", + "filament_id": "OFGPJxnt", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PETG @base.json b/resources/profiles/Anker/filament/Anker Generic PETG @base.json index c7b85e701a..8bd93439b8 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PETG @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFgvOmM2", "instantiation": "false", "filament_type": [ "PETG" diff --git a/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json b/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json index 4a36c58a86..c39b36f841 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG98", + "filament_id": "OF1daEUW", "instantiation": "false", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/Anker/filament/Anker Generic PLA @base.json b/resources/profiles/Anker/filament/Anker Generic PLA @base.json index 4dbfca4e28..bfe79d7ec5 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PLA @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFndmfJ1", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json b/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json index aac1e8e86b..aa3c69e034 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL96", + "filament_id": "OFXyyfX6", "instantiation": "false", "filament_cost": [ "20" diff --git a/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json b/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json index 39b4ecdfee..23906759c9 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL95", + "filament_id": "OFIYTy8S", "instantiation": "false", "filament_cost": [ "25" diff --git a/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json b/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json index d8eb0f56d9..cd7b72c3af 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL98", + "filament_id": "OFB0a3hT", "instantiation": "false", "filament_type": [ "PLA-CF" diff --git a/resources/profiles/Anker/filament/Anker Generic PVA @base.json b/resources/profiles/Anker/filament/Anker Generic PVA @base.json index 5c7775c2d2..68c9fce25b 100644 --- a/resources/profiles/Anker/filament/Anker Generic PVA @base.json +++ b/resources/profiles/Anker/filament/Anker Generic PVA @base.json @@ -3,6 +3,6 @@ "name": "Anker Generic PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "GFS99", + "filament_id": "OFsCbVbN", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic TPU @base.json b/resources/profiles/Anker/filament/Anker Generic TPU @base.json index 3ca7c49029..1399cfa459 100644 --- a/resources/profiles/Anker/filament/Anker Generic TPU @base.json +++ b/resources/profiles/Anker/filament/Anker Generic TPU @base.json @@ -3,7 +3,7 @@ "name": "Anker Generic TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU99", + "filament_id": "OF6tKa1Z", "instantiation": "false", "filament_retraction_speed": "90", "filament_deretraction_speed": "50", diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json index 35ea99a5fa..99d8da0f4b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "RDI26qeSRSTe0PDg", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json index 6cbc0b1dca..95d5884132 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "Moc1cylP6mmSQjlb", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json index bc96d4e812..3a6e2c9073 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "2xgfnUKyOUQwYWPa", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json index 904b9cf13e..f49664c14b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "NOiAgxA0BbvLhR1v", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json index eb92f6134e..10b81c21b9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "MDWaiSjl89E6Edsn", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json index 2176e2e94b..ea9295b1e5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "wZjVYc7dBDSKRusJ", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json index f6cbd13546..db2517faac 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "AbB6JtoPRsNgmxyy", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json index 85f03c921e..841d07300a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "exX565xnrLPkYkvu", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json index 0d16ce5f5d..c37ebcb971 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "KeEk3yQZrKmJY9Q0", - "filament_id": "OFf2b9wu", + "filament_id": "OF223rZv", "instantiation": "true", "filament_settings_id": [ "Anycubic ABS @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json index 56f4d8957a..c726bbcca0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic ASA", "from": "system", "setting_id": "U66DGcpZeZ24VfPe", - "filament_id": "GFA99", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json index af221cecff..05d943ece7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "06j8OTuYw3Sh9BxL", - "filament_id": "GFA99", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json index 0c2d38c349..2a43e7b355 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "s2XJm0JghCSUDzhh", - "filament_id": "GFA99", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json index 64ca075800..1b038f7ba0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "rf792xZNR7tRGKNg", - "filament_id": "GFA99", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json index 7829e37710..fff937f65e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "wqK6AVf1mNkIOmnt", - "filament_id": "GFASA", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json index 6ee5e7d750..b682258829 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "aMgpooFosBBvlKKR", - "filament_id": "GFASA", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json index 8dc0f96a2c..af3076163a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "Isk7NkdH7GxsEZkS", - "filament_id": "GFASA", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json index 3ca00083f5..f2c2c816d8 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "Ew0Lg6u3e5Xj19Bz", - "filament_id": "GFASA", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json index cf04fda679..36c2d4a7da 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "PEg6aLXcyUc70p9F", - "filament_id": "GFASA", + "filament_id": "OF0yFLkY", "instantiation": "true", "filament_settings_id": [ "Anycubic ASA @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json b/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json index c2863fd513..d4495f172c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "az6wmXeWSCKcUEsK", - "filament_id": "GFB99", + "filament_id": "OF5Zk4e1", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json b/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json index 6bddb8f194..d352fde30a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "qKcef8t7nj8nBjPu", - "filament_id": "GFB98", + "filament_id": "OFI80Hct", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json b/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json index ed1cf5e236..44984af3bf 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "j2PXsJyI9YyoE8lc", - "filament_id": "GFN98", + "filament_id": "OFPdhDlK", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PA.json index 5c93bd4a56..761cfb146b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PA.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "xzI6EgoKa3DFYyoZ", - "filament_id": "GFN99", + "filament_id": "OFB1Tv1E", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PC.json b/resources/profiles/Anycubic/filament/Anycubic Generic PC.json index 20d83e1d1f..766455b1ad 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PC.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "3zgBtEkj1fQpDkxO", - "filament_id": "GFC99", + "filament_id": "OFWY6vBh", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json b/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json index cfda82354d..1ca3b27d9c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "CEd987NP90bPdkW7", - "filament_id": "GFG99", + "filament_id": "OFWzr7m0", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json b/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json index 8246ddafb0..ff449f9c86 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "9gFgyEJelaCIVwAH", - "filament_id": "GFL98", + "filament_id": "OFNcdCrm", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json index 3fb18f36a3..76852ec8aa 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "2MiX54GMiZjFzwBI", - "filament_id": "GFL99", + "filament_id": "OFKyCgaK", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json b/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json index 5cc9abce40..f583d7776a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "I1GMbOsMYktU7EbM", - "filament_id": "GFS99", + "filament_id": "OFSGbf2I", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json b/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json index 25d961c5e8..0cd40e9b50 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json +++ b/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "xrbLc7y1AInpumtv", - "filament_id": "GFU99", + "filament_id": "OFGKLoUm", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json index 66428b6c93..ad40090b9e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "hcL5OHthGzApICTk", - "filament_id": "GFPA", + "filament_id": "OFzS7zt4", "instantiation": "true", "filament_settings_id": [ "Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json index be313bf621..27b3bba016 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "OJbFCKoG5DtVGT9J", - "filament_id": "GFPA", + "filament_id": "OFzS7zt4", "instantiation": "true", "filament_settings_id": [ "Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json index 077e222d49..55756b72f7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "6mMIVw8iheDn1OuV", - "filament_id": "GFPA", + "filament_id": "OFzS7zt4", "instantiation": "true", "filament_settings_id": [ "Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index a67c82ac59..1484c7b6f9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "epl6B2WNjV1dxG5Z", - "filament_id": "GFPA6-CF", + "filament_id": "OFQe7sAx", "instantiation": "true", "filament_settings_id": [ "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 6a58147c35..c6a01fd874 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "eMUXd3PFKHl41TIq", - "filament_id": "GFPA6-CF", + "filament_id": "OFQe7sAx", "instantiation": "true", "filament_settings_id": [ "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 553f17901d..9fab6c40b9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "y9XYrUJrUYKcBhCI", - "filament_id": "GFPA6-CF", + "filament_id": "OFQe7sAx", "instantiation": "true", "filament_settings_id": [ "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index bdc62ab11a..24ac67340d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "nO6m8EaBKREWUi3f", - "filament_id": "GFPAHT-CF", + "filament_id": "OFaEuvNF", "instantiation": "true", "filament_settings_id": [ "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 04cd241a06..fcc33a27cf 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ebKput7Vyn4IQez1", - "filament_id": "GFPAHT-CF", + "filament_id": "OFaEuvNF", "instantiation": "true", "filament_settings_id": [ "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 429647426e..a292502096 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "jzrflGdwy9U8kl1c", - "filament_id": "GFPAHT-CF", + "filament_id": "OFaEuvNF", "instantiation": "true", "filament_settings_id": [ "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json index cfe5743cb9..1fadd8ce20 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "7F0I28djSlDopbIp", - "filament_id": "GFPC", + "filament_id": "OFZtkHRq", "instantiation": "true", "filament_settings_id": [ "Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json index c8ed72562f..05523149be 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "wF10XxL2tNXh8C1p", - "filament_id": "GFPC", + "filament_id": "OFZtkHRq", "instantiation": "true", "filament_settings_id": [ "Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json index 76e21e1ed2..e1cdbd5d6d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "t3VfcIKMk0ELiPP7", - "filament_id": "GFPC", + "filament_id": "OFZtkHRq", "instantiation": "true", "filament_settings_id": [ "Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index 3321afd452..133f388fa1 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "dOOXRvGwMe3NeUj0", - "filament_id": "GFPC-CF", + "filament_id": "OFeIyhUx", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 73378f1ffd..fb7b6e3e98 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "H0IECyfsMaCMdefe", - "filament_id": "GFPC-CF", + "filament_id": "OFeIyhUx", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 11ac6e7bec..96792e69de 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "7nu7lbiAHMeFBIJc", - "filament_id": "GFPC-CF", + "filament_id": "OFeIyhUx", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json index 53e4aba120..9f60de8562 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "puSuSfNyKlYlmLjL", - "filament_id": "GFPC-GF", + "filament_id": "OFxJRuVF", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json index 183655a8a9..9a168b8331 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "1Qdmjm0MNJKU7aCD", - "filament_id": "GFPC-GF", + "filament_id": "OFxJRuVF", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json index 61de49c647..033135697d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "Z0qp7SdwN9luxLFO", - "filament_id": "GFPC-GF", + "filament_id": "OFxJRuVF", "instantiation": "true", "filament_settings_id": [ "Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json index b7f6e07d05..2d5c70f60b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "gmni9H2Du5nxBqQu", - "filament_id": "OFGb4hPY", + "filament_id": "OFUaHEO9", "instantiation": "true", "filament_settings_id": [ "Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json index 93b2dd3423..ae51a2b31f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "zCqTTjac3ydSAw3q", - "filament_id": "GFPEBA", + "filament_id": "OFjLAYgO", "instantiation": "true", "filament_settings_id": [ "Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json index 1abbe033ae..171c1f085c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "1bCJcP2RcDlvIqEo", - "filament_id": "GFPEBA", + "filament_id": "OFjLAYgO", "instantiation": "true", "filament_settings_id": [ "Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json index 5f2fbc693c..65d1e762b4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "5v6coSKjAl220Cnq", - "filament_id": "GFPEBA", + "filament_id": "OFjLAYgO", "instantiation": "true", "filament_settings_id": [ "Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index 852d9be237..b4ab737c8e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "saRQ24o8KHgc1YnM", - "filament_id": "GFPET-CF", + "filament_id": "OFRhCTUg", "instantiation": "true", "filament_settings_id": [ "Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 688d699495..b8bdfac90f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "hYFR2CtiXab9KZUp", - "filament_id": "GFPET-CF", + "filament_id": "OFRhCTUg", "instantiation": "true", "filament_settings_id": [ "Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 95fd9fd80e..1f21b4144f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "RCaf3c84JsWkuJzd", - "filament_id": "GFPET-CF", + "filament_id": "OFRhCTUg", "instantiation": "true", "filament_settings_id": [ "Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json index 64ec79a2f4..d44a266643 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PETG", "from": "system", "setting_id": "qe2wYLf7CEMjmfxj", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json index 68e4c4279c..fbab6ab82c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uNktFymJ3RbGa7k0", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json index 89ae50f686..5966ceb3dd 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "EaW663aw4torYXG8", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json index 11fc401b24..13c1aae54f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "lgVEMmBHMen0sWsI", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json index a9340e6553..85edb1eca9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uLRMTzyJIara4Hr2", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json index 6a2292c913..7fb1d1f66c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "FAyFkKpV5w6G5dU2", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json index e7cd08bc7e..64ec8774b0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "duduwoswLHk9I9sY", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json index e8bd6e56ce..ea95c2b1c5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "b3GU7ytZPEYNNyne", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json index a48eb618db..a2cd9ecc5e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SrHKJh6prBzMz4Se", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json index 5b5b0bbebe..b0c543cebf 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "HyTi93UGno6uAJEO", - "filament_id": "OFdSGkUG", + "filament_id": "OFo6n2pB", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index 6263a4c033..bbe7575b49 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "ajFzrQq9AvGtZCui", - "filament_id": "GFPETG-CF", + "filament_id": "OF9UJOGF", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index d374e345e0..d78fcc1d27 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "VOV59iBwqwMtmi48", - "filament_id": "GFPETG-CF", + "filament_id": "OF9UJOGF", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 1e4342272a..cc3e8a15fc 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "L6GIF36jbXf5NVOw", - "filament_id": "GFPETG-CF", + "filament_id": "OF9UJOGF", "instantiation": "true", "filament_settings_id": [ "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json index 70cdae2da4..30589ac8d1 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "XIq1GeZdHqOl9Gtr", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json index c078bb2d87..5b11a287e2 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "EaVdXQHAyocYUCez", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json index e26d8674f6..8dd7f867ec 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "UpC1Qut0kjYRD9po", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json index 04d4dc5e79..de37d66f03 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "ELCOJflyY3DfpPAH", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json index ba87ad3145..6110cf1fe4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "enkHPcq0yYHsRk7g", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json index 95ddd20b35..81f8dbb4dd 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "qw4uL96miCLTNE7b", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json index e61cdcd625..f03141136c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "KrlWgkC2kVdSRNUx", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json index c81db823c4..02b0a7f46b 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "gK0NhTnxz1VBNHbu", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json index 7159efba5c..504a4b382c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4nCPU0WS74OXowyr", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json index 6473007901..df464f2fa9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "0Ae57Dt0KXnpQUJu", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json index edd899396c..4e60bf4527 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "otxG4N1WrXHUw8Z9", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json index 236dbc4cef..f63d778029 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "GblA3LvgCL63V7Qx", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json index 3a9a24a8e4..43ec857824 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "zYYM5Fznkiz0UgHN", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json index d1a975fb37..0f53f104b5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Z0T8Mul8Ta7zqRjS", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json index 5138470e26..cddede3f5a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "61KPHMw1fRcuaGHk", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json index 0c923b2fe0..398befabb4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "RQJLrGtzvbP2PksP", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json index 79439814b4..fd949e041a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "50Ailboxk7bEclVp", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json index 286464d8c3..f4e9e91f6f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "1hyHPSJZgUpLcW7u", - "filament_id": "OFgK2Xvv", + "filament_id": "OFmjN2bc", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json index 3df60b8a89..ca56418084 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "m7o0ek6sbOavVUpG", - "filament_id": "GFL98", + "filament_id": "OF5PtjTp", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json index 5bb37daa1f..d4805c6bde 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "NVrxrFGYkHRyzrFq", - "filament_id": "GFPLA Glow", + "filament_id": "OF5PtjTp", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json index 284a1f93fd..16034c2b27 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "swLSkqq7X3PhbRiQ", - "filament_id": "GFPLA Glow", + "filament_id": "OF5PtjTp", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json index 26d53a4f72..64832c85ab 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "rsOyKXt6G37Ze51l", - "filament_id": "GFPLA Glow", + "filament_id": "OF5PtjTp", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json index 0050079b0d..97c2eff0d6 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "7GISZDRG9YilzBXM", - "filament_id": "GFPLA Glow", + "filament_id": "OF5PtjTp", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json index cfb1f50c1d..725a9d3f90 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "Sio4qE22N2krNjx1", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json index 6e5c967420..eb59d710e0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4FQaTeouNl9pL4Vl", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json index cef58f9461..9b37a8911c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "AEKT5WgqOTAVYijs", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json index 0e949bd4a6..1c5babfe87 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "xTuh6dk8MdeAovdB", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json index 219a05057c..4db8e137e9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "BpBYwZqt4ik1XIFp", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json index fe6757653c..0deb583eaa 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "2Rk0UA3rtW53ECqo", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json index b2bc996730..75fb882984 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "hQ90rvCLS2rVEPVJ", - "filament_id": "OFgSK1hL", + "filament_id": "OFjVOWfJ", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json index 046b4c87a3..03ea837c0c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "wi26Yq5bX8oGt4CA", - "filament_id": "OFEdyZqS", + "filament_id": "OFIgbDHq", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json index 02945fa977..2c25648b80 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "kVOaVF3YyfGrXTdW", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json index b30450f8ac..7dad057149 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "qSpZJ4cRcg3xb2b2", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json index a70d0629b5..6797adcb5d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "WvmwXnXSDPPtXS8S", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json index 41f1c5f6a8..9580807a70 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "jFKsrMeqeUAcMAyf", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json index 2f2719cb19..3d87a20b63 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ueznw2fLdjN2EbIC", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json index 4f7d332aaa..ef72f06ca1 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "JxYmWTeCtw0VvUcC", - "filament_id": "OFvYfHPB", + "filament_id": "OFIE3vOf", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json index f7a73c748c..99b2c3672d 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "1EID0A7FceyLzja5", - "filament_id": "GFL97", + "filament_id": "OFCp3Bgo", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json index 60f18577e5..9aebb3860e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Fszb00FtQHFOcDmz", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json index 6709f9bbd7..166e46e620 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "wnt68LydXcNxhGhN", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json index 075d1e2afd..2998b7d2eb 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "AzEerDakdHs9Rj3I", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json index 70e61016a5..2b685352b9 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "pUB5V3n7yAbPxFQC", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json index 11ad26dcbf..a1ec3be6e4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "N96XNT6EoNVVFYz0", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json index e80cdc8383..79a96e1143 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Yc1P4D9Z42Abjfut", - "filament_id": "OFjdTQd6", + "filament_id": "OFFwJWea", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json index f29c6e2674..8365eee514 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "zAUNjIY9cGOO3Np5", - "filament_id": "GFL94", + "filament_id": "OFrGJ4tR", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json index 74b39048ee..ea42c44729 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "DkuffHU9VM48p50f", - "filament_id": "GFPLA Translucent", + "filament_id": "OF7c9fln", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json index 56c46b1ca2..1733e1c10a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA", "from": "system", "setting_id": "1va1bLu3J0b5GQt3", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_vendor": [ "Anycubic" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json index 33aa19252c..a80ab1d88f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "XN8zwImhwbZCkl6m", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json index 5570f249d9..d31d75f532 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Vs1ZyZJWHFue8Vc8", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json index 061215d818..ad437f2cab 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "CjXfeHJpdOaSEzN0", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json index 7f8105621a..7b8dd55359 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ol5UhwlAQy7yrXYU", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json index 2c8e3db0b7..3256b90dd3 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "u9nOmt30hBeZoN2w", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json index dd1ac32507..e5db637d98 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "lehlBFE2WVyi24s0", - "filament_id": "OFgrGfPy", + "filament_id": "OFnmp6rt", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index ee6ea50ef1..149b3da021 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA-CF", "from": "system", "setting_id": "Y9mFng36B2vAnP19", - "filament_id": "GFPLA-CF", + "filament_id": "OFZ0mR5b", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 91927df4a8..26753fc994 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA-CF", "from": "system", "setting_id": "9XGVjrGzNa4Br8kB", - "filament_id": "GFPLA-CF", + "filament_id": "OFZ0mR5b", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index 7619db9764..ee21e1359e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic PLA-CF", "from": "system", "setting_id": "vPSse40nqlQ0xBnp", - "filament_id": "GFPLA-CF", + "filament_id": "OFZ0mR5b", "instantiation": "true", "filament_settings_id": [ "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json index 30c1a36997..52a7741b59 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "RXGVKThses3TsFql", - "filament_id": "GFPVA", + "filament_id": "OFTkj6DR", "instantiation": "true", "filament_settings_id": [ "Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json index 388a395309..e24dff10cb 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "1QcMzxPPVVj8k9Zy", - "filament_id": "GFPVA", + "filament_id": "OFTkj6DR", "instantiation": "true", "filament_settings_id": [ "Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json index 9ffe3a4047..df978e5c9c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "70hdDTET074FJB0W", - "filament_id": "GFPVA", + "filament_id": "OFTkj6DR", "instantiation": "true", "filament_settings_id": [ "Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json index f166aa4a6f..7013b6e7d7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "uZIHFQ0GxFemfZUN", - "filament_id": "GFPVA", + "filament_id": "OFTkj6DR", "instantiation": "true", "filament_settings_id": [ "Anycubic PVA @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json index 9579f701eb..d20d995486 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "V130y2Wie3uJtzho", - "filament_id": "GFTPU 95A", + "filament_id": "OFML2aVd", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json index 6b5699d6eb..77a2e2fbcc 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "BAYwaV7mcaLAo1uD", - "filament_id": "GFTPU 95A", + "filament_id": "OFML2aVd", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json index 70fc1e02d7..26f7745b9e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "FvdMeI7MlR1OEt0y", - "filament_id": "GFTPU 95A", + "filament_id": "OFML2aVd", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json index a7067cc8a7..c20722ad8e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "9zwUSJcKXHTuDM1i", - "filament_id": "GFTPU 95A", + "filament_id": "OFML2aVd", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json index 738fcbdc89..5141d90404 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "CdtZIoH8bvFOFU6l", - "filament_id": "OFHL32M0", + "filament_id": "OFMsDGbs", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json index a30e14503f..d6b5217879 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "F3l2tNcFwp9qG7W6", - "filament_id": "OFHL32M0", + "filament_id": "OFMsDGbs", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json index 55f7df2a50..a5f6e735b0 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "WkMd8rjotz7XNLDM", - "filament_id": "OFHL32M0", + "filament_id": "OFMsDGbs", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json index 68f8367ed9..d17fd1217a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "ias4IbNNwygyeow9", - "filament_id": "OFHL32M0", + "filament_id": "OFMsDGbs", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json index 7d4b5e30c3..a9d3339d48 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "9UgHz7Bgv8GpydSE", - "filament_id": "GFTPU for ACE", + "filament_id": "OF0FfcAG", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json index 7b820c0957..da5f869cdd 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "IcPG0rhSw4AuIcPl", - "filament_id": "GFTPU for ACE", + "filament_id": "OF0FfcAG", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json index d3b82264a5..64e303eda7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "fVVxpwKdzpOMntDc", - "filament_id": "GFTPU for ACE", + "filament_id": "OF0FfcAG", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle" diff --git a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json index 7ac3014639..65c41524b7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "Z6f3hM30bVcmttUo", - "filament_id": "GFTPU for ACE", + "filament_id": "OF0FfcAG", "instantiation": "true", "filament_settings_id": [ "Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json index 7904e7cc18..dcc4102b46 100644 --- a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic ABS", "from": "system", "setting_id": "W3GiC5YLzxbbjXLY", - "filament_id": "OFOp3Oef", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json index 852b56e0e0..e025d0587c 100644 --- a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "aFlpGq8eSJQEO1Ie", - "filament_id": "GFPETG", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_settings_id": [ "Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json index 36d7edc211..78925acad9 100644 --- a/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "9hdOsLCrVX3dkem2", - "filament_id": "GFPETG", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_settings_id": [ "Generic PETG @Anycubic Kobra X 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json index f533e62694..a81795f7c0 100644 --- a/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "tUSAvzLu6pVk37kn", - "filament_id": "OFaKZ6JI", + "filament_id": "OF112FvY", "instantiation": "true", "filament_settings_id": [ "Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json index 3edff90e15..d701c6243d 100644 --- a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Anycubic Generic TPU", "from": "system", "setting_id": "kHB2rrxkyz4Clu3N", - "filament_id": "OFsCOJv7", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json index 0400c26a1d..b359d010b2 100644 --- a/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json +++ b/resources/profiles/Anycubic/filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "DmRzQzlSf2KdWwKu", - "filament_id": "GFL57", + "filament_id": "OFEabreg", "instantiation": "true", "compatible_printers": [ "Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json index 21be878b04..b6c5123b8f 100644 --- a/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json +++ b/resources/profiles/Anycubic/filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "gsXcm0Q6TdKW0GBx", - "filament_id": "GFPM001", + "filament_id": "OFsRDvTM", "instantiation": "true", "compatible_printers": [ "Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json index a594a3fe92..679c45f1c7 100644 --- a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json +++ b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "R7XUcQ4LSZA2i4PG", - "filament_id": "GFL79", + "filament_id": "OF5oXk4M", "instantiation": "true", "compatible_printers": [ "Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json index 008247a00a..430ea6c816 100644 --- a/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json +++ b/resources/profiles/Anycubic/filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "iFJbVP8Ui0h5sv5X", - "filament_id": "GFL80", + "filament_id": "OFHknN4v", "instantiation": "true", "compatible_printers": [ "Anycubic Kobra S1 0.4 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json index 4b091e502a..115f53a962 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "m023Z8IkkHMHxuag", - "filament_id": "OFw1S8lL", + "filament_id": "OFgXgt98", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json index f4a5d3f332..1a3a7e4834 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "QGbNWGw8rqvq025W", - "filament_id": "OFw1S8lL", + "filament_id": "OFgXgt98", "instantiation": "true", "chamber_temperature": [ "50" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json index 1edbbfc7f5..4443359064 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "PxGFsoMcfFrTDqzL", - "filament_id": "OFw1S8lL", + "filament_id": "OFgXgt98", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json index 73a7118801..d3bdb2afe2 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ABS @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "o4JZKQmCdnO0hCXZ", - "filament_id": "OFw1S8lL", + "filament_id": "OFgXgt98", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ABS.json b/resources/profiles/Artillery/filament/Artillery ABS.json index b7d3189738..8ad00f3bde 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS.json +++ b/resources/profiles/Artillery/filament/Artillery ABS.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "fsbfMiamVemzRxkG", - "filament_id": "OFw1S8lL", + "filament_id": "OFgXgt98", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json index ebfb82fdf0..089e3d118a 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "AE7wKVIZXHXSXzL5", - "filament_id": "OFtmT4Nd", + "filament_id": "OF5YVJXH", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json index ab290c02b6..634a2f46c8 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "eSwM3ZfSBWqR8Gcf", - "filament_id": "OFtmT4Nd", + "filament_id": "OF5YVJXH", "instantiation": "true", "chamber_temperature": [ "55" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json index 7a0228d38e..40db5fa796 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.6 nozzle", "from": "User", "setting_id": "znMfTFfxvJC7a732", - "filament_id": "OFtmT4Nd", + "filament_id": "OF5YVJXH", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json index a90093dbc5..9769f1d363 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery ASA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "y2DU36j0slaHzg04", - "filament_id": "OFtmT4Nd", + "filament_id": "OF5YVJXH", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery Generic ABS.json b/resources/profiles/Artillery/filament/Artillery Generic ABS.json index df06b7f844..6db4ca98bc 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic ABS.json +++ b/resources/profiles/Artillery/filament/Artillery Generic ABS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFwMFLAm", "setting_id": "C4oiu2SBLwfTEcXu", "name": "Artillery Generic ABS", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery Generic ASA.json b/resources/profiles/Artillery/filament/Artillery Generic ASA.json index e3b8cc1f93..5acf3d49f2 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic ASA.json +++ b/resources/profiles/Artillery/filament/Artillery Generic ASA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB98", + "filament_id": "OF6vKLaU", "setting_id": "1gls4zCclgN68Hlc", "name": "Artillery Generic ASA", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery Generic PETG.json b/resources/profiles/Artillery/filament/Artillery Generic PETG.json index cc2f29e875..d1bafe2688 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PETG.json +++ b/resources/profiles/Artillery/filament/Artillery Generic PETG.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFyK5Lt9", "setting_id": "Ou4NR5DVvalg5kCe", "name": "Artillery Generic PETG", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json b/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json index 7c1a231dbc..2324bd6ae2 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json +++ b/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL98", + "filament_id": "OFUtGagr", "setting_id": "h23GL00BFCliLh9N", "name": "Artillery Generic PLA-CF", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery Generic PLA.json b/resources/profiles/Artillery/filament/Artillery Generic PLA.json index 1211c22b3c..4133075578 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PLA.json +++ b/resources/profiles/Artillery/filament/Artillery Generic PLA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFnfBvn5", "setting_id": "Bpy4tAvspysDWosL", "name": "Artillery Generic PLA", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery Generic TPU.json b/resources/profiles/Artillery/filament/Artillery Generic TPU.json index ff724d1925..522cc0fbfb 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic TPU.json +++ b/resources/profiles/Artillery/filament/Artillery Generic TPU.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFU99", + "filament_id": "OFEE1Dld", "setting_id": "u8YE6r4sGJ0jvqBn", "name": "Artillery Generic TPU", "from": "system", diff --git a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json index 662524238b..2910031a1d 100644 --- a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "lOsH1teHe8Pgzx2g", - "filament_id": "OFp90N8a", + "filament_id": "OFMSvS8z", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json index 3c2efc54ed..d12faf0b94 100644 --- a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "b4BKJMUxArvLuEOh", - "filament_id": "OFnY9ovF", + "filament_id": "OFtGC1ye", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json index d734ab4c40..8c726cb639 100644 --- a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "WawbnfhWn4MT6Hz7", - "filament_id": "OFNRgSch", + "filament_id": "OFfb10SK", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json index e4f3c78276..8e40f27f5b 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "a5jwQ6nyffW1Vqv1", - "filament_id": "OFw0qp7w", + "filament_id": "OFb5EEM3", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json index 9af913f87a..1c56ccb925 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "QeiSAakfMW7HyhJ7", - "filament_id": "OFw0qp7w", + "filament_id": "OFb5EEM3", "instantiation": "true", "chamber_temperature": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json index c9294a933d..426ec21706 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "VGu7C3uk8d6ibIg4", - "filament_id": "OFw0qp7w", + "filament_id": "OFb5EEM3", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json index b204a0b6a6..2a103c381a 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PET @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "Oj11BhU0QajmDrh3", - "filament_id": "OFw0qp7w", + "filament_id": "OFb5EEM3", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json index d29a639777..1ffe8a243e 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "kAlZ7nCYo53UVVx3", - "filament_id": "OFEYKrjb", + "filament_id": "OFilnglt", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json index 4620665cc8..cb62e565ee 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "g7UIfJTOPzMQzfrH", - "filament_id": "OFEYKrjb", + "filament_id": "OFilnglt", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json index 4ffe6eaa01..952e738ff8 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "uuPf0MfNTZ2lihtG", - "filament_id": "OFEYKrjb", + "filament_id": "OFilnglt", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json index 2ae4e8e114..b1f14d1aac 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "dQBp2T4ap90uAOYs", - "filament_id": "OFEYKrjb", + "filament_id": "OFilnglt", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json index b90df9567f..9af4f2eeef 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "GrdWgUGdXt23jnBu", - "filament_id": "OFt5bvKK", + "filament_id": "OF8wE5l7", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json index 5d14168c7b..470b5e89f1 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "RTQvSwJBWnut5aBo", - "filament_id": "OFt5bvKK", + "filament_id": "OF8wE5l7", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json index 7c7046e7b9..bcfb9cefb9 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "Wkt1IClO4nwH3Xa7", - "filament_id": "OFt5bvKK", + "filament_id": "OF8wE5l7", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json index 5152d65dd6..4231ec86d4 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "Zlvodz3cris0hmof", - "filament_id": "OFt5bvKK", + "filament_id": "OF8wE5l7", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json index 66416e969a..a917f9551b 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "JvmeW29kHCp7HiA6", - "filament_id": "OF9vnvM8", + "filament_id": "OFOnSNt3", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Artillery/filament/Artillery PETG.json b/resources/profiles/Artillery/filament/Artillery PETG.json index a4922a1f32..11bc5b0831 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG.json +++ b/resources/profiles/Artillery/filament/Artillery PETG.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "1MyhYGMxJCmZnJRP", - "filament_id": "OFEYKrjb", + "filament_id": "OFilnglt", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json index 258f94de1a..625dbdf8e6 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "sqlU8YRYqavJBap3", - "filament_id": "Pfcf9c4c", + "filament_id": "OFzY7N3Z", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json index 573a888662..a5270921bd 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "7V8Vj5ykHmTYtxcC", - "filament_id": "Pfcf9c4c", + "filament_id": "OFzY7N3Z", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json index 340947ce24..fddc6cd71b 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "J8rOxOcsB6HN00HI", - "filament_id": "Pfcf9c4c", + "filament_id": "OFzY7N3Z", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json index 4efb9507a5..936afae087 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "N3iYnDshA5ruihVE", - "filament_id": "OF57IbZT", + "filament_id": "OFXk1emJ", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json index 08e2927b0e..18c8c42d76 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "zBUD1JyuZF9MOncA", - "filament_id": "OF57IbZT", + "filament_id": "OFXk1emJ", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json index 4c009a344b..07ce00f7d6 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "NKkZjEtDjxOMLjoo", - "filament_id": "OF57IbZT", + "filament_id": "OFXk1emJ", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json index 7c08a8ffba..d7d64ef75b 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "c9BAMzt2w30nB2rC", - "filament_id": "OF57IbZT", + "filament_id": "OFXk1emJ", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json index b636c0f7d6..cb20dc9405 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "2VIrSoq3kufjHMXj", - "filament_id": "OFXA8vy9", + "filament_id": "OF4Nhggz", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "100" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic.json b/resources/profiles/Artillery/filament/Artillery PLA Basic.json index 5455de4a86..5e777a701b 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "DcGBMRjdcgLx6pWG", - "filament_id": "OF57IbZT", + "filament_id": "OFXk1emJ", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json index 5156b5e69f..398d8d6477 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "tgmFMdyhSX05kuxw", - "filament_id": "OFKDnrjL", + "filament_id": "OFAC7Wyu", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json index 6c2a47f771..77fbb84757 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "9zqAIfywiv9zm77X", - "filament_id": "OFKDnrjL", + "filament_id": "OFAC7Wyu", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json index 58702d5a69..97e72d2b39 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "W6ipHAoCgHIUIT3g", - "filament_id": "OFKDnrjL", + "filament_id": "OFAC7Wyu", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json index 3548bc52a6..8d5aa70714 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "HggSuUWe1zWOlQIK", - "filament_id": "OFKDnrjL", + "filament_id": "OFAC7Wyu", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte.json b/resources/profiles/Artillery/filament/Artillery PLA Matte.json index 04a2402b6f..4ef84538fb 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "kt8uKXpMqxrFrHaG", - "filament_id": "OFKDnrjL", + "filament_id": "OFAC7Wyu", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json index d86ce77a43..ac3b82dc53 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "TDwRIGXkpJIW38jG", - "filament_id": "OFnyirh9", + "filament_id": "OFLbXwoL", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json index f5c6f05245..ed36227a9e 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "BWMjPUWXwumQoY5H", - "filament_id": "OFnyirh9", + "filament_id": "OFLbXwoL", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json index 8743dd44bd..3ab80c6fe4 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "PpuiGWbDlVZwBIxb", - "filament_id": "OFnyirh9", + "filament_id": "OFLbXwoL", "instantiation": "true", "filament_settings_id": [ "Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json index 8df6dd1d13..00227f72e8 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery PLA @Artillery M1 Pro 0.8 nozzle", "from": "User", "setting_id": "dr2wlzDc1AC3tciI", - "filament_id": "OFnyirh9", + "filament_id": "OFLbXwoL", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk.json b/resources/profiles/Artillery/filament/Artillery PLA Silk.json index 9eb9ea142a..897e98f45c 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "rd0U4uP6mM8S8lDg", - "filament_id": "OFnyirh9", + "filament_id": "OFLbXwoL", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Tough.json b/resources/profiles/Artillery/filament/Artillery PLA Tough.json index bca655122d..cce5b7fc0a 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Tough.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Tough.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "hLFvQXsyyUrguGEp", - "filament_id": "OFtXBjvb", + "filament_id": "OF0R5Wc7", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json index 51433f69be..33aea1f4fc 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "oT12s9CEV1CTD6eB", - "filament_id": "OFvxvkAd", + "filament_id": "OFAZllAN", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json index ec64d0b506..7dec8693bf 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.2 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.2 nozzle", "from": "system", "setting_id": "FIcb3cOIanxmvHe2", - "filament_id": "OFc2SnEp", + "filament_id": "OFkx5MEe", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json index c3f230b487..00b7642e7c 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "r2q4QIlfTUCIz43f", - "filament_id": "OFc2SnEp", + "filament_id": "OFkx5MEe", "instantiation": "true", "chamber_temperature": [ "50" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json index 1759d32ad5..9f3dcbb2b8 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "h5xquKMT9l0rwcTU", - "filament_id": "OFc2SnEp", + "filament_id": "OFkx5MEe", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json index 412d60e440..753f9c9dd9 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery PVA @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "cElJlbCAgAqSQiPZ", - "filament_id": "OFc2SnEp", + "filament_id": "OFkx5MEe", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json index 3925e8963d..09c0c766ad 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "p6vnCneuwtM0PzL7", - "filament_id": "OFTbsWVg", + "filament_id": "OFcJDtTx", "instantiation": "true", "close_fan_the_first_x_layers": [ "1" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json index 0b0e495f7d..16b2485862 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery TPU @Artillery M1 Pro 0.6 nozzle", "from": "system", "setting_id": "QIgpIamYbSdI4DPW", - "filament_id": "OFTbsWVg", + "filament_id": "OFcJDtTx", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json index 83a7dbd0f6..f0b83d6e6f 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "Artillery TPU @Artillery M1 Pro 0.8 nozzle", "from": "system", "setting_id": "W22GbPPOgtH4NAAH", - "filament_id": "OFTbsWVg", + "filament_id": "OFcJDtTx", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Artillery/filament/Artillery TPU.json b/resources/profiles/Artillery/filament/Artillery TPU.json index f4ec63c166..5d71a93448 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU.json +++ b/resources/profiles/Artillery/filament/Artillery TPU.json @@ -4,7 +4,7 @@ "inherits": "Artillery Generic PLA", "from": "system", "setting_id": "IcV1jLJaS5rmdNOY", - "filament_id": "OFTbsWVg", + "filament_id": "OFcJDtTx", "instantiation": "true", "compatible_printers": [ "Artillery Sidewinder X3 Pro 0.4 nozzle", diff --git a/resources/profiles/Blocks/filament/Blocks Generic ABS.json b/resources/profiles/Blocks/filament/Blocks Generic ABS.json index abb5c988dc..d23b6ebb31 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ABS.json +++ b/resources/profiles/Blocks/filament/Blocks Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "QhLaLEkxhvIMa3Ik", - "filament_id": "BSFI004", + "filament_id": "OFma52eS", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json b/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json index 5373b92b4c..5721335e8a 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json +++ b/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "FF6D7i492XTrb8AO", - "filament_id": "OFy7oQ1g", + "filament_id": "OFctbSkL", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic ASA.json b/resources/profiles/Blocks/filament/Blocks Generic ASA.json index a3fa2a86e8..1fc34c909b 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ASA.json +++ b/resources/profiles/Blocks/filament/Blocks Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "DcgqA071S6MRVbKI", - "filament_id": "BSFI005", + "filament_id": "OFB9dx27", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json b/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json index 47732a6c9d..009afa1b6b 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "B254XDRQzysz7YUd", - "filament_id": "BSFI007", + "filament_id": "OF8bLDu7", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PA.json b/resources/profiles/Blocks/filament/Blocks Generic PA.json index edaee826f4..b875eb13a4 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PA.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "3L5IYVTlkt8V0EiW", - "filament_id": "BSFI006", + "filament_id": "OFiUSDih", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PC.json b/resources/profiles/Blocks/filament/Blocks Generic PC.json index a6519b1c0d..295372a6d3 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PC.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "VUPeelf61TmTQrun", - "filament_id": "BSFI008", + "filament_id": "OFahE7HP", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PETG.json b/resources/profiles/Blocks/filament/Blocks Generic PETG.json index 0c38a3155d..d34b3ca904 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PETG.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_petg", "from": "system", "setting_id": "FKkbjL1V4ZEjXB0H", - "filament_id": "BSFI002", + "filament_id": "OFrgGex8", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json b/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json index 7568cdf5af..efa68921b7 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "RHKPeXZiv4E2p4lP", - "filament_id": "BSFI010", + "filament_id": "OFupq0tY", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PLA.json b/resources/profiles/Blocks/filament/Blocks Generic PLA.json index 3f3838e22f..dd22e2c7a2 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PLA.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "N3wDUqmBETfelOoG", - "filament_id": "BSFI001", + "filament_id": "OFNYewRS", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PVA.json b/resources/profiles/Blocks/filament/Blocks Generic PVA.json index 2719cfe661..53de20761e 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PVA.json +++ b/resources/profiles/Blocks/filament/Blocks Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "J74KgdSzf503Tk9p", - "filament_id": "BSFI009", + "filament_id": "OFiorRtJ", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Blocks/filament/Blocks Generic TPU.json b/resources/profiles/Blocks/filament/Blocks Generic TPU.json index 5c04853ee8..271d4ec00f 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic TPU.json +++ b/resources/profiles/Blocks/filament/Blocks Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "xFRwN8ZEwEGlLFwo", - "filament_id": "BSFI003", + "filament_id": "OFMEbuBE", "instantiation": "true", "filament_max_volumetric_speed": [ "4" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json b/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json index 9e0a23abf9..1a1f01b3d9 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json +++ b/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "3IxBZSWFfFGmKAQ7", - "filament_id": "OFAUX5fB", + "filament_id": "OFZ4fTO8", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json b/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json index 7579260e16..fc011cc9bc 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json +++ b/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "jZBfhlf6VX5r3KHb", - "filament_id": "GFG99", + "filament_id": "OFz3q5Xz", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json b/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json index dd50bdd607..4b2cd9bbea 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json +++ b/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Uv3kcMO5qNwkrMPV", - "filament_id": "GFL99", + "filament_id": "OF51XQar", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json index e8067f4945..f6df5c7924 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic ABS", "from": "system", "setting_id": "VkCgo0e4KR24DX28", - "filament_id": "GFB99", + "filament_id": "OFs1sNLz", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json b/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json index 201155e883..c98af61d3d 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "XslWGeEo1Okicu28", - "filament_id": "GFB99", + "filament_id": "OFZPlCck", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json b/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json index d48f96d7cc..6c3dd293d6 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "wBBQiy8JV2LrnIav", - "filament_id": "OF7tgL9c", + "filament_id": "OFBIadjM", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json b/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json index c919e8f921..f0dcbdaf77 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic ABS", "from": "system", "setting_id": "bBNozld07rP6mV3d", - "filament_id": "OFzQQeCi", + "filament_id": "OFDeTsJw", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json b/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json index d12453cdb1..a5d4cab7eb 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "YZT1Uv73b8ArVoX3", - "filament_id": "OFfiN1Lw", + "filament_id": "OFdXgp2K", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json b/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json index 99304dfd88..42865bb8af 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "S2vCGI7sqN8FwodT", - "filament_id": "OF3YOOOs", + "filament_id": "OFXXUHSG", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json b/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json index a3532b9e5b..c4dad7d095 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "judDupafROrSnVv8", - "filament_id": "GFG99", + "filament_id": "OFfxFQf9", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json index 58b3a1d750..cf2993ee62 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "EZA59VPwew1cpyUJ", - "filament_id": "OFxVzzn4", + "filament_id": "OFFxZ7hZ", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json index 861b4d9721..90409c864e 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "M9wzNVOPRQlayQH1", - "filament_id": "OFlN56xW", + "filament_id": "OFeK2vkS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json b/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json index 831c14dafe..bf0db17fb4 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "nnyBm7dlrz3OsVQz", - "filament_id": "GFL99", + "filament_id": "OF5vzBhb", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json b/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json index d8650e8a97..3e89ad7c6b 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic PLA", "from": "system", "setting_id": "ePZFnkgBiyFuKvji", - "filament_id": "OFQ5xAKf", + "filament_id": "OFRusgEn", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json b/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json index a743d646e4..a1ff21f85d 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json +++ b/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "HYciEf4160uMYGnH", - "filament_id": "OFUqBrgf", + "filament_id": "OFYlZMmy", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json index f162434556..a1ca25e1a7 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Chuanying Generic PETG", "from": "system", "setting_id": "9xxP8YWj4hnWQoVZ", - "filament_id": "GFG99", + "filament_id": "OFlXJxX1", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json b/resources/profiles/Co Print/filament/CoPrint Generic ABS.json index 6ec666e6f0..9b8e5c7995 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "xW2rHuxT9o7MG8qB", - "filament_id": "OFNvrbnf", + "filament_id": "OFU6fjbi", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json b/resources/profiles/Co Print/filament/CoPrint Generic PETG.json index b2661a6c91..51dcfb2fff 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "k4m484S1samBGEVb", - "filament_id": "OFDramZ2", + "filament_id": "OFXuwtnq", "instantiation": "true", "fan_max_speed": [ "90" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic PLA.json b/resources/profiles/Co Print/filament/CoPrint Generic PLA.json index c6db574a42..265f8ba442 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic PLA.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Hv40GsmNozxOJ38T", - "filament_id": "GFL99", + "filament_id": "OF6KELDx", "instantiation": "true", "filament_load_time": [ "9.75" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json b/resources/profiles/Co Print/filament/CoPrint Generic TPU.json index 506acb77ff..fc2fc69008 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json +++ b/resources/profiles/Co Print/filament/CoPrint Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "CoPrint Generic PLA", "from": "system", "setting_id": "2mWqeih012I5D2CK", - "filament_id": "OF2Psxdc", + "filament_id": "OF7g2vYQ", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo ABS @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo ABS @CoLiDo SR1.json index 55259a5459..25b69d8c2d 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo ABS @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo ABS @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ZztaHKdQ4dmOgAXr", - "filament_id": "GFB99", + "filament_id": "OFneOFWe", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json index 94c529c9fe..84469a0d15 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "acWqrAFyi2SIkNwa", - "filament_id": "GFB99", + "filament_id": "OFWIr7ZE", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json index 5dc279ffe6..3ee0390bfd 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "l44ioMidpUECbGYF", - "filament_id": "GFB99", + "filament_id": "OFWIr7ZE", "instantiation": "true", "fan_max_speed": [ "20" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json index 1c0751457e..1a3839374a 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "IBtIS8bwcIWhiCow", - "filament_id": "GFG99", + "filament_id": "OF3wxlw9", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json index e09df95679..7b532e7dfa 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "AovAvrEzGiZqFRpc", - "filament_id": "GFG99", + "filament_id": "OF3wxlw9", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json index 1848216904..bb5c3d8dc7 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "foEeUk6PK78QXleQ", - "filament_id": "GFA99", + "filament_id": "OFeDfaCh", "instantiation": "true", "fan_cooling_layer_time": [ "80" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json index 8d9877cfa3..d0e36e8146 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "HY8RFWOKRptC2YVt", - "filament_id": "GFA99", + "filament_id": "OFeDfaCh", "instantiation": "true", "fan_cooling_layer_time": [ "80" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json index 96912962de..e4fd40ea60 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "ZgbaHhRSK8AW38MB", - "filament_id": "GFU99", + "filament_id": "OFdlGycb", "instantiation": "true", "filament_density": [ "1.22" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json index 3bbea681d1..9fb7c570e9 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "f6yTiUiYYLckJBTQ", - "filament_id": "GFU99", + "filament_id": "OFdlGycb", "instantiation": "true", "filament_density": [ "1.22" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PETG @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo PETG @CoLiDo SR1.json index 5b93fc1460..0fd7c49f94 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PETG @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PETG @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "z1ffOb3jPP1GVXnD", - "filament_id": "GFG99", + "filament_id": "OF7lwj52", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json index 013aa09259..374321236c 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PLA @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Gj0o6Rmn4qWXDLov", - "filament_id": "OFfoA8kJ", + "filament_id": "OFm70lLt", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json b/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json index 677ec930e3..6d3067d72a 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PLA Silk @CoLiDo SR1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "mLgBNw0OzvJSS8IG", - "filament_id": "OFxlch4V", + "filament_id": "OFnSeLHk", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json b/resources/profiles/CoLiDo/filament/CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json index de34110826..c02f7be129 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json +++ b/resources/profiles/CoLiDo/filament/CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "IDGh5vNSqKSOVn3z", - "filament_id": "GFA99", + "filament_id": "OFctg8r1", "instantiation": "true", "filament_vendor": [ "CoLiDo" diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json b/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json index 0dbfbdf5af..6a1ff9248e 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json +++ b/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "7xmGiJHgiD5KKTXt", - "filament_id": "GFB99", + "filament_id": "OFsoQ12i", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json b/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json index 18f1ea232a..44dad83ceb 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json +++ b/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "FJjkU2RhAZD10Cw8", - "filament_id": "GFG99", + "filament_id": "OF6Fpw1E", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json b/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json index d3aed1e46d..4674b2b60a 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json +++ b/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "sGAn6RP69saYSqcY", - "filament_id": "GFL99", + "filament_id": "OFVKADz5", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json index e0785fd57f..a88573aa26 100644 --- a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json +++ b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json @@ -4,7 +4,7 @@ "inherits": "Comgrow Generic PLA", "from": "system", "setting_id": "TnHaf2TSHVfuwbVg", - "filament_id": "GFL99", + "filament_id": "OFNWcJsM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 V4-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V4-all.json index 33b6514886..faa9404b3b 100644 --- a/resources/profiles/Creality/filament/CR-ABS @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V4-all.json @@ -173,5 +173,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @Hi-all.json b/resources/profiles/Creality/filament/CR-ABS @Hi-all.json index e4620945d8..10c1cce09d 100644 --- a/resources/profiles/Creality/filament/CR-ABS @Hi-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @Hi-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-ABS @K1 Max_CFS-C-all.json index 070110cef4..12afdde3cd 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1 Max_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1 SE-all.json b/resources/profiles/Creality/filament/CR-ABS @K1 SE-all.json index 1d7cd3dade..00340895f4 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1 SE-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1 SE-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/CR-ABS @K1 SE_CFS-C-all.json index f6ea93b388..d80c98423f 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1 SE_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1C-all.json b/resources/profiles/Creality/filament/CR-ABS @K1C-all.json index d592d9d18f..f41b1bb940 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-ABS @K1C_CFS-C-all.json index a0451ea1ba..f91677ab31 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1C_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-ABS @K1_CFS-C-all.json index 6f3bbe777e..b83d103747 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K1_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-ABS @K2 Plus-all.json index 55a2fe9a80..d807936bfc 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K2 Plus-all.json @@ -157,5 +157,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-ABS @K2 Pro-all.json index cea39dba0e..b6334a93b6 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K2 Pro-all.json @@ -161,5 +161,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K2 SE-all.json b/resources/profiles/Creality/filament/CR-ABS @K2 SE-all.json index 8edabb85be..f49bf5dd93 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K2 SE-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K2 SE-all.json @@ -175,5 +175,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-ABS @K2-all.json b/resources/profiles/Creality/filament/CR-ABS @K2-all.json index ec6591b352..d0f92634b1 100644 --- a/resources/profiles/Creality/filament/CR-ABS @K2-all.json +++ b/resources/profiles/Creality/filament/CR-ABS @K2-all.json @@ -159,5 +159,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "07001" + "filament_id": "OFGwZmgS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Nylon @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Nylon @K1 Max_CFS-C-all.json index cc25eecbca..bc9719ad07 100644 --- a/resources/profiles/Creality/filament/CR-Nylon @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Nylon @K1 Max_CFS-C-all.json @@ -187,5 +187,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "11001" + "filament_id": "OFvLppPU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Nylon @K1C-all.json b/resources/profiles/Creality/filament/CR-Nylon @K1C-all.json index 9782134aaf..bf9ce0c9e1 100644 --- a/resources/profiles/Creality/filament/CR-Nylon @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-Nylon @K1C-all.json @@ -188,5 +188,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "11001" + "filament_id": "OFvLppPU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Nylon @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Nylon @K1C_CFS-C-all.json index 8c1c7a27c6..e2a7ef32fa 100644 --- a/resources/profiles/Creality/filament/CR-Nylon @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Nylon @K1C_CFS-C-all.json @@ -188,5 +188,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "11001" + "filament_id": "OFvLppPU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Nylon @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Nylon @K1_CFS-C-all.json index 7be6522dd1..48747723f0 100644 --- a/resources/profiles/Creality/filament/CR-Nylon @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Nylon @K1_CFS-C-all.json @@ -188,5 +188,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "11001" + "filament_id": "OFvLppPU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Nylon @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-Nylon @K2 Plus-all.json index 7466949b1a..d665bb8d16 100644 --- a/resources/profiles/Creality/filament/CR-Nylon @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-Nylon @K2 Plus-all.json @@ -194,5 +194,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "11001" + "filament_id": "OFvLppPU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V4-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V4-all.json index ded5f2b093..bfa6bd0bc7 100644 --- a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @Hi-all.json b/resources/profiles/Creality/filament/CR-PETG @Hi-all.json index 6e8dde0750..4b3ab33892 100644 --- a/resources/profiles/Creality/filament/CR-PETG @Hi-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @Hi-all.json @@ -148,5 +148,5 @@ "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PETG @K1 Max_CFS-C-all.json index 65165f30ea..bc597f92b3 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1 Max_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1 SE-all.json b/resources/profiles/Creality/filament/CR-PETG @K1 SE-all.json index fa3c9922d0..1c92de9916 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1 SE-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1 SE-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PETG @K1 SE_CFS-C-all.json index a388228d10..be3983b772 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1 SE_CFS-C-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1C-all.json b/resources/profiles/Creality/filament/CR-PETG @K1C-all.json index 57482693fa..2829598e5a 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1C-all.json @@ -157,5 +157,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PETG @K1C_CFS-C-all.json index 222a850feb..a6ee2af473 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1C_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PETG @K1_CFS-C-all.json index 38be118853..d05baf33af 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K1_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-PETG @K2 Plus-all.json index 0c9fcef567..ead310f41c 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K2 Plus-all.json @@ -142,5 +142,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @K2 Pro-all.json index ec8cb70475..b73011595f 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K2 Pro-all.json @@ -154,5 +154,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K2 SE-all.json b/resources/profiles/Creality/filament/CR-PETG @K2 SE-all.json index e03a34d210..2137f18ef6 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K2 SE-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K2 SE-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @K2-all.json b/resources/profiles/Creality/filament/CR-PETG @K2-all.json index 3c328bf7ef..16bd7c7053 100644 --- a/resources/profiles/Creality/filament/CR-PETG @K2-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @K2-all.json @@ -154,5 +154,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PETG @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-PETG @SPARKX i7-all.json index 6bbbc65e9f..befe270b95 100644 --- a/resources/profiles/Creality/filament/CR-PETG @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-PETG @SPARKX i7-all.json @@ -135,5 +135,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "06001" + "filament_id": "OF3WQaKK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V4-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V4-all.json index 175f304ef7..83548daafd 100644 --- a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @Hi-all.json b/resources/profiles/Creality/filament/CR-PLA @Hi-all.json index dd543fda9a..0dc26b51ba 100644 --- a/resources/profiles/Creality/filament/CR-PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @Hi-all.json @@ -137,5 +137,5 @@ "Creality Hi 0.2 nozzle", "Creality Hi 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA @K1 Max_CFS-C-all.json index 6fd4e736e7..84fb331f5b 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1 Max_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1 SE-all.json b/resources/profiles/Creality/filament/CR-PLA @K1 SE-all.json index 0b31dd3075..1f5d2b746a 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1 SE-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1 SE-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA @K1 SE_CFS-C-all.json index 3abde8df57..f8517e48b5 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1 SE_CFS-C-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1C-all.json b/resources/profiles/Creality/filament/CR-PLA @K1C-all.json index d98582cf9c..092a18533d 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA @K1C_CFS-C-all.json index e8a7ab0ad6..e564114150 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1C_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA @K1_CFS-C-all.json index 722c4978c2..2796306e7f 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K1_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA @K2 Plus-all.json index 172d39a11b..a175fcdb46 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K2 Plus-all.json @@ -154,5 +154,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA @K2 Pro-all.json index fff8741bec..b30c6e90fe 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K2 Pro-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K2 SE-all.json b/resources/profiles/Creality/filament/CR-PLA @K2 SE-all.json index cbb2931fbd..4de70e5062 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K2 SE-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @K2-all.json b/resources/profiles/Creality/filament/CR-PLA @K2-all.json index 75c085137d..26a62766b0 100644 --- a/resources/profiles/Creality/filament/CR-PLA @K2-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @K2-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-PLA @SPARKX i7-all.json index 4727ca270a..ad5aad1c66 100644 --- a/resources/profiles/Creality/filament/CR-PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-PLA @SPARKX i7-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "04001" + "filament_id": "OFp4ETDP" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @K1 Max_CFS-C-all.json index 18f928308c..cfc58c9cf8 100644 --- a/resources/profiles/Creality/filament/CR-PLA Carbon @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @K1 Max_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "13001" + "filament_id": "OFrM4hdm" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @K1C-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @K1C-all.json index 071cdb3945..e6eaf070f8 100644 --- a/resources/profiles/Creality/filament/CR-PLA Carbon @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @K1C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "13001" + "filament_id": "OFrM4hdm" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @K1C_CFS-C-all.json index 85bdd7bb41..2e369e8a3c 100644 --- a/resources/profiles/Creality/filament/CR-PLA Carbon @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @K1C_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "13001" + "filament_id": "OFrM4hdm" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @K1_CFS-C-all.json index 5118f3b015..47bfd16093 100644 --- a/resources/profiles/Creality/filament/CR-PLA Carbon @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @K1_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "13001" + "filament_id": "OFrM4hdm" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @K2 Plus-all.json index f3efa4d2ac..b7fb77695e 100644 --- a/resources/profiles/Creality/filament/CR-PLA Carbon @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @K2 Plus-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "13001" + "filament_id": "OFrM4hdm" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K1 Max_CFS-C-all.json index b84b651e68..ee3510a9cc 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K1 Max_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K1C-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K1C-all.json index 12834e2b63..22d113814a 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K1C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K1C_CFS-C-all.json index 4944e61627..59bf2e48e6 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K1C_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K1_CFS-C-all.json index 3c288db1e6..4a3a27bfb5 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K1_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Plus-all.json index cb2e84fa5b..5b3aaccd1f 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Plus-all.json @@ -154,5 +154,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Pro-all.json index c320654960..c2dbe07744 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K2 Pro-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @K2-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @K2-all.json index f0d35f90da..98a41262c4 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @K2-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @K2-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @SPARKX i7-all.json index b2cf047a8a..759d5cbd88 100644 --- a/resources/profiles/Creality/filament/CR-PLA Fluo @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @SPARKX i7-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "15001" + "filament_id": "OFgpQwkk" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V4-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V4-all.json index f341ed0ee4..1ed05bed21 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V4-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K1 Max_CFS-C-all.json index 5f94d3a21b..80373199ad 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K1 Max_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K1C-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K1C-all.json index 68c02594da..ac4a9fc0ff 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K1C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K1C_CFS-C-all.json index c19a940780..cd8ea92f5a 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K1C_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K1_CFS-C-all.json index 20477243e6..1779ce9a54 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K1_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K2 Plus-all.json index e62afb4ad3..ebfe70bac1 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K2 Plus-all.json @@ -157,5 +157,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K2 Pro-all.json index 62ab04db20..90436b9e4b 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K2 Pro-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @K2-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @K2-all.json index 0b5efb1f62..b2bc9f1bc4 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @K2-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @K2-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @SPARKX i7-all.json index 23fd3380c4..5cf37492a4 100644 --- a/resources/profiles/Creality/filament/CR-PLA Matte @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-PLA Matte @SPARKX i7-all.json @@ -166,5 +166,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "14001" + "filament_id": "OFM0xjBG" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @Ender-3 V4-all.json b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V4-all.json index 0b6c2422b3..494d7245c9 100644 --- a/resources/profiles/Creality/filament/CR-Silk @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @Hi-all.json b/resources/profiles/Creality/filament/CR-Silk @Hi-all.json index 838ffa205c..497ddcd169 100644 --- a/resources/profiles/Creality/filament/CR-Silk @Hi-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @Hi-all.json @@ -141,5 +141,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Silk @K1 Max_CFS-C-all.json index ef4503c7f0..bffe643c8c 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1 Max_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1 SE-all.json b/resources/profiles/Creality/filament/CR-Silk @K1 SE-all.json index 6261b0607b..39ba90b647 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1 SE-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1 SE-all.json @@ -143,5 +143,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Silk @K1 SE_CFS-C-all.json index a5e4bf6b40..33b0ddc999 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1 SE_CFS-C-all.json @@ -143,5 +143,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1C-all.json b/resources/profiles/Creality/filament/CR-Silk @K1C-all.json index ce4e3be3ee..7ba2624bae 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1C-all.json @@ -158,5 +158,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Silk @K1C_CFS-C-all.json index c44216537a..ddbf57b5f2 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1C_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Silk @K1_CFS-C-all.json index 164cadd6cd..3e0e45cd87 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K1_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-Silk @K2 Plus-all.json index 83927ba13b..a2320f3f4e 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K2 Plus-all.json @@ -163,5 +163,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-Silk @K2 Pro-all.json index 401753cdbd..4c1f433c61 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K2 Pro-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K2 SE-all.json b/resources/profiles/Creality/filament/CR-Silk @K2 SE-all.json index 2151efcec7..9c1415001b 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K2 SE-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K2 SE-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @K2-all.json b/resources/profiles/Creality/filament/CR-Silk @K2-all.json index dc5301be79..97e5d7da31 100644 --- a/resources/profiles/Creality/filament/CR-Silk @K2-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @K2-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Silk @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-Silk @SPARKX i7-all.json index 3e62f7680c..11a92b0357 100644 --- a/resources/profiles/Creality/filament/CR-Silk @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-Silk @SPARKX i7-all.json @@ -170,5 +170,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "05001" + "filament_id": "OF3OMgrI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-TPU @K1 Max_CFS-C-all.json index d27ed62681..8ad140c757 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K1 Max_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K1C-all.json b/resources/profiles/Creality/filament/CR-TPU @K1C-all.json index 490e293ab9..001f3c5e5c 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K1C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-TPU @K1C_CFS-C-all.json index 8186e5a558..9d10ae7b5c 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K1C_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-TPU @K1_CFS-C-all.json index 34343ecff5..5be19a6852 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K1_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-TPU @K2 Plus-all.json index bcc65299d1..b79e38758b 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K2 Plus-all.json @@ -166,5 +166,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K2 Pro-all.json b/resources/profiles/Creality/filament/CR-TPU @K2 Pro-all.json index abd8207f32..e3ea591f17 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K2 Pro-all.json @@ -171,5 +171,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @K2-all.json b/resources/profiles/Creality/filament/CR-TPU @K2-all.json index 9f0e96c015..a336ca1e66 100644 --- a/resources/profiles/Creality/filament/CR-TPU @K2-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @K2-all.json @@ -171,5 +171,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-TPU @SPARKX i7-all.json b/resources/profiles/Creality/filament/CR-TPU @SPARKX i7-all.json index 7181fce5e0..3b6e8923eb 100644 --- a/resources/profiles/Creality/filament/CR-TPU @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/CR-TPU @SPARKX i7-all.json @@ -175,5 +175,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "16001" + "filament_id": "OFG2RkhN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Wood @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Wood @K1 Max_CFS-C-all.json index 54c9f99ea0..2d59b01143 100644 --- a/resources/profiles/Creality/filament/CR-Wood @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Wood @K1 Max_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "17001" + "filament_id": "OFGxC8gB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Wood @K1C-all.json b/resources/profiles/Creality/filament/CR-Wood @K1C-all.json index 7def3b58f7..20477f04a9 100644 --- a/resources/profiles/Creality/filament/CR-Wood @K1C-all.json +++ b/resources/profiles/Creality/filament/CR-Wood @K1C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "17001" + "filament_id": "OFGxC8gB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Wood @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Wood @K1C_CFS-C-all.json index 59364bfce5..95dc4f4c95 100644 --- a/resources/profiles/Creality/filament/CR-Wood @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Wood @K1C_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "17001" + "filament_id": "OFGxC8gB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Wood @K1_CFS-C-all.json b/resources/profiles/Creality/filament/CR-Wood @K1_CFS-C-all.json index ce6631705f..e029b37f79 100644 --- a/resources/profiles/Creality/filament/CR-Wood @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/CR-Wood @K1_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "17001" + "filament_id": "OFGxC8gB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/CR-Wood @K2 Plus-all.json b/resources/profiles/Creality/filament/CR-Wood @K2 Plus-all.json index 9d5910633b..aa7a1f5eee 100644 --- a/resources/profiles/Creality/filament/CR-Wood @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/CR-Wood @K2 Plus-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "17001" + "filament_id": "OFGxC8gB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json index 1c3034cd80..fb07f6a231 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "mriWPwWZUKmr7ws0", - "filament_id": "07001", + "filament_id": "OFYPdJ7t", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic ABS.json b/resources/profiles/Creality/filament/Creality Generic ABS.json index 5fc04c19ac..00bcd95e19 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "fv5g33ofjgyjVexC", - "filament_id": "GFB99", + "filament_id": "OFYPdJ7t", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json index d2e8d0d5b5..fa85c2a3ec 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "4muzPKAzy8FJKM5D", - "filament_id": "19001", + "filament_id": "OFpAaY6w", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json index e46869feb9..ff2a1eb68c 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic ASA @Hi-all", "from": "system", "setting_id": "C7IB6HSJxW598zFA", - "filament_id": "OFNbajj9", + "filament_id": "OFLuczRG", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic ASA.json b/resources/profiles/Creality/filament/Creality Generic ASA.json index ddf812b5ce..53ca8f06df 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA.json +++ b/resources/profiles/Creality/filament/Creality Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "jHgcISP1UXOPsGH0", - "filament_id": "GFB98", + "filament_id": "OFpAaY6w", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json index 3b37837a4c..53b1a95c72 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "8caHexyoeQW9p1NF", - "filament_id": "11001", + "filament_id": "OFMqYusc", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF.json b/resources/profiles/Creality/filament/Creality Generic PA-CF.json index 92a2c25893..c9aee7e056 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF.json +++ b/resources/profiles/Creality/filament/Creality Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "hBNsuwMzm7ZZn15D", - "filament_id": "GFN98", + "filament_id": "OFUWRqwb", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Creality/filament/Creality Generic PC.json b/resources/profiles/Creality/filament/Creality Generic PC.json index 305de9f580..9297344a75 100644 --- a/resources/profiles/Creality/filament/Creality Generic PC.json +++ b/resources/profiles/Creality/filament/Creality Generic PC.json @@ -3,7 +3,7 @@ "name": "Creality Generic PC", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC99", + "filament_id": "OFe8UJXH", "instantiation": "false", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json index 6dd5926993..6aeba98a01 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "vRVsTatkrE46rzRB", - "filament_id": "06001", + "filament_id": "OF4Mf5Gz", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json index c1888475bb..d914f2eb4b 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PETG @Hi-all", "from": "system", "setting_id": "G4ZIJDNOpQvutOfs", - "filament_id": "OFvGSn0l", + "filament_id": "OFqKmLJe", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic PETG.json b/resources/profiles/Creality/filament/Creality Generic PETG.json index 28c70a1f6a..e09d44758c 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG.json +++ b/resources/profiles/Creality/filament/Creality Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "ixhOwyMvBCpI8nQs", - "filament_id": "GFG99", + "filament_id": "OF4Mf5Gz", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json index 23b15169e9..8198b078e4 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "zQiwnlxGlX4pFOHR", - "filament_id": "04001", + "filament_id": "OFACSw9O", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json index c2f037e2b0..513d2bd088 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "4F3dZWvsniH9QHtr", - "filament_id": "OFLriDvE", + "filament_id": "OFrO2zyn", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json index 92e419b26a..50305f2dd2 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "KzaopZGQPw5OJFFD", - "filament_id": "OFLriDvE", + "filament_id": "OFrO2zyn", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json index a30c1ec949..f5f509897a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "ptxV78rC6wevH916", - "filament_id": "OFLriDvE", + "filament_id": "OFrO2zyn", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json index 3f6d5e5633..8a0f79495f 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "ozHstwkc3N5LGWLV", - "filament_id": "OFLriDvE", + "filament_id": "OFrO2zyn", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json index 88b5c57c1a..3aa8f60c48 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "xF1B593frol5PWVw", - "filament_id": "OF43idK2", + "filament_id": "OFpSYJLI", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json index d5247b1d32..05b1d2afc7 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "R7Jo7NhjsR1iU2Fd", - "filament_id": "OF43idK2", + "filament_id": "OFpSYJLI", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json index f1b58bb091..3d3c0276dc 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "3hreTG3DjcgmwZC2", - "filament_id": "OF43idK2", + "filament_id": "OFpSYJLI", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json index a13e886b89..d1723b25ba 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "fxZf5E6IHWWq3dsu", - "filament_id": "OF43idK2", + "filament_id": "OFpSYJLI", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json index f3686b9edd..1942508586 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Ender-3V3-all", "from": "system", "setting_id": "uPFnSMh7WoXmMAoy", - "filament_id": "OFTszIHE", + "filament_id": "OFp8gtPH", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json index 2762cdee53..c79ddb8933 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "RPDVqZcn8EZizd1U", - "filament_id": "OFTszIHE", + "filament_id": "OFp8gtPH", "instantiation": "true", "filament_flow_ratio": [ "0.97" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json index ff94adbabf..b9be0b8f93 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K1-all", "from": "system", "setting_id": "pxvc0ICvqc0M3wYV", - "filament_id": "OFTszIHE", + "filament_id": "OFp8gtPH", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json index 5eba612ef7..ed5b560d12 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @K2-all", "from": "system", "setting_id": "qS0Mlt24iz1k4P7n", - "filament_id": "OFTszIHE", + "filament_id": "OFp8gtPH", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json index 3ac6f207f4..8381e376bb 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json @@ -4,7 +4,7 @@ "inherits": "Creality Generic PLA @Hi-all", "from": "system", "setting_id": "OEc7Bc7WG99tuO5D", - "filament_id": "OFdLGn0R", + "filament_id": "OFNW4ZTC", "instantiation": "true", "filament_flow_ratio": [ "0.88" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF.json b/resources/profiles/Creality/filament/Creality Generic PLA-CF.json index 83fa21d7d6..7c09aa8e4e 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA-CF.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "DCCWPQGMsvDOucwx", - "filament_id": "GFL98", + "filament_id": "OFSDFYs4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA.json b/resources/profiles/Creality/filament/Creality Generic PLA.json index 6791ec64c4..fe82530a7c 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "rUYYpB3GkiNCVyfY", - "filament_id": "GFL99", + "filament_id": "OFACSw9O", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json index 437e0875bf..2787b4e7ea 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "aaiFHjbveXabDAMr", - "filament_id": "10001", + "filament_id": "OFhcrFw9", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic TPU.json b/resources/profiles/Creality/filament/Creality Generic TPU.json index 904768bb5e..13fc25d3a7 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU.json +++ b/resources/profiles/Creality/filament/Creality Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "mKCynAMC7cjY03c0", - "filament_id": "GFU99", + "filament_id": "OFhcrFw9", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Creality/filament/Creality HF Generic PLA.json b/resources/profiles/Creality/filament/Creality HF Generic PLA.json index 2cad2fa504..7b2558d207 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic PLA.json +++ b/resources/profiles/Creality/filament/Creality HF Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "p07b7w0HDxavGLdd", - "filament_id": "OFZjZ1k7", + "filament_id": "OFmhWhEf", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json b/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json index 64319441a4..9090224d19 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json +++ b/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Jp93uqYennsWVAKe", - "filament_id": "OFfkPhrJ", + "filament_id": "OFMIurFh", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality Hyper ABS @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Hyper ABS @Ender-5Max-all.json index 8dc6b98afb..cb50c6f7fb 100644 --- a/resources/profiles/Creality/filament/Creality Hyper ABS @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Hyper ABS @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "9Ek7KtQF2kgJbeXg", - "filament_id": "03001", + "filament_id": "OFFP4ORR", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Hyper PLA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Hyper PLA @Ender-5Max-all.json index 7880478750..6a71e56fff 100644 --- a/resources/profiles/Creality/filament/Creality Hyper PLA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Hyper PLA @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "YUtnpJsC9o1D3NUR", - "filament_id": "01001", + "filament_id": "OFAIrQXu", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Hyper PLA-CF @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Hyper PLA-CF @Ender-5Max-all.json index 9c5a06621b..d44e4d96bf 100644 --- a/resources/profiles/Creality/filament/Creality Hyper PLA-CF @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Hyper PLA-CF @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "fZvWZ9kfPN8MU6cX", - "filament_id": "02001", + "filament_id": "OFGwT5Av", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Silk PLA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Creality Silk PLA @Ender-5Max-all.json index 8211036350..d8a060f9b5 100644 --- a/resources/profiles/Creality/filament/Creality Silk PLA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Creality Silk PLA @Ender-5Max-all.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "S4nzxbjE4DmkoS7p", - "filament_id": "05001", + "filament_id": "OFfuih8e", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K1 Max_CFS-C-all.json index bd67446620..a7c696718f 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K1 Max_CFS-C-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K1C-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K1C-all.json index 20e1c80d6c..c680265601 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K1C-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K1C-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K1C_CFS-C-all.json index 36b97a2268..50816aed69 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K1C_CFS-C-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K1_CFS-C-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K1_CFS-C-all.json index eab3e35431..43728032ef 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K1_CFS-C-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K2 Plus-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K2 Plus-all.json index 10971264e8..25642697d9 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K2 Plus-all.json @@ -151,5 +151,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K2 Pro-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K2 Pro-all.json index 1b6b372fd5..16a318a1e0 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K2 Pro-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @K2-all.json b/resources/profiles/Creality/filament/EN-PLA+ @K2-all.json index e70da1c59e..e9693dabcc 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @K2-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @K2-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/EN-PLA+ @SPARKX i7-all.json b/resources/profiles/Creality/filament/EN-PLA+ @SPARKX i7-all.json index 415263d110..e19e06f40e 100644 --- a/resources/profiles/Creality/filament/EN-PLA+ @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/EN-PLA+ @SPARKX i7-all.json @@ -166,5 +166,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "09001" + "filament_id": "OFks6esg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/ENDER FAST PLA @Hi-all.json b/resources/profiles/Creality/filament/ENDER FAST PLA @Hi-all.json index 8b2802939b..3fd9b4ef24 100644 --- a/resources/profiles/Creality/filament/ENDER FAST PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/ENDER FAST PLA @Hi-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "09002" + "filament_id": "OFfSqS4R" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Plus-all.json index 0d353b5b00..a27a828dfb 100644 --- a/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Plus-all.json @@ -164,5 +164,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "09002" + "filament_id": "OFfSqS4R" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Pro-all.json index ce9f2f0186..4f831d47ab 100644 --- a/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/ENDER FAST PLA @K2 Pro-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "09002" + "filament_id": "OFfSqS4R" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/ENDER FAST PLA @K2-all.json b/resources/profiles/Creality/filament/ENDER FAST PLA @K2-all.json index b3178db08d..9c2fd90d30 100644 --- a/resources/profiles/Creality/filament/ENDER FAST PLA @K2-all.json +++ b/resources/profiles/Creality/filament/ENDER FAST PLA @K2-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "09002" + "filament_id": "OFfSqS4R" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/ENDER FAST PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/ENDER FAST PLA @SPARKX i7-all.json index 33d7a84e98..c96ff98d72 100644 --- a/resources/profiles/Creality/filament/ENDER FAST PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/ENDER FAST PLA @SPARKX i7-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "09002" + "filament_id": "OFfSqS4R" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V4-all.json index 0c911f30cb..711b1b22a7 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V4-all.json @@ -143,5 +143,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @Hi-all.json b/resources/profiles/Creality/filament/Ender-PLA @Hi-all.json index a7ff4e7247..27ea82bdd3 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @Hi-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Ender-PLA @K1 Max_CFS-C-all.json index 7a70d00077..ed995443e3 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K1 Max_CFS-C-all.json @@ -151,5 +151,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K1C-all.json b/resources/profiles/Creality/filament/Ender-PLA @K1C-all.json index a9bd4373e6..c220fa54ac 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K1C-all.json @@ -151,5 +151,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Ender-PLA @K1C_CFS-C-all.json index 258c51c0d0..2471ec31bb 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K1C_CFS-C-all.json @@ -151,5 +151,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Ender-PLA @K1_CFS-C-all.json index 98e13e5899..f10bf01177 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K1_CFS-C-all.json @@ -151,5 +151,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Ender-PLA @K2 Plus-all.json index 625795d82b..51b85450b3 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K2 Plus-all.json @@ -148,5 +148,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/Ender-PLA @K2 Pro-all.json index 096baea484..8e04e8fee9 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K2 Pro-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @K2-all.json b/resources/profiles/Creality/filament/Ender-PLA @K2-all.json index e7f978e6cb..b26145bea9 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @K2-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Ender-PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/Ender-PLA @SPARKX i7-all.json index a4f9b7c7ce..11a85cc128 100644 --- a/resources/profiles/Creality/filament/Ender-PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Ender-PLA @SPARKX i7-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "08001" + "filament_id": "OFWao3Ic" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V4-all.json index 6690a03676..d1f8662025 100644 --- a/resources/profiles/Creality/filament/Generic ABS @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V4-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @Hi-all.json b/resources/profiles/Creality/filament/Generic ABS @Hi-all.json index e64f47d466..9f43259110 100644 --- a/resources/profiles/Creality/filament/Generic ABS @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Hi-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ABS @K1 Max_CFS-C-all.json index 4c78f3881a..4d1de77b9e 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1 Max_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1 SE-all.json b/resources/profiles/Creality/filament/Generic ABS @K1 SE-all.json index 0841cb593a..974ca3a49a 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1 SE-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ABS @K1 SE_CFS-C-all.json index 8c297b397d..8fa83c2dbf 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1 SE_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1C-all.json b/resources/profiles/Creality/filament/Generic ABS @K1C-all.json index 2f21834dc7..0d8c23a2e7 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ABS @K1C_CFS-C-all.json index 4135ea39ac..888b283059 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1C_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ABS @K1_CFS-C-all.json index eb71fa7e64..58d749dea3 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K1_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic ABS @K2 Plus-all.json index d6f73b5e64..425411f466 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K2 Plus-all.json @@ -154,5 +154,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic ABS @K2 Pro-all.json index e3c1674f0b..a03c0fbfcb 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K2 Pro-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K2 SE-all.json b/resources/profiles/Creality/filament/Generic ABS @K2 SE-all.json index e895bc8ab8..846dc3b748 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K2 SE-all.json @@ -175,5 +175,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ABS @K2-all.json b/resources/profiles/Creality/filament/Generic ABS @K2-all.json index f9949a0dc5..0eefa273a9 100644 --- a/resources/profiles/Creality/filament/Generic ABS @K2-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @K2-all.json @@ -159,5 +159,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00004" + "filament_id": "OFY9muEs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ASA @K1 Max_CFS-C-all.json index 1b8af0ce94..6f9ee6971e 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1 Max_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1 SE-all.json b/resources/profiles/Creality/filament/Generic ASA @K1 SE-all.json index 9ffdccc2f3..d5850749d2 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1 SE-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ASA @K1 SE_CFS-C-all.json index 7e83bc3c50..8894ee7af1 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1 SE_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1C-all.json b/resources/profiles/Creality/filament/Generic ASA @K1C-all.json index eaf1f69185..2669b08f43 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ASA @K1C_CFS-C-all.json index 338fc4981a..0a5dc5d18a 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1C_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic ASA @K1_CFS-C-all.json index e2db7afa6e..33cf5b2860 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K1_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic ASA @K2 Plus-all.json index f9aa956e15..f1bdbc1310 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K2 Plus-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic ASA @K2 Pro-all.json index 2723557aa6..346f7bfec6 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K2 Pro-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K2 SE-all.json b/resources/profiles/Creality/filament/Generic ASA @K2 SE-all.json index 79cd23a4f4..758d45606e 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K2 SE-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA @K2-all.json b/resources/profiles/Creality/filament/Generic ASA @K2-all.json index cb18ef79a4..68b9b71b9e 100644 --- a/resources/profiles/Creality/filament/Generic ASA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @K2-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00007" + "filament_id": "OFLPAxz3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic ASA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic ASA-CF @K2 Plus-all.json index 6736c660a2..f98421ad49 100644 --- a/resources/profiles/Creality/filament/Generic ASA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic ASA-CF @K2 Plus-all.json @@ -144,5 +144,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00033" + "filament_id": "OF53eLVD" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @Hi-all.json b/resources/profiles/Creality/filament/Generic BVOH @Hi-all.json index decbb3e4a1..33ac63d296 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @Hi-all.json @@ -127,5 +127,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic BVOH @K1 Max_CFS-C-all.json index 81dc3b2ac4..e0cfdb7090 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K1 Max_CFS-C-all.json @@ -158,5 +158,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K1C-all.json b/resources/profiles/Creality/filament/Generic BVOH @K1C-all.json index ac52221e0e..9f2cbf4200 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K1C-all.json @@ -159,5 +159,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic BVOH @K1C_CFS-C-all.json index 35d6581e85..e79e575992 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K1C_CFS-C-all.json @@ -159,5 +159,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic BVOH @K1_CFS-C-all.json index db50bb2d68..9bd399cbf0 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K1_CFS-C-all.json @@ -159,5 +159,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic BVOH @K2 Plus-all.json index 2dde38b996..c525c695d7 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K2 Plus-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic BVOH @K2 Pro-all.json index c9e4552fed..4d3492a70f 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K2 Pro-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic BVOH @K2-all.json b/resources/profiles/Creality/filament/Generic BVOH @K2-all.json index 6bb308253a..1f8bea7aef 100644 --- a/resources/profiles/Creality/filament/Generic BVOH @K2-all.json +++ b/resources/profiles/Creality/filament/Generic BVOH @K2-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00010" + "filament_id": "OFo2UF2C" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic HIPS @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic HIPS @K1 Max_CFS-C-all.json index b4b0fc15c4..9549195611 100644 --- a/resources/profiles/Creality/filament/Generic HIPS @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic HIPS @K1 Max_CFS-C-all.json @@ -169,5 +169,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00012" + "filament_id": "OFsFon5l" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic HIPS @K1C-all.json b/resources/profiles/Creality/filament/Generic HIPS @K1C-all.json index 78fde3f1ab..5016c1e5a5 100644 --- a/resources/profiles/Creality/filament/Generic HIPS @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic HIPS @K1C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00012" + "filament_id": "OFsFon5l" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic HIPS @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic HIPS @K1C_CFS-C-all.json index f63576c7cf..33950552d8 100644 --- a/resources/profiles/Creality/filament/Generic HIPS @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic HIPS @K1C_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00012" + "filament_id": "OFsFon5l" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic HIPS @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic HIPS @K1_CFS-C-all.json index 23a86958eb..7b1ab3190b 100644 --- a/resources/profiles/Creality/filament/Generic HIPS @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic HIPS @K1_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00012" + "filament_id": "OFsFon5l" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic HIPS @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic HIPS @K2 Plus-all.json index d004f30737..255e9e8b6e 100644 --- a/resources/profiles/Creality/filament/Generic HIPS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic HIPS @K2 Plus-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00012" + "filament_id": "OFsFon5l" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA @K1 Max_CFS-C-all.json index 9fd3eb7324..12c3698ca6 100644 --- a/resources/profiles/Creality/filament/Generic PA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K1 Max_CFS-C-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K1C-all.json b/resources/profiles/Creality/filament/Generic PA @K1C-all.json index ef8e035867..310dfb7abd 100644 --- a/resources/profiles/Creality/filament/Generic PA @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K1C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA @K1C_CFS-C-all.json index 91bdcf21c7..0d134ae474 100644 --- a/resources/profiles/Creality/filament/Generic PA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K1C_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA @K1_CFS-C-all.json index 7f077d59a8..1396769307 100644 --- a/resources/profiles/Creality/filament/Generic PA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K1_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA @K2 Plus-all.json index 59e941c60f..950b84e7f0 100644 --- a/resources/profiles/Creality/filament/Generic PA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K2 Plus-all.json @@ -179,5 +179,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PA @K2 Pro-all.json index c9df3bc667..c8ddd05024 100644 --- a/resources/profiles/Creality/filament/Generic PA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K2 Pro-all.json @@ -192,5 +192,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA @K2-all.json b/resources/profiles/Creality/filament/Generic PA @K2-all.json index 8579386858..b98aac22a0 100644 --- a/resources/profiles/Creality/filament/Generic PA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PA @K2-all.json @@ -192,5 +192,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00008" + "filament_id": "OFg8ndtj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA-CF @K1 Max_CFS-C-all.json index b457a527a5..c047fb7774 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @K1 Max_CFS-C-all.json @@ -148,5 +148,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00009" + "filament_id": "OFQLcbps" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PA-CF @K1C-all.json index 2d4f9cb2bf..360ecbf35b 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @K1C-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00009" + "filament_id": "OFQLcbps" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA-CF @K1C_CFS-C-all.json index 8263c9d426..022474e6f1 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @K1C_CFS-C-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00009" + "filament_id": "OFQLcbps" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA-CF @K1_CFS-C-all.json index 49173fecd4..40586091b0 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @K1_CFS-C-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00009" + "filament_id": "OFQLcbps" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA-CF @K2 Plus-all.json index 56c2aeed8a..0b0042c6c8 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @K2 Plus-all.json @@ -178,5 +178,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "00009" + "filament_id": "OFQLcbps" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA12-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA12-CF @K2 Plus-all.json index 3fc6fa4644..fb65088525 100644 --- a/resources/profiles/Creality/filament/Generic PA12-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA12-CF @K2 Plus-all.json @@ -178,5 +178,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00025" + "filament_id": "OFM4iJlv" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json index 82cd2c4faa..04260f4d8e 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1 Max_CFS-C-all.json @@ -184,5 +184,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json index 12f1662b2d..b141bc04ec 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json index 9e3a508a5d..6dd6902397 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1C_CFS-C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json index ee75cdd734..9c70b899f0 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K1_CFS-C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json index 71c4ef7a31..75cd58773a 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Plus-all.json @@ -187,5 +187,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json index 5c71b8ea97..6388151090 100644 --- a/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-CF @K2 Pro-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00015" + "filament_id": "OFhTPf6L" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA6-GF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA6-GF @K2 Plus-all.json index d113edd116..5919945b58 100644 --- a/resources/profiles/Creality/filament/Generic PA6-GF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA6-GF @K2 Plus-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00034" + "filament_id": "OFh9u9c0" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA612-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PA612-CF @K2 Plus-all.json index 25956f1c1c..d1decb74cc 100644 --- a/resources/profiles/Creality/filament/Generic PA612-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PA612-CF @K2 Plus-all.json @@ -178,5 +178,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00022" + "filament_id": "OF8eaY7j" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PA612-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PA612-CF @K2 Pro-all.json index 5a29d469ef..5ccb21724d 100644 --- a/resources/profiles/Creality/filament/Generic PA612-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PA612-CF @K2 Pro-all.json @@ -180,5 +180,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00022" + "filament_id": "OF8eaY7j" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K1 Max_CFS-C-all.json index 3fee83483f..3e007d79c6 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K1 Max_CFS-C-all.json @@ -193,5 +193,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K1C-all.json index 100798cac6..dcc9738515 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K1C-all.json @@ -194,5 +194,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K1C_CFS-C-all.json index 71dff576e2..2f5ae88e9d 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K1C_CFS-C-all.json @@ -194,5 +194,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K1_CFS-C-all.json index 956496c6a1..e7ffe11efa 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K1_CFS-C-all.json @@ -194,5 +194,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Plus-all.json index 2b21d3680c..8d4157e8cd 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Plus-all.json @@ -193,5 +193,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Pro-all.json index cd4b5491a9..a013abb416 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K2 Pro-all.json @@ -180,5 +180,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @K2-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @K2-all.json index 0c507bc83d..e8032a6b4c 100644 --- a/resources/profiles/Creality/filament/Generic PAHT-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @K2-all.json @@ -180,5 +180,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00016" + "filament_id": "OFH7b12v" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PC @K1 Max_CFS-C-all.json index b2e4a4cc1a..67c0d17aa6 100644 --- a/resources/profiles/Creality/filament/Generic PC @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K1 Max_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K1C-all.json b/resources/profiles/Creality/filament/Generic PC @K1C-all.json index c23127714d..30bb957e88 100644 --- a/resources/profiles/Creality/filament/Generic PC @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K1C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PC @K1C_CFS-C-all.json index 5a775566d2..450b46b2af 100644 --- a/resources/profiles/Creality/filament/Generic PC @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K1C_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PC @K1_CFS-C-all.json index 11d4aa54b0..353610592a 100644 --- a/resources/profiles/Creality/filament/Generic PC @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K1_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PC @K2 Plus-all.json index a4fd7b8e17..e4a1d358f7 100644 --- a/resources/profiles/Creality/filament/Generic PC @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K2 Plus-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PC @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PC @K2 Pro-all.json index 17b8f5ba3c..99c3232a10 100644 --- a/resources/profiles/Creality/filament/Generic PC @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PC @K2 Pro-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00021" + "filament_id": "OFLakOUI" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PCTG @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PCTG @K2 Plus-all.json index 5e82819e32..c84c58a220 100644 --- a/resources/profiles/Creality/filament/Generic PCTG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PCTG @K2 Plus-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00032" + "filament_id": "OFu1evlr" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET @K1 Max_CFS-C-all.json index f2bd3dde2b..047bacd756 100644 --- a/resources/profiles/Creality/filament/Generic PET @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K1 Max_CFS-C-all.json @@ -184,5 +184,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K1C-all.json b/resources/profiles/Creality/filament/Generic PET @K1C-all.json index b855b18446..ae435635dd 100644 --- a/resources/profiles/Creality/filament/Generic PET @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K1C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET @K1C_CFS-C-all.json index fef797ee4b..93e9cd11f0 100644 --- a/resources/profiles/Creality/filament/Generic PET @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K1C_CFS-C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET @K1_CFS-C-all.json index 6de2eb826d..4e860053d9 100644 --- a/resources/profiles/Creality/filament/Generic PET @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K1_CFS-C-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PET @K2 Plus-all.json index d23ec6c681..cf56f3c9af 100644 --- a/resources/profiles/Creality/filament/Generic PET @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K2 Plus-all.json @@ -188,5 +188,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PET @K2 Pro-all.json index ff35401f39..4da77efe33 100644 --- a/resources/profiles/Creality/filament/Generic PET @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K2 Pro-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET @K2-all.json b/resources/profiles/Creality/filament/Generic PET @K2-all.json index 52aaa6e18c..ef761807b0 100644 --- a/resources/profiles/Creality/filament/Generic PET @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PET @K2-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00020" + "filament_id": "OF6MOPWx" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K1 Max_CFS-C-all.json index c42769fe11..4c9fadfbc6 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K1 Max_CFS-C-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K1C-all.json index a293723722..e98f8773a6 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K1C-all.json @@ -173,5 +173,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K1C_CFS-C-all.json index 5e49cbdb77..36c9dc92a6 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K1C_CFS-C-all.json @@ -173,5 +173,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K1_CFS-C-all.json index 72bec3d1ba..c1955e0667 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K1_CFS-C-all.json @@ -173,5 +173,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K2 Plus-all.json index 627620e2e0..44eb974cdf 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K2 Plus-all.json @@ -191,5 +191,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PET-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PET-CF @K2 Pro-all.json index ab8839dd7e..ddfb603d30 100644 --- a/resources/profiles/Creality/filament/Generic PET-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PET-CF @K2 Pro-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00013" + "filament_id": "OFQdaVZS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V4-all.json index 74e49dfb40..cbdc915a23 100644 --- a/resources/profiles/Creality/filament/Generic PETG @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @Hi-all.json b/resources/profiles/Creality/filament/Generic PETG @Hi-all.json index f855fb8217..32b171416b 100644 --- a/resources/profiles/Creality/filament/Generic PETG @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Hi-all.json @@ -147,5 +147,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG @K1 Max_CFS-C-all.json index 2cba8d0911..40fecf5d33 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1 Max_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1 SE-all.json b/resources/profiles/Creality/filament/Generic PETG @K1 SE-all.json index 2626c596da..e82036ef1c 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1 SE-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG @K1 SE_CFS-C-all.json index af8cb7d371..649d2057b3 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1 SE_CFS-C-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1C-all.json b/resources/profiles/Creality/filament/Generic PETG @K1C-all.json index 1122d81c46..5d05e2a977 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG @K1C_CFS-C-all.json index 48b6087734..7f7459382a 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1C_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG @K1_CFS-C-all.json index 5d518fde42..568b5a1cf5 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K1_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PETG @K2 Plus-all.json index 1bb9217b84..6b10eac4c6 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K2 Plus-all.json @@ -138,5 +138,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PETG @K2 Pro-all.json index e50a03cb28..5d007dfff3 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K2 Pro-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K2 SE-all.json b/resources/profiles/Creality/filament/Generic PETG @K2 SE-all.json index 1b56e51679..69af8255c5 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K2 SE-all.json @@ -148,5 +148,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @K2-all.json b/resources/profiles/Creality/filament/Generic PETG @K2-all.json index 9df2e83d3d..a8e2308613 100644 --- a/resources/profiles/Creality/filament/Generic PETG @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @K2-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json index 2fee02a703..301fc96ef9 100644 --- a/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json @@ -159,5 +159,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "00003" + "filament_id": "OFYPdQJh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K1 Max_CFS-C-all.json index e4ab498063..5f03c5b211 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K1 Max_CFS-C-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K1C-all.json index 8bbacdd073..4044297ea9 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K1C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K1C_CFS-C-all.json index d5a0981341..5c22d3e902 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K1C_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K1_CFS-C-all.json index 1414ef10c2..00f8180634 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K1_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K2 Plus-all.json index 7114550576..5ed6aa15ea 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K2 Plus-all.json @@ -145,5 +145,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K2 Pro-all.json index d4f5068e4d..a801d09c9b 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K2 Pro-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @K2-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @K2-all.json index d9c52ea4d4..a2b844f80f 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @K2-all.json @@ -136,5 +136,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @SPARKX i7-all.json index 349f5d2418..954782024a 100644 --- a/resources/profiles/Creality/filament/Generic PETG-CF @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-CF @SPARKX i7-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "00014" + "filament_id": "OFoYSJKi" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-GF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PETG-GF @K2 Plus-all.json index 09c26dc704..63dead723c 100644 --- a/resources/profiles/Creality/filament/Generic PETG-GF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-GF @K2 Plus-all.json @@ -148,5 +148,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00027" + "filament_id": "OFyLWVF3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-GF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PETG-GF @K2 Pro-all.json index dda8a48f06..5405f7dbcd 100644 --- a/resources/profiles/Creality/filament/Generic PETG-GF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-GF @K2 Pro-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00027" + "filament_id": "OFyLWVF3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json b/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json index c2a9b7cc5c..7d52685214 100644 --- a/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PETG-GF @K2-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00027" + "filament_id": "OFyLWVF3" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V4-all.json index 6bb5cef8b2..ce8231d11a 100644 --- a/resources/profiles/Creality/filament/Generic PLA @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V4-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA @Hi-all.json index 831a63dc03..b79aa1d05f 100644 --- a/resources/profiles/Creality/filament/Generic PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Hi-all.json @@ -140,5 +140,5 @@ "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA @K1 Max_CFS-C-all.json index a2757b6400..315347fc4f 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1 Max_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1 SE-all.json b/resources/profiles/Creality/filament/Generic PLA @K1 SE-all.json index fe66c9659f..11bd5fd68a 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1 SE-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA @K1 SE_CFS-C-all.json index c4b6a70d4e..167ef73d00 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1 SE_CFS-C-all.json @@ -137,5 +137,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1C-all.json b/resources/profiles/Creality/filament/Generic PLA @K1C-all.json index 87b5d0554c..7cad23ed0e 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA @K1C_CFS-C-all.json index a8e2ea3433..50db3c5fb5 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1C_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA @K1_CFS-C-all.json index 9ad9f4d172..ddbc57ab8d 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K1_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA @K2 Plus-all.json index 9b4f832744..6514b99d50 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K2 Plus-all.json @@ -162,5 +162,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PLA @K2 Pro-all.json index 97bfa85e57..96eafd022b 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K2 Pro-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K2 SE-all.json b/resources/profiles/Creality/filament/Generic PLA @K2 SE-all.json index 8c2f352b62..f8e0beaefe 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K2 SE-all.json @@ -136,5 +136,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @K2-all.json b/resources/profiles/Creality/filament/Generic PLA @K2-all.json index 5773b09d4a..ee71e52517 100644 --- a/resources/profiles/Creality/filament/Generic PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @K2-all.json @@ -158,5 +158,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json index c0d5e84f04..07d9aa02e0 100644 --- a/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json @@ -162,5 +162,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "00001" + "filament_id": "OFDSrzZ8" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V4-all.json index c651861af8..3fd2827231 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V4-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1 Max_CFS-C-all.json index 8721ebfd57..698bdc2927 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1 Max_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE-all.json index 9b686f0f9a..57228d8b7f 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE_CFS-C-all.json index a606564c5d..647819f8ea 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1 SE_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1C-all.json index f0bd1b2659..ae3aa14a7a 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1C_CFS-C-all.json index 9e1ed31ae4..7c1b681b1e 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1C_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K1_CFS-C-all.json index aa6a91936f..ab73ebe1ba 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K1_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K2 Plus-all.json index be755fcebb..381f25f899 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K2 Plus-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K2 Pro-all.json index 2e54d39334..f1ce0ce42d 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K2 Pro-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K2 SE-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K2 SE-all.json index 64c621680e..4dab8f0c8a 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K2 SE-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @K2-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @K2-all.json index c754999f33..111ac7470a 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @K2-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @SPARKX i7-all.json index 60fa4e2bee..4184a05737 100644 --- a/resources/profiles/Creality/filament/Generic PLA-CF @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @SPARKX i7-all.json @@ -179,5 +179,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "00006" + "filament_id": "OFWbdGsC" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V4-all.json index 1cf6f9ecd9..da5c1ba172 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V4-all.json @@ -143,5 +143,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @Hi-all.json index d2dab74d67..a3dfac28d1 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @Hi-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 Max_CFS-C-all.json index 53f97c21f1..c7ce2639ae 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 Max_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE-all.json index 92dc9c7f22..418248ed71 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE_CFS-C-all.json index 683eb16c4d..1ba33bf6dc 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1 SE_CFS-C-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1C-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1C-all.json index 7210792495..f37ef16d31 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1C-all.json @@ -159,5 +159,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1C_CFS-C-all.json index 70e41a8078..1b4298f035 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1C_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K1_CFS-C-all.json index 71b992c1fc..f81638a23f 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K1_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Plus-all.json index ba03b66ddd..50f7dac4eb 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Plus-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Pro-all.json index 9e03746797..2c18b858e8 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 Pro-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 SE-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 SE-all.json index 074fde8bfe..8b7030ff73 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K2 SE-all.json @@ -133,5 +133,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @K2-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @K2-all.json index 953edaba8b..5826a18ba9 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @K2-all.json @@ -158,5 +158,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @SPARKX i7-all.json index 30e6a20ebd..e67d570ad4 100644 --- a/resources/profiles/Creality/filament/Generic PLA-Silk @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @SPARKX i7-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "00002" + "filament_id": "OFi6PfUM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PP @K1 Max_CFS-C-all.json index 59f53cbb9d..7aec44400e 100644 --- a/resources/profiles/Creality/filament/Generic PP @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K1 Max_CFS-C-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K1C-all.json b/resources/profiles/Creality/filament/Generic PP @K1C-all.json index 4c8ac4d0d0..ad01f49d51 100644 --- a/resources/profiles/Creality/filament/Generic PP @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K1C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PP @K1C_CFS-C-all.json index 1668dd04fa..fb56912bf1 100644 --- a/resources/profiles/Creality/filament/Generic PP @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K1C_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PP @K1_CFS-C-all.json index f82a464fe5..88acdf3d32 100644 --- a/resources/profiles/Creality/filament/Generic PP @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K1_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PP @K2 Plus-all.json index 9a5f2f3e53..e34d70a902 100644 --- a/resources/profiles/Creality/filament/Generic PP @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K2 Plus-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PP @K2 Pro-all.json index 38ba4abe64..e3167109d8 100644 --- a/resources/profiles/Creality/filament/Generic PP @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K2 Pro-all.json @@ -138,5 +138,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP @K2-all.json b/resources/profiles/Creality/filament/Generic PP @K2-all.json index 8f97f08d6b..8f0075422c 100644 --- a/resources/profiles/Creality/filament/Generic PP @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PP @K2-all.json @@ -138,5 +138,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00019" + "filament_id": "OF1UNk9P" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PP-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PP-CF @K2 Plus-all.json index 3f35f96343..e557ac36e4 100644 --- a/resources/profiles/Creality/filament/Generic PP-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PP-CF @K2 Plus-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00031" + "filament_id": "OFXkm8q1" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS @K1 Max_CFS-C-all.json index 37176e53e1..01f7c52bc9 100644 --- a/resources/profiles/Creality/filament/Generic PPS @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS @K1 Max_CFS-C-all.json @@ -169,5 +169,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00017" + "filament_id": "OFq9svOz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS @K1C-all.json b/resources/profiles/Creality/filament/Generic PPS @K1C-all.json index d15aeef469..39a3449351 100644 --- a/resources/profiles/Creality/filament/Generic PPS @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS @K1C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00017" + "filament_id": "OFq9svOz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS @K1C_CFS-C-all.json index d2af02918e..af12995572 100644 --- a/resources/profiles/Creality/filament/Generic PPS @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS @K1C_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00017" + "filament_id": "OFq9svOz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS @K1_CFS-C-all.json index 69f7f95046..dd22fcf107 100644 --- a/resources/profiles/Creality/filament/Generic PPS @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS @K1_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00017" + "filament_id": "OFq9svOz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PPS @K2 Plus-all.json index 964d010a97..deff12cad5 100644 --- a/resources/profiles/Creality/filament/Generic PPS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PPS @K2 Plus-all.json @@ -147,5 +147,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00017" + "filament_id": "OFq9svOz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @K1 Max_CFS-C-all.json index 47c8c9dc0e..f07eed6f9a 100644 --- a/resources/profiles/Creality/filament/Generic PPS-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS-CF @K1 Max_CFS-C-all.json @@ -169,5 +169,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00018" + "filament_id": "OF6rdQ6M" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @K1C-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @K1C-all.json index c8e56eb45b..78f5a33e87 100644 --- a/resources/profiles/Creality/filament/Generic PPS-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS-CF @K1C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00018" + "filament_id": "OF6rdQ6M" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @K1C_CFS-C-all.json index 5a937397ac..8975f9792c 100644 --- a/resources/profiles/Creality/filament/Generic PPS-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS-CF @K1C_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00018" + "filament_id": "OF6rdQ6M" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @K1_CFS-C-all.json index ae80e3823a..11b1b3a155 100644 --- a/resources/profiles/Creality/filament/Generic PPS-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PPS-CF @K1_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00018" + "filament_id": "OF6rdQ6M" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @K2 Plus-all.json index a538bfb7a1..3bbcf8f992 100644 --- a/resources/profiles/Creality/filament/Generic PPS-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PPS-CF @K2 Plus-all.json @@ -140,5 +140,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00018" + "filament_id": "OF6rdQ6M" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @Hi-all.json b/resources/profiles/Creality/filament/Generic PVA @Hi-all.json index a327524d0b..6fdad0ad0b 100644 --- a/resources/profiles/Creality/filament/Generic PVA @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @Hi-all.json @@ -132,5 +132,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PVA @K1 Max_CFS-C-all.json index 468d910190..ba02942df2 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K1 Max_CFS-C-all.json @@ -124,5 +124,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K1C-all.json b/resources/profiles/Creality/filament/Generic PVA @K1C-all.json index 208b12d48e..34d0a7231d 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K1C-all.json @@ -125,5 +125,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PVA @K1C_CFS-C-all.json index 5f2d2d535a..607cf3b0dd 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K1C_CFS-C-all.json @@ -125,5 +125,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic PVA @K1_CFS-C-all.json index e527dfaddf..e5eff7fb64 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K1_CFS-C-all.json @@ -125,5 +125,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic PVA @K2 Plus-all.json index 4e76a603d2..a4499aa85d 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K2 Plus-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic PVA @K2 Pro-all.json index 3902a813d5..9cf5bfd6bc 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K2 Pro-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic PVA @K2-all.json b/resources/profiles/Creality/filament/Generic PVA @K2-all.json index 9d6376abe7..d69eab7457 100644 --- a/resources/profiles/Creality/filament/Generic PVA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PVA @K2-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00011" + "filament_id": "OFDvXujf" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic Support for PA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic Support for PA @K2 Plus-all.json index 65431307ec..a59be37173 100644 --- a/resources/profiles/Creality/filament/Generic Support for PA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic Support for PA @K2 Plus-all.json @@ -175,5 +175,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00023" + "filament_id": "OFDtop41" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic Support for PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic Support for PLA @K2 Plus-all.json index 130d40baff..5135c5ee68 100644 --- a/resources/profiles/Creality/filament/Generic Support for PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic Support for PLA @K2 Plus-all.json @@ -158,5 +158,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00024" + "filament_id": "OFin64Qg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU 64D @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic TPU 64D @K2 Plus-all.json index 2d59a7a434..da1860ce3c 100644 --- a/resources/profiles/Creality/filament/Generic TPU 64D @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic TPU 64D @K2 Plus-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00026" + "filament_id": "OFF3cuzT" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU 64D @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic TPU 64D @SPARKX i7-all.json index 5b50b540bf..54d1fd6680 100644 --- a/resources/profiles/Creality/filament/Generic TPU 64D @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic TPU 64D @SPARKX i7-all.json @@ -181,5 +181,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "00026" + "filament_id": "OFF3cuzT" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V4-all.json index d5582bb484..18e8caacda 100644 --- a/resources/profiles/Creality/filament/Generic TPU @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V4-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Generic TPU @K1 Max_CFS-C-all.json index cb08115e87..0e093087d3 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1 Max_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1 SE-all.json b/resources/profiles/Creality/filament/Generic TPU @K1 SE-all.json index 46e2de4629..12f548e797 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1 SE-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Generic TPU @K1 SE_CFS-C-all.json index 45926b0b66..c7aa82e060 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1 SE_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1C-all.json b/resources/profiles/Creality/filament/Generic TPU @K1C-all.json index bcfcbd4836..4d77ed28a7 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1C-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1C-all.json @@ -147,5 +147,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Generic TPU @K1C_CFS-C-all.json index 7d929554a8..4c29062659 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1C_CFS-C-all.json @@ -147,5 +147,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Generic TPU @K1_CFS-C-all.json index 56491b9100..88523dd930 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K1_CFS-C-all.json @@ -147,5 +147,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K2 Plus-all.json b/resources/profiles/Creality/filament/Generic TPU @K2 Plus-all.json index 46aee6149c..a06cdec298 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K2 Plus-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K2 Pro-all.json b/resources/profiles/Creality/filament/Generic TPU @K2 Pro-all.json index 62451e782a..07e97acb84 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K2 Pro-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K2 SE-all.json b/resources/profiles/Creality/filament/Generic TPU @K2 SE-all.json index 04348049b8..8793fc167e 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K2 SE-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @K2-all.json b/resources/profiles/Creality/filament/Generic TPU @K2-all.json index 4967c237e0..03d44388f5 100644 --- a/resources/profiles/Creality/filament/Generic TPU @K2-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @K2-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Generic TPU @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic TPU @SPARKX i7-all.json index cd8b519c2e..c1d0268024 100644 --- a/resources/profiles/Creality/filament/Generic TPU @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @SPARKX i7-all.json @@ -168,5 +168,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "00005" + "filament_id": "OFgbpcy9" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @K1 Max_CFS-C-all.json index c7ae970179..e300daac38 100644 --- a/resources/profiles/Creality/filament/HP Ultra PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP Ultra PLA @K1 Max_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "18001" + "filament_id": "OFCJpR7a" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @K1C-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @K1C-all.json index e02b477267..d437c91d60 100644 --- a/resources/profiles/Creality/filament/HP Ultra PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/HP Ultra PLA @K1C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "18001" + "filament_id": "OFCJpR7a" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @K1C_CFS-C-all.json index c6bb9bd547..2c354d95bc 100644 --- a/resources/profiles/Creality/filament/HP Ultra PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP Ultra PLA @K1C_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "18001" + "filament_id": "OFCJpR7a" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @K1_CFS-C-all.json index 1eb74d0999..db920a7f56 100644 --- a/resources/profiles/Creality/filament/HP Ultra PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP Ultra PLA @K1_CFS-C-all.json @@ -156,5 +156,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "18001" + "filament_id": "OFCJpR7a" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @K2 Plus-all.json index 399c357b29..8f912cf729 100644 --- a/resources/profiles/Creality/filament/HP Ultra PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/HP Ultra PLA @K2 Plus-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "18001" + "filament_id": "OFCJpR7a" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/HP-ASA @K1 Max_CFS-C-all.json index 3118bd2d96..16810d1886 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K1 Max_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K1C-all.json b/resources/profiles/Creality/filament/HP-ASA @K1C-all.json index 95e31de6b3..c720b4d1b0 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K1C-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K1C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/HP-ASA @K1C_CFS-C-all.json index 6ea06b5eb7..01a49e2392 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K1C_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/HP-ASA @K1_CFS-C-all.json index 30411e4028..d3a45386ad 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K1_CFS-C-all.json @@ -167,5 +167,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K2 Plus-all.json b/resources/profiles/Creality/filament/HP-ASA @K2 Plus-all.json index 3babd544ef..1b97d61b93 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K2 Plus-all.json @@ -175,5 +175,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K2 Pro-all.json b/resources/profiles/Creality/filament/HP-ASA @K2 Pro-all.json index a508566f74..33a4406fdd 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K2 Pro-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K2 SE-all.json b/resources/profiles/Creality/filament/HP-ASA @K2 SE-all.json index 68cbfb27d7..f29ffdd702 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K2 SE-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-ASA @K2-all.json b/resources/profiles/Creality/filament/HP-ASA @K2-all.json index b7d3829cda..2d38575630 100644 --- a/resources/profiles/Creality/filament/HP-ASA @K2-all.json +++ b/resources/profiles/Creality/filament/HP-ASA @K2-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "19001" + "filament_id": "OFPHLnoe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 V4-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V4-all.json index e627f5c5e8..9d7767c4d8 100644 --- a/resources/profiles/Creality/filament/HP-TPU @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V4-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @Hi-all.json b/resources/profiles/Creality/filament/HP-TPU @Hi-all.json index 244f173f41..c9b6766149 100644 --- a/resources/profiles/Creality/filament/HP-TPU @Hi-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @Hi-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/HP-TPU @K1 Max_CFS-C-all.json index 8ed2212fa9..079dfebfe2 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1 Max_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1 SE-all.json b/resources/profiles/Creality/filament/HP-TPU @K1 SE-all.json index 5c83cda993..7e5935cdf7 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1 SE-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1 SE-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/HP-TPU @K1 SE_CFS-C-all.json index f251c2e7db..62184e78e3 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1 SE_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1C-all.json b/resources/profiles/Creality/filament/HP-TPU @K1C-all.json index 6559456723..6762f0d2d4 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1C-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1C-all.json @@ -164,5 +164,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/HP-TPU @K1C_CFS-C-all.json index 825d30d323..e7534ade92 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1C_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K1_CFS-C-all.json b/resources/profiles/Creality/filament/HP-TPU @K1_CFS-C-all.json index 9a950cce1d..077936057a 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K1_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K2 Plus-all.json b/resources/profiles/Creality/filament/HP-TPU @K2 Plus-all.json index 19195696be..5b979963f0 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K2 Plus-all.json @@ -168,5 +168,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K2 Pro-all.json b/resources/profiles/Creality/filament/HP-TPU @K2 Pro-all.json index 07423945cb..90201f7dcf 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K2 Pro-all.json @@ -170,5 +170,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K2 SE-all.json b/resources/profiles/Creality/filament/HP-TPU @K2 SE-all.json index df44f03a65..b3779225c2 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K2 SE-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K2 SE-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @K2-all.json b/resources/profiles/Creality/filament/HP-TPU @K2-all.json index 4d1285f815..3768b17547 100644 --- a/resources/profiles/Creality/filament/HP-TPU @K2-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @K2-all.json @@ -165,5 +165,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/HP-TPU @SPARKX i7-all.json b/resources/profiles/Creality/filament/HP-TPU @SPARKX i7-all.json index 796ce1e78f..1d225ec253 100644 --- a/resources/profiles/Creality/filament/HP-TPU @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/HP-TPU @SPARKX i7-all.json @@ -179,5 +179,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "10001" + "filament_id": "OFGcMkEB" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V4-all.json index 3f038190b1..e4a50b5fec 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V4-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @Hi-all.json b/resources/profiles/Creality/filament/Hyper ABS @Hi-all.json index 5e3b9d7de7..bb93a96d02 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @Hi-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1 Max_CFS-C-all.json index f2a095c235..9749f95e35 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1 Max_CFS-C-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1 SE-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1 SE-all.json index 35871f8ac5..a303e41640 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1 SE-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1 SE_CFS-C-all.json index f160827598..b4780cb82d 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1 SE_CFS-C-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1C-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1C-all.json index 0d57ad0380..1ae0bc6ddf 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1C-all.json @@ -166,5 +166,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1C_CFS-C-all.json index 78b1d7d719..03f8fbc354 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1C_CFS-C-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper ABS @K1_CFS-C-all.json index e6ef2cfb6c..d6c76e777f 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K1_CFS-C-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper ABS @K2 Plus-all.json index bbef4b2148..7ecce97627 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K2 Plus-all.json @@ -163,5 +163,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper ABS @K2 Pro-all.json index edd4f7a352..de032398b5 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K2 Pro-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper ABS @K2 SE-all.json index 4710c1f7b1..c3132a18b5 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K2 SE-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper ABS @K2-all.json b/resources/profiles/Creality/filament/Hyper ABS @K2-all.json index 6aa0b2f736..63bf93483d 100644 --- a/resources/profiles/Creality/filament/Hyper ABS @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper ABS @K2-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "03001" + "filament_id": "OF8GnyFU" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @Hi-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @Hi-all.json index efafa60017..d4deb0be89 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @Hi-all.json @@ -145,5 +145,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 Max_CFS-C-all.json index 4b8ed94936..182364977c 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 Max_CFS-C-all.json @@ -166,5 +166,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE-all.json index c07d9981db..2bc12a6918 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE-all.json @@ -144,5 +144,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE_CFS-C-all.json index 3d69f8e7ae..065b9ac77e 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1 SE_CFS-C-all.json @@ -144,5 +144,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1C-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1C-all.json index 7193bf835b..872eeca4dc 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1C_CFS-C-all.json index 0757ec1fc8..3685dbd854 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1C_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K1_CFS-C-all.json index 387a549dbc..718112bd7b 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K1_CFS-C-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Plus-all.json index 2f3c64a6e1..df0df361ad 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Plus-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Pro-all.json index 902e373f86..cf2c873e77 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K2 Pro-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @K2-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @K2-all.json index a0f31de0c4..9b06765831 100644 --- a/resources/profiles/Creality/filament/Hyper L-W PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @K2-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "01002" + "filament_id": "OF70zbGS" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Hi-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Hi-all.json index a6873b4dc2..4c39c1ac1a 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @Hi-all.json @@ -136,5 +136,5 @@ "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @K1C-all.json b/resources/profiles/Creality/filament/Hyper Luminous @K1C-all.json index df72136acc..53ab1e078e 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @K1C-all.json @@ -163,5 +163,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper Luminous @K2 Plus-all.json index 13670be4d9..9e267d07cf 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @K2 Plus-all.json @@ -160,5 +160,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper Luminous @K2 Pro-all.json index eb7d7f3f03..67c567791c 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @K2 Pro-all.json @@ -160,5 +160,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @K2-all.json b/resources/profiles/Creality/filament/Hyper Luminous @K2-all.json index 86a72078c6..b5182102e4 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @K2-all.json @@ -160,5 +160,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Luminous @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper Luminous @SPARKX i7-all.json index b4991bc3ff..9817bd9701 100644 --- a/resources/profiles/Creality/filament/Hyper Luminous @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper Luminous @SPARKX i7-all.json @@ -179,5 +179,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "01003" + "filament_id": "OFC1PzXz" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @Hi-all.json b/resources/profiles/Creality/filament/Hyper Marble @Hi-all.json index 7576185076..614c8a9ac8 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @Hi-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Marble @K1 Max_CFS-C-all.json index 3475d6f5aa..1fdeb7e4d3 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K1 Max_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K1C-all.json b/resources/profiles/Creality/filament/Hyper Marble @K1C-all.json index fb9bc8c08c..3430271e86 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K1C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Marble @K1C_CFS-C-all.json index 63ab61c68e..f92a629e09 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K1C_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Marble @K1_CFS-C-all.json index 0e3f217669..0443b606a1 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K1_CFS-C-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper Marble @K2 Plus-all.json index bce1cbb5f0..87c217d5db 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K2 Plus-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper Marble @K2 Pro-all.json index 4c77e3e4ab..90047e7778 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K2 Pro-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper Marble @K2 SE-all.json index 706230c0b9..a0bc0bbfbc 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K2 SE-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @K2-all.json b/resources/profiles/Creality/filament/Hyper Marble @K2-all.json index 527ec67332..09eb2487d3 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @K2-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Marble @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper Marble @SPARKX i7-all.json index 0746b42880..746332ab6a 100644 --- a/resources/profiles/Creality/filament/Hyper Marble @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper Marble @SPARKX i7-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "29001" + "filament_id": "OFLzx3J4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Plus-all.json index 01aeb86cdf..d5d494f3f4 100644 --- a/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Plus-all.json @@ -195,5 +195,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "12005" + "filament_id": "OFn2GlhY" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Pro-all.json index 40139cf279..97f41d5746 100644 --- a/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PA6-CF @K2 Pro-all.json @@ -195,5 +195,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "12005" + "filament_id": "OFn2GlhY" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Plus-all.json index 2f8bcbbacb..658908446c 100644 --- a/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Plus-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "12004" + "filament_id": "OFhkN0a7" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Pro-all.json index 3f4be12bf3..40870d5cd3 100644 --- a/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PA612-CF @K2 Pro-all.json @@ -189,5 +189,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "12004" + "filament_id": "OFhkN0a7" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1 Max_CFS-C-all.json index 3311a96082..915b8b67d9 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1 Max_CFS-C-all.json @@ -192,5 +192,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C-all.json index b06066ce46..3529603ba6 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C-all.json @@ -193,5 +193,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C_CFS-C-all.json index 1e89fbaa08..a2c841f463 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1C_CFS-C-all.json @@ -193,5 +193,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1_CFS-C-all.json index bf05bb6310..c597cd9c95 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K1_CFS-C-all.json @@ -193,5 +193,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Plus-all.json index df43ebb973..67d0b403cc 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Plus-all.json @@ -190,5 +190,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Pro-all.json index 60e6f6e84e..f7e37afe69 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2 Pro-all.json @@ -180,5 +180,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2-all.json b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2-all.json index 39fc5e217b..1f97108309 100644 --- a/resources/profiles/Creality/filament/Hyper PAHT-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PAHT-CF @K2-all.json @@ -180,5 +180,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "12003" + "filament_id": "OF4APyxe" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PC @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PC @K2 Plus-all.json index 43f1d53cdc..85d5d66252 100644 --- a/resources/profiles/Creality/filament/Hyper PC @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PC @K2 Plus-all.json @@ -167,5 +167,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "07002" + "filament_id": "OFUF7oA4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PC @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PC @K2 Pro-all.json index 3668981c2b..7592b6dbcf 100644 --- a/resources/profiles/Creality/filament/Hyper PC @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PC @K2 Pro-all.json @@ -169,5 +169,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "07002" + "filament_id": "OFUF7oA4" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V4-all.json index aa4a1da8b8..a333d63f3d 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @Hi-all.json b/resources/profiles/Creality/filament/Hyper PETG @Hi-all.json index fdc782abad..5998e1e8bd 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @Hi-all.json @@ -145,5 +145,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1 Max_CFS-C-all.json index 89090724f4..6bd1f3afea 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1 Max_CFS-C-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1 SE-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1 SE-all.json index 85d9b0fc2d..058dfe5bd6 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1 SE-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1 SE_CFS-C-all.json index afd34c32d2..f1ceb825e9 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1 SE_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1C-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1C-all.json index b4f548e7d8..175aa8099c 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1C-all.json @@ -151,5 +151,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1C_CFS-C-all.json index a132ab6ba7..be8e2c58f5 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1C_CFS-C-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG @K1_CFS-C-all.json index 1d4207f047..9bf2512abe 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K1_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PETG @K2 Plus-all.json index 2b65adafad..983556224b 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K2 Plus-all.json @@ -145,5 +145,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PETG @K2 Pro-all.json index 25acc10afb..32a8fae98b 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K2 Pro-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper PETG @K2 SE-all.json index f00003218e..cc058c4511 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K2 SE-all.json @@ -154,5 +154,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @K2-all.json b/resources/profiles/Creality/filament/Hyper PETG @K2-all.json index f0f86795ec..9bbf24c47f 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @K2-all.json @@ -144,5 +144,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper PETG @SPARKX i7-all.json index 26b6def656..d8db7fd923 100644 --- a/resources/profiles/Creality/filament/Hyper PETG @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG @SPARKX i7-all.json @@ -160,5 +160,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "06002" + "filament_id": "OFujZSdh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K1 Max_CFS-C-all.json index 459f8fcd55..69662a0296 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K1 Max_CFS-C-all.json @@ -136,5 +136,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K1C-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K1C-all.json index 05fe909fb4..1005d22d7f 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K1C-all.json @@ -135,5 +135,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K1C_CFS-C-all.json index 9fa1a032be..e9008aede1 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K1C_CFS-C-all.json @@ -135,5 +135,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K1_CFS-C-all.json index 3f99330c5b..2358ec054e 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K1_CFS-C-all.json @@ -136,5 +136,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Plus-all.json index 544ae5fb6f..252b6dad9c 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Plus-all.json @@ -138,5 +138,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Pro-all.json index ec260e76f3..1962c54912 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K2 Pro-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @K2-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @K2-all.json index e178e47042..68ae2439d7 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @K2-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-CF @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper PETG-CF @SPARKX i7-all.json index f88b59d4d7..a3ab600254 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-CF @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-CF @SPARKX i7-all.json @@ -163,5 +163,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "06003" + "filament_id": "OFusbWjj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-GF @K1C-all.json b/resources/profiles/Creality/filament/Hyper PETG-GF @K1C-all.json index 0c1d8e5c2a..9fdfe1559b 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-GF @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-GF @K1C-all.json @@ -145,5 +145,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "06004" + "filament_id": "OFLgwqp2" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Plus-all.json index 4b719767d0..820b021b9e 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Plus-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "06004" + "filament_id": "OFLgwqp2" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Pro-all.json index 346247a4aa..3129330404 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-GF @K2 Pro-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "06004" + "filament_id": "OFLgwqp2" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PETG-GF @K2-all.json b/resources/profiles/Creality/filament/Hyper PETG-GF @K2-all.json index 9f28d154fb..eafa06d339 100644 --- a/resources/profiles/Creality/filament/Hyper PETG-GF @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PETG-GF @K2-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "06004" + "filament_id": "OFLgwqp2" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V4-all.json index aa981c3a30..8fbc885c07 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V4-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @Hi-all.json b/resources/profiles/Creality/filament/Hyper PLA @Hi-all.json index 9b1ec357b7..c5297f78ed 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @Hi-all.json @@ -142,5 +142,5 @@ "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1 Max_CFS-C-all.json index c3e7bed7f8..be08cd5bb4 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1 Max_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1 SE-all.json index 717c0835dc..2d764065a5 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1 SE-all.json @@ -136,5 +136,5 @@ "Creality K1 SE 0.6 nozzle", "Creality K1 SE 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1 SE_CFS-C-all.json index 3679080841..0c80515aaa 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1 SE_CFS-C-all.json @@ -134,5 +134,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1C-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1C-all.json index fa5a7a6ac2..4b3f6b5a60 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1C-all.json @@ -157,5 +157,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1C_CFS-C-all.json index 7626dae835..f0513b112b 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1C_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA @K1_CFS-C-all.json index f95f80a5a4..c4175d3ead 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K1_CFS-C-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PLA @K2 Plus-all.json index 2d4608e32f..193bf2dee6 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K2 Plus-all.json @@ -155,5 +155,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA @K2 Pro-all.json index 973044ff35..3d8a1cbdd6 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K2 Pro-all.json @@ -157,5 +157,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA @K2 SE-all.json index 6480fb0dad..34f98b70ae 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K2 SE-all.json @@ -136,5 +136,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @K2-all.json b/resources/profiles/Creality/filament/Hyper PLA @K2-all.json index 910f9888fe..f47ea8a5d8 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @K2-all.json @@ -155,5 +155,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper PLA @SPARKX i7-all.json index 8e9b21749f..00afa33b11 100644 --- a/resources/profiles/Creality/filament/Hyper PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA @SPARKX i7-all.json @@ -164,5 +164,5 @@ "Creality SPARKX i7 0.6 nozzle", "Creality SPARKX i7 0.8 nozzle" ], - "filament_id": "01001" + "filament_id": "OFCZsqXg" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V4-all.json index f55de5ef56..fb92e57672 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V4-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Hi-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Hi-all.json index ac7a413888..e63ee3717d 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Hi-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 Max_CFS-C-all.json index f15929e486..d1a9cb3a38 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 Max_CFS-C-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE-all.json index af9c28e809..368b104901 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 SE 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE_CFS-C-all.json index b44b0ceb3d..215a01e8a7 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1 SE_CFS-C-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K1 SE_CFS-C 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1C-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1C-all.json index f4f4b2e536..d6d269db66 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1C_CFS-C-all.json index 952822e040..5ed8fbe15f 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1C_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K1_CFS-C-all.json index f65f1b5ec5..fe506e1147 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K1_CFS-C-all.json @@ -153,5 +153,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Plus-all.json index ebb185aabc..f9267d07e8 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Plus-all.json @@ -162,5 +162,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Pro-all.json index b32297ee79..9c465b0d30 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 Pro-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 SE-all.json index 758086354d..94ac06f8bb 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K2 SE-all.json @@ -145,5 +145,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @K2-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @K2-all.json index b280582803..d0344132b6 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @K2-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @SPARKX i7-all.json index ccb1e5a690..53b640d939 100644 --- a/resources/profiles/Creality/filament/Hyper PLA-CF @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @SPARKX i7-all.json @@ -172,5 +172,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "02001" + "filament_id": "OFTnWzBs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Plus-all.json index e13b1c8420..c817224955 100644 --- a/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Plus-all.json @@ -181,5 +181,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "12002" + "filament_id": "OFNvBIL0" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Pro-all.json index 314b8641aa..4f7d4ddf2f 100644 --- a/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper PPA-CF @K2 Pro-all.json @@ -177,5 +177,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "12002" + "filament_id": "OFNvBIL0" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Hi-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Hi-all.json index fd0c47db8e..02756e4af3 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @Hi-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @Hi-all.json @@ -152,5 +152,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K1 Max_CFS-C-all.json index e822a0fa7a..0af9505f19 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K1 Max_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K1C-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K1C-all.json index 8e9d53c893..7afa71cd4c 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K1C-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K1C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K1C_CFS-C-all.json index 416ee437c0..058d4439ea 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K1C_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K1_CFS-C-all.json index d8dcb3862b..f90af90902 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K1_CFS-C-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K2 Plus-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K2 Plus-all.json index b74711cd62..7580e9f4e9 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K2 Plus-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K2 Pro-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K2 Pro-all.json index a0fdc30bab..1e307464b1 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K2 Pro-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K2 SE-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K2 SE-all.json index 84a8a22de5..9134285053 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K2 SE-all.json @@ -139,5 +139,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @K2-all.json b/resources/profiles/Creality/filament/Hyper Stardust @K2-all.json index 95f30eb149..154376069e 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @K2-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @K2-all.json @@ -157,5 +157,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Hyper Stardust @SPARKX i7-all.json b/resources/profiles/Creality/filament/Hyper Stardust @SPARKX i7-all.json index bc3de91594..43ccb7898c 100644 --- a/resources/profiles/Creality/filament/Hyper Stardust @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Hyper Stardust @SPARKX i7-all.json @@ -175,5 +175,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "01004" + "filament_id": "OFXnToSX" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Panchroma PLA Matte @K2 Plus-all.json b/resources/profiles/Creality/filament/Panchroma PLA Matte @K2 Plus-all.json index 05b64e3648..62f308a71b 100644 --- a/resources/profiles/Creality/filament/Panchroma PLA Matte @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Panchroma PLA Matte @K2 Plus-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "P1003" + "filament_id": "OFrOh600" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Panchroma PLA Satin @K2 Plus-all.json b/resources/profiles/Creality/filament/Panchroma PLA Satin @K2 Plus-all.json index c290ac0748..5d7f4818bd 100644 --- a/resources/profiles/Creality/filament/Panchroma PLA Satin @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Panchroma PLA Satin @K2 Plus-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "P1001" + "filament_id": "OFPkCJKE" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/PolySonic PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/PolySonic PLA @K2 Plus-all.json index bee02a0f14..20bd0700ab 100644 --- a/resources/profiles/Creality/filament/PolySonic PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/PolySonic PLA @K2 Plus-all.json @@ -168,5 +168,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "P1004" + "filament_id": "OF66KUAN" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/PolySonic PLA Pro @K2 Plus-all.json b/resources/profiles/Creality/filament/PolySonic PLA Pro @K2 Plus-all.json index 47e17257bd..acd8558abe 100644 --- a/resources/profiles/Creality/filament/PolySonic PLA Pro @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/PolySonic PLA Pro @K2 Plus-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "P1002" + "filament_id": "OFKbdiiJ" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Hi-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Hi-all.json index 66fb01a064..1e77a28ccf 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @Hi-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Hi-all.json @@ -123,5 +123,5 @@ "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @K1C-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @K1C-all.json index 208583adff..626d34362d 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @K1C-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @K1C-all.json @@ -126,5 +126,5 @@ "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Plus-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Plus-all.json index f9d68e033a..8d1dc8a1c0 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Plus-all.json @@ -128,5 +128,5 @@ "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Pro-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Pro-all.json index d88e732e2f..fca00e01ab 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2 Pro-all.json @@ -128,5 +128,5 @@ "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2-all.json index 5c62188c93..da86d9e27e 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @K2-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @K2-all.json @@ -128,5 +128,5 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @SPARKX i7-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @SPARKX i7-all.json index 5b73363f5d..79b83b8e69 100644 --- a/resources/profiles/Creality/filament/Soleyin Basic PETG @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @SPARKX i7-all.json @@ -118,5 +118,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "06005" + "filament_id": "OFBLktDy" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V4-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V4-all.json index 0abc37c050..b159f9141b 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V4-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V4-all.json @@ -149,5 +149,5 @@ "compatible_printers": [ "Creality Ender-3 V4 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Hi-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Hi-all.json index 8340313872..163ed96d8a 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Hi-all.json @@ -142,5 +142,5 @@ "compatible_printers": [ "Creality Hi 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1 Max_CFS-C-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1 Max_CFS-C-all.json index b32740a47c..5612fad4d2 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1 Max_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1 Max_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1 Max_CFS-C 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C-all.json index 2b0d1058cc..f975e2b6c4 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1C 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C_CFS-C-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C_CFS-C-all.json index 9cfa3eb9e9..9f4c2d9029 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1C_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1C_CFS-C 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1_CFS-C-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1_CFS-C-all.json index 4cb9bfa4ff..0c7bd485be 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1_CFS-C-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K1_CFS-C-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K1_CFS-C 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Plus-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Plus-all.json index b4e93a4aea..06b1fc8729 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Plus-all.json @@ -161,5 +161,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Pro-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Pro-all.json index 63b6a48fa2..37702f76c0 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Pro-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 Pro-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K2 Pro 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 SE-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 SE-all.json index 590e345f39..7ff723f655 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 SE-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2 SE-all.json @@ -146,5 +146,5 @@ "compatible_printers": [ "Creality K2 SE 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2-all.json index 3e8753160b..2d68106751 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @K2-all.json @@ -164,5 +164,5 @@ "compatible_printers": [ "Creality K2 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @SPARKX i7-all.json index 3c15bcb7d0..9bad5351c2 100644 --- a/resources/profiles/Creality/filament/Soleyin Ultra PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @SPARKX i7-all.json @@ -170,5 +170,5 @@ "compatible_printers": [ "Creality SPARKX i7 0.4 nozzle" ], - "filament_id": "01601" + "filament_id": "OF02UAVh" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN ABS+ @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN ABS+ @K2 Plus-all.json index 449aed7663..77f2c6a6bf 100644 --- a/resources/profiles/Creality/filament/eSUN ABS+ @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN ABS+ @K2 Plus-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E3001" + "filament_id": "OFTXduCM" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN ASA+ @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN ASA+ @K2 Plus-all.json index d9e439ef2b..1afd5f1511 100644 --- a/resources/profiles/Creality/filament/eSUN ASA+ @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN ASA+ @K2 Plus-all.json @@ -155,5 +155,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E4001" + "filament_id": "OFUmS5z5" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PET-Basic @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PET-Basic @K2 Plus-all.json index 0befedf49f..08ab12e2c9 100644 --- a/resources/profiles/Creality/filament/eSUN PET-Basic @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PET-Basic @K2 Plus-all.json @@ -185,5 +185,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E8001" + "filament_id": "OFHaYaB1" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PETG @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PETG @K2 Plus-all.json index abbc6f48cc..745ca87011 100644 --- a/resources/profiles/Creality/filament/eSUN PETG @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PETG @K2 Plus-all.json @@ -83,5 +83,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E2001" + "filament_id": "OF3kBrdA" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PETG+HS @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PETG+HS @K2 Plus-all.json index 2ac796d298..db95688083 100644 --- a/resources/profiles/Creality/filament/eSUN PETG+HS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PETG+HS @K2 Plus-all.json @@ -80,5 +80,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E2002" + "filament_id": "OFrdZ0cK" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PETG-Basic @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PETG-Basic @K2 Plus-all.json index 5803a71cef..4885eb89a0 100644 --- a/resources/profiles/Creality/filament/eSUN PETG-Basic @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PETG-Basic @K2 Plus-all.json @@ -83,5 +83,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E2003" + "filament_id": "OFFbQscs" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA+ @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA+ @K2 Plus-all.json index a5bdfb25cd..d4f35de9be 100644 --- a/resources/profiles/Creality/filament/eSUN PLA+ @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA+ @K2 Plus-all.json @@ -159,5 +159,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1001" + "filament_id": "OFqINlYj" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-CF @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-CF @K2 Plus-all.json index 3712719e47..e76dc3d1fa 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-CF @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-CF @K2 Plus-all.json @@ -74,5 +74,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1005" + "filament_id": "OFnHc3D6" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-HS @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-HS @K2 Plus-all.json index a5a1e52d46..0c540de90b 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-HS @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-HS @K2 Plus-all.json @@ -65,5 +65,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1006" + "filament_id": "OFOHOf2F" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-LW @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-LW @K2 Plus-all.json index 99550707a2..2e4b7703a0 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-LW @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-LW @K2 Plus-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "00035" + "filament_id": "OFi5RSve" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-Lite @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-Lite @K2 Plus-all.json index 07fdbcd5b2..d5f4324da1 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-Lite @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-Lite @K2 Plus-all.json @@ -165,5 +165,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1004" + "filament_id": "OFhbolij" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-Matte @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-Matte @K2 Plus-all.json index 5a1f80d5de..bca728ae00 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-Matte @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-Matte @K2 Plus-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1003" + "filament_id": "OFDETOM6" } \ No newline at end of file diff --git a/resources/profiles/Creality/filament/eSUN PLA-Silk @K2 Plus-all.json b/resources/profiles/Creality/filament/eSUN PLA-Silk @K2 Plus-all.json index d09abc2625..fa57453069 100644 --- a/resources/profiles/Creality/filament/eSUN PLA-Silk @K2 Plus-all.json +++ b/resources/profiles/Creality/filament/eSUN PLA-Silk @K2 Plus-all.json @@ -162,5 +162,5 @@ "compatible_printers": [ "Creality K2 Plus 0.4 nozzle" ], - "filament_id": "E1002" + "filament_id": "OFIRUqWi" } \ No newline at end of file diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json index 8446df4752..52deadf521 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS @base", "setting_id": "VJEyK87ZYvHmamB9", - "filament_id": "OF6XuVQE", + "filament_id": "OFpDo5Ix", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json index c7b34c9694..ea320b01e4 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon ABS @base", "from": "system", "setting_id": "Kz41mb2M9xLbEJ97", - "filament_id": "OF6XuVQE", + "filament_id": "OFpDo5Ix", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json index 3865f034fa..1f4da6c3f8 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABS @base", "setting_id": "A5FQdwh0Xo7aTRpq", - "filament_id": "OF6XuVQE", + "filament_id": "OFpDo5Ix", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json index 55fbd40ee4..998588dbac 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS @base", "inherits": "fdm_filament_abs", "setting_id": "aZRVIlDze62Bbw81", - "filament_id": "P510cfb0", + "filament_id": "OFafocjw", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json index 40cec441cc..cc34341ceb 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS-A100 @base", "setting_id": "OfiOryklf7FDVCz8", - "filament_id": "OFcZZWnB", + "filament_id": "OFy8tYJE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json index 77205f02c2..5c85efa062 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon ABS-A100 @base", "from": "system", "setting_id": "pIyU9uXQ5V3hsg5F", - "filament_id": "OFcZZWnB", + "filament_id": "OFy8tYJE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json index c78d3720df..765f1ce75c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABS-A100 @base", "setting_id": "xhYh9x1vescinfbF", - "filament_id": "OFcZZWnB", + "filament_id": "OFy8tYJE", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json index dddc147ff2..a943b60a8b 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json @@ -3,7 +3,7 @@ "name": "Cubicon ABS-A100 @base", "inherits": "Cubicon ABS @base", "setting_id": "vGIT4KZvqojIh2up", - "filament_id": "P510cfb1", + "filament_id": "OFN9fefN", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json index 296268a3f0..0deea7e69f 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABSk @base", "setting_id": "TXcodZkab4fofnEn", - "filament_id": "OFNQHqAV", + "filament_id": "OForhBi4", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json index afd798384f..1a2e21517c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon ABSk @base", "from": "system", "setting_id": "CsthNnKn8WlBbkP4", - "filament_id": "OFNQHqAV", + "filament_id": "OForhBi4", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json index 6f60bb4c13..1295c2189e 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon ABSk @base", "setting_id": "UVitMFMxvdf34qZw", - "filament_id": "OFNQHqAV", + "filament_id": "OForhBi4", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json index e1546d3bae..a042ecbea3 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json @@ -3,7 +3,7 @@ "name": "Cubicon ABSk @base", "inherits": "Cubicon ABS @base", "setting_id": "UbOUO0K3Y2iRPBtf", - "filament_id": "P510cfb2", + "filament_id": "OFgVQkqW", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json index 8edf5f65e5..c8e56eaa13 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PA-CF @base", "setting_id": "nupuIJggdc1EKDqG", - "filament_id": "OFOJUJAS", + "filament_id": "OFiEz2XI", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json index eda94acc49..7cb486c4e8 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PA-CF @base", "from": "system", "setting_id": "NPjuy4deP6Ly7u9s", - "filament_id": "OFOJUJAS", + "filament_id": "OFiEz2XI", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json index f67e32c8ac..4279540ac4 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PA-CF @base", "setting_id": "ygB1Uf9Vbw9LJZc8", - "filament_id": "OFOJUJAS", + "filament_id": "OFiEz2XI", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json index 51c89949f6..daf2b62754 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Cubicon PA-CF @base", "inherits": "fdm_filament_pa", "setting_id": "55cJDyCoEudfOePY", - "filament_id": "P510cfd0", + "filament_id": "OFD21ije", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json index aa761b7454..d115a6da70 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PC @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PC @base", "setting_id": "c0sUPS0SRYUNjEpB", - "filament_id": "OFaxQnfz", + "filament_id": "OFEj7sca", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json index e5c07509a4..9890ed585f 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PC @base", "from": "system", "setting_id": "XGXjHwuHUjtAJGl1", - "filament_id": "OFaxQnfz", + "filament_id": "OFEj7sca", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json index f565564c82..63be065b85 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PC @base", "setting_id": "jbYKOK1A0Oxm9t0f", - "filament_id": "OFaxQnfz", + "filament_id": "OFEj7sca", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @base.json b/resources/profiles/Cubicon/filament/Cubicon PC @base.json index 5ecc4082c8..83e3afb15b 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @base.json @@ -3,7 +3,7 @@ "name": "Cubicon PC @base", "inherits": "fdm_filament_pc", "setting_id": "Mzg6jfwb2nqfGkdV", - "filament_id": "OFnLnZQo", + "filament_id": "OF79Fbo6", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json index c9db611832..001b4ecf54 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PETG @base", "setting_id": "dsX01tCkd2Usk104", - "filament_id": "OF0VEdLB", + "filament_id": "OFoBTKmn", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json index 653ca65758..b87bc4b3e5 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PETG @base", "from": "system", "setting_id": "2hYoCR5qUXCWIAxZ", - "filament_id": "OF0VEdLB", + "filament_id": "OFoBTKmn", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json index 919a262523..1b46fe6d64 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", "inherits": "Cubicon PETG @base", "setting_id": "5pfiRdyNz9dvT4Q6", - "filament_id": "OF0VEdLB", + "filament_id": "OFoBTKmn", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json index 2242ba36ca..cf4ac7a4af 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json @@ -3,7 +3,7 @@ "name": "Cubicon PETG @base", "inherits": "fdm_filament_pet", "setting_id": "bGfz4phwIdqSz0Hx", - "filament_id": "P510cfc0", + "filament_id": "OF8Hx3Pi", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json index fc5d62bdc5..5110547028 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "xXJgHAeNf1JdCitr", - "filament_id": "OFq6IhFg", + "filament_id": "OFEwRwmL", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json index 39d9a7835e..940152ae16 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "o2BQL6OKtxDmBkWV", - "filament_id": "OFq6IhFg", + "filament_id": "OFEwRwmL", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json index d94d38529c..ee5a5a1d3d 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA @base", "from": "system", "setting_id": "WkZrzDlGvb25OtrF", - "filament_id": "OFq6IhFg", + "filament_id": "OFEwRwmL", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json index 665ba58d59..7dd06c3498 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ypwdJAu0NlEsWpf4", - "filament_id": "P510cfa0", + "filament_id": "OFjcwUEm", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json index c068eba680..3acad023d0 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "fNR2Bw3e4TGcWhq0", - "filament_id": "OF2HQqTC", + "filament_id": "OF7tt7DO", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json index f8c8331b31..32a6607377 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "wukhnaCJaOLUUdiU", - "filament_id": "OF2HQqTC", + "filament_id": "OF7tt7DO", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json index 0da1b35a44..823e0e51ca 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLA+ @base", "from": "system", "setting_id": "JVShu8DKQ3euGHec", - "filament_id": "OF2HQqTC", + "filament_id": "OF7tt7DO", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json index cb916a9410..5b98d6fcf8 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json @@ -3,7 +3,7 @@ "name": "Cubicon PLA+ @base", "inherits": "Cubicon PLA @base", "setting_id": "ETnuhiOZRh1jxrVk", - "filament_id": "P510cfa1", + "filament_id": "OFRmGKVX", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json index b0a23bdd31..865d1af0c3 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "vcLVF3cglagBfVAF", - "filament_id": "OFti31HS", + "filament_id": "OFRhBryT", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json index 43f571041e..999da52ede 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "3TbOucKB5TGk8sXG", - "filament_id": "OFti31HS", + "filament_id": "OFRhBryT", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Mini 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json index e797ea0312..637cdb87f2 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Cubicon PLAi21 @base", "from": "system", "setting_id": "Vm1oDASHoFUfDrzQ", - "filament_id": "OFti31HS", + "filament_id": "OFRhBryT", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-Plus 0.4 nozzle" diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json index 831450deef..7c851e2a34 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json @@ -3,7 +3,7 @@ "name": "Cubicon PLAi21 @base", "inherits": "Cubicon PLA @base", "setting_id": "mnwC7ijXXV72lBOt", - "filament_id": "P510cfa2", + "filament_id": "OFdkWDiy", "instantiation": "true", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", diff --git a/resources/profiles/Cubicon/filament/fdm_filament_pa.json b/resources/profiles/Cubicon/filament/fdm_filament_pa.json index c2e4cf86df..b75ab9a8c9 100644 --- a/resources/profiles/Cubicon/filament/fdm_filament_pa.json +++ b/resources/profiles/Cubicon/filament/fdm_filament_pa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFN99", "instantiation": "false", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Cubicon/filament/fdm_filament_pc.json b/resources/profiles/Cubicon/filament/fdm_filament_pc.json index 0f550063ad..120689c074 100644 --- a/resources/profiles/Cubicon/filament/fdm_filament_pc.json +++ b/resources/profiles/Cubicon/filament/fdm_filament_pc.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pc", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFC99", "instantiation": "false", "supertack_plate_temp": [ "0" diff --git a/resources/profiles/Cubicon/filament/fdm_filament_pet.json b/resources/profiles/Cubicon/filament/fdm_filament_pet.json index 250915a07b..63996fb69a 100644 --- a/resources/profiles/Cubicon/filament/fdm_filament_pet.json +++ b/resources/profiles/Cubicon/filament/fdm_filament_pet.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pet", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "OGFG99", "instantiation": "false", "eng_plate_temp": [ "0" diff --git a/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json index d80b197394..a22562e2b4 100644 --- a/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic PC @System", "from": "system", "setting_id": "HMOa2jbj19Xjipt5", - "filament_id": "GFC99", "instantiation": "true", "filament_cooling_final_speed": [ "3.5" diff --git a/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json index 693551c428..d53c8ac746 100644 --- a/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "4qShNrl9EWAVBfeG", - "filament_id": "GFG99", "instantiation": "true", "filament_cooling_final_speed": [ "3.5" diff --git a/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json index cf1db6e225..a2a12da874 100644 --- a/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "WbAYFZdqFwEZnNAX", - "filament_id": "GFL99", "instantiation": "true", "filament_cooling_final_speed": [ "3.5" diff --git a/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json index 6ae729d622..eca53185a9 100644 --- a/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "53UFt3Q63NB0ztlP", - "filament_id": "GFL98", "instantiation": "true", "filament_cooling_final_speed": [ "3.5" diff --git a/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json index ccb6d16c73..2356b4a053 100644 --- a/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "dyOUyXNOKP1VmSal", - "filament_id": "GFS99", "instantiation": "true", "filament_cooling_final_speed": [ "3.5" diff --git a/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json b/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json index c88ee2da7d..2527ff824e 100644 --- a/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic TPU @MyToolChanger.json @@ -5,7 +5,6 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "H45dfn4BGdLAx9nN", - "filament_id": "GFU99", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json index e32baac8f9..713eac979d 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Brand PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "bvZOHe5ejWqBALPQ", - "filament_id": "OFxodd2u", + "filament_id": "OFRpAZ1P", "instantiation": "true", "filament_flow_ratio": [ "0.987" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json index 32980cb53e..94a2707c85 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "qlQo6a93esZv2l9a", - "filament_id": "GFG99", + "filament_id": "OF4oCRKe", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json index d4b8ab071c..5a130f9040 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "gfxr3MiE4uI2Xxy7", - "filament_id": "GFL99", + "filament_id": "OFifxPW1", "instantiation": "true", "filament_flow_ratio": [ "0.987" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json index e971b6884c..3d02e90708 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json +++ b/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "2L1U33wC0LofrMWs", - "filament_id": "GFB99", + "filament_id": "OFbt04e0", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json index 273eb70ec5..90d7a3e8af 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json @@ -4,7 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "weKWPiNIe3TmOXRn", - "filament_id": "OFUYjPc4", + "filament_id": "OFD2JNS1", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json index 822f95fe2c..3fbcaefaa1 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json @@ -4,7 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "kZAEjhLS29WQeyf1", - "filament_id": "OFUYjPc4", + "filament_id": "OFD2JNS1", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json index 62373995e2..0b0f6b155f 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json @@ -4,7 +4,7 @@ "inherits": "Dremel Generic PLA", "from": "system", "setting_id": "pIlkZjNrXnHJDszp", - "filament_id": "OFUYjPc4", + "filament_id": "OFD2JNS1", "instantiation": "true", "slow_down_min_speed": "10", "close_fan_the_first_x_layers": "3", diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA.json b/resources/profiles/Dremel/filament/Dremel Generic PLA.json index b5263d20f3..d46a8cebfa 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA.json +++ b/resources/profiles/Dremel/filament/Dremel Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "blJERdJqaaRmRdD4", - "filament_id": "GFL99", + "filament_id": "OFaU2JxD", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo ABS @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo ABS @base.json index 86b533bba1..43c786705e 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo ABS @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo ABS @base.json @@ -3,7 +3,7 @@ "name": "Elegoo ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "EABSB00", + "filament_id": "OFxOHhZw", "instantiation": "false", "filament_vendor": [ "Elegoo" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo ASA @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA @base.json index c48b5e5671..ea910dec86 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo ASA @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA @base.json @@ -3,7 +3,7 @@ "name": "Elegoo ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "EASAB00", + "filament_id": "OFobDOW5", "instantiation": "false", "filament_vendor": [ "Elegoo" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json index bc100dfe2f..155d6f8290 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo ASA-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo ASA-CF @base", "inherits": "Elegoo ASA @base", "from": "system", - "filament_id": "OFAiqi5v", + "filament_id": "OFryjl35", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json index 87907a36f8..a05ee2347c 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PAHT @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "EPAHTB00", + "filament_id": "OF0h7ERL", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PC @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PC @base.json index d60048b30a..ecaac93aaf 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PC @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PC @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "EPCB00", + "filament_id": "OFUyDDNv", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json index 9aeb40e0a8..91034fda41 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PC-FR @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PC-FR @base", "inherits": "Elegoo PC @base", "from": "system", - "filament_id": "OFzFbFcl", + "filament_id": "OFlsTpJG", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json index 6290eba7f9..c1b9e78897 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PET-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFSCm6pJ", + "filament_id": "OFV5tNw6", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG @base.json index 29d83df77a..ec92793955 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "EPETGB00", + "filament_id": "OFLcd093", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json index ba3e4715a3..9645c4572f 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG HF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG HF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFxjFYxE", + "filament_id": "OFlP3KWq", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json index 4df7589911..ec604d722c 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG PRO @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG PRO @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFmOWC74", + "filament_id": "OFOsHDnB", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json index b75929e76a..2d7d0f9777 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG Translucent @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG Translucent @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFOkTA0C", + "filament_id": "OF6Ll8lK", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json index 3a3b837513..60a643b2a3 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFiyGNbI", + "filament_id": "OFuUuIhR", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json index e7020a00bf..3ff4b96375 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PETG-GF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PETG-GF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFBvxnjM", + "filament_id": "OFmveLWz", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json index 40e594ee62..8965bae8e1 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA @base.json @@ -3,7 +3,7 @@ "name": "Elegoo PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "EPLAB00", + "filament_id": "OFvgE0Zh", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json index 42f77b0b2b..93c52a3382 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Basic @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Basic @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFHtQDC9", + "filament_id": "OFm06H6V", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json index ef7c46673d..a25fcf8daa 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Galaxy @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Galaxy @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OF09vOcG", + "filament_id": "OFU1zPxE", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json index cffd7b0185..a07012d83b 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Glow @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Glow @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFuXkYly", + "filament_id": "OFjPXrXO", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json index bda871cae8..b8990a7c1b 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Marble @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Marble @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFbYP6Wb", + "filament_id": "OFfuhviw", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json index a216c20e7c..0394308e99 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Matte @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Matte @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFwyqcGn", + "filament_id": "OFsB2lxm", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json index d6d1e30e6c..731f5c5ca4 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA PRO @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA PRO @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFklg4aM", + "filament_id": "OF1hznGB", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json index b0ba1af2d6..e708794eea 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Silk @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Silk @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFkfK62J", + "filament_id": "OFXz7Mwx", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json index 1120084d6a..cc292ac240 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Sparkle @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Sparkle @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFaKIoH2", + "filament_id": "OFhcYzR8", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json index d06d60e5cc..c0e2e23dfe 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Translucent2 @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Translucent2 @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFcqs5g7", + "filament_id": "OFn1QaY3", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json index ab43fb2bf2..4e3362a5d3 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA Wood @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA Wood @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFh5GUhZ", + "filament_id": "OFWYtgCa", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json index 028fd42383..f90355d85c 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA+ @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA+ @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFDMWB6t", + "filament_id": "OFBUIlZ7", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json index 706b60f0c9..4f4979d95f 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PLA-CF @base.json @@ -3,6 +3,6 @@ "name": "Elegoo PLA-CF @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFuPC4S8", + "filament_id": "OFln72PT", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json index 5eeb29bad3..e328cf0a75 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PETG @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid PETG @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OF3arl18", + "filament_id": "OFLXvuMr", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json index b83fe4b688..06fd489c41 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid PLA+ @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid PLA+ @base", "inherits": "Elegoo PLA @base", "from": "system", - "filament_id": "OFAHagT9", + "filament_id": "OFkhhUS0", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json index fe1bae90a0..58cec037c3 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json @@ -3,6 +3,6 @@ "name": "Elegoo Rapid TPU 95A @base", "inherits": "Elegoo TPU @base", "from": "system", - "filament_id": "OFL4KniM", + "filament_id": "OF30Ftju", "instantiation": "false" } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json index 99ed8dc8e9..08bd3d93af 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json @@ -3,7 +3,7 @@ "name": "Elegoo TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "ETPUB00", + "filament_id": "OFmhJs5V", "instantiation": "false", "filament_max_volumetric_speed": [ "3.6" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic ABS @base.json b/resources/profiles/Elegoo/filament/BASE/Generic ABS @base.json index 5607709da7..1c6c0dffaf 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic ABS @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic ABS @base.json @@ -3,7 +3,7 @@ "name": "Generic ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GABSB00", + "filament_id": "OFY9muEs", "instantiation": "false", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic ASA @base.json b/resources/profiles/Elegoo/filament/BASE/Generic ASA @base.json index d2f0c4672b..5c1ac04bd9 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic ASA @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic ASA @base.json @@ -3,7 +3,7 @@ "name": "Generic ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GASAB00", + "filament_id": "OFLPAxz3", "instantiation": "false", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic PA @base.json b/resources/profiles/Elegoo/filament/BASE/Generic PA @base.json index e130cbf2e2..c9cae649dc 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic PA @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic PA @base.json @@ -3,7 +3,7 @@ "name": "Generic PA @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GPAB00", + "filament_id": "OFg8ndtj", "instantiation": "false", "chamber_temperatures": [ "60" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic PC @base.json b/resources/profiles/Elegoo/filament/BASE/Generic PC @base.json index 71850f98a9..b07248a643 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic PC @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic PC @base.json @@ -3,7 +3,7 @@ "name": "Generic PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GPCB00", + "filament_id": "OFLakOUI", "instantiation": "false", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic PET @base.json b/resources/profiles/Elegoo/filament/BASE/Generic PET @base.json index 61a6f03b96..e3af7115ae 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic PET @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic PET @base.json @@ -3,7 +3,7 @@ "name": "Generic PET @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GPETB00", + "filament_id": "OF6MOPWx", "instantiation": "false", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic PETG @base.json b/resources/profiles/Elegoo/filament/BASE/Generic PETG @base.json index 046d0dab90..e22cd697f8 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic PETG @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic PETG @base.json @@ -3,7 +3,7 @@ "name": "Generic PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GPETGB00", + "filament_id": "OFYPdQJh", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Elegoo/filament/BASE/Generic PLA @base.json b/resources/profiles/Elegoo/filament/BASE/Generic PLA @base.json index b9b1b0299c..0116649a9b 100644 --- a/resources/profiles/Elegoo/filament/BASE/Generic PLA @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Generic PLA @base.json @@ -3,7 +3,7 @@ "name": "Generic PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GPLAB00", + "filament_id": "OFDSrzZ8", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json index 7931a6604e..4f1fd0d973 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic ABS-CF @Elegoo Centauri.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @base", "from": "system", "setting_id": "fRiriEvlcxDDO5tc", - "filament_id": "OFo4VB3w", + "filament_id": "OFAIBCLJ", "instantiation": "true", "nozzle_temperature": [ "260" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic ASA-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic ASA-CF @Elegoo Centauri.json index 1fe2791869..b51663338a 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic ASA-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic ASA-CF @Elegoo Centauri.json @@ -4,6 +4,7 @@ "inherits": "Generic ASA @base", "from": "system", "setting_id": "S5kHIMcORjlPRnVs", + "filament_id": "OF53eLVD", "instantiation": "true", "filament_type": [ "ASA-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json index 5fa54d9eb4..a0a9f7705f 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PA6-CF @Elegoo.json @@ -4,7 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "TPgpyakWZ7NjVnj5", - "filament_id": "OFk388hR", + "filament_id": "OFhTPf6L", "instantiation": "true", "fan_min_speed": [ "10" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json index 479ae9f275..a06d9fec40 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PC-CF @Elegoo.json @@ -4,7 +4,7 @@ "inherits": "Generic PC @base", "from": "system", "setting_id": "KMhdBJbiUeXxKgPS", - "filament_id": "OFypQeKR", + "filament_id": "OFafO6VM", "instantiation": "true", "filament_type": [ "PC-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json index b7542f46f7..a3b8082643 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PET-CF @Elegoo Centauri.json @@ -4,7 +4,7 @@ "inherits": "Generic PET @base", "from": "system", "setting_id": "Q6wiKjigmzkcMxFz", - "filament_id": "OF0TODnN", + "filament_id": "OFQdaVZS", "instantiation": "true", "filament_type": [ "PET-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json index fc750fdcc6..f122066617 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PETG PRO @Elegoo.json @@ -4,7 +4,7 @@ "name": "Generic PETG PRO @Elegoo", "renamed_from": "Elegoo Generic PETG PRO", "from": "system", - "filament_id": "OFhKNHC8", + "filament_id": "OFllmFhT", "instantiation": "true", "inherits": "Generic PETG @base", "cool_plate_temp": [ diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PETG-CF @Elegoo Centauri.json b/resources/profiles/Elegoo/filament/Generic/Generic PETG-CF @Elegoo Centauri.json index 5e5e84e3dd..a57b29cbb6 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PETG-CF @Elegoo Centauri.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PETG-CF @Elegoo Centauri.json @@ -4,6 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "bWUrg1tIttzhMYlr", + "filament_id": "OFoYSJKi", "instantiation": "true", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json b/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json index aee418bd18..33561c23bc 100644 --- a/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json +++ b/resources/profiles/Elegoo/filament/Generic/Generic PLA Matte @Elegoo.json @@ -3,7 +3,7 @@ "setting_id": "dH2Yf92iqsOj5XYo", "name": "Generic PLA Matte @Elegoo", "from": "system", - "filament_id": "OFsLkLw6", + "filament_id": "OFmY0l6t", "instantiation": "true", "inherits": "Generic PLA @base", "cool_plate_temp": [ diff --git a/resources/profiles/Eryone/filament/Eryone ABS-CF.json b/resources/profiles/Eryone/filament/Eryone ABS-CF.json index bb976dcd88..a6cc92c15d 100644 --- a/resources/profiles/Eryone/filament/Eryone ABS-CF.json +++ b/resources/profiles/Eryone/filament/Eryone ABS-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "f4VPJtNcZOIIKyDz", - "filament_id": "EFL81", + "filament_id": "OFQ1zgm3", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone ABS.json b/resources/profiles/Eryone/filament/Eryone ABS.json index c09a35d34e..1d42db775b 100644 --- a/resources/profiles/Eryone/filament/Eryone ABS.json +++ b/resources/profiles/Eryone/filament/Eryone ABS.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "JfQiR5qK9Ue3JDt5", - "filament_id": "EFL91", + "filament_id": "OFOzwywz", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone ASA-CF.json b/resources/profiles/Eryone/filament/Eryone ASA-CF.json index afe2d3b33e..c95302c16a 100644 --- a/resources/profiles/Eryone/filament/Eryone ASA-CF.json +++ b/resources/profiles/Eryone/filament/Eryone ASA-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "wSiMHM1kTIgJ2gCt", - "filament_id": "EFL82", + "filament_id": "OFwyt1xt", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone ASA.json b/resources/profiles/Eryone/filament/Eryone ASA.json index 88afccbe26..7c2b9d9c91 100644 --- a/resources/profiles/Eryone/filament/Eryone ASA.json +++ b/resources/profiles/Eryone/filament/Eryone ASA.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "hu9uQy9zFgemTBjQ", - "filament_id": "EFL92", + "filament_id": "OFVtIasg", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PA-CF.json b/resources/profiles/Eryone/filament/Eryone PA-CF.json index abaf44eb7d..d91ea8a490 100644 --- a/resources/profiles/Eryone/filament/Eryone PA-CF.json +++ b/resources/profiles/Eryone/filament/Eryone PA-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "LIXTvjHAxtaHIO8s", - "filament_id": "EFL72", + "filament_id": "OFp9wdmf", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PA-GF.json b/resources/profiles/Eryone/filament/Eryone PA-GF.json index 15ae055010..657d86b291 100644 --- a/resources/profiles/Eryone/filament/Eryone PA-GF.json +++ b/resources/profiles/Eryone/filament/Eryone PA-GF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "4srMOoPcAlQygIY8", - "filament_id": "EFL73", + "filament_id": "OFkq7rPy", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PA.json b/resources/profiles/Eryone/filament/Eryone PA.json index efcbc94393..b03dccd32f 100644 --- a/resources/profiles/Eryone/filament/Eryone PA.json +++ b/resources/profiles/Eryone/filament/Eryone PA.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "oqzAdvvf6jdQTb4M", - "filament_id": "EFL71", + "filament_id": "OFS4jbj3", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PETG-CF.json b/resources/profiles/Eryone/filament/Eryone PETG-CF.json index 76eca543b5..3dc02ddf00 100644 --- a/resources/profiles/Eryone/filament/Eryone PETG-CF.json +++ b/resources/profiles/Eryone/filament/Eryone PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "Xp95jFFK5QSP3OoR", - "filament_id": "EFL43", + "filament_id": "OFNstOna", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PETG.json b/resources/profiles/Eryone/filament/Eryone PETG.json index 3f0644565a..ee6b20423a 100644 --- a/resources/profiles/Eryone/filament/Eryone PETG.json +++ b/resources/profiles/Eryone/filament/Eryone PETG.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "rJCPgQiIXRsfQwWY", - "filament_id": "EFL93", + "filament_id": "OF8kJys9", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PLA-CF.json b/resources/profiles/Eryone/filament/Eryone PLA-CF.json index 3e7e8fa3d7..a3186cee9f 100644 --- a/resources/profiles/Eryone/filament/Eryone PLA-CF.json +++ b/resources/profiles/Eryone/filament/Eryone PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "t726eLsJ87OjqUYk", - "filament_id": "EFL40", + "filament_id": "OFilAA3b", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PLA.json b/resources/profiles/Eryone/filament/Eryone PLA.json index 6da685ff2f..8e23c19ade 100644 --- a/resources/profiles/Eryone/filament/Eryone PLA.json +++ b/resources/profiles/Eryone/filament/Eryone PLA.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "nTSleDxF7HWxBeK9", - "filament_id": "EFL90", + "filament_id": "OFmKU2Ha", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PP-CF.json b/resources/profiles/Eryone/filament/Eryone PP-CF.json index e2a9c492cf..1f5e155b55 100644 --- a/resources/profiles/Eryone/filament/Eryone PP-CF.json +++ b/resources/profiles/Eryone/filament/Eryone PP-CF.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "GuuXzP9ILCWG5cxt", - "filament_id": "EFL33", + "filament_id": "OFbh7HcA", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone PP.json b/resources/profiles/Eryone/filament/Eryone PP.json index ffca123024..abd35e11e3 100644 --- a/resources/profiles/Eryone/filament/Eryone PP.json +++ b/resources/profiles/Eryone/filament/Eryone PP.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "sZF6qOPqqu88Yu5e", - "filament_id": "OFf0JIqs", + "filament_id": "OF5oNRED", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone Silk PLA.json b/resources/profiles/Eryone/filament/Eryone Silk PLA.json index 2edfd832c1..40a6bd252b 100644 --- a/resources/profiles/Eryone/filament/Eryone Silk PLA.json +++ b/resources/profiles/Eryone/filament/Eryone Silk PLA.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "S3s3NQAoScvfyHh3", - "filament_id": "EFL941", + "filament_id": "OF7nBAd3", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/Eryone/filament/Eryone TPU.json b/resources/profiles/Eryone/filament/Eryone TPU.json index 6bfd555337..c44d357c84 100644 --- a/resources/profiles/Eryone/filament/Eryone TPU.json +++ b/resources/profiles/Eryone/filament/Eryone TPU.json @@ -4,7 +4,7 @@ "inherits": "Eryone Standard PLA", "from": "system", "setting_id": "ci6MWQPZNf09qrOJ", - "filament_id": "EFL95", + "filament_id": "OFhUjPA5", "instantiation": "true", "compatible_printers": [ "Thinker X400 0.4 nozzle" diff --git a/resources/profiles/FLSun/filament/FLSun Generic ABS.json b/resources/profiles/FLSun/filament/FLSun Generic ABS.json index 82d91d891c..848034b3e1 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic ABS.json +++ b/resources/profiles/FLSun/filament/FLSun Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "2f9nYaR0PUMkGvDD", - "filament_id": "GFB99", + "filament_id": "OFWof1Ap", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/FLSun/filament/FLSun Generic ASA.json b/resources/profiles/FLSun/filament/FLSun Generic ASA.json index 650953c7b0..bbea739d1d 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic ASA.json +++ b/resources/profiles/FLSun/filament/FLSun Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "9GPCRihSQTBRxkm3", - "filament_id": "GFB98", + "filament_id": "OFCcsYtf", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json b/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json index 0b3441d866..65f3c06b99 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "2JOA0YeYZHj0lFmA", - "filament_id": "GFN98", + "filament_id": "OFHQUAoZ", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PA.json b/resources/profiles/FLSun/filament/FLSun Generic PA.json index e24fbbd966..8f9908acbc 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PA.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ek14AgskfJXeZ84u", - "filament_id": "GFN99", + "filament_id": "OFeJjoKF", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PC.json b/resources/profiles/FLSun/filament/FLSun Generic PC.json index 2d03d67063..4a111e609f 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PC.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "wluYSRtaCqajFCYT", - "filament_id": "GFC99", + "filament_id": "OFVqZ2H0", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PETG.json b/resources/profiles/FLSun/filament/FLSun Generic PETG.json index 6b81b49092..f0cf97956e 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PETG.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "FCjlzoLFYn3IVxxD", - "filament_id": "GFG99", + "filament_id": "OFJJpaLS", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json b/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json index 690c4427f9..3aefb8ea4a 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "FEdplifUKOSUA4XX", - "filament_id": "GFL98", + "filament_id": "OFsF96Gt", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PLA.json b/resources/profiles/FLSun/filament/FLSun Generic PLA.json index 85233e1285..abc2303137 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PLA.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ltWBfkc84nszWS19", - "filament_id": "GFL99", + "filament_id": "OFJSksUs", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PVA.json b/resources/profiles/FLSun/filament/FLSun Generic PVA.json index 106aa001e0..30defb2258 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PVA.json +++ b/resources/profiles/FLSun/filament/FLSun Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "IohayLPyRIsZJ0GY", - "filament_id": "GFS99", + "filament_id": "OFtP1rqJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FLSun/filament/FLSun Generic TPU.json b/resources/profiles/FLSun/filament/FLSun Generic TPU.json index 60b05b8134..63e0826eef 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic TPU.json +++ b/resources/profiles/FLSun/filament/FLSun Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "hewisceC8FmSwzF4", - "filament_id": "GFU99", + "filament_id": "OFMoLF46", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/FLSun/filament/FLSun S1 ABS.json b/resources/profiles/FLSun/filament/FLSun S1 ABS.json index d9a3922199..f796202c3e 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ABS.json +++ b/resources/profiles/FLSun/filament/FLSun S1 ABS.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic ABS", "from": "system", "setting_id": "tvpZ28Oe4Al7hlgj", - "filament_id": "GFB99", + "filament_id": "OFzzmK2Q", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun S1 ASA.json b/resources/profiles/FLSun/filament/FLSun S1 ASA.json index a82c9179a4..fed430ca63 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ASA.json +++ b/resources/profiles/FLSun/filament/FLSun S1 ASA.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic ASA", "from": "system", "setting_id": "C5oyaWw3YVEz0CgE", - "filament_id": "GFB98", + "filament_id": "OFIK0xFa", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PETG.json b/resources/profiles/FLSun/filament/FLSun S1 PETG.json index 3b477c6335..cf6a506da0 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PETG.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PETG.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PETG", "from": "system", "setting_id": "Ac6q0FtMFMLesFdU", - "filament_id": "GFG99", + "filament_id": "OF9z5LZ9", "instantiation": "true", "fan_max_speed": [ "60" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json b/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json index f6324b0bc3..8115a9cec6 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "z0Y9rQVZairHqwbi", - "filament_id": "GFL99", + "filament_id": "OFoDgVnY", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json index 91e22b993c..8d9d662dda 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "v2clpNXXo8m6dV33", - "filament_id": "OFR8dTVW", + "filament_id": "OFoqrHTw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json index 9536db0750..70946da40c 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "164Bn4YchxJAaLsa", - "filament_id": "OFFenwbU", + "filament_id": "OFSStjay", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun S1 TPU.json b/resources/profiles/FLSun/filament/FLSun S1 TPU.json index 7a02ed84cf..0b3e6a00ee 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 TPU.json +++ b/resources/profiles/FLSun/filament/FLSun S1 TPU.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic TPU", "from": "system", "setting_id": "yzPvNqIo7mfWAwNS", - "filament_id": "GFU99", + "filament_id": "OF6ooviO", "instantiation": "true", "fan_max_speed": [ "100" diff --git a/resources/profiles/FLSun/filament/FLSun T1 ABS.json b/resources/profiles/FLSun/filament/FLSun T1 ABS.json index e7d8bea77a..fe7c8c15c8 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ABS.json +++ b/resources/profiles/FLSun/filament/FLSun T1 ABS.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic ABS", "from": "system", "setting_id": "GP8VqRfidKOdj0ZJ", - "filament_id": "GFB99", + "filament_id": "OFV0KrAG", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun T1 ASA.json b/resources/profiles/FLSun/filament/FLSun T1 ASA.json index c34c34a213..4633c41271 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ASA.json +++ b/resources/profiles/FLSun/filament/FLSun T1 ASA.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic ASA", "from": "system", "setting_id": "YmJbWfCQpNk9nxB7", - "filament_id": "GFB98", + "filament_id": "OFbjtPQy", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PETG.json b/resources/profiles/FLSun/filament/FLSun T1 PETG.json index 9b753af05b..869df6e538 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PETG.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PETG.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PETG", "from": "system", "setting_id": "A2aA7xcmqgz8ERyY", - "filament_id": "GFG99", + "filament_id": "OFJ80y1e", "instantiation": "true", "fan_max_speed": [ "60" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json b/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json index e266687037..16e048d536 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "aUMHmlsPMYDicnPp", - "filament_id": "GFL99", + "filament_id": "OFU0n0zW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json index a1316569c2..2d612ce865 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "E4lpSLLlAxUW04ik", - "filament_id": "OFyt23xJ", + "filament_id": "OFQ9qnkd", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json index b76f537a45..e2a7bbeca2 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic PLA", "from": "system", "setting_id": "gElUb4GnCoEfVlEd", - "filament_id": "OFt1YdX8", + "filament_id": "OFuUJyRx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 TPU.json b/resources/profiles/FLSun/filament/FLSun T1 TPU.json index feb8326a22..63813ae149 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 TPU.json +++ b/resources/profiles/FLSun/filament/FLSun T1 TPU.json @@ -4,7 +4,7 @@ "inherits": "FLSun Generic TPU", "from": "system", "setting_id": "34Ux18VB4d6R6G40", - "filament_id": "GFU99", + "filament_id": "OFENzGSm", "instantiation": "true", "fan_max_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json index 3971dfdbe0..76629e1a35 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "M9HM8tihJzV4crs8", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json index ada99c3b7a..e9a09ff347 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "08VjBSha6gjhJYgk", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json index 224f0bcecf..1572171a0b 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "JqgkmxnjlnQ3uw1u", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json index e712311eb7..5613453b3a 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "vvLLPvSeb5PYbT1R", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json index 2e574b8dec..13e5f089fd 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "mPJMPfFCyfWdKzMO", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json index f3e61a04b2..35dc675173 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HTgqTUTznOlfCRAd", - "filament_id": "OFL7vEML", + "filament_id": "OFe6sfXS", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json index cc05448a52..2dfa04cea8 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "3w8fnDjkoFaJ6Nhw", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json index 0ba30d9ee6..2fbb2e4ceb 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "owHbDqY55rFtSegz", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json index 29ffe9c98e..50e2e88ee4 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "eFK1zzT1JY9ZnEl9", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json index ae67869d15..667e3e9b01 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "E8CcstoHzax78ZJY", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json index 44ca312535..673304a79c 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "xa22FD8bRVGsLiPJ", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json index d6fe454c37..dd2d7b107b 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "bZ9dbA8dIu9mjWyN", - "filament_id": "OFgJX0Fc", + "filament_id": "OFUCpLaL", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json index 0e1dfd9b33..34d7bfb528 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "4w0oK3F50O1DUqsu", - "filament_id": "OFmduKVr", + "filament_id": "OFogbnCb", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json index 6133699c0b..14a76bbdae 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "94vPnztRcpnbfAKx", - "filament_id": "OFmduKVr", + "filament_id": "OFogbnCb", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json index 6f8cf9429f..cd32fec949 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,7 @@ "name": "Flashforge ABS @FF AD5M 0.25 Nozzle", "inherits": "Flashforge Generic ABS", "from": "system", - "filament_id": "GFB99", + "filament_id": "OF5SJ3jz", "instantiation": "false", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json index 1abb4f5e51..836cd00898 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SuEfcE6AYK8N1FI4", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json index 523d9d05dd..39cbd2de77 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gmkc6fRLMI73Iut8", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json index bb30b1725b..dcf7ef2ea3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "fgEYZ1Mgyp1AvtwU", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json index a426566340..c77a70a68c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "cIxbQMVdG5K85rJr", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json index bbfa73ccd4..421b590ffd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "9GXBeuCUrScJfmJB", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json index b9251a5672..0e39fc998e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ds0GgE1jssl4IbF3", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json index 0ab31a8276..4394ed643a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UTWbwTYuXYbBx3uw", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json index 825a80c96d..ec7afd1806 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "CuckX5MsN69806ow", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json index f9a0433cae..9cb888633d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "NttDJCrfB01uwMDl", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json index 171484abbb..37946c87cd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "hJd6dG6OdEffEFC7", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json index 7143e0b03a..853695c79f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "8yFCuCnEuI3dUvQy", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json index 2734feeb55..40d28d88ed 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "np4fP5kghRlczOTT", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json index a669c267b9..bfc919b8a4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "8o2maTFOXq0XR6Dm", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json index 3488e5bec6..dea33f9ccb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "MBo02hFXn0ebDRdb", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json index bbf04ce6bd..108219a5e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "vCsjC0UnKenzIR0O", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json index 29fb16653b..b477796207 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "xhxVdlmh5r7meoHo", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json index 1ef697a83b..85bd777649 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "6dlQN4Xhd6kGZ0Qn", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json index 12d1a7c767..ae87f2228c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "r8WVFPozL8f5oLVJ", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json index 798bc592bb..4486a2e487 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "xw0pZNmhw1K4tPQ1", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json index 868e133f3e..d14e7a563f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "m6QLC2UaS3fW298i", - "filament_id": "OF5T1Y9R", + "filament_id": "OFShw1X8", "instantiation": "true", "filament_settings_id": [ "Flashforge ABS Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json index 4ea4ae4577..e5c075681b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Nx3Px0Zu356IKShT", - "filament_id": "OFWs8KIZ", + "filament_id": "OFi7Bf0F", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json index f1917abb9a..9fd47a1c35 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "d4EGsmMeEDCOUBF2", - "filament_id": "OFWs8KIZ", + "filament_id": "OFi7Bf0F", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json index b925f68e88..802dfebe5e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "9ziPFKsjESbw1pXL", - "filament_id": "OFWs8KIZ", + "filament_id": "OFi7Bf0F", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json index 03194dd913..37f8d3d731 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "NzJJs6yrSik5xuyX", - "filament_id": "OFWs8KIZ", + "filament_id": "OFi7Bf0F", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json index 1074c58061..dd285b07f6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UinlbuXNbad2kN0s", - "filament_id": "OFqRWRU6", + "filament_id": "OFH5UH6P", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json index e4f1909d8a..0244b1fa25 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ycgiXY41kqNgslE3", - "filament_id": "OFqRWRU6", + "filament_id": "OFH5UH6P", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json index 0f80d06af9..dd3efcaef3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,7 @@ "name": "Flashforge ASA @FF AD5M 0.25 Nozzle", "inherits": "Flashforge Generic ASA", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFtTYl9Q", "instantiation": "false", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json index 6a0253be4a..665b49d497 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "kjS4k8nrIdNNNoWw", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json index 618cfdea27..42c9955886 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "Y647IFVkk5JIXzte", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json index eb123cc3ad..19b021358e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "vaOyXUcrJ97KE7ZW", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json index 2e7ff56b63..1f0bc87211 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "iLWq5pJ3ox9EAM1Z", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json index a63e1c7dfe..37be38511c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "i7PUPYxy0Z9weyyA", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json index 3aef25a533..48e7c83322 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UUSDyOetXSOuBIUd", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json index bcbd9d4721..886c3cf0c1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "2r0kwhklE24Hp94O", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json index 0ce215f69a..52420cb125 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XWta5jJFsCxBdEPd", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json index 3bff670e7c..34a50c950e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "w8O6oenp0NymzCqf", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json index 8fcf3f85f7..1abb8bb623 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "thhmWRzNYLYJOeR2", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json index 664728993c..c75ee648aa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "g5jiz6Q6or23BIo7", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json index fb7e77b65a..fd012e0f33 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "7xmWlHHNMvXBKdYS", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json index 35e761b241..d6f71b0a72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "r0B8KfZ1mNWMvGqE", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json index cd5b00cfe6..7a8035000c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "quOwRRLcNfOy0sYf", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json index 616e70bf34..82cbd340b7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "CBLZqLhkwf5XKO12", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json index 75777b3205..ec26d6d236 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Df3anJxiRXLVO9hw", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json index 401ffeabaa..016a57fd14 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "Nu4WvBWuEhazZfh5", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json index 9e6b37e48c..d24743172c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "hF0h4ye3hMDtEba1", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json index 761dd56a4c..a523291c0e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "3isZCWr4CBjFtGDX", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json index b56e5b0453..5fb5d976eb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "SU6r879TbQMUFCij", - "filament_id": "OFcy60o4", + "filament_id": "OFaBwRvT", "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json index e465ad0da8..5cd421f15c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "TqU1elqwuVr9EhTA", - "filament_id": "OFM3PeVe", + "filament_id": "OFq0TY7C", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json index ec34e23dcb..c61eb8159b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "nMczAtoc5W0J2WkS", - "filament_id": "OFM3PeVe", + "filament_id": "OFq0TY7C", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json index 2a33b88234..3645546f16 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "ap7X4nWKfFR53NT0", - "filament_id": "OFM3PeVe", + "filament_id": "OFq0TY7C", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json index f07085eb07..f001e6d54c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "kZXg6odPm5iW79Qn", - "filament_id": "OFM3PeVe", + "filament_id": "OFq0TY7C", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json index b124ce423d..af262a6497 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "CI5dvVrCNk2XTU82", - "filament_id": "OFM3PeVe", + "filament_id": "OFq0TY7C", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json index b3c448494f..e1bb924d28 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "941E5MaAyFY3iv4V", - "filament_id": "OFdNORGt", + "filament_id": "OFWnSvGu", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json index e970fdff0a..0f1d63ca96 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "RdmsxyUGUX8Ot4oj", - "filament_id": "OFdNORGt", + "filament_id": "OFWnSvGu", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json index 0504844ed6..b290e46444 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "NWEY6ZxkUS8jqNU2", - "filament_id": "GFB99", + "filament_id": "OFLDSqqi", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json index ada3f13582..c49638eda5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "OaXiy7DI5bOAiaYb", - "filament_id": "GFB99", + "filament_id": "OFLDSqqi", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json index 5de9f959cc..7e53c24675 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "Cfd7Q1nGwqxI5Ngh", - "filament_id": "GFB99", + "filament_id": "OFLDSqqi", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json b/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json index 38d58ba346..e93a8a294d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "uygAzLWRQiCIJ8jh", - "filament_id": "GFB99", + "filament_id": "OFLDSqqi", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json index 510ad8c55d..a661419618 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "spSRbidSN2yeZLhD", - "filament_id": "OF4RKeng", + "filament_id": "OFRPEs5o", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json index ccae1871bc..dab6446048 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "gVLGkoCoyrWL4DQr", - "filament_id": "OF4RKeng", + "filament_id": "OFRPEs5o", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json index 1c7532543e..e1f8b58fcf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "c6IMgUyqOeS2HFWw", - "filament_id": "OF4RKeng", + "filament_id": "OFRPEs5o", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json b/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json index 9f6e882f68..0466c5af9a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "jMCunppmYOH5QIra", - "filament_id": "OF4RKeng", + "filament_id": "OFRPEs5o", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json index e6d8e037e3..c5097dca7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "b3CFhGGnZLzpyAWa", - "filament_id": "OF4m9A5w", + "filament_id": "OFYl0c8v", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json index 56ac8dc465..31dbe0e60f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "n68nw5tzKZ0rq43O", - "filament_id": "OF4m9A5w", + "filament_id": "OFYl0c8v", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json index e95a14c2e5..4b4a6224bd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "1cvcaoBFNbg2GucE", - "filament_id": "OFYZs7dN", + "filament_id": "OFLrdHse", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json index 2989f84021..48b701953d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "foG37d7HZKgt6l43", - "filament_id": "OFYZs7dN", + "filament_id": "OFLrdHse", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json index 4d02d458d0..9d4acd8d24 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "KerUxwPsSEKDO6jL", - "filament_id": "GFG99", + "filament_id": "OFZHgTVI", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @Flashforge Artemis.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @Flashforge Artemis.json index 20a08fe28e..4c4f2b43cc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @Flashforge Artemis.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @Flashforge Artemis.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "YflkaS7NfBE5XiSH", - "filament_id": "FFF03", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json index d9327f20f5..8b452d3759 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "W7pWKQ2EWAB5viV1", - "filament_id": "GFG99", + "filament_id": "OFZHgTVI", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json index 227d881f06..288f028eac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "eDQb2WfDsUTvj2Nf", - "filament_id": "GFG99", + "filament_id": "OFZHgTVI", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json index ecf04bdd2b..85e54ec1a6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "yo4uc7TxQbqnlRUY", - "filament_id": "GFG99", + "filament_id": "OFZHgTVI", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json index 75a1d34349..5e5c8ebf79 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "u2OzNKIQIKUrOT9k", - "filament_id": "OFC5CCeo", + "filament_id": "OFQC8Vna", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json index d87f65a404..2a52b92e70 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "7Qq8eY1kcFHTgzW3", - "filament_id": "OFC5CCeo", + "filament_id": "OFQC8Vna", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json index b1013b2c99..3a6f44f5ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "gLrecba33jDI9PeI", - "filament_id": "OFC5CCeo", + "filament_id": "OFQC8Vna", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json index 7c5de370cb..c94cdfff56 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "PlC4Ek7d09ytYZqJ", - "filament_id": "OFK39W9u", + "filament_id": "OFlNWVr5", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json b/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json index 28ed60ccf7..916c392f08 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "YqiSgA018CdflfT9", - "filament_id": "GFG99", + "filament_id": "OFZHgTVI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json index 4154eed45e..9f2a18971a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "gjIdhPTLOr17mz5B", - "filament_id": "FFG01", + "filament_id": "OFtTHNTj", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json index 34351c7dac..ad76d07bac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "KR0LUSD7wd55oNI6", - "filament_id": "OFm1VZed", + "filament_id": "OFYlthXI", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json index 9b5972f97d..d0f628a2bb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "rQSFNxuuqUVzsSV2", - "filament_id": "OFm1VZed", + "filament_id": "OFYlthXI", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json index b6507fda5a..9ef92ee7ee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "S1UTm2oMRoQ4yM4R", - "filament_id": "OFm1VZed", + "filament_id": "OFYlthXI", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json index 6ef0248721..9fe47dcd87 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "qH3l3p0yvZHqHnwG", - "filament_id": "OFKWVi10", + "filament_id": "OFdEIwxy", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json index 61fcd364c3..a0317d1b97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "WOl0JsKxAQFo2WnW", - "filament_id": "OFAEqlWa", + "filament_id": "OFrrMLDw", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json index f3b4f693c1..e9ac388665 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "NryK9oIg8wMDKVHW", - "filament_id": "OF41QVDH", + "filament_id": "OFYvSO1W", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json b/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json index 61b5276051..8e2d4c90c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "DwAgYHepesazDUjN", - "filament_id": "FFG01", + "filament_id": "OFtTHNTj", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json b/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json index d94e75d3df..52bc8adcb9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NA0PhaTNDvEH38lF", - "filament_id": "OFLeFaUO", + "filament_id": "OF1OZujR", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json b/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json index 57d88732de..4ffd4a3aee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json +++ b/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "zQEeIIKWSgsDqlpI", - "filament_id": "OFviQ9lH", + "filament_id": "OFC20UMj", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json index dbcf163dda..798fbc6583 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "ckwc7U0Q2eKHmCxY", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json index 38411b21ea..4abf262f2f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "AEQYrT7e4Q5J2G6C", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json index 9622514949..0370e2b2ce 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "jUNUZhE0BJyB64fC", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json index 1f6bec0997..44753a6a08 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "0qMEqo9YMDLSVafs", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json index 684f303f65..2a0a4d7898 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "ek749gIdUAPq6WxT", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json index 768677d41f..30704efe75 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "tEohTtyHofD6l6o3", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json index f2de81ad74..cd95f618c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "oLeLrIjFJzoZha3E", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json index 2468478e6a..a495959b82 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "HXGUlYY4X5IHhL3R", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json index 7b28d67e08..6e87c12697 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "g22Cv3zy3h5BhJYK", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json index 4356a46961..8c4e3c633a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", "from": "system", "setting_id": "aDzBXuvN7IuSP5sa", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json index a3cc583ed8..3349b2ec63 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "CIj24REX7BA8zPHQ", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json index 440cfd4f97..8afa83e8f4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "yAGyGjF6uDrjfjLn", - "filament_id": "OFhzHd2Y", + "filament_id": "OFaz8VoR", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json index 8a267c6548..5f34ca9901 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "1NFhtEvvvgZiHcto", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json index 4ae4f02769..a6229f92d8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "eNOkWn5PT8rDpA0g", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json index 72f4577557..52d7d0ee40 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "vOqAGzaYLz0XdRvC", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json index 682416a4eb..84d7492956 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "KSuxZ3fpQz0khDSz", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json index 7e32268d01..fc78000e54 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "o4B1kAToVny7jw0M", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json index 87b5639be7..3e26d15964 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "kpRved5M3NktqIYn", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json index 1e6c9b04dd..4cab6d97ae 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "ypxgjHl9uIMyZIce", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json index 2764a938da..21e54e38b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "uXGuyvVxfdQW22vu", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json index 883143b259..2bd44a8bb0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "q9UbakUmZPzG3xU0", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json index f781edfdca..9bb1244b29 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "IL18Lu0qHx1RVqKD", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json index 3e1a003ac6..a1ca0f6985 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "2FQib7fZjcwfCnm2", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json index b800e1566d..f21520aa0b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "CtwOm90WWD4S7U6j", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json index c3d6594e7c..a76d35fb6d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "kvULpm0WhKiSPj8V", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json index b0ddaf5825..b161612d91 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bFVYSPkynBBapFjq", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json index ab726c53a1..4bb3402cb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "CUU7knzm4cbe1giE", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json index b5dc6efb69..a847ff25f3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "gcYvL572cumWZdnl", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json index 24fbd0279f..84c3e94acc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "cx99AH0C575XxAj9", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json index fdade2f06c..23a73b4ad5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "RrrKoR7MVD8IFQlq", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json index 07c144a574..c331466dab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "7VEPGuR16wNukAX2", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json index 7ade77bb7c..5558ea98f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "H9uwlPw6m6Nf7qH5", - "filament_id": "OFZQFvHQ", + "filament_id": "OF5w29Kq", "instantiation": "true", "filament_settings_id": [ "Flashforge HS PETG" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json index e209b455e4..dba18c4bed 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "OmDped3weZ4uHAtY", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json index 56f8ff9792..12e9fe913f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bfPaqPGaR5zpTsLk", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json index 7be6dbc727..d10ef1e3e9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "oD592bif4ra0ADco", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json index c8f5744361..f83591bf3c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "ldhMY6F7v6nK8wwf", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json index 01b6e9deb1..619b9e8767 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "5vzOmbjHbkJXrgYM", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json index b9e2ebeb4e..0d5e671f95 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xSJk7LFpYKmckPQh", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json index 681d576ed0..9aa4efc2e4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xdFZUsj1cNLXdvT6", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json index 25eab9bb09..43f1bbf068 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "JCQtuv8Abfz4jVRV", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json index a9e238131c..e8200e41e2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "hzxRPyH1fqarsMuN", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json index b25007568d..0b46b5fa31 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "oJsLlIIpxwGSoJTv", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json index 06a4d1a82a..5940d7d272 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "hJbNZ381ERkZ0KUB", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json index 6dcedacb73..dddf486229 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "BqavrNpwhXDXcZ3r", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json index bf84dbab17..598d3c6cab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "cgf4Qk4iHZh7zHN5", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json index 54be3be396..8e228a364e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jFUS6233aq4XPgrn", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json index eab85e45a4..2282b67e93 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "p31K69Srld6o4sQ2", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json index e434c6b72c..137f78fcd6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "MwbYvnRIzlNmH81h", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json index 0d1632b731..4506cf1d91 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "rKhHmkqXYD2xN4K9", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json index d67d10a948..45e42ed61c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "Dshsi3O7NvYYjXJt", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json index a3d4f51084..1ee62a8bd4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "mfnL6QEevCmTmOL0", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json index 0b2c003337..1731aafb85 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "AGLHrHKWye0YTtNK", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json index 00f8b13d72..986f32690e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "px8qzmB2yFLoNl83", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json index 8c10583b55..fc20600185 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "mwuIEsBz5bXEV68w", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json index c32c16112f..17b706989a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "TielygFT88owWg4J", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json index 154d526928..d4832e08ae 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "It2NI6OFhNEUvulz", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json index 710cae4899..bc73b031b3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Qt3huWxoYpMEqEN6", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json index 3d753e4106..5737b18c7d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Y3XuavnnOMoHLGHA", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json index aae20613af..5316d2b8b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "2HUxAWeolJIlxPs1", - "filament_id": "OFeWMAGH", + "filament_id": "OFmQkb3c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json index c7e39f8682..fcba520ff6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "vdaZBnDsmUC1fhDp", - "filament_id": "OFoJUGj6", + "filament_id": "OFnMv3W5", "instantiation": "true", "filament_settings_id": [ "Flashforge HS PLA" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json index fdeac081b6..b108289976 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "u7rolQaTQz9U6veH", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json index cac1c966a2..44783f007a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "qTGTwiliWj3dSo9y", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json index 5b052ff3ef..dba15949a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "wAkuJRTLWxGyBU0b", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json index a469e9cae6..d2d2a93575 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "dbs29hQSQl9zuWis", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json index 79da7aa9a1..ac63380352 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "XGNPvS2ps7Xn2fpx", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json index 1339bfd17a..e88fbf5126 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "h33iEGZ7wPeBYKYQ", - "filament_id": "OFi1ocNv", + "filament_id": "OFgf4gZa", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json index 9ca2ac4d29..687017cdba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "e58C9MdOWikIbbVR", - "filament_id": "OFOSzSuh", + "filament_id": "OFuGRMNV", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json index 4c6085c781..4159a24737 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "RX2Tg8KpwQpCbkLI", - "filament_id": "OFOSzSuh", + "filament_id": "OFuGRMNV", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json index 370f016030..b4a40e769a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "C4DfYuQgDXIgK7mk", - "filament_id": "OFOSzSuh", + "filament_id": "OFuGRMNV", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json index 106dbf9dec..e2ab91aa24 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "Yu7hL4izNsgDVqMT", - "filament_id": "OFOSzSuh", + "filament_id": "OFuGRMNV", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json index 3733afd3b6..8f1f04ffdc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "1CevPV960sQWT3NF", - "filament_id": "OFMHTnPP", + "filament_id": "OFgeM7nD", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json index bf2d34204a..129ad8d648 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "NGbZ8pQVTRKw28kp", - "filament_id": "OF0SyJhk", + "filament_id": "OFZtOQtl", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json index 988e26f75f..6654b78212 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "5pVoGBvbiUlrJSwR", - "filament_id": "OFkaDtKx", + "filament_id": "OFuV79ru", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json index f4b7cac893..0491362ddf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "8ZR8o3MKYxXLd70k", - "filament_id": "OFsgANe3", + "filament_id": "OFuFqYyG", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json index 22ae3064bf..1c142f11b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "FSfGFl7FCutxXN2l", - "filament_id": "OFsgANe3", + "filament_id": "OFuFqYyG", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json index 62f9c06854..addb373157 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "ZlpBAM9uaS01sWAJ", - "filament_id": "OFsgANe3", + "filament_id": "OFuFqYyG", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json index b7f3bc5386..764d274e76 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "9DaSYBA2OI7Jj5zS", - "filament_id": "OFsgANe3", + "filament_id": "OFuFqYyG", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json index 2077dc5243..7157336d3f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "3bguiaEtUsS8ULHW", - "filament_id": "OFPJJxkF", + "filament_id": "OFrjacXf", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json index 48c08e910b..b550ae743f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "W6i9E22BVo11TeCm", - "filament_id": "OFPJJxkF", + "filament_id": "OFrjacXf", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json index d74582ed08..f6899ad2e2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "vflpXTS9GwnODQDH", - "filament_id": "OFPJJxkF", + "filament_id": "OFrjacXf", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json index 2df9381429..6c5928993d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,7 @@ "name": "Flashforge PETG @FF AD5M 0.25 Nozzle", "inherits": "Flashforge Generic PETG", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFMpxamb", "instantiation": "false", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json index ee093e88fe..6ea60b3214 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xOZQvdZa1YCcnjor", - "filament_id": "OFuyJhLF", + "filament_id": "OFEMfQsX", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json index 3517994360..f3fed78ca0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "YLLJ4xZI704GReej", - "filament_id": "OFuyJhLF", + "filament_id": "OFEMfQsX", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json index d66f57eb00..a351fd284a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8EUg1hTLfsyDPbnG", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json index 56b1f382f0..153daf20e9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "UKhV8A2DBc1xyNWc", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json index 13c8b20ac5..7009c5a076 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "dFZ1MmHjj1AAIaMm", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json index 5484136b0c..d092644658 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ro3rt7IAJrA5aZD6", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json index c25162b722..17626d81ba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "cTxrnqzr2wVt4Nj7", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json index fa691e2aee..bbf62043f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "QA1KD03F0zj2zsVi", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json index bd9d2e2c35..fae56d5e11 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "EU8Q0XLjED23MNer", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json index 105b1cee65..a22994d00b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XFSgx95whLw5FD08", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json index 661e69ffc5..9919a54140 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "8x6yU2U8d5f67N73", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json index 9243316595..30bbb96fab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "4W0nfaSSZdg2HQkh", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json index 451eb9ca86..f66c490c96 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "AJcugKx4qHPJ3JAT", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json index 3816155365..cbebb6da3e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "R0nZuLXEo5qA6Mt8", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json index 5ea3f9aef1..1a3ee02fed 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ql2BBBymzqEG7GKk", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json index 8b3169ba94..295b0a313e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8Jc4eedkknqNB87s", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json index 6761b073c8..7d48ccda00 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "KU5tDHAKja1sCoHm", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json index 4f893a3514..a83ba63b92 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "sb6jD3UZmb0DNIsC", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json index 9dc63bc699..ab7bd22340 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "4BB1wJLtsXus5eyY", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json index 88104a14ab..ac25f05323 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "m7oJx47UMlFctMkX", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json index f254e10c43..adc38f6d91 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "ozD2wU5UiORTtJsa", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json index 13537ce8a5..5940c47fe1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "IQfUoy7gTmVmBDL5", - "filament_id": "OF38Hyk4", + "filament_id": "OFPQfNAf", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json index c6cca24dde..b43b82c176 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "W59yTyPnVv4LYiah", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json index e29546069a..54596db508 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "NRY4fsPNtnqs0kyH", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json index 2182a95ed7..03bb077a25 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "Ht7wzk8l0b1kv5tZ", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json index ae05326e13..d799a1dc69 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "NJFHpa5HFHIyHSWu", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json index df5fbfb1ec..1a64752952 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "UaObrRNSTwitC6jr", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json index 9071f16ddf..08e0076cb0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "TtXy042wtT6nF3WB", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json index f39398a73f..4d40f2fbcb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "66OWHhGyuaFISu6v", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json index 90e1a598de..60bc613ad6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "p5c6XJ1VD8cn2Meh", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json index b9f665f3d0..df04fca6df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "K8WkJmFy2V1zhYQO", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json index ac3c87f8b1..31169455a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "LLK1hwKZhDU8SaGJ", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json index 32a964d155..776d9d1df4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "LaUF2HJtBnpZF7Cd", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json index 2336789ee8..1eda391a72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "OUToXk8ddS1RPPUK", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json index c0a189a297..df79bc8fdf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "ywff8rI39XKjcocY", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json index 4a05c795b2..347a845f06 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "C0VV5Uzsl4icRgKa", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json index 76504bd857..6dc5df0088 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "kuCvwo6Phr6Ywhm4", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json index 1b447ef7df..2ed7597e91 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "Z2E69w9AevYg15tl", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json index 98ca9782f1..22c2061b81 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "RkQaxwTjhJK0A3zr", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json index f6e5ac3dc7..22b4912e99 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "YBQTMes2S9iJjKDf", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json index adc9b3ef23..315afb5acc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "lCngVWG3q0FWsnrG", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json index 62e796f2cd..ac03de5fb2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "3Gv6MJ3RRja5pbOM", - "filament_id": "OFRgDMDJ", + "filament_id": "OFMyLYV8", "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json index c59d59c97a..758901ff5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "bcqYod61blJRzhK2", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json index e3dae3bbd7..6eb1aba29f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "CnFKOi7fFyS8QlKK", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json index 46641e0704..4143582646 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "eKWJW36I5fVHwjWD", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json index 452f3a0c9a..16c5cce80d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "RXRERfs2oQKewpPS", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json index 36fefc9926..2be54257d3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "8Ns75F5n2fdQ8sDk", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json index e4dc5d17df..3d85ed39ac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "4EgMPzlVo1rTeQ1e", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json index d11d07fe15..f88e49c07a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "K9ME1F4oJkPi8jRu", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json index fdf37f0ebe..cb8e888fb0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "9jCp0gTjB3Mt95Mj", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json index c109735df5..3341e1dd03 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "d5OleuNNZBJK9vxH", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json index b9af31fcab..f8c30e4f18 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "MpG61mwVUtJ7t602", - "filament_id": "OFoimrpo", + "filament_id": "OFBK6zAi", "instantiation": "true", "filament_settings_id": [ "Flashforge PETG-CF" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json index 48798f6b98..15b12ed8f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "UQF0kAaXnZgJGK4o", - "filament_id": "OFftQOek", + "filament_id": "OFH6Pjxe", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json index 45c5379b97..657898f301 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "FpLoe6QrPXnrH019", - "filament_id": "OFftQOek", + "filament_id": "OFH6Pjxe", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json index 839a09c93b..e41c16e0cb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "YFbZ472BRNga6OpQ", - "filament_id": "OFlNKZLP", + "filament_id": "OFrnkURQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json index c0081e14d4..fb5ba4bbf6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "AtVxriSKOrFZzUun", - "filament_id": "OFlNKZLP", + "filament_id": "OFrnkURQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json index 535d2b6b31..5aa386d441 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "47Q7YXoJ7rD7Vu21", - "filament_id": "OF0wk0Pk", + "filament_id": "OF6ueBwd", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json index c786b1643e..025ddbf305 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "v7vYsiPVka4c1CUW", - "filament_id": "OF0wk0Pk", + "filament_id": "OF6ueBwd", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json index 155f7ddcb1..65741b1860 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "3fuVuyVcn8U0bRJQ", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json index 86153a46df..64d564cfca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "FrRRUl5OT773uCju", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json index 004d9992a1..e280847ff0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "gMmhMDqjmJfAYcbV", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json index b738bc9afb..a61f208b0f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "0OsrtqfIxrEJMwac", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json index 9d5819953e..949a7ab6a0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "fuzWVrfZqekMETLK", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json index 0228ff0de8..8963823c97 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "FmUnckQofjunAtwr", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json index 3fb9fc2585..6fc821a49a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "Q0RsVOPLuMByur9c", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json index fd7393e08c..6969ef6263 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "QXJgY8OPyaoYUI1D", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json index 05913a7f19..f7b96331ac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "R54l7TcwsjdPHvNB", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json index 16a51fa761..b748b785aa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "MELEwYupDkT2DPxL", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json index 84dcbd7a1f..0e01a20dcf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "uGLvOoPAfksLO43M", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json index 63f3c30349..58b72386e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "gGpKvk3rnLuTjOwo", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json index 27cc6bac6a..f4c16daaf0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Yopqnj4b5ZVwigGx", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json index 3199072e84..dcbfee57e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "GrwiA2dArUGV9x2g", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json index b9804e95e8..1af3c298cf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "QEfQrqMwApuSMqih", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json index 9552e043db..c42a17fc29 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "BAPIn3eJAPGpscRJ", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json index 45d44e3491..7a7344c225 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "44BmRNRb6vlPq8qe", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json index 54b997bfc0..36a89b5dba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "ltJbhoAeAec9gxrS", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json index 3715130d41..3d13adcc0c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "GxdZiXdqns72ibQl", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json index 85db7c8198..7640ec0834 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "5XKGaHUjxHECbnHO", - "filament_id": "OFHBTqyD", + "filament_id": "OFIxitiU", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json index 815c949ca6..b58b98fdd8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "H8IStdO8zEfSLYVE", - "filament_id": "OFdhVJql", + "filament_id": "OFQZeyZv", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json index 8dca7c3195..29dedf8f7a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "4wlkoKnU2bA7xhYO", - "filament_id": "OFdhVJql", + "filament_id": "OFQZeyZv", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json index cfb8df6c5c..6cf9156ada 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "KXy0WyQp06VC2ICh", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json index 0ef7325644..d5e1624903 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "9cGw7tXD8YJHEi1H", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json index 7109d34b4e..d0df8cd605 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "TF6BeOl0patjpPaa", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json index f0d7531966..105291c048 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "nkYeEBo8NdkJulAP", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json index ee9c9258e1..c8650a1a1c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "yEDfsOsogfZbNBVX", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json index 15c7b4c7a2..2fc09d1cc1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xZmQdh487UMtvBRu", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json index b3f5fdc1a3..707eb4e042 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "rc00SOyIg30uE3Da", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json index 653af0cdfa..5a35f8d82f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k1OiugasUs7baG1f", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json index b5fadd484a..99a720a226 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "G2Et7kPHptMESzQ0", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json index 41ee33d3f9..0fb2690255 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "zsOdmFGBSF9UySMN", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json index 4dd0097616..bceeaba05a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "oxRMuvBMu9qdQWUQ", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json index 2aeddbf43c..3887ded589 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "5hwNJvvLtb75XBBg", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json index a621f4ecde..d0fba1bec2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "mGj8VEyOnnogpkmF", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json index 33a309150b..2542e59765 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "HXVX4mDeUSfW2RgL", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json index 53d86e2bd0..29ada76335 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "JDcRA6apekWLXPvH", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json index f8a2b45aa3..dc01f07d81 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "b5GJpvKYktP4vZpj", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json index 68e5a905ba..6dbe02b473 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "RjUpQV6iQxTircwj", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json index bacca455e7..0e2690d93c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "9DEZ6SmFdgfluhsR", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json index 593d88f497..a3696383cf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "girTMkusNTfY04rz", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json index b52b8e6cb3..030d4d1ff4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "pCQ2qmeXUyJzP7kS", - "filament_id": "OFyoW5W2", + "filament_id": "OFkwIWwc", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Color Change" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json index 70eb17ba53..aa9433b6a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "a1jTbQsflD7SDFih", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json index 6f3447e0b0..979f2a51fd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zyCRsy0mHRgyuQqt", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json index 36e4789905..4928bc3891 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "y8TNaRebTrmFem10", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json index c543dcfb58..2a7e7616ba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "qju0AMvvq0B5Glny", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json index 1829618f06..97cd5bb9be 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "o8gGBOEcNvlbZxGW", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json index c6767072c2..929002ffac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "0RkkIcIUFgwOFTBY", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json index 8cd892194d..487f05b211 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "9qVabnSl8xfKSIYX", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json index de910c8202..0d81c49ca3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DL7lxDI35YErCTWX", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json index 4753dd7e12..d3cc825ed6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "koEC7DteUoXHUd2z", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json index 1115d57393..f684c8b47b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "D69fWcXioFcpoUjC", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json index 6cffd37021..5cb479f1a4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "rfiQUncdSExEaK0U", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json index eac289b203..6018aad13d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "WX8lK8efXIVcpjFf", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json index 8ad84a60f2..8588d194f0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Tzvo3oILQJc4SQko", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json index 58cd97fed5..7491d8dc7c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZQYrljZtu3es26hB", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json index cf4e376d6e..c4785481f0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Y5gm20O4yCCDIoC0", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json index 8c3d23f226..b2a142d9bd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "80vSQxnHfd5ZUy5h", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json index 0bc3cee930..0137ac7348 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "UZi7T5VoasmXWyH5", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json index a55bbd16c0..96aa6babdf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "6UlSb4fqHIMdMxkO", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json index aee57b55ae..bb1e1d9513 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "H2Cr4B5VUaxyYsN0", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json index 0ac191a749..99727f9217 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NJrc0UZ54Fq8MaqF", - "filament_id": "OFXv4FUi", + "filament_id": "OF5NQFKI", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Galaxy" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json index 1f58b7ce9d..ec022f475c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k8iibCO2EnlTSRyi", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json index 316f797d5b..a6bc399396 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "pACct3L7duMh3hfx", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json index 266461a8a5..58ef1320d5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "GdvXL8SrKrYHxSgZ", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json index 964b280d46..a58b30c6fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "SLYD2YcQTQgbSjIF", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json index e84eaca5e8..9f8bbf2127 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "kOobFSlqEG9Qe0d1", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json index f04ba6e742..bb19b242a7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "4sE1LTVVuRglRbpD", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json index efc9decd4f..f370433f16 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "jEUZyaEIBf2eXXeh", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json index 99d6e50b42..9e865d710f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "qZ6kKjRCMfe4Ql3F", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json index 4efdea0ca0..6be800cba6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "xPPSRmadqfqCtRF2", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json index d710da228d..7b49141fd8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "aWVXIk1xVa9URR1D", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json index bf4a43d0b6..1063943964 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "KhBF7hHHVPzqiAca", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json index a3c7dfd439..34929db7ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "sTplnj3gMAzwtLWE", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json index f7a674246f..3f409afcef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zJFUJKDJRYi1pRL7", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json index 972b575cad..2944c6ba8e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "vXPXOKD8vNJlujM1", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json index 582d6e32c9..883241624e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "purqxjmWiflDrnik", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json index 17e7fe9b09..1daf6897b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "qraQ97uusigB63hv", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json index bd4e81dbc6..d8735d275c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "Z1NCX8XMyIVlOlWn", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json index 59b52fad8c..f1ab00b390 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "s620OFLTgFT4Ds2A", - "filament_id": "OFwf0oWp", + "filament_id": "OFMIma8C", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Luminous" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json index 21fb7bfe80..d9c3ffe33a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DcbISTLvKNMZRzKx", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json index b6fc07dc4b..790c30cef0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4fwlIrzy6O2EsyBZ", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json index 7037b54f2d..1f7bd2b1da 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "BVmVfNCuy8HDhcEI", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json index b6772f5d1d..8b85ad1f7e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "WRMePGzDGdEGiqNv", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json index bff289cda9..4f7b782d7f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "thnbuaLDDlGrkrdY", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json index 8050f544ff..548d627fa2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "cnPwhLyBq6JL8gEA", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json index 95f712248b..0a5772910a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "8b9q1FfVljPmKoEt", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json index cf8c573962..7ac6952363 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "o9dOrLgL6efF19O1", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json index 0c247e1b06..3154dfabc1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "QoRmDvhoeGi6Z2xv", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json index 9c13d8bf85..ec55501821 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "dHyuoORAUGLtlGkJ", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json index 4e945b96df..892a8d513c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "OgqVyIHfy3U8Dc6d", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json index a32fbb2952..2716d0f9fa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "g1gnICJ3u6hpGazQ", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json index b955699bcf..c5338f91fa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "feXpVbDM5ON5mwg0", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json index 4816841106..589fc96f12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "XMnZQ1AxXPJqpqRX", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json index 787af100e8..8a2cc0815b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Ke0bRKPNKSsVMO1Y", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json index 84d8d2f4d3..14ee3d9ad6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "IRC2n4GaofxvvyTt", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json index c753c54bb3..c19e58a5df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "RN4wdTL0qccM4huZ", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json index 03a028841a..989bed63b3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "ipMevDMORKqZYdvD", - "filament_id": "OF60Lmeq", + "filament_id": "OF1bQyX2", "instantiation": "true", "filament_max_volumetric_speed": [ "22" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json index 439527a780..a788ef51f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vwwb5nfO63U1ErCn", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json index 3d67e7a928..b6a2c35983 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ekq4MRPyzlYxRhbX", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json index 4d538c35a2..45b9d0d7d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "uusF7Vz94HOwoQF0", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json index 15a224163f..3f595ba93f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "sHZWzrZO8PP0QYZR", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json index 928b220017..4dc8a9d226 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "bxwjEFI8HmNY8JI6", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json index 184a2ed052..5f0dc7ac33 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "VvMaIJwFk4Q6KX4p", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json index 0c772343b9..1c40ec5691 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "5xqdqoj2l50FegPF", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json index ab8e2a6e13..035d431419 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "R79SbWA9i2OAu2ee", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json index 8d1a7360f9..df92bc3004 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "zjIN4KzIOwI1VwOc", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json index a0bdd7313a..7828b38822 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "UxMNNil2KnWvAJ4q", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json index 878fb7e83e..d9e6e0ec27 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "57i6iKrVYUS5UiBT", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json index ec32a91e56..712410e542 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vVKalJViJuBvlHkK", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json index cd872ad134..6b8014dff1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "IYPw8a9tkpuf95uH", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json index 1652f423b9..84429816a4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "I0bULoVAbtVfQoCy", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json index 31fc158a78..057c05a51f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "DbPo3ay2e4a002AB", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json index 8c970ff1b5..d9f64c3634 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "uztv4hhm2O3T93zZ", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json index 6edb1d2d36..9323d094ef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "UFWWrhfgS7N36Y8W", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json index c9a3884236..3a28540dbf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "UD5i0ijsirfieUvb", - "filament_id": "OFWv6JYn", + "filament_id": "OFvVxvzZ", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Metal" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json index 5cb8fcea1a..15a01f350a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DIMoIGOGedN17WbO", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json index 1e838feabd..9d4fb9f9a8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SC5LJcecBaEG5by3", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json index f51c80d063..6a24a22501 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "t9lPSFnwLDk0ARIp", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json index 76fff17909..14fcccf62b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "SBSlOEwZSvZHeX4r", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json index 9dbd0c5df8..d26813d36c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "DbWTm2H71izMWmpx", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json index c29e57868b..174584294f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZENqqRqvEOeloAgs", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json index 7a776d89e3..c7913ee0a9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "YcXuvz3qYHtVoWxv", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json index 32a582ed53..8747bf9e8f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "prItyXNphhuPCAce", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json index 2aa08cf968..63b0c9a162 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "83zDmjaAgxxIt7KU", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json index 88ee859e78..1b1a3c059c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "px3O28Olb9LExqfT", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json index bb5eb9a2dd..2d5f18b2c4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "QYgsCCHP3Khqrzh3", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json index d839e8b67f..6f675b36db 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "wV01bqvZ6MRaEibZ", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json index c3a2de4dfc..730a9ee7d9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "1ro9wHPYhuMHNiYe", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json index d0a52dc129..24afad6fd5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "4W4a7c9ugUVwvvmn", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json index f6a0c4911f..c8dc7de4cb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "CloRo3qxvzxHZuIP", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json index 924ed22202..e677dfe51b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "QgUbP07tIXmFysEb", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json index d1383d50c1..3edd253b70 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "6mvGOtkPZT6ROboo", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json index 302bb89cea..880e0e1ff1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "vI875WYbMyQeMwlh", - "filament_id": "OFTa6gPH", + "filament_id": "OFK74HJD", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Pro" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json index 04b217d0c7..13d04ff82c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gxl3i7jTwkzrKxF4", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json index 7ef705723e..c3ece049cf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "mx6NWRkqyo2U12XQ", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json index 058dce03c0..a5bdb3ae12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "YH9IHXOFMKwcTLyA", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json index c2f9796beb..6541cbefb5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "IfAieG0OAG807xlu", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json index 6ebc636b10..a98c508f95 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "N6J7QqQ7TIgM3MyW", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "cool_plate_temp": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json index 7aa85e29bf..3e65220aa5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "OIsfpi49wEoF0ekO", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json index 67ca938c59..5943d800f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "xxeZ6VPjRFevxDnK", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json index 50440528c4..1db32c1b42 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "x5m17Z5UpqpTtwgF", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json index 933275ecf4..4e99c711c1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "2GZp8yjrY1OioFDi", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json index 03c51a026b..1e92e0d029 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "U0XtCVUhIMnidhbR", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json index 127a7d57bf..cb7dc03904 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "8j9kaYy3ghkF81Cu", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json index 7a4b09647c..6eff5673c5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "E0LeJwSxaniDkB0b", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json index 573bf70bf2..3f6a7428ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "8rggqgJ9kg9yLE28", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json index dbd9678eb4..f8dbc1a5db 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "hnWRLUwnfXiwnqBM", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json index 9703b974e9..2cc8db6387 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "uY4OWhIytHMz4rWq", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json index 88c07e6495..d77fc03f37 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "YSkkXd9EhhEHvGpf", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json index 2d45c140ca..9f890d3ae4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "XlxXZj9Wi1D6IwCE", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json index 5e3cdced52..030ea7370f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "IPyXBSnMCAikjI9V", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json index efb07ffb7b..16f980a35a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "f3gJsovSmDKoA7BP", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json index ab60566b84..7be8b80605 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "vZb7BvbyVWkZv3rR", - "filament_id": "OFAGrVjP", + "filament_id": "OFLYDIb8", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json index 3202d660c4..b9621303fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ojYsAanAPqYhgFoe", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json index 5156491cfe..e1df09f3fb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xVYaNvQwM2chTkPe", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json index a8af698f32..4c0cf846e9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "o8lsEnMIiHHorJhb", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json index 653b2f3e03..173557e7cd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "oXlxQJY0K6Dnri7e", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json index 11cfe05454..0bed0a94ad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "XKpFulrvvrfE56va", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json index f722c56cbf..b0d52bf934 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jmVmKMUCcowszvVp", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json index 641ab1da9a..94ef846a7e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "yeh5cd0tAHtHzdoQ", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json index e2402d34ed..1ce68966df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "q2Zi0YluaYpG3Ktf", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json index e03a5b575e..6d95754110 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "1qXV6AJqPpAwX1YK", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json index b2e0f1590b..70c9c99c7a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "YsyGGOGqUVkEqkIr", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json index 6817de3a60..b333c92f94 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4L3Zm1YIxs8J8dp9", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json index 0ecfc51591..685625a28b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "UVvd018dTbygqTgy", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json index dec7c8275f..e9714994cc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "F0k8kkgWM5FkLAzo", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json index c11104155a..964a187d38 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS @G3U", "from": "system", "setting_id": "Oapl8InwbkwNSIDl", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json index 3513820454..34a5114484 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "NiB6Yb4b0auyn9KQ", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json index 0ad4ae9863..659909085f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "LYtdPgec1hBLhoQA", - "filament_id": "OF9sr3Vn", + "filament_id": "OFec7Qiw", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Sparkle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json index c61e191e80..8367f7e01b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "QRyISvTy06kCwxKo", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json index 17a29fd4ad..60f17b2196 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "rmnF24E3SuwzRscH", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json index 4fcd8bf26d..f719c895cd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "BXPI5Pkp7a6pLrCh", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json index 4e5ab53a0a..b2b8bcf477 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "rBm25DRY1PAkEJ4r", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json index a3c206104c..f5e734c62b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "xReo12oteZ4ECNJN", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json index 65b19268dd..3d493c1bf7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "9PgjgxU7pLl2Dfpe", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json index 6f13da05c7..011065f34f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "RuNKzuIsw7F1ogmG", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json index d2facc5b67..ee56dde5d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "YPuMCHNGDWh0FpIB", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json index 8a051eae74..3baeeccc60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "3uC056Y171ZjnQE6", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json index f0515b17da..85527a625a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "JxNlb64lTODaaQhU", - "filament_id": "OFPJrlC3", + "filament_id": "OF2bZtyg", "instantiation": "true", "filament_settings_id": [ "Flashforge PLA-CF" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json index 48ba8894c7..67c45b439d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,7 @@ "name": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "inherits": "Flashforge Generic PLA-Silk", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFGc282l", "instantiation": "false", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json index 6bdea5bcd0..e559b22a88 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "DhC7iFgNKCAq4Zkt", - "filament_id": "OFQCAYAt", + "filament_id": "OFLC1oRH", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json index daa6fb18ea..96fa32ad12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "Jws2AaLWaNyZhqX4", - "filament_id": "OFQCAYAt", + "filament_id": "OFLC1oRH", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json index 883ee5c3ac..f05cbff817 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "MFItX51zZO0KYjdk", - "filament_id": "OFQCAYAt", + "filament_id": "OFLC1oRH", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json index e4a3581fe4..140f6c5dea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "KITjZXcyM4N8cVyu", - "filament_id": "OFp8lkYD", + "filament_id": "OF5BN24W", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json index bd330537e5..b543ea7215 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "6NjEQ6RJKUAOrSLw", - "filament_id": "OFCJaXZS", + "filament_id": "OFxMGIPt", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json index 85977c3bb7..10ebf9f302 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "vFMKqNjQjlNxwvDI", - "filament_id": "OFCJaXZS", + "filament_id": "OFxMGIPt", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json index 54faf072f3..58b2d242a8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "ihXPnFERMjbBgrP5", - "filament_id": "OFZcrV9c", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json index 7cb88b5960..5f261953b3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PPA-GF @System", "from": "system", "setting_id": "UWFjBmSpUkZLBvoO", - "filament_id": "OFZcrV9c", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json index 309fb174e7..0b1139bf47 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "oSGlx5mtGh07BnOz", - "filament_id": "OFZcrV9c", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json index 67c51aa68e..e7fac74763 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "i5DllSvYjVPO04Su", - "filament_id": "OFZcrV9c", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json index 97ff645bb1..19630dac6a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "l3dYtVM52X0UMRix", - "filament_id": "OFZcrV9c", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json index f92402ffaa..4f3cc891e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "rSYGG2ni41NDVw6l", - "filament_id": "OFeFRwST", + "filament_id": "OFQiq4fb", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json index f9a335f2e7..206933a8fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "nwgbMjLRJLtJ04ri", - "filament_id": "OFeFRwST", + "filament_id": "OFQiq4fb", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json index 624f2b05e8..4e2a345147 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "f75oElm4zB0hukIj", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json index 456dea73d2..a90c599c43 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "o4KYTpJF6KksX2mg", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json index f4d18ac97c..8c9d19de43 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "HUSkDZL6rCpz0lRk", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json index da615cf496..43d235a9ba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "8xgu0AnMuKbPWyVd", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json index f2d17b5a69..23e2cd0e23 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "Rgqt3MjxOye5EaFt", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json index 3f0aea0926..6d8d7ce10d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "PBFsW5qhVbQteYh5", - "filament_id": "OFmgesco", + "filament_id": "OFKpQTJI", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json index f91c527cac..952b10fa12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "TPbHmcFyPyjvoERv", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json index 6b331b1a97..626c5891bc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "zLMgsyDmdoXHhqFv", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json index 6f674a27e8..d084aa4b46 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "ThakVhjfpgnAlEVH", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "cool_plate_temp": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json index 5a6b095651..262c9c9e47 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "M0ozqaD3jSKoD6fm", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json index 4d3d501620..649ef446ef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "ob8IkvzNt9CWCzbk", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json index c31e020d4d..8eb722c51f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "NzxX1lyRJ7wLUihV", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json index 306930aabc..08a4033ee3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "4FIGiheSGvSJPw3s", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json index a3ee98d0b8..9dc4916ba9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", "from": "system", "setting_id": "1GNqSBaQitzhYSx7", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json index eebe8e5b85..8a0c8edacd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "eOhMygyxaccdov7o", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json index e9823b8a1c..1e35a008af 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", "from": "system", "setting_id": "LxooKiOkRncktNLf", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json index b3aa3cfc55..bca2a33ba0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "HdoJfbQr0uwQ6Vwb", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json index abe58bc211..6352a73829 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "J4EaFhnpkLDcl5wH", - "filament_id": "OFRNU58t", + "filament_id": "OFAf9pJF", "instantiation": "true", "filament_settings_id": [ "Flashforge TPU 95A" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json index c5c992698e..1daa3b0189 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "fd5bACFa33J7aTdp", - "filament_id": "OFtJMczs", + "filament_id": "OF995YXg", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json index 94aa1ead1c..3145267db2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "hrcELA2qEMkZ6Wvj", - "filament_id": "OFtJMczs", + "filament_id": "OF995YXg", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json index a4a27dceef..96c3798a71 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "Lis7BZ3lMkoX5KQt", - "filament_id": "OFE22Uba", + "filament_id": "OF41jaTh", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json index bd69da6ff2..18e401489e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "xY03Hiidu5YNSUyZ", - "filament_id": "OFE22Uba", + "filament_id": "OF41jaTh", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json index 6066fbe98b..3fee2a98b2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "AHu6wNV3zcPBusOF", - "filament_id": "OFyxAbO4", + "filament_id": "OFNWnx2c", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json index 5fe7151b78..d7625a7d8d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "8MBRqfLIRdhxk1dF", - "filament_id": "OFyxAbO4", + "filament_id": "OFNWnx2c", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge/Flashforge ABS @FF AD3.json b/resources/profiles/Flashforge/filament/Flashforge/Flashforge ABS @FF AD3.json index c4ebf2a360..0ac23a453d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge/Flashforge ABS @FF AD3.json +++ b/resources/profiles/Flashforge/filament/Flashforge/Flashforge ABS @FF AD3.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "9pxqGyfi52tuVmZ1", - "filament_id": "FFF02", + "filament_id": "OF5SJ3jz", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge/Flashforge PETG @FF AD3.json b/resources/profiles/Flashforge/filament/Flashforge/Flashforge PETG @FF AD3.json index ca504e0e95..7576c467af 100644 --- a/resources/profiles/Flashforge/filament/Flashforge/Flashforge PETG @FF AD3.json +++ b/resources/profiles/Flashforge/filament/Flashforge/Flashforge PETG @FF AD3.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "tYidxo83oreZoecT", - "filament_id": "FFF03", + "filament_id": "OFMpxamb", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/Flashforge/Flashforge PLA @FF AD3.json b/resources/profiles/Flashforge/filament/Flashforge/Flashforge PLA @FF AD3.json index 8234e6f07a..8f3483dce2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge/Flashforge PLA @FF AD3.json +++ b/resources/profiles/Flashforge/filament/Flashforge/Flashforge PLA @FF AD3.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "qnKvMRUvJ7tRJ4dX", - "filament_id": "FFF01", + "filament_id": "OFDKgoqx", "instantiation": "true", "filament_vendor": [ "Flashforge" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json index 646f8971b2..a9a3418254 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "2JQjReK012FHpHIt", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json index 7bb5e8906a..18df8ac124 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "3SCkpXXK8VcQBMQn", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json index b0cb4812c8..0f1754ae6c 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "dgpcOrf7282LTh1d", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json index dbccec4551..d6a0d3bd5d 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "e85SCr6SV9kQD2hm", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json index a780bd8dd8..c6970afe6a 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "eGXsHN5B9BZViVNe", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json index 07e8702da2..70d29c3c5d 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "8JSb4JqZ7zLi8uPI", - "filament_id": "OF6FM5F7", + "filament_id": "OF42ZDpN", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json index c88d025a64..e7647aff3f 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "gZqAGVOlWR79n7hN", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json index b1f762dd7a..a8dc9a771b 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "nJF1lCOavNNh4yHs", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json index dc949095de..4bb5bfff69 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "TZ0nKqxoIYk2mPh8", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index 2e264e4b2f..4ae7d696a8 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "nH6pwFYsPyBzL1EB", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json index d5cb85c1bc..d359420582 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "yok12IOGZzGot5Ll", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 0aaa19dd68..8ef405d524 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "wmWMf3MfmbfZx2o8", - "filament_id": "OFSdF3B1", + "filament_id": "OFYtS9zg", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json index 2892bfac6a..4befc54c32 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Xqb0GQluin2jUQyL", - "filament_id": "OFLxO2Oc", + "filament_id": "OFBC32Wb", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json index 5f464b11cf..0d57937da9 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "A8PDgw1jZE2m3bem", - "filament_id": "OF6SEkeJ", + "filament_id": "OFB8wSps", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json index e2584bb9ed..c9eb3cafd7 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "Iy5lHY4ihEKPgJ5x", - "filament_id": "OF6SEkeJ", + "filament_id": "OFB8wSps", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json index a6fb057638..7f07f612f6 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Kdeg55RzLMYhqYMC", - "filament_id": "OF6SEkeJ", + "filament_id": "OFB8wSps", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json index a94efd16a0..a3c7a4372e 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "JXf7KCy4KY65xuzO", - "filament_id": "OF6SEkeJ", + "filament_id": "OFB8wSps", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json index e3652a2989..dfdd46fb57 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "O3tz36NNMoagELL0", - "filament_id": "OFAtydxE", + "filament_id": "OFUScM0D", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json index b05cdc7517..d84fd5aeb0 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "Gg9H6I32fOqoLSqE", - "filament_id": "OFAtydxE", + "filament_id": "OFUScM0D", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json index 700ebeea67..248fbb5ce1 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "pV5QERvRuROIZTOa", - "filament_id": "OF0UbONm", + "filament_id": "OF6WddJ1", "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json index e49b64860a..538d1e5c0f 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "0i7VkquM4n0uFaXH", - "filament_id": "OF0UbONm", + "filament_id": "OF6WddJ1", "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json index 54bedf7278..088e4ac1b7 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "TZDKsooodaGVkM4m", - "filament_id": "OF5kwfZu", + "filament_id": "OFZ1hANN", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json index 9201c77b22..ebd0a01ed4 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "NdNRNhmsHgHRnz1Z", - "filament_id": "OFYICbI4", + "filament_id": "OFPjOUtz", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json index 37b5e26001..5b959efeae 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "fR7maJwWmteJ7bWY", - "filament_id": "OFYICbI4", + "filament_id": "OFPjOUtz", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json index 1af16ac51a..c35726f024 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PAHT-CF", "from": "system", "setting_id": "gLG1R5gtdliSlnZJ", - "filament_id": "OFoAaHcF", + "filament_id": "OF2RjrWH", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json index b68ea0efb9..acb65a33dc 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "AaGdNgYaIIZyZBiW", - "filament_id": "OFKZH00L", + "filament_id": "OFRujL0v", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json index b87e15f2df..a526ad1e0c 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "jJVDAlGTt1QJlbn8", - "filament_id": "OFKZH00L", + "filament_id": "OFRujL0v", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json index 06760b4e08..e80c963649 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF", "from": "system", "setting_id": "IEpmsltdjoCu2txJ", - "filament_id": "OFAdZFD1", + "filament_id": "OF4zzGwp", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json index 24c8414b2e..963d3ab54d 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "foH2sa61cDy12TzH", - "filament_id": "OFGfdP6J", + "filament_id": "OF6rMr3U", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json index 66b94a8bc0..9ebf2fcdad 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "gQLoSJ7xGEdOd8kr", - "filament_id": "OFGfdP6J", + "filament_id": "OF6rMr3U", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json index 5fa539c9d8..b3b537bfb3 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "6Z5vce5YKlCGox8v", - "filament_id": "OFjepy6j", + "filament_id": "OFCaJHAA", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json index 6c09203af8..66c208d2d3 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "kMYDFSwivzTjFo2L", - "filament_id": "OFjepy6j", + "filament_id": "OFCaJHAA", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json index a526cc23ff..d4947b14fb 100644 --- a/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic ABS", "from": "system", "setting_id": "lS237JRDRMQgJFzd", - "filament_id": "GFB99", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "1.093" diff --git a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json index fc6281092e..f823512bcf 100644 --- a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic ASA", "from": "system", "setting_id": "tq7YmJohYaNiPplE", - "filament_id": "OFRR8LUh", + "filament_id": "OFLPAxz3", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json index e43dda4e39..906b5af508 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "cvJIaPzb0uJLipX1", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json index 3575a60b49..83744365bd 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "wguPruY9M7GcMt6q", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json index 2fc765ea4a..0e279cd8cb 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "EhobwmFIEg5Cs5Ki", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json index 2e17832b77..77114b937f 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "JvdxJyy7xCm3F0xH", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json index ca87808d1f..68d26b5ff5 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "FtwGLcPMQqKw5uKW", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json index 22ed7da7df..9a6a079a2e 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "lrnsjoh8DtnTcT7g", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json index 3f30b9a2a5..222c3f3085 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Th8rzyWoINHBwgcw", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json index 6c797966fe..346c467bd6 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "1Lyq9gOfcZ5hPIdW", - "filament_id": "OFjqPjjl", + "filament_id": "OF6MOPWx", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json index 8122a7e3b5..d18f7bc5c4 100644 --- a/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG", "from": "system", "setting_id": "6vtyYCWYY10OPMbz", - "filament_id": "GFG99", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "1.09" diff --git a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json index 70b143a5e1..a405594914 100644 --- a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PETG-CF10", "from": "system", "setting_id": "fWM9WLGV9mUQOtHh", - "filament_id": "OFo9EwvK", + "filament_id": "OFO5djrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json index 39afe0a2c2..e8d34603f3 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "48NJ34G6Uo7VgzD4", - "filament_id": "GFL99", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "1.07" diff --git a/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json index 77e0ed35fd..73ed3cbbaa 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic HS PLA", "from": "system", "setting_id": "B4EWBUa9G36lZUd7", - "filament_id": "GFL99", + "filament_id": "OFmpMwxS", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json index fc4a67290a..d10e6d527c 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json @@ -5,7 +5,7 @@ "inherits": "Flashforge Generic PLA-Silk", "from": "system", "setting_id": "9FrKIXABj3yedXri", - "filament_id": "OGFL96", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_flow_ratio": [ "1.07" diff --git a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json index fe64023c22..1867ff0281 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA-CF10", "from": "system", "setting_id": "F8r0b3G228QEK53U", - "filament_id": "OF6XIeUW", + "filament_id": "OFX2zcrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json index 74bee8eab1..b46926fe5e 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "WQyJHZpkl9Dz6Yo3", - "filament_id": "OFuswXlp", + "filament_id": "OFulOdT2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json index fa2c3bb233..01b1fbe328 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "qRqhbOYn5TMfccem", - "filament_id": "OFuswXlp", + "filament_id": "OFulOdT2", "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json index 591a5b2f40..f1d682cfca 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "LTZCFxkzkGCnUMAR", - "filament_id": "OFuswXlp", + "filament_id": "OFulOdT2", "instantiation": "true", "cool_plate_temp": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json index a21b8c2c74..685e0dce0f 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic TPU", "from": "system", "setting_id": "DW9Ck6xMK00Ry2iE", - "filament_id": "OF6Mxzsg", + "filament_id": "OFgbpcy9", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json index 2c196808cc..d34dc09ee4 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "i59KgPtnplOJ8ZBh", - "filament_id": "OFvsS7Fb", + "filament_id": "OF5c6nq3", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json index bee067f8c4..7b90c39711 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-64D @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ERMhwufaef91KJ1d", - "filament_id": "OFvsS7Fb", + "filament_id": "OF5c6nq3", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json index c4d1a43829..de84158ff1 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ZGmi7NF6Rn4idKjT", - "filament_id": "OFDkABjZ", + "filament_id": "OFJYpVAQ", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json index fb963cb267..dae60389c1 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-90A @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "3SRFjKR5ezAukLYW", - "filament_id": "OFDkABjZ", + "filament_id": "OFJYpVAQ", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json index 3f08572fcf..66f0535b0b 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ULqB7JfqebS8d00l", - "filament_id": "OFYRS7GZ", + "filament_id": "OFy48TOp", "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json index 2092ddb4f8..f44c131661 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Generic TPU-95A @FF C5P.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "EQzyVOtOJjpKyRMM", - "filament_id": "OFYRS7GZ", + "filament_id": "OFy48TOp", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json index 7a7abe02eb..5b9131d949 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "lALS0WwvUo5AYOq3", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json index 171353a08d..e6267540fb 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "tgRrYwnp5nr1yr9w", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json index ff217ef2e3..9f844651fa 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "yom6iIUUwU1MsZwF", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json index c687db6030..5117416c0a 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "ysj5nD1op08U8rUT", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json index 4fc3dfba55..1d6ac1b4c2 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HBtkC3BfEpBGEWc5", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json index ed34f84c3f..f284af6a29 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,7 @@ "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "zsW4MCpeL5qfzNfg", - "filament_id": "OFt9AiN5", + "filament_id": "OFIieIka", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json index 4e1efc3f9e..352f419c5e 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "t6CWYU3ZSddIjwhS", - "filament_id": "OFtEFtsz", + "filament_id": "OFwxpmHM", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json index fd1ff2433e..d55ea01f1d 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json @@ -4,7 +4,7 @@ "inherits": "Flashforge Generic PLA", "from": "system", "setting_id": "NXQtHvtO4tyQ1ueu", - "filament_id": "OF9RZyBz", + "filament_id": "OFfegVpA", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PETG @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PETG @base.json index a29d5448ae..7e75980d63 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PETG @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PETG @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFSNL08", + "filament_id": "OF2GCW1l", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json index 84d20b77c5..994468c54d 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json @@ -4,7 +4,7 @@ "renamed_from": "SUNLU Marble PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL06", + "filament_id": "OFxUwUeW", "instantiation": "false", "filament_cost": [ "31.99" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Matte @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Matte @base.json index 542dda9c1f..4445f8007a 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Matte @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL02", + "filament_id": "OFpW4gdi", "instantiation": "false", "filament_cost": [ "25.99" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ 2.0 @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ 2.0 @base.json index c631debf6c..f343841042 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ 2.0 @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ 2.0 @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ 2.0 @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL04", + "filament_id": "OFHmPYRy", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ @base.json index f9eb2fe68d..98a628daeb 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL03", + "filament_id": "OFMUWNkp", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU Silk PLA+ @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU Silk PLA+ @base.json index d4d6e8d0cb..60fa90f91a 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU Silk PLA+ @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU Silk PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Silk PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL05", + "filament_id": "OFpPGSKG", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU Wood PLA @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU Wood PLA @base.json index f81d0dfdfb..5617754e9e 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU Wood PLA @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU Wood PLA @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Wood PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL07", + "filament_id": "OFLJ8S6I", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json index 7a296fea35..1bccf6a208 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "TDBNmmGSexhJjBVm", - "filament_id": "GFB99", + "filament_id": "OFBtlI8M", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json index 4fe521fcce..4ed339e5cc 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "lpa58hsu9IB697v8", - "filament_id": "GFN98", + "filament_id": "OFjoIVZ6", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json index 92227f4254..6dd3af11ba 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "MkIN95sonzI0vNXT", - "filament_id": "GFC99", + "filament_id": "OFxTMg1d", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json index 2bd49d16a1..b8a96a8154 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "id0y4kfJciWjOwh6", - "filament_id": "GFG99", + "filament_id": "OFzXURfo", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json index d41a0cdaa6..87c72dc870 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "yCGisctQQwASw8kc", - "filament_id": "GFL99", + "filament_id": "OFFZ0BBL", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json b/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json index 1ae309f9e9..5c97c06efb 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "84YwyW2C94NdN1zl", - "filament_id": "GFU99", + "filament_id": "OFRzsaDK", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json b/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json index eca01c7a14..a125ff3ad2 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json +++ b/resources/profiles/FlyingBear/filament/FlyingBear PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper", "from": "system", "setting_id": "72RZHGo7eACm2tN5", - "filament_id": "OFNz8rrn", + "filament_id": "OFD9taow", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json index 5147461208..bfb316494f 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear ABS @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @Ghost7", "from": "system", "setting_id": "UyTzid0zVMCxSrgx", - "filament_id": "OFnMW5jr", + "filament_id": "OFm4ysMO", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json index 5f2f9522fb..f8c0bcde19 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PA-CF @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @Ghost7", "from": "system", "setting_id": "NZwDOWmMdBYEejNQ", - "filament_id": "OFCKK3u9", + "filament_id": "OFQEGL7z", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json index 96f7e5a026..6dd9a695bf 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PC @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @Ghost7", "from": "system", "setting_id": "QYOEUrnmNMUcVOVF", - "filament_id": "OF4jILJA", + "filament_id": "OFFX1DRD", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PETG Basic @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PETG Basic @Ghost7.json index 6c727db151..c03f7a09ee 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PETG Basic @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PETG Basic @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @Ghost7", "from": "system", "setting_id": "k2os2FPNl8K7vTZN", - "filament_id": "GFG99", + "filament_id": "OFf6ynfH", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json index c970880f0c..85a926f7e9 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Basic @Ghost7.json @@ -5,7 +5,7 @@ "renamed_from": "FlyingBear PLA @Ghost7", "from": "system", "setting_id": "3JBTG6IDrBCnvIhf", - "filament_id": "OF50NUZI", + "filament_id": "OF3fwO8b", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json index 6e44f41595..eb744fd971 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear PLA Hyper @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @Ghost7", "from": "system", "setting_id": "qQZUolZHgJxgLo17", - "filament_id": "OFNz8rrn", + "filament_id": "OFD9taow", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear TPU Basic @Ghost7.json b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear TPU Basic @Ghost7.json index 8b66f6d1ca..6c7ebbab2e 100644 --- a/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear TPU Basic @Ghost7.json +++ b/resources/profiles/FlyingBear/filament/Ghost7/FlyingBear TPU Basic @Ghost7.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @Ghost7", "from": "system", "setting_id": "wQQncT0OCAktGyHr", - "filament_id": "GFU99", + "filament_id": "OFHf2lKK", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json index af609d3348..7c2a4dc745 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear ABS @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @S1", "from": "system", "setting_id": "7dtepGnoDDAdPtUh", - "filament_id": "OFnMW5jr", + "filament_id": "OFm4ysMO", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json index c94440b570..852af29fdd 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PA-CF @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @S1", "from": "system", "setting_id": "CLggyaDcebZSbqIH", - "filament_id": "OFCKK3u9", + "filament_id": "OFQEGL7z", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json index 41c4c28166..a546a5ed5b 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PC @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @S1", "from": "system", "setting_id": "bPeSARy9AGqM8Y32", - "filament_id": "OF4jILJA", + "filament_id": "OFFX1DRD", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json index 3145034b51..206929433a 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PETG @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @S1", "from": "system", "setting_id": "yKU5mMW0nKvNH98B", - "filament_id": "OFg4N6ZL", + "filament_id": "OFDgQaca", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json index 7ded765608..4f8637c29d 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @S1", "from": "system", "setting_id": "k58jL17n8cOla3Gd", - "filament_id": "OFBGxHgT", + "filament_id": "OFilD4bP", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json index f422d04c4e..82978a61be 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear PLA Hyper @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @S1", "from": "system", "setting_id": "h8XGgMBjEwxNkldf", - "filament_id": "OFNz8rrn", + "filament_id": "OFD9taow", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json b/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json index 57c0c169d3..27bc1a6ba5 100644 --- a/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/FlyingBear TPU @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @S1", "from": "system", "setting_id": "IVFpAlGo8KButueJ", - "filament_id": "OFYfZgxU", + "filament_id": "OFYezc6s", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json b/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json index 9b28644704..7dedb1f5cf 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other ABS @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other @S1", "from": "system", "setting_id": "Nadd5NX7eDvEnlKO", - "filament_id": "OFVJXE4n", + "filament_id": "OFYuowge", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json index 074988bb61..0e4cace2f1 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PA-CF @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other @S1", "from": "system", "setting_id": "sSKkzXv1cn33fF7p", - "filament_id": "OFLiTjQK", + "filament_id": "OFkAltI8", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json index 47bc577217..a2dfa6158b 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PC @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other @S1", "from": "system", "setting_id": "mHuxaHppNFZbldHD", - "filament_id": "OFTbdJyT", + "filament_id": "OFyRCIMh", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json index bc460077c8..f2e5665dc4 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PETG @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other @S1", "from": "system", "setting_id": "Ko5q6BgADth36RJC", - "filament_id": "OFuPN3iW", + "filament_id": "OFDRpXLZ", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json index 79007e6e83..7b767cf298 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PLA @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other @S1", "from": "system", "setting_id": "sayo3sMQKH4ZdhEk", - "filament_id": "OF5Ugv12", + "filament_id": "OFGJ1nxs", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json b/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json index 58243ad2bc..1104767ce9 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other PLA Hyper @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other @S1", "from": "system", "setting_id": "2QHCKH0yDmBzpQnY", - "filament_id": "OFFmJ8aR", + "filament_id": "OFklJcWK", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json b/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json index 2c3632740e..4202a54091 100644 --- a/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json +++ b/resources/profiles/FlyingBear/filament/S1/Other TPU @S1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other @S1", "from": "system", "setting_id": "wh8PHrEbFYKsQxo0", - "filament_id": "OFvOhSjO", + "filament_id": "OFwVVKEV", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json index 3437d6f571..e72d770f16 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json +++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "ue95N2e65rdp5K6c", - "filament_id": "P510eff9", + "filament_id": "OFsGqI4y", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json index 4575f32060..3d8e746316 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json +++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "Z1scjKDBFoDaTa2C", - "filament_id": "OFziUL2X", + "filament_id": "OFlLmUeV", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json index d0a6f7dc61..715649fabd 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech ABS @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @EX+APS", "from": "system", "setting_id": "3EdHfL9KE4oRVHB7", - "filament_id": "OFVBNoov", + "filament_id": "OF0c7mnL", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json index c2b0d8543f..677e39587e 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PA-CF @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @EX+APS", "from": "system", "setting_id": "6YMXdKicP2hGUUJn", - "filament_id": "OFb3UzMZ", + "filament_id": "OFnXrkhA", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json index df76f5ffe8..3ce073a006 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PC @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @EX+APS", "from": "system", "setting_id": "GsYpyooWb6ymAb36", - "filament_id": "OFTsGps3", + "filament_id": "OFf6ZEvu", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json index d04816c3f0..993574d86c 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PETG @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @EX+APS", "from": "system", "setting_id": "sNsRp3vHhcWAxp7d", - "filament_id": "OFvaXhYD", + "filament_id": "OFrLiqiM", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json index e1a7aaa359..12b79b7722 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Basic @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @EX+APS", "from": "system", "setting_id": "UTrjyqqetOSYNZxJ", - "filament_id": "OFuq9tqb", + "filament_id": "OFObG16Q", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json index aecb50b1a4..b857cabc2b 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech PLA Hyper @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @EX+APS", "from": "system", "setting_id": "p08bW50lbzMjwL5B", - "filament_id": "OFefhSuj", + "filament_id": "OF3ydJTT", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/EX+APS/InfiMech TPU Basic @EX+APS.json b/resources/profiles/InfiMech/filament/EX+APS/InfiMech TPU Basic @EX+APS.json index 9632d002fb..1396c07546 100644 --- a/resources/profiles/InfiMech/filament/EX+APS/InfiMech TPU Basic @EX+APS.json +++ b/resources/profiles/InfiMech/filament/EX+APS/InfiMech TPU Basic @EX+APS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @EX+APS", "from": "system", "setting_id": "fy9sPlaVkaXHBxbH", - "filament_id": "GFU99", + "filament_id": "OFbSZBOi", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json index 080a6dfede..4aa2e82fd8 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech ABS @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @EX", "from": "system", "setting_id": "e6st01mMFr98LVEH", - "filament_id": "OFVBNoov", + "filament_id": "OF0c7mnL", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json index 3beb4794b3..e328da4f73 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PA-CF @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @EX", "from": "system", "setting_id": "qPCd5oTrCmZi63Ng", - "filament_id": "OFb3UzMZ", + "filament_id": "OFnXrkhA", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json index 2e0ecd34bd..438743bac4 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PC @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @EX", "from": "system", "setting_id": "Uc2o223YSyShp7EI", - "filament_id": "OFTsGps3", + "filament_id": "OFf6ZEvu", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json index 9f7230ea11..30c38c5a07 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PETG @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @EX", "from": "system", "setting_id": "5vqLJrKLKv40sT7y", - "filament_id": "OFvaXhYD", + "filament_id": "OFrLiqiM", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json index cb78703d14..f0ab2e094d 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Basic @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @EX", "from": "system", "setting_id": "bGOpriWvEFZOmqR4", - "filament_id": "OFuq9tqb", + "filament_id": "OFObG16Q", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json index 57ec47283d..3c88c1af03 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech PLA Hyper @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @EX", "from": "system", "setting_id": "y8A92Dw8EMplnZAM", - "filament_id": "OFefhSuj", + "filament_id": "OF3ydJTT", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/EX/InfiMech TPU Basic @EX.json b/resources/profiles/InfiMech/filament/EX/InfiMech TPU Basic @EX.json index b72767fc58..fc78851c8b 100644 --- a/resources/profiles/InfiMech/filament/EX/InfiMech TPU Basic @EX.json +++ b/resources/profiles/InfiMech/filament/EX/InfiMech TPU Basic @EX.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @EX", "from": "system", "setting_id": "vAMeXNwHNVMKYWz3", - "filament_id": "GFU99", + "filament_id": "OFbSZBOi", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json index 2c6f0a1f18..fd57e1f375 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech ABS @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs @HSN", "from": "system", "setting_id": "QnEhnvxibr6g1nou", - "filament_id": "OFVBNoov", + "filament_id": "OF0c7mnL", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json index 0aa59d2664..d798d7803c 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PA-CF @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa @HSN", "from": "system", "setting_id": "L1j3mDKXjE2RKO1B", - "filament_id": "OFb3UzMZ", + "filament_id": "OFnXrkhA", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json index a8a0810980..41bf6e142f 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PC @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc @HSN", "from": "system", "setting_id": "HBNOABPFLninXsW6", - "filament_id": "OFTsGps3", + "filament_id": "OFf6ZEvu", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json index c4873f921e..7102e440cd 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PETG @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet @HSN", "from": "system", "setting_id": "DJyFBjQ5n9n1UHv0", - "filament_id": "OFvaXhYD", + "filament_id": "OFrLiqiM", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json index 8a5765eac9..d2803e44b4 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla @HSN", "from": "system", "setting_id": "NWKMG5q4ITfHcYOD", - "filament_id": "OFKzh9lx", + "filament_id": "OFUYCqtB", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json index 52cbdd6732..6f91f0f360 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech PLA Hyper @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper @HSN", "from": "system", "setting_id": "fAw5pB53L8ZT1Fkm", - "filament_id": "OFefhSuj", + "filament_id": "OF3ydJTT", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json b/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json index 4716c5ac9b..7ba202db61 100644 --- a/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/InfiMech TPU @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu @HSN", "from": "system", "setting_id": "CvTHZpKuTaGS186F", - "filament_id": "OFmcJsqt", + "filament_id": "OFIVWJPm", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json index 5bcb620e15..7ba69d8119 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other ABS @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other @HSN", "from": "system", "setting_id": "IuZcFrVQ2rJoMDLP", - "filament_id": "OFAK2XjZ", + "filament_id": "OFYuowge", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json index 354cd3d8e3..091152a3e2 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PA-CF @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other @HSN", "from": "system", "setting_id": "4I0FW5meyC53Xf8n", - "filament_id": "OFSpTWdv", + "filament_id": "OFkAltI8", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json index daeed5e540..d0319e1a8d 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PC @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other @HSN", "from": "system", "setting_id": "vUuSuioOUXsg2P3p", - "filament_id": "OFyD1Zo8", + "filament_id": "OFyRCIMh", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json index 8aef779240..f9adba5c1e 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PETG @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other @HSN", "from": "system", "setting_id": "lWYq9XssEyY3uWEe", - "filament_id": "OFw05rkF", + "filament_id": "OFDRpXLZ", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json index 2788d2639f..1bc6c1a439 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PLA @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other @HSN", "from": "system", "setting_id": "wOExDniXvR7CcF1w", - "filament_id": "OFS3HrR1", + "filament_id": "OFGJ1nxs", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json index 26fe3ad6ff..53fa4de6e6 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other PLA Hyper @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other @HSN", "from": "system", "setting_id": "154azDg7YNNWCkNK", - "filament_id": "OFrbbq6E", + "filament_id": "OFklJcWK", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json b/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json index 83fb180e74..71c277b924 100644 --- a/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json +++ b/resources/profiles/InfiMech/filament/HSN/Other TPU @HSN.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other @HSN", "from": "system", "setting_id": "0bU2fl92vCQobYnt", - "filament_id": "OFFrbsvQ", + "filament_id": "OFwVVKEV", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json b/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json index 688f43673d..2b2223aec5 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "gtJ2ZoV8fxqqOXuv", - "filament_id": "GFB99", + "filament_id": "OFWbbuRY", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json b/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json index 74be583957..cfd3b187ce 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "k2NSIB3vVUoXGW9F", - "filament_id": "GFN98", + "filament_id": "OF6K467o", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PC.json b/resources/profiles/InfiMech/filament/InfiMech Generic PC.json index 2d2223271c..11d0153e01 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PC.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "emj9YLXtmKmeoYJa", - "filament_id": "GFC99", + "filament_id": "OF6xLvYg", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json b/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json index 4837c0eb9e..7b5f094764 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "rhXq50q3u2YxNRcE", - "filament_id": "GFG99", + "filament_id": "OFs2ReMr", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json index 0fa96a3fca..cdb8dc6563 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "BHNIPk7Nbl7hXZY1", - "filament_id": "GFL99", + "filament_id": "OFrQqCwL", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json b/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json index f942042dfd..be76c39b21 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json +++ b/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "pHS9IcwvsPCnkpaO", - "filament_id": "GFU99", + "filament_id": "OFc0xiCz", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json b/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json index f7cc33ef70..d90023a4bf 100644 --- a/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json +++ b/resources/profiles/InfiMech/filament/InfiMech PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper", "from": "system", "setting_id": "j86QMTif4fGujRbg", - "filament_id": "OFefhSuj", + "filament_id": "OF3ydJTT", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other ABS.json b/resources/profiles/InfiMech/filament/Other ABS.json index d2d4fc2a21..897962d0a1 100644 --- a/resources/profiles/InfiMech/filament/Other ABS.json +++ b/resources/profiles/InfiMech/filament/Other ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs_other", "from": "system", "setting_id": "nDLB3RZq23limiBn", - "filament_id": "OFAK2XjZ", + "filament_id": "OFYuowge", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other PA-CF.json b/resources/profiles/InfiMech/filament/Other PA-CF.json index 37a58115f9..43be7b9024 100644 --- a/resources/profiles/InfiMech/filament/Other PA-CF.json +++ b/resources/profiles/InfiMech/filament/Other PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa_other", "from": "system", "setting_id": "rgz4LjU9KyvbLhRQ", - "filament_id": "OFSpTWdv", + "filament_id": "OFkAltI8", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/InfiMech/filament/Other PC.json b/resources/profiles/InfiMech/filament/Other PC.json index 212ed3117e..be8f684ebf 100644 --- a/resources/profiles/InfiMech/filament/Other PC.json +++ b/resources/profiles/InfiMech/filament/Other PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc_other", "from": "system", "setting_id": "VXkW5oukQdBX6B6T", - "filament_id": "OFyD1Zo8", + "filament_id": "OFyRCIMh", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/InfiMech/filament/Other PETG.json b/resources/profiles/InfiMech/filament/Other PETG.json index 4d5ecee6c4..216c4a964c 100644 --- a/resources/profiles/InfiMech/filament/Other PETG.json +++ b/resources/profiles/InfiMech/filament/Other PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet_other", "from": "system", "setting_id": "onLEWi8GYK0avard", - "filament_id": "OFw05rkF", + "filament_id": "OFDRpXLZ", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/InfiMech/filament/Other PLA Hyper.json b/resources/profiles/InfiMech/filament/Other PLA Hyper.json index 44ec23e383..9ddd68581a 100644 --- a/resources/profiles/InfiMech/filament/Other PLA Hyper.json +++ b/resources/profiles/InfiMech/filament/Other PLA Hyper.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_Hyper_other", "from": "system", "setting_id": "Iop52BLp5ou8u4QG", - "filament_id": "OFrbbq6E", + "filament_id": "OFklJcWK", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other PLA.json b/resources/profiles/InfiMech/filament/Other PLA.json index 5e4a3eddd6..62c32ee9ef 100644 --- a/resources/profiles/InfiMech/filament/Other PLA.json +++ b/resources/profiles/InfiMech/filament/Other PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla_other", "from": "system", "setting_id": "2Bl4sfgGJBjNMk37", - "filament_id": "OFS3HrR1", + "filament_id": "OFGJ1nxs", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/InfiMech/filament/Other TPU.json b/resources/profiles/InfiMech/filament/Other TPU.json index 656c5a9e81..1af02b2659 100644 --- a/resources/profiles/InfiMech/filament/Other TPU.json +++ b/resources/profiles/InfiMech/filament/Other TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu_other", "from": "system", "setting_id": "nqDc2q94Q2hwMi7B", - "filament_id": "OFFrbsvQ", + "filament_id": "OFwVVKEV", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/LH/filament/LHS ABS.json b/resources/profiles/LH/filament/LHS ABS.json index 28fe82243d..2e7ee48e32 100644 --- a/resources/profiles/LH/filament/LHS ABS.json +++ b/resources/profiles/LH/filament/LHS ABS.json @@ -1,7 +1,7 @@ { "name": "LHS ABS", "type": "filament", - "filament_id": "LHF_abs", + "filament_id": "OFztQ7rO", "setting_id": "EQxNYC7BdGEA2iiD", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LH/filament/LHS ASA.json b/resources/profiles/LH/filament/LHS ASA.json index 8d8de19dfa..4cc096cb90 100644 --- a/resources/profiles/LH/filament/LHS ASA.json +++ b/resources/profiles/LH/filament/LHS ASA.json @@ -1,6 +1,6 @@ { "name": "LHS ASA", - "filament_id": "LHF_asa", + "filament_id": "OFaP2SsH", "setting_id": "hoq5bKHUb9DE1ezj", "type": "filament", "from": "system", diff --git a/resources/profiles/LH/filament/LHS PC CF.json b/resources/profiles/LH/filament/LHS PC CF.json index e565b5a9ab..54db9bf7fa 100644 --- a/resources/profiles/LH/filament/LHS PC CF.json +++ b/resources/profiles/LH/filament/LHS PC CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "FOQLD0UX6hUhJBQ0", - "filament_id": "LHF_pccf", + "filament_id": "OFu0fjPJ", "instantiation": "true", "compatible_printers": [ "LH Stinger 0.4 nozzle", diff --git a/resources/profiles/LH/filament/LHS PCTG.json b/resources/profiles/LH/filament/LHS PCTG.json index a2593c22b7..2f2a7d2fd6 100644 --- a/resources/profiles/LH/filament/LHS PCTG.json +++ b/resources/profiles/LH/filament/LHS PCTG.json @@ -1,7 +1,7 @@ { "name": "LHS PCTG", "type": "filament", - "filament_id": "LHF_pctg", + "filament_id": "OFBJAdLw", "setting_id": "dKWttiAQNwymKsIC", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LH/filament/LHS PETG.json b/resources/profiles/LH/filament/LHS PETG.json index 2c960c477c..2956267dab 100644 --- a/resources/profiles/LH/filament/LHS PETG.json +++ b/resources/profiles/LH/filament/LHS PETG.json @@ -1,7 +1,7 @@ { "name": "LHS PETG", "type": "filament", - "filament_id": "LHF_petg", + "filament_id": "OFRJ325z", "setting_id": "aZdY1M44ui7Rtj8r", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LH/filament/LHS PLA.json b/resources/profiles/LH/filament/LHS PLA.json index 285fd76c13..87ef788b7d 100644 --- a/resources/profiles/LH/filament/LHS PLA.json +++ b/resources/profiles/LH/filament/LHS PLA.json @@ -1,7 +1,7 @@ { "name": "LHS PLA", "type": "filament", - "filament_id": "LHF_pla", + "filament_id": "OFyoBZdm", "setting_id": "M8WSwqD1iQkQntpy", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LH/filament/LHS TPU Foamy 78A.json b/resources/profiles/LH/filament/LHS TPU Foamy 78A.json index 47e4c606c6..3be659400a 100644 --- a/resources/profiles/LH/filament/LHS TPU Foamy 78A.json +++ b/resources/profiles/LH/filament/LHS TPU Foamy 78A.json @@ -1,7 +1,7 @@ { "name": "LHS TPU Foamy 78A", "type": "filament", - "filament_id": "LHF_ftpuf", + "filament_id": "OFngcE81", "setting_id": "FWyg21qHmAKeihMn", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LH/filament/LHS TPU.json b/resources/profiles/LH/filament/LHS TPU.json index fc877eb084..f503425bd4 100644 --- a/resources/profiles/LH/filament/LHS TPU.json +++ b/resources/profiles/LH/filament/LHS TPU.json @@ -1,7 +1,7 @@ { "name": "LHS TPU", "type": "filament", - "filament_id": "LHF_ptpu_pl", + "filament_id": "OFIZMQwM", "setting_id": "ILgpZYIqYGH6mqdI", "from": "system", "instantiation": "true", diff --git a/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10 Plus.json b/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10 Plus.json index c27280bf49..af61062d28 100644 --- a/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10 Plus.json +++ b/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10 Plus.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "F6pgS8fPQFnN4R0n", - "filament_id": "GFLLK10PPETG", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10.json b/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10.json index 48343c508d..114c1aa3f8 100644 --- a/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10.json +++ b/resources/profiles/LONGER/filament/Generic PETG @LONGER LK10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "hWuf5kvAA5dXSd8f", - "filament_id": "GFLLK10PETG", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10 Plus.json b/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10 Plus.json index 7eccd144bd..01f5024a14 100644 --- a/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10 Plus.json +++ b/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10 Plus.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "N4pabxIYPI8KHgVp", - "filament_id": "GFLLK10PPLA", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10.json b/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10.json index fe91a5388b..9827cce1db 100644 --- a/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10.json +++ b/resources/profiles/LONGER/filament/Generic PLA @LONGER LK10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "BLf7EiZ9yayoKwJy", - "filament_id": "GFLLK10PLA", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json index c91c38c8e9..002c664cc2 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json +++ b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "XwsWBVH2xIwyRMm4", - "filament_id": "GFB99", + "filament_id": "OF6O67Xk", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json index 748d8de25b..343900a1ce 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json +++ b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "7aS9fdn94lEOU1gJ", - "filament_id": "GFG99", + "filament_id": "OF8eQjjt", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json index 23547bfafc..89e0681b45 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json +++ b/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "1pyzsOWeVPCxWlqQ", - "filament_id": "GFL99", + "filament_id": "OFPryWt5", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/MagicMaker/filament/MM Generic PEEK.json b/resources/profiles/MagicMaker/filament/MM Generic PEEK.json index 75b905476e..cfa53426f6 100644 --- a/resources/profiles/MagicMaker/filament/MM Generic PEEK.json +++ b/resources/profiles/MagicMaker/filament/MM Generic PEEK.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_peek", "from": "system", "setting_id": "iznBAOK0m6dO7SCh", - "filament_id": "GFG99", + "filament_id": "OFgSPtDn", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/OrcaArena/filament/Arena ABS @base.json b/resources/profiles/OrcaArena/filament/Arena ABS @base.json index 6b8bffc802..e2ae90f59d 100644 --- a/resources/profiles/OrcaArena/filament/Arena ABS @base.json +++ b/resources/profiles/OrcaArena/filament/Arena ABS @base.json @@ -3,7 +3,7 @@ "name": "Arena ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB00", + "filament_id": "OFJ3HRsR", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/Arena PA-CF @base.json b/resources/profiles/OrcaArena/filament/Arena PA-CF @base.json index 3cca273276..dfd447f93d 100644 --- a/resources/profiles/OrcaArena/filament/Arena PA-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Arena PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN03", + "filament_id": "OFA026vt", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/OrcaArena/filament/Arena PAHT-CF @base.json b/resources/profiles/OrcaArena/filament/Arena PAHT-CF @base.json index bd91f8f92b..e792d76bdc 100644 --- a/resources/profiles/OrcaArena/filament/Arena PAHT-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PAHT-CF @base.json @@ -3,7 +3,7 @@ "name": "Arena PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN04", + "filament_id": "OFtOPlK6", "instantiation": "false", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/OrcaArena/filament/Arena PC @base.json b/resources/profiles/OrcaArena/filament/Arena PC @base.json index 912971768d..5af0a9af69 100644 --- a/resources/profiles/OrcaArena/filament/Arena PC @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PC @base.json @@ -3,7 +3,7 @@ "name": "Arena PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC00", + "filament_id": "OFrr67nG", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PET-CF @base.json b/resources/profiles/OrcaArena/filament/Arena PET-CF @base.json index ec29afee99..a17488fff1 100644 --- a/resources/profiles/OrcaArena/filament/Arena PET-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PET-CF @base.json @@ -3,7 +3,7 @@ "name": "Arena PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFT01", + "filament_id": "OFc87pL3", "instantiation": "false", "temperature_vitrification": [ "185" diff --git a/resources/profiles/OrcaArena/filament/Arena PETG Basic @base.json b/resources/profiles/OrcaArena/filament/Arena PETG Basic @base.json index ca09ce05bd..ed01353b35 100644 --- a/resources/profiles/OrcaArena/filament/Arena PETG Basic @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PETG Basic @base.json @@ -3,7 +3,7 @@ "name": "Arena PETG Basic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG00", + "filament_id": "OFNBlAPT", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/Arena PETG-CF @base.json b/resources/profiles/OrcaArena/filament/Arena PETG-CF @base.json index 06a32d1956..b3b69c736f 100644 --- a/resources/profiles/OrcaArena/filament/Arena PETG-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Arena PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG50", + "filament_id": "OFuO0cAP", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Basic @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Basic @base.json index 15fee6343b..c42ca761e0 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Basic @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA00", + "filament_id": "OFSbGfsz", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Impact @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Impact @base.json index d049672842..04c28f1ec2 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Impact @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Impact @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Impact @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA03", + "filament_id": "OFjXrKFO", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Marble @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Marble @base.json index 95a18a2e21..58a7efc0e7 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Marble @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA07", + "filament_id": "OFuehn62", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Matte @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Matte @base.json index d90b362299..b2293d70c8 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Matte @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA01", + "filament_id": "OFgptDSf", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Metal @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Metal @base.json index 3071459e05..5e71a14838 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Metal @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA02", + "filament_id": "OFOAdMCB", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Silk @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Silk @base.json index d3929f3c24..93554f77df 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Silk @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA05", + "filament_id": "OFmfizbq", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Sparkle @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Sparkle @base.json index db96b66e28..dc823a97f5 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Sparkle @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Sparkle @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Sparkle @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA08", + "filament_id": "OFyHgT60", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA Tough @base.json b/resources/profiles/OrcaArena/filament/Arena PLA Tough @base.json index 6f2d30c051..38ae042314 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA Tough @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA Tough @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA Tough @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA09", + "filament_id": "OFtKeKa9", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena PLA-CF @base.json b/resources/profiles/OrcaArena/filament/Arena PLA-CF @base.json index c0783f0a03..c3acf67b7c 100644 --- a/resources/profiles/OrcaArena/filament/Arena PLA-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Arena PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Arena PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA50", + "filament_id": "OF2hfMcG", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena Support G @base.json b/resources/profiles/OrcaArena/filament/Arena Support G @base.json index 72a18d0edd..2ab8eb1932 100644 --- a/resources/profiles/OrcaArena/filament/Arena Support G @base.json +++ b/resources/profiles/OrcaArena/filament/Arena Support G @base.json @@ -3,7 +3,7 @@ "name": "Arena Support G @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFS01", + "filament_id": "OFIPjqHt", "instantiation": "false", "required_nozzle_HRC": [ "3" diff --git a/resources/profiles/OrcaArena/filament/Arena Support W @base.json b/resources/profiles/OrcaArena/filament/Arena Support W @base.json index d51ee9c170..fa3733d2bc 100644 --- a/resources/profiles/OrcaArena/filament/Arena Support W @base.json +++ b/resources/profiles/OrcaArena/filament/Arena Support W @base.json @@ -3,7 +3,7 @@ "name": "Arena Support W @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFS00", + "filament_id": "OFI6WZpn", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/Arena TPU 95A @base.json b/resources/profiles/OrcaArena/filament/Arena TPU 95A @base.json index 0e6dec526f..b4069147be 100644 --- a/resources/profiles/OrcaArena/filament/Arena TPU 95A @base.json +++ b/resources/profiles/OrcaArena/filament/Arena TPU 95A @base.json @@ -3,7 +3,7 @@ "name": "Arena TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU01", + "filament_id": "OFQGvU2G", "instantiation": "false", "filament_vendor": [ "Orca Arena" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json index ea3357846a..8a635421ee 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFetENFF", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json index cd0856f13f..26032a7d85 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB98", + "filament_id": "OFmzftED", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json index caf87f47e9..2621b3cf05 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "XHOpI9EFQmYoJ3Sy", - "filament_id": "GFN98", + "filament_id": "OF4xhTuK", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json index 2f4438a82b..a95e022740 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "IintLqJOecQcKmA8", - "filament_id": "GFN99", + "filament_id": "OFmnJNqY", "instantiation": "true", "required_nozzle_HRC": [ "3" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json index d3b97beca6..97bdbe2df1 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC99", + "filament_id": "OFXhZ3uY", "instantiation": "false", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json index 253c710014..a68c25c24a 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFgSEwOZ", "instantiation": "false", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json index b71f5d4536..ba3364a5c4 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG98", + "filament_id": "OFwpkvqf", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json index d7618a6f97..ade5634118 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFD6kN7F", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json index 88fca4407a..9a0dc73322 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFqSTJ3I", + "filament_id": "OFbeeFkl", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json index e3e0efe224..c73b9fc480 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL98", + "filament_id": "OFx0ZzFV", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json index 42d91f10bc..53da039f09 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json @@ -3,7 +3,7 @@ "name": "OrcaArena Generic PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "GFS99", + "filament_id": "OFdLdGgJ", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json index a1451c04fd..8593c5c779 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json +++ b/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "uPHnZUr5Sb16uKZm", - "filament_id": "GFU99", + "filament_id": "OFU5N9jI", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/OrcaArena/filament/PolyLite PLA @base.json b/resources/profiles/OrcaArena/filament/PolyLite PLA @base.json index 692492d21a..276bef31c5 100644 --- a/resources/profiles/OrcaArena/filament/PolyLite PLA @base.json +++ b/resources/profiles/OrcaArena/filament/PolyLite PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL00", + "filament_id": "OF5CgdDq", "instantiation": "false", "filament_vendor": [ "Polymaker" diff --git a/resources/profiles/OrcaArena/filament/PolyTerra PLA @base.json b/resources/profiles/OrcaArena/filament/PolyTerra PLA @base.json index c572a15b91..6e167c7248 100644 --- a/resources/profiles/OrcaArena/filament/PolyTerra PLA @base.json +++ b/resources/profiles/OrcaArena/filament/PolyTerra PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL01", + "filament_id": "OFW29a9R", "instantiation": "false", "filament_vendor": [ "Polymaker" diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json b/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json index 7f38c6044a..ce0711b7e9 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json +++ b/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ICnZH4LkPD7c6Lmm", - "filament_id": "GFSL99", + "filament_id": "OFqOk9Ww", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json b/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json index add7c8e295..2d0b34240a 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json +++ b/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_petg", "from": "system", "setting_id": "7LVGx2lNqhBDdYiJ", - "filament_id": "GFPETG-1", + "filament_id": "OFIeCuXj", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json b/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json index 100057e25b..3a24fb3bc7 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json +++ b/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json @@ -5,7 +5,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "KNsVV4dvEWAAkzDE", - "filament_id": "GFL99", + "filament_id": "OFRDLNM9", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json b/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json index b6da7244c7..fe53fb4651 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer ABS-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ufcIVt3x0FqV69h4", - "filament_id": "OFqkcvDI", + "filament_id": "OFj64R5U", "instantiation": "true", "filament_flow_ratio": [ "0.91" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json index 1877ed8e3d..1629995edb 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "xSaZKOpjStJuKiM7", - "filament_id": "OFlzQ0IS", + "filament_id": "OFPYDWgC", "instantiation": "true", "filament_flow_ratio": [ "0.90" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json index 34e8f586a4..483e7163ca 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PETG-C.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_petg", "from": "system", "setting_id": "aUX6OHQrKPghlPBb", - "filament_id": "OFV1szQh", + "filament_id": "OFpPJSHE", "instantiation": "true", "fan_cooling_layer_time": [ "20" diff --git a/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json b/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json index d9d1acd1d5..a4bd236a62 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json +++ b/resources/profiles/Peopoly/filament/Peopoly Lancer PLA-C.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "EFHW4uKJCsBCjAEU", - "filament_id": "OF9tjFbj", + "filament_id": "OFEnbt6D", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json b/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json index 6453756f9e..8ca51614b6 100644 --- a/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json +++ b/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Cc3ULDFzvoHwh8bV", - "filament_id": "GFL99", + "filament_id": "OF6VgL2U", "instantiation": "true", "filament_settings_id": [ "Phrozen PLA @Phrozen Arco 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json index 0f666ab11b..ade8efad81 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "AADElwBWs9fzeAKC", - "filament_id": "Prusa Generic ABS @CORE One 0.6", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json index 6c046f232f..c6c30a2c6b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "QLaQiU2tF5ZFTVjP", - "filament_id": "Prusa Generic ABS @CORE One 0.8", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json index f3c61471ed..84d2ed8ea6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "Sp0sbcvt0EqZ59NT", - "filament_id": "Prusa Generic ABS @CORE One HF 0.4", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json index b6892f7630..568f8468e5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "U1ih5tnkViqI3vya", - "filament_id": "Prusa Generic ABS @CORE One HF 0.5", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json index 1354767857..debed7aed6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "MuqHvIoTlM1Pbs8j", - "filament_id": "Prusa Generic ABS @CORE One HF 0.6", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json index 513171ea52..66655ce8e8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @CORE One", "from": "system", "setting_id": "Wbpc2Ddzc3zPnQVr", - "filament_id": "Prusa Generic ABS @CORE One HF 0.8", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json index a5a1f6cce1..784eb0ef4d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "NajoyXhNAiyJyaRq", - "filament_id": "Prusa Generic ABS @CORE One", + "filament_id": "OFvGc67v", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json index e141e4925d..aacddbfd2d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "bQgom9OdLzHf862f", - "filament_id": "GFB99_5", + "filament_id": "OFvGc67v", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json index 9108be7bd0..1b45ec65e7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "juio4SnE9x7bcYdO", - "filament_id": "GFB99_3", + "filament_id": "OFvGc67v", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json index 67c49bfe9a..dfc5fbc984 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "dRt2nKkJ0saWba5s", - "filament_id": "GFB99_4", + "filament_id": "OFvGc67v", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json index c966113193..d0cc74cc63 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "etTLu2Uk95XriBxT", - "filament_id": "GFB99_2", + "filament_id": "OFvGc67v", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json index fb9f1a07e7..dd33eedfa7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S", "from": "system", "setting_id": "VVzzIN41B5ADTIeQ", - "filament_id": "Generic ABS @MK4S 0.6", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json index 856f2cfe6b..66b27bd6c3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S", "from": "system", "setting_id": "4705fRqWWP2GZOK8", - "filament_id": "Generic ABS @MK4S 0.8", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json index 8faf91c1df..ecd8ec0872 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S", "from": "system", "setting_id": "8iqhyZkLiVCvZYLa", - "filament_id": "Generic ABS @MK4S HF0.4", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json index 27f7e69c16..74f774bd11 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S HF0.4", "from": "system", "setting_id": "bf8ANklVcC0xW1rT", - "filament_id": "Generic ABS @MK4S HF0.5", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json index dd6439a0e4..3c461880c7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S HF0.4", "from": "system", "setting_id": "ZB9vO7AnRqMDCrOy", - "filament_id": "Generic ABS @MK4S HF0.6", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json index 3b359aa2fd..4d2d4631d5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ABS @MK4S HF0.4", "from": "system", "setting_id": "7cx9gZh2vUCR0ELG", - "filament_id": "Generic ABS @MK4S HF0.8", + "filament_id": "OFvGc67v", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json index 6880c7850d..37762490e5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "mDDX6Hdt6Ee00Iqb", - "filament_id": "Generic ABS @MK4S", + "filament_id": "OFvGc67v", "instantiation": "true", "close_fan_the_first_x_layers": "4", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json index ffa4525a5a..c64feecc6d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFvGc67v", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json index 1622abdbf8..10b456d822 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "IF0vGesJrPxKZhhP", - "filament_id": "GFB99_6", + "filament_id": "OFyeSq8A", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json index bb6fc8b41e..abd3a2fc9e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "Bl3iXBs56hdXM9SE", - "filament_id": "GFB99_7", + "filament_id": "OFyeSq8A", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json index b6a08a7c20..02c86e018b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "0luFxwjErjX80SXh", - "filament_id": "GFB99_5", + "filament_id": "OFyeSq8A", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json index 228807da84..a1745176f2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic ABS HF @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OFCgpxn2", + "filament_id": "OFyeSq8A", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json index 5e47c117c6..ce22974fd1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "GB4mI21wSfo3jfnQ", - "filament_id": "Prusa Generic ASA @CORE One 0.6", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json index 74cf13fd6a..c112241e63 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "jwPZBZ4B116kCVu9", - "filament_id": "Prusa Generic ASA @CORE One 0.8", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json index 8fdca4347e..04bf35f2e7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "3SHxmODIq9SCK4Kd", - "filament_id": "Prusa Generic ASA @CORE One HF 0.4", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json index 5f8eaeca43..dfe8fec3fe 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "RBSMuMnrcTyregVJ", - "filament_id": "Prusa Generic ASA @CORE One HF 0.5", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json index 39b37c3ed8..f74efb4310 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "5ezNirZa3m7Oi1Ts", - "filament_id": "Prusa Generic ASA @CORE One HF 0.6", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json index 782ea4ce94..8d6bb1a685 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @CORE One", "from": "system", "setting_id": "EtHBkeDF0LvudfBi", - "filament_id": "Prusa Generic ASA @CORE One HF 0.8", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json index c2c39822d7..e00a4d7ca8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "Pg9KDqFB63PFJo3Q", - "filament_id": "Prusa Generic ASA @CORE One", + "filament_id": "OFoJcr46", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json index 213f887ea8..088221b03a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "oLhpDGV7BIMFqZZq", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json index f94c769d78..d11f2f2dd6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "CN91PnsqqI5CTRhd", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json index 0ba51d264d..2eae500425 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "Mg0Sh8QULakXYt0m", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json index 10aaaf1503..2d969f15be 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "StIz1ZclM5WV6MCC", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json index ca315a91c4..5888bf67d4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "EVFkOOWqYWkUZRQG", - "filament_id": "GFB98_5", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json index f578c5e72a..b467748041 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "LW2yi7y86rJ59LMi", - "filament_id": "GFB98_3", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json index 20625fbc8d..7330692d37 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "5iwLdW6pq5Y4Aziw", - "filament_id": "GFB98_4", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json index b7825b00e3..4f1717860a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "UaLDui75hljyKAkI", - "filament_id": "GFB98_2", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json index 10905e3a24..f3d8a91378 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "ubNQKQ8Ex6khEWaI", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json index 430313b6e5..cb1eb8f267 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S", "from": "system", "setting_id": "j5YvdepMw4z29kzr", - "filament_id": "Prusament ASA @MK4S 0.6", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json index 5853f7bc3f..cbacb6e747 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S", "from": "system", "setting_id": "FtVjP8q0MzM0vr2J", - "filament_id": "Prusament ASA @MK4S 0.8", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json index 8055c5926b..a9a784f496 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S", "from": "system", "setting_id": "na3FnleO5uhDF7Yr", - "filament_id": "Prusament ASA @MK4S HF0.4", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json index 6bf46c7fdc..47055f18aa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S HF0.4", "from": "system", "setting_id": "meEXtenGq7N4dWf3", - "filament_id": "Prusament ASA @MK4S HF0.5", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json index bd0250e1e9..414315ad65 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S HF0.4", "from": "system", "setting_id": "o0UhIK80Y28KX3AK", - "filament_id": "Prusament ASA @MK4S HF0.6", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json index 3c06463b06..f0b377c8d1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic ASA @MK4S HF0.4", "from": "system", "setting_id": "VDDgOXq5iphlyQ5U", - "filament_id": "Prusament ASA @MK4S HF0.8", + "filament_id": "OFoJcr46", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json index dfc2270174..75c3dcc399 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "5BZ0OsiwFPYGCcBg", - "filament_id": "Prusament ASA @MK4S", + "filament_id": "OFoJcr46", "instantiation": "true", "close_fan_the_first_x_layers": "4", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json index a2288b5602..3a6e047baa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "TwgQePxtpUic69Yw", - "filament_id": "GFB98_6", + "filament_id": "OFK4LdYI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json index 719e8c0d7a..9d2bce435d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "TC1QAhU8v7mruXHK", - "filament_id": "GFB98_7", + "filament_id": "OFK4LdYI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json index c514c44cef..f0d0395d78 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "1s3xgWuvTP6UvMG7", - "filament_id": "GFB98_5", + "filament_id": "OFK4LdYI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json index 000196a2a1..6dc6096675 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic ASA HF @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OFkeeluv", + "filament_id": "OFK4LdYI", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA.json b/resources/profiles/Prusa/filament/Prusa Generic ASA.json index 85f1d08da6..3bc0c0fd69 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA.json +++ b/resources/profiles/Prusa/filament/Prusa Generic ASA.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "i5Zm7qbFAtsgG4mF", + "filament_id": "OFoJcr46", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json b/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json index 467a0e7aad..dcf3793661 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_flex", "from": "system", "setting_id": "PaXKTb31IFVovWiK", + "filament_id": "OFl2SXmv", "instantiation": "true", "filament_loading_speed_start": "3", "filament_loading_speed": "28", diff --git a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json b/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json index c6fd096196..7231531ee2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json +++ b/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json @@ -4,6 +4,7 @@ "inherits": "fdm_filament_flex", "from": "system", "setting_id": "b5AA45MlL14moY71", + "filament_id": "OFl2SXmv", "instantiation": "true", "filament_loading_speed_start": "3", "filament_loading_speed": "28", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json index a7f7c13c96..1a2065a58d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "4LeqziiUcsZFvsqn", - "filament_id": "GFN99_4", + "filament_id": "OFIy3kLw", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json index 4a0860931c..8e67d973c4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "FoUTZTxQNZRSUZqi", - "filament_id": "GFN99_2", + "filament_id": "OFIy3kLw", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json index ef6a9174fb..8a026c1c90 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "7Qe2dHRqSOhsuoPn", - "filament_id": "GFN99_3", + "filament_id": "OFIy3kLw", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json index db9b97feff..cdea8133e3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "HIOtwj2ImWrlXkld", - "filament_id": "GFN99_1", + "filament_id": "OFIy3kLw", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PA @base.json index 42e8d47bbd..08528488af 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PA @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN99", + "filament_id": "OFIy3kLw", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json index db39929ab4..16fd70bc82 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "BjLde5wICEYFSlu1", - "filament_id": "GFN98_4", + "filament_id": "OFfznI0Q", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json index 0607f4afe2..193dcfe35c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "XgIsgzltjlTU8ixC", - "filament_id": "GFN98_2", + "filament_id": "OFfznI0Q", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json index 3d04097b7d..9cbde53ee4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "b2fjpGuYwbeo7O9K", - "filament_id": "GFN98_3", + "filament_id": "OFfznI0Q", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json index bf54572e72..b13ab2ddb0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ko8pHTrnZTzz6LyX", - "filament_id": "GFN98_1", + "filament_id": "OFfznI0Q", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json index 350ab54889..28733da65c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Prusa Generic PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OFXfgh61", + "filament_id": "OFfznI0Q", "instantiation": "false", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json index cf1046b78b..8dfcd4ac73 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "365PSnHIwQoBabi7", - "filament_id": "GFC99_4", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json index 5641ffefea..b9ac2b8114 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "zullllDHKByF2PMu", - "filament_id": "GFC99_2", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json index 2118c4dc43..7edc6d5a05 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "TTIxalWBM5b6YTJ0", - "filament_id": "GFC99_3", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json index 06d150cddc..d63eaee60b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "2h9EbPiUgE3BIHVb", - "filament_id": "GFC99_1", + "filament_id": "OF97ru74", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json index abcfde31e4..4b5d973cdd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "MAtF0WCx6uLte1Bq", - "filament_id": "GFC99_5", + "filament_id": "OFq5QANf", "instantiation": "true", "filament_max_volumetric_speed": [ "30" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json index d10c44bebe..b7729e451f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "Om8P3dn8wY6CbdQg", - "filament_id": "GFC99_6", + "filament_id": "OFq5QANf", "instantiation": "true", "filament_max_volumetric_speed": [ "36" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json index 6e6c9f3747..7fdec94c49 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "uGi7QoODY99zHuCt", - "filament_id": "GFC99_4", + "filament_id": "OFq5QANf", "instantiation": "true", "filament_max_volumetric_speed": [ "24" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json index ece79b1919..ffce8990b7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PC HF @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OFQ9dI8j", + "filament_id": "OFq5QANf", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json index 6e1ac6e621..e776e17543 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "plb6gY1isTp10Unr", - "filament_id": "Prusa Generic PETG @CORE One 0.6", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json index 7d19ded509..a0b3bc4299 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "WISyN9WbqoZW5bBy", - "filament_id": "Prusa Generic PETG @CORE One 0.8", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json index cb0eb3fb5b..d3354152df 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "hMxEpxx9ERuIq28Z", - "filament_id": "Prusa Generic PETG @CORE One HF 0.4", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json index 53e681186f..69c4158297 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "HtW04UsVx5VpeLc9", - "filament_id": "Prusa Generic PETG @CORE One HF 0.5", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json index a6a2b9fc55..c50d2b1cd0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "29TFTfss7xVear5j", - "filament_id": "Prusa Generic PETG @CORE One HF 0.6", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json index 05b926349b..91d6a29a9a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @CORE One", "from": "system", "setting_id": "N91ct2U3Y3jOat0g", - "filament_id": "Prusa Generic PETG @CORE One HF 0.8", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json index 3e914c0ab9..fa5a8d2cd8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "VbFWb2QCAMxcrTAW", - "filament_id": "Prusa Generic PETG @CORE One", + "filament_id": "OF1Id239", "instantiation": "true", "chamber_temperature": [ "35" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json index eccfa418a9..940f308232 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "g5YTLp0ZhzbpCD2h", - "filament_id": "GFG99_5", + "filament_id": "OF1Id239", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json index beacc12d5f..f049544d2f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "6FATkctkE3RaWnWQ", - "filament_id": "GFG99_3", + "filament_id": "OF1Id239", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json index b543c2ffcf..ba45f70c00 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "ITT0YpAms3lzeSBk", - "filament_id": "GFG99_4", + "filament_id": "OF1Id239", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json index e52a1b8628..e456955aae 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "71gokqKp7e6fhhf4", - "filament_id": "GFG99_2", + "filament_id": "OF1Id239", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json index 88d4bb1a2f..9b59b93ccf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S", "from": "system", "setting_id": "Pci5FyYkl7E87APR", - "filament_id": "Generic PETG @MK4S 0.6", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json index 358eac5276..8024185152 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S", "from": "system", "setting_id": "gBfDSTXrnY1HRyw7", - "filament_id": "Generic PETG @MK4S 0.8", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json index efbf8db0c7..4267889359 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S", "from": "system", "setting_id": "4pbIJVV1D2h5O3WZ", - "filament_id": "Generic PETG @MK4S HF0.4", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json index 3225bdfb2c..6129d321b2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S HF0.4", "from": "system", "setting_id": "vO26JgugJEsX5z6a", - "filament_id": "Generic PETG @MK4S HF0.5", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json index 56e0d1b40d..83a96f3a40 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S HF0.4", "from": "system", "setting_id": "tv7OUJ7pSPHTkE89", - "filament_id": "Generic PETG @MK4S HF0.6", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json index 21b47aca86..85c388ab7d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PETG @MK4S HF0.4", "from": "system", "setting_id": "wHfH0a2TgTYr9rWF", - "filament_id": "Generic PETG @MK4S HF0.8", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json index b807315eff..ff70f3d63e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "IGfvc0jGdG6evRj8", - "filament_id": "Generic PETG @MK4S", + "filament_id": "OF1Id239", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json index 7cc123d8fd..5ed73792e2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFT02", + "filament_id": "OF1Id239", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json index 7459bccd56..63f9742402 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "Hw54qxSSdBrcOr4r", - "filament_id": "GFG99_6", + "filament_id": "OFOKYhi6", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json index 36582d0481..e3401a666b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "txhzOPQmzVqkcdnP", - "filament_id": "GFG99_7", + "filament_id": "OFOKYhi6", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json index 6cd401b6c6..1f63b82d0b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "OjIQqC3uJdpcLqlG", - "filament_id": "GFG99_5", + "filament_id": "OFOKYhi6", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json index b9c02872b2..002c80fe6d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFphFSUJ", + "filament_id": "OFOKYhi6", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json index dbf1862382..a205ac7e71 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "8kSIJx0dpaelcAos", - "filament_id": "Prusa Generic PLA @CORE One 0.6", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json index a10f1da37a..c710474420 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "qlG6J2sXs80HpkCl", - "filament_id": "Prusa Generic PLA @CORE One 0.8", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json index 19b8d0c4df..5a38ba93f3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "KzpBU6cAAqm7z0Sg", - "filament_id": "Prusa Generic PLA @CORE One HF 0.4", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json index 786bf2adab..1935f27062 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "2G99enCGyOVjrOlt", - "filament_id": "Prusa Generic PLA @CORE One HF 0.5", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json index e325a17ac0..b47613e7d1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "iNQhrPrIj4GphWxI", - "filament_id": "Prusa Generic PLA @CORE One HF 0.6", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json index cb895cd542..a3b5df42d8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @CORE One", "from": "system", "setting_id": "YIm5w8btcXZqnNFB", - "filament_id": "Prusa Generic PLA @CORE One HF 0.8", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json index faaa585e91..1f65998039 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "NDBqFGNNvKxlmo3V", - "filament_id": "Prusa Generic PLA @CORE One", + "filament_id": "OFiCHnso", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json index ade1148e1d..ab3b9413ae 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "mQtIWbOJ2a4TMYxU", - "filament_id": "GFL99_5", + "filament_id": "OFiCHnso", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json index 6b4a104bd0..9d239a47fd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "lSbYoT83cp2tQjk3", - "filament_id": "GFL99_3", + "filament_id": "OFiCHnso", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json index 13853813fb..e77aa1edf0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "kZuzkEvYEluqlAfM", - "filament_id": "GFL99_4", + "filament_id": "OFiCHnso", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json index c1d96ae9ed..d211b1fed2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "ojwcK3bKU2Jyosws", - "filament_id": "GFL99_2", + "filament_id": "OFiCHnso", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json index b8cffb4b74..d6915f476d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S", "from": "system", "setting_id": "6pZohvVY1eUGi2k8", - "filament_id": "Generic PLA @MK4S 0.6", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json index d7bf8889ea..07b15552df 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S", "from": "system", "setting_id": "8z66T4ABcY8PLJMB", - "filament_id": "Generic PLA @MK4S 0.8", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json index d9485b0a57..39f7d1b020 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S", "from": "system", "setting_id": "LV8qQ1t2CmhHaRSA", - "filament_id": "Generic PLA @MK4S HF0.4", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json index 7cc2615b2b..97235be213 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S HF0.4", "from": "system", "setting_id": "WH3bJGQGSliMx6ta", - "filament_id": "Generic PLA @MK4S HF0.5", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json index a5f5e8b490..a90a033338 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S HF0.4", "from": "system", "setting_id": "du6Gy8TCxk5z7hPx", - "filament_id": "Generic PLA @MK4S HF0.6", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json index f145d7c0d2..4d381eab0a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S HF0.4", "from": "system", "setting_id": "aLcAkl8Zt2D5lOTp", - "filament_id": "Generic PLA @MK4S HF0.8", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json index e0c8ceedd4..9d35c362fa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "CqlMmArE8Llbji7t", - "filament_id": "Generic PLA @MK4S", + "filament_id": "OFiCHnso", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json index be5218517e..4aaa66dd9e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFiCHnso", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json index fe7364310d..a75d98c47f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "IHOsyOhMvOcpHGtG", - "filament_id": "GFL99_6", + "filament_id": "OFl4ItvQ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json index 26f2f013e7..c7f2c480be 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "GYne0LPI8ooQJe08", - "filament_id": "GFL99_7", + "filament_id": "OFl4ItvQ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json index 6d89453bd8..c1366194ec 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Bq51JVrGGEktAqIh", - "filament_id": "GFL99_5", + "filament_id": "OFl4ItvQ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json index 4cff82d6a5..fffecfd0e1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PLA HF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFicxmSa", + "filament_id": "OFl4ItvQ", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json index 7ec1605d58..b974aa2fec 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA Silk @CORE One", "from": "system", "setting_id": "QUaunbCOoBxA8fyJ", - "filament_id": "Prusa Generic PLA Silk @CORE One 0.6", + "filament_id": "OFHFZ1Te", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json index fdce38720a..e877f0f0b4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA Silk @CORE One", "from": "system", "setting_id": "y2IZMYPduRS1mEFL", - "filament_id": "Prusa Generic PLA Silk @CORE One 0.8", + "filament_id": "OFHFZ1Te", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json index 3cdf40ad50..1d39e71aaa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "CYztrVFVOPD3RHJx", - "filament_id": "Prusa Generic PLA Silk @CORE One", + "filament_id": "OFHFZ1Te", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json index a6597f5edf..506f82f3ea 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA Silk @MK4S", "from": "system", "setting_id": "e1pUu3Y5pDr7LzNu", - "filament_id": "Generic PLA Silk @MK4S 0.6", + "filament_id": "OFHFZ1Te", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json index f9e7154bdf..6c57e0486e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA Silk @MK4S", "from": "system", "setting_id": "Yw5uZEeqmR9elIn6", - "filament_id": "Generic PLA Silk @MK4S 0.8", + "filament_id": "OFHFZ1Te", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json index 248fec014e..d5217d07f3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic PLA @MK4S", "from": "system", "setting_id": "ngtF8hwv8cSubcR1", - "filament_id": "Generic PLA Silk @MK4S", + "filament_id": "OFHFZ1Te", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json index 632de6b430..5a660705a7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Pi3x8Wj5sdB7TDDK", - "filament_id": "GFL98_5", + "filament_id": "OFQ7I5vC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json index ec4bb6ee6a..1b9b06f8f9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "vtxoJOj2lc1qxV3H", - "filament_id": "GFL98_3", + "filament_id": "OFQ7I5vC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json index eb7f730ef5..5f0619c66c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "9gYj4jTP6y4UmR9s", - "filament_id": "GFL98_4", + "filament_id": "OFQ7I5vC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json index df82e01d98..9f8546a1ae 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "yQASt4Ej55vgeZAN", - "filament_id": "GFL98_1", + "filament_id": "OFQ7I5vC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json index c899728e68..98cb90bcac 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Prusa Generic PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFv8SRZh", + "filament_id": "OFQ7I5vC", "instantiation": "false", "filament_type": [ "PLA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json index 440310acd7..b0febd6c30 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "ciRHVEjYNqjT5EsD", - "filament_id": "GFS99_4", + "filament_id": "OFcCzEkS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json index 7f54ae1a7a..e6956d6b8f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "G8TFM51vPvMbGSbX", - "filament_id": "GFS99_2", + "filament_id": "OFcCzEkS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json index 1b6798fd1a..af962c0fec 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "hueUgJutZ71scT6F", - "filament_id": "GFS99_3", + "filament_id": "OFcCzEkS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json index 9ac04757e7..aee4bf78bc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "yaPlNuxryIpkxiOe", - "filament_id": "GFS99_1", + "filament_id": "OFcCzEkS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json b/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json index dc77145268..3da3125629 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "GFS99", + "filament_id": "OFcCzEkS", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json index bcd14e6b66..6c1843c3ba 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "NfhvtCbeYlQ3el2O", - "filament_id": "GFS99_5", + "filament_id": "OFoT8F7Y", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json index 8495914c13..9271b3051d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "J5PBEm3LvfpztfXU", - "filament_id": "GFS99_6", + "filament_id": "OFoT8F7Y", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json index 97b2d1ff89..36d34b4946 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "X2k0n055aaG1zc0u", - "filament_id": "GFS99_4", + "filament_id": "OFoT8F7Y", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json index 8d05e93111..8a768f844a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic PVA HF @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OFxLeRyT", + "filament_id": "OFoT8F7Y", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json index fff78aec9f..896518c23c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic TPU @CORE One", "from": "system", "setting_id": "OulnL3bWrEpRJbgJ", - "filament_id": "Prusa Generic TPU @CORE One 0.6", + "filament_id": "OFbenYUK", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json index 4ba3f08222..8b270846d0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic TPU @CORE One", "from": "system", "setting_id": "9fAhdX2hOAnUDn1I", - "filament_id": "Prusa Generic TPU @CORE One 0.8", + "filament_id": "OFbenYUK", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json index 71fe4f21c5..9b212dd17a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_flex", "from": "system", "setting_id": "VR2WfERGWPIWTRha", - "filament_id": "Prusa Generic TPU @CORE One", + "filament_id": "OFbenYUK", "instantiation": "true", "chamber_temperature": [ "30" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json index c0e8ca4577..b3b017de67 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "wfxLtrIAOgG7TKib", - "filament_id": "GFU99_2", + "filament_id": "OFbenYUK", "instantiation": "true", "filament_max_volumetric_speed": [ "1.8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json index 89b8a94856..2c0e48d6a5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic TPU @MK4S", "from": "system", "setting_id": "3zJSkjnxFgeAbkhY", - "filament_id": "Generic FLEX @MK4S 0.6", + "filament_id": "OFbenYUK", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json index 0230b22bea..e78a2768d0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusa Generic TPU @MK4S", "from": "system", "setting_id": "tRRHfIUwFo1C8Q3B", - "filament_id": "Generic FLEX @MK4S 0.8", + "filament_id": "OFbenYUK", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json index a7b5d1fcf6..7f0ac852ee 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "JxNaZsG7Y2rQKATV", - "filament_id": "Generic FLEX @MK4S", + "filament_id": "OFbenYUK", "instantiation": "true", "close_fan_the_first_x_layers": "3", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json index a86c7a2b91..c0c1bccbb3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU99", + "filament_id": "OFbenYUK", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json index 611c693da1..b2ac07402c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "Gfuy9ZSCpJw3Usa6", - "filament_id": "GFU99_3", + "filament_id": "OFU3zwPc", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json index 0a41e94893..e08a83c0e6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json +++ b/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json @@ -3,6 +3,6 @@ "name": "Prusa Generic TPU HF @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OFbK5wve", + "filament_id": "OFU3zwPc", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.6.json index b3fe97133a..40bb6ee291 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "XlSISsmFlPbj3BOn", - "filament_id": "Prusament ASA @CORE One 0.6", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.8.json index 330f3a7643..71c47268ba 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "89B204vxbuUqB3Os", - "filament_id": "Prusament ASA @CORE One 0.8", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.4.json index ace3c0cb55..e7977e0c94 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "tXktQXr79am1s5UL", - "filament_id": "Prusament ASA @CORE One HF 0.4", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.5.json index 365a4f56a7..26e053cd79 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "YbyojtjXvEtI4Tt3", - "filament_id": "Prusament ASA @CORE One HF 0.5", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.6.json index 9f79b6842a..5bde9d8869 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "35H9TLr1p2Jy767g", - "filament_id": "Prusament ASA @CORE One HF 0.6", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.8.json index b006ea74c1..ba5273d125 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament ASA @CORE One", "from": "system", "setting_id": "efgN1KmROfVKa86P", - "filament_id": "Prusament ASA @CORE One HF 0.8", + "filament_id": "OFmFwUWM", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json index 1ca5222859..b1f2dace26 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "UUTjJ4Y8St3c87jD", - "filament_id": "Prusament ASA @CORE One", + "filament_id": "OFmFwUWM", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json index 87d14f9e8f..fdb63e2e68 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "IQu91UAWOJOQcUq9", + "filament_id": "OFmFwUWM", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "260", "nozzle_temperature": "260", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament ASA @XL.json b/resources/profiles/Prusa/filament/Prusament ASA @XL.json index 9f3df999d4..c07021a9c3 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @XL.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "RaEoFoZdXkkOz9yh", + "filament_id": "OFmFwUWM", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "260", "nozzle_temperature": "260", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json index 8698746393..cbbd006468 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PA-CF @CORE One", "from": "system", "setting_id": "sEDEmqR4k65IhJ4D", - "filament_id": "Prusament PA-CF @CORE One 0.6", + "filament_id": "OF54SvEe", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json index c22f07ddb4..434c534282 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PA-CF @CORE One", "from": "system", "setting_id": "gwFsNIMKGU1f2vPS", - "filament_id": "Prusament PA-CF @CORE One 0.8", + "filament_id": "OF54SvEe", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json index c1c87b7041..33382b1974 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "08PdV2lMsSv1JeOt", - "filament_id": "Prusament PA-CF @CORE One", + "filament_id": "OF54SvEe", "instantiation": "true", "chamber_temperature": [ "40" @@ -60,7 +60,7 @@ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" ], "filament_type": [ - "PA" + "PA11-CF" ], "filament_vendor": [ "Prusa Polymers" diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json index d287e59aa4..af306fd2a7 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pa11cf", "from": "system", "setting_id": "FYerOcjToJ3ABpu1", + "filament_id": "OF54SvEe", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "275", "nozzle_temperature": "285", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json index 6735c31b8a..f843be92a0 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pa11cf", "from": "system", "setting_id": "IrL4iU2kkMBHIw3e", + "filament_id": "OF54SvEe", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "275", "nozzle_temperature": "285", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.6.json index c31c409a16..5aafb38b43 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "0ytT0Ro3sAjvUPN2", - "filament_id": "Prusament PC Blend @CORE One 0.6", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.8.json index b27cac24c3..a3826bf7cc 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "WrAImqAV7odcGf8Y", - "filament_id": "Prusament PC Blend @CORE One 0.8", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.4.json index e9431a4a94..4e5b5643bd 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "pEsP537TBR5kozQB", - "filament_id": "Prusament PC Blend @CORE One HF 0.4", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.5.json index 824d9468ea..ab9a127df8 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "3IfLi1ZVCKKbEBUW", - "filament_id": "Prusament PC Blend @CORE One HF 0.5", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.6.json index 707aff7532..642f421819 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "Q8qWw2G7l2UvxGut", - "filament_id": "Prusament PC Blend @CORE One HF 0.6", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.8.json index f75f439c4a..f66f2521c5 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC Blend @CORE One", "from": "system", "setting_id": "LDvckXo1zpccnT4g", - "filament_id": "Prusament PC Blend @CORE One HF 0.8", + "filament_id": "OFvDbkFq", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json index 0fe031c276..34ecd1d759 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "x1SkWhSSkVVIPwCF", - "filament_id": "Prusament PC Blend @CORE One", + "filament_id": "OFvDbkFq", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json index e12bc8db2b..f4722bb89a 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC-CF @CORE One", "from": "system", "setting_id": "DYPBEKeKBdTenG3S", - "filament_id": "Prusament PC-CF @CORE One 0.6", + "filament_id": "OFjz0a3m", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json index 90bbaf4217..2abf3ab8d7 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PC-CF @CORE One", "from": "system", "setting_id": "0J8ZuIRTB6EgSke8", - "filament_id": "Prusament PC-CF @CORE One 0.8", + "filament_id": "OFjz0a3m", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json index 2d860fe307..0d5622b7ab 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "IK6Z7DVevvmR96Or", - "filament_id": "Prusament PC-CF @CORE One", + "filament_id": "OFjz0a3m", "instantiation": "true", "chamber_temperature": [ "40" @@ -60,7 +60,7 @@ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" ], "filament_type": [ - "PC" + "PC-CF" ], "filament_vendor": [ "Prusa Polymers" diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json index 482a0403df..0c6d1a3cdb 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pccf", "from": "system", "setting_id": "m1YND6uz3GWeVIBG", + "filament_id": "OFjz0a3m", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "285", "nozzle_temperature": "285", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json index 7081cd9523..572b970d02 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pccf", "from": "system", "setting_id": "Eq5x2CcEUUAZ5aof", + "filament_id": "OFjz0a3m", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "285", "nozzle_temperature": "285", "hot_plate_temp_initial_layer": "100", diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.6.json index 83ef41e09e..974cf5b0cc 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "JVKHdd0UyFqnVj9g", - "filament_id": "Prusament PETG @CORE One 0.6", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.8.json index eb6cb9a8fa..c1f2e23890 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "0OCfuaF4u8wo5D20", - "filament_id": "Prusament PETG @CORE One 0.8", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.4.json index f2f309b90c..f34dcd29a7 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "lwT1VxW5OkY36kUX", - "filament_id": "Prusament PETG @CORE One HF 0.4", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.5.json index 08ed962fe6..71001294fa 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "XAgW7fElXxhaKaBT", - "filament_id": "Prusament PETG @CORE One HF 0.5", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.6.json index cc1fe65500..cea5ef7809 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "6aTGEZj2EmpTR1mu", - "filament_id": "Prusament PETG @CORE One HF 0.6", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.8.json index 0f2078b5b4..ec16eb9ef2 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PETG @CORE One", "from": "system", "setting_id": "EmrFLgk6ZkTHAvN8", - "filament_id": "Prusament PETG @CORE One HF 0.8", + "filament_id": "OFkR8E2c", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json index 1a03663b6d..00f78be204 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "LSvba9ds3XTwDMCG", - "filament_id": "Prusament PETG @CORE One", + "filament_id": "OFkR8E2c", "instantiation": "true", "chamber_temperature": [ "35" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @base.json b/resources/profiles/Prusa/filament/Prusament PETG @base.json index 9077aad91c..a2d5de2e53 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @base.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @base.json @@ -3,7 +3,7 @@ "name": "Prusament PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFpHq9gJ", + "filament_id": "OFkR8E2c", "instantiation": "false", "filament_vendor": [ "Prusa Polymers" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.6.json index 647940d644..b699ba216f 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "jGHl1i9Y1oJsLQY8", - "filament_id": "Prusament PLA @CORE One 0.6", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.8.json index 3af2846aa0..b1a3109180 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "ijkbGowmIm8uUYsf", - "filament_id": "Prusament PLA @CORE One 0.8", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.4.json index a44a2fd1c4..8c1d806d98 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "mf4Muog4IcsgkYoA", - "filament_id": "Prusament PLA @CORE One HF 0.4", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.5.json index ab7f5b3a37..b91fd4aae0 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "zJf1Y6eP81j3v8VV", - "filament_id": "Prusament PLA @CORE One HF 0.5", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.6.json index 7c94b57456..200666edcf 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "UAvqLPGHYOT1B2lC", - "filament_id": "Prusament PLA @CORE One HF 0.6", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.8.json index 3ba0a21670..84d55886d6 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One HF 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PLA @CORE One", "from": "system", "setting_id": "0N17rx4NFmuHYLQl", - "filament_id": "Prusament PLA @CORE One HF 0.8", + "filament_id": "OFnO4wnf", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json index 78b1f80425..ddf62b89ac 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "PuujUMjNKLZvZNAH", - "filament_id": "Prusament PLA @CORE One", + "filament_id": "OFnO4wnf", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @base.json b/resources/profiles/Prusa/filament/Prusament PLA @base.json index acba999339..fad8c00435 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @base.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @base.json @@ -3,7 +3,7 @@ "name": "Prusament PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFkoT6jl", + "filament_id": "OFnO4wnf", "instantiation": "false", "filament_vendor": [ "Prusa Polymers" diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.6.json index 8c979342b3..6516085280 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament PVB @CORE One", "from": "system", "setting_id": "GnslGWS97HuaWX76", - "filament_id": "Prusament PVB @CORE One 0.6", + "filament_id": "OFh7mvPO", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.8.json index 2496ec966d..a001c24fe7 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament PVB @CORE One", "from": "system", "setting_id": "Nn7eVPawILDH4BRW", - "filament_id": "Prusament PVB @CORE One 0.8", + "filament_id": "OFh7mvPO", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json index c3c5cf16c8..4504aa77bf 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pvb", "from": "system", "setting_id": "085dGkrnPhatF07x", - "filament_id": "Prusament PVB @CORE One", + "filament_id": "OFh7mvPO", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json index 280a722bb3..366c6043cd 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pvb", "from": "system", "setting_id": "DIrPylH6rmu6YA43", + "filament_id": "OFh7mvPO", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "215", "hot_plate_temp_initial_layer": "75", diff --git a/resources/profiles/Prusa/filament/Prusament PVB @XL.json b/resources/profiles/Prusa/filament/Prusament PVB @XL.json index 1ac285be6e..4a9a858c06 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @XL.json @@ -4,7 +4,9 @@ "inherits": "fdm_filament_pvb", "from": "system", "setting_id": "RF55nfxQwqUqe00Q", + "filament_id": "OFh7mvPO", "instantiation": "true", + "filament_vendor": ["Prusa Polymers"], "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "215", "hot_plate_temp_initial_layer": "75", diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.6.json index 19f2eb0962..adbf76e56d 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "Prusament rPLA @CORE One", "from": "system", "setting_id": "BY8gwU1VY0hFBPSc", - "filament_id": "Prusament rPLA @CORE One 0.6", + "filament_id": "OFWRITFw", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.8.json index 23f10a2927..3c71431160 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "Prusament rPLA @CORE One", "from": "system", "setting_id": "dNK9a3tZOFeUZm60", - "filament_id": "Prusament rPLA @CORE One 0.8", + "filament_id": "OFWRITFw", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json index c32d3baf7f..b520bf4a22 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Bw6H4vFnq7YExyLd", - "filament_id": "Prusament rPLA @CORE One", + "filament_id": "OFWRITFw", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @base.json b/resources/profiles/Prusa/filament/Prusament rPLA @base.json index c9b731d04c..32df471fc6 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @base.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @base.json @@ -3,7 +3,7 @@ "name": "Prusament rPLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFjFPhUC", + "filament_id": "OFWRITFw", "instantiation": "false", "filament_vendor": [ "Prusa Polymers" diff --git a/resources/profiles/Prusa/filament/fdm_filament_asa.json b/resources/profiles/Prusa/filament/fdm_filament_asa.json index 865b195578..1236ab3286 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_asa.json +++ b/resources/profiles/Prusa/filament/fdm_filament_asa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_asa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFB98", "instantiation": "false", "cool_plate_temp": [ "105" diff --git a/resources/profiles/Prusa/filament/fdm_filament_flex.json b/resources/profiles/Prusa/filament/fdm_filament_flex.json index 4e0e96e59b..139c475174 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_flex.json +++ b/resources/profiles/Prusa/filament/fdm_filament_flex.json @@ -3,7 +3,6 @@ "name": "fdm_filament_flex", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFU99", "instantiation": "false", "hot_plate_temp_initial_layer": [ "50" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json b/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json index 4a3d06afeb..8367e9dce3 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pa11cf.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pa11cf", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFN98", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pccf.json b/resources/profiles/Prusa/filament/fdm_filament_pccf.json index 50b33b2380..7903295158 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pccf.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pccf.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pccf", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFC98", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Prusa/filament/fdm_filament_pvb.json b/resources/profiles/Prusa/filament/fdm_filament_pvb.json index a7365e16bd..ef5a5cdcd4 100644 --- a/resources/profiles/Prusa/filament/fdm_filament_pvb.json +++ b/resources/profiles/Prusa/filament/fdm_filament_pvb.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pvb", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFS98", "instantiation": "false", "cool_plate_temp": [ "35" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json index 0571a6c393..da2184d76f 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "UWRDko6WCvXczl33", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json index ff958e904c..933dddacde 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "LUEO7LVrgko3oXzg", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json index afba292989..42c415e15b 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "NKhfqNQIcfKQBYAK", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json index e082ba832a..31d428337d 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "sZn12as9SQDNFDO3", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json index 4eae1e7274..3fb7ac7709 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "coopc46hemdV9QIv", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json index c918896762..09d445c402 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "qvYl7pfvtgF2y25O", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json index 8679f08572..b5d438e789 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "AzHGQIE0dGXjOhqG", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json index e22ad74af9..eb82b82579 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "CoYm8sbAVmpmJNIV", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json index 6c26b42f6e..748e5e2919 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "FnQb4cNqORpQ3Wkq", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json index 0fe76e86e7..8b0a54e060 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "94qvrRFOKOACTK2g", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json index 3383f16f49..077da196cf 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu ABS", "from": "system", "setting_id": "ehJ163zLubzIrWzf", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Bambu ABS.json b/resources/profiles/Qidi/filament/Bambu ABS.json index 8a3f3c544c..ee4586555a 100644 --- a/resources/profiles/Qidi/filament/Bambu ABS.json +++ b/resources/profiles/Qidi/filament/Bambu ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "aZylcH8GeCJOqtTy", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json index 72ca8b3942..ba65e6a896 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "cZhyWv8zbkM3fgAS", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json index 2baf999d10..984bf0ca94 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "PfIdpsKf0Xw5admE", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json index bdb1fc0cf5..a5e6576981 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "czi4981YiirKP6Yy", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json index 457e514214..8745f9b7f4 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "1BV8aedNHRa3h7rp", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json index 8c175a472d..ea82a7a259 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "eNHYNrSKn90P4GdZ", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json index 51609fb0a1..274d012a16 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "VU3PW2x6pfQ9Ayqo", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json index 975dc9f5e7..497cdc3212 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "2ezevTOIexxkTBJ2", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json index 8353f29d0d..855bdcc901 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "2vTNJwgFvUFq7oS9", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json index f777567d23..5dce4c4998 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "Q5ToVl9Yb4GGoNXC", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json index abb934e808..77e61eb8b4 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "XpLJtB1WhRyb1C75", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json index 517ea571a2..ef8ff48a3c 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PETG", "from": "system", "setting_id": "PiYLOckPVRFKFTS6", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Bambu PETG.json b/resources/profiles/Qidi/filament/Bambu PETG.json index f3c852e3da..8f69df52f3 100644 --- a/resources/profiles/Qidi/filament/Bambu PETG.json +++ b/resources/profiles/Qidi/filament/Bambu PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "5ZkReXpCOi19xuJg", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json index 1aa1a5791f..39c01a3e51 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "xY62JrDaYjjSb3lh", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json index 4ed7e3fde8..6a5dc5dc2f 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "HjjvZoWwpjZ2gwDO", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json index 20a1f209d5..a6c420c613 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "5dZqeodmshu33k4e", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json index 9eb008e6e3..2c700d3b7b 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "6kHEv9BjLlJi4E9T", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json index 670a0dd494..83e71e07f2 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "G28Bah0iOaahWlPE", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json index c480153803..afa945e307 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "ioH4lDHLbCw65TIg", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json index a3364d6f1e..bdfdf0e47a 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "oAUHAhSZkmCjhJEP", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json index 1a5492b842..cb39244927 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "mT6I8HUJsMgYCjb4", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json index 38bee01574..26a45e77d9 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "5sr5ABQQzrYFUxtk", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json index 46f76ed5ee..6d77933fc8 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "CNzhUsHWT2FOW2Qe", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json index 97c9d86fa6..df8c6b8a5e 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Bambu PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Bambu PLA", "from": "system", "setting_id": "8Mosuf8MExl0g3Tz", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Bambu PLA.json b/resources/profiles/Qidi/filament/Bambu PLA.json index f4df7bb875..4061aca197 100644 --- a/resources/profiles/Qidi/filament/Bambu PLA.json +++ b/resources/profiles/Qidi/filament/Bambu PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "lweaPojzNVU2FJnO", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json index a91921bf7d..29a1578964 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "QASmOwd2vpLRwI9I", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json index d222581868..42e761ca25 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "FETCvNKTRyxJujEs", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json index 25a52df29a..1186b13dad 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "ywzSdHmCxIwmIFVS", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json index 3d1b1b018d..603023a014 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "EwhasEiqLRcN5gBN", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json index 0548ad7b80..6527685bab 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "0NVX3dTScYTIebm3", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json index efbc5367cf..69ac1b6b11 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "HCU0TmDPYF39Gc3X", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json index 07e2b9020a..008671a374 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "Pf6oZn5QrYSbJhdm", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json index be04669935..b777c29a9b 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "6LSdExBaTT0Mc3rY", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json index 338327a6f4..fbea89c0fb 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "vc2R90RYyDuY8vQn", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json index 0e0929a26e..6b612e4461 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "1HVRVgHeXWVj3T0v", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json index 9a77e829eb..50b05d928d 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX ABS @Qidi", "from": "system", "setting_id": "aJxjGxHK8UJOqYPV", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json index a10c29a679..7a3ee8c8ce 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "0fchNQsqRqwI6whN", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json index 0fd49f7b99..5b63882b5b 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "Cw3CaLrsjVfJKoWI", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json index d907869893..88a9ffa985 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "eLmXN4kJvaoq5Ude", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json index 30c74b3628..8c4767360d 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "mndT3gxOniftGEEZ", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json index dc93652d10..9737c4de7a 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "L8aHH2WqnlOYuyfd", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json index 6d403ed166..66da1ce3b3 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "LMva5CR9m19UAhcI", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json index 1e60285f5c..d5e9d135bf 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "5EfWTFx0dXRTREkj", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json index 9463655aed..055b64956f 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "xeu1S6h53DRVM9Pw", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json index 90fdab75cf..d002a5db8c 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "UrZzA62PJDuvo9EC", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json index c9f19b8bbe..62642bab11 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "jAykaomjQ4BS9Cg0", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json index 74c9c5645e..72f0ca2ae8 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "2QrBYfeT0mp048aY", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json index a404adcc52..5f0d6a3e6b 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PETG @Qidi", "from": "system", "setting_id": "9otX3aWO4xQA72DT", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json index 2d9a104b6a..02b6929088 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PETG @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "dqHKVy4ahTjpQFOJ", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json index 94399a5e99..4e21fb79ff 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "GrYmKcX6ghgUO8z0", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json index a3f934d4a3..d2b9e1f6b9 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "Fwd0BaBVmg2w9oBo", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json index c7c48eafaf..f09ce840a7 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "OjSAPfXD7c9LpDZI", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json index 3e4260f01e..37e1982068 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "tNk1yBoRzuKtWamt", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json index 2ba5095a7f..f03e9c8053 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "oULA9qVGUD5izX9o", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json index baacdde075..8331e6dc6c 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "RK1LyCal04XMqidp", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json index 444d1e7ec5..8eeaf11774 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "6ehhHeFIMe3KxHA1", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json index 781709ec0e..5066c19ab1 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "i3bQYXjlGipOAop7", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json index 0b7c393c5e..1dce884cfd 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "vknSksUeSeKFl8vB", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json index bbfc813ac4..7d5db3e2de 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "I5NFFjIYcoo3SkmC", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json index 0a698394bc..16a1a42344 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "HATCHBOX PLA @Qidi", "from": "system", "setting_id": "gzDFMFaDnAVuDy3B", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json index 54077f69b3..2e6ed1140b 100644 --- a/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/HATCHBOX PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "jWtANauqr4Azj7fo", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json index 616249f7fb..6ca66cc671 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "PVJaNrzYRoafHb3k", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json index c442a6b9b4..4815755a54 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "6dP4f482dvR9Ihhu", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json index 438527e84e..d3ef4ea036 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "ol1pj7wlmGJlZHbA", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json index dcc67c9e49..7c9832acf5 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "d9bOxYmwJJ928QUm", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json index aa27b3bf99..56846eb0c1 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "3vOLIQxScIoHCUDQ", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json index 693927e275..905d2cef0b 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "ninsIRmjQReutXjA", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json index 2c50318e80..8692479cc1 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "m4sql22MWPed4UK9", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json index e2e657e67d..9dca464248 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "SbIhXnMLo7UWLdmF", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json index 310f56f725..edba90fe27 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "Hh22vTpUyqF09bma", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json index 0b41ec4fcf..3663179029 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "10PSPCpiTcS92auy", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json index ac1a6dd3f6..fdea3d5aeb 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture ABS @Qidi", "from": "system", "setting_id": "Xevn2nrx7W5VQX6z", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture ABS @Qidi.json b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json index 9f8543d169..a422baae82 100644 --- a/resources/profiles/Qidi/filament/Overture ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/Overture ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "rRuO94f0PYlPR3yu", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json index 801448598f..924362c286 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "YnRI4rYCHDIi7Q0w", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "pressure_advance": [ "0.057" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json index 4875cb845d..fbf2b78629 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "Jizherw9T9l0X76l", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json index 4a75b36230..f265222c29 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "dHlHvcm2BjzlfUSk", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json index 04bc00470b..cd3c18c309 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "3jqdiWNWro7yFptW", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json index 0921c9b6e8..4d9a6ad8c9 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "tARHr87BkRknTQJI", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json index c888887711..99a239670e 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "EEIdQ4XTkpQyRz3h", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json index 53a2a25920..5836edcfd7 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "NBbNF6S5sQYIiS9T", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json index 9dbd2f38a6..8414abfcca 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "gk2D7WKoLK1xPqLC", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json index a83fb80140..8ee92ded5a 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "wtl6yNqJQUVhiBnB", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json index 829d5e6e29..c60980ba47 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "1fl42MjkwXbpjJ3r", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json index 68736ba4c9..eff7da8211 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Overture PLA @Qidi", "from": "system", "setting_id": "vxGQSWw07PXnllwO", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Overture PLA @Qidi.json b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json index 5a67c65ecc..b3ce80842d 100644 --- a/resources/profiles/Qidi/filament/Overture PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/Overture PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "XXJ4dSi48JuA54Iv", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json index 7072ae9048..250eaa3223 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "5rbxArwT1VV5BOSq", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json index 12b6451671..082f09ffea 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "EqpfLGTZXcdjm5BM", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json index 631237f251..087808ff18 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "Ao01rvVFfkWlwpER", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json index 2002832792..4325782ea0 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "dfni3lzB8GJldfQD", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json index e589839cac..48a586618e 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "iWq2EddKO6QAUJuG", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json index 0add34cd62..bf25f2c6da 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "0EswisPwFjFmk1GT", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json index 2a22e88081..98ed0be9af 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "t3DcJuJsNgXKW0dP", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json index b1fcc53a1a..d669116cc3 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "Ino4r7XLgTCFh4YR", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json index 5d02632d1f..c586125db1 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "7NXI13ejzocjD7TO", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json index 62f530081c..2dccc6f635 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "QEJ9knURmXAGsFib", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json index 2874e9ed51..96ed3908e3 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite ABS @Qidi", "from": "system", "setting_id": "GzEXQzyKqqnCVUBh", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json index 749d87e959..ca0e5862fc 100644 --- a/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/PolyLite ABS @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "Q9QYOF2UmsrK7Wof", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json index d1fe71dbea..32839eb63d 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "uXrENPoTa7HWapCV", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "pressure_advance": [ "0.057" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json index 0de4f9ec71..5c81627600 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "XnU3X7A7kdRrfoTX", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json index 12f56a5826..874ae102f9 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "Q6H3JzOum8GYVRF9", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json index 563fdaf639..4f2a9d85a0 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "tSR6NKHk3ietpsga", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json index 5cab6e5d2d..d4b17517bb 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "ZF5is6IpP0gGcqRE", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json index 6f293d396b..fe5165436d 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "bAqfoS751xDFHubU", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json index 19d9c490cd..d277bafea9 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "2rWOMrYc40ZRNLQi", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json index 16e34885c6..a1a970be54 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "4x8HlY906khbFsG0", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json index 95b33c700a..3ee5d4697f 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "87QXnh5kCuQoPwjr", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json index 43d6ebbe3b..4cfd0f3202 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "WsMzyALZrDylCkZ6", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json index 01f23b61ee..025770dea7 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "PolyLite PLA @Qidi", "from": "system", "setting_id": "sHVHjhH9FzhRjeHT", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json index a7c49a98f8..d277778204 100644 --- a/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/PolyLite PLA @Qidi.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Kg6WHLbWxKAE8cCr", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json index 6d1f651941..ba454d0083 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json index a66e95159e..6ef3859314 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json index 56c8f26888..a677387d1b 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json index 61537e05c5..ac1ed2e4bc 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PETG @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json index fbbbe3bcf0..1eee11b706 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json index 6e72108961..398a45ac25 100644 --- a/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Bambu PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json index f3e45975a9..c3f6f6ede7 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFfdxQok", + "filament_id": "OFEWYR89", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json index 48422dbf2c..fd06d75bd0 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA+ @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFfdxQok", + "filament_id": "OFEWYR89", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json index 99b96f7788..429f7bc58d 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json index df0c4c9006..a06b63de6d 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json index 73d7e901ab..14cc4b1463 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json index 013e38199f..3922b8fbbb 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PETG @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json index aeba01311c..0de43e0804 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json index 40ac36e3dd..94fb13c4a3 100644 --- a/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/HATCHBOX PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json index ff0b89b0ec..cb96443ce7 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2.json @@ -3,7 +3,7 @@ "name": "Overture ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json index b271d4f87f..2caa6342ff 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Overture ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "Overture ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json index 8435661492..2bb82adf5f 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2.json @@ -3,7 +3,7 @@ "name": "Overture PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json index cc358bbb31..e3db0ea728 100644 --- a/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Overture PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "Overture PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json index fe2cf1e7f0..98ea19925c 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json index 69747075c6..ed269d96be 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json index b342506185..8639ef5ff7 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json index c8cc9c7f1d..366be7a6ba 100644 --- a/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/PolyLite PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json index f01f3e4d80..ac901e85ad 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Z0J9YPS8382vLms4", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json index b6f87914d3..0c5834be33 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "SA5qLMqlZg0lBV9u", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json index 397e9d9c2d..9f276e1282 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "MzM45pddZsnN8jk4", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json index 00ffd121ef..4f5a081162 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Tq1aLmF5jT1fx5mZ", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json index d03e15c72b..0cb80c93c1 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "1hhkoG2E1z6ya5hY", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "during_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json index 0661266966..98f2689236 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Vr1wXzAo5OR2PASA", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json index 36ddd1819a..c8965e1ade 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "OCg8c9SWQrZP0SrH", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json index dffcec3561..2d6cfd79a6 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "3fkdGYKFpaJ8yjwg", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json index eac761c62b..228a2b7441 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "Tkh7jC3ZhD7qchMF", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json index 6b0c61276a..e9139c0464 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "wOJOXhIjWFMUvDsB", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json index dec090494e..c0934114e4 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Odorless", "from": "system", "setting_id": "WqbBySroQTCBWMoz", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json index 7803db110f..d53b7c2bee 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "5GyjZE2Ukzo3BDdg", - "filament_id": "OFVhG0yM", + "filament_id": "OFma5TXH", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json index f04485915c..1f30fa81e6 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "CeOohxHZCLelVMCk", - "filament_id": "OFeybQvK", + "filament_id": "OFOuEEvv", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json index fd6e7b8c76..2ebe9f8df4 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "VzAotqGZviabVuS4", - "filament_id": "OFnj7bPm", + "filament_id": "OF0wz84w", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json index 2ec48424c2..aaa210c950 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "1hpYHzEDBeO8jwDr", - "filament_id": "OF8WvPVL", + "filament_id": "OF0w7OpJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json index 8beeba8c54..0824c6eae0 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "2ZB4CZPo7OnsVeFj", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json index e09f33c2ec..f35f44ff48 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "ANlmZnKFevlds1x9", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json index 404c73f209..2b516260c4 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "qGAb3jPiiSZqPc0W", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json index 93b6a852f7..b1ea6553b0 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "zPlNGjze5nz0Sqtn", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json index e28f719297..3ed4c50855 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "L6hmbX1bqdrGd9g2", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json index db9b53d8b5..b4cd47f8e0 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "ZKLPQIUecFL5GG2P", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json index 4b76aea4a6..5316755879 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "OlI3NRTSS4Vb9ABn", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json index 2224bcf267..8039f0046b 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido", "from": "system", "setting_id": "7AXe36Wqh6uupouS", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json index da948783fc..c3dc666461 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "CQa9Ke6ku0jK7juR", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json index 496f544403..7f5946f4d8 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "KBXExHIJGyOE02sr", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json index a22da32e00..d114ce7ed2 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "QjDN8l4fq8nrEtZS", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json index 6206964150..fc4a9099c9 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "83M8HRLtzoEyAgdd", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json index 3d47382873..fdf74d3fc5 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "JWNlbq8qmrVoCjJZ", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "during_print_exhaust_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json index 31ebb14e56..2d0850b58f 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "igcuTXhdFT9QEkki", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json index fdfe9154a8..bc81c0f940 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "Rci7D9y258kLZl3F", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json index 3106c593b8..1f1d71d6da 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "LClDGDpaf5l4XinA", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json index 5a187f9ed2..c8e0675c3e 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "TbTSNtElyeqwuhI2", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json index df8ac29f1a..f7b91d1384 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "lRSAQSUdgEOvrWOZ", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json index af46a4fc45..6aad4985d6 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS Rapido Metal", "from": "system", "setting_id": "sV1XN1EnDMTMC6eZ", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json index 3cee143732..9c133650ab 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "EcvWsnEhikUy64mA", - "filament_id": "OFToBodi", + "filament_id": "OFeCJqxx", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json index 08a58dc6dc..b29a065b5a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "sru9yX08jyTVNmOz", - "filament_id": "OFW8UdlP", + "filament_id": "OFT2jon4", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json index 17ef67f639..38bd8a9438 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "BG8J7FyU5Sn6pmGk", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json index 491e1f4660..59c267751c 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "87bAUrovoG3W1WZK", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json index e5e82a99df..ca9e5f25a4 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "v0K7uK7rq54uGbrE", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json index 174bccce8e..92db726d5d 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "OD1YZ5gmmk39jI21", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json index b22eb5c8b5..aaf74e228f 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "QzCAZozPOpv3IOzz", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json index 32e6766cda..93b5abffd9 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF", "from": "system", "setting_id": "fvB8ilSXksTr2ahl", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF.json b/resources/profiles/Qidi/filament/QIDI ABS-GF.json index d7f24f36c2..f07b650913 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "FW543AnWfRtseB8W", - "filament_id": "OFYH00jV", + "filament_id": "OFt3HtlG", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json index a99a9522de..f52455998b 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "uskWZUmvzYkVgG0l", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json index cfe8ea1bf0..a9e4dc2f3a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "9laiuOlfZEWIjQ3u", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json index eb4bbfa171..7aba539d32 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "Jh3kEQrLdoGw4WLW", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json index ae910ae9d5..13a7f6576c 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "3tblNpw8VgOlt8VU", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json index 3009f9db4d..2dd3e667ff 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "tssoWES4nOoMEh90", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json index b5aad08653..6f090ca606 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF10", "from": "system", "setting_id": "cgzmqzFT32UhNW5Q", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10.json index ffac088449..39ac4a7119 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "hxsu8XybSxfesTJf", - "filament_id": "OFQZINrX", + "filament_id": "OFQMsFfF", "instantiation": "true", "filament_type": [ "ABS-GF" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json index 8287d0aa7b..15314bf743 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "Do5JLiLyzue036L8", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json index ffb51be952..c0f30133ce 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "hTEx7UgX2wWanON5", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json index 6fb67b1002..ee93a959e9 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "shInwFwd1Yh5wUJB", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json index e4980df547..5c51beb27a 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "LQoXGFsJRpjCTBKm", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json index aab8dc01c3..0cf39c8240 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "5ONV5cuwTbSMWPMf", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json index 3b809bdd69..e204c4e0c9 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ABS-GF25", "from": "system", "setting_id": "nvfnoGOwhELWArss", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25.json index 097f336bb3..dbac9e9e47 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "mFWkL9nlS289XAWu", - "filament_id": "OFv2NHLC", + "filament_id": "OFZLtWYs", "instantiation": "true", "filament_type": [ "ABS-GF" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json index 3bdd268e3c..078e81b02b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "JPrwCFLO4P82f5lz", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json index 074ac486c0..e199e58998 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "zku756j16aST1ugn", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json index ee4d8c3eac..8a5be0dcd5 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "EcewU7mP5y2vDwRn", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json index 7388eaf99b..03b5748208 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "JPCSXfcIngQGTuOz", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json index 1939e7b3e3..64e213bd94 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "hhkWOEdIbQrB4IR0", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json index 98cbe34d45..4578f2d1dc 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "QiV5OREyiy9cb2yA", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json index 7815a1ae6e..7723cdca74 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "yOWilrQPhpvcpWM4", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "chamber_temperature": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json index eeceeb147e..39b0b7be70 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "tohpo42HW9BLvVcH", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json index fcf20cb643..0e0f51245b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "iDF5lahr0TRvLF8F", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json index 0aa3d22f7e..71682bf82d 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "p371tUSbBj3WOi5M", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json index 78599691d3..f0dd09ede0 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA", "from": "system", "setting_id": "4NUwEIv3156HKgev", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json index 0a7af77d4e..525810872c 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "UZg7s2SVhCGDcdkA", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json index 5b956ce37b..dccb6eb9fa 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "x8avbSHn73PayVfR", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json index 15bc124407..059390e58b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI ASA-CF", "setting_id": "FagCR4bLL1ctSXax", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "filament_settings_id": [ "QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json index 65d8322f3a..84035c06d3 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "T6U1oaEsA0T3ogMM", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json index cce1651f85..7532ce7249 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "8Xm0AjRaktaNfo4o", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json index 68c1c975f1..29a88f5e45 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "4p12RphItNlfwqwT", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json index be3b32c6ac..8e73a8d4f2 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "346HiaeZvs3BoFUb", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json index 7ddeb6a70f..203856fde8 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "LROz60JZsh6GN7CK", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json index ef9e6a0fe1..9bcccb476a 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "5OR8LnFPipv3h4h8", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "during_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json index 57b4dce412..fd6963ecb4 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "wyns97Rn3EVTl0v5", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json index 4f55fa7c84..de52d4fea8 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "zituWsHG83yRR1lM", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json index b18a387305..0c18c54f8e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI ASA-CF", "from": "system", "setting_id": "2CgI1u8NrWGqxN1C", - "filament_id": "OFmF1xL9", + "filament_id": "OF1W7c76", "instantiation": "true", "additional_cooling_fan_speed_unseal": [ "0" diff --git a/resources/profiles/Qidi/filament/QIDI ASA.json b/resources/profiles/Qidi/filament/QIDI ASA.json index c69ce99c06..5e0f08db8e 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA.json +++ b/resources/profiles/Qidi/filament/QIDI ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "v2LrEujF68PPbrux", - "filament_id": "OFK820gS", + "filament_id": "OFTsHNQi", "instantiation": "true", "filament_type": [ "ASA" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json index 66de4a49b6..e377cff6f9 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "rDi5X7jq3PrXGeSo", - "filament_id": "OFXkwkn6", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json index 4298dd4ea5..6921a3ac20 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "tF0ym95Eo2WVjYrv", - "filament_id": "OFXkwkn6", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json index ebe1f68c1f..6482c628bc 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "bWc3l0t1llvWvFei", - "filament_id": "OFXkwkn6", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json index 7cfd1faafa..3a7512ae98 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Rp1vbScHgwAZAwNT", - "filament_id": "OFXkwkn6", + "filament_id": "OFlN6DL1", "instantiation": "true", "filament_type": [ "UltraPA" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json index 087691ba31..8aae289040 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "Q3votaRX4HuxZl1j", - "filament_id": "OFFIL5pD", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json index 382b51b6f3..6fb1462acb 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "aaAKfscwITCW1cIY", - "filament_id": "OFFIL5pD", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json index ea996d2a71..df40927a88 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "nsFoTEFnTCbVM5VS", - "filament_id": "OFFIL5pD", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF.json b/resources/profiles/Qidi/filament/QIDI PA12-CF.json index f559526129..1c9670ae87 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "tDdg0DlqE4Nle5Xo", - "filament_id": "OFFIL5pD", + "filament_id": "OFn6WpN7", "instantiation": "true", "filament_type": [ "PA12-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json index e54c5f53e9..b4373b79b4 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "wBwy10qTZT9LPkX7", - "filament_id": "OFUkpobY", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json index 8e9dfc5b7d..bb3e66d408 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "a7pcw1dTC3bXjkqQ", - "filament_id": "OFUkpobY", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json index c74c3b9054..c2a557e26f 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "pRBh7YZdJFYv4rED", - "filament_id": "OFUkpobY", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json index bb1296382a..f366e23fc5 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Hws8EIuQkAfaCJGk", - "filament_id": "OFUkpobY", + "filament_id": "OFKgmsqE", "instantiation": "true", "filament_type": [ "PAHT-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json index 3c457fe294..f365f39f31 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "jRV6kS5c49Jf0IBJ", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json index bf0a862d3c..134232f846 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "ic09uwyOjmjgZhCY", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "pressure_advance": [ "0.023" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json index 6f1402814b..3d5b6136ba 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "BGwcBuMu2dcF1nGB", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json index 08081a83b8..4139a0bb49 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "R8msB42rgbyfT0sG", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json index ed19eb439b..3d10846072 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "D1nnJWlyUV0wvZnz", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json index 676d2575b1..2093825bbd 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "A6BaDz936RbO2EW1", - "filament_id": "OFfJoIgg", + "filament_id": "OFo15hcT", "instantiation": "true", "filament_type": [ "PAHT-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json index 60d2eaf677..ffb254d8db 100644 --- a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI PEBA 95A", "setting_id": "VNbCsg7HAvK02shi", - "filament_id": "OFUJw3Lx", + "filament_id": "OFhiJE7Y", "instantiation": "true", "filament_settings_id": [ "QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json index e25178269b..41d449361d 100644 --- a/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI PEBA 95A", "setting_id": "SBJaM8xcxmruL8Sx", - "filament_id": "OFUJw3Lx", + "filament_id": "OFhiJE7Y", "instantiation": "true", "filament_settings_id": [ "QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json index 2dc2cc8a50..ecab417416 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "sPox9vMaLAuoZoP2", - "filament_id": "OF4gzzE4", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json index 55e899aafb..8263cd2cf9 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "6BLOwVDtDPvTqanQ", - "filament_id": "OF4gzzE4", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json index 3c9732f139..a1f15b927a 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "znZt3ns7eHGTA3sX", - "filament_id": "OF4gzzE4", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF.json b/resources/profiles/Qidi/filament/QIDI PET-CF.json index b5a58b236b..e187e4550d 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "X4zXjt7t9eLbESzJ", - "filament_id": "OF4gzzE4", + "filament_id": "OFKfJTwL", "instantiation": "true", "filament_type": [ "PET-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json index a69ba467d9..e8bc3fc708 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "N9zX7M4yR8u5Jqjd", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "filament_settings_id": [ "QIDI PET-GF @0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json index 626098b09e..9a13f2e1c5 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "ATyJ8qPoYVqi7J3I", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "filament_settings_id": [ "QIDI PET-GF @0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json index b212549902..bff7391a88 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "I48bgbR8Rq9DDxmR", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json index 87e6b3b785..56f49905f9 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "hGLyYZ2WBTIFnWnc", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json index 5b372cda6a..39399a1915 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "XC3F1NLZxw1v5Bh3", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF.json b/resources/profiles/Qidi/filament/QIDI PET-GF.json index 78a901cbe1..cef1774ed3 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "nXZR8ykt6JdxvTCd", - "filament_id": "OF3XeEuV", + "filament_id": "OFhx4uOG", "instantiation": "true", "filament_type": [ "PET-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json index d66f38f8fd..e1351c1452 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "U8Tz8l63gQMoW1TR", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json index 56206c0269..e2f7f3eae4 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "i5DnDzOFFFsd4ear", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json index 101e2d8d16..1c38fa0a64 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "eqwWKpJur2oPzaig", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json index c6c692eb41..6427dfebe7 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "ZwdzHcsJbYBI04Yn", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json index 99f2f1c94e..bd55a96d95 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "wYE4aUeszHw1HJrZ", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json index 21a359c65a..81c9040a53 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "SbHnONYlR2WneAjS", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json index b80993fba6..03e5e299a9 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "EQrNIdbODkHki7pY", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic.json b/resources/profiles/Qidi/filament/QIDI PETG Basic.json index a855dd785d..61f3784f74 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "7uiFWB9SSJvhXKt0", - "filament_id": "OFSSuKRr", + "filament_id": "OFuJ49uH", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json index b44faa2e7f..262479a3d5 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "17nQzSvxOhC8RqMv", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json index 75adc4d4d3..0668e88303 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "TJja29CvUqlXnhWM", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json index 9e965e2753..d4f9e92e17 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "6rVVNiYVHxsxqk0M", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json index 503cf229aa..5ede468e69 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "MoKlaB96ptTjnoa8", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json index ae7376700e..ceff06761e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "S2CUnrPuZuvBo19K", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json index d4b7e161e1..5ce3194c0c 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "kEUCaWmAo3xZC09A", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json index 066270e96a..a64c3fba4a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "4Tse2Ycxud3qX0aQ", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido.json index 7097f784d3..991ee37f5a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "YK77S7a06UMEQzum", - "filament_id": "OFbS9rjH", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json index 856a8f8b32..cf42e76d85 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "wl53hiPD7EGYabrt", - "filament_id": "OFWkCAdc", + "filament_id": "OFVHMFJX", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json index ebd4cb47e9..6c1de3e610 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "QUkztHAxlI1gg1xe", - "filament_id": "OFqPp2yL", + "filament_id": "OFe8yBMG", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json index ebfeb1a3a6..e25eac8748 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "vtQb2QBD5ongR7vC", - "filament_id": "OF48G7He", + "filament_id": "OFfr6JDF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json index 31e4a0a837..89415a8dc8 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "KHeb2TVAxtw6fbRm", - "filament_id": "OF1Zypyy", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json index 54ad4f4fe1..ad32ffa5d3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "22HUqZbuYgOGNRfN", - "filament_id": "OF1Zypyy", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json index 1563a33564..76e0071f42 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "U35fhYtgLMsDXEws", - "filament_id": "OF1Zypyy", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json index fdf754efcc..9229387ad6 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "wqzUWt3IiEURFRYL", - "filament_id": "OF1Zypyy", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough.json b/resources/profiles/Qidi/filament/QIDI PETG Tough.json index 81eeb5a641..6a32ec5569 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SrZXxBXWXda9boGv", - "filament_id": "OF1Zypyy", + "filament_id": "OFQ40XeN", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json index 4b0c2a6818..719f4cb648 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "I8DmnTJey0BaBBAN", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json index cee560227e..6b5acc46d3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "0SbgoW822S43QDoX", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json index 591ef0fedf..92cbd91012 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "rOakaeWOHKz9immU", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json index 5a4d4bd206..581e9b9107 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "RBy7wrl1ZQOdKe8i", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json index 6b32f51dfa..69f9916106 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "Y0jCXY0Ihd6eRlm4", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json index 6dccf959e3..3fca9fa3f8 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "9yzSrCFgR00Lx8Ab", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json index 86548c4867..99edc43ac8 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "uMHHs1N1fLMq56FF", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent.json index 60a750367f..1b00da208d 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "5k6FnlL39pSbrei2", - "filament_id": "OFjohFkg", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json index dd8dee64fe..1de1163020 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "6EOvD75tBRyvffZF", - "filament_id": "OFPokkKe", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json index 83f504fff5..01483c22f3 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "ByHCLDgv1HFiA1Bb", - "filament_id": "OFPokkKe", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json index bf3b1e5515..1ff8be3c19 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "NBrZJME5Jt7jwU4W", - "filament_id": "OFPokkKe", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF.json b/resources/profiles/Qidi/filament/QIDI PETG-CF.json index 23bafc4875..e2b5316a51 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "vg3YJMhVaXTMTVLJ", - "filament_id": "OFPokkKe", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json index 802656c1e1..4528379034 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "4kBE3NMTit44g7S1", - "filament_id": "OF0Y5MLd", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json index 582fe9675b..acb59a4b53 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "SzH90qDpFuNpG7Ud", - "filament_id": "OF0Y5MLd", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json index 4ba14fed71..cdb3ab339f 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "9XoDC8DHvxvgrRor", - "filament_id": "OF0Y5MLd", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF.json b/resources/profiles/Qidi/filament/QIDI PETG-GF.json index 1b8ada25c9..e9f7252039 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "bex5zSdkQThZQi0s", - "filament_id": "OF0Y5MLd", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_type": [ "PETG-GF" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json index 31134c4e2c..8fffe5d1a9 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "hWJXKDKNjeBqYYFk", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json index d7bd4eaf46..9f5cfa548b 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "LMfV673NzArmzY44", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json index 9b578ef512..444c03e6ea 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "CyXcxvEKE6gnCRm9", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json index 560db51ea0..3dc9c3c692 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "g7OVjk2xNWWNQo9D", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json index 0d21566770..8e446f1f83 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "EdgtTQVIiPatR9Rt", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json index 2e05ec1a09..198c392cd1 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "UTbL94nFN0Cx30p6", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json index f8f7dc88d9..ff845fb81c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "INxFTcta59v2Ukpy", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic.json b/resources/profiles/Qidi/filament/QIDI PLA Basic.json index 2c15693ba5..5456c83805 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "UlF92qvJnOYzq0mw", - "filament_id": "OFN0X7oN", + "filament_id": "OF4nQ62r", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json index 763557b382..4cce2a6f5c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "vzT3dsogzkZSegM0", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json index d283df5e97..8fc9a37ed1 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "rdGuWICdcIZ3fXJb", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json index 56d1503e8a..3acc12ff0a 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "9z0BoiNtKlwPoCI4", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json index 9de765cf78..061f7526f3 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "Txg82qpCGVco78Ih", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json index 774922475b..1d921fecff 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "smHGcdmpWzQy1vW3", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json index 54753b4f40..8eb3335beb 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "hGKQJNUIQR0srofE", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json index dd25635276..b5f8c2a48c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "kARyA9JRV7f6Wu3E", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json index c75d42b5a4..d9d99e5029 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "53yYF0gK91AQcKAy", - "filament_id": "OFvN3117", + "filament_id": "OFughwKn", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json index d02d87ea5d..a913878021 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "jpTA43XolFvODs9f", - "filament_id": "OFXNO5Of", + "filament_id": "OFhwiZ50", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json index 45906c1b51..92819732f0 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "MGW0kfdHATaAzL1P", - "filament_id": "OFs1CbB1", + "filament_id": "OFglhKLM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json index c2216596e8..17ecf6e992 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "eQOfNVt6OqCFj0bV", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json index 3bdb9bec64..adc3655403 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "tdL1kK6jLbREgYna", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json index ac6a619cb8..0af8afe9a4 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "zfL5B7iAlx3PbJ1j", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json index 48f74dc047..5b8b3bd442 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "oZZn5VxcrwDJX9fE", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json index 198ef80000..dadceacf8f 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "o1lfFStVDZMsdFtr", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json index c143b656d7..fb1959a33d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "HK2fT6TYIIS94MZD", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json index a1b519af08..be4fc7fc47 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "User", "setting_id": "syivJeR1eO6H8wsK", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json index ea13d3583e..e002a51409 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "User", "setting_id": "WC8KpzKwpQcHOStJ", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json index c546a5d00a..a31fa6c9a5 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "RccxOqWrkZljiU5Y", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json index 77dd1451c2..4448e4e24d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "8KV7AfivVZHM6ReD", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json index c2cb8532be..7b9a1d8dc5 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "c5lFoguRq8sBwQ1K", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json index 8b96e4a264..d90e8dbcdb 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "95NdLwU31HQJthJE", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json index cdd0173131..d19017a05c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "gwmsxvv6cpmVlBDa", - "filament_id": "OFAUDGEQ", + "filament_id": "OF3IKafc", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json index 2022fa0518..9a56d85ace 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "oZC1FZ93158dUC0j", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json index 2525fd7186..6f37ee7eeb 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "Ix7a15ABLu7ykbMb", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json index f03a2919dc..de4e1c62fe 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "NdUtpGmW1Rl2h1Xc", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json index 0a90a98c7e..60bf1985b3 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "6obXUws35j7OkE2v", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json index f9c18e02f4..c2dd7afbd9 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "Z0YSeNJQ3rKDwzsp", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json index 83daae2d51..5fa9b63ea7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "BoVtyU2REc0Ayzc4", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json index 6b18f61607..ff220ecd05 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "EKWOHWk37Yn1jS5V", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json index af8af08270..03c9200bd0 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "yrS51y3N1ooM5ULv", - "filament_id": "OFV4hD1o", + "filament_id": "OFANFm4x", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json index 7704c2b53c..5ca5b12e28 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "AaBBTIJSMkxxTPDt", - "filament_id": "OF0z1XpN", + "filament_id": "OFW5FqkL", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json index fea97d7530..d0382ee04f 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "hnWx5ZM2ecclYvKA", - "filament_id": "OF0z1XpN", + "filament_id": "OFW5FqkL", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json index 7191180725..5ea0e37bb8 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "bQTjglDv2qjgrUNl", - "filament_id": "OF0z1XpN", + "filament_id": "OFW5FqkL", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json index 47a2c6edb1..7c90a10971 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "zifqr9yiIZKivCNu", - "filament_id": "OF0z1XpN", + "filament_id": "OFW5FqkL", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido.json index d5bb8ebb62..f1ecaf7790 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "JdGWg2Kn3T2L2Ai2", - "filament_id": "OFmKNi3f", + "filament_id": "OFKIQO2W", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json index a65d1591a8..44ad31c806 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "BTqlIKpYFQCC8gJt", - "filament_id": "OF7cv1Ub", + "filament_id": "OFhWrAuP", "instantiation": "true", "pressure_advance": [ "0.01" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json index 768b6ebd1d..f3aa8a98ac 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "0Wr2y2a7rHYbk5fS", - "filament_id": "OF7cv1Ub", + "filament_id": "OFhWrAuP", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json index 32e8cc97be..a3256ff5c8 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "xGqY059EYGUevj9G", - "filament_id": "OF7cv1Ub", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json index 1869f432df..146170c42a 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "Fh7yuJKSeYs8doRG", - "filament_id": "OF7cv1Ub", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json index fae018e7bc..fa27094b4b 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "vs5bFF3r8Kid59u9", - "filament_id": "OF7cv1Ub", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json index f02bce47ae..c56717e27a 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "E30t78jBGCkTztFC", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json index 1eb21b213d..f5ec65de8b 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "pYmENqkzOsA9LRLW", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json index 91d99f8f42..82f8ba4ac4 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "7ozi6TNb3ObLpD2v", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json index 8714923f7d..fddc4c3fe2 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "iNx7JrGG0r5s24dV", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json index caaf8696e5..510f62273a 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "tQnGlZa0FL2FpHho", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF.json b/resources/profiles/Qidi/filament/QIDI PPS-CF.json index 9e56326ec1..b6465a1de8 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ODM3oXV1OSv3qTbZ", - "filament_id": "OFAdAYYk", + "filament_id": "OFZOuWrO", "instantiation": "true", "filament_type": [ "PPS-CF" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json index 64884f4a2c..be4cc6b611 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "VgQiY3csDj6bBWSk", - "filament_id": "OFZAkPHG", + "filament_id": "OFp57RRC", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json index b0064ded5a..cc450abf5f 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "8hFaMBYD7pnmsZWd", - "filament_id": "OFZAkPHG", + "filament_id": "OFp57RRC", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json index c41c4fbaae..9245da8045 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI PPS-GF", "setting_id": "BcrvpHAPx0FBvOi3", - "filament_id": "OFZAkPHG", + "filament_id": "OFp57RRC", "instantiation": "true", "filament_settings_id": [ "QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PAHT.json b/resources/profiles/Qidi/filament/QIDI Support For PAHT.json index 2ab04ac70e..465d3239fd 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PAHT.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PAHT.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "7cd7R9xbuNtLfCHa", - "filament_id": "OFa5cFqE", + "filament_id": "OFXn3Vd9", "instantiation": "true", "filament_type": [ "PAHT-S" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json b/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json index e93e7f7945..d0c8a33368 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PET-PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "Am158VMH3y6FDxON", - "filament_id": "OFWyCd0Y", + "filament_id": "OFqcL5UF", "instantiation": "true", "filament_type": [ "PA-S" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json index 210dde4248..21cc9d864e 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "O7oxTgsH9q8jlqzd", - "filament_id": "OFNX5uRT", + "filament_id": "OFMDHOcT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json index cdfe19f343..8fd94ae68b 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "FR1LQ5DM0upGQQfs", - "filament_id": "OFNX5uRT", + "filament_id": "OFMDHOcT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero.json index fb7f6a16fe..9c8171b3b1 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "BARooxJKaDXbGd9B", - "filament_id": "OFNX5uRT", + "filament_id": "OFMDHOcT", "instantiation": "true", "filament_type": [ "TPU-AERO" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json index fcbec8eaa5..323efc4494 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "GufOfCCphUDzeSo1", - "filament_id": "OFOysPuE", + "filament_id": "OF9EHUKK", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json index f295b881de..70c0b04f41 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "nY6q9vd6lpaXiQpc", - "filament_id": "OFOysPuE", + "filament_id": "OF9EHUKK", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json index 0a6c26ed10..4b2637fbcf 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", "inherits": "QIDI TPU-GF", "setting_id": "67agKUajM0pFFhia", - "filament_id": "OFOysPuE", + "filament_id": "OF9EHUKK", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json index 7eccf9202f..7c3f2912e3 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "RgmbbSJpyUyTXPO9", - "filament_id": "OFKjlAbC", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json index da545ecdb9..22da9225ea 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "aiGnr6fBoUCuwPS5", - "filament_id": "OFKjlAbC", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json index ee25c8c7df..5c89625458 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "G0qM351aUv23WFmP", - "filament_id": "OFKjlAbC", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json index 73f3ad14d1..3c84e2c8e5 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "2AOnWEOsaS2w9Nmr", - "filament_id": "OFKjlAbC", + "filament_id": "OF9PELEb", "instantiation": "true", "filament_type": [ "UltraPA-CF25" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json index c0a87567b7..86ef520191 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "y4aq26TNkKEafwbN", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "slow_down_layer_time": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json index 4c87714064..96650a289e 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "1y0tvUmMkDHYmvWC", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "slow_down_layer_time": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json index 6cbeef948f..900ffdb085 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "n4ywS2KDL59hb8nA", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json index df4bc13bfc..be06885f90 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "AZB82l14yp3vT5sz", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json index f64fa54a11..37805be62a 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "0ZZ9ygXQqnKrrWlL", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json index 9ca1b0488f..22492ba0a8 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "NANyXYa8NOQ45Gy2", - "filament_id": "OFnsWQTp", + "filament_id": "OFvdZ2bx", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json index 508cf24436..1ea1175292 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi ASA-Aero", "from": "system", "setting_id": "OVQGLLS3QOoDEPNp", - "filament_id": "OF0TjJ0G", + "filament_id": "OFG4do34", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json index 3b68bf48c5..56af153f3d 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi ASA-Aero", "from": "system", "setting_id": "FKWhpunDSV0iusbz", - "filament_id": "OF0TjJ0G", + "filament_id": "OFG4do34", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json index 216db80864..3095c0a964 100644 --- a/resources/profiles/Qidi/filament/Qidi ASA-Aero.json +++ b/resources/profiles/Qidi/filament/Qidi ASA-Aero.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "xTg8UPJXoXdyGccz", - "filament_id": "OF0TjJ0G", + "filament_id": "OFG4do34", "instantiation": "true", "filament_type": [ "ASA-AERO" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json index 2e6b6d9089..b14283c761 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "BNOS859dmAw7GIZp", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json index 11fb8e0fad..7dd600cc44 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "XfuwzYZzTauK0ADk", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json index 05b680a74a..0411a7a366 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "ziWmRGMYOpjc7Hpo", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json index b9e1f23232..39cca2e3bb 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "lLXYczQE4YfPiyDO", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json index 576f73e044..e24fd6df8f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "o62pcRmFnj2mIXhf", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json index 10d886d12e..6b67afc3a6 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "UBWjZCCGQrpgmlpa", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json index 7bb68abc19..f04c392d36 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "qB4eDc7UuoKv5m2U", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json index 6da9142823..0ba51d1d97 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "N3Ca9PN8nDnvhmak", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json index d499ccf490..c614b1b214 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "UkNcVB3bJZqLN3fu", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json index 0c76ed7e66..1a25e73239 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "uK0zY0a6MpcFTZWr", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json index 06b75195a8..fdfdb04794 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ABS", "from": "system", "setting_id": "veNBpzcNYa6TAMry", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS.json b/resources/profiles/Qidi/filament/Qidi Generic ABS.json index f0ced9aabb..fd469656b7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "wcv9ZpNwvZ0ZcWKw", - "filament_id": "GFB99", + "filament_id": "OFv4VZCd", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json index a2d9584778..b1dc3929af 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "OLkg128vxsk27w03", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json index 961629bae2..c76c3b7bf4 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "pGOT3C5eREsHRylS", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json index 2e5cf7b682..b2e93f6042 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "QRlzPtO4mqLKcdws", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json index e62e501e59..e31053553a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "vLLCDxhI2GR76M1p", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json index 2369d6b6c6..67919c260e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "6pY4I5kAFdSYPOte", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json index 7106465ea0..8205a3e728 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "A85OmyjS63OgZa0V", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json index 03f2d457fa..f7d7fadfa0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "1CBWjstSdMJLJWuv", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json index fbeaa4c1c1..0a0da5a68f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "UIsup1TGWKg0Fq72", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json index c4ae902f99..bf2fbce6c2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "HQupWXd5yKceVrm4", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json index 9cd5b1a694..70f2dca93b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "R6FcpVRhnSp0i8bK", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json index 926830393f..8fa1b77e26 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic ASA", "from": "system", "setting_id": "sE2DGjOmcjRuuh0z", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA.json b/resources/profiles/Qidi/filament/Qidi Generic ASA.json index d6aee78840..5c955f6322 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "WTOEo36YTIFcXDaI", - "filament_id": "OFG8vHw8", + "filament_id": "OFsxlLdo", "instantiation": "true", "filament_type": [ "ASA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json index 880a914309..ee5c5b3206 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "aOVEazsct9L3eD2u", - "filament_id": "GFN98", + "filament_id": "OFPy0Ogq", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA.json b/resources/profiles/Qidi/filament/Qidi Generic PA.json index 4e1f0d20ba..640faa445f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "S6S5nM9zZbNCyhya", - "filament_id": "GFN99", + "filament_id": "OFQbqeN7", "instantiation": "true", "filament_type": [ "PA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json index 5b7bbeb84a..80e7acafbe 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "i4Nt0riiDwptxOIe", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json index d7a15d0bc0..774e1deed8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "8mJysYABmQTBlWLw", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json index 1e6313bc34..b869e3db14 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "be2KpgVjm4APQtrt", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json index 0aee03bd65..edcb7070ad 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "9aGpKzNCjXDcfmqr", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json index 5b348523ab..4e018cf7e0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "1BjBpSDoLs6nTHeo", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json index a551323664..33ef6fa1b2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "8ptIGtXeMSwVqkVB", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json index 8dcb9f5e4e..bb41002e5a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "IQCYG5yZFPsvTuHY", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json index 297315300a..1eb5bf3ae6 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "TPbG7zlsPowdKEVw", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json index 32c4f84112..ef7aadea0b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "mzsetSq0CzwqbGnP", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json index e3b4be943f..4cc95f36fe 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PC", "from": "system", "setting_id": "wlnm88gEKcNzvx7W", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC.json b/resources/profiles/Qidi/filament/Qidi Generic PC.json index a0a745246e..8d17246464 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "wd4PrqXE2um46ueW", - "filament_id": "GFC99", + "filament_id": "OFK01afJ", "instantiation": "true", "filament_type": [ "PC" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json index f40180cc1f..4dc4f79a35 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "GfDMSO3DjLxfMnUc", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json index b516c65225..8cc579f330 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "SzQLWO8poDxEU0ez", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json index 70b8be014e..f3006cef44 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "yyfoSMlQsvkmUGR5", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json index 69c74caccb..6ba08141b2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "ogHITGUcn1r2bHXc", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json index 1a55f38280..6ca659d410 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "CVyv3PHeZaSGmD6E", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json index e820fe24b2..f3a451fa22 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "tNl6q6MadSoFZ3EH", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json index 289b97e7e8..c30b0b9c48 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "1xGw8fYiSf6YzBnk", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json index 2bce0a96b0..19eee209c1 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "MMSCic1l0b3e5qe3", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json index 403177c5d7..320522f3b2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "KD0ABMKuQunww07p", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json index adaf03f5de..df1d833154 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "ZFkH9oLkRWDVovLu", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json index 2afbdbde97..7a659abfe5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PETG", "from": "system", "setting_id": "ixR5wIrehSmn8Inz", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json index 3a668823ca..41a8a19505 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "kjmXKWCMonhYhy8U", - "filament_id": "GFG98", + "filament_id": "OFfZ0lTS", "instantiation": "true", "temperature_vitrification": [ "75" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG.json b/resources/profiles/Qidi/filament/Qidi Generic PETG.json index 993b9764ba..a46451b4b2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "Yk3w834THlnAS3jr", - "filament_id": "GFG99", + "filament_id": "OFKNAhls", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json index 2492a8ea78..c4ee570822 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "6e0DHBzRkQvU0419", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json index 63611956e2..b8dc934bf9 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "eCR3lbTRdkYcMZgl", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_max_volumetric_speed": [ "14" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json index 7aa69c184d..9cb96bf501 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "JSQupeTNYtzE8l6q", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json index 017b42a781..88954db351 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "n4rp1Pooux07hwx1", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json index 46523499ee..8784aa33ac 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "P57Nm7E7KTnHMov0", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json index b10017757b..c66a485d3b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "DWfVtYimjZxqyDzM", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json index e8d6372721..004bd0cda5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "ausfQ4SuKLMuruFb", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json index b1b1b2e9e9..ca0eeb74ba 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "JJmzlY5XOz9eGO8n", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json index 6cd43b3246..ea5c6e5f2a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "EpYu1ME5tSsFYirK", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json index ce7016ad71..9b99d1a90f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "wZ8U1Ga1bQXbd2nN", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json index b9c1fc36d1..d59bd63cc0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "M0JCDyI7icGyqs43", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json index 8b257619c3..a940104863 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "tRztgu06hBi9IxSE", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_max_volumetric_speed": [ "14" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json index 7c9a86cdde..1581dfb47e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "8XzQCGoYi01mIjNY", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json index 4bb1e59e0b..d39b789104 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "hkeictJYR1KDX7kB", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json index f6131e0ca7..eeb8a443ef 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "4YnRWwYLWMODUHXq", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json index 2289deef1e..683f582678 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "bKi57zeQX7mAw7kl", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json index 15336f706a..d4836a5f3d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA", "from": "system", "setting_id": "lscOLQTFf4Y3Ax1f", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json index a8040f89fd..2c20544437 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", "from": "system", "setting_id": "HaE0HFgjT8wysrVT", - "filament_id": "OF5UUaUM", + "filament_id": "OFS8JF3S", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json index 13e4cbccbe..e4c16f3697 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", "from": "system", "setting_id": "vxXEJP3C4k5Zjvsx", - "filament_id": "OF5UUaUM", + "filament_id": "OFS8JF3S", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json index 3e9f248a9d..73b241ea48 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", "from": "system", "setting_id": "VqVyXnU77CZCKsNy", - "filament_id": "OF5UUaUM", + "filament_id": "OFS8JF3S", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json index 2866afeee3..47fe217eb7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", "from": "system", "setting_id": "0504CZkoYLx6NMI0", - "filament_id": "OF5UUaUM", + "filament_id": "OFS8JF3S", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json index 08b2fd475b..9088564556 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA Silk", "from": "system", "setting_id": "lRRlOS4Xd1pGLIEq", - "filament_id": "GFA05", + "filament_id": "OFy4ajVZ", "instantiation": "true", "enable_pressure_advance": "1", "pressure_advance": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json index 0c9b1b3d15..19d91f0f9c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA Silk", "from": "system", "setting_id": "DaBZGfcdheWjNdgr", - "filament_id": "GFA05", + "filament_id": "OFy4ajVZ", "instantiation": "true", "enable_pressure_advance": "1", "pressure_advance": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json index 128da01c7e..8f195626d2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "OATeG6kIIRyViXbn", - "filament_id": "GFA05", + "filament_id": "OFy4ajVZ", "instantiation": "true", "enable_pressure_advance": "1", "filament_type": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json index 689b9db770..5639be330a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "dmKDk6Yb4zQFCWIe", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json index 649a08ca6f..d78cdb3490 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "vwFHzxD2MrRieUIw", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_settings_id": [ "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json index 8b663fde80..cef91d9faa 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "wlXNWvECV8ylNVFF", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json index ad0dd1e2b3..9d0b6428cc 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "gR4NZ8mgTNVxxjhh", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json index 6860035d96..c21f2a31df 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "wCdBhg6B4tQZw7dp", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json index c34e9563a0..29c72ccfe5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "7Bxn8OUT1MJbNvxC", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json index a29f72ac49..b034072cbb 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "miQxMqjI3odS4V1O", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json index 63b6dcfd94..aed12c1545 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "WwUGv09h9thWkzMf", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json index fe0c370b40..4e3df63a29 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "oAIJyTMV5EnXTJDF", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json index 834b6b82cc..4d1ec90cb1 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "Ya2viE6yXmdshs75", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json index 17212d9d74..4e5928cf60 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "XUhGdonOGCUI34EH", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json index 39a7b80db0..53d4d543ae 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "yvokLiCctDUmcDCR", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.034" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json index 4d5746ee75..72afba15b9 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "gZxafcPwX1hqI7Dm", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json index eb93efa8f0..4eced792ff 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "j6fJ7L02mVcZ01fO", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json index 38a2600264..a2359aff5e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "KTkq14RsduGBSdMZ", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json index 7593f9724c..e2d3c6b536 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "xiomvJqo2HAwsxT0", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.016" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json index dc501ef7e5..f438b1f7c0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic PLA+", "from": "system", "setting_id": "3SemJWSvKeN7OXVy", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json index 7302486ec4..9ed1642e89 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA+.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "LNjBixpjLg5i8P1d", - "filament_id": "OFwHPTvy", + "filament_id": "OFsXOMoX", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json b/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json index ced518b3a6..b3e70b1a47 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "bJKgxsU0tR1NDtoN", - "filament_id": "GFL98", + "filament_id": "OFQTrLXB", "instantiation": "true", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA.json b/resources/profiles/Qidi/filament/Qidi Generic PLA.json index 2dc3b25203..dd060727ed 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "tmrmjsN8vDKGlNpX", - "filament_id": "GFL99", + "filament_id": "OFu79SUH", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PVA.json b/resources/profiles/Qidi/filament/Qidi Generic PVA.json index 3479b4eb41..23d6c89d40 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PVA.json +++ b/resources/profiles/Qidi/filament/Qidi Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "8450opPMJm6GG5Cq", - "filament_id": "GFS99", + "filament_id": "OFNZYgLA", "instantiation": "true", "filament_type": [ "PVA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json index dff4ce7559..19b01dbf26 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU 95A", "from": "system", "setting_id": "0gGSrFIulk4gPLSp", - "filament_id": "OFN0pBpo", + "filament_id": "OFWukXja", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json index f1add02a4f..ee19db18a9 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU 95A", "from": "system", "setting_id": "5fkE2aGkghsMdZ1W", - "filament_id": "OFN0pBpo", + "filament_id": "OFWukXja", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json index 2c4e76ead5..04e75b3633 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "JWZrlYnOOlGpTEg6", - "filament_id": "OFN0pBpo", + "filament_id": "OFWukXja", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json index 963e845d67..f54208a542 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU", "from": "system", "setting_id": "s0MMbJlTt9Cbh8FQ", - "filament_id": "GFU99", + "filament_id": "OFZsChIG", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json index 9e4acc8225..67d47da272 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi Generic TPU", "from": "system", "setting_id": "KqdGTkLW1x7oZpvj", - "filament_id": "GFU99", + "filament_id": "OFZsChIG", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU.json b/resources/profiles/Qidi/filament/Qidi Generic TPU.json index 8c57a5d28a..bf4d662d62 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU.json +++ b/resources/profiles/Qidi/filament/Qidi Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "qvJXA6V5mxiOguUj", - "filament_id": "GFU99", + "filament_id": "OFZsChIG", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json index f5db4b48f9..4036bc407c 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "0J1PKDesfiwmiXT3", - "filament_id": "OFa6L3Of", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json index 0870f4d962..70aff6d258 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "CYzutFjZzD3tLXwM", - "filament_id": "OFa6L3Of", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json index c036fb4fba..c0aaea29c7 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "YJvwrEo0BwfXMOqo", - "filament_id": "OFa6L3Of", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json index 69b6bcd945..aac6e6f127 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "0pBt0usHW6MGQZXl", - "filament_id": "OFa6L3Of", + "filament_id": "OFjD3YTW", "instantiation": "true", "filament_type": [ "PC-ABS-FR" diff --git a/resources/profiles/Qidi/filament/Qidi PLA-CF.json b/resources/profiles/Qidi/filament/Qidi PLA-CF.json index 6db1fa32e2..ce37e1b42c 100644 --- a/resources/profiles/Qidi/filament/Qidi PLA-CF.json +++ b/resources/profiles/Qidi/filament/Qidi PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "oqzsRA4OuCqTWPGM", - "filament_id": "OFqyIUDi", + "filament_id": "OFjoAe0R", "instantiation": "true", "filament_flow_ratio": [ "0.96" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json index 172ba9b6f0..1121d1a200 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "zqfVVsyY5ZMsfqjK", - "filament_id": "OFOW9K96", + "filament_id": "OFzAWsca", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json index 89c1974bb1..747a31d4bd 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "fZISb4jbF8jv60dL", - "filament_id": "OFOW9K96", + "filament_id": "OFzAWsca", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json index 433f754f7a..ffbdbc9e5f 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "QCS6zw9BRMWWvrCo", - "filament_id": "OFOW9K96", + "filament_id": "OFzAWsca", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json index a8864cd29b..83ec8a1025 100644 --- a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json +++ b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uVa250OrqClMz41k", - "filament_id": "OFXcfTEb", + "filament_id": "OFpBV2Ma", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json index 96478af664..e59aa7077f 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFuidAEg", + "filament_id": "OFhuaUQB", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json index 8101a994d5..77ba79c419 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu PETG @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu PETG@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OF6EOy1A", + "filament_id": "OFLYDngx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json index 08d299380c..cb14577cc5 100644 --- a/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Bambu PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Bambu PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OF2UFmOo", + "filament_id": "OF1dpPrW", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json index 07f0f3291d..281538953a 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PLA+ @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PLA+@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFfdxQok", + "filament_id": "OFEWYR89", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json index 7e70c198c2..09f7e6a9a5 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFPwi9X0", + "filament_id": "OFwLBAGf", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json index a7cf5ed949..89c266e681 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX PETG @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PETG@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFAnyzjN", + "filament_id": "OFIWMSGX", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json index 3dcf2e340d..844a9f0942 100644 --- a/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/HATCHBOX PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "HATCHBOX PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFiJYDPC", + "filament_id": "OFeelsSM", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json index 49b3c2fe6b..acc9a9f96d 100644 --- a/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Overture ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Overture ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFuTFxVP", + "filament_id": "OFK8XHPn", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json index a217128c3d..91cf8d1e35 100644 --- a/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Overture PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Overture PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFC2FSsV", + "filament_id": "OFc3xdm9", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json index 849aebe38d..603dc9da52 100644 --- a/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/PolyLite ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFidJLn8", + "filament_id": "OFOvv91M", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json index 4d6101084d..01d5e352ef 100644 --- a/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/PolyLite PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "OFceJcLf", + "filament_id": "OF5CgdDq", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/RH3D/filament/Generic ABS @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic ABS @E3NG v1.2S.json index 1c9cf63e43..045e04b689 100644 --- a/resources/profiles/RH3D/filament/Generic ABS @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic ABS @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "VNx6rdTN7OIIXVpC", - "filament_id": "Generic ABS @E3NG v1.2S", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.2 nozzle", diff --git a/resources/profiles/RH3D/filament/Generic ASA @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic ASA @E3NG v1.2S.json index 329de9f04d..fd22b91c19 100644 --- a/resources/profiles/RH3D/filament/Generic ASA @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic ASA @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "LK5M8q58HY86k9aX", - "filament_id": "Generic ASA @E3NG v1.2S", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.2 nozzle", diff --git a/resources/profiles/RH3D/filament/Generic PCCF @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic PCCF @E3NG v1.2S.json index 49cff221dd..d3a2002f8f 100644 --- a/resources/profiles/RH3D/filament/Generic PCCF @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic PCCF @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pccf", "from": "system", "setting_id": "fnnja8VlKHWpuOjG", - "filament_id": "Generic PCCF @E3NG v1.2S", + "filament_id": "OFC5f4Ay", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.5 nozzle", diff --git a/resources/profiles/RH3D/filament/Generic PETG @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic PETG @E3NG v1.2S.json index 6bd5e940fe..1fd8ab22ed 100644 --- a/resources/profiles/RH3D/filament/Generic PETG @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic PETG @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_petg", "from": "system", "setting_id": "IS3z7f5wnjsvv8vC", - "filament_id": "Generic PETG @E3NG v1.2S", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.2 nozzle", diff --git a/resources/profiles/RH3D/filament/Generic PLA @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic PLA @E3NG v1.2S.json index 86e514521c..bbf58fe55a 100644 --- a/resources/profiles/RH3D/filament/Generic PLA @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic PLA @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "b1tuMVA0Hh27wYQH", - "filament_id": "Generic PLA @E3NG v1.2S", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.2 nozzle", diff --git a/resources/profiles/RH3D/filament/Generic TPU @E3NG v1.2S.json b/resources/profiles/RH3D/filament/Generic TPU @E3NG v1.2S.json index 7c308efd71..f6c8a7ca6e 100644 --- a/resources/profiles/RH3D/filament/Generic TPU @E3NG v1.2S.json +++ b/resources/profiles/RH3D/filament/Generic TPU @E3NG v1.2S.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "kaTatels2H01rgeJ", - "filament_id": "Generic TPU @E3NG v1.2S", + "filament_id": "OFgbpcy9", "instantiation": "true", "compatible_printers": [ "E3NG v1.2S - 0.4 nozzle", diff --git a/resources/profiles/RH3D/filament/fdm_filament_abs.json b/resources/profiles/RH3D/filament/fdm_filament_abs.json index f68da37f19..f4ab005733 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_abs.json +++ b/resources/profiles/RH3D/filament/fdm_filament_abs.json @@ -3,7 +3,6 @@ "name": "fdm_filament_abs", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH01", "instantiation": "false", "cool_plate_temp": [ "100" diff --git a/resources/profiles/RH3D/filament/fdm_filament_asa.json b/resources/profiles/RH3D/filament/fdm_filament_asa.json index bc71167111..ac03beef13 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_asa.json +++ b/resources/profiles/RH3D/filament/fdm_filament_asa.json @@ -3,7 +3,6 @@ "name": "fdm_filament_asa", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH02", "instantiation": "false", "cool_plate_temp": [ "100" diff --git a/resources/profiles/RH3D/filament/fdm_filament_pccf.json b/resources/profiles/RH3D/filament/fdm_filament_pccf.json index b24ccd667e..4296da76c5 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_pccf.json +++ b/resources/profiles/RH3D/filament/fdm_filament_pccf.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pccf", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH06", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/RH3D/filament/fdm_filament_petg.json b/resources/profiles/RH3D/filament/fdm_filament_petg.json index 646a682703..aaa0f62357 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_petg.json +++ b/resources/profiles/RH3D/filament/fdm_filament_petg.json @@ -3,7 +3,6 @@ "name": "fdm_filament_petg", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH03", "instantiation": "false", "cool_plate_temp": [ "70" diff --git a/resources/profiles/RH3D/filament/fdm_filament_pla.json b/resources/profiles/RH3D/filament/fdm_filament_pla.json index ad4f375e9d..873a78461b 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_pla.json +++ b/resources/profiles/RH3D/filament/fdm_filament_pla.json @@ -3,7 +3,6 @@ "name": "fdm_filament_pla", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH04", "instantiation": "false", "cool_plate_temp": [ "40" diff --git a/resources/profiles/RH3D/filament/fdm_filament_tpu.json b/resources/profiles/RH3D/filament/fdm_filament_tpu.json index e55e214275..dcf6f2c68d 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_tpu.json +++ b/resources/profiles/RH3D/filament/fdm_filament_tpu.json @@ -3,7 +3,6 @@ "name": "fdm_filament_tpu", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFRH05", "instantiation": "false", "cool_plate_temp": [ "30" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json index cd5e2573fa..698d14aba2 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "oE39mwr3PCpeBxZN", - "filament_id": "OFtcTs1o", + "filament_id": "OFtplX8o", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json index 55855d2045..c16d3c7869 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "GGkbwdd79jAXnwuf", - "filament_id": "OFSkBwxf", + "filament_id": "OFgcryz4", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json index ee05b628c1..ce0edbd3b0 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uCKZhFAPvEa2wKnA", - "filament_id": "OFS1ekCg", + "filament_id": "OFFC0VqZ", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json index ba7316afc7..1595d776b2 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "bf3YMNVRSE1i1E8N", - "filament_id": "OFjj9Yiz", + "filament_id": "OFmexHIS", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json index fd155fac44..75be42804b 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "dyG3zLuhX2qe8XJP", - "filament_id": "OF7M9vy4", + "filament_id": "OFiuJSmy", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json b/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json index 1dc5ca8791..c220b6dc58 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json +++ b/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "wLJ3X05Jnz1EqeOI", - "filament_id": "OFYehFGr", + "filament_id": "OFsNJjpc", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json b/resources/profiles/Ratrig/filament/RatRig Generic ABS.json index b55a944e54..ed76ab9524 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ovLAzbygn6JHqGk0", - "filament_id": "GFB99", + "filament_id": "OFyFRojy", "instantiation": "true", "filament_flow_ratio": [ "0.980" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json b/resources/profiles/Ratrig/filament/RatRig Generic ASA.json index 5cee3f262c..6cc52605f5 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "pmxazFQdx5Oa7Pke", - "filament_id": "GFB98", + "filament_id": "OF48L671", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json b/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json index 31c95abede..4fa73713e1 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "ZRrsXKPk8pY4yrwd", - "filament_id": "GFN98", + "filament_id": "OFNOxcYl", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA.json b/resources/profiles/Ratrig/filament/RatRig Generic PA.json index 52bfb6ea3c..17a29f6fe5 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "fVGEV9t4w06LODgD", - "filament_id": "GFN99", + "filament_id": "OFEZNNw1", "instantiation": "true", "nozzle_temperature_initial_layer": [ "270" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PC.json b/resources/profiles/Ratrig/filament/RatRig Generic PC.json index 9f9cab8e38..3eab266588 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PC.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "XQ5VEJXu5X0L3Lbn", - "filament_id": "GFC99", + "filament_id": "OFdOWhCa", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json index 754c1e5667..1bc6658211 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "SG4Gt87iS1ql3s8S", - "filament_id": "OFzb2BLs", + "filament_id": "OFUrStd6", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json b/resources/profiles/Ratrig/filament/RatRig Generic PETG.json index e64dfbe2f4..ab649e81b3 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "u6diBMbHW2nnKKTm", - "filament_id": "GFG99", + "filament_id": "OFxg7n2G", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json b/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json index 2ce8c792e9..e8278cb1ab 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Vwn22LQBChxWysmU", - "filament_id": "GFL98", + "filament_id": "OFlx52rn", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json b/resources/profiles/Ratrig/filament/RatRig Generic PLA.json index 91bc503ed8..1e99ec6398 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "IY6qXVoQqhsKuMzP", - "filament_id": "GFL99", + "filament_id": "OFd10YeG", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json b/resources/profiles/Ratrig/filament/RatRig Generic PVA.json index 69fa53a0f5..5035285a77 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "9uJ3Rr6kn9jZZxPO", - "filament_id": "GFS99", + "filament_id": "OFsxRSwr", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json b/resources/profiles/Ratrig/filament/RatRig Generic TPU.json index 3e1594501d..8e69cce08f 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json +++ b/resources/profiles/Ratrig/filament/RatRig Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "zWOn983v5s2ujssj", - "filament_id": "GFU99", + "filament_id": "OFB09fpe", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json b/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json index 3e5428690b..9308082af6 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "AzjpmeEXD6enWOG6", - "filament_id": "OFL7U2MV", + "filament_id": "OFhO5aEJ", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json index 8765e295fc..5f047c9b94 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "o2dP6EwooarikQ8R", - "filament_id": "OFXQX0tr", + "filament_id": "OFe61n6v", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json index 14bc8db764..3863ddcd07 100644 --- a/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json +++ b/resources/profiles/Ratrig/filament/RatRig PunkFil PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "e1QXBJqpkhHxXor1", - "filament_id": "OFnRTkEq", + "filament_id": "OF9emAI9", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/SecKit/filament/SecKit Generic ABS.json b/resources/profiles/SecKit/filament/SecKit Generic ABS.json index bac9887f55..ed9be1c69a 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic ABS.json +++ b/resources/profiles/SecKit/filament/SecKit Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "gUrHIkj9GExYWVjh", - "filament_id": "GFB99", + "filament_id": "OFnh79eM", "instantiation": "true", "filament_flow_ratio": [ "0.980" diff --git a/resources/profiles/SecKit/filament/SecKit Generic ASA.json b/resources/profiles/SecKit/filament/SecKit Generic ASA.json index c9fdf2bcfd..6688efd51f 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic ASA.json +++ b/resources/profiles/SecKit/filament/SecKit Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "UwVF6VlxRg0IW9hB", - "filament_id": "GFB98", + "filament_id": "OFrh4bBH", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json b/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json index 569b174f1b..46ad248815 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "0K4eQ2fbaasNdvsP", - "filament_id": "GFN98", + "filament_id": "OFtsVp4v", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PA.json b/resources/profiles/SecKit/filament/SecKit Generic PA.json index bf70f90120..38a275a6f2 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PA.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "GlgeZsK719DDjaPo", - "filament_id": "GFN99", + "filament_id": "OF8CXrvm", "instantiation": "true", "nozzle_temperature_initial_layer": [ "270" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PC.json b/resources/profiles/SecKit/filament/SecKit Generic PC.json index c76b39ec41..2244729859 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PC.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "8DHToBaqE7g5VNvN", - "filament_id": "GFC99", + "filament_id": "OF5E5KNA", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PETG.json b/resources/profiles/SecKit/filament/SecKit Generic PETG.json index af3bd585ab..07af417aae 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PETG.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "mx45AbmzGkqYMSsW", - "filament_id": "GFG99", + "filament_id": "OFqS8fzK", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json b/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json index 6767fdc897..5ac681d9d7 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "dPLE2CXMpmdtyiZK", - "filament_id": "GFL98", + "filament_id": "OFF73Bvp", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PLA.json b/resources/profiles/SecKit/filament/SecKit Generic PLA.json index 62e073f2f2..2c85460be0 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PLA.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "7cpNIx6GWUp95tLN", - "filament_id": "GFL99", + "filament_id": "OFETFWx7", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PVA.json b/resources/profiles/SecKit/filament/SecKit Generic PVA.json index 6060d85690..67312ed658 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PVA.json +++ b/resources/profiles/SecKit/filament/SecKit Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "jiHEC4uCmPQLINlO", - "filament_id": "GFS99", + "filament_id": "OFyySVby", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/SecKit/filament/SecKit Generic TPU.json b/resources/profiles/SecKit/filament/SecKit Generic TPU.json index 25befa8256..dab7cf4bf5 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic TPU.json +++ b/resources/profiles/SecKit/filament/SecKit Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "b5GGHwZlR5oOx4eH", - "filament_id": "GFU99", + "filament_id": "OFoVZg32", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json index f00df71cfd..bad8b3a774 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_ABS.json @@ -4,7 +4,7 @@ "inherits": "SeeMeCNC filament base", "from": "System", "setting_id": "jvmDQqgLy8vboFHw", - "filament_id": "SMCFB001", + "filament_id": "OFR0gODA", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC ABS" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json index 25b2f84b7a..690a870c69 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PA-CF.json @@ -4,7 +4,7 @@ "inherits": "SeeMeCNC filament base", "from": "System", "setting_id": "xaySfHS4rdZcWsqA", - "filament_id": "SMCFN001", + "filament_id": "OF0b7M1z", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC PA-CF" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json index f9cc79bcfd..9792260d36 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "SeeMeCNC filament base", "from": "System", "setting_id": "UDoa6miFYGnCLiHc", - "filament_id": "SMCFG002", + "filament_id": "OFaRjiIm", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC PETG-CF" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json index a186501902..c58047fa8a 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PETG.json @@ -4,7 +4,7 @@ "inherits": "SeeMeCNC filament base", "from": "System", "setting_id": "wf9uGLhJeqRDZVR7", - "filament_id": "SMCFG001", + "filament_id": "OFxDHUX8", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC PETG" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json index 8e9cc3c8d3..9747b4caba 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_PLA.json @@ -3,7 +3,7 @@ "name": "SeeMeCNC PLA", "from": "System", "setting_id": "hdn5fZars58kvjwQ", - "filament_id": "SMCFL001", + "filament_id": "OFbSChKb", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC PLA" diff --git a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json index 791da98e23..602470e962 100644 --- a/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json +++ b/resources/profiles/SeeMeCNC/filament/SeeMeCNC_TPU.json @@ -4,7 +4,7 @@ "inherits": "SeeMeCNC filament base", "from": "System", "setting_id": "vsEH0aZOKiLat0hH", - "filament_id": "SMCFU001", + "filament_id": "OFyFyLIp", "instantiation": "true", "filament_settings_id": [ "SeeMeCNC TPU" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json index dfbff7e8fb..693553bdcb 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon ASA-CF08 @Snapmaker U1 base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFL71", + "filament_id": "OF0omtEb", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json index b292f8dd62..1496095361 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA12-CF10 @Snapmaker U1 base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL56", + "filament_id": "OFvxIS9g", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json index 88aab14bbf..d548075235 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-CF20 @Snapmaker U1 base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL57", + "filament_id": "OFEabreg", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json index f14d1abc1f..8aba062d0f 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA612-ESD @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA612-ESD @Snapmaker U1 base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL72", + "filament_id": "OFFZ458u", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json index 75e03cc52a..9245ada222 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-ESD @Snapmaker U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFL06", + "filament_id": "OFcytyoA", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json index 271ee8bb5d..5e1cfa7c61 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PPS-GF20 @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Fiberon PPS-GF20 @Snapmaker U1 base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFL73", + "filament_id": "OFeVzkSU", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json index 85f728d3f3..ab0658f139 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma CoPE @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma CoPE @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM016", + "filament_id": "OFqw2PQA", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json index 2695cbee54..7c23e24034 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM001", + "filament_id": "OFsRDvTM", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json index 5b4b8725c2..2becd66703 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Celestial @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Celestial @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM008", + "filament_id": "OFRiYgMK", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json index 6b14e2b663..932dcd38c6 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Galaxy @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Galaxy @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM007", + "filament_id": "OFFkCLBl", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json index 9e9936c4a4..c45de639c7 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Glow @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Glow @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM010", + "filament_id": "OF0gGRWk", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json index 0e996eb298..80a1604ed2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Luminous @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Luminous @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM011", + "filament_id": "OF0kCNDK", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json index 83ae20eb10..c052908999 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Marble @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Marble @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM003", + "filament_id": "OFKiSMWR", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json index 6d178bca81..a4ae1b1114 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Matte @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Matte @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM002", + "filament_id": "OFrOh600", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json index 28b2984832..d1b0a54bcd 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Metallic @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Metallic @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM012", + "filament_id": "OFjb0wos", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json index eedf3117a8..57a0598ca8 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Neon @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Neon @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM013", + "filament_id": "OFO1GEq6", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json index df011d8dd3..5a6f2849ae 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Satin @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Satin @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM005", + "filament_id": "OFPkCJKE", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json index daa8a6ffca..53d1ba2886 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Silk @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Silk @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM004", + "filament_id": "OFS8lTQt", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json index c2841b4572..396f287684 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Starlight @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Starlight @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM009", + "filament_id": "OFC78WGQ", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json index f0ccd46a65..6a16bf9994 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Temp Shift @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Temp Shift @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM015", + "filament_id": "OFhASRWj", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json index 81d275cfaf..ff8c158df4 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA Translucent @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Translucent @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM006", + "filament_id": "OFCIUsWh", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json index 7ac70319b2..3240927af2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Panchroma PLA UV Shift @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA UV Shift @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM014", + "filament_id": "OF1N1qMK", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json index 228df29a92..046a702928 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite CosPLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite CosPLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL62", + "filament_id": "OFJgijky", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json index 707d5ae54b..6c3fca2635 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OFYGbPHX", "instantiation": "true", "name": "PolyLite Dual PLA @0.2 nozzle", "setting_id": "jhmy4YHi9MuL0DWu", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json index 1a4422472c..b1f4803c1f 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OF7SliVn", "instantiation": "true", "name": "PolyLite J1 PLA @0.2 nozzle", "setting_id": "jFlRSxx0KvN3BOUu", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json index 6c5017d0a8..3dc56cc918 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json @@ -1,6 +1,7 @@ { "type": "filament", "from": "system", + "filament_id": "OF7SliVn", "instantiation": "true", "name": "PolyLite J1 PLA", "setting_id": "wcpOTTMyZNPFKyXr", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json index e8fdd834fe..834f7df457 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PETG @Snapmaker U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFG60", + "filament_id": "OF0UJcb6", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json index 607649e569..a388fc42b5 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PETG Translucent @Snapmaker U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFL74", + "filament_id": "OF0VpkBM", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json index 8f3b508aec..fccff88c67 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL00", + "filament_id": "OF5CgdDq", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json index fcdcf7b003..d531cbeb35 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json @@ -3,7 +3,7 @@ "from": "system", "instantiation": "false", "name": "PolyLite PLA @base", - "filament_id": "1393866034", + "filament_id": "OF5CgdDq", "inherits": "fdm_filament_pla", "filament_vendor": [ "Polymaker" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json index fc925c8faa..40cb531494 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Galaxy @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Galaxy @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL63", + "filament_id": "OFvyB0Bz", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json index cc74173c06..f3e2e4ead4 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Glow @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Glow @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL64", + "filament_id": "OF5umxxT", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json index a472e0bec0..20cb3f7ec5 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Luminous @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Luminous @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL65", + "filament_id": "OFBoSWxb", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json index 5638bec3ff..2b062379bb 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Neon @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Neon @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL66", + "filament_id": "OFitS8al", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json index c32655ff83..18a295de81 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Pro @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM019", + "filament_id": "OFF9OKoY", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json index 898460830f..20057a31e0 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Pro Metallic @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Pro Metallic @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL75", + "filament_id": "OFnXwW8l", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json index 17e4d2816a..393a597ea8 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Starlight @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Starlight @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL67", + "filament_id": "OFIxOuOu", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json index 29341f1c59..5931ddef7d 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA Translucent @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Translucent @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL68", + "filament_id": "OFy02QHU", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json index bdadb828e9..2c95f4b8ed 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "from": "system", - "filament_id": "OF17cONC", + "filament_id": "OFCccVrQ", "instantiation": "true", "name": "PolyTerra Dual PLA @0.2 nozzle", "setting_id": "UQYgjH1uVxf3d2Nv", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json index 6062914ff0..589d0cd93f 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "from": "system", - "filament_id": "OFjZw7k1", + "filament_id": "OF43Raws", "instantiation": "true", "name": "PolyTerra J1 PLA @0.2 nozzle", "setting_id": "mxKHxGmBZzPLS82O", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json index 1c23dc5fb4..3b4ae0320a 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json @@ -1,7 +1,7 @@ { "type": "filament", "from": "system", - "filament_id": "OFjZw7k1", + "filament_id": "OF43Raws", "instantiation": "true", "name": "PolyTerra J1 PLA", "setting_id": "4MZWZX7QPBzxdEGj", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json index 533e781485..82b4b9b839 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL01", + "filament_id": "OFW29a9R", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json index 141740a499..12242cc1e9 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA Marble @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA Marble @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL69", + "filament_id": "OFxe4rXr", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json index 19bec7d25b..a2f5602139 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA+ @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA+ @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL70", + "filament_id": "OFEjbwqG", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json index b447be1455..eab6df9c97 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM017", + "filament_id": "OFPoyiFs", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json index a98cb9b670..8b59bc45e9 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA-GF @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM018", + "filament_id": "OFlwmqrC", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json index 2209516118..6feec9c407 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PETG @Snapmaker U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFL76", + "filament_id": "OF6H51Xx", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json index 5e32b79620..ac2509715a 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG Galaxy @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PETG Galaxy @Snapmaker U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFL77", + "filament_id": "OFtFtiS0", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json index ebd4e5b11a..f072f2eb6f 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PLA @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL78", + "filament_id": "OFelDBgv", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json index a15908f18e..5e0f051c25 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PLA Pro @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL79", + "filament_id": "OF5oXk4M", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json index 9e2fc3f4e5..bfd8a59e3f 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro Metallic @Snapmaker U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PLA Pro Metallic @Snapmaker U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL80", + "filament_id": "OFHknN4v", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1 base.json index f2144b7dc4..67754ade09 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker ABS @U1 base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "1682237920", + "filament_id": "OF72YYTd", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ABS @base.json b/resources/profiles/Snapmaker/filament/Snapmaker ABS @base.json index 6de41e6bcb..1051af1626 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ABS @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ABS @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "3811508002", + "filament_id": "OF72YYTd", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json index a0e8b152b7..1ba6c22c9a 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ABS Benchy @U1.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker ABS @U1 base", "from": "system", "setting_id": "xszx4XRGrp88OdP8", - "filament_id": "OFgtZjeX", + "filament_id": "OFJrvXth", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1 base.json index 012b5c4530..413c14cebb 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker ASA @U1 base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "12471727060", + "filament_id": "OF1d7c3A", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ASA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker ASA @base.json index 667836fe3d..4cc6b0db02 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ASA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ASA @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "2742961008", + "filament_id": "OF1d7c3A", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS @base.json index 3f61d2b12e..2629e15051 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "168223792", + "filament_id": "OFJhT2fd", "instantiation": "false", "hot_plate_temp": [ "110" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json index dd1863eac8..6554a924f6 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual ABS Benchy.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker Dual ABS @base", "from": "system", "setting_id": "YMUFsOzEISsMqCLe", - "filament_id": "OFxxa5yn", + "filament_id": "OFeAxvEt", "instantiation": "true", "compatible_printers": [ "Snapmaker Artisan (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual ASA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual ASA @base.json index ba18223e4a..7f54df76bb 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual ASA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual ASA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "1247172706", + "filament_id": "OFKUEXPA", "instantiation": "false", "hot_plate_temp": [ "110" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual Breakaway @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual Breakaway @base.json index ef59734df1..bdb539a065 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual Breakaway @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual Breakaway @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual Breakaway @base", "inherits": "fdm_filament_breakaway", "from": "system", - "filament_id": "1207881278", + "filament_id": "OFfmHUkQ", "instantiation": "false", "filament_loading_speed_start": [ "35" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PA-CF @base.json index eedf48c86d..5390ffe222 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "3493177425", + "filament_id": "OFRooa0F", "instantiation": "false", "hot_plate_temp": [ "100" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PET @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PET @base.json index f222b257bb..84cd37dfe7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PET @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PET @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PET @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "2128577941", + "filament_id": "OFUIfGoh", "instantiation": "false", "overhang_fan_speed": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG @base.json index 55a188dfb7..ea5c61eb3b 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PETG @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "2209001062", + "filament_id": "OFBlFMVp", "instantiation": "false", "overhang_fan_speed": [ "25" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG-CF @base.json index 37c2b65a6e..5e8a40a8af 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PETG-CF @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "1042511226", + "filament_id": "OF3msXEa", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA @base.json index 20b215ab7c..1d8a6fe9ba 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1417031127", + "filament_id": "OFZivHGL", "instantiation": "false", "filament_retraction_length": [ "nil" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Eco @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Eco @base.json index 68fa882ada..0f880ac980 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Eco @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Eco @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA Eco @base", "inherits": "fdm_filament_pla_eco", "from": "system", - "filament_id": "200803790", + "filament_id": "OFyPG8v2", "instantiation": "false", "filament_density": [ "1.26" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Matte @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Matte @base.json index 1010df744a..6838983e1b 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Matte @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "3503790988", + "filament_id": "OFlIsW6f", "instantiation": "false", "filament_density": [ "1.32" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Metal @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Metal @base.json index d90435974a..7080dddad1 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Metal @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "2029994346", + "filament_id": "OFg3cWVt", "instantiation": "false", "filament_cost": [ "90" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Silk @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Silk @base.json index ded13a34e3..f2024f8ddf 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Silk @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1181363872", + "filament_id": "OFyj3m13", "instantiation": "false", "hot_plate_temp_initial_layer": [ "65" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA-CF @base.json index 8d6ca390a9..d9b45b5f79 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1702147325", + "filament_id": "OF6ATsCF", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual PVA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual PVA @base.json index eda6fbf638..d9bc0f80ed 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual PVA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual PVA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "3104636980", + "filament_id": "OFDKIKyw", "instantiation": "false", "filament_loading_speed_start": [ "35" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json index 98b7787775..a8d87836b0 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPE.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker Dual TPU @base", "from": "system", "setting_id": "KoZqZ4l1tYZ99JYz", - "filament_id": "OFAbsMuV", + "filament_id": "OFTs8peJ", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU @base.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU @base.json index 3c106e21aa..903ea5c744 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker Dual TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "2971656290", + "filament_id": "OFjkdnyN", "instantiation": "false", "filament_loading_speed_start": [ "35" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json index 2696168f9d..04490520d3 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Dual TPU High-Flow.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker Dual TPU @base", "from": "system", "setting_id": "D1vA7cdI5kghtrxf", - "filament_id": "OF0Ee2jQ", + "filament_id": "OFcBJQcC", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS @base.json index 91afed2dab..bf1229454c 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "1223824394", + "filament_id": "OFy14TRA", "instantiation": "false", "hot_plate_temp": [ "110" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json index c85da00ba2..3d3e47b701 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 ABS Benchy.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker J1 ABS @base", "from": "system", "setting_id": "b1Z94AhG8viXuDsq", - "filament_id": "OFePPmng", + "filament_id": "OF8dCquh", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 ASA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 ASA @base.json index 0ac62b83b6..b72c5795f8 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 ASA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 ASA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "144877656", + "filament_id": "OFt7SngH", "instantiation": "false", "hot_plate_temp": [ "110" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 Breakaway @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 Breakaway @base.json index d0b9afe2ce..5acb7bd524 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 Breakaway @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 Breakaway @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker J1 Breakaway @base", "inherits": "fdm_filament_breakaway", "from": "system", - "filament_id": "3492897526", + "filament_id": "OFeTATC7", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PA-CF @base.json index 714a0f1190..4e923b2f76 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "1210173120", + "filament_id": "OFYEtXuk", "instantiation": "false", "overhang_fan_speed": [ "55" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PET @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PET @base.json index 7b2787695b..d3688cbdf7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PET @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PET @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PET @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "1009481135", + "filament_id": "OF8Jl6NT", "instantiation": "false", "overhang_fan_speed": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG @base.json index 560a29961d..327ac4d103 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PETG @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "1172603684", + "filament_id": "OFQMTRc8", "instantiation": "false", "overhang_fan_speed": [ "35" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG-CF @base.json index cc323fa5b9..b3161b9c9d 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PETG-CF @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "4235401834", + "filament_id": "OFxYB4Sw", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA @base.json index 00ffe9de38..f845a62a77 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "377675245", + "filament_id": "OFSa39yP", "instantiation": "false", "filament_retraction_length": [ "nil" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Eco @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Eco @base.json index 61bafb8477..84e330f35d 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Eco @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Eco @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA Eco @base", "inherits": "fdm_filament_pla_eco", "from": "system", - "filament_id": "3383257822", + "filament_id": "OFLbdkrE", "instantiation": "false", "filament_density": [ "1.26" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Matte @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Matte @base.json index 8cefd42ce1..7fcb2d8633 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Matte @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1192769348", + "filament_id": "OFY3AB7j", "instantiation": "false", "filament_density": [ "1.32" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Metal @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Metal @base.json index 49d3a3a416..3fe36e7155 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Metal @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "4012961186", + "filament_id": "OFt0JbR7", "instantiation": "false", "filament_cost": [ "90" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Silk @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Silk @base.json index 174982b184..331030d8dd 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Silk @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1528786603", + "filament_id": "OFQ1KzO8", "instantiation": "false", "hot_plate_temp_initial_layer": [ "65" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA-CF @base.json index 2dd3de3d58..07158641d8 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "3806593857", + "filament_id": "OFdD5Wbu", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 PVA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 PVA @base.json index a02dac10a5..05f057f0ca 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 PVA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 PVA @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "4227461134", + "filament_id": "OF6TuVAg", "instantiation": "false", "slow_down_layer_time": [ "8" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json index 80c1ff3650..327ba6e6da 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPE.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker J1 TPU @base", "from": "system", "setting_id": "6N7VB3mKAShGVYL3", - "filament_id": "OFChH9xu", + "filament_id": "OFV5Q7j2", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU @base.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU @base.json index 315a18e3b4..aec03dd322 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker J1 TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "4092268632", + "filament_id": "OFyrnlUn", "instantiation": "false", "nozzle_temperature_initial_layer": [ "240" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json index 81cc01669e..66e5c331ae 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker J1 TPU High-Flow.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker J1 TPU @base", "from": "system", "setting_id": "wdN8j0Zv2bJ29XHA", - "filament_id": "OFKhtNBx", + "filament_id": "OFlBoEfL", "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1 base.json index 66874b0b2d..62b54feb70 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PA-CF @U1 base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "34931774250", + "filament_id": "OFEmsric", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @base.json index c4c8117679..6918bcb746 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PA-CF @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "581236806", + "filament_id": "OFEmsric", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json index 4eb1143082..364cb2a9aa 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @Dual.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker Dual PET @base", "from": "system", "setting_id": "3xJOWlbt2feyRKTV", - "filament_id": "2549587591", + "filament_id": "OFQYaiGg", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @U1 base.json index 6edd0ee2fa..2dae11ec36 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PET @U1 base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "21285779410", + "filament_id": "OFQYaiGg", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json index 9038a8cb4c..f6a9db6835 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PET @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PET @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "2549587591", + "filament_id": "OFQYaiGg", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG @U1 base.json index 5f048f2574..ce0e7c8122 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PETG @U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "22090010620", + "filament_id": "OF4WB37S", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG @base.json index 896b4dc154..02a40601f2 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PETG @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "1895495477", + "filament_id": "OF4WB37S", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @U1 base.json index 2d74db595b..47869c9779 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PETG-CF @U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "10425112260", + "filament_id": "OFOwQuZM", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @base.json index afd7cf79ee..1b0f300341 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PETG-CF @base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "1355502217", + "filament_id": "OFOwQuZM", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA @U1 base.json index 3100986363..5611cb34f3 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "14170311270", + "filament_id": "OFlufQpZ", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA @base.json index 9d010aa49d..48e1f70d80 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "3177068229", + "filament_id": "OFlufQpZ", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @U1 base.json index 43a0726b2c..c305704269 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Eco @U1 base", "inherits": "fdm_filament_pla_eco", "from": "system", - "filament_id": "2008037900", + "filament_id": "OFpu74Qe", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @base.json index 4b41b7b9e1..e4ce7fc8c3 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Eco @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PLA Eco @base", "inherits": "fdm_filament_pla_eco", "from": "system", - "filament_id": "1695556157", + "filament_id": "OFpu74Qe", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json index 351390aace..21384a0567 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Lite @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker PLA Lite @U1 base", "from": "system", - "filament_id": "1417031127011", + "filament_id": "OFEOnBj6", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json index 816b04dcd5..d8b3ebef60 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker PLA Matte @U1 base", "from": "system", - "filament_id": "OFlbn4FY", + "filament_id": "OFF9cgY5", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json index 67c1ebd2e3..9e287f3203 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker PLA @U1 base", "from": "system", "setting_id": "uAhykL5ap1DAKacf", - "filament_id": "OFlbn4FY", + "filament_id": "OFF9cgY5", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json index a530b9208e..9efd7ee33c 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Metal @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "20299943460", + "filament_id": "OFtybfNX", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json index 12d65834ea..fb20245193 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Silk @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "11813638720", + "filament_id": "OFWgFOjn", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @base.json index 8c821fdaaa..b35519fdd9 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "1655727393", + "filament_id": "OFWgFOjn", "instantiation": "false", "hot_plate_temp_initial_layer": [ "65" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json index 12caa4b25c..b87c48cbe5 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker PLA SnapSpeed @U1 base", "from": "system", - "filament_id": "141703112701", + "filament_id": "OFwhLMs4", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json index 617a8c23ea..c108468f27 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA-CF @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "17021473250", + "filament_id": "OFhQf8ou", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @base.json index 040e559f38..910a8a7617 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "3864371306", + "filament_id": "OFhQf8ou", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 base.json index 91ff319c8e..206f024091 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PVA @U1 base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "31046369800", + "filament_id": "OFyhjiNs", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @base.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @base.json index c49e948c02..1edf0516c4 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PVA @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "1344609062", + "filament_id": "OFyhjiNs", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json index 59f4b2af8e..a4214b6cd0 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPE @U1.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker TPU @U1 base", "from": "system", "setting_id": "aqE9IR6dFd2MQLXR", - "filament_id": "OF70DKqH", + "filament_id": "OFWTAEjH", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPE.json b/resources/profiles/Snapmaker/filament/Snapmaker TPE.json index 78b8f2484f..c5c42d6126 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPE.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPE.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker TPU @base", "from": "system", "setting_id": "pFGj8sxkPmk10bP4", - "filament_id": "OF70DKqH", + "filament_id": "OFWTAEjH", "instantiation": "true", "compatible_printers": [ "Snapmaker A250 (0.4 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json index a6d8c41b5d..ca61b9fc3a 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker TPU 95A @U1 base", "from": "system", - "filament_id": "297165629001", + "filament_id": "OFKo87c6", "instantiation": "false", "overhang_fan_threshold": [ "95%" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU @U1 base.json index 6e9efb2034..6ad1de856e 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker TPU @U1 base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "29716562900", + "filament_id": "OF65InrS", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU @base.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU @base.json index 8208dc980c..85a66a5008 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU @base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU @base.json @@ -3,6 +3,6 @@ "name": "Snapmaker TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "1480063856", + "filament_id": "OF65InrS", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json index 96252c2de1..0aca011924 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU High-Flow @U1.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker TPU @U1 base", "from": "system", "setting_id": "5AXIg8WCdcd74S5v", - "filament_id": "OFtet8ui", + "filament_id": "OFgyPlwU", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)", diff --git a/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json index 9fe50fc1b6..ac456a82ee 100644 --- a/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OGFL96", + "filament_id": "OFesA6rF", "setting_id": "WAHQZmwHoS4WjoTx", "name": "Generic PLA Silk @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json index 5926d0155d..f56ca13525 100644 --- a/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/Polymaker PETG @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OF22AxCm", + "filament_id": "OF6H51Xx", "setting_id": "JBFKMaFtd7kO8Ksq", "name": "Polymaker PETG @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json index 384be40590..1ff8f57fac 100644 --- a/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json +++ b/resources/profiles/Sovol/filament/SUNLU PETG @Sovol SV08 MAX.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OGFSNL08", + "filament_id": "OF2GCW1l", "setting_id": "x68SPQCqVacBSGd5", "name": "SUNLU PETG @Sovol SV08 MAX", "from": "system", diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json index b904edd7d4..025dee3fe5 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "okqqqm0P8ehlQuDY", - "filament_id": "OFtemzzw", + "filament_id": "OF67EdL5", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json index 82969be3fb..41066fb061 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "5mtng0PM8CMglpD7", - "filament_id": "OFGFZhWu", + "filament_id": "OFe7Sx5B", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json index 317c30a966..b3780567d1 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "kgtcANsbfwSbdgOh", - "filament_id": "OFic2uNr", + "filament_id": "OFTvvox9", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json index c4c0397846..861b80c567 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "ERN0ozxmPhIMze0i", - "filament_id": "OFglpvEE", + "filament_id": "OFJfv07m", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json index 9a2b1e5cae..e38812d1a4 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "Me1iSJmocW35ClmN", - "filament_id": "OF5Bmdtg", + "filament_id": "OFCEA7Nt", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json index 87f012c539..4b1ab35b1c 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "ZrAm6Nm4FI7p4PgC", - "filament_id": "OFgMGSpF", + "filament_id": "OFl7nOAf", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json index 806b3a35fd..a0a3190eaf 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "YEEOGJYm4Z8W4vGV", - "filament_id": "OFSoZBK2", + "filament_id": "OFNZjrLo", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json index f19fb592b9..fbacdaf2da 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "oNucKLcIdxwBPpUN", - "filament_id": "OFsmPFwh", + "filament_id": "OFkWaWRo", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV07 PLA.json b/resources/profiles/Sovol/filament/Sovol SV07 PLA.json index 47fe781fcc..b1b13b7e79 100644 --- a/resources/profiles/Sovol/filament/Sovol SV07 PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV07 PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "IHicmU5gzVf6G4F1", - "filament_id": "GFL99", + "filament_id": "OFaFNP2U", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json b/resources/profiles/Sovol/filament/Sovol SV08 ABS.json index f35a2372a1..f29c3f274d 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "nq4vvrWqKjWKELEz", - "filament_id": "OFKH15Hd", + "filament_id": "OF016CJw", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json b/resources/profiles/Sovol/filament/Sovol SV08 PETG.json index 81e3e2db41..54718800a9 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "CWd7KULbXvJeTTEy", - "filament_id": "OFIl3ar9", + "filament_id": "OFRi7v0b", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json b/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json index b013826043..dda11511e0 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "qmnuve3FgzrXgjPA", - "filament_id": "OFcsHCy4", + "filament_id": "OFcJ7AKd", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json b/resources/profiles/Sovol/filament/Sovol SV08 PLA.json index cb32bceb71..9e76203099 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "nnU0222BS0F1c5ki", - "filament_id": "OFcsHCy4", + "filament_id": "OFcJ7AKd", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json b/resources/profiles/Sovol/filament/Sovol SV08 TPU.json index f93c734acc..404675d8f4 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json +++ b/resources/profiles/Sovol/filament/Sovol SV08 TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "tpBbCQhcSJsBesnG", - "filament_id": "OFY1U4uM", + "filament_id": "OFyCToOV", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero ABS.json b/resources/profiles/Sovol/filament/Sovol Zero ABS.json index 16fabab6e8..8ae60c192f 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero ABS.json +++ b/resources/profiles/Sovol/filament/Sovol Zero ABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "9pI7op6U4azpfNfb", - "filament_id": "OFgNzLVh", + "filament_id": "OFNX8GI1", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PC.json b/resources/profiles/Sovol/filament/Sovol Zero PC.json index 9c82b6a60b..87d4b2c924 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PC.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PC.json @@ -4,7 +4,7 @@ "inherits": "Generic PC @System", "from": "system", "setting_id": "vuuZXnlrMgUKtSI0", - "filament_id": "OFtwA91m", + "filament_id": "OFcdqaWI", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json index 569c670407..ce68719ba9 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PETG HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "AfxHmpdOkMDJa2fk", - "filament_id": "OFk6T5YH", + "filament_id": "OFymnal9", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PETG.json b/resources/profiles/Sovol/filament/Sovol Zero PETG.json index db83f4d2e4..37f603579b 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PETG.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PETG.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "75OJvkXlmbcaHQfW", - "filament_id": "OFjurQ3I", + "filament_id": "OFHTVfaU", "instantiation": "true", "filament_flow_ratio": [ "1.0348" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json index b3d235da7d..6dfb630e0a 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "i9wDnSEIrOBPbOZl", - "filament_id": "OFtL05hE", + "filament_id": "OFzB4uOs", "instantiation": "true", "filament_flow_ratio": [ "1.0348" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json index 93c2382024..990a2b3edb 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "ZVvOaMwZ7noevsYf", - "filament_id": "OF5J2axC", + "filament_id": "OF7VJMYM", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json index 2db612ff8f..97e4050b8c 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk HS Nozzle.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "XxEJBNFLRltR2Xwn", - "filament_id": "OFP4poIv", + "filament_id": "OFAO9A7J", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json index d86d68212d..24fab028e8 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json +++ b/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "QowhGzqSwGQoAp1a", - "filament_id": "OF2tvNYA", + "filament_id": "OFJVFpJz", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero TPU.json b/resources/profiles/Sovol/filament/Sovol Zero TPU.json index d2f9247ada..bd4596b303 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero TPU.json +++ b/resources/profiles/Sovol/filament/Sovol Zero TPU.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "iZHXx0RyRO096L0z", - "filament_id": "OFO5R9KJ", + "filament_id": "OF6zAVFj", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime ABS.json b/resources/profiles/Tiertime/filament/Tiertime ABS.json index 58b1849335..4ff6b5c8fd 100644 --- a/resources/profiles/Tiertime/filament/Tiertime ABS.json +++ b/resources/profiles/Tiertime/filament/Tiertime ABS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00", + "filament_id": "OFNQKF0M", "setting_id": "uAtyf2jCQEcv7D2r", "name": "Tiertime ABS", "from": "system", diff --git a/resources/profiles/Tiertime/filament/Tiertime ABS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime ABS@300HS.json index 1d716a957d..7014efe177 100644 --- a/resources/profiles/Tiertime/filament/Tiertime ABS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime ABS@300HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB00_01", + "filament_id": "OFNQKF0M", "setting_id": "x1XBGyOHIgrD7PVs", "name": "Tiertime ABS@300HS", "from": "system", diff --git a/resources/profiles/Tiertime/filament/Tiertime ASA.json b/resources/profiles/Tiertime/filament/Tiertime ASA.json index 397f8084a9..2550aa53ae 100644 --- a/resources/profiles/Tiertime/filament/Tiertime ASA.json +++ b/resources/profiles/Tiertime/filament/Tiertime ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "6rwe3zrsvad1oq4C", - "filament_id": "GFB01", + "filament_id": "OFdrYBmI", "instantiation": "true", "fan_max_speed": [ "35" diff --git a/resources/profiles/Tiertime/filament/Tiertime ASA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime ASA@300HS.json index 165590114d..1f465c4dda 100644 --- a/resources/profiles/Tiertime/filament/Tiertime ASA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime ASA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "FreBeBZ1r1VF4ouQ", - "filament_id": "GFB01_01", + "filament_id": "OFdrYBmI", "instantiation": "true", "fan_max_speed": [ "35" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json b/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json index 4319a9cd58..32cd14a523 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "ImJ3Urgk3VVtwceI", - "filament_id": "GFB99", + "filament_id": "OFNLXV8X", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json index 6e3d41f5fc..efd49d6b20 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "tCw1f7MxFjxPr7Ci", - "filament_id": "GFB99_01", + "filament_id": "OFNLXV8X", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json b/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json index 4280c28c4d..614b3b3c19 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "T1AzUXSewNk5Bj3x", - "filament_id": "GFB98", + "filament_id": "OFUaVAdj", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json index 062cf8e345..4962cc3046 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "7C5PjCg1vmTQFXWO", - "filament_id": "GFB98_01", + "filament_id": "OFUaVAdj", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json b/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json index a02176c07d..76918d2c91 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_bvoh", "from": "system", "setting_id": "dhrpnirMnet0hJZl", - "filament_id": "GFS97", + "filament_id": "OFGDaEHO", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json index abe8d42643..124749396e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_bvoh", "from": "system", "setting_id": "xfFXVyGfmXiu508N", - "filament_id": "GFS97_01", + "filament_id": "OFGDaEHO", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json b/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json index e0683c378d..6d9851fb73 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_eva", "from": "system", "setting_id": "ev5w69eBuTCYXB2d", - "filament_id": "GFR99", + "filament_id": "OFrnJJEa", "instantiation": "true", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json index 14ea1b88d1..ff107a65fb 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_eva", "from": "system", "setting_id": "pXuh92Zf1zPiaDXg", - "filament_id": "GFR99_01", + "filament_id": "OFrnJJEa", "instantiation": "true", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json b/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json index 213181630b..54e9d60fbd 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_hips", "from": "system", "setting_id": "sFY2AyXFzAFuj6sv", - "filament_id": "GFS98", + "filament_id": "OFW9uIkE", "instantiation": "true", "filament_is_support": [ "1" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json index 234412a67d..932b1e3239 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_hips", "from": "system", "setting_id": "9epHDviPNHRB5bPD", - "filament_id": "GFS98_01", + "filament_id": "OFW9uIkE", "instantiation": "true", "filament_is_support": [ "1" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json index 4e04b050cf..22b8edb633 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic PA-CF", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN98", + "filament_id": "OFHa3RZT", "setting_id": "DOWYicvaXaTMfzBU", "instantiation": "true", "fan_cooling_layer_time": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json index bd618a1f83..b49c63ab92 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic PA-CF@300HS", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN98_02", + "filament_id": "OFHa3RZT", "setting_id": "nRxvUKo1YXE8daoX", "instantiation": "true", "fan_cooling_layer_time": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA.json b/resources/profiles/Tiertime/filament/Tiertime Generic PA.json index b5fbdf1bcc..4f9e45d05e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PA.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic PA", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN99", + "filament_id": "OFQswlnF", "setting_id": "DmP33sDwKcBDRmDK", "instantiation": "true", "chamber_temperatures": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json index 131ea71f3c..7ef4871120 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic PA@300HS", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN99_01", + "filament_id": "OFQswlnF", "setting_id": "ERn1WYMiSjs6a82N", "instantiation": "true", "chamber_temperatures": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PC.json b/resources/profiles/Tiertime/filament/Tiertime Generic PC.json index 4044d45fe3..264fe0fc03 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PC.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "5wzlA0sFj2xElixU", - "filament_id": "GFC99", + "filament_id": "OFN7aNHe", "instantiation": "true", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json index 6b919af688..86c506902c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "i2ShskYbiq61UJ1B", - "filament_id": "GFC99_01", + "filament_id": "OFN7aNHe", "instantiation": "true", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json b/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json index 2e4dc2d036..49c71cc115 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pctg", "from": "system", "setting_id": "UDqS8gFlHvPIysFk", - "filament_id": "GFG97", + "filament_id": "OFTKFAZ4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json index 10b87ef227..86d034aa24 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pctg", "from": "system", "setting_id": "2Qbbi90zWBoo9dBl", - "filament_id": "GFG97-01", + "filament_id": "OFTKFAZ4", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json index 1cd9a569e6..dc20a657b0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pe", "from": "system", "setting_id": "jzT1pay155tbaY9M", - "filament_id": "GFP98", + "filament_id": "OFkUaDnU", "instantiation": "true", "filament_cost": [ "65.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json index 81b096e4b2..94686b9139 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pe", "from": "system", "setting_id": "5ChSjqNjRn8QArJP", - "filament_id": "GFP98_01", + "filament_id": "OFkUaDnU", "instantiation": "true", "filament_cost": [ "65.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE.json b/resources/profiles/Tiertime/filament/Tiertime Generic PE.json index 16b9244f12..0c9504212c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PE.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pe", "from": "system", "setting_id": "bYC8MPsm3VIgwaSt", - "filament_id": "GFP99", + "filament_id": "OFKuTr12", "instantiation": "true", "filament_cost": [ "40.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json index 7ebf4377fe..4e6aab9e87 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pe", "from": "system", "setting_id": "ZbU3Ov0P5wtbudQ0", - "filament_id": "GFP99_01", + "filament_id": "OFKuTr12", "instantiation": "true", "filament_cost": [ "40.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json index c3907360a9..32ab191cc2 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "zA6nHgNkxBxGKw0w", - "filament_id": "GFG98", + "filament_id": "OFWadebJ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json index 04f803a53e..ed4c4d9347 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "jBUy8xUDg53e51kz", - "filament_id": "GFG98_01", + "filament_id": "OFWadebJ", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json b/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json index e261373c3d..6d15c90d59 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "UevLlG43knAdcET2", - "filament_id": "GFG99", + "filament_id": "OF1uR1t2", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json index cfec6ee335..56157be9e7 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "ZZmmVicb1p0wb5r1", - "filament_id": "GFG99_01", + "filament_id": "OF1uR1t2", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json b/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json index f2be140f37..d924c5d28b 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pha", "from": "system", "setting_id": "tFuE7IEbeGEhCNnz", - "filament_id": "GFR98", + "filament_id": "OFxvKuYW", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json index e6e0475805..7c2deb0b12 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pha", "from": "system", "setting_id": "de5eveMr3bI3OCtF", - "filament_id": "GFR98_01", + "filament_id": "OFxvKuYW", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json index a77cb529ea..bda1527d04 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Ms3c6DePE0cjBeQ4", - "filament_id": "GFL95", + "filament_id": "OFodPDxO", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json index d36f12715b..5814210aee 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "e0vVCCT6Tw4061is", - "filament_id": "GFL95_01", + "filament_id": "OFodPDxO", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json index f2ba37e0eb..88b0e6a700 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "RgKM4PxtAasidTe5", - "filament_id": "GFL96", + "filament_id": "OF0GIkJm", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json index b1911a7e9f..b4fafb3019 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "yV358AeiALOn6xVr", - "filament_id": "GFL96_01", + "filament_id": "OF0GIkJm", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json index a78f6e0438..ff1c8b14ee 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "maM4lXic0F10faAb", - "filament_id": "GFL98", + "filament_id": "OFgVJhVt", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json index 3cc2f855f1..4cb7802847 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "3QSGv6pAz9ihFVuD", - "filament_id": "GFL98_01", + "filament_id": "OFgVJhVt", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json index 768f0e293a..ea77ef41e3 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "q9W1goEbw6UUrNY3", - "filament_id": "GFL99", + "filament_id": "OFuSwKgm", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json index 6ba33d8004..3fe56ea2e0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "jTSVVOuHuQqETOpe", - "filament_id": "GFL99_01", + "filament_id": "OFuSwKgm", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json index 0c1ae8cae1..22cd19292d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "O5VvyfY5CV6IfMPQ", - "filament_id": "GFP96", + "filament_id": "OFMTBcnz", "instantiation": "true", "filament_cost": [ "77.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json index 5874361c2a..15c4591f98 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "3TZu7e58qrjP4F4u", - "filament_id": "GFP96_01", + "filament_id": "OFMTBcnz", "instantiation": "true", "filament_cost": [ "77.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json index bde8189b36..44557aed47 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "ZQnzXtnTMVMVMNaS", - "filament_id": "GFP95", + "filament_id": "OFkYkQGO", "instantiation": "true", "filament_cost": [ "59.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json index b8a677999a..bac285fef0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "WKwUmsEhhYFyGAP5", - "filament_id": "GFP95_01", + "filament_id": "OFkYkQGO", "instantiation": "true", "filament_cost": [ "59.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP.json index 895dd36cee..bef2a0ee16 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "3ZYx92CbNBiocyXx", - "filament_id": "GFP97", + "filament_id": "OF3s929u", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json index 473e1b6643..b908fe1011 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pp", "from": "system", "setting_id": "lx9zoOh3ALDlLasf", - "filament_id": "GFP97_01", + "filament_id": "OF3s929u", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json index 9dba1d2e8a..924f324eb4 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "2zYiuKYR7bESaCnd", - "filament_id": "GFN97", + "filament_id": "OFSPdsuW", "instantiation": "true", "filament_type": [ "PPA-CF" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json index 866d9981bb..918b4cf1a8 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "wLH8aGr4ZNiHazwA", - "filament_id": "GFN97_01", + "filament_id": "OFSPdsuW", "instantiation": "true", "filament_type": [ "PPA-CF" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json index 88d413d976..e84a1c4bb9 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "hYkZEmk1B8X9EcF8", - "filament_id": "GFN96", + "filament_id": "OFptvi3F", "instantiation": "true", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json index 120bbce3c1..dbc3c9ebf3 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_ppa", "from": "system", "setting_id": "1zAhSxsuv3wxgBtQ", - "filament_id": "GFN96_01", + "filament_id": "OFptvi3F", "instantiation": "true", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json index d55bfb7557..8a8485843c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pps", "from": "system", "setting_id": "E0gbADj0OHkGSOxt", - "filament_id": "GFT98", + "filament_id": "OFGzUNbm", "instantiation": "true", "fan_max_speed": [ "30" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json index b4feee2599..cd3e802975 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pps", "from": "system", "setting_id": "6UHEejfZvhQGA4vB", - "filament_id": "GFT98_01", + "filament_id": "OFGzUNbm", "instantiation": "true", "fan_max_speed": [ "30" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json index 8fcf9ee41a..77fe993cdb 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pps", "from": "system", "setting_id": "2L1eOtxSeCJxW3RV", - "filament_id": "GFT97", + "filament_id": "OFvPomQf", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json index 853646bf08..047117502e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pps", "from": "system", "setting_id": "5TZhbLxtLq6kSJJY", - "filament_id": "GFT97_01", + "filament_id": "OFvPomQf", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json b/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json index a77791002e..db73f4b947 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "bTkxwDd1TU8TUqVC", - "filament_id": "GFS99", + "filament_id": "OFMZAoqa", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json index f075f81a59..d1a5b62d7d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "BQ6G75c9eLQQ7ULg", - "filament_id": "GFS99_01", + "filament_id": "OFMZAoqa", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json b/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json index 359885ab4a..ab91c462d0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_sbs", "from": "system", "setting_id": "tHfCQJdD7qiIF4uT", - "filament_id": "OFlxnxDx", + "filament_id": "OFM87w9T", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json index 9fed905ccd..df8a4d7cbe 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_sbs", "from": "system", "setting_id": "neqjohDEPRiOa6ut", - "filament_id": "OFlxnxDx", + "filament_id": "OFM87w9T", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json b/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json index 8a9e07a22f..0ecd0d9636 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic TPU", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU99", + "filament_id": "OFCVUEaV", "setting_id": "Viy3kUE0cTV2rMiC", "instantiation": "true", "filament_max_volumetric_speed": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json b/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json index 456acc8a4e..d1c8e5ba35 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json @@ -3,7 +3,7 @@ "name": "Tiertime Generic TPU@300HS", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU99_01", + "filament_id": "OFCVUEaV", "setting_id": "wgOtq6REuUQmNe5R", "instantiation": "true", "filament_max_volumetric_speed": [ diff --git a/resources/profiles/Tiertime/filament/Tiertime PA6-CF.json b/resources/profiles/Tiertime/filament/Tiertime PA6-CF.json index 8c165a210d..310c4294fb 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PA6-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime PA6-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "HuOPyruYQNhxsjYW", - "filament_id": "GFN05", + "filament_id": "OFe8tuNb", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Tiertime/filament/Tiertime PA6-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PA6-CF@300HS.json index 9d84f62383..bdd8281c05 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PA6-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PA6-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "XniESd6DwW58wgYU", - "filament_id": "GFN05_01", + "filament_id": "OFe8tuNb", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Tiertime/filament/Tiertime PC.json b/resources/profiles/Tiertime/filament/Tiertime PC.json index 4d0ce8c9fa..9b83a065b1 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PC.json +++ b/resources/profiles/Tiertime/filament/Tiertime PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "ImTbFOOUrv2pQbCu", - "filament_id": "GFC00", + "filament_id": "OFdXVjGZ", "instantiation": "true", "filament_vendor": [ "Tiertime" diff --git a/resources/profiles/Tiertime/filament/Tiertime PC@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PC@300HS.json index fb3f03b63d..afefd7e394 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PC@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PC@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "nktjGLDy0Gjl0dO8", - "filament_id": "GFC00_01", + "filament_id": "OFdXVjGZ", "instantiation": "true", "filament_vendor": [ "Tiertime" diff --git a/resources/profiles/Tiertime/filament/Tiertime PET-CF.json b/resources/profiles/Tiertime/filament/Tiertime PET-CF.json index 60a91bd937..c55a9a60c0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PET-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "WjpnXYqwyoeHdaC9", - "filament_id": "GFT01", + "filament_id": "OFCnywiC", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PET-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PET-CF@300HS.json index d844b97bf4..bbe3ec170d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PET-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PET-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "kHWlt3zl53mXcEGp", - "filament_id": "GFT01_01", + "filament_id": "OFCnywiC", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PETG.json b/resources/profiles/Tiertime/filament/Tiertime PETG.json index e4b5313393..9ec377f8f8 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PETG.json +++ b/resources/profiles/Tiertime/filament/Tiertime PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "lw6WCNgazXfTwS4z", - "filament_id": "GFG00", + "filament_id": "OFObyktP", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PETG@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PETG@300HS.json index 822d39d12d..b44cc3ce30 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PETG@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PETG@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "bSujcskPkCuGi3At", - "filament_id": "GFG00_01", + "filament_id": "OFObyktP", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PLA-CF.json b/resources/profiles/Tiertime/filament/Tiertime PLA-CF.json index 86a1895caa..b60dab442f 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PLA-CF.json +++ b/resources/profiles/Tiertime/filament/Tiertime PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "AN8Ptxqrd3fAfsAk", - "filament_id": "GFA50", + "filament_id": "OF7OqDp3", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PLA-CF@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PLA-CF@300HS.json index 9a2dccc6cb..40558619cb 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PLA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PLA-CF@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "S7OJaqjGSnkaPyDQ", - "filament_id": "GFA50_01", + "filament_id": "OF7OqDp3", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime PLA.json b/resources/profiles/Tiertime/filament/Tiertime PLA.json index 22729a9776..d0a030184a 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PLA.json +++ b/resources/profiles/Tiertime/filament/Tiertime PLA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00", + "filament_id": "OFNGTH3w", "setting_id": "dlXQZNrJfvkJ3kWs", "name": "Tiertime PLA", "from": "system", diff --git a/resources/profiles/Tiertime/filament/Tiertime PLA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PLA@300HS.json index b12f813f3e..48073d5c76 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PLA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PLA@300HS.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFA00_01", + "filament_id": "OFNGTH3w", "setting_id": "bqWrzfz6CXHohbpL", "name": "Tiertime PLA@300HS", "from": "system", diff --git a/resources/profiles/Tiertime/filament/Tiertime PVA.json b/resources/profiles/Tiertime/filament/Tiertime PVA.json index 7adba03ec3..689f015f5a 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PVA.json +++ b/resources/profiles/Tiertime/filament/Tiertime PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "9Z1HdjB3dx1Rlyng", - "filament_id": "GFS04", + "filament_id": "OFyreocX", "instantiation": "true", "filament_cost": [ "79.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime PVA@300HS.json b/resources/profiles/Tiertime/filament/Tiertime PVA@300HS.json index 722e3efd60..988cb744db 100644 --- a/resources/profiles/Tiertime/filament/Tiertime PVA@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime PVA@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "1CwFwvd5cNbZwY95", - "filament_id": "GFS04_01", + "filament_id": "OFyreocX", "instantiation": "true", "filament_cost": [ "79.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime TPU 95A.json b/resources/profiles/Tiertime/filament/Tiertime TPU 95A.json index 6feff32639..c328ac64f3 100644 --- a/resources/profiles/Tiertime/filament/Tiertime TPU 95A.json +++ b/resources/profiles/Tiertime/filament/Tiertime TPU 95A.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "aeeRALQ6vydj2vbR", - "filament_id": "GFU01", + "filament_id": "OFLOf6Sc", "instantiation": "true", "filament_vendor": [ "Tiertime" diff --git a/resources/profiles/Tiertime/filament/Tiertime TPU 95A@300HS.json b/resources/profiles/Tiertime/filament/Tiertime TPU 95A@300HS.json index f4340bfed3..d95903d89d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime TPU 95A@300HS.json +++ b/resources/profiles/Tiertime/filament/Tiertime TPU 95A@300HS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "6ee2z5F26fqKny4n", - "filament_id": "GFU01_01", + "filament_id": "OFLOf6Sc", "instantiation": "true", "filament_vendor": [ "Tiertime" diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json index b430674cd7..72564df29b 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json +++ b/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "YqQSUrG195dCz67L", - "filament_id": "GFU99", + "filament_id": "OFdHsxB4", "instantiation": "true", "compatible_printers": [ "TwoTrees SK1 0.4 nozzle" diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json b/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json index b713bc31f4..1a7cef302e 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json +++ b/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "k7bLC5us9mGJzznW", - "filament_id": "GFL100", + "filament_id": "OFBpcB0a", "instantiation": "true", "compatible_printers": [ "TwoTrees SK1 0.4 nozzle" diff --git a/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json b/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json index f780cd48c2..6b67c28f15 100644 --- a/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json +++ b/resources/profiles/Volumic/filament/PA6 CF20 (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFHDaMut", + "filament_id": "OFcKtw8W", "setting_id": "wuZ0EvlbcJ8GxajY", "name": "PA6 CF20 (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/PETG ESD (Performance).json b/resources/profiles/Volumic/filament/PETG ESD (Performance).json index c50871b2a5..06814b64ad 100644 --- a/resources/profiles/Volumic/filament/PETG ESD (Performance).json +++ b/resources/profiles/Volumic/filament/PETG ESD (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFO3IOWM", + "filament_id": "OFiwEbze", "setting_id": "May8rNEMOOs1qtae", "name": "PETG ESD (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/PPS Carbone (Performance).json b/resources/profiles/Volumic/filament/PPS Carbone (Performance).json index 19d79c2174..4708f912c4 100644 --- a/resources/profiles/Volumic/filament/PPS Carbone (Performance).json +++ b/resources/profiles/Volumic/filament/PPS Carbone (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFBRSZom", + "filament_id": "OFEZpel7", "setting_id": "HE0yILdkhbiXbH1j", "name": "PPS Carbone (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ABS Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic ABS Ultra Performance.json index 8b48f0995c..865f03155e 100644 --- a/resources/profiles/Volumic/filament/Volumic ABS Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic ABS Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFyQwdaM", "setting_id": "466ggy6ydgaZOrSx", "name": "Volumic ABS Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ABS Ultra.json b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json index cab927e925..f538936b5a 100644 --- a/resources/profiles/Volumic/filament/Volumic ABS Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic ABS Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFyUJI3q", "setting_id": "omHiTINFPThooUqk", "name": "Volumic ABS Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json index 212d36d0d7..519387adf5 100644 --- a/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFLhOFQk", + "filament_id": "OFU7CKZt", "setting_id": "uE5jxeOBISvO5o7L", "name": "Volumic ASA Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json index 638b2ce47c..2225125c3c 100644 --- a/resources/profiles/Volumic/filament/Volumic ASA Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic ASA Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OF7f0eUZ", + "filament_id": "OF2EB9Iz", "setting_id": "LOAp2zgQWqg1lQQ4", "name": "Volumic ASA Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra Performance.json index 54049ab145..54d0f89bb3 100644 --- a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFU99", + "filament_id": "OFUH1aee", "setting_id": "k5V3bjZrtr7t8zl0", "name": "Volumic FLEX93 Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json index 16f143b405..84ccdc6d19 100644 --- a/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic FLEX93 Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFU99", + "filament_id": "OFuxH0Uz", "setting_id": "DXZ4Gp5XP5VCJTXY", "name": "Volumic FLEX93 Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic NYLON Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic NYLON Ultra Performance.json index 44ab540de1..8a4b44f59b 100644 --- a/resources/profiles/Volumic/filament/Volumic NYLON Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic NYLON Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFN99", + "filament_id": "OFi90KlM", "setting_id": "RC5gFyIejXWDJuHH", "name": "Volumic NYLON Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json index 9b7cbd0602..95c5f81a6a 100644 --- a/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic NYLON Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFN99", + "filament_id": "OFWa0NiB", "setting_id": "AL4xDgN8EIYb3UrL", "name": "Volumic NYLON Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PC Performance.json b/resources/profiles/Volumic/filament/Volumic PC Performance.json index d239419ccf..d454de5688 100644 --- a/resources/profiles/Volumic/filament/Volumic PC Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PC Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFC99", + "filament_id": "OFgSbX7E", "setting_id": "ht6Ar3ilCkPT7geN", "name": "Volumic PC (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PC.json b/resources/profiles/Volumic/filament/Volumic PC.json index 5ffe6cd415..12ea420585 100644 --- a/resources/profiles/Volumic/filament/Volumic PC.json +++ b/resources/profiles/Volumic/filament/Volumic PC.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFC99", + "filament_id": "OFaHjk1V", "setting_id": "3pUnwXise3J77Qmc", "name": "Volumic PC", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json b/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json index d45447dbe7..5e20cb2922 100644 --- a/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json +++ b/resources/profiles/Volumic/filament/Volumic PCTG Ultra (Performance).json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFxfCy9m", + "filament_id": "OFTdauIq", "setting_id": "NdegYSDVrQ4Rawtp", "name": "Volumic PCTG Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra Performance.json index 3a3d240a4e..6b98fc49d2 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFsD974q", "setting_id": "bNcC5kGe9jOm7Ltu", "name": "Volumic PETG Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone Performance.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone Performance.json index adf3a8fc45..91827ebe80 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG98", + "filament_id": "OFY0F5qA", "setting_id": "IIFtCkVvHoLtxPxj", "name": "Volumic PETG Ultra carbone (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json index 4ee0a68464..137bad9d53 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra carbone.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG98", + "filament_id": "OFu08yGN", "setting_id": "nOKT0adoQi3O7Tge", "name": "Volumic PETG Ultra carbone", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PETG Ultra.json b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json index 25162f2d94..8db07d0bab 100644 --- a/resources/profiles/Volumic/filament/Volumic PETG Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PETG Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFG0kOKX", "setting_id": "CuBXW7SqUeJOcxPP", "name": "Volumic PETG Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PLA Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic PLA Ultra Performance.json index 741d2eab82..2a02fe7c88 100644 --- a/resources/profiles/Volumic/filament/Volumic PLA Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PLA Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OF3dJf4E", "setting_id": "8J2ZIz8ByFNEB9PC", "name": "Volumic PLA Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PLA Ultra.json b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json index 67d33d3b52..2e5f762d39 100644 --- a/resources/profiles/Volumic/filament/Volumic PLA Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PLA Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFXuGxvQ", "setting_id": "3BeQ60i4cOs3BfZn", "name": "Volumic PLA Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json index 401033bc96..3fafb8aac0 100644 --- a/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PP Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFPGelMX", + "filament_id": "OFNSYu5h", "setting_id": "nsiOJ8ExySR1RksQ", "name": "Volumic PP Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PP Ultra.json b/resources/profiles/Volumic/filament/Volumic PP Ultra.json index a79589876f..eba78219bc 100644 --- a/resources/profiles/Volumic/filament/Volumic PP Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic PP Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFAGqTQG", + "filament_id": "OFsFo7ms", "setting_id": "UA91pv54dzbBRkFe", "name": "Volumic PP Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PVA Performance.json b/resources/profiles/Volumic/filament/Volumic PVA Performance.json index 92a94ac5c1..199d33ed62 100644 --- a/resources/profiles/Volumic/filament/Volumic PVA Performance.json +++ b/resources/profiles/Volumic/filament/Volumic PVA Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFS99", + "filament_id": "OFRkjhxK", "setting_id": "L9ZTGhwNpVWT6E5j", "name": "Volumic PVA-BVOH (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic PVA.json b/resources/profiles/Volumic/filament/Volumic PVA.json index 5d9892417c..24c28a89a5 100644 --- a/resources/profiles/Volumic/filament/Volumic PVA.json +++ b/resources/profiles/Volumic/filament/Volumic PVA.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFS99", + "filament_id": "OFGdP6Na", "setting_id": "rw4bB5gYM6YF8v9e", "name": "Volumic PVA", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json index 025e1ada57..90562ebba2 100644 --- a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json +++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra Performance.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFPeGtB1", + "filament_id": "OFkGp50Y", "setting_id": "rxVkBvMZYgHOoFW6", "name": "Volumic UNIVERSAL Ultra (Performance)", "from": "system", diff --git a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json index b061d498c2..ee50a25ffd 100644 --- a/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json +++ b/resources/profiles/Volumic/filament/Volumic UNIVERSAL Ultra.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "OFIzguhB", + "filament_id": "OFpumhCM", "setting_id": "6iOFERN4x6xBbtuT", "name": "Volumic UNIVERSAL Ultra", "from": "system", diff --git a/resources/profiles/Volumic/filament/desactive.json b/resources/profiles/Volumic/filament/desactive.json index 6485f044f0..1c490c957e 100644 --- a/resources/profiles/Volumic/filament/desactive.json +++ b/resources/profiles/Volumic/filament/desactive.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "DFL99", + "filament_id": "OFCuaCer", "setting_id": "Sphn4hoDMpH2uy86", "name": "Désactivé", "from": "system", diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json b/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json index 831670240c..0ab07b4387 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "nRFPlbSKRMb0UpSI", - "filament_id": "GFB99", + "filament_id": "OFLBUkwC", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json b/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json index 0996b8cd18..69ba1b7b5b 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "rP4Qul9OY7lUhPgO", - "filament_id": "GFB98", + "filament_id": "OF4XAUnp", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json b/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json index f51cda8ed9..75ca6d6b52 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "AKO1twNgFO67N5GK", - "filament_id": "GFN98", + "filament_id": "OFNn21yM", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PA.json b/resources/profiles/Vzbot/filament/Vzbot Generic PA.json index 815969c712..46184d8018 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PA.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "4CBO5MnUk8Smhs3q", - "filament_id": "GFN99", + "filament_id": "OF0zx94L", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PC.json b/resources/profiles/Vzbot/filament/Vzbot Generic PC.json index ebb44e627a..9731fbbe07 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PC.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PC.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pc", "from": "system", "setting_id": "wUe99Mr4HqzSNxgO", - "filament_id": "GFC99", + "filament_id": "OF9fOPpd", "instantiation": "true", "filament_max_volumetric_speed": [ "50" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json b/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json index cc48d69299..0f585fbb8c 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "C8LMRvN350POVqC2", - "filament_id": "GFG99", + "filament_id": "OFHUnLY2", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json b/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json index 33ab4f69a3..2b73cddba8 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "nt1egZD1dQEVXp0v", - "filament_id": "GFL98", + "filament_id": "OFYHzKyS", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json b/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json index 48a8aefecc..b0e447e66c 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4JMiuJbl1gNrBipT", - "filament_id": "GFL99", + "filament_id": "OF2mgDsI", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json b/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json index 0d0bd62a3e..23a748046e 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "DX4eZb2tlNVqeUrn", - "filament_id": "GFS99", + "filament_id": "OFIda816", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json b/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json index f5ca392779..60901cb86e 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json +++ b/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "YlhTF1F3OA2qj6o2", - "filament_id": "GFU99", + "filament_id": "OFGGyAgJ", "instantiation": "true", "filament_max_volumetric_speed": [ "50" diff --git a/resources/profiles/Wanhao France/filament/YUMI PETG.json b/resources/profiles/Wanhao France/filament/YUMI PETG.json index b8046df21f..97082ee19a 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PETG.json +++ b/resources/profiles/Wanhao France/filament/YUMI PETG.json @@ -4,7 +4,7 @@ "inherits": "Yumi Generic PETG", "from": "system", "setting_id": "PFFm20QNgwqyuglH", - "filament_id": "GFG99", + "filament_id": "OF5NqBfC", "instantiation": "true", "filament_vendor": [ "Yumi" diff --git a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json index f7bac7a60c..5655743ca6 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json +++ b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json @@ -4,7 +4,7 @@ "inherits": "Yumi Generic PLA", "from": "system", "setting_id": "zQSSA2QZi27ESyQK", - "filament_id": "GFU99", + "filament_id": "OFZ2LuAi", "instantiation": "true", "filament_vendor": [ "Yumi" diff --git a/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json b/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json index be13517ab5..52360e2d5b 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json +++ b/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json @@ -4,7 +4,7 @@ "inherits": "Yumi Generic PLA", "from": "system", "setting_id": "v2p0ooSxHnvVkn57", - "filament_id": "GFU99", + "filament_id": "OFJxSqO4", "instantiation": "true", "filament_vendor": [ "Yumi" diff --git a/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json b/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json index 83d505ac6f..af50f6f8b0 100644 --- a/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json +++ b/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json @@ -3,7 +3,7 @@ "name": "Yumi Generic PETG", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFCu3jES", "instantiation": "false", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json b/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json index bbace09129..0ef9bfdad2 100644 --- a/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json +++ b/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json @@ -3,7 +3,7 @@ "name": "Yumi Generic PLA", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFGLeiNL", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/WonderMaker/filament/WonderMaker ABS.json b/resources/profiles/WonderMaker/filament/WonderMaker ABS.json index ab6833cb04..a15b27e098 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker ABS.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker ABS.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "from": "system", "setting_id": "cyLAXg9zBIDNkYNx", - "filament_id": "GFB00", + "filament_id": "OFjHrAX0", "instantiation": "true", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker ASA.json b/resources/profiles/WonderMaker/filament/WonderMaker ASA.json index b73a974ea9..186045f104 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker ASA.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker ASA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_asa", "from": "system", "setting_id": "Wu70ukKHBqIa4TDv", - "filament_id": "GFB01", + "filament_id": "OFy3sW6j", "instantiation": "true", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "eng_plate_temp": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PET-CF.json b/resources/profiles/WonderMaker/filament/WonderMaker PET-CF.json index 79d0a85a77..b86695c98d 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PET-CF.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PET-CF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "Rnm03E1ifi5A2vrQ", - "filament_id": "GFT01", + "filament_id": "OF4f8vVp", "instantiation": "true", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "cool_plate_temp": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PETG Basic.json b/resources/profiles/WonderMaker/filament/WonderMaker PETG Basic.json index 434c0f9fca..0da03e7d8d 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PETG Basic.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PETG Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "ZtPZlMNIqq3Gaavc", - "filament_id": "GFG00", + "filament_id": "OF5lGPup", "instantiation": "true", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Basic.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Basic.json index 7440eae0ee..2723ffd1bb 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Basic.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Basic.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "HRFI81hKAaT1LwjF", - "filament_id": "GFA00", + "filament_id": "OFMK5gVo", "instantiation": "true", "filament_cost": [ "24.99" diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Marble.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Marble.json index 7c641e69b0..9ebd12b035 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Marble.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Marble.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "eudiDwK2EVLlGnha", - "filament_id": "GFA07", + "filament_id": "OFEbIx49", "instantiation": "true", "filament_cost": [ "29.99" diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Matte.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Matte.json index a935c96157..53fc60c709 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Matte.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Matte.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "YufHNkKBRBBxucHO", - "filament_id": "GFA01", + "filament_id": "OFepU7Tl", "instantiation": "true", "filament_cost": [ "24.99" diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Metal.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Metal.json index 222fcbce1a..09454f9a80 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Metal.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Metal.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "4B7gD5YwPbUCvLAh", - "filament_id": "GFA02", + "filament_id": "OFcogyWl", "instantiation": "true", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Silk.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Silk.json index 6738e2802e..7e2b3be650 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Silk.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Silk.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "8kSWEkCpitdwX11c", - "filament_id": "GFA05", + "filament_id": "OFncpm7O", "instantiation": "true", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PLA Wood.json b/resources/profiles/WonderMaker/filament/WonderMaker PLA Wood.json index d4b51f4b0d..a2b96925a6 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PLA Wood.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PLA Wood.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "KxnOjANQuyO10zzH", - "filament_id": "GFA16", + "filament_id": "OFBBgw7B", "instantiation": "true", "filament_cost": [ "24.99" diff --git a/resources/profiles/WonderMaker/filament/WonderMaker PVA.json b/resources/profiles/WonderMaker/filament/WonderMaker PVA.json index 65f504da95..1ec283f106 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker PVA.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker PVA.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pva", "from": "system", "setting_id": "PRdEoagTzltjzJCQ", - "filament_id": "GFS04", + "filament_id": "OF4ulo9Y", "instantiation": "true", "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.", "filament_cost": [ diff --git a/resources/profiles/WonderMaker/filament/WonderMaker TPU 95A.json b/resources/profiles/WonderMaker/filament/WonderMaker TPU 95A.json index 3b617e15ab..a8d7620cec 100755 --- a/resources/profiles/WonderMaker/filament/WonderMaker TPU 95A.json +++ b/resources/profiles/WonderMaker/filament/WonderMaker TPU 95A.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "eUyRprcb22IdYNv3", - "filament_id": "GFU01", + "filament_id": "OFLAXKqP", "instantiation": "true", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.4 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.4 nozzle.json index 5f505d80da..10b5421797 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.4 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.4 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS;Generic ABS @Z-Bolt;Z-Bolt ABS @0.4 nozzle", "from": "system", "setting_id": "p97bQCnVyGgwMn2y", - "filament_id": "GFL204", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.6 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.6 nozzle.json index 641fff9a6b..ea89fac80f 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.6 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.6 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS @0.6 nozzle", "from": "system", "setting_id": "BQdgCL8lvVW7I8Dw", - "filament_id": "GFL206", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.8 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.8 nozzle.json index 1b55d4460b..48c8a20136 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.8 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt 0.8 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS @0.8 nozzle", "from": "system", "setting_id": "Xn2L7IBp26Bb6G2K", - "filament_id": "GFL208", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_max_volumetric_speed": [ "21" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json index bdef07fbb7..609e9f6106 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_abs", "renamed_from": "Z-Bolt ABS;Generic ABS @Z-Bolt", "from": "system", - "filament_id": "GFL200", + "filament_id": "OFY9muEs", "instantiation": "false", "filament_max_volumetric_speed": [ "20" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.4 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.4 nozzle.json index a933deaf74..7ee03a1904 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.4 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.4 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS HT;Generic ABS HT @Z-Bolt;Z-Bolt ABS HT @0.4 nozzle", "from": "system", "setting_id": "TDGj84iuRAL9R1d4", - "filament_id": "GFL504", + "filament_id": "OFsP8PKH", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.6 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.6 nozzle.json index 701a2e6b7f..626fbe9977 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.6 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.6 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS HT @0.6 nozzle", "from": "system", "setting_id": "2AKxm2VhVlL2vMM1", - "filament_id": "GFL506", + "filament_id": "OFsP8PKH", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.8 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.8 nozzle.json index 6c73a3d99f..feb932dcdb 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.8 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt 0.8 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt ABS HT @0.8 nozzle", "from": "system", "setting_id": "ztusMudd96Ns3Ip0", - "filament_id": "GFL508", + "filament_id": "OFsP8PKH", "instantiation": "true", "filament_max_volumetric_speed": [ "21" diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json index 431d4dc7c2..0448f04bed 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @Z-Bolt Base", "renamed_from": "Z-Bolt ABS HT;Generic ABS HT @Z-Bolt", "from": "system", - "filament_id": "GFL500", + "filament_id": "OFsP8PKH", "instantiation": "false", "description": "Use this filament profile to print big ABS models with chamber heating", "chamber_temperatures": [ diff --git a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.4 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.4 nozzle.json index e9b01c547c..c09de55efa 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.4 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.4 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PA;Generic PA @Z-Bolt;Z-Bolt PA @0.4 nozzle", "from": "system", "setting_id": "zuvJBWxHOiPMyExQ", - "filament_id": "GFL404", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.6 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.6 nozzle.json index d74fcf8470..d6886e6b1e 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.6 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.6 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PA @0.6 nozzle", "from": "system", "setting_id": "MB0n4BeDFEI25yTe", - "filament_id": "GFL406", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.8 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.8 nozzle.json index 42d675d826..12a005431f 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.8 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt 0.8 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PA @0.8 nozzle", "from": "system", "setting_id": "WZc4C1f6cPG8HZR3", - "filament_id": "GFL408", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json index 73459bf326..f593385ea7 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "renamed_from": "Z-Bolt PA;Generic PA @Z-Bolt", "from": "system", - "filament_id": "GFL400", + "filament_id": "OFg8ndtj", "instantiation": "false", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.4 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.4 nozzle.json index 476ece5d3b..a28c4bc1c3 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.4 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.4 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PETG;Generic PETG @Z-Bolt;Z-Bolt PETG @0.4 nozzle", "from": "system", "setting_id": "LWwbNXs8bf1iGELi", - "filament_id": "GFL304", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.6 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.6 nozzle.json index 8bd7ff1efa..15aab3fe46 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.6 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.6 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PETG @0.6 nozzle", "from": "system", "setting_id": "w4HVBbunzssG9j3s", - "filament_id": "GFL306", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.8 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.8 nozzle.json index 3bce1def13..4fe8b41490 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.8 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt 0.8 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PETG @0.8 nozzle", "from": "system", "setting_id": "TnLZ0vOVjIjng3u0", - "filament_id": "GFL308", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json index 8e64cc6200..4c8d8dc6a7 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "renamed_from": "Z-Bolt PETG;Generic PETG @Z-Bolt", "from": "system", - "filament_id": "GFL300", + "filament_id": "OFYPdQJh", "instantiation": "false", "fan_cooling_layer_time": [ "30" diff --git a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.4 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.4 nozzle.json index 943d57d6c1..527888a93f 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.4 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.4 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PLA;Generic PLA @Z-Bolt;Z-Bolt PLA @0.4 nozzle", "from": "system", "setting_id": "0MfamDPH1L6sMRff", - "filament_id": "GFL100", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "15" diff --git a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.6 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.6 nozzle.json index a87f145129..af58bff7c5 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.6 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.6 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PLA @0.6 nozzle", "from": "system", "setting_id": "tdq9Ye9GLpZXlak6", - "filament_id": "GFL106", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.8 nozzle.json b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.8 nozzle.json index 283951b1a2..dbe507507b 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.8 nozzle.json +++ b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt 0.8 nozzle.json @@ -5,7 +5,7 @@ "renamed_from": "Z-Bolt PLA @0.8 nozzle", "from": "system", "setting_id": "GKtc9mJusUZJD6kx", - "filament_id": "GFL108", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "21" diff --git a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json index 4b946c44cd..df2c3259e1 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "renamed_from": "Z-Bolt PLA;Generic PLA @Z-Bolt", "from": "system", - "filament_id": "GFL100", + "filament_id": "OFDSrzZ8", "instantiation": "false", "filament_max_volumetric_speed": [ "20" diff --git a/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json index 79be89b387..5710a6c96e 100644 --- a/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "7YUqT6co3NfvJ8L9", - "filament_id": "IQM1", + "filament_id": "OFjUGUIK", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json index 8b07c6af0f..f3dfafcd74 100644 --- a/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "B5VrAYqX9Dzj5qfV", - "filament_id": "IQM7", + "filament_id": "OF6kj4jI", "instantiation": "true", "compatible_prints": [ "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)" diff --git a/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json index 986de30106..3ead9c48e3 100644 --- a/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "5M829nxsQdq2Sde5", - "filament_id": "OFL4BLAC", + "filament_id": "OFXJ9iom", "instantiation": "true", "compatible_prints": [ "0.20mm Standard @iQ TiQ2 P1 - HPP4GF25 Grauts (0.4 Nozzle)" diff --git a/resources/profiles/iQ/filament/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle.json b/resources/profiles/iQ/filament/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle.json index e0faf6eb71..3409911a32 100644 --- a/resources/profiles/iQ/filament/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "2gaJup2jw52l27sv", - "filament_id": "IQM2", + "filament_id": "OFJWKoYG", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json index 5226e1e755..2bcd99b952 100644 --- a/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "QefI7iu8bAQ9jzDK", - "filament_id": "IQM3", + "filament_id": "OFaeIx7W", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json index 2855f13552..aacf080a4b 100644 --- a/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_common", "from": "system", "setting_id": "rVzUhxKEDUfGMnQi", - "filament_id": "IQM1011", + "filament_id": "OFOJPAAS", "instantiation": "true", "compatible_prints": [ "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)" diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json index 42abbeb819..037ec7f86c 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG01", + "filament_id": "OFSTCno1", "setting_id": "fRX555Prkdu5ESIp", "name": "re3D Greengate rPETG @0.8 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json index 43de0b8685..3602474096 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG01", + "filament_id": "OFSTCno1", "setting_id": "6aPU6CYS2cmODkok", "name": "re3D Greengate rPETG @1.75 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG.json b/resources/profiles/re3D/filament/re3D Greengate rPETG.json index fe0ff8f81b..349d40fff9 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG.json +++ b/resources/profiles/re3D/filament/re3D Greengate rPETG.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "GFG01", + "filament_id": "OFSTCno1", "setting_id": "SdugLw5oy9GB7NID", "filament_settings_id": [ "re3D Greengate rPETG" diff --git a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json index 47a3a44f34..bb81730159 100644 --- a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pc", - "filament_id": "GFG99", + "filament_id": "OFU3QXL7", "setting_id": "6yqRE2eSyER7X82N", "filament_settings_id": [ "re3D PC @0.4 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json index c1f329f295..698cc5f4bd 100644 --- a/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pc", - "filament_id": "GFG99", + "filament_id": "OFU3QXL7", "setting_id": "YVPbVSiVCzjp5ynf", "filament_settings_id": [ "re3D PC @0.8 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PC.json b/resources/profiles/re3D/filament/re3D PC.json index 36e475e4e9..26e6ac4a92 100644 --- a/resources/profiles/re3D/filament/re3D PC.json +++ b/resources/profiles/re3D/filament/re3D PC.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pc", - "filament_id": "GFG99", + "filament_id": "OFU3QXL7", "setting_id": "eSR00TZTotTvJs8l", "filament_settings_id": [ "re3D PC" diff --git a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json index c275a7517f..3e2ad13f10 100644 --- a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "GFG03", + "filament_id": "OF3F63OE", "setting_id": "epcrSCwjgRXMycBx", "filament_settings_id": [ "re3D PETG @0.4 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json index 148f6540fe..5faa19b476 100644 --- a/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "GFG03", + "filament_id": "OF3F63OE", "setting_id": "MoQie1JMlUeH0BwR", "filament_settings_id": [ "re3D PETG @0.8 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PETG.json b/resources/profiles/re3D/filament/re3D PETG.json index fb4cf4278c..426849c4a1 100644 --- a/resources/profiles/re3D/filament/re3D PETG.json +++ b/resources/profiles/re3D/filament/re3D PETG.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "GFG03", + "filament_id": "OF3F63OE", "setting_id": "msXDK31R8KOvqNqK", "filament_settings_id": [ "re3D PETG" diff --git a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json index 1719807f7f..06a6d9942b 100644 --- a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", - "filament_id": "GFL99", + "filament_id": "OFRyOsZj", "setting_id": "M8OOntNjjDBR4W32", "filament_settings_id": [ "re3D PLA @0.4 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json index 01e7abbc9a..41227d9da5 100644 --- a/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", - "filament_id": "GFL99", + "filament_id": "OFRyOsZj", "setting_id": "SpF19Y2sSYbPHyxz", "filament_settings_id": [ "re3D PLA @0.8 nozzle" diff --git a/resources/profiles/re3D/filament/re3D PLA.json b/resources/profiles/re3D/filament/re3D PLA.json index c3eb730024..3f26dd5834 100644 --- a/resources/profiles/re3D/filament/re3D PLA.json +++ b/resources/profiles/re3D/filament/re3D PLA.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", - "filament_id": "GFL99", + "filament_id": "OFRyOsZj", "setting_id": "nPpDwvFg7WQr7K3t", "filament_settings_id": [ "re3D PLA" diff --git a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json index a49f19e128..56a0875c80 100644 --- a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG02", + "filament_id": "OFfHGM1D", "setting_id": "i9ii0b7qFYWnkGSq", "name": "re3D rPP @0.8 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json index 0bde56c596..91d8aa1a3b 100644 --- a/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG02", + "filament_id": "OFfHGM1D", "setting_id": "356nOwsfGLI3CNqU", "name": "re3D rPP @1.75 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D rPP.json b/resources/profiles/re3D/filament/re3D rPP.json index d226697240..2c66bc7b97 100644 --- a/resources/profiles/re3D/filament/re3D rPP.json +++ b/resources/profiles/re3D/filament/re3D rPP.json @@ -7,7 +7,7 @@ "filament_type": [ "PP" ], - "filament_id": "GFG02", + "filament_id": "OFfHGM1D", "setting_id": "8PB62qm5Cd3SHLf4", "filament_settings_id": [ "re3D rPP" diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index a23c0d8cbc..fd99602923 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -1,5 +1,120 @@ { "hints": { + "GFA00_01": "OF9HCdyQ", + "GFA03": "OFjXrKFO", + "GFA50_01": "OF7OqDp3", + "GFA99": "OF0yFLkY", + "GFASA": "OF0yFLkY", + "GFB00_01": "OFNQKF0M", + "GFB01_01": "OFdrYBmI", + "GFB98": "OFLPAxz3", + "GFB98_01": "OFUaVAdj", + "GFB98_2": "OFoJcr46", + "GFB98_3": "OFoJcr46", + "GFB98_4": "OFoJcr46", + "GFB98_5": "OFK4LdYI", + "GFB98_6": "OFK4LdYI", + "GFB98_7": "OFK4LdYI", + "GFB99": "OFY9muEs", + "GFB99_01": "OFNLXV8X", + "GFB99_2": "OFvGc67v", + "GFB99_3": "OFvGc67v", + "GFB99_4": "OFvGc67v", + "GFB99_5": "OFvGc67v", + "GFB99_6": "OFyeSq8A", + "GFB99_7": "OFyeSq8A", + "GFC00_01": "OFdXVjGZ", + "GFC98": "OFjz0a3m", + "GFC99": "OFLakOUI", + "GFC99_01": "OFN7aNHe", + "GFC99_1": "OF97ru74", + "GFC99_2": "OF97ru74", + "GFC99_3": "OF97ru74", + "GFC99_4": "OF97ru74", + "GFC99_5": "OFq5QANf", + "GFC99_6": "OFq5QANf", + "GFG00_01": "OFObyktP", + "GFG03": "OF3F63OE", + "GFG96": "OF7lOgYF", + "GFG97": "OFu1evlr", + "GFG97-01": "OFTKFAZ4", + "GFG98": "OFoYSJKi", + "GFG98_01": "OFWadebJ", + "GFG99": "OFYPdQJh", + "GFG99_01": "OF1uR1t2", + "GFG99_2": "OF1Id239", + "GFG99_3": "OF1Id239", + "GFG99_4": "OF1Id239", + "GFG99_5": "OF1Id239", + "GFG99_6": "OFOKYhi6", + "GFG99_7": "OFOKYhi6", + "GFL100": "OFBpcB0a", + "GFL106": "OFDSrzZ8", + "GFL108": "OFDSrzZ8", + "GFL204": "OFY9muEs", + "GFL206": "OFY9muEs", + "GFL208": "OFY9muEs", + "GFL304": "OFYPdQJh", + "GFL306": "OFYPdQJh", + "GFL308": "OFYPdQJh", + "GFL404": "OFg8ndtj", + "GFL406": "OFg8ndtj", + "GFL408": "OFg8ndtj", + "GFL504": "OFsP8PKH", + "GFL506": "OFsP8PKH", + "GFL508": "OFsP8PKH", + "GFL71": "OF0omtEb", + "GFL72": "OFFZ458u", + "GFL73": "OFeVzkSU", + "GFL74": "OF0VpkBM", + "GFL75": "OFnXwW8l", + "GFL76": "OF6H51Xx", + "GFL77": "OFtFtiS0", + "GFL78": "OFelDBgv", + "GFL79": "OF5oXk4M", + "GFL80": "OFHknN4v", + "GFL94": "OFrGJ4tR", + "GFL95": "OFmpMwxS", + "GFL95_01": "OFodPDxO", + "GFL96": "OFesA6rF", + "GFL96_01": "OF0GIkJm", + "GFL97": "OFCp3Bgo", + "GFL98": "OFWbdGsC", + "GFL98_01": "OFgVJhVt", + "GFL98_1": "OFQ7I5vC", + "GFL98_3": "OFQ7I5vC", + "GFL98_4": "OFQ7I5vC", + "GFL98_5": "OFQ7I5vC", + "GFL99": "OFDSrzZ8", + "GFL99_01": "OFuSwKgm", + "GFL99_2": "OFiCHnso", + "GFL99_3": "OFiCHnso", + "GFL99_4": "OFiCHnso", + "GFL99_5": "OFiCHnso", + "GFL99_6": "OFl4ItvQ", + "GFL99_7": "OFl4ItvQ", + "GFLLK10PETG": "OFYPdQJh", + "GFLLK10PLA": "OFDSrzZ8", + "GFLLK10PPETG": "OFYPdQJh", + "GFLLK10PPLA": "OFDSrzZ8", + "GFLSBS99": "OFhQfUQY", + "GFN05_01": "OFe8tuNb", + "GFN96": "OF8Tlg47", + "GFN96_01": "OFptvi3F", + "GFN97": "OF8tPByX", + "GFN97_01": "OFSPdsuW", + "GFN98": "OFQLcbps", + "GFN98_02": "OFHa3RZT", + "GFN98_1": "OFfznI0Q", + "GFN98_2": "OFfznI0Q", + "GFN98_3": "OFfznI0Q", + "GFN98_4": "OFfznI0Q", + "GFN99": "OFg8ndtj", + "GFN99_01": "OFQswlnF", + "GFN99_1": "OFIy3kLw", + "GFN99_2": "OFIy3kLw", + "GFN99_3": "OFIy3kLw", + "GFN99_4": "OFIy3kLw", "GFOT001": "OFxA1p01", "GFOT002": "OFGkyftV", "GFOT003": "OF1Pke8t", @@ -8,6 +123,48 @@ "GFOT006": "OFcfQk4h", "GFOT008": "OFcvKkrs", "GFOT009": "OFM91vZs", + "GFP95": "OFNiSLfL", + "GFP95_01": "OFkYkQGO", + "GFP96": "OFXkm8q1", + "GFP96_01": "OFMTBcnz", + "GFP97": "OF1UNk9P", + "GFP97_01": "OF3s929u", + "GFP98": "OFd0Fv0k", + "GFP98_01": "OFkUaDnU", + "GFP99": "OFPklMI1", + "GFP99_01": "OFKuTr12", + "GFPA": "OFzS7zt4", + "GFPA6-CF": "OFQe7sAx", + "GFPAHT-CF": "OFaEuvNF", + "GFPC": "OFZtkHRq", + "GFPC-CF": "OFeIyhUx", + "GFPC-GF": "OFxJRuVF", + "GFPEBA": "OFjLAYgO", + "GFPET-CF": "OFRhCTUg", + "GFPETG": "OFYPdQJh", + "GFPETG-1": "OFIeCuXj", + "GFPETG-CF": "OF9UJOGF", + "GFPLA Glow": "OF5PtjTp", + "GFPLA Translucent": "OF7c9fln", + "GFPLA-CF": "OFZ0mR5b", + "GFPVA": "OFTkj6DR", + "GFR98": "OF74KeQR", + "GFR98_01": "OFxvKuYW", + "GFR99": "OFCD8qiU", + "GFR99_01": "OFrnJJEa", + "GFS04_01": "OFyreocX", + "GFS97": "OFo2UF2C", + "GFS97_01": "OFGDaEHO", + "GFS98": "OFsFon5l", + "GFS98_01": "OFW9uIkE", + "GFS99": "OFDvXujf", + "GFS99_01": "OFMZAoqa", + "GFS99_1": "OFcCzEkS", + "GFS99_2": "OFcCzEkS", + "GFS99_3": "OFcCzEkS", + "GFS99_4": "OFcCzEkS", + "GFS99_5": "OFoT8F7Y", + "GFS99_6": "OFoT8F7Y", "GFSEP001": "OFtudokz", "GFSEP002": "OFf5awy4", "GFSEP003": "OFbP8zEO", @@ -25,9 +182,777 @@ "GFSEP015": "OFvVy7yo", "GFSEP016": "OFTOPcx0", "GFSEP017": "OFXCBZTA", - "GFSEP018": "OFlSNkhc" + "GFSEP018": "OFlSNkhc", + "GFSL99": "OFqOk9Ww", + "GFT01_01": "OFCnywiC", + "GFT97_01": "OFvPomQf", + "GFT98_01": "OFGzUNbm", + "GFTPU 95A": "OFML2aVd", + "GFTPU for ACE": "OF0FfcAG", + "GFU01_01": "OFDJU6R3", + "GFU99": "OFgbpcy9", + "GFU99_01": "OFCVUEaV", + "GFU99_2": "OFbenYUK", + "GFU99_3": "OFU3zwPc" }, "retired": { + "00001": { + "claims": [ + "Creality/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "00002": { + "claims": [ + "Creality/Generic PLA-Silk" + ], + "successor": "OFi6PfUM" + }, + "00003": { + "claims": [ + "Creality/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "00004": { + "claims": [ + "Creality/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "00005": { + "claims": [ + "Creality/Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "00006": { + "claims": [ + "Creality/Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "00007": { + "claims": [ + "Creality/Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "00008": { + "claims": [ + "Creality/Generic PA" + ], + "successor": "OFg8ndtj" + }, + "00009": { + "claims": [ + "Creality/Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "00010": { + "claims": [ + "Creality/Generic BVOH" + ], + "successor": "OFo2UF2C" + }, + "00011": { + "claims": [ + "Creality/Generic PVA" + ], + "successor": "OFDvXujf" + }, + "00012": { + "claims": [ + "Creality/Generic HIPS" + ], + "successor": "OFsFon5l" + }, + "00013": { + "claims": [ + "Creality/Generic PET-CF" + ], + "successor": "OFQdaVZS" + }, + "00014": { + "claims": [ + "Creality/Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "00015": { + "claims": [ + "Creality/Generic PA6-CF" + ], + "successor": "OFhTPf6L" + }, + "00016": { + "claims": [ + "Creality/Generic PAHT-CF" + ], + "successor": "OFH7b12v" + }, + "00017": { + "claims": [ + "Creality/Generic PPS" + ], + "successor": "OFq9svOz" + }, + "00018": { + "claims": [ + "Creality/Generic PPS-CF" + ], + "successor": "OF6rdQ6M" + }, + "00019": { + "claims": [ + "Creality/Generic PP" + ], + "successor": "OF1UNk9P" + }, + "00020": { + "claims": [ + "Creality/Generic PET" + ], + "successor": "OF6MOPWx" + }, + "00021": { + "claims": [ + "Creality/Generic PC" + ], + "successor": "OFLakOUI" + }, + "00022": { + "claims": [ + "Creality/Generic PA612-CF" + ], + "successor": "OF8eaY7j" + }, + "00023": { + "claims": [ + "Creality/Generic Support for PA" + ], + "successor": "OFDtop41" + }, + "00024": { + "claims": [ + "Creality/Generic Support for PLA" + ], + "successor": "OFin64Qg" + }, + "00025": { + "claims": [ + "Creality/Generic PA12-CF" + ], + "successor": "OFM4iJlv" + }, + "00026": { + "claims": [ + "Creality/Generic TPU 64D" + ], + "successor": "OFF3cuzT" + }, + "00027": { + "claims": [ + "Creality/Generic PETG-GF" + ], + "successor": "OFyLWVF3" + }, + "00031": { + "claims": [ + "Creality/Generic PP-CF" + ], + "successor": "OFXkm8q1" + }, + "00032": { + "claims": [ + "Creality/Generic PCTG" + ], + "successor": "OFu1evlr" + }, + "00033": { + "claims": [ + "Creality/Generic ASA-CF" + ], + "successor": "OF53eLVD" + }, + "00034": { + "claims": [ + "Creality/Generic PA6-GF" + ], + "successor": "OFh9u9c0" + }, + "00035": { + "claims": [ + "Creality/eSUN PLA-LW" + ], + "successor": "OFi5RSve" + }, + "01001": { + "claims": [ + "Creality/Creality Hyper PLA", + "Creality/Hyper PLA" + ], + "successor": "OFAIrQXu" + }, + "01002": { + "claims": [ + "Creality/Hyper L-W PLA" + ], + "successor": "OF70zbGS" + }, + "01003": { + "claims": [ + "Creality/Hyper Luminous" + ], + "successor": "OFC1PzXz" + }, + "01004": { + "claims": [ + "Creality/Hyper Stardust" + ], + "successor": "OFXnToSX" + }, + "01601": { + "claims": [ + "Creality/Soleyin Ultra PLA" + ], + "successor": "OF02UAVh" + }, + "02001": { + "claims": [ + "Creality/Creality Hyper PLA-CF", + "Creality/Hyper PLA-CF" + ], + "successor": "OFGwT5Av" + }, + "03001": { + "claims": [ + "Creality/Creality Hyper ABS", + "Creality/Hyper ABS" + ], + "successor": "OF8GnyFU" + }, + "04001": { + "claims": [ + "Creality/CR-PLA", + "Creality/Creality Generic PLA" + ], + "successor": "OFACSw9O" + }, + "05001": { + "claims": [ + "Creality/CR-Silk", + "Creality/Creality Silk PLA" + ], + "successor": "OF3OMgrI" + }, + "06001": { + "claims": [ + "Creality/CR-PETG", + "Creality/Creality Generic PETG" + ], + "successor": "OF3WQaKK" + }, + "06002": { + "claims": [ + "Creality/Hyper PETG" + ], + "successor": "OFujZSdh" + }, + "06003": { + "claims": [ + "Creality/Hyper PETG-CF" + ], + "successor": "OFusbWjj" + }, + "06004": { + "claims": [ + "Creality/Hyper PETG-GF" + ], + "successor": "OFLgwqp2" + }, + "06005": { + "claims": [ + "Creality/Soleyin Basic PETG" + ], + "successor": "OFBLktDy" + }, + "07001": { + "claims": [ + "Creality/CR-ABS", + "Creality/Creality Generic ABS" + ], + "successor": "OFGwZmgS" + }, + "07002": { + "claims": [ + "Creality/Hyper PC" + ], + "successor": "OFUF7oA4" + }, + "08001": { + "claims": [ + "Creality/Ender-PLA" + ], + "successor": "OFWao3Ic" + }, + "09001": { + "claims": [ + "Creality/EN-PLA+" + ], + "successor": "OFks6esg" + }, + "09002": { + "claims": [ + "Creality/ENDER FAST PLA" + ], + "successor": "OFfSqS4R" + }, + "10001": { + "claims": [ + "Creality/Creality Generic TPU", + "Creality/HP-TPU" + ], + "successor": "OFGcMkEB" + }, + "1009481135": { + "claims": [ + "Snapmaker/Snapmaker J1 PET" + ], + "successor": "OF8Jl6NT" + }, + "1042511226": { + "claims": [ + "Snapmaker/Snapmaker Dual PETG-CF" + ], + "successor": "OF3msXEa" + }, + "10425112260": { + "claims": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "successor": "OFOwQuZM" + }, + "11001": { + "claims": [ + "Creality/CR-Nylon", + "Creality/Creality Generic PA" + ], + "successor": "OFMqYusc" + }, + "1172603684": { + "claims": [ + "Snapmaker/Snapmaker J1 PETG" + ], + "successor": "OFQMTRc8" + }, + "1181363872": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA Silk" + ], + "successor": "OFyj3m13" + }, + "11813638720": { + "claims": [ + "Snapmaker/Snapmaker PLA Silk" + ], + "successor": "OFWgFOjn" + }, + "1192769348": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA Matte" + ], + "successor": "OFY3AB7j" + }, + "12002": { + "claims": [ + "Creality/Hyper PPA-CF" + ], + "successor": "OFNvBIL0" + }, + "12003": { + "claims": [ + "Creality/Hyper PAHT-CF" + ], + "successor": "OF4APyxe" + }, + "12004": { + "claims": [ + "Creality/Hyper PA612-CF" + ], + "successor": "OFhkN0a7" + }, + "12005": { + "claims": [ + "Creality/Hyper PA6-CF" + ], + "successor": "OFn2GlhY" + }, + "1207881278": { + "claims": [ + "Snapmaker/Snapmaker Dual Breakaway" + ], + "successor": "OFfmHUkQ" + }, + "1210173120": { + "claims": [ + "Snapmaker/Snapmaker J1 PA-CF" + ], + "successor": "OFYEtXuk" + }, + "1223824394": { + "claims": [ + "Snapmaker/Snapmaker J1 ABS" + ], + "successor": "OFy14TRA" + }, + "1247172706": { + "claims": [ + "Snapmaker/Snapmaker Dual ASA" + ], + "successor": "OFKUEXPA" + }, + "12471727060": { + "claims": [ + "Snapmaker/Snapmaker ASA" + ], + "successor": "OF1d7c3A" + }, + "13001": { + "claims": [ + "Creality/CR-PLA Carbon" + ], + "successor": "OFrM4hdm" + }, + "1344609062": { + "claims": [ + "Snapmaker/Snapmaker PVA" + ], + "successor": "OFyhjiNs" + }, + "1355502217": { + "claims": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "successor": "OFOwQuZM" + }, + "1393866034": { + "claims": [ + "Snapmaker/PolyLite Dual PLA", + "Snapmaker/PolyLite J1 PLA", + "Snapmaker/PolyLite PLA" + ], + "successor": "OF5CgdDq" + }, + "14001": { + "claims": [ + "Creality/CR-PLA Matte" + ], + "successor": "OFM0xjBG" + }, + "1417031127": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA" + ], + "successor": "OFZivHGL" + }, + "14170311270": { + "claims": [ + "Snapmaker/Snapmaker PLA" + ], + "successor": "OFlufQpZ" + }, + "141703112701": { + "claims": [ + "Snapmaker/Snapmaker PLA SnapSpeed" + ], + "successor": "OFwhLMs4" + }, + "1417031127011": { + "claims": [ + "Snapmaker/Snapmaker PLA Lite" + ], + "successor": "OFEOnBj6" + }, + "144877656": { + "claims": [ + "Snapmaker/Snapmaker J1 ASA" + ], + "successor": "OFt7SngH" + }, + "1480063856": { + "claims": [ + "Snapmaker/Snapmaker TPU" + ], + "successor": "OF65InrS" + }, + "15001": { + "claims": [ + "Creality/CR-PLA Fluo" + ], + "successor": "OFgpQwkk" + }, + "1528786603": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA Silk" + ], + "successor": "OFQ1KzO8" + }, + "16001": { + "claims": [ + "Creality/CR-TPU" + ], + "successor": "OFG2RkhN" + }, + "1655727393": { + "claims": [ + "Snapmaker/Snapmaker PLA Silk" + ], + "successor": "OFWgFOjn" + }, + "168223792": { + "claims": [ + "Snapmaker/Snapmaker Dual ABS" + ], + "successor": "OFJhT2fd" + }, + "1682237920": { + "claims": [ + "Snapmaker/Snapmaker ABS" + ], + "successor": "OF72YYTd" + }, + "1695556157": { + "claims": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "successor": "OFpu74Qe" + }, + "17001": { + "claims": [ + "Creality/CR-Wood" + ], + "successor": "OFGxC8gB" + }, + "1702147325": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA-CF" + ], + "successor": "OF6ATsCF" + }, + "17021473250": { + "claims": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "successor": "OFhQf8ou" + }, + "18001": { + "claims": [ + "Creality/HP Ultra PLA" + ], + "successor": "OFCJpR7a" + }, + "1895495477": { + "claims": [ + "Snapmaker/Snapmaker PETG" + ], + "successor": "OF4WB37S" + }, + "19001": { + "claims": [ + "Creality/Creality Generic ASA", + "Creality/HP-ASA" + ], + "successor": "OFPHLnoe" + }, + "200803790": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA Eco" + ], + "successor": "OFyPG8v2" + }, + "2008037900": { + "claims": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "successor": "OFpu74Qe" + }, + "2029994346": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA Metal" + ], + "successor": "OFg3cWVt" + }, + "20299943460": { + "claims": [ + "Snapmaker/Snapmaker PLA Metal" + ], + "successor": "OFtybfNX" + }, + "2128577941": { + "claims": [ + "Snapmaker/Snapmaker Dual PET" + ], + "successor": "OFUIfGoh" + }, + "21285779410": { + "claims": [ + "Snapmaker/Snapmaker PET" + ], + "successor": "OFQYaiGg" + }, + "2209001062": { + "claims": [ + "Snapmaker/Snapmaker Dual PETG" + ], + "successor": "OFBlFMVp" + }, + "22090010620": { + "claims": [ + "Snapmaker/Snapmaker PETG" + ], + "successor": "OF4WB37S" + }, + "2549587591": { + "claims": [ + "Snapmaker/Snapmaker PET" + ], + "successor": "OFQYaiGg" + }, + "2742961008": { + "claims": [ + "Snapmaker/Snapmaker ASA" + ], + "successor": "OF1d7c3A" + }, + "29001": { + "claims": [ + "Creality/Hyper Marble" + ], + "successor": "OFLzx3J4" + }, + "2971656290": { + "claims": [ + "Snapmaker/Snapmaker Dual TPU" + ], + "successor": "OFjkdnyN" + }, + "29716562900": { + "claims": [ + "Snapmaker/Snapmaker TPU" + ], + "successor": "OF65InrS" + }, + "297165629001": { + "claims": [ + "Snapmaker/Snapmaker TPU 95A" + ], + "successor": "OFKo87c6" + }, + "3104636980": { + "claims": [ + "Snapmaker/Snapmaker Dual PVA" + ], + "successor": "OFDKIKyw" + }, + "31046369800": { + "claims": [ + "Snapmaker/Snapmaker PVA" + ], + "successor": "OFyhjiNs" + }, + "3177068229": { + "claims": [ + "Snapmaker/Snapmaker PLA" + ], + "successor": "OFlufQpZ" + }, + "3383257822": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA Eco" + ], + "successor": "OFLbdkrE" + }, + "3492897526": { + "claims": [ + "Snapmaker/Snapmaker J1 Breakaway" + ], + "successor": "OFeTATC7" + }, + "3493177425": { + "claims": [ + "Snapmaker/Snapmaker Dual PA-CF" + ], + "successor": "OFRooa0F" + }, + "34931774250": { + "claims": [ + "Snapmaker/Snapmaker PA-CF" + ], + "successor": "OFEmsric" + }, + "3503790988": { + "claims": [ + "Snapmaker/Snapmaker Dual PLA Matte" + ], + "successor": "OFlIsW6f" + }, + "377675245": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA" + ], + "successor": "OFSa39yP" + }, + "3806593857": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA-CF" + ], + "successor": "OFdD5Wbu" + }, + "3811508002": { + "claims": [ + "Snapmaker/Snapmaker ABS" + ], + "successor": "OF72YYTd" + }, + "3864371306": { + "claims": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "successor": "OFhQf8ou" + }, + "4012961186": { + "claims": [ + "Snapmaker/Snapmaker J1 PLA Metal" + ], + "successor": "OFt0JbR7" + }, + "4092268632": { + "claims": [ + "Snapmaker/Snapmaker J1 TPU" + ], + "successor": "OFyrnlUn" + }, + "4227461134": { + "claims": [ + "Snapmaker/Snapmaker Breakaway Support For PLA", + "Snapmaker/Snapmaker J1 PVA" + ], + "successor": "OF6TuVAg" + }, + "4235401834": { + "claims": [ + "Snapmaker/Snapmaker J1 PETG-CF" + ], + "successor": "OFxYB4Sw" + }, + "581236806": { + "claims": [ + "Snapmaker/Snapmaker PA-CF" + ], + "successor": "OFEmsric" + }, "AZ01-1": { "claims": [ "BBL/AliZ PETG-CF", @@ -63,6 +988,66 @@ ], "successor": "OFd4zw5l" }, + "BSFI001": { + "claims": [ + "Blocks/Blocks Generic PLA" + ], + "successor": "OFNYewRS" + }, + "BSFI002": { + "claims": [ + "Blocks/Blocks Generic PETG" + ], + "successor": "OFrgGex8" + }, + "BSFI003": { + "claims": [ + "Blocks/Blocks Generic TPU" + ], + "successor": "OFMEbuBE" + }, + "BSFI004": { + "claims": [ + "Blocks/Blocks Generic ABS" + ], + "successor": "OFma52eS" + }, + "BSFI005": { + "claims": [ + "Blocks/Blocks Generic ASA" + ], + "successor": "OFB9dx27" + }, + "BSFI006": { + "claims": [ + "Blocks/Blocks Generic PA" + ], + "successor": "OFiUSDih" + }, + "BSFI007": { + "claims": [ + "Blocks/Blocks Generic PA-CF" + ], + "successor": "OF8bLDu7" + }, + "BSFI008": { + "claims": [ + "Blocks/Blocks Generic PC" + ], + "successor": "OFahE7HP" + }, + "BSFI009": { + "claims": [ + "Blocks/Blocks Generic PVA" + ], + "successor": "OFiorRtJ" + }, + "BSFI010": { + "claims": [ + "Blocks/Blocks Generic PLA-CF" + ], + "successor": "OFupq0tY" + }, "CX30DB20": { "claims": [ "BBL/COEX TPE 30D", @@ -160,6 +1145,12 @@ ], "successor": "OF0pzFLc" }, + "DFL99": { + "claims": [ + "Volumic/Désactivé" + ], + "successor": "OFCuaCer" + }, "DREMC001": { "claims": [], "successor": null @@ -218,6 +1209,198 @@ "claims": [], "successor": null }, + "E1001": { + "claims": [ + "Creality/eSUN PLA+" + ], + "successor": "OFqINlYj" + }, + "E1002": { + "claims": [ + "Creality/eSUN PLA-Silk" + ], + "successor": "OFIRUqWi" + }, + "E1003": { + "claims": [ + "Creality/eSUN PLA-Matte" + ], + "successor": "OFDETOM6" + }, + "E1004": { + "claims": [ + "Creality/eSUN PLA-Lite" + ], + "successor": "OFhbolij" + }, + "E1005": { + "claims": [ + "Creality/eSUN PLA-CF" + ], + "successor": "OFnHc3D6" + }, + "E1006": { + "claims": [ + "Creality/eSUN PLA-HS" + ], + "successor": "OFOHOf2F" + }, + "E2001": { + "claims": [ + "Creality/eSUN PETG" + ], + "successor": "OF3kBrdA" + }, + "E2002": { + "claims": [ + "Creality/eSUN PETG+HS" + ], + "successor": "OFrdZ0cK" + }, + "E2003": { + "claims": [ + "Creality/eSUN PETG-Basic" + ], + "successor": "OFFbQscs" + }, + "E3001": { + "claims": [ + "Creality/eSUN ABS+" + ], + "successor": "OFTXduCM" + }, + "E4001": { + "claims": [ + "Creality/eSUN ASA+" + ], + "successor": "OFUmS5z5" + }, + "E8001": { + "claims": [ + "Creality/eSUN PET-Basic" + ], + "successor": "OFHaYaB1" + }, + "EABSB00": { + "claims": [ + "Elegoo/Elegoo ABS" + ], + "successor": "OFxOHhZw" + }, + "EASAB00": { + "claims": [ + "Elegoo/Elegoo ASA" + ], + "successor": "OFobDOW5" + }, + "EFL33": { + "claims": [ + "Eryone/Eryone PP-CF" + ], + "successor": "OFbh7HcA" + }, + "EFL40": { + "claims": [ + "Eryone/Eryone PLA-CF" + ], + "successor": "OFilAA3b" + }, + "EFL43": { + "claims": [ + "Eryone/Eryone PETG-CF" + ], + "successor": "OFNstOna" + }, + "EFL71": { + "claims": [ + "Eryone/Eryone PA" + ], + "successor": "OFS4jbj3" + }, + "EFL72": { + "claims": [ + "Eryone/Eryone PA-CF" + ], + "successor": "OFp9wdmf" + }, + "EFL73": { + "claims": [ + "Eryone/Eryone PA-GF" + ], + "successor": "OFkq7rPy" + }, + "EFL81": { + "claims": [ + "Eryone/Eryone ABS-CF" + ], + "successor": "OFQ1zgm3" + }, + "EFL82": { + "claims": [ + "Eryone/Eryone ASA-CF" + ], + "successor": "OFwyt1xt" + }, + "EFL90": { + "claims": [ + "Eryone/Eryone PLA" + ], + "successor": "OFmKU2Ha" + }, + "EFL91": { + "claims": [ + "Eryone/Eryone ABS" + ], + "successor": "OFOzwywz" + }, + "EFL92": { + "claims": [ + "Eryone/Eryone ASA" + ], + "successor": "OFVtIasg" + }, + "EFL93": { + "claims": [ + "Eryone/Eryone PETG" + ], + "successor": "OF8kJys9" + }, + "EFL941": { + "claims": [ + "Eryone/Eryone Silk PLA" + ], + "successor": "OF7nBAd3" + }, + "EFL95": { + "claims": [ + "Eryone/Eryone TPU" + ], + "successor": "OFhUjPA5" + }, + "EPAHTB00": { + "claims": [ + "Elegoo/Elegoo PAHT-CF" + ], + "successor": "OF0h7ERL" + }, + "EPCB00": { + "claims": [ + "Elegoo/Elegoo PC" + ], + "successor": "OFUyDDNv" + }, + "EPETGB00": { + "claims": [ + "Elegoo/Elegoo PETG" + ], + "successor": "OFLcd093" + }, + "EPLAB00": { + "claims": [ + "Elegoo/Elegoo PLA" + ], + "successor": "OFvgE0Zh" + }, "ESN02": { "claims": [ "OrcaFilamentLibrary/eSUN ePLA-LW" @@ -230,6 +1413,12 @@ ], "successor": "OF3kBrdA" }, + "ETPUB00": { + "claims": [ + "Elegoo/Elegoo TPU 95A" + ], + "successor": "OFmhJs5V" + }, "FDPLAST01": { "claims": [ "OrcaFilamentLibrary/FDplast ABS" @@ -266,6 +1455,31 @@ ], "successor": "OFfmZrI3" }, + "FFF01": { + "claims": [ + "Flashforge/Flashforge PLA" + ], + "successor": "OFDKgoqx" + }, + "FFF02": { + "claims": [ + "Flashforge/Flashforge ABS" + ], + "successor": "OF5SJ3jz" + }, + "FFF03": { + "claims": [ + "Flashforge/Flashforge PETG", + "Flashforge/Generic PETG" + ], + "successor": "OFMpxamb" + }, + "FFG01": { + "claims": [ + "Flashforge/Flashforge Generic PLA" + ], + "successor": "OFtTHNTj" + }, "FILAR0001": { "claims": [ "OrcaFilamentLibrary/FilAr PLA Bronce" @@ -680,53 +1894,373 @@ ], "successor": "OFOiJfLM" }, + "GABSB00": { + "claims": [ + "Elegoo/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "GASAB00": { + "claims": [ + "Elegoo/Generic ASA", + "Elegoo/Generic ASA-CF" + ], + "successor": "OFLPAxz3" + }, "GFABS": { "claims": [ "Anycubic/Anycubic ABS" ], - "successor": "OFf2b9wu" + "successor": "OF223rZv" }, "GFL92": { "claims": [ "Anycubic/Anycubic PLA" ], - "successor": "OFgK2Xvv" + "successor": "OFmjN2bc" }, "GFL93": { "claims": [ "Anycubic/Anycubic PLA+" ], - "successor": "OFgrGfPy" + "successor": "OFnmp6rt" }, "GFPLA": { "claims": [ "Anycubic/Anycubic PLA" ], - "successor": "OFgK2Xvv" + "successor": "OFmjN2bc" }, "GFPLA High Speed": { "claims": [ "Anycubic/Anycubic PLA High Speed" ], - "successor": "OFgSK1hL" + "successor": "OFjVOWfJ" }, "GFPLA Matte": { "claims": [ "Anycubic/Anycubic PLA Matte" ], - "successor": "OFvYfHPB" + "successor": "OFIE3vOf" }, "GFPLA Silk": { "claims": [ "Anycubic/Anycubic PLA Silk" ], - "successor": "OFjdTQd6" + "successor": "OFFwJWea" }, "GFPLA+": { "claims": [ "Anycubic/Anycubic PLA+" ], - "successor": "OFgrGfPy" + "successor": "OFnmp6rt" + }, + "GPAB00": { + "claims": [ + "Elegoo/Generic PA" + ], + "successor": "OFg8ndtj" + }, + "GPCB00": { + "claims": [ + "Elegoo/Generic PC" + ], + "successor": "OFLakOUI" + }, + "GPETB00": { + "claims": [ + "Elegoo/Generic PET" + ], + "successor": "OF6MOPWx" + }, + "GPETGB00": { + "claims": [ + "Elegoo/Generic PETG", + "Elegoo/Generic PETG-CF" + ], + "successor": "OFYPdQJh" + }, + "GPLAB00": { + "claims": [ + "Elegoo/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "Generic ABS @E3NG v1.2S": { + "claims": [ + "RH3D/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "Generic ABS @MK4S": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S HF0.4": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S HF0.5": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S HF0.6": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ABS @MK4S HF0.8": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Generic ASA @E3NG v1.2S": { + "claims": [ + "RH3D/Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "Generic FLEX @MK4S": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Generic FLEX @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Generic FLEX @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Generic PCCF @E3NG v1.2S": { + "claims": [ + "RH3D/Generic PCCF" + ], + "successor": "OFC5f4Ay" + }, + "Generic PETG @E3NG v1.2S": { + "claims": [ + "RH3D/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "Generic PETG @MK4S": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S HF0.4": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S HF0.5": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S HF0.6": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PETG @MK4S HF0.8": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Generic PLA @E3NG v1.2S": { + "claims": [ + "RH3D/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "Generic PLA @MK4S": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S HF0.4": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S HF0.5": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S HF0.6": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA @MK4S HF0.8": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Generic PLA Silk @MK4S": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Generic PLA Silk @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Generic PLA Silk @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Generic TPU @E3NG v1.2S": { + "claims": [ + "RH3D/Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "IQM1": { + "claims": [ + "iQ/Fiberthree PACF Pro P1" + ], + "successor": "OFjUGUIK" + }, + "IQM1011": { + "claims": [ + "iQ/VXL90 TiQ2 P2" + ], + "successor": "OFOJPAAS" + }, + "IQM2": { + "claims": [ + "iQ/Material4Print ABS Natur P1" + ], + "successor": "OFJWKoYG" + }, + "IQM3": { + "claims": [ + "iQ/Polymaker PETG Polymax black P1" + ], + "successor": "OFaeIx7W" + }, + "IQM7": { + "claims": [ + "iQ/Fiberthree PACF Pro P2" + ], + "successor": "OF6kj4jI" + }, + "LHF_abs": { + "claims": [ + "LH/LHS ABS" + ], + "successor": "OFztQ7rO" + }, + "LHF_asa": { + "claims": [ + "LH/LHS ASA" + ], + "successor": "OFaP2SsH" + }, + "LHF_ftpuf": { + "claims": [ + "LH/LHS TPU Foamy 78A" + ], + "successor": "OFngcE81" + }, + "LHF_pccf": { + "claims": [ + "LH/LHS PC CF" + ], + "successor": "OFu0fjPJ" + }, + "LHF_pctg": { + "claims": [ + "LH/LHS PCTG" + ], + "successor": "OFBJAdLw" + }, + "LHF_petg": { + "claims": [ + "LH/LHS PETG" + ], + "successor": "OFRJ325z" + }, + "LHF_pla": { + "claims": [ + "LH/LHS PLA" + ], + "successor": "OFyoBZdm" + }, + "LHF_ptpu_pl": { + "claims": [ + "LH/LHS TPU" + ], + "successor": "OFIZMQwM" }, "NIT01": { "claims": [ @@ -953,6 +2487,10 @@ ], "successor": "OFg57Nmc" }, + "OGFC99": { + "claims": [], + "successor": "OFLakOUI" + }, "OGFG00": { "claims": [ "OrcaFilamentLibrary/Bambu PETG Basic" @@ -989,6 +2527,10 @@ ], "successor": "OFu1evlr" }, + "OGFG99": { + "claims": [], + "successor": "OFYPdQJh" + }, "OGFGG300": { "claims": [ "OrcaFilamentLibrary/GreenGate3D PETG" @@ -1080,6 +2622,13 @@ ], "successor": "OFmpMwxS" }, + "OGFL96": { + "claims": [ + "Flashforge/Generic PLA Silk", + "Sovol/Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, "OGFL98": { "claims": [ "OrcaFilamentLibrary/Generic PLA-CF" @@ -1149,6 +2698,10 @@ ], "successor": "OFQLcbps" }, + "OGFN99": { + "claims": [], + "successor": "OFg8ndtj" + }, "OGFNMK00": { "claims": [ "OrcaFilamentLibrary/Numakers PLA+" @@ -1396,6 +2949,12 @@ ], "successor": "OFLJ8S6I" }, + "OGFSNL08": { + "claims": [ + "Sovol/SUNLU PETG" + ], + "successor": "OF2GCW1l" + }, "OGFT01": { "claims": [ "OrcaFilamentLibrary/Bambu PET-CF" @@ -1431,42 +2990,648 @@ ], "successor": "OFDvqJ6n" }, + "P1001": { + "claims": [ + "Creality/Panchroma PLA Satin" + ], + "successor": "OFPkCJKE" + }, + "P1002": { + "claims": [ + "Creality/PolySonic PLA Pro" + ], + "successor": "OFKbdiiJ" + }, + "P1003": { + "claims": [ + "Creality/Panchroma PLA Matte" + ], + "successor": "OFrOh600" + }, + "P1004": { + "claims": [ + "Creality/PolySonic PLA" + ], + "successor": "OF66KUAN" + }, "P11851ba": { "claims": [ "Artillery/Artillery PET" ], - "successor": "OFw0qp7w" + "successor": "OFb5EEM3" }, "P284941e": { "claims": [ "Artillery/Artillery PETG", "Artillery/Artillery PETG Basic" ], - "successor": "OFEYKrjb" + "successor": "OFilnglt" }, "P2fbf0c0": { "claims": [ "Artillery/Artillery TPU" ], - "successor": "OFTbsWVg" + "successor": "OFcJDtTx" }, "P39db358": { "claims": [ "Artillery/Artillery ABS" ], - "successor": "OFw1S8lL" + "successor": "OFgXgt98" + }, + "P510cfa0": { + "claims": [ + "Cubicon/Cubicon PLA" + ], + "successor": "OFEwRwmL" + }, + "P510cfa1": { + "claims": [ + "Cubicon/Cubicon PLA+" + ], + "successor": "OF7tt7DO" + }, + "P510cfa2": { + "claims": [ + "Cubicon/Cubicon PLAi21" + ], + "successor": "OFRhBryT" + }, + "P510cfb0": { + "claims": [ + "Cubicon/Cubicon ABS" + ], + "successor": "OFpDo5Ix" + }, + "P510cfb1": { + "claims": [ + "Cubicon/Cubicon ABS-A100" + ], + "successor": "OFy8tYJE" + }, + "P510cfb2": { + "claims": [ + "Cubicon/Cubicon ABSk" + ], + "successor": "OForhBi4" + }, + "P510cfc0": { + "claims": [ + "Cubicon/Cubicon PETG" + ], + "successor": "OFoBTKmn" + }, + "P510cfd0": { + "claims": [ + "Cubicon/Cubicon PA-CF" + ], + "successor": "OFiEz2XI" + }, + "P510eff9": { + "claims": [ + "Ginger Additive/Ginger Generic PETG" + ], + "successor": "OFsGqI4y" }, "P8163162": { "claims": [ "Artillery/Artillery PVA" ], - "successor": "OFc2SnEp" + "successor": "OFkx5MEe" }, "P87436f6": { "claims": [ "Artillery/Artillery ASA" ], - "successor": "OFtmT4Nd" + "successor": "OF5YVJXH" + }, + "Pfcf9c4c": { + "claims": [ + "Artillery/Artillery PLA" + ], + "successor": "OFzY7N3Z" + }, + "Prusa Generic ABS @CORE One": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ABS @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFvGc67v" + }, + "Prusa Generic ASA @CORE One": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic ASA @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusa Generic PETG @CORE One": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PETG @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OF1Id239" + }, + "Prusa Generic PLA @CORE One": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFiCHnso" + }, + "Prusa Generic PLA Silk @CORE One": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Prusa Generic PLA Silk @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Prusa Generic PLA Silk @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFHFZ1Te" + }, + "Prusa Generic TPU @CORE One": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Prusa Generic TPU @CORE One 0.6": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Prusa Generic TPU @CORE One 0.8": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFbenYUK" + }, + "Prusament ASA @CORE One": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One 0.6": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One 0.8": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusament ASA" + ], + "successor": "OFmFwUWM" + }, + "Prusament ASA @MK4S": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S 0.6": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S 0.8": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S HF0.4": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S HF0.5": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S HF0.6": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament ASA @MK4S HF0.8": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFoJcr46" + }, + "Prusament PA-CF @CORE One": { + "claims": [ + "Prusa/Prusament PA-CF" + ], + "successor": "OF54SvEe" + }, + "Prusament PA-CF @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PA-CF" + ], + "successor": "OF54SvEe" + }, + "Prusament PA-CF @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PA-CF" + ], + "successor": "OF54SvEe" + }, + "Prusament PC Blend @CORE One": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC Blend @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusament PC Blend" + ], + "successor": "OFvDbkFq" + }, + "Prusament PC-CF @CORE One": { + "claims": [ + "Prusa/Prusament PC-CF" + ], + "successor": "OFjz0a3m" + }, + "Prusament PC-CF @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PC-CF" + ], + "successor": "OFjz0a3m" + }, + "Prusament PC-CF @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PC-CF" + ], + "successor": "OFjz0a3m" + }, + "Prusament PETG @CORE One": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PETG @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusament PETG" + ], + "successor": "OFkR8E2c" + }, + "Prusament PLA @CORE One": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One HF 0.4": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One HF 0.5": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One HF 0.6": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PLA @CORE One HF 0.8": { + "claims": [ + "Prusa/Prusament PLA" + ], + "successor": "OFnO4wnf" + }, + "Prusament PVB @CORE One": { + "claims": [ + "Prusa/Prusament PVB" + ], + "successor": "OFh7mvPO" + }, + "Prusament PVB @CORE One 0.6": { + "claims": [ + "Prusa/Prusament PVB" + ], + "successor": "OFh7mvPO" + }, + "Prusament PVB @CORE One 0.8": { + "claims": [ + "Prusa/Prusament PVB" + ], + "successor": "OFh7mvPO" + }, + "Prusament rPLA @CORE One": { + "claims": [ + "Prusa/Prusament rPLA" + ], + "successor": "OFWRITFw" + }, + "Prusament rPLA @CORE One 0.6": { + "claims": [ + "Prusa/Prusament rPLA" + ], + "successor": "OFWRITFw" + }, + "Prusament rPLA @CORE One 0.8": { + "claims": [ + "Prusa/Prusament rPLA" + ], + "successor": "OFWRITFw" + }, + "SMCFB001": { + "claims": [ + "SeeMeCNC/SeeMeCNC ABS" + ], + "successor": "OFR0gODA" + }, + "SMCFG001": { + "claims": [ + "SeeMeCNC/SeeMeCNC PETG" + ], + "successor": "OFxDHUX8" + }, + "SMCFG002": { + "claims": [ + "SeeMeCNC/SeeMeCNC PETG-CF" + ], + "successor": "OFaRjiIm" + }, + "SMCFL001": { + "claims": [ + "SeeMeCNC/SeeMeCNC PLA" + ], + "successor": "OFbSChKb" + }, + "SMCFN001": { + "claims": [ + "SeeMeCNC/SeeMeCNC PA-CF" + ], + "successor": "OF0b7M1z" + }, + "SMCFU001": { + "claims": [ + "SeeMeCNC/SeeMeCNC TPU" + ], + "successor": "OFyFyLIp" }, "VLMNT01": { "claims": [ diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 3945c2ec8d..6f12554f14 100644 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -60,6 +60,11 @@ Run from anywhere: python3 scripts/assign_filament_ids.py drops listed never-shipped ids from lineage instead) --add-hint "OLD=NEW" record a cross-island succession hint (standalone) + --retire "OLD=NEW" + retire a vanished non-island shipped id with an explicit + successor (standalone; for lineage the claim vote can no + longer see because the claims migrated while another + declarer kept the id alive) --remint VENDOR re-derive VENDOR's declared ids from their triples and rewrite mismatches in place (repeatable) --drop-redundant-ids VENDOR @@ -1121,6 +1126,69 @@ def add_hints(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): return 0 +def retire_ids(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): + """--retire "OLD=NEW": retire a vanished non-island id with an explicit successor. + + For shipped ids whose lineage the claim vote can no longer see: the id + vanished from the tree in an earlier phase's shadow — another declarer kept + it alive while its claims migrated — so no --update-snapshot run ever saw + the id vanish while its claims could still vote. OLD must be absent from + the tree (declared or effective) and outside every reserved id space + (island ids forward via --add-hint; user-custom ids are never system ids), + and must not already be retired or hinted. NEW must be a live tree id. + Appends {"claims": [], "successor": NEW}. All pairs validate before + anything is written. Returns 0 on success. + """ + _utf8_console() + analysis = analyze_tree(profiles_dir) + errors = 0 + for msg in analysis["read_errors"]: + print_error(msg) + errors += 1 + ledger = load_ledger(retired_path) + live = set(analysis["ids"]) + declared_anywhere = set() + for vids in analysis["declared_ids"].values(): + declared_anywhere |= set(vids) + parsed = [] + for pair in pairs: + if "=" not in pair: + print_error(f'--retire expects "OLD=NEW", got "{pair}"') + errors += 1 + continue + old, new = pair.split("=", 1) + is_reserved, _island = reserved_space_owner(old) + if old in ledger["retired"]: + print_error(f'--retire: "{old}" is already retired') + errors += 1 + elif old in ledger["hints"]: + print_error(f'--retire: "{old}" is a hint key; it already forwards') + errors += 1 + elif is_reserved: + print_error( + f'--retire: "{old}" sits in a reserved id space; island ids ' + f"forward via --add-hint, user-custom ids are never retired") + errors += 1 + elif old in live or old in declared_anywhere: + print_error( + f'--retire: "{old}" still lives in the tree; re-mint or delete ' + f"its declarers first (an id that vanishes normally gets its " + f"successor voted by --update-snapshot)") + errors += 1 + elif new not in live: + print_error(f'--retire: successor "{new}" is not a live tree id') + errors += 1 + else: + parsed.append((old, new)) + if errors: + return 1 + for old, new in parsed: + ledger["retired"][old] = {"claims": [], "successor": new} + print_info(f'retired: "{old}" -> "{new}"') + write_ledger(retired_path, {"retired": ledger["retired"], "hints": ledger["hints"]}) + return 0 + + # --------------------------------------------------------------------------- # Byte-preserving profile edits # --------------------------------------------------------------------------- @@ -1336,6 +1404,9 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_ triple; rewrite mismatching declarations in place (byte-preserving). Never touches the snapshot — run --update-snapshot afterwards and review the diff. + A declaration already equal to ANY salt iteration of its own triple is + mint-conformant (check 3) and left alone — deliberate salt splits (distinct + presets of one product kept apart for per-printer AMS matching) survive. A candidate id is blocked when it is a retired key, a hints key, or occurs in the tree with any triple set other than exactly {T}. Equal-triple reuse is convergence: the same product must end up under the same id everywhere. @@ -1393,6 +1464,13 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_ if is_island_declaration(vendor, fid): continue scanned += 1 + # Any salt iteration of the declarer's own triple is already + # mint-conformant (check 3) — leave it. This keeps deliberate salt + # splits (two presets of one product that must stay distinct for + # per-printer AMS matching, validator -f) stable across re-mints. + if fid in {generate_filament_id(*rec["triple"], salt=s) + for s in range(MAX_CHECK_SALT + 1)}: + continue want = want_id(rec["triple"]) if fid == want: continue @@ -1481,6 +1559,10 @@ def main(argv=None): help="record a cross-island succession hint (island-owned " "live id -> live id) in the shipped ledger; standalone, " "repeatable") + parser.add_argument("--retire", metavar='"OLD=NEW"', action="append", + help="retire a vanished non-island shipped id with an " + "explicit successor (for lineage the claim vote can " + "no longer see); standalone, repeatable") parser.add_argument("--remint", metavar="VENDOR", action="append", help="re-derive VENDOR's declared filament_ids from their " "triples and rewrite mismatches in place; repeatable") @@ -1507,10 +1589,16 @@ def main(argv=None): return 0 if args.add_hint: - if args.update_snapshot or args.check or args.remint or args.drop_redundant_ids: + if (args.update_snapshot or args.check or args.remint + or args.drop_redundant_ids or args.retire): parser.error("--add-hint runs standalone") return add_hints(args.add_hint, args.profiles, RETIRED_PATH) + if args.retire: + if args.update_snapshot or args.check or args.remint or args.drop_redundant_ids: + parser.error("--retire runs standalone") + return retire_ids(args.retire, args.profiles, RETIRED_PATH) + if args.remint: if args.update_snapshot or args.check or args.drop_redundant_ids: parser.error("--remint cannot be combined with other modes") diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 69e671d74d..4349592b25 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1,39 +1,6 @@ { "alias_exceptions": [ - "Anker/Anker Generic PC @base", - "Anycubic/Anycubic Generic PC", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", - "BBL/Bambu PC @base", - "BBL/Bambu PC FR @base", "BBL/COEX NYLEX UNFILLED @BBL X1C", - "BBL/Generic PC @base", - "Blocks/Blocks Generic PC", - "Creality/Creality Generic PC", - "Creality/Generic PC @K1 Max_CFS-C-all", - "Creality/Generic PC @K1C-all", - "Creality/Generic PC @K1C_CFS-C-all", - "Creality/Generic PC @K1_CFS-C-all", - "Creality/Generic PC @K2 Plus-all", - "Creality/Generic PC @K2 Pro-all", - "Creality/Hyper PC @K2 Plus-all", - "Creality/Hyper PC @K2 Pro-all", - "Custom/Generic PC @MyToolChanger", - "Custom/Generic PETG @MyToolChanger", - "Custom/Generic PLA @MyToolChanger", - "Custom/Generic PLA-CF @MyToolChanger", - "Custom/Generic PVA @MyToolChanger", - "Custom/Generic TPU @MyToolChanger", - "Elegoo/Elegoo PC @base", - "Elegoo/Generic PC @base", - "FLSun/FLSun Generic PC", "Flashforge/Flashforge ABS Basic @FF C5", "Flashforge/Flashforge ABS Basic @FF C5P", "Flashforge/Flashforge ABS-GF @FF C5", @@ -104,16 +71,9 @@ "Flashforge/Generic TPU-90A @FF C5P", "Flashforge/Generic TPU-95A @FF C5", "Flashforge/Generic TPU-95A @FF C5P", - "FlyingBear/FlyingBear Generic PC", - "InfiMech/InfiMech Generic PC", "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", - "OrcaArena/Arena PC @base", - "OrcaArena/OrcaArena Generic PC @base", - "Qidi/Qidi Generic PC", - "Ratrig/RatRig Generic PC", - "SecKit/SecKit Generic PC", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", @@ -142,31 +102,10 @@ "Sovol/Sovol Zero PLA Basic HS Nozzle", "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Sovol/Sovol Zero TPU", - "Tiertime/Tiertime Generic PC", - "Tiertime/Tiertime Generic PC@300HS", - "Tiertime/Tiertime PC", - "Tiertime/Tiertime PC@300HS", - "Volumic/Volumic PC", - "Volumic/Volumic PC (Performance)", - "Vzbot/Vzbot Generic PC", - "re3D/re3D PC", - "re3D/re3D PC @0.4 nozzle", - "re3D/re3D PC @0.8 nozzle" + "Sovol/Sovol Zero TPU" ], "id_overrides": [ - "Anker/Anker Generic PC @base", "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic Generic PC", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", @@ -223,18 +162,16 @@ "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery TPU", "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "BBL/Bambu PC @base", - "BBL/Bambu PC FR @base", - "BBL/Generic PC @base", "BBL/Generic SBS", - "Blocks/Blocks Generic PC", + "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", "Chuanying/Chuanying Generic HIPS", "Chuanying/Chuanying Generic PVA", + "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", "Co Print/CoPrint Generic ABS", "Co Print/CoPrint Generic PETG", "Co Print/CoPrint Generic TPU", + "Comgrow/Comgrow T300 PLA", "Creality/Creality Generic ASA-CF @Hi-all", - "Creality/Creality Generic PC", "Creality/Creality Generic PETG-CF @Hi-all", "Creality/Creality Generic PLA High Speed @Ender-3V3-all", "Creality/Creality Generic PLA High Speed @Hi-all", @@ -249,14 +186,6 @@ "Creality/Creality Generic PLA Silk @K1-all", "Creality/Creality Generic PLA Silk @K2-all", "Creality/Creality Generic PLA Wood @Hi-all", - "Creality/Generic PC @K1 Max_CFS-C-all", - "Creality/Generic PC @K1C-all", - "Creality/Generic PC @K1C_CFS-C-all", - "Creality/Generic PC @K1_CFS-C-all", - "Creality/Generic PC @K2 Plus-all", - "Creality/Generic PC @K2 Pro-all", - "Creality/Hyper PC @K2 Plus-all", - "Creality/Hyper PC @K2 Pro-all", "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", @@ -271,15 +200,12 @@ "Cubicon/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PA-CF @base", "Cubicon/Cubicon PC @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PC @base", "Cubicon/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PETG @base", "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", @@ -291,17 +217,10 @@ "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLAi21 @base", - "Custom/Generic PC @MyToolChanger", - "Custom/Generic PETG @MyToolChanger", - "Custom/Generic PLA @MyToolChanger", - "Custom/Generic PLA-CF @MyToolChanger", - "Custom/Generic PVA @MyToolChanger", - "Custom/Generic TPU @MyToolChanger", "Dremel/Dremel Generic PLA @3D20 all", "Dremel/Dremel Generic PLA @3D40 all", "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Elegoo ASA-CF @base", - "Elegoo/Elegoo PC @base", "Elegoo/Elegoo PC-FR @base", "Elegoo/Elegoo PET-CF @base", "Elegoo/Elegoo PETG HF @base", @@ -325,17 +244,27 @@ "Elegoo/Elegoo Rapid PLA+ @base", "Elegoo/Elegoo Rapid TPU 95A @base", "Elegoo/Generic ABS-CF @Elegoo Centauri", + "Elegoo/Generic ASA-CF @Elegoo Centauri", "Elegoo/Generic PA6-CF @Elegoo", - "Elegoo/Generic PC @base", "Elegoo/Generic PC-CF @Elegoo", "Elegoo/Generic PET-CF @Elegoo Centauri", "Elegoo/Generic PETG PRO @Elegoo", + "Elegoo/Generic PETG-CF @Elegoo Centauri", "Elegoo/Generic PLA Matte @Elegoo", - "FLSun/FLSun Generic PC", + "FLSun/FLSun S1 ABS", + "FLSun/FLSun S1 ASA", + "FLSun/FLSun S1 PETG", + "FLSun/FLSun S1 PLA Generic", "FLSun/FLSun S1 PLA High Speed", "FLSun/FLSun S1 PLA Silk", + "FLSun/FLSun S1 TPU", + "FLSun/FLSun T1 ABS", + "FLSun/FLSun T1 ASA", + "FLSun/FLSun T1 PETG", + "FLSun/FLSun T1 PLA Generic", "FLSun/FLSun T1 PLA High Speed", "FLSun/FLSun T1 PLA Silk", + "FLSun/FLSun T1 TPU", "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", "Flashforge/FlashForge PC @FF G4 0.6 nozzle", "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", @@ -350,6 +279,7 @@ "Flashforge/FlashForge PPS @FF G4P 0.8 HF nozzle", "Flashforge/FlashForge PPS-CF @FF G4 0.6 nozzle", "Flashforge/FlashForge PPS-CF @FF G4P 0.6 nozzle", + "Flashforge/Flashforge ABS @FF AD5M 0.25 Nozzle", "Flashforge/Flashforge ABS Basic", "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", "Flashforge/Flashforge ABS Basic @FF AD5X", @@ -495,6 +425,7 @@ "Flashforge/Flashforge PET-CF", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", + "Flashforge/Flashforge PETG @FF AD5M 0.25 Nozzle", "Flashforge/Flashforge PETG Basic", "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PETG Pro", @@ -803,6 +734,7 @@ "Flashforge/FusRock S-Multi @FF C5P", "Flashforge/FusRock S-PAHT @FF C5", "Flashforge/FusRock S-PAHT @FF C5P", + "Flashforge/Generic ABS @Flashforge AD4", "Flashforge/Generic ASA @Flashforge AD4", "Flashforge/Generic PET @FF G4", "Flashforge/Generic PET @FF G4 0.6 HF nozzle", @@ -812,6 +744,7 @@ "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", "Flashforge/Generic PET @FF G4P 0.6 nozzle", "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", + "Flashforge/Generic PETG @Flashforge AD4", "Flashforge/Generic PETG-CF10 @Flashforge AD4", "Flashforge/Generic PLA @Flashforge AD4", "Flashforge/Generic PLA High Speed @Flashforge AD4", @@ -835,19 +768,12 @@ "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", "Flashforge/Polymaker Generic CoPA", "Flashforge/Polymaker Generic S1", - "FlyingBear/FlyingBear Generic PC", - "InfiMech/InfiMech Generic PC", "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", - "OrcaArena/Arena PC @base", - "OrcaArena/OrcaArena Generic PC @base", "OrcaFilamentLibrary/AliZ PETG-CF @base", "OrcaFilamentLibrary/AliZ PETG-Metal @base", - "OrcaFilamentLibrary/Bambu PC @base", - "OrcaFilamentLibrary/Bambu PC FR @base", "OrcaFilamentLibrary/Elegoo ASA-CF @base", - "OrcaFilamentLibrary/Elegoo PC @base", "OrcaFilamentLibrary/Elegoo PC-FR @base", "OrcaFilamentLibrary/Elegoo PET-CF @base", "OrcaFilamentLibrary/Elegoo PETG HF @base", @@ -930,121 +856,9 @@ "OrcaFilamentLibrary/FilAr PLA-mate Uva", "OrcaFilamentLibrary/FilAr PLA-mate Verde", "OrcaFilamentLibrary/FilAr PLA-mate Violeta", - "OrcaFilamentLibrary/Generic PC @System", "OrcaFilamentLibrary/PolyLite Dual PLA @base", "OrcaFilamentLibrary/PolyTerra Dual PLA @System", - "Prusa/Prusa Generic ABS @CORE One 0.6", - "Prusa/Prusa Generic ABS @CORE One 0.8", - "Prusa/Prusa Generic ABS @CORE One HF 0.4", - "Prusa/Prusa Generic ABS @CORE One HF 0.5", - "Prusa/Prusa Generic ABS @CORE One HF 0.6", - "Prusa/Prusa Generic ABS @CORE One HF 0.8", - "Prusa/Prusa Generic ABS @MK4S 0.6", - "Prusa/Prusa Generic ABS @MK4S 0.8", - "Prusa/Prusa Generic ABS @MK4S HF0.4", - "Prusa/Prusa Generic ABS @MK4S HF0.5", - "Prusa/Prusa Generic ABS @MK4S HF0.6", - "Prusa/Prusa Generic ABS @MK4S HF0.8", - "Prusa/Prusa Generic ASA @CORE One", - "Prusa/Prusa Generic ASA @CORE One 0.6", - "Prusa/Prusa Generic ASA @CORE One 0.8", - "Prusa/Prusa Generic ASA @CORE One HF 0.4", - "Prusa/Prusa Generic ASA @CORE One HF 0.5", - "Prusa/Prusa Generic ASA @CORE One HF 0.6", - "Prusa/Prusa Generic ASA @CORE One HF 0.8", - "Prusa/Prusa Generic ASA @MK3.5", - "Prusa/Prusa Generic ASA @MK3.5 0.25", - "Prusa/Prusa Generic ASA @MK3.5 0.6", - "Prusa/Prusa Generic ASA @MK3.5 0.8", - "Prusa/Prusa Generic ASA @MK4S", - "Prusa/Prusa Generic ASA @MK4S 0.6", - "Prusa/Prusa Generic ASA @MK4S 0.8", - "Prusa/Prusa Generic ASA @MK4S HF0.4", - "Prusa/Prusa Generic ASA @MK4S HF0.5", - "Prusa/Prusa Generic ASA @MK4S HF0.6", - "Prusa/Prusa Generic ASA @MK4S HF0.8", - "Prusa/Prusa Generic ASA HF @MK3.5", - "Prusa/Prusa Generic ASA HF @MK3.5 0.6", - "Prusa/Prusa Generic ASA HF @MK3.5 0.8", - "Prusa/Prusa Generic ASA HF @base", - "Prusa/Prusa Generic PC @MK3.5", - "Prusa/Prusa Generic PC @MK3.5 0.25", - "Prusa/Prusa Generic PC @MK3.5 0.6", - "Prusa/Prusa Generic PC @MK3.5 0.8", - "Prusa/Prusa Generic PC HF @MK3.5", - "Prusa/Prusa Generic PC HF @MK3.5 0.6", - "Prusa/Prusa Generic PC HF @MK3.5 0.8", - "Prusa/Prusa Generic PC HF @base", - "Prusa/Prusa Generic PETG @CORE One 0.6", - "Prusa/Prusa Generic PETG @CORE One 0.8", - "Prusa/Prusa Generic PETG @CORE One HF 0.4", - "Prusa/Prusa Generic PETG @CORE One HF 0.5", - "Prusa/Prusa Generic PETG @CORE One HF 0.6", - "Prusa/Prusa Generic PETG @CORE One HF 0.8", - "Prusa/Prusa Generic PETG @MK4S 0.6", - "Prusa/Prusa Generic PETG @MK4S 0.8", - "Prusa/Prusa Generic PETG @MK4S HF0.4", - "Prusa/Prusa Generic PETG @MK4S HF0.5", - "Prusa/Prusa Generic PETG @MK4S HF0.6", - "Prusa/Prusa Generic PETG @MK4S HF0.8", - "Prusa/Prusa Generic PLA @CORE One 0.6", - "Prusa/Prusa Generic PLA @CORE One 0.8", - "Prusa/Prusa Generic PLA @CORE One HF 0.4", - "Prusa/Prusa Generic PLA @CORE One HF 0.5", - "Prusa/Prusa Generic PLA @CORE One HF 0.6", - "Prusa/Prusa Generic PLA @CORE One HF 0.8", - "Prusa/Prusa Generic PLA @MK4S 0.6", - "Prusa/Prusa Generic PLA @MK4S 0.8", - "Prusa/Prusa Generic PLA @MK4S HF0.4", - "Prusa/Prusa Generic PLA @MK4S HF0.5", - "Prusa/Prusa Generic PLA @MK4S HF0.6", - "Prusa/Prusa Generic PLA @MK4S HF0.8", - "Prusa/Prusa Generic PLA Silk @CORE One 0.6", - "Prusa/Prusa Generic PLA Silk @CORE One 0.8", "Prusa/Prusa Generic PLA Silk @MK4S", - "Prusa/Prusa Generic PLA Silk @MK4S 0.6", - "Prusa/Prusa Generic PLA Silk @MK4S 0.8", - "Prusa/Prusa Generic TPU @CORE One", - "Prusa/Prusa Generic TPU @CORE One 0.6", - "Prusa/Prusa Generic TPU @CORE One 0.8", - "Prusa/Prusa Generic TPU @MK4S 0.6", - "Prusa/Prusa Generic TPU @MK4S 0.8", - "Prusa/Prusament ASA @CORE One", - "Prusa/Prusament ASA @CORE One 0.6", - "Prusa/Prusament ASA @CORE One 0.8", - "Prusa/Prusament ASA @CORE One HF 0.4", - "Prusa/Prusament ASA @CORE One HF 0.5", - "Prusa/Prusament ASA @CORE One HF 0.6", - "Prusa/Prusament ASA @CORE One HF 0.8", - "Prusa/Prusament PA-CF @CORE One 0.6", - "Prusa/Prusament PA-CF @CORE One 0.8", - "Prusa/Prusament PC Blend @CORE One", - "Prusa/Prusament PC Blend @CORE One 0.6", - "Prusa/Prusament PC Blend @CORE One 0.8", - "Prusa/Prusament PC Blend @CORE One HF 0.4", - "Prusa/Prusament PC Blend @CORE One HF 0.5", - "Prusa/Prusament PC Blend @CORE One HF 0.6", - "Prusa/Prusament PC Blend @CORE One HF 0.8", - "Prusa/Prusament PC-CF @CORE One", - "Prusa/Prusament PC-CF @CORE One 0.6", - "Prusa/Prusament PC-CF @CORE One 0.8", - "Prusa/Prusament PETG @CORE One 0.6", - "Prusa/Prusament PETG @CORE One 0.8", - "Prusa/Prusament PETG @CORE One HF 0.4", - "Prusa/Prusament PETG @CORE One HF 0.5", - "Prusa/Prusament PETG @CORE One HF 0.6", - "Prusa/Prusament PETG @CORE One HF 0.8", - "Prusa/Prusament PLA @CORE One 0.6", - "Prusa/Prusament PLA @CORE One 0.8", - "Prusa/Prusament PLA @CORE One HF 0.4", - "Prusa/Prusament PLA @CORE One HF 0.5", - "Prusa/Prusament PLA @CORE One HF 0.6", - "Prusa/Prusament PLA @CORE One HF 0.8", - "Prusa/Prusament PVB @CORE One", - "Prusa/Prusament PVB @CORE One 0.6", - "Prusa/Prusament PVB @CORE One 0.8", - "Prusa/Prusament rPLA @CORE One 0.6", - "Prusa/Prusament rPLA @CORE One 0.8", "Qidi/QIDI ABS Rapido 0.2 nozzle", "Qidi/QIDI ABS Rapido 0.6 nozzle", "Qidi/QIDI ABS Rapido 0.8 nozzle", @@ -1160,7 +974,6 @@ "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PC", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", @@ -1170,14 +983,9 @@ "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", - "RH3D/Generic ABS @E3NG v1.2S", - "RH3D/Generic ASA @E3NG v1.2S", - "RH3D/Generic PCCF @E3NG v1.2S", - "RH3D/Generic PETG @E3NG v1.2S", - "RH3D/Generic PLA @E3NG v1.2S", - "RH3D/Generic TPU @E3NG v1.2S", - "Ratrig/RatRig Generic PC", - "SecKit/SecKit Generic PC", + "Snapmaker/PolyLite Dual PLA @0.2 nozzle", + "Snapmaker/PolyLite J1 PLA", + "Snapmaker/PolyLite J1 PLA @0.2 nozzle", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", @@ -1219,420 +1027,12 @@ "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", "Sovol/Sovol Zero TPU", - "Tiertime/Tiertime Generic PC", - "Tiertime/Tiertime Generic PC@300HS", - "Tiertime/Tiertime PC", - "Tiertime/Tiertime PC@300HS", - "Volumic/Volumic PC", - "Volumic/Volumic PC (Performance)", - "Vzbot/Vzbot Generic PC", + "Wanhao France/YUMI PETG", "Wanhao France/YUMI PLA Bowden", "Wanhao France/YUMI PLA Direct Drive", - "Z-Bolt/Generic ABS @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic ABS @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic ABS @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt Base", - "Z-Bolt/Generic PA @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic PA @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PA @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt 0.8 nozzle", - "re3D/re3D PC", - "re3D/re3D PC @0.4 nozzle", - "re3D/re3D PC @0.8 nozzle" + "Z-Bolt/Generic ABS HT @Z-Bolt Base" ], "ids": { - "00001": [ - "Creality/Generic PLA" - ], - "00002": [ - "Creality/Generic PLA-Silk" - ], - "00003": [ - "Creality/Generic PETG" - ], - "00004": [ - "Creality/Generic ABS" - ], - "00005": [ - "Creality/Generic TPU" - ], - "00006": [ - "Creality/Generic PLA-CF" - ], - "00007": [ - "Creality/Generic ASA" - ], - "00008": [ - "Creality/Generic PA" - ], - "00009": [ - "Creality/Generic PA-CF" - ], - "00010": [ - "Creality/Generic BVOH" - ], - "00011": [ - "Creality/Generic PVA" - ], - "00012": [ - "Creality/Generic HIPS" - ], - "00013": [ - "Creality/Generic PET-CF" - ], - "00014": [ - "Creality/Generic PETG-CF" - ], - "00015": [ - "Creality/Generic PA6-CF" - ], - "00016": [ - "Creality/Generic PAHT-CF" - ], - "00017": [ - "Creality/Generic PPS" - ], - "00018": [ - "Creality/Generic PPS-CF" - ], - "00019": [ - "Creality/Generic PP" - ], - "00020": [ - "Creality/Generic PET" - ], - "00021": [ - "Creality/Generic PC" - ], - "00022": [ - "Creality/Generic PA612-CF" - ], - "00023": [ - "Creality/Generic Support for PA" - ], - "00024": [ - "Creality/Generic Support for PLA" - ], - "00025": [ - "Creality/Generic PA12-CF" - ], - "00026": [ - "Creality/Generic TPU 64D" - ], - "00027": [ - "Creality/Generic PETG-GF" - ], - "00031": [ - "Creality/Generic PP-CF" - ], - "00032": [ - "Creality/Generic PCTG" - ], - "00033": [ - "Creality/Generic ASA-CF" - ], - "00034": [ - "Creality/Generic PA6-GF" - ], - "00035": [ - "Creality/eSUN PLA-LW" - ], - "01001": [ - "Creality/Creality Hyper PLA", - "Creality/Hyper PLA" - ], - "01002": [ - "Creality/Hyper L-W PLA" - ], - "01003": [ - "Creality/Hyper Luminous" - ], - "01004": [ - "Creality/Hyper Stardust" - ], - "01601": [ - "Creality/Soleyin Ultra PLA" - ], - "02001": [ - "Creality/Creality Hyper PLA-CF", - "Creality/Hyper PLA-CF" - ], - "03001": [ - "Creality/Creality Hyper ABS", - "Creality/Hyper ABS" - ], - "04001": [ - "Creality/CR-PLA", - "Creality/Creality Generic PLA" - ], - "05001": [ - "Creality/CR-Silk", - "Creality/Creality Silk PLA" - ], - "06001": [ - "Creality/CR-PETG", - "Creality/Creality Generic PETG" - ], - "06002": [ - "Creality/Hyper PETG" - ], - "06003": [ - "Creality/Hyper PETG-CF" - ], - "06004": [ - "Creality/Hyper PETG-GF" - ], - "06005": [ - "Creality/Soleyin Basic PETG" - ], - "07001": [ - "Creality/CR-ABS", - "Creality/Creality Generic ABS" - ], - "07002": [ - "Creality/Hyper PC" - ], - "08001": [ - "Creality/Ender-PLA" - ], - "09001": [ - "Creality/EN-PLA+" - ], - "09002": [ - "Creality/ENDER FAST PLA" - ], - "10001": [ - "Creality/Creality Generic TPU", - "Creality/HP-TPU" - ], - "1009481135": [ - "Snapmaker/Snapmaker J1 PET" - ], - "1042511226": [ - "Snapmaker/Snapmaker Dual PETG-CF" - ], - "10425112260": [ - "Snapmaker/Snapmaker PETG-CF" - ], - "11001": [ - "Creality/CR-Nylon", - "Creality/Creality Generic PA" - ], - "1172603684": [ - "Snapmaker/Snapmaker J1 PETG" - ], - "1181363872": [ - "Snapmaker/Snapmaker Dual PLA Silk" - ], - "11813638720": [ - "Snapmaker/Snapmaker PLA Silk" - ], - "1192769348": [ - "Snapmaker/Snapmaker J1 PLA Matte" - ], - "12002": [ - "Creality/Hyper PPA-CF" - ], - "12003": [ - "Creality/Hyper PAHT-CF" - ], - "12004": [ - "Creality/Hyper PA612-CF" - ], - "12005": [ - "Creality/Hyper PA6-CF" - ], - "1207881278": [ - "Snapmaker/Snapmaker Dual Breakaway" - ], - "1210173120": [ - "Snapmaker/Snapmaker J1 PA-CF" - ], - "1223824394": [ - "Snapmaker/Snapmaker J1 ABS" - ], - "1247172706": [ - "Snapmaker/Snapmaker Dual ASA" - ], - "12471727060": [ - "Snapmaker/Snapmaker ASA" - ], - "13001": [ - "Creality/CR-PLA Carbon" - ], - "1344609062": [ - "Snapmaker/Snapmaker PVA" - ], - "1355502217": [ - "Snapmaker/Snapmaker PETG-CF" - ], - "1393866034": [ - "Snapmaker/PolyLite Dual PLA", - "Snapmaker/PolyLite J1 PLA", - "Snapmaker/PolyLite PLA" - ], - "14001": [ - "Creality/CR-PLA Matte" - ], - "1417031127": [ - "Snapmaker/Snapmaker Dual PLA" - ], - "14170311270": [ - "Snapmaker/Snapmaker PLA" - ], - "141703112701": [ - "Snapmaker/Snapmaker PLA SnapSpeed" - ], - "1417031127011": [ - "Snapmaker/Snapmaker PLA Lite" - ], - "144877656": [ - "Snapmaker/Snapmaker J1 ASA" - ], - "1480063856": [ - "Snapmaker/Snapmaker TPU" - ], - "15001": [ - "Creality/CR-PLA Fluo" - ], - "1528786603": [ - "Snapmaker/Snapmaker J1 PLA Silk" - ], - "16001": [ - "Creality/CR-TPU" - ], - "1655727393": [ - "Snapmaker/Snapmaker PLA Silk" - ], - "168223792": [ - "Snapmaker/Snapmaker Dual ABS" - ], - "1682237920": [ - "Snapmaker/Snapmaker ABS" - ], - "1695556157": [ - "Snapmaker/Snapmaker PLA Eco" - ], - "17001": [ - "Creality/CR-Wood" - ], - "1702147325": [ - "Snapmaker/Snapmaker Dual PLA-CF" - ], - "17021473250": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "18001": [ - "Creality/HP Ultra PLA" - ], - "1895495477": [ - "Snapmaker/Snapmaker PETG" - ], - "19001": [ - "Creality/Creality Generic ASA", - "Creality/HP-ASA" - ], - "200803790": [ - "Snapmaker/Snapmaker Dual PLA Eco" - ], - "2008037900": [ - "Snapmaker/Snapmaker PLA Eco" - ], - "2029994346": [ - "Snapmaker/Snapmaker Dual PLA Metal" - ], - "20299943460": [ - "Snapmaker/Snapmaker PLA Metal" - ], - "2128577941": [ - "Snapmaker/Snapmaker Dual PET" - ], - "21285779410": [ - "Snapmaker/Snapmaker PET" - ], - "2209001062": [ - "Snapmaker/Snapmaker Dual PETG" - ], - "22090010620": [ - "Snapmaker/Snapmaker PETG" - ], - "2549587591": [ - "Snapmaker/Snapmaker PET" - ], - "2742961008": [ - "Snapmaker/Snapmaker ASA" - ], - "29001": [ - "Creality/Hyper Marble" - ], - "2971656290": [ - "Snapmaker/Snapmaker Dual TPU" - ], - "29716562900": [ - "Snapmaker/Snapmaker TPU" - ], - "297165629001": [ - "Snapmaker/Snapmaker TPU 95A" - ], - "3104636980": [ - "Snapmaker/Snapmaker Dual PVA" - ], - "31046369800": [ - "Snapmaker/Snapmaker PVA" - ], - "3177068229": [ - "Snapmaker/Snapmaker PLA" - ], - "3383257822": [ - "Snapmaker/Snapmaker J1 PLA Eco" - ], - "3492897526": [ - "Snapmaker/Snapmaker J1 Breakaway" - ], - "3493177425": [ - "Snapmaker/Snapmaker Dual PA-CF" - ], - "34931774250": [ - "Snapmaker/Snapmaker PA-CF" - ], - "3503790988": [ - "Snapmaker/Snapmaker Dual PLA Matte" - ], - "377675245": [ - "Snapmaker/Snapmaker J1 PLA" - ], - "3806593857": [ - "Snapmaker/Snapmaker J1 PLA-CF" - ], - "3811508002": [ - "Snapmaker/Snapmaker ABS" - ], - "3864371306": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "4012961186": [ - "Snapmaker/Snapmaker J1 PLA Metal" - ], - "4092268632": [ - "Snapmaker/Snapmaker J1 TPU" - ], - "4227461134": [ - "Snapmaker/Snapmaker Breakaway Support For PLA", - "Snapmaker/Snapmaker J1 PVA" - ], - "4235401834": [ - "Snapmaker/Snapmaker J1 PETG-CF" - ], - "581236806": [ - "Snapmaker/Snapmaker PA-CF" - ], "BABB00": [ "BBL/BETA ABS" ], @@ -1756,36 +1156,6 @@ "BPLB20": [ "BBL/BETA PLA High Speed" ], - "BSFI001": [ - "Blocks/Blocks Generic PLA" - ], - "BSFI002": [ - "Blocks/Blocks Generic PETG" - ], - "BSFI003": [ - "Blocks/Blocks Generic TPU" - ], - "BSFI004": [ - "Blocks/Blocks Generic ABS" - ], - "BSFI005": [ - "Blocks/Blocks Generic ASA" - ], - "BSFI006": [ - "Blocks/Blocks Generic PA" - ], - "BSFI007": [ - "Blocks/Blocks Generic PA-CF" - ], - "BSFI008": [ - "Blocks/Blocks Generic PC" - ], - "BSFI009": [ - "Blocks/Blocks Generic PVA" - ], - "BSFI010": [ - "Blocks/Blocks Generic PLA-CF" - ], "BTUB00": [ "BBL/BETA TPU 90A" ], @@ -1798,174 +1168,29 @@ "BTUB03": [ "BBL/BETA TPU 98A" ], - "DFL99": [ - "Volumic/Désactivé" - ], - "E1001": [ - "Creality/eSUN PLA+" - ], - "E1002": [ - "Creality/eSUN PLA-Silk" - ], - "E1003": [ - "Creality/eSUN PLA-Matte" - ], - "E1004": [ - "Creality/eSUN PLA-Lite" - ], - "E1005": [ - "Creality/eSUN PLA-CF" - ], - "E1006": [ - "Creality/eSUN PLA-HS" - ], - "E2001": [ - "Creality/eSUN PETG" - ], - "E2002": [ - "Creality/eSUN PETG+HS" - ], - "E2003": [ - "Creality/eSUN PETG-Basic" - ], - "E3001": [ - "Creality/eSUN ABS+" - ], - "E4001": [ - "Creality/eSUN ASA+" - ], - "E8001": [ - "Creality/eSUN PET-Basic" - ], - "EABSB00": [ - "Elegoo/Elegoo ABS" - ], - "EASAB00": [ - "Elegoo/Elegoo ASA" - ], - "EFL33": [ - "Eryone/Eryone PP-CF" - ], - "EFL40": [ - "Eryone/Eryone PLA-CF" - ], - "EFL43": [ - "Eryone/Eryone PETG-CF" - ], - "EFL71": [ - "Eryone/Eryone PA" - ], - "EFL72": [ - "Eryone/Eryone PA-CF" - ], - "EFL73": [ - "Eryone/Eryone PA-GF" - ], - "EFL81": [ - "Eryone/Eryone ABS-CF" - ], - "EFL82": [ - "Eryone/Eryone ASA-CF" - ], - "EFL90": [ - "Eryone/Eryone PLA" - ], - "EFL91": [ - "Eryone/Eryone ABS" - ], - "EFL92": [ - "Eryone/Eryone ASA" - ], - "EFL93": [ - "Eryone/Eryone PETG" - ], - "EFL941": [ - "Eryone/Eryone Silk PLA" - ], - "EFL95": [ - "Eryone/Eryone TPU" - ], - "EPAHTB00": [ - "Elegoo/Elegoo PAHT-CF" - ], - "EPCB00": [ - "Elegoo/Elegoo PC" - ], - "EPETGB00": [ - "Elegoo/Elegoo PETG" - ], - "EPLAB00": [ - "Elegoo/Elegoo PLA" - ], - "ETPUB00": [ - "Elegoo/Elegoo TPU 95A" - ], - "FFF01": [ - "Flashforge/Flashforge PLA" - ], - "FFF02": [ - "Flashforge/Flashforge ABS" - ], - "FFF03": [ - "Flashforge/Flashforge PETG", - "Flashforge/Generic PETG" - ], - "FFG01": [ - "Flashforge/Flashforge Generic PLA" - ], - "GABSB00": [ - "Elegoo/Generic ABS" - ], - "GASAB00": [ - "Elegoo/Generic ASA", - "Elegoo/Generic ASA-CF" - ], "GFA00": [ - "Afinia/Afinia PLA", - "Afinia/Afinia Value PLA", - "BBL/Bambu PLA Basic", - "OrcaArena/Arena PLA Basic", - "Tiertime/Tiertime PLA", - "WonderMaker/WonderMaker PLA Basic" - ], - "GFA00_01": [ - "Afinia/Afinia PLA", - "Tiertime/Tiertime PLA" + "BBL/Bambu PLA Basic" ], "GFA01": [ - "BBL/Bambu PLA Matte", - "OrcaArena/Arena PLA Matte", - "WonderMaker/WonderMaker PLA Matte" + "BBL/Bambu PLA Matte" ], "GFA02": [ - "BBL/Bambu PLA Metal", - "OrcaArena/Arena PLA Metal", - "WonderMaker/WonderMaker PLA Metal" - ], - "GFA03": [ - "OrcaArena/Arena PLA Impact" + "BBL/Bambu PLA Metal" ], "GFA05": [ - "BBL/Bambu PLA Silk", - "OrcaArena/Arena PLA Silk", - "Qidi/Qidi Generic PLA Silk", - "WonderMaker/WonderMaker PLA Silk" + "BBL/Bambu PLA Silk" ], "GFA06": [ "BBL/Bambu PLA Silk+" ], "GFA07": [ - "BBL/Bambu PLA Marble", - "OrcaArena/Arena PLA Marble", - "WonderMaker/WonderMaker PLA Marble" + "BBL/Bambu PLA Marble" ], "GFA08": [ - "BBL/Bambu PLA Sparkle", - "OrcaArena/Arena PLA Sparkle" + "BBL/Bambu PLA Sparkle" ], "GFA09": [ - "BBL/Bambu PLA Tough", - "OrcaArena/Arena PLA Tough" + "BBL/Bambu PLA Tough" ], "GFA10": [ "BBL/Bambu PLA Tough+" @@ -1983,8 +1208,7 @@ "BBL/Bambu PLA Galaxy" ], "GFA16": [ - "BBL/Bambu PLA Wood", - "WonderMaker/WonderMaker PLA Wood" + "BBL/Bambu PLA Wood" ], "GFA17": [ "BBL/Bambu PLA Translucent" @@ -1993,41 +1217,13 @@ "BBL/Bambu PLA Lite" ], "GFA50": [ - "BBL/Bambu PLA-CF", - "OrcaArena/Arena PLA-CF", - "Tiertime/Tiertime PLA-CF" - ], - "GFA50_01": [ - "Tiertime/Tiertime PLA-CF" - ], - "GFA99": [ - "Anycubic/Anycubic ASA", - "CoLiDo/CoLiDo Generic PLA", - "CoLiDo/CoLiDo PLA+" - ], - "GFASA": [ - "Anycubic/Anycubic ASA" + "BBL/Bambu PLA-CF" ], "GFB00": [ - "Afinia/Afinia ABS", - "Afinia/Afinia ABS+", - "Afinia/Afinia Value ABS", - "BBL/Bambu ABS", - "OrcaArena/Arena ABS", - "Tiertime/Tiertime ABS", - "WonderMaker/WonderMaker ABS" - ], - "GFB00_01": [ - "Afinia/Afinia ABS", - "Tiertime/Tiertime ABS" + "BBL/Bambu ABS" ], "GFB01": [ - "BBL/Bambu ASA", - "Tiertime/Tiertime ASA", - "WonderMaker/WonderMaker ASA" - ], - "GFB01_01": [ - "Tiertime/Tiertime ASA" + "BBL/Bambu ASA" ], "GFB02": [ "BBL/Bambu ASA-Aero" @@ -2045,276 +1241,52 @@ "BBL/PolyLite ASA" ], "GFB98": [ - "Anker/Anker Generic ASA", - "Anker/Anker Generic ASA 0.2 nozzle", - "Anker/Anker Generic ASA 0.25 nozzle", - "Anycubic/Anycubic Generic ASA", - "Artillery/Artillery Generic ASA", - "BBL/Generic ASA", - "Creality/Creality Generic ASA", - "FLSun/FLSun Generic ASA", - "FLSun/FLSun S1 ASA", - "FLSun/FLSun T1 ASA", - "OrcaArena/OrcaArena Generic ASA", - "Prusa/Prusa Generic ASA", - "Prusa/Prusament ASA", - "Ratrig/RatRig Generic ASA", - "SecKit/SecKit Generic ASA", - "Tiertime/Tiertime Generic ASA", - "Vzbot/Vzbot Generic ASA" - ], - "GFB98_01": [ - "Tiertime/Tiertime Generic ASA" - ], - "GFB98_2": [ - "Prusa/Prusa Generic ASA" - ], - "GFB98_3": [ - "Prusa/Prusa Generic ASA" - ], - "GFB98_4": [ - "Prusa/Prusa Generic ASA" - ], - "GFB98_5": [ - "Prusa/Prusa Generic ASA", - "Prusa/Prusa Generic ASA HF" - ], - "GFB98_6": [ - "Prusa/Prusa Generic ASA HF" - ], - "GFB98_7": [ - "Prusa/Prusa Generic ASA HF" + "BBL/Generic ASA" ], "GFB99": [ - "Anker/Anker Generic ABS", - "Anker/Anker Generic ABS 0.2 nozzle", - "Anker/Anker Generic ABS 0.25 nozzle", - "Anycubic/Anycubic Generic ABS", - "Artillery/Artillery Generic ABS", - "BBL/Generic ABS", - "Chuanying/Chuanying ABS", - "Chuanying/Chuanying Generic ABS", - "CoLiDo/CoLiDo ABS", - "CoLiDo/CoLiDo Generic ABS", - "Comgrow/Comgrow Generic ABS", - "Creality/Creality Generic ABS", - "DeltaMaker/DeltaMaker Generic TPU", - "FLSun/FLSun Generic ABS", - "FLSun/FLSun S1 ABS", - "FLSun/FLSun T1 ABS", - "Flashforge/Flashforge Generic ABS", - "Flashforge/Generic ABS", - "FlyingBear/FlyingBear Generic ABS", - "InfiMech/InfiMech Generic ABS", - "Lulzbot/Lulzbot 2.85mm ABS", - "OrcaArena/OrcaArena Generic ABS", - "Prusa/Prusa Generic ABS", - "Qidi/Qidi Generic ABS", - "Ratrig/RatRig Generic ABS", - "SecKit/SecKit Generic ABS", - "Tiertime/Tiertime Generic ABS", - "Volumic/Volumic ABS Ultra", - "Volumic/Volumic ABS Ultra (Performance)", - "Vzbot/Vzbot Generic ABS" - ], - "GFB99_01": [ - "Tiertime/Tiertime Generic ABS" - ], - "GFB99_2": [ - "Prusa/Prusa Generic ABS" - ], - "GFB99_3": [ - "Prusa/Prusa Generic ABS" - ], - "GFB99_4": [ - "Prusa/Prusa Generic ABS" - ], - "GFB99_5": [ - "Prusa/Prusa Generic ABS", - "Prusa/Prusa Generic ABS HF" - ], - "GFB99_6": [ - "Prusa/Prusa Generic ABS HF" - ], - "GFB99_7": [ - "Prusa/Prusa Generic ABS HF" + "BBL/Generic ABS" ], "GFC00": [ - "BBL/Bambu PC", - "OrcaArena/Arena PC", - "Tiertime/Tiertime PC" - ], - "GFC00_01": [ - "Tiertime/Tiertime PC" + "BBL/Bambu PC" ], "GFC01": [ "BBL/Bambu PC FR" ], - "GFC98": [ - "Prusa/Prusament PC-CF" - ], "GFC99": [ - "Anker/Anker Generic PC", - "Anker/Anker Generic PC 0.2 nozzle", - "Anker/Anker Generic PC 0.25 nozzle", - "Anycubic/Anycubic Generic PC", - "BBL/Generic PC", - "Creality/Creality Generic PC", - "Custom/Generic PC", - "FLSun/FLSun Generic PC", - "FlyingBear/FlyingBear Generic PC", - "InfiMech/InfiMech Generic PC", - "OrcaArena/OrcaArena Generic PC", - "Prusa/Prusa Generic PC", - "Prusa/Prusament PC Blend", - "Qidi/Qidi Generic PC", - "Ratrig/RatRig Generic PC", - "SecKit/SecKit Generic PC", - "Tiertime/Tiertime Generic PC", - "Volumic/Volumic PC", - "Volumic/Volumic PC (Performance)", - "Vzbot/Vzbot Generic PC" - ], - "GFC99_01": [ - "Tiertime/Tiertime Generic PC" - ], - "GFC99_1": [ - "Prusa/Prusa Generic PC" - ], - "GFC99_2": [ - "Prusa/Prusa Generic PC" - ], - "GFC99_3": [ - "Prusa/Prusa Generic PC" - ], - "GFC99_4": [ - "Prusa/Prusa Generic PC", - "Prusa/Prusa Generic PC HF" - ], - "GFC99_5": [ - "Prusa/Prusa Generic PC HF" - ], - "GFC99_6": [ - "Prusa/Prusa Generic PC HF" + "BBL/Generic PC" ], "GFG00": [ - "BBL/Bambu PETG Basic", - "OrcaArena/Arena PETG Basic", - "Tiertime/Tiertime PETG", - "WonderMaker/WonderMaker PETG Basic" - ], - "GFG00_01": [ - "Tiertime/Tiertime PETG" + "BBL/Bambu PETG Basic" ], "GFG01": [ - "BBL/Bambu PETG Translucent", - "re3D/re3D Greengate rPETG" + "BBL/Bambu PETG Translucent" ], "GFG02": [ - "BBL/Bambu PETG HF", - "re3D/re3D rPP" - ], - "GFG03": [ - "re3D/re3D PETG" + "BBL/Bambu PETG HF" ], "GFG50": [ - "BBL/Bambu PETG-CF", - "OrcaArena/Arena PETG-CF" + "BBL/Bambu PETG-CF" ], "GFG60": [ - "BBL/PolyLite PETG", - "Snapmaker/PolyLite PETG" + "BBL/PolyLite PETG" ], "GFG96": [ "BBL/Generic PETG HF" ], "GFG97": [ - "BBL/Generic PCTG", - "Tiertime/Tiertime Generic PCTG" - ], - "GFG97-01": [ - "Tiertime/Tiertime Generic PCTG" + "BBL/Generic PCTG" ], "GFG98": [ - "Anker/Anker Generic PETG-CF", - "BBL/Generic PETG-CF", - "OrcaArena/OrcaArena Generic PETG-CF", - "Qidi/Qidi Generic PETG-CF", - "Tiertime/Tiertime Generic PETG-CF", - "Volumic/Volumic PETG Ultra carbone", - "Volumic/Volumic PETG Ultra carbone (Performance)" - ], - "GFG98_01": [ - "Tiertime/Tiertime Generic PETG-CF" + "BBL/Generic PETG-CF" ], "GFG99": [ - "Anker/Anker Generic PETG", - "Anker/Anker Generic PETG 0.2 nozzle", - "Anker/Anker Generic PETG 0.25 nozzle", - "Anycubic/Anycubic Generic PETG", - "Artillery/Artillery Generic PETG", - "BBL/Generic PETG", - "CONSTRUCT3D/C1 Generic PETG", - "Chuanying/Chuanying Generic PETG", - "Chuanying/Chuanying PETG", - "CoLiDo/CoLiDo Generic PETG", - "CoLiDo/CoLiDo PETG", - "Comgrow/Comgrow Generic PETG", - "Creality/Creality Generic PETG", - "Custom/Generic PETG", - "DeltaMaker/DeltaMaker Generic PETG", - "FLSun/FLSun Generic PETG", - "FLSun/FLSun S1 PETG", - "FLSun/FLSun T1 PETG", - "Flashforge/Flashforge Generic PETG", - "Flashforge/Generic PETG", - "FlyingBear/FlyingBear Generic PETG", - "FlyingBear/FlyingBear PETG Basic", - "InfiMech/InfiMech Generic PETG", - "Lulzbot/Lulzbot 2.85mm PETG", - "MagicMaker/MM Generic PEEK", - "OrcaArena/OrcaArena Generic PETG", - "Qidi/Qidi Generic PETG", - "Ratrig/RatRig Generic PETG", - "SecKit/SecKit Generic PETG", - "Tiertime/Tiertime Generic PETG", - "Volumic/Volumic PETG Ultra", - "Volumic/Volumic PETG Ultra (Performance)", - "Vzbot/Vzbot Generic PETG", - "Wanhao France/YUMI PETG", - "re3D/re3D PC" - ], - "GFG99_01": [ - "Tiertime/Tiertime Generic PETG" - ], - "GFG99_2": [ - "Prusa/Prusa Generic PETG" - ], - "GFG99_3": [ - "Prusa/Prusa Generic PETG" - ], - "GFG99_4": [ - "Prusa/Prusa Generic PETG" - ], - "GFG99_5": [ - "Prusa/Prusa Generic PETG", - "Prusa/Prusa Generic PETG HF" - ], - "GFG99_6": [ - "Prusa/Prusa Generic PETG HF" - ], - "GFG99_7": [ - "Prusa/Prusa Generic PETG HF" + "BBL/Generic PETG" ], "GFL00": [ - "BBL/PolyLite PLA", - "OrcaArena/PolyLite PLA", - "Snapmaker/PolyLite PLA" + "BBL/PolyLite PLA" ], "GFL01": [ - "BBL/PolyTerra PLA", - "OrcaArena/PolyTerra PLA", - "Snapmaker/PolyTerra PLA" + "BBL/PolyTerra PLA" ], "GFL03": [ "BBL/eSUN PLA+" @@ -2326,62 +1298,11 @@ "BBL/Overture Matte PLA" ], "GFL06": [ - "BBL/Fiberon PETG-ESD", - "Snapmaker/Fiberon PETG-ESD" - ], - "GFL100": [ - "TwoTrees/TwoTrees Generic HS PLA", - "Z-Bolt/Generic PLA" - ], - "GFL106": [ - "Z-Bolt/Generic PLA" - ], - "GFL108": [ - "Z-Bolt/Generic PLA" - ], - "GFL200": [], - "GFL204": [ - "Z-Bolt/Generic ABS" - ], - "GFL206": [ - "Z-Bolt/Generic ABS" - ], - "GFL208": [ - "Z-Bolt/Generic ABS" - ], - "GFL300": [], - "GFL304": [ - "Z-Bolt/Generic PETG" - ], - "GFL306": [ - "Z-Bolt/Generic PETG" - ], - "GFL308": [ - "Z-Bolt/Generic PETG" - ], - "GFL400": [], - "GFL404": [ - "Z-Bolt/Generic PA" - ], - "GFL406": [ - "Z-Bolt/Generic PA" - ], - "GFL408": [ - "Z-Bolt/Generic PA" + "BBL/Fiberon PETG-ESD" ], "GFL50": [ "BBL/Fiberon PA6-CF" ], - "GFL500": [], - "GFL504": [ - "Z-Bolt/Generic ABS HT" - ], - "GFL506": [ - "Z-Bolt/Generic ABS HT" - ], - "GFL508": [ - "Z-Bolt/Generic ABS HT" - ], "GFL51": [ "BBL/Fiberon PA6-GF" ], @@ -2398,13 +1319,10 @@ "BBL/Fiberon PETG-rCF" ], "GFL56": [ - "BBL/Fiberon PA12-CF10", - "Snapmaker/Fiberon PA12-CF10" + "BBL/Fiberon PA12-CF10" ], "GFL57": [ - "Anycubic/Fiberon PA6-CF20", - "BBL/Fiberon PA6-CF20", - "Snapmaker/Fiberon PA6-CF20" + "BBL/Fiberon PA6-CF20" ], "GFL58": [ "BBL/Fiberon PA6-GF25" @@ -2419,218 +1337,53 @@ "BBL/Fiberon PETG-rCF08" ], "GFL62": [ - "BBL/PolyLite CosPLA", - "Snapmaker/PolyLite CosPLA" + "BBL/PolyLite CosPLA" ], "GFL63": [ - "BBL/PolyLite PLA Galaxy", - "Snapmaker/PolyLite PLA Galaxy" + "BBL/PolyLite PLA Galaxy" ], "GFL64": [ - "BBL/PolyLite PLA Glow", - "Snapmaker/PolyLite PLA Glow" + "BBL/PolyLite PLA Glow" ], "GFL65": [ - "BBL/PolyLite PLA Luminous", - "Snapmaker/PolyLite PLA Luminous" + "BBL/PolyLite PLA Luminous" ], "GFL66": [ - "BBL/PolyLite PLA Neon", - "Snapmaker/PolyLite PLA Neon" + "BBL/PolyLite PLA Neon" ], "GFL67": [ - "BBL/PolyLite PLA Starlight", - "Snapmaker/PolyLite PLA Starlight" + "BBL/PolyLite PLA Starlight" ], "GFL68": [ - "BBL/PolyLite PLA Translucent", - "Snapmaker/PolyLite PLA Translucent" + "BBL/PolyLite PLA Translucent" ], "GFL69": [ - "BBL/PolyTerra PLA Marble", - "Snapmaker/PolyTerra PLA Marble" + "BBL/PolyTerra PLA Marble" ], "GFL70": [ - "BBL/PolyTerra PLA+", - "Snapmaker/PolyTerra PLA+" - ], - "GFL71": [ - "Snapmaker/Fiberon ASA-CF08" - ], - "GFL72": [ - "Snapmaker/Fiberon PA612-ESD" - ], - "GFL73": [ - "Snapmaker/Fiberon PPS-GF20" - ], - "GFL74": [ - "Snapmaker/PolyLite PETG Translucent" - ], - "GFL75": [ - "Snapmaker/PolyLite PLA Pro Metallic" - ], - "GFL76": [ - "Snapmaker/Polymaker PETG" - ], - "GFL77": [ - "Snapmaker/Polymaker PETG Galaxy" - ], - "GFL78": [ - "Snapmaker/Polymaker PLA" - ], - "GFL79": [ - "Anycubic/Polymaker PLA Pro", - "Snapmaker/Polymaker PLA Pro" - ], - "GFL80": [ - "Anycubic/Polymaker PLA Pro Metallic", - "Snapmaker/Polymaker PLA Pro Metallic" - ], - "GFL94": [ - "Anycubic/Anycubic PLA Slik" + "BBL/PolyTerra PLA+" ], "GFL95": [ - "Anker/Anker Generic PLA+", - "Anker/Anker Generic PLA+ 0.2 nozzle", - "Anker/Anker Generic PLA+ 0.25 nozzle", - "BBL/Generic PLA High Speed", - "Tiertime/Tiertime Generic PLA High Speed" - ], - "GFL95_01": [ - "Tiertime/Tiertime Generic PLA High Speed" + "BBL/Generic PLA High Speed" ], "GFL96": [ - "Anker/Anker Generic PLA Silk", - "Anker/Anker Generic PLA Silk 0.2 nozzle", - "Anker/Anker Generic PLA Silk 0.25 nozzle", - "BBL/Generic PLA Silk", - "Tiertime/Tiertime Generic PLA Silk" - ], - "GFL96_01": [ - "Tiertime/Tiertime Generic PLA Silk" - ], - "GFL97": [ - "Anycubic/Anycubic PLA SE" + "BBL/Generic PLA Silk" ], "GFL98": [ - "Anker/Anker Generic PLA-CF", - "Anycubic/Anycubic Generic PLA-CF", - "Anycubic/Anycubic PLA Glow", - "Artillery/Artillery Generic PLA-CF", - "BBL/Generic PLA-CF", - "Creality/Creality Generic PLA-CF", - "Custom/Generic PLA-CF", - "FLSun/FLSun Generic PLA-CF", - "OrcaArena/OrcaArena Generic PLA-CF", - "Qidi/Qidi Generic PLA-CF", - "Ratrig/RatRig Generic PLA-CF", - "SecKit/SecKit Generic PLA-CF", - "Tiertime/Tiertime Generic PLA-CF", - "Vzbot/Vzbot Generic PLA-CF" - ], - "GFL98_01": [ - "Tiertime/Tiertime Generic PLA-CF" - ], - "GFL98_1": [ - "Prusa/Prusa Generic PLA-CF" - ], - "GFL98_3": [ - "Prusa/Prusa Generic PLA-CF" - ], - "GFL98_4": [ - "Prusa/Prusa Generic PLA-CF" - ], - "GFL98_5": [ - "Prusa/Prusa Generic PLA-CF" + "BBL/Generic PLA-CF" ], "GFL99": [ - "Anker/Anker Generic PLA", - "Anker/Anker Generic PLA 0.2 nozzle", - "Anker/Anker Generic PLA 0.25 nozzle", - "Anycubic/Anycubic Generic PLA", - "Artillery/Artillery Generic PLA", - "BBL/Generic PLA", - "CONSTRUCT3D/C1 Generic PLA", - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying PLA", - "Co Print/CoPrint Generic PLA", - "Comgrow/Comgrow Generic PLA", - "Comgrow/Comgrow T300 PLA", - "Creality/Creality Generic PLA", - "Custom/Generic PLA", - "DeltaMaker/DeltaMaker Generic PLA", - "Dremel/Dremel Generic PLA", - "FLSun/FLSun Generic PLA", - "FLSun/FLSun S1 PLA Generic", - "FLSun/FLSun T1 PLA Generic", - "Flashforge/Generic PLA", - "Flashforge/Generic PLA High Speed", - "FlyingBear/FlyingBear Generic PLA", - "InfiMech/InfiMech Generic PLA", - "Lulzbot/Lulzbot 2.85mm PLA", - "OrcaArena/OrcaArena Generic PLA", - "Peopoly/Peopoly Generic PLA", - "Phrozen/Phrozen PLA", - "Prusa/Prusa Generic PLA", - "Qidi/Qidi Generic PLA", - "Ratrig/RatRig Generic PLA", - "SecKit/SecKit Generic PLA", - "Sovol/Sovol SV07 PLA", - "Tiertime/Tiertime Generic PLA", - "Volumic/Volumic PLA Ultra", - "Volumic/Volumic PLA Ultra (Performance)", - "Vzbot/Vzbot Generic PLA", - "re3D/re3D PLA" - ], - "GFL99_01": [ - "Tiertime/Tiertime Generic PLA" - ], - "GFL99_2": [ - "Prusa/Prusa Generic PLA" - ], - "GFL99_3": [ - "Prusa/Prusa Generic PLA" - ], - "GFL99_4": [ - "Prusa/Prusa Generic PLA" - ], - "GFL99_5": [ - "Prusa/Prusa Generic PLA", - "Prusa/Prusa Generic PLA HF" - ], - "GFL99_6": [ - "Prusa/Prusa Generic PLA HF" - ], - "GFL99_7": [ - "Prusa/Prusa Generic PLA HF" - ], - "GFLLK10PETG": [ - "LONGER/Generic PETG" - ], - "GFLLK10PLA": [ - "LONGER/Generic PLA" - ], - "GFLLK10PPETG": [ - "LONGER/Generic PETG" - ], - "GFLLK10PPLA": [ - "LONGER/Generic PLA" + "BBL/Generic PLA" ], "GFLSBS99": [], "GFN03": [ - "BBL/Bambu PA-CF", - "OrcaArena/Arena PA-CF" + "BBL/Bambu PA-CF" ], "GFN04": [ - "BBL/Bambu PAHT-CF", - "OrcaArena/Arena PAHT-CF" + "BBL/Bambu PAHT-CF" ], "GFN05": [ - "BBL/Bambu PA6-CF", - "Tiertime/Tiertime PA6-CF" - ], - "GFN05_01": [ - "Tiertime/Tiertime PA6-CF" + "BBL/Bambu PA6-CF" ], "GFN06": [ "BBL/Bambu PPA-CF" @@ -2639,81 +1392,16 @@ "BBL/Bambu PA6-GF" ], "GFN96": [ - "BBL/Generic PPA-GF", - "Tiertime/Tiertime Generic PPA-GF" - ], - "GFN96_01": [ - "Tiertime/Tiertime Generic PPA-GF" + "BBL/Generic PPA-GF" ], "GFN97": [ - "BBL/Generic PPA-CF", - "Tiertime/Tiertime Generic PPA-CF" - ], - "GFN97_01": [ - "Tiertime/Tiertime Generic PPA-CF" + "BBL/Generic PPA-CF" ], "GFN98": [ - "Anker/Anker Generic PA-CF", - "Anycubic/Anycubic Generic PA-CF", - "BBL/Generic PA-CF", - "Creality/Creality Generic PA-CF", - "FLSun/FLSun Generic PA-CF", - "FlyingBear/FlyingBear Generic PA-CF", - "InfiMech/InfiMech Generic PA-CF", - "OrcaArena/OrcaArena Generic PA-CF", - "Prusa/Prusament PA-CF", - "Qidi/Qidi Generic PA-CF", - "Ratrig/RatRig Generic PA-CF", - "SecKit/SecKit Generic PA-CF", - "Tiertime/Tiertime Generic PA-CF", - "Vzbot/Vzbot Generic PA-CF" - ], - "GFN98_02": [ - "Tiertime/Tiertime Generic PA-CF" - ], - "GFN98_1": [ - "Prusa/Prusa Generic PA-CF" - ], - "GFN98_2": [ - "Prusa/Prusa Generic PA-CF" - ], - "GFN98_3": [ - "Prusa/Prusa Generic PA-CF" - ], - "GFN98_4": [ - "Prusa/Prusa Generic PA-CF" + "BBL/Generic PA-CF" ], "GFN99": [ - "Anker/Anker Generic PA", - "Anker/Anker Generic PA 0.2 nozzle", - "Anker/Anker Generic PA 0.25 nozzle", - "Anycubic/Anycubic Generic PA", - "BBL/Generic PA", - "FLSun/FLSun Generic PA", - "OrcaArena/OrcaArena Generic PA", - "Prusa/Prusa Generic PA", - "Qidi/Qidi Generic PA", - "Ratrig/RatRig Generic PA", - "SecKit/SecKit Generic PA", - "Tiertime/Tiertime Generic PA", - "Volumic/Volumic NYLON Ultra", - "Volumic/Volumic NYLON Ultra (Performance)", - "Vzbot/Vzbot Generic PA" - ], - "GFN99_01": [ - "Tiertime/Tiertime Generic PA" - ], - "GFN99_1": [ - "Prusa/Prusa Generic PA" - ], - "GFN99_2": [ - "Prusa/Prusa Generic PA" - ], - "GFN99_3": [ - "Prusa/Prusa Generic PA" - ], - "GFN99_4": [ - "Prusa/Prusa Generic PA" + "BBL/Generic PA" ], "GFNMK00": [ "BBL/Numakers PLA+" @@ -2722,192 +1410,91 @@ "BBL/Overture PLA Pro" ], "GFP95": [ - "BBL/Generic PP-GF", - "Tiertime/Tiertime Generic PP-GF" - ], - "GFP95_01": [ - "Tiertime/Tiertime Generic PP-GF" + "BBL/Generic PP-GF" ], "GFP96": [ - "BBL/Generic PP-CF", - "Tiertime/Tiertime Generic PP-CF" - ], - "GFP96_01": [ - "Tiertime/Tiertime Generic PP-CF" + "BBL/Generic PP-CF" ], "GFP97": [ - "BBL/Generic PP", - "Tiertime/Tiertime Generic PP" - ], - "GFP97_01": [ - "Tiertime/Tiertime Generic PP" + "BBL/Generic PP" ], "GFP98": [ - "BBL/Generic PE-CF", - "Tiertime/Tiertime Generic PE-CF" - ], - "GFP98_01": [ - "Tiertime/Tiertime Generic PE-CF" + "BBL/Generic PE-CF" ], "GFP99": [ - "BBL/Generic PE", - "Tiertime/Tiertime Generic PE" - ], - "GFP99_01": [ - "Tiertime/Tiertime Generic PE" - ], - "GFPA": [ - "Anycubic/Anycubic PA" - ], - "GFPA6-CF": [ - "Anycubic/Anycubic PA6-CF" - ], - "GFPAHT-CF": [ - "Anycubic/Anycubic PAHT-CF" - ], - "GFPC": [ - "Anycubic/Anycubic PC" - ], - "GFPC-CF": [ - "Anycubic/Anycubic PC-CF" - ], - "GFPC-GF": [ - "Anycubic/Anycubic PC-GF" - ], - "GFPEBA": [ - "Anycubic/Anycubic PEBA" - ], - "GFPET-CF": [ - "Anycubic/Anycubic PET-CF" - ], - "GFPETG": [ - "Anycubic/Generic PETG" - ], - "GFPETG-1": [ - "Peopoly/Peopoly Generic PETG" - ], - "GFPETG-CF": [ - "Anycubic/Anycubic PETG-CF" - ], - "GFPLA Glow": [ - "Anycubic/Anycubic PLA Glow" - ], - "GFPLA Translucent": [ - "Anycubic/Anycubic PLA Translucent" - ], - "GFPLA-CF": [ - "Anycubic/Anycubic PLA-CF" + "BBL/Generic PE" ], "GFPM001": [ - "Anycubic/Panchroma PLA", - "BBL/Panchroma PLA", - "Snapmaker/Panchroma PLA" + "BBL/Panchroma PLA" ], "GFPM002": [ - "BBL/Panchroma PLA Matte", - "Snapmaker/Panchroma PLA Matte" + "BBL/Panchroma PLA Matte" ], "GFPM003": [ - "BBL/Panchroma PLA Marble", - "Snapmaker/Panchroma PLA Marble" + "BBL/Panchroma PLA Marble" ], "GFPM004": [ - "BBL/Panchroma PLA Silk", - "Snapmaker/Panchroma PLA Silk" + "BBL/Panchroma PLA Silk" ], "GFPM005": [ - "BBL/Panchroma PLA Satin", - "Snapmaker/Panchroma PLA Satin" + "BBL/Panchroma PLA Satin" ], "GFPM006": [ - "BBL/Panchroma PLA Translucent", - "Snapmaker/Panchroma PLA Translucent" + "BBL/Panchroma PLA Translucent" ], "GFPM007": [ - "BBL/Panchroma PLA Galaxy", - "Snapmaker/Panchroma PLA Galaxy" + "BBL/Panchroma PLA Galaxy" ], "GFPM008": [ - "BBL/Panchroma PLA Celestial", - "Snapmaker/Panchroma PLA Celestial" + "BBL/Panchroma PLA Celestial" ], "GFPM009": [ - "BBL/Panchroma PLA Starlight", - "Snapmaker/Panchroma PLA Starlight" + "BBL/Panchroma PLA Starlight" ], "GFPM010": [ - "BBL/Panchroma PLA Glow", - "Snapmaker/Panchroma PLA Glow" + "BBL/Panchroma PLA Glow" ], "GFPM011": [ - "BBL/Panchroma PLA Luminous", - "Snapmaker/Panchroma PLA Luminous" + "BBL/Panchroma PLA Luminous" ], "GFPM012": [ - "BBL/Panchroma PLA Metallic", - "Snapmaker/Panchroma PLA Metallic" + "BBL/Panchroma PLA Metallic" ], "GFPM013": [ - "BBL/Panchroma PLA Neon", - "Snapmaker/Panchroma PLA Neon" + "BBL/Panchroma PLA Neon" ], "GFPM014": [ - "BBL/Panchroma PLA UV Shift", - "Snapmaker/Panchroma PLA UV Shift" + "BBL/Panchroma PLA UV Shift" ], "GFPM015": [ - "BBL/Panchroma PLA Temp Shift", - "Snapmaker/Panchroma PLA Temp Shift" + "BBL/Panchroma PLA Temp Shift" ], "GFPM016": [ - "BBL/Panchroma CoPE", - "Snapmaker/Panchroma CoPE" + "BBL/Panchroma CoPE" ], "GFPM017": [ - "BBL/Polymaker HT-PLA", - "Snapmaker/Polymaker HT-PLA" + "BBL/Polymaker HT-PLA" ], "GFPM018": [ - "BBL/Polymaker HT-PLA-GF", - "Snapmaker/Polymaker HT-PLA-GF" + "BBL/Polymaker HT-PLA-GF" ], "GFPM019": [ - "BBL/PolyLite PLA Pro", - "Snapmaker/PolyLite PLA Pro" - ], - "GFPVA": [ - "Anycubic/Anycubic PVA" + "BBL/PolyLite PLA Pro" ], "GFR00": [ "BBL/FusRock ABS-GF" ], "GFR98": [ - "BBL/Generic PHA", - "Tiertime/Tiertime Generic PHA" - ], - "GFR98_01": [ - "Tiertime/Tiertime Generic PHA" + "BBL/Generic PHA" ], "GFR99": [ - "BBL/Generic EVA", - "Tiertime/Tiertime Generic EVA" + "BBL/Generic EVA" ], - "GFR99_01": [ - "Tiertime/Tiertime Generic EVA" - ], - "GFRH01": [], - "GFRH02": [], - "GFRH03": [], - "GFRH04": [], - "GFRH05": [], - "GFRH06": [], "GFS00": [ - "BBL/Bambu Support W", - "OrcaArena/Arena Support W" + "BBL/Bambu Support W" ], "GFS01": [ - "BBL/Bambu Support G", - "OrcaArena/Arena Support G" + "BBL/Bambu Support G" ], "GFS02": [ "BBL/Bambu Support For PLA" @@ -2916,12 +1503,7 @@ "BBL/Bambu Support For PA/PET" ], "GFS04": [ - "BBL/Bambu PVA", - "Tiertime/Tiertime PVA", - "WonderMaker/WonderMaker PVA" - ], - "GFS04_01": [ - "Tiertime/Tiertime PVA" + "BBL/Bambu PVA" ], "GFS05": [ "BBL/Bambu Support For PLA/PETG" @@ -2930,135 +1512,52 @@ "BBL/Bambu Support for ABS" ], "GFS97": [ - "BBL/Generic BVOH", - "Tiertime/Tiertime Generic BVOH" - ], - "GFS97_01": [ - "Tiertime/Tiertime Generic BVOH" + "BBL/Generic BVOH" ], "GFS98": [ - "BBL/Generic HIPS", - "Prusa/Prusament PVB", - "Tiertime/Tiertime Generic HIPS" - ], - "GFS98_01": [ - "Tiertime/Tiertime Generic HIPS" + "BBL/Generic HIPS" ], "GFS99": [ - "Anker/Anker Generic PVA", - "Anycubic/Anycubic Generic PVA", - "BBL/Generic PVA", - "Custom/Generic PVA", - "FLSun/FLSun Generic PVA", - "OrcaArena/OrcaArena Generic PVA", - "Prusa/Prusa Generic PVA", - "Qidi/Qidi Generic PVA", - "Ratrig/RatRig Generic PVA", - "SecKit/SecKit Generic PVA", - "Tiertime/Tiertime Generic PVA", - "Volumic/Volumic PVA", - "Volumic/Volumic PVA-BVOH (Performance)", - "Vzbot/Vzbot Generic PVA" - ], - "GFS99_01": [ - "Tiertime/Tiertime Generic PVA" - ], - "GFS99_1": [ - "Prusa/Prusa Generic PVA" - ], - "GFS99_2": [ - "Prusa/Prusa Generic PVA" - ], - "GFS99_3": [ - "Prusa/Prusa Generic PVA" - ], - "GFS99_4": [ - "Prusa/Prusa Generic PVA", - "Prusa/Prusa Generic PVA HF" - ], - "GFS99_5": [ - "Prusa/Prusa Generic PVA HF" - ], - "GFS99_6": [ - "Prusa/Prusa Generic PVA HF" - ], - "GFSL99": [ - "Peopoly/Peopoly Generic ABS" + "BBL/Generic PVA" ], "GFSNL02": [ - "BBL/SUNLU PLA Matte", - "Flashforge/SUNLU PLA Matte" + "BBL/SUNLU PLA Matte" ], "GFSNL03": [ - "BBL/SUNLU PLA+", - "Flashforge/SUNLU PLA+" + "BBL/SUNLU PLA+" ], "GFSNL04": [ - "BBL/SUNLU PLA+ 2.0", - "Flashforge/SUNLU PLA+ 2.0" + "BBL/SUNLU PLA+ 2.0" ], "GFSNL05": [ - "BBL/SUNLU Silk PLA+", - "Flashforge/SUNLU Silk PLA+" + "BBL/SUNLU Silk PLA+" ], "GFSNL06": [ - "BBL/SUNLU PLA Marble", - "Flashforge/SUNLU PLA Marble" + "BBL/SUNLU PLA Marble" ], "GFSNL07": [ - "BBL/SUNLU Wood PLA", - "Flashforge/SUNLU Wood PLA" + "BBL/SUNLU Wood PLA" ], "GFSNL08": [ - "BBL/SUNLU PETG", - "Flashforge/SUNLU PETG" + "BBL/SUNLU PETG" ], "GFT01": [ - "BBL/Bambu PET-CF", - "OrcaArena/Arena PET-CF", - "Tiertime/Tiertime PET-CF", - "WonderMaker/WonderMaker PET-CF" - ], - "GFT01_01": [ - "Tiertime/Tiertime PET-CF" + "BBL/Bambu PET-CF" ], "GFT02": [ - "BBL/Bambu PPS-CF", - "Prusa/Prusa Generic PETG" + "BBL/Bambu PPS-CF" ], "GFT97": [ - "BBL/Generic PPS", - "Tiertime/Tiertime Generic PPS" - ], - "GFT97_01": [ - "Tiertime/Tiertime Generic PPS" + "BBL/Generic PPS" ], "GFT98": [ - "BBL/Generic PPS-CF", - "Tiertime/Tiertime Generic PPS-CF" - ], - "GFT98_01": [ - "Tiertime/Tiertime Generic PPS-CF" - ], - "GFTPU 95A": [ - "Anycubic/Anycubic TPU 95A" - ], - "GFTPU for ACE": [ - "Anycubic/Anycubic TPU for ACE" + "BBL/Generic PPS-CF" ], "GFU00": [ "BBL/Bambu TPU 95A HF" ], "GFU01": [ - "Afinia/Afinia TPU", - "BBL/Bambu TPU 95A", - "OrcaArena/Arena TPU 95A", - "Tiertime/Tiertime TPU 95A", - "WonderMaker/WonderMaker TPU 95A" - ], - "GFU01_01": [ - "Afinia/Afinia TPU", - "Tiertime/Tiertime TPU 95A" + "BBL/Bambu TPU 95A" ], "GFU02": [ "BBL/Bambu TPU for AMS" @@ -3073,289 +1572,136 @@ "BBL/Generic TPU for AMS" ], "GFU99": [ - "Anker/Anker Generic TPU", - "Anycubic/Anycubic Generic TPU", - "Artillery/Artillery Generic TPU", - "BBL/Generic TPU", - "CoLiDo/CoLiDo Generic TPU", - "Creality/Creality Generic TPU", - "Custom/Generic TPU", - "FLSun/FLSun Generic TPU", - "FLSun/FLSun S1 TPU", - "FLSun/FLSun T1 TPU", - "FlyingBear/FlyingBear Generic TPU", - "FlyingBear/FlyingBear TPU Basic", - "InfiMech/InfiMech Generic TPU", - "InfiMech/InfiMech TPU Basic", - "OrcaArena/OrcaArena Generic TPU", - "Prusa/Prusa Generic FLEX", - "Prusa/Prusa Generic TPU", - "Qidi/Qidi Generic TPU", - "Ratrig/RatRig Generic TPU", - "SecKit/SecKit Generic TPU", - "Tiertime/Tiertime Generic TPU", - "TwoTrees/TwoTrees Generic 95A TPU", - "Volumic/Volumic FLEX93 Ultra", - "Volumic/Volumic FLEX93 Ultra (Performance)", - "Vzbot/Vzbot Generic TPU", - "Wanhao France/YUMI PLA Bowden", - "Wanhao France/YUMI PLA Direct Drive" + "BBL/Generic TPU" ], - "GFU99_01": [ - "Tiertime/Tiertime Generic TPU" + "OF016CJw": [ + "Sovol/Sovol SV08 ABS" ], - "GFU99_2": [ - "Prusa/Prusa Generic TPU" + "OF02UAVh": [ + "Creality/Soleyin Ultra PLA" ], - "GFU99_3": [ - "Prusa/Prusa Generic TPU HF" + "OF0FfcAG": [ + "Anycubic/Anycubic TPU for ACE" ], - "GPAB00": [ - "Elegoo/Generic PA" - ], - "GPCB00": [ - "Elegoo/Generic PC" - ], - "GPETB00": [ - "Elegoo/Generic PET" - ], - "GPETGB00": [ - "Elegoo/Generic PETG", - "Elegoo/Generic PETG-CF" - ], - "GPLAB00": [ - "Elegoo/Generic PLA" - ], - "Generic ABS @E3NG v1.2S": [ - "RH3D/Generic ABS" - ], - "Generic ABS @MK4S": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S 0.6": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S 0.8": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S HF0.4": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S HF0.5": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S HF0.6": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ABS @MK4S HF0.8": [ - "Prusa/Prusa Generic ABS" - ], - "Generic ASA @E3NG v1.2S": [ - "RH3D/Generic ASA" - ], - "Generic FLEX @MK4S": [ - "Prusa/Prusa Generic TPU" - ], - "Generic FLEX @MK4S 0.6": [ - "Prusa/Prusa Generic TPU" - ], - "Generic FLEX @MK4S 0.8": [ - "Prusa/Prusa Generic TPU" - ], - "Generic PCCF @E3NG v1.2S": [ - "RH3D/Generic PCCF" - ], - "Generic PETG @E3NG v1.2S": [ - "RH3D/Generic PETG" - ], - "Generic PETG @MK4S": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S 0.6": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S 0.8": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S HF0.4": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S HF0.5": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S HF0.6": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PETG @MK4S HF0.8": [ - "Prusa/Prusa Generic PETG" - ], - "Generic PLA @E3NG v1.2S": [ - "RH3D/Generic PLA" - ], - "Generic PLA @MK4S": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S 0.6": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S 0.8": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S HF0.4": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S HF0.5": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S HF0.6": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA @MK4S HF0.8": [ - "Prusa/Prusa Generic PLA" - ], - "Generic PLA Silk @MK4S": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Generic PLA Silk @MK4S 0.6": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Generic PLA Silk @MK4S 0.8": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Generic TPU @E3NG v1.2S": [ - "RH3D/Generic TPU" - ], - "IQM1": [ - "iQ/Fiberthree PACF Pro P1" - ], - "IQM1011": [ - "iQ/VXL90 TiQ2 P2" - ], - "IQM2": [ - "iQ/Material4Print ABS Natur P1" - ], - "IQM3": [ - "iQ/Polymaker PETG Polymax black P1" - ], - "IQM7": [ - "iQ/Fiberthree PACF Pro P2" - ], - "LHF_abs": [ - "LH/LHS ABS" - ], - "LHF_asa": [ - "LH/LHS ASA" - ], - "LHF_ftpuf": [ - "LH/LHS TPU Foamy 78A" - ], - "LHF_pccf": [ - "LH/LHS PC CF" - ], - "LHF_pctg": [ - "LH/LHS PCTG" - ], - "LHF_petg": [ - "LH/LHS PETG" - ], - "LHF_pla": [ - "LH/LHS PLA" - ], - "LHF_ptpu_pl": [ - "LH/LHS TPU" - ], - "OF09vOcG": [ - "Elegoo/Elegoo PLA Galaxy" - ], - "OF0Ee2jQ": [ - "Snapmaker/Snapmaker Dual TPU High-Flow" + "OF0GIkJm": [ + "Tiertime/Tiertime Generic PLA Silk" ], "OF0NgY1y": [ "BBL/COEX NYLEX PA6-CF", "OrcaFilamentLibrary/COEX NYLEX PA6-CF" ], - "OF0SyJhk": [ - "Flashforge/Flashforge PA6-CF" - ], - "OF0TODnN": [ - "Elegoo/Generic PET-CF" - ], - "OF0TjJ0G": [ - "Qidi/Qidi ASA-Aero" + "OF0R5Wc7": [ + "Artillery/Artillery PLA Tough" ], "OF0UJcb6": [ - "OrcaFilamentLibrary/PolyLite PETG" + "OrcaFilamentLibrary/PolyLite PETG", + "Snapmaker/PolyLite PETG" ], - "OF0UbONm": [ - "Flashforge/FusRock S-PAHT" - ], - "OF0VEdLB": [ - "Cubicon/Cubicon PETG" + "OF0VpkBM": [ + "Snapmaker/PolyLite PETG Translucent" ], "OF0Vtzaw": [ "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" ], - "OF0Y5MLd": [ - "Qidi/QIDI PETG-GF" + "OF0b7M1z": [ + "SeeMeCNC/SeeMeCNC PA-CF" + ], + "OF0c7mnL": [ + "InfiMech/InfiMech ABS" ], "OF0gGRWk": [ - "OrcaFilamentLibrary/Panchroma PLA Glow" + "OrcaFilamentLibrary/Panchroma PLA Glow", + "Snapmaker/Panchroma PLA Glow" ], "OF0h7ERL": [ + "Elegoo/Elegoo PAHT-CF", "OrcaFilamentLibrary/Elegoo PAHT-CF" ], "OF0kCNDK": [ - "OrcaFilamentLibrary/Panchroma PLA Luminous" + "OrcaFilamentLibrary/Panchroma PLA Luminous", + "Snapmaker/Panchroma PLA Luminous" + ], + "OF0omtEb": [ + "Snapmaker/Fiberon ASA-CF08" ], "OF0pzFLc": [ "BBL/COEX PLA+Silk", "OrcaFilamentLibrary/COEX PLA+Silk" ], + "OF0w7OpJ": [ + "Qidi/QIDI ABS Rapido 0.8 nozzle" + ], "OF0wBGNx": [ "OrcaFilamentLibrary/Bambu ASA-CF" ], - "OF0wk0Pk": [ - "Flashforge/Flashforge PLA Pro" + "OF0wz84w": [ + "Qidi/QIDI ABS Rapido 0.6 nozzle" ], - "OF0z1XpN": [ - "Qidi/QIDI PLA Rapido Silk" + "OF0yFLkY": [ + "Anycubic/Anycubic ASA" ], - "OF17cONC": [ - "Snapmaker/PolyTerra Dual PLA" + "OF0zx94L": [ + "Vzbot/Vzbot Generic PA" + ], + "OF112FvY": [ + "Anycubic/Generic PETG Basic" + ], + "OF1Id239": [ + "Prusa/Prusa Generic PETG" ], "OF1N1qMK": [ - "OrcaFilamentLibrary/Panchroma PLA UV Shift" + "OrcaFilamentLibrary/Panchroma PLA UV Shift", + "Snapmaker/Panchroma PLA UV Shift" + ], + "OF1OZujR": [ + "Flashforge/Flashforge Generic PVA" ], "OF1Pke8t": [ "BBL/Overture Easy PLA", "OrcaFilamentLibrary/Overture Easy PLA" ], "OF1UNk9P": [ + "Creality/Generic PP", "OrcaFilamentLibrary/Generic PP" ], - "OF1Zypyy": [ - "Qidi/QIDI PETG Tough" + "OF1W7c76": [ + "Qidi/QIDI ASA-CF" + ], + "OF1bQyX2": [ + "Flashforge/Flashforge PLA Matte" + ], + "OF1d7c3A": [ + "Snapmaker/Snapmaker ASA" + ], + "OF1daEUW": [ + "Anker/Anker Generic PETG-CF" + ], + "OF1dpPrW": [ + "Qidi/Bambu PLA" ], "OF1hznGB": [ + "Elegoo/Elegoo PLA PRO", "OrcaFilamentLibrary/Elegoo PLA PRO" ], - "OF22AxCm": [ - "Sovol/Polymaker PETG" + "OF1uR1t2": [ + "Tiertime/Tiertime Generic PETG" + ], + "OF223rZv": [ + "Anycubic/Anycubic ABS" + ], + "OF2EB9Iz": [ + "Volumic/Volumic ASA Ultra" ], "OF2EK9F1": [ "OrcaFilamentLibrary/FilAr PLA-mate Violeta" ], "OF2GCW1l": [ - "OrcaFilamentLibrary/SUNLU PETG" + "Flashforge/SUNLU PETG", + "OrcaFilamentLibrary/SUNLU PETG", + "Sovol/SUNLU PETG" ], - "OF2HQqTC": [ - "Cubicon/Cubicon PLA+" - ], - "OF2Psxdc": [ - "Co Print/CoPrint Generic TPU" - ], - "OF2UFmOo": [ - "Qidi/Bambu PLA" + "OF2RjrWH": [ + "Flashforge/FusRock Generic PAHT-GF" ], "OF2VFe4J": [ "OrcaFilamentLibrary/Bambu PAHT-CF" @@ -3363,277 +1709,524 @@ "OF2Z1nT5": [ "OrcaFilamentLibrary/FilAr PETG Azul Imperial" ], + "OF2bZtyg": [ + "Flashforge/Flashforge PLA-CF" + ], + "OF2hfMcG": [ + "OrcaArena/Arena PLA-CF" + ], + "OF2mgDsI": [ + "Vzbot/Vzbot Generic PLA" + ], "OF2pj5l5": [ "BBL/Overture Super PLA+", "OrcaFilamentLibrary/Overture Super PLA+" ], - "OF2tvNYA": [ - "Sovol/Sovol Zero PLA Silk" - ], "OF2xccEe": [], "OF30Ftju": [ + "Elegoo/Elegoo Rapid TPU 95A", "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" ], - "OF38Hyk4": [ - "Flashforge/Flashforge PETG Pro" + "OF3F63OE": [ + "re3D/re3D PETG" ], - "OF3XeEuV": [ - "Qidi/QIDI PET-GF" + "OF3IKafc": [ + "Qidi/QIDI PLA Rapido Matte" ], - "OF3YOOOs": [ - "Chuanying/Chuanying Generic PETG-CF10" + "OF3OMgrI": [ + "Creality/CR-Silk" ], - "OF3arl18": [ - "Elegoo/Elegoo Rapid PETG" + "OF3P0BQA": [ + "Anker/Anker Generic ABS", + "Anker/Anker Generic ABS 0.2 nozzle", + "Anker/Anker Generic ABS 0.25 nozzle" + ], + "OF3WQaKK": [ + "Creality/CR-PETG" + ], + "OF3dJf4E": [ + "Volumic/Volumic PLA Ultra (Performance)" + ], + "OF3fwO8b": [ + "FlyingBear/FlyingBear PLA Basic" ], "OF3kBrdA": [ + "Creality/eSUN PETG", "OrcaFilamentLibrary/eSUN PETG" ], - "OF41QVDH": [ - "Flashforge/Flashforge Generic PLA-Silk" + "OF3msXEa": [ + "Snapmaker/Snapmaker Dual PETG-CF" ], - "OF43idK2": [ - "Creality/Creality Generic PLA Matte" + "OF3s929u": [ + "Tiertime/Tiertime Generic PP" + ], + "OF3wxlw9": [ + "CoLiDo/CoLiDo Generic PETG" + ], + "OF3ydJTT": [ + "InfiMech/InfiMech PLA Hyper" + ], + "OF41jaTh": [ + "Flashforge/Flashforge TPU-90A" + ], + "OF42ZDpN": [ + "Flashforge/FusRock PAHT" + ], + "OF43Raws": [ + "Snapmaker/PolyTerra J1 PLA" ], "OF44VYzK": [ "OrcaFilamentLibrary/FilAr PETG Azul Francia" ], - "OF48G7He": [ - "Qidi/QIDI PETG Tough 0.8 nozzle" + "OF48L671": [ + "Ratrig/RatRig Generic ASA" + ], + "OF4APyxe": [ + "Creality/Hyper PAHT-CF" ], "OF4KsW72": [], - "OF4RKeng": [ - "Flashforge/Flashforge Generic ASA" + "OF4Mf5Gz": [ + "Creality/Creality Generic PETG" + ], + "OF4Nhggz": [ + "Artillery/Artillery PLA Basic+" ], "OF4RvVuU": [], - "OF4gzzE4": [ - "Qidi/QIDI PET-CF" + "OF4S3To3": [ + "Qidi/QIDI PETG Rapido" ], - "OF4jILJA": [ - "FlyingBear/FlyingBear PC" + "OF4WB37S": [ + "Snapmaker/Snapmaker PETG" ], - "OF4m9A5w": [ - "Flashforge/Flashforge Generic HIPS" + "OF4XAUnp": [ + "Vzbot/Vzbot Generic ASA" ], - "OF50NUZI": [ - "FlyingBear/FlyingBear PLA Basic" + "OF4f8vVp": [ + "WonderMaker/WonderMaker PET-CF" + ], + "OF4iWKrE": [ + "Qidi/QIDI PETG-CF" + ], + "OF4nQ62r": [ + "Qidi/QIDI PLA Basic" + ], + "OF4oCRKe": [ + "DeltaMaker/DeltaMaker Generic PETG" + ], + "OF4ulo9Y": [ + "WonderMaker/WonderMaker PVA" + ], + "OF4xhTuK": [ + "OrcaArena/OrcaArena Generic PA-CF" + ], + "OF4zzGwp": [ + "Flashforge/FusRock Generic PET-GF" + ], + "OF51XQar": [ + "CONSTRUCT3D/C1 Generic PLA" + ], + "OF53eLVD": [ + "Creality/Generic ASA-CF", + "Elegoo/Generic ASA-CF" ], "OF54B0S0": [ "OrcaFilamentLibrary/Bambu PPA-CF" ], - "OF57IbZT": [ - "Artillery/Artillery PLA Basic" + "OF54SvEe": [ + "Prusa/Prusament PA-CF" ], - "OF5Bmdtg": [ - "Sovol/Sovol SV06 Plus ACE ABS" + "OF5BN24W": [ + "Flashforge/Flashforge PPA-GF" ], "OF5CgdDq": [ - "OrcaFilamentLibrary/PolyLite PLA" + "OrcaArena/PolyLite PLA", + "OrcaFilamentLibrary/PolyLite PLA", + "Qidi/PolyLite PLA", + "Snapmaker/PolyLite PLA" ], - "OF5J2axC": [ - "Sovol/Sovol Zero PLA Basic" + "OF5E5KNA": [ + "SecKit/SecKit Generic PC" + ], + "OF5NQFKI": [ + "Flashforge/Flashforge PLA Galaxy" + ], + "OF5NqBfC": [ + "Wanhao France/YUMI PETG" ], "OF5P4jgA": [ "OrcaFilamentLibrary/FilAr PLA Dorado" ], - "OF5T1Y9R": [ - "Flashforge/Flashforge ABS Basic" + "OF5PtjTp": [ + "Anycubic/Anycubic PLA Glow" ], - "OF5UUaUM": [ - "Qidi/Qidi Generic PLA High Speed" + "OF5SJ3jz": [ + "Flashforge/Flashforge ABS" ], - "OF5Ugv12": [ - "FlyingBear/Other PLA" + "OF5YVJXH": [ + "Artillery/Artillery ASA" ], - "OF5kwfZu": [ - "Flashforge/FusRock Generic NexPA-CF25" + "OF5Zk4e1": [ + "Anycubic/Anycubic Generic ABS" + ], + "OF5c6nq3": [ + "Flashforge/Generic TPU-64D" + ], + "OF5lGPup": [ + "WonderMaker/WonderMaker PETG Basic" ], "OF5nlfKY": [ "OrcaFilamentLibrary/FilAr PLA Oro" ], + "OF5oNRED": [ + "Eryone/Eryone PP" + ], + "OF5oXk4M": [ + "Anycubic/Polymaker PLA Pro", + "Snapmaker/Polymaker PLA Pro" + ], "OF5rnhjh": [], + "OF5umxxT": [ + "Snapmaker/PolyLite PLA Glow" + ], "OF5vgi2G": [ "OrcaFilamentLibrary/FilAr PLA-mate Azul" ], - "OF60Lmeq": [ - "Flashforge/Flashforge PLA Matte" + "OF5vzBhb": [ + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying PLA" ], - "OF6EOy1A": [ - "Qidi/Bambu PETG" + "OF5w29Kq": [ + "Flashforge/Flashforge HS PETG" ], - "OF6FM5F7": [ - "Flashforge/FusRock PAHT" + "OF65InrS": [ + "Snapmaker/Snapmaker TPU" + ], + "OF66KUAN": [ + "Creality/PolySonic PLA" + ], + "OF67EdL5": [ + "Sovol/Sovol SV06 ACE ABS" + ], + "OF6ATsCF": [ + "Snapmaker/Snapmaker Dual PLA-CF" + ], + "OF6Fpw1E": [ + "Comgrow/Comgrow Generic PETG" + ], + "OF6H51Xx": [ + "Snapmaker/Polymaker PETG", + "Sovol/Polymaker PETG" + ], + "OF6K467o": [ + "InfiMech/InfiMech Generic PA-CF" + ], + "OF6KELDx": [ + "Co Print/CoPrint Generic PLA" ], "OF6Ll8lK": [ + "Elegoo/Elegoo PETG Translucent", "OrcaFilamentLibrary/Elegoo PETG Translucent" ], - "OF6Mxzsg": [ - "Flashforge/Generic TPU" + "OF6MOPWx": [ + "Creality/Generic PET", + "Elegoo/Generic PET", + "Flashforge/Generic PET" ], - "OF6SEkeJ": [ - "Flashforge/FusRock PET-CF" + "OF6O67Xk": [ + "Lulzbot/Lulzbot 2.85mm ABS" ], - "OF6XIeUW": [ - "Flashforge/Generic PLA-CF10" + "OF6TuVAg": [ + "Snapmaker/Snapmaker Breakaway Support For PLA", + "Snapmaker/Snapmaker J1 PVA" ], - "OF6XuVQE": [ - "Cubicon/Cubicon ABS" + "OF6VgL2U": [ + "Phrozen/Phrozen PLA" ], - "OF70DKqH": [ - "Snapmaker/Snapmaker TPE" + "OF6WddJ1": [ + "Flashforge/FusRock S-PAHT" + ], + "OF6kj4jI": [ + "iQ/Fiberthree PACF Pro P2" + ], + "OF6ooviO": [ + "FLSun/FLSun S1 TPU" + ], + "OF6rMr3U": [ + "Flashforge/FusRock Generic S-Multi" + ], + "OF6rdQ6M": [ + "Creality/Generic PPS-CF" + ], + "OF6tKa1Z": [ + "Anker/Anker Generic TPU" + ], + "OF6ueBwd": [ + "Flashforge/Flashforge PLA Pro" + ], + "OF6vKLaU": [ + "Artillery/Artillery Generic ASA" + ], + "OF6xLvYg": [ + "InfiMech/InfiMech Generic PC" + ], + "OF6zAVFj": [ + "Sovol/Sovol Zero TPU" + ], + "OF70zbGS": [ + "Creality/Hyper L-W PLA" + ], + "OF72YYTd": [ + "Snapmaker/Snapmaker ABS" ], "OF74KeQR": [ "OrcaFilamentLibrary/Generic PHA" ], + "OF79Fbo6": [ + "Cubicon/Cubicon PC" + ], "OF7H3VJM": [ "OrcaFilamentLibrary/eSUN PLA-Marble" ], - "OF7M9vy4": [ - "Ratrig/RatRig BigNozzle PLA" + "OF7OqDp3": [ + "Tiertime/Tiertime PLA-CF" ], - "OF7cv1Ub": [ - "Qidi/QIDI PLA-CF" + "OF7SliVn": [ + "Snapmaker/PolyLite J1 PLA" ], - "OF7f0eUZ": [ - "Volumic/Volumic ASA Ultra" + "OF7VJMYM": [ + "Sovol/Sovol Zero PLA Basic" + ], + "OF7c9fln": [ + "Anycubic/Anycubic PLA Translucent" + ], + "OF7g2vYQ": [ + "Co Print/CoPrint Generic TPU" ], "OF7lOgYF": [ "OrcaFilamentLibrary/Generic PETG HF" ], - "OF7tgL9c": [ - "Chuanying/Chuanying ASA", - "Chuanying/Chuanying Generic ASA" + "OF7lwj52": [ + "CoLiDo/CoLiDo PETG" + ], + "OF7nBAd3": [ + "Eryone/Eryone Silk PLA" + ], + "OF7tt7DO": [ + "Cubicon/Cubicon PLA+" + ], + "OF7uE5KB": [ + "Anker/Anker Generic PA-CF" + ], + "OF8CXrvm": [ + "SecKit/SecKit Generic PA" + ], + "OF8GnyFU": [ + "Creality/Hyper ABS" + ], + "OF8Hx3Pi": [ + "Cubicon/Cubicon PETG" + ], + "OF8Jl6NT": [ + "Snapmaker/Snapmaker J1 PET" ], "OF8Tlg47": [ "OrcaFilamentLibrary/Generic PPA-GF" ], - "OF8WvPVL": [ - "Qidi/QIDI ABS Rapido 0.8 nozzle" - ], "OF8aFWfQ": [ "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" ], + "OF8bLDu7": [ + "Blocks/Blocks Generic PA-CF" + ], + "OF8dCquh": [ + "Snapmaker/Snapmaker J1 ABS Benchy" + ], + "OF8eQjjt": [ + "Lulzbot/Lulzbot 2.85mm PETG" + ], + "OF8eaY7j": [ + "Creality/Generic PA612-CF" + ], "OF8jh0Lk": [ "OrcaFilamentLibrary/FilAr PLA-mate Marron" ], + "OF8kJys9": [ + "Eryone/Eryone PETG" + ], "OF8tPByX": [ "OrcaFilamentLibrary/Generic PPA-CF" ], + "OF8wE5l7": [ + "Artillery/Artillery PETG Basic" + ], + "OF97ru74": [ + "Prusa/Prusa Generic PC" + ], + "OF995YXg": [ + "Flashforge/Flashforge TPU-64D" + ], "OF99UMPq": [ "BBL/COEX ABS", "OrcaFilamentLibrary/COEX ABS" ], "OF99vXPs": [], + "OF9EHUKK": [ + "Qidi/QIDI TPU-GF" + ], + "OF9HCdyQ": [ + "Afinia/Afinia PLA" + ], "OF9OlTWH": [ "OrcaFilamentLibrary/Bambu PLA Marble" ], - "OF9RZyBz": [ - "Flashforge/Polymaker Generic S1" + "OF9PELEb": [ + "Qidi/QIDI UltraPA-CF25" ], - "OF9sr3Vn": [ - "Flashforge/Flashforge PLA Sparkle" + "OF9UJOGF": [ + "Anycubic/Anycubic PETG-CF" ], - "OF9tjFbj": [ - "Peopoly/Peopoly Lancer PLA-C" + "OF9emAI9": [ + "Ratrig/RatRig PunkFil PETG" ], - "OF9vnvM8": [ - "Artillery/Artillery PETG-CF" + "OF9fOPpd": [ + "Vzbot/Vzbot Generic PC" ], - "OFAEqlWa": [ - "Flashforge/Flashforge Generic PLA-SILK" + "OF9z5LZ9": [ + "FLSun/FLSun S1 PETG" ], - "OFAGqTQG": [ - "Volumic/Volumic PP Ultra" + "OFA026vt": [ + "OrcaArena/Arena PA-CF" ], - "OFAGrVjP": [ - "Flashforge/Flashforge PLA Silk" + "OFAC7Wyu": [ + "Artillery/Artillery PLA Matte" ], - "OFAHagT9": [ - "Elegoo/Elegoo Rapid PLA+" + "OFACSw9O": [ + "Creality/Creality Generic PLA" ], - "OFAK2XjZ": [ - "InfiMech/Other ABS" + "OFAIBCLJ": [ + "Elegoo/Generic ABS-CF" ], - "OFAUDGEQ": [ - "Qidi/QIDI PLA Rapido Matte" + "OFAIrQXu": [ + "Creality/Creality Hyper PLA" ], - "OFAUX5fB": [ - "CONSTRUCT3D/C1 Generic High Flow PETG" + "OFANFm4x": [ + "Qidi/QIDI PLA Rapido Metal" ], - "OFAbsMuV": [ - "Snapmaker/Snapmaker Dual TPE" + "OFAO9A7J": [ + "Sovol/Sovol Zero PLA Silk HS Nozzle" ], - "OFAdAYYk": [ - "Qidi/QIDI PPS-CF" + "OFAZllAN": [ + "Artillery/Artillery PLA-CF" ], - "OFAdZFD1": [ - "Flashforge/FusRock Generic PET-GF" - ], - "OFAiqi5v": [ - "Elegoo/Elegoo ASA-CF" + "OFAf9pJF": [ + "Flashforge/Flashforge TPU 95A" ], "OFAnyRUI": [ "OrcaFilamentLibrary/Bambu Support For PLA" ], - "OFAnyzjN": [ - "Qidi/HATCHBOX PETG" - ], "OFAt6ec0": [ "OrcaFilamentLibrary/FilAr PLA Marron Oxido" ], - "OFAtydxE": [ - "Flashforge/FusRock S-Multi" + "OFB09fpe": [ + "Ratrig/RatRig Generic TPU" + ], + "OFB0a3hT": [ + "Anker/Anker Generic PLA-CF" + ], + "OFB1Tv1E": [ + "Anycubic/Anycubic Generic PA" ], "OFB5SmWk": [ "OrcaFilamentLibrary/Valment PLA Galaxy" ], - "OFBGxHgT": [ - "FlyingBear/FlyingBear PLA" + "OFB8wSps": [ + "Flashforge/FusRock PET-CF" ], - "OFBRSZom": [ - "Volumic/PPS Carbone (Performance)" + "OFB9dx27": [ + "Blocks/Blocks Generic ASA" + ], + "OFBBgw7B": [ + "WonderMaker/WonderMaker PLA Wood" + ], + "OFBC32Wb": [ + "Flashforge/FusRock PET" + ], + "OFBIadjM": [ + "Chuanying/Chuanying ASA", + "Chuanying/Chuanying Generic ASA" + ], + "OFBJAdLw": [ + "LH/LHS PCTG" + ], + "OFBK6zAi": [ + "Flashforge/Flashforge PETG-CF" + ], + "OFBLktDy": [ + "Creality/Soleyin Basic PETG" ], "OFBSW57R": [ "OrcaFilamentLibrary/Bambu PLA Aero" ], "OFBUIlZ7": [ + "Elegoo/Elegoo PLA+", "OrcaFilamentLibrary/Elegoo PLA+" ], - "OFBvxnjM": [ - "Elegoo/Elegoo PETG-GF" + "OFBlFMVp": [ + "Snapmaker/Snapmaker Dual PETG" + ], + "OFBoSWxb": [ + "Snapmaker/PolyLite PLA Luminous" + ], + "OFBpcB0a": [ + "TwoTrees/TwoTrees Generic HS PLA" + ], + "OFBtlI8M": [ + "FlyingBear/FlyingBear Generic ABS" ], "OFBw6eEG": [ "OrcaFilamentLibrary/Overture Matte PLA" ], - "OFC2FSsV": [ - "Qidi/Overture PLA" + "OFC1PzXz": [ + "Creality/Hyper Luminous" ], - "OFC5CCeo": [ - "Flashforge/Flashforge Generic PETG-CF" + "OFC20UMj": [ + "Flashforge/Flashforge Generic TPU" + ], + "OFC5f4Ay": [ + "RH3D/Generic PCCF" ], "OFC78WGQ": [ - "OrcaFilamentLibrary/Panchroma PLA Starlight" + "OrcaFilamentLibrary/Panchroma PLA Starlight", + "Snapmaker/Panchroma PLA Starlight" ], "OFCD8qiU": [ "OrcaFilamentLibrary/Generic EVA" ], + "OFCEA7Nt": [ + "Sovol/Sovol SV06 Plus ACE ABS" + ], "OFCIUsWh": [ - "OrcaFilamentLibrary/Panchroma PLA Translucent" + "OrcaFilamentLibrary/Panchroma PLA Translucent", + "Snapmaker/Panchroma PLA Translucent" ], - "OFCJaXZS": [ - "Flashforge/Flashforge PPS" + "OFCJpR7a": [ + "Creality/HP Ultra PLA" ], - "OFCKK3u9": [ - "FlyingBear/FlyingBear PA-CF" + "OFCVUEaV": [ + "Tiertime/Tiertime Generic TPU" + ], + "OFCZsqXg": [ + "Creality/Hyper PLA" + ], + "OFCaJHAA": [ + "Flashforge/FusRock Generic S-PAHT" ], "OFCccVrQ": [ - "OrcaFilamentLibrary/PolyTerra Dual PLA" + "OrcaFilamentLibrary/PolyTerra Dual PLA", + "Snapmaker/PolyTerra Dual PLA" ], - "OFCgpxn2": [ - "Prusa/Prusa Generic ABS HF" - ], - "OFChH9xu": [ - "Snapmaker/Snapmaker J1 TPE" + "OFCcsYtf": [ + "FLSun/FLSun Generic ASA" ], "OFCidU7j": [ "OrcaFilamentLibrary/DREMC ABS-GF" @@ -3641,36 +2234,80 @@ "OFCjG251": [ "OrcaFilamentLibrary/FilAr PLA-mate Verde" ], + "OFCnywiC": [ + "Tiertime/Tiertime PET-CF" + ], "OFCoRobU": [ "OrcaFilamentLibrary/Elas ASA" ], + "OFCp3Bgo": [ + "Anycubic/Anycubic PLA SE" + ], + "OFCu3jES": [], + "OFCuaCer": [ + "Volumic/Désactivé" + ], + "OFD21ije": [ + "Cubicon/Cubicon PA-CF" + ], + "OFD2JNS1": [ + "Dremel/Dremel Generic PLA" + ], + "OFD6kN7F": [ + "OrcaArena/OrcaArena Generic PLA" + ], + "OFD9taow": [ + "FlyingBear/FlyingBear PLA Hyper" + ], "OFDETOM6": [ + "Creality/eSUN PLA-Matte", "OrcaFilamentLibrary/eSUN PLA-Matte" ], "OFDGigEI": [ "OrcaFilamentLibrary/Bambu PLA Dynamic" ], - "OFDMWB6t": [ - "Elegoo/Elegoo PLA+" + "OFDJU6R3": [ + "Afinia/Afinia TPU" + ], + "OFDKIKyw": [ + "Snapmaker/Snapmaker Dual PVA" + ], + "OFDKgoqx": [ + "Flashforge/Flashforge PLA" + ], + "OFDRpXLZ": [ + "FlyingBear/Other PETG", + "InfiMech/Other PETG" ], "OFDSrzZ8": [ + "Creality/Generic PLA", + "Custom/Generic PLA", + "Elegoo/Generic PLA", "Flashforge/Generic PLA", + "LONGER/Generic PLA", "OrcaFilamentLibrary/Generic PLA", - "Sovol/Generic PLA" + "RH3D/Generic PLA", + "Sovol/Generic PLA", + "Z-Bolt/Generic PLA" ], "OFDe8uyM": [ "OrcaFilamentLibrary/Valment PLA" ], - "OFDkABjZ": [ - "Flashforge/Generic TPU-90A" + "OFDeTsJw": [ + "Chuanying/Chuanying Generic HIPS" + ], + "OFDgQaca": [ + "FlyingBear/FlyingBear PETG" ], "OFDpW3J8": [ "OrcaFilamentLibrary/FILL3D PLA Basic" ], - "OFDramZ2": [ - "Co Print/CoPrint Generic PETG" + "OFDtop41": [ + "Creality/Generic Support for PA" ], "OFDvXujf": [ + "Creality/Generic PVA", + "Custom/Generic PVA", "OrcaFilamentLibrary/Generic PVA" ], "OFDvqJ6n": [ @@ -3683,123 +2320,297 @@ "BBL/COEX TPU 60A", "OrcaFilamentLibrary/COEX TPU 60A" ], - "OFE22Uba": [ - "Flashforge/Flashforge TPU-90A" + "OFEE1Dld": [ + "Artillery/Artillery Generic TPU" ], "OFEGNJD4": [ "OrcaFilamentLibrary/Bambu PLA Silk" ], - "OFEYKrjb": [ - "Artillery/Artillery PETG" + "OFEMfQsX": [ + "Flashforge/Flashforge PETG Basic" + ], + "OFENzGSm": [ + "FLSun/FLSun T1 TPU" + ], + "OFEOnBj6": [ + "Snapmaker/Snapmaker PLA Lite" + ], + "OFETFWx7": [ + "SecKit/SecKit Generic PLA" + ], + "OFEWYR89": [ + "Qidi/Generic PLA+" ], "OFEZ449N": [ "OrcaFilamentLibrary/FilAr PLA-mate Uva" ], - "OFEdyZqS": [ - "Anycubic/Anycubic PLA Luminous" + "OFEZNNw1": [ + "Ratrig/RatRig Generic PA" + ], + "OFEZpel7": [ + "Volumic/PPS Carbone (Performance)" + ], + "OFEabreg": [ + "Anycubic/Fiberon PA6-CF20", + "Snapmaker/Fiberon PA6-CF20" + ], + "OFEbIx49": [ + "WonderMaker/WonderMaker PLA Marble" ], "OFEhuUNq": [], + "OFEj7sca": [ + "Cubicon/Cubicon PC" + ], + "OFEjbwqG": [ + "Snapmaker/PolyTerra PLA+" + ], "OFEkPBwx": [ "OrcaFilamentLibrary/Bambu PLA Glow" ], + "OFEmsric": [ + "Snapmaker/Snapmaker PA-CF" + ], + "OFEnbt6D": [ + "Peopoly/Peopoly Lancer PLA-C" + ], "OFEswT5W": [ "OrcaFilamentLibrary/Bambu PLA-CF" ], - "OFF9OKoY": [ - "OrcaFilamentLibrary/PolyLite PLA Pro" + "OFEwRwmL": [ + "Cubicon/Cubicon PLA" ], - "OFFIL5pD": [ - "Qidi/QIDI PA12-CF" + "OFF3cuzT": [ + "Creality/Generic TPU 64D" + ], + "OFF73Bvp": [ + "SecKit/SecKit Generic PLA-CF" + ], + "OFF9OKoY": [ + "OrcaFilamentLibrary/PolyLite PLA Pro", + "Snapmaker/PolyLite PLA Pro" + ], + "OFF9cgY5": [ + "Snapmaker/Snapmaker PLA Matte" + ], + "OFFC0VqZ": [ + "Ratrig/RatRig BigNozzle PCTG" ], "OFFNYwWR": [ "OrcaFilamentLibrary/Bambu PA-CF" ], - "OFFenwbU": [ - "FLSun/FLSun S1 PLA Silk" + "OFFP4ORR": [ + "Creality/Creality Hyper ABS" + ], + "OFFX1DRD": [ + "FlyingBear/FlyingBear PC" + ], + "OFFZ0BBL": [ + "FlyingBear/FlyingBear Generic PLA" + ], + "OFFZ458u": [ + "Snapmaker/Fiberon PA612-ESD" + ], + "OFFbQscs": [ + "Creality/eSUN PETG-Basic" ], "OFFkCLBl": [ - "OrcaFilamentLibrary/Panchroma PLA Galaxy" - ], - "OFFmJ8aR": [ - "FlyingBear/Other PLA Hyper" - ], - "OFFrbsvQ": [ - "InfiMech/Other TPU" + "OrcaFilamentLibrary/Panchroma PLA Galaxy", + "Snapmaker/Panchroma PLA Galaxy" ], "OFFvzqcd": [ "OrcaFilamentLibrary/Bambu PETG Basic" ], - "OFG8vHw8": [ - "Qidi/Qidi Generic ASA" + "OFFwJWea": [ + "Anycubic/Anycubic PLA Silk" ], - "OFGFZhWu": [ - "Sovol/Sovol SV06 ACE PETG" + "OFFxZ7hZ": [ + "Chuanying/Chuanying Generic PLA-CF10" + ], + "OFG0kOKX": [ + "Volumic/Volumic PETG Ultra" + ], + "OFG2RkhN": [ + "Creality/CR-TPU" + ], + "OFG4do34": [ + "Qidi/Qidi ASA-Aero" + ], + "OFGDaEHO": [ + "Tiertime/Tiertime Generic BVOH" + ], + "OFGGyAgJ": [ + "Vzbot/Vzbot Generic TPU" + ], + "OFGJ1nxs": [ + "FlyingBear/Other PLA", + "InfiMech/Other PLA" + ], + "OFGKLoUm": [ + "Anycubic/Anycubic Generic TPU" + ], + "OFGLeiNL": [], + "OFGPJxnt": [ + "Anker/Anker Generic PC", + "Anker/Anker Generic PC 0.2 nozzle", + "Anker/Anker Generic PC 0.25 nozzle" ], "OFGVwfK0": [ "OrcaFilamentLibrary/FilAr PLA-mate Gris" ], - "OFGb4hPY": [ - "Anycubic/Anycubic PEBA 95A" - ], + "OFGc282l": [], "OFGcLA5R": [ "OrcaFilamentLibrary/FilAr PLA-mate Beige" ], - "OFGfdP6J": [ - "Flashforge/FusRock Generic S-Multi" + "OFGcMkEB": [ + "Creality/HP-TPU" + ], + "OFGdP6Na": [ + "Volumic/Volumic PVA" ], "OFGkyftV": [ "BBL/Overture Silk PLA", "OrcaFilamentLibrary/Overture Silk PLA" ], + "OFGwT5Av": [ + "Creality/Creality Hyper PLA-CF" + ], + "OFGwZmgS": [ + "Creality/CR-ABS" + ], + "OFGxC8gB": [ + "Creality/CR-Wood" + ], + "OFGzUNbm": [ + "Tiertime/Tiertime Generic PPS-CF" + ], "OFH2nN08": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" ], + "OFH5UH6P": [ + "Flashforge/Flashforge ABS-GF" + ], + "OFH6Pjxe": [ + "Flashforge/Flashforge PLA Matte" + ], + "OFH7b12v": [ + "Creality/Generic PAHT-CF" + ], "OFHAccHz": [ "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" ], - "OFHBTqyD": [ - "Flashforge/Flashforge PLA Basic" + "OFHFZ1Te": [ + "Prusa/Prusa Generic PLA Silk" ], - "OFHDaMut": [ - "Volumic/PA6 CF20 (Performance)" + "OFHQUAoZ": [ + "FLSun/FLSun Generic PA-CF" ], - "OFHL32M0": [ - "Anycubic/Anycubic TPU" + "OFHTVfaU": [ + "Sovol/Sovol Zero PETG" + ], + "OFHUnLY2": [ + "Vzbot/Vzbot Generic PETG" ], "OFHWSM21": [ "OrcaFilamentLibrary/Fiberon PET-CF" ], + "OFHa3RZT": [ + "Tiertime/Tiertime Generic PA-CF" + ], "OFHa48An": [ "OrcaFilamentLibrary/Bambu PET-CF" ], + "OFHaYaB1": [ + "Creality/eSUN PET-Basic" + ], + "OFHf2lKK": [ + "FlyingBear/FlyingBear TPU Basic" + ], "OFHfzQXo": [ "OrcaFilamentLibrary/Eolas Prints PLA Transition" ], + "OFHknN4v": [ + "Anycubic/Polymaker PLA Pro Metallic", + "Snapmaker/Polymaker PLA Pro Metallic" + ], "OFHmPYRy": [ + "Flashforge/SUNLU PLA+ 2.0", "OrcaFilamentLibrary/SUNLU PLA+ 2.0" ], - "OFHtQDC9": [ - "Elegoo/Elegoo PLA Basic" + "OFI6WZpn": [ + "OrcaArena/Arena Support W" + ], + "OFI80Hct": [ + "Anycubic/Anycubic Generic ASA" ], "OFIBXa0k": [ "OrcaFilamentLibrary/FilAr PLA-mate Rojo" ], + "OFIE3vOf": [ + "Anycubic/Anycubic PLA Matte" + ], + "OFIK0xFa": [ + "FLSun/FLSun S1 ASA" + ], + "OFIPjqHt": [ + "OrcaArena/Arena Support G" + ], + "OFIRUqWi": [ + "Creality/eSUN PLA-Silk" + ], + "OFIVWJPm": [ + "InfiMech/InfiMech TPU" + ], + "OFIWMSGX": [ + "Qidi/HATCHBOX PETG" + ], + "OFIYTy8S": [ + "Anker/Anker Generic PLA+", + "Anker/Anker Generic PLA+ 0.2 nozzle", + "Anker/Anker Generic PLA+ 0.25 nozzle" + ], + "OFIZMQwM": [ + "LH/LHS TPU" + ], "OFIamQnD": [ "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" ], + "OFIda816": [ + "Vzbot/Vzbot Generic PVA" + ], + "OFIeCuXj": [ + "Peopoly/Peopoly Generic PETG" + ], "OFIegjmD": [ "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" ], "OFIfnzxC": [ "OrcaFilamentLibrary/Bambu Support For PLA/PETG" ], - "OFIl3ar9": [ - "Sovol/Sovol SV08 PETG" + "OFIgbDHq": [ + "Anycubic/Anycubic PLA Luminous" ], - "OFIzguhB": [ - "Volumic/Volumic UNIVERSAL Ultra" + "OFIieIka": [ + "Flashforge/Polymaker CoPA" + ], + "OFIxOuOu": [ + "Snapmaker/PolyLite PLA Starlight" + ], + "OFIxitiU": [ + "Flashforge/Flashforge PLA Basic" + ], + "OFIy3kLw": [ + "Prusa/Prusa Generic PA" + ], + "OFJ3HRsR": [ + "OrcaArena/Arena ABS" + ], + "OFJ80y1e": [ + "FLSun/FLSun T1 PETG" ], "OFJHBEGD": [], + "OFJJpaLS": [ + "FLSun/FLSun Generic PETG" + ], "OFJNeELv": [ "OrcaFilamentLibrary/FILL3D PA" ], @@ -3810,32 +2621,65 @@ "OFJQDUk3": [ "OrcaFilamentLibrary/FilAr PETG Cristal" ], + "OFJSksUs": [ + "FLSun/FLSun Generic PLA" + ], + "OFJVFpJz": [ + "Sovol/Sovol Zero PLA Silk" + ], + "OFJWKoYG": [ + "iQ/Material4Print ABS Natur P1" + ], + "OFJYpVAQ": [ + "Flashforge/Generic TPU-90A" + ], + "OFJfv07m": [ + "Sovol/Sovol SV06 ACE TPU" + ], + "OFJgijky": [ + "Snapmaker/PolyLite CosPLA" + ], + "OFJhT2fd": [ + "Snapmaker/Snapmaker Dual ABS" + ], + "OFJrvXth": [ + "Snapmaker/Snapmaker ABS Benchy" + ], "OFJs1ToM": [ "BBL/COEX NYLEX UNFILLED " ], "OFJu1XwK": [ "OrcaFilamentLibrary/NIT PETG" ], - "OFK39W9u": [ - "Flashforge/Flashforge Generic PETG-CF10" + "OFJxSqO4": [ + "Wanhao France/YUMI PLA Direct Drive" ], - "OFK820gS": [ - "Qidi/QIDI ASA" + "OFK01afJ": [ + "Qidi/Qidi Generic PC" ], - "OFKDnrjL": [ - "Artillery/Artillery PLA Matte" + "OFK4LdYI": [ + "Prusa/Prusa Generic ASA HF" ], - "OFKH15Hd": [ - "Sovol/Sovol SV08 ABS" + "OFK74HJD": [ + "Flashforge/Flashforge PLA Pro" + ], + "OFK8XHPn": [ + "Qidi/Overture ABS" + ], + "OFKIQO2W": [ + "Qidi/QIDI PLA Rapido" ], "OFKKajh6": [ "OrcaFilamentLibrary/FilAr PLA Gris Plata" ], + "OFKNAhls": [ + "Qidi/Qidi Generic PETG" + ], "OFKTSiYF": [ "OrcaFilamentLibrary/FilAr PLA Blanco Calido" ], - "OFKWVi10": [ - "Flashforge/Flashforge Generic PLA-CF10" + "OFKUEXPA": [ + "Snapmaker/Snapmaker Dual ASA" ], "OFKWWgyp": [ "OrcaFilamentLibrary/FilAr PLA Carpincho" @@ -3843,115 +2687,231 @@ "OFKZ9skj": [ "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" ], - "OFKZH00L": [ - "Flashforge/FusRock Generic PET-CF" + "OFKbdiiJ": [ + "Creality/PolySonic PLA Pro" + ], + "OFKfJTwL": [ + "Qidi/QIDI PET-CF" + ], + "OFKgmsqE": [ + "Qidi/QIDI PAHT-CF" ], "OFKhMPeX": [ "OrcaFilamentLibrary/Bambu PC" ], - "OFKhtNBx": [ - "Snapmaker/Snapmaker J1 TPU High-Flow" - ], "OFKiSMWR": [ - "OrcaFilamentLibrary/Panchroma PLA Marble" + "OrcaFilamentLibrary/Panchroma PLA Marble", + "Snapmaker/Panchroma PLA Marble" ], - "OFKjlAbC": [ - "Qidi/QIDI UltraPA-CF25" + "OFKo87c6": [ + "Snapmaker/Snapmaker TPU 95A" ], - "OFKzh9lx": [ - "InfiMech/InfiMech PLA" + "OFKpQTJI": [ + "Flashforge/Flashforge TPU 65D" ], - "OFL4BLAC": [ - "iQ/Grauts HPP4GF25 P1" + "OFKuTr12": [ + "Tiertime/Tiertime Generic PE" ], - "OFL4KniM": [ - "Elegoo/Elegoo Rapid TPU 95A" + "OFKyCgaK": [ + "Anycubic/Anycubic Generic PLA" ], - "OFL7U2MV": [ - "Ratrig/RatRig PunkFil ABS" + "OFLAXKqP": [ + "WonderMaker/WonderMaker TPU 95A" ], - "OFL7vEML": [ - "Flashforge/FlashForge PC" + "OFLBUkwC": [ + "Vzbot/Vzbot Generic ABS" + ], + "OFLC1oRH": [ + "Flashforge/Flashforge PPA-CF" + ], + "OFLDSqqi": [ + "Flashforge/Flashforge Generic ABS" ], "OFLJ8S6I": [ + "Flashforge/SUNLU Wood PLA", "OrcaFilamentLibrary/SUNLU Wood PLA" ], "OFLNgV3C": [], + "OFLOf6Sc": [ + "Tiertime/Tiertime TPU 95A" + ], "OFLPAxz3": [ + "Creality/Generic ASA", "Custom/Generic ASA", - "OrcaFilamentLibrary/Generic ASA" + "Elegoo/Generic ASA", + "Flashforge/Generic ASA", + "OrcaFilamentLibrary/Generic ASA", + "RH3D/Generic ASA" ], "OFLXvuMr": [ + "Elegoo/Elegoo Rapid PETG", "OrcaFilamentLibrary/Elegoo Rapid PETG" ], + "OFLYDIb8": [ + "Flashforge/Flashforge PLA Silk" + ], + "OFLYDngx": [ + "Qidi/Bambu PETG" + ], "OFLakOUI": [ + "Creality/Generic PC", + "Custom/Generic PC", + "Elegoo/Generic PC", "OrcaFilamentLibrary/Generic PC", "Sovol/Generic PC" ], + "OFLbXwoL": [ + "Artillery/Artillery PLA Silk" + ], + "OFLbdkrE": [ + "Snapmaker/Snapmaker J1 PLA Eco" + ], "OFLcd093": [ + "Elegoo/Elegoo PETG", "OrcaFilamentLibrary/Elegoo PETG" ], - "OFLeFaUO": [ - "Flashforge/Flashforge Generic PVA" + "OFLfywkp": [ + "Afinia/Afinia ABS+" ], - "OFLhOFQk": [ - "Volumic/Volumic ASA Ultra (Performance)" + "OFLgwqp2": [ + "Creality/Hyper PETG-GF" ], - "OFLiTjQK": [ - "FlyingBear/Other PA-CF" + "OFLrdHse": [ + "Flashforge/Flashforge Generic HS PLA" ], - "OFLriDvE": [ - "Creality/Creality Generic PLA High Speed" + "OFLuczRG": [ + "Creality/Creality Generic ASA-CF" ], - "OFLxO2Oc": [ - "Flashforge/FusRock PET" + "OFLzx3J4": [ + "Creality/Hyper Marble" ], - "OFM3PeVe": [ - "Flashforge/Flashforge ASA-CF" + "OFM0xjBG": [ + "Creality/CR-PLA Matte" + ], + "OFM4iJlv": [ + "Creality/Generic PA12-CF" + ], + "OFM87w9T": [ + "Tiertime/Tiertime Generic SBS" ], "OFM91vZs": [ "BBL/Overture ASA", "OrcaFilamentLibrary/Overture ASA" ], - "OFMHTnPP": [ - "Flashforge/Flashforge PA12-CF" + "OFMDHOcT": [ + "Qidi/QIDI TPU-Aero" + ], + "OFMEbuBE": [ + "Blocks/Blocks Generic TPU" + ], + "OFMIma8C": [ + "Flashforge/Flashforge PLA Luminous" + ], + "OFMIurFh": [ + "Creality/Creality HF Generic Speed PLA" + ], + "OFMK5gVo": [ + "WonderMaker/WonderMaker PLA Basic" + ], + "OFML2aVd": [ + "Anycubic/Anycubic TPU 95A" + ], + "OFMSvS8z": [ + "Artillery/Artillery PA" + ], + "OFMTBcnz": [ + "Tiertime/Tiertime Generic PP-CF" ], "OFMTK0UC": [ "OrcaFilamentLibrary/Bambu Support For PA/PET" ], "OFMUWNkp": [ + "Flashforge/SUNLU PLA+", "OrcaFilamentLibrary/SUNLU PLA+" ], + "OFMZAoqa": [ + "Tiertime/Tiertime Generic PVA" + ], "OFMZvH0z": [ "BBL/Overture Rock PLA", "OrcaFilamentLibrary/Overture Rock PLA" ], + "OFMgJQCZ": [ + "Anker/Anker Generic PA", + "Anker/Anker Generic PA 0.2 nozzle", + "Anker/Anker Generic PA 0.25 nozzle" + ], "OFMjtqTC": [ "OrcaFilamentLibrary/Bambu PLA Wood" ], + "OFMoLF46": [ + "FLSun/FLSun Generic TPU" + ], + "OFMpxamb": [ + "Flashforge/Flashforge PETG" + ], + "OFMqYusc": [ + "Creality/Creality Generic PA" + ], + "OFMsDGbs": [ + "Anycubic/Anycubic TPU" + ], "OFMuXBmO": [ "OrcaFilamentLibrary/Elas PLA Basic" ], - "OFN0X7oN": [ - "Qidi/QIDI PLA Basic" + "OFMyLYV8": [ + "Flashforge/Flashforge PETG Transparent" ], - "OFN0pBpo": [ - "Qidi/Qidi Generic TPU 95A" + "OFN7aNHe": [ + "Tiertime/Tiertime Generic PC" ], - "OFNQHqAV": [ - "Cubicon/Cubicon ABSk" + "OFN9fefN": [ + "Cubicon/Cubicon ABS-A100" ], - "OFNRgSch": [ - "Artillery/Artillery PC" + "OFNBlAPT": [ + "OrcaArena/Arena PETG Basic" + ], + "OFNGTH3w": [ + "Tiertime/Tiertime PLA" + ], + "OFNLXV8X": [ + "Tiertime/Tiertime Generic ABS" + ], + "OFNOxcYl": [ + "Ratrig/RatRig Generic PA-CF" + ], + "OFNQKF0M": [ + "Tiertime/Tiertime ABS" + ], + "OFNSYu5h": [ + "Volumic/Volumic PP Ultra (Performance)" ], "OFNU9YIW": [ "OrcaFilamentLibrary/FilAr PETG Azul Boreal" ], - "OFNX5uRT": [ - "Qidi/QIDI TPU-Aero" + "OFNW4ZTC": [ + "Creality/Creality Generic PLA Wood" ], - "OFNbajj9": [ - "Creality/Creality Generic ASA-CF" + "OFNWcJsM": [ + "Comgrow/Comgrow T300 PLA" + ], + "OFNWnx2c": [ + "Flashforge/Flashforge TPU-95A" + ], + "OFNX8GI1": [ + "Sovol/Sovol Zero ABS" + ], + "OFNYewRS": [ + "Blocks/Blocks Generic PLA" + ], + "OFNZYgLA": [ + "Qidi/Qidi Generic PVA" + ], + "OFNZjrLo": [ + "Sovol/Sovol SV06 Plus ACE PLA" + ], + "OFNcdCrm": [ + "Anycubic/Anycubic Generic PLA-CF" ], "OFNemJM6": [ "OrcaFilamentLibrary/FilAr PLA Cobre" @@ -3962,293 +2922,498 @@ "OFNk8bxk": [ "OrcaFilamentLibrary/Bambu PA6-GF" ], - "OFNvrbnf": [ - "Co Print/CoPrint Generic ABS" + "OFNn21yM": [ + "Vzbot/Vzbot Generic PA-CF" ], - "OFNz8rrn": [ - "FlyingBear/FlyingBear PLA Hyper" + "OFNstOna": [ + "Eryone/Eryone PETG-CF" + ], + "OFNvBIL0": [ + "Creality/Hyper PPA-CF" ], "OFO1GEq6": [ - "OrcaFilamentLibrary/Panchroma PLA Neon" + "OrcaFilamentLibrary/Panchroma PLA Neon", + "Snapmaker/Panchroma PLA Neon" ], - "OFO3IOWM": [ - "Volumic/PETG ESD (Performance)" - ], - "OFO5R9KJ": [ - "Sovol/Sovol Zero TPU" + "OFO5djrM": [ + "Flashforge/Generic PETG-CF10" ], "OFOABq7t": [ "BBL/AliZ PETG-Metal", "OrcaFilamentLibrary/AliZ PETG-Metal" ], - "OFOJUJAS": [ - "Cubicon/Cubicon PA-CF" + "OFOAdMCB": [ + "OrcaArena/Arena PLA Metal" ], - "OFOSzSuh": [ - "Flashforge/Flashforge PA-CF" + "OFOHOf2F": [ + "Creality/eSUN PLA-HS" ], - "OFOW9K96": [ - "Qidi/Qidi TPU 95A-HF" + "OFOJPAAS": [ + "iQ/VXL90 TiQ2 P2" + ], + "OFOKYhi6": [ + "Prusa/Prusa Generic PETG HF" + ], + "OFObG16Q": [ + "InfiMech/InfiMech PLA Basic" + ], + "OFObyktP": [ + "Tiertime/Tiertime PETG" ], "OFOiJfLM": [ "OrcaFilamentLibrary/FILL3D PETG CF" ], - "OFOkTA0C": [ - "Elegoo/Elegoo PETG Translucent" - ], - "OFOp3Oef": [ - "Anycubic/Generic ABS" + "OFOnSNt3": [ + "Artillery/Artillery PETG-CF" ], "OFOsHDnB": [ + "Elegoo/Elegoo PETG PRO", "OrcaFilamentLibrary/Elegoo PETG PRO" ], - "OFOvv91M": [ - "OrcaFilamentLibrary/PolyLite ABS" + "OFOuEEvv": [ + "Qidi/QIDI ABS Rapido 0.2 nozzle" ], - "OFOysPuE": [ - "Qidi/QIDI TPU-GF" + "OFOvv91M": [ + "OrcaFilamentLibrary/PolyLite ABS", + "Qidi/PolyLite ABS" + ], + "OFOwQuZM": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "OFOzwywz": [ + "Eryone/Eryone ABS" ], "OFP26zNb": [ "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" ], - "OFP4poIv": [ - "Sovol/Sovol Zero PLA Silk HS Nozzle" + "OFPHLnoe": [ + "Creality/HP-ASA" ], - "OFPGelMX": [ - "Volumic/Volumic PP Ultra (Performance)" - ], - "OFPJJxkF": [ - "Flashforge/Flashforge PET-CF" - ], - "OFPJrlC3": [ - "Flashforge/Flashforge PLA-CF" + "OFPQfNAf": [ + "Flashforge/Flashforge PETG Pro" ], "OFPWPlSC": [ "OrcaFilamentLibrary/FILL3D PP" ], + "OFPYDWgC": [ + "Peopoly/Peopoly Lancer PET-CF" + ], "OFPbyOSk": [ "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" ], "OFPc4zVY": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" ], - "OFPeGtB1": [ - "Volumic/Volumic UNIVERSAL Ultra (Performance)" + "OFPdhDlK": [ + "Anycubic/Anycubic Generic PA-CF" + ], + "OFPjOUtz": [ + "Flashforge/FusRock Generic PAHT-CF" ], "OFPkCJKE": [ - "OrcaFilamentLibrary/Panchroma PLA Satin" + "Creality/Panchroma PLA Satin", + "OrcaFilamentLibrary/Panchroma PLA Satin", + "Snapmaker/Panchroma PLA Satin" ], "OFPklMI1": [ "OrcaFilamentLibrary/Generic PE" ], - "OFPokkKe": [ - "Qidi/QIDI PETG-CF" - ], "OFPoyiFs": [ - "OrcaFilamentLibrary/Polymaker HT-PLA" + "OrcaFilamentLibrary/Polymaker HT-PLA", + "Snapmaker/Polymaker HT-PLA" ], "OFPqX3x2": [ "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" ], - "OFPwi9X0": [ - "Qidi/HATCHBOX ABS" + "OFPryWt5": [ + "Lulzbot/Lulzbot 2.85mm PLA" + ], + "OFPy0Ogq": [ + "Qidi/Qidi Generic PA-CF" + ], + "OFQ1KzO8": [ + "Snapmaker/Snapmaker J1 PLA Silk" + ], + "OFQ1zgm3": [ + "Eryone/Eryone ABS-CF" ], "OFQ3e56w": [ "OrcaFilamentLibrary/Bambu PLA Galaxy" ], - "OFQ5xAKf": [ - "Chuanying/Chuanying Generic PVA" + "OFQ40XeN": [ + "Qidi/QIDI PETG Tough" ], - "OFQ9dI8j": [ - "Prusa/Prusa Generic PC HF" + "OFQ7I5vC": [ + "Prusa/Prusa Generic PLA-CF" ], - "OFQCAYAt": [ - "Flashforge/Flashforge PPA-CF" + "OFQ9qnkd": [ + "FLSun/FLSun T1 PLA High Speed" + ], + "OFQC8Vna": [ + "Flashforge/Flashforge Generic PETG-CF" + ], + "OFQEGL7z": [ + "FlyingBear/FlyingBear PA-CF" + ], + "OFQGvU2G": [ + "OrcaArena/Arena TPU 95A" ], "OFQHiNJs": [ "OrcaFilamentLibrary/Bambu Support G" ], "OFQLcbps": [ + "Creality/Generic PA-CF", "Custom/Generic PA-CF", "OrcaFilamentLibrary/Generic PA-CF" ], + "OFQMTRc8": [ + "Snapmaker/Snapmaker J1 PETG" + ], + "OFQMsFfF": [ + "Qidi/QIDI ABS-GF10" + ], + "OFQTrLXB": [ + "Qidi/Qidi Generic PLA-CF" + ], "OFQWIKbV": [ "OrcaFilamentLibrary/FilAr PLA Titanio" ], - "OFQZINrX": [ - "Qidi/QIDI ABS-GF10" + "OFQYaiGg": [ + "Snapmaker/Snapmaker PET" + ], + "OFQZeyZv": [ + "Flashforge/Flashforge PLA Buint Ti" ], "OFQbjX3s": [ "OrcaFilamentLibrary/FILL3D PETG" ], - "OFR8dTVW": [ - "FLSun/FLSun S1 PLA High Speed" + "OFQbqeN7": [ + "Qidi/Qidi Generic PA" ], - "OFRNU58t": [ - "Flashforge/Flashforge TPU 95A" + "OFQdaVZS": [ + "Creality/Generic PET-CF", + "Elegoo/Generic PET-CF" ], - "OFRR8LUh": [ - "Flashforge/Generic ASA" + "OFQe7sAx": [ + "Anycubic/Anycubic PA6-CF" ], - "OFRgDMDJ": [ - "Flashforge/Flashforge PETG Transparent" + "OFQiq4fb": [ + "Flashforge/Flashforge PVA" + ], + "OFQswlnF": [ + "Tiertime/Tiertime Generic PA" + ], + "OFR0gODA": [ + "SeeMeCNC/SeeMeCNC ABS" + ], + "OFRDLNM9": [ + "Peopoly/Peopoly Generic PLA" + ], + "OFRJ325z": [ + "LH/LHS PETG" + ], + "OFRPEs5o": [ + "Flashforge/Flashforge Generic ASA" + ], + "OFRhBryT": [ + "Cubicon/Cubicon PLAi21" + ], + "OFRhCTUg": [ + "Anycubic/Anycubic PET-CF" + ], + "OFRi7v0b": [ + "Sovol/Sovol SV08 PETG" ], "OFRiFnfQ": [ "OrcaFilamentLibrary/Eolas Prints PETG Transition" ], "OFRiYgMK": [ - "OrcaFilamentLibrary/Panchroma PLA Celestial" + "OrcaFilamentLibrary/Panchroma PLA Celestial", + "Snapmaker/Panchroma PLA Celestial" + ], + "OFRiyes1": [ + "Anker/Anker Generic ASA", + "Anker/Anker Generic ASA 0.2 nozzle", + "Anker/Anker Generic ASA 0.25 nozzle" + ], + "OFRkjhxK": [ + "Volumic/Volumic PVA-BVOH (Performance)" + ], + "OFRmGKVX": [ + "Cubicon/Cubicon PLA+" + ], + "OFRooa0F": [ + "Snapmaker/Snapmaker Dual PA-CF" + ], + "OFRpAZ1P": [ + "DeltaMaker/DeltaMaker Brand PLA" + ], + "OFRujL0v": [ + "Flashforge/FusRock Generic PET-CF" + ], + "OFRusgEn": [ + "Chuanying/Chuanying Generic PVA" + ], + "OFRyOsZj": [ + "re3D/re3D PLA" ], "OFRzR5mi": [ "OrcaFilamentLibrary/eSUN ePLA-LW" ], - "OFS1ekCg": [ - "Ratrig/RatRig BigNozzle PCTG" + "OFRzsaDK": [ + "FlyingBear/FlyingBear Generic TPU" ], "OFS2tn6G": [ "OrcaFilamentLibrary/Fiberon PA612-CF" ], - "OFS3HrR1": [ - "InfiMech/Other PLA" + "OFS4jbj3": [ + "Eryone/Eryone PA" + ], + "OFS8JF3S": [ + "Qidi/Qidi Generic PLA High Speed" ], "OFS8lTQt": [ - "OrcaFilamentLibrary/Panchroma PLA Silk" + "OrcaFilamentLibrary/Panchroma PLA Silk", + "Snapmaker/Panchroma PLA Silk" ], - "OFSCm6pJ": [ - "Elegoo/Elegoo PET-CF" + "OFSDFYs4": [ + "Creality/Creality Generic PLA-CF" ], - "OFSSuKRr": [ - "Qidi/QIDI PETG Basic" + "OFSGbf2I": [ + "Anycubic/Anycubic Generic PVA" ], - "OFSdF3B1": [ - "Flashforge/FusRock PAHT-CF" + "OFSPdsuW": [ + "Tiertime/Tiertime Generic PPA-CF" ], - "OFSkBwxf": [ - "Ratrig/RatRig BigNozzle ASA" + "OFSStjay": [ + "FLSun/FLSun S1 PLA Silk" ], - "OFSoZBK2": [ - "Sovol/Sovol SV06 Plus ACE PLA" + "OFSTCno1": [ + "re3D/re3D Greengate rPETG" ], - "OFSpTWdv": [ - "InfiMech/Other PA-CF" + "OFSa39yP": [ + "Snapmaker/Snapmaker J1 PLA" + ], + "OFSbGfsz": [ + "OrcaArena/Arena PLA Basic" + ], + "OFShw1X8": [ + "Flashforge/Flashforge ABS Basic" ], "OFSwbBWS": [], + "OFT2jon4": [ + "Qidi/QIDI ABS Rapido" + ], "OFTGHyNC": [ "OrcaFilamentLibrary/Bambu PLA Impact" ], + "OFTKFAZ4": [ + "Tiertime/Tiertime Generic PCTG" + ], "OFTOPcx0": [ "OrcaFilamentLibrary/Eolas Prints TPU Transition" ], "OFTRZ8Y4": [ "OrcaFilamentLibrary/Bambu PETG-CF" ], - "OFTa6gPH": [ - "Flashforge/Flashforge PLA Pro" + "OFTSXxzE": [ + "Flashforge/Flashforge PPS-CF" ], - "OFTbdJyT": [ - "FlyingBear/Other PC" - ], - "OFTbsWVg": [ - "Artillery/Artillery TPU" + "OFTXduCM": [ + "Creality/eSUN ABS+" ], "OFTcE0nA": [ "OrcaFilamentLibrary/eSUN PLA-Basic" ], + "OFTdauIq": [ + "Volumic/Volumic PCTG Ultra (Performance)" + ], + "OFTkj6DR": [ + "Anycubic/Anycubic PVA" + ], "OFTlRzpe": [ "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" ], - "OFToBodi": [ - "Qidi/QIDI ABS Rapido Metal" + "OFTnWzBs": [ + "Creality/Hyper PLA-CF" ], - "OFTsGps3": [ - "InfiMech/InfiMech PC" + "OFTs8peJ": [ + "Snapmaker/Snapmaker Dual TPE" ], - "OFTszIHE": [ - "Creality/Creality Generic PLA Silk" + "OFTsHNQi": [ + "Qidi/QIDI ASA" + ], + "OFTvvox9": [ + "Sovol/Sovol SV06 ACE PLA" + ], + "OFU0n0zW": [ + "FLSun/FLSun T1 PLA Generic" ], "OFU1zPxE": [ + "Elegoo/Elegoo PLA Galaxy", "OrcaFilamentLibrary/Elegoo PLA Galaxy" ], - "OFUJw3Lx": [ - "Qidi/QIDI PEBA 95A" + "OFU3QXL7": [ + "re3D/re3D PC" ], - "OFUYjPc4": [ - "Dremel/Dremel Generic PLA" + "OFU3zwPc": [ + "Prusa/Prusa Generic TPU HF" + ], + "OFU5N9jI": [ + "OrcaArena/OrcaArena Generic TPU" + ], + "OFU6fjbi": [ + "Co Print/CoPrint Generic ABS" + ], + "OFU7CKZt": [ + "Volumic/Volumic ASA Ultra (Performance)" + ], + "OFUCpLaL": [ + "Flashforge/FlashForge PPS" + ], + "OFUF7oA4": [ + "Creality/Hyper PC" + ], + "OFUH1aee": [ + "Volumic/Volumic FLEX93 Ultra (Performance)" + ], + "OFUIfGoh": [ + "Snapmaker/Snapmaker Dual PET" + ], + "OFUScM0D": [ + "Flashforge/FusRock S-Multi" + ], + "OFUWRqwb": [ + "Creality/Creality Generic PA-CF" + ], + "OFUYCqtB": [ + "InfiMech/InfiMech PLA" + ], + "OFUaHEO9": [ + "Anycubic/Anycubic PEBA 95A" + ], + "OFUaVAdj": [ + "Tiertime/Tiertime Generic ASA" ], "OFUanySo": [ "OrcaFilamentLibrary/Bambu PLA Silk+" ], - "OFUkpobY": [ - "Qidi/QIDI PAHT-CF" + "OFUmS5z5": [ + "Creality/eSUN ASA+" ], - "OFUqBrgf": [ - "Chuanying/Chuanying Generic TPU" + "OFUrStd6": [ + "Ratrig/RatRig Generic PCTG" + ], + "OFUtGagr": [ + "Artillery/Artillery Generic PLA-CF" ], "OFUyDDNv": [ + "Elegoo/Elegoo PC", "OrcaFilamentLibrary/Elegoo PC" ], - "OFV1szQh": [ - "Peopoly/Peopoly Lancer PETG-C" + "OFV0KrAG": [ + "FLSun/FLSun T1 ABS" ], - "OFV4hD1o": [ - "Qidi/QIDI PLA Rapido Metal" + "OFV5Q7j2": [ + "Snapmaker/Snapmaker J1 TPE" ], "OFV5tNw6": [ + "Elegoo/Elegoo PET-CF", "OrcaFilamentLibrary/Elegoo PET-CF" ], - "OFVBNoov": [ - "InfiMech/InfiMech ABS" + "OFV5wEMe": [ + "Afinia/Afinia ABS" ], "OFVBlUFH": [], "OFVCkX5w": [ "OrcaFilamentLibrary/Bambu TPU 95A" ], - "OFVJXE4n": [ - "FlyingBear/Other ABS" + "OFVHMFJX": [ + "Qidi/QIDI PETG Tough 0.2 nozzle" ], - "OFVhG0yM": [ - "Qidi/QIDI ABS Odorless" + "OFVKADz5": [ + "Comgrow/Comgrow Generic PLA" ], "OFVptRxp": [ "BBL/COEX TPE 30D", "OrcaFilamentLibrary/COEX TPE 30D" ], + "OFVqZ2H0": [ + "FLSun/FLSun Generic PC" + ], + "OFVtIasg": [ + "Eryone/Eryone ASA" + ], "OFW29a9R": [ + "OrcaArena/PolyTerra PLA", "OrcaFilamentLibrary/PolyTerra PLA", "Snapmaker/PolyTerra PLA" ], - "OFW8UdlP": [ - "Qidi/QIDI ABS Rapido" + "OFW5FqkL": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "OFW9uIkE": [ + "Tiertime/Tiertime Generic HIPS" + ], + "OFWIr7ZE": [ + "CoLiDo/CoLiDo Generic ABS" + ], + "OFWRITFw": [ + "Prusa/Prusament rPLA" + ], + "OFWTAEjH": [ + "Snapmaker/Snapmaker TPE" ], "OFWTRJ1K": [ "OrcaFilamentLibrary/FilAr PLA Bronce" ], + "OFWY6vBh": [ + "Anycubic/Anycubic Generic PC" + ], "OFWYtgCa": [ + "Elegoo/Elegoo PLA Wood", "OrcaFilamentLibrary/Elegoo PLA Wood" ], + "OFWa0NiB": [ + "Volumic/Volumic NYLON Ultra" + ], + "OFWadebJ": [ + "Tiertime/Tiertime Generic PETG-CF" + ], + "OFWao3Ic": [ + "Creality/Ender-PLA" + ], + "OFWbbuRY": [ + "InfiMech/InfiMech Generic ABS" + ], "OFWbdGsC": [ + "Creality/Generic PLA-CF", + "Custom/Generic PLA-CF", "OrcaFilamentLibrary/Generic PLA-CF" ], - "OFWkCAdc": [ - "Qidi/QIDI PETG Tough 0.2 nozzle" + "OFWgFOjn": [ + "Snapmaker/Snapmaker PLA Silk" ], - "OFWs8KIZ": [ - "Flashforge/Flashforge ABS-CF" + "OFWnSvGu": [ + "Flashforge/Flashforge ASA-GF" ], - "OFWv6JYn": [ - "Flashforge/Flashforge PLA Metal" + "OFWof1Ap": [ + "FLSun/FLSun Generic ABS" + ], + "OFWukXja": [ + "Qidi/Qidi Generic TPU 95A" ], "OFWwF7K7": [ "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" ], - "OFWyCd0Y": [ - "Qidi/QIDI Support For PET/PA" + "OFWzr7m0": [ + "Anycubic/Anycubic Generic PETG" ], "OFX0ycRQ": [ "OrcaFilamentLibrary/Fiberon PA12-CF" ], - "OFXA8vy9": [ - "Artillery/Artillery PLA Basic+" + "OFX2zcrM": [ + "Flashforge/Generic PLA-CF10" ], "OFXCBZTA": [ "OrcaFilamentLibrary/Eolas Prints ABS" @@ -4256,93 +3421,158 @@ "OFXIbw5D": [ "OrcaFilamentLibrary/Bambu PLA Matte" ], - "OFXNO5Of": [ - "Qidi/QIDI PLA Rapido 0.2 nozzle" - ], - "OFXQX0tr": [ - "Ratrig/RatRig PunkFil PETG CF" + "OFXJ9iom": [ + "iQ/Grauts HPP4GF25 P1" ], "OFXTPuqV": [ "OrcaFilamentLibrary/Elas PETG Basic" ], - "OFXcfTEb": [ - "Qidi/Tinmorry PETG-ECO" + "OFXXUHSG": [ + "Chuanying/Chuanying Generic PETG-CF10" ], - "OFXfgh61": [ - "Prusa/Prusa Generic PA-CF" + "OFXhZ3uY": [ + "OrcaArena/OrcaArena Generic PC" + ], + "OFXi59OX": [ + "Afinia/Afinia Value ABS" + ], + "OFXk1emJ": [ + "Artillery/Artillery PLA Basic" ], "OFXkm8q1": [ + "Creality/Generic PP-CF", "OrcaFilamentLibrary/Generic PP-CF" ], - "OFXkwkn6": [ - "Qidi/QIDI PA-Ultra" + "OFXn3Vd9": [ + "Qidi/QIDI Support For PAHT" ], - "OFXv4FUi": [ - "Flashforge/Flashforge PLA Galaxy" + "OFXnToSX": [ + "Creality/Hyper Stardust" + ], + "OFXuGxvQ": [ + "Volumic/Volumic PLA Ultra" + ], + "OFXuwtnq": [ + "Co Print/CoPrint Generic PETG" + ], + "OFXyyfX6": [ + "Anker/Anker Generic PLA Silk", + "Anker/Anker Generic PLA Silk 0.2 nozzle", + "Anker/Anker Generic PLA Silk 0.25 nozzle" ], "OFXz7Mwx": [ + "Elegoo/Elegoo PLA Silk", "OrcaFilamentLibrary/Elegoo PLA Silk" ], "OFXzQ4yL": [ "OrcaFilamentLibrary/Bambu ASA-Aero" ], - "OFY1U4uM": [ - "Sovol/Sovol SV08 TPU" + "OFY0F5qA": [ + "Volumic/Volumic PETG Ultra carbone (Performance)" + ], + "OFY3AB7j": [ + "Snapmaker/Snapmaker J1 PLA Matte" ], "OFY9muEs": [ + "Anycubic/Generic ABS", + "Creality/Generic ABS", "Custom/Generic ABS", + "Elegoo/Generic ABS", + "Flashforge/Generic ABS", "OrcaFilamentLibrary/Generic ABS", - "Sovol/Generic ABS" + "RH3D/Generic ABS", + "Sovol/Generic ABS", + "Z-Bolt/Generic ABS" ], - "OFYG2Gfy": [ - "Afinia/Afinia ABS+" + "OFYEtXuk": [ + "Snapmaker/Snapmaker J1 PA-CF" ], "OFYGbPHX": [ - "OrcaFilamentLibrary/PolyLite Dual PLA" + "OrcaFilamentLibrary/PolyLite Dual PLA", + "Snapmaker/PolyLite Dual PLA" ], - "OFYH00jV": [ - "Qidi/QIDI ABS-GF" + "OFYHzKyS": [ + "Vzbot/Vzbot Generic PLA-CF" ], - "OFYICbI4": [ - "Flashforge/FusRock Generic PAHT-CF" + "OFYPdJ7t": [ + "Creality/Creality Generic ABS" ], "OFYPdQJh": [ + "Anycubic/Generic PETG", + "Creality/Generic PETG", + "Custom/Generic PETG", + "Elegoo/Generic PETG", + "Flashforge/Generic PETG", + "LONGER/Generic PETG", "OrcaFilamentLibrary/Generic PETG", - "Sovol/Generic PETG" - ], - "OFYRS7GZ": [ - "Flashforge/Generic TPU-95A" - ], - "OFYZs7dN": [ - "Flashforge/Flashforge Generic HS PLA" + "RH3D/Generic PETG", + "Sovol/Generic PETG", + "Z-Bolt/Generic PETG" ], "OFYd5uS3": [], - "OFYehFGr": [ - "Ratrig/RatRig BigNozzle TPU" - ], - "OFYfZgxU": [ + "OFYezc6s": [ "FlyingBear/FlyingBear TPU" ], + "OFYl0c8v": [ + "Flashforge/Flashforge Generic HIPS" + ], + "OFYlZMmy": [ + "Chuanying/Chuanying Generic TPU" + ], + "OFYlthXI": [ + "Flashforge/Flashforge Generic PLA-CF" + ], + "OFYtS9zg": [ + "Flashforge/FusRock PAHT-CF" + ], + "OFYuowge": [ + "FlyingBear/Other ABS", + "InfiMech/Other ABS" + ], + "OFYvSO1W": [ + "Flashforge/Flashforge Generic PLA-Silk" + ], + "OFZ0mR5b": [ + "Anycubic/Anycubic PLA-CF" + ], + "OFZ1hANN": [ + "Flashforge/FusRock Generic NexPA-CF25" + ], + "OFZ2LuAi": [ + "Wanhao France/YUMI PLA Bowden" + ], "OFZ4QbfK": [ "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" ], - "OFZAkPHG": [ - "Qidi/QIDI PPS-GF" + "OFZ4fTO8": [ + "CONSTRUCT3D/C1 Generic High Flow PETG" ], - "OFZQFvHQ": [ - "Flashforge/Flashforge HS PETG" + "OFZHgTVI": [ + "Flashforge/Flashforge Generic PETG" ], - "OFZcrV9c": [ - "Flashforge/Flashforge PPS-CF" + "OFZLtWYs": [ + "Qidi/QIDI ABS-GF25" ], - "OFZjZ1k7": [ - "Creality/Creality HF Generic PLA" + "OFZOuWrO": [ + "Qidi/QIDI PPS-CF" ], - "OFa5cFqE": [ - "Qidi/QIDI Support For PAHT" + "OFZPlCck": [ + "Chuanying/Chuanying Generic ABS" ], - "OFa6L3Of": [ - "Qidi/Qidi PC-ABS-FR" + "OFZivHGL": [ + "Snapmaker/Snapmaker Dual PLA" + ], + "OFZsChIG": [ + "Qidi/Qidi Generic TPU" + ], + "OFZtOQtl": [ + "Flashforge/Flashforge PA6-CF" + ], + "OFZtkHRq": [ + "Anycubic/Anycubic PC" + ], + "OFaBwRvT": [ + "Flashforge/Flashforge ASA Basic" ], "OFaDOaNt": [ "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" @@ -4350,74 +3580,130 @@ "OFaEesXQ": [ "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" ], - "OFaKIoH2": [ - "Elegoo/Elegoo PLA Sparkle" + "OFaEuvNF": [ + "Anycubic/Anycubic PAHT-CF" ], - "OFaKZ6JI": [ - "Anycubic/Generic PETG Basic" + "OFaFNP2U": [ + "Sovol/Sovol SV07 PLA" + ], + "OFaHjk1V": [ + "Volumic/Volumic PC" + ], + "OFaP2SsH": [ + "LH/LHS ASA" ], "OFaQMgRH": [ "OrcaFilamentLibrary/Bambu PLA Tough" ], + "OFaRjiIm": [ + "SeeMeCNC/SeeMeCNC PETG-CF" + ], + "OFaU2JxD": [ + "Dremel/Dremel Generic PLA" + ], "OFaYz8iE": [ "OrcaFilamentLibrary/Elas PLA Pro" ], + "OFaeIx7W": [ + "iQ/Polymaker PETG Polymax black P1" + ], + "OFafO6VM": [ + "Elegoo/Generic PC-CF" + ], + "OFafocjw": [ + "Cubicon/Cubicon ABS" + ], + "OFahE7HP": [ + "Blocks/Blocks Generic PC" + ], "OFausr3F": [ "OrcaFilamentLibrary/FilAr PLA-mate Rosa" ], - "OFaxQnfz": [ - "Cubicon/Cubicon PC" + "OFaz8VoR": [ + "Flashforge/Flashforge HIPS" ], - "OFb3UzMZ": [ - "InfiMech/InfiMech PA-CF" - ], - "OFbK5wve": [ - "Prusa/Prusa Generic TPU HF" + "OFb5EEM3": [ + "Artillery/Artillery PET" ], "OFbP8zEO": [ "OrcaFilamentLibrary/Eolas Prints PLA Silk" ], - "OFbS9rjH": [ - "Qidi/QIDI PETG Rapido" + "OFbSChKb": [ + "SeeMeCNC/SeeMeCNC PLA" ], - "OFbYP6Wb": [ - "Elegoo/Elegoo PLA Marble" + "OFbSZBOi": [ + "InfiMech/InfiMech TPU Basic" ], - "OFc2SnEp": [ - "Artillery/Artillery PVA" + "OFbeeFkl": [ + "OrcaArena/OrcaArena Generic PLA Silk" + ], + "OFbenYUK": [ + "Prusa/Prusa Generic TPU" + ], + "OFbh7HcA": [ + "Eryone/Eryone PP-CF" + ], + "OFbjtPQy": [ + "FLSun/FLSun T1 ASA" + ], + "OFbt04e0": [ + "DeltaMaker/DeltaMaker Generic TPU" + ], + "OFc0xiCz": [ + "InfiMech/InfiMech Generic TPU" ], "OFc3xdm9": [ - "OrcaFilamentLibrary/Overture PLA" + "OrcaFilamentLibrary/Overture PLA", + "Qidi/Overture PLA" ], - "OFcZZWnB": [ - "Cubicon/Cubicon ABS-A100" + "OFc87pL3": [ + "OrcaArena/Arena PET-CF" ], - "OFceJcLf": [ - "Qidi/PolyLite PLA" + "OFcBJQcC": [ + "Snapmaker/Snapmaker Dual TPU High-Flow" + ], + "OFcCzEkS": [ + "Prusa/Prusa Generic PVA" + ], + "OFcJ7AKd": [ + "Sovol/Sovol SV08 PLA" + ], + "OFcJDtTx": [ + "Artillery/Artillery TPU" + ], + "OFcKtw8W": [ + "Volumic/PA6 CF20 (Performance)" + ], + "OFcdqaWI": [ + "Sovol/Sovol Zero PC" ], "OFcfQk4h": [ "BBL/Overture Air PLA", "OrcaFilamentLibrary/Overture Air PLA" ], - "OFcqs5g7": [ - "Elegoo/Elegoo PLA Translucent2" + "OFcogyWl": [ + "WonderMaker/WonderMaker PLA Metal" ], - "OFcsHCy4": [ - "Sovol/Sovol SV08 PLA" + "OFctbSkL": [ + "Blocks/Blocks Generic ASA-CF" + ], + "OFctg8r1": [ + "CoLiDo/CoLiDo PLA+" ], "OFcvKkrs": [ "BBL/Overture TPU", "OrcaFilamentLibrary/Overture TPU" ], - "OFcy60o4": [ - "Flashforge/Flashforge ASA Basic" - ], "OFcytyoA": [ - "OrcaFilamentLibrary/Fiberon PETG-ESD" + "OrcaFilamentLibrary/Fiberon PETG-ESD", + "Snapmaker/Fiberon PETG-ESD" ], "OFd0Fv0k": [ "OrcaFilamentLibrary/Generic PE-CF" ], + "OFd10YeG": [ + "Ratrig/RatRig Generic PLA" + ], "OFd2vX0G": [ "BBL/COEX PLA PRIME", "OrcaFilamentLibrary/COEX PLA PRIME" @@ -4426,80 +3712,154 @@ "BBL/AliZ PA-CF", "OrcaFilamentLibrary/AliZ PA-CF" ], + "OFdD5Wbu": [ + "Snapmaker/Snapmaker J1 PLA-CF" + ], + "OFdEIwxy": [ + "Flashforge/Flashforge Generic PLA-CF10" + ], + "OFdHsxB4": [ + "TwoTrees/TwoTrees Generic 95A TPU" + ], "OFdI4zMo": [], - "OFdLGn0R": [ - "Creality/Creality Generic PLA Wood" + "OFdLdGgJ": [ + "OrcaArena/OrcaArena Generic PVA" ], - "OFdNORGt": [ - "Flashforge/Flashforge ASA-GF" + "OFdOWhCa": [ + "Ratrig/RatRig Generic PC" ], - "OFdSGkUG": [ - "Anycubic/Anycubic PETG" + "OFdXVjGZ": [ + "Tiertime/Tiertime PC" + ], + "OFdXgp2K": [ + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying HS PLA" ], "OFdb8YNz": [ "OrcaFilamentLibrary/FilAr PLA Verde Manzana" ], - "OFdhVJql": [ - "Flashforge/Flashforge PLA Buint Ti" + "OFdkWDiy": [ + "Cubicon/Cubicon PLAi21" + ], + "OFdlGycb": [ + "CoLiDo/CoLiDo Generic TPU" + ], + "OFdrYBmI": [ + "Tiertime/Tiertime ASA" + ], + "OFdtPd9h": [ + "Qidi/QIDI PETG-GF" ], "OFdzlrhi": [ "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" ], - "OFeFRwST": [ - "Flashforge/Flashforge PVA" + "OFe61n6v": [ + "Ratrig/RatRig PunkFil PETG CF" ], - "OFePPmng": [ - "Snapmaker/Snapmaker J1 ABS Benchy" + "OFe6sfXS": [ + "Flashforge/FlashForge PC" ], - "OFeWMAGH": [ - "Flashforge/Flashforge HS PLA Burnt Ti" + "OFe7Sx5B": [ + "Sovol/Sovol SV06 ACE PETG" ], - "OFefhSuj": [ - "InfiMech/InfiMech PLA Hyper" + "OFe8UJXH": [ + "Creality/Creality Generic PC" + ], + "OFe8tuNb": [ + "Tiertime/Tiertime PA6-CF" + ], + "OFe8yBMG": [ + "Qidi/QIDI PETG Tough 0.6 nozzle" + ], + "OFeAxvEt": [ + "Snapmaker/Snapmaker Dual ABS Benchy" + ], + "OFeCJqxx": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "OFeDfaCh": [ + "CoLiDo/CoLiDo Generic PLA" + ], + "OFeIyhUx": [ + "Anycubic/Anycubic PC-CF" + ], + "OFeJjoKF": [ + "FLSun/FLSun Generic PA" + ], + "OFeK2vkS": [ + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying PLA-SILK" + ], + "OFeTATC7": [ + "Snapmaker/Snapmaker J1 Breakaway" + ], + "OFeVzkSU": [ + "Snapmaker/Fiberon PPS-GF20" + ], + "OFec7Qiw": [ + "Flashforge/Flashforge PLA Sparkle" + ], + "OFeelsSM": [ + "Qidi/HATCHBOX PLA" + ], + "OFelDBgv": [ + "Snapmaker/Polymaker PLA" + ], + "OFepU7Tl": [ + "WonderMaker/WonderMaker PLA Matte" ], "OFesA6rF": [ "Flashforge/Generic PLA Silk", - "OrcaFilamentLibrary/Generic PLA Silk" + "OrcaFilamentLibrary/Generic PLA Silk", + "Sovol/Generic PLA Silk" + ], + "OFetENFF": [ + "OrcaArena/OrcaArena Generic ABS" ], "OFexaZU2": [ "OrcaFilamentLibrary/FilAr PLA Manteca" ], - "OFeybQvK": [ - "Qidi/QIDI ABS Rapido 0.2 nozzle" - ], - "OFf0JIqs": [ - "Eryone/Eryone PP" - ], - "OFf2b9wu": [ - "Anycubic/Anycubic ABS" + "OFf0MkD5": [ + "Qidi/QIDI PETG Translucent" ], "OFf5awy4": [ "OrcaFilamentLibrary/Eolas Prints PLA Matte" ], + "OFf6ZEvu": [ + "InfiMech/InfiMech PC" + ], "OFf6mfQO": [ "OrcaFilamentLibrary/Bambu Support for ABS" ], + "OFf6ynfH": [ + "FlyingBear/FlyingBear PETG Basic" + ], "OFfBpSRI": [ "OrcaFilamentLibrary/Bambu ASA" ], + "OFfHGM1D": [ + "re3D/re3D rPP" + ], "OFfJSCzm": [ "OrcaFilamentLibrary/FDplast PETG" ], - "OFfJoIgg": [ - "Qidi/QIDI PAHT-GF" + "OFfSqS4R": [ + "Creality/ENDER FAST PLA" + ], + "OFfZ0lTS": [ + "Qidi/Qidi Generic PETG-CF" ], "OFfZcoKr": [ "OrcaFilamentLibrary/FilAr PLA-mate Piel" ], - "OFfdxQok": [ - "Qidi/Generic PLA+" + "OFfb10SK": [ + "Artillery/Artillery PC" ], - "OFfiN1Lw": [ - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying HS PLA" + "OFfegVpA": [ + "Flashforge/Polymaker Generic S1" ], - "OFfkPhrJ": [ - "Creality/Creality HF Generic Speed PLA" + "OFfmHUkQ": [ + "Snapmaker/Snapmaker Dual Breakaway" ], "OFfmZrI3": [ "OrcaFilamentLibrary/FDplast TPU" @@ -4508,9 +3868,6 @@ "BBL/COEX TPE 40D", "OrcaFilamentLibrary/COEX TPE 40D" ], - "OFfoA8kJ": [ - "CoLiDo/CoLiDo PLA" - ], "OFfq5YXA": [ "OrcaFilamentLibrary/Valment PLA-CF" ], @@ -4518,14 +3875,24 @@ "BBL/COEX TPE 60D", "OrcaFilamentLibrary/COEX TPE 60D" ], - "OFftQOek": [ - "Flashforge/Flashforge PLA Matte" + "OFfr6JDF": [ + "Qidi/QIDI PETG Tough 0.8 nozzle" ], "OFfuhviw": [ + "Elegoo/Elegoo PLA Marble", "OrcaFilamentLibrary/Elegoo PLA Marble" ], - "OFg4N6ZL": [ - "FlyingBear/FlyingBear PETG" + "OFfuih8e": [ + "Creality/Creality Silk PLA" + ], + "OFfxFQf9": [ + "Chuanying/Chuanying Generic PETG" + ], + "OFfznI0Q": [ + "Prusa/Prusa Generic PA-CF" + ], + "OFg3cWVt": [ + "Snapmaker/Snapmaker Dual PLA Metal" ], "OFg57Nmc": [ "OrcaFilamentLibrary/Bambu PC FR" @@ -4534,175 +3901,290 @@ "OrcaFilamentLibrary/FILL3D PPCF" ], "OFg8ndtj": [ + "Creality/Generic PA", "Custom/Generic PA", - "OrcaFilamentLibrary/Generic PA" + "Elegoo/Generic PA", + "OrcaFilamentLibrary/Generic PA", + "Z-Bolt/Generic PA" ], - "OFgJX0Fc": [ - "Flashforge/FlashForge PPS" - ], - "OFgK2Xvv": [ - "Anycubic/Anycubic PLA" - ], - "OFgMGSpF": [ - "Sovol/Sovol SV06 Plus ACE PETG" + "OFgHh8ly": [ + "Afinia/Afinia Value PLA" ], "OFgMWJ8T": [ "OrcaFilamentLibrary/FilAr PLA Negro Azabache" ], - "OFgNzLVh": [ - "Sovol/Sovol Zero ABS" + "OFgSEwOZ": [ + "OrcaArena/OrcaArena Generic PETG" ], - "OFgSK1hL": [ - "Anycubic/Anycubic PLA High Speed" + "OFgSPtDn": [ + "MagicMaker/MM Generic PEEK" + ], + "OFgSbX7E": [ + "Volumic/Volumic PC (Performance)" + ], + "OFgVJhVt": [ + "Tiertime/Tiertime Generic PLA-CF" + ], + "OFgVQkqW": [ + "Cubicon/Cubicon ABSk" + ], + "OFgXgt98": [ + "Artillery/Artillery ABS" ], "OFgbpcy9": [ + "Anycubic/Generic TPU", + "Creality/Generic TPU", + "Custom/Generic TPU", + "Flashforge/Generic TPU", "OrcaFilamentLibrary/Generic TPU", + "RH3D/Generic TPU", "Sovol/Generic TPU" ], - "OFglpvEE": [ - "Sovol/Sovol SV06 ACE TPU" + "OFgcryz4": [ + "Ratrig/RatRig BigNozzle ASA" + ], + "OFgeM7nD": [ + "Flashforge/Flashforge PA12-CF" + ], + "OFgf4gZa": [ + "Flashforge/Flashforge PA" + ], + "OFglhKLM": [ + "Qidi/QIDI PLA Rapido 0.8 nozzle" ], "OFgpLTMR": [ "OrcaFilamentLibrary/FilAr PETG Gris Plata" ], - "OFgrGfPy": [ - "Anycubic/Anycubic PLA+" + "OFgpQwkk": [ + "Creality/CR-PLA Fluo" ], - "OFgtZjeX": [ - "Snapmaker/Snapmaker ABS Benchy" + "OFgptDSf": [ + "OrcaArena/Arena PLA Matte" ], - "OFh5GUhZ": [ - "Elegoo/Elegoo PLA Wood" + "OFgvOmM2": [ + "Anker/Anker Generic PETG", + "Anker/Anker Generic PETG 0.2 nozzle", + "Anker/Anker Generic PETG 0.25 nozzle" + ], + "OFgyPlwU": [ + "Snapmaker/Snapmaker TPU High-Flow" + ], + "OFh7mvPO": [ + "Prusa/Prusament PVB" + ], + "OFh9u9c0": [ + "Creality/Generic PA6-GF" ], "OFhASRWj": [ - "OrcaFilamentLibrary/Panchroma PLA Temp Shift" - ], - "OFhKNHC8": [ - "Elegoo/Generic PETG PRO" + "OrcaFilamentLibrary/Panchroma PLA Temp Shift", + "Snapmaker/Panchroma PLA Temp Shift" ], "OFhMO9Kh": [ "OrcaFilamentLibrary/GreenGate3D PETG" ], + "OFhO5aEJ": [ + "Ratrig/RatRig PunkFil ABS" + ], + "OFhQf8ou": [ + "Snapmaker/Snapmaker PLA-CF" + ], "OFhQfUQY": [ "OrcaFilamentLibrary/Generic SBS" ], + "OFhTPf6L": [ + "Creality/Generic PA6-CF", + "Elegoo/Generic PA6-CF" + ], + "OFhUjPA5": [ + "Eryone/Eryone TPU" + ], "OFhWc5Bv": [ "OrcaFilamentLibrary/NIT ABS" ], "OFhWhL1i": [ "OrcaFilamentLibrary/Eolas Prints PETG" ], + "OFhWrAuP": [ + "Qidi/QIDI PLA-CF" + ], + "OFhbolij": [ + "Creality/eSUN PLA-Lite" + ], "OFhcYzR8": [ + "Elegoo/Elegoo PLA Sparkle", "OrcaFilamentLibrary/Elegoo PLA Sparkle" ], + "OFhcrFw9": [ + "Creality/Creality Generic TPU" + ], "OFhfd722": [ "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" ], + "OFhiJE7Y": [ + "Qidi/QIDI PEBA 95A" + ], + "OFhkN0a7": [ + "Creality/Hyper PA612-CF" + ], "OFhlCNqq": [ "BBL/COEX PLA", "OrcaFilamentLibrary/COEX PLA" ], "OFhuaUQB": [ - "OrcaFilamentLibrary/Bambu ABS" + "OrcaFilamentLibrary/Bambu ABS", + "Qidi/Bambu ABS" ], - "OFhzHd2Y": [ - "Flashforge/Flashforge HIPS" + "OFhwiZ50": [ + "Qidi/QIDI PLA Rapido 0.2 nozzle" ], - "OFi1ocNv": [ - "Flashforge/Flashforge PA" + "OFhx4uOG": [ + "Qidi/QIDI PET-GF" + ], + "OFi5RSve": [ + "Creality/eSUN PLA-LW" + ], + "OFi6PfUM": [ + "Creality/Generic PLA-Silk" + ], + "OFi7Bf0F": [ + "Flashforge/Flashforge ABS-CF" + ], + "OFi90KlM": [ + "Volumic/Volumic NYLON Ultra (Performance)" + ], + "OFiCHnso": [ + "Prusa/Prusa Generic PLA" ], "OFiDpM1B": [ "OrcaFilamentLibrary/FilAr PLA-mate Bordo" ], - "OFiJYDPC": [ - "Qidi/HATCHBOX PLA" + "OFiEz2XI": [ + "Cubicon/Cubicon PA-CF" + ], + "OFiUSDih": [ + "Blocks/Blocks Generic PA" ], "OFiWaoqD": [ "OrcaFilamentLibrary/DREMC PPA-CF" ], - "OFic2uNr": [ - "Sovol/Sovol SV06 ACE PLA" + "OFifxPW1": [ + "DeltaMaker/DeltaMaker Generic PLA" ], - "OFicxmSa": [ - "Prusa/Prusa Generic PLA HF" + "OFilAA3b": [ + "Eryone/Eryone PLA-CF" ], - "OFidJLn8": [ - "Qidi/PolyLite ABS" + "OFilD4bP": [ + "FlyingBear/FlyingBear PLA" ], - "OFiyGNbI": [ - "Elegoo/Elegoo PETG-CF" + "OFilnglt": [ + "Artillery/Artillery PETG" + ], + "OFin64Qg": [ + "Creality/Generic Support for PLA" + ], + "OFiorRtJ": [ + "Blocks/Blocks Generic PVA" + ], + "OFitS8al": [ + "Snapmaker/PolyLite PLA Neon" + ], + "OFiuJSmy": [ + "Ratrig/RatRig BigNozzle PLA" + ], + "OFiwEbze": [ + "Volumic/PETG ESD (Performance)" ], "OFj3bTjw": [ "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" ], - "OFjFPhUC": [ - "Prusa/Prusament rPLA" + "OFj64R5U": [ + "Peopoly/Peopoly Lancer ABS-GF" + ], + "OFjD3YTW": [ + "Qidi/Qidi PC-ABS-FR" + ], + "OFjHrAX0": [ + "WonderMaker/WonderMaker ABS" + ], + "OFjLAYgO": [ + "Anycubic/Anycubic PEBA" ], "OFjPXrXO": [ + "Elegoo/Elegoo PLA Glow", "OrcaFilamentLibrary/Elegoo PLA Glow" ], "OFjT9PkZ": [ "OrcaFilamentLibrary/FilAr PLA Tabaco" ], - "OFjZw7k1": [ - "Snapmaker/PolyTerra J1 PLA" + "OFjUGUIK": [ + "iQ/Fiberthree PACF Pro P1" + ], + "OFjVOWfJ": [ + "Anycubic/Anycubic PLA High Speed" + ], + "OFjXrKFO": [ + "OrcaArena/Arena PLA Impact" ], "OFjb0wos": [ - "OrcaFilamentLibrary/Panchroma PLA Metallic" + "OrcaFilamentLibrary/Panchroma PLA Metallic", + "Snapmaker/Panchroma PLA Metallic" ], - "OFjdTQd6": [ - "Anycubic/Anycubic PLA Silk" + "OFjcwUEm": [ + "Cubicon/Cubicon PLA" ], - "OFjepy6j": [ - "Flashforge/FusRock Generic S-PAHT" + "OFjkdnyN": [ + "Snapmaker/Snapmaker Dual TPU" ], - "OFjj9Yiz": [ - "Ratrig/RatRig BigNozzle PETG" + "OFjoAe0R": [ + "Qidi/Qidi PLA-CF" ], - "OFjohFkg": [ - "Qidi/QIDI PETG Translucent" + "OFjoIVZ6": [ + "FlyingBear/FlyingBear Generic PA-CF" ], "OFjorDcx": [ "OrcaFilamentLibrary/FDplast ABS" ], - "OFjqPjjl": [ - "Flashforge/Generic PET" - ], "OFjt9en1": [ "OrcaFilamentLibrary/Generic CoPE" ], - "OFjurQ3I": [ - "Sovol/Sovol Zero PETG" - ], - "OFk388hR": [ - "Elegoo/Generic PA6-CF" - ], - "OFk6T5YH": [ - "Sovol/Sovol Zero PETG HS Nozzle" + "OFjz0a3m": [ + "Prusa/Prusament PC-CF" ], "OFk8t9mz": [ "OrcaFilamentLibrary/Fiberon PETG-rCF" ], + "OFkAltI8": [ + "FlyingBear/Other PA-CF", + "InfiMech/Other PA-CF" + ], + "OFkGp50Y": [ + "Volumic/Volumic UNIVERSAL Ultra (Performance)" + ], "OFkGvN4d": [ "OrcaFilamentLibrary/FilAr PLA Verde Pixel" ], "OFkOviHk": [ "OrcaFilamentLibrary/Fiberon PA6-CF" ], - "OFkaDtKx": [ - "Flashforge/Flashforge PA66-CF" + "OFkR8E2c": [ + "Prusa/Prusament PETG" ], - "OFkeeluv": [ - "Prusa/Prusa Generic ASA HF" + "OFkUaDnU": [ + "Tiertime/Tiertime Generic PE-CF" ], - "OFkfK62J": [ - "Elegoo/Elegoo PLA Silk" + "OFkWaWRo": [ + "Sovol/Sovol SV06 Plus ACE TPU" + ], + "OFkYkQGO": [ + "Tiertime/Tiertime Generic PP-GF" ], "OFkhhUS0": [ + "Elegoo/Elegoo Rapid PLA+", "OrcaFilamentLibrary/Elegoo Rapid PLA+" ], - "OFklg4aM": [ - "Elegoo/Elegoo PLA PRO" + "OFklJcWK": [ + "FlyingBear/Other PLA Hyper", + "InfiMech/Other PLA Hyper" ], "OFknl9Iz": [ "OrcaFilamentLibrary/Bambu ABS-GF" @@ -4710,453 +4192,681 @@ "OFkoLUtR": [ "OrcaFilamentLibrary/FilAr PLA Verde Oliva" ], - "OFkoT6jl": [ - "Prusa/Prusament PLA" + "OFkq7rPy": [ + "Eryone/Eryone PA-GF" + ], + "OFks6esg": [ + "Creality/EN-PLA+" + ], + "OFkwIWwc": [ + "Flashforge/Flashforge PLA Color Change" + ], + "OFkx5MEe": [ + "Artillery/Artillery PVA" ], "OFkzr35f": [ "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" ], - "OFlN56xW": [ - "Chuanying/Chuanying Generic PLA-Silk", - "Chuanying/Chuanying PLA-SILK" + "OFl2SXmv": [ + "Prusa/Prusa Generic FLEX" ], - "OFlNKZLP": [ - "Flashforge/Flashforge PLA Metal" + "OFl4ItvQ": [ + "Prusa/Prusa Generic PLA HF" + ], + "OFl7nOAf": [ + "Sovol/Sovol SV06 Plus ACE PETG" + ], + "OFlBoEfL": [ + "Snapmaker/Snapmaker J1 TPU High-Flow" + ], + "OFlIsW6f": [ + "Snapmaker/Snapmaker Dual PLA Matte" + ], + "OFlLmUeV": [ + "Ginger Additive/Ginger Generic PLA" + ], + "OFlN6DL1": [ + "Qidi/QIDI PA-Ultra" + ], + "OFlNWVr5": [ + "Flashforge/Flashforge Generic PETG-CF10" ], "OFlP3KWq": [ + "Elegoo/Elegoo PETG HF", "OrcaFilamentLibrary/Elegoo PETG HF" ], "OFlSNkhc": [ "OrcaFilamentLibrary/Eolas Prints ASA" ], - "OFlbn4FY": [ - "Snapmaker/Snapmaker PLA Matte" + "OFlXJxX1": [ + "Chuanying/Chuanying PETG" + ], + "OFllmFhT": [ + "Elegoo/Generic PETG PRO" ], "OFln72PT": [ + "Elegoo/Elegoo PLA-CF", "OrcaFilamentLibrary/Elegoo PLA-CF" ], "OFlsTpJG": [ + "Elegoo/Elegoo PC-FR", "OrcaFilamentLibrary/Elegoo PC-FR" ], + "OFlufQpZ": [ + "Snapmaker/Snapmaker PLA" + ], "OFlwmqrC": [ - "OrcaFilamentLibrary/Polymaker HT-PLA-GF" + "OrcaFilamentLibrary/Polymaker HT-PLA-GF", + "Snapmaker/Polymaker HT-PLA-GF" ], - "OFlxnxDx": [ - "Tiertime/Tiertime Generic SBS" - ], - "OFlzQ0IS": [ - "Peopoly/Peopoly Lancer PET-CF" + "OFlx52rn": [ + "Ratrig/RatRig Generic PLA-CF" ], "OFm06H6V": [ + "Elegoo/Elegoo PLA Basic", "OrcaFilamentLibrary/Elegoo PLA Basic" ], - "OFm1VZed": [ - "Flashforge/Flashforge Generic PLA-CF" + "OFm4ysMO": [ + "FlyingBear/FlyingBear ABS" ], - "OFmF1xL9": [ - "Qidi/QIDI ASA-CF" + "OFm70lLt": [ + "CoLiDo/CoLiDo PLA" + ], + "OFmFwUWM": [ + "Prusa/Prusament ASA" ], "OFmJAd3A": [ "OrcaFilamentLibrary/FDplast HIPS" ], - "OFmKNi3f": [ - "Qidi/QIDI PLA Rapido" + "OFmKU2Ha": [ + "Eryone/Eryone PLA" ], - "OFmOWC74": [ - "Elegoo/Elegoo PETG PRO" + "OFmQkb3c": [ + "Flashforge/Flashforge HS PLA Burnt Ti" ], "OFmY0l6t": [ + "Elegoo/Generic PLA Matte", "OrcaFilamentLibrary/Generic PLA Matte" ], + "OFma52eS": [ + "Blocks/Blocks Generic ABS" + ], + "OFma5TXH": [ + "Qidi/QIDI ABS Odorless" + ], "OFmaeU4a": [ "OrcaFilamentLibrary/FilAr PLA-mate Naranja" ], - "OFmcJsqt": [ - "InfiMech/InfiMech TPU" + "OFmexHIS": [ + "Ratrig/RatRig BigNozzle PETG" ], - "OFmduKVr": [ - "Flashforge/FlashForge PPS-CF" - ], - "OFmgesco": [ - "Flashforge/Flashforge TPU 65D" + "OFmfizbq": [ + "OrcaArena/Arena PLA Silk" ], "OFmhJs5V": [ + "Elegoo/Elegoo TPU 95A", "OrcaFilamentLibrary/Elegoo TPU 95A" ], + "OFmhWhEf": [ + "Creality/Creality HF Generic PLA" + ], + "OFmjN2bc": [ + "Anycubic/Anycubic PLA" + ], "OFmn9NZL": [ "OrcaFilamentLibrary/FusRock ABS-GF" ], + "OFmnJNqY": [ + "OrcaArena/OrcaArena Generic PA" + ], "OFmpMwxS": [ + "Flashforge/Generic PLA High Speed", "OrcaFilamentLibrary/Generic PLA High Speed" ], "OFmveLWz": [ + "Elegoo/Elegoo PETG-GF", "OrcaFilamentLibrary/Elegoo PETG-GF" ], + "OFmzftED": [ + "OrcaArena/OrcaArena Generic ASA" + ], "OFn1QaY3": [ + "Elegoo/Elegoo PLA Translucent2", "OrcaFilamentLibrary/Elegoo PLA Translucent2" ], - "OFnLnZQo": [ - "Cubicon/Cubicon PC" + "OFn2GlhY": [ + "Creality/Hyper PA6-CF" ], - "OFnMW5jr": [ - "FlyingBear/FlyingBear ABS" + "OFn6WpN7": [ + "Qidi/QIDI PA12-CF" ], - "OFnRTkEq": [ - "Ratrig/RatRig PunkFil PETG" + "OFnHc3D6": [ + "Creality/eSUN PLA-CF" ], - "OFnY9ovF": [ - "Artillery/Artillery PA-CF" + "OFnMv3W5": [ + "Flashforge/Flashforge HS PLA" + ], + "OFnO4wnf": [ + "Prusa/Prusament PLA" + ], + "OFnSeLHk": [ + "CoLiDo/CoLiDo PLA Silk" + ], + "OFnXrkhA": [ + "InfiMech/InfiMech PA-CF" + ], + "OFnXwW8l": [ + "Snapmaker/PolyLite PLA Pro Metallic" ], "OFnYVFk2": [ "OrcaFilamentLibrary/FilAr PLA Azul Francia" ], + "OFncpm7O": [ + "WonderMaker/WonderMaker PLA Silk" + ], + "OFndmfJ1": [ + "Anker/Anker Generic PLA", + "Anker/Anker Generic PLA 0.2 nozzle", + "Anker/Anker Generic PLA 0.25 nozzle" + ], + "OFneOFWe": [ + "CoLiDo/CoLiDo ABS" + ], "OFnejEt4": [ "OrcaFilamentLibrary/FilAr PETG Cian" ], + "OFnfBvn5": [ + "Artillery/Artillery Generic PLA" + ], + "OFngcE81": [ + "LH/LHS TPU Foamy 78A" + ], + "OFnh79eM": [ + "SecKit/SecKit Generic ABS" + ], "OFniMuTN": [ "OrcaFilamentLibrary/Bambu PA6-CF" ], - "OFnj7bPm": [ - "Qidi/QIDI ABS Rapido 0.6 nozzle" + "OFnmp6rt": [ + "Anycubic/Anycubic PLA+" ], - "OFnsWQTp": [ - "Qidi/QIDI WOOD Rapido" - ], - "OFnyirh9": [ - "Artillery/Artillery PLA Silk" + "OFo15hcT": [ + "Qidi/QIDI PAHT-GF" ], "OFo2UF2C": [ + "Creality/Generic BVOH", "Flashforge/Generic BVOH", "OrcaFilamentLibrary/Generic BVOH" ], - "OFo4VB3w": [ - "Elegoo/Generic ABS-CF" + "OFo6n2pB": [ + "Anycubic/Anycubic PETG" ], - "OFo9EwvK": [ - "Flashforge/Generic PETG-CF10" + "OFoBTKmn": [ + "Cubicon/Cubicon PETG" ], - "OFoAaHcF": [ - "Flashforge/FusRock Generic PAHT-GF" + "OFoDgVnY": [ + "FLSun/FLSun S1 PLA Generic" ], - "OFoJUGj6": [ - "Flashforge/Flashforge HS PLA" + "OFoJcr46": [ + "Prusa/Prusa Generic ASA" ], "OFoSknDB": [ "OrcaFilamentLibrary/FILL3D PLA Turbo" ], + "OFoT8F7Y": [ + "Prusa/Prusa Generic PVA HF" + ], + "OFoVZg32": [ + "SecKit/SecKit Generic TPU" + ], "OFoYSJKi": [ + "Creality/Generic PETG-CF", + "Elegoo/Generic PETG-CF", "OrcaFilamentLibrary/Generic PETG-CF" ], "OFobDOW5": [ + "Elegoo/Elegoo ASA", "OrcaFilamentLibrary/Elegoo ASA" ], "OFocyw69": [ "BBL/AliZ PETG", "OrcaFilamentLibrary/AliZ PETG" ], + "OFodPDxO": [ + "Tiertime/Tiertime Generic PLA High Speed" + ], + "OFogbnCb": [ + "Flashforge/FlashForge PPS-CF" + ], "OFoiVqVM": [ "OrcaFilamentLibrary/Bambu PLA Basic" ], - "OFoimrpo": [ - "Flashforge/Flashforge PETG-CF" + "OFoqrHTw": [ + "FLSun/FLSun S1 PLA High Speed" + ], + "OForhBi4": [ + "Cubicon/Cubicon ABSk" ], "OFovEIbw": [ "OrcaFilamentLibrary/Bambu PETG HF" ], - "OFp8lkYD": [ - "Flashforge/Flashforge PPA-GF" + "OFp4ETDP": [ + "Creality/CR-PLA" ], - "OFp90N8a": [ - "Artillery/Artillery PA" + "OFp57RRC": [ + "Qidi/QIDI PPS-GF" + ], + "OFp8gtPH": [ + "Creality/Creality Generic PLA Silk" + ], + "OFp9wdmf": [ + "Eryone/Eryone PA-CF" + ], + "OFpAaY6w": [ + "Creality/Creality Generic ASA" + ], + "OFpBV2Ma": [ + "Qidi/Tinmorry PETG-ECO" ], "OFpBlrvY": [ "OrcaFilamentLibrary/Valment PLA Silk" ], - "OFpHq9gJ": [ - "Prusa/Prusament PETG" + "OFpDo5Ix": [ + "Cubicon/Cubicon ABS" ], "OFpPGSKG": [ + "Flashforge/SUNLU Silk PLA+", "OrcaFilamentLibrary/SUNLU Silk PLA+" ], + "OFpPJSHE": [ + "Peopoly/Peopoly Lancer PETG-C" + ], + "OFpSYJLI": [ + "Creality/Creality Generic PLA Matte" + ], "OFpW4gdi": [ + "Flashforge/SUNLU PLA Matte", "OrcaFilamentLibrary/SUNLU PLA Matte" ], - "OFphFSUJ": [ - "Prusa/Prusa Generic PETG HF" + "OFptvi3F": [ + "Tiertime/Tiertime Generic PPA-GF" ], - "OFq6IhFg": [ - "Cubicon/Cubicon PLA" + "OFpu74Qe": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "OFpumhCM": [ + "Volumic/Volumic UNIVERSAL Ultra" + ], + "OFq0TY7C": [ + "Flashforge/Flashforge ASA-CF" + ], + "OFq5QANf": [ + "Prusa/Prusa Generic PC HF" ], "OFq8gfS4": [ "OrcaFilamentLibrary/FilAr PETG Negro Azabache" ], + "OFq9svOz": [ + "Creality/Generic PPS" + ], "OFqGRZyH": [ "OrcaFilamentLibrary/Numakers PLA+" ], "OFqINlYj": [ + "Creality/eSUN PLA+", "OrcaFilamentLibrary/eSUN PLA+" ], - "OFqPp2yL": [ - "Qidi/QIDI PETG Tough 0.6 nozzle" + "OFqKmLJe": [ + "Creality/Creality Generic PETG-CF" ], - "OFqRWRU6": [ - "Flashforge/Flashforge ABS-GF" + "OFqOk9Ww": [ + "Peopoly/Peopoly Generic ABS" ], - "OFqSTJ3I": [ - "OrcaArena/OrcaArena Generic PLA Silk" + "OFqS8fzK": [ + "SecKit/SecKit Generic PETG" ], - "OFqkcvDI": [ - "Peopoly/Peopoly Lancer ABS-GF" + "OFqcL5UF": [ + "Qidi/QIDI Support For PET/PA" ], "OFqtx549": [ "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" ], "OFqw2PQA": [ - "OrcaFilamentLibrary/Panchroma CoPE" - ], - "OFqyIUDi": [ - "Qidi/Qidi PLA-CF" + "OrcaFilamentLibrary/Panchroma CoPE", + "Snapmaker/Panchroma CoPE" ], "OFrFBEfd": [ "OrcaFilamentLibrary/Eolas Prints PLA Neon" ], + "OFrGJ4tR": [ + "Anycubic/Anycubic PLA Slik" + ], "OFrKLeE3": [ "OrcaFilamentLibrary/Bambu PLA Metal" ], - "OFrOh600": [ - "OrcaFilamentLibrary/Panchroma PLA Matte" + "OFrLiqiM": [ + "InfiMech/InfiMech PETG" ], - "OFrbbq6E": [ - "InfiMech/Other PLA Hyper" + "OFrM4hdm": [ + "Creality/CR-PLA Carbon" + ], + "OFrO2zyn": [ + "Creality/Creality Generic PLA High Speed" + ], + "OFrOh600": [ + "Creality/Panchroma PLA Matte", + "OrcaFilamentLibrary/Panchroma PLA Matte", + "Snapmaker/Panchroma PLA Matte" + ], + "OFrQqCwL": [ + "InfiMech/InfiMech Generic PLA" + ], + "OFrdZ0cK": [ + "Creality/eSUN PETG+HS" + ], + "OFrgGex8": [ + "Blocks/Blocks Generic PETG" + ], + "OFrh4bBH": [ + "SecKit/SecKit Generic ASA" + ], + "OFrjacXf": [ + "Flashforge/Flashforge PET-CF" + ], + "OFrnJJEa": [ + "Tiertime/Tiertime Generic EVA" + ], + "OFrnkURQ": [ + "Flashforge/Flashforge PLA Metal" + ], + "OFrr67nG": [ + "OrcaArena/Arena PC" + ], + "OFrrMLDw": [ + "Flashforge/Flashforge Generic PLA-SILK" ], "OFryjl35": [ + "Elegoo/Elegoo ASA-CF", "OrcaFilamentLibrary/Elegoo ASA-CF" ], - "OFs1CbB1": [ - "Qidi/QIDI PLA Rapido 0.8 nozzle" + "OFs1sNLz": [ + "Chuanying/Chuanying ABS" + ], + "OFs2ReMr": [ + "InfiMech/InfiMech Generic PETG" ], "OFsB2lxm": [ + "Elegoo/Elegoo PLA Matte", "OrcaFilamentLibrary/Elegoo PLA Matte" ], - "OFsCOJv7": [ - "Anycubic/Generic TPU" + "OFsCbVbN": [ + "Anker/Anker Generic PVA" + ], + "OFsD974q": [ + "Volumic/Volumic PETG Ultra (Performance)" ], "OFsDXRpS": [ "OrcaFilamentLibrary/FilAr PLA Piel" ], + "OFsF96Gt": [ + "FLSun/FLSun Generic PLA-CF" + ], + "OFsFo7ms": [ + "Volumic/Volumic PP Ultra" + ], "OFsFon5l": [ + "Creality/Generic HIPS", "OrcaFilamentLibrary/Generic HIPS" ], + "OFsGqI4y": [ + "Ginger Additive/Ginger Generic PETG" + ], "OFsHSVZc": [ "OrcaFilamentLibrary/Bambu Support W" ], - "OFsLkLw6": [ - "Elegoo/Generic PLA Matte" + "OFsNJjpc": [ + "Ratrig/RatRig BigNozzle TPU" + ], + "OFsP8PKH": [ + "Z-Bolt/Generic ABS HT" ], "OFsRDvTM": [ - "OrcaFilamentLibrary/Panchroma PLA" + "Anycubic/Panchroma PLA", + "OrcaFilamentLibrary/Panchroma PLA", + "Snapmaker/Panchroma PLA" + ], + "OFsXOMoX": [ + "Qidi/Qidi Generic PLA+" ], "OFsXQXbs": [ "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" ], - "OFsgANe3": [ - "Flashforge/Flashforge PAHT-CF" - ], - "OFsmPFwh": [ - "Sovol/Sovol SV06 Plus ACE TPU" + "OFsoQ12i": [ + "Comgrow/Comgrow Generic ABS" ], "OFsoykbm": [ "OrcaFilamentLibrary/DREMC PA6-CF" ], - "OFt1YdX8": [ - "FLSun/FLSun T1 PLA Silk" + "OFsxRSwr": [ + "Ratrig/RatRig Generic PVA" ], - "OFt5bvKK": [ - "Artillery/Artillery PETG Basic" + "OFsxlLdo": [ + "Qidi/Qidi Generic ASA" + ], + "OFt0JbR7": [ + "Snapmaker/Snapmaker J1 PLA Metal" + ], + "OFt3HtlG": [ + "Qidi/QIDI ABS-GF" ], "OFt6e0US": [ "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" ], - "OFt9AiN5": [ - "Flashforge/Polymaker CoPA" + "OFt7SngH": [ + "Snapmaker/Snapmaker J1 ASA" ], - "OFtEFtsz": [ - "Flashforge/Polymaker Generic CoPA" + "OFtFtiS0": [ + "Snapmaker/Polymaker PETG Galaxy" ], - "OFtJMczs": [ - "Flashforge/Flashforge TPU-64D" + "OFtGC1ye": [ + "Artillery/Artillery PA-CF" ], - "OFtL05hE": [ - "Sovol/Sovol Zero PLA Basic HS Nozzle" + "OFtKeKa9": [ + "OrcaArena/Arena PLA Tough" + ], + "OFtOPlK6": [ + "OrcaArena/Arena PAHT-CF" ], "OFtOoWIj": [], + "OFtP1rqJ": [ + "FLSun/FLSun Generic PVA" + ], "OFtRn8X8": [ "OrcaFilamentLibrary/FDplast SBS" ], - "OFtXBjvb": [ - "Artillery/Artillery PLA Tough" - ], - "OFtcKVgP": [], - "OFtcTs1o": [ - "Ratrig/RatRig BigNozzle ABS" + "OFtTHNTj": [ + "Flashforge/Flashforge Generic PLA" ], + "OFtTYl9Q": [], "OFtefokm": [ "OrcaFilamentLibrary/FilAr PLA-mate Blanco" ], - "OFtemzzw": [ - "Sovol/Sovol SV06 ACE ABS" - ], - "OFtet8ui": [ - "Snapmaker/Snapmaker TPU High-Flow" - ], - "OFti31HS": [ - "Cubicon/Cubicon PLAi21" - ], - "OFtmT4Nd": [ - "Artillery/Artillery ASA" - ], "OFtpXCCv": [ "BBL/COEX ASA PRIME", "OrcaFilamentLibrary/COEX ASA PRIME" ], + "OFtplX8o": [ + "Ratrig/RatRig BigNozzle ABS" + ], "OFtr8eZw": [ "OrcaFilamentLibrary/FDplast PLA" ], + "OFtsVp4v": [ + "SecKit/SecKit Generic PA-CF" + ], "OFtudokz": [ "OrcaFilamentLibrary/Eolas Prints PLA Premium" ], - "OFtwA91m": [ - "Sovol/Sovol Zero PC" + "OFtybfNX": [ + "Snapmaker/Snapmaker PLA Metal" + ], + "OFu08yGN": [ + "Volumic/Volumic PETG Ultra carbone" + ], + "OFu0fjPJ": [ + "LH/LHS PC CF" ], "OFu1evlr": [ + "Creality/Generic PCTG", "OrcaFilamentLibrary/Generic PCTG" ], - "OFuPC4S8": [ - "Elegoo/Elegoo PLA-CF" + "OFu79SUH": [ + "Qidi/Qidi Generic PLA" ], - "OFuPN3iW": [ - "FlyingBear/Other PETG" + "OFuFqYyG": [ + "Flashforge/Flashforge PAHT-CF" ], - "OFuTFxVP": [ - "Qidi/Overture ABS" + "OFuGRMNV": [ + "Flashforge/Flashforge PA-CF" + ], + "OFuJ49uH": [ + "Qidi/QIDI PETG Basic" + ], + "OFuO0cAP": [ + "OrcaArena/Arena PETG-CF" + ], + "OFuSwKgm": [ + "Tiertime/Tiertime Generic PLA" + ], + "OFuUJyRx": [ + "FLSun/FLSun T1 PLA Silk" ], "OFuUuIhR": [ + "Elegoo/Elegoo PETG-CF", "OrcaFilamentLibrary/Elegoo PETG-CF" ], + "OFuV79ru": [ + "Flashforge/Flashforge PA66-CF" + ], "OFuWCQXN": [ "BBL/COEX ABS PRIME", "OrcaFilamentLibrary/COEX ABS PRIME" ], - "OFuXkYly": [ - "Elegoo/Elegoo PLA Glow" - ], - "OFuYvNS3": [ - "Afinia/Afinia Value ABS" + "OFuehn62": [ + "OrcaArena/Arena PLA Marble" ], "OFufTAK9": [ "OrcaFilamentLibrary/FilAr PLA-mate Negro" ], - "OFuidAEg": [ - "Qidi/Bambu ABS" + "OFughwKn": [ + "Qidi/QIDI PLA Matte Basic" ], - "OFuq9tqb": [ - "InfiMech/InfiMech PLA Basic" + "OFujZSdh": [ + "Creality/Hyper PETG" + ], + "OFulOdT2": [ + "Flashforge/Generic TPU 85A" + ], + "OFupq0tY": [ + "Blocks/Blocks Generic PLA-CF" ], "OFurdQxc": [ "OrcaFilamentLibrary/FilAr PETG Magenta" ], - "OFuswXlp": [ - "Flashforge/Generic TPU 85A" + "OFusbWjj": [ + "Creality/Hyper PETG-CF" ], - "OFuyJhLF": [ - "Flashforge/Flashforge PETG Basic" + "OFuxH0Uz": [ + "Volumic/Volumic FLEX93 Ultra" ], - "OFv2NHLC": [ - "Qidi/QIDI ABS-GF25" + "OFv4VZCd": [ + "Qidi/Qidi Generic ABS" ], - "OFv8SRZh": [ - "Prusa/Prusa Generic PLA-CF" + "OFvDbkFq": [ + "Prusa/Prusament PC Blend" ], - "OFvGSn0l": [ - "Creality/Creality Generic PETG-CF" + "OFvGc67v": [ + "Prusa/Prusa Generic ABS" ], "OFvKUnLh": [ "OrcaFilamentLibrary/Bambu TPU 95A HF" ], - "OFvN3117": [ - "Qidi/QIDI PLA Matte Basic" - ], - "OFvOhSjO": [ - "FlyingBear/Other TPU" + "OFvLppPU": [ + "Creality/CR-Nylon" ], "OFvPPMxL": [ "OrcaFilamentLibrary/FilAr PLA Verde FilAr" ], + "OFvPomQf": [ + "Tiertime/Tiertime Generic PPS" + ], "OFvTVZc3": [ "BBL/COEX PETG", "OrcaFilamentLibrary/COEX PETG" ], + "OFvVxvzZ": [ + "Flashforge/Flashforge PLA Metal" + ], "OFvVy7yo": [ "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" ], - "OFvYfHPB": [ - "Anycubic/Anycubic PLA Matte" - ], - "OFvaXhYD": [ - "InfiMech/InfiMech PETG" + "OFvdZ2bx": [ + "Qidi/QIDI WOOD Rapido" ], "OFvgE0Zh": [ + "Elegoo/Elegoo PLA", "OrcaFilamentLibrary/Elegoo PLA" ], - "OFviQ9lH": [ - "Flashforge/Flashforge Generic TPU" - ], "OFvrXuV7": [ "OrcaFilamentLibrary/PolyLite ASA" ], - "OFvsS7Fb": [ - "Flashforge/Generic TPU-64D" + "OFvxIS9g": [ + "Snapmaker/Fiberon PA12-CF10" ], - "OFvw0owy": [ - "Afinia/Afinia Value PLA" - ], - "OFvxvkAd": [ - "Artillery/Artillery PLA-CF" + "OFvyB0Bz": [ + "Snapmaker/PolyLite PLA Galaxy" ], "OFvzvwCu": [ "OrcaFilamentLibrary/Eolas Prints PLA High Speed" ], - "OFw05rkF": [ - "InfiMech/Other PETG" - ], - "OFw0qp7w": [ - "Artillery/Artillery PET" - ], - "OFw1S8lL": [ - "Artillery/Artillery ABS" - ], - "OFwHPTvy": [ - "Qidi/Qidi Generic PLA+" - ], "OFwJ0qu2": [], + "OFwLBAGf": [ + "Qidi/HATCHBOX ABS" + ], + "OFwMFLAm": [ + "Artillery/Artillery Generic ABS" + ], "OFwPrlCM": [ "OrcaFilamentLibrary/Bambu PETG Translucent" ], "OFwRJ4g0": [ "OrcaFilamentLibrary/NIT PLA" ], + "OFwVVKEV": [ + "FlyingBear/Other TPU", + "InfiMech/Other TPU" + ], "OFwaYjL6": [ "OrcaFilamentLibrary/Fiberon PA6-GF" ], - "OFwf0oWp": [ - "Flashforge/Flashforge PLA Luminous" + "OFwhLMs4": [ + "Snapmaker/Snapmaker PLA SnapSpeed" + ], + "OFwpkvqf": [ + "OrcaArena/OrcaArena Generic PETG-CF" ], "OFwu7IAG": [ "BBL/COEX PCTG PRIME", "OrcaFilamentLibrary/COEX PCTG PRIME" ], - "OFwyqcGn": [ - "Elegoo/Elegoo PLA Matte" + "OFwxpmHM": [ + "Flashforge/Polymaker Generic CoPA" + ], + "OFwyt1xt": [ + "Eryone/Eryone ASA-CF" + ], + "OFx0ZzFV": [ + "OrcaArena/OrcaArena Generic PLA-CF" ], "OFx8Lmsd": [ "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" @@ -5164,371 +4874,148 @@ "OFxA1p01": [ "OrcaFilamentLibrary/Overture PLA Pro" ], - "OFxLeRyT": [ - "Prusa/Prusa Generic PVA HF" + "OFxDHUX8": [ + "SeeMeCNC/SeeMeCNC PETG" + ], + "OFxJRuVF": [ + "Anycubic/Anycubic PC-GF" + ], + "OFxMGIPt": [ + "Flashforge/Flashforge PPS" ], "OFxOHhZw": [ + "Elegoo/Elegoo ABS", "OrcaFilamentLibrary/Elegoo ABS" ], + "OFxTMg1d": [ + "FlyingBear/FlyingBear Generic PC" + ], "OFxUwUeW": [ + "Flashforge/SUNLU PLA Marble", "OrcaFilamentLibrary/SUNLU PLA Marble" ], - "OFxVzzn4": [ - "Chuanying/Chuanying Generic PLA-CF10" + "OFxYB4Sw": [ + "Snapmaker/Snapmaker J1 PETG-CF" ], - "OFxfCy9m": [ - "Volumic/Volumic PCTG Ultra (Performance)" + "OFxe4rXr": [ + "Snapmaker/PolyTerra PLA Marble" ], - "OFxjFYxE": [ - "Elegoo/Elegoo PETG HF" + "OFxg7n2G": [ + "Ratrig/RatRig Generic PETG" ], - "OFxlch4V": [ - "CoLiDo/CoLiDo PLA Silk" + "OFxvKuYW": [ + "Tiertime/Tiertime Generic PHA" ], - "OFxodd2u": [ - "DeltaMaker/DeltaMaker Brand PLA" + "OFy02QHU": [ + "Snapmaker/PolyLite PLA Translucent" ], - "OFxxa5yn": [ - "Snapmaker/Snapmaker Dual ABS Benchy" + "OFy14TRA": [ + "Snapmaker/Snapmaker J1 ABS" ], - "OFy7oQ1g": [ - "Blocks/Blocks Generic ASA-CF" + "OFy3sW6j": [ + "WonderMaker/WonderMaker ASA" ], - "OFyD1Zo8": [ + "OFy48TOp": [ + "Flashforge/Generic TPU-95A" + ], + "OFy4ajVZ": [ + "Qidi/Qidi Generic PLA Silk" + ], + "OFy8tYJE": [ + "Cubicon/Cubicon ABS-A100" + ], + "OFyCToOV": [ + "Sovol/Sovol SV08 TPU" + ], + "OFyFRojy": [ + "Ratrig/RatRig Generic ABS" + ], + "OFyFyLIp": [ + "SeeMeCNC/SeeMeCNC TPU" + ], + "OFyHgT60": [ + "OrcaArena/Arena PLA Sparkle" + ], + "OFyK5Lt9": [ + "Artillery/Artillery Generic PETG" + ], + "OFyLWVF3": [ + "Creality/Generic PETG-GF" + ], + "OFyPG8v2": [ + "Snapmaker/Snapmaker Dual PLA Eco" + ], + "OFyQwdaM": [ + "Volumic/Volumic ABS Ultra (Performance)" + ], + "OFyRCIMh": [ + "FlyingBear/Other PC", "InfiMech/Other PC" ], + "OFyUJI3q": [ + "Volumic/Volumic ABS Ultra" + ], "OFybzvQN": [ "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" ], - "OFyoW5W2": [ - "Flashforge/Flashforge PLA Color Change" + "OFyeSq8A": [ + "Prusa/Prusa Generic ABS HF" ], - "OFypQeKR": [ - "Elegoo/Generic PC-CF" + "OFyhjiNs": [ + "Snapmaker/Snapmaker PVA" + ], + "OFyj3m13": [ + "Snapmaker/Snapmaker Dual PLA Silk" + ], + "OFymnal9": [ + "Sovol/Sovol Zero PETG HS Nozzle" + ], + "OFyoBZdm": [ + "LH/LHS PLA" + ], + "OFyreocX": [ + "Tiertime/Tiertime PVA" + ], + "OFyrnlUn": [ + "Snapmaker/Snapmaker J1 TPU" ], "OFysxCep": [ "OrcaFilamentLibrary/FilAr PETG Coral" ], - "OFyt23xJ": [ - "FLSun/FLSun T1 PLA High Speed" - ], - "OFyxAbO4": [ - "Flashforge/Flashforge TPU-95A" - ], "OFyxayW4": [ "BBL/AliZ PLA", "OrcaFilamentLibrary/AliZ PLA" ], - "OFzFbFcl": [ - "Elegoo/Elegoo PC-FR" + "OFyySVby": [ + "SecKit/SecKit Generic PVA" ], - "OFzQQeCi": [ - "Chuanying/Chuanying Generic HIPS" + "OFz3q5Xz": [ + "CONSTRUCT3D/C1 Generic PETG" ], - "OFzb2BLs": [ - "Ratrig/RatRig Generic PCTG" + "OFzAWsca": [ + "Qidi/Qidi TPU 95A-HF" ], - "OFziUL2X": [ - "Ginger Additive/Ginger Generic PLA" + "OFzB4uOs": [ + "Sovol/Sovol Zero PLA Basic HS Nozzle" + ], + "OFzS7zt4": [ + "Anycubic/Anycubic PA" + ], + "OFzXURfo": [ + "FlyingBear/FlyingBear Generic PETG" + ], + "OFzY7N3Z": [ + "Artillery/Artillery PLA" ], "OFzrUUxc": [], + "OFztQ7rO": [ + "LH/LHS ABS" + ], "OFzyIxba": [ "OrcaFilamentLibrary/Bambu PVA" ], - "OGFC99": [], - "OGFG99": [], - "OGFL96": [ - "Flashforge/Generic PLA Silk", - "Sovol/Generic PLA Silk" - ], - "OGFN99": [], - "OGFSNL08": [ - "Sovol/SUNLU PETG" - ], - "P1001": [ - "Creality/Panchroma PLA Satin" - ], - "P1002": [ - "Creality/PolySonic PLA Pro" - ], - "P1003": [ - "Creality/Panchroma PLA Matte" - ], - "P1004": [ - "Creality/PolySonic PLA" - ], - "P510cfa0": [ - "Cubicon/Cubicon PLA" - ], - "P510cfa1": [ - "Cubicon/Cubicon PLA+" - ], - "P510cfa2": [ - "Cubicon/Cubicon PLAi21" - ], - "P510cfb0": [ - "Cubicon/Cubicon ABS" - ], - "P510cfb1": [ - "Cubicon/Cubicon ABS-A100" - ], - "P510cfb2": [ - "Cubicon/Cubicon ABSk" - ], - "P510cfc0": [ - "Cubicon/Cubicon PETG" - ], - "P510cfd0": [ - "Cubicon/Cubicon PA-CF" - ], - "P510eff9": [ - "Ginger Additive/Ginger Generic PETG" - ], - "Pfcf9c4c": [ - "Artillery/Artillery PLA" - ], - "Prusa Generic ABS @CORE One": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One 0.6": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One 0.8": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One HF 0.4": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One HF 0.5": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One HF 0.6": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ABS @CORE One HF 0.8": [ - "Prusa/Prusa Generic ABS" - ], - "Prusa Generic ASA @CORE One": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One 0.6": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One 0.8": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One HF 0.4": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One HF 0.5": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One HF 0.6": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic ASA @CORE One HF 0.8": [ - "Prusa/Prusa Generic ASA" - ], - "Prusa Generic PETG @CORE One": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One 0.6": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One 0.8": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One HF 0.4": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One HF 0.5": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One HF 0.6": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PETG @CORE One HF 0.8": [ - "Prusa/Prusa Generic PETG" - ], - "Prusa Generic PLA @CORE One": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One 0.6": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One 0.8": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One HF 0.4": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One HF 0.5": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One HF 0.6": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA @CORE One HF 0.8": [ - "Prusa/Prusa Generic PLA" - ], - "Prusa Generic PLA Silk @CORE One": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Prusa Generic PLA Silk @CORE One 0.6": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Prusa Generic PLA Silk @CORE One 0.8": [ - "Prusa/Prusa Generic PLA Silk" - ], - "Prusa Generic TPU @CORE One": [ - "Prusa/Prusa Generic TPU" - ], - "Prusa Generic TPU @CORE One 0.6": [ - "Prusa/Prusa Generic TPU" - ], - "Prusa Generic TPU @CORE One 0.8": [ - "Prusa/Prusa Generic TPU" - ], - "Prusament ASA @CORE One": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One 0.6": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One 0.8": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One HF 0.4": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One HF 0.5": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One HF 0.6": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @CORE One HF 0.8": [ - "Prusa/Prusament ASA" - ], - "Prusament ASA @MK4S": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S 0.6": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S 0.8": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S HF0.4": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S HF0.5": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S HF0.6": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament ASA @MK4S HF0.8": [ - "Prusa/Prusa Generic ASA" - ], - "Prusament PA-CF @CORE One": [ - "Prusa/Prusament PA-CF" - ], - "Prusament PA-CF @CORE One 0.6": [ - "Prusa/Prusament PA-CF" - ], - "Prusament PA-CF @CORE One 0.8": [ - "Prusa/Prusament PA-CF" - ], - "Prusament PC Blend @CORE One": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One 0.6": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One 0.8": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One HF 0.4": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One HF 0.5": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One HF 0.6": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC Blend @CORE One HF 0.8": [ - "Prusa/Prusament PC Blend" - ], - "Prusament PC-CF @CORE One": [ - "Prusa/Prusament PC-CF" - ], - "Prusament PC-CF @CORE One 0.6": [ - "Prusa/Prusament PC-CF" - ], - "Prusament PC-CF @CORE One 0.8": [ - "Prusa/Prusament PC-CF" - ], - "Prusament PETG @CORE One": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One 0.6": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One 0.8": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One HF 0.4": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One HF 0.5": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One HF 0.6": [ - "Prusa/Prusament PETG" - ], - "Prusament PETG @CORE One HF 0.8": [ - "Prusa/Prusament PETG" - ], - "Prusament PLA @CORE One": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One 0.6": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One 0.8": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One HF 0.4": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One HF 0.5": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One HF 0.6": [ - "Prusa/Prusament PLA" - ], - "Prusament PLA @CORE One HF 0.8": [ - "Prusa/Prusament PLA" - ], - "Prusament PVB @CORE One": [ - "Prusa/Prusament PVB" - ], - "Prusament PVB @CORE One 0.6": [ - "Prusa/Prusament PVB" - ], - "Prusament PVB @CORE One 0.8": [ - "Prusa/Prusament PVB" - ], - "Prusament rPLA @CORE One": [ - "Prusa/Prusament rPLA" - ], - "Prusament rPLA @CORE One 0.6": [ - "Prusa/Prusament rPLA" - ], - "Prusament rPLA @CORE One 0.8": [ - "Prusa/Prusament rPLA" + "OFzzmK2Q": [ + "FLSun/FLSun S1 ABS" ], "QD_0_1_1": [ "Qidi/QIDI PLA Rapido" @@ -6009,24 +5496,6 @@ ], "QD_3_1_8": [ "Qidi/QIDI PLA Matte Basic" - ], - "SMCFB001": [ - "SeeMeCNC/SeeMeCNC ABS" - ], - "SMCFG001": [ - "SeeMeCNC/SeeMeCNC PETG" - ], - "SMCFG002": [ - "SeeMeCNC/SeeMeCNC PETG-CF" - ], - "SMCFL001": [ - "SeeMeCNC/SeeMeCNC PLA" - ], - "SMCFN001": [ - "SeeMeCNC/SeeMeCNC PA-CF" - ], - "SMCFU001": [ - "SeeMeCNC/SeeMeCNC TPU" ] }, "instantiated_with_id": [ @@ -6846,12 +6315,6 @@ "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLAi21 @base", - "Custom/Generic PC @MyToolChanger", - "Custom/Generic PETG @MyToolChanger", - "Custom/Generic PLA @MyToolChanger", - "Custom/Generic PLA-CF @MyToolChanger", - "Custom/Generic PVA @MyToolChanger", - "Custom/Generic TPU @MyToolChanger", "DeltaMaker/DeltaMaker Brand PLA", "DeltaMaker/DeltaMaker Generic PETG", "DeltaMaker/DeltaMaker Generic PLA", @@ -6861,10 +6324,12 @@ "Dremel/Dremel Generic PLA @3D40 all", "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Generic ABS-CF @Elegoo Centauri", + "Elegoo/Generic ASA-CF @Elegoo Centauri", "Elegoo/Generic PA6-CF @Elegoo", "Elegoo/Generic PC-CF @Elegoo", "Elegoo/Generic PET-CF @Elegoo Centauri", "Elegoo/Generic PETG PRO @Elegoo", + "Elegoo/Generic PETG-CF @Elegoo Centauri", "Elegoo/Generic PLA Matte @Elegoo", "Eryone/Eryone ABS", "Eryone/Eryone ABS-CF", @@ -7652,6 +7117,7 @@ "Prusa/Prusa Generic ABS HF @MK3.5", "Prusa/Prusa Generic ABS HF @MK3.5 0.6", "Prusa/Prusa Generic ABS HF @MK3.5 0.8", + "Prusa/Prusa Generic ASA", "Prusa/Prusa Generic ASA @CORE One", "Prusa/Prusa Generic ASA @CORE One 0.6", "Prusa/Prusa Generic ASA @CORE One 0.8", @@ -7659,10 +7125,15 @@ "Prusa/Prusa Generic ASA @CORE One HF 0.5", "Prusa/Prusa Generic ASA @CORE One HF 0.6", "Prusa/Prusa Generic ASA @CORE One HF 0.8", + "Prusa/Prusa Generic ASA @MINIIS", + "Prusa/Prusa Generic ASA @MINIIS 0.25", + "Prusa/Prusa Generic ASA @MINIIS 0.6", + "Prusa/Prusa Generic ASA @MINIIS 0.8", "Prusa/Prusa Generic ASA @MK3.5", "Prusa/Prusa Generic ASA @MK3.5 0.25", "Prusa/Prusa Generic ASA @MK3.5 0.6", "Prusa/Prusa Generic ASA @MK3.5 0.8", + "Prusa/Prusa Generic ASA @MK4", "Prusa/Prusa Generic ASA @MK4S", "Prusa/Prusa Generic ASA @MK4S 0.6", "Prusa/Prusa Generic ASA @MK4S 0.8", @@ -7673,6 +7144,8 @@ "Prusa/Prusa Generic ASA HF @MK3.5", "Prusa/Prusa Generic ASA HF @MK3.5 0.6", "Prusa/Prusa Generic ASA HF @MK3.5 0.8", + "Prusa/Prusa Generic FLEX @XL", + "Prusa/Prusa Generic FLEX @XL 5T", "Prusa/Prusa Generic PA @MK3.5", "Prusa/Prusa Generic PA @MK3.5 0.25", "Prusa/Prusa Generic PA @MK3.5 0.6", @@ -7681,6 +7154,11 @@ "Prusa/Prusa Generic PA-CF @MK3.5 0.25", "Prusa/Prusa Generic PA-CF @MK3.5 0.6", "Prusa/Prusa Generic PA-CF @MK3.5 0.8", + "Prusa/Prusa Generic PC", + "Prusa/Prusa Generic PC @MINIIS", + "Prusa/Prusa Generic PC @MINIIS 0.25", + "Prusa/Prusa Generic PC @MINIIS 0.6", + "Prusa/Prusa Generic PC @MINIIS 0.8", "Prusa/Prusa Generic PC @MK3.5", "Prusa/Prusa Generic PC @MK3.5 0.25", "Prusa/Prusa Generic PC @MK3.5 0.6", @@ -7762,9 +7240,13 @@ "Prusa/Prusament ASA @CORE One HF 0.5", "Prusa/Prusament ASA @CORE One HF 0.6", "Prusa/Prusament ASA @CORE One HF 0.8", + "Prusa/Prusament ASA @XL", + "Prusa/Prusament ASA @XL 5T", "Prusa/Prusament PA-CF @CORE One", "Prusa/Prusament PA-CF @CORE One 0.6", "Prusa/Prusament PA-CF @CORE One 0.8", + "Prusa/Prusament PA-CF @XL", + "Prusa/Prusament PA-CF @XL 5T", "Prusa/Prusament PC Blend @CORE One", "Prusa/Prusament PC Blend @CORE One 0.6", "Prusa/Prusament PC Blend @CORE One 0.8", @@ -7772,9 +7254,13 @@ "Prusa/Prusament PC Blend @CORE One HF 0.5", "Prusa/Prusament PC Blend @CORE One HF 0.6", "Prusa/Prusament PC Blend @CORE One HF 0.8", + "Prusa/Prusament PC Blend @XL", + "Prusa/Prusament PC Blend @XL 5T", "Prusa/Prusament PC-CF @CORE One", "Prusa/Prusament PC-CF @CORE One 0.6", "Prusa/Prusament PC-CF @CORE One 0.8", + "Prusa/Prusament PC-CF @XL", + "Prusa/Prusament PC-CF @XL 5T", "Prusa/Prusament PETG @CORE One", "Prusa/Prusament PETG @CORE One 0.6", "Prusa/Prusament PETG @CORE One 0.8", @@ -7792,6 +7278,8 @@ "Prusa/Prusament PVB @CORE One", "Prusa/Prusament PVB @CORE One 0.6", "Prusa/Prusament PVB @CORE One 0.8", + "Prusa/Prusament PVB @XL", + "Prusa/Prusament PVB @XL 5T", "Prusa/Prusament rPLA @CORE One", "Prusa/Prusament rPLA @CORE One 0.6", "Prusa/Prusament rPLA @CORE One 0.8", @@ -8387,6 +7875,9 @@ "SeeMeCNC/SeeMeCNC PETG-CF", "SeeMeCNC/SeeMeCNC PLA", "SeeMeCNC/SeeMeCNC TPU", + "Snapmaker/PolyLite Dual PLA @0.2 nozzle", + "Snapmaker/PolyLite J1 PLA", + "Snapmaker/PolyLite J1 PLA @0.2 nozzle", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", @@ -8595,4601 +8086,34 @@ "re3D/re3D rPP @0.8 nozzle", "re3D/re3D rPP @1.75 nozzle" ], - "triple_exceptions": [ - "Anycubic/Anycubic ABS", - "Anycubic/Anycubic ASA", - "Anycubic/Anycubic PETG", - "Anycubic/Anycubic PLA", - "Anycubic/Anycubic PLA High Speed", - "Anycubic/Anycubic PLA Silk", - "Anycubic/Anycubic PLA+", - "Anycubic/Anycubic TPU", - "Anycubic/Generic PETG", - "Creality/Creality Generic ABS", - "Creality/Creality Generic ASA", - "Creality/Creality Generic PETG", - "Creality/Creality Generic TPU", - "Creality/Generic PETG-GF", - "Flashforge/Flashforge ABS", - "Flashforge/Flashforge ASA-CF", - "Flashforge/Flashforge PET-CF", - "Flashforge/Flashforge PETG", - "Flashforge/Flashforge PPA-CF", - "Flashforge/Flashforge PPS-CF", - "Flashforge/FusRock Generic PAHT-CF", - "Flashforge/FusRock Generic PET-CF", - "Flashforge/FusRock Generic S-Multi", - "Flashforge/FusRock Generic S-PAHT", - "Prusa/Prusa Generic ASA", - "Prusa/Prusa Generic TPU", - "Prusa/Prusa Generic TPU HF", - "Prusa/Prusament PETG", - "Prusa/Prusament PLA", - "Prusa/Prusament rPLA", - "Snapmaker/PolyLite PLA", - "re3D/re3D Greengate rPETG" - ], + "triple_exceptions": [], "triples": { - "00001": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "00002": [ - [ - "Generic", - "PLA", - "Generic PLA-Silk" - ] - ], - "00003": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "00004": [ + "OF016CJw": [ [ "Generic", "ABS", - "Generic ABS" + "Sovol SV08 ABS" ] ], - "00005": [ - [ - "Generic", - "TPU", - "Generic TPU" - ] - ], - "00006": [ - [ - "Generic", - "PLA-CF", - "Generic PLA-CF" - ] - ], - "00007": [ - [ - "Generic", - "ASA", - "Generic ASA" - ] - ], - "00008": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "00009": [ - [ - "Generic", - "PA-CF", - "Generic PA-CF" - ] - ], - "00010": [ - [ - "Generic", - "BVOH", - "Generic BVOH" - ] - ], - "00011": [ - [ - "Generic", - "PVA", - "Generic PVA" - ] - ], - "00012": [ - [ - "Generic", - "HIPS", - "Generic HIPS" - ] - ], - "00013": [ - [ - "Generic", - "PET-CF", - "Generic PET-CF" - ] - ], - "00014": [ - [ - "Generic", - "PETG-CF", - "Generic PETG-CF" - ] - ], - "00015": [ - [ - "Generic", - "PA6-CF", - "Generic PA6-CF" - ] - ], - "00016": [ - [ - "Generic", - "PA-CF", - "Generic PAHT-CF" - ] - ], - "00017": [ - [ - "Generic", - "PPS", - "Generic PPS" - ] - ], - "00018": [ - [ - "Generic", - "PPS-CF", - "Generic PPS-CF" - ] - ], - "00019": [ - [ - "Generic", - "PP", - "Generic PP" - ] - ], - "00020": [ - [ - "Generic", - "PET", - "Generic PET" - ] - ], - "00021": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "00022": [ - [ - "Generic", - "PA-CF", - "Generic PA612-CF" - ] - ], - "00023": [ - [ - "Generic", - "PA", - "Generic Support for PA" - ] - ], - "00024": [ - [ - "Generic", - "PLA", - "Generic Support for PLA" - ] - ], - "00025": [ - [ - "Generic", - "PA-CF", - "Generic PA12-CF" - ] - ], - "00026": [ - [ - "Generic", - "TPU", - "Generic TPU 64D" - ] - ], - "00027": [ - [ - "Creality", - "PETG-GF", - "Generic PETG-GF" - ], - [ - "Generic", - "PETG-GF", - "Generic PETG-GF" - ] - ], - "00031": [ - [ - "Generic", - "PP-CF", - "Generic PP-CF" - ] - ], - "00032": [ - [ - "Generic", - "PCTG", - "Generic PCTG" - ] - ], - "00033": [ - [ - "Generic", - "ASA-CF", - "Generic ASA-CF" - ] - ], - "00034": [ - [ - "Generic", - "PA-GF", - "Generic PA6-GF" - ] - ], - "00035": [ - [ - "eSUN", - "PLA", - "eSUN PLA-LW" - ] - ], - "01001": [ - [ - "Creality", - "PLA", - "Creality Hyper PLA" - ], - [ - "Creality", - "PLA", - "Hyper PLA" - ] - ], - "01002": [ - [ - "Creality", - "PLA", - "Hyper L-W PLA" - ] - ], - "01003": [ - [ - "Creality", - "PLA", - "Hyper Luminous" - ] - ], - "01004": [ - [ - "Creality", - "PLA", - "Hyper Stardust" - ] - ], - "01601": [ + "OF02UAVh": [ [ "Creality", "PLA", "Soleyin Ultra PLA" ] ], - "02001": [ - [ - "Creality", - "PLA-CF", - "Creality Hyper PLA-CF" - ], - [ - "Creality", - "PLA-CF", - "Hyper PLA-CF" - ] - ], - "03001": [ - [ - "Creality", - "ABS", - "Creality Hyper ABS" - ], - [ - "Creality", - "ABS", - "Hyper ABS" - ] - ], - "04001": [ - [ - "Creality", - "PLA", - "CR-PLA" - ], - [ - "Generic", - "PLA", - "Creality Generic PLA" - ] - ], - "05001": [ - [ - "Creality", - "PLA", - "CR-Silk" - ], - [ - "Creality", - "PLA", - "Creality Silk PLA" - ] - ], - "06001": [ - [ - "Creality", - "PETG", - "CR-PETG" - ], - [ - "Creality", - "PETG", - "Creality Generic PETG" - ] - ], - "06002": [ - [ - "Creality", - "PETG", - "Hyper PETG" - ] - ], - "06003": [ - [ - "Creality", - "PETG-CF", - "Hyper PETG-CF" - ] - ], - "06004": [ - [ - "Creality", - "PETG-GF", - "Hyper PETG-GF" - ] - ], - "06005": [ - [ - "Creality", - "PETG", - "Soleyin Basic PETG" - ] - ], - "07001": [ - [ - "Creality", - "ABS", - "CR-ABS" - ], - [ - "Creality", - "ABS", - "Creality Generic ABS" - ] - ], - "07002": [ - [ - "Creality", - "PC", - "Hyper PC" - ] - ], - "08001": [ - [ - "Creality", - "PLA", - "Ender-PLA" - ] - ], - "09001": [ - [ - "Creality", - "PLA", - "EN-PLA+" - ] - ], - "09002": [ - [ - "Creality", - "PLA", - "ENDER FAST PLA" - ] - ], - "10001": [ - [ - "Creality", - "TPU", - "Creality Generic TPU" - ], - [ - "Creality", - "TPU", - "HP-TPU" - ] - ], - "1009481135": [ - [ - "Snapmaker", - "PET", - "Snapmaker J1 PET" - ] - ], - "1042511226": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker Dual PETG-CF" - ] - ], - "10425112260": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker PETG-CF" - ] - ], - "11001": [ - [ - "Creality", - "PA", - "CR-Nylon" - ], - [ - "Creality", - "PA", - "Creality Generic PA" - ] - ], - "1172603684": [ - [ - "Snapmaker", - "PETG", - "Snapmaker J1 PETG" - ] - ], - "1181363872": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Silk" - ] - ], - "11813638720": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Silk" - ] - ], - "1192769348": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Matte" - ] - ], - "12002": [ - [ - "Creality", - "PA-CF", - "Hyper PPA-CF" - ] - ], - "12003": [ - [ - "Creality", - "PA-CF", - "Hyper PAHT-CF" - ] - ], - "12004": [ - [ - "Creality", - "PA-CF", - "Hyper PA612-CF" - ] - ], - "12005": [ - [ - "Creality", - "PA-CF", - "Hyper PA6-CF" - ] - ], - "1207881278": [ - [ - "Snapmaker", - "Breakaway Support", - "Snapmaker Dual Breakaway" - ] - ], - "1210173120": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker J1 PA-CF" - ] - ], - "1223824394": [ - [ - "Snapmaker", - "ABS", - "Snapmaker J1 ABS" - ] - ], - "1247172706": [ - [ - "Snapmaker", - "ASA", - "Snapmaker Dual ASA" - ] - ], - "12471727060": [ - [ - "Snapmaker", - "ASA", - "Snapmaker ASA" - ] - ], - "13001": [ - [ - "Creality", - "PLA-CF", - "CR-PLA Carbon" - ] - ], - "1344609062": [ - [ - "Snapmaker", - "PVA", - "Snapmaker PVA" - ] - ], - "1355502217": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker PETG-CF" - ] - ], - "1393866034": [ - [ - "Snapmaker", - "PLA", - "PolyLite PLA" - ] - ], - "14001": [ - [ - "Creality", - "PLA", - "CR-PLA Matte" - ] - ], - "1417031127": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA" - ] - ], - "14170311270": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA" - ] - ], - "141703112701": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA SnapSpeed" - ] - ], - "1417031127011": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Lite" - ] - ], - "144877656": [ - [ - "Snapmaker", - "ASA", - "Snapmaker J1 ASA" - ] - ], - "1480063856": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU" - ] - ], - "15001": [ - [ - "Creality", - "PLA", - "CR-PLA Fluo" - ] - ], - "1528786603": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Silk" - ] - ], - "16001": [ - [ - "Creality", - "TPU", - "CR-TPU" - ] - ], - "1655727393": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Silk" - ] - ], - "168223792": [ - [ - "Snapmaker", - "ABS", - "Snapmaker Dual ABS" - ] - ], - "1682237920": [ - [ - "Snapmaker", - "ABS", - "Snapmaker ABS" - ] - ], - "1695556157": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Eco" - ] - ], - "17001": [ - [ - "Creality", - "PLA", - "CR-Wood" - ] - ], - "1702147325": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker Dual PLA-CF" - ] - ], - "17021473250": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker PLA-CF" - ] - ], - "18001": [ - [ - "Creality", - "PLA", - "HP Ultra PLA" - ] - ], - "1895495477": [ - [ - "Snapmaker", - "PETG", - "Snapmaker PETG" - ] - ], - "19001": [ - [ - "Creality", - "ASA", - "Creality Generic ASA" - ], - [ - "Creality", - "ASA", - "HP-ASA" - ] - ], - "200803790": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Eco" - ] - ], - "2008037900": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Eco" - ] - ], - "2029994346": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Metal" - ] - ], - "20299943460": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Metal" - ] - ], - "2128577941": [ - [ - "Snapmaker", - "PET", - "Snapmaker Dual PET" - ] - ], - "21285779410": [ - [ - "Snapmaker", - "PET", - "Snapmaker PET" - ] - ], - "2209001062": [ - [ - "Snapmaker", - "PETG", - "Snapmaker Dual PETG" - ] - ], - "22090010620": [ - [ - "Snapmaker", - "PETG", - "Snapmaker PETG" - ] - ], - "2549587591": [ - [ - "Snapmaker", - "PET", - "Snapmaker PET" - ] - ], - "2742961008": [ - [ - "Snapmaker", - "ASA", - "Snapmaker ASA" - ] - ], - "29001": [ - [ - "Creality", - "PLA", - "Hyper Marble" - ] - ], - "2971656290": [ - [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPU" - ] - ], - "29716562900": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU" - ] - ], - "297165629001": [ - [ - "Generic", - "TPU", - "Snapmaker TPU 95A" - ] - ], - "3104636980": [ - [ - "Snapmaker", - "PVA", - "Snapmaker Dual PVA" - ] - ], - "31046369800": [ - [ - "Snapmaker", - "PVA", - "Snapmaker PVA" - ] - ], - "3177068229": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA" - ] - ], - "3383257822": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Eco" - ] - ], - "3492897526": [ - [ - "Snapmaker", - "Breakaway Support", - "Snapmaker J1 Breakaway" - ] - ], - "3493177425": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker Dual PA-CF" - ] - ], - "34931774250": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker PA-CF" - ] - ], - "3503790988": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Matte" - ] - ], - "377675245": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA" - ] - ], - "3806593857": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker J1 PLA-CF" - ] - ], - "3811508002": [ - [ - "Snapmaker", - "ABS", - "Snapmaker ABS" - ] - ], - "3864371306": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker PLA-CF" - ] - ], - "4012961186": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Metal" - ] - ], - "4092268632": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPU" - ] - ], - "4227461134": [ - [ - "Snapmaker", - "PVA", - "Snapmaker J1 PVA" - ] - ], - "4235401834": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker J1 PETG-CF" - ] - ], - "581236806": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker PA-CF" - ] - ], - "BSFI001": [ - [ - "Generic", - "PLA", - "Blocks Generic PLA" - ] - ], - "BSFI002": [ - [ - "Generic", - "PETG", - "Blocks Generic PETG" - ] - ], - "BSFI003": [ - [ - "Generic", - "TPU", - "Blocks Generic TPU" - ] - ], - "BSFI004": [ - [ - "Generic", - "ABS", - "Blocks Generic ABS" - ] - ], - "BSFI005": [ - [ - "Generic", - "ASA", - "Blocks Generic ASA" - ] - ], - "BSFI006": [ - [ - "Generic", - "PA", - "Blocks Generic PA" - ] - ], - "BSFI007": [ - [ - "Generic", - "PA-CF", - "Blocks Generic PA-CF" - ] - ], - "BSFI008": [ - [ - "Generic", - "PC", - "Blocks Generic PC" - ] - ], - "BSFI009": [ - [ - "Generic", - "PVA", - "Blocks Generic PVA" - ] - ], - "BSFI010": [ - [ - "Generic", - "PLA-CF", - "Blocks Generic PLA-CF" - ] - ], - "DFL99": [ - [ - "Volumic", - "PLA", - "Désactivé" - ] - ], - "E1001": [ - [ - "eSUN", - "PLA", - "eSUN PLA+" - ] - ], - "E1002": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Silk" - ] - ], - "E1003": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Matte" - ] - ], - "E1004": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Lite" - ] - ], - "E1005": [ - [ - "eSUN", - "PLA-CF", - "eSUN PLA-CF" - ] - ], - "E1006": [ - [ - "eSUN", - "PLA", - "eSUN PLA-HS" - ] - ], - "E2001": [ - [ - "eSUN", - "PETG", - "eSUN PETG" - ] - ], - "E2002": [ - [ - "eSUN", - "PETG", - "eSUN PETG+HS" - ] - ], - "E2003": [ - [ - "eSUN", - "PETG", - "eSUN PETG-Basic" - ] - ], - "E3001": [ - [ - "eSUN", - "ABS", - "eSUN ABS+" - ] - ], - "E4001": [ - [ - "eSUN", - "ASA", - "eSUN ASA+" - ] - ], - "E8001": [ - [ - "eSUN", - "PET", - "eSUN PET-Basic" - ] - ], - "EABSB00": [ - [ - "Elegoo", - "ABS", - "Elegoo ABS" - ] - ], - "EASAB00": [ - [ - "Elegoo", - "ASA", - "Elegoo ASA" - ] - ], - "EFL33": [ - [ - "Eryone", - "PP-CF", - "Eryone PP-CF" - ] - ], - "EFL40": [ - [ - "Eryone", - "PLA-CF", - "Eryone PLA-CF" - ] - ], - "EFL43": [ - [ - "Eryone", - "PETG-CF", - "Eryone PETG-CF" - ] - ], - "EFL71": [ - [ - "Eryone", - "PA", - "Eryone PA" - ] - ], - "EFL72": [ - [ - "Eryone", - "PA-CF", - "Eryone PA-CF" - ] - ], - "EFL73": [ - [ - "Eryone", - "PA-GF", - "Eryone PA-GF" - ] - ], - "EFL81": [ - [ - "Eryone", - "ABS-CF", - "Eryone ABS-CF" - ] - ], - "EFL82": [ - [ - "Eryone", - "ASA-CF", - "Eryone ASA-CF" - ] - ], - "EFL90": [ - [ - "Eryone", - "PLA", - "Eryone PLA" - ] - ], - "EFL91": [ - [ - "Eryone", - "ABS", - "Eryone ABS" - ] - ], - "EFL92": [ - [ - "Eryone", - "ASA", - "Eryone ASA" - ] - ], - "EFL93": [ - [ - "Eryone", - "PETG", - "Eryone PETG" - ] - ], - "EFL941": [ - [ - "Eryone", - "PLA Silk", - "Eryone Silk PLA" - ] - ], - "EFL95": [ - [ - "Eryone", - "TPU", - "Eryone TPU" - ] - ], - "EPAHTB00": [ - [ - "Elegoo", - "PA", - "Elegoo PAHT" - ] - ], - "EPCB00": [ - [ - "Elegoo", - "PC", - "Elegoo PC" - ] - ], - "EPETGB00": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG" - ] - ], - "EPLAB00": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA" - ] - ], - "ETPUB00": [ - [ - "Elegoo", - "TPU", - "Elegoo TPU" - ] - ], - "FFF01": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA" - ] - ], - "FFF02": [ - [ - "Flashforge", - "ABS", - "Flashforge ABS" - ] - ], - "FFF03": [ - [ - "Flashforge", - "PETG", - "Flashforge PETG" - ], - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "FFG01": [ - [ - "Generic", - "PLA", - "Flashforge Generic PLA" - ] - ], - "GABSB00": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "GASAB00": [ - [ - "Generic", - "ASA", - "Generic ASA" - ] - ], - "GFA00": [ - [ - "Afinia", - "PLA", - "Afinia PLA" - ], - [ - "Afinia", - "PLA", - "Afinia Value PLA" - ], - [ - "Orca Arena", - "PLA", - "Arena PLA Basic" - ], - [ - "Tiertime", - "PLA", - "Tiertime PLA" - ], - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Basic" - ] - ], - "GFA00_01": [ - [ - "Afinia", - "PLA", - "Afinia PLA" - ], - [ - "Tiertime", - "PLA", - "Tiertime PLA" - ] - ], - "GFA01": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Matte" - ], - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Matte" - ] - ], - "GFA02": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Metal" - ], - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Metal" - ] - ], - "GFA03": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Impact" - ] - ], - "GFA05": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA Silk" - ], - [ - "Orca Arena", - "PLA", - "Arena PLA Silk" - ], - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Silk" - ] - ], - "GFA07": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Marble" - ], - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Marble" - ] - ], - "GFA08": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Sparkle" - ] - ], - "GFA09": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Tough" - ] - ], - "GFA16": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Wood" - ] - ], - "GFA50": [ - [ - "Orca Arena", - "PLA-CF", - "Arena PLA-CF" - ], - [ - "Tiertime", - "PLA-CF", - "Tiertime PLA-CF" - ] - ], - "GFA50_01": [ - [ - "Tiertime", - "PLA-CF", - "Tiertime PLA-CF" - ] - ], - "GFA99": [ - [ - "Anycubic", - "ASA", - "Anycubic ASA" - ], - [ - "CoLiDo", - "PLA", - "CoLiDo Generic PLA" - ], - [ - "CoLiDo", - "PLA", - "CoLiDo PLA+" - ], - [ - "Generic", - "ASA", - "Anycubic ASA" - ] - ], - "GFASA": [ - [ - "Anycubic", - "ASA", - "Anycubic ASA" - ], - [ - "Generic", - "ASA", - "Anycubic ASA" - ] - ], - "GFB00": [ - [ - "Afinia", - "ABS", - "Afinia ABS" - ], - [ - "Afinia", - "ABS", - "Afinia ABS+" - ], - [ - "Afinia", - "ABS", - "Afinia Value ABS" - ], - [ - "Orca Arena", - "ABS", - "Arena ABS" - ], - [ - "Tiertime", - "ABS", - "Tiertime ABS" - ], - [ - "WonderMaker", - "ABS", - "WonderMaker ABS" - ] - ], - "GFB00_01": [ - [ - "Afinia", - "ABS", - "Afinia ABS" - ], - [ - "Tiertime", - "ABS", - "Tiertime ABS" - ] - ], - "GFB01": [ - [ - "Tiertime", - "ASA", - "Tiertime ASA" - ], - [ - "WonderMaker", - "ASA", - "WonderMaker ASA" - ] - ], - "GFB01_01": [ - [ - "Tiertime", - "ASA", - "Tiertime ASA" - ] - ], - "GFB98": [ - [ - "Generic", - "ASA", - "Anker Generic ASA" - ], - [ - "Generic", - "ASA", - "Anycubic Generic ASA" - ], - [ - "Generic", - "ASA", - "Artillery Generic ASA" - ], - [ - "Generic", - "ASA", - "Creality Generic ASA" - ], - [ - "Generic", - "ASA", - "FLSun Generic ASA" - ], - [ - "Generic", - "ASA", - "FLSun S1 ASA" - ], - [ - "Generic", - "ASA", - "FLSun T1 ASA" - ], - [ - "Generic", - "ASA", - "OrcaArena Generic ASA" - ], - [ - "Generic", - "ASA", - "RatRig Generic ASA" - ], - [ - "Generic", - "ASA", - "SecKit Generic ASA" - ], - [ - "Generic", - "ASA", - "Tiertime Generic ASA" - ], - [ - "Generic", - "ASA", - "Vzbot Generic ASA" - ], - [ - "Generic", - "ASA", - "fdm_filament_asa" - ] - ], - "GFB98_01": [ - [ - "Generic", - "ASA", - "Tiertime Generic ASA" - ] - ], - "GFB98_2": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "GFB98_3": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "GFB98_4": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "GFB98_5": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ], - [ - "Generic", - "ASA", - "Prusa Generic ASA HF" - ] - ], - "GFB98_6": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA HF" - ] - ], - "GFB98_7": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA HF" - ] - ], - "GFB99": [ - [ - "CoLiDo", - "ABS", - "CoLiDo ABS" - ], - [ - "CoLiDo", - "ABS", - "CoLiDo Generic ABS" - ], - [ - "FlyingBear", - "ABS", - "FlyingBear Generic ABS" - ], - [ - "Generic", - "ABS", - "Anker Generic ABS" - ], - [ - "Generic", - "ABS", - "Anycubic Generic ABS" - ], - [ - "Generic", - "ABS", - "Artillery Generic ABS" - ], - [ - "Generic", - "ABS", - "Chuanying ABS" - ], - [ - "Generic", - "ABS", - "Chuanying Generic ABS" - ], - [ - "Generic", - "ABS", - "Comgrow Generic ABS" - ], - [ - "Generic", - "ABS", - "Creality Generic ABS" - ], - [ - "Generic", - "ABS", - "FLSun Generic ABS" - ], - [ - "Generic", - "ABS", - "FLSun S1 ABS" - ], - [ - "Generic", - "ABS", - "FLSun T1 ABS" - ], - [ - "Generic", - "ABS", - "Flashforge ABS" - ], - [ - "Generic", - "ABS", - "Flashforge Generic ABS" - ], - [ - "Generic", - "ABS", - "Generic ABS" - ], - [ - "Generic", - "ABS", - "Lulzbot 2.85mm ABS" - ], - [ - "Generic", - "ABS", - "OrcaArena Generic ABS" - ], - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ], - [ - "Generic", - "ABS", - "Qidi Generic ABS" - ], - [ - "Generic", - "ABS", - "RatRig Generic ABS" - ], - [ - "Generic", - "ABS", - "SecKit Generic ABS" - ], - [ - "Generic", - "ABS", - "Tiertime Generic ABS" - ], - [ - "Generic", - "ABS", - "Vzbot Generic ABS" - ], - [ - "Generic", - "TPU", - "DeltaMaker Generic TPU" - ], - [ - "InfiMech", - "ABS", - "InfiMech Generic ABS" - ], - [ - "Volumic", - "ABS", - "Volumic ABS Ultra" - ], - [ - "Volumic", - "ABS", - "Volumic ABS Ultra (Performance)" - ] - ], - "GFB99_01": [ - [ - "Generic", - "ABS", - "Tiertime Generic ABS" - ] - ], - "GFB99_2": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "GFB99_3": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "GFB99_4": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "GFB99_5": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ], - [ - "Generic", - "ABS", - "Prusa Generic ABS HF" - ] - ], - "GFB99_6": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS HF" - ] - ], - "GFB99_7": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS HF" - ] - ], - "GFC00": [ - [ - "Orca Arena", - "PC", - "Arena PC" - ], - [ - "Tiertime", - "PC", - "Tiertime PC" - ] - ], - "GFC00_01": [ - [ - "Tiertime", - "PC", - "Tiertime PC" - ] - ], - "GFC98": [ - [ - "Generic", - "PC-CF", - "fdm_filament_pccf" - ] - ], - "GFC99": [ - [ - "FlyingBear", - "PC", - "FlyingBear Generic PC" - ], - [ - "Generic", - "PC", - "Anker Generic PC" - ], - [ - "Generic", - "PC", - "Anycubic Generic PC" - ], - [ - "Generic", - "PC", - "Creality Generic PC" - ], - [ - "Generic", - "PC", - "FLSun Generic PC" - ], - [ - "Generic", - "PC", - "Generic PC" - ], - [ - "Generic", - "PC", - "OrcaArena Generic PC" - ], - [ - "Generic", - "PC", - "Qidi Generic PC" - ], - [ - "Generic", - "PC", - "RatRig Generic PC" - ], - [ - "Generic", - "PC", - "SecKit Generic PC" - ], - [ - "Generic", - "PC", - "Tiertime Generic PC" - ], - [ - "Generic", - "PC", - "Vzbot Generic PC" - ], - [ - "Generic", - "PC", - "fdm_filament_pc" - ], - [ - "InfiMech", - "PC", - "InfiMech Generic PC" - ], - [ - "Volumic", - "PC", - "Volumic PC" - ], - [ - "Volumic", - "PC", - "Volumic PC (Performance)" - ] - ], - "GFC99_01": [ - [ - "Generic", - "PC", - "Tiertime Generic PC" - ] - ], - "GFC99_1": [ - [ - "Generic", - "PC", - "Prusa Generic PC" - ] - ], - "GFC99_2": [ - [ - "Generic", - "PC", - "Prusa Generic PC" - ] - ], - "GFC99_3": [ - [ - "Generic", - "PC", - "Prusa Generic PC" - ] - ], - "GFC99_4": [ - [ - "Generic", - "PC", - "Prusa Generic PC" - ], - [ - "Generic", - "PC", - "Prusa Generic PC HF" - ] - ], - "GFC99_5": [ - [ - "Generic", - "PC", - "Prusa Generic PC HF" - ] - ], - "GFC99_6": [ - [ - "Generic", - "PC", - "Prusa Generic PC HF" - ] - ], - "GFG00": [ - [ - "Orca Arena", - "PETG", - "Arena PETG Basic" - ], - [ - "Tiertime", - "PETG", - "Tiertime PETG" - ], - [ - "WonderMaker", - "PETG", - "WonderMaker PETG Basic" - ] - ], - "GFG00_01": [ - [ - "Tiertime", - "PETG", - "Tiertime PETG" - ] - ], - "GFG01": [ - [ - "Generic", - "PETG", - "re3D Greengate rPETG" - ], - [ - "re3D", - "PETG", - "re3D Greengate rPETG" - ] - ], - "GFG02": [ - [ - "re3D", - "PP", - "re3D rPP" - ] - ], - "GFG03": [ - [ - "re3D", - "PETG", - "re3D PETG" - ] - ], - "GFG50": [ - [ - "Orca Arena", - "PETG-CF", - "Arena PETG-CF" - ] - ], - "GFG60": [ - [ - "Polymaker", - "PETG", - "PolyLite PETG" - ] - ], - "GFG97": [ - [ - "Generic", - "PCTG", - "Tiertime Generic PCTG" - ] - ], - "GFG97-01": [ - [ - "Generic", - "PCTG", - "Tiertime Generic PCTG" - ] - ], - "GFG98": [ - [ - "Generic", - "PETG-CF", - "Anker Generic PETG-CF" - ], - [ - "Generic", - "PETG-CF", - "Qidi Generic PETG-CF" - ], - [ - "Generic", - "PETG-CF", - "Tiertime Generic PETG-CF" - ], - [ - "Orca Arena", - "PETG-CF", - "OrcaArena Generic PETG-CF" - ], - [ - "Volumic", - "PETG", - "Volumic PETG Ultra carbone" - ], - [ - "Volumic", - "PETG", - "Volumic PETG Ultra carbone (Performance)" - ] - ], - "GFG98_01": [ - [ - "Generic", - "PETG-CF", - "Tiertime Generic PETG-CF" - ] - ], - "GFG99": [ - [ - "CoLiDo", - "PETG", - "CoLiDo Generic PETG" - ], - [ - "CoLiDo", - "PETG", - "CoLiDo PETG" - ], - [ - "FlyingBear", - "PETG", - "FlyingBear Generic PETG" - ], - [ - "FlyingBear", - "PETG Basic", - "FlyingBear PETG Basic" - ], - [ - "Generic", - "PEEK", - "MM Generic PEEK" - ], - [ - "Generic", - "PETG", - "Anker Generic PETG" - ], - [ - "Generic", - "PETG", - "Anycubic Generic PETG" - ], - [ - "Generic", - "PETG", - "Artillery Generic PETG" - ], - [ - "Generic", - "PETG", - "C1 Generic PETG" - ], - [ - "Generic", - "PETG", - "Chuanying Generic PETG" - ], - [ - "Generic", - "PETG", - "Chuanying PETG" - ], - [ - "Generic", - "PETG", - "Comgrow Generic PETG" - ], - [ - "Generic", - "PETG", - "Creality Generic PETG" - ], - [ - "Generic", - "PETG", - "DeltaMaker Generic PETG" - ], - [ - "Generic", - "PETG", - "FLSun Generic PETG" - ], - [ - "Generic", - "PETG", - "FLSun S1 PETG" - ], - [ - "Generic", - "PETG", - "FLSun T1 PETG" - ], - [ - "Generic", - "PETG", - "Flashforge Generic PETG" - ], - [ - "Generic", - "PETG", - "Flashforge PETG" - ], - [ - "Generic", - "PETG", - "Generic PETG" - ], - [ - "Generic", - "PETG", - "Lulzbot 2.85mm PETG" - ], - [ - "Generic", - "PETG", - "OrcaArena Generic PETG" - ], - [ - "Generic", - "PETG", - "Qidi Generic PETG" - ], - [ - "Generic", - "PETG", - "RatRig Generic PETG" - ], - [ - "Generic", - "PETG", - "SecKit Generic PETG" - ], - [ - "Generic", - "PETG", - "Tiertime Generic PETG" - ], - [ - "Generic", - "PETG", - "Vzbot Generic PETG" - ], - [ - "Generic", - "PETG", - "Yumi Generic PETG" - ], - [ - "InfiMech", - "PETG", - "InfiMech Generic PETG" - ], - [ - "Volumic", - "PETG", - "Volumic PETG Ultra" - ], - [ - "Volumic", - "PETG", - "Volumic PETG Ultra (Performance)" - ], - [ - "Yumi", - "PETG", - "YUMI PETG" - ], - [ - "re3D", - "PC", - "re3D PC" - ] - ], - "GFG99_01": [ - [ - "Generic", - "PETG", - "Tiertime Generic PETG" - ] - ], - "GFG99_2": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "GFG99_3": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "GFG99_4": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "GFG99_5": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ], - [ - "Generic", - "PETG", - "Prusa Generic PETG HF" - ] - ], - "GFG99_6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG HF" - ] - ], - "GFG99_7": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG HF" - ] - ], - "GFL00": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA" - ] - ], - "GFL01": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA" - ] - ], - "GFL06": [ - [ - "Polymaker", - "PETG", - "Fiberon PETG-ESD" - ] - ], - "GFL100": [ - [ - "Generic", - "PLA", - "Generic PLA" - ], - [ - "Generic", - "PLA", - "TwoTrees Generic HS PLA" - ] - ], - "GFL106": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "GFL108": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "GFL200": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "GFL204": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "GFL206": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "GFL208": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "GFL300": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFL304": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFL306": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFL308": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFL400": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "GFL404": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "GFL406": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "GFL408": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "GFL500": [ - [ - "Generic", - "ABS", - "Generic ABS HT" - ] - ], - "GFL504": [ - [ - "Generic", - "ABS", - "Generic ABS HT" - ] - ], - "GFL506": [ - [ - "Generic", - "ABS", - "Generic ABS HT" - ] - ], - "GFL508": [ - [ - "Generic", - "ABS", - "Generic ABS HT" - ] - ], - "GFL56": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA12-CF10" - ] - ], - "GFL57": [ - [ - "Polymaker", - "PA6-CF", - "Fiberon PA6-CF20" - ] - ], - "GFL62": [ - [ - "Polymaker", - "PLA", - "PolyLite CosPLA" - ] - ], - "GFL63": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Galaxy" - ] - ], - "GFL64": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Glow" - ] - ], - "GFL65": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Luminous" - ] - ], - "GFL66": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Neon" - ] - ], - "GFL67": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Starlight" - ] - ], - "GFL68": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Translucent" - ] - ], - "GFL69": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA Marble" - ] - ], - "GFL70": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA+" - ] - ], - "GFL71": [ - [ - "Polymaker", - "ASA", - "Fiberon ASA-CF08" - ] - ], - "GFL72": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA612-ESD" - ] - ], - "GFL73": [ - [ - "Polymaker", - "ABS", - "Fiberon PPS-GF20" - ] - ], - "GFL74": [ - [ - "Polymaker", - "PETG", - "PolyLite PETG Translucent" - ] - ], - "GFL75": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Pro Metallic" - ] - ], - "GFL76": [ - [ - "Polymaker", - "PETG", - "Polymaker PETG" - ] - ], - "GFL77": [ - [ - "Polymaker", - "PETG", - "Polymaker PETG Galaxy" - ] - ], - "GFL78": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA" - ] - ], - "GFL79": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA Pro" - ] - ], - "GFL80": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA Pro Metallic" - ] - ], - "GFL94": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Slik" - ] - ], - "GFL95": [ - [ - "Generic", - "PLA", - "Anker Generic PLA+" - ], - [ - "Generic", - "PLA", - "Tiertime Generic PLA High Speed" - ] - ], - "GFL95_01": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA High Speed" - ] - ], - "GFL96": [ - [ - "Generic", - "PLA", - "Anker Generic PLA Silk" - ], - [ - "Generic", - "PLA", - "Tiertime Generic PLA Silk" - ] - ], - "GFL96_01": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA Silk" - ] - ], - "GFL97": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA SE" - ] - ], - "GFL98": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Glow" - ], - [ - "Generic", - "PLA-CF", - "Anker Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Anycubic Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Artillery Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Creality Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "FLSun Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "OrcaArena Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Qidi Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "RatRig Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "SecKit Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Tiertime Generic PLA-CF" - ], - [ - "Generic", - "PLA-CF", - "Vzbot Generic PLA-CF" - ] - ], - "GFL98_01": [ - [ - "Generic", - "PLA-CF", - "Tiertime Generic PLA-CF" - ] - ], - "GFL98_1": [ - [ - "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], - "GFL98_3": [ - [ - "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], - "GFL98_4": [ - [ - "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], - "GFL98_5": [ - [ - "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], - "GFL99": [ - [ - "Co Print", - "PLA", - "CoPrint Generic PLA" - ], - [ - "FlyingBear", - "PLA", - "FlyingBear Generic PLA" - ], - [ - "Generic", - "ASA", - "Flashforge ASA" - ], - [ - "Generic", - "PLA", - "Anker Generic PLA" - ], - [ - "Generic", - "PLA", - "Anycubic Generic PLA" - ], - [ - "Generic", - "PLA", - "Artillery Generic PLA" - ], - [ - "Generic", - "PLA", - "C1 Generic PLA" - ], - [ - "Generic", - "PLA", - "Chuanying Generic PLA" - ], - [ - "Generic", - "PLA", - "Comgrow Generic PLA" - ], - [ - "Generic", - "PLA", - "Comgrow T300 PLA" - ], - [ - "Generic", - "PLA", - "Creality Generic PLA" - ], - [ - "Generic", - "PLA", - "DeltaMaker Generic PLA" - ], - [ - "Generic", - "PLA", - "Dremel Generic PLA" - ], - [ - "Generic", - "PLA", - "FLSun Generic PLA" - ], - [ - "Generic", - "PLA", - "FLSun S1 PLA Generic" - ], - [ - "Generic", - "PLA", - "FLSun T1 PLA Generic" - ], - [ - "Generic", - "PLA", - "Flashforge PLA-SILK" - ], - [ - "Generic", - "PLA", - "Generic PLA" - ], - [ - "Generic", - "PLA", - "Generic PLA High Speed" - ], - [ - "Generic", - "PLA", - "Lulzbot 2.85mm PLA" - ], - [ - "Generic", - "PLA", - "OrcaArena Generic PLA" - ], - [ - "Generic", - "PLA", - "Peopoly Generic PLA" - ], - [ - "Generic", - "PLA", - "Phrozen PLA" - ], - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ], - [ - "Generic", - "PLA", - "Qidi Generic PLA" - ], - [ - "Generic", - "PLA", - "RatRig Generic PLA" - ], - [ - "Generic", - "PLA", - "SecKit Generic PLA" - ], - [ - "Generic", - "PLA", - "Sovol SV07 PLA" - ], - [ - "Generic", - "PLA", - "Tiertime Generic PLA" - ], - [ - "Generic", - "PLA", - "Vzbot Generic PLA" - ], - [ - "Generic", - "PLA", - "Yumi Generic PLA" - ], - [ - "InfiMech", - "PLA", - "InfiMech Generic PLA" - ], - [ - "Volumic", - "PLA", - "Volumic PLA Ultra" - ], - [ - "Volumic", - "PLA", - "Volumic PLA Ultra (Performance)" - ], - [ - "re3D", - "PLA", - "re3D PLA" - ] - ], - "GFL99_01": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA" - ] - ], - "GFL99_2": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "GFL99_3": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "GFL99_4": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "GFL99_5": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ], - [ - "Generic", - "PLA", - "Prusa Generic PLA HF" - ] - ], - "GFL99_6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA HF" - ] - ], - "GFL99_7": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA HF" - ] - ], - "GFLLK10PETG": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFLLK10PLA": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "GFLLK10PPETG": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFLLK10PPLA": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "GFN03": [ - [ - "Orca Arena", - "PA-CF", - "Arena PA-CF" - ] - ], - "GFN04": [ - [ - "Orca Arena", - "PA-CF", - "Arena PAHT-CF" - ] - ], - "GFN05": [ - [ - "Tiertime", - "PA6-CF", - "Tiertime PA6-CF" - ] - ], - "GFN05_01": [ - [ - "Tiertime", - "PA6-CF", - "Tiertime PA6-CF" - ] - ], - "GFN96": [ - [ - "Generic", - "PPA-GF", - "Tiertime Generic PPA-GF" - ] - ], - "GFN96_01": [ - [ - "Generic", - "PPA-GF", - "Tiertime Generic PPA-GF" - ] - ], - "GFN97": [ - [ - "Generic", - "PPA-CF", - "Tiertime Generic PPA-CF" - ] - ], - "GFN97_01": [ - [ - "Generic", - "PPA-CF", - "Tiertime Generic PPA-CF" - ] - ], - "GFN98": [ - [ - "FlyingBear", - "PA-CF", - "FlyingBear Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Anker Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Anycubic Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Creality Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "FLSun Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "OrcaArena Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Qidi Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "RatRig Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "SecKit Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Tiertime Generic PA-CF" - ], - [ - "Generic", - "PA-CF", - "Vzbot Generic PA-CF" - ], - [ - "Generic", - "PA11-CF", - "fdm_filament_pa11cf" - ], - [ - "InfiMech", - "PA-CF", - "InfiMech Generic PA-CF" - ] - ], - "GFN98_02": [ - [ - "Generic", - "PA-CF", - "Tiertime Generic PA-CF" - ] - ], - "GFN98_1": [ - [ - "Generic", - "PA-CF", - "Prusa Generic PA-CF" - ] - ], - "GFN98_2": [ - [ - "Generic", - "PA-CF", - "Prusa Generic PA-CF" - ] - ], - "GFN98_3": [ - [ - "Generic", - "PA-CF", - "Prusa Generic PA-CF" - ] - ], - "GFN98_4": [ - [ - "Generic", - "PA-CF", - "Prusa Generic PA-CF" - ] - ], - "GFN99": [ - [ - "Generic", - "PA", - "Anker Generic PA" - ], - [ - "Generic", - "PA", - "Anycubic Generic PA" - ], - [ - "Generic", - "PA", - "FLSun Generic PA" - ], - [ - "Generic", - "PA", - "OrcaArena Generic PA" - ], - [ - "Generic", - "PA", - "Prusa Generic PA" - ], - [ - "Generic", - "PA", - "Qidi Generic PA" - ], - [ - "Generic", - "PA", - "RatRig Generic PA" - ], - [ - "Generic", - "PA", - "SecKit Generic PA" - ], - [ - "Generic", - "PA", - "Tiertime Generic PA" - ], - [ - "Generic", - "PA", - "Vzbot Generic PA" - ], - [ - "Volumic", - "PA", - "Volumic NYLON Ultra" - ], - [ - "Volumic", - "PA", - "Volumic NYLON Ultra (Performance)" - ] - ], - "GFN99_01": [ - [ - "Generic", - "PA", - "Tiertime Generic PA" - ] - ], - "GFN99_1": [ - [ - "Generic", - "PA", - "Prusa Generic PA" - ] - ], - "GFN99_2": [ - [ - "Generic", - "PA", - "Prusa Generic PA" - ] - ], - "GFN99_3": [ - [ - "Generic", - "PA", - "Prusa Generic PA" - ] - ], - "GFN99_4": [ - [ - "Generic", - "PA", - "Prusa Generic PA" - ] - ], - "GFP95": [ - [ - "Generic", - "PP-GF", - "Tiertime Generic PP-GF" - ] - ], - "GFP95_01": [ - [ - "Generic", - "PP-GF", - "Tiertime Generic PP-GF" - ] - ], - "GFP96": [ - [ - "Generic", - "PP-CF", - "Tiertime Generic PP-CF" - ] - ], - "GFP96_01": [ - [ - "Generic", - "PP-CF", - "Tiertime Generic PP-CF" - ] - ], - "GFP97": [ - [ - "Generic", - "PP", - "Tiertime Generic PP" - ] - ], - "GFP97_01": [ - [ - "Generic", - "PP", - "Tiertime Generic PP" - ] - ], - "GFP98": [ - [ - "Generic", - "PE-CF", - "Tiertime Generic PE-CF" - ] - ], - "GFP98_01": [ - [ - "Generic", - "PE-CF", - "Tiertime Generic PE-CF" - ] - ], - "GFP99": [ - [ - "Generic", - "PE", - "Tiertime Generic PE" - ] - ], - "GFP99_01": [ - [ - "Generic", - "PE", - "Tiertime Generic PE" - ] - ], - "GFPA": [ - [ - "Anycubic", - "PA", - "Anycubic PA" - ] - ], - "GFPA6-CF": [ - [ - "Anycubic", - "PA6-CF", - "Anycubic PA6-CF" - ] - ], - "GFPAHT-CF": [ - [ - "Anycubic", - "PAHT-CF", - "Anycubic PAHT-CF" - ] - ], - "GFPC": [ - [ - "Anycubic", - "PC", - "Anycubic PC" - ] - ], - "GFPC-CF": [ - [ - "Anycubic", - "PC-CF", - "Anycubic PC-CF" - ] - ], - "GFPC-GF": [ - [ - "Anycubic", - "PC-GF", - "Anycubic PC-GF" - ] - ], - "GFPEBA": [ - [ - "Anycubic", - "PEBA", - "Anycubic PEBA" - ] - ], - "GFPET-CF": [ - [ - "Anycubic", - "PET-CF", - "Anycubic PET-CF" - ] - ], - "GFPETG": [ - [ - "Anycubic", - "PETG", - "Generic PETG" - ], - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GFPETG-1": [ - [ - "Generic", - "PETG", - "Peopoly Generic PETG" - ] - ], - "GFPETG-CF": [ - [ - "Anycubic", - "PETG-CF", - "Anycubic PETG-CF" - ] - ], - "GFPLA Glow": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Glow" - ] - ], - "GFPLA Translucent": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Translucent" - ] - ], - "GFPLA-CF": [ - [ - "Anycubic", - "PLA-CF", - "Anycubic PLA-CF" - ] - ], - "GFPM001": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA" - ] - ], - "GFPM002": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Matte" - ] - ], - "GFPM003": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Marble" - ] - ], - "GFPM004": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Silk" - ] - ], - "GFPM005": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Satin" - ] - ], - "GFPM006": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Translucent" - ] - ], - "GFPM007": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Galaxy" - ] - ], - "GFPM008": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Celestial" - ] - ], - "GFPM009": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Starlight" - ] - ], - "GFPM010": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Glow" - ] - ], - "GFPM011": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Luminous" - ] - ], - "GFPM012": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Metallic" - ] - ], - "GFPM013": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Neon" - ] - ], - "GFPM014": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA UV Shift" - ] - ], - "GFPM015": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Temp Shift" - ] - ], - "GFPM016": [ - [ - "Polymaker", - "PLA", - "Panchroma CoPE" - ] - ], - "GFPM017": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA" - ] - ], - "GFPM018": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA-GF" - ] - ], - "GFPM019": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Pro" - ] - ], - "GFPVA": [ - [ - "Anycubic", - "PVA", - "Anycubic PVA" - ] - ], - "GFR98": [ - [ - "Generic", - "PHA", - "Tiertime Generic PHA" - ] - ], - "GFR98_01": [ - [ - "Generic", - "PHA", - "Tiertime Generic PHA" - ] - ], - "GFR99": [ - [ - "Generic", - "EVA", - "Tiertime Generic EVA" - ] - ], - "GFR99_01": [ - [ - "Generic", - "EVA", - "Tiertime Generic EVA" - ] - ], - "GFRH01": [ - [ - "Generic", - "ABS", - "fdm_filament_abs" - ] - ], - "GFRH02": [ - [ - "Generic", - "ASA", - "fdm_filament_asa" - ] - ], - "GFRH03": [ - [ - "Generic", - "PETG", - "fdm_filament_petg" - ] - ], - "GFRH04": [ - [ - "Generic", - "PLA", - "fdm_filament_pla" - ] - ], - "GFRH05": [ - [ - "Generic", - "TPU", - "fdm_filament_tpu" - ] - ], - "GFRH06": [ - [ - "Generic", - "PC-CF", - "fdm_filament_pccf" - ] - ], - "GFS00": [ - [ - "Orca Arena", - "PLA", - "Arena Support W" - ] - ], - "GFS01": [ - [ - "Orca Arena", - "PA", - "Arena Support G" - ] - ], - "GFS04": [ - [ - "Tiertime", - "PVA", - "Tiertime PVA" - ], - [ - "WonderMaker", - "PVA", - "WonderMaker PVA" - ] - ], - "GFS04_01": [ - [ - "Tiertime", - "PVA", - "Tiertime PVA" - ] - ], - "GFS97": [ - [ - "Generic", - "BVOH", - "Tiertime Generic BVOH" - ] - ], - "GFS97_01": [ - [ - "Generic", - "BVOH", - "Tiertime Generic BVOH" - ] - ], - "GFS98": [ - [ - "Generic", - "HIPS", - "Tiertime Generic HIPS" - ], - [ - "Generic", - "PVB", - "fdm_filament_pvb" - ] - ], - "GFS98_01": [ - [ - "Generic", - "HIPS", - "Tiertime Generic HIPS" - ] - ], - "GFS99": [ - [ - "Generic", - "PVA", - "Anker Generic PVA" - ], - [ - "Generic", - "PVA", - "Anycubic Generic PVA" - ], - [ - "Generic", - "PVA", - "FLSun Generic PVA" - ], - [ - "Generic", - "PVA", - "Generic PVA" - ], - [ - "Generic", - "PVA", - "OrcaArena Generic PVA" - ], - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ], - [ - "Generic", - "PVA", - "Qidi Generic PVA" - ], - [ - "Generic", - "PVA", - "RatRig Generic PVA" - ], - [ - "Generic", - "PVA", - "SecKit Generic PVA" - ], - [ - "Generic", - "PVA", - "Tiertime Generic PVA" - ], - [ - "Generic", - "PVA", - "Vzbot Generic PVA" - ], - [ - "Volumic", - "PVA", - "Volumic PVA" - ], - [ - "Volumic", - "PVA", - "Volumic PVA-BVOH (Performance)" - ] - ], - "GFS99_01": [ - [ - "Generic", - "PVA", - "Tiertime Generic PVA" - ] - ], - "GFS99_1": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ] - ], - "GFS99_2": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ] - ], - "GFS99_3": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ] - ], - "GFS99_4": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ], - [ - "Generic", - "PVA", - "Prusa Generic PVA HF" - ] - ], - "GFS99_5": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA HF" - ] - ], - "GFS99_6": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA HF" - ] - ], - "GFSL99": [ - [ - "Generic", - "ABS", - "Peopoly Generic ABS" - ] - ], - "GFSNL02": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Matte" - ] - ], - "GFSNL03": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+" - ] - ], - "GFSNL04": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+ 2.0" - ] - ], - "GFSNL05": [ - [ - "SUNLU", - "PLA", - "SUNLU Silk PLA+" - ] - ], - "GFSNL06": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Marble" - ] - ], - "GFSNL07": [ - [ - "SUNLU", - "PLA", - "SUNLU Wood PLA" - ] - ], - "GFSNL08": [ - [ - "SUNLU", - "PETG", - "SUNLU PETG" - ] - ], - "GFT01": [ - [ - "Orca Arena", - "PET-CF", - "Arena PET-CF" - ], - [ - "Tiertime", - "PET-CF", - "Tiertime PET-CF" - ], - [ - "WonderMaker", - "PET-CF", - "WonderMaker PET-CF" - ] - ], - "GFT01_01": [ - [ - "Tiertime", - "PET-CF", - "Tiertime PET-CF" - ] - ], - "GFT02": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "GFT97": [ - [ - "Generic", - "PPS", - "Tiertime Generic PPS" - ] - ], - "GFT97_01": [ - [ - "Generic", - "PPS", - "Tiertime Generic PPS" - ] - ], - "GFT98": [ - [ - "Generic", - "PPS-CF", - "Tiertime Generic PPS-CF" - ] - ], - "GFT98_01": [ - [ - "Generic", - "PPS-CF", - "Tiertime Generic PPS-CF" - ] - ], - "GFTPU 95A": [ - [ - "Anycubic", - "TPU", - "Anycubic TPU 95A" - ] - ], - "GFTPU for ACE": [ + "OF0FfcAG": [ [ "Anycubic", "TPU", "Anycubic TPU for ACE" ] ], - "GFU01": [ - [ - "Afinia", - "TPU", - "Afinia TPU" - ], - [ - "Orca Arena", - "TPU", - "Arena TPU 95A" - ], - [ - "Tiertime", - "TPU", - "Tiertime TPU 95A" - ], - [ - "WonderMaker", - "TPU", - "WonderMaker TPU 95A" - ] - ], - "GFU01_01": [ - [ - "Afinia", - "TPU", - "Afinia TPU" - ], - [ - "Tiertime", - "TPU", - "Tiertime TPU 95A" - ] - ], - "GFU99": [ - [ - "CoLiDo", - "TPU", - "CoLiDo Generic TPU" - ], - [ - "FlyingBear", - "TPU", - "FlyingBear Generic TPU" - ], - [ - "FlyingBear", - "TPU", - "FlyingBear TPU Basic" - ], - [ - "Generic", - "FLEX", - "fdm_filament_flex" - ], - [ - "Generic", - "TPU", - "Anker Generic TPU" - ], - [ - "Generic", - "TPU", - "Anycubic Generic TPU" - ], - [ - "Generic", - "TPU", - "Artillery Generic TPU" - ], - [ - "Generic", - "TPU", - "Creality Generic TPU" - ], - [ - "Generic", - "TPU", - "FLSun Generic TPU" - ], - [ - "Generic", - "TPU", - "FLSun S1 TPU" - ], - [ - "Generic", - "TPU", - "FLSun T1 TPU" - ], - [ - "Generic", - "TPU", - "Generic TPU" - ], - [ - "Generic", - "TPU", - "OrcaArena Generic TPU" - ], - [ - "Generic", - "TPU", - "Prusa Generic TPU" - ], - [ - "Generic", - "TPU", - "Qidi Generic TPU" - ], - [ - "Generic", - "TPU", - "RatRig Generic TPU" - ], - [ - "Generic", - "TPU", - "SecKit Generic TPU" - ], - [ - "Generic", - "TPU", - "Tiertime Generic TPU" - ], - [ - "Generic", - "TPU", - "TwoTrees Generic 95A TPU" - ], - [ - "Generic", - "TPU", - "Vzbot Generic TPU" - ], - [ - "InfiMech", - "TPU", - "InfiMech Generic TPU" - ], - [ - "InfiMech", - "TPU", - "InfiMech TPU Basic" - ], - [ - "Volumic", - "TPU", - "Volumic FLEX93 Ultra" - ], - [ - "Volumic", - "TPU", - "Volumic FLEX93 Ultra (Performance)" - ], - [ - "Yumi", - "PLA", - "YUMI PLA Bowden" - ], - [ - "Yumi", - "PLA", - "YUMI PLA Direct Drive" - ] - ], - "GFU99_01": [ - [ - "Generic", - "TPU", - "Tiertime Generic TPU" - ] - ], - "GFU99_2": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "GFU99_3": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU HF" - ] - ], - "GPAB00": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "GPCB00": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "GPETB00": [ - [ - "Generic", - "PET", - "Generic PET" - ] - ], - "GPETGB00": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "GPLAB00": [ + "OF0GIkJm": [ [ "Generic", "PLA", - "Generic PLA" - ] - ], - "Generic ABS @E3NG v1.2S": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "Generic ABS @MK4S": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S 0.6": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S 0.8": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S HF0.4": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S HF0.5": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S HF0.6": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ABS @MK4S HF0.8": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Generic ASA @E3NG v1.2S": [ - [ - "Generic", - "ASA", - "Generic ASA" - ] - ], - "Generic FLEX @MK4S": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Generic FLEX @MK4S 0.6": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Generic FLEX @MK4S 0.8": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Generic PCCF @E3NG v1.2S": [ - [ - "Generic", - "PC-CF", - "Generic PCCF" - ] - ], - "Generic PETG @E3NG v1.2S": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "Generic PETG @MK4S": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S 0.6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S 0.8": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S HF0.4": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S HF0.5": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S HF0.6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PETG @MK4S HF0.8": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Generic PLA @E3NG v1.2S": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "Generic PLA @MK4S": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S 0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S 0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S HF0.4": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S HF0.5": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S HF0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA @MK4S HF0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Generic PLA Silk @MK4S": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Generic PLA Silk @MK4S 0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Generic PLA Silk @MK4S 0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Generic TPU @E3NG v1.2S": [ - [ - "Generic", - "TPU", - "Generic TPU" - ] - ], - "IQM1": [ - [ - "iQ Materials", - "PACF Pro", - "Fiberthree PACF Pro P1" - ] - ], - "IQM1011": [ - [ - "iQ Materials", - "VXL90 Xioneer", - "VXL90 TiQ2 P2" - ] - ], - "IQM2": [ - [ - "iQ Materials", - "ABS Material4Print Natur", - "Material4Print ABS Natur P1" - ] - ], - "IQM3": [ - [ - "iQ Materials", - "PETG Polymax", - "Polymaker PETG Polymax black P1" - ] - ], - "IQM7": [ - [ - "iQ Materials", - "PACF Pro", - "Fiberthree PACF Pro P2" - ] - ], - "LHF_abs": [ - [ - "LH Stinger", - "ASA", - "LHS ABS" - ] - ], - "LHF_asa": [ - [ - "LH Stinger", - "ASA", - "LHS ASA" - ] - ], - "LHF_ftpuf": [ - [ - "LH Stinger", - "TPU", - "LHS TPU Foamy 78A" - ] - ], - "LHF_pccf": [ - [ - "LH Stinger", - "PC", - "LHS PC CF" - ] - ], - "LHF_pctg": [ - [ - "LH Stinger", - "PCTG", - "LHS PCTG" - ] - ], - "LHF_petg": [ - [ - "LH Stinger", - "PETG", - "LHS PETG" - ] - ], - "LHF_pla": [ - [ - "LH Stinger", - "PLA", - "LHS PLA" - ] - ], - "LHF_ptpu_pl": [ - [ - "LH Stinger", - "TPU", - "LHS TPU" - ] - ], - "OF09vOcG": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Galaxy" - ] - ], - "OF0Ee2jQ": [ - [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPU High-Flow" + "Tiertime Generic PLA Silk" ] ], "OF0NgY1y": [ @@ -13199,25 +8123,11 @@ "COEX NYLEX PA6-CF" ] ], - "OF0SyJhk": [ + "OF0R5Wc7": [ [ - "FusRock", - "PA6-CF", - "Flashforge PA6-CF" - ] - ], - "OF0TODnN": [ - [ - "Generic", - "PET-CF", - "Generic PET-CF" - ] - ], - "OF0TjJ0G": [ - [ - "QIDI", - "ASA-AERO", - "Qidi ASA-Aero" + "Artillery", + "PLA Tough", + "Artillery PLA Tough" ] ], "OF0UJcb6": [ @@ -13227,18 +8137,11 @@ "PolyLite PETG" ] ], - "OF0UbONm": [ + "OF0VpkBM": [ [ - "Generic", - "S-PAHT", - "FusRock S-PAHT" - ] - ], - "OF0VEdLB": [ - [ - "Cubicon", + "Polymaker", "PETG", - "Cubicon PETG" + "PolyLite PETG Translucent" ] ], "OF0Vtzaw": [ @@ -13248,11 +8151,18 @@ "FilAr PETG Amarillo Radiante" ] ], - "OF0Y5MLd": [ + "OF0b7M1z": [ [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" + "SeeMeCNC", + "PA-CF", + "SeeMeCNC PA-CF" + ] + ], + "OF0c7mnL": [ + [ + "InfiMech", + "ABS", + "InfiMech ABS" ] ], "OF0gGRWk": [ @@ -13276,6 +8186,13 @@ "Panchroma PLA Luminous" ] ], + "OF0omtEb": [ + [ + "Polymaker", + "ASA", + "Fiberon ASA-CF08" + ] + ], "OF0pzFLc": [ [ "COEX 3D", @@ -13283,6 +8200,13 @@ "COEX PLA+Silk" ] ], + "OF0w7OpJ": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido 0.8 nozzle" + ] + ], "OF0wBGNx": [ [ "Bambu Lab", @@ -13290,25 +8214,39 @@ "Bambu ASA-CF" ] ], - "OF0wk0Pk": [ - [ - "Generic", - "PLA", - "Flashforge PLA Pro" - ] - ], - "OF0z1XpN": [ + "OF0wz84w": [ [ "QIDI", - "PLA", - "QIDI PLA Rapido Silk" + "ABS", + "QIDI ABS Rapido 0.6 nozzle" ] ], - "OF17cONC": [ + "OF0yFLkY": [ [ - "Polymaker", - "PLA", - "PolyTerra Dual PLA" + "Anycubic", + "ASA", + "Anycubic ASA" + ] + ], + "OF0zx94L": [ + [ + "Generic", + "PA", + "Vzbot Generic PA" + ] + ], + "OF112FvY": [ + [ + "Generic", + "PETG", + "Generic PETG Basic" + ] + ], + "OF1Id239": [ + [ + "Generic", + "PETG", + "Prusa Generic PETG" ] ], "OF1N1qMK": [ @@ -13318,6 +8256,13 @@ "Panchroma PLA UV Shift" ] ], + "OF1OZujR": [ + [ + "Generic", + "PVA", + "Flashforge Generic PVA" + ] + ], "OF1Pke8t": [ [ "Overture", @@ -13332,11 +8277,39 @@ "Generic PP" ] ], - "OF1Zypyy": [ + "OF1W7c76": [ [ "QIDI", - "PETG", - "QIDI PETG Tough" + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "OF1bQyX2": [ + [ + "Generic", + "PLA", + "Flashforge PLA Matte" + ] + ], + "OF1d7c3A": [ + [ + "Snapmaker", + "ASA", + "Snapmaker ASA" + ] + ], + "OF1daEUW": [ + [ + "Generic", + "PETG-CF", + "Anker Generic PETG-CF" + ] + ], + "OF1dpPrW": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA" ] ], "OF1hznGB": [ @@ -13346,11 +8319,25 @@ "Elegoo PLA PRO" ] ], - "OF22AxCm": [ + "OF1uR1t2": [ [ "Generic", "PETG", - "Polymaker PETG" + "Tiertime Generic PETG" + ] + ], + "OF223rZv": [ + [ + "Anycubic", + "ABS", + "Anycubic ABS" + ] + ], + "OF2EB9Iz": [ + [ + "Volumic", + "ASA", + "Volumic ASA Ultra" ] ], "OF2EK9F1": [ @@ -13367,25 +8354,11 @@ "SUNLU PETG" ] ], - "OF2HQqTC": [ + "OF2RjrWH": [ [ - "Cubicon", - "PLA", - "Cubicon PLA+" - ] - ], - "OF2Psxdc": [ - [ - "Co Print", - "TPU", - "CoPrint Generic TPU" - ] - ], - "OF2UFmOo": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA" + "Generic", + "PAHT-GF", + "FusRock Generic PAHT-GF" ] ], "OF2VFe4J": [ @@ -13402,6 +8375,27 @@ "FilAr PETG Azul Imperial" ] ], + "OF2bZtyg": [ + [ + "Generic", + "PLA-CF", + "Flashforge PLA-CF" + ] + ], + "OF2hfMcG": [ + [ + "Orca Arena", + "PLA-CF", + "Arena PLA-CF" + ] + ], + "OF2mgDsI": [ + [ + "Generic", + "PLA", + "Vzbot Generic PLA" + ] + ], "OF2pj5l5": [ [ "Overture", @@ -13409,13 +8403,6 @@ "Overture Super PLA+" ] ], - "OF2tvNYA": [ - [ - "Generic", - "PLA", - "Sovol Zero PLA Silk" - ] - ], "OF2xccEe": [ [ "DREMC", @@ -13430,32 +8417,53 @@ "Elegoo Rapid TPU 95A" ] ], - "OF38Hyk4": [ + "OF3F63OE": [ [ - "Generic", + "re3D", "PETG", - "Flashforge PETG Pro" + "re3D PETG" ] ], - "OF3XeEuV": [ + "OF3IKafc": [ [ "QIDI", - "PET-GF", - "QIDI PET-GF" + "PLA", + "QIDI PLA Rapido Matte" ] ], - "OF3YOOOs": [ + "OF3OMgrI": [ + [ + "Creality", + "PLA", + "CR-Silk" + ] + ], + "OF3P0BQA": [ [ "Generic", - "PETG-CF", - "Chuanying Generic PETG-CF10" + "ABS", + "Anker Generic ABS" ] ], - "OF3arl18": [ + "OF3WQaKK": [ [ - "Elegoo", + "Creality", "PETG", - "Elegoo Rapid PETG" + "CR-PETG" + ] + ], + "OF3dJf4E": [ + [ + "Volumic", + "PLA", + "Volumic PLA Ultra (Performance)" + ] + ], + "OF3fwO8b": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA Basic" ] ], "OF3kBrdA": [ @@ -13465,18 +8473,53 @@ "eSUN PETG" ] ], - "OF41QVDH": [ + "OF3msXEa": [ [ - "Generic", - "PLA", - "Flashforge Generic PLA-Silk" + "Snapmaker", + "PETG-CF", + "Snapmaker Dual PETG-CF" ] ], - "OF43idK2": [ + "OF3s929u": [ [ "Generic", + "PP", + "Tiertime Generic PP" + ] + ], + "OF3wxlw9": [ + [ + "CoLiDo", + "PETG", + "CoLiDo Generic PETG" + ] + ], + "OF3ydJTT": [ + [ + "InfiMech", "PLA", - "Creality Generic PLA Matte" + "InfiMech PLA Hyper" + ] + ], + "OF41jaTh": [ + [ + "Generic", + "TPU-90A", + "Flashforge TPU-90A" + ] + ], + "OF42ZDpN": [ + [ + "Generic", + "PAHT", + "FusRock PAHT" + ] + ], + "OF43Raws": [ + [ + "Polymaker", + "PLA", + "PolyTerra J1 PLA" ] ], "OF44VYzK": [ @@ -13486,11 +8529,18 @@ "FilAr PETG Azul Francia" ] ], - "OF48G7He": [ + "OF48L671": [ [ - "QIDI", - "PETG", - "QIDI PETG Tough 0.8 nozzle" + "Generic", + "ASA", + "RatRig Generic ASA" + ] + ], + "OF4APyxe": [ + [ + "Creality", + "PA-CF", + "Hyper PAHT-CF" ] ], "OF4KsW72": [ @@ -13500,11 +8550,18 @@ "FilAr PLA" ] ], - "OF4RKeng": [ + "OF4Mf5Gz": [ [ "Generic", - "ASA", - "Flashforge Generic ASA" + "PETG", + "Creality Generic PETG" + ] + ], + "OF4Nhggz": [ + [ + "Artillery", + "PLA Basic+", + "Artillery PLA Basic+" ] ], "OF4RvVuU": [ @@ -13514,32 +8571,88 @@ "Bambu PPS-CF" ] ], - "OF4gzzE4": [ + "OF4S3To3": [ [ "QIDI", - "PET-CF", - "QIDI PET-CF" + "PETG", + "QIDI PETG Rapido" ] ], - "OF4jILJA": [ + "OF4WB37S": [ [ - "FlyingBear", - "PC", - "FlyingBear PC" + "Snapmaker", + "PETG", + "Snapmaker PETG" ] ], - "OF4m9A5w": [ + "OF4XAUnp": [ [ "Generic", - "HIPS", - "Flashforge Generic HIPS" + "ASA", + "Vzbot Generic ASA" ] ], - "OF50NUZI": [ + "OF4f8vVp": [ [ - "FlyingBear", + "WonderMaker", + "PET-CF", + "WonderMaker PET-CF" + ] + ], + "OF4iWKrE": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "OF4nQ62r": [ + [ + "QIDI", "PLA", - "FlyingBear PLA Basic" + "QIDI PLA Basic" + ] + ], + "OF4oCRKe": [ + [ + "Generic", + "PETG", + "DeltaMaker Generic PETG" + ] + ], + "OF4ulo9Y": [ + [ + "WonderMaker", + "PVA", + "WonderMaker PVA" + ] + ], + "OF4xhTuK": [ + [ + "Generic", + "PA-CF", + "OrcaArena Generic PA-CF" + ] + ], + "OF4zzGwp": [ + [ + "Generic", + "PET-GF", + "FusRock Generic PET-GF" + ] + ], + "OF51XQar": [ + [ + "Generic", + "PLA", + "C1 Generic PLA" + ] + ], + "OF53eLVD": [ + [ + "Generic", + "ASA-CF", + "Generic ASA-CF" ] ], "OF54B0S0": [ @@ -13549,18 +8662,18 @@ "Bambu PPA-CF" ] ], - "OF57IbZT": [ + "OF54SvEe": [ [ - "Artillery", - "PLA Basic", - "Artillery PLA Basic" + "Prusa Polymers", + "PA11-CF", + "Prusament PA-CF" ] ], - "OF5Bmdtg": [ + "OF5BN24W": [ [ - "Generic", - "ABS", - "Sovol SV06 Plus ACE ABS" + "Flashforge", + "PPA-GF", + "Flashforge PPA-GF" ] ], "OF5CgdDq": [ @@ -13570,11 +8683,25 @@ "PolyLite PLA" ] ], - "OF5J2axC": [ + "OF5E5KNA": [ + [ + "Generic", + "PC", + "SecKit Generic PC" + ] + ], + "OF5NQFKI": [ [ "Generic", "PLA", - "Sovol Zero PLA Basic" + "Flashforge PLA Galaxy" + ] + ], + "OF5NqBfC": [ + [ + "Yumi", + "PETG", + "YUMI PETG" ] ], "OF5P4jgA": [ @@ -13584,32 +8711,46 @@ "FilAr PLA Dorado" ] ], - "OF5T1Y9R": [ + "OF5PtjTp": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Glow" + ] + ], + "OF5SJ3jz": [ + [ + "Flashforge", + "ABS", + "Flashforge ABS" + ] + ], + "OF5YVJXH": [ + [ + "Artillery", + "ASA", + "Artillery ASA" + ] + ], + "OF5Zk4e1": [ [ "Generic", "ABS", - "Flashforge ABS Basic" + "Anycubic Generic ABS" ] ], - "OF5UUaUM": [ + "OF5c6nq3": [ [ "Generic", - "PLA", - "Qidi Generic PLA High Speed" + "TPU-64D", + "Generic TPU-64D" ] ], - "OF5Ugv12": [ + "OF5lGPup": [ [ - "Other", - "PLA", - "Other PLA" - ] - ], - "OF5kwfZu": [ - [ - "FusRock", - "PA-CF", - "FusRock Generic NexPA-CF25" + "WonderMaker", + "PETG", + "WonderMaker PETG Basic" ] ], "OF5nlfKY": [ @@ -13619,6 +8760,20 @@ "FilAr PLA Oro" ] ], + "OF5oNRED": [ + [ + "Eryone", + "PP", + "Eryone PP" + ] + ], + "OF5oXk4M": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA Pro" + ] + ], "OF5rnhjh": [ [ "FilAr", @@ -13626,6 +8781,13 @@ "FilAr PETG" ] ], + "OF5umxxT": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Glow" + ] + ], "OF5vgi2G": [ [ "FilAr", @@ -13633,25 +8795,74 @@ "FilAr PLA-mate Azul" ] ], - "OF60Lmeq": [ + "OF5vzBhb": [ [ "Generic", "PLA", - "Flashforge PLA Matte" + "Chuanying Generic PLA" ] ], - "OF6EOy1A": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG" - ] - ], - "OF6FM5F7": [ + "OF5w29Kq": [ [ "Generic", - "PAHT", - "FusRock PAHT" + "PETG", + "Flashforge HS PETG" + ] + ], + "OF65InrS": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU" + ] + ], + "OF66KUAN": [ + [ + "Polymaker", + "PLA", + "PolySonic PLA" + ] + ], + "OF67EdL5": [ + [ + "Generic", + "ABS", + "Sovol SV06 ACE ABS" + ] + ], + "OF6ATsCF": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker Dual PLA-CF" + ] + ], + "OF6Fpw1E": [ + [ + "Generic", + "PETG", + "Comgrow Generic PETG" + ] + ], + "OF6H51Xx": [ + [ + "Polymaker", + "PETG", + "Polymaker PETG" + ] + ], + "OF6K467o": [ + [ + "InfiMech", + "PA-CF", + "InfiMech Generic PA-CF" + ] + ], + "OF6KELDx": [ + [ + "Co Print", + "PLA", + "CoPrint Generic PLA" ] ], "OF6Ll8lK": [ @@ -13661,39 +8872,116 @@ "Elegoo PETG Translucent" ] ], - "OF6Mxzsg": [ + "OF6MOPWx": [ [ "Generic", - "TPU", - "Generic TPU" + "PET", + "Generic PET" ] ], - "OF6SEkeJ": [ + "OF6O67Xk": [ [ "Generic", - "PET-CF", - "FusRock PET-CF" - ] - ], - "OF6XIeUW": [ - [ - "Generic", - "PLA-CF", - "Generic PLA-CF10" - ] - ], - "OF6XuVQE": [ - [ - "Cubicon", "ABS", - "Cubicon ABS" + "Lulzbot 2.85mm ABS" ] ], - "OF70DKqH": [ + "OF6TuVAg": [ [ "Snapmaker", + "PVA", + "Snapmaker J1 PVA" + ] + ], + "OF6VgL2U": [ + [ + "Generic", + "PLA", + "Phrozen PLA" + ] + ], + "OF6WddJ1": [ + [ + "Generic", + "S-PAHT", + "FusRock S-PAHT" + ] + ], + "OF6kj4jI": [ + [ + "iQ Materials", + "PACF Pro", + "Fiberthree PACF Pro P2" + ] + ], + "OF6ooviO": [ + [ + "Generic", "TPU", - "Snapmaker TPE" + "FLSun S1 TPU" + ] + ], + "OF6rMr3U": [ + [ + "Generic", + "PA", + "FusRock Generic S-Multi" + ] + ], + "OF6rdQ6M": [ + [ + "Generic", + "PPS-CF", + "Generic PPS-CF" + ] + ], + "OF6tKa1Z": [ + [ + "Generic", + "TPU", + "Anker Generic TPU" + ] + ], + "OF6ueBwd": [ + [ + "Generic", + "PLA", + "Flashforge PLA Pro" + ] + ], + "OF6vKLaU": [ + [ + "Generic", + "ASA", + "Artillery Generic ASA" + ] + ], + "OF6xLvYg": [ + [ + "InfiMech", + "PC", + "InfiMech Generic PC" + ] + ], + "OF6zAVFj": [ + [ + "Generic", + "TPU", + "Sovol Zero TPU" + ] + ], + "OF70zbGS": [ + [ + "Creality", + "PLA", + "Hyper L-W PLA" + ] + ], + "OF72YYTd": [ + [ + "Snapmaker", + "ABS", + "Snapmaker ABS" ] ], "OF74KeQR": [ @@ -13703,6 +8991,13 @@ "Generic PHA" ] ], + "OF79Fbo6": [ + [ + "Cubicon", + "PC", + "Cubicon PC" + ] + ], "OF7H3VJM": [ [ "eSUN", @@ -13710,25 +9005,39 @@ "eSUN PLA-Marble" ] ], - "OF7M9vy4": [ + "OF7OqDp3": [ + [ + "Tiertime", + "PLA-CF", + "Tiertime PLA-CF" + ] + ], + "OF7SliVn": [ + [ + "Polymaker", + "PLA", + "PolyLite J1 PLA" + ] + ], + "OF7VJMYM": [ [ "Generic", "PLA", - "RatRig BigNozzle PLA" + "Sovol Zero PLA Basic" ] ], - "OF7cv1Ub": [ + "OF7c9fln": [ [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" + "Anycubic", + "PLA", + "Anycubic PLA Translucent" ] ], - "OF7f0eUZ": [ + "OF7g2vYQ": [ [ - "Volumic", - "ASA", - "Volumic ASA Ultra" + "Co Print", + "TPU", + "CoPrint Generic TPU" ] ], "OF7lOgYF": [ @@ -13738,11 +9047,60 @@ "Generic PETG HF" ] ], - "OF7tgL9c": [ + "OF7lwj52": [ + [ + "CoLiDo", + "PETG", + "CoLiDo PETG" + ] + ], + "OF7nBAd3": [ + [ + "Eryone", + "PLA Silk", + "Eryone Silk PLA" + ] + ], + "OF7tt7DO": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA+" + ] + ], + "OF7uE5KB": [ [ "Generic", - "ASA", - "Chuanying Generic ASA" + "PA-CF", + "Anker Generic PA-CF" + ] + ], + "OF8CXrvm": [ + [ + "Generic", + "PA", + "SecKit Generic PA" + ] + ], + "OF8GnyFU": [ + [ + "Creality", + "ABS", + "Hyper ABS" + ] + ], + "OF8Hx3Pi": [ + [ + "Cubicon", + "PETG", + "Cubicon PETG" + ] + ], + "OF8Jl6NT": [ + [ + "Snapmaker", + "PET", + "Snapmaker J1 PET" ] ], "OF8Tlg47": [ @@ -13752,13 +9110,6 @@ "Generic PPA-GF" ] ], - "OF8WvPVL": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido 0.8 nozzle" - ] - ], "OF8aFWfQ": [ [ "FilAr", @@ -13766,6 +9117,34 @@ "FilAr PLA Amarillo Lirio" ] ], + "OF8bLDu7": [ + [ + "Generic", + "PA-CF", + "Blocks Generic PA-CF" + ] + ], + "OF8dCquh": [ + [ + "Snapmaker", + "ABS", + "Snapmaker J1 ABS Benchy" + ] + ], + "OF8eQjjt": [ + [ + "Generic", + "PETG", + "Lulzbot 2.85mm PETG" + ] + ], + "OF8eaY7j": [ + [ + "Generic", + "PA-CF", + "Generic PA612-CF" + ] + ], "OF8jh0Lk": [ [ "FilAr", @@ -13773,6 +9152,13 @@ "FilAr PLA-mate Marron" ] ], + "OF8kJys9": [ + [ + "Eryone", + "PETG", + "Eryone PETG" + ] + ], "OF8tPByX": [ [ "Generic", @@ -13780,6 +9166,27 @@ "Generic PPA-CF" ] ], + "OF8wE5l7": [ + [ + "Artillery", + "PETG Basic", + "Artillery PETG Basic" + ] + ], + "OF97ru74": [ + [ + "Generic", + "PC", + "Prusa Generic PC" + ] + ], + "OF995YXg": [ + [ + "Generic", + "TPU-64D", + "Flashforge TPU-64D" + ] + ], "OF99UMPq": [ [ "COEX 3D", @@ -13794,6 +9201,20 @@ "DREMC ABS+" ] ], + "OF9EHUKK": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "OF9HCdyQ": [ + [ + "Afinia", + "PLA", + "Afinia PLA" + ] + ], "OF9OlTWH": [ [ "Bambu Lab", @@ -13801,109 +9222,102 @@ "Bambu PLA Marble" ] ], - "OF9RZyBz": [ - [ - "Polymaker", - "PA", - "Polymaker Generic S1" - ] - ], - "OF9sr3Vn": [ - [ - "Generic", - "PLA", - "Flashforge PLA Sparkle" - ] - ], - "OF9tjFbj": [ - [ - "Peopoly", - "PLA", - "Peopoly Lancer PLA-C" - ] - ], - "OF9vnvM8": [ - [ - "Artillery", - "PETG-CF", - "Artillery PETG-CF" - ] - ], - "OFAEqlWa": [ - [ - "Generic", - "PLA", - "Flashforge Generic PLA-SILK" - ] - ], - "OFAGqTQG": [ - [ - "Volumic", - "PP", - "Volumic PP Ultra" - ] - ], - "OFAGrVjP": [ - [ - "Generic", - "PLA", - "Flashforge PLA Silk" - ] - ], - "OFAHagT9": [ - [ - "Elegoo", - "PLA", - "Elegoo Rapid PLA+" - ] - ], - "OFAK2XjZ": [ - [ - "Other", - "ABS", - "Other ABS" - ] - ], - "OFAUDGEQ": [ + "OF9PELEb": [ [ "QIDI", - "PLA", - "QIDI PLA Rapido Matte" + "UltraPA-CF25", + "QIDI UltraPA-CF25" ] ], - "OFAUX5fB": [ + "OF9UJOGF": [ + [ + "Anycubic", + "PETG-CF", + "Anycubic PETG-CF" + ] + ], + "OF9emAI9": [ + [ + "RatRig", + "PETG", + "RatRig PunkFil PETG" + ] + ], + "OF9fOPpd": [ + [ + "Generic", + "PC", + "Vzbot Generic PC" + ] + ], + "OF9z5LZ9": [ [ "Generic", "PETG", - "C1 Generic High Flow PETG" + "FLSun S1 PETG" ] ], - "OFAbsMuV": [ + "OFA026vt": [ [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPE" + "Orca Arena", + "PA-CF", + "Arena PA-CF" ] ], - "OFAdAYYk": [ + "OFAC7Wyu": [ + [ + "Artillery", + "PLA Matte", + "Artillery PLA Matte" + ] + ], + "OFACSw9O": [ + [ + "Generic", + "PLA", + "Creality Generic PLA" + ] + ], + "OFAIBCLJ": [ + [ + "Generic", + "ABS-CF", + "Generic ABS-CF" + ] + ], + "OFAIrQXu": [ + [ + "Creality", + "PLA", + "Creality Hyper PLA" + ] + ], + "OFANFm4x": [ [ "QIDI", - "PPS-CF", - "QIDI PPS-CF" + "PLA", + "QIDI PLA Rapido Metal" ] ], - "OFAdZFD1": [ + "OFAO9A7J": [ [ - "FusRock", - "PET-GF", - "FusRock Generic PET-GF" + "Generic", + "PLA", + "Sovol Zero PLA Silk HS Nozzle" ] ], - "OFAiqi5v": [ + "OFAZllAN": [ [ - "Elegoo", - "ASA", - "Elegoo ASA-CF" + "Artillery", + "PLA-CF", + "Artillery PLA-CF" + ] + ], + "OFAf9pJF": [ + [ + "Generic", + "TPU", + "Flashforge TPU 95A" ] ], "OFAnyRUI": [ @@ -13913,13 +9327,6 @@ "Bambu Support For PLA" ] ], - "OFAnyzjN": [ - [ - "HATCHBOX", - "PETG", - "HATCHBOX PETG" - ] - ], "OFAt6ec0": [ [ "FilAr", @@ -13927,11 +9334,25 @@ "FilAr PLA Marron Oxido" ] ], - "OFAtydxE": [ + "OFB09fpe": [ [ "Generic", - "S-Multi", - "FusRock S-Multi" + "TPU", + "RatRig Generic TPU" + ] + ], + "OFB0a3hT": [ + [ + "Generic", + "PLA-CF", + "Anker Generic PLA-CF" + ] + ], + "OFB1Tv1E": [ + [ + "Generic", + "PA", + "Anycubic Generic PA" ] ], "OFB5SmWk": [ @@ -13941,18 +9362,60 @@ "Valment PLA Galaxy" ] ], - "OFBGxHgT": [ + "OFB8wSps": [ [ - "FlyingBear", - "PLA", - "FlyingBear PLA" + "Generic", + "PET-CF", + "FusRock PET-CF" ] ], - "OFBRSZom": [ + "OFB9dx27": [ [ - "Volumic", - "PPS-CF", - "PPS Carbone (Performance)" + "Generic", + "ASA", + "Blocks Generic ASA" + ] + ], + "OFBBgw7B": [ + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Wood" + ] + ], + "OFBC32Wb": [ + [ + "Generic", + "PET", + "FusRock PET" + ] + ], + "OFBIadjM": [ + [ + "Generic", + "ASA", + "Chuanying Generic ASA" + ] + ], + "OFBJAdLw": [ + [ + "LH Stinger", + "PCTG", + "LHS PCTG" + ] + ], + "OFBK6zAi": [ + [ + "Generic", + "PETG-CF", + "Flashforge PETG-CF" + ] + ], + "OFBLktDy": [ + [ + "Creality", + "PETG", + "Soleyin Basic PETG" ] ], "OFBSW57R": [ @@ -13969,11 +9432,32 @@ "Elegoo PLA+" ] ], - "OFBvxnjM": [ + "OFBlFMVp": [ [ - "Elegoo", + "Snapmaker", "PETG", - "Elegoo PETG-GF" + "Snapmaker Dual PETG" + ] + ], + "OFBoSWxb": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Luminous" + ] + ], + "OFBpcB0a": [ + [ + "Generic", + "PLA", + "TwoTrees Generic HS PLA" + ] + ], + "OFBtlI8M": [ + [ + "FlyingBear", + "ABS", + "FlyingBear Generic ABS" ] ], "OFBw6eEG": [ @@ -13983,18 +9467,25 @@ "Overture Matte PLA" ] ], - "OFC2FSsV": [ + "OFC1PzXz": [ [ - "Overture", + "Creality", "PLA", - "Overture PLA" + "Hyper Luminous" ] ], - "OFC5CCeo": [ + "OFC20UMj": [ [ "Generic", - "PETG-CF", - "Flashforge Generic PETG-CF" + "TPU", + "Flashforge Generic TPU" + ] + ], + "OFC5f4Ay": [ + [ + "Generic", + "PC-CF", + "Generic PCCF" ] ], "OFC78WGQ": [ @@ -14011,6 +9502,13 @@ "Generic EVA" ] ], + "OFCEA7Nt": [ + [ + "Generic", + "ABS", + "Sovol SV06 Plus ACE ABS" + ] + ], "OFCIUsWh": [ [ "Polymaker", @@ -14018,18 +9516,32 @@ "Panchroma PLA Translucent" ] ], - "OFCJaXZS": [ + "OFCJpR7a": [ [ - "Generic", - "PPS", - "Flashforge PPS" + "Creality", + "PLA", + "HP Ultra PLA" ] ], - "OFCKK3u9": [ + "OFCVUEaV": [ [ - "FlyingBear", - "PA-CF", - "FlyingBear PA-CF" + "Generic", + "TPU", + "Tiertime Generic TPU" + ] + ], + "OFCZsqXg": [ + [ + "Creality", + "PLA", + "Hyper PLA" + ] + ], + "OFCaJHAA": [ + [ + "Generic", + "PAHT", + "FusRock Generic S-PAHT" ] ], "OFCccVrQ": [ @@ -14039,18 +9551,11 @@ "PolyTerra Dual PLA" ] ], - "OFCgpxn2": [ + "OFCcsYtf": [ [ "Generic", - "ABS", - "Prusa Generic ABS HF" - ] - ], - "OFChH9xu": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPE" + "ASA", + "FLSun Generic ASA" ] ], "OFCidU7j": [ @@ -14067,6 +9572,13 @@ "FilAr PLA-mate Verde" ] ], + "OFCnywiC": [ + [ + "Tiertime", + "PET-CF", + "Tiertime PET-CF" + ] + ], "OFCoRobU": [ [ "Elas", @@ -14074,6 +9586,55 @@ "Elas ASA" ] ], + "OFCp3Bgo": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA SE" + ] + ], + "OFCu3jES": [ + [ + "Generic", + "PETG", + "Yumi Generic PETG" + ] + ], + "OFCuaCer": [ + [ + "Volumic", + "PLA", + "Désactivé" + ] + ], + "OFD21ije": [ + [ + "Cubicon", + "PA", + "Cubicon PA-CF" + ] + ], + "OFD2JNS1": [ + [ + "Generic", + "PLA", + "Dremel Generic PLA" + ] + ], + "OFD6kN7F": [ + [ + "Generic", + "PLA", + "OrcaArena Generic PLA" + ] + ], + "OFD9taow": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA Hyper" + ] + ], "OFDETOM6": [ [ "eSUN", @@ -14088,11 +9649,32 @@ "Bambu PLA Dynamic" ] ], - "OFDMWB6t": [ + "OFDJU6R3": [ [ - "Elegoo", + "Afinia", + "TPU", + "Afinia TPU" + ] + ], + "OFDKIKyw": [ + [ + "Snapmaker", + "PVA", + "Snapmaker Dual PVA" + ] + ], + "OFDKgoqx": [ + [ + "Flashforge", "PLA", - "Elegoo PLA+" + "Flashforge PLA" + ] + ], + "OFDRpXLZ": [ + [ + "Other", + "PETG", + "Other PETG" ] ], "OFDSrzZ8": [ @@ -14109,11 +9691,18 @@ "Valment PLA" ] ], - "OFDkABjZ": [ + "OFDeTsJw": [ [ "Generic", - "TPU-90A", - "Generic TPU-90A" + "HIPS", + "Chuanying Generic HIPS" + ] + ], + "OFDgQaca": [ + [ + "FlyingBear", + "PETG", + "FlyingBear PETG" ] ], "OFDpW3J8": [ @@ -14123,11 +9712,11 @@ "FILL3D PLA Basic" ] ], - "OFDramZ2": [ + "OFDtop41": [ [ - "Co Print", - "PETG", - "CoPrint Generic PETG" + "Generic", + "PA", + "Generic Support for PA" ] ], "OFDvXujf": [ @@ -14158,11 +9747,11 @@ "COEX TPU 60A" ] ], - "OFE22Uba": [ + "OFEE1Dld": [ [ "Generic", - "TPU-90A", - "Flashforge TPU-90A" + "TPU", + "Artillery Generic TPU" ] ], "OFEGNJD4": [ @@ -14172,11 +9761,39 @@ "Bambu PLA Silk" ] ], - "OFEYKrjb": [ + "OFEMfQsX": [ [ - "Artillery", + "Generic", "PETG", - "Artillery PETG" + "Flashforge PETG Basic" + ] + ], + "OFENzGSm": [ + [ + "Generic", + "TPU", + "FLSun T1 TPU" + ] + ], + "OFEOnBj6": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Lite" + ] + ], + "OFETFWx7": [ + [ + "Generic", + "PLA", + "SecKit Generic PLA" + ] + ], + "OFEWYR89": [ + [ + "Generic", + "PLA", + "Generic PLA+" ] ], "OFEZ449N": [ @@ -14186,11 +9803,32 @@ "FilAr PLA-mate Uva" ] ], - "OFEdyZqS": [ + "OFEZNNw1": [ [ - "Anycubic", + "Generic", + "PA", + "RatRig Generic PA" + ] + ], + "OFEZpel7": [ + [ + "Volumic", + "PPS-CF", + "PPS Carbone (Performance)" + ] + ], + "OFEabreg": [ + [ + "Polymaker", + "PA6-CF", + "Fiberon PA6-CF20" + ] + ], + "OFEbIx49": [ + [ + "WonderMaker", "PLA", - "Anycubic PLA Luminous" + "WonderMaker PLA Marble" ] ], "OFEhuUNq": [ @@ -14200,6 +9838,20 @@ "DREMC PA12-CF" ] ], + "OFEj7sca": [ + [ + "Cubicon", + "PC", + "Cubicon PC" + ] + ], + "OFEjbwqG": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA+" + ] + ], "OFEkPBwx": [ [ "Bambu Lab", @@ -14207,6 +9859,20 @@ "Bambu PLA Glow" ] ], + "OFEmsric": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker PA-CF" + ] + ], + "OFEnbt6D": [ + [ + "Peopoly", + "PLA", + "Peopoly Lancer PLA-C" + ] + ], "OFEswT5W": [ [ "Bambu Lab", @@ -14214,6 +9880,27 @@ "Bambu PLA-CF" ] ], + "OFEwRwmL": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA" + ] + ], + "OFF3cuzT": [ + [ + "Generic", + "TPU", + "Generic TPU 64D" + ] + ], + "OFF73Bvp": [ + [ + "Generic", + "PLA-CF", + "SecKit Generic PLA-CF" + ] + ], "OFF9OKoY": [ [ "Polymaker", @@ -14221,11 +9908,18 @@ "PolyLite PLA Pro" ] ], - "OFFIL5pD": [ + "OFF9cgY5": [ [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" + "Snapmaker", + "PLA", + "Snapmaker PLA Matte" + ] + ], + "OFFC0VqZ": [ + [ + "Generic", + "PETG", + "RatRig BigNozzle PCTG" ] ], "OFFNYwWR": [ @@ -14235,11 +9929,39 @@ "Bambu PA-CF" ] ], - "OFFenwbU": [ + "OFFP4ORR": [ [ - "Generic", + "Creality", + "ABS", + "Creality Hyper ABS" + ] + ], + "OFFX1DRD": [ + [ + "FlyingBear", + "PC", + "FlyingBear PC" + ] + ], + "OFFZ0BBL": [ + [ + "FlyingBear", "PLA", - "FLSun S1 PLA Silk" + "FlyingBear Generic PLA" + ] + ], + "OFFZ458u": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA612-ESD" + ] + ], + "OFFbQscs": [ + [ + "eSUN", + "PETG", + "eSUN PETG-Basic" ] ], "OFFkCLBl": [ @@ -14249,20 +9971,6 @@ "Panchroma PLA Galaxy" ] ], - "OFFmJ8aR": [ - [ - "Other", - "PLA", - "Other PLA Hyper" - ] - ], - "OFFrbsvQ": [ - [ - "Other", - "TPU", - "Other TPU" - ] - ], "OFFvzqcd": [ [ "Bambu Lab", @@ -14270,18 +9978,81 @@ "Bambu PETG Basic" ] ], - "OFG8vHw8": [ + "OFFwJWea": [ [ - "Generic", - "ASA", - "Qidi Generic ASA" + "Anycubic", + "PLA", + "Anycubic PLA Silk" ] ], - "OFGFZhWu": [ + "OFFxZ7hZ": [ [ "Generic", + "PLA-CF", + "Chuanying Generic PLA-CF10" + ] + ], + "OFG0kOKX": [ + [ + "Volumic", "PETG", - "Sovol SV06 ACE PETG" + "Volumic PETG Ultra" + ] + ], + "OFG2RkhN": [ + [ + "Creality", + "TPU", + "CR-TPU" + ] + ], + "OFG4do34": [ + [ + "QIDI", + "ASA-AERO", + "Qidi ASA-Aero" + ] + ], + "OFGDaEHO": [ + [ + "Generic", + "BVOH", + "Tiertime Generic BVOH" + ] + ], + "OFGGyAgJ": [ + [ + "Generic", + "TPU", + "Vzbot Generic TPU" + ] + ], + "OFGJ1nxs": [ + [ + "Other", + "PLA", + "Other PLA" + ] + ], + "OFGKLoUm": [ + [ + "Generic", + "TPU", + "Anycubic Generic TPU" + ] + ], + "OFGLeiNL": [ + [ + "Generic", + "PLA", + "Yumi Generic PLA" + ] + ], + "OFGPJxnt": [ + [ + "Generic", + "PC", + "Anker Generic PC" ] ], "OFGVwfK0": [ @@ -14291,11 +10062,11 @@ "FilAr PLA-mate Gris" ] ], - "OFGb4hPY": [ + "OFGc282l": [ [ - "Anycubic", - "PEBA", - "Anycubic PEBA 95A" + "Generic", + "PLA", + "Flashforge PLA-SILK" ] ], "OFGcLA5R": [ @@ -14305,16 +10076,18 @@ "FilAr PLA-mate Beige" ] ], - "OFGfdP6J": [ + "OFGcMkEB": [ [ - "FusRock", - "S-Multi", - "FusRock Generic S-Multi" - ], + "Creality", + "TPU", + "HP-TPU" + ] + ], + "OFGdP6Na": [ [ - "Generic", - "PET-CF", - "FusRock Generic S-Multi" + "Volumic", + "PVA", + "Volumic PVA" ] ], "OFGkyftV": [ @@ -14324,6 +10097,34 @@ "Overture Silk PLA" ] ], + "OFGwT5Av": [ + [ + "Creality", + "PLA-CF", + "Creality Hyper PLA-CF" + ] + ], + "OFGwZmgS": [ + [ + "Creality", + "ABS", + "CR-ABS" + ] + ], + "OFGxC8gB": [ + [ + "Creality", + "PLA", + "CR-Wood" + ] + ], + "OFGzUNbm": [ + [ + "Generic", + "PPS-CF", + "Tiertime Generic PPS-CF" + ] + ], "OFH2nN08": [ [ "Eolas Prints", @@ -14331,6 +10132,27 @@ "Eolas Prints PLA INGEO 850" ] ], + "OFH5UH6P": [ + [ + "Generic", + "ABS-GF", + "Flashforge ABS-GF" + ] + ], + "OFH6Pjxe": [ + [ + "Generic", + "PLA", + "Flashforge PLA Matte" + ] + ], + "OFH7b12v": [ + [ + "Generic", + "PA-CF", + "Generic PAHT-CF" + ] + ], "OFHAccHz": [ [ "FilAr", @@ -14338,30 +10160,32 @@ "FilAr PLA Blanco Antartida" ] ], - "OFHBTqyD": [ + "OFHFZ1Te": [ [ "Generic", "PLA", - "Flashforge PLA Basic" + "Prusa Generic PLA Silk" ] ], - "OFHDaMut": [ - [ - "Volumic", - "PA6-CF", - "PA6 CF20 (Performance)" - ] - ], - "OFHL32M0": [ - [ - "Anycubic", - "TPU", - "Anycubic TPU" - ], + "OFHQUAoZ": [ [ "Generic", - "TPU", - "Anycubic TPU" + "PA-CF", + "FLSun Generic PA-CF" + ] + ], + "OFHTVfaU": [ + [ + "Generic", + "PETG", + "Sovol Zero PETG" + ] + ], + "OFHUnLY2": [ + [ + "Generic", + "PETG", + "Vzbot Generic PETG" ] ], "OFHWSM21": [ @@ -14371,6 +10195,13 @@ "Fiberon PET-CF" ] ], + "OFHa3RZT": [ + [ + "Generic", + "PA-CF", + "Tiertime Generic PA-CF" + ] + ], "OFHa48An": [ [ "Bambu Lab", @@ -14378,6 +10209,20 @@ "Bambu PET-CF" ] ], + "OFHaYaB1": [ + [ + "eSUN", + "PET", + "eSUN PET-Basic" + ] + ], + "OFHf2lKK": [ + [ + "FlyingBear", + "TPU", + "FlyingBear TPU Basic" + ] + ], "OFHfzQXo": [ [ "Eolas Prints", @@ -14385,6 +10230,13 @@ "Eolas Prints PLA Transition" ] ], + "OFHknN4v": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA Pro Metallic" + ] + ], "OFHmPYRy": [ [ "SUNLU", @@ -14392,11 +10244,18 @@ "SUNLU PLA+ 2.0" ] ], - "OFHtQDC9": [ + "OFI6WZpn": [ [ - "Elegoo", + "Orca Arena", "PLA", - "Elegoo PLA Basic" + "Arena Support W" + ] + ], + "OFI80Hct": [ + [ + "Generic", + "ASA", + "Anycubic Generic ASA" ] ], "OFIBXa0k": [ @@ -14406,6 +10265,62 @@ "FilAr PLA-mate Rojo" ] ], + "OFIE3vOf": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Matte" + ] + ], + "OFIK0xFa": [ + [ + "Generic", + "ASA", + "FLSun S1 ASA" + ] + ], + "OFIPjqHt": [ + [ + "Orca Arena", + "PA", + "Arena Support G" + ] + ], + "OFIRUqWi": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Silk" + ] + ], + "OFIVWJPm": [ + [ + "InfiMech", + "TPU", + "InfiMech TPU" + ] + ], + "OFIWMSGX": [ + [ + "HATCHBOX", + "PETG", + "HATCHBOX PETG" + ] + ], + "OFIYTy8S": [ + [ + "Generic", + "PLA", + "Anker Generic PLA+" + ] + ], + "OFIZMQwM": [ + [ + "LH Stinger", + "TPU", + "LHS TPU" + ] + ], "OFIamQnD": [ [ "FilAr", @@ -14413,6 +10328,20 @@ "FilAr PLA Gris Ceniza" ] ], + "OFIda816": [ + [ + "Generic", + "PVA", + "Vzbot Generic PVA" + ] + ], + "OFIeCuXj": [ + [ + "Generic", + "PETG", + "Peopoly Generic PETG" + ] + ], "OFIegjmD": [ [ "Eolas Prints", @@ -14427,18 +10356,53 @@ "Bambu Support For PLA/PETG" ] ], - "OFIl3ar9": [ + "OFIgbDHq": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Luminous" + ] + ], + "OFIieIka": [ + [ + "Generic", + "PA", + "Polymaker CoPA" + ] + ], + "OFIxOuOu": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Starlight" + ] + ], + "OFIxitiU": [ + [ + "Generic", + "PLA", + "Flashforge PLA Basic" + ] + ], + "OFIy3kLw": [ + [ + "Generic", + "PA", + "Prusa Generic PA" + ] + ], + "OFJ3HRsR": [ + [ + "Orca Arena", + "ABS", + "Arena ABS" + ] + ], + "OFJ80y1e": [ [ "Generic", "PETG", - "Sovol SV08 PETG" - ] - ], - "OFIzguhB": [ - [ - "Volumic", - "UNIV", - "Volumic UNIVERSAL Ultra" + "FLSun T1 PETG" ] ], "OFJHBEGD": [ @@ -14448,6 +10412,13 @@ "DREMC PLA+ HS" ] ], + "OFJJpaLS": [ + [ + "Generic", + "PETG", + "FLSun Generic PETG" + ] + ], "OFJNeELv": [ [ "FILL3D", @@ -14469,6 +10440,62 @@ "FilAr PETG Cristal" ] ], + "OFJSksUs": [ + [ + "Generic", + "PLA", + "FLSun Generic PLA" + ] + ], + "OFJVFpJz": [ + [ + "Generic", + "PLA", + "Sovol Zero PLA Silk" + ] + ], + "OFJWKoYG": [ + [ + "iQ Materials", + "ABS Material4Print Natur", + "Material4Print ABS Natur P1" + ] + ], + "OFJYpVAQ": [ + [ + "Generic", + "TPU-90A", + "Generic TPU-90A" + ] + ], + "OFJfv07m": [ + [ + "Generic", + "TPU", + "Sovol SV06 ACE TPU" + ] + ], + "OFJgijky": [ + [ + "Polymaker", + "PLA", + "PolyLite CosPLA" + ] + ], + "OFJhT2fd": [ + [ + "Snapmaker", + "ABS", + "Snapmaker Dual ABS" + ] + ], + "OFJrvXth": [ + [ + "Snapmaker", + "ABS", + "Snapmaker ABS Benchy" + ] + ], "OFJs1ToM": [ [ "COEX 3D", @@ -14483,32 +10510,46 @@ "NIT PETG" ] ], - "OFK39W9u": [ + "OFJxSqO4": [ [ - "Generic", - "PETG-CF", - "Flashforge Generic PETG-CF10" + "Yumi", + "PLA", + "YUMI PLA Direct Drive" ] ], - "OFK820gS": [ + "OFK01afJ": [ + [ + "Generic", + "PC", + "Qidi Generic PC" + ] + ], + "OFK4LdYI": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA HF" + ] + ], + "OFK74HJD": [ + [ + "Generic", + "PLA", + "Flashforge PLA Pro" + ] + ], + "OFK8XHPn": [ + [ + "Overture", + "ABS", + "Overture ABS" + ] + ], + "OFKIQO2W": [ [ "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "OFKDnrjL": [ - [ - "Artillery", - "PLA Matte", - "Artillery PLA Matte" - ] - ], - "OFKH15Hd": [ - [ - "Generic", - "ABS", - "Sovol SV08 ABS" + "PLA", + "QIDI PLA Rapido" ] ], "OFKKajh6": [ @@ -14518,6 +10559,13 @@ "FilAr PLA Gris Plata" ] ], + "OFKNAhls": [ + [ + "Generic", + "PETG", + "Qidi Generic PETG" + ] + ], "OFKTSiYF": [ [ "FilAr", @@ -14525,11 +10573,11 @@ "FilAr PLA Blanco Calido" ] ], - "OFKWVi10": [ + "OFKUEXPA": [ [ - "Generic", - "PLA-CF", - "Flashforge Generic PLA-CF10" + "Snapmaker", + "ASA", + "Snapmaker Dual ASA" ] ], "OFKWWgyp": [ @@ -14546,16 +10594,25 @@ "FilAr PLA Naranja Tigre" ] ], - "OFKZH00L": [ + "OFKbdiiJ": [ [ - "FusRock", - "PET-CF", - "FusRock Generic PET-CF" - ], + "Polymaker", + "PLA", + "PolySonic PLA Pro" + ] + ], + "OFKfJTwL": [ [ - "Generic", + "QIDI", "PET-CF", - "FusRock Generic PET-CF" + "QIDI PET-CF" + ] + ], + "OFKgmsqE": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" ] ], "OFKhMPeX": [ @@ -14565,13 +10622,6 @@ "Bambu PC" ] ], - "OFKhtNBx": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPU High-Flow" - ] - ], "OFKiSMWR": [ [ "Polymaker", @@ -14579,46 +10629,60 @@ "Panchroma PLA Marble" ] ], - "OFKjlAbC": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "OFKzh9lx": [ - [ - "InfiMech", - "PLA", - "InfiMech PLA" - ] - ], - "OFL4BLAC": [ - [ - "iQ Materials", - "HPP4GF25", - "Grauts HPP4GF25 P1" - ] - ], - "OFL4KniM": [ - [ - "Elegoo", - "TPU", - "Elegoo Rapid TPU 95A" - ] - ], - "OFL7U2MV": [ - [ - "RatRig", - "ABS", - "RatRig PunkFil ABS" - ] - ], - "OFL7vEML": [ + "OFKo87c6": [ [ "Generic", - "PC", - "FlashForge PC" + "TPU", + "Snapmaker TPU 95A" + ] + ], + "OFKpQTJI": [ + [ + "Generic", + "TPU", + "Flashforge TPU 65D" + ] + ], + "OFKuTr12": [ + [ + "Generic", + "PE", + "Tiertime Generic PE" + ] + ], + "OFKyCgaK": [ + [ + "Generic", + "PLA", + "Anycubic Generic PLA" + ] + ], + "OFLAXKqP": [ + [ + "WonderMaker", + "TPU", + "WonderMaker TPU 95A" + ] + ], + "OFLBUkwC": [ + [ + "Generic", + "ABS", + "Vzbot Generic ABS" + ] + ], + "OFLC1oRH": [ + [ + "Flashforge", + "PPA-CF", + "Flashforge PPA-CF" + ] + ], + "OFLDSqqi": [ + [ + "Generic", + "ABS", + "Flashforge Generic ABS" ] ], "OFLJ8S6I": [ @@ -14635,6 +10699,13 @@ "DREMC ASA" ] ], + "OFLOf6Sc": [ + [ + "Tiertime", + "TPU", + "Tiertime TPU 95A" + ] + ], "OFLPAxz3": [ [ "Generic", @@ -14649,6 +10720,20 @@ "Elegoo Rapid PETG" ] ], + "OFLYDIb8": [ + [ + "Generic", + "PLA", + "Flashforge PLA Silk" + ] + ], + "OFLYDngx": [ + [ + "Bambu Lab", + "PETG", + "Bambu PETG" + ] + ], "OFLakOUI": [ [ "Generic", @@ -14656,6 +10741,20 @@ "Generic PC" ] ], + "OFLbXwoL": [ + [ + "Artillery", + "PLA Silk", + "Artillery PLA Silk" + ] + ], + "OFLbdkrE": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Eco" + ] + ], "OFLcd093": [ [ "Elegoo", @@ -14663,51 +10762,60 @@ "Elegoo PETG" ] ], - "OFLeFaUO": [ + "OFLfywkp": [ [ - "Generic", - "PVA", - "Flashforge Generic PVA" + "Afinia", + "ABS", + "Afinia ABS+" ] ], - "OFLhOFQk": [ + "OFLgwqp2": [ [ - "Volumic", - "ASA", - "Volumic ASA Ultra (Performance)" + "Creality", + "PETG-GF", + "Hyper PETG-GF" ] ], - "OFLiTjQK": [ - [ - "Other", - "PA-CF", - "Other PA-CF" - ] - ], - "OFLriDvE": [ + "OFLrdHse": [ [ "Generic", "PLA", - "Creality Generic PLA High Speed" + "Flashforge Generic HS PLA" ] ], - "OFLxO2Oc": [ + "OFLuczRG": [ [ "Generic", - "PET", - "FusRock PET" + "ASA", + "Creality Generic ASA-CF" ] ], - "OFM3PeVe": [ + "OFLzx3J4": [ [ - "FusRock", - "ASA-CF", - "Flashforge ASA-CF" - ], + "Creality", + "PLA", + "Hyper Marble" + ] + ], + "OFM0xjBG": [ + [ + "Creality", + "PLA", + "CR-PLA Matte" + ] + ], + "OFM4iJlv": [ [ "Generic", - "ASA-CF", - "Flashforge ASA-CF" + "PA-CF", + "Generic PA12-CF" + ] + ], + "OFM87w9T": [ + [ + "Generic", + "SBS", + "Tiertime Generic SBS" ] ], "OFM91vZs": [ @@ -14717,11 +10825,60 @@ "Overture ASA" ] ], - "OFMHTnPP": [ + "OFMDHOcT": [ [ - "FusRock", - "PA-CF", - "Flashforge PA12-CF" + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "OFMEbuBE": [ + [ + "Generic", + "TPU", + "Blocks Generic TPU" + ] + ], + "OFMIma8C": [ + [ + "Generic", + "PLA", + "Flashforge PLA Luminous" + ] + ], + "OFMIurFh": [ + [ + "Generic", + "PLA", + "Creality HF Generic Speed PLA" + ] + ], + "OFMK5gVo": [ + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Basic" + ] + ], + "OFML2aVd": [ + [ + "Anycubic", + "TPU", + "Anycubic TPU 95A" + ] + ], + "OFMSvS8z": [ + [ + "Artillery", + "PA", + "Artillery PA" + ] + ], + "OFMTBcnz": [ + [ + "Generic", + "PP-CF", + "Tiertime Generic PP-CF" ] ], "OFMTK0UC": [ @@ -14738,6 +10895,13 @@ "SUNLU PLA+" ] ], + "OFMZAoqa": [ + [ + "Generic", + "PVA", + "Tiertime Generic PVA" + ] + ], "OFMZvH0z": [ [ "Overture", @@ -14745,6 +10909,13 @@ "Overture Rock PLA" ] ], + "OFMgJQCZ": [ + [ + "Generic", + "PA", + "Anker Generic PA" + ] + ], "OFMjtqTC": [ [ "Bambu Lab", @@ -14752,6 +10923,34 @@ "Bambu PLA Wood" ] ], + "OFMoLF46": [ + [ + "Generic", + "TPU", + "FLSun Generic TPU" + ] + ], + "OFMpxamb": [ + [ + "Flashforge", + "PETG", + "Flashforge PETG" + ] + ], + "OFMqYusc": [ + [ + "Generic", + "PA", + "Creality Generic PA" + ] + ], + "OFMsDGbs": [ + [ + "Anycubic", + "TPU", + "Anycubic TPU" + ] + ], "OFMuXBmO": [ [ "Elas", @@ -14759,32 +10958,67 @@ "Elas PLA Basic" ] ], - "OFN0X7oN": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "OFN0pBpo": [ + "OFMyLYV8": [ [ "Generic", - "TPU", - "Qidi Generic TPU 95A" + "PETG", + "Flashforge PETG Transparent" ] ], - "OFNQHqAV": [ + "OFN7aNHe": [ + [ + "Generic", + "PC", + "Tiertime Generic PC" + ] + ], + "OFN9fefN": [ [ "Cubicon", "ABS", - "Cubicon ABSk" + "Cubicon ABS-A100" ] ], - "OFNRgSch": [ + "OFNBlAPT": [ [ - "Artillery", - "PC", - "Artillery PC" + "Orca Arena", + "PETG", + "Arena PETG Basic" + ] + ], + "OFNGTH3w": [ + [ + "Tiertime", + "PLA", + "Tiertime PLA" + ] + ], + "OFNLXV8X": [ + [ + "Generic", + "ABS", + "Tiertime Generic ABS" + ] + ], + "OFNOxcYl": [ + [ + "Generic", + "PA-CF", + "RatRig Generic PA-CF" + ] + ], + "OFNQKF0M": [ + [ + "Tiertime", + "ABS", + "Tiertime ABS" + ] + ], + "OFNSYu5h": [ + [ + "Volumic", + "PP", + "Volumic PP Ultra (Performance)" ] ], "OFNU9YIW": [ @@ -14794,18 +11028,60 @@ "FilAr PETG Azul Boreal" ] ], - "OFNX5uRT": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "OFNbajj9": [ + "OFNW4ZTC": [ [ "Generic", - "ASA", - "Creality Generic ASA-CF" + "PLA", + "Creality Generic PLA Wood" + ] + ], + "OFNWcJsM": [ + [ + "Generic", + "PLA", + "Comgrow T300 PLA" + ] + ], + "OFNWnx2c": [ + [ + "Generic", + "TPU-95A", + "Flashforge TPU-95A" + ] + ], + "OFNX8GI1": [ + [ + "Generic", + "ABS", + "Sovol Zero ABS" + ] + ], + "OFNYewRS": [ + [ + "Generic", + "PLA", + "Blocks Generic PLA" + ] + ], + "OFNZYgLA": [ + [ + "Generic", + "PVA", + "Qidi Generic PVA" + ] + ], + "OFNZjrLo": [ + [ + "Generic", + "PLA", + "Sovol SV06 Plus ACE PLA" + ] + ], + "OFNcdCrm": [ + [ + "Generic", + "PLA-CF", + "Anycubic Generic PLA-CF" ] ], "OFNemJM6": [ @@ -14829,18 +11105,25 @@ "Bambu PA6-GF" ] ], - "OFNvrbnf": [ + "OFNn21yM": [ [ - "Co Print", - "ABS", - "CoPrint Generic ABS" + "Generic", + "PA-CF", + "Vzbot Generic PA-CF" ] ], - "OFNz8rrn": [ + "OFNstOna": [ [ - "FlyingBear", - "PLA", - "FlyingBear PLA Hyper" + "Eryone", + "PETG-CF", + "Eryone PETG-CF" + ] + ], + "OFNvBIL0": [ + [ + "Creality", + "PA-CF", + "Hyper PPA-CF" ] ], "OFO1GEq6": [ @@ -14850,18 +11133,11 @@ "Panchroma PLA Neon" ] ], - "OFO3IOWM": [ - [ - "Volumic", - "PETG-ESD", - "PETG ESD (Performance)" - ] - ], - "OFO5R9KJ": [ + "OFO5djrM": [ [ "Generic", - "TPU", - "Sovol Zero TPU" + "PETG-CF", + "Generic PETG-CF10" ] ], "OFOABq7t": [ @@ -14871,25 +11147,46 @@ "AliZ PETG-Metal" ] ], - "OFOJUJAS": [ + "OFOAdMCB": [ [ - "Cubicon", - "PA", - "Cubicon PA-CF" + "Orca Arena", + "PLA", + "Arena PLA Metal" ] ], - "OFOSzSuh": [ + "OFOHOf2F": [ + [ + "eSUN", + "PLA", + "eSUN PLA-HS" + ] + ], + "OFOJPAAS": [ + [ + "iQ Materials", + "VXL90 Xioneer", + "VXL90 TiQ2 P2" + ] + ], + "OFOKYhi6": [ [ "Generic", - "PA-CF", - "Flashforge PA-CF" + "PETG", + "Prusa Generic PETG HF" ] ], - "OFOW9K96": [ + "OFObG16Q": [ [ - "QIDI", - "TPU", - "Qidi TPU 95A-HF" + "InfiMech", + "PLA", + "InfiMech PLA Basic" + ] + ], + "OFObyktP": [ + [ + "Tiertime", + "PETG", + "Tiertime PETG" ] ], "OFOiJfLM": [ @@ -14899,18 +11196,11 @@ "FILL3D PETG CF" ] ], - "OFOkTA0C": [ + "OFOnSNt3": [ [ - "Elegoo", - "PETG", - "Elegoo PETG Translucent" - ] - ], - "OFOp3Oef": [ - [ - "Generic", - "ABS", - "Generic ABS" + "Artillery", + "PETG-CF", + "Artillery PETG-CF" ] ], "OFOsHDnB": [ @@ -14920,6 +11210,13 @@ "Elegoo PETG PRO" ] ], + "OFOuEEvv": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido 0.2 nozzle" + ] + ], "OFOvv91M": [ [ "Polymaker", @@ -14927,11 +11224,18 @@ "PolyLite ABS" ] ], - "OFOysPuE": [ + "OFOwQuZM": [ [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" + "Snapmaker", + "PETG-CF", + "Snapmaker PETG-CF" + ] + ], + "OFOzwywz": [ + [ + "Eryone", + "ABS", + "Eryone ABS" ] ], "OFP26zNb": [ @@ -14941,37 +11245,18 @@ "FilAr PLA Violeta Jacaranda" ] ], - "OFP4poIv": [ + "OFPHLnoe": [ [ - "Generic", - "PLA", - "Sovol Zero PLA Silk HS Nozzle" + "Creality", + "ASA", + "HP-ASA" ] ], - "OFPGelMX": [ - [ - "Volumic", - "PP", - "Volumic PP Ultra (Performance)" - ] - ], - "OFPJJxkF": [ - [ - "FusRock", - "PET-CF", - "Flashforge PET-CF" - ], + "OFPQfNAf": [ [ "Generic", - "PET-CF", - "Flashforge PET-CF" - ] - ], - "OFPJrlC3": [ - [ - "Generic", - "PLA-CF", - "Flashforge PLA-CF" + "PETG", + "Flashforge PETG Pro" ] ], "OFPWPlSC": [ @@ -14981,6 +11266,13 @@ "FILL3D PP" ] ], + "OFPYDWgC": [ + [ + "Peopoly", + "PET-CF", + "Peopoly Lancer PET-CF" + ] + ], "OFPbyOSk": [ [ "FilAr", @@ -14995,11 +11287,18 @@ "Eolas Prints PLA INGEO 870" ] ], - "OFPeGtB1": [ + "OFPdhDlK": [ [ - "Volumic", - "UNIV", - "Volumic UNIVERSAL Ultra (Performance)" + "Generic", + "PA-CF", + "Anycubic Generic PA-CF" + ] + ], + "OFPjOUtz": [ + [ + "Generic", + "PAHT-CF", + "FusRock Generic PAHT-CF" ] ], "OFPkCJKE": [ @@ -15016,13 +11315,6 @@ "Generic PE" ] ], - "OFPokkKe": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], "OFPoyiFs": [ [ "Polymaker", @@ -15037,11 +11329,32 @@ "FilAr PLA Rosa Amaranto" ] ], - "OFPwi9X0": [ + "OFPryWt5": [ [ - "HATCHBOX", - "ABS", - "HATCHBOX ABS" + "Generic", + "PLA", + "Lulzbot 2.85mm PLA" + ] + ], + "OFPy0Ogq": [ + [ + "Generic", + "PA-CF", + "Qidi Generic PA-CF" + ] + ], + "OFQ1KzO8": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Silk" + ] + ], + "OFQ1zgm3": [ + [ + "Eryone", + "ABS-CF", + "Eryone ABS-CF" ] ], "OFQ3e56w": [ @@ -15051,30 +11364,46 @@ "Bambu PLA Galaxy" ] ], - "OFQ5xAKf": [ + "OFQ40XeN": [ [ - "Generic", - "PVA", - "Chuanying Generic PVA" + "QIDI", + "PETG", + "QIDI PETG Tough" ] ], - "OFQ9dI8j": [ + "OFQ7I5vC": [ [ "Generic", - "PC", - "Prusa Generic PC HF" + "PLA-CF", + "Prusa Generic PLA-CF" ] ], - "OFQCAYAt": [ - [ - "FusRock", - "PPA-CF", - "Flashforge PPA-CF" - ], + "OFQ9qnkd": [ [ "Generic", - "PPA-CF", - "Flashforge PPA-CF" + "PLA", + "FLSun T1 PLA High Speed" + ] + ], + "OFQC8Vna": [ + [ + "Generic", + "PETG-CF", + "Flashforge Generic PETG-CF" + ] + ], + "OFQEGL7z": [ + [ + "FlyingBear", + "PA-CF", + "FlyingBear PA-CF" + ] + ], + "OFQGvU2G": [ + [ + "Orca Arena", + "TPU", + "Arena TPU 95A" ] ], "OFQHiNJs": [ @@ -15091,6 +11420,27 @@ "Generic PA-CF" ] ], + "OFQMTRc8": [ + [ + "Snapmaker", + "PETG", + "Snapmaker J1 PETG" + ] + ], + "OFQMsFfF": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF10" + ] + ], + "OFQTrLXB": [ + [ + "Generic", + "PLA-CF", + "Qidi Generic PLA-CF" + ] + ], "OFQWIKbV": [ [ "FilAr", @@ -15098,11 +11448,18 @@ "FilAr PLA Titanio" ] ], - "OFQZINrX": [ + "OFQYaiGg": [ [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF10" + "Snapmaker", + "PET", + "Snapmaker PET" + ] + ], + "OFQZeyZv": [ + [ + "Generic", + "PLA", + "Flashforge PLA Buint Ti" ] ], "OFQbjX3s": [ @@ -15112,32 +11469,88 @@ "FILL3D PETG" ] ], - "OFR8dTVW": [ + "OFQbqeN7": [ + [ + "Generic", + "PA", + "Qidi Generic PA" + ] + ], + "OFQdaVZS": [ + [ + "Generic", + "PET-CF", + "Generic PET-CF" + ] + ], + "OFQe7sAx": [ + [ + "Anycubic", + "PA6-CF", + "Anycubic PA6-CF" + ] + ], + "OFQiq4fb": [ + [ + "Generic", + "PVA", + "Flashforge PVA" + ] + ], + "OFQswlnF": [ + [ + "Generic", + "PA", + "Tiertime Generic PA" + ] + ], + "OFR0gODA": [ + [ + "SeeMeCNC", + "ABS", + "SeeMeCNC ABS" + ] + ], + "OFRDLNM9": [ [ "Generic", "PLA", - "FLSun S1 PLA High Speed" + "Peopoly Generic PLA" ] ], - "OFRNU58t": [ + "OFRJ325z": [ [ - "Generic", - "TPU", - "Flashforge TPU 95A" + "LH Stinger", + "PETG", + "LHS PETG" ] ], - "OFRR8LUh": [ + "OFRPEs5o": [ [ "Generic", "ASA", - "Generic ASA" + "Flashforge Generic ASA" ] ], - "OFRgDMDJ": [ + "OFRhBryT": [ + [ + "Cubicon", + "PLA", + "Cubicon PLAi21" + ] + ], + "OFRhCTUg": [ + [ + "Anycubic", + "PET-CF", + "Anycubic PET-CF" + ] + ], + "OFRi7v0b": [ [ "Generic", "PETG", - "Flashforge PETG Transparent" + "Sovol SV08 PETG" ] ], "OFRiFnfQ": [ @@ -15154,6 +11567,62 @@ "Panchroma PLA Celestial" ] ], + "OFRiyes1": [ + [ + "Generic", + "ASA", + "Anker Generic ASA" + ] + ], + "OFRkjhxK": [ + [ + "Volumic", + "PVA", + "Volumic PVA-BVOH (Performance)" + ] + ], + "OFRmGKVX": [ + [ + "Cubicon", + "PLA", + "Cubicon PLA+" + ] + ], + "OFRooa0F": [ + [ + "Snapmaker", + "PA-CF", + "Snapmaker Dual PA-CF" + ] + ], + "OFRpAZ1P": [ + [ + "DeltaMaker", + "PLA", + "DeltaMaker Brand PLA" + ] + ], + "OFRujL0v": [ + [ + "Generic", + "PET-CF", + "FusRock Generic PET-CF" + ] + ], + "OFRusgEn": [ + [ + "Generic", + "PVA", + "Chuanying Generic PVA" + ] + ], + "OFRyOsZj": [ + [ + "re3D", + "PLA", + "re3D PLA" + ] + ], "OFRzR5mi": [ [ "eSUN", @@ -15161,11 +11630,11 @@ "eSUN ePLA-LW" ] ], - "OFS1ekCg": [ + "OFRzsaDK": [ [ - "Generic", - "PETG", - "RatRig BigNozzle PCTG" + "FlyingBear", + "TPU", + "FlyingBear Generic TPU" ] ], "OFS2tn6G": [ @@ -15175,11 +11644,18 @@ "Fiberon PA612-CF" ] ], - "OFS3HrR1": [ + "OFS4jbj3": [ [ - "Other", + "Eryone", + "PA", + "Eryone PA" + ] + ], + "OFS8JF3S": [ + [ + "Generic", "PLA", - "Other PLA" + "Qidi Generic PLA High Speed" ] ], "OFS8lTQt": [ @@ -15189,46 +11665,60 @@ "Panchroma PLA Silk" ] ], - "OFSCm6pJ": [ - [ - "Elegoo", - "PETG", - "Elegoo PET-CF" - ] - ], - "OFSSuKRr": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "OFSdF3B1": [ + "OFSDFYs4": [ [ "Generic", - "PAHT-CF", - "FusRock PAHT-CF" + "PLA-CF", + "Creality Generic PLA-CF" ] ], - "OFSkBwxf": [ + "OFSGbf2I": [ [ "Generic", - "ASA", - "RatRig BigNozzle ASA" + "PVA", + "Anycubic Generic PVA" ] ], - "OFSoZBK2": [ + "OFSPdsuW": [ + [ + "Generic", + "PPA-CF", + "Tiertime Generic PPA-CF" + ] + ], + "OFSStjay": [ [ "Generic", "PLA", - "Sovol SV06 Plus ACE PLA" + "FLSun S1 PLA Silk" ] ], - "OFSpTWdv": [ + "OFSTCno1": [ [ - "Other", - "PA-CF", - "Other PA-CF" + "GreenGate3D", + "PETG", + "re3D Greengate rPETG" + ] + ], + "OFSa39yP": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA" + ] + ], + "OFSbGfsz": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Basic" + ] + ], + "OFShw1X8": [ + [ + "Generic", + "ABS", + "Flashforge ABS Basic" ] ], "OFSwbBWS": [ @@ -15238,6 +11728,13 @@ "DREMC PLA+" ] ], + "OFT2jon4": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], "OFTGHyNC": [ [ "Bambu Lab", @@ -15245,6 +11742,13 @@ "Bambu PLA Impact" ] ], + "OFTKFAZ4": [ + [ + "Generic", + "PCTG", + "Tiertime Generic PCTG" + ] + ], "OFTOPcx0": [ [ "Eolas Prints", @@ -15259,25 +11763,18 @@ "Bambu PETG-CF" ] ], - "OFTa6gPH": [ + "OFTSXxzE": [ [ - "Generic", - "PLA", - "Flashforge PLA Pro" + "Flashforge", + "PPS-CF", + "Flashforge PPS-CF" ] ], - "OFTbdJyT": [ + "OFTXduCM": [ [ - "Other", - "PC", - "Other PC" - ] - ], - "OFTbsWVg": [ - [ - "Artillery", - "TPU", - "Artillery TPU" + "eSUN", + "ABS", + "eSUN ABS+" ] ], "OFTcE0nA": [ @@ -15287,6 +11784,20 @@ "eSUN PLA-Basic" ] ], + "OFTdauIq": [ + [ + "Volumic", + "PETG", + "Volumic PCTG Ultra (Performance)" + ] + ], + "OFTkj6DR": [ + [ + "Anycubic", + "PVA", + "Anycubic PVA" + ] + ], "OFTlRzpe": [ [ "FilAr", @@ -15294,25 +11805,39 @@ "FilAr PLA Gris Pizarra" ] ], - "OFToBodi": [ + "OFTnWzBs": [ + [ + "Creality", + "PLA-CF", + "Hyper PLA-CF" + ] + ], + "OFTs8peJ": [ + [ + "Snapmaker", + "TPU", + "Snapmaker Dual TPE" + ] + ], + "OFTsHNQi": [ [ "QIDI", - "ABS", - "QIDI ABS Rapido Metal" + "ASA", + "QIDI ASA" ] ], - "OFTsGps3": [ - [ - "InfiMech", - "PC", - "InfiMech PC" - ] - ], - "OFTszIHE": [ + "OFTvvox9": [ [ "Generic", "PLA", - "Creality Generic PLA Silk" + "Sovol SV06 ACE PLA" + ] + ], + "OFU0n0zW": [ + [ + "Generic", + "PLA", + "FLSun T1 PLA Generic" ] ], "OFU1zPxE": [ @@ -15322,18 +11847,102 @@ "Elegoo PLA Galaxy" ] ], - "OFUJw3Lx": [ + "OFU3QXL7": [ [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" + "re3D", + "PC", + "re3D PC" ] ], - "OFUYjPc4": [ + "OFU3zwPc": [ [ "Generic", + "TPU", + "Prusa Generic TPU HF" + ] + ], + "OFU5N9jI": [ + [ + "Generic", + "TPU", + "OrcaArena Generic TPU" + ] + ], + "OFU6fjbi": [ + [ + "Co Print", + "ABS", + "CoPrint Generic ABS" + ] + ], + "OFU7CKZt": [ + [ + "Volumic", + "ASA", + "Volumic ASA Ultra (Performance)" + ] + ], + "OFUCpLaL": [ + [ + "Generic", + "PPS", + "FlashForge PPS" + ] + ], + "OFUF7oA4": [ + [ + "Creality", + "PC", + "Hyper PC" + ] + ], + "OFUH1aee": [ + [ + "Volumic", + "TPU", + "Volumic FLEX93 Ultra (Performance)" + ] + ], + "OFUIfGoh": [ + [ + "Snapmaker", + "PET", + "Snapmaker Dual PET" + ] + ], + "OFUScM0D": [ + [ + "Generic", + "S-Multi", + "FusRock S-Multi" + ] + ], + "OFUWRqwb": [ + [ + "Generic", + "PA-CF", + "Creality Generic PA-CF" + ] + ], + "OFUYCqtB": [ + [ + "InfiMech", "PLA", - "Dremel Generic PLA" + "InfiMech PLA" + ] + ], + "OFUaHEO9": [ + [ + "Anycubic", + "PEBA", + "Anycubic PEBA 95A" + ] + ], + "OFUaVAdj": [ + [ + "Generic", + "ASA", + "Tiertime Generic ASA" ] ], "OFUanySo": [ @@ -15343,18 +11952,25 @@ "Bambu PLA Silk+" ] ], - "OFUkpobY": [ + "OFUmS5z5": [ [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" + "eSUN", + "ASA", + "eSUN ASA+" ] ], - "OFUqBrgf": [ + "OFUrStd6": [ [ "Generic", - "TPU", - "Chuanying Generic TPU" + "PETG", + "RatRig Generic PCTG" + ] + ], + "OFUtGagr": [ + [ + "Generic", + "PLA-CF", + "Artillery Generic PLA-CF" ] ], "OFUyDDNv": [ @@ -15364,18 +11980,18 @@ "Elegoo PC" ] ], - "OFV1szQh": [ + "OFV0KrAG": [ [ - "Peopoly", - "PETG", - "Peopoly Lancer PETG-C" + "Generic", + "ABS", + "FLSun T1 ABS" ] ], - "OFV4hD1o": [ + "OFV5Q7j2": [ [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" + "Snapmaker", + "TPU", + "Snapmaker J1 TPE" ] ], "OFV5tNw6": [ @@ -15385,11 +12001,11 @@ "Elegoo PET-CF" ] ], - "OFVBNoov": [ + "OFV5wEMe": [ [ - "InfiMech", + "Afinia", "ABS", - "InfiMech ABS" + "Afinia ABS" ] ], "OFVBlUFH": [ @@ -15406,18 +12022,18 @@ "Bambu TPU 95A" ] ], - "OFVJXE4n": [ - [ - "Other", - "ABS", - "Other ABS" - ] - ], - "OFVhG0yM": [ + "OFVHMFJX": [ [ "QIDI", - "ABS", - "QIDI ABS Odorless" + "PETG", + "QIDI PETG Tough 0.2 nozzle" + ] + ], + "OFVKADz5": [ + [ + "Generic", + "PLA", + "Comgrow Generic PLA" ] ], "OFVptRxp": [ @@ -15427,6 +12043,20 @@ "COEX TPE 30D" ] ], + "OFVqZ2H0": [ + [ + "Generic", + "PC", + "FLSun Generic PC" + ] + ], + "OFVtIasg": [ + [ + "Eryone", + "ASA", + "Eryone ASA" + ] + ], "OFW29a9R": [ [ "Polymaker", @@ -15434,11 +12064,39 @@ "PolyTerra PLA" ] ], - "OFW8UdlP": [ + "OFW5FqkL": [ [ "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "OFW9uIkE": [ + [ + "Generic", + "HIPS", + "Tiertime Generic HIPS" + ] + ], + "OFWIr7ZE": [ + [ + "CoLiDo", "ABS", - "QIDI ABS Rapido" + "CoLiDo Generic ABS" + ] + ], + "OFWRITFw": [ + [ + "Prusa Polymers", + "PLA", + "Prusament rPLA" + ] + ], + "OFWTAEjH": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPE" ] ], "OFWTRJ1K": [ @@ -15448,6 +12106,13 @@ "FilAr PLA Bronce" ] ], + "OFWY6vBh": [ + [ + "Generic", + "PC", + "Anycubic Generic PC" + ] + ], "OFWYtgCa": [ [ "Elegoo", @@ -15455,6 +12120,34 @@ "Elegoo PLA Wood" ] ], + "OFWa0NiB": [ + [ + "Volumic", + "PA", + "Volumic NYLON Ultra" + ] + ], + "OFWadebJ": [ + [ + "Generic", + "PETG-CF", + "Tiertime Generic PETG-CF" + ] + ], + "OFWao3Ic": [ + [ + "Creality", + "PLA", + "Ender-PLA" + ] + ], + "OFWbbuRY": [ + [ + "InfiMech", + "ABS", + "InfiMech Generic ABS" + ] + ], "OFWbdGsC": [ [ "Generic", @@ -15462,25 +12155,32 @@ "Generic PLA-CF" ] ], - "OFWkCAdc": [ + "OFWgFOjn": [ [ - "QIDI", - "PETG", - "QIDI PETG Tough 0.2 nozzle" - ] - ], - "OFWs8KIZ": [ - [ - "Generic", - "ABS-CF", - "Flashforge ABS-CF" - ] - ], - "OFWv6JYn": [ - [ - "Generic", + "Snapmaker", "PLA", - "Flashforge PLA Metal" + "Snapmaker PLA Silk" + ] + ], + "OFWnSvGu": [ + [ + "Generic", + "ASA-GF", + "Flashforge ASA-GF" + ] + ], + "OFWof1Ap": [ + [ + "Generic", + "ABS", + "FLSun Generic ABS" + ] + ], + "OFWukXja": [ + [ + "Generic", + "TPU", + "Qidi Generic TPU 95A" ] ], "OFWwF7K7": [ @@ -15490,11 +12190,11 @@ "FilAr PLA Cafe con Leche" ] ], - "OFWyCd0Y": [ + "OFWzr7m0": [ [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" + "Generic", + "PETG", + "Anycubic Generic PETG" ] ], "OFX0ycRQ": [ @@ -15504,11 +12204,11 @@ "Fiberon PA12-CF" ] ], - "OFXA8vy9": [ + "OFX2zcrM": [ [ - "Artillery", - "PLA Basic+", - "Artillery PLA Basic+" + "Generic", + "PLA-CF", + "Generic PLA-CF10" ] ], "OFXCBZTA": [ @@ -15525,18 +12225,11 @@ "Bambu PLA Matte" ] ], - "OFXNO5Of": [ + "OFXJ9iom": [ [ - "QIDI", - "PLA", - "QIDI PLA Rapido 0.2 nozzle" - ] - ], - "OFXQX0tr": [ - [ - "RatRig", - "PETG-CF10", - "RatRig PunkFil PETG CF" + "iQ Materials", + "HPP4GF25", + "Grauts HPP4GF25 P1" ] ], "OFXTPuqV": [ @@ -15546,18 +12239,32 @@ "Elas PETG Basic" ] ], - "OFXcfTEb": [ + "OFXXUHSG": [ [ "Generic", - "PETG", - "Tinmorry PETG-ECO" + "PETG-CF", + "Chuanying Generic PETG-CF10" ] ], - "OFXfgh61": [ + "OFXhZ3uY": [ [ "Generic", - "PA-CF", - "Prusa Generic PA-CF" + "PC", + "OrcaArena Generic PC" + ] + ], + "OFXi59OX": [ + [ + "Afinia", + "ABS", + "Afinia Value ABS" + ] + ], + "OFXk1emJ": [ + [ + "Artillery", + "PLA Basic", + "Artillery PLA Basic" ] ], "OFXkm8q1": [ @@ -15567,18 +12274,39 @@ "Generic PP-CF" ] ], - "OFXkwkn6": [ + "OFXn3Vd9": [ [ "QIDI", - "UltraPA", - "QIDI PA-Ultra" + "PAHT-S", + "QIDI Support For PAHT" ] ], - "OFXv4FUi": [ + "OFXnToSX": [ + [ + "Creality", + "PLA", + "Hyper Stardust" + ] + ], + "OFXuGxvQ": [ + [ + "Volumic", + "PLA", + "Volumic PLA Ultra" + ] + ], + "OFXuwtnq": [ + [ + "Co Print", + "PETG", + "CoPrint Generic PETG" + ] + ], + "OFXyyfX6": [ [ "Generic", "PLA", - "Flashforge PLA Galaxy" + "Anker Generic PLA Silk" ] ], "OFXz7Mwx": [ @@ -15595,11 +12323,18 @@ "Bambu ASA-Aero" ] ], - "OFY1U4uM": [ + "OFY0F5qA": [ [ - "Generic", - "TPU", - "Sovol SV08 TPU" + "Volumic", + "PETG", + "Volumic PETG Ultra carbone (Performance)" + ] + ], + "OFY3AB7j": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Matte" ] ], "OFY9muEs": [ @@ -15609,11 +12344,11 @@ "Generic ABS" ] ], - "OFYG2Gfy": [ + "OFYEtXuk": [ [ - "Afinia", - "ABS", - "Afinia ABS+" + "Snapmaker", + "PA-CF", + "Snapmaker J1 PA-CF" ] ], "OFYGbPHX": [ @@ -15623,23 +12358,18 @@ "PolyLite Dual PLA" ] ], - "OFYH00jV": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "OFYICbI4": [ - [ - "FusRock", - "PAHT-CF", - "FusRock Generic PAHT-CF" - ], + "OFYHzKyS": [ [ "Generic", - "PAHT-CF", - "FusRock Generic PAHT-CF" + "PLA-CF", + "Vzbot Generic PLA-CF" + ] + ], + "OFYPdJ7t": [ + [ + "Generic", + "ABS", + "Creality Generic ABS" ] ], "OFYPdQJh": [ @@ -15649,20 +12379,6 @@ "Generic PETG" ] ], - "OFYRS7GZ": [ - [ - "Generic", - "TPU-95A", - "Generic TPU-95A" - ] - ], - "OFYZs7dN": [ - [ - "Generic", - "PLA", - "Flashforge Generic HS PLA" - ] - ], "OFYd5uS3": [ [ "DREMC", @@ -15670,20 +12386,76 @@ "DREMC TPU 95A" ] ], - "OFYehFGr": [ - [ - "Generic", - "TPU", - "RatRig BigNozzle TPU" - ] - ], - "OFYfZgxU": [ + "OFYezc6s": [ [ "FlyingBear", "TPU", "FlyingBear TPU" ] ], + "OFYl0c8v": [ + [ + "Generic", + "HIPS", + "Flashforge Generic HIPS" + ] + ], + "OFYlZMmy": [ + [ + "Generic", + "TPU", + "Chuanying Generic TPU" + ] + ], + "OFYlthXI": [ + [ + "Generic", + "PLA-CF", + "Flashforge Generic PLA-CF" + ] + ], + "OFYtS9zg": [ + [ + "Generic", + "PAHT-CF", + "FusRock PAHT-CF" + ] + ], + "OFYuowge": [ + [ + "Other", + "ABS", + "Other ABS" + ] + ], + "OFYvSO1W": [ + [ + "Generic", + "PLA", + "Flashforge Generic PLA-Silk" + ] + ], + "OFZ0mR5b": [ + [ + "Anycubic", + "PLA-CF", + "Anycubic PLA-CF" + ] + ], + "OFZ1hANN": [ + [ + "FusRock", + "PA-CF", + "FusRock Generic NexPA-CF25" + ] + ], + "OFZ2LuAi": [ + [ + "Yumi", + "PLA", + "YUMI PLA Bowden" + ] + ], "OFZ4QbfK": [ [ "FilAr", @@ -15691,51 +12463,74 @@ "FilAr PLA Rosa Flamenco" ] ], - "OFZAkPHG": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "OFZQFvHQ": [ + "OFZ4fTO8": [ [ "Generic", "PETG", - "Flashforge HS PETG" + "C1 Generic High Flow PETG" ] ], - "OFZcrV9c": [ - [ - "FusRock", - "PPS-CF", - "Flashforge PPS-CF" - ], + "OFZHgTVI": [ [ "Generic", - "PPS-CF", - "Flashforge PPS-CF" + "PETG", + "Flashforge Generic PETG" ] ], - "OFZjZ1k7": [ + "OFZLtWYs": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF25" + ] + ], + "OFZOuWrO": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "OFZPlCck": [ [ "Generic", + "ABS", + "Chuanying Generic ABS" + ] + ], + "OFZivHGL": [ + [ + "Snapmaker", "PLA", - "Creality HF Generic PLA" + "Snapmaker Dual PLA" ] ], - "OFa5cFqE": [ + "OFZsChIG": [ [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" + "Generic", + "TPU", + "Qidi Generic TPU" ] ], - "OFa6L3Of": [ + "OFZtOQtl": [ [ - "QIDI", - "PC-ABS-FR", - "Qidi PC-ABS-FR" + "Flashforge", + "PA6-CF", + "Flashforge PA6-CF" + ] + ], + "OFZtkHRq": [ + [ + "Anycubic", + "PC", + "Anycubic PC" + ] + ], + "OFaBwRvT": [ + [ + "Generic", + "ASA", + "Flashforge ASA Basic" ] ], "OFaDOaNt": [ @@ -15752,18 +12547,32 @@ "FilAr PLA Rojo de Carreras" ] ], - "OFaKIoH2": [ + "OFaEuvNF": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Sparkle" + "Anycubic", + "PAHT-CF", + "Anycubic PAHT-CF" ] ], - "OFaKZ6JI": [ + "OFaFNP2U": [ [ "Generic", - "PETG", - "Generic PETG Basic" + "PLA", + "Sovol SV07 PLA" + ] + ], + "OFaHjk1V": [ + [ + "Volumic", + "PC", + "Volumic PC" + ] + ], + "OFaP2SsH": [ + [ + "LH Stinger", + "ASA", + "LHS ASA" ] ], "OFaQMgRH": [ @@ -15773,6 +12582,20 @@ "Bambu PLA Tough" ] ], + "OFaRjiIm": [ + [ + "SeeMeCNC", + "PETG-CF", + "SeeMeCNC PETG-CF" + ] + ], + "OFaU2JxD": [ + [ + "Generic", + "PLA", + "Dremel Generic PLA" + ] + ], "OFaYz8iE": [ [ "Elas", @@ -15780,6 +12603,34 @@ "Elas PLA Pro" ] ], + "OFaeIx7W": [ + [ + "iQ Materials", + "PETG Polymax", + "Polymaker PETG Polymax black P1" + ] + ], + "OFafO6VM": [ + [ + "Generic", + "PC-CF", + "Generic PC-CF" + ] + ], + "OFafocjw": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS" + ] + ], + "OFahE7HP": [ + [ + "Generic", + "PC", + "Blocks Generic PC" + ] + ], "OFausr3F": [ [ "FilAr", @@ -15787,25 +12638,18 @@ "FilAr PLA-mate Rosa" ] ], - "OFaxQnfz": [ - [ - "Cubicon", - "PC", - "Cubicon PC" - ] - ], - "OFb3UzMZ": [ - [ - "InfiMech", - "PA-CF", - "InfiMech PA-CF" - ] - ], - "OFbK5wve": [ + "OFaz8VoR": [ [ "Generic", - "TPU", - "Prusa Generic TPU HF" + "HIPS", + "Flashforge HIPS" + ] + ], + "OFb5EEM3": [ + [ + "Artillery", + "PET", + "Artillery PET" ] ], "OFbP8zEO": [ @@ -15815,25 +12659,60 @@ "Eolas Prints PLA Silk" ] ], - "OFbS9rjH": [ + "OFbSChKb": [ [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "OFbYP6Wb": [ - [ - "Elegoo", + "SeeMeCNC", "PLA", - "Elegoo PLA Marble" + "SeeMeCNC PLA" ] ], - "OFc2SnEp": [ + "OFbSZBOi": [ [ - "Artillery", - "PVA", - "Artillery PVA" + "InfiMech", + "TPU", + "InfiMech TPU Basic" + ] + ], + "OFbeeFkl": [ + [ + "Generic", + "PLA", + "OrcaArena Generic PLA Silk" + ] + ], + "OFbenYUK": [ + [ + "Generic", + "TPU", + "Prusa Generic TPU" + ] + ], + "OFbh7HcA": [ + [ + "Eryone", + "PP-CF", + "Eryone PP-CF" + ] + ], + "OFbjtPQy": [ + [ + "Generic", + "ASA", + "FLSun T1 ASA" + ] + ], + "OFbt04e0": [ + [ + "Generic", + "TPU", + "DeltaMaker Generic TPU" + ] + ], + "OFc0xiCz": [ + [ + "InfiMech", + "TPU", + "InfiMech Generic TPU" ] ], "OFc3xdm9": [ @@ -15843,18 +12722,53 @@ "Overture PLA" ] ], - "OFcZZWnB": [ + "OFc87pL3": [ [ - "Cubicon", - "ABS", - "Cubicon ABS-A100" + "Orca Arena", + "PET-CF", + "Arena PET-CF" ] ], - "OFceJcLf": [ + "OFcBJQcC": [ [ - "Polymaker", + "Snapmaker", + "TPU", + "Snapmaker Dual TPU High-Flow" + ] + ], + "OFcCzEkS": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA" + ] + ], + "OFcJ7AKd": [ + [ + "Generic", "PLA", - "PolyLite PLA" + "Sovol SV08 PLA" + ] + ], + "OFcJDtTx": [ + [ + "Artillery", + "TPU", + "Artillery TPU" + ] + ], + "OFcKtw8W": [ + [ + "Volumic", + "PA6-CF", + "PA6 CF20 (Performance)" + ] + ], + "OFcdqaWI": [ + [ + "Generic", + "PC", + "Sovol Zero PC" ] ], "OFcfQk4h": [ @@ -15864,18 +12778,25 @@ "Overture Air PLA" ] ], - "OFcqs5g7": [ + "OFcogyWl": [ [ - "Elegoo", + "WonderMaker", "PLA", - "Elegoo PLA Translucent2" + "WonderMaker PLA Metal" ] ], - "OFcsHCy4": [ + "OFctbSkL": [ [ "Generic", + "ASA", + "Blocks Generic ASA-CF" + ] + ], + "OFctg8r1": [ + [ + "CoLiDo", "PLA", - "Sovol SV08 PLA" + "CoLiDo PLA+" ] ], "OFcvKkrs": [ @@ -15885,13 +12806,6 @@ "Overture TPU" ] ], - "OFcy60o4": [ - [ - "Generic", - "ASA", - "Flashforge ASA Basic" - ] - ], "OFcytyoA": [ [ "Polymaker", @@ -15906,6 +12820,13 @@ "Generic PE-CF" ] ], + "OFd10YeG": [ + [ + "Generic", + "PLA", + "RatRig Generic PLA" + ] + ], "OFd2vX0G": [ [ "COEX 3D", @@ -15920,6 +12841,27 @@ "AliZ PA-CF" ] ], + "OFdD5Wbu": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker J1 PLA-CF" + ] + ], + "OFdEIwxy": [ + [ + "Generic", + "PLA-CF", + "Flashforge Generic PLA-CF10" + ] + ], + "OFdHsxB4": [ + [ + "Generic", + "TPU", + "TwoTrees Generic 95A TPU" + ] + ], "OFdI4zMo": [ [ "DREMC", @@ -15927,30 +12869,32 @@ "DREMC ASA CF" ] ], - "OFdLGn0R": [ + "OFdLdGgJ": [ + [ + "Generic", + "PVA", + "OrcaArena Generic PVA" + ] + ], + "OFdOWhCa": [ + [ + "Generic", + "PC", + "RatRig Generic PC" + ] + ], + "OFdXVjGZ": [ + [ + "Tiertime", + "PC", + "Tiertime PC" + ] + ], + "OFdXgp2K": [ [ "Generic", "PLA", - "Creality Generic PLA Wood" - ] - ], - "OFdNORGt": [ - [ - "Generic", - "ASA-GF", - "Flashforge ASA-GF" - ] - ], - "OFdSGkUG": [ - [ - "Anycubic", - "PETG", - "Anycubic PETG" - ], - [ - "Generic", - "PETG", - "Anycubic PETG" + "Chuanying Generic HS PLA" ] ], "OFdb8YNz": [ @@ -15960,11 +12904,32 @@ "FilAr PLA Verde Manzana" ] ], - "OFdhVJql": [ + "OFdkWDiy": [ [ - "Generic", + "Cubicon", "PLA", - "Flashforge PLA Buint Ti" + "Cubicon PLAi21" + ] + ], + "OFdlGycb": [ + [ + "CoLiDo", + "TPU", + "CoLiDo Generic TPU" + ] + ], + "OFdrYBmI": [ + [ + "Tiertime", + "ASA", + "Tiertime ASA" + ] + ], + "OFdtPd9h": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" ] ], "OFdzlrhi": [ @@ -15974,32 +12939,130 @@ "FilAr PLA-mate Chocolate" ] ], - "OFeFRwST": [ + "OFe61n6v": [ [ - "Generic", - "PVA", - "Flashforge PVA" + "RatRig", + "PETG-CF10", + "RatRig PunkFil PETG CF" ] ], - "OFePPmng": [ + "OFe6sfXS": [ + [ + "Generic", + "PC", + "FlashForge PC" + ] + ], + "OFe7Sx5B": [ + [ + "Generic", + "PETG", + "Sovol SV06 ACE PETG" + ] + ], + "OFe8UJXH": [ + [ + "Generic", + "PC", + "Creality Generic PC" + ] + ], + "OFe8tuNb": [ + [ + "Tiertime", + "PA6-CF", + "Tiertime PA6-CF" + ] + ], + "OFe8yBMG": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough 0.6 nozzle" + ] + ], + "OFeAxvEt": [ [ "Snapmaker", "ABS", - "Snapmaker J1 ABS Benchy" + "Snapmaker Dual ABS Benchy" ] ], - "OFeWMAGH": [ + "OFeCJqxx": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "OFeDfaCh": [ + [ + "CoLiDo", + "PLA", + "CoLiDo Generic PLA" + ] + ], + "OFeIyhUx": [ + [ + "Anycubic", + "PC-CF", + "Anycubic PC-CF" + ] + ], + "OFeJjoKF": [ + [ + "Generic", + "PA", + "FLSun Generic PA" + ] + ], + "OFeK2vkS": [ [ "Generic", "PLA", - "Flashforge HS PLA Burnt Ti" + "Chuanying Generic PLA-Silk" ] ], - "OFefhSuj": [ + "OFeTATC7": [ [ - "InfiMech", + "Snapmaker", + "Breakaway Support", + "Snapmaker J1 Breakaway" + ] + ], + "OFeVzkSU": [ + [ + "Polymaker", + "ABS", + "Fiberon PPS-GF20" + ] + ], + "OFec7Qiw": [ + [ + "Generic", "PLA", - "InfiMech PLA Hyper" + "Flashforge PLA Sparkle" + ] + ], + "OFeelsSM": [ + [ + "HATCHBOX", + "PLA", + "HATCHBOX PLA" + ] + ], + "OFelDBgv": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA" + ] + ], + "OFepU7Tl": [ + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Matte" ] ], "OFesA6rF": [ @@ -16009,6 +13072,13 @@ "Generic PLA Silk" ] ], + "OFetENFF": [ + [ + "Generic", + "ABS", + "OrcaArena Generic ABS" + ] + ], "OFexaZU2": [ [ "FilAr", @@ -16016,30 +13086,11 @@ "FilAr PLA Manteca" ] ], - "OFeybQvK": [ + "OFf0MkD5": [ [ "QIDI", - "ABS", - "QIDI ABS Rapido 0.2 nozzle" - ] - ], - "OFf0JIqs": [ - [ - "Eryone", - "PP", - "Eryone PP" - ] - ], - "OFf2b9wu": [ - [ - "Anycubic", - "ABS", - "Anycubic ABS" - ], - [ - "Generic", - "ABS", - "Anycubic ABS" + "PETG", + "QIDI PETG Translucent" ] ], "OFf5awy4": [ @@ -16049,6 +13100,13 @@ "Eolas Prints PLA Matte" ] ], + "OFf6ZEvu": [ + [ + "InfiMech", + "PC", + "InfiMech PC" + ] + ], "OFf6mfQO": [ [ "Bambu Lab", @@ -16056,6 +13114,13 @@ "Bambu Support for ABS" ] ], + "OFf6ynfH": [ + [ + "FlyingBear", + "PETG Basic", + "FlyingBear PETG Basic" + ] + ], "OFfBpSRI": [ [ "Bambu Lab", @@ -16063,6 +13128,13 @@ "Bambu ASA" ] ], + "OFfHGM1D": [ + [ + "re3D", + "PP", + "re3D rPP" + ] + ], "OFfJSCzm": [ [ "FDplast", @@ -16070,11 +13142,18 @@ "FDplast PETG" ] ], - "OFfJoIgg": [ + "OFfSqS4R": [ [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" + "Creality", + "PLA", + "ENDER FAST PLA" + ] + ], + "OFfZ0lTS": [ + [ + "Generic", + "PETG-CF", + "Qidi Generic PETG-CF" ] ], "OFfZcoKr": [ @@ -16084,25 +13163,25 @@ "FilAr PLA-mate Piel" ] ], - "OFfdxQok": [ + "OFfb10SK": [ [ - "Generic", - "PLA", - "Generic PLA+" + "Artillery", + "PC", + "Artillery PC" ] ], - "OFfiN1Lw": [ + "OFfegVpA": [ [ - "Generic", - "PLA", - "Chuanying Generic HS PLA" + "Polymaker", + "PA", + "Polymaker Generic S1" ] ], - "OFfkPhrJ": [ + "OFfmHUkQ": [ [ - "Generic", - "PLA", - "Creality HF Generic Speed PLA" + "Snapmaker", + "Breakaway Support", + "Snapmaker Dual Breakaway" ] ], "OFfmZrI3": [ @@ -16119,13 +13198,6 @@ "COEX TPE 40D" ] ], - "OFfoA8kJ": [ - [ - "CoLiDo", - "PLA", - "CoLiDo PLA" - ] - ], "OFfq5YXA": [ [ "Valment", @@ -16140,11 +13212,11 @@ "COEX TPE 60D" ] ], - "OFftQOek": [ + "OFfr6JDF": [ [ - "Generic", - "PLA", - "Flashforge PLA Matte" + "QIDI", + "PETG", + "QIDI PETG Tough 0.8 nozzle" ] ], "OFfuhviw": [ @@ -16154,11 +13226,32 @@ "Elegoo PLA Marble" ] ], - "OFg4N6ZL": [ + "OFfuih8e": [ [ - "FlyingBear", + "Creality", + "PLA", + "Creality Silk PLA" + ] + ], + "OFfxFQf9": [ + [ + "Generic", "PETG", - "FlyingBear PETG" + "Chuanying Generic PETG" + ] + ], + "OFfznI0Q": [ + [ + "Generic", + "PA-CF", + "Prusa Generic PA-CF" + ] + ], + "OFg3cWVt": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Metal" ] ], "OFg57Nmc": [ @@ -16182,30 +13275,11 @@ "Generic PA" ] ], - "OFgJX0Fc": [ + "OFgHh8ly": [ [ - "Generic", - "PPS", - "FlashForge PPS" - ] - ], - "OFgK2Xvv": [ - [ - "Anycubic", + "Afinia", "PLA", - "Anycubic PLA" - ], - [ - "Generic", - "PLA", - "Anycubic PLA" - ] - ], - "OFgMGSpF": [ - [ - "Generic", - "PETG", - "Sovol SV06 Plus ACE PETG" + "Afinia Value PLA" ] ], "OFgMWJ8T": [ @@ -16215,23 +13289,46 @@ "FilAr PLA Negro Azabache" ] ], - "OFgNzLVh": [ + "OFgSEwOZ": [ [ "Generic", - "ABS", - "Sovol Zero ABS" + "PETG", + "OrcaArena Generic PETG" ] ], - "OFgSK1hL": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA High Speed" - ], + "OFgSPtDn": [ [ "Generic", - "PLA", - "Anycubic PLA High Speed" + "PEEK", + "MM Generic PEEK" + ] + ], + "OFgSbX7E": [ + [ + "Volumic", + "PC", + "Volumic PC (Performance)" + ] + ], + "OFgVJhVt": [ + [ + "Generic", + "PLA-CF", + "Tiertime Generic PLA-CF" + ] + ], + "OFgVQkqW": [ + [ + "Cubicon", + "ABS", + "Cubicon ABSk" + ] + ], + "OFgXgt98": [ + [ + "Artillery", + "ABS", + "Artillery ABS" ] ], "OFgbpcy9": [ @@ -16241,11 +13338,32 @@ "Generic TPU" ] ], - "OFglpvEE": [ + "OFgcryz4": [ [ "Generic", - "TPU", - "Sovol SV06 ACE TPU" + "ASA", + "RatRig BigNozzle ASA" + ] + ], + "OFgeM7nD": [ + [ + "Flashforge", + "PA-CF", + "Flashforge PA12-CF" + ] + ], + "OFgf4gZa": [ + [ + "Generic", + "PA", + "Flashforge PA" + ] + ], + "OFglhKLM": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido 0.8 nozzle" ] ], "OFgpLTMR": [ @@ -16255,30 +13373,46 @@ "FilAr PETG Gris Plata" ] ], - "OFgrGfPy": [ + "OFgpQwkk": [ [ - "Anycubic", + "Creality", "PLA", - "Anycubic PLA+" - ], + "CR-PLA Fluo" + ] + ], + "OFgptDSf": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Matte" + ] + ], + "OFgvOmM2": [ [ "Generic", - "PLA", - "Anycubic PLA+" + "PETG", + "Anker Generic PETG" ] ], - "OFgtZjeX": [ + "OFgyPlwU": [ [ "Snapmaker", - "ABS", - "Snapmaker ABS Benchy" + "TPU", + "Snapmaker TPU High-Flow" ] ], - "OFh5GUhZ": [ + "OFh7mvPO": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Wood" + "Prusa Polymers", + "PVB", + "Prusament PVB" + ] + ], + "OFh9u9c0": [ + [ + "Generic", + "PA-GF", + "Generic PA6-GF" ] ], "OFhASRWj": [ @@ -16288,13 +13422,6 @@ "Panchroma PLA Temp Shift" ] ], - "OFhKNHC8": [ - [ - "Generic", - "PETG", - "Generic PETG PRO" - ] - ], "OFhMO9Kh": [ [ "GreenGate3D", @@ -16302,6 +13429,20 @@ "GreenGate3D PETG" ] ], + "OFhO5aEJ": [ + [ + "RatRig", + "ABS", + "RatRig PunkFil ABS" + ] + ], + "OFhQf8ou": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker PLA-CF" + ] + ], "OFhQfUQY": [ [ "Generic", @@ -16309,6 +13450,20 @@ "Generic SBS" ] ], + "OFhTPf6L": [ + [ + "Generic", + "PA6-CF", + "Generic PA6-CF" + ] + ], + "OFhUjPA5": [ + [ + "Eryone", + "TPU", + "Eryone TPU" + ] + ], "OFhWc5Bv": [ [ "NIT", @@ -16323,6 +13478,20 @@ "Eolas Prints PETG" ] ], + "OFhWrAuP": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "OFhbolij": [ + [ + "eSUN", + "PLA", + "eSUN PLA-Lite" + ] + ], "OFhcYzR8": [ [ "Elegoo", @@ -16330,6 +13499,13 @@ "Elegoo PLA Sparkle" ] ], + "OFhcrFw9": [ + [ + "Generic", + "TPU", + "Creality Generic TPU" + ] + ], "OFhfd722": [ [ "Eolas Prints", @@ -16337,6 +13513,20 @@ "Eolas Prints TPU Flex 93A" ] ], + "OFhiJE7Y": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "OFhkN0a7": [ + [ + "Creality", + "PA-CF", + "Hyper PA612-CF" + ] + ], "OFhlCNqq": [ [ "COEX 3D", @@ -16351,18 +13541,53 @@ "Bambu ABS" ] ], - "OFhzHd2Y": [ + "OFhwiZ50": [ [ - "Generic", - "HIPS", - "Flashforge HIPS" + "QIDI", + "PLA", + "QIDI PLA Rapido 0.2 nozzle" ] ], - "OFi1ocNv": [ + "OFhx4uOG": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "OFi5RSve": [ + [ + "eSUN", + "PLA", + "eSUN PLA-LW" + ] + ], + "OFi6PfUM": [ [ "Generic", + "PLA", + "Generic PLA-Silk" + ] + ], + "OFi7Bf0F": [ + [ + "Generic", + "ABS-CF", + "Flashforge ABS-CF" + ] + ], + "OFi90KlM": [ + [ + "Volumic", "PA", - "Flashforge PA" + "Volumic NYLON Ultra (Performance)" + ] + ], + "OFiCHnso": [ + [ + "Generic", + "PLA", + "Prusa Generic PLA" ] ], "OFiDpM1B": [ @@ -16372,11 +13597,18 @@ "FilAr PLA-mate Bordo" ] ], - "OFiJYDPC": [ + "OFiEz2XI": [ [ - "HATCHBOX", - "PLA", - "HATCHBOX PLA" + "Cubicon", + "PA", + "Cubicon PA-CF" + ] + ], + "OFiUSDih": [ + [ + "Generic", + "PA", + "Blocks Generic PA" ] ], "OFiWaoqD": [ @@ -16386,32 +13618,67 @@ "DREMC PPA-CF" ] ], - "OFic2uNr": [ + "OFifxPW1": [ [ "Generic", "PLA", - "Sovol SV06 ACE PLA" + "DeltaMaker Generic PLA" ] ], - "OFicxmSa": [ + "OFilAA3b": [ + [ + "Eryone", + "PLA-CF", + "Eryone PLA-CF" + ] + ], + "OFilD4bP": [ + [ + "FlyingBear", + "PLA", + "FlyingBear PLA" + ] + ], + "OFilnglt": [ + [ + "Artillery", + "PETG", + "Artillery PETG" + ] + ], + "OFin64Qg": [ [ "Generic", "PLA", - "Prusa Generic PLA HF" + "Generic Support for PLA" ] ], - "OFidJLn8": [ + "OFiorRtJ": [ + [ + "Generic", + "PVA", + "Blocks Generic PVA" + ] + ], + "OFitS8al": [ [ "Polymaker", - "ABS", - "PolyLite ABS" + "PLA", + "PolyLite PLA Neon" ] ], - "OFiyGNbI": [ + "OFiuJSmy": [ [ - "Elegoo", - "PETG", - "Elegoo PETG-CF" + "Generic", + "PLA", + "RatRig BigNozzle PLA" + ] + ], + "OFiwEbze": [ + [ + "Volumic", + "PETG-ESD", + "PETG ESD (Performance)" ] ], "OFj3bTjw": [ @@ -16421,11 +13688,32 @@ "FilAr PLA-mate Amarillo" ] ], - "OFjFPhUC": [ + "OFj64R5U": [ [ - "Generic", - "PLA", - "Prusament rPLA" + "Peopoly", + "ABS", + "Peopoly Lancer ABS-GF" + ] + ], + "OFjD3YTW": [ + [ + "QIDI", + "PC-ABS-FR", + "Qidi PC-ABS-FR" + ] + ], + "OFjHrAX0": [ + [ + "WonderMaker", + "ABS", + "WonderMaker ABS" + ] + ], + "OFjLAYgO": [ + [ + "Anycubic", + "PEBA", + "Anycubic PEBA" ] ], "OFjPXrXO": [ @@ -16442,11 +13730,25 @@ "FilAr PLA Tabaco" ] ], - "OFjZw7k1": [ + "OFjUGUIK": [ [ - "Polymaker", + "iQ Materials", + "PACF Pro", + "Fiberthree PACF Pro P1" + ] + ], + "OFjVOWfJ": [ + [ + "Anycubic", "PLA", - "PolyTerra J1 PLA" + "Anycubic PLA High Speed" + ] + ], + "OFjXrKFO": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Impact" ] ], "OFjb0wos": [ @@ -16456,42 +13758,32 @@ "Panchroma PLA Metallic" ] ], - "OFjdTQd6": [ + "OFjcwUEm": [ [ - "Anycubic", + "Cubicon", "PLA", - "Anycubic PLA Silk" - ], - [ - "Generic", - "PLA", - "Anycubic PLA Silk" + "Cubicon PLA" ] ], - "OFjepy6j": [ + "OFjkdnyN": [ [ - "FusRock", - "S-PAHT", - "FusRock Generic S-PAHT" - ], - [ - "Generic", - "PA-CF", - "FusRock Generic S-PAHT" + "Snapmaker", + "TPU", + "Snapmaker Dual TPU" ] ], - "OFjj9Yiz": [ - [ - "Generic", - "PETG", - "RatRig BigNozzle PETG" - ] - ], - "OFjohFkg": [ + "OFjoAe0R": [ [ "QIDI", - "PETG", - "QIDI PETG Translucent" + "PLA-CF", + "Qidi PLA-CF" + ] + ], + "OFjoIVZ6": [ + [ + "FlyingBear", + "PA-CF", + "FlyingBear Generic PA-CF" ] ], "OFjorDcx": [ @@ -16501,13 +13793,6 @@ "FDplast ABS" ] ], - "OFjqPjjl": [ - [ - "Generic", - "PET", - "Generic PET" - ] - ], "OFjt9en1": [ [ "Generic", @@ -16515,25 +13800,11 @@ "Generic CoPE" ] ], - "OFjurQ3I": [ + "OFjz0a3m": [ [ - "Generic", - "PETG", - "Sovol Zero PETG" - ] - ], - "OFk388hR": [ - [ - "Generic", - "PA6-CF", - "Generic PA6-CF" - ] - ], - "OFk6T5YH": [ - [ - "Generic", - "PETG", - "Sovol Zero PETG HS Nozzle" + "Prusa Polymers", + "PC-CF", + "Prusament PC-CF" ] ], "OFk8t9mz": [ @@ -16543,6 +13814,20 @@ "Fiberon PETG-rCF" ] ], + "OFkAltI8": [ + [ + "Other", + "PA-CF", + "Other PA-CF" + ] + ], + "OFkGp50Y": [ + [ + "Volumic", + "UNIV", + "Volumic UNIVERSAL Ultra (Performance)" + ] + ], "OFkGvN4d": [ [ "FilAr", @@ -16557,25 +13842,32 @@ "Fiberon PA6-CF" ] ], - "OFkaDtKx": [ + "OFkR8E2c": [ [ - "FusRock", - "PA-CF", - "Flashforge PA66-CF" + "Prusa Polymers", + "PETG", + "Prusament PETG" ] ], - "OFkeeluv": [ + "OFkUaDnU": [ [ "Generic", - "ASA", - "Prusa Generic ASA HF" + "PE-CF", + "Tiertime Generic PE-CF" ] ], - "OFkfK62J": [ + "OFkWaWRo": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Silk" + "Generic", + "TPU", + "Sovol SV06 Plus ACE TPU" + ] + ], + "OFkYkQGO": [ + [ + "Generic", + "PP-GF", + "Tiertime Generic PP-GF" ] ], "OFkhhUS0": [ @@ -16585,11 +13877,11 @@ "Elegoo Rapid PLA+" ] ], - "OFklg4aM": [ + "OFklJcWK": [ [ - "Elegoo", + "Other", "PLA", - "Elegoo PLA PRO" + "Other PLA Hyper" ] ], "OFknl9Iz": [ @@ -16606,11 +13898,32 @@ "FilAr PLA Verde Oliva" ] ], - "OFkoT6jl": [ + "OFkq7rPy": [ + [ + "Eryone", + "PA-GF", + "Eryone PA-GF" + ] + ], + "OFks6esg": [ + [ + "Creality", + "PLA", + "EN-PLA+" + ] + ], + "OFkwIWwc": [ [ "Generic", "PLA", - "Prusament PLA" + "Flashforge PLA Color Change" + ] + ], + "OFkx5MEe": [ + [ + "Artillery", + "PVA", + "Artillery PVA" ] ], "OFkzr35f": [ @@ -16620,18 +13933,60 @@ "Eolas Prints PLA Antibacterial" ] ], - "OFlN56xW": [ + "OFl2SXmv": [ [ "Generic", - "PLA", - "Chuanying Generic PLA-Silk" + "FLEX", + "Prusa Generic FLEX" ] ], - "OFlNKZLP": [ + "OFl4ItvQ": [ [ "Generic", "PLA", - "Flashforge PLA Metal" + "Prusa Generic PLA HF" + ] + ], + "OFl7nOAf": [ + [ + "Generic", + "PETG", + "Sovol SV06 Plus ACE PETG" + ] + ], + "OFlBoEfL": [ + [ + "Snapmaker", + "TPU", + "Snapmaker J1 TPU High-Flow" + ] + ], + "OFlIsW6f": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Matte" + ] + ], + "OFlLmUeV": [ + [ + "Generic", + "PLA", + "Ginger Generic PLA" + ] + ], + "OFlN6DL1": [ + [ + "QIDI", + "UltraPA", + "QIDI PA-Ultra" + ] + ], + "OFlNWVr5": [ + [ + "Generic", + "PETG-CF", + "Flashforge Generic PETG-CF10" ] ], "OFlP3KWq": [ @@ -16648,11 +14003,18 @@ "Eolas Prints ASA" ] ], - "OFlbn4FY": [ + "OFlXJxX1": [ [ - "Snapmaker", - "PLA", - "Snapmaker PLA Matte" + "Generic", + "PETG", + "Chuanying PETG" + ] + ], + "OFllmFhT": [ + [ + "Generic", + "PETG", + "Generic PETG PRO" ] ], "OFln72PT": [ @@ -16669,6 +14031,13 @@ "Elegoo PC-FR" ] ], + "OFlufQpZ": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA" + ] + ], "OFlwmqrC": [ [ "Polymaker", @@ -16676,18 +14045,11 @@ "Polymaker HT-PLA-GF" ] ], - "OFlxnxDx": [ + "OFlx52rn": [ [ "Generic", - "SBS", - "Tiertime Generic SBS" - ] - ], - "OFlzQ0IS": [ - [ - "Peopoly", - "PET-CF", - "Peopoly Lancer PET-CF" + "PLA-CF", + "RatRig Generic PLA-CF" ] ], "OFm06H6V": [ @@ -16697,18 +14059,25 @@ "Elegoo PLA Basic" ] ], - "OFm1VZed": [ + "OFm4ysMO": [ [ - "Generic", - "PLA-CF", - "Flashforge Generic PLA-CF" + "FlyingBear", + "ABS", + "FlyingBear ABS" ] ], - "OFmF1xL9": [ + "OFm70lLt": [ [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" + "CoLiDo", + "PLA", + "CoLiDo PLA" + ] + ], + "OFmFwUWM": [ + [ + "Prusa Polymers", + "ASA", + "Prusament ASA" ] ], "OFmJAd3A": [ @@ -16718,18 +14087,18 @@ "FDplast HIPS" ] ], - "OFmKNi3f": [ + "OFmKU2Ha": [ [ - "QIDI", + "Eryone", "PLA", - "QIDI PLA Rapido" + "Eryone PLA" ] ], - "OFmOWC74": [ + "OFmQkb3c": [ [ - "Elegoo", - "PETG", - "Elegoo PETG PRO" + "Generic", + "PLA", + "Flashforge HS PLA Burnt Ti" ] ], "OFmY0l6t": [ @@ -16739,6 +14108,20 @@ "Generic PLA Matte" ] ], + "OFma52eS": [ + [ + "Generic", + "ABS", + "Blocks Generic ABS" + ] + ], + "OFma5TXH": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], "OFmaeU4a": [ [ "FilAr", @@ -16746,25 +14129,18 @@ "FilAr PLA-mate Naranja" ] ], - "OFmcJsqt": [ - [ - "InfiMech", - "TPU", - "InfiMech TPU" - ] - ], - "OFmduKVr": [ + "OFmexHIS": [ [ "Generic", - "PPS-CF", - "FlashForge PPS-CF" + "PETG", + "RatRig BigNozzle PETG" ] ], - "OFmgesco": [ + "OFmfizbq": [ [ - "Generic", - "TPU", - "Flashforge TPU 65D" + "Orca Arena", + "PLA", + "Arena PLA Silk" ] ], "OFmhJs5V": [ @@ -16774,6 +14150,20 @@ "Elegoo TPU" ] ], + "OFmhWhEf": [ + [ + "Generic", + "PLA", + "Creality HF Generic PLA" + ] + ], + "OFmjN2bc": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA" + ] + ], "OFmn9NZL": [ [ "FusRock", @@ -16781,6 +14171,13 @@ "FusRock ABS-GF" ] ], + "OFmnJNqY": [ + [ + "Generic", + "PA", + "OrcaArena Generic PA" + ] + ], "OFmpMwxS": [ [ "Generic", @@ -16795,6 +14192,13 @@ "Elegoo PETG-GF" ] ], + "OFmzftED": [ + [ + "Generic", + "ASA", + "OrcaArena Generic ASA" + ] + ], "OFn1QaY3": [ [ "Elegoo", @@ -16802,32 +14206,60 @@ "Elegoo PLA Translucent2" ] ], - "OFnLnZQo": [ + "OFn2GlhY": [ [ - "Cubicon", - "PC", - "Cubicon PC" - ] - ], - "OFnMW5jr": [ - [ - "FlyingBear", - "ABS", - "FlyingBear ABS" - ] - ], - "OFnRTkEq": [ - [ - "RatRig", - "PETG", - "RatRig PunkFil PETG" - ] - ], - "OFnY9ovF": [ - [ - "Artillery", + "Creality", "PA-CF", - "Artillery PA-CF" + "Hyper PA6-CF" + ] + ], + "OFn6WpN7": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "OFnHc3D6": [ + [ + "eSUN", + "PLA-CF", + "eSUN PLA-CF" + ] + ], + "OFnMv3W5": [ + [ + "Generic", + "PLA", + "Flashforge HS PLA" + ] + ], + "OFnO4wnf": [ + [ + "Prusa Polymers", + "PLA", + "Prusament PLA" + ] + ], + "OFnSeLHk": [ + [ + "CoLiDo", + "PLA", + "CoLiDo PLA Silk" + ] + ], + "OFnXrkhA": [ + [ + "InfiMech", + "PA-CF", + "InfiMech PA-CF" + ] + ], + "OFnXwW8l": [ + [ + "Polymaker", + "PLA", + "PolyLite PLA Pro Metallic" ] ], "OFnYVFk2": [ @@ -16837,6 +14269,27 @@ "FilAr PLA Azul Francia" ] ], + "OFncpm7O": [ + [ + "WonderMaker", + "PLA", + "WonderMaker PLA Silk" + ] + ], + "OFndmfJ1": [ + [ + "Generic", + "PLA", + "Anker Generic PLA" + ] + ], + "OFneOFWe": [ + [ + "CoLiDo", + "ABS", + "CoLiDo ABS" + ] + ], "OFnejEt4": [ [ "FilAr", @@ -16844,6 +14297,27 @@ "FilAr PETG Cian" ] ], + "OFnfBvn5": [ + [ + "Generic", + "PLA", + "Artillery Generic PLA" + ] + ], + "OFngcE81": [ + [ + "LH Stinger", + "TPU", + "LHS TPU Foamy 78A" + ] + ], + "OFnh79eM": [ + [ + "Generic", + "ABS", + "SecKit Generic ABS" + ] + ], "OFniMuTN": [ [ "Bambu Lab", @@ -16851,25 +14325,18 @@ "Bambu PA6-CF" ] ], - "OFnj7bPm": [ + "OFnmp6rt": [ [ - "QIDI", - "ABS", - "QIDI ABS Rapido 0.6 nozzle" - ] - ], - "OFnsWQTp": [ - [ - "QIDI", + "Anycubic", "PLA", - "QIDI WOOD Rapido" + "Anycubic PLA+" ] ], - "OFnyirh9": [ + "OFo15hcT": [ [ - "Artillery", - "PLA Silk", - "Artillery PLA Silk" + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" ] ], "OFo2UF2C": [ @@ -16879,32 +14346,32 @@ "Generic BVOH" ] ], - "OFo4VB3w": [ + "OFo6n2pB": [ [ - "Generic", - "ABS-CF", - "Generic ABS-CF" + "Anycubic", + "PETG", + "Anycubic PETG" ] ], - "OFo9EwvK": [ + "OFoBTKmn": [ [ - "Generic", - "PETG-CF", - "Generic PETG-CF10" + "Cubicon", + "PETG", + "Cubicon PETG" ] ], - "OFoAaHcF": [ - [ - "FusRock", - "PAHT-GF", - "FusRock Generic PAHT-GF" - ] - ], - "OFoJUGj6": [ + "OFoDgVnY": [ [ "Generic", "PLA", - "Flashforge HS PLA" + "FLSun S1 PLA Generic" + ] + ], + "OFoJcr46": [ + [ + "Generic", + "ASA", + "Prusa Generic ASA" ] ], "OFoSknDB": [ @@ -16914,6 +14381,20 @@ "FILL3D PLA Turbo" ] ], + "OFoT8F7Y": [ + [ + "Generic", + "PVA", + "Prusa Generic PVA HF" + ] + ], + "OFoVZg32": [ + [ + "Generic", + "TPU", + "SecKit Generic TPU" + ] + ], "OFoYSJKi": [ [ "Generic", @@ -16935,6 +14416,20 @@ "AliZ PETG" ] ], + "OFodPDxO": [ + [ + "Generic", + "PLA", + "Tiertime Generic PLA High Speed" + ] + ], + "OFogbnCb": [ + [ + "Generic", + "PPS-CF", + "FlashForge PPS-CF" + ] + ], "OFoiVqVM": [ [ "Bambu Lab", @@ -16942,11 +14437,18 @@ "Bambu PLA Basic" ] ], - "OFoimrpo": [ + "OFoqrHTw": [ [ "Generic", - "PETG-CF", - "Flashforge PETG-CF" + "PLA", + "FLSun S1 PLA High Speed" + ] + ], + "OForhBi4": [ + [ + "Cubicon", + "ABS", + "Cubicon ABSk" ] ], "OFovEIbw": [ @@ -16956,18 +14458,46 @@ "Bambu PETG HF" ] ], - "OFp8lkYD": [ + "OFp4ETDP": [ [ - "FusRock", - "PPA-GF", - "Flashforge PPA-GF" + "Creality", + "PLA", + "CR-PLA" ] ], - "OFp90N8a": [ + "OFp57RRC": [ [ - "Artillery", - "PA", - "Artillery PA" + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "OFp8gtPH": [ + [ + "Generic", + "PLA", + "Creality Generic PLA Silk" + ] + ], + "OFp9wdmf": [ + [ + "Eryone", + "PA-CF", + "Eryone PA-CF" + ] + ], + "OFpAaY6w": [ + [ + "Generic", + "ASA", + "Creality Generic ASA" + ] + ], + "OFpBV2Ma": [ + [ + "Generic", + "PETG", + "Tinmorry PETG-ECO" ] ], "OFpBlrvY": [ @@ -16977,11 +14507,11 @@ "Valment PLA Silk" ] ], - "OFpHq9gJ": [ + "OFpDo5Ix": [ [ - "Generic", - "PETG", - "Prusament PETG" + "Cubicon", + "ABS", + "Cubicon ABS" ] ], "OFpPGSKG": [ @@ -16991,6 +14521,20 @@ "SUNLU Silk PLA+" ] ], + "OFpPJSHE": [ + [ + "Peopoly", + "PETG", + "Peopoly Lancer PETG-C" + ] + ], + "OFpSYJLI": [ + [ + "Generic", + "PLA", + "Creality Generic PLA Matte" + ] + ], "OFpW4gdi": [ [ "SUNLU", @@ -16998,18 +14542,39 @@ "SUNLU PLA Matte" ] ], - "OFphFSUJ": [ + "OFptvi3F": [ [ "Generic", - "PETG", - "Prusa Generic PETG HF" + "PPA-GF", + "Tiertime Generic PPA-GF" ] ], - "OFq6IhFg": [ + "OFpu74Qe": [ [ - "Cubicon", + "Snapmaker", "PLA", - "Cubicon PLA" + "Snapmaker PLA Eco" + ] + ], + "OFpumhCM": [ + [ + "Volumic", + "UNIV", + "Volumic UNIVERSAL Ultra" + ] + ], + "OFq0TY7C": [ + [ + "Flashforge", + "ASA-CF", + "Flashforge ASA-CF" + ] + ], + "OFq5QANf": [ + [ + "Generic", + "PC", + "Prusa Generic PC HF" ] ], "OFq8gfS4": [ @@ -17019,6 +14584,13 @@ "FilAr PETG Negro Azabache" ] ], + "OFq9svOz": [ + [ + "Generic", + "PPS", + "Generic PPS" + ] + ], "OFqGRZyH": [ [ "Numakers", @@ -17033,32 +14605,32 @@ "eSUN PLA+" ] ], - "OFqPp2yL": [ + "OFqKmLJe": [ + [ + "Generic", + "PETG", + "Creality Generic PETG-CF" + ] + ], + "OFqOk9Ww": [ + [ + "Generic", + "ABS", + "Peopoly Generic ABS" + ] + ], + "OFqS8fzK": [ + [ + "Generic", + "PETG", + "SecKit Generic PETG" + ] + ], + "OFqcL5UF": [ [ "QIDI", - "PETG", - "QIDI PETG Tough 0.6 nozzle" - ] - ], - "OFqRWRU6": [ - [ - "Generic", - "ABS-GF", - "Flashforge ABS-GF" - ] - ], - "OFqSTJ3I": [ - [ - "Generic", - "PLA", - "OrcaArena Generic PLA Silk" - ] - ], - "OFqkcvDI": [ - [ - "Peopoly", - "ABS", - "Peopoly Lancer ABS-GF" + "PA-S", + "QIDI Support For PET/PA" ] ], "OFqtx549": [ @@ -17075,13 +14647,6 @@ "Panchroma CoPE" ] ], - "OFqyIUDi": [ - [ - "QIDI", - "PLA-CF", - "Qidi PLA-CF" - ] - ], "OFrFBEfd": [ [ "Eolas Prints", @@ -17089,6 +14654,13 @@ "Eolas Prints PLA Neon" ] ], + "OFrGJ4tR": [ + [ + "Anycubic", + "PLA", + "Anycubic PLA Slik" + ] + ], "OFrKLeE3": [ [ "Bambu Lab", @@ -17096,6 +14668,27 @@ "Bambu PLA Metal" ] ], + "OFrLiqiM": [ + [ + "InfiMech", + "PETG", + "InfiMech PETG" + ] + ], + "OFrM4hdm": [ + [ + "Creality", + "PLA-CF", + "CR-PLA Carbon" + ] + ], + "OFrO2zyn": [ + [ + "Generic", + "PLA", + "Creality Generic PLA High Speed" + ] + ], "OFrOh600": [ [ "Polymaker", @@ -17103,11 +14696,67 @@ "Panchroma PLA Matte" ] ], - "OFrbbq6E": [ + "OFrQqCwL": [ [ - "Other", + "InfiMech", "PLA", - "Other PLA Hyper" + "InfiMech Generic PLA" + ] + ], + "OFrdZ0cK": [ + [ + "eSUN", + "PETG", + "eSUN PETG+HS" + ] + ], + "OFrgGex8": [ + [ + "Generic", + "PETG", + "Blocks Generic PETG" + ] + ], + "OFrh4bBH": [ + [ + "Generic", + "ASA", + "SecKit Generic ASA" + ] + ], + "OFrjacXf": [ + [ + "Flashforge", + "PET-CF", + "Flashforge PET-CF" + ] + ], + "OFrnJJEa": [ + [ + "Generic", + "EVA", + "Tiertime Generic EVA" + ] + ], + "OFrnkURQ": [ + [ + "Generic", + "PLA", + "Flashforge PLA Metal" + ] + ], + "OFrr67nG": [ + [ + "Orca Arena", + "PC", + "Arena PC" + ] + ], + "OFrrMLDw": [ + [ + "Generic", + "PLA", + "Flashforge Generic PLA-SILK" ] ], "OFryjl35": [ @@ -17117,11 +14766,18 @@ "Elegoo ASA-CF" ] ], - "OFs1CbB1": [ + "OFs1sNLz": [ [ - "QIDI", - "PLA", - "QIDI PLA Rapido 0.8 nozzle" + "Generic", + "ABS", + "Chuanying ABS" + ] + ], + "OFs2ReMr": [ + [ + "InfiMech", + "PETG", + "InfiMech Generic PETG" ] ], "OFsB2lxm": [ @@ -17131,11 +14787,18 @@ "Elegoo PLA Matte" ] ], - "OFsCOJv7": [ + "OFsCbVbN": [ [ "Generic", - "TPU", - "Generic TPU" + "PVA", + "Anker Generic PVA" + ] + ], + "OFsD974q": [ + [ + "Volumic", + "PETG", + "Volumic PETG Ultra (Performance)" ] ], "OFsDXRpS": [ @@ -17145,6 +14808,20 @@ "FilAr PLA Piel" ] ], + "OFsF96Gt": [ + [ + "Generic", + "PLA-CF", + "FLSun Generic PLA-CF" + ] + ], + "OFsFo7ms": [ + [ + "Volumic", + "PP", + "Volumic PP Ultra" + ] + ], "OFsFon5l": [ [ "Generic", @@ -17152,6 +14829,13 @@ "Generic HIPS" ] ], + "OFsGqI4y": [ + [ + "Generic", + "PETG", + "Ginger Generic PETG" + ] + ], "OFsHSVZc": [ [ "Bambu Lab", @@ -17159,11 +14843,18 @@ "Bambu Support W" ] ], - "OFsLkLw6": [ + "OFsNJjpc": [ [ "Generic", - "PLA", - "Generic PLA Matte" + "TPU", + "RatRig BigNozzle TPU" + ] + ], + "OFsP8PKH": [ + [ + "Generic", + "ABS", + "Generic ABS HT" ] ], "OFsRDvTM": [ @@ -17173,6 +14864,13 @@ "Panchroma PLA" ] ], + "OFsXOMoX": [ + [ + "Generic", + "PLA", + "Qidi Generic PLA+" + ] + ], "OFsXQXbs": [ [ "FilAr", @@ -17180,18 +14878,11 @@ "FilAr PETG Blanco Antartida" ] ], - "OFsgANe3": [ + "OFsoQ12i": [ [ "Generic", - "PAHT-CF", - "Flashforge PAHT-CF" - ] - ], - "OFsmPFwh": [ - [ - "Generic", - "TPU", - "Sovol SV06 Plus ACE TPU" + "ABS", + "Comgrow Generic ABS" ] ], "OFsoykbm": [ @@ -17201,18 +14892,32 @@ "DREMC PA6-CF" ] ], - "OFt1YdX8": [ + "OFsxRSwr": [ [ "Generic", - "PLA", - "FLSun T1 PLA Silk" + "PVA", + "RatRig Generic PVA" ] ], - "OFt5bvKK": [ + "OFsxlLdo": [ [ - "Artillery", - "PETG Basic", - "Artillery PETG Basic" + "Generic", + "ASA", + "Qidi Generic ASA" + ] + ], + "OFt0JbR7": [ + [ + "Snapmaker", + "PLA", + "Snapmaker J1 PLA Metal" + ] + ], + "OFt3HtlG": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" ] ], "OFt6e0US": [ @@ -17222,32 +14927,39 @@ "FilAr PETG Amarillo Lima" ] ], - "OFt9AiN5": [ + "OFt7SngH": [ [ - "Generic", - "PA", - "Polymaker CoPA" + "Snapmaker", + "ASA", + "Snapmaker J1 ASA" ] ], - "OFtEFtsz": [ + "OFtFtiS0": [ [ "Polymaker", - "PA", - "Polymaker Generic CoPA" + "PETG", + "Polymaker PETG Galaxy" ] ], - "OFtJMczs": [ + "OFtGC1ye": [ [ - "Generic", - "TPU-64D", - "Flashforge TPU-64D" + "Artillery", + "PA-CF", + "Artillery PA-CF" ] ], - "OFtL05hE": [ + "OFtKeKa9": [ [ - "Generic", + "Orca Arena", "PLA", - "Sovol Zero PLA Basic HS Nozzle" + "Arena PLA Tough" + ] + ], + "OFtOPlK6": [ + [ + "Orca Arena", + "PA-CF", + "Arena PAHT-CF" ] ], "OFtOoWIj": [ @@ -17257,6 +14969,13 @@ "FilAr PLA-mate" ] ], + "OFtP1rqJ": [ + [ + "Generic", + "PVA", + "FLSun Generic PVA" + ] + ], "OFtRn8X8": [ [ "FDplast", @@ -17264,25 +14983,18 @@ "FDplast SBS" ] ], - "OFtXBjvb": [ - [ - "Artillery", - "PLA Tough", - "Artillery PLA Tough" - ] - ], - "OFtcKVgP": [ + "OFtTHNTj": [ [ "Generic", - "PC", - "fdm_filament_pc" + "PLA", + "Flashforge Generic PLA" ] ], - "OFtcTs1o": [ + "OFtTYl9Q": [ [ "Generic", - "ABS", - "RatRig BigNozzle ABS" + "ASA", + "Flashforge ASA" ] ], "OFtefokm": [ @@ -17292,34 +15004,6 @@ "FilAr PLA-mate Blanco" ] ], - "OFtemzzw": [ - [ - "Generic", - "ABS", - "Sovol SV06 ACE ABS" - ] - ], - "OFtet8ui": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU High-Flow" - ] - ], - "OFti31HS": [ - [ - "Cubicon", - "PLA", - "Cubicon PLAi21" - ] - ], - "OFtmT4Nd": [ - [ - "Artillery", - "ASA", - "Artillery ASA" - ] - ], "OFtpXCCv": [ [ "COEX 3D", @@ -17327,6 +15011,13 @@ "COEX ASA PRIME" ] ], + "OFtplX8o": [ + [ + "Generic", + "ABS", + "RatRig BigNozzle ABS" + ] + ], "OFtr8eZw": [ [ "FDplast", @@ -17334,6 +15025,13 @@ "FDplast PLA" ] ], + "OFtsVp4v": [ + [ + "Generic", + "PA-CF", + "SecKit Generic PA-CF" + ] + ], "OFtudokz": [ [ "Eolas Prints", @@ -17341,11 +15039,25 @@ "Eolas Prints PLA Premium" ] ], - "OFtwA91m": [ + "OFtybfNX": [ [ - "Generic", + "Snapmaker", + "PLA", + "Snapmaker PLA Metal" + ] + ], + "OFu08yGN": [ + [ + "Volumic", + "PETG", + "Volumic PETG Ultra carbone" + ] + ], + "OFu0fjPJ": [ + [ + "LH Stinger", "PC", - "Sovol Zero PC" + "LHS PC CF" ] ], "OFu1evlr": [ @@ -17355,25 +15067,53 @@ "Generic PCTG" ] ], - "OFuPC4S8": [ + "OFu79SUH": [ [ - "Elegoo", + "Generic", "PLA", - "Elegoo PLA-CF" + "Qidi Generic PLA" ] ], - "OFuPN3iW": [ + "OFuFqYyG": [ [ - "Other", + "Generic", + "PAHT-CF", + "Flashforge PAHT-CF" + ] + ], + "OFuGRMNV": [ + [ + "Generic", + "PA-CF", + "Flashforge PA-CF" + ] + ], + "OFuJ49uH": [ + [ + "QIDI", "PETG", - "Other PETG" + "QIDI PETG Basic" ] ], - "OFuTFxVP": [ + "OFuO0cAP": [ [ - "Overture", - "ABS", - "Overture ABS" + "Orca Arena", + "PETG-CF", + "Arena PETG-CF" + ] + ], + "OFuSwKgm": [ + [ + "Generic", + "PLA", + "Tiertime Generic PLA" + ] + ], + "OFuUJyRx": [ + [ + "Generic", + "PLA", + "FLSun T1 PLA Silk" ] ], "OFuUuIhR": [ @@ -17383,6 +15123,13 @@ "Elegoo PETG-CF" ] ], + "OFuV79ru": [ + [ + "Flashforge", + "PA-CF", + "Flashforge PA66-CF" + ] + ], "OFuWCQXN": [ [ "COEX 3D", @@ -17390,18 +15137,11 @@ "COEX ABS PRIME" ] ], - "OFuXkYly": [ + "OFuehn62": [ [ - "Elegoo", + "Orca Arena", "PLA", - "Elegoo PLA Glow" - ] - ], - "OFuYvNS3": [ - [ - "Afinia", - "ABS", - "Afinia Value ABS" + "Arena PLA Marble" ] ], "OFufTAK9": [ @@ -17411,18 +15151,32 @@ "FilAr PLA-mate Negro" ] ], - "OFuidAEg": [ + "OFughwKn": [ [ - "Bambu Lab", - "ABS", - "Bambu ABS" + "QIDI", + "PLA", + "QIDI PLA Matte Basic" ] ], - "OFuq9tqb": [ + "OFujZSdh": [ [ - "InfiMech", - "PLA", - "InfiMech PLA Basic" + "Creality", + "PETG", + "Hyper PETG" + ] + ], + "OFulOdT2": [ + [ + "Generic", + "TPU", + "Generic TPU 85A" + ] + ], + "OFupq0tY": [ + [ + "Generic", + "PLA-CF", + "Blocks Generic PLA-CF" ] ], "OFurdQxc": [ @@ -17432,39 +15186,39 @@ "FilAr PETG Magenta" ] ], - "OFuswXlp": [ + "OFusbWjj": [ [ - "Generic", + "Creality", + "PETG-CF", + "Hyper PETG-CF" + ] + ], + "OFuxH0Uz": [ + [ + "Volumic", "TPU", - "Generic TPU 85A" + "Volumic FLEX93 Ultra" ] ], - "OFuyJhLF": [ + "OFv4VZCd": [ [ "Generic", - "PETG", - "Flashforge PETG Basic" + "ABS", + "Qidi Generic ABS" ] ], - "OFv2NHLC": [ + "OFvDbkFq": [ [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF25" + "Prusa Polymers", + "PC", + "Prusament PC Blend" ] ], - "OFv8SRZh": [ + "OFvGc67v": [ [ "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], - "OFvGSn0l": [ - [ - "Generic", - "PETG", - "Creality Generic PETG-CF" + "ABS", + "Prusa Generic ABS" ] ], "OFvKUnLh": [ @@ -17474,18 +15228,11 @@ "Bambu TPU 95A HF" ] ], - "OFvN3117": [ + "OFvLppPU": [ [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "OFvOhSjO": [ - [ - "Other", - "TPU", - "Other TPU" + "Creality", + "PA", + "CR-Nylon" ] ], "OFvPPMxL": [ @@ -17495,6 +15242,13 @@ "FilAr PLA Verde FilAr" ] ], + "OFvPomQf": [ + [ + "Generic", + "PPS", + "Tiertime Generic PPS" + ] + ], "OFvTVZc3": [ [ "COEX 3D", @@ -17502,6 +15256,13 @@ "COEX PETG" ] ], + "OFvVxvzZ": [ + [ + "Generic", + "PLA", + "Flashforge PLA Metal" + ] + ], "OFvVy7yo": [ [ "Eolas Prints", @@ -17509,18 +15270,11 @@ "Eolas Prints TPU D60 UV Resistant" ] ], - "OFvYfHPB": [ + "OFvdZ2bx": [ [ - "Anycubic", + "QIDI", "PLA", - "Anycubic PLA Matte" - ] - ], - "OFvaXhYD": [ - [ - "InfiMech", - "PETG", - "InfiMech PETG" + "QIDI WOOD Rapido" ] ], "OFvgE0Zh": [ @@ -17530,13 +15284,6 @@ "Elegoo PLA" ] ], - "OFviQ9lH": [ - [ - "Generic", - "TPU", - "Flashforge Generic TPU" - ] - ], "OFvrXuV7": [ [ "Polymaker", @@ -17544,25 +15291,18 @@ "PolyLite ASA" ] ], - "OFvsS7Fb": [ + "OFvxIS9g": [ [ - "Generic", - "TPU-64D", - "Generic TPU-64D" + "Polymaker", + "PA-CF", + "Fiberon PA12-CF10" ] ], - "OFvw0owy": [ + "OFvyB0Bz": [ [ - "Afinia", + "Polymaker", "PLA", - "Afinia Value PLA" - ] - ], - "OFvxvkAd": [ - [ - "Artillery", - "PLA-CF", - "Artillery PLA-CF" + "PolyLite PLA Galaxy" ] ], "OFvzvwCu": [ @@ -17572,34 +15312,6 @@ "Eolas Prints PLA High Speed" ] ], - "OFw05rkF": [ - [ - "Other", - "PETG", - "Other PETG" - ] - ], - "OFw0qp7w": [ - [ - "Artillery", - "PET", - "Artillery PET" - ] - ], - "OFw1S8lL": [ - [ - "Artillery", - "ABS", - "Artillery ABS" - ] - ], - "OFwHPTvy": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA+" - ] - ], "OFwJ0qu2": [ [ "DREMC", @@ -17607,6 +15319,20 @@ "DREMC PET-CF" ] ], + "OFwLBAGf": [ + [ + "HATCHBOX", + "ABS", + "HATCHBOX ABS" + ] + ], + "OFwMFLAm": [ + [ + "Generic", + "ABS", + "Artillery Generic ABS" + ] + ], "OFwPrlCM": [ [ "Bambu Lab", @@ -17621,6 +15347,13 @@ "NIT PLA" ] ], + "OFwVVKEV": [ + [ + "Other", + "TPU", + "Other TPU" + ] + ], "OFwaYjL6": [ [ "Polymaker", @@ -17628,11 +15361,18 @@ "Fiberon PA6-GF" ] ], - "OFwf0oWp": [ + "OFwhLMs4": [ [ - "Generic", + "Snapmaker", "PLA", - "Flashforge PLA Luminous" + "Snapmaker PLA SnapSpeed" + ] + ], + "OFwpkvqf": [ + [ + "Orca Arena", + "PETG-CF", + "OrcaArena Generic PETG-CF" ] ], "OFwu7IAG": [ @@ -17642,11 +15382,25 @@ "COEX PCTG PRIME" ] ], - "OFwyqcGn": [ + "OFwxpmHM": [ [ - "Elegoo", - "PLA", - "Elegoo PLA Matte" + "Polymaker", + "PA", + "Polymaker Generic CoPA" + ] + ], + "OFwyt1xt": [ + [ + "Eryone", + "ASA-CF", + "Eryone ASA-CF" + ] + ], + "OFx0ZzFV": [ + [ + "Generic", + "PLA-CF", + "OrcaArena Generic PLA-CF" ] ], "OFx8Lmsd": [ @@ -17663,11 +15417,25 @@ "Overture PLA Pro" ] ], - "OFxLeRyT": [ + "OFxDHUX8": [ + [ + "SeeMeCNC", + "PETG", + "SeeMeCNC PETG" + ] + ], + "OFxJRuVF": [ + [ + "Anycubic", + "PC-GF", + "Anycubic PC-GF" + ] + ], + "OFxMGIPt": [ [ "Generic", - "PVA", - "Prusa Generic PVA HF" + "PPS", + "Flashforge PPS" ] ], "OFxOHhZw": [ @@ -17677,6 +15445,13 @@ "Elegoo ABS" ] ], + "OFxTMg1d": [ + [ + "FlyingBear", + "PC", + "FlyingBear Generic PC" + ] + ], "OFxUwUeW": [ [ "SUNLU", @@ -17684,62 +15459,146 @@ "SUNLU PLA Marble" ] ], - "OFxVzzn4": [ + "OFxYB4Sw": [ + [ + "Snapmaker", + "PETG-CF", + "Snapmaker J1 PETG-CF" + ] + ], + "OFxe4rXr": [ + [ + "Polymaker", + "PLA", + "PolyTerra PLA Marble" + ] + ], + "OFxg7n2G": [ [ "Generic", - "PLA-CF", - "Chuanying Generic PLA-CF10" - ] - ], - "OFxfCy9m": [ - [ - "Volumic", "PETG", - "Volumic PCTG Ultra (Performance)" + "RatRig Generic PETG" ] ], - "OFxjFYxE": [ + "OFxvKuYW": [ [ - "Elegoo", - "PETG", - "Elegoo PETG HF" + "Generic", + "PHA", + "Tiertime Generic PHA" ] ], - "OFxlch4V": [ + "OFy02QHU": [ [ - "CoLiDo", + "Polymaker", "PLA", - "CoLiDo PLA Silk" + "PolyLite PLA Translucent" ] ], - "OFxodd2u": [ - [ - "DeltaMaker", - "PLA", - "DeltaMaker Brand PLA" - ] - ], - "OFxxa5yn": [ + "OFy14TRA": [ [ "Snapmaker", "ABS", - "Snapmaker Dual ABS Benchy" + "Snapmaker J1 ABS" ] ], - "OFy7oQ1g": [ + "OFy3sW6j": [ + [ + "WonderMaker", + "ASA", + "WonderMaker ASA" + ] + ], + "OFy48TOp": [ [ "Generic", - "ASA", - "Blocks Generic ASA-CF" + "TPU-95A", + "Generic TPU-95A" ] ], - "OFyD1Zo8": [ + "OFy4ajVZ": [ + [ + "Generic", + "PLA", + "Qidi Generic PLA Silk" + ] + ], + "OFy8tYJE": [ + [ + "Cubicon", + "ABS", + "Cubicon ABS-A100" + ] + ], + "OFyCToOV": [ + [ + "Generic", + "TPU", + "Sovol SV08 TPU" + ] + ], + "OFyFRojy": [ + [ + "Generic", + "ABS", + "RatRig Generic ABS" + ] + ], + "OFyFyLIp": [ + [ + "SeeMeCNC", + "TPU", + "SeeMeCNC TPU" + ] + ], + "OFyHgT60": [ + [ + "Orca Arena", + "PLA", + "Arena PLA Sparkle" + ] + ], + "OFyK5Lt9": [ + [ + "Generic", + "PETG", + "Artillery Generic PETG" + ] + ], + "OFyLWVF3": [ + [ + "Generic", + "PETG-GF", + "Generic PETG-GF" + ] + ], + "OFyPG8v2": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Eco" + ] + ], + "OFyQwdaM": [ + [ + "Volumic", + "ABS", + "Volumic ABS Ultra (Performance)" + ] + ], + "OFyRCIMh": [ [ "Other", "PC", "Other PC" ] ], + "OFyUJI3q": [ + [ + "Volumic", + "ABS", + "Volumic ABS Ultra" + ] + ], "OFybzvQN": [ [ "FilAr", @@ -17747,18 +15606,53 @@ "FilAr PETG Gris Ceniza" ] ], - "OFyoW5W2": [ + "OFyeSq8A": [ [ "Generic", - "PLA", - "Flashforge PLA Color Change" + "ABS", + "Prusa Generic ABS HF" ] ], - "OFypQeKR": [ + "OFyhjiNs": [ + [ + "Snapmaker", + "PVA", + "Snapmaker PVA" + ] + ], + "OFyj3m13": [ + [ + "Snapmaker", + "PLA", + "Snapmaker Dual PLA Silk" + ] + ], + "OFymnal9": [ [ "Generic", - "PC-CF", - "Generic PC-CF" + "PETG", + "Sovol Zero PETG HS Nozzle" + ] + ], + "OFyoBZdm": [ + [ + "LH Stinger", + "PLA", + "LHS PLA" + ] + ], + "OFyreocX": [ + [ + "Tiertime", + "PVA", + "Tiertime PVA" + ] + ], + "OFyrnlUn": [ + [ + "Snapmaker", + "TPU", + "Snapmaker J1 TPU" ] ], "OFysxCep": [ @@ -17768,20 +15662,6 @@ "FilAr PETG Coral" ] ], - "OFyt23xJ": [ - [ - "Generic", - "PLA", - "FLSun T1 PLA High Speed" - ] - ], - "OFyxAbO4": [ - [ - "Generic", - "TPU-95A", - "Flashforge TPU-95A" - ] - ], "OFyxayW4": [ [ "Aliz", @@ -17789,32 +15669,53 @@ "AliZ PLA" ] ], - "OFzFbFcl": [ - [ - "Elegoo", - "PC", - "Elegoo PC-FR" - ] - ], - "OFzQQeCi": [ + "OFyySVby": [ [ "Generic", - "HIPS", - "Chuanying Generic HIPS" + "PVA", + "SecKit Generic PVA" ] ], - "OFzb2BLs": [ + "OFz3q5Xz": [ [ "Generic", "PETG", - "RatRig Generic PCTG" + "C1 Generic PETG" ] ], - "OFziUL2X": [ + "OFzAWsca": [ + [ + "QIDI", + "TPU", + "Qidi TPU 95A-HF" + ] + ], + "OFzB4uOs": [ [ "Generic", "PLA", - "Ginger Generic PLA" + "Sovol Zero PLA Basic HS Nozzle" + ] + ], + "OFzS7zt4": [ + [ + "Anycubic", + "PA", + "Anycubic PA" + ] + ], + "OFzXURfo": [ + [ + "FlyingBear", + "PETG", + "FlyingBear Generic PETG" + ] + ], + "OFzY7N3Z": [ + [ + "Artillery", + "PLA", + "Artillery PLA" ] ], "OFzrUUxc": [ @@ -17824,6 +15725,13 @@ "DREMC ABS" ] ], + "OFztQ7rO": [ + [ + "LH Stinger", + "ASA", + "LHS ABS" + ] + ], "OFzyIxba": [ [ "Bambu Lab", @@ -17831,746 +15739,11 @@ "Bambu PVA" ] ], - "OGFC99": [ - [ - "Generic", - "PC", - "fdm_filament_pc" - ] - ], - "OGFG99": [ - [ - "Generic", - "PETG", - "fdm_filament_pet" - ] - ], - "OGFL96": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "OGFN99": [ - [ - "Generic", - "PA", - "fdm_filament_pa" - ] - ], - "OGFSNL08": [ - [ - "Generic", - "PETG", - "SUNLU PETG" - ] - ], - "P1001": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Satin" - ] - ], - "P1002": [ - [ - "Polymaker", - "PLA", - "PolySonic PLA Pro" - ] - ], - "P1003": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Matte" - ] - ], - "P1004": [ - [ - "Polymaker", - "PLA", - "PolySonic PLA" - ] - ], - "P510cfa0": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA" - ] - ], - "P510cfa1": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA+" - ] - ], - "P510cfa2": [ - [ - "Cubicon", - "PLA", - "Cubicon PLAi21" - ] - ], - "P510cfb0": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS" - ] - ], - "P510cfb1": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS-A100" - ] - ], - "P510cfb2": [ - [ - "Cubicon", - "ABS", - "Cubicon ABSk" - ] - ], - "P510cfc0": [ - [ - "Cubicon", - "PETG", - "Cubicon PETG" - ] - ], - "P510cfd0": [ - [ - "Cubicon", - "PA", - "Cubicon PA-CF" - ] - ], - "P510eff9": [ - [ - "Generic", - "PETG", - "Ginger Generic PETG" - ] - ], - "Pfcf9c4c": [ - [ - "Artillery", - "PLA", - "Artillery PLA" - ] - ], - "Prusa Generic ABS @CORE One": [ + "OFzzmK2Q": [ [ "Generic", "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One 0.6": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One 0.8": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One HF 0.4": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One HF 0.5": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One HF 0.6": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ABS @CORE One HF 0.8": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], - "Prusa Generic ASA @CORE One": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One 0.6": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One 0.8": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One HF 0.4": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One HF 0.5": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One HF 0.6": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic ASA @CORE One HF 0.8": [ - [ - "Prusa Polymers", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusa Generic PETG @CORE One": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One 0.6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One 0.8": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One HF 0.4": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One HF 0.5": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One HF 0.6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PETG @CORE One HF 0.8": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], - "Prusa Generic PLA @CORE One": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One 0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One 0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One HF 0.4": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One HF 0.5": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One HF 0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA @CORE One HF 0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], - "Prusa Generic PLA Silk @CORE One": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Prusa Generic PLA Silk @CORE One 0.6": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Prusa Generic PLA Silk @CORE One 0.8": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "Prusa Generic TPU @CORE One": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Prusa Generic TPU @CORE One 0.6": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Prusa Generic TPU @CORE One 0.8": [ - [ - "Generic", - "FLEX", - "Prusa Generic TPU" - ] - ], - "Prusament ASA @CORE One": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One 0.6": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One 0.8": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One HF 0.4": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One HF 0.5": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One HF 0.6": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @CORE One HF 0.8": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "Prusament ASA @MK4S": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S 0.6": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S 0.8": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S HF0.4": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S HF0.5": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S HF0.6": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament ASA @MK4S HF0.8": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], - "Prusament PA-CF @CORE One": [ - [ - "Prusa Polymers", - "PA", - "Prusament PA-CF" - ] - ], - "Prusament PA-CF @CORE One 0.6": [ - [ - "Prusa Polymers", - "PA", - "Prusament PA-CF" - ] - ], - "Prusament PA-CF @CORE One 0.8": [ - [ - "Prusa Polymers", - "PA", - "Prusament PA-CF" - ] - ], - "Prusament PC Blend @CORE One": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One 0.6": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One 0.8": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One HF 0.4": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One HF 0.5": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One HF 0.6": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC Blend @CORE One HF 0.8": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "Prusament PC-CF @CORE One": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC-CF" - ] - ], - "Prusament PC-CF @CORE One 0.6": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC-CF" - ] - ], - "Prusament PC-CF @CORE One 0.8": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC-CF" - ] - ], - "Prusament PETG @CORE One": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One 0.6": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One 0.8": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One HF 0.4": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One HF 0.5": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One HF 0.6": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PETG @CORE One HF 0.8": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "Prusament PLA @CORE One": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One 0.6": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One 0.8": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One HF 0.4": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One HF 0.5": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One HF 0.6": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PLA @CORE One HF 0.8": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "Prusament PVB @CORE One": [ - [ - "Prusa Polymers", - "PVB", - "Prusament PVB" - ] - ], - "Prusament PVB @CORE One 0.6": [ - [ - "Prusa Polymers", - "PVB", - "Prusament PVB" - ] - ], - "Prusament PVB @CORE One 0.8": [ - [ - "Prusa Polymers", - "PVB", - "Prusament PVB" - ] - ], - "Prusament rPLA @CORE One": [ - [ - "Prusa Polymers", - "PLA", - "Prusament rPLA" - ] - ], - "Prusament rPLA @CORE One 0.6": [ - [ - "Prusa Polymers", - "PLA", - "Prusament rPLA" - ] - ], - "Prusament rPLA @CORE One 0.8": [ - [ - "Prusa Polymers", - "PLA", - "Prusament rPLA" - ] - ], - "SMCFB001": [ - [ - "SeeMeCNC", - "ABS", - "SeeMeCNC ABS" - ] - ], - "SMCFG001": [ - [ - "SeeMeCNC", - "PETG", - "SeeMeCNC PETG" - ] - ], - "SMCFG002": [ - [ - "SeeMeCNC", - "PETG-CF", - "SeeMeCNC PETG-CF" - ] - ], - "SMCFL001": [ - [ - "SeeMeCNC", - "PLA", - "SeeMeCNC PLA" - ] - ], - "SMCFN001": [ - [ - "SeeMeCNC", - "PA-CF", - "SeeMeCNC PA-CF" - ] - ], - "SMCFU001": [ - [ - "SeeMeCNC", - "TPU", - "SeeMeCNC TPU" + "FLSun S1 ABS" ] ] } diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index d60377f51e..cfba38866c 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -153,6 +153,12 @@ class SyntheticTree: rc = afi.add_hints(pairs, self.profiles, self.retired) return rc, buf.getvalue() + def retire(self, pairs): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.retire_ids(pairs, self.profiles, self.retired) + return rc, buf.getvalue() + def make_clean_tree(): """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic.""" @@ -1049,6 +1055,65 @@ class TestAddHint(SyntheticTreeCase): self.assertIn('expects "OLD=NEW"', out) +class TestRetire(SyntheticTreeCase): + def test_retires_vanished_id_with_successor(self): + rc, out = self.t.retire(["OFOLD001=AX01"]) + self.assertEqual(rc, 0, out) + self.assertEqual(load_json_file(self.t.retired)["retired"]["OFOLD001"], + {"claims": [], "successor": "AX01"}) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) + + def test_rejects_live_old(self): + rc, out = self.t.retire(["AX01=OGFL99"]) + self.assertEqual(rc, 1) + self.assertIn("still lives in the tree", out) + self.assertEqual(afi.load_ledger(self.t.retired)["retired"], {}) + + def test_rejects_declaration_only_old(self): + # The inert-fork case: an id declared by a claim-less root still lives + # in the tree; the declaration must be deleted before --retire. + self.t.write_preset("VendorA", preset("ZOLD @base", filament_id="ZDECL01", + instantiation=False, + filament_vendor="ZV", + filament_type="PLA")) + rc, out = self.t.retire(["ZDECL01=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("still lives in the tree", out) + + def test_rejects_island_space_old(self): + rc, out = self.t.retire(["GFXX99=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("reserved id space", out) + + def test_rejects_user_space_old(self): + rc, out = self.t.retire(["P1234ABC=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("reserved id space", out) + + def test_rejects_already_retired_old(self): + self.t.write_ledger(retired={"ROLD": {"claims": [], "successor": None}}) + rc, out = self.t.retire(["ROLD=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("already retired", out) + + def test_rejects_hinted_old(self): + self.t.write_ledger(hints={"HOLD": "AX01"}) + rc, out = self.t.retire(["HOLD=AX01"]) + self.assertEqual(rc, 1) + self.assertIn("hint key", out) + + def test_rejects_dead_successor(self): + rc, out = self.t.retire(["OFOLD001=OFnope99"]) + self.assertEqual(rc, 1) + self.assertIn("not a live tree id", out) + + def test_rejects_malformed_pair(self): + rc, out = self.t.retire(["OFOLD001"]) + self.assertEqual(rc, 1) + self.assertIn('expects "OLD=NEW"', out) + + # --------------------------------------------------------------------------- # default run: mint + insert # --------------------------------------------------------------------------- @@ -1261,6 +1326,21 @@ class TestRemint(SyntheticTreeCase): changed, errors, _out = self.t.remint(["VendorA"]) self.assertEqual((changed, errors), (0, 0)) + def test_salted_declaration_survives_remint(self): + # A deliberate salt split (a second preset of one product kept on its + # own id for per-printer AMS disambiguation) is mint-conformant and + # must not be converged back onto salt 0. + salt1 = afi.generate_filament_id(*self.TRIPLE, salt=1) + self.t.write_preset("VendorA", preset("APLA @legacy", + filament_id=salt1, + inherits="APLA @base", + compatible_printers=["P2 0.4 nozzle"])) + changed, errors, out = self.t.remint(["VendorA"]) + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 1) # only the non-conformant AX01 root + legacy = load_json_file(self.t.preset_path("VendorA", "APLA @legacy")) + self.assertEqual(legacy["filament_id"], salt1) + def test_same_triple_converges_within_run(self): self.t.add_vendor("VendorB", [ preset("APLA @Bbase", filament_id="BX01", instantiation=False, From 81b06d68f1d3985538ed226548461d51c4f0d6ab Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Tue, 28 Jul 2026 17:11:54 +0800 Subject: [PATCH 020/164] feat: initial plugin auditing workflow --- src/slic3r/plugin/PluginAuditManager.cpp | 318 ++++++++++++------ src/slic3r/plugin/PluginAuditManager.hpp | 48 ++- src/slic3r/plugin/PluginFsUtils.cpp | 40 ++- src/slic3r/plugin/PluginFsUtils.hpp | 10 + src/slic3r/plugin/PluginLoader.cpp | 2 +- src/slic3r/plugin/PluginManager.cpp | 42 +++ src/slic3r/plugin/PluginManager.hpp | 3 + src/slic3r/plugin/PyPluginTrampoline.hpp | 27 +- src/slic3r/plugin/PythonPluginBridge.cpp | 91 ++++- src/slic3r/plugin/PythonPluginBridge.hpp | 2 +- ...PrinterAgentPluginCapabilityTrampoline.hpp | 64 ++-- .../ScriptPluginCapabilityTrampoline.hpp | 1 - ...cingPipelinePluginCapabilityTrampoline.hpp | 1 - 13 files changed, 458 insertions(+), 191 deletions(-) diff --git a/src/slic3r/plugin/PluginAuditManager.cpp b/src/slic3r/plugin/PluginAuditManager.cpp index 29aa59b253..f027dd072d 100644 --- a/src/slic3r/plugin/PluginAuditManager.cpp +++ b/src/slic3r/plugin/PluginAuditManager.cpp @@ -7,8 +7,16 @@ #include #include +#include #include +#include +#include +#include +#include +#include #include +#include +#include namespace Slic3r { @@ -78,24 +86,21 @@ bool is_inside_allowed_root(const boost::filesystem::path& candidate, const boos // ScopedPluginAuditContext // --------------------------------------------------------------------------- -thread_local std::string PluginAuditManager::m_current_plugin_key = ""; -thread_local std::string PluginAuditManager::m_current_capability_name = ""; -thread_local PluginAuditManager::AuditMode PluginAuditManager::m_audit_mode = PluginAuditManager::AuditMode::Loading; +thread_local std::string PluginAuditManager::m_current_plugin_key = ""; +thread_local std::string PluginAuditManager::m_current_capability_name = ""; thread_local std::vector PluginAuditManager::m_scoped_allowed_roots; +thread_local bool PluginAuditManager::m_audit_denial_pending = false; thread_local bool PluginAuditManager::m_has_last_violation = false; thread_local AuditViolation PluginAuditManager::m_last_violation; ScopedPluginAuditContext::ScopedPluginAuditContext(const std::string& plugin_key, - const std::string& capability_name, - PluginAuditManager::AuditMode mode) + const std::string& capability_name) : m_previous_id(PluginAuditManager::instance().current_plugin()) , m_previous_capability(PluginAuditManager::instance().current_capability()) - , m_previous_mode(PluginAuditManager::instance().audit_mode()) , m_previous_scoped_roots(PluginAuditManager::m_scoped_allowed_roots) { PluginAuditManager::instance().set_current_plugin(plugin_key); PluginAuditManager::instance().set_current_capability(capability_name); - PluginAuditManager::instance().set_audit_mode(mode); PluginAuditManager::m_scoped_allowed_roots.clear(); } @@ -103,7 +108,6 @@ ScopedPluginAuditContext::~ScopedPluginAuditContext() { PluginAuditManager::instance().set_current_plugin(m_previous_id); PluginAuditManager::instance().set_current_capability(m_previous_capability); - PluginAuditManager::instance().set_audit_mode(m_previous_mode); PluginAuditManager::m_scoped_allowed_roots = std::move(m_previous_scoped_roots); } @@ -198,14 +202,6 @@ bool PluginAuditManager::is_denied_filename(const boost::filesystem::path& candi return false; } -// --------------------------------------------------------------------------- -// Audit mode -// --------------------------------------------------------------------------- - -void PluginAuditManager::set_audit_mode(AuditMode mode) { m_audit_mode = mode; } - -PluginAuditManager::AuditMode PluginAuditManager::audit_mode() const { return m_audit_mode; } - // --------------------------------------------------------------------------- // Policy checks // --------------------------------------------------------------------------- @@ -219,21 +215,15 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat if (plugin_key.empty()) return {true, ""}; // not running inside a plugin context - // Denied filenames are checked first, above both the Loading exemption below and the - // allowed roots. The app config and the cloud refresh token live directly inside - // data_dir(), which is a global allowed root, and no scope ever sets Enforcing — so a - // deny placed any lower would be unreachable for reads. + // Denied filenames are checked before the allowed roots. The app config and the cloud + // refresh token live directly inside data_dir(), which is a global allowed root, so a deny + // placed any lower would be unreachable. if (is_denied_filename(path)) { BOOST_LOG_TRIVIAL(warning) << "[AUDIT] block path=" << path.string() << " is_write=" << is_write << " plugin=" << plugin_key << " reason=denied filename"; return {false, "denied filename"}; } - // During import/loading, only block writes. Python must be able to read - // stdlib modules and the plugin file itself during import. - if (m_audit_mode == AuditMode::Loading && !is_write) - return {true, ""}; - namespace fs = boost::filesystem; fs::path candidate = path; @@ -261,7 +251,6 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat } BOOST_LOG_TRIVIAL(warning) << "[AUDIT] block path=" << candidate.string() << " is_write=" << is_write - << " audit_mode=" << (m_audit_mode == AuditMode::Loading ? "Loading" : "Enforcing") << " plugin=" << plugin_key; return {false, "outside allowed root"}; } @@ -269,19 +258,99 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat AuditDecision PluginAuditManager::check_open(const std::string& path_str, const std::string& mode) { const bool is_write = mode.find('w') != std::string::npos || mode.find('a') != std::string::npos || - mode.find('+') != std::string::npos; + mode.find('+') != std::string::npos || mode.find('x') != std::string::npos; return check_path_access(boost::filesystem::path(path_str), is_write); } +bool PluginAuditManager::request_filesystem_read_permissions(const std::string& plugin_key, + const std::vector& paths) +{ + if (plugin_key.empty() || paths.empty()) + return true; + + PluginDescriptor descriptor; + if (!PluginManager::instance().try_get_plugin_descriptor(plugin_key, descriptor) || descriptor.plugin_root.empty()) + return false; + + PluginInstallState state; + read_install_state(boost::filesystem::path(descriptor.plugin_root), state); + + std::vector missing; + for (const std::string& path : paths) { + if (std::find(state.permissions.fs_read.begin(), state.permissions.fs_read.end(), path) == state.permissions.fs_read.end()) + missing.push_back(path); + } + if (missing.empty()) + return true; + + if (wxTheApp == nullptr || GUI::wxGetApp().is_closing()) + return false; + + auto show_dialog = [&descriptor, &missing]() { + wxString requested_paths; + for (const std::string& path : missing) + requested_paths += wxString::FromUTF8(path.c_str()) + "\n"; + + wxMessageDialog dialog( + nullptr, + wxString::Format("Plugin \"%s\" requests filesystem read access to:\n%s", + wxString::FromUTF8(descriptor.name.c_str()), requested_paths), + "Plugin permissions", + wxYES_NO | wxICON_WARNING); + return dialog.ShowModal() == wxID_YES; + }; + + bool granted = false; + if (wxIsMainThread()) { + granted = show_dialog(); + } else { + auto result = std::make_shared>(); + auto future = result->get_future(); + GUI::wxGetApp().CallAfter([result, descriptor_name = descriptor.name, missing]() { + wxString requested_paths; + for (const std::string& path : missing) + requested_paths += wxString::FromUTF8(path.c_str()) + "\n"; + + wxMessageDialog dialog( + nullptr, + wxString::Format("Plugin \"%s\" requests filesystem read access to:\n%s", + wxString::FromUTF8(descriptor_name.c_str()), requested_paths), + "Plugin permissions", + wxYES_NO | wxICON_WARNING); + result->set_value(dialog.ShowModal() == wxID_YES); + }); + granted = future.get(); + } + + if (!granted) + return false; + + if (state.plugin_name.empty()) { + state.installed_from = descriptor.is_cloud_plugin() ? "cloud" : "local"; + state.installed_version = !descriptor.installed_version.empty() ? descriptor.installed_version : descriptor.version; + state.plugin_name = descriptor.name; + state.cloud_uuid = descriptor.cloud_uuid(); + state.enabled = true; + } + + state.permissions.fs_read.insert(state.permissions.fs_read.end(), missing.begin(), missing.end()); + return write_install_state(boost::filesystem::path(descriptor.plugin_root), state); +} + void PluginAuditManager::report_violation(const AuditViolation& violation) { m_last_violation = violation; m_has_last_violation = true; + m_audit_denial_pending = true; BOOST_LOG_TRIVIAL(warning) << "[AUDIT BLOCKED] plugin=" << violation.plugin_key << " event=" << violation.event_name << " path=" << violation.path.string() << " reason=" << violation.reason; } +bool PluginAuditManager::audit_denial_pending() const { return m_audit_denial_pending; } + +void PluginAuditManager::clear_audit_denial() { m_audit_denial_pending = false; } + void PluginAuditManager::clear_last_violation() { m_has_last_violation = false; @@ -301,27 +370,106 @@ bool PluginAuditManager::last_violation(AuditViolation& violation) const // The C-level audit hook // --------------------------------------------------------------------------- -namespace { +namespace PluginAuditDetail { -// Records a blocked event and raises PermissionError in the calling interpreter. Returns -1 -// so an event branch can `return report_denied(...)` directly. +PyObject* tuple_item(PyObject* args, Py_ssize_t index) +{ + if (!args || !PyTuple_Check(args) || index < 0 || index >= PyTuple_GET_SIZE(args)) + return nullptr; + return PyTuple_GET_ITEM(args, index); +} + +std::string python_path(PyObject* object) +{ + if (!object) + return {}; + + PyObject* path_object = PyOS_FSPath(object); + if (!path_object) { + PyErr_Clear(); + return {}; + } + + const char* path = PyUnicode_Check(path_object) ? PyUnicode_AsUTF8(path_object) : PyBytes_AsString(path_object); + std::string result = path ? path : ""; + Py_DECREF(path_object); + if (!path) + PyErr_Clear(); + return result; +} + +void add_filesystem_path(std::vector& paths, PyObject* object) +{ + const std::string path = python_path(object); + if (!path.empty()) + paths.emplace_back(path); +} + +std::vector filesystem_paths(const std::string& event_name, PyObject* args) +{ + std::vector paths; + + if (event_name == "open") { + add_filesystem_path(paths, tuple_item(args, 0)); + } else if (event_name == "os.rename") { + add_filesystem_path(paths, tuple_item(args, 0)); + add_filesystem_path(paths, tuple_item(args, 1)); + } else if (event_name == "os.remove") { + add_filesystem_path(paths, tuple_item(args, 0)); + } + + return paths; +} + +bool has_filesystem_permission(const PluginInstallState& state, const boost::filesystem::path& path) +{ + return std::find(state.permissions.fs_read.begin(), state.permissions.fs_read.end(), path.string()) != + state.permissions.fs_read.end(); +} + +bool persist_filesystem_permission(const std::string& plugin_key, + PluginInstallState& state, + const boost::filesystem::path& path) +{ + PluginDescriptor descriptor; + if (!PluginManager::instance().try_get_plugin_descriptor(plugin_key, descriptor) || descriptor.plugin_root.empty()) + return false; + + // A sandbox plugin may not have a sidecar yet. Seed the small amount of install metadata + // needed by the writer so clicking Yes still creates the JSON file. + if (state.plugin_name.empty()) { + state.installed_from = descriptor.is_cloud_plugin() ? "cloud" : "local"; + state.installed_version = !descriptor.installed_version.empty() ? descriptor.installed_version : descriptor.version; + state.plugin_name = descriptor.name; + state.cloud_uuid = descriptor.cloud_uuid(); + state.enabled = true; + } + + const std::string path_string = path.string(); + if (std::find(state.permissions.fs_read.begin(), state.permissions.fs_read.end(), path_string) == + state.permissions.fs_read.end()) + state.permissions.fs_read.push_back(path_string); + return write_install_state(boost::filesystem::path(descriptor.plugin_root), state); +} + +// Records a blocked event and raises PermissionError in the calling interpreter. int report_denied(PluginAuditManager& mgr, const std::string& event_name, - const boost::filesystem::path& path, + const boost::filesystem::path& target, const AuditDecision& decision) { AuditViolation violation; violation.plugin_key = mgr.current_plugin(); violation.event_name = event_name; - violation.path = path; + violation.path = target; violation.reason = decision.reason; mgr.report_violation(violation); - PyErr_SetString(PyExc_PermissionError, "Plugin attempted to access a blocked file path"); + PyErr_SetString(PyExc_PermissionError, "Plugin attempted an audited operation without permission"); return -1; } -} // namespace +} // namespace PluginAuditDetail int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user_data) { @@ -336,73 +484,53 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user BOOST_LOG_TRIVIAL(debug) << "[AUDIT EVENT] " << event_name; } - // extensive list of audit events can be found at https://docs.python.org/3/library/audit_events.html - - // --- open event --- - if (event_name == "open") { - const char* path_cstr = nullptr; - const char* mode_cstr = nullptr; - int flags = 0; - - // open(path, mode, flags) — path may be str, bytes, or int fd - if (!PyArg_ParseTuple(args, "s|si", &path_cstr, &mode_cstr, &flags)) { - PyErr_Clear(); // couldn't parse; allow - return 0; - } - - std::string path_str(path_cstr ? path_cstr : ""); - std::string mode_str(mode_cstr ? mode_cstr : "r"); - - AuditDecision decision = mgr->check_open(path_str, mode_str); - if (!decision.allowed) - return report_denied(*mgr, event_name, path_str, decision); + if (mgr->current_plugin().empty()) return 0; + + PluginInstallState state; + const bool have_install_state = PluginManager::instance().get_install_state(mgr->current_plugin(), state); + if (!have_install_state) { + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << " Failed to get install state for " << mgr->current_plugin(); } - // --- os.rename event (raised by os.rename and os.replace) --- - if (event_name == "os.rename") { - const char* src_cstr = nullptr; - const char* dst_cstr = nullptr; - PyObject* src_dir_fd = nullptr; - PyObject* dst_dir_fd = nullptr; + const std::string plugin_name = state.plugin_name.empty() ? mgr->current_plugin() : state.plugin_name; + const std::vector paths = PluginAuditDetail::filesystem_paths(event_name, args); + for (const auto& path : paths) { + if (PluginAuditDetail::has_filesystem_permission(state, path)) + continue; - // os.rename(src, dst, src_dir_fd, dst_dir_fd) — paths may be str, bytes, or int fd. - // The dir_fd arguments are unused, but must be accepted for the tuple to parse. - if (!PyArg_ParseTuple(args, "ss|OO", &src_cstr, &dst_cstr, &src_dir_fd, &dst_dir_fd)) { - PyErr_Clear(); // couldn't parse; allow - return 0; - } + wxMessageDialog dialog( + nullptr, + wxString::Format(_L("Plugin \"%s\" is requesting filesystem access to:\n%s"), + wxString::FromUTF8(plugin_name.c_str()), + wxString::FromUTF8(path.string().c_str())), + _L("Plugin permission request"), + wxYES_NO | wxICON_WARNING); + if (dialog.ShowModal() == wxID_YES && + PluginAuditDetail::persist_filesystem_permission(mgr->current_plugin(), state, path)) + continue; - // A rename writes at both ends, so either end being denied blocks the call. - for (const char* path_cstr : {src_cstr, dst_cstr}) { - std::string path_str(path_cstr ? path_cstr : ""); - AuditDecision decision = mgr->check_path_access(path_str, /* is_write */ true); - if (!decision.allowed) - return report_denied(*mgr, event_name, path_str, decision); - } - return 0; + return PluginAuditDetail::report_denied( + *mgr, event_name, path, {false, "filesystem permission required"}); } - // --- os.remove event (raised by os.remove and os.unlink) --- - if (event_name == "os.remove") { - const char* path_cstr = nullptr; - PyObject* dir_fd = nullptr; - - // os.remove(path, dir_fd) — path may be str, bytes, or int fd - if (!PyArg_ParseTuple(args, "s|O", &path_cstr, &dir_fd)) { - PyErr_Clear(); // couldn't parse; allow - return 0; - } - - std::string path_str(path_cstr ? path_cstr : ""); - AuditDecision decision = mgr->check_path_access(path_str, /* is_write */ true); - if (!decision.allowed) - return report_denied(*mgr, event_name, path_str, decision); + if (!paths.empty()) return 0; - } - // Unknown event — allow by default - return 0; + wxMessageDialog dialog( + nullptr, + wxString::Format( + _L("Plugin \"%s\" is requesting permission for the Python audit event \"%s\".\n\n" + "This operation does not expose a filesystem path to the audit hook."), + wxString::FromUTF8(plugin_name.c_str()), + wxString::FromUTF8(event_name.c_str())), + _L("Plugin permission request"), + wxYES_NO | wxICON_WARNING); + if (dialog.ShowModal() == wxID_YES) + return 0; + + return PluginAuditDetail::report_denied( + *mgr, event_name, boost::filesystem::path(), {false, "audit permission required"}); } void PluginAuditManager::install_hook() @@ -413,10 +541,10 @@ void PluginAuditManager::install_hook() } BOOST_LOG_TRIVIAL(info) << "[AUDIT] CPython audit hook installed successfully"; - // data_dir() is the only globally-allowed root during enforced plugin execution. + // data_dir() is the only globally-allowed root during plugin execution. // The executable directory and resources directory are intentionally NOT allowed - // here: plugins must not write outside data_dir() (G-code plugins additionally get - // the temp G-code folder via a scoped root). Reads remain permissive in Loading mode. + // here: plugins must not access outside data_dir() (G-code plugins additionally get + // the temp G-code folder via a scoped root). add_global_allowed_root(data_dir()); // The user's app config and cloud credentials live directly inside data_dir(), so the diff --git a/src/slic3r/plugin/PluginAuditManager.hpp b/src/slic3r/plugin/PluginAuditManager.hpp index 1b24357e47..f3fb43d20a 100644 --- a/src/slic3r/plugin/PluginAuditManager.hpp +++ b/src/slic3r/plugin/PluginAuditManager.hpp @@ -2,6 +2,7 @@ #define slic3r_PluginAuditManager_hpp_ #include +#include #include #include #include @@ -53,8 +54,8 @@ public: void add_scoped_allowed_root(const boost::filesystem::path& root); // --- denied-filenames registry --- - // Filenames a plugin may never touch, in any directory, regardless of audit mode or - // enclosing allowed root. A candidate is denied when its filename starts with a + // Filenames a plugin may never touch, in any directory, regardless of the enclosing allowed + // root. A candidate is denied when its filename starts with a // registered name, so .bak/.tmp companions are covered by the same entry. // // The comparison is case-insensitive on every platform, unlike the _WIN32-only iequals @@ -73,30 +74,23 @@ public: // 8.3 short name is out of scope (see the design doc). This blocks direct access only. bool is_denied_filename(const boost::filesystem::path& candidate) const; - // --- enforcement mode --- - enum class AuditMode { - // Import/loading phase: allow reads anywhere, only block writes - // outside allowed roots. Python needs to read stdlib modules - // during import and those are not inside plugin directories. - Loading, - - // Execution phase: block both reads and writes outside allowed - // roots, plus subprocess/socket/ctypes. - Enforcing, - }; - - void set_audit_mode(AuditMode mode); - AuditMode audit_mode() const; - // --- policy checks --- // Shared core for every audited filesystem event. The deny list is consulted above the - // Loading-mode read exemption and above the allowed roots, so a denied filename is - // blocked even though every scope currently runs in Loading and the files in question - // sit inside data_dir(), which is itself a global allowed root. + // allowed roots, so a denied filename is blocked even when the file sits inside data_dir(), + // which is itself a global allowed root. AuditDecision check_path_access(const boost::filesystem::path& candidate, bool is_write); AuditDecision check_open(const std::string& path, const std::string& mode); + // Ask the user to grant the requested filesystem-read paths. The request may originate on a + // plugin load worker, so the implementation marshals the modal dialog to the wx main thread. + // Returns true only when every missing path was granted and persisted; denial aborts the plugin + // load without adding a permission. + bool request_filesystem_read_permissions(const std::string& plugin_key, + const std::vector& paths); + void report_violation(const AuditViolation& violation); + bool audit_denial_pending() const; + void clear_audit_denial(); void clear_last_violation(); bool last_violation(AuditViolation& violation) const; @@ -109,12 +103,12 @@ private: static int audit_hook(const char* event, PyObject* args, void* user_data); - static thread_local std::string m_current_plugin_key; - static thread_local std::string m_current_capability_name; - static thread_local AuditMode m_audit_mode; + static thread_local std::string m_current_plugin_key; + static thread_local std::string m_current_capability_name; static thread_local std::vector m_scoped_allowed_roots; - static thread_local bool m_has_last_violation; - static thread_local AuditViolation m_last_violation; + static thread_local bool m_audit_denial_pending; + static thread_local bool m_has_last_violation; + static thread_local AuditViolation m_last_violation; // mutable: is_denied_filename() is a const query that must lock. mutable std::mutex m_mutex; @@ -130,8 +124,7 @@ class ScopedPluginAuditContext public: explicit ScopedPluginAuditContext( const std::string& plugin_key, - const std::string& capability_name = {}, - PluginAuditManager::AuditMode mode = PluginAuditManager::AuditMode::Loading); + const std::string& capability_name = {}); ~ScopedPluginAuditContext(); @@ -141,7 +134,6 @@ public: private: std::string m_previous_id; std::string m_previous_capability; - PluginAuditManager::AuditMode m_previous_mode; std::vector m_previous_scoped_roots; }; diff --git a/src/slic3r/plugin/PluginFsUtils.cpp b/src/slic3r/plugin/PluginFsUtils.cpp index b0867ef28f..dc7cd1ee7c 100644 --- a/src/slic3r/plugin/PluginFsUtils.cpp +++ b/src/slic3r/plugin/PluginFsUtils.cpp @@ -784,6 +784,23 @@ bool read_install_state(const boost::filesystem::path& plugin_dir, PluginInstall parsed.plugin_name = state["plugin_name"].get(); if (state.contains("cloud_uuid") && state["cloud_uuid"].is_string()) parsed.cloud_uuid = state["cloud_uuid"].get(); + + if (state.contains("permissions") && state["permissions"].is_object()) { + const auto& permissions = state["permissions"]; + if (permissions.contains("networking") && permissions["networking"].is_array()) + for (const auto& host : permissions["networking"]) + if (host.is_string()) + parsed.permissions.networking.push_back(host.get()); + if (permissions.contains("fs_read") && permissions["fs_read"].is_array()) + for (const auto& path : permissions["fs_read"]) + if (path.is_string()) + parsed.permissions.fs_read.push_back(path.get()); + if (permissions.contains("fs_write") && permissions["fs_write"].is_array()) + for (const auto& path : permissions["fs_write"]) + if (path.is_string()) + parsed.permissions.fs_write.push_back(path.get()); + } + if (state.contains("enabled") && state["enabled"].is_boolean()) parsed.enabled = state["enabled"].get(); @@ -819,6 +836,12 @@ bool write_install_state(const boost::filesystem::path& plugin_dir, const Plugin if (!state.cloud_uuid.empty()) json["cloud_uuid"] = state.cloud_uuid; + json["permissions"] = { + {"networking", state.permissions.networking}, + {"fs_read", state.permissions.fs_read}, + {"fs_write", state.permissions.fs_write}, + }; + nlohmann::json capabilities = nlohmann::json::array(); for (const auto& [name, enabled] : state.capabilities) capabilities.push_back(nlohmann::json{{name, enabled}}); @@ -836,6 +859,9 @@ bool write_install_state(const boost::filesystem::path& plugin_dir, const Plugin const std::vector>& capabilities) { PluginInstallState state; + // Loading a plugin updates its lifecycle/capability state, but must retain permissions granted + // during register_capabilities() or by a previous runtime audit prompt. + read_install_state(plugin_dir, state); state.installed_from = entry.is_cloud_plugin() ? "cloud" : "local"; // Prefer the descriptor's recorded installed_version (the version fetched from the cloud // at install time, preserved across sidecar re-writes) so a stale manifest/PEP723 header @@ -852,10 +878,16 @@ bool write_install_state(const boost::filesystem::path& plugin_dir, const Plugin bool write_install_state(const boost::filesystem::path& plugin_dir, const PluginDescriptor& entry) { // Install-time writer: the package is not loaded, so its capabilities are not known yet and the - // sidecar is (re)initialized to "auto-load, nothing disabled". PluginManager writes the real - // per-capability flags once the package is loaded, via the (dir, entry, enabled, capabilities) - // overload. - return write_install_state(plugin_dir, entry, true, {}); + // sidecar is (re)initialized to "auto-load, nothing disabled". This intentionally resets + // permissions on a fresh install/reinstall. PluginManager writes the real per-capability flags + // while preserving permissions once the package is loaded, via the overload above. + PluginInstallState state; + state.installed_from = entry.is_cloud_plugin() ? "cloud" : "local"; + state.installed_version = !entry.installed_version.empty() ? entry.installed_version : entry.version; + state.plugin_name = entry.name; + state.cloud_uuid = entry.cloud_uuid(); + state.enabled = true; + return write_install_state(plugin_dir, state); } bool read_python_plugin_metadata(const boost::filesystem::path& py_path, PluginDescriptor& descriptor, std::string& error) diff --git a/src/slic3r/plugin/PluginFsUtils.hpp b/src/slic3r/plugin/PluginFsUtils.hpp index f65a5e0e69..d361d9d9ac 100644 --- a/src/slic3r/plugin/PluginFsUtils.hpp +++ b/src/slic3r/plugin/PluginFsUtils.hpp @@ -81,11 +81,21 @@ inline nlohmann::json py_to_json(const pybind11::handle& o) return py::str(o).cast(); // fallback: str() } +struct PluginPermissions +{ + std::vector networking; + std::vector fs_read; + std::vector fs_write; +}; + struct PluginInstallState { std::string installed_from; // "local" | "cloud" std::string installed_version; std::string plugin_name; std::string cloud_uuid; // empty for local + + PluginPermissions permissions; + bool enabled = true; std::vector> capabilities; // name -> enabled, ordered }; diff --git a/src/slic3r/plugin/PluginLoader.cpp b/src/slic3r/plugin/PluginLoader.cpp index 92fe92068f..0c45564f1b 100644 --- a/src/slic3r/plugin/PluginLoader.cpp +++ b/src/slic3r/plugin/PluginLoader.cpp @@ -280,7 +280,7 @@ bool load(const PluginDescriptor& descriptor, // (while the active plugin key is set), then instantiates each registered capability and caches // its get_name(). Returns one entry per capability. std::string bridge_error; - auto capabilities_found = bridge.finalize_plugin_capture(descriptor.entry_path, bridge_error); + auto capabilities_found = bridge.finalize_plugin_capture(descriptor.entry_path, descriptor.plugin_key, bridge_error); if (!bridge_error.empty()) { capabilities_found.clear(); error = "Plugin registration failed: " + bridge_error; diff --git a/src/slic3r/plugin/PluginManager.cpp b/src/slic3r/plugin/PluginManager.cpp index c586aafe99..5e97305ae7 100644 --- a/src/slic3r/plugin/PluginManager.cpp +++ b/src/slic3r/plugin/PluginManager.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -552,6 +553,20 @@ std::shared_ptr PluginManager::get_plugin_capability( return nullptr; } +bool PluginManager::get_install_state(const std::string& plugin_key, PluginInstallState& install_state) +{ + PluginDescriptor descriptor; + if (!try_get_plugin_descriptor(plugin_key, descriptor)) { + return false; + } + + if (!read_install_state(boost::filesystem::path(descriptor.plugin_root), install_state)) { + return false; + } + + return true; +} + // ── Lifecycle ─────────────────────────────────────────────────────────────────────────────── bool PluginManager::is_plugin_loaded(const std::string& plugin_key) const @@ -840,6 +855,8 @@ void PluginManager::load_plugin_impl(const std::string& plugin_key, bool skip_de if (!plugin_loader::load(descriptor, skip_deps, capabilities_to_enable, registry_precheck, plugin, error)) { if (error == LOAD_CANCELLED) return; // cancelled: nothing materialized survives, and no error is recorded + if (error.rfind("Plugin registration failed:", 0) == 0) + mark_plugin_install_state_disabled(plugin_key); fail(std::move(error)); return; } @@ -1065,6 +1082,31 @@ void PluginManager::write_loaded_plugin_install_state(const std::string& plugin_ write_install_state(boost::filesystem::path(descriptor.plugin_root), descriptor, /*enabled=*/true, capabilities); } +void PluginManager::mark_plugin_install_state_disabled(const std::string& plugin_key) +{ + std::lock_guard state_lock(m_install_state_mutex); + + PluginDescriptor descriptor; + if (!try_get_plugin_descriptor(plugin_key, descriptor) || descriptor.plugin_root.empty()) + return; + + const boost::filesystem::path root(descriptor.plugin_root); + PluginInstallState state; + if (!read_install_state(root, state)) { + state.installed_from = descriptor.is_cloud_plugin() ? "cloud" : "local"; + state.installed_version = !descriptor.installed_version.empty() ? descriptor.installed_version : descriptor.version; + state.plugin_name = descriptor.name; + state.cloud_uuid = descriptor.cloud_uuid(); + } + state.enabled = false; + if (!write_install_state(root, state)) + return; + + std::lock_guard lock(m_mutex); + if (Plugin* plugin = find_plugin_locked(plugin_key)) + plugin->descriptor.enabled = false; +} + // ── Callbacks ─────────────────────────────────────────────────────────────────────────────── void PluginManager::subscribe_on_load_callback(PluginLifecycleCompleteFn fn) diff --git a/src/slic3r/plugin/PluginManager.hpp b/src/slic3r/plugin/PluginManager.hpp index 59a2791355..d6fab5fa7f 100644 --- a/src/slic3r/plugin/PluginManager.hpp +++ b/src/slic3r/plugin/PluginManager.hpp @@ -150,6 +150,8 @@ public: PluginCapabilityType type = PluginCapabilityType::Unknown, bool only_enabled = true) const; + bool get_install_state(const std::string& plugin_key, PluginInstallState& install_state); + void load_plugin(const std::string& plugin_key, bool skip_deps = false, std::vector capabilities_to_enable = {}); bool unload_plugin(const std::string& plugin_key); void unload_all_plugins(); @@ -248,6 +250,7 @@ private: // Writes the sidecar for a loaded plugin (enabled=true plus the current per-capability flags). void write_loaded_plugin_install_state(const std::string& plugin_key); + void mark_plugin_install_state_disabled(const std::string& plugin_key); bool finalize_cloud_plugin_removal(const PluginDescriptor& plugin, bool keep_local, std::string& error); bool delete_installed_plugin_package(const PluginDescriptor& plugin, std::string& error); diff --git a/src/slic3r/plugin/PyPluginTrampoline.hpp b/src/slic3r/plugin/PyPluginTrampoline.hpp index e36c0b375c..ad7fe25f10 100644 --- a/src/slic3r/plugin/PyPluginTrampoline.hpp +++ b/src/slic3r/plugin/PyPluginTrampoline.hpp @@ -26,25 +26,30 @@ try { \ override_call; \ } catch (pybind11::error_already_set & err) { \ + const bool _orca_audit_denial = ::Slic3r::PluginAuditManager::instance().audit_denial_pending(); \ + if (_orca_audit_denial) \ + ::Slic3r::PluginAuditManager::instance().clear_current_plugin(); \ ::Slic3r::log_python_exception_keep(err); \ + if (_orca_audit_denial) \ + ::Slic3r::PluginAuditManager::instance().clear_audit_denial(); \ throw; \ } // Opens the plugin's filesystem audit scope for the duration of a C++ -> Python call, and publishes // the calling capability's cached name so host APIs invoked from Python can tell which capability // they are serving. No-op without an audit plugin key. Declares a local `_orca_audit_scope`. -#define ORCA_PY_AUDIT_SCOPE(mode) \ +#define ORCA_PY_AUDIT_SCOPE() \ std::optional<::Slic3r::ScopedPluginAuditContext> _orca_audit_scope; \ if (const std::string& _orca_audit_key = this->audit_plugin_key(); !_orca_audit_key.empty()) \ - _orca_audit_scope.emplace(_orca_audit_key, this->name(), mode) + _orca_audit_scope.emplace(_orca_audit_key, this->name()) -#define ORCA_PY_OVERRIDE_AUDITED(mode, audit_setup, override_macro, ret, base, name, ...) \ +#define ORCA_PY_OVERRIDE_AUDITED(audit_setup, override_macro, ret, base, name, ...) \ do { \ ::Slic3r::PluginCapabilityInterface::RefCounter _orca_ref_counter(*this); \ ::Slic3r::PythonGILState _orca_python_gil; \ if (!_orca_python_gil) \ throw std::runtime_error("Python interpreter is shutting down"); \ - ORCA_PY_AUDIT_SCOPE(mode); \ + ORCA_PY_AUDIT_SCOPE(); \ if (_orca_audit_scope) \ audit_setup(); \ ORCA_PY_LOGGED_OVERRIDE_BODY(override_macro(ret, base, name, ##__VA_ARGS__)); \ @@ -58,7 +63,7 @@ public: std::string get_name() const override { - ORCA_PY_OVERRIDE_AUDITED(::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, std::string, Base, get_name); + ORCA_PY_OVERRIDE_AUDITED([] {}, PYBIND11_OVERRIDE_PURE, std::string, Base, get_name); } // Config UI hooks. Available on every capability type, so they live here rather than in @@ -66,7 +71,6 @@ public: bool has_config_ui() const override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, bool, @@ -77,7 +81,6 @@ public: std::string get_config_ui() const override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, std::string, @@ -94,7 +97,7 @@ public: // mistake), both fall back to the base's empty object rather than writing `"cap_config": null`. nlohmann::json get_default_config() const override { - ORCA_PY_AUDIT_SCOPE(::Slic3r::PluginAuditManager::AuditMode::Loading); + ORCA_PY_AUDIT_SCOPE(); try { pybind11::gil_scoped_acquire gil; pybind11::function override = pybind11::get_override(static_cast(this), "get_default_config"); @@ -117,17 +120,17 @@ public: void on_load() override { - ORCA_PY_OVERRIDE_AUDITED(::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, void, Base, on_load); + ORCA_PY_OVERRIDE_AUDITED([] {}, PYBIND11_OVERRIDE, void, Base, on_load); } void on_unload() override { - ORCA_PY_OVERRIDE_AUDITED(::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, void, Base, on_unload); + ORCA_PY_OVERRIDE_AUDITED([] {}, PYBIND11_OVERRIDE, void, Base, on_unload); } void on_cancelled() override { - ORCA_PY_OVERRIDE_AUDITED(::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, void, Base, on_cancelled); + ORCA_PY_OVERRIDE_AUDITED([] {}, PYBIND11_OVERRIDE, void, Base, on_cancelled); } }; @@ -139,7 +142,7 @@ public: PluginCapabilityType get_type() const override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, PluginCapabilityType, PluginCapabilityInterface, + [] {}, PYBIND11_OVERRIDE, PluginCapabilityType, PluginCapabilityInterface, get_type); } }; diff --git a/src/slic3r/plugin/PythonPluginBridge.cpp b/src/slic3r/plugin/PythonPluginBridge.cpp index 328ebbace1..6c3c4fc8d2 100644 --- a/src/slic3r/plugin/PythonPluginBridge.cpp +++ b/src/slic3r/plugin/PythonPluginBridge.cpp @@ -1,5 +1,6 @@ #include "PythonPluginBridge.hpp" +#include #include #include #include @@ -39,6 +40,7 @@ thread_local std::string g_active_plugin_key; std::mutex g_registry_mutex; std::unordered_map> g_pending_capabilities; std::unordered_map g_pending_package; +std::unordered_map> g_pending_fs_read_permissions; struct PluginInstanceHandle { // The C++ plugin interface points into a Python object. Keep both alive through one @@ -76,6 +78,8 @@ void discard_pending_capture_without_python(const std::string& plugin_key) (void) package->second.release(); g_pending_package.erase(package); } + + g_pending_fs_read_permissions.erase(plugin_key); } } // namespace @@ -100,34 +104,38 @@ void PythonPluginBridge::begin_plugin_capture(const std::string& plugin_key) // for this same entry path. g_pending_capabilities.erase(plugin_key); g_pending_package.erase(plugin_key); + g_pending_fs_read_permissions.erase(plugin_key); } // From now until finalize/cancel, @orca.plugin and register_capability() calls made by // Python code on this thread are attributed to this plugin. g_active_plugin_key = plugin_key; } -std::vector PythonPluginBridge::finalize_plugin_capture(const std::string& plugin_key, std::string& error) +std::vector PythonPluginBridge::finalize_plugin_capture(const std::string& capture_key, + const std::string& plugin_key, + std::string& error) { PythonGILState gil; if (!gil) { error = "Python interpreter is shutting down"; return {}; } - BOOST_LOG_TRIVIAL(info) << "Finalizing Python plugin capture for key " << plugin_key; + BOOST_LOG_TRIVIAL(info) << "Finalizing Python plugin capture for key " << capture_key; // Phase 1: run the package class's register_capabilities() while the active key is // still set. That method is expected to call orca.register_capability() once per // capability class, and register_capability() needs g_active_plugin_key to know which // pending bucket to append to. { - auto clear_active_key = [&plugin_key]() { - if (g_active_plugin_key == plugin_key) + auto clear_active_key = [&capture_key]() { + if (g_active_plugin_key == capture_key) g_active_plugin_key.clear(); }; - auto discard_pending_for_key = [&plugin_key]() { + auto discard_pending_for_key = [&capture_key]() { std::lock_guard lock(g_registry_mutex); - g_pending_capabilities.erase(plugin_key); - g_pending_package.erase(plugin_key); + g_pending_capabilities.erase(capture_key); + g_pending_package.erase(capture_key); + g_pending_fs_read_permissions.erase(capture_key); }; try { @@ -137,7 +145,7 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons py::object package_cls; { std::lock_guard lock(g_registry_mutex); - auto it = g_pending_package.find(plugin_key); + auto it = g_pending_package.find(capture_key); if (it != g_pending_package.end()) { package_cls = it->second; g_pending_package.erase(it); @@ -156,6 +164,33 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons // are kept. py::object package = package_cls(); package.attr("register_capabilities")(); + + // Permission declarations are collected while register_capabilities() runs so the + // plugin can describe its needs without touching wx from the Python load worker. Ask + // only after registration returns, before capability instances are materialized. + std::vector fs_read_permissions; + { + std::lock_guard lock(g_registry_mutex); + auto it = g_pending_fs_read_permissions.find(capture_key); + if (it != g_pending_fs_read_permissions.end()) { + fs_read_permissions = std::move(it->second); + g_pending_fs_read_permissions.erase(it); + } + } + if (!fs_read_permissions.empty()) { + bool granted = false; + { + py::gil_scoped_release release; + granted = PluginAuditManager::instance().request_filesystem_read_permissions(plugin_key, fs_read_permissions); + } + if (!granted) { + error = "Plugin filesystem read permission request denied"; + BOOST_LOG_TRIVIAL(warning) << error << " for key " << plugin_key; + discard_pending_for_key(); + clear_active_key(); + return {}; + } + } } catch (py::error_already_set& err) { log_python_exception_keep(err); error = err.what(); @@ -179,7 +214,7 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons std::vector classes; { std::lock_guard lock(g_registry_mutex); - auto it = g_pending_capabilities.find(plugin_key); + auto it = g_pending_capabilities.find(capture_key); if (it != g_pending_capabilities.end()) { classes = std::move(it->second); g_pending_capabilities.erase(it); @@ -188,10 +223,10 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons // Registration is complete. Later register_capability() calls should fail instead of // accidentally attaching themselves to this plugin. - if (g_active_plugin_key == plugin_key) + if (g_active_plugin_key == capture_key) g_active_plugin_key.clear(); - BOOST_LOG_TRIVIAL(info) << "Collected " << classes.size() << " registered capability class(es) for key " << plugin_key; + BOOST_LOG_TRIVIAL(info) << "Collected " << classes.size() << " registered capability class(es) for key " << capture_key; std::vector capabilities; capabilities.reserve(classes.size()); @@ -203,7 +238,7 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons py::object instance = cls(); if (!py::isinstance(instance)) { error = "Registered capability must inherit from a PluginCapability base"; - BOOST_LOG_TRIVIAL(error) << "Python plugin capture failed type check for key " << plugin_key + BOOST_LOG_TRIVIAL(error) << "Python plugin capture failed type check for key " << capture_key << " error=" << error; return {}; } @@ -211,7 +246,7 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons auto capability_iface = instance.cast>(); if (!capability_iface) { error = "Failed to cast Python capability to PluginCapabilityInterface"; - BOOST_LOG_TRIVIAL(error) << "Python plugin capture failed cast for key " << plugin_key + BOOST_LOG_TRIVIAL(error) << "Python plugin capture failed cast for key " << capture_key << " error=" << error; return {}; } @@ -225,7 +260,7 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons // here is a hard error that rejects the whole plugin capture. if (name.find(';') != std::string::npos) { error = "Capability name must not contain ';': " + name; - BOOST_LOG_TRIVIAL(error) << "Python plugin capture rejected capability for key " << plugin_key + BOOST_LOG_TRIVIAL(error) << "Python plugin capture rejected capability for key " << capture_key << " error=" << error; return {}; } @@ -245,12 +280,12 @@ std::vector PythonPluginBridge::finalize_plugin_capture(cons // log the traceback here. GIL is held for the duration of finalize_plugin_capture. log_python_exception_keep(err); error = err.what(); - BOOST_LOG_TRIVIAL(error) << "Python plugin capture raised Python exception for key " << plugin_key + BOOST_LOG_TRIVIAL(error) << "Python plugin capture raised Python exception for key " << capture_key << " error=" << error; return {}; } catch (const std::exception& ex) { error = ex.what(); - BOOST_LOG_TRIVIAL(error) << "Python plugin capture raised exception for key " << plugin_key + BOOST_LOG_TRIVIAL(error) << "Python plugin capture raised exception for key " << capture_key << " error=" << error; return {}; } @@ -278,6 +313,7 @@ void PythonPluginBridge::cancel_plugin_capture(const std::string& plugin_key) // may already have registered under this key. g_pending_capabilities.erase(plugin_key); g_pending_package.erase(plugin_key); + g_pending_fs_read_permissions.erase(plugin_key); } if (g_active_plugin_key == plugin_key) @@ -304,6 +340,7 @@ void PythonPluginBridge::clear_pending_captures() (void) pkg.release(); } g_pending_package.clear(); + g_pending_fs_read_permissions.clear(); g_active_plugin_key.clear(); return; } @@ -312,6 +349,7 @@ void PythonPluginBridge::clear_pending_captures() BOOST_LOG_TRIVIAL(info) << "Clearing " << g_pending_capabilities.size() << " pending Python plugin capture(s)"; g_pending_capabilities.clear(); g_pending_package.clear(); + g_pending_fs_read_permissions.clear(); g_active_plugin_key.clear(); } @@ -448,6 +486,27 @@ void bind_python_api(pybind11::module_& m) }, R"pbdoc(Register a PluginCapability subclass while OrcaSlicer loads your module.)pbdoc"); + m.def( + "request_permissions", + [](const std::vector& fs_read) { + if (g_active_plugin_key.empty()) + throw py::value_error("request_permissions() called outside plugin discovery context"); + + std::lock_guard lock(g_registry_mutex); + auto& requested = g_pending_fs_read_permissions[g_active_plugin_key]; + for (const std::string& path : fs_read) { + if (path.empty()) + throw py::value_error("request_permissions(fs_read=...) does not accept empty paths"); + if (std::find(requested.begin(), requested.end(), path) == requested.end()) + requested.push_back(path); + } + }, + py::arg("fs_read") = std::vector{}, + R"pbdoc(Request filesystem read permissions while OrcaSlicer loads your module. + +The host presents the request to the user after register_capabilities() returns. Denying the +request aborts the plugin load.)pbdoc"); + m.def("plugin", [](py::object cls) { if (g_active_plugin_key.empty()) throw py::value_error("@orca.plugin used outside plugin discovery context"); diff --git a/src/slic3r/plugin/PythonPluginBridge.hpp b/src/slic3r/plugin/PythonPluginBridge.hpp index 6ccadabd00..036c8f1941 100644 --- a/src/slic3r/plugin/PythonPluginBridge.hpp +++ b/src/slic3r/plugin/PythonPluginBridge.hpp @@ -31,7 +31,7 @@ public: // Returns one CapturedCapability per capability, or an empty vector on failure // (error message populated). std::vector finalize_plugin_capture( - const std::string& plugin_key, std::string& error); + const std::string& capture_key, const std::string& plugin_key, std::string& error); // Clear any pending registrations for the key. Safe to call when import fails. void cancel_plugin_capture(const std::string& plugin_key); diff --git a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp index 226ea04650..5491e1cef6 100644 --- a/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/printerAgent/PrinterAgentPluginCapabilityTrampoline.hpp @@ -16,206 +16,206 @@ public: AgentInfo get_agent_info() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, AgentInfo, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, AgentInfo, PrinterAgentPluginCapability, get_agent_info); } int connect_printer(std::string dev_id, std::string dev_ip, std::string username, std::string password, bool use_ssl) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, connect_printer, dev_id, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, connect_printer, dev_id, dev_ip, username, password, use_ssl); } int disconnect_printer() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, disconnect_printer); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, disconnect_printer); } int send_message(std::string dev_id, std::string json_str, int qos, int flag) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, send_message, dev_id, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, send_message, dev_id, json_str, qos, flag); } int send_message_to_printer(std::string dev_id, std::string json_str, int qos, int flag) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, send_message_to_printer, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, send_message_to_printer, dev_id, json_str, qos, flag); } bool start_discovery(bool start, bool sending) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, bool, PrinterAgentPluginCapability, start_discovery, start, + [] {}, PYBIND11_OVERRIDE_PURE, bool, PrinterAgentPluginCapability, start_discovery, start, sending); } int bind_detect(std::string dev_ip, std::string sec_link, detectResult& detect) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, bind_detect, dev_ip, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, bind_detect, dev_ip, sec_link, detect); } std::string get_user_selected_machine() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, std::string, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, std::string, PrinterAgentPluginCapability, get_user_selected_machine); } int set_user_selected_machine(std::string dev_id) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_user_selected_machine, dev_id); } int start_send_gcode_to_sdcard(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_send_gcode_to_sdcard, params, update_fn, cancel_fn, wait_fn); } int start_local_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_local_print, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_local_print, params, update_fn, cancel_fn); } FilamentSyncMode get_filament_sync_mode() const override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, FilamentSyncMode, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, FilamentSyncMode, PrinterAgentPluginCapability, get_filament_sync_mode); } bool fetch_filament_info(std::string dev_id) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, bool, PrinterAgentPluginCapability, fetch_filament_info, dev_id); + [] {}, PYBIND11_OVERRIDE_PURE, bool, PrinterAgentPluginCapability, fetch_filament_info, dev_id); } int check_cert() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, check_cert); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, check_cert); } void install_device_cert(std::string dev_id, bool lan_only) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, void, PrinterAgentPluginCapability, install_device_cert, dev_id, + [] {}, PYBIND11_OVERRIDE_PURE, void, PrinterAgentPluginCapability, install_device_cert, dev_id, lan_only); } int ping_bind(std::string ping_code) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, ping_bind, ping_code); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, ping_bind, ping_code); } int bind(std::string dev_ip, std::string dev_id, std::string dev_model, std::string sec_link, std::string timezone, bool improved, OnUpdateStatusFn update_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, bind, dev_ip, dev_id, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, bind, dev_ip, dev_id, dev_model, sec_link, timezone, improved, update_fn); } int unbind(std::string dev_id) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, unbind, dev_id); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, unbind, dev_id); } int start_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_print, params, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_print, params, update_fn, cancel_fn, wait_fn); } int start_local_print_with_record(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn, OnWaitFn wait_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_local_print_with_record, params, update_fn, cancel_fn, wait_fn); } int start_sdcard_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_sdcard_print, params, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, start_sdcard_print, params, update_fn, cancel_fn); } int get_hms_snapshot(std::string dev_id, std::string file_name, std::function callback) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, get_hms_snapshot, dev_id, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, get_hms_snapshot, dev_id, file_name, callback); } int set_server_callback(OnServerErrFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_server_callback, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_server_callback, fn); } int set_on_ssdp_msg_fn(OnMsgArrivedFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_ssdp_msg_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_ssdp_msg_fn, fn); } int set_on_printer_connected_fn(OnPrinterConnectedFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_printer_connected_fn, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_printer_connected_fn, fn); } int set_on_subscribe_failure_fn(GetSubscribeFailureFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_subscribe_failure_fn, + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_subscribe_failure_fn, fn); } int set_on_message_fn(OnMessageFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_message_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_message_fn, fn); } int set_on_user_message_fn(OnMessageFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_user_message_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_user_message_fn, fn); } int set_on_local_connect_fn(OnLocalConnectedFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_local_connect_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_local_connect_fn, fn); } int set_on_local_message_fn(OnMessageFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_local_message_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_on_local_message_fn, fn); } int set_queue_on_main_fn(QueueOnMainFn fn) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_queue_on_main_fn, fn); + [] {}, PYBIND11_OVERRIDE_PURE, int, PrinterAgentPluginCapability, set_queue_on_main_fn, fn); } // request_bind_ticket returns its ticket through a std::string* out-param, which pybind11 @@ -223,7 +223,7 @@ public: // returns a (result, ticket) tuple, which we unpack into the int result and the out-param. int request_bind_ticket(std::string* ticket) override { - ORCA_PY_AUDIT_SCOPE(::Slic3r::PluginAuditManager::AuditMode::Loading); + ORCA_PY_AUDIT_SCOPE(); ::Slic3r::PluginCapabilityInterface::RefCounter _orca_ref_counter(*this); ::Slic3r::PythonGILState gil; if (!gil) diff --git a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp index f77d7ce597..62958a89d9 100644 --- a/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/script/ScriptPluginCapabilityTrampoline.hpp @@ -13,7 +13,6 @@ public: ExecutionResult execute() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, ExecutionResult, diff --git a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp index 8605532c12..5c9d527e42 100644 --- a/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/slicingPipeline/SlicingPipelinePluginCapabilityTrampoline.hpp @@ -10,7 +10,6 @@ public: using PyPluginCommonTrampoline::PyPluginCommonTrampoline; ExecutionResult execute(SlicingPipelineContext& ctx) override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [&]{ // At Step.psGCodePostProcess the plugin edits the exported G-code file, which lives // outside data_dir() (a temp/output folder), so writing to it would otherwise be From 2169b72c94842db859bf802d7807cca2ab0c9dae Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Tue, 28 Jul 2026 19:28:58 +0800 Subject: [PATCH 021/164] fix: update tests --- tests/slic3rutils/test_plugin_audit.cpp | 21 +++++++++++++-------- tests/slic3rutils/test_plugin_install.cpp | 14 +++++++++++++- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/tests/slic3rutils/test_plugin_audit.cpp b/tests/slic3rutils/test_plugin_audit.cpp index 49eedbd1fb..20fc2b86e7 100644 --- a/tests/slic3rutils/test_plugin_audit.cpp +++ b/tests/slic3rutils/test_plugin_audit.cpp @@ -81,7 +81,7 @@ TEST_CASE("Plugin audit denies app config and token filenames anywhere", "[audit } } -TEST_CASE("Plugin audit deny beats allowed roots and the Loading read exemption", "[audit]") +TEST_CASE("Plugin audit deny beats allowed roots", "[audit]") { ScopedDataDir data_dir_guard("plugin-audit-deny"); seed_denied_names(); @@ -91,8 +91,8 @@ TEST_CASE("Plugin audit deny beats allowed roots and the Loading read exemption" // config and the token would otherwise be reachable simply by living inside it. mgr.add_global_allowed_root(data_dir()); - // Enter a plugin context. The deny must hold in Loading mode, which every scope runs in. - ScopedPluginAuditContext ctx("test_plugin", "", PluginAuditManager::AuditMode::Loading); + // Enter a plugin context. The deny must hold even inside a globally allowed root. + ScopedPluginAuditContext ctx("test_plugin", ""); const fs::path conf = fs::path(data_dir()) / (SLIC3R_APP_KEY ".conf"); const fs::path token = fs::path(data_dir()) / secret_constants::USER_SECRET_FILENAME; @@ -103,6 +103,13 @@ TEST_CASE("Plugin audit deny beats allowed roots and the Loading read exemption" CHECK(decision.allowed); } + SECTION("a file outside the allowed root is blocked for reads as well as writes") + { + AuditDecision decision = mgr.check_open((fs::path(data_dir()).parent_path() / "outside.txt").string(), "r"); + CHECK_FALSE(decision.allowed); + CHECK(decision.reason == "outside allowed root"); + } + SECTION("writing the app config is blocked despite data_dir() being allowed") { AuditDecision decision = mgr.check_open(conf.string(), "w"); @@ -110,16 +117,14 @@ TEST_CASE("Plugin audit deny beats allowed roots and the Loading read exemption" CHECK(decision.reason == "denied filename"); } - SECTION("reading the app config is blocked even though Loading exempts reads") + SECTION("reading the app config is blocked despite the allowed root") { - // Without the deny, a read in Loading mode short-circuits to allow. The deny sits above - // that exemption, so this must still be blocked. AuditDecision decision = mgr.check_open(conf.string(), "r"); CHECK_FALSE(decision.allowed); CHECK(decision.reason == "denied filename"); } - SECTION("reading the cloud refresh token is blocked in Loading mode") + SECTION("reading the cloud refresh token is blocked") { AuditDecision decision = mgr.check_open(token.string(), "r"); CHECK_FALSE(decision.allowed); @@ -150,7 +155,7 @@ TEST_CASE("Plugin audit deny beats a plugin's own scoped root", "[audit]") const fs::path plugin_dir = fs::path(data_dir()) / "plugins" / "test_plugin"; fs::create_directories(plugin_dir); - ScopedPluginAuditContext ctx("test_plugin", "", PluginAuditManager::AuditMode::Loading); + ScopedPluginAuditContext ctx("test_plugin", ""); mgr.add_scoped_allowed_root(plugin_dir); SECTION("the plugin's own non-denied file opens for read and write") diff --git a/tests/slic3rutils/test_plugin_install.cpp b/tests/slic3rutils/test_plugin_install.cpp index fceeaf1f83..c6ad670ff7 100644 --- a/tests/slic3rutils/test_plugin_install.cpp +++ b/tests/slic3rutils/test_plugin_install.cpp @@ -112,6 +112,18 @@ TEST_CASE("install-state sidecar is the source of truth for a cloud plugin's ins REQUIRE(read_install_state(plugin_dir, state)); CHECK(state.installed_version == "1.2.0"); + state.permissions.networking = {"api.example.com", "192.168.45.6"}; + state.permissions.fs_read = {"/path/to/read"}; + state.permissions.fs_write = {"/path/to/write"}; + REQUIRE(write_install_state(plugin_dir, state)); + + // Permission data is persisted in the same sidecar as the installation metadata. + PluginInstallState persisted; + REQUIRE(read_install_state(plugin_dir, persisted)); + CHECK(persisted.permissions.networking == state.permissions.networking); + CHECK(persisted.permissions.fs_read == state.permissions.fs_read); + CHECK(persisted.permissions.fs_write == state.permissions.fs_write); + // Reading the sidecar back onto a freshly-scanned descriptor (whose header version is still // 1.0.0) must surface the cloud-installed 1.2.0. This is what lets update_cloud_metadata compare // the cloud's latest version against the installed version instead of the stale header, so an @@ -120,4 +132,4 @@ TEST_CASE("install-state sidecar is the source of truth for a cloud plugin's ins scanned.version = "1.0.0"; // as parsed from the unchanged PEP723 header read_install_state(plugin_dir, scanned); CHECK(scanned.installed_version == "1.2.0"); -} \ No newline at end of file +} From 35970f61dcd3c4b8e03092df7b2fe88f77cecf49 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Wed, 29 Jul 2026 16:52:16 +0800 Subject: [PATCH 022/164] fix: lift audit while reporting errors to log files --- src/slic3r/plugin/PythonInterpreter.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/slic3r/plugin/PythonInterpreter.cpp b/src/slic3r/plugin/PythonInterpreter.cpp index e46ee58f80..299a2dd7ba 100644 --- a/src/slic3r/plugin/PythonInterpreter.cpp +++ b/src/slic3r/plugin/PythonInterpreter.cpp @@ -87,6 +87,12 @@ void log_python_exception_keep(pybind11::error_already_set& err) if (!gil) return; + // Traceback output is host-owned work. In particular, the stderr tee opens the Python log + // file on every write. Keep that open outside the plugin audit context, otherwise an ordinary + // exception raised by a plugin can recursively trigger the filesystem permission dialog while + // its original exception is being reported. + ScopedPluginAuditContext audit_suppression(""); + // Non-destructive: print the traceback to sys.stderr (tee'd to the session log) // WITHOUT consuming err, so the caller can rethrow it intact. For example, downstream C++ // catchers can still read err.what() for the user-facing dialog. We must NOT use From 4196c23d44648bf6689b3cce7826382a24ada14e Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 17 Jul 2026 22:59:34 +0800 Subject: [PATCH 023/164] =?UTF-8?q?=EF=BB=BFAdd=20ffmepg=20dep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deps/CMakeLists.txt | 3 ++ deps/FFMPEG/FFMPEG.cmake | 79 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 deps/FFMPEG/FFMPEG.cmake diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 39cc5de182..b7435df295 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -367,6 +367,8 @@ include(libnoise/libnoise.cmake) include(Draco/Draco.cmake) +include(FFMPEG/FFMPEG.cmake) + # I *think* 1.1 is used for *just* md5 hashing? # 3.1 has everything in the right place, but the md5 funcs used are deprecated @@ -448,6 +450,7 @@ set(_dep_list dep_libnoise dep_python3 dep_wxInspector + dep_FFMPEG ) if (MSVC) diff --git a/deps/FFMPEG/FFMPEG.cmake b/deps/FFMPEG/FFMPEG.cmake new file mode 100644 index 0000000000..26ce001833 --- /dev/null +++ b/deps/FFMPEG/FFMPEG.cmake @@ -0,0 +1,79 @@ +set(_conf_cmd ./configure) + +if (MSVC) + set(_source_dir "${CMAKE_BINARY_DIR}/dep_FFMPEG-prefix/src/dep_FFMPEG") + + set(PREBUILD_URL_arm64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-winarm64-orca-shared-7.0.zip") + set(PREBUILD_HASH_arm64 "12f4140279f2f8469885e1b5b2e8be9d788882914c21523cacd56989f3548054") + set(PREBUILD_URL_x64 "https://github.com/Noisyfox/FFmpeg-Builds-Orca/releases/download/autobuild-2026-07-17-14-28/ffmpeg-n7.0.3-31-g9b6ffd74b5-win64-orca-shared-7.0.zip") + set(PREBUILD_HASH_x64 "e65916020ddb9ef84b2666dfbcbfc9b1d67f69d15b4a66db53754637bf2d498c") + + ExternalProject_Add(dep_FFMPEG + URL ${PREBUILD_URL_${DEPS_ARCH}} + URL_HASH SHA256=${PREBUILD_HASH_${DEPS_ARCH}} + DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND + COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/bin" "${DESTDIR}/bin" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/lib" "${DESTDIR}/lib" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${_source_dir}/include" "${DESTDIR}/include" + ) + +else () + if (APPLE) + set(_minos_cmd + "CFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" + "LDFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" + ) + if (IS_CROSS_COMPILE) + set(_cross_cmd --enable-cross-compile) + set(_pic_cmd --enable-pic) + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") + set(_arch_cmd --arch=arm64) + set(_cc_cmd "--cc=clang -arch arm64") + else() + set(_arch_cmd --arch=x86_64) + set(_cc_cmd "--cc=clang -arch x86_64") + endif() + endif() + endif() + + set(_build_j -j) + if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL}) + set(_build_j "-j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}") + endif() + + ExternalProject_Add(dep_FFMPEG + URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.3.tar.gz + URL_HASH SHA256=DEEDCABE339165214A3637DF4C86A507AEF0D793CF8774FF68735F4737E8DDBC + DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG + CONFIGURE_COMMAND ${_conf_cmd} + ${_cross_cmd} + ${_pic_cmd} + ${_arch_cmd} + ${_cc_cmd} + "--prefix=${DESTDIR}" + --enable-shared + --disable-doc + --enable-small + --disable-outdevs + --disable-filters + --enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test* + --disable-protocols + --enable-protocol=file,fd,pipe,rtp,udp + --disable-muxers + --enable-muxer=rtp + --disable-encoders + --disable-decoders + --enable-decoder=*aac*,h264*,mp3*,mjpeg,rv* + --disable-demuxers + --enable-demuxer=h264,mp3,mov + --disable-zlib + --disable-avdevice + BUILD_IN_SOURCE ON + BUILD_COMMAND make ${_build_j} + INSTALL_COMMAND make install + ) + +endif() From 56ac17f0850a7b7d57c0a2cd809e751152e0605f Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Wed, 26 Jun 2024 19:51:59 +0800 Subject: [PATCH 024/164] NEW: reimpl wxMediaCtrl from ffmpeg Jira: none Change-Id: I46a47118a7649b2a50fcce8911e2888342ef25de (cherry picked from commit d6c7f08769c8cfdbbf0e80ad280c9b3408a3c27d) (cherry picked from commit 94d91be60bfe9bbbcdd21f85b46abc3faf126f17) --- CMakeLists.txt | 33 +++- src/CMakeLists.txt | 16 +- src/slic3r/CMakeLists.txt | 14 ++ src/slic3r/GUI/AVVideoDecoder.cpp | 126 ++++++++++++++ src/slic3r/GUI/AVVideoDecoder.hpp | 39 +++++ src/slic3r/GUI/MediaPlayCtrl.cpp | 42 +++-- src/slic3r/GUI/MediaPlayCtrl.h | 13 +- src/slic3r/GUI/StatusPanel.cpp | 74 ++++----- src/slic3r/GUI/StatusPanel.hpp | 21 ++- src/slic3r/GUI/wxMediaCtrl2.cpp | 26 ++- src/slic3r/GUI/wxMediaCtrl2.h | 8 +- src/slic3r/GUI/wxMediaCtrl2.mm | 11 ++ src/slic3r/GUI/wxMediaCtrl3.cpp | 267 ++++++++++++++++++++++++++++++ src/slic3r/GUI/wxMediaCtrl3.h | 83 ++++++++++ 14 files changed, 683 insertions(+), 90 deletions(-) create mode 100644 src/slic3r/GUI/AVVideoDecoder.cpp create mode 100644 src/slic3r/GUI/AVVideoDecoder.hpp create mode 100644 src/slic3r/GUI/wxMediaCtrl3.cpp create mode 100644 src/slic3r/GUI/wxMediaCtrl3.h diff --git a/CMakeLists.txt b/CMakeLists.txt index fc688b35df..cabbb42b33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -460,7 +460,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory. # We pick it from environment if it is not defined in another way # ORCA: Removed Netfabb STL fixing service support in favor of CGAL. -# if(WIN32) +if(WIN32) + find_package(PkgConfig REQUIRED) # if(NOT DEFINED WIN10SDK_PATH) # if(DEFINED ENV{WIN10SDK_PATH}) # set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}") @@ -496,7 +497,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # else() # message("Building without Win10 Netfabb STL fixing service support") # endif() -# endif() +endif() if (APPLE) message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}") @@ -1044,6 +1045,10 @@ function(orcaslicer_copy_dlls target config postfix output_dlls) ${CMAKE_PREFIX_PATH}/bin/occt/TKXDESTEP.dll ${CMAKE_PREFIX_PATH}/bin/occt/TKXSBase.dll ${CMAKE_PREFIX_PATH}/bin/freetype.dll + ${CMAKE_PREFIX_PATH}/bin/avcodec-59.dll + ${CMAKE_PREFIX_PATH}/bin/swresample-4.dll + ${CMAKE_PREFIX_PATH}/bin/swscale-6.dll + ${CMAKE_PREFIX_PATH}/bin/avutil-57.dll DESTINATION ${_out_dir}) set(${output_dlls} @@ -1079,12 +1084,34 @@ function(orcaslicer_copy_dlls target config postfix output_dlls) ${_out_dir}/TKXSBase.dll ${_out_dir}/freetype.dll - + ${_out_dir}/avcodec-59.dll + ${_out_dir}/swresample-4.dll + ${_out_dir}/swscale-6.dll + ${_out_dir}/avutil-57.dll PARENT_SCOPE ) endfunction() +function(bambustudio_copy_sos target config postfix output_sos) + + set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") + message ("set out_dir to CMAKE_CURRENT_BINARY_DIR: ${_out_dir}") + + file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so + ${CMAKE_PREFIX_PATH}/lib/libavutil.so + ${CMAKE_PREFIX_PATH}/lib/libswscale.so + ${CMAKE_PREFIX_PATH}/lib/libswresample.so + DESTINATION ${_out_dir}) + + set(${output_dlls} + ${_out_dir}/libavcodec.so + ${_out_dir}/libavutil.so + ${_out_dir}/libswscale.so + ${_out_dir}/libswresample.so + PARENT_SCOPE + ) +endfunction() # libslic3r, OrcaSlicer GUI and the OrcaSlicer executable. add_subdirectory(deps_src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 79b49cfd16..df559aa397 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,7 +75,7 @@ if (SLIC3R_GUI) list(FILTER wxWidgets_LIBRARIES EXCLUDE REGEX expat) list(APPEND wxWidgets_LIBRARIES ${EXPAT_LIBRARIES}) endif () - + # This is an issue in the new wxWidgets cmake build, doesn't deal with librt find_library(LIBRT rt) if(LIBRT) @@ -281,6 +281,16 @@ if (WIN32) else () + if (NOT APPLE) + set(output_sos_Release "") + set(output_sos_Debug "") + add_custom_target(BambuStudioSosCopy ALL DEPENDS BambuStudio) + if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + bambustudio_copy_sos(BambuStudioSosCopy "Debug" "d" output_sos_Debug) + else() + bambustudio_copy_sos(BambuStudioSosCopy "Release" "" output_sos_Release) + endif() + endif() if (APPLE AND NOT CMAKE_MACOSX_BUNDLE) # On OSX, the name of the binary matches the name of the Application. add_custom_command(TARGET OrcaSlicer POST_BUILD @@ -359,5 +369,9 @@ if (WIN32) install(FILES ${output_dlls_${build_type}} DESTINATION ".") install(DIRECTORY "${CMAKE_PREFIX_PATH}/libpython/" DESTINATION "python") else () + if (APPLE) + else() + install(FILES ${output_sos_${build_type}} DESTINATION "${CMAKE_INSTALL_PREFIX}") + endif() install(TARGETS OrcaSlicer RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR}) endif () diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index b98396f943..0436c9a817 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -786,12 +786,17 @@ if (APPLE) GUI/GUI_UtilsMac.mm GUI/wxMediaCtrl2.mm GUI/wxMediaCtrl2.h + GUI/wxMediaCtrl3.h ) FIND_LIBRARY(DISKARBITRATION_LIBRARY DiskArbitration) else () list(APPEND SLIC3R_GUI_SOURCES + GUI/AVVideoDecoder.cpp + GUI/AVVideoDecoder.hpp GUI/wxMediaCtrl2.cpp GUI/wxMediaCtrl2.h + GUI/wxMediaCtrl3.cpp + GUI/wxMediaCtrl3.h ) endif () @@ -898,6 +903,15 @@ if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE) endif () +if (NOT APPLE) + pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET + libavcodec + libswscale + libavutil + ) + target_link_libraries(libslic3r_gui PkgConfig::LIBAV) +endif() + # We need to implement some hacks for wxWidgets and touch the underlying GTK # layer and sub-libraries. This forces us to use the include locations and # link these libraries. diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp new file mode 100644 index 0000000000..cb9ed33a2a --- /dev/null +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -0,0 +1,126 @@ +#include "AVVideoDecoder.hpp" + +extern "C" +{ + #include + #include +} + +AVVideoDecoder::AVVideoDecoder() +{ + codec_ctx_ = avcodec_alloc_context3(nullptr); +} + +AVVideoDecoder::~AVVideoDecoder() +{ + if (sws_ctx_) + sws_freeContext(sws_ctx_); + if (frame_) + av_frame_free(&frame_); + if (codec_ctx_) + avcodec_free_context(&codec_ctx_); +} + +int AVVideoDecoder::open(Bambu_StreamInfo const &info) +{ + auto codec_id = info.sub_type == AVC1 ? AV_CODEC_ID_H264 : AV_CODEC_ID_MJPEG; + auto codec = avcodec_find_decoder(codec_id); + if (codec == nullptr) { + fprintf(stderr, "Unsupported codec!\n"); + return -1; // Codec not found + } + /* open the coderc */ + if (avcodec_open2(codec_ctx_, codec, nullptr) < 0) { + fprintf(stderr, "could not open codec\n"); + return -1; + } + + // Allocate an AVFrame structure + frame_ = av_frame_alloc(); + if (frame_ == nullptr) + return -1; + + return 0; +} + +int AVVideoDecoder::decode(const Bambu_Sample &sample) +{ + auto pkt = av_packet_alloc(); + int ret = av_new_packet(pkt, sample.size); + if (ret == 0) + memcpy(pkt->data, sample.buffer, size_t(sample.size)); + got_frame_ = avcodec_receive_frame(codec_ctx_, frame_) == 0; + ret = avcodec_send_packet(codec_ctx_, pkt); + return ret; +} + +int AVVideoDecoder::flush() +{ + int ret = avcodec_send_packet(codec_ctx_, nullptr); + got_frame_ = avcodec_receive_frame(codec_ctx_, frame_) == 0; + return ret; +} + +void AVVideoDecoder::close() +{ +} + +bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) +{ + if (!got_frame_) + return false; + + auto size = size2; + if (!size.IsFullySpecified()) + size = {frame_->width, frame_->height }; + if (size.GetWidth() & 0x0f) + size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); + AVPixelFormat wxFmt = AV_PIX_FMT_RGB24; + sws_ctx_ = sws_getCachedContext(sws_ctx_, + frame_->width, frame_->height, AVPixelFormat(frame_->format), + size.GetWidth(), size.GetHeight(), wxFmt, + SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC + nullptr, nullptr, nullptr); + uint8_t *data = (uint8_t*)malloc(size.GetWidth() * size.GetHeight() * 3); + if (data == nullptr) + return false; + uint8_t * datas[] = {data }; + int strides[] = {size.GetWidth() * 3}; + int result_h = sws_scale(sws_ctx_, frame_->data, frame_->linesize, 0, frame_->height, datas, strides); + if (result_h != size.GetHeight()) { + delete[] data; + return false; + } + image = wxImage(size.GetWidth(), size.GetHeight(), data); + return true; +} + +bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) +{ + if (!got_frame_) + return false; + + auto size = size2; + if (!size.IsFullySpecified()) + size = {frame_->width, frame_->height }; + if (size.GetWidth() & 0x0f) + size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); + AVPixelFormat wxFmt = AV_PIX_FMT_RGB32; + sws_ctx_ = sws_getCachedContext(sws_ctx_, + frame_->width, frame_->height, AVPixelFormat(frame_->format), + size.GetWidth(), size.GetHeight(), wxFmt, + SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC + nullptr, nullptr, nullptr); + uint8_t *data = (uint8_t*)malloc(size.GetWidth() * size.GetHeight() * 4); + if (data == nullptr) + return false; + uint8_t *datas[] = {data}; + int strides[] = {size.GetWidth() * 4}; + int result_h = sws_scale(sws_ctx_, frame_->data, frame_->linesize, 0, frame_->height, datas, strides); + if (result_h != size.GetHeight()) { + delete[] data; + return false; + } + bitmap = wxBitmap((char *) data, size.GetWidth(), size.GetHeight(), 32); + return true; +} diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp new file mode 100644 index 0000000000..7c6e5e7e79 --- /dev/null +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -0,0 +1,39 @@ +#ifndef AVVIDEODECODER_HPP +#define AVVIDEODECODER_HPP + +#include "BambuTunnel.h" + +extern "C" { + #include + #include +} +class wxBitmap; + +class AVVideoDecoder +{ +public: + AVVideoDecoder(); + + ~AVVideoDecoder(); + +public: + int open(Bambu_StreamInfo const &info); + + int decode(Bambu_Sample const &sample); + + int flush(); + + void close(); + + bool toWxImage(wxImage &image, wxSize const &size); + + bool toWxBitmap(wxBitmap &bitmap, wxSize const & size); + +private: + AVCodecContext *codec_ctx_ = nullptr; + AVFrame * frame_ = nullptr; + SwsContext * sws_ctx_ = nullptr; + bool got_frame_ = false; +}; + +#endif // AVVIDEODECODER_HPP diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index 90e956be69..7e94775e02 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -46,6 +46,7 @@ MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const w SetLabel("MediaPlayCtrl"); SetBackgroundColour(*wxWHITE); m_media_ctrl->Bind(wxEVT_MEDIA_STATECHANGED, &MediaPlayCtrl::onStateChanged, this); + m_media_ctrl->SetIdleImage(from_u8(resources_dir() + "/images/live_stream_default.png")); m_button_play = new Button(this, "", "media_play", wxBORDER_NONE); m_button_play->SetCanFocus(false); @@ -313,7 +314,7 @@ void MediaPlayCtrl::Play() // !m_lan_mode && !m_remote_proto && m_lan_proto == LVL_None (x) if (m_lan_proto <= MachineObject::LVL_Disable && (m_lan_mode || !m_remote_proto)) { - Stop(m_lan_proto == MachineObject::LVL_None + Stop(m_lan_proto == MachineObject::LVL_None ? _L("A problem occurred. Please update the printer firmware and try again.") : _L("LAN Only Liveview is off. Please turn on the liveview on printer screen.")); return; @@ -351,7 +352,7 @@ void MediaPlayCtrl::Play() url += "&cli_id=" + wxGetApp().app_config->get("slicer_uuid"); url += "&cli_ver=" + std::string(SLIC3R_VERSION); } - BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: " << hide_passwd(url, + BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: " << hide_passwd(url, {"?uid=", "authkey=", "passwd=", "license=", "token="}); CallAfter([this, m, url] { if (m != m_machine) { @@ -426,7 +427,7 @@ void MediaPlayCtrl::Stop(wxString const &msg, wxString const &msg2) auto tunnel = m_url.empty() ? "" : into_u8(wxURI(m_url).GetPath()).substr(1); if (auto n = tunnel.find_first_of("/_"); n != std::string::npos) tunnel = tunnel.substr(0, n); - if (last_state != wxMEDIASTATE_PLAYING && m_failed_code != 0 + if (last_state != wxMEDIASTATE_PLAYING && m_failed_code != 0 && m_last_failed_codes.find(m_failed_code) == m_last_failed_codes.end() && (m_user_triggered || m_failed_retry > 3)) { m_last_failed_codes.insert(m_failed_code); @@ -560,7 +561,7 @@ void MediaPlayCtrl::ToggleStream() url += "&cli_id=" + wxGetApp().app_config->get("slicer_uuid"); url += "&cli_ver=" + std::string(SLIC3R_VERSION); } - BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl::ToggleStream: " << hide_passwd(url, + BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl::ToggleStream: " << hide_passwd(url, {"?uid=", "authkey=", "passwd=", "license=", "token="}); CallAfter([this, m, url] { if (m != m_machine) return; @@ -580,8 +581,8 @@ void MediaPlayCtrl::ToggleStream() }, wxGetApp().get_printer_cloud_provider()); } -void MediaPlayCtrl::msw_rescale() { - m_button_play->Rescale(); +void MediaPlayCtrl::msw_rescale() { + m_button_play->Rescale(); } void MediaPlayCtrl::jump_to_play() @@ -771,15 +772,15 @@ bool MediaPlayCtrl::start_stream_service(bool *need_install) if (!boost::filesystem::exists(file_dll) || boost::filesystem::last_write_time(file_dll) != boost::filesystem::last_write_time(file_dll2)) boost::filesystem::copy_file(file_dll2, file_dll, boost::filesystem::copy_options::overwrite_existing); } - boost::process::child process_source(file_source, file_url2.ToStdWstring(), boost::process::start_dir(tools_dir), - boost::process::windows::create_no_window, + boost::process::child process_source(file_source, file_url2.ToStdWstring(), boost::process::start_dir(tools_dir), + boost::process::windows::create_no_window, boost::process::std_out > intermediate, boost::process::limit_handles); - boost::process::child process_ffmpeg(file_ffmpeg, configss, boost::process::windows::create_no_window, + boost::process::child process_ffmpeg(file_ffmpeg, configss, boost::process::windows::create_no_window, boost::process::std_in < intermediate, boost::process::limit_handles); #else boost::filesystem::permissions(file_source, boost::filesystem::owner_exe | boost::filesystem::add_perms); boost::filesystem::permissions(file_ffmpeg, boost::filesystem::owner_exe | boost::filesystem::add_perms); - boost::process::child process_source(file_source, file_url2.data().AsInternal(), boost::process::start_dir(start_dir), + boost::process::child process_source(file_source, file_url2.data().AsInternal(), boost::process::start_dir(start_dir), boost::process::std_out > intermediate, boost::process::limit_handles); boost::process::child process_ffmpeg(file_ffmpeg, configss, boost::process::std_in < intermediate, boost::process::limit_handles); #endif @@ -830,27 +831,22 @@ bool MediaPlayCtrl::get_stream_url(std::string *url) }} -void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) +void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height) { -#ifdef __WXMAC__ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); -#else - wxMediaCtrl::DoSetSize(x, y, width, height, sizeFlags); -#endif #if defined(__LINUX__) && defined(__WXGTK__) if (m_gtk_video_window) { const wxSize client_size = GetClientSize(); m_gtk_video_window->SetSize(0, 0, client_size.GetWidth(), client_size.GetHeight()); } #endif - if (sizeFlags & wxSIZE_USE_EXISTING) return; - wxSize size = m_video_size; + wxSize size = videoSize; + if (!size.IsFullySpecified()) size = {16, 9}; int maxHeight = (width * size.GetHeight() + size.GetHeight() - 1) / size.GetWidth(); - if (maxHeight != GetMaxHeight()) { - // BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2::DoSetSize: width: " << width << ", height: " << height << ", maxHeight: " << maxHeight; - SetMaxSize({-1, maxHeight}); - CallAfter([this] { - if (auto p = GetParent()) { + if (maxHeight != ctrl->GetMaxHeight()) { + // BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl_OnSize: width: " << width << ", height: " << height << ", maxHeight: " << maxHeight; + ctrl->SetMaxSize({-1, maxHeight}); + ctrl->CallAfter([ctrl] { + if (auto p = ctrl->GetParent()) { p->Layout(); p->Refresh(); } diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index f5e5dcddfc..4908a782ca 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -8,7 +8,14 @@ #ifndef MediaPlayCtrl_h #define MediaPlayCtrl_h +#define USE_WX_MEDIA_CTRL_2 0 + +#if USE_WX_MEDIA_CTRL_2 #include "wxMediaCtrl2.h" +#define wxMediaCtrl3 wxMediaCtrl2 +#else +#include "wxMediaCtrl3.h" +#endif #include @@ -30,7 +37,7 @@ namespace GUI { class MediaPlayCtrl : public wxPanel { public: - MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize); + MediaPlayCtrl(wxWindow *parent, wxMediaCtrl3 *media_ctrl, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize); ~MediaPlayCtrl(); @@ -75,7 +82,7 @@ private: // token std::shared_ptr m_token = std::make_shared(0); - wxMediaCtrl2 * m_media_ctrl; + wxMediaCtrl3 * m_media_ctrl; wxMediaState m_last_state = MEDIASTATE_IDLE; std::string m_machine; int m_lan_proto = 0; @@ -90,7 +97,7 @@ private: bool m_device_busy = false; bool m_disable_lan = false; wxString m_url; - + std::deque m_tasks; boost::mutex m_mutex; boost::condition_variable m_cond; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 43522f352b..f7bd41fe84 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -983,7 +983,7 @@ void PrintingTaskPanel::paint(wxPaintEvent&) dc.DrawBitmap(m_thumbnail_bmp_display, wxPoint(0, 0)); } dc.SetFont(Label::Body_12); - + if (m_plate_index >= 0) { wxString plate_id_str = wxString::Format("%d", m_plate_index); dc.DrawText(plate_id_str, wxPoint(4, 4)); @@ -1271,7 +1271,7 @@ void PrintingTaskPanel::set_plate_index(int plate_idx) } void PrintingTaskPanel::market_scoring_show() -{ +{ m_score_staticline->Show(); m_score_subtask_info->Show(); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " show market scoring page"; @@ -1402,7 +1402,7 @@ void StatusBasePanel::init_bitmaps() m_bitmap_fan_off = ScalableBitmap(this, "monitor_fan_off", 22); m_bitmap_speed = ScalableBitmap(this, "monitor_speed", 24); m_bitmap_speed_active = ScalableBitmap(this, "monitor_speed_active", 24); - + m_thumbnail_brokenimg = ScalableBitmap(this, "monitor_brokenimg", 120); m_thumbnail_sdcard = ScalableBitmap(this, "monitor_sdcard_thumbnail", 120); //m_bitmap_camera = create_scaled_bitmap("monitor_camera", nullptr, 18); @@ -1530,7 +1530,7 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page() // media_ctrl_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize); // media_ctrl_panel->SetBackgroundColour(*wxBLACK); // wxBoxSizer *bSizer_monitoring = new wxBoxSizer(wxVERTICAL); - m_media_ctrl = new wxMediaCtrl2(this); + m_media_ctrl = new wxMediaCtrl3(this); m_media_ctrl->SetMinSize(wxSize(PAGE_MIN_WIDTH, FromDIP(288))); m_custom_camera_view = WebView::CreateWebView(this, wxEmptyString); @@ -2458,7 +2458,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co m_project_task_panel->get_pause_resume_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this); m_project_task_panel->get_abort_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this); m_project_task_panel->get_market_scoring_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this); - m_project_task_panel->get_market_retry_buttom()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); + m_project_task_panel->get_market_retry_buttom()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); m_project_task_panel->get_clean_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this); m_setting_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this); @@ -2520,7 +2520,7 @@ StatusPanel::~StatusPanel() m_project_task_panel->get_pause_resume_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this); m_project_task_panel->get_abort_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this); m_project_task_panel->get_market_scoring_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this); - m_project_task_panel->get_market_retry_buttom()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); + m_project_task_panel->get_market_retry_buttom()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); m_project_task_panel->get_clean_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this); m_setting_button->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this); @@ -2566,7 +2566,7 @@ StatusPanel::~StatusPanel() if (sdcard_hint_dlg != nullptr) delete sdcard_hint_dlg; - if (m_score_data != nullptr) { + if (m_score_data != nullptr) { delete m_score_data; } } @@ -2590,7 +2590,7 @@ void StatusPanel::init_scaled_buttons() m_bpButton_e_down_10->SetCornerRadius(FromDIP(12)); } -void StatusPanel::on_market_scoring(wxCommandEvent &event) { +void StatusPanel::on_market_scoring(wxCommandEvent &event) { if (obj && obj->is_makeworld_subtask() && obj->rating_info && obj->rating_info->request_successful) { // model is mall model and has rating_id BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_market_scoring" ; if (m_score_data && m_score_data->rating_id == obj->rating_info->rating_id) { // current score data for model is same as mall model @@ -2599,7 +2599,7 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { int ret = m_score_dlg.ShowModal(); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data"; - if (ret == wxID_OK) { + if (ret == wxID_OK) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data is upload"; m_score_data->rating_id = -1; m_project_task_panel->set_star_count_dirty(false); @@ -2621,11 +2621,11 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { std::string comment = obj->rating_info->content; if (!comment.empty()) { m_score_dlg.set_comment(comment); } - + std::vector images_json_array; images_json_array = obj->rating_info->image_url_paths; if (!images_json_array.empty()) m_score_dlg.set_cloud_bitmap(images_json_array); - + int ret = m_score_dlg.ShowModal(); if (ret == wxID_OK) { @@ -3651,14 +3651,14 @@ void StatusPanel::update_basic_print_data(bool def) void StatusPanel::update_model_info() { auto get_subtask_fn = [this](BBLModelTask* subtask) { - CallAfter([this, subtask]() { + CallAfter([this, subtask]() { if (obj && obj->subtask_id_ == subtask->task_id) { obj->set_modeltask(subtask); } }); }; - + if (wxGetApp().getAgent() && obj) { BBLSubTask* curr_task = obj->get_subtask(); if (curr_task) { @@ -3982,7 +3982,7 @@ void StatusPanel::reset_printing_values() m_project_task_panel->update_left_time(NA_STR); m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR)); update_calib_bitmap(); - + task_thumbnail_state = ThumbnailState::PLACE_HOLDER; m_start_loading_thumbnail = false; m_load_sdcard_thumbnail = false; @@ -4037,7 +4037,7 @@ bool StatusPanel::check_axis_z_at_home(MachineObject* obj) } void StatusPanel::on_axis_ctrl_z_up_10(wxCommandEvent &event) -{ +{ if (obj) { obj->command_axis_control("Z", 1.0, -10.0f, 900); if (!check_axis_z_at_home(obj)) @@ -5396,7 +5396,7 @@ void StatusPanel::msw_rescale() m_calibration_btn->Rescale(); m_options_btn->SetMinSize(wxSize(-1, FromDIP(26))); - m_options_btn->Rescale(); + m_options_btn->Rescale(); m_safety_btn->SetMinSize(wxSize(-1, FromDIP(26))); m_safety_btn->Rescale(); @@ -5578,11 +5578,11 @@ ScoreDialog::ScoreDialog(wxWindow *parent, ScoreData *score_data) , m_upload_status_code(StatusCode::CODE_NUMBER) { m_tocken.reset(new int(0)); - + wxBoxSizer *m_main_sizer = get_main_sizer(score_data->local_to_url_image, score_data->comment_text); m_image_url_paths = score_data->image_url_paths; - + this->SetSizer(m_main_sizer); Fit(); @@ -5598,16 +5598,16 @@ void ScoreDialog::on_dpi_changed(const wxRect &suggested_rect) {} void ScoreDialog::OnBitmapClicked(wxMouseEvent &event) { wxStaticBitmap *clickedBitmap = dynamic_cast(event.GetEventObject()); - if (m_image.find(clickedBitmap) != m_image.end()) { + if (m_image.find(clickedBitmap) != m_image.end()) { if (!m_image[clickedBitmap].is_selected) { - for (auto panel : m_image[clickedBitmap].image_broad) { + for (auto panel : m_image[clickedBitmap].image_broad) { panel->Show(); } m_image[clickedBitmap].is_selected = true; m_selected_image_list.insert(clickedBitmap); } else { - for (auto panel : m_image[clickedBitmap].image_broad) { - panel->Hide(); + for (auto panel : m_image[clickedBitmap].image_broad) { + panel->Hide(); } m_image[clickedBitmap].is_selected = false; m_selected_image_list.erase(clickedBitmap); @@ -5624,9 +5624,9 @@ void ScoreDialog::OnBitmapClicked(wxMouseEvent &event) } std::set > ScoreDialog::add_need_upload_imgs() -{ +{ std::set> need_upload_images; - for (auto bitmap : m_image) { + for (auto bitmap : m_image) { if (!bitmap.second.is_uploaded) { wxString &local_image_path = bitmap.second.local_image_url; if (!local_image_path.empty()) { need_upload_images.insert(std::make_pair(bitmap.first, local_image_path)); } @@ -5646,7 +5646,7 @@ std::pair ScoreDialog::create_local_thu cur_image_msg.local_image_url = local_path; cur_image_msg.img_url_paths = ""; cur_image_msg.is_uploaded = false; - + wxStaticBitmap *imageCtrl = new wxStaticBitmap(this, wxID_ANY, wxBitmap(wxImage(local_path, wxBITMAP_TYPE_ANY).Rescale(FromDIP(80), FromDIP(60))), wxDefaultPosition, wxDefaultSize, 0); imageCtrl->Bind(wxEVT_LEFT_DOWN, &ScoreDialog::OnBitmapClicked, this); @@ -5711,7 +5711,7 @@ void ScoreDialog::update_static_bitmap(wxStaticBitmap* static_bitmap, wxImage im } wxBoxSizer *ScoreDialog::create_broad_sizer(wxStaticBitmap *bitmap, ImageMsg& cur_image_msg) -{ +{ // tb: top and bottom lr: left and right auto m_image_tb_broad = new wxBoxSizer(wxVERTICAL); auto line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); @@ -5755,7 +5755,7 @@ void ScoreDialog::init() { fail_image = wxImage(Slic3r::resources_dir() + "/images/oss_picture_load_failed.png", wxBITMAP_TYPE_ANY); } -wxBoxSizer *ScoreDialog::get_score_sizer() { +wxBoxSizer *ScoreDialog::get_score_sizer() { wxBoxSizer *score_sizer = new wxBoxSizer(wxHORIZONTAL); wxStaticText *static_score_text = new wxStaticText(this, wxID_ANY, _L("Rate"), wxDefaultPosition, wxDefaultSize, 0); static_score_text->Wrap(-1); @@ -5878,18 +5878,18 @@ wxBoxSizer *ScoreDialog::get_photo_btn_sizer() { for (int i = 0; i < filePaths.GetCount(); i++) { //It's ugly, but useful bool is_repeat = false; for (auto image : m_image) { - if (filePaths[i] == image.second.local_image_url) { + if (filePaths[i] == image.second.local_image_url) { is_repeat = true; continue; } } if (!is_repeat) { local_path.push_back(std::make_pair(filePaths[i], "")); - if (local_path.size() + m_image.size() > m_photo_nums) { - break; + if (local_path.size() + m_image.size() > m_photo_nums) { + break; } } - + } load_photo(local_path); @@ -6007,7 +6007,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer() } } progress_dialog->Hide(); - if (progress_dialog) { + if (progress_dialog) { delete progress_dialog; progress_dialog = nullptr; } @@ -6141,7 +6141,7 @@ wxBoxSizer *ScoreDialog::get_main_sizer(const std::vectorAdd(m_photo_sizer, 0, wxEXPAND | wxTOP, FromDIP(8)); m_image_sizer = new wxGridSizer(5, FromDIP(5), FromDIP(5)); - if (!images.empty()) { + if (!images.empty()) { load_photo(images); } m_main_sizer->Add(m_image_sizer, 0, wxEXPAND | wxLEFT, FromDIP(24)); @@ -6153,7 +6153,7 @@ wxBoxSizer *ScoreDialog::get_main_sizer(const std::vectorGetValue(); score_data.image_url_paths = m_image_url_paths; for (auto img : m_image) { score_data.local_to_url_image.push_back(std::make_pair(img.second.local_image_url, img.second.img_url_paths)); } - + return score_data; } void ScoreDialog::set_comment(std::string comment) { - if (m_comment_text) { + if (m_comment_text) { m_comment_text->SetValue(wxString::FromUTF8(comment)); } } void ScoreDialog::set_cloud_bitmap(std::vector cloud_bitmaps) -{ +{ m_image_url_paths = cloud_bitmaps; for (std::string &url : cloud_bitmaps) { if (std::string::npos == url.find(m_model_id)) continue; diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index d0c8c99f49..341bb9ab69 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -14,7 +14,6 @@ #include #include #include -#include "wxMediaCtrl2.h" #include "MediaPlayCtrl.h" #include "AMSSetting.hpp" #include "Calibration.hpp" @@ -195,11 +194,11 @@ public: void set_cloud_bitmap(std::vector cloud_bitmaps); protected: - enum StatusCode { - UPLOAD_PROGRESS = 0, - UPLOAD_EXIST_ISSUE, + enum StatusCode { + UPLOAD_PROGRESS = 0, + UPLOAD_EXIST_ISSUE, UPLOAD_IMG_FAILED, - CODE_NUMBER + CODE_NUMBER }; std::shared_ptr m_tocken; @@ -217,7 +216,7 @@ protected: { wxString local_image_url; //local image path std::string img_url_paths; // oss url path - vector image_broad; + vector image_broad; bool is_selected; bool is_uploaded; // load wxBoxSizer * image_tb_broad = nullptr; @@ -252,7 +251,7 @@ protected: std::set> add_need_upload_imgs(); std::pair create_local_thumbnail(wxString &local_path); std::pair create_oss_thumbnail(std::string &oss_path); - + }; class PrintingTaskPanel : public wxPanel @@ -261,7 +260,7 @@ public: PrintingTaskPanel(wxWindow* parent, PrintingTaskType type); ~PrintingTaskPanel(); void create_panel(wxWindow* parent); - + private: MachineObject* m_obj{nullptr}; @@ -353,7 +352,7 @@ public: void set_plate_index(int plate_idx = -1); void market_scoring_show(); void market_scoring_hide(); - + public: ScalableButton* get_abort_button() {return m_button_abort;}; ScalableButton* get_pause_resume_button() {return m_button_pause_resume;}; @@ -443,7 +442,7 @@ protected: wxStaticBitmap* m_camera_switch_button; - wxMediaCtrl2 * m_media_ctrl; + wxMediaCtrl3 * m_media_ctrl; MediaPlayCtrl * m_media_play_ctrl; Label * m_staticText_printing; @@ -567,7 +566,7 @@ protected: virtual void on_bed_temp_kill_focus(wxFocusEvent &event) { event.Skip(); } virtual void on_bed_temp_set_focus(wxFocusEvent &event) { event.Skip(); } virtual void on_nozzle_temp_kill_focus(wxFocusEvent &event) { event.Skip(); } - virtual void on_nozzle_temp_set_focus(wxFocusEvent &event) { event.Skip(); } + virtual void on_nozzle_temp_set_focus(wxFocusEvent &event) { event.Skip(); } virtual void on_nozzle_fan_switch(wxCommandEvent &event) { event.Skip(); } virtual void on_printing_fan_switch(wxCommandEvent &event) { event.Skip(); } virtual void on_axis_ctrl_z_up_10(wxCommandEvent &event) { event.Skip(); } diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index f2d1d2701e..9ff657ff73 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -1,7 +1,7 @@ #include "wxMediaCtrl2.h" #include "libslic3r/Time.hpp" #include "I18N.hpp" -#include "GUI_App.hpp" +#include "libslic3r/Utils.hpp" #include "LinuxDisplayBackend.hpp" #include #include @@ -329,8 +329,8 @@ void wxMediaCtrl2::Load(wxURI url) if (!notified) CallAfter([] { auto res = wxMessageBox(_L("Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?"), _L("Error"), wxOK | wxCANCEL); if (res == wxOK) { - wxString url = IsWindows10OrGreater() - ? "ms-settings:optionalfeatures?activationSource=SMC-Article-14209" + wxString url = IsWindows10OrGreater() + ? "ms-settings:optionalfeatures?activationSource=SMC-Article-14209" : "https://support.microsoft.com/en-au/windows/get-windows-media-player-81718e0d-cfce-25b1-aee3-94596b658287"; wxExecute("cmd /c start " + url, wxEXEC_HIDE_CONSOLE); } @@ -345,7 +345,7 @@ void wxMediaCtrl2::Load(wxURI url) { wxRegKey key11(wxRegKey::HKCU, L"SOFTWARE\\Classes\\CLSID\\" CLSID_BAMBU_SOURCE L"\\InProcServer32"); wxRegKey key12(wxRegKey::HKCR, L"CLSID\\" CLSID_BAMBU_SOURCE L"\\InProcServer32"); - wxString path = key11.Exists() ? key11.QueryDefaultValue() + wxString path = key11.Exists() ? key11.QueryDefaultValue() : key12.Exists() ? key12.QueryDefaultValue() : wxString{}; wxRegKey key2(wxRegKey::HKCR, "bambu"); wxString clsid; @@ -428,14 +428,14 @@ void wxMediaCtrl2::Load(wxURI url) #ifdef __WXGTK3__ GstElementFactory *factory; int hasplugins = 1; - + factory = gst_element_factory_find("h264parse"); if (!factory) { hasplugins = 0; } else { gst_object_unref(factory); } - + factory = gst_element_factory_find("openh264dec"); if (!factory) { factory = gst_element_factory_find("avdec_h264"); @@ -457,7 +457,7 @@ void wxMediaCtrl2::Load(wxURI url) } else { gst_object_unref(factory); } - + if (!hasplugins) { CallAfter([] { wxMessageBox(_L("Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)"), _L("Error"), wxOK); @@ -547,8 +547,9 @@ void wxMediaCtrl2::Stop() if (!m_imp) return; #endif - wxMediaCtrl::Stop(); -} + wxMediaCtrl::Stop(); } + +void wxMediaCtrl2::SetIdleImage(wxString const &image) {} wxMediaState wxMediaCtrl2::GetState() { @@ -596,6 +597,13 @@ wxSize wxMediaCtrl2::DoGetBestSize() const return {-1, -1}; } +void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + if (sizeFlags & wxSIZE_USE_EXISTING) return; + wxMediaCtrl_OnSize(this, m_video_size, width, height); +} + #ifdef __WIN32__ WXLRESULT wxMediaCtrl2::MSWWindowProc(WXUINT nMsg, diff --git a/src/slic3r/GUI/wxMediaCtrl2.h b/src/slic3r/GUI/wxMediaCtrl2.h index 4f37b5cd1e..c22cc10f2f 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.h +++ b/src/slic3r/GUI/wxMediaCtrl2.h @@ -13,6 +13,8 @@ wxDECLARE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); +void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); + #if defined(__LINUX__) && defined(__WXGTK__) typedef struct _GstElement GstElement; #endif @@ -23,7 +25,7 @@ class wxMediaCtrl2 : public wxWindow { public: wxMediaCtrl2(wxWindow * parent); - + ~wxMediaCtrl2(); void Load(wxURI url); @@ -45,8 +47,8 @@ public: protected: void DoSetSize(int x, int y, int width, int height, int sizeFlags) override; - static void bambu_log(void const * ctx, int level, char const * msg); - + static void bambu_log(void const *ctx, int level, char const *msg); + void NotifyStopped(); private: diff --git a/src/slic3r/GUI/wxMediaCtrl2.mm b/src/slic3r/GUI/wxMediaCtrl2.mm index 063472eccc..cc081a89fe 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.mm +++ b/src/slic3r/GUI/wxMediaCtrl2.mm @@ -140,6 +140,10 @@ void wxMediaCtrl2::Stop() NotifyStopped(); } +void wxMediaCtrl2::SetIdleImage(wxString const &image) +{ +} + void wxMediaCtrl2::NotifyStopped() { if (m_state != wxMEDIASTATE_STOPPED) { @@ -168,3 +172,10 @@ wxSize wxMediaCtrl2::GetVideoSize() const return {0, 0}; } } + +void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + if (sizeFlags & wxSIZE_USE_EXISTING) return; + wxMediaCtrl_OnSize(this, m_video_size, width, height); +} diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp new file mode 100644 index 0000000000..302af5fe2c --- /dev/null +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -0,0 +1,267 @@ +#include "wxMediaCtrl3.h" +#include "AVVideoDecoder.hpp" +#include "I18N.hpp" +#include "libslic3r/Utils.hpp" +#ifdef __WIN32__ +#include +#include +#include +#endif + +//wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); + +BEGIN_EVENT_TABLE(wxMediaCtrl3, wxWindow) + +// catch paint events +EVT_PAINT(wxMediaCtrl3::paintEvent) + +END_EVENT_TABLE() + +struct StaticBambuLib : BambuLib +{ + static StaticBambuLib &get(); +}; + +wxMediaCtrl3::wxMediaCtrl3(wxWindow *parent) + : wxWindow(parent, wxID_ANY) + , BambuLib(StaticBambuLib::get()) + , m_thread([this] { PlayThread(); }) +{ + SetBackgroundColour(*wxBLACK); +} + +wxMediaCtrl3::~wxMediaCtrl3() +{ + { + std::unique_lock lk(m_mutex); + m_url.reset(new wxURI); + m_frame = wxImage(m_idle_image); + m_cond.notify_all(); + } + m_thread.join(); +} + +void wxMediaCtrl3::Load(wxURI url) +{ + std::unique_lock lk(m_mutex); + m_video_size = wxDefaultSize; + m_error = 0; + m_url.reset(new wxURI(url)); + m_cond.notify_all(); +} + +void wxMediaCtrl3::Play() +{ + std::unique_lock lk(m_mutex); + if (m_state != wxMEDIASTATE_PLAYING) { + m_state = wxMEDIASTATE_PLAYING; + wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); + event.SetId(GetId()); + event.SetEventObject(this); + wxPostEvent(this, event); + } +} + +void wxMediaCtrl3::Stop() +{ + std::unique_lock lk(m_mutex); + m_url.reset(); + m_frame = wxImage(m_idle_image); + m_cond.notify_all(); + Refresh(); +} + +void wxMediaCtrl3::SetIdleImage(wxString const &image) +{ + if (m_idle_image == image) + return; + m_idle_image = image; + if (m_url == nullptr) { + std::unique_lock lk(m_mutex); + m_frame = wxImage(m_idle_image); + assert(m_frame.IsOk()); + Refresh(); + } +} + +wxMediaState wxMediaCtrl3::GetState() +{ + std::unique_lock lk(m_mutex); + return m_state; +} + +int wxMediaCtrl3::GetLastError() +{ + std::unique_lock lk(m_mutex); + return m_error; +} + +wxSize wxMediaCtrl3::GetVideoSize() +{ + std::unique_lock lk(m_mutex); + return m_video_size; +} + +wxSize wxMediaCtrl3::DoGetBestSize() const +{ + return {-1, -1}; +} + +static void adjust_frame_size(wxSize & frame, wxSize const & video, wxSize const & window) +{ + if (video.x * window.y < video.y * window.x) + frame = { video.x * window.y / video.y, window.y }; + else + frame = { window.x, video.y * window.x / video.x }; +} + +void wxMediaCtrl3::paintEvent(wxPaintEvent &evt) +{ + wxPaintDC dc(this); + auto size = GetSize(); + std::unique_lock lk(m_mutex); + if (!m_frame.IsOk()) + return; + auto size2 = m_frame.GetSize(); + if (size2.x != m_frame_size.x && size2.y == m_frame_size.y) + size2.x = m_frame_size.x; + if (size2.x != size.x && size2.y != size.y) { + auto scale = std::min(double(size.x) / size2.x, double(size.y) / size2.y); + dc.SetUserScale(scale, scale); + adjust_frame_size(size2, size2, size); + } + size2 = (size - size2) / 2; + dc.DrawBitmap(m_frame, size2.x, size2.y); +} + +void wxMediaCtrl3::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + if (sizeFlags & wxSIZE_USE_EXISTING) return; + wxMediaCtrl_OnSize(this, m_video_size, width, height); +} + +void wxMediaCtrl3::bambu_log(void *ctx, int level, tchar const *msg2) +{ +#ifdef _WIN32 + wxString msg(msg2); +#else + wxString msg = wxString::FromUTF8(msg2); +#endif + if (level == 1) { + if (msg.EndsWith("]")) { + int n = msg.find_last_of('['); + if (n != wxString::npos) { + long val = 0; + wxMediaCtrl3 *ctrl = (wxMediaCtrl3 *) ctx; + if (msg.SubString(n + 1, msg.Length() - 2).ToLong(&val)) { + std::unique_lock lk(ctrl->m_mutex); + ctrl->m_error = (int) val; + } + } + } else if (msg.Contains("stat_log")) { + wxCommandEvent evt(EVT_MEDIA_CTRL_STAT); + wxMediaCtrl3 *ctrl = (wxMediaCtrl3 *) ctx; + evt.SetEventObject(ctrl); + evt.SetString(msg.Mid(msg.Find(' ') + 1)); + wxPostEvent(ctrl, evt); + } + } + BOOST_LOG_TRIVIAL(info) << msg.ToUTF8().data(); +} + +void wxMediaCtrl3::PlayThread() +{ + using namespace std::chrono_literals; + std::shared_ptr url; + std::unique_lock lk(m_mutex); + while (true) { + m_cond.wait(lk, [this, &url] { return m_url != url; }); + url = m_url; + if (url == nullptr) + continue; + if (!url->HasScheme()) + break; + lk.unlock(); + Bambu_Tunnel tunnel = nullptr; + int error = Bambu_Create(&tunnel, m_url->BuildURI().ToUTF8()); + if (error == 0) { + Bambu_SetLogger(tunnel, &wxMediaCtrl3::bambu_log, this); + error = Bambu_Open(tunnel); + if (error == 0) + error = Bambu_would_block; + } + lk.lock(); + while (error == int(Bambu_would_block)) { + m_cond.wait_for(lk, 100ms); + if (m_url != url) { + error = 1; + break; + } + lk.unlock(); + error = Bambu_StartStream(tunnel, true); + lk.lock(); + } + Bambu_StreamInfo info; + if (error == 0) + error = Bambu_GetStreamInfo(tunnel, 0, &info); + AVVideoDecoder decoder; + if (error == 0) { + decoder.open(info); + m_video_size = { info.format.video.width, info.format.video.height }; + adjust_frame_size(m_frame_size, m_video_size, GetSize()); + NotifyStopped(); + } + Bambu_Sample sample; + while (error == 0) { + lk.unlock(); + error = Bambu_ReadSample(tunnel, &sample); + lk.lock(); + while (error == int(Bambu_would_block)) { + m_cond.wait_for(lk, 100ms); + if (m_url != url) { + error = 1; + break; + } + lk.unlock(); + error = Bambu_ReadSample(tunnel, &sample); + lk.lock(); + } + if (error == 0) { + if (m_url != url) { + error = 1; + break; + } + lk.unlock(); + wxBitmap bm; + decoder.decode(sample); + decoder.toWxBitmap(bm, m_frame_size); + lk.lock(); + if (bm.IsOk()) + m_frame = bm; + CallAfter([this] { Refresh(); }); + } + } + if (tunnel) { + lk.unlock(); + Bambu_Close(tunnel); + Bambu_Destroy(tunnel); + tunnel = nullptr; + lk.lock(); + } + if (m_url == url) + m_error = error; + m_video_size = wxDefaultSize; + NotifyStopped(); + } + +} + +void wxMediaCtrl3::NotifyStopped() +{ + m_state = wxMEDIASTATE_STOPPED; + wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); + event.SetId(GetId()); + event.SetEventObject(this); + wxPostEvent(this, event); +} diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h new file mode 100644 index 0000000000..108c039f45 --- /dev/null +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -0,0 +1,83 @@ +// +// wxMediaCtrl3.h +// libslic3r_gui +// +// Created by cmguo on 2024/6/22. +// + +#ifndef wxMediaCtrl3_h +#define wxMediaCtrl3_h + +#include "wx/uri.h" +#include "wx/mediactrl.h" + +wxDECLARE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); + +void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); + +#ifdef __WXMAC__ + +#include "wxMediaCtrl2.h" +#define wxMediaCtrl3 wxMediaCtrl2 + +#else + +#define BAMBU_DYNAMIC +#include + +class AVVideoDecoder; + +class wxMediaCtrl3 : public wxWindow, BambuLib +{ +public: + wxMediaCtrl3(wxWindow *parent); + + ~wxMediaCtrl3(); + + void Load(wxURI url); + + void Play(); + + void Stop(); + + void SetIdleImage(wxString const & image); + + wxMediaState GetState(); + + int GetLastError(); + + wxSize GetVideoSize(); + +protected: + DECLARE_EVENT_TABLE() + + void paintEvent(wxPaintEvent &evt); + + wxSize DoGetBestSize() const override; + + void DoSetSize(int x, int y, int width, int height, int sizeFlags) override; + + static void bambu_log(void *ctx, int level, tchar const *msg); + + void PlayThread(); + + void NotifyStopped(); + +private: + wxString m_idle_image; + wxMediaState m_state = wxMEDIASTATE_STOPPED; + int m_error = 0; + wxSize m_video_size = wxDefaultSize; + wxSize m_frame_size = wxDefaultSize; + wxBitmap m_frame; + wxImage m_frame2; + + std::shared_ptr m_url; + std::mutex m_mutex; + std::condition_variable m_cond; + std::thread m_thread; +}; + +#endif + +#endif /* wxMediaCtrl3_h */ From 7c09b0bcbaa8fa74d7ea6a655fb96face212b546 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 9 Jul 2024 16:36:19 +0800 Subject: [PATCH 025/164] FIX: reset bambu lib after restart network plugin Change-Id: I4a3a4b7420745835ca3fa00c6edebe9d8d98cbf6 Jira: STUDIO-7571 (cherry picked from commit 28d9c6743fae80bfd40e4ee391e30d62cb16d4ab) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index 302af5fe2c..ca371314da 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -19,12 +19,12 @@ END_EVENT_TABLE() struct StaticBambuLib : BambuLib { - static StaticBambuLib &get(); + static StaticBambuLib &get(BambuLib *); }; wxMediaCtrl3::wxMediaCtrl3(wxWindow *parent) : wxWindow(parent, wxID_ANY) - , BambuLib(StaticBambuLib::get()) + , BambuLib(StaticBambuLib::get(this)) , m_thread([this] { PlayThread(); }) { SetBackgroundColour(*wxBLACK); From 8832d54b53e84f36ec3bcf37939a08b470b53a4e Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Fri, 12 Jul 2024 17:00:24 +0800 Subject: [PATCH 026/164] FIX: ffmpeg decoder memory leak Change-Id: I997572b5730618a969959f9b24c405d80fa9f83c Jira: STUDIO-7597 (cherry picked from commit 342cea29bd9593fa89cbb33caff58055b46ebeec) --- src/slic3r/GUI/AVVideoDecoder.cpp | 26 ++++++++++++-------------- src/slic3r/GUI/AVVideoDecoder.hpp | 1 + src/slic3r/GUI/wxMediaCtrl3.cpp | 2 +- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index cb9ed33a2a..599b883818 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -81,17 +81,16 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) size.GetWidth(), size.GetHeight(), wxFmt, SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC nullptr, nullptr, nullptr); - uint8_t *data = (uint8_t*)malloc(size.GetWidth() * size.GetHeight() * 3); - if (data == nullptr) - return false; - uint8_t * datas[] = {data }; - int strides[] = {size.GetWidth() * 3}; + int length = size.GetWidth() * size.GetHeight() * 3; + if (bits_.size() < length) + bits_.resize(length); + uint8_t * datas[] = { bits_.data() }; + int strides[] = { size.GetWidth() * 3 }; int result_h = sws_scale(sws_ctx_, frame_->data, frame_->linesize, 0, frame_->height, datas, strides); if (result_h != size.GetHeight()) { - delete[] data; return false; } - image = wxImage(size.GetWidth(), size.GetHeight(), data); + image = wxImage(size.GetWidth(), size.GetHeight(), bits_.data()); return true; } @@ -111,16 +110,15 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) size.GetWidth(), size.GetHeight(), wxFmt, SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC nullptr, nullptr, nullptr); - uint8_t *data = (uint8_t*)malloc(size.GetWidth() * size.GetHeight() * 4); - if (data == nullptr) - return false; - uint8_t *datas[] = {data}; - int strides[] = {size.GetWidth() * 4}; + int length = size.GetWidth() * size.GetHeight() * 4; + if (bits_.size() < length) + bits_.resize(length); + uint8_t *datas[] = { bits_.data() }; + int strides[] = { size.GetWidth() * 4 }; int result_h = sws_scale(sws_ctx_, frame_->data, frame_->linesize, 0, frame_->height, datas, strides); if (result_h != size.GetHeight()) { - delete[] data; return false; } - bitmap = wxBitmap((char *) data, size.GetWidth(), size.GetHeight(), 32); + bitmap = wxBitmap((char const *) bits_.data(), size.GetWidth(), size.GetHeight(), 32); return true; } diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp index 7c6e5e7e79..a32241a62c 100644 --- a/src/slic3r/GUI/AVVideoDecoder.hpp +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -34,6 +34,7 @@ private: AVFrame * frame_ = nullptr; SwsContext * sws_ctx_ = nullptr; bool got_frame_ = false; + std::vector bits_; }; #endif // AVVIDEODECODER_HPP diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index ca371314da..e326485bfe 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -27,7 +27,7 @@ wxMediaCtrl3::wxMediaCtrl3(wxWindow *parent) , BambuLib(StaticBambuLib::get(this)) , m_thread([this] { PlayThread(); }) { - SetBackgroundColour(*wxBLACK); + SetBackgroundColour("#000001ff"); } wxMediaCtrl3::~wxMediaCtrl3() From 297572dc03e71d436a9db9d4fde316da8f446a0d Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Fri, 12 Jul 2024 11:17:20 +0800 Subject: [PATCH 027/164] FIX: install ffmpeg symbolic sos Change-Id: Ia4a45182cefcf62a7a4b4a5c89c92251609c5a68 Jira: none (cherry picked from commit b7f8fa1efdbe0ac2cc896ca24f063f5894fe9f90) --- CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index cabbb42b33..cb7fda82c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1099,16 +1099,24 @@ function(bambustudio_copy_sos target config postfix output_sos) message ("set out_dir to CMAKE_CURRENT_BINARY_DIR: ${_out_dir}") file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 ${CMAKE_PREFIX_PATH}/lib/libavutil.so + ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 ${CMAKE_PREFIX_PATH}/lib/libswscale.so + ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 ${CMAKE_PREFIX_PATH}/lib/libswresample.so + ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 DESTINATION ${_out_dir}) set(${output_dlls} ${_out_dir}/libavcodec.so + ${_out_dir}/libavcodec.so.61 ${_out_dir}/libavutil.so + ${_out_dir}/libavutil.so.59 ${_out_dir}/libswscale.so + ${_out_dir}/libswscale.so.8 ${_out_dir}/libswresample.so + ${_out_dir}/libswresample.so.5 PARENT_SCOPE ) endfunction() From fbc5dbcfd4a807493b1c67d3a65409d00159aafc Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 16 Jul 2024 17:44:52 +0800 Subject: [PATCH 028/164] FIX: ffmpeg swscale & frame_size Change-Id: I9f4cb8c739b726f7e5cdbe0df7ed06b2eb2154d5 Jira: STUDIO-7624 (cherry picked from commit 5a2c75d835fb437667b590a803eef148baa30875) --- src/slic3r/GUI/AVVideoDecoder.cpp | 4 ++-- src/slic3r/GUI/wxMediaCtrl3.cpp | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index 599b883818..ce9771be03 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -79,7 +79,7 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), size.GetWidth(), size.GetHeight(), wxFmt, - SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC + SWS_GAUSS, nullptr, nullptr, nullptr); int length = size.GetWidth() * size.GetHeight() * 3; if (bits_.size() < length) @@ -108,7 +108,7 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), size.GetWidth(), size.GetHeight(), wxFmt, - SWS_POINT, // SWS_FAST_BILINEAR //SWS_BICUBIC + SWS_GAUSS, nullptr, nullptr, nullptr); int length = size.GetWidth() * size.GetHeight() * 4; if (bits_.size() < length) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index e326485bfe..a3b1d3efd3 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -139,6 +139,8 @@ void wxMediaCtrl3::DoSetSize(int x, int y, int width, int height, int sizeFlags) wxWindow::DoSetSize(x, y, width, height, sizeFlags); if (sizeFlags & wxSIZE_USE_EXISTING) return; wxMediaCtrl_OnSize(this, m_video_size, width, height); + std::unique_lock lk(m_mutex); + adjust_frame_size(m_frame_size, m_video_size, GetSize()); } void wxMediaCtrl3::bambu_log(void *ctx, int level, tchar const *msg2) @@ -232,10 +234,11 @@ void wxMediaCtrl3::PlayThread() error = 1; break; } + auto frame_size = m_frame_size; lk.unlock(); wxBitmap bm; decoder.decode(sample); - decoder.toWxBitmap(bm, m_frame_size); + decoder.toWxBitmap(bm, frame_size); lk.lock(); if (bm.IsOk()) m_frame = bm; From 0f06620d40b20a8497b682ba0f6a52eff0571ee7 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 22 Jul 2024 12:19:00 +0800 Subject: [PATCH 029/164] FIX: wxMediaCtrl3 idle image & center pos Change-Id: Ib9652573e31bfd6229f174c0a1388942d9d98822 Jira: STUDIO-7633 (cherry picked from commit d51247c46e26460b151de79c598d81151280e79c) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index a3b1d3efd3..99e31ca983 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -125,13 +125,20 @@ void wxMediaCtrl3::paintEvent(wxPaintEvent &evt) auto size2 = m_frame.GetSize(); if (size2.x != m_frame_size.x && size2.y == m_frame_size.y) size2.x = m_frame_size.x; + auto size3 = (size - size2) / 2; if (size2.x != size.x && size2.y != size.y) { - auto scale = std::min(double(size.x) / size2.x, double(size.y) / size2.y); + double scale = 1.; + if (size.x * size2.y > size.y * size2.x) { + size3 = {size.x * size2.y / size.y, size2.y}; + scale = double(size.y) / size2.y; + } else { + size3 = {size2.x, size.y * size2.x / size.x}; + scale = double(size.x) / size2.x; + } dc.SetUserScale(scale, scale); - adjust_frame_size(size2, size2, size); + size3 = (size3 - size2) / 2; } - size2 = (size - size2) / 2; - dc.DrawBitmap(m_frame, size2.x, size2.y); + dc.DrawBitmap(m_frame, size3.x, size3.y); } void wxMediaCtrl3::DoSetSize(int x, int y, int width, int height, int sizeFlags) @@ -141,6 +148,7 @@ void wxMediaCtrl3::DoSetSize(int x, int y, int width, int height, int sizeFlags) wxMediaCtrl_OnSize(this, m_video_size, width, height); std::unique_lock lk(m_mutex); adjust_frame_size(m_frame_size, m_video_size, GetSize()); + Refresh(); } void wxMediaCtrl3::bambu_log(void *ctx, int level, tchar const *msg2) @@ -230,16 +238,16 @@ void wxMediaCtrl3::PlayThread() lk.lock(); } if (error == 0) { - if (m_url != url) { - error = 1; - break; - } auto frame_size = m_frame_size; lk.unlock(); wxBitmap bm; decoder.decode(sample); decoder.toWxBitmap(bm, frame_size); lk.lock(); + if (m_url != url) { + error = 1; + break; + } if (bm.IsOk()) m_frame = bm; CallAfter([this] { Refresh(); }); @@ -254,6 +262,7 @@ void wxMediaCtrl3::PlayThread() } if (m_url == url) m_error = error; + m_frame_size = wxDefaultSize; m_video_size = wxDefaultSize; NotifyStopped(); } From b612cfa38b42cff26c080e2712e888be12ac9597 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 25 Jul 2024 15:48:15 +0800 Subject: [PATCH 030/164] FIX: AVVideoDecoder sws_ctx_ == nullptr on zero size Change-Id: I9698354bb1f341e276ec9780d4ef4fcd9f8a1028 Jira: STUDIO-7706 (cherry picked from commit ff622e25026a8471c39eb308cf5b115c4a9d84aa) --- src/slic3r/GUI/AVVideoDecoder.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index ce9771be03..3cf4e751d0 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -81,6 +81,8 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) size.GetWidth(), size.GetHeight(), wxFmt, SWS_GAUSS, nullptr, nullptr, nullptr); + if (sws_ctx_ == nullptr) + return false; int length = size.GetWidth() * size.GetHeight() * 3; if (bits_.size() < length) bits_.resize(length); @@ -110,6 +112,8 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) size.GetWidth(), size.GetHeight(), wxFmt, SWS_GAUSS, nullptr, nullptr, nullptr); + if (sws_ctx_ == nullptr) + return false; int length = size.GetWidth() * size.GetHeight() * 4; if (bits_.size() < length) bits_.resize(length); From d325b6b85ca496226fa6837f0bfe7d98bfed759e Mon Sep 17 00:00:00 2001 From: "BBL\\chuan.he" Date: Tue, 16 Jul 2024 11:29:34 +0800 Subject: [PATCH 031/164] fix:cannot open shared object file on linux Change-Id: Ica66500506cfe8932eac3ae0a58fb7ff30d1da9b jira:none (cherry picked from commit febd1aeb4d453bc96571fa5e5727e9e10046cb80) (cherry picked from commit 5ad579f929154779abd84b01438fd235c647dbf5) --- CMakeLists.txt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index cb7fda82c0..7b81541982 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -289,6 +289,8 @@ if (APPLE) SET(CMAKE_XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.orcaslicer.OrcaSlicer") message(STATUS "Orca: IS_CROSS_COMPILE: ${IS_CROSS_COMPILE}") +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(CMAKE_INSTALL_RPATH "$ORIGIN") endif () # Proposal for C++ unit tests and sandboxes @@ -1100,23 +1102,31 @@ function(bambustudio_copy_sos target config postfix output_sos) file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.10.100 ${CMAKE_PREFIX_PATH}/lib/libavutil.so ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 + ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.28.100 ${CMAKE_PREFIX_PATH}/lib/libswscale.so ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 + ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.2.100 ${CMAKE_PREFIX_PATH}/lib/libswresample.so ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 + ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.2.100 DESTINATION ${_out_dir}) set(${output_dlls} ${_out_dir}/libavcodec.so ${_out_dir}/libavcodec.so.61 + ${_out_dir}/libavcodec.so.61.10.100 ${_out_dir}/libavutil.so ${_out_dir}/libavutil.so.59 + ${_out_dir}/libavutil.so.59.28.100 ${_out_dir}/libswscale.so ${_out_dir}/libswscale.so.8 + ${_out_dir}/libswscale.so.8.2.100 ${_out_dir}/libswresample.so ${_out_dir}/libswresample.so.5 + ${_out_dir}/libswresample.so.5.2.100 PARENT_SCOPE ) endfunction() @@ -1178,6 +1188,20 @@ else () endif() endif () +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(LIBRARY_FILES + ${LIBDIR_BIN}/libavcodec.so.61 + ${LIBDIR_BIN}/libavcodec.so.61.10.100 + ${LIBDIR_BIN}/libavutil.so.59 + ${LIBDIR_BIN}/libavutil.so.59.28.100 + ${LIBDIR_BIN}/libswresample.so.5 + ${LIBDIR_BIN}/libswresample.so.5.2.100 + ${LIBDIR_BIN}/libswscale.so.8 + ${LIBDIR_BIN}/libswscale.so.8.2.100 + ) + install(FILES ${LIBRARY_FILES} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") +endif () + install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.txt DESTINATION ".") configure_file(${LIBDIR}/dev-utils/platform/unix/fhs.hpp.in ${LIBDIR_BIN}/dev-utils/platform/unix/fhs.hpp) From 2ae0a52928312f652f9fbe29df0f23e5257d5d0b Mon Sep 17 00:00:00 2001 From: MackBambu Date: Sat, 28 Sep 2024 02:00:31 +0800 Subject: [PATCH 032/164] NEW:add ffmepg build Cmake buildLinuxImage add ffmpeg so file jira:nojira Change-Id: I3e1be53aa58a179b8d9ae048ed7538de3ae8d111 (cherry picked from commit 2d70a1bcb6a5ba601525b08a38e7610f018fe106) --- CMakeLists.txt | 32 +++++++++++++++---------------- src/slic3r/GUI/AVVideoDecoder.hpp | 2 +- src/slic3r/GUI/wxMediaCtrl3.h | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b81541982..922e113037 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1047,10 +1047,10 @@ function(orcaslicer_copy_dlls target config postfix output_dlls) ${CMAKE_PREFIX_PATH}/bin/occt/TKXDESTEP.dll ${CMAKE_PREFIX_PATH}/bin/occt/TKXSBase.dll ${CMAKE_PREFIX_PATH}/bin/freetype.dll - ${CMAKE_PREFIX_PATH}/bin/avcodec-59.dll - ${CMAKE_PREFIX_PATH}/bin/swresample-4.dll - ${CMAKE_PREFIX_PATH}/bin/swscale-6.dll - ${CMAKE_PREFIX_PATH}/bin/avutil-57.dll + ${CMAKE_PREFIX_PATH}/bin/avcodec-61.dll + ${CMAKE_PREFIX_PATH}/bin/swresample-5.dll + ${CMAKE_PREFIX_PATH}/bin/swscale-8.dll + ${CMAKE_PREFIX_PATH}/bin/avutil-59.dll DESTINATION ${_out_dir}) set(${output_dlls} @@ -1086,10 +1086,10 @@ function(orcaslicer_copy_dlls target config postfix output_dlls) ${_out_dir}/TKXSBase.dll ${_out_dir}/freetype.dll - ${_out_dir}/avcodec-59.dll - ${_out_dir}/swresample-4.dll - ${_out_dir}/swscale-6.dll - ${_out_dir}/avutil-57.dll + ${_out_dir}/avcodec-61.dll + ${_out_dir}/swresample-5.dll + ${_out_dir}/swscale-8.dll + ${_out_dir}/avutil-59.dll PARENT_SCOPE ) @@ -1102,31 +1102,31 @@ function(bambustudio_copy_sos target config postfix output_sos) file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.10.100 + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100 ${CMAKE_PREFIX_PATH}/lib/libavutil.so ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 - ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.28.100 + ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.8.100 ${CMAKE_PREFIX_PATH}/lib/libswscale.so ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 - ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.2.100 + ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.1.100 ${CMAKE_PREFIX_PATH}/lib/libswresample.so ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 - ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.2.100 + ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 DESTINATION ${_out_dir}) set(${output_dlls} ${_out_dir}/libavcodec.so ${_out_dir}/libavcodec.so.61 - ${_out_dir}/libavcodec.so.61.10.100 + ${_out_dir}/libavcodec.so.61.3.100 ${_out_dir}/libavutil.so ${_out_dir}/libavutil.so.59 - ${_out_dir}/libavutil.so.59.28.100 + ${_out_dir}/libavutil.so.59.8.100 ${_out_dir}/libswscale.so ${_out_dir}/libswscale.so.8 - ${_out_dir}/libswscale.so.8.2.100 + ${_out_dir}/libswscale.so.8.1.100 ${_out_dir}/libswresample.so ${_out_dir}/libswresample.so.5 - ${_out_dir}/libswresample.so.5.2.100 + ${_out_dir}/libswresample.so.5.1.100 PARENT_SCOPE ) endfunction() diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp index a32241a62c..99a7349e55 100644 --- a/src/slic3r/GUI/AVVideoDecoder.hpp +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -1,7 +1,7 @@ #ifndef AVVIDEODECODER_HPP #define AVVIDEODECODER_HPP -#include "BambuTunnel.h" +#include "Printer/BambuTunnel.h" extern "C" { #include diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index 108c039f45..73224bc384 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -23,7 +23,7 @@ void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, in #else #define BAMBU_DYNAMIC -#include +#include "Printer/BambuTunnel.h" class AVVideoDecoder; From be2be5c83132e6c2cb39a981be138bceffe49190 Mon Sep 17 00:00:00 2001 From: Mack Date: Tue, 8 Oct 2024 14:31:17 +0800 Subject: [PATCH 033/164] FIX: ffmpeg cmake install error jira:nojira Change-Id: I74cc0f7c86b5364e55cad2af2bd9a82306ee6864 (cherry picked from commit 805df79e3bb044dac29ec1c06736751ccf3675f9) --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 922e113037..ac80726085 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1191,13 +1191,13 @@ endif () if (CMAKE_SYSTEM_NAME STREQUAL "Linux") set(LIBRARY_FILES ${LIBDIR_BIN}/libavcodec.so.61 - ${LIBDIR_BIN}/libavcodec.so.61.10.100 + ${LIBDIR_BIN}/libavcodec.so.61.3.100 ${LIBDIR_BIN}/libavutil.so.59 - ${LIBDIR_BIN}/libavutil.so.59.28.100 + ${LIBDIR_BIN}/libavutil.so.59.8.100 ${LIBDIR_BIN}/libswresample.so.5 - ${LIBDIR_BIN}/libswresample.so.5.2.100 + ${LIBDIR_BIN}/libswresample.so.5.1.100 ${LIBDIR_BIN}/libswscale.so.8 - ${LIBDIR_BIN}/libswscale.so.8.2.100 + ${LIBDIR_BIN}/libswscale.so.8.1.100 ) install(FILES ${LIBRARY_FILES} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") endif () From 240227de7951bab321de0d222c3f8cd32d4fe5e6 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Sun, 29 Sep 2024 16:29:31 +0800 Subject: [PATCH 034/164] FIX: decode video to wxImage on Linux Change-Id: I5e332a1b0622b3dfc70ac5c4c3bfa62b3411ebdc Jira: none (cherry picked from commit c787ba921a31f259e8eb23fd59f178e96279caf9) --- src/slic3r/GUI/AVVideoDecoder.cpp | 36 +++++++++++++++++++++---------- src/slic3r/GUI/wxMediaCtrl3.cpp | 7 +++++- src/slic3r/GUI/wxMediaCtrl3.h | 5 ++++- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index 3cf4e751d0..a56579ccaa 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -1,5 +1,7 @@ #include "AVVideoDecoder.hpp" +#include + extern "C" { #include @@ -26,12 +28,12 @@ int AVVideoDecoder::open(Bambu_StreamInfo const &info) auto codec_id = info.sub_type == AVC1 ? AV_CODEC_ID_H264 : AV_CODEC_ID_MJPEG; auto codec = avcodec_find_decoder(codec_id); if (codec == nullptr) { - fprintf(stderr, "Unsupported codec!\n"); + fprintf(stderr, "AVVideoDecoder: unsupported codec!\n"); return -1; // Codec not found } /* open the coderc */ if (avcodec_open2(codec_ctx_, codec, nullptr) < 0) { - fprintf(stderr, "could not open codec\n"); + fprintf(stderr, "AVVideoDecoder: could not open codec\n"); return -1; } @@ -70,15 +72,16 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) if (!got_frame_) return false; - auto size = size2; - if (!size.IsFullySpecified()) - size = {frame_->width, frame_->height }; + auto size1 = size2; + if (!size1.IsFullySpecified()) + size1 = {frame_->width, frame_->height }; + auto size = size1; if (size.GetWidth() & 0x0f) size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); AVPixelFormat wxFmt = AV_PIX_FMT_RGB24; sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), - size.GetWidth(), size.GetHeight(), wxFmt, + size1.GetWidth(), size1.GetHeight(), wxFmt, SWS_GAUSS, nullptr, nullptr, nullptr); if (sws_ctx_ == nullptr) @@ -92,7 +95,11 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) if (result_h != size.GetHeight()) { return false; } - image = wxImage(size.GetWidth(), size.GetHeight(), bits_.data()); + image = wxImage(size.GetWidth(), size.GetHeight(), bits_.data(), true); + if (!image.IsOk()) { + fprintf(stderr, "AVVideoDecoder: image not ok %dx%d\n", size.GetWidth(), size.GetHeight()); + return false; + } return true; } @@ -101,15 +108,16 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) if (!got_frame_) return false; - auto size = size2; - if (!size.IsFullySpecified()) - size = {frame_->width, frame_->height }; + auto size1 = size2; + if (!size1.IsFullySpecified()) + size1 = {frame_->width, frame_->height }; + auto size = size1; if (size.GetWidth() & 0x0f) size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); AVPixelFormat wxFmt = AV_PIX_FMT_RGB32; sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), - size.GetWidth(), size.GetHeight(), wxFmt, + size1.GetWidth(), size1.GetHeight(), wxFmt, SWS_GAUSS, nullptr, nullptr, nullptr); if (sws_ctx_ == nullptr) @@ -121,8 +129,14 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) int strides[] = { size.GetWidth() * 4 }; int result_h = sws_scale(sws_ctx_, frame_->data, frame_->linesize, 0, frame_->height, datas, strides); if (result_h != size.GetHeight()) { + fprintf(stderr, "AVVideoDecoder: result_h %d %d\n", result_h, size.GetHeight()); return false; } bitmap = wxBitmap((char const *) bits_.data(), size.GetWidth(), size.GetHeight(), 32); + assert(bitmap.IsOk()); + if (!bitmap.IsOk()) { + fprintf(stderr, "AVVideoDecoder: bitmap not ok %dx%d\n", size.GetWidth(), size.GetHeight()); + return false; + } return true; } diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index 99e31ca983..f6912b8f3e 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -240,9 +240,14 @@ void wxMediaCtrl3::PlayThread() if (error == 0) { auto frame_size = m_frame_size; lk.unlock(); - wxBitmap bm; decoder.decode(sample); +#ifdef _WIN32 + wxBitmap bm; decoder.toWxBitmap(bm, frame_size); +#else + wxImage bm; + decoder.toWxImage(bm, frame_size); +#endif lk.lock(); if (m_url != url) { error = 1; diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index 73224bc384..d75dff9b5c 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -69,8 +69,11 @@ private: int m_error = 0; wxSize m_video_size = wxDefaultSize; wxSize m_frame_size = wxDefaultSize; +#ifdef _WIN32 wxBitmap m_frame; - wxImage m_frame2; +#else + wxImage m_frame; +#endif std::shared_ptr m_url; std::mutex m_mutex; From c3d9c27091948b5d97d9cf663366556be082c8a4 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 26 Sep 2024 17:14:20 +0800 Subject: [PATCH 035/164] FIX: wxMediaCtrl3 enter Stopped state soon Change-Id: I120e9d4b9f85599a184650d1d95fe2bec42af171 Jira: STUDIO-8280 (cherry picked from commit 7648d96305d510b9e97f22124961de5115cde830) --- src/slic3r/GUI/MediaPlayCtrl.cpp | 2 ++ src/slic3r/GUI/wxMediaCtrl3.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index 7e94775e02..dd5132b4b6 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -716,7 +716,9 @@ void MediaPlayCtrl::media_proc() break; } else if (url == "") { + BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: start play"; m_media_ctrl->Play(); + BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: end play"; } else { BOOST_LOG_TRIVIAL(info) << "MediaPlayCtrl: start load"; diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index f6912b8f3e..dc91b8525c 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -67,6 +67,7 @@ void wxMediaCtrl3::Stop() std::unique_lock lk(m_mutex); m_url.reset(); m_frame = wxImage(m_idle_image); + NotifyStopped(); m_cond.notify_all(); Refresh(); } From fed03193e2d98e09afc14926aedf63b05ccf4296 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Sat, 12 Oct 2024 11:33:52 +0800 Subject: [PATCH 036/164] FIX: reset decode buffer zero when scale width changed Change-Id: Iaa2f99111dd5f7228b7b25e1be0a8cbdbfe982a6 Jira: STUDIO-8422 (cherry picked from commit 659ebc7d07a8f6045ba5443141b44277d7257cec) --- src/slic3r/GUI/AVVideoDecoder.cpp | 14 ++++++++++++-- src/slic3r/GUI/AVVideoDecoder.hpp | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index a56579ccaa..1848040546 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -76,8 +76,13 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) if (!size1.IsFullySpecified()) size1 = {frame_->width, frame_->height }; auto size = size1; - if (size.GetWidth() & 0x0f) + if (size.GetWidth() & 0x0f) { size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); + if (size.GetWidth() != width_) { + std::fill(bits_.begin(), bits_.end(), 0); + width_ = size.GetWidth(); + } + } AVPixelFormat wxFmt = AV_PIX_FMT_RGB24; sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), @@ -112,8 +117,13 @@ bool AVVideoDecoder::toWxBitmap(wxBitmap &bitmap, wxSize const &size2) if (!size1.IsFullySpecified()) size1 = {frame_->width, frame_->height }; auto size = size1; - if (size.GetWidth() & 0x0f) + if (size.GetWidth() & 0x0f) { size.SetWidth((size.GetWidth() & ~0x0f) + 0x10); + if (size.GetWidth() != width_) { + std::fill(bits_.begin(), bits_.end(), 0); + width_ = size.GetWidth(); + } + } AVPixelFormat wxFmt = AV_PIX_FMT_RGB32; sws_ctx_ = sws_getCachedContext(sws_ctx_, frame_->width, frame_->height, AVPixelFormat(frame_->format), diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp index 99a7349e55..239352aeaa 100644 --- a/src/slic3r/GUI/AVVideoDecoder.hpp +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -34,6 +34,7 @@ private: AVFrame * frame_ = nullptr; SwsContext * sws_ctx_ = nullptr; bool got_frame_ = false; + int width_ { 0 }; // scale result width std::vector bits_; }; From 3045ff778846256d55fbd4a4c4ccc1e46c97fb6b Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 15 Oct 2024 21:40:59 +0200 Subject: [PATCH 037/164] slic3r: Fix missing declarations in wxMediaCtrl3.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/slic3r/GUI/wxMediaCtrl3.h:80:10: error: ‘condition_variable’ in namespace ‘std’ does not name a type 80 | std::condition_variable m_cond; | ^~~~~~~~~~~~~~~~~~ src/slic3r/GUI/wxMediaCtrl3.h:27:1: note: ‘std::condition_variable’ is defined in header ‘’; did you forget to ‘#include ’? 26 | #include "Printer/BambuTunnel.h" +++ |+#include 27 | src/slic3r/GUI/wxMediaCtrl3.h:81:10: error: ‘thread’ in namespace ‘std’ does not name a type 81 | std::thread m_thread; | ^~~~~~ src/slic3r/GUI/wxMediaCtrl3.h:27:1: note: ‘std::thread’ is defined in header ‘’; did you forget to ‘#include ’? 26 | #include "Printer/BambuTunnel.h" +++ |+#include 27 | In file included from src/slic3r/GUI/MediaPlayCtrl.h:17, from src/slic3r/GUI/MediaPlayCtrl.cpp:1: src/slic3r/GUI/wxMediaCtrl3.h:77:13: error: field ‘m_frame’ has incomplete type ‘wxImage’ 77 | wxImage m_frame; | ^~~~~~~ (cherry picked from commit 727a73333bd67acf5ff2b1c51ff284c2bacdb413) --- src/slic3r/GUI/wxMediaCtrl3.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index d75dff9b5c..86bc7755ea 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -23,6 +23,11 @@ void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, in #else #define BAMBU_DYNAMIC +#include +#include +#ifndef _WIN32 +#include +#endif #include "Printer/BambuTunnel.h" class AVVideoDecoder; From 004aea23c8470cf620282b9b62a8aca0c5337aba Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Wed, 16 Oct 2024 22:59:30 +0200 Subject: [PATCH 038/164] slic3r: Fix missing includes in AVVideoDecoder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In file included from src/slic3r/GUI/AVVideoDecoder.cpp:1: src/slic3r/GUI/AVVideoDecoder.hpp:28:20: error: ‘wxImage’ has not been declared 28 | bool toWxImage(wxImage &image, wxSize const &size); | ^~~~~~~ src/slic3r/GUI/AVVideoDecoder.hpp:28:36: error: ‘wxSize’ has not been declared 28 | bool toWxImage(wxImage &image, wxSize const &size); | ^~~~~~ src/slic3r/GUI/AVVideoDecoder.hpp:38:10: error: ‘vector’ in namespace ‘std’ does not name a template type 38 | std::vector bits_; | ^~~~~~ src/slic3r/GUI/AVVideoDecoder.hpp:9:1: note: ‘std::vector’ is defined in header ‘’; did you forget to ‘#include ’? 8 | #include +++ |+#include 9 | } src/slic3r/GUI/AVVideoDecoder.cpp:145:89: error: invalid use of incomplete type ‘class wxBitmap’ 145 | bitmap = wxBitmap((char const *) bits_.data(), size.GetWidth(), size.GetHeight(), 32); | ^ (cherry picked from commit 781ce14e061366da64fdc2d0d592fa35ee57e67e) --- src/slic3r/GUI/AVVideoDecoder.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp index 239352aeaa..4111e860a2 100644 --- a/src/slic3r/GUI/AVVideoDecoder.hpp +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -7,6 +7,11 @@ extern "C" { #include #include } +#include +#include +#include +#include + class wxBitmap; class AVVideoDecoder From 76546d89f1c05e6161940d2d4375102345879dee Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Wed, 16 Oct 2024 23:04:43 +0200 Subject: [PATCH 039/164] slic3r: Fix missing includes in wxMediaCtrl2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/slic3r/GUI/wxMediaCtrl2.cpp: In lambda function: src/slic3r/GUI/wxMediaCtrl2.cpp:170:13: error: ‘wxMessageBox’ was not declared in this scope; did you mean ‘wxInfoMessageBox’? 170 | wxMessageBox(_L("Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Bambu Studio?)"), _L("Error"), wxOK); | ^~~~~~~~~~~~ | wxInfoMessageBox src/slic3r/GUI/wxMediaCtrl2.cpp: In member function ‘void wxMediaCtrl2::Load(wxURI)’: src/slic3r/GUI/wxMediaCtrl2.cpp:179:5: error: ‘wxLog’ has not been declared 179 | wxLog::EnableLogging(false); | ^~~~~ (cherry picked from commit 73908d38d8b1f7c8dcae92d55711bc08cbfff23c) --- src/slic3r/GUI/wxMediaCtrl2.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 9ff657ff73..8871f0d2dd 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -2,6 +2,8 @@ #include "libslic3r/Time.hpp" #include "I18N.hpp" #include "libslic3r/Utils.hpp" +#include +#include #include "LinuxDisplayBackend.hpp" #include #include From 7b5f8d00a0e4ff351e1fe5df4ef3ebe3770292a5 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 17 Oct 2024 11:30:14 +0200 Subject: [PATCH 040/164] slic3r: Fix missing wxPaintDC declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/slic3r/GUI/wxMediaCtrl3.cpp: In member function ‘void wxMediaCtrl3::paintEvent(wxPaintEvent&)’: src/slic3r/GUI/wxMediaCtrl3.cpp:121:5: error: ‘wxPaintDC’ was not declared in this scope; did you mean ‘wxPoint’? 121 | wxPaintDC dc(this); | ^~~~~~~~~ | wxPoint (cherry picked from commit 9ab5009235d212699f91e01d7f930f92849ed1e3) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index dc91b8525c..acd04beef7 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -2,6 +2,7 @@ #include "AVVideoDecoder.hpp" #include "I18N.hpp" #include "libslic3r/Utils.hpp" +#include #ifdef __WIN32__ #include #include From a9be080ebcd388cf5068b75ef5c74c317b1aa64a Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Thu, 17 Oct 2024 11:31:26 +0200 Subject: [PATCH 041/164] slic3r: Fix missing BOOST_LOG_TRIVIAL declaration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/slic3r/GUI/wxMediaCtrl3.cpp:181:23: error: ‘info’ was not declared in this scope 181 | BOOST_LOG_TRIVIAL(info) << msg.ToUTF8().data(); | ^~~~ src/slic3r/GUI/wxMediaCtrl3.cpp:181:5: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope 181 | BOOST_LOG_TRIVIAL(info) << msg.ToUTF8().data(); | ^~~~~~~~~~~~~~~~~ (cherry picked from commit c5c41e20ca2fc7f3b53a4c769961f73df6992008) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index acd04beef7..90950b6b10 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -2,6 +2,7 @@ #include "AVVideoDecoder.hpp" #include "I18N.hpp" #include "libslic3r/Utils.hpp" +#include #include #ifdef __WIN32__ #include From 76e3da15e3d1072c7f0442e2a700cf92665a0657 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Fri, 25 Oct 2024 09:27:32 +0800 Subject: [PATCH 042/164] FIX: wxMediaCtrl3 zero size crash Change-Id: I16a3f7b3afe142bb957a1740b8e8c9820c92b349 Jira: STUDIO-8522 (cherry picked from commit 8cdaea1162ccbcc0bd03ecd99346f3b9cf52cf64) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index 90950b6b10..b2a97b19e8 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -122,6 +122,8 @@ void wxMediaCtrl3::paintEvent(wxPaintEvent &evt) { wxPaintDC dc(this); auto size = GetSize(); + if (size.x <= 0 || size.y <= 0) + return; std::unique_lock lk(m_mutex); if (!m_frame.IsOk()) return; From 26383d5c22624870e0cd56a43a9a6f42d602d8e2 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 4 Nov 2024 12:11:14 +0800 Subject: [PATCH 043/164] FIX: TabCtrl button margin Change-Id: If8b05a4ef9efb8b57989ee1de6543631e5a3cf90 Jira: STUDIO-8265 (cherry picked from commit 1c5e65707109ad0582b6442cf8e515344f799c27) --- src/slic3r/GUI/Widgets/TabCtrl.cpp | 5 +++-- src/slic3r/GUI/wxMediaCtrl3.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Widgets/TabCtrl.cpp b/src/slic3r/GUI/Widgets/TabCtrl.cpp index 40e291d5ad..882d2f6897 100644 --- a/src/slic3r/GUI/Widgets/TabCtrl.cpp +++ b/src/slic3r/GUI/Widgets/TabCtrl.cpp @@ -111,7 +111,7 @@ int TabCtrl::AppendItem(const wxString &item, btns.push_back(btn); if (btns.size() > 1) sizer->GetItem(sizer->GetItemCount() - 1)->SetMinSize({0, 0}); - sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, TAB_BUTTON_SPACE * 2); + sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, TAB_BUTTON_SPACE); sizer->AddStretchSpacer(1); relayout(); return btns.size() - 1; @@ -225,8 +225,9 @@ bool TabCtrl::IsVisible(unsigned int item) const void TabCtrl::DoSetSize(int x, int y, int width, int height, int sizeFlags) { + auto size = GetSize(); wxWindow::DoSetSize(x, y, width, height, sizeFlags); - if (sizeFlags & wxSIZE_USE_EXISTING) return; + if (size == GetSize()) return; relayout(); } diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index b2a97b19e8..cee4df7290 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -149,7 +149,7 @@ void wxMediaCtrl3::paintEvent(wxPaintEvent &evt) void wxMediaCtrl3::DoSetSize(int x, int y, int width, int height, int sizeFlags) { wxWindow::DoSetSize(x, y, width, height, sizeFlags); - if (sizeFlags & wxSIZE_USE_EXISTING) return; + if (sizeFlags == wxSIZE_USE_EXISTING) return; wxMediaCtrl_OnSize(this, m_video_size, width, height); std::unique_lock lk(m_mutex); adjust_frame_size(m_frame_size, m_video_size, GetSize()); From ce53d34b4d4854810d06d89c3b1c69d112f52093 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Wed, 18 Dec 2024 19:27:19 +0800 Subject: [PATCH 044/164] ENH: wxMediaCtrl3 display video frame at pts Change-Id: I8847236d2307101e5f2befc6477cd20b3691841c Jira: none (cherry picked from commit 05328da4612c11d50f6fd90e872b97f5f8f46b1d) --- src/slic3r/GUI/wxMediaCtrl3.cpp | 26 +++++++++++++++++++++++++- src/slic3r/GUI/wxMediaCtrl3.h | 3 +++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index cee4df7290..0e4bffb3a7 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -221,10 +221,12 @@ void wxMediaCtrl3::PlayThread() if (error == 0) error = Bambu_GetStreamInfo(tunnel, 0, &info); AVVideoDecoder decoder; + int minFrameDuration = 0; if (error == 0) { decoder.open(info); m_video_size = { info.format.video.width, info.format.video.height }; adjust_frame_size(m_frame_size, m_video_size, GetSize()); + minFrameDuration = 800 / info.format.video.frame_rate; // 80% NotifyStopped(); } Bambu_Sample sample; @@ -258,8 +260,30 @@ void wxMediaCtrl3::PlayThread() error = 1; break; } - if (bm.IsOk()) + if (bm.IsOk()) { + auto now = std::chrono::system_clock::now(); + if (m_last_PTS && (sample.decode_time - m_last_PTS) < 30000000ULL) { // 3s + auto next_PTS_expected = m_last_PTS_expected + std::chrono::milliseconds((sample.decode_time - m_last_PTS) / 10000ULL); + // The frame is late, catch up a little + auto next_PTS_practical = m_last_PTS_practical + std::chrono::milliseconds(minFrameDuration); + auto next_PTS = std::max(next_PTS_expected, next_PTS_practical); + if(now < next_PTS) + std::this_thread::sleep_until(next_PTS); + else + next_PTS = now; + //auto text = wxString::Format(L"wxMediaCtrl3 pts diff %ld\n", std::chrono::duration_cast(next_PTS - next_PTS_expected).count()); + //OutputDebugString(text); + m_last_PTS = sample.decode_time; + m_last_PTS_expected = next_PTS_expected; + m_last_PTS_practical = next_PTS; + } else { + // Resync + m_last_PTS = sample.decode_time; + m_last_PTS_expected = now; + m_last_PTS_practical = now; + } m_frame = bm; + } CallAfter([this] { Refresh(); }); } } diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index 86bc7755ea..859722d421 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -81,6 +81,9 @@ private: #endif std::shared_ptr m_url; + std::uint64_t m_last_PTS{0}; + std::chrono::system_clock::time_point m_last_PTS_expected; + std::chrono::system_clock::time_point m_last_PTS_practical; std::mutex m_mutex; std::condition_variable m_cond; std::thread m_thread; From 0325f94de14b0889b6727aa1642e1af214559a87 Mon Sep 17 00:00:00 2001 From: "chao.zhang" Date: Sat, 11 Jan 2025 14:13:42 +0800 Subject: [PATCH 045/164] Fix: fix memory leak caused by ffmpeg decoding Change-Id: I162ad4ea8d4601c1ffe17a65f292566c9dea6f0b jira: no-jira (cherry picked from commit eb20d03186c86b7398b97e3bae0a3c7a7b81c58c) --- src/slic3r/GUI/AVVideoDecoder.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index 1848040546..4c951fdb61 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -47,12 +47,27 @@ int AVVideoDecoder::open(Bambu_StreamInfo const &info) int AVVideoDecoder::decode(const Bambu_Sample &sample) { - auto pkt = av_packet_alloc(); - int ret = av_new_packet(pkt, sample.size); - if (ret == 0) - memcpy(pkt->data, sample.buffer, size_t(sample.size)); - got_frame_ = avcodec_receive_frame(codec_ctx_, frame_) == 0; + int ret = -1; + AVPacket *pkt = av_packet_alloc(); + if (!pkt) { + return ret; + } + + ret = av_new_packet(pkt, sample.size); + if (ret != 0) { + av_packet_free(&pkt); + return ret; + } + + memcpy(pkt->data, sample.buffer, size_t(sample.size)); + ret = avcodec_send_packet(codec_ctx_, pkt); + if (ret == 0) { + got_frame_ = avcodec_receive_frame(codec_ctx_, frame_) == 0; + } + + av_packet_unref(pkt); + av_packet_free(&pkt); return ret; } From 7382a15b89c5e050fb222663a018a30714f25430 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 15 Oct 2024 15:44:29 +0800 Subject: [PATCH 046/164] ENH: update some missing codes jira: no-jira Change-Id: Icb2da53911430ac144b0fb601637a7ad31e7e8db (cherry picked from commit 13b4213f8a24c76c16e49daf905fa29c0f646a5a) --- src/slic3r/GUI/MediaPlayCtrl.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index dd5132b4b6..dc1f95b88b 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -39,7 +39,7 @@ static std::map error_messages = { namespace Slic3r { namespace GUI { -MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const wxPoint &pos, const wxSize &size) +MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl3 *media_ctrl, const wxPoint &pos, const wxSize &size) : wxPanel(parent, wxID_ANY, pos, size) , m_media_ctrl(media_ctrl) { @@ -178,13 +178,6 @@ void MediaPlayCtrl::SetMachineObject(MachineObject* obj) if (machine == m_machine) { if (m_last_state == MEDIASTATE_IDLE && IsEnabled()) Play(); - else if (m_last_state == MEDIASTATE_LOADING && m_tutk_state == "disable" - && m_last_user_play + wxTimeSpan::Seconds(3) < wxDateTime::Now()) { - // resend ttcode to printer - if (auto agent = wxGetApp().getAgent()) - agent->get_camera_url(machine, [](auto) {}, wxGetApp().get_printer_cloud_provider()); - m_last_user_play = wxDateTime::Now(); - } return; } m_machine = machine; From dc4562cbfcde6cd4dbafe3e2c1127f884ce865c8 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 18 Jul 2026 00:49:33 +0800 Subject: [PATCH 047/164] Fix build --- src/slic3r/GUI/wxMediaCtrl2.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 8871f0d2dd..6a2e07d8d6 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -1,6 +1,7 @@ #include "wxMediaCtrl2.h" #include "libslic3r/Time.hpp" #include "I18N.hpp" +#include "GUI_App.hpp" #include "libslic3r/Utils.hpp" #include #include From e2eebc69dd5e03e1e2f988cd3fff357076d2d605 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 18 Jul 2026 00:56:27 +0800 Subject: [PATCH 048/164] Update idle image --- resources/images/live_stream_default.png | Bin 174784 -> 592991 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/images/live_stream_default.png b/resources/images/live_stream_default.png index 326ceaf994ebd78a8513482720ab28a5d2e74ee1..c1aa90bf1700bb1eee736a8f031a61adf0971714 100644 GIT binary patch literal 592991 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

`N+7 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%0A}hR1}3Nxm?WTjF;hHjN~)p& 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�b_F(3GzdM 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

Z3}(;%niDn2o`h|^y_rr9ir`4 zs|KRBUTyz8Aj^cqk7+BN5)wV$yImHYTTwyEOE_JcWLi*pDY{h?`c-wQ_#)&JTfqvd z{Yl6QA5bqgZN%cQ0yZj}Pxx9nYAB2S9o46195^ef0eA!RhQc|bvJ(t`fA z^eJ&}qfamV$Hbp|GrP^L5t?XZM+@3Zngl^6c22mK=c-9W>S^3iDX|1Fm~5C~1YmlG z9H0N~--kURxxyG*O6qoM*DuafehCQ)8ek5sHz@8o;ULoD3@U#hAd8zYu!9PE9OSG8T{N2z^o2F%gB_0w*E; z;@48MzTc9gy6!YBzbclWGjH^j;;M4H{TjiHnx`?Yg_17DBq$ZF4^z=Ch}PJu?%Bn zcHh{g@%z9}n`1k29iwZrAD9R(rLV`ZfjS+!)W7{dlpzxnNYL^ci^RW3bviJSiB9iE z3#qA7%j9&n7+c-u4|!C>D#cUKD#8PmRola0Wh)mVUY&m5l{;JR%Y)S=dk*D_igsMA z@F>*jegBQ6$``{Q0raXle3�sw%H6u(wgRzq8{%lYVNsekNt!+hVr%JaInjp6#Dk z-Hev!stZ1K){-%=y~i3qro|;Ubxe}$;At7Z>HkrHe97QpP*sa#u7IIdbo1~H z?H)rSMB>RGZKH)g^GC}B-|0`8t7x?7d^vv5z|ve5v>g-US`@Ptd;6CF%#4*?kuDR$ zJMHb?C~s<$;G4eTkFoNDQdWJWhu)I!xGBZ__6U+18vT#zEk#l8apu{T(a1#3d zIJ^-+EmkTMYevT%VcEFj2g5!NaV&tI?oVDku0u1+fnU{wY=HVdm(Coc8oro>aC|Kx zw@i0iHOMZZ$KI#RYEt98pwQg9ZAG!34qJ7&y>$FI`C>uT9SCxUEmb(jS8|5DUYBt! zYU1w`wuOErf;;tRV!HMFteXDZJ+tD53${*BJ*s?a3HraplM}K6}X-|nz z3_qLhS?;tc7Pkfy)y;*=n#6K3ON42yzWvL~4~&@PJ+e@<)-B%tJt}{&zHjU2$XmT2 z<{8xjZ#rRlo&IEogf1@dxqcw<4>sSasJBqYQ!-_PoQHA_d7KpMgp)Bd#K3Cxz+jIb zGI7T#W*0<{6*e4UcuYs=YfhaNJ%|=md0UwV8Tt_uBCrr`V(P*&*Z1H1Rs4_W4j*5D zo}4SRAeX@bOPO^#t}+r`imXM%eihRM4M*)s-<`Rn;afH)4;4EP&QIMI`iP~ioY?n) zdxrRZV5u&qMDSb}Y#3u(GVRd+^t_`uc9Ped2tNDnG>x~q#EZvDoep8uZ)a4_O$754 zP)V@2=oM7=d)blPxr&_5Q=4RWM+`jJ<3b);RVhx>AS2iiLLw2iR&lgi`%C?(8ug3Y z@rX~kXR#(0+RNuCY$9-_olJL%g(EJ$oG}kJddfmEh;AH-5f%-O`&^<8vSgwpj0YFi zxuVBhGkU(ik42)g@AD_Yc~YAG3T^7%F|#DH-1Z1ctvsO91YX0;SUHDq_1nK3@8GAs z{hRitZ#4P)JWw!?A4IQHXha;ZQxbU|eUl$f{PMESpC}vTJd{)7aY=9c_NELh31tzm z#}9^m9O76=gZL9nhj_L_2h$^26wrh0plu$p{YOhAE=Ra3du`nP0i)4xy6b%OC(V=L zvh3_Mb@*k4ppC+>@O{s1DyGjdzeFWM*;-Zivg3^7bBV&y_MUB_3zrD(Og=3($D_jG zV@}3?!`tG$j@vl6bzUM z6U1_2uIylE`rdax+ij@k0>yIQ8HG55%8fI>fUbI;P$mpxiS9dXODbrG9e6b5A;Z zY|Q(Em&P`Sy1d+Ta#zT5`P--9TdAUXh-9Y`eC7YMR=U4byVM;Ba)vGSN{-Lv21ni~ zOx_l{x3I7+bZethn_Dj3w$P1pXrn`)cmXr2LMV)CLK?762h5peWA$pSi{IR)K%d)l+W@WBsOD8SJ4e61 z@O~`0CJRK8rT7TQ9Abf}C?do1uO|x165U)wpV&8UF%W#xp63g0H5>NJZOXb$Fz$OS(9yYuZ8k!CmQx zPFZ~GM9<&kdidm_(@*IZpInYe|4CiX4(s6h+B&hZ9dxTm!x1kx&))gRHu3m6oULE8 zEp+J|-DX?p*RizKvl!zG`|vr{#T3e%_!SeuWuUjexqUmWLD^0Ody>0c-^wAksaB!( ztZFJ%1U#vJzYpx*|BQGi0y|E@gb|iWgA8Aiv`990N&rq39KOx4ss!ZMLUv75g-{q( zS6WN7F&y}<)b}49qDhx7<2o|JmN<6IWNyE%2xy6_i*1O)$ULg4m)aeO3!5YWD~Jt# zFl~M;#~?n2_Qy-==@n$G3*LsV32k?e*fkpc%o|>Q)E|1|A1HkqmPD~DgH)D(j*b7L z@8twADX9~ZtVR;RB*aAwujg-j`}f3T@80CEqBn^s#C!9H`te{7{-N2)1pZWRR>sJQ zJ0uHQxbm=AQa~+MDi;G5%gGw{XS?iFWUaLpIf(lF-%MZs zl}G)MWSJDUn0Yj0f&)28IO^}-7P?Kww&JJ7=6Ljf_>i`RZen{Cm5bwLqfnm%?uy(d zPTM+I|2{Cc74%f+@49FVcg3CCU2fy1RmF>z*W;1-?*lJeYr0E&+OQafIvql;2uK7A zHl3~(lxC_42uW?5?M-G*bM8>to*YXVU2YkNj zhOM=%EBkfzfR_lbzwPz0NK+5K^qzYzwM8XPU^895Xc4jMVZVhx`Xh~Y^{`LBY5m-r zuB&7jbDyO7)0yPIBFJR9Y!Z;1>9Ea-iJ5W!w|^gURwg8_*~A_(=^>^(m%jbWw1qoC z{4BeL>FVPBe6>F}e`IK1sgxi+%1@KzA6nuZ` z(}A=|X5e}xiyV5UKADIVeHG=j5%%-3bnfgYb%?SsHT`KL&+BK=zmt~x(Tahpo{D^I zHG2F{)(77NeyNg=Ey*e~KH#up&Tr0wcIWrr7J7V}ws+npVa4(mihm!teH*z;SRZvW zCW70yoL|1$q;wzCRGEDtCeh6AYDw%@`1gSurR6(h>J7H-iVdq;U`9`ML-fqqR6Ul; zo(LF75F$Ho=J#b4zd^+*uL|}%btR*c9VEatWylol4|~*N@IWDJsC2BI_8??sDe?P6 zgu6vXqHk8LiMBkD>Qz{wPvGZu03HzW05Tu`=bA`<-{hUrevQQ{x zx9T15XTF&J?#MG;QzyCeFx2Cc2AK%Moa3K(lbxPX-~MIg2PSX(XA+^jv3sXQy&f@qmd#qBP zD7G{(vD^%{XZdviEm2PuvqF+Z4n0$!Oa$m3Y`0=n5pD-}mTVKD51$zHYch!iahQv( z07qi|v9q{eM^jp^6{uS4eql*Pb#tgT|9!PglF&4t@ObUQ>1F;mNU?39$5`216Vo)QP|FBxDiK&+DuLl@ z&9T#~1i$fD-+yGWWx(mUa%bT_!&pnQg^E{d&qY-{DVQYeEQi>xa+3$ihtR9G2x9uj zM7mbYW}g1J^jXoa(C;WEP8ls9TgHlNcy;&Obpuw7xrE2!$2>`HG=GxF-}@=bQp|y~ zdcsmI+}pCejR8Y)dc~ChCcZ>df{!Z?!#nTo-#u>wBX8`cCx0iGE4)&c6T$-jU`zeT zk}+~F{-K_DII;2xC&fGBY0@+llrjnU{?xAnX_77Q>60!Ng=9mVy0{In4U1UCnlwzg z*6!hH_l)GUrA|^A`{THHV)rBGl{YC+pR+2FSbq=&~Wa~n&aknUsW-%4gpGWA}1J7w@c z*5iT7FTWl!tgY3b*TiFYio|3UaiKfUwPvas;#9iQYC@gqVu*P z+Cjw&S1?YFzLIxa$c=lYcm0t~uUgdS(=2M;bGI|kB*nbt1FxkI2=V6;(>K!EVddKS zN%uIsEcwVC^|)vgo-oz0ovm{+fc!n)z6M=3pUEUh2T2f-kzQdRXQa!dM<8Ww|4f6f z!Q<*-yYnbm$Iz0z0b^`{k2+#=(i$p0@1tbP@kp`)929ac=%m95)C&-Ujxc8?@x>u}6q zwl?K$p~qzG`|plzpJLBHBff2io3zvEoDv~xKpdS5rB^Us92ZB78vJxoOR0#&3R_3~9YD3+pIlHQk z+n1;1b7_x*<#AqGI_RpW#TQ2V2`N`ORxyOEC^eQwV!A?Mo9y08C{pQicr z#CS3Bv5^nGP9A?c_Uy?2C`2FCMBd(c7Datse=okx(*T<1{H|x$($c<}G(yb5X&gEE z#bO!;C>OVeCMl^QC4h;8mdW#&6d@+H#PE=}e<$AR+rPkh$9acO#(952vryLQ+#?td zuaq4L;lqT)XJlNz7*1I^59O3(oPg=DQrv=qSQY_4pCUo=0@EYe0svwPaHt$HWK_|skd(>Kg;wD z>k8D=Ch~n?r9RrXqlcKLdT4z2VI0PxMDWnuLYHggf$sx5i5y(p0(j{*{fR_P2-KmW zL~ySGum^^qwwtPW!ZHFzz0k!IpuM+)x&*;vyWqh9(-pC88niSt4UKGu&)z5vzYXk*V<+v7 zZ-^mY(MR|GIlsS|v+B5O;-=~N@R8W99D5diTm}t^d zHQM)qr3A3Bb8pGn{+Z(){7c^c<;t)jVN63A9zWK3r|iH8yx^O_2aChbdgLd??V`T!{OtZUS3-aga zi(6^i;6KN(f4sS;PV11*_)T=@`RA`{k*qwzi4=+OOEMH{Xd!DiU(d~n#4lQcaEx$1 zzu&gdgJ*SH=(ea#922;$sn&Pm_kl|(W1<{O1kZLyp4`rZPnPW7nwKnIz5R_90>bO# z(473spaxDwO$0m5tx{b?R6oNecfw<_mUdV2inFBHDs$viOjD|UmEsMgsw!)Jaw#P! z1cqCz3pvB82?3jRWQ43}BEQM}{#;RDn5v8IgoM%O(4Au9V#%Lk)zR`a4w@LIz5FQ8 zp^u9FQ!AOHrLqjIcFTIXK;|E<0Rg}^70uO*Iyzg9@MT3wwxgF?20E6rOEM zBAN~^$>!c7I1wxuQ+z=3B&vRf%V0%;UOJ&}LXHyRT1hXi`FFM!30C zI6tJzNJ?tp+dn^SNU?DKWuBQN9^*YBx!ZBZb_$=rok8a^55bhOwB0kqv-yl{>=Ogb zmdWy2LR@Gw4oLd;#kBFWdt8TSkz3Dg1+-zR1f38p0NcwHfNf%Fc>6_wu1Nr&?JrJu z8+Eb6+B2*3!>0`&5&mL;mzJ^ST{9j#Z*1mwfuE+nc*(-H(E3V~WQem=j(p^7XMRKU zrrSclj)gaG-%+(m*tf8WE9?8fQ?2#&KDPc?KSTIsY_GPmxTG(e2rflklQeo{L2e5+ z!b#+mRn%D3A@y-s{eU;>TjY2n*d`bFO{RttUtO~-szf~^w)auIy!qZ7hL`Ha*;24C zUr<$5$>@ix4OM5B$3Qg^x+GKubz}sHSE`A&Jh19jSfM%{VDL3(mr=bz3=(mX`NknN ztSMQOhvyR`!O1C#3EF>jclvGZi{I7ig6=(NrK~@iVpFRncW#Y%o<;#dDV%a7x=6(k zr-aB!Na0AuPWk??rVGtOO@;2XX&@BQcCGrV41>X$SB z_|as8oIT{_ERK=0SfQMf5*v%5GoQwE-IjbeF6>rbPagvq9_e;)?^Zi&p+5LTL|oFtn-oKB`BXBVrw zsukN7x(MIrb!`hh7;U#^?mQ34;r9E$V_Zj$_2lmZGxhWK{}lGyLXY*s)OQ&j4(%)v zBW7G+iZJN|Wv>Y=AzWo~egEhH#Y_v;NdQ5*dq_|6IfF8DRe?fot(X1rxD$nmu!w=` zgGYfqx|#?db@|qX%Bt@_Ju4Q7gs>&wZXbNWS$wA9Z+IRJ(Oo@kG)?+H?Fq7R&7XlX5hEY>cWO;<9KlmdjT{Sc;8^nJ+{ldnp{CSly1HRVS zdLDF*H=r*WvG6u95AZwozt>vc+4GT~a=LXS4E?U?|B25E{Ec30MYJsXKA~9b> zhaMGW0f96lrdTD$uaByOi%B_n#7maS7K2-JBo6J3i+I%sUj;wV)kOGd>VKq86(VoG>V1j)p^{SS-+A`3s1IyX`XIMPAW#UNF4WI zl46jP`M&?l@ty}S7HNJ7!;GFC#uXQpKJ5>P?P!O ztWi!{;Dm3l1nH>d0`zzhU;}g`)R+Z>?U@qvrWo-`5NgqO%%(Sh_cebBUFBD&z2m0% z?BWDBA5Fio$bV!}^2Pks8K%(_ft`>+b*$rLMoJ!fz7&nUE%cai94vMDQ#t85;twXX z4Rxb5Z42EhPuoJb>_d)yANU>4!%%CUlaBylyXv;Qz3-up+PY}Y-*r9K4_Bc=9cp6D z9E*wGRd?Nq$2wsFRn#Rh|I+9wCJf(jZ(j#70CM3^-N+|CC!M~_E{89jAiW5_WBhUfWzK5= z+fjF+`$V7F!BrptnEIjikW`FlkvQ(bB+eiSaS7W$hu;b&Chn0J!O&RMq@M5J`guI> z3&EZ%iCgx3Xf#Vl#vB&kd>0Srvu)cPlAzObXFWvDvW%qf*oPp};sx}0_L>b1L>SCv z)0CLDUCu!tKAX7xxLt1mbcU~6)0{WCBi(wI|KSrUB>ca*;)!(gC9SU#C7~B}Y~f^1 z#x=59jJJW?j3(sx`yAO8dOG!N3*9KYwuOHE;kJeDGq9!Go>_?X8Nu5(`+Z=u3R^2} zY-2r?KC#W(?IJ3CTk9HJ9mf_fy|=z;w7QqZ#+U?E)ZyRQr9+2$_3o5P!i_4$$dgtV zw+zdb|mmnQ4}1<`uevf;SvIj{&BGy4;nT5t1#kQ~HBRoIw)eN=X3I zaQ-|vOdY}w!^K8(`KIlk$8#ZgEv@5PnTUni<|n`tkw_mmC~&k);u5Z41q&D_fg8wuLUo zw|&QLpR~ZD392q^b%WH^nMS76ZW)VD+SWTXv8dM+G>ja80Sg@L&a0 zcWG5y?LoLnl;kgb1-ZLTl>{IOmRxo!4B5WO4TZA(;(vR}ggURhKN{&(H3YFSWzg-? zcwN+Awd|+!J?7I-D8qe-n^)YMup!CsyN~WEv3EXo17c!hr;Ci-?WaHRt2%6>d5XLQ zFm*EG43ZERn&{>D#3U_79x-u_JoTK3k@UBJt@D)RaA$&sHraQ66p6%hkw=F`n>X;e zwubn#ot`txSov&Tm9y9rwt(&r{kj$qzaM#saEaT#Pl3b}6YVDQGxBM?&j09}t{bx0 z1MIZeHjL$?u@PtJuRC`1c~!E~Q$KHB2D}NZG~py-uv}8FOu5M-`|0^(Qc}V_mQsfe zoo~M_^thdJFBiWLT;?QnTfy(YY2ODPo4tvpt&8UT9mm{EY_sb(4sBs4@s@LkJ6GGs zc*X&xBIJ4Kz*74=H(ID37V5`U15 zWtthP9wKL1r)&Z3*VV;2wonD~!9zYEG^82|O1EG$_Rx6U--fP@WnO!^Q{AkNNUXe4 z%wou|U}tx2pWUL@^&oQcFQgh0!H5yYt%YVRiGHylDk$5JA0?80Ev{{$+ni~K84|z! zw$O|{?iAS;nz7~I7P<|&7IRzZ*PF>*tV4Z_)xd@`08aTna8noWA_>6{JnaT$-MsLd z+s$q|Z5zB9b%v3Y>=N(=ypenZ1vG3VnLOLt$|r^oL>wsmw))B|Thu>fcFDJMiE(E@ zY$9=?aNR?H#ZI-%+d%+ev+S-S2v<|Uh9-9Qo=n$1g%rZuQqYY1{G&AzW|#tdK={Wm z@R&VW_had<#rmPu{Tt|{9KZdbiDm$NfJw91L+$LWX}c*D8Q8~9_JPkaeK^Jgn0!6YVc zW0130ro5UG8z-PAvp^e8D5pR;bjgnk?NVI|lD9w*Y9Dd;%0K$1yU(`o6yL5`>^Zrh zL@FapKX}%C8h!dI78*bJP2eVh2VyN2&+a*G%Jj`2@{+x_cU$N-(OL?=Ep%xHe8ZN` zWqn)dF=P9HG_i3BQD9r>@b`h4w}YpO7~2KvENlz&_9R`_kERUX9yi=UC6lh34Ydkw zCmJABWW%D2iuyLNW>W$%tUU`)ik^JpFv78%(M1cBVKCjdn6lHrOP*jP43A~TswRw3 zZ4VbJN+`Um_Cn3MaDhJ+>dbQKtI|YUD7<>WSyZP3zv{a4A3&b6oG{fAW|;a&Mwg0O z-Praj^2Cl}WA(9%?iJ0I_+Ls>HJS6IWa6iRxSq{iC$HHl zaYYc0Q5?8^a*Q~G9zMmt|9kvU>w-Dw{L@@EZTsi(oF0EjiEsJsU(egUrzeAtNDgt| zX3@8Udv{WQ!}yH1B6RVve8!b>{ua>l8KUo1Fjd{Q*9>^8PS9Q^5>Hg*UYh#JiN0NQ zOBE2u>Mg_C(w z&t*7gC!Gfc$DS{53(alYJnELY4!>Q?+d{Y7GQW>m`@*)+uS9SYK+5-l`I?%`IjtZ@ zwuQ#pS?i)1H_Nnp4>1FnAz3q417foW)1>*$nb-}3KYRu}Cxd1W3B(#jz0_2R22&GW zPFri_FqY)E0vu3r*|Um*{RIN634KaYt0Tj0E8I#45>PO`xQZa8yOY{+TjIC6*k!|A zv#eBHZZsRpwuN@aY1vMk#V`XKebQM=o`2g`#9L;B5CP-I)9CU5c2jmOui3jrn=esK zSQCic3w=87vByQob*-Dx$q5Wtn`8z7cq9Q#yrS%lIN#*sFDHO$IPXtL^v}fOO!&Uf z#aPIP?TSZznLJxRU!44vF)`lMZZ3W!qr#wP86uxq#9}5q@!GnQP##bhgXG!FG~%r; z&{_%&UED&ROWJ+=c63c_6+&EBZ>No?jAC9juH(ZBw8_S1{QUXQMmo9UYmOo zZxc^8+iL5-4{U7!_Y(PI zSh14h&9=VR&nM6))xf=DO&f=$`ix+&MeelwvuW+xAXs25?UTuv*u>$qM1tg)IFZ0# zNB|QP;K<|8xp;>2=h}jHt|fezw|h=V@OrS3^W&6;bB?F$O>L#vo7xTF4;+?Bx&n-u zuw(#R9qwX)6fHJr#|e!XAs;-|_mV}}Y`%YwTehFynigVQP`&%8K-kJ5|`6GZ~b~N?`Z$FwUTa>)eqQzi{9@6rKS6Ficg;W zqlLPpEsb{swkq+tuSCg^lO@P$@Sw0`_>zEjCYCnL_ zM8rWjL%e)u&MXo@9G)wuMOyp;8-8+nUGjCF;rKt++*UxyHA#Yxp=)Bj`v_!Te98o4 z$O+tyGN(p=)2ts(HPC}=kvl$M&haL2Z`acik;SPo`N(JcW@}P{aP~T%cW(oaaxp2& zymdRO3%ads_WQh3Tw{!*ePdhb1}wgf+{QANsjuC^z0!6I+d?y{MrV_jEBl1Kt+7DE zpm^Cf^%e5(%)FN0pdKx-Wp$Hj*@+bCK zZ5MpG?2emowM z9+5t6=cqv##0YFvk^x__k>To&^i#_fBBL@+sjF^Y^hasbJe2V}^$z6ugiV9)T!Qth zflLM7F#4LG^pjg4>mf3)=NNk5O_du_#y6$}XRO^V)0*EzHj1%KTUCb=@!1 zIzdc9#9*x+BrR^$Vr&cD^WLHcGbbJAZK031Si7udDZ-Y`pRq0U?6dtl`6S>Vr|2Aa?u1g^H{h*6PCeq9Pzct4adcg2+j} z-t7LsfFlHlv;77tdfx6KyX~@Q!x*8uT~rv^sSwOoB{6;6u25yD-L5^zQoeEwb-VGKdtRRJ>yJK&F7CjgH-Y~V-uK3I z6(ARJd5BV zsvb!Cg%6U`@3z~?RpkfWCp_3IYzjxd;jRg%ELnk`MK=uT!zq0PEqJ(#HEoZeb17>~ zvU_ZkMj@LQKO5e3mpC#h`6?h=faQ(?85B~y5odx_{v2m^0+@@9pmUPqqQN_Heh8F} z{a4eaRBZgbu|J%%JmUKn#~Um$SPVaKieSi;&zMrIw}EGfjpv}G2_1IU z2q>#tu$wM(%+uU0b>NSpq%sA}+lN;EU)dP60|d32bKN*6c|O zTU8#nbW0g(45Lun7Wzndj>*dLt=mJ;t8=<-D7V}e`pFM%3*E&xHrU$Rz(b)I?u3iC zQEtLe&Y(wM{Pzz4ssR%d!3PWTcfp;{@04TjFAWd<3hAeZFH>al0RM?_Z|7 zmUX@Vd-FqNG9F9|MQD;6_tV7z(ULfX{9H;ZW6;c< zM@m=6_M1kLyXg9v&}UN>j(6FNt|MxCb`n_ZCCb03p0k19jE)U2T=kqIuh{U_T;cdO zFrR-McW?G?3*B#jeB!pyuOxMJTj(~HGPdfxEp#DAJ&g9WHrLvNaXIO;e4&S~-1)4* z_8Iiux2m4l_!m^|4j9>R!a!xd0G4c|Q1lkaSczntsxHjTS*03DZx65?mi#)EE2Li2&WZ!k?}1^F0{DC3kFbyag)7T%D@>=|tj*iuAMD zon*~IDq4qfPc(REDy(#pPwlFGbb=Fa1b zD`TscFtfXEm?->B&wem%xiI!#ZQ<>pqtsmh!pWQzl+%1I|D7Zqu=cjlqfVP>J;bAZ zeOqWI0wMW2hH=1vZK2!Pxx=<-T{+57Z#;Ig`!3@ULzfh8Dq?Dm#J7P9#`Y0vAn0f; zT9_X7t-cjZFCUMC_h}~^RH&$l6T}895V6T*WPK{Y0TrKYN1>L=f0iHJpg90b@`FOb zRA6ya)lP#2WwM>&DpL}Ct~zmde|&-30#;oN*nwXA5nq<`ffn~hS=DaWL z<;h=;H&_?=lL1vW$)Th#kLj=^Y8#502583#jZu<=O>u57{tZ0do1FFW3#$)Ufhl_` z<}qgf3DitOLRE#Tt+Yg3_wSzaN%XI^{=escdGsYSwq%{Z#1nzzx507&oldG7U`1xl zeeujM7%O-&EA5Ltwd?weJycMtcgg`=m(J|bK&P-3M)qIbzf zPwTr5kWB&23C6Cowyl)4VZtzW7fkQ7H69)nqz_|$>X2>J-w1G?S2*+NnISQF=9h3n zCci!y1x6)+E6^%}ipekbZAVl90*5Ax)EtaxGVu1Ii?(auqE|EK9}xm>)3qaqmAiqo z8O{$1a}E#QYy=a>fiZj*AwX}tW^BQ54h^{(@4i81eFk#_XV@JR-sQ(&-G2UrukMiM*VzhuW+hX_Cl{jluw6K z;x{w$zHhUeyzRCEH1ShFE^38>CapFk&mHYVQmRs33d!8B>FNfNbs%8GHAQ3ts57fj zMJ@nh3IVA?&`6^42n{`5n`emy(hnPZU|N6d(&%m|p1eDrtjMC8%ZB2H>J-B;93r4V{JPI9t_LyQAeIVRj+~*D+^A z2xJUG0YL?dw?wFrS~f1a5mp0GPc!HYX%kbr;hy;2Mb}(zZQ+UDCFbBXsdsZA+2ziu z?Y#Bjj5JOnsWwnM*eO8~j+xV?q4nXr1yQsHokSoKJUb>+CUfVztRM~ny^E&Azd%lU zn+dD%a4FPCbLnvO)-hr86tS3(cd}&zz;LEHjm^oBcleO&35(qQB{7^)j-N$V4P3On z;2q9X%3lE}Mlb(jUvRrjjp*${^`tg+PW(6HOsEkceRML zpgv_E<<)l0O(~>t0$WgGXs2KgWneTgjg+~{KAsCgF&4&YJZPHb4RY2<`v{UpI68WK zQQCJl+PT`vMr{btw}XCcWGUdKNY{fwIdI5WRSDhMwba{|0rLr)PUUHH<9@h2SR6T_ za86x=(F_W_rpynMM)Hu)aLmunJ$54?X18(d(l2-Yk;KCc-e`Nm`O`2>JX#AT2&W`e zetTrh<0jk#6$OIgMdy>O!tvwf;bJleIZ+{;XS9tQs-;ZOZUu_niQzSX(_Nn=#3xiu z=QG?&5@7Ap9m+7IRfMH8B*9;|crMAa*n2EGAI!UV)?c(F+QOF3y=#?jY+&`v+wb@0 z-&@QKt~|r54_>ycdGv}HrU zQUHyF?g$<&eSHA-65@I?i93=Zo{?498;)6^=>^w6P;g56n_T0*&Up+MjRH2!Bubsk z1rIIQ(`C_K?)*3!my4ko9vpB1Th8xV*QY7l^yw(0sQ0G&(+pp7X>~>J4^V zXkm%3vQG?C1Q5FWDJBjS459&Kt??g$wkk-1JQI&AAMcVP+k81nESayWP9s`djWEe% z7u%CS?~m`PsU9N0h`uev6Q1=;MN{#+(XRr@+;Rpo$GOt?cUtT`j-)uQAGec#ic|!t8NJ5Zp8g8gVl*_w2 zR}icH1LTp3&PW(54>B{RKr!;`99a3c6{mW%4zyvZgUP>woiWLiNQM-$=v*F?!E~0O z?C&VeLL0`$S(|~N5+D^{Fj||WUNAZaWD3yfbIUm8F&uQ54L|8b#4`@)f}AkPq={Js zyoyC3r+ieHSo~8sQCitW{e-k7if3!OEXXf+6Z>9$L>T~VP9P`=YtbY{m>!|d*v_*| z#2OcdXZI|NBQd9k#vwS0g#qs+PbPbeJ%3IOPF_X*<=TN9X3rIRSA9Av&vVh+SB=a! z=-oQ+hFQb@q?$sW*G|Y2NA!^ibWX0#HVOP;cuea}74A*&FF}Auf`|zjJq)W!4Dh-? z0|2t+Y=*_maea0-oWw4W>@E^6EF-+W0)QZ1p;S0GFDEIvp5{RF^#Q9QXED*3lxND~ z&dF+#7{566U&(;PTpS*!C;^nL0IKX6SD~s&iospn5}nv~ZlE%ez=(j3Z{c2CBqz9L zi>x?gbe6iAbC2absQ^ONu8o02Lc)2FOsGQ_UgsTq6@KIhrJ&Fy&`#A}RR`FR5p+tW z&HN1TNRI1hE$0Gc^mq?8O9NB_W)MC(8g*Ujc7cu;s~+bh#R8cg{*q*>@drAm=B9q& z1X1*Ga1NR`r6c}62m%FDRTmbLl(-fXGG5rL@ZGo70V8BL4ee2UhBi4i{gG2z&fZr)IUf`D8`wO!L z-WXx^!o-VE*cs*UA?6aQs;VWzajr(;^>P*e zHj5wZJ31~Hq3Wy?E*Q+8sK+E~D$m;M;B`KBAoxa%3 z97*Wv{r44CL6zWy8)^uGaF>i|#;4{!)u7yJd^*=&CRtbJ_h5&1zYFP^3zO^g0l&!H z(&ilRkt#xr@Ww?bA=h2OH+u^aQ+rjMU8iGdROok&6K>+Gml%Oc()^ViT4XP5J&=9T zmbF|0HFwYw2xixi0~xF^RKMy>V6}^SfRIEJ&Z2=z?nvL7O<~`wYgVlMg5(?-#o`&~ z02L%!aH5uxLe5VEfm&EV3ZoRYpZQEnII_APaj9a7fZ{0t)j$E)jZS!|6ul9MgjiPw zDLX0pgQP@Oa^k?LVIfylFHB^e2qPo|0ifPXkQM@hV1kku0wX!F4OZiLRz?rVt*DV~ zk`-!MS?G3*a*MlCh$4^-%NT@F11v1;i2+$|=GPJR1%NywF8g?k%s;F=(-U{d--3L8 zZ6T4EN?D4!mbAJy(tKvLe(uSHDn%uoMxtI;`xt#NiN+%E;?j#0hUNa zk-m#i1utT)T3v~#g!=U_PgMe-wnQcy>LUsD`LdD*-jeytoS9qp+9=39>T-&~Opw`C z{VA0_0enmSMYfgxlp63S*9MT1OwV!=(!Jysp1F)@3>-F8VR)#rp%=m_TO_P+>EP1l z3@l2AP{B1+1qsUFTy$|8fY#~E0`dlInJ@v)X3-FY>%RAPkK_MP!+7q~5DM@nRd+G> z&KH30L0`JBvwKjQ6)X&R=Oa|Mbv*_uZg21d<8kKIVjbN z)|bWFHJ?jOW*>4}02lk}=8LMRoTxP+=*y-jDQPgdA&EUKME(XOgE$@3J zw4C_-;ud2BcT%zlwHjDqso^&=nZ?syZ3@D@QI@U*fTZI95X-VGPfFLg29S$WZ?vIwqV}G-1$EycwNMwG z=2#`{kA({MuS)+MnunAUgUnS0IHl*9jP2nltJt}OV&LQ9mWPVQvI>0Dyu$28E5_Rv zaB&}uR(!OWVvd7gJf%0aB>Ya62>1=5hDkJgpJYM72wAx}xlYOqRE#kWb00l}DayeC z=K)Sdsupta!13#Gcm}yk&`L`}KKpdr;&>Yy0{OECc_%BFmO-gnaV~u$9^>z<^)t6k z{F$^;|HjD+X$9%-w0dc!-~T<5z;}I9$+hN!Ic}%{h%fZAq)|9ZBQ}zZi_C;V014c) zJIUesSYXiH^C<}Sk_NjW&2J9RE+;` zN#VQsN%E^?pVxIIu2Ly+bM5JnxhMFJ)F>Q3FpA&55UH`!5;5I)!rgM-{dKTl$=GbQ zhYcW+K|{*LCx9*^S=2`ClYBs}m{ZtTQKMv zl09AOsU+dWsFQ09tGoGty^GnM!@yRVkg*?S3r?g`pwBF-MEg`4nRjw5YF!T+XFBxV(G zlR^3#Bw|Pwm6*pMl$aPd?oYx`1&KW4$Z=;d2eV5!R=j1dvV0kbacS^@vBr>tsfmSq z!CWRuxPSFTW$5Y4=9yqMUcgsEJ4~rSn(yY9>YCX8o$8?)cuTj49pKX?5l-^%`))=; z)Cl^hz;<5Podh6%g?)j5JwT!fv2&Y;1(3(4EMSg7T%JaFv16`b!sMuEsfq0>FObO)fM*Ms=<__V$l>DrFO~!BXDGR870ud6SK|-^;$|K*{wW~KvE)K;Y+WXr?5wL z{gGNEz1(1Oa^Hm2s350Vq`=Qy5R7dJzxZ?sON3lPk#mhtuAR@ z@(7jyvNy#5zw6W2!dTX3%-|6pRjcvaFXf~HIh;WYN_OEpY9C;&lD87tYl2682)!Uw zhL{_eWWz=P;f3WGE|E;*sCbYGJLYf0DRPn^ffz>%&Ds3S1rO>dVZwbr;$MrspFtED(&S&z&@4MN^nufb6rH{pf=eKMeL+M7}<{BvI9F7pMrh zqyD|N#;-9jC>C-A&O0zeG5h_$B=aS9SdHz)ALWG;}azUI?00y;=ofRI~U z^lD%XdqD3HP(8ChNfx8;%&Tew&WJwnfh4Mr+8x6n&zQgqPAK3q->&;g0EV!H6je$R z7!R!kSX_2f?3x7-G6BiJD3BlY@+9Yv)B0%UXsXcukiH2)Tei1danbz5a@t_uTu^S4 zzUPF^*c`W^4DCQ!={KamTd3l z>aW3^rQ4#|ADBDmB%%!B`e7B?AJth|oV_tX!}4DAiIYj1akgCx6$XUI3N9FQpa5at zP(CymSQA5RL9TYV{#?rjzYqHNlcBFm)ZFboCBv>sj^QZbQs`@GrSo5ifTSILEjM_! zs+j-d*~pf`VdzTd4-0P&y$CjEsnUBQS0UlNo7phKUC$5P?;Yuc`fnR$&RxLATedhpW9P@W(Of=nGnfMW zP}wv8(#~);MfDwGVus{BY6lkSAh}}3VPq!|i8881Z_ALL22c}R-`#YdnMEAh+|R5t z))|@DssQ6X+y^je>aP*x{mvjz42^Lu@ka~OjU(VpI`>=nGIJ(K=FMj*aU@y=hU+l1 z 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

W@DB;G=JSqn?+S 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 z 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

(cH1cJ08s!+Zf28!ykE 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 Date: Thu, 13 Aug 2026 16:23:19 +0800 Subject: [PATCH 049/164] Attempt to fix Windows CI build --- .github/workflows/build_orca.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index a7652c3bd6..62d3071a82 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -377,6 +377,13 @@ jobs: dir "C:/Program Files (x86)/Windows Kits/10/Include" choco install nsis + - name: Install pkg-config + # FFmpeg is discovered via pkg-config (pkg_check_modules LIBAV in + # src/slic3r/CMakeLists.txt); the Windows runners don't ship it. + if: runner.os == 'Windows' && !vars.SELF_HOSTED + run: | + choco install pkgconfiglite -y + - name: Build slicer Win if: runner.os == 'Windows' working-directory: ${{ github.workspace }} From 2d9a3be88f5cc48b3293606fb159f11cb94c405f Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 16:34:42 +0800 Subject: [PATCH 050/164] FIX: GTK video window resize ran in a free function without member access wxMediaCtrl_OnSize referenced wxMediaCtrl2's private m_gtk_video_window, which does not compile on Linux/GTK. Move the resizing into wxMediaCtrl2::DoSetSize where the member is in scope. --- src/slic3r/GUI/MediaPlayCtrl.cpp | 6 ------ src/slic3r/GUI/wxMediaCtrl2.cpp | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index dc1f95b88b..71fbcb054b 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -828,12 +828,6 @@ bool MediaPlayCtrl::get_stream_url(std::string *url) void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height) { -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_gtk_video_window) { - const wxSize client_size = GetClientSize(); - m_gtk_video_window->SetSize(0, 0, client_size.GetWidth(), client_size.GetHeight()); - } -#endif wxSize size = videoSize; if (!size.IsFullySpecified()) size = {16, 9}; int maxHeight = (width * size.GetHeight() + size.GetHeight() - 1) / size.GetWidth(); diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 6a2e07d8d6..6ab9ec5913 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -604,6 +604,13 @@ void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) { wxWindow::DoSetSize(x, y, width, height, sizeFlags); if (sizeFlags & wxSIZE_USE_EXISTING) return; +#if defined(__LINUX__) && defined(__WXGTK__) + // Keep the native GStreamer video window filling the client area. + if (m_gtk_video_window) { + const wxSize client_size = GetClientSize(); + m_gtk_video_window->SetSize(0, 0, client_size.GetWidth(), client_size.GetHeight()); + } +#endif wxMediaCtrl_OnSize(this, m_video_size, width, height); } From 5b7a58c8bbec95acfadc5d5410b535d8f040a9d7 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 16:59:46 +0800 Subject: [PATCH 051/164] Install required tools for Linux --- scripts/linux.d/arch | 3 +++ scripts/linux.d/cachyos | 3 +++ scripts/linux.d/clear-linux-os | 1 + scripts/linux.d/debian | 3 +++ scripts/linux.d/fedora | 3 +++ scripts/linux.d/gentoo | 3 +++ scripts/linux.d/suse | 3 +++ 7 files changed, 19 insertions(+) diff --git a/scripts/linux.d/arch b/scripts/linux.d/arch index ead963e9a6..dc554b10b5 100644 --- a/scripts/linux.d/arch +++ b/scripts/linux.d/arch @@ -25,6 +25,9 @@ export REQUIRED_DEV_PACKAGES=( wayland-protocols webkit2gtk-4.1 wget + pkgconf + yasm + nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/cachyos b/scripts/linux.d/cachyos index d491747ace..6137a3ef5c 100644 --- a/scripts/linux.d/cachyos +++ b/scripts/linux.d/cachyos @@ -25,6 +25,9 @@ export REQUIRED_DEV_PACKAGES=( wayland-protocols webkit2gtk wget + pkgconf + yasm + nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/clear-linux-os b/scripts/linux.d/clear-linux-os index 149e805549..41ca68e835 100644 --- a/scripts/linux.d/clear-linux-os +++ b/scripts/linux.d/clear-linux-os @@ -20,6 +20,7 @@ export REQUIRED_BUNDLES=( perl-basic texinfo wget + nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/debian b/scripts/linux.d/debian index f4d500760e..c33b24d2b7 100644 --- a/scripts/linux.d/debian +++ b/scripts/linux.d/debian @@ -27,6 +27,9 @@ REQUIRED_DEV_PACKAGES=( ninja-build texinfo wget + pkgconf + yasm + nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/fedora b/scripts/linux.d/fedora index ca4eceaee3..993ea0b10a 100644 --- a/scripts/linux.d/fedora +++ b/scripts/linux.d/fedora @@ -31,6 +31,9 @@ REQUIRED_DEV_PACKAGES=( webkit2gtk4.1-devel wget libcurl-devel + pkgconf + yasm + nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/gentoo b/scripts/linux.d/gentoo index f172ac92c3..f8554542ff 100644 --- a/scripts/linux.d/gentoo +++ b/scripts/linux.d/gentoo @@ -32,6 +32,9 @@ REQUIRED_DEV_PACKAGES=( sys-devel/m4 virtual/libudev x11-libs/gtk+:3 + dev-util/pkgconf + dev-lang/yasm + dev-lang/nasm ) if [[ -n "$UPDATE_LIB" ]] diff --git a/scripts/linux.d/suse b/scripts/linux.d/suse index 1f4db45f46..682960650b 100644 --- a/scripts/linux.d/suse +++ b/scripts/linux.d/suse @@ -30,6 +30,9 @@ REQUIRED_DEV_PACKAGES=( webkit2gtk4-devel wget libcurl-devel + pkgconf + yasm + nasm ) if [[ -n "$UPDATE_LIB" ]] From 547bcc7b0322068273df73d8cf1d63c186b954f0 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 17:05:44 +0800 Subject: [PATCH 052/164] Install required tools for macOS --- .github/workflows/build_deps.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index 9927f5bef6..4e01051073 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -149,7 +149,7 @@ jobs: working-directory: ${{ github.workspace }} run: | if [ -z "${{ vars.SELF_HOSTED }}" ]; then - brew install automake texinfo libtool + brew install automake texinfo libtool pkgconf yasm nasm fi ./build_release_macos.sh -dx ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15 (cd "${{ github.workspace }}/deps/build/${{ inputs.arch }}" && \ From 482da7288f957b54bf5d6891c5d44307ed33372c Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 17:29:01 +0800 Subject: [PATCH 053/164] Add ffmpeg to flatpak --- scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml index c33425f23f..3cbd311fcd 100644 --- a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml +++ b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml @@ -312,6 +312,12 @@ modules: sha256: 0ba163956f2d468b19a91b96c5aba66ee9610843ea41dda628ea44cdafde7db7 dest: external-packages/wxInspector + # FFmpeg n7.0.3 + - type: file + url: https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.3.tar.gz + sha256: deedcabe339165214a3637df4c86a507aef0d793cf8774ff68735f4737e8ddbc + dest: external-packages/FFMPEG + # --------------------------------------------------------------- # Fallback archives for deps normally provided by the GNOME SDK. # These are only used if find_package() fails to locate them. From 43ec8805b1658c48145a5ec4ee5811a9e3241f49 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 18:57:39 +0800 Subject: [PATCH 054/164] Fix Linux build --- CMakeLists.txt | 2 +- src/CMakeLists.txt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac80726085..c66c099023 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1095,7 +1095,7 @@ function(orcaslicer_copy_dlls target config postfix output_dlls) endfunction() -function(bambustudio_copy_sos target config postfix output_sos) +function(orcaslicer_copy_sos target config postfix output_sos) set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") message ("set out_dir to CMAKE_CURRENT_BINARY_DIR: ${_out_dir}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index df559aa397..4a381663e9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -284,11 +284,11 @@ else () if (NOT APPLE) set(output_sos_Release "") set(output_sos_Debug "") - add_custom_target(BambuStudioSosCopy ALL DEPENDS BambuStudio) + add_custom_target(OrcaSlicerSosCopy ALL DEPENDS OrcaSlicer) if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - bambustudio_copy_sos(BambuStudioSosCopy "Debug" "d" output_sos_Debug) + orcaslicer_copy_sos(OrcaSlicerSosCopy "Debug" "d" output_sos_Debug) else() - bambustudio_copy_sos(BambuStudioSosCopy "Release" "" output_sos_Release) + orcaslicer_copy_sos(OrcaSlicerSosCopy "Release" "" output_sos_Release) endif() endif() if (APPLE AND NOT CMAKE_MACOSX_BUNDLE) From ddd62e25df4ffb908037040faeadf562b29cae68 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Thu, 13 Aug 2026 19:16:18 +0800 Subject: [PATCH 055/164] add audit hook for fs, network and processes --- src/slic3r/plugin/PluginAuditManager.cpp | 437 ++++++++++++++++++---- src/slic3r/plugin/PluginAuditManager.hpp | 30 +- src/slic3r/plugin/PluginFsUtils.cpp | 30 +- src/slic3r/plugin/PluginFsUtils.hpp | 6 +- src/slic3r/plugin/PythonInterpreter.cpp | 4 - tests/slic3rutils/test_plugin_install.cpp | 14 +- 6 files changed, 424 insertions(+), 97 deletions(-) diff --git a/src/slic3r/plugin/PluginAuditManager.cpp b/src/slic3r/plugin/PluginAuditManager.cpp index f027dd072d..023e55bd22 100644 --- a/src/slic3r/plugin/PluginAuditManager.cpp +++ b/src/slic3r/plugin/PluginAuditManager.cpp @@ -14,12 +14,103 @@ #include #include #include +#include +#include #include +#include #include #include namespace Slic3r { +// extensive list of audit events can be found at https://docs.python.org/3/library/audit_events.html +static const std::unordered_map audit_event_categories{ + // fsread + {"glob.glob", AuditEventCategory::FsRead}, + {"glob.glob/2", AuditEventCategory::FsRead}, + {"os.fwalk", AuditEventCategory::FsRead}, + {"os.getxattr", AuditEventCategory::FsRead}, + {"os.listdir", AuditEventCategory::FsRead}, + {"os.listdrives", AuditEventCategory::FsRead}, + {"os.listmounts", AuditEventCategory::FsRead}, + {"os.listvolumes", AuditEventCategory::FsRead}, + {"os.listxattr", AuditEventCategory::FsRead}, + {"os.scandir", AuditEventCategory::FsRead}, + {"os.walk", AuditEventCategory::FsRead}, + {"pathlib.Path.glob", AuditEventCategory::FsRead}, + {"pathlib.Path.rglob", AuditEventCategory::FsRead}, + + // fsreadwrite + {"os.chflags", AuditEventCategory::FsReadWrite}, + {"os.chmod", AuditEventCategory::FsReadWrite}, + {"os.chown", AuditEventCategory::FsReadWrite}, + {"os.removexattr", AuditEventCategory::FsReadWrite}, + {"os.rename", AuditEventCategory::FsReadWrite}, + {"os.setxattr", AuditEventCategory::FsReadWrite}, + {"os.truncate", AuditEventCategory::FsReadWrite}, + {"os.utime", AuditEventCategory::FsReadWrite}, + {"shutil.chown", AuditEventCategory::FsReadWrite}, + {"shutil.copymode", AuditEventCategory::FsReadWrite}, + {"shutil.copystat", AuditEventCategory::FsReadWrite}, + {"shutil.copyfile", AuditEventCategory::FsReadWrite}, + {"shutil.copytree", AuditEventCategory::FsReadWrite}, + {"shutil.make_archive", AuditEventCategory::FsReadWrite}, + {"shutil.move", AuditEventCategory::FsReadWrite}, + {"shutil.unpack_archive", AuditEventCategory::FsReadWrite}, + + // fscreate + {"os.link", AuditEventCategory::FsCreate}, + {"os.mkdir", AuditEventCategory::FsCreate}, + {"os.symlink", AuditEventCategory::FsCreate}, + {"tempfile.mkdtemp", AuditEventCategory::FsCreate}, + {"tempfile.mkstemp", AuditEventCategory::FsCreate}, + {"_winapi.CreateJunction", AuditEventCategory::FsCreate}, + + // fsdelete + {"os.remove", AuditEventCategory::FsDelete}, + {"os.rmdir", AuditEventCategory::FsDelete}, + {"shutil.rmtree", AuditEventCategory::FsDelete}, + + // http + {"http.client.connect", AuditEventCategory::Http}, + {"http.client.send", AuditEventCategory::Http}, + {"urllib.Request", AuditEventCategory::Http}, + + // socket + {"socket.__new__", AuditEventCategory::Socket}, + {"socket.bind", AuditEventCategory::Socket}, + {"socket.connect", AuditEventCategory::Socket}, + {"socket.getaddrinfo", AuditEventCategory::Socket}, + {"socket.gethostbyaddr", AuditEventCategory::Socket}, + {"socket.gethostbyname", AuditEventCategory::Socket}, + {"socket.gethostname", AuditEventCategory::Socket}, + {"socket.getnameinfo", AuditEventCategory::Socket}, + {"socket.getservbyname", AuditEventCategory::Socket}, + {"socket.getservbyport", AuditEventCategory::Socket}, + {"socket.sendmsg", AuditEventCategory::Socket}, + {"socket.sendto", AuditEventCategory::Socket}, + + // processcreate + {"os.fork", AuditEventCategory::ProcessCreate}, + {"os.forkpty", AuditEventCategory::ProcessCreate}, + {"os.posix_spawn", AuditEventCategory::ProcessCreate}, + {"os.spawn", AuditEventCategory::ProcessCreate}, + {"os.system", AuditEventCategory::ProcessCreate}, + {"os.startfile", AuditEventCategory::ProcessCreate}, + {"os.startfile/2", AuditEventCategory::ProcessCreate}, + {"pty.spawn", AuditEventCategory::ProcessCreate}, + {"subprocess.Popen", AuditEventCategory::ProcessCreate}, + {"_winapi.CreateProcess", AuditEventCategory::ProcessCreate}, + {"_posixsubprocess.fork_exec", AuditEventCategory::ProcessCreate}, +}; + +// Returns the category event_name belongs to, or AuditEventCategory::None when it isn't audited. +static AuditEventCategory event_category(const std::string& event_name) +{ + const auto it = audit_event_categories.find(event_name); + return it == audit_event_categories.end() ? AuditEventCategory::None : it->second; +} + // --------------------------------------------------------------------------- // Path safety // --------------------------------------------------------------------------- @@ -344,7 +435,7 @@ void PluginAuditManager::report_violation(const AuditViolation& violation) m_audit_denial_pending = true; BOOST_LOG_TRIVIAL(warning) << "[AUDIT BLOCKED] plugin=" << violation.plugin_key << " event=" << violation.event_name - << " path=" << violation.path.string() << " reason=" << violation.reason; + << " reason=" << violation.reason; } bool PluginAuditManager::audit_denial_pending() const { return m_audit_denial_pending; } @@ -366,6 +457,34 @@ bool PluginAuditManager::last_violation(AuditViolation& violation) const return true; } +bool PluginAuditManager::has_approved_ancestor(const std::string& plugin_key, + const std::vector& call_site_ids) const +{ + if (plugin_key.empty() || call_site_ids.empty()) + return false; + + std::lock_guard lock(m_mutex); + auto it = m_approved_call_sites.find(plugin_key); + if (it == m_approved_call_sites.end()) + return false; + + for (const auto& id : call_site_ids) + if (it->second.count(id)) + return true; + return false; +} + +void PluginAuditManager::record_approved_call_sites(const std::string& plugin_key, + const std::vector& call_site_ids) +{ + if (plugin_key.empty() || call_site_ids.empty()) + return; + + std::lock_guard lock(m_mutex); + auto& approved = m_approved_call_sites[plugin_key]; + approved.insert(call_site_ids.begin(), call_site_ids.end()); +} + // --------------------------------------------------------------------------- // The C-level audit hook // --------------------------------------------------------------------------- @@ -398,38 +517,163 @@ std::string python_path(PyObject* object) return result; } -void add_filesystem_path(std::vector& paths, PyObject* object) +std::string python_unicode(PyObject* object) { - const std::string path = python_path(object); - if (!path.empty()) - paths.emplace_back(path); + if (!object || !PyUnicode_Check(object)) + return {}; + const char* text = PyUnicode_AsUTF8(object); + if (!text) { + PyErr_Clear(); + return {}; + } + return text; } -std::vector filesystem_paths(const std::string& event_name, PyObject* args) +std::string python_str(PyObject* object) { - std::vector paths; + if (!object) + return {}; - if (event_name == "open") { - add_filesystem_path(paths, tuple_item(args, 0)); - } else if (event_name == "os.rename") { - add_filesystem_path(paths, tuple_item(args, 0)); - add_filesystem_path(paths, tuple_item(args, 1)); - } else if (event_name == "os.remove") { - add_filesystem_path(paths, tuple_item(args, 0)); + PyObject* str_object = PyObject_Str(object); + if (!str_object) { + PyErr_Clear(); + return {}; } - return paths; + const std::string result = python_unicode(str_object); + Py_DECREF(str_object); + return result; } -bool has_filesystem_permission(const PluginInstallState& state, const boost::filesystem::path& path) +std::vector call_site_identities(const std::string& plugin_root) { - return std::find(state.permissions.fs_read.begin(), state.permissions.fs_read.end(), path.string()) != - state.permissions.fs_read.end(); + std::vector ids; + if (plugin_root.empty()) + return ids; + + PyFrameObject* frame = PyEval_GetFrame(); // borrowed reference + Py_XINCREF(frame); // normalize to an owned reference for the loop below + + while (frame) { + PyCodeObject* code = PyFrame_GetCode(frame); // new reference + const std::string filename = python_unicode(reinterpret_cast(code->co_filename)); + const bool is_plugin_frame = !filename.empty() && boost::algorithm::starts_with(filename, plugin_root); + + std::string id; + if (!is_plugin_frame && !filename.empty()) { + const std::string funcname = python_unicode(reinterpret_cast(code->co_name)); + id = filename + ":" + funcname + ":" + std::to_string(code->co_firstlineno); + } + Py_DECREF(code); + + PyFrameObject* back = PyFrame_GetBack(frame); // new reference, or nullptr at the top of the stack + Py_DECREF(frame); + frame = back; + + if (is_plugin_frame) + break; + if (!id.empty()) + ids.push_back(std::move(id)); + } + + Py_XDECREF(frame); // only holds a reference here if the loop exited via break + + return ids; } -bool persist_filesystem_permission(const std::string& plugin_key, - PluginInstallState& state, - const boost::filesystem::path& path) +static const std::unordered_set two_path_fs_events{ + "os.rename", "os.link", "os.symlink", "shutil.copyfile", + "shutil.copytree", "shutil.copymode", "shutil.copystat", "shutil.move", + "shutil.unpack_archive", "_winapi.CreateJunction", +}; + +static const std::unordered_map> audit_target_arg_indices{ + {"http.client.connect", {1}}, + {"urllib.Request", {0}}, + + {"socket.connect", {1}}, + {"socket.bind", {1}}, + {"socket.getaddrinfo", {0}}, + {"socket.gethostbyname", {0}}, + {"socket.gethostbyaddr", {0}}, + {"socket.getnameinfo", {0}}, + {"socket.getservbyname", {0}}, + {"socket.getservbyport", {0}}, + + {"os.system", {0}}, + {"subprocess.Popen", {1, 0}}, + {"os.posix_spawn", {1, 0}}, + {"os.spawn", {2, 1}}, + {"os.startfile", {0}}, + {"pty.spawn", {0}}, + {"_winapi.CreateProcess", {1, 0}}, + {"_posixsubprocess.fork_exec", {0}}, +}; + +AuditEventCategory open_category(PyObject* args) +{ + const std::string mode = python_unicode(tuple_item(args, 1)); + if (!mode.empty() && mode.find_first_of("wax+") == std::string::npos) + return AuditEventCategory::FsRead; + return AuditEventCategory::FsReadWrite; +} + +std::vector audit_targets(const std::string& event_name, AuditEventCategory category, PyObject* args) +{ + std::vector targets; + + switch (category) { + case AuditEventCategory::FsRead: + case AuditEventCategory::FsReadWrite: + case AuditEventCategory::FsCreate: + case AuditEventCategory::FsDelete: { + const Py_ssize_t path_count = two_path_fs_events.count(event_name) ? 2 : 1; + for (Py_ssize_t index = 0; index < path_count; ++index) { + const std::string path = python_path(tuple_item(args, index)); + if (!path.empty()) + targets.push_back(path); + } + return targets; + } + default: + break; + } + + const auto it = audit_target_arg_indices.find(event_name); + if (it != audit_target_arg_indices.end()) { + for (const Py_ssize_t index : it->second) { + std::string value = python_str(tuple_item(args, index)); + if (!value.empty()) { + targets.push_back(std::move(value)); + break; + } + } + } + + return targets; +} + +std::vector* permission_list_for(AuditEventCategory category, PluginPermissions& permissions) +{ + switch (category) { + case AuditEventCategory::FsRead: return &permissions.fs_read; + case AuditEventCategory::FsReadWrite: return &permissions.fs_readwrite; + case AuditEventCategory::Http: return &permissions.network_http; + case AuditEventCategory::Socket: return &permissions.network_socket; + case AuditEventCategory::ProcessCreate: return &permissions.process; + default: return nullptr; + } +} + +bool has_permission(const std::vector& granted, const std::string& target) +{ + return std::find(granted.begin(), granted.end(), target) != granted.end(); +} + +bool persist_permission(const std::string& plugin_key, + PluginInstallState& state, + std::vector& permission_list, + const std::string& target) { PluginDescriptor descriptor; if (!PluginManager::instance().try_get_plugin_descriptor(plugin_key, descriptor) || descriptor.plugin_root.empty()) @@ -445,23 +689,18 @@ bool persist_filesystem_permission(const std::string& plugin_key, state.enabled = true; } - const std::string path_string = path.string(); - if (std::find(state.permissions.fs_read.begin(), state.permissions.fs_read.end(), path_string) == - state.permissions.fs_read.end()) - state.permissions.fs_read.push_back(path_string); + if (!has_permission(permission_list, target)) + permission_list.push_back(target); return write_install_state(boost::filesystem::path(descriptor.plugin_root), state); } -// Records a blocked event and raises PermissionError in the calling interpreter. int report_denied(PluginAuditManager& mgr, const std::string& event_name, - const boost::filesystem::path& target, const AuditDecision& decision) { AuditViolation violation; violation.plugin_key = mgr.current_plugin(); violation.event_name = event_name; - violation.path = target; violation.reason = decision.reason; mgr.report_violation(violation); @@ -469,6 +708,74 @@ int report_denied(PluginAuditManager& mgr, return -1; } +wxString audit_message(AuditEventCategory category, const wxString& plugin_name, const wxString& event_name, + const wxString& target_list) +{ + if (target_list.IsEmpty()) + return wxString::Format( + _L("Plugin \"%s\" is requesting permission for the Python audit event \"%s\".\n\n" + "This operation does not expose a target the audit hook can display."), + plugin_name, event_name); + + switch (category) { + case AuditEventCategory::FsRead: + return wxString::Format(_L("Plugin \"%s\" is requesting to read the following file(s):\n%s"), plugin_name, target_list); + case AuditEventCategory::FsReadWrite: + return wxString::Format(_L("Plugin \"%s\" is requesting to read/write the following file(s):\n%s"), plugin_name, target_list); + case AuditEventCategory::FsCreate: + return wxString::Format(_L("Plugin \"%s\" is requesting to create the following file(s):\n%s"), plugin_name, target_list); + case AuditEventCategory::FsDelete: + return wxString::Format(_L("Plugin \"%s\" is requesting to delete the following file(s):\n%s"), plugin_name, target_list); + case AuditEventCategory::Http: + return wxString::Format(_L("Plugin \"%s\" is requesting to make an HTTP request to:\n%s"), plugin_name, target_list); + case AuditEventCategory::Socket: + return wxString::Format(_L("Plugin \"%s\" is requesting to open a network connection to:\n%s"), plugin_name, target_list); + case AuditEventCategory::ProcessCreate: + return wxString::Format(_L("Plugin \"%s\" is requesting to run the following command(s):\n%s"), plugin_name, target_list); + default: + return wxString::Format(_L("Plugin \"%s\" is requesting permission for the Python audit event \"%s\"."), plugin_name, event_name); + } +} + +int decide_audited_event(PluginAuditManager& mgr, + PluginInstallState& state, + const std::string& plugin_key, + const std::string& plugin_name, + const std::string& event_name, + AuditEventCategory category, + const std::vector& targets, + std::vector* permission_list, + const std::vector& call_site_ids) +{ + std::vector unresolved = targets; + if (permission_list) { + unresolved.clear(); + for (const auto& target : targets) + if (!has_permission(*permission_list, target)) + unresolved.push_back(target); + if (!targets.empty() && unresolved.empty()) + return 0; + } + + wxString target_list; + for (const auto& target : unresolved) + target_list += wxString::FromUTF8(target.c_str()) + "\n"; + + wxMessageDialog dialog(nullptr, + audit_message(category, wxString::FromUTF8(plugin_name.c_str()), + wxString::FromUTF8(event_name.c_str()), target_list), + _L("Plugin permission request"), wxYES_NO | wxICON_WARNING); + if (dialog.ShowModal() != wxID_YES) + return report_denied(mgr, event_name, {false, "audit permission required"}); + + if (permission_list) + for (const auto& target : unresolved) + persist_permission(plugin_key, state, *permission_list, target); + + mgr.record_approved_call_sites(plugin_key, call_site_ids); + return 0; +} + } // namespace PluginAuditDetail int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user_data) @@ -479,12 +786,33 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user std::string event_name(event ? event : ""); + if (event_name.empty()) + return 0; + // Verbose logging of every audit event (can be noisy) if (mgr->verbose_events) { BOOST_LOG_TRIVIAL(debug) << "[AUDIT EVENT] " << event_name; } - if (mgr->current_plugin().empty()) + if (mgr->current_plugin().empty()) { + BOOST_LOG_TRIVIAL(trace) << "[AUDIT] event=" << event_name << " bypassed (no plugin context)"; + return 0; + } + + PluginDescriptor plugin_descriptor; + PluginManager::instance().try_get_plugin_descriptor(mgr->current_plugin(), plugin_descriptor); + + // Some plugins call other audited events, e.g. urlib.request will call socket.connect. So this is so that if urlib.request + // was already approved, socket.connect won't trigger another permission dialog. + const std::vector call_site_ids = + PluginAuditDetail::call_site_identities(plugin_descriptor.plugin_root); + if (mgr->has_approved_ancestor(mgr->current_plugin(), call_site_ids)) + return 0; + + // the open function can take in different flags that determine if it is a read or readwrite. + const AuditEventCategory event_type = + event_name == "open" ? PluginAuditDetail::open_category(args) : event_category(event_name); + if (event_type == AuditEventCategory::None) return 0; PluginInstallState state; @@ -494,53 +822,16 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user } const std::string plugin_name = state.plugin_name.empty() ? mgr->current_plugin() : state.plugin_name; - const std::vector paths = PluginAuditDetail::filesystem_paths(event_name, args); - for (const auto& path : paths) { - if (PluginAuditDetail::has_filesystem_permission(state, path)) - continue; - wxMessageDialog dialog( - nullptr, - wxString::Format(_L("Plugin \"%s\" is requesting filesystem access to:\n%s"), - wxString::FromUTF8(plugin_name.c_str()), - wxString::FromUTF8(path.string().c_str())), - _L("Plugin permission request"), - wxYES_NO | wxICON_WARNING); - if (dialog.ShowModal() == wxID_YES && - PluginAuditDetail::persist_filesystem_permission(mgr->current_plugin(), state, path)) - continue; + const std::vector targets = PluginAuditDetail::audit_targets(event_name, event_type, args); + std::vector* permission_list = PluginAuditDetail::permission_list_for(event_type, state.permissions); - return PluginAuditDetail::report_denied( - *mgr, event_name, path, {false, "filesystem permission required"}); - } - - if (!paths.empty()) - return 0; - - wxMessageDialog dialog( - nullptr, - wxString::Format( - _L("Plugin \"%s\" is requesting permission for the Python audit event \"%s\".\n\n" - "This operation does not expose a filesystem path to the audit hook."), - wxString::FromUTF8(plugin_name.c_str()), - wxString::FromUTF8(event_name.c_str())), - _L("Plugin permission request"), - wxYES_NO | wxICON_WARNING); - if (dialog.ShowModal() == wxID_YES) - return 0; - - return PluginAuditDetail::report_denied( - *mgr, event_name, boost::filesystem::path(), {false, "audit permission required"}); + return PluginAuditDetail::decide_audited_event(*mgr, state, mgr->current_plugin(), plugin_name, event_name, + event_type, targets, permission_list, call_site_ids); } void PluginAuditManager::install_hook() { - if (PySys_AddAuditHook(audit_hook, this) < 0) { - BOOST_LOG_TRIVIAL(error) << "[AUDIT] Failed to install CPython audit hook"; - return; - } - BOOST_LOG_TRIVIAL(info) << "[AUDIT] CPython audit hook installed successfully"; - // data_dir() is the only globally-allowed root during plugin execution. // The executable directory and resources directory are intentionally NOT allowed // here: plugins must not access outside data_dir() (G-code plugins additionally get @@ -558,6 +849,12 @@ void PluginAuditManager::install_hook() // (see its comment for why all four config names are denied); the tests seed from it too. for (const auto& name : default_denied_filenames()) add_denied_filename(name); + + if (PySys_AddAuditHook(audit_hook, this) < 0) { + BOOST_LOG_TRIVIAL(error) << "[AUDIT] Failed to install CPython audit hook"; + return; + } + BOOST_LOG_TRIVIAL(info) << "[AUDIT] CPython audit hook installed successfully"; } } // namespace Slic3r diff --git a/src/slic3r/plugin/PluginAuditManager.hpp b/src/slic3r/plugin/PluginAuditManager.hpp index f3fb43d20a..3b86014d42 100644 --- a/src/slic3r/plugin/PluginAuditManager.hpp +++ b/src/slic3r/plugin/PluginAuditManager.hpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include #include @@ -19,10 +21,23 @@ struct AuditDecision { struct AuditViolation { std::string plugin_key; std::string event_name; - boost::filesystem::path path; std::string reason; }; +// The set of CPython audit events PluginAuditManager recognizes, grouped by the kind of +// operation they represent. None means the event isn't one audit_hook() acts on at all. +enum class AuditEventCategory { + None, + FsRead, + FsReadWrite, + FsCreate, + FsDelete, + Http, + Socket, + ProcessCreate, + Threading, +}; + // Returns true if candidate resolves to a path inside allowed_root. // Uses weakly_canonical and component-wise comparison to reject traversal attacks. bool is_inside_allowed_root(const boost::filesystem::path& candidate, @@ -94,6 +109,16 @@ public: void clear_last_violation(); bool last_violation(AuditViolation& violation) const; + // --- call-site cascade cache --- + // A single plugin action often fires several nested CPython audit events as it passes + // through stdlib layers (urllib.request calling http.client calling socket, for example). + // Once the user approves one event, every stdlib frame still on the stack for that call + // is recorded here by (filename, function, first line) identity. A later event whose own + // ancestor chain still contains one of those frames is the same logical action seen from + // a deeper layer, so it is auto-approved instead of prompting again. + bool has_approved_ancestor(const std::string& plugin_key, const std::vector& call_site_ids) const; + void record_approved_call_sites(const std::string& plugin_key, const std::vector& call_site_ids); + bool verbose_events = true; private: @@ -110,10 +135,11 @@ private: static thread_local bool m_has_last_violation; static thread_local AuditViolation m_last_violation; - // mutable: is_denied_filename() is a const query that must lock. + // mutable: is_denied_filename() and has_approved_ancestor() are const queries that must lock. mutable std::mutex m_mutex; std::vector m_global_allowed_roots; std::vector m_denied_filenames; + std::unordered_map> m_approved_call_sites; // plugin_key -> call-site ids }; // RAII guard that sets the current plugin key and capability name, restoring the previous diff --git a/src/slic3r/plugin/PluginFsUtils.cpp b/src/slic3r/plugin/PluginFsUtils.cpp index c152ae165e..3e014eaec7 100644 --- a/src/slic3r/plugin/PluginFsUtils.cpp +++ b/src/slic3r/plugin/PluginFsUtils.cpp @@ -788,18 +788,18 @@ bool read_install_state(const boost::filesystem::path& plugin_dir, PluginInstall if (state.contains("permissions") && state["permissions"].is_object()) { const auto& permissions = state["permissions"]; - if (permissions.contains("networking") && permissions["networking"].is_array()) - for (const auto& host : permissions["networking"]) - if (host.is_string()) - parsed.permissions.networking.push_back(host.get()); - if (permissions.contains("fs_read") && permissions["fs_read"].is_array()) - for (const auto& path : permissions["fs_read"]) - if (path.is_string()) - parsed.permissions.fs_read.push_back(path.get()); - if (permissions.contains("fs_write") && permissions["fs_write"].is_array()) - for (const auto& path : permissions["fs_write"]) - if (path.is_string()) - parsed.permissions.fs_write.push_back(path.get()); + auto read_string_list = [&permissions](const char* key, std::vector& out) { + if (!permissions.contains(key) || !permissions[key].is_array()) + return; + for (const auto& entry : permissions[key]) + if (entry.is_string()) + out.push_back(entry.get()); + }; + read_string_list("fs_read", parsed.permissions.fs_read); + read_string_list("fs_readwrite", parsed.permissions.fs_readwrite); + read_string_list("network_http", parsed.permissions.network_http); + read_string_list("network_socket", parsed.permissions.network_socket); + read_string_list("process", parsed.permissions.process); } if (state.contains("enabled") && state["enabled"].is_boolean()) @@ -838,9 +838,11 @@ bool write_install_state(const boost::filesystem::path& plugin_dir, const Plugin json["cloud_uuid"] = state.cloud_uuid; json["permissions"] = { - {"networking", state.permissions.networking}, {"fs_read", state.permissions.fs_read}, - {"fs_write", state.permissions.fs_write}, + {"fs_readwrite", state.permissions.fs_readwrite}, + {"network_http", state.permissions.network_http}, + {"network_socket", state.permissions.network_socket}, + {"process", state.permissions.process}, }; nlohmann::json capabilities = nlohmann::json::array(); diff --git a/src/slic3r/plugin/PluginFsUtils.hpp b/src/slic3r/plugin/PluginFsUtils.hpp index be7f5bb551..980d05144e 100644 --- a/src/slic3r/plugin/PluginFsUtils.hpp +++ b/src/slic3r/plugin/PluginFsUtils.hpp @@ -83,9 +83,11 @@ inline nlohmann::json py_to_json(const pybind11::handle& o) struct PluginPermissions { - std::vector networking; std::vector fs_read; - std::vector fs_write; + std::vector fs_readwrite; + std::vector network_http; + std::vector network_socket; + std::vector process; }; struct PluginInstallState { diff --git a/src/slic3r/plugin/PythonInterpreter.cpp b/src/slic3r/plugin/PythonInterpreter.cpp index 299a2dd7ba..3d180c2f2a 100644 --- a/src/slic3r/plugin/PythonInterpreter.cpp +++ b/src/slic3r/plugin/PythonInterpreter.cpp @@ -628,10 +628,6 @@ bool PythonInterpreter::initialize() else BOOST_LOG_TRIVIAL(info) << "Bundled uv executable not found"; - // Install the CPython audit hook for plugin policy enforcement. - // This is defense-in-depth: today it only inspects the `open` audit event - // and blocks writes outside the allowed roots; subprocess/socket/ctypes and - // other events are not yet handled. It is NOT a full security sandbox. PluginAuditManager::instance().install_hook(); // Persist Python stderr (plugin tracebacks, including uncaught diff --git a/tests/slic3rutils/test_plugin_install.cpp b/tests/slic3rutils/test_plugin_install.cpp index c6ad670ff7..ae16703fa6 100644 --- a/tests/slic3rutils/test_plugin_install.cpp +++ b/tests/slic3rutils/test_plugin_install.cpp @@ -112,17 +112,21 @@ TEST_CASE("install-state sidecar is the source of truth for a cloud plugin's ins REQUIRE(read_install_state(plugin_dir, state)); CHECK(state.installed_version == "1.2.0"); - state.permissions.networking = {"api.example.com", "192.168.45.6"}; - state.permissions.fs_read = {"/path/to/read"}; - state.permissions.fs_write = {"/path/to/write"}; + state.permissions.fs_read = {"/path/to/read"}; + state.permissions.fs_readwrite = {"/path/to/readwrite"}; + state.permissions.network_http = {"https://api.example.com"}; + state.permissions.network_socket = {"192.168.45.6:443"}; + state.permissions.process = {"/usr/bin/curl"}; REQUIRE(write_install_state(plugin_dir, state)); // Permission data is persisted in the same sidecar as the installation metadata. PluginInstallState persisted; REQUIRE(read_install_state(plugin_dir, persisted)); - CHECK(persisted.permissions.networking == state.permissions.networking); CHECK(persisted.permissions.fs_read == state.permissions.fs_read); - CHECK(persisted.permissions.fs_write == state.permissions.fs_write); + CHECK(persisted.permissions.fs_readwrite == state.permissions.fs_readwrite); + CHECK(persisted.permissions.network_http == state.permissions.network_http); + CHECK(persisted.permissions.network_socket == state.permissions.network_socket); + CHECK(persisted.permissions.process == state.permissions.process); // Reading the sidecar back onto a freshly-scanned descriptor (whose header version is still // 1.0.0) must surface the cloud-installed 1.2.0. This is what lets update_cloud_metadata compare From 86d442919784ca397c7c239dd1f91066c4afad7b Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 21:33:57 +0800 Subject: [PATCH 056/164] Try fix appimage build --- .../platform/unix/build_linux_image.sh.in | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/dev-utils/platform/unix/build_linux_image.sh.in b/src/dev-utils/platform/unix/build_linux_image.sh.in index 85134b764d..eef2178743 100755 --- a/src/dev-utils/platform/unix/build_linux_image.sh.in +++ b/src/dev-utils/platform/unix/build_linux_image.sh.in @@ -96,12 +96,23 @@ copy_shared_object_to_dir() { } bundle_dependency_closure() { - local dst_dir="$1" + local dst_dir + dst_dir="$(cd -- "$1" && pwd)" shift local -a queue=("$@") local target dep dep_real copied_path declare -A seen=() + # Dependencies are resolved with ldd, which only searches the default + # loader path. Deps-built shared libraries (e.g. the FFmpeg stack) are not + # installed there and carry no RUNPATH of their own, so once copied into + # the bundle ldd can no longer resolve one sibling from another + # (libavcodec -> libavutil) and reports it as missing. Extend the loader + # path with the bundle directory plus the source directories of files + # already bundled, so every library that was resolved once keeps resolving + # for its own dependencies. The audit script does the same + # (scripts/check_appimage_libs.sh). + local -a search_dirs=("$dst_dir") while [ ${#queue[@]} -gt 0 ]; do target="${queue[0]}" @@ -128,11 +139,12 @@ bundle_dependency_closure() { seen[$dep_real]=1 copy_shared_object_to_dir "$dep" "$dst_dir" + search_dirs+=("$(dirname "$dep_real")") copied_path="$dst_dir/$(basename "$dep_real")" if [ -e "$copied_path" ]; then queue+=("$copied_path") fi - done < <(appimage_list_direct_dependencies "$target") + done < <(LD_LIBRARY_PATH="$(IFS=:; printf '%s' "${search_dirs[*]}")${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" appimage_list_direct_dependencies "$target") done } From 41c107d4f7c2ced5dde2cc3a21df6060892e4d76 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 22:22:02 +0800 Subject: [PATCH 057/164] Fix Linux AppImage bundling of deps-built shared libraries The AppImage dependency closure resolves each bundled ELF's DT_NEEDED entries with plain ldd, which cannot resolve the deps-built FFmpeg stack (libavcodec/libavutil/libswscale) once it is copied into the bundle: those libs are not installed in any standard loader path and carry no RUNPATH of their own, so ldd reports the siblings as missing and the build aborts. Extend the loader path with the bundle directory plus the source directories of already-bundled files (mirroring scripts/check_appimage_libs.sh), and key the dedup set on the bundled file path instead of the source path so dependencies resolved from the bundle directory are not copied onto themselves. Co-Authored-By: Claude --- .../platform/unix/build_linux_image.sh.in | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/dev-utils/platform/unix/build_linux_image.sh.in b/src/dev-utils/platform/unix/build_linux_image.sh.in index eef2178743..873cf2e1b1 100755 --- a/src/dev-utils/platform/unix/build_linux_image.sh.in +++ b/src/dev-utils/platform/unix/build_linux_image.sh.in @@ -83,6 +83,10 @@ copy_shared_object_to_dir() { src_real="$(readlink -f "$src")" dst_name="$(basename "$src_real")" mkdir -p "$dst_dir" + if [ "$src_real" = "$dst_dir/$dst_name" ]; then + # Already bundled; the dependency resolved from the bundle directory. + return 0 + fi cp -fL "$src_real" "$dst_dir/$dst_name" if [ -L "$src" ]; then @@ -101,7 +105,7 @@ bundle_dependency_closure() { shift local -a queue=("$@") - local target dep dep_real copied_path + local target dep dep_real dep_key copied_path declare -A seen=() # Dependencies are resolved with ldd, which only searches the default # loader path. Deps-built shared libraries (e.g. the FFmpeg stack) are not @@ -133,11 +137,17 @@ bundle_dependency_closure() { continue fi - if [ -n "${seen[$dep_real]}" ]; then + # Key dedup on the bundled file rather than the source path: once + # ldd resolves a library from the bundle directory (via the + # LD_LIBRARY_PATH above) its path is a dst_dir path, which differs + # from the source path the first resolution returned. Keying on + # the source path would re-copy the file onto itself. + dep_key="$dst_dir/$(basename "$dep_real")" + if [ -n "${seen[$dep_key]}" ]; then continue fi - seen[$dep_real]=1 + seen[$dep_key]=1 copy_shared_object_to_dir "$dep" "$dst_dir" search_dirs+=("$(dirname "$dep_real")") copied_path="$dst_dir/$(basename "$dep_real")" From e9ca9d41d183b7ef8afb25de118e6ecad30b92af Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Thu, 13 Aug 2026 23:40:37 +0800 Subject: [PATCH 058/164] Attempt to fix Linux unit test --- tests/CMakeLists.txt | 66 ++++++++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 17 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3cbdc25f5f..28818a5ee1 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -30,25 +30,57 @@ if (APPLE) target_link_libraries(test_common INTERFACE "-liconv -framework IOKit" "-framework CoreFoundation" -lc++) endif() -# Copies runtime DLLs next to each test executable. Handles both single-config -# generators (CMAKE_BUILD_TYPE set) and multi-config generators (Ninja -# Multi-Config, Visual Studio) where CMAKE_BUILD_TYPE is empty and DLLs must -# land in every per-config output directory. +# Copies runtime shared libraries next to each test executable. Handles both +# single-config generators (CMAKE_BUILD_TYPE set) and multi-config generators +# (Ninja Multi-Config, Visual Studio) where CMAKE_BUILD_TYPE is empty and DLLs +# must land in every per-config output directory. On Windows the loader finds +# DLLs in the executable's directory; the Linux branch below does the same for +# the deps-built FFmpeg libraries and adds an $ORIGIN rpath, since the ELF +# loader does not search the executable's directory and the CI unit-test runner +# only receives the tests artifact (no deps install). function(orcaslicer_copy_test_dlls) - if (NOT WIN32) - return() - endif() - set(_configs ${CMAKE_CONFIGURATION_TYPES}) - if (NOT _configs) - set(_configs "${CMAKE_BUILD_TYPE}") - endif() - foreach(_cfg IN LISTS _configs) - if (_cfg STREQUAL "Debug") - orcaslicer_copy_dlls(COPY_DLLS "Debug" "d" _unused_dlls) - else() - orcaslicer_copy_dlls(COPY_DLLS "${_cfg}" "" _unused_dlls) + if (WIN32) + set(_configs ${CMAKE_CONFIGURATION_TYPES}) + if (NOT _configs) + set(_configs "${CMAKE_BUILD_TYPE}") endif() - endforeach() + foreach(_cfg IN LISTS _configs) + if (_cfg STREQUAL "Debug") + orcaslicer_copy_dlls(COPY_DLLS "Debug" "d" _unused_dlls) + else() + orcaslicer_copy_dlls(COPY_DLLS "${_cfg}" "" _unused_dlls) + endif() + endforeach() + elseif (UNIX AND NOT APPLE) + # Only test executables that link libslic3r_gui pull in the FFmpeg + # shared libraries (src/slic3r/CMakeLists.txt links PkgConfig::LIBAV + # into it). Copy them next to the executable and give it an $ORIGIN + # rpath so the loader finds them when the tests run on the CI unit-test + # runner, which only receives this build/tests tree. + get_target_property(_linked_libs ${_TEST_NAME}_tests LINK_LIBRARIES) + if (NOT "libslic3r_gui" IN_LIST _linked_libs) + return() + endif() + + set_property(TARGET ${_TEST_NAME}_tests PROPERTY BUILD_RPATH "$ORIGIN") + add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 + ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100 + ${CMAKE_PREFIX_PATH}/lib/libavutil.so + ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 + ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.8.100 + ${CMAKE_PREFIX_PATH}/lib/libswscale.so + ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 + ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.1.100 + ${CMAKE_PREFIX_PATH}/lib/libswresample.so + ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 + ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 + "$" + COMMENT "Copying FFmpeg libraries next to test executable" + VERBATIM) + endif() endfunction() # Register Catch2 tags as CTest labels so `ctest -L`/`-LE` can filter by tag. From d99f4c8164053f5e80390b9604b6e8790f7f8d88 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Fri, 14 Aug 2026 12:33:08 +0800 Subject: [PATCH 059/164] Merge branch 'main' into feat/plugin-auditing --- .github/ISSUE_TEMPLATE/bug_report.yml | 10 +- CMakeLists.txt | 4 + README.md | 4 + deps/OpenSSL/OpenSSL.cmake | 8 + deps_src/imgui/imgui_draw.cpp | 1 + deps_src/imgui/imstb_textedit.h | 95 + localization/i18n/OrcaSlicer.pot | 88 +- localization/i18n/ca/OrcaSlicer_ca.po | 153 +- localization/i18n/cs/OrcaSlicer_cs.po | 153 +- localization/i18n/de/OrcaSlicer_de.po | 153 +- localization/i18n/en/OrcaSlicer_en.po | 96 +- localization/i18n/es/OrcaSlicer_es.po | 153 +- localization/i18n/eu/OrcaSlicer_eu.po | 181 +- localization/i18n/fr/OrcaSlicer_fr.po | 163 +- localization/i18n/hu/OrcaSlicer_hu.po | 1208 +++++---- localization/i18n/it/OrcaSlicer_it.po | 153 +- localization/i18n/ja/OrcaSlicer_ja.po | 153 +- localization/i18n/ko/OrcaSlicer_ko.po | 159 +- localization/i18n/lt/OrcaSlicer_lt.po | 153 +- localization/i18n/nl/OrcaSlicer_nl.po | 153 +- localization/i18n/pl/OrcaSlicer_pl.po | 153 +- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 225 +- localization/i18n/ru/OrcaSlicer_ru.po | 1403 +++++------ localization/i18n/sv/OrcaSlicer_sv.po | 153 +- localization/i18n/th/OrcaSlicer_th.po | 521 ++-- localization/i18n/tr/OrcaSlicer_tr.po | 777 +++--- localization/i18n/uk/OrcaSlicer_uk.po | 153 +- localization/i18n/vi/OrcaSlicer_vi.po | 153 +- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 153 +- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 155 +- resources/profiles/Creality.json | 2 +- ...SuperDetail @Creality K1 (0.4 nozzle).json | 2 +- ...ail @Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- ... SuperDetail @Creality K1C 0.4 nozzle.json | 2 +- ...Detail @Creality K1C_CFS-C 0.4 nozzle.json | 2 +- ...erDetail @Creality K1Max (0.4 nozzle).json | 2 +- ...rDetail @Creality K1_CFS-C 0.4 nozzle.json | 2 +- ...6mm Optimal @Creality K1 (0.4 nozzle).json | 2 +- ...mal @Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- ...mm Optimal @Creality K1 SE 0.4 nozzle.json | 2 +- ...imal @Creality K1 SE_CFS-C 0.4 nozzle.json | 2 +- ...16mm Optimal @Creality K1C 0.4 nozzle.json | 2 +- ...ptimal @Creality K1C_CFS-C 0.4 nozzle.json | 2 +- ... Optimal @Creality K1Max (0.4 nozzle).json | 2 +- ...Optimal @Creality K1_CFS-C 0.4 nozzle.json | 2 +- ...mm Standard @Creality K1 (0.4 nozzle).json | 2 +- ...ard @Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- .../0.20mm Standard @Creality K1 SE 0.4.json | 2 +- ...dard @Creality K1 SE_CFS-C 0.4 nozzle.json | 2 +- ...0mm Standard @Creality K1C 0.4 nozzle.json | 2 +- ...andard @Creality K1C_CFS-C 0.4 nozzle.json | 2 +- ...Standard @Creality K1Max (0.4 nozzle).json | 2 +- ...tandard @Creality K1_CFS-C 0.4 nozzle.json | 2 +- ....24mm Draft @Creality K1 (0.4 nozzle).json | 2 +- ...aft @Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- ...24mm Draft @Creality K1 SE 0.4 nozzle.json | 2 +- ...raft @Creality K1 SE_CFS-C 0.4 nozzle.json | 2 +- ...0.24mm Draft @Creality K1C 0.4 nozzle.json | 2 +- ... Draft @Creality K1C_CFS-C 0.4 nozzle.json | 2 +- ...mm Draft @Creality K1Max (0.4 nozzle).json | 2 +- ...m Draft @Creality K1_CFS-C 0.4 nozzle.json | 2 +- ...mm Standard @Creality K1 (0.6 nozzle).json | 2 +- ...m Standard @Creality K1 SE 0.6 nozzle.json | 2 +- ...0mm Standard @Creality K1C 0.6 nozzle.json | 2 +- ...Standard @Creality K1Max (0.6 nozzle).json | 2 +- ...mm Standard @Creality K1 (0.8 nozzle).json | 2 +- ...0mm Standard @Creality K1C 0.8 nozzle.json | 2 +- ...Standard @Creality K1Max (0.8 nozzle).json | 2 +- resources/profiles/Custom.json | 2 +- .../filament/Generic ABS @MyToolChanger.json | 6 - .../filament/Generic ASA @MyToolChanger.json | 6 - .../filament/Generic PA @MyToolChanger.json | 6 - .../Generic PA-CF @MyToolChanger.json | 6 - .../filament/Generic PC @MyToolChanger.json | 6 - .../filament/Generic PETG @MyToolChanger.json | 6 - .../filament/Generic PLA @MyToolChanger.json | 6 - .../Generic PLA-CF @MyToolChanger.json | 6 - .../filament/Generic PVA @MyToolChanger.json | 6 - .../Custom/machine/fdm_klipper_common.json | 2 +- .../Custom/machine/fdm_repetier_common.json | 2 +- .../Custom/machine/fdm_rrf_common.json | 2 +- .../machine/fdm_toolchanger_common.json | 11 +- resources/profiles/OrcaFilamentLibrary.json | 2 +- .../filament/Bambu/Bambu PET-CF @base.json | 3 + .../Bambu/Bambu PETG Basic @base.json | 3 + .../Bambu/Bambu PETG Translucent @base.json | 3 + .../filament/Bambu/Bambu PLA Aero @base.json | 3 + .../Bambu Support For PLA-PETG @base.json | 3 + .../Bambu/Bambu Support for ABS @base.json | 3 + .../filament/COEX/COEX TPU 60A @base.json | 3 + .../filament/Elas/Elas ASA @base.json | 42 - .../filament/Elas/Elas PETG Basic @base.json | 42 - .../filament/Elas/Elas PLA Basic @base.json | 42 - .../filament/Elas/Elas PLA Pro @base.json | 42 - .../Elegoo/Elegoo PAHT-CF @System.json | 3 + .../filament/Elegoo/Elegoo PETG @base.json | 3 + .../Elegoo/Elegoo PLA Wood @System.json | 3 + .../Eolas Prints PLA Neon @System.json | 3 + .../Eolas Prints PLA Silk @System.json | 3 + .../filament/Generic PA-CF @System.json | 3 + .../filament/Generic PETG HF @System.json | 3 + .../filament/Generic PETG-CF @System.json | 3 + .../Generic PLA High Speed @System.json | 3 + .../filament/Generic PLA Matte @System.json | 3 + .../filament/Generic PP-CF @System.json | 3 + .../filament/Generic PP-GF @System.json | 3 + .../Overture/Overture Air PLA @base.json | 3 + .../Valment/Valment PLA Silk @base.json | 3 + .../filament/base/fdm_filament_abs.json | 6 + .../filament/base/fdm_filament_asa.json | 6 + .../filament/base/fdm_filament_bvoh.json | 9 + .../filament/base/fdm_filament_common.json | 6 + .../filament/base/fdm_filament_cope.json | 3 + .../filament/base/fdm_filament_eva.json | 3 + .../filament/base/fdm_filament_hips.json | 3 + .../filament/base/fdm_filament_pa.json | 3 + .../filament/base/fdm_filament_paht.json | 3 + .../filament/base/fdm_filament_pc.json | 3 + .../filament/base/fdm_filament_pctg.json | 3 + .../filament/base/fdm_filament_pe.json | 3 + .../filament/base/fdm_filament_pet.json | 3 + .../filament/base/fdm_filament_pha.json | 3 + .../filament/base/fdm_filament_pla.json | 3 + .../filament/base/fdm_filament_pla_silk.json | 3 + .../filament/base/fdm_filament_pp.json | 3 + .../filament/base/fdm_filament_ppa.json | 3 + .../filament/base/fdm_filament_pps.json | 3 + .../filament/base/fdm_filament_pva.json | 9 + .../filament/base/fdm_filament_sbs.json | 3 + .../filament/base/fdm_filament_tpu.json | 9 + .../filament/eSUN/eSUN PLA-Marble @base.json | 3 + .../filament/eSUN/eSUN PLA-Matte @base.json | 3 + .../filament/eSUN/eSUN ePLA-LW @System.json | 3 + resources/profiles/Qidi.json | 1078 +++++++- .../profiles/Qidi/Qidi X-Plus 5_cover.png | Bin 0 -> 33441 bytes .../Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json | 20 + .../Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json | 14 + .../Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json | 17 + .../Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../Qidi/filament/X5/Bambu ABS @X-Plus 5.json | 105 + .../Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json | 17 + .../Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json | 14 + .../Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json | 14 + .../Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/Bambu PETG @X-Plus 5.json | 102 + .../Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json | 17 + .../Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json | 14 + .../Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json | 14 + .../Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../Qidi/filament/X5/Bambu PLA @X-Plus 5.json | 54 + ...Generic ABS @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...Generic ABS @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...Generic ABS @Qidi X-Plus 5 0.6 nozzle.json | 17 + ...Generic ABS @Qidi X-Plus 5 0.8 nozzle.json | 17 + .../filament/X5/Generic ABS @X-Plus 5.json | 108 + .../Generic PC @Qidi X-Plus 5 0.2 nozzle.json | 23 + .../Generic PC @Qidi X-Plus 5 0.4 nozzle.json | 20 + .../Generic PC @Qidi X-Plus 5 0.6 nozzle.json | 20 + .../Generic PC @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../filament/X5/Generic PC @X-Plus 5.json | 108 + ...eneric PETG @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...eneric PETG @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...eneric PETG @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...eneric PETG @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/Generic PETG @X-Plus 5.json | 105 + ...Generic PLA @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...Generic PLA @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...Generic PLA @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...Generic PLA @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/Generic PLA @X-Plus 5.json | 66 + ...ic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...ic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json | 14 + .../X5/Generic PLA Silk @X-Plus 5.json | 90 + ...eneric PLA+ @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...eneric PLA+ @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...eneric PLA+ @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...eneric PLA+ @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/Generic PLA+ @X-Plus 5.json | 60 + ...ric TPU 95A @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...ric TPU 95A @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...ric TPU 95A @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/Generic TPU 95A @X-Plus 5.json | 81 + ...ATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json | 20 + ...ATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...ATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json | 17 + ...ATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../filament/X5/HATCHBOX ABS @X-Plus 5.json | 105 + ...TCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...TCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...TCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...TCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/HATCHBOX PETG @X-Plus 5.json | 102 + ...ATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...ATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...ATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...ATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/HATCHBOX PLA @X-Plus 5.json | 54 + ...verture ABS @Qidi X-Plus 5 0.2 nozzle.json | 20 + ...verture ABS @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...verture ABS @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...verture ABS @Qidi X-Plus 5 0.8 nozzle.json | 17 + .../filament/X5/Overture ABS @X-Plus 5.json | 108 + ...verture PLA @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...verture PLA @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...verture PLA @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...verture PLA @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/Overture PLA @X-Plus 5.json | 66 + ...olyLite ABS @Qidi X-Plus 5 0.2 nozzle.json | 20 + ...olyLite ABS @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...olyLite ABS @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...olyLite ABS @Qidi X-Plus 5 0.8 nozzle.json | 17 + .../filament/X5/PolyLite ABS @X-Plus 5.json | 108 + ...olyLite PLA @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...olyLite PLA @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...olyLite PLA @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...olyLite PLA @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/PolyLite PLA @X-Plus 5.json | 66 + ...aker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...aker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...aker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...aker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/Polymaker PLA-HT @X-Plus 5.json | 66 + ...BS Odorless @Qidi X-Plus 5 0.2 nozzle.json | 20 + ...BS Odorless @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...BS Odorless @Qidi X-Plus 5 0.6 nozzle.json | 20 + ...BS Odorless @Qidi X-Plus 5 0.8 nozzle.json | 23 + .../X5/QIDI ABS Odorless @X-Plus 5.json | 108 + ... ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json | 20 + ... ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json | 14 + ... ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json | 17 + ... ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../X5/QIDI ABS Rapido @X-Plus 5.json | 105 + ...apido Metal @Qidi X-Plus 5 0.2 nozzle.json | 20 + ...apido Metal @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...apido Metal @Qidi X-Plus 5 0.6 nozzle.json | 17 + ...apido Metal @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../X5/QIDI ABS Rapido Metal @X-Plus 5.json | 105 + ...QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI ABS-GF @X-Plus 5.json | 114 + .../QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json | 20 + .../QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json | 14 + .../QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json | 17 + .../QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../Qidi/filament/X5/QIDI ASA @X-Plus 5.json | 111 + ...DI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json | 11 + .../filament/X5/QIDI ASA-Aero @X-Plus 5.json | 126 + ...QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json | 17 + ...QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json | 20 + .../filament/X5/QIDI ASA-CF @X-Plus 5.json | 111 + ...IDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...IDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../filament/X5/QIDI PA12-CF @X-Plus 5.json | 111 + ...QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../filament/X5/QIDI PA6-CF @X-Plus 5.json | 111 + ...IDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...IDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../filament/X5/QIDI PAHT-CF @X-Plus 5.json | 111 + ...IDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...IDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PAHT-GF @X-Plus 5.json | 111 + ...I PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...I PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...I PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PC-ABS-FR @X-Plus 5.json | 111 + ...DI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...DI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json | 11 + .../filament/X5/QIDI PEBA 95A @X-Plus 5.json | 96 + ...QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PET-CF @X-Plus 5.json | 111 + ...QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PET-GF @X-Plus 5.json | 111 + ... PETG Basic @Qidi X-Plus 5 0.2 nozzle.json | 17 + ... PETG Basic @Qidi X-Plus 5 0.4 nozzle.json | 11 + ... PETG Basic @Qidi X-Plus 5 0.6 nozzle.json | 14 + ... PETG Basic @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PETG Basic @X-Plus 5.json | 102 + ...PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PETG Rapido @X-Plus 5.json | 102 + ... PETG Tough @Qidi X-Plus 5 0.2 nozzle.json | 17 + ... PETG Tough @Qidi X-Plus 5 0.4 nozzle.json | 11 + ... PETG Tough @Qidi X-Plus 5 0.6 nozzle.json | 14 + ... PETG Tough @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PETG Tough @X-Plus 5.json | 102 + ...Translucent @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...Translucent @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...Translucent @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...Translucent @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PETG Translucent @X-Plus 5.json | 102 + ...IDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...IDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PETG-CF @X-Plus 5.json | 102 + ...IDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...IDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PETG-GF @X-Plus 5.json | 102 + ...I PLA Basic @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...I PLA Basic @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...I PLA Basic @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...I PLA Basic @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PLA Basic @X-Plus 5.json | 63 + ...Matte Basic @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...Matte Basic @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...Matte Basic @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...Matte Basic @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PLA Matte Basic @X-Plus 5.json | 63 + ... PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json | 17 + ... PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json | 14 + ... PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json | 14 + ... PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PLA Rapido @X-Plus 5.json | 60 + ...apido Matte @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...apido Matte @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...apido Matte @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...apido Matte @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PLA Rapido Matte @X-Plus 5.json | 57 + ...apido Metal @Qidi X-Plus 5 0.2 nozzle.json | 17 + ...apido Metal @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...apido Metal @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...apido Metal @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI PLA Rapido Metal @X-Plus 5.json | 57 + ...DI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...DI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json | 14 + .../filament/X5/QIDI PLA Silk @X-Plus 5.json | 84 + ...QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json | 17 + .../filament/X5/QIDI PLA-CF @X-Plus 5.json | 75 + ...QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PPS-CF @X-Plus 5.json | 117 + ...QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../filament/X5/QIDI PPS-GF @X-Plus 5.json | 117 + ...rt For PAHT @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...rt For PAHT @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...rt For PAHT @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../X5/QIDI Support For PAHT @X-Plus 5.json | 114 + ... For PET-PA @Qidi X-Plus 5 0.4 nozzle.json | 11 + ... For PET-PA @Qidi X-Plus 5 0.6 nozzle.json | 11 + ... For PET-PA @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../X5/QIDI Support For PET-PA @X-Plus 5.json | 114 + ... TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ... TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json | 11 + ... TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI TPU 95A-HF @X-Plus 5.json | 84 + ...DI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...DI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json | 11 + .../filament/X5/QIDI TPU-Aero @X-Plus 5.json | 93 + ...QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../filament/X5/QIDI TPU-GF @X-Plus 5.json | 84 + ...IDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...IDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json | 11 + ...IDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json | 11 + .../filament/X5/QIDI UltraPA @X-Plus 5.json | 99 + ...ltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json | 11 + ...ltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...ltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI UltraPA-CF25 @X-Plus 5.json | 114 + ...WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json | 14 + ...WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json | 14 + ...WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json | 14 + .../X5/QIDI WOOD Rapido @X-Plus 5.json | 66 + .../filament/X5/fdm_filament_x5_common.json | 255 ++ .../Qidi/machine/Qidi Q2 0.4 nozzle.json | 2 +- .../Qidi/machine/Qidi Q2C 0.4 nozzle.json | 2 +- .../Qidi/machine/Qidi X-Max 4 0.4 nozzle.json | 2 +- .../machine/Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../machine/Qidi X-Plus 5 0.2 nozzle.json | 28 + .../machine/Qidi X-Plus 5 0.4 nozzle.json | 88 + .../machine/Qidi X-Plus 5 0.6 nozzle.json | 31 + .../machine/Qidi X-Plus 5 0.8 nozzle.json | 31 + .../profiles/Qidi/machine/Qidi X-Plus 5.json | 12 + ...8mm High Quality @X-Plus 5 0.2 nozzle.json | 70 + .../0.08mm High Quality @X-Plus 5.json | 73 + .../0.10mm Standard @X-Plus 5 0.2 nozzle.json | 63 + ...Balanced Quality @X-Plus 5 0.2 nozzle.json | 66 + .../0.12mm High Quality @X-Plus 5.json | 73 + .../0.16mm High Quality @X-Plus 5.json | 65 + .../process/0.16mm Standard @X-Plus 5.json | 62 + ...Balanced Quality @X-Plus 5 0.6 nozzle.json | 73 + .../0.20mm High Quality @X-Plus 5.json | 63 + .../process/0.20mm Standard @X-Plus 5.json | 47 + ...Balanced Quality @X-Plus 5 0.6 nozzle.json | 71 + ...Balanced Quality @X-Plus 5 0.8 nozzle.json | 63 + .../process/0.24mm Standard @X-Plus 5.json | 50 + .../0.30mm Standard @X-Plus 5 0.6 nozzle.json | 65 + ...Balanced Quality @X-Plus 5 0.8 nozzle.json | 72 + .../0.40mm Standard @X-Plus 5 0.8 nozzle.json | 60 + .../Qidi/qidi_xplus5_buildplate_model.stl | Bin 0 -> 28284 bytes .../Qidi/qidi_xplus5_buildplate_texture.svg | 1 + resources/profiles/Snapmaker.json | 278 ++- .../Polymaker General PLA Family @U1.json | 32 + .../filament/Polymaker PLA @U1 base.json | 107 + .../Polymaker Silk PLA Family @U1.json | 32 + .../Polymaker Tough PLA Family @U1.json | 32 + .../Fiberon ASA-CF08 @Snapmaker U1.json | 1 - .../Fiberon PA12-CF10 @Snapmaker U1.json | 1 - .../Fiberon PA6-CF20 @Snapmaker U1.json | 1 - .../Fiberon PETG-ESD @Snapmaker U1.json | 1 - .../PolyLite Dual PLA @0.2 nozzle.json | 6 +- .../PolyLite J1 PLA @0.2 nozzle.json | 6 +- .../filament/Polymaker/PolyLite J1 PLA.json | 6 +- .../Polymaker/PolyLite PETG @Base.json | 10 +- .../PolyLite PETG @Snapmaker U1.json | 1 - ...lyLite PETG Translucent @Snapmaker U1.json | 1 - .../Polymaker/PolyLite PLA @0.2 nozzle.json | 6 +- .../Polymaker/PolyLite PLA @base.json | 6 +- .../PolyTerra Dual PLA @0.2 nozzle.json | 6 +- .../PolyTerra J1 PLA @0.2 nozzle.json | 6 +- .../filament/Polymaker/PolyTerra J1 PLA.json | 6 +- .../Polymaker/PolyTerra PLA @0.2 nozzle.json | 6 +- .../Polymaker/Polymaker HT-PLA @Base.json | 10 +- .../Polymaker/Polymaker HT-PLA-GF @Base.json | 10 +- .../Polymaker/Polymaker PETG @Base.json | 10 +- .../Polymaker/Polymaker PLA Pro @Base.json | 10 +- .../Snapmaker/filament/Snapmaker ABS @U1.json | 3 + .../Snapmaker/filament/Snapmaker ASA @U1.json | 3 + ...akaway Support For PLA @U1 0.2 nozzle.json | 104 + ...akaway Support For PLA @U1 0.6 nozzle.json | 104 + ...akaway Support For PLA @U1 0.8 nozzle.json | 98 + ...apmaker Breakaway Support For PLA @U1.json | 78 + .../Snapmaker PETG HF @U1 0.2 nozzle.json | 108 + .../Snapmaker PETG HF @U1 0.6 nozzle.json | 113 + .../Snapmaker PETG HF @U1 0.8 nozzle.json | 110 + .../filament/Snapmaker PETG HF @U1 base2.json | 279 +++ ...maker PETG Translucent @U1 0.2 nozzle.json | 110 + ...maker PETG Translucent @U1 0.4 nozzle.json | 98 + ...maker PETG Translucent @U1 0.6 nozzle.json | 107 + ...maker PETG Translucent @U1 0.8 nozzle.json | 104 + .../Snapmaker PETG Translucent @U1 base.json | 8 + .../Snapmaker PLA Basic @U1 base.json | 127 + .../filament/Snapmaker PLA Basic @U1.json | 284 +++ ...aker PLA Full Spectrum @U1 0.4 nozzle.json | 284 +++ .../Snapmaker PLA Glow @U1 0.4 nozzle.json | 95 + .../filament/Snapmaker PLA Glow @U1 base.json | 44 + .../Snapmaker PLA Matte @U1 0.2 nozzle.json | 287 +++ .../Snapmaker PLA Matte @U1 0.6 nozzle.json | 287 +++ .../Snapmaker PLA Matte @U1 0.8 nozzle.json | 287 +++ .../Snapmaker PLA Matte @U1 base2.json | 127 + .../filament/Snapmaker PLA Matte @U1.json | 26 +- .../Snapmaker PLA Metal @U1 base.json | 3 - .../Snapmaker PLA Silk @U1 0.2 nozzle.json | 285 +++ .../Snapmaker PLA Silk @U1 0.6 nozzle.json | 285 +++ .../Snapmaker PLA Silk @U1 0.8 nozzle.json | 285 +++ .../filament/Snapmaker PLA Silk @U1 base.json | 3 - .../filament/Snapmaker PLA Silk @U1.json | 276 ++- ...napmaker PLA SnapSpeed @U1 0.2 nozzle.json | 50 + ...napmaker PLA SnapSpeed @U1 0.6 nozzle.json | 41 + ...napmaker PLA SnapSpeed @U1 0.8 nozzle.json | 41 + .../Snapmaker PLA SnapSpeed @U1 base2.json | 281 +++ .../filament/Snapmaker PLA SnapSpeed @U1.json | 42 +- ...pmaker PLA Translucent @U1 0.2 nozzle.json | 284 +++ ...pmaker PLA Translucent @U1 0.4 nozzle.json | 284 +++ ...pmaker PLA Translucent @U1 0.6 nozzle.json | 284 +++ ...pmaker PLA Translucent @U1 0.8 nozzle.json | 284 +++ .../Snapmaker PLA Translucent @U1 base.json | 44 + .../Snapmaker PLA Wood @U1 0.4 nozzle.json | 108 + .../Snapmaker PLA Wood @U1 0.6 nozzle.json | 114 + .../Snapmaker PLA Wood @U1 0.8 nozzle.json | 114 + .../Snapmaker PLA-CF @U1 0.4 nozzle.json | 132 + .../Snapmaker PLA-CF @U1 0.6 nozzle.json | 138 ++ .../Snapmaker PLA-CF @U1 0.8 nozzle.json | 135 + .../filament/Snapmaker PLA-CF @U1 base.json | 3 - .../filament/Snapmaker PLA-CF @U1.json | 3 + .../Snapmaker PVA @U1 0.6 nozzle.json | 113 + .../Snapmaker PVA @U1 0.8 nozzle.json | 107 + .../Snapmaker/filament/Snapmaker PVA @U1.json | 90 + .../Snapmaker TPU 90A @U1 0.6 nozzle.json | 150 ++ .../Snapmaker TPU 90A @U1 0.8 nozzle.json | 144 ++ .../filament/Snapmaker TPU 90A @U1.json | 141 ++ .../filament/Snapmaker TPU 95A @U1 base.json | 3 - .../Snapmaker TPU 95A HF @U1 0.6 nozzle.json | 147 ++ .../Snapmaker TPU 95A HF @U1 0.8 nozzle.json | 147 ++ .../filament/Snapmaker TPU 95A HF @U1.json | 144 ++ .../machine/Snapmaker U1 (0.2 nozzle).json | 171 +- .../machine/Snapmaker U1 (0.4 nozzle).json | 100 +- .../Snapmaker U1 (0.4+0.6 nozzle).json | 6 +- .../machine/Snapmaker U1 (0.6 nozzle).json | 179 +- .../machine/Snapmaker U1 (0.8 nozzle).json | 171 +- .../profiles/Snapmaker/machine/fdm_U1.json | 11 +- ...gh Quality @Snapmaker U1 (0.2 nozzle).json | 70 +- ...6 Standard @Snapmaker U1 (0.2 nozzle).json | 62 +- ...Extra Fine @Snapmaker U1 (0.4 nozzle).json | 15 +- ...gh Quality @Snapmaker U1 (0.2 nozzle).json | 70 +- ...gh Quality @Snapmaker U1 (0.4 nozzle).json | 14 +- ...8 Standard @Snapmaker U1 (0.2 nozzle).json | 62 +- ...gh Quality @Snapmaker U1 (0.2 nozzle).json | 70 +- ...0 Standard @Snapmaker U1 (0.2 nozzle).json | 66 +- .../0.12 Fine @Snapmaker U1 (0.4 nozzle).json | 15 +- ...gh Quality @Snapmaker U1 (0.4 nozzle).json | 17 +- ...2 Standard @Snapmaker U1 (0.2 nozzle).json | 62 +- ...4 Standard @Snapmaker U1 (0.2 nozzle).json | 62 +- ...gh Quality @Snapmaker U1 (0.4 nozzle).json | 15 +- ...16 Optimal @Snapmaker U1 (0.4 nozzle).json | 14 +- ...8 Standard @Snapmaker U1 (0.6 nozzle).json | 70 +- ... Support W @Snapmaker U1 (0.4 nozzle).json | 23 - ...20 Quality @Snapmaker U1 (0.4 nozzle).json | 1 + ...0 Standard @Snapmaker U1 (0.4 nozzle).json | 2 + ...andard @Snapmaker U1 (0.4+0.6 nozzle).json | 1 + ...0 Standard @Snapmaker U1 (0.6 nozzle).json | 1 + ...0 Strength @Snapmaker U1 (0.4 nozzle).json | 14 +- ...20 Support @Snapmaker U1 (0.4 nozzle).json | 2 + ... Support W @Snapmaker U1 (0.4 nozzle).json | 2 + ...0.24 Draft @Snapmaker U1 (0.4 nozzle).json | 14 +- ...4 Standard @Snapmaker U1 (0.6 nozzle).json | 69 +- ...4 Standard @Snapmaker U1 (0.8 nozzle).json | 71 +- ...xtra Draft @Snapmaker U1 (0.4 nozzle).json | 16 +- ...0.30 Draft @Snapmaker U1 (0.6 nozzle).json | 2 + ...0 Standard @Snapmaker U1 (0.6 nozzle).json | 67 +- ...0 Strength @Snapmaker U1 (0.6 nozzle).json | 71 +- ...2 Standard @Snapmaker U1 (0.8 nozzle).json | 74 +- ...6 Standard @Snapmaker U1 (0.6 nozzle).json | 69 +- ...xtra Draft @Snapmaker U1 (0.6 nozzle).json | 2 + ...0 Standard @Snapmaker U1 (0.8 nozzle).json | 76 +- ...2 Standard @Snapmaker U1 (0.6 nozzle).json | 69 +- ...8 Standard @Snapmaker U1 (0.8 nozzle).json | 71 +- ...6 Standard @Snapmaker U1 (0.8 nozzle).json | 68 +- .../Snapmaker/process/fdm_process_U1.json | 1 - .../fdm_process_U1_0.06_nozzle_0.2.json | 27 + .../fdm_process_U1_0.08_nozzle_0.2.json | 27 + .../fdm_process_U1_0.10_nozzle_0.2.json | 27 + .../fdm_process_U1_0.12_nozzle_0.2.json | 27 + .../fdm_process_U1_0.14_nozzle_0.2.json | 27 + .../fdm_process_U1_0.18_nozzle_0.6.json | 26 + .../fdm_process_U1_0.24_nozzle_0.6.json | 24 + .../fdm_process_U1_0.24_nozzle_0.8.json | 26 + .../fdm_process_U1_0.30_nozzle_0.6.json | 24 + .../fdm_process_U1_0.32_nozzle_0.8.json | 26 + .../fdm_process_U1_0.36_nozzle_0.6.json | 24 + .../fdm_process_U1_0.40_nozzle_0.8.json | 26 + .../fdm_process_U1_0.42_nozzle_0.6.json | 24 + .../fdm_process_U1_0.48_nozzle_0.8.json | 26 + .../fdm_process_U1_0.56_nozzle_0.8.json | 26 + .../process/fdm_process_U1_0.6_common.json | 2 +- .../process/fdm_process_U1_common.json | 13 +- .../Snapmaker/process/fdm_process_a400.json | 2 +- .../Snapmaker/process/fdm_process_common.json | 2 +- .../Snapmaker/process/fdm_process_idex.json | 2 +- .../Voron/machine/fdm_klipper_common.json | 2 +- resources/profiles/re3D.json | 431 ++-- .../re3D/filament/fdm_filament_pp.json | 10 + .../re3D/filament/re3D PC @0.4 nozzle.json | 3 + .../re3D/filament/re3D PC @0.8 nozzle.json | 3 + .../re3D/filament/re3D PETG @0.4 nozzle.json | 3 + .../re3D/filament/re3D PETG @0.8 nozzle.json | 3 + .../re3D/filament/re3D PLA @0.4 nozzle.json | 3 + .../re3D/filament/re3D PLA @0.8 nozzle.json | 3 + ...ozzle.json => re3D rPETG @0.8 nozzle.json} | 11 +- ...zzle.json => re3D rPETG @1.75 nozzle.json} | 11 +- ...D Greengate rPETG.json => re3D rPETG.json} | 7 +- .../re3D/filament/re3D rPP @0.8 nozzle.json | 2 +- .../re3D/filament/re3D rPP @1.75 nozzle.json | 2 +- .../profiles/re3D/filament/re3D rPP.json | 5 +- .../machine/re3D Gigabot 4 0.4 nozzle.json | 2 +- .../machine/re3D Gigabot 4 0.8 nozzle.json | 2 +- .../re3D Gigabot 4 XLT 0.4 nozzle.json | 2 +- .../re3D Gigabot 4 XLT 0.8 nozzle.json | 2 +- .../machine/re3D GigabotX 2 0.8 nozzle.json | 4 +- .../machine/re3D GigabotX 2 1.75 nozzle.json | 4 +- .../re3D GigabotX 2 XLT 0.8 nozzle.json | 4 +- .../re3D GigabotX 2 XLT 1.75 nozzle.json | 4 +- .../re3D/machine/re3D GigabotX 2 XLT.json | 2 +- .../re3D/machine/re3D GigabotX 2.json | 2 +- .../machine/re3D Terabot 4 0.4 nozzle.json | 2 +- .../machine/re3D Terabot 4 0.8 nozzle.json | 2 +- .../machine/re3D TerabotX 2 0.8 nozzle.json | 4 +- .../machine/re3D TerabotX 2 1.75 nozzle.json | 4 +- .../re3D/machine/re3D TerabotX 2.json | 2 +- .../0.26mm Standard @re3D fdm 0.4.json | 34 +- .../process/0.2mm Fine @re3D fdm 0.4.json | 31 +- .../process/0.32mm Draft @re3D fdm 0.4.json | 31 +- .../process/0.3mm Fine @re3D fdm 0.8.json | 31 +- .../process/0.4mm Draft @re3D fdm 0.8.json | 31 +- .../re3D/process/fdm_process_common.json | 12 - .../re3D/process/fdm_process_re3D_common.json | 202 +- resources/shaders/140/gouraud.fs | 97 +- resources/shaders/140/phong.fs | 79 +- resources/web/dialog/PluginsDialog/index.js | 19 +- resources/web/dialog/PluginsDialog/styles.css | 14 + scripts/msix/AppxManifest.xml | 18 +- scripts/orca_extra_profile_check.py | 10 +- src/OrcaSlicer.cpp | 2 +- src/libslic3r/AABBMesh.cpp | 15 +- src/libslic3r/AABBTreeLines.hpp | 3 +- src/libslic3r/AppConfig.cpp | 25 +- src/libslic3r/Arachne/WallToolPaths.hpp | 16 +- src/libslic3r/BoundingBox.hpp | 2 +- src/libslic3r/Brim.cpp | 38 +- src/libslic3r/Config.hpp | 25 +- src/libslic3r/Extruder.cpp | 4 +- src/libslic3r/Fill/Fill.cpp | 12 + src/libslic3r/Fill/FillBase.cpp | 10 +- src/libslic3r/Fill/FillBase.hpp | 3 + src/libslic3r/Fill/FillPlanePath.cpp | 163 +- src/libslic3r/Fill/FillPlanePath.hpp | 7 + src/libslic3r/Fill/FillRectilinear.cpp | 2 +- src/libslic3r/Format/STEP.cpp | 2 +- src/libslic3r/Format/STEP.hpp | 2 +- src/libslic3r/GCode.cpp | 297 ++- src/libslic3r/GCode.hpp | 9 +- src/libslic3r/GCode/GCodeProcessor.cpp | 10 +- src/libslic3r/GCode/PrintExtents.cpp | 3 +- src/libslic3r/GCode/WipeTower.cpp | 2200 ++++++++++------- src/libslic3r/GCode/WipeTower.hpp | 236 +- src/libslic3r/GCode/WipeTower2.cpp | 776 +++--- src/libslic3r/GCode/WipeTower2.hpp | 89 +- src/libslic3r/GCodeWriter.cpp | 52 +- src/libslic3r/Measure.hpp | 2 +- src/libslic3r/Model.cpp | 4 +- src/libslic3r/Orient.hpp | 120 +- src/libslic3r/PerimeterGenerator.cpp | 329 ++- src/libslic3r/PlaceholderParser.cpp | 2 + src/libslic3r/Polyline.hpp | 4 +- src/libslic3r/Preset.cpp | 15 +- src/libslic3r/PresetBundle.cpp | 2 +- src/libslic3r/Print.cpp | 156 +- src/libslic3r/PrintApply.cpp | 24 +- src/libslic3r/PrintConfig.cpp | 111 +- src/libslic3r/PrintConfig.hpp | 57 +- src/libslic3r/PrintObject.cpp | 87 +- src/libslic3r/SLA/IndexedMesh.cpp | 8 +- src/libslic3r/Technologies.hpp | 5 - src/libvgcode/include/Viewer.hpp | 9 +- src/libvgcode/src/Settings.hpp | 6 +- src/libvgcode/src/Viewer.cpp | 10 + src/libvgcode/src/ViewerImpl.cpp | 61 +- src/libvgcode/src/ViewerImpl.hpp | 7 +- src/slic3r/GUI/3DScene.cpp | 78 +- src/slic3r/GUI/AMSMaterialsSetting.cpp | 126 +- src/slic3r/GUI/ConfigManipulation.cpp | 106 +- src/slic3r/GUI/ConfigManipulation.hpp | 10 +- src/slic3r/GUI/ConnectPrinter.cpp | 4 +- src/slic3r/GUI/DeviceCore/DevManager.cpp | 64 +- src/slic3r/GUI/DeviceCore/DevManager.h | 7 +- src/slic3r/GUI/DeviceManager.cpp | 70 +- src/slic3r/GUI/DeviceManager.hpp | 8 +- .../GUI/DeviceTab/uiAmsHumidityPopup.cpp | 8 +- src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h | 10 +- .../GUI/DeviceTab/uiDeviceUpdateVersion.cpp | 8 +- .../GUI/DeviceTab/uiDeviceUpdateVersion.h | 8 +- src/slic3r/GUI/Field.cpp | 294 ++- src/slic3r/GUI/Field.hpp | 38 + src/slic3r/GUI/GCodeViewer.cpp | 3 +- src/slic3r/GUI/GCodeViewer.hpp | 5 +- src/slic3r/GUI/GLCanvas3D.cpp | 193 +- src/slic3r/GUI/GLCanvas3D.hpp | 6 + src/slic3r/GUI/GUI.cpp | 8 +- src/slic3r/GUI/GUI.hpp | 10 +- src/slic3r/GUI/GUI_App.cpp | 136 +- src/slic3r/GUI/GUI_App.hpp | 12 +- src/slic3r/GUI/GUI_Factories.cpp | 1 + src/slic3r/GUI/GUI_ObjectList.cpp | 2 +- src/slic3r/GUI/GUI_ObjectSettings.cpp | 8 +- src/slic3r/GUI/GUI_ObjectSettings.hpp | 2 +- src/slic3r/GUI/GUI_ObjectTableSettings.cpp | 7 +- src/slic3r/GUI/GUI_ObjectTableSettings.hpp | 2 +- src/slic3r/GUI/GUI_Utils.cpp | 54 +- src/slic3r/GUI/GUI_Utils.hpp | 30 +- src/slic3r/GUI/Gizmos/GLGizmoBase.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp | 70 +- src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp | 4 +- src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp | 7 +- src/slic3r/GUI/IMSlider.cpp | 2 +- src/slic3r/GUI/ImGuiWrapper.cpp | 14 + src/slic3r/GUI/Jobs/ArrangeJob.cpp | 2 +- .../GUI/Jobs/CreateFontStyleImagesJob.cpp | 30 +- src/slic3r/GUI/Jobs/OrientJob.cpp | 43 +- src/slic3r/GUI/MainFrame.cpp | 106 +- src/slic3r/GUI/MainFrame.hpp | 4 +- src/slic3r/GUI/MsgDialog.cpp | 124 +- src/slic3r/GUI/MsgDialog.hpp | 6 +- src/slic3r/GUI/OptionsGroup.cpp | 28 + src/slic3r/GUI/OptionsGroup.hpp | 9 + src/slic3r/GUI/PartPlate.cpp | 37 +- src/slic3r/GUI/PartPlate.hpp | 3 + src/slic3r/GUI/PhysicalPrinterDialog.cpp | 90 +- src/slic3r/GUI/PhysicalPrinterDialog.hpp | 1 - src/slic3r/GUI/Plater.cpp | 78 +- src/slic3r/GUI/PluginSource.hpp | 2 + src/slic3r/GUI/PluginsDialog.cpp | 53 +- src/slic3r/GUI/PluginsDialog.hpp | 1 + src/slic3r/GUI/Preferences.cpp | 46 +- src/slic3r/GUI/Preferences.hpp | 2 + src/slic3r/GUI/PresetComboBoxes.cpp | 3 + src/slic3r/GUI/ReleaseNote.cpp | 9 +- src/slic3r/GUI/SavePresetDialog.cpp | 56 +- src/slic3r/GUI/SavePresetDialog.hpp | 1 - src/slic3r/GUI/SelectMachine.cpp | 13 +- src/slic3r/GUI/SelectMachinePop.cpp | 1 - src/slic3r/GUI/Selection.cpp | 17 +- src/slic3r/GUI/Tab.cpp | 152 +- src/slic3r/GUI/Tab.hpp | 2 + src/slic3r/GUI/Widgets/CheckBox.cpp | 4 +- src/slic3r/GUI/Widgets/RadioBox.cpp | 5 + src/slic3r/GUI/Widgets/SpinInput.cpp | 9 + src/slic3r/GUI/Widgets/SwitchButton.cpp | 4 +- src/slic3r/GUI/Widgets/TextInput.cpp | 9 + src/slic3r/GUI/wxExtensions.cpp | 4 + src/slic3r/Utils/IPrinterAgent.hpp | 7 + src/slic3r/Utils/MoonrakerPrinterAgent.cpp | 1 - src/slic3r/Utils/NetworkAgentFactory.cpp | 20 - src/slic3r/Utils/NetworkAgentFactory.hpp | 2 - src/slic3r/Utils/PresetUpdater.cpp | 96 +- src/slic3r/Utils/RaycastManager.cpp | 2 +- src/slic3r/plugin/PluginDescriptor.hpp | 3 + src/slic3r/plugin/PluginFsUtils.cpp | 3 +- src/slic3r/plugin/PluginManager.cpp | 83 +- src/slic3r/plugin/PluginManager.hpp | 6 + src/slic3r/plugin/host/PluginHostApp.cpp | 10 + .../wipe_tower_temperature_trace_main.txt | 172 ++ tests/fff_print/CMakeLists.txt | 2 + tests/fff_print/test_multifilament.cpp | 611 +++++ tests/fff_print/test_perimeters.cpp | 257 ++ tests/fff_print/test_print.cpp | 16 + tests/fff_print/test_skirt_brim.cpp | 168 ++ tests/fff_print/test_wipe_tower.cpp | 184 ++ tests/libslic3r/CMakeLists.txt | 2 + tests/libslic3r/test_3mf.cpp | 97 +- tests/libslic3r/test_config.cpp | 57 +- .../test_config_variant_expansion.cpp | 121 +- tests/libslic3r/test_fill_plane_path.cpp | 164 ++ tests/libslic3r/test_model.cpp | 40 + .../libslic3r/test_preset_bundle_loading.cpp | 116 +- .../test_toolordering_nozzle_group.cpp | 55 +- tests/slic3rutils/plugin_test_utils.hpp | 20 +- tests/slic3rutils/test_network_versions.cpp | 19 +- .../test_plugin_cloud_metadata.cpp | 40 + tests/slic3rutils/test_plugin_lifecycle.cpp | 28 +- .../test_slicing_pipeline_bindings.cpp | 8 +- tests/test_utils.hpp | 82 +- 750 files changed, 33478 insertions(+), 6833 deletions(-) create mode 100644 resources/profiles/Qidi/Qidi X-Plus 5_cover.png create mode 100644 resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json create mode 100644 resources/profiles/Qidi/filament/X5/fdm_filament_x5_common.json create mode 100644 resources/profiles/Qidi/machine/Qidi X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/machine/Qidi X-Plus 5 0.4 nozzle.json create mode 100644 resources/profiles/Qidi/machine/Qidi X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/machine/Qidi X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/machine/Qidi X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.10mm Standard @X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.12mm Balanced Quality @X-Plus 5 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.12mm High Quality @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.16mm High Quality @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.16mm Standard @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.18mm Balanced Quality @X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.20mm High Quality @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.20mm Standard @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.24mm Standard @X-Plus 5.json create mode 100644 resources/profiles/Qidi/process/0.30mm Standard @X-Plus 5 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.32mm Balanced Quality @X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/process/0.40mm Standard @X-Plus 5 0.8 nozzle.json create mode 100644 resources/profiles/Qidi/qidi_xplus5_buildplate_model.stl create mode 100644 resources/profiles/Qidi/qidi_xplus5_buildplate_texture.svg create mode 100644 resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.2 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json create mode 100644 resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json delete mode 100644 resources/profiles/Snapmaker/process/0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle).json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.06_nozzle_0.2.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.08_nozzle_0.2.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.10_nozzle_0.2.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.12_nozzle_0.2.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.14_nozzle_0.2.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.18_nozzle_0.6.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.6.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.8.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.30_nozzle_0.6.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.32_nozzle_0.8.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.36_nozzle_0.6.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.40_nozzle_0.8.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.42_nozzle_0.6.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.48_nozzle_0.8.json create mode 100644 resources/profiles/Snapmaker/process/fdm_process_U1_0.56_nozzle_0.8.json create mode 100644 resources/profiles/re3D/filament/fdm_filament_pp.json rename resources/profiles/re3D/filament/{re3D Greengate rPETG @0.8 nozzle.json => re3D rPETG @0.8 nozzle.json} (89%) rename resources/profiles/re3D/filament/{re3D Greengate rPETG @1.75 nozzle.json => re3D rPETG @1.75 nozzle.json} (89%) rename resources/profiles/re3D/filament/{re3D Greengate rPETG.json => re3D rPETG.json} (78%) create mode 100644 tests/data/wipe_tower_temperature_trace_main.txt create mode 100644 tests/fff_print/test_perimeters.cpp create mode 100644 tests/fff_print/test_wipe_tower.cpp create mode 100644 tests/libslic3r/test_fill_plane_path.cpp create mode 100644 tests/libslic3r/test_model.cpp diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1b3ba3f407..63f74a069e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -32,9 +32,17 @@ body: attributes: label: OrcaSlicer Version description: Which version of Orca Slicer are you running? You can see the full version in `Help` -> `About Orca Slicer`. - placeholder: e.g. 1.9.0 + placeholder: e.g. 2.5.0 validations: required: true + - type: input + id: working_version + attributes: + label: Regression compared to a previous version + description: Did it work in a previous version? + placeholder: e.g. 2.3.2 + validations: + required: false - type: dropdown id: os_type attributes: diff --git a/CMakeLists.txt b/CMakeLists.txt index c9417fc906..fc688b35df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,8 +80,12 @@ endif() if (DEFINED BBL_RELEASE_TO_PUBLIC) add_compile_definitions("BBL_RELEASE_TO_PUBLIC=${BBL_RELEASE_TO_PUBLIC}") + if (BBL_RELEASE_TO_PUBLIC) + add_compile_definitions(WXINSPECTOR_DISABLE) + endif () else () add_compile_definitions("BBL_RELEASE_TO_PUBLIC=$") + add_compile_definitions("$<$:WXINSPECTOR_DISABLE>") endif () find_package(Git) diff --git a/README.md b/README.md index 2242d6ae33..e9a28ba4f3 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,10 @@ Download the **Windows Installer exe** for your preferred version from the [rele - This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142` +### Microsoft Store + +Install from the [Microsoft Store](https://apps.microsoft.com/detail/9mv6gl23xm59) when you prefer a Store-signed package (helps on Windows 11 Smart App Control). + ### Windows Package Manager ```shell diff --git a/deps/OpenSSL/OpenSSL.cmake b/deps/OpenSSL/OpenSSL.cmake index 21a49b91b8..e43997265b 100644 --- a/deps/OpenSSL/OpenSSL.cmake +++ b/deps/OpenSSL/OpenSSL.cmake @@ -52,6 +52,14 @@ ExternalProject_Add(dep_OpenSSL CONFIGURE_COMMAND ${_conf_cmd} ${_cross_arch} "--openssldir=${DESTDIR}" "--prefix=${DESTDIR}" + # OpenSSL's linux-x86_64 target sets multilib=64, so it installs to + # /lib64 while every other dep uses /lib. CPython's + # --with-openssl only ever emits -L

/lib, so it misses the bundled + # static libs and silently links the system OpenSSL instead -- which, + # against 1.1.1w headers, leaves _ssl.so with an undefined + # SSL_get_peer_certificate (removed in OpenSSL 3.x). Pin libdir so the + # prefix stays single-layout. + "--libdir=lib" ${_cross_comp_prefix_line} no-shared no-asm diff --git a/deps_src/imgui/imgui_draw.cpp b/deps_src/imgui/imgui_draw.cpp index 913a551fa0..d88bc79904 100644 --- a/deps_src/imgui/imgui_draw.cpp +++ b/deps_src/imgui/imgui_draw.cpp @@ -2856,6 +2856,7 @@ const ImWchar* ImFontAtlas::GetGlyphRangesDefault() { 0x0020, 0x00FF, // Basic Latin + Latin Supplement 0x2000, 0x206F, // General Punctuation + 0x2103, 0x2103, // ℃ Celsius symbol 0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana 0x31F0, 0x31FF, // Katakana Phonetic Extensions 0xFF00, 0xFFEF, // Half-width characters diff --git a/deps_src/imgui/imstb_textedit.h b/deps_src/imgui/imstb_textedit.h index 7644670975..3733bb2fa9 100644 --- a/deps_src/imgui/imstb_textedit.h +++ b/deps_src/imgui/imstb_textedit.h @@ -465,6 +465,57 @@ static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *stat STB_TEXTEDIT_LAYOUTROW(&r, str, 0); y = r.ymin; } + else + { + // In multi-line mode, clamp y to stay within the text vertical bounds. + // This lets the click still land at a valid location if the mouse is slightly + // above or below the text. + StbTexteditRow r; + int n = STB_TEXTEDIT_STRINGLEN(str); + int i = 0; + float base_y = 0, y_min, y_max; + + // Get the first row to establish y_min and start the iteration + STB_TEXTEDIT_LAYOUTROW(&r, str, 0); + if (r.num_chars <= 0) + { + state->cursor = 0; + state->select_start = state->cursor; + state->select_end = state->cursor; + state->has_preferred_x = 0; + return; + } + y_min = r.ymin; + y_max = base_y + r.ymax; + i = r.num_chars; + base_y += r.baseline_y_delta; + + // Walk the remaining rows to find the bottom of the last row + while (i < n) + { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (r.num_chars <= 0) + break; + y_max = base_y + r.ymax; + i += r.num_chars; + base_y += r.baseline_y_delta; + } + + // If the text ends with a newline, account for the empty trailing line + // so the cursor can be placed on it + if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE) + { + STB_TEXTEDIT_LAYOUTROW(&r, str, n); + y_max = base_y + r.ymax; + } + + // Subtract half the last line height to avoid rounding issues when the mouse + // is just barely below the last line (keep cursor on the last line, not after the text) + y_max -= (r.ymax - r.ymin) * 0.5f; + + if (y < y_min) y = y_min; + if (y > y_max) y = y_max; + } state->cursor = stb_text_locate_coord(str, x, y); state->select_start = state->cursor; @@ -485,6 +536,50 @@ static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state STB_TEXTEDIT_LAYOUTROW(&r, str, 0); y = r.ymin; } + else + { + // In multi-line mode, clamp y to stay within the text vertical bounds. + // This lets the drag keep working if the mouse goes off the top or bottom of the text. + StbTexteditRow r; + int n = STB_TEXTEDIT_STRINGLEN(str); + int i = 0; + float base_y = 0, y_min, y_max; + + // Get the first row to establish y_min and start the iteration + STB_TEXTEDIT_LAYOUTROW(&r, str, 0); + if (r.num_chars <= 0) + return; + y_min = r.ymin; + y_max = base_y + r.ymax; + i = r.num_chars; + base_y += r.baseline_y_delta; + + // Walk the remaining rows to find the bottom of the last row + while (i < n) + { + STB_TEXTEDIT_LAYOUTROW(&r, str, i); + if (r.num_chars <= 0) + break; + y_max = base_y + r.ymax; + i += r.num_chars; + base_y += r.baseline_y_delta; + } + + // If the text ends with a newline, account for the empty trailing line + // so the cursor can be placed on it + if (n > 0 && STB_TEXTEDIT_GETCHAR(str, n - 1) == STB_TEXTEDIT_NEWLINE) + { + STB_TEXTEDIT_LAYOUTROW(&r, str, n); + y_max = base_y + r.ymax; + } + + // Subtract half the last line height to avoid rounding issues when the mouse + // is just barely below the last line (keep cursor on the last line, not after the text) + y_max -= (r.ymax - r.ymin) * 0.5f; + + if (y < y_min) y = y_min; + if (y > y_max) y = y_max; + } if (state->select_start == state->select_end) state->select_start = state->cursor; diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 208dd08218..88e49a85fc 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3608,6 +3608,9 @@ msgstr "" msgid "Arranging" msgstr "" +msgid "Arranging " +msgstr "" + msgid "Arranging canceled." msgstr "" @@ -7778,19 +7781,19 @@ msgid "Replaced with 3D files from directory:\n" msgstr "" #, possible-boost-format -msgid "✖ Skipped %1%: same file.\n" +msgid "✖ Skipped %s: same file.\n" msgstr "" #, possible-boost-format -msgid "✖ Skipped %1%: file does not exist.\n" +msgid "✖ Skipped %s: file does not exist.\n" msgstr "" #, possible-boost-format -msgid "✖ Skipped %1%: failed to replace.\n" +msgid "✖ Skipped %s: failed to replace.\n" msgstr "" #, possible-boost-format -msgid "✔ Replaced %1%.\n" +msgid "✔ Replaced %s.\n" msgstr "" msgid "Replaced volumes" @@ -8661,6 +8664,17 @@ msgstr "" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "" +msgid "Dimmed layer brightness" +msgstr "" + +msgid "%" +msgstr "" + +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" + msgid "Login region" msgstr "" @@ -12357,12 +12371,26 @@ msgstr "" msgid "Intra-layer order" msgstr "" -msgid "Print order within a single layer." +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." msgstr "" msgid "As object list" msgstr "" +msgid "Best of all (shortest path)" +msgstr "" + +msgid "Snake" +msgstr "" + msgid "Slow printing down for better layer cooling" msgstr "" @@ -17218,6 +17246,15 @@ msgid "" "Please select one that should be used." msgstr "" +msgid "Auto-scale for nozzle" +msgstr "" + +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" + msgid "PA Calibration" msgstr "" @@ -17340,6 +17377,12 @@ msgstr "" msgid "End speed: " msgstr "" +msgid "Auto-adjust to max volumetric speed" +msgstr "" + +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "" + msgid "" "Please input valid values:\n" "start > 10\n" @@ -17347,6 +17390,39 @@ msgid "" "end > start + step" msgstr "" +#, possible-c-format, possible-boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" + +msgid "Continue anyway?" +msgstr "" + +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "" + +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "" + msgid "Start retraction length: " msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index 92e367eaf5..79a9d82df4 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -3931,6 +3931,10 @@ msgstr "Organitzant..." msgid "Arranging" msgstr "Organitzant" +# AI Translated +msgid "Arranging " +msgstr "Organitzant " + msgid "Arranging canceled." msgstr "S'ha cancel·lat l'ordenació." @@ -8357,21 +8361,21 @@ msgstr "No s'ha seleccionat el directori per a la substitució" msgid "Replaced with 3D files from directory:\n" msgstr "Substituït amb fitxers 3D del directori:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Omès %1%: mateix fitxer.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Omès %s: mateix fitxer.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Omès %1%: el fitxer no existeix.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Omès %s: el fitxer no existeix.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Omès %1%: la substitució ha fallat.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Omès %s: la substitució ha fallat.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Substituït %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Substituït %s.\n" msgid "Replaced volumes" msgstr "Volums substituïts" @@ -9350,6 +9354,21 @@ msgstr "Enfosquir les capes inferiors" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "En desplaçar el control lliscant de capes a la previsualització laminada, mostra enfosquides les capes per sota de l'actual, de manera que només la capa que s'està visualitzant es vegi amb la lluminositat completa." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Brillantor de les capes enfosquides" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Amb quina brillantor es mostren les capes enfosquides quan \"Enfosquir les capes inferiors\" està activat.\n" +"99% amb prou feines s'enfosqueix, 0% les mostra negres. Limitat al 99% perquè el 100% seria el mateix que desactivar l'opció." + msgid "Login region" msgstr "Regió d'inici de sessió" @@ -13494,12 +13513,37 @@ msgstr "Objecte" msgid "Intra-layer order" msgstr "Ordre intracapa" -msgid "Print order within a single layer." -msgstr "Ordre d'impressió dins d'una sola capa" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Ordre en què es visiten les instàncies dels objectes dins d'una mateixa capa, que determina quant recorregut es dedica a moure's entre elles.\n" +"\n" +"Per defecte: encadenament pel veí més proper, refinat amb 2-opt i eliminació de creuaments. Una bona opció general.\n" +"Com a llista d'objectes: les instàncies s'imprimeixen en el mateix ordre que la llista d'objectes, sense cap optimització del recorregut. Feu-lo servir quan necessiteu un ordre previsible i controlat manualment.\n" +"La millor de totes (camí més curt): s'avaluen totes les estratègies i s'utilitza la més curta. L'ordre de les instàncies dels objectes es decideix una sola vegada per a tota la impressió, mentre que l'ordre de les illes individuals es decideix per capa, de manera que capes diferents poden acabar utilitzant estratègies diferents. El laminat és una mica més lent.\n" +"Serpentí: recorregut en serpentina, fila per fila, refinat amb 2-opt. Adequat per a graelles regulars de moltes peces petites.\n" +"\n" +"Amb diversos filaments o eines a la mateixa capa, minimitzar els canvis d'eina té prioritat: els objectes s'agrupen primer per filament i aquest paràmetre només ordena les instàncies dins de cada grup de filament, de manera que la seqüència global pot no semblar el camí més curt per la safata." msgid "As object list" msgstr "Com a llista d'objectes" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "La millor de totes (camí més curt)" + +# AI Translated +msgid "Snake" +msgstr "Serpentí" + msgid "Slow printing down for better layer cooling" msgstr "Reduir la velocitat d'impressió per millorar la refrigeració de les capes" @@ -18927,6 +18971,20 @@ msgstr "" "Hi ha diverses adreces IP que responen al nom d'amfitrió( host ) %1%.\n" "Seleccioneu-ne la que s'hagi d'utilitzar." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Escala automàtica segons el broquet" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Aquest model està dissenyat per a un broquet de 0,4 mm amb una alçada de capa de 0,2 mm. \n" +"Quan l'opció d'escalat està activada (recomanat), es redimensiona dinàmicament per adaptar-se al diàmetre del broquet actual i a una alçada de capa adequada, cosa que fa que la prova sigui precisa i fàcil de llegir.\n" +"Desactiveu l'escalat només si voleu imprimir el model de referència exactament tal com és." + msgid "PA Calibration" msgstr "Calibratge PA( Pressure Advance )" @@ -19063,6 +19121,14 @@ msgstr "Velocitat d'inici: " msgid "End speed: " msgstr "Velocitat final: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Ajust automàtic a la velocitat volumètrica màxima" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Si la velocitat final superés la velocitat volumètrica màxima del filament, redueix automàticament l'alçada de capa (mantenint valors estàndard i respectant els límits de la màquina) per assolir-la. Si ni tan sols l'alçada de capa mínima és suficient, redueix la velocitat final." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19074,6 +19140,57 @@ msgstr "" "pas >= 0\n" "final >inici + pas )" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"La velocitat final (%.0f mm/s) supera la velocitat volumètrica màxima del filament (%.1f mm³/s), cosa que limita el perímetre exterior a uns %.0f mm/s amb aquesta amplada de línia i alçada de capa.\n" +" Les velocitats superiors es retallaran, de manera que els blocs superiors de la torre no s'imprimiran a la velocitat sol·licitada.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"La velocitat final (%.0f mm/s) supera la velocitat volumètrica màxima del filament (%.1f mm³/s) amb l'alçada de capa per defecte (%.2f mm).\n" +"\n" +"L'alçada de capa s'ha reduït a %.2f mm (un valor utilitzat pels perfils d'aquesta impressora) perquè la torre pugui assolir la velocitat sol·licitada." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Fins i tot amb l'alçada de capa més petita utilitzada pels perfils d'aquesta impressora (%.2f mm), la velocitat final (%.0f mm/s) supera la velocitat volumètrica màxima del filament (%.1f mm³/s).\n" +"\n" +"L'alçada de capa s'establirà a %.2f mm i la velocitat final es reduirà a %.0f mm/s.\n" +"\n" +"Voleu continuar?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Voleu continuar igualment?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Voleu activar \"Ajust automàtic\" per corregir-ho automàticament o continuar igualment?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Voleu activar \"Escala automàtica segons el broquet\" i \"Ajust automàtic\" per corregir-ho automàticament o continuar igualment?" + msgid "Start retraction length: " msgstr "Longitud de la retracció d'inici: " @@ -21770,6 +21887,9 @@ msgstr "" "Evitar la deformació( warping )\n" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" +#~ msgid "Print order within a single layer." +#~ msgstr "Ordre d'impressió dins d'una sola capa" + #~ msgid "Bottom" #~ msgstr "Inferior" @@ -21856,9 +21976,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "Continua sincronitzant filaments" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 6f991f6996..e21fd3086c 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -3888,6 +3888,10 @@ msgstr "Uspořádání..." msgid "Arranging" msgstr "Uspořádání" +# AI Translated +msgid "Arranging " +msgstr "Rozkládání " + msgid "Arranging canceled." msgstr "Uspořádání zrušeno." @@ -8316,21 +8320,21 @@ msgstr "Nebyla vybrána složka pro nahrazení" msgid "Replaced with 3D files from directory:\n" msgstr "Nahrazeno 3D soubory ze složky:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Přeskočeno %1%: stejný soubor.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Přeskočeno %s: stejný soubor.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Přeskočeno %1%: soubor neexistuje.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Přeskočeno %s: soubor neexistuje.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Přeskočeno %1%: nahrazení se nezdařilo.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Přeskočeno %s: nahrazení se nezdařilo.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Nahrazeno %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Nahrazeno %s.\n" msgid "Replaced volumes" msgstr "Nahrazené objemy" @@ -9305,6 +9309,21 @@ msgstr "Ztmavit nižší vrstvy" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Při posouvání posuvníku vrstev v náhledu po slicování vykresluje vrstvy pod aktuální ztmavené, takže v plném jasu je zobrazena pouze prohlížená vrstva." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Jas ztmavených vrstev" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Jak jasně se vykreslují ztmavené vrstvy, když je zapnuta volba „Ztmavit nižší vrstvy“.\n" +"99 % znamená sotva znatelné ztmavení, 0 % je vykreslí černě. Maximum je 99 %, protože 100 % by odpovídalo vypnutí této volby." + msgid "Login region" msgstr "Oblast přihlášení" @@ -13475,12 +13494,37 @@ msgstr "Podle objektu" msgid "Intra-layer order" msgstr "Pořadí v rámci vrstvy" -msgid "Print order within a single layer." -msgstr "Pořadí tisku v rámci jedné vrstvy." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Pořadí, v jakém se v rámci jedné vrstvy navštěvují instance objektů; určuje, kolik přejezdů se stráví přesuny mezi nimi.\n" +"\n" +"Výchozí: řetězení metodou nejbližšího souseda, doladěné algoritmem 2-opt a odstraněním křížení. Dobrá volba pro obecné použití.\n" +"Jako seznam objektů: instance se tisknou ve stejném pořadí jako v seznamu objektů, bez jakékoli optimalizace dráhy. Použijte, když potřebujete předvídatelné, ručně řízené pořadí.\n" +"Nejlepší ze všech (nejkratší dráha): vyhodnotí se všechny strategie a použije se ta nejkratší. Pořadí instancí objektů se určí jednou pro celý tisk, zatímco pořadí jednotlivých ostrůvků se určuje pro každou vrstvu zvlášť, takže různé vrstvy mohou nakonec používat různé strategie. Slicování je mírně pomalejší.\n" +"Hadovitě: klikaté procházení řádek po řádku, doladěné algoritmem 2-opt. Vhodné pro pravidelné mřížky mnoha malých dílů.\n" +"\n" +"Pokud je v téže vrstvě více filamentů nebo nástrojů, má přednost minimalizace výměn nástroje: objekty se nejprve seskupí podle filamentu a toto nastavení pak řadí pouze instance uvnitř každé skupiny, takže celková posloupnost nemusí vypadat jako nejkratší dráha po desce." msgid "As object list" msgstr "Jako seznam objektů" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Nejlepší ze všech (nejkratší dráha)" + +# AI Translated +msgid "Snake" +msgstr "Hadovitě" + msgid "Slow printing down for better layer cooling" msgstr "Zpomalit tisk pro lepší chlazení vrstvy" @@ -18850,6 +18894,20 @@ msgstr "" "Ke jménu hostitele %1% je přiřazeno několik IP adres.\n" "Vyberte prosím jednu, která má být použita." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatické měřítko podle trysky" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Tento model je navržen pro trysku 0,4 mm a výšku vrstvy 0,2 mm. \n" +"Je-li volba změny měřítka zapnuta (doporučeno), model se dynamicky přizpůsobí průměru vaší současné trysky a odpovídající výšce vrstvy, takže je test přesný a dobře čitelný.\n" +"Měřítko vypněte pouze tehdy, chcete-li vytisknout referenční model přesně tak, jak je." + msgid "PA Calibration" msgstr "PA kalibrace" @@ -18988,6 +19046,14 @@ msgstr "Počáteční rychlost: " msgid "End speed: " msgstr "Konec rychlosti: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automaticky přizpůsobit maximální objemové rychlosti" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Pokud by koncová rychlost překročila maximální objemovou rychlost filamentu, automaticky snížit výšku vrstvy (se zachováním standardních hodnot a v rámci limitů stroje), aby jí bylo možné dosáhnout. Pokud nestačí ani minimální výška vrstvy, sníží se místo toho koncová rychlost." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18999,6 +19065,57 @@ msgstr "" "krok >= 0\n" "konec > start + krok" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Koncová rychlost (%.0f mm/s) překračuje maximální objemovou rychlost filamentu (%.1f mm³/s), která při této šířce čáry a výšce vrstvy omezuje vnější stěnu na přibližně %.0f mm/s.\n" +" Vyšší rychlosti budou oříznuty, takže horní bloky věže se nevytisknou požadovanou rychlostí.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Koncová rychlost (%.0f mm/s) překračuje maximální objemovou rychlost filamentu (%.1f mm³/s) při výchozí výšce vrstvy (%.2f mm).\n" +"\n" +"Výška vrstvy byla snížena na %.2f mm (hodnota používaná profily této tiskárny), aby věž mohla dosáhnout požadované rychlosti." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"I při nejmenší výšce vrstvy používané profily této tiskárny (%.2f mm) koncová rychlost (%.0f mm/s) překračuje maximální objemovou rychlost filamentu (%.1f mm³/s).\n" +"\n" +"Výška vrstvy bude nastavena na %.2f mm a koncová rychlost snížena na %.0f mm/s.\n" +"\n" +"Pokračovat?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Přesto pokračovat?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Zapnout „Automaticky přizpůsobit“ pro automatickou nápravu, nebo přesto pokračovat?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Zapnout „Automatické měřítko podle trysky“ a „Automaticky přizpůsobit“ pro automatickou nápravu, nebo přesto pokračovat?" + msgid "Start retraction length: " msgstr "Počáteční délka retrakce: " @@ -21756,6 +21873,9 @@ msgstr "" "Zamezte kroucení\n" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" +#~ msgid "Print order within a single layer." +#~ msgstr "Pořadí tisku v rámci jedné vrstvy." + #~ msgid "Bottom" #~ msgstr "Dole" @@ -21824,9 +21944,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Align infill direction to model" #~ msgstr "Zarovnat směr výplně podle modelu" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index bf304e2e54..50384598e3 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher \n" "Language-Team: \n" @@ -3804,6 +3804,10 @@ msgstr "Anordnen..." msgid "Arranging" msgstr "Anordnen" +# AI Translated +msgid "Arranging " +msgstr "Anordnen " + msgid "Arranging canceled." msgstr "Anordnen abgebrochen." @@ -8187,21 +8191,21 @@ msgstr "Verzeichnis um daraus zu ersetzen wurde nicht ausgewählt" msgid "Replaced with 3D files from directory:\n" msgstr "Ersetzt durch 3D-Dateien aus Verzeichnis:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Übersprungen %1%: gleiche Datei.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Übersprungen %s: gleiche Datei.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Übersprungen %1%: Datei existiert nicht.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Übersprungen %s: Datei existiert nicht.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Übersprungen %1%: Ersetzen fehlgeschlagen.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Übersprungen %s: Ersetzen fehlgeschlagen.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Ersetzt %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Ersetzt %s.\n" msgid "Replaced volumes" msgstr "Ersetzte Volumen" @@ -9152,6 +9156,21 @@ msgstr "Untere Schichten abdunkeln" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Beim Bewegen des Schichtreglers in der geslicten Vorschau werden die Schichten unterhalb der aktuellen abgedunkelt dargestellt, sodass nur die betrachtete Schicht in voller Helligkeit angezeigt wird." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Helligkeit abgedunkelter Schichten" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Wie hell die abgedunkelten Schichten dargestellt werden, wenn \"Untere Schichten abdunkeln\" aktiviert ist.\n" +"99% ist kaum abgedunkelt, 0% stellt sie schwarz dar. Auf 99% begrenzt, da 100% dem Deaktivieren der Option entsprechen würde." + msgid "Login region" msgstr "Anmeldungsregion" @@ -13180,12 +13199,37 @@ msgstr "Nach Objekt" msgid "Intra-layer order" msgstr "Intra-Schicht-Reihenfolge" -msgid "Print order within a single layer." -msgstr "Druckreihenfolge innerhalb einer einzelnen Schicht" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Reihenfolge, in der die Objektinstanzen innerhalb einer einzelnen Schicht angefahren werden. Sie bestimmt, wie viel Eilgang für die Bewegung zwischen ihnen aufgewendet wird.\n" +"\n" +"Standard: Verkettung nach dem nächsten Nachbarn, verfeinert mit 2-opt und Entfernen von Überkreuzungen. Eine gute allgemeine Wahl.\n" +"Als Objektliste: Die Instanzen werden in derselben Reihenfolge wie in der Objektliste gedruckt, ohne jede Pfadoptimierung. Verwenden Sie diese Option, wenn Sie eine vorhersehbare, manuell gesteuerte Reihenfolge benötigen.\n" +"Bestes Ergebnis (kürzester Weg): Alle Strategien werden ausgewertet und die kürzeste wird verwendet. Die Reihenfolge der Objektinstanzen wird einmal für den gesamten Druck festgelegt, während die Reihenfolge der einzelnen Inseln pro Schicht bestimmt wird, sodass verschiedene Schichten unterschiedliche Strategien verwenden können. Etwas langsameres Slicing.\n" +"Schlangenlinie: Zeilenweiser Mäanderverlauf, verfeinert mit 2-opt. Gut geeignet für regelmäßige Raster aus vielen kleinen Teilen.\n" +"\n" +"Bei mehreren Filamenten oder Werkzeugen in derselben Schicht hat das Minimieren der Werkzeugwechsel Vorrang: Objekte werden zuerst nach Filament gruppiert und diese Einstellung ordnet nur die Instanzen innerhalb jeder Filamentgruppe. Die Gesamtabfolge sieht daher möglicherweise nicht wie der kürzeste Weg über die Platte aus." msgid "As object list" msgstr "Als Objektliste" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Bestes Ergebnis (kürzester Weg)" + +# AI Translated +msgid "Snake" +msgstr "Schlangenlinie" + msgid "Slow printing down for better layer cooling" msgstr "Verlangsamen Sie den Druck für eine bessere Schichtkühlung" @@ -18487,6 +18531,20 @@ msgstr "" "Es gibt mehrere IP-Adressen, die zu Hostname %1% auflösen.\n" "Bitte wählen Sie eine aus, die verwendet werden soll." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatisch an Düse skalieren" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Dieses Modell ist für eine 0,4 mm Düse mit einer Schichthöhe von 0,2 mm ausgelegt. \n" +"Wenn die Skalierungsoption aktiviert ist (empfohlen), wird das Modell dynamisch an Ihren aktuellen Düsendurchmesser und eine passende Schichthöhe angepasst, sodass der Test sowohl genau als auch gut ablesbar ist.\n" +"Deaktivieren Sie die Skalierung nur, wenn Sie das Referenzmodell exakt so drucken möchten, wie es ist." + msgid "PA Calibration" msgstr "PA Kalibrierung" @@ -18623,6 +18681,14 @@ msgstr "Startgeschwindigkeit" msgid "End speed: " msgstr "Endgeschwindigkeit" +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automatisch an maximale Volumengeschwindigkeit anpassen" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Wenn die Endgeschwindigkeit die maximale Volumengeschwindigkeit des Filaments überschreiten würde, wird die Schichthöhe automatisch verringert (unter Beibehaltung üblicher Werte und innerhalb der Grenzen der Maschine), um sie zu erreichen. Reicht selbst die minimale Schichthöhe nicht aus, wird stattdessen die Endgeschwindigkeit gesenkt." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18634,6 +18700,57 @@ msgstr "" "Schritt >= 0\n" "Ende > Start + Schritt" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Die Endgeschwindigkeit (%.0f mm/s) überschreitet die maximale Volumengeschwindigkeit des Filaments (%.1f mm³/s), wodurch die Außenwand bei dieser Linienbreite und Schichthöhe auf etwa %.0f mm/s begrenzt wird.\n" +" Höhere Geschwindigkeiten werden begrenzt, sodass die oberen Blöcke des Turms nicht mit der gewünschten Geschwindigkeit gedruckt werden.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Die Endgeschwindigkeit (%.0f mm/s) überschreitet die maximale Volumengeschwindigkeit des Filaments (%.1f mm³/s) bei der Standard-Schichthöhe (%.2f mm).\n" +"\n" +"Die Schichthöhe wurde auf %.2f mm verringert (ein Wert, der in den Profilen dieses Druckers verwendet wird), damit der Turm die gewünschte Geschwindigkeit erreichen kann." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Selbst bei der kleinsten Schichthöhe, die in den Profilen dieses Druckers verwendet wird (%.2f mm), überschreitet die Endgeschwindigkeit (%.0f mm/s) die maximale Volumengeschwindigkeit des Filaments (%.1f mm³/s).\n" +"\n" +"Die Schichthöhe wird auf %.2f mm gesetzt und die Endgeschwindigkeit auf %.0f mm/s verringert.\n" +"\n" +"Fortfahren?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Trotzdem fortfahren?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"Automatisch anpassen\" aktivieren, um dies automatisch zu beheben, oder trotzdem fortfahren?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"Automatisch an Düse skalieren\" und \"Automatisch anpassen\" aktivieren, um dies automatisch zu beheben, oder trotzdem fortfahren?" + msgid "Start retraction length: " msgstr "Start Rückzugslänge" @@ -21169,6 +21286,9 @@ msgstr "" "Verwerfungen vermeiden\n" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" +#~ msgid "Print order within a single layer." +#~ msgstr "Druckreihenfolge innerhalb einer einzelnen Schicht" + #~ msgid "Bottom" #~ msgstr "Unten" @@ -21261,9 +21381,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "Zeigt geworfene Schatten auf der Platte in der realistischen Ansicht an." diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 95d357b79b..232820f681 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -3604,6 +3604,9 @@ msgstr "" msgid "Arranging" msgstr "" +msgid "Arranging " +msgstr "" + msgid "Arranging canceled." msgstr "" @@ -7773,20 +7776,20 @@ msgstr "" msgid "Replaced with 3D files from directory:\n" msgstr "" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" msgstr "" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" msgstr "" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" msgstr "" -#, boost-format -msgid "✔ Replaced %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" msgstr "" msgid "Replaced volumes" @@ -8657,6 +8660,17 @@ msgstr "" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "" +msgid "Dimmed layer brightness" +msgstr "" + +msgid "%" +msgstr "" + +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" + msgid "Login region" msgstr "" @@ -12353,12 +12367,26 @@ msgstr "" msgid "Intra-layer order" msgstr "" -msgid "Print order within a single layer." +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." msgstr "" msgid "As object list" msgstr "" +msgid "Best of all (shortest path)" +msgstr "" + +msgid "Snake" +msgstr "" + msgid "Slow printing down for better layer cooling" msgstr "" @@ -17214,6 +17242,15 @@ msgid "" "Please select one that should be used." msgstr "" +msgid "Auto-scale for nozzle" +msgstr "" + +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" + msgid "PA Calibration" msgstr "" @@ -17336,6 +17373,12 @@ msgstr "" msgid "End speed: " msgstr "" +msgid "Auto-adjust to max volumetric speed" +msgstr "" + +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "" + msgid "" "Please input valid values:\n" "start > 10\n" @@ -17343,6 +17386,39 @@ msgid "" "end > start + step" msgstr "" +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" + +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" + +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" + +msgid "Continue anyway?" +msgstr "" + +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "" + +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "" + msgid "Start retraction length: " msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 8bf5a56421..1913c4512a 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -3686,6 +3686,10 @@ msgstr "Organizando..." msgid "Arranging" msgstr "Organizando" +# AI Translated +msgid "Arranging " +msgstr "Organizando " + msgid "Arranging canceled." msgstr "Organización cancelada." @@ -7993,21 +7997,21 @@ msgstr "No se seleccionó el directorio para el reemplazo" msgid "Replaced with 3D files from directory:\n" msgstr "Reemplazado con archivos 3D desde el directorio:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Omitido %1%: mismo archivo.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Omitido %s: mismo archivo.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Omitido %1%: el archivo no existe.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Omitido %s: el archivo no existe.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Omitido %1%: fallo al reemplazar.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Omitido %s: fallo al reemplazar.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Reemplazado %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Reemplazado %s.\n" msgid "Replaced volumes" msgstr "Volúmenes reemplazados" @@ -8931,6 +8935,21 @@ msgstr "Atenuar las capas inferiores" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Al desplazar el control deslizante de capas en la vista previa laminada, oscurece las capas inferiores a la actual para que solo la capa visualizada se muestre a pleno brillo." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Brillo de las capas atenuadas" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Con qué brillo se muestran las capas atenuadas cuando \"Atenuar las capas inferiores\" está activado.\n" +"99% apenas se oscurece y 0% las muestra en negro. Está limitado al 99% porque el 100% equivaldría a desactivar la opción." + msgid "Login region" msgstr "Región de inicio de sesión" @@ -12881,12 +12900,37 @@ msgstr "Por objeto" msgid "Intra-layer order" msgstr "Orden dentro de la capa" -msgid "Print order within a single layer." -msgstr "Orden de impresión dentro de cada capa." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Orden en el que se recorren las instancias de objeto dentro de una misma capa, lo que determina cuánto desplazamiento se emplea para moverse entre ellas.\n" +"\n" +"Por defecto: encadenado por vecino más cercano, refinado con 2-opt y eliminación de cruces. Una buena opción general.\n" +"Como lista de objetos: las instancias se imprimen en el mismo orden que la lista de objetos, sin ninguna optimización de trayectoria. Úselo cuando necesite un orden predecible y controlado manualmente.\n" +"La mejor de todas (trayectoria más corta): se evalúan todas las estrategias y se utiliza la más corta. El orden de las instancias de objeto se decide una sola vez para toda la impresión, mientras que el orden de las islas individuales se decide capa por capa, por lo que distintas capas pueden acabar usando estrategias diferentes. El laminado es algo más lento.\n" +"Serpentina: recorrido serpenteante fila por fila, refinado con 2-opt. Muy adecuado para rejillas regulares de muchas piezas pequeñas.\n" +"\n" +"Con varios filamentos o herramientas en la misma capa, minimizar los cambios de herramienta tiene prioridad: los objetos se agrupan primero por filamento y este ajuste solo ordena las instancias dentro de cada grupo de filamento, por lo que la secuencia global puede no parecer la trayectoria más corta a lo largo de la cama." msgid "As object list" msgstr "Como lista de objetos" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "La mejor de todas (trayectoria más corta)" + +# AI Translated +msgid "Snake" +msgstr "Serpentina" + msgid "Slow printing down for better layer cooling" msgstr "Reducir la velocidad de impresión para mejorar la refrigeración de las capas" @@ -18122,6 +18166,20 @@ msgstr "" "Hay varias direcciones IP resueltas del nombre del host %1%.\n" "Por favor, seleccione la que debe usarse." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Escalar automáticamente para la boquilla" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Este modelo está diseñado para una boquilla de 0,4 mm con una altura de la capa de 0,2 mm. \n" +"Cuando la opción de escalado está activada (recomendado), el modelo se redimensiona dinámicamente para adaptarse al diámetro de boquilla actual y a una altura de capa adecuada, lo que hace que la prueba sea precisa y fácil de leer.\n" +"Desactive el escalado solo si desea imprimir el modelo de referencia exactamente tal cual." + msgid "PA Calibration" msgstr "Calibración PA" @@ -18258,6 +18316,14 @@ msgstr "Velocidad inicial: " msgid "End speed: " msgstr "Velocidad final: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Ajustar automáticamente a la velocidad volumétrica máxima" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Si la velocidad final superara la velocidad volumétrica máxima del filamento, se reduce automáticamente la altura de la capa (manteniendo valores estándar y dentro de los límites de la máquina) para alcanzarla. Si ni siquiera la altura de capa mínima es suficiente, se reduce la velocidad final." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18269,6 +18335,57 @@ msgstr "" "incremento >=0\n" "final > inicio + paso" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"La velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s), lo que limita el perímetro externo a unos %.0f mm/s con este ancho de línea y esta altura de capa.\n" +" Las velocidades superiores se recortarán, por lo que los bloques superiores de la torre no se imprimirán a la velocidad solicitada.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"La velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s) con la altura de capa predeterminada (%.2f mm).\n" +"\n" +"La altura de la capa se ha reducido a %.2f mm (un valor usado por los perfiles de esta impresora) para que la torre pueda alcanzar la velocidad solicitada." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Incluso con la altura de capa más pequeña usada por los perfiles de esta impresora (%.2f mm), la velocidad final (%.0f mm/s) supera la velocidad volumétrica máxima del filamento (%.1f mm³/s).\n" +"\n" +"La altura de la capa se establecerá en %.2f mm y la velocidad final se reducirá a %.0f mm/s.\n" +"\n" +"¿Continuar?" + +# AI Translated +msgid "Continue anyway?" +msgstr "¿Continuar de todos modos?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "¿Activar \"Ajuste automático\" para corregir esto automáticamente o continuar de todos modos?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "¿Activar \"Escalar automáticamente para la boquilla\" y \"Ajuste automático\" para corregir esto automáticamente o continuar de todos modos?" + msgid "Start retraction length: " msgstr "Longitud de retracción inicial: " @@ -20744,6 +20861,9 @@ msgstr "" "Evita la deformación\n" "¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?" +#~ msgid "Print order within a single layer." +#~ msgstr "Orden de impresión dentro de cada capa." + #~ msgid "Bottom" #~ msgstr "Inferior" @@ -20837,9 +20957,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Anisotropic surfaces" #~ msgstr "Superficies anisótropas" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index ccad5d6d47..fa10cc387f 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana \n" "Language-Team: \n" @@ -3724,6 +3724,10 @@ msgstr "Antolatzen..." msgid "Arranging" msgstr "Antolaketa" +# AI Translated +msgid "Arranging " +msgstr "Antolatzen " + msgid "Arranging canceled." msgstr "Antolaketa bertan behera utzi da." @@ -8060,21 +8064,21 @@ msgstr "Ez da ordezkatzeko direktoriorik hautatu" msgid "Replaced with 3D files from directory:\n" msgstr "Direktorio honetako 3D fitxategiekin ordeztuta:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ %1% saltatu da: fitxategi bera.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ %s saltatu da: fitxategi bera.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ %1% saltatu da: fitxategia ez da existitzen.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ %s saltatu da: fitxategia ez da existitzen.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ %1% saltatu da: ezin izan da ordeztu.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ %s saltatu da: ezin izan da ordeztu.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ %1% ordezkatu da.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ %s ordezkatu da.\n" msgid "Replaced volumes" msgstr "Ordeztutako bolumenak" @@ -8999,6 +9003,21 @@ msgstr "Ilundu beheko geruzak" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Xerratutako aurrebistan geruza-graduatzailea mugitzean, unekoaren azpiko geruzak ilunduta erakusten ditu, ikusten ari den geruza soilik distira osoz ager dadin." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Ilundutako geruzen distira" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"\"Ilundu beheko geruzak\" gaituta dagoenean ilundutako geruzak zein distiratsu marrazten diren.\n" +"%99 balioak ozta-ozta iluntzen ditu, %0 balioak beltz bihurtzen ditu. Gehienez %99 onartzen da, %100 balioak aukera desgaitzearen gauza bera egingo bailuke." + msgid "Login region" msgstr "Saio-hasierako eskualdea" @@ -11994,11 +12013,11 @@ msgstr "Purgatze-dorreak euskarriak objektuaren geruza-altuera bera izatea eskat # AI Translated msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern." -msgstr "Euskarri organikoetan, bi horma Hollow/Default oinarri-patroiarekin soilik onartzen dira." +msgstr "Euskarri organikoetan, bi horma Hutsa/Lehenetsia oinarri-patroiarekin soilik onartzen dira." # AI Translated msgid "The Lightning base pattern is not supported by this support type; Rectilinear will be used instead." -msgstr "Lightning oinarri-patroia ez du euskarri mota honek onartzen; Rectilinear erabiliko da horren ordez." +msgstr "Tximista oinarri-patroia ez du euskarri mota honek onartzen; Lerrozuzena erabiliko da horren ordez." msgid "Organic support tree tip diameter must not be smaller than support material extrusion width." msgstr "Euskarri organikoaren zuhaitz-muturraren diametroak ezin du izan euskarri-materialaren estrusio-zabalera baino txikiagoa." @@ -12011,7 +12030,7 @@ msgstr "Euskarri organikoaren adar-diametroak ezin du izan euskarri-zuhaitzaren # AI Translated msgid "The Hollow base pattern is not supported by this support type; Rectilinear will be used instead." -msgstr "Hollow oinarri-patroia ez du euskarri mota honek onartzen; Rectilinear erabiliko da horren ordez." +msgstr "Hutsa oinarri-patroia ez du euskarri mota honek onartzen; Lerrozuzena erabiliko da horren ordez." msgid "Support enforcers are used but support is not enabled. Please enable support." msgstr "Euskarri-behartzaileak erabiltzen dira, baina euskarria ez dago gaituta. Gaitu euskarriak." @@ -12992,12 +13011,37 @@ msgstr "Objektuka" msgid "Intra-layer order" msgstr "Geruza barruko ordena" -msgid "Print order within a single layer." -msgstr "Geruza bakarreko inprimatze-ordena." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Geruza bakar baten barruan objektu-instantziak zein ordenatan bisitatzen diren; horrek zehazten du zenbat desplazamendu behar den haien artean mugitzeko.\n" +"\n" +"Lehenetsia: auzokide hurbilenaren araberako kateaketa, 2-opt bidez eta gurutzaketak kenduz findua. Aukera orokor ona.\n" +"Objektu-zerrenda bezala: instantziak objektu-zerrendaren ordena berean inprimatzen dira, ibilbidea batere optimizatu gabe. Erabili ordena aurreikusgarri eta eskuz kontrolatu bat behar duzunean.\n" +"Guztien onena (ibilbide laburrena): estrategia guztiak ebaluatzen dira eta laburrena erabiltzen da. Objektu-instantzien ordena behin erabakitzen da inprimaketa osorako, eta uharte bakoitzaren ordena geruzaz geruza erabakitzen da; beraz, geruza desberdinek estrategia desberdinak erabil ditzakete. Xerratzea apur bat motelagoa da.\n" +"Sigi-saga: errenkadaz errenkadako sigi-saga ibilbidea, 2-opt bidez findua. Oso egokia pieza txiki askoren sareta erregularretarako.\n" +"\n" +"Geruza berean filamentu edo tresna bat baino gehiago daudenean, tresna-aldaketak gutxitzeak du lehentasuna: objektuak filamentuaren arabera multzokatzen dira lehenik, eta ezarpen honek filamentu-multzo bakoitzaren barruko instantziak baino ez ditu ordenatzen; beraz, baliteke sekuentzia orokorrak plaka osoko ibilbide laburrenaren itxurarik ez izatea." msgid "As object list" msgstr "Objektu-zerrenda bezala" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Guztien onena (ibilbide laburrena)" + +# AI Translated +msgid "Snake" +msgstr "Sigi-saga" + msgid "Slow printing down for better layer cooling" msgstr "Moteldu inprimaketa geruza hobeto hozteko" @@ -13208,7 +13252,7 @@ msgstr "Moderatua" # AI Translated msgid "Top surface pattern" -msgstr "Goiko gainazalaren patroia" +msgstr "Goiko gainazaleko patroia" # AI Translated msgid "This is the line pattern for top surface infill." @@ -13221,13 +13265,13 @@ msgid "Monotonic line" msgstr "Lerro monotonikoa" msgid "Rectilinear" -msgstr "Rectilinear" +msgstr "Lerrozuzena" msgid "Aligned Rectilinear" msgstr "Lerrozuzen lerrokatua" msgid "Concentric" -msgstr "Concentric" +msgstr "Kontzentrikoa" msgid "Hilbert Curve" msgstr "Hilbert kurba" @@ -13293,7 +13337,7 @@ msgstr "Kanporantz" # AI Translated msgid "Bottom surface pattern" -msgstr "Beheko gainazalaren patroia" +msgstr "Beheko gainazaleko patroia" # AI Translated msgid "This is the line pattern of bottom surface infill, not including bridge infill." @@ -13318,7 +13362,7 @@ msgid "" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Gaineko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Konzentrikoa, Arkimedeen Akordeak, Oktograma Espirala).\n" +"Goiko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" "Kanporanzkoa erdialdean hasten da, beraz, gehiegizko materiala gutxien ikusten den ertzera bultzatzen da. Barruranzkoa ertzean hasten da eta erdian kurba estuekin amaitzen da.\n" "Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." @@ -13331,7 +13375,7 @@ msgid "" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Beheko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Konzentrikoa, Arkimedeen Akordeak, Oktograma Espirala).\n" +"Beheko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" "Barruranzkoa hasten da gainazal bakoitza kanpoko kurba zabalagoekin, eta horrek lehen geruzaren atxikimendua hobetzen du erdiko kurba estuak itsatsi ez daitezkeen inprimatze-plaketan. Kanporanzkoa erdialdean hasten da, gehiegizko materiala ertzera bultzatuz.\n" "Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." @@ -16387,9 +16431,9 @@ msgid "" msgstr "" "Euskarriaren lerro-patroia.\n" "\n" -"Zuhaitz-euskarrien aukera lehenetsia Hutsa da, hau da, ez dago oinarri-patroirik. Beste euskarri motetarako, aukera lehenetsia patroi zuzenekoa da.\n" +"Zuhaitz-euskarrien aukera lehenetsia Hutsa da, hau da, ez dago oinarri-patroirik. Beste euskarri motetarako, aukera lehenetsia patroi lerrozuzena da.\n" "\n" -"OHARRA: Euskarri organikoetan, bi hormak Hutsa/Lehenetsia oinarri-patroiarekin bakarrik onartzen dira. Tximistetan oinarritutako patroia Zuhaitz mehea/Indartsua/Hibridoa euskarriek bakarrik onartzen dute. Beste euskarri motetarako, Zuzenekoa erabiliko da Tximistenaren ordez." +"OHARRA: Euskarri organikoetan, bi hormak Hutsa/Lehenetsia oinarri-patroiarekin bakarrik onartzen dira. Tximista oinarri-patroia Zuhaitz mehea/Indartsua/Hibridoa euskarriek bakarrik onartzen dute. Beste euskarri motetarako, Lerrozuzena erabiliko da Tximistaren ordez." msgid "Rectilinear grid" msgstr "Sare lerrozuzena" @@ -16669,7 +16713,7 @@ msgid "" " - Each Model: centers the pattern on each connected body. Parts that touch or overlap share one center; parts detached from the rest each get their own.\n" " - Each Assembly: uses a single shared center for the whole object or assembly." msgstr "" -"Goiko eta beheko gainazaleko patroi zentratuen (Arkimedesen kordak, Oktagrama-espirala) zentroa non kokatzen den aukeratzen du.\n" +"Goiko eta beheko gainazaleko patroi zentratuen (Arkimedesen kordak, Oktagrama-kiribila) zentroa non kokatzen den aukeratzen du.\n" " - Gainazal bakoitza: patroia gainazal-eskualde bakoitzean zentratzen du, uharte bakoitza bere kabuz simetrikoa izan dadin.\n" " - Modelo bakoitza: patroia konektatutako gorputz bakoitzean zentratzen du. Elkar ukitzen edo gainjartzen diren piezek zentro bera partekatzen dute; gainerakoetatik bereizitako piezek beren zentroa dute.\n" " - Muntaketa bakoitza: zentro partekatu bakarra erabiltzen du objektu edo muntaketa osorako." @@ -17100,7 +17144,7 @@ msgid "Detect narrow internal solid infills" msgstr "Detektatu barruko betegarri solido estua" msgid "This option will auto-detect narrow internal solid infill areas. If enabled, the concentric pattern will be used for the area to speed up printing. Otherwise, the rectilinear pattern will be used by default." -msgstr "Aukera honek barruko betegarri solido estuko eremuak automatikoki detektatuko ditu. Gaituta badago, eremu horretan patroi zentrokidea erabiliko da inprimaketa azkartzeko. Bestela, patroi lerrozuzena erabiliko da lehenespenez." +msgstr "Aukera honek barruko betegarri solido estuko eremuak automatikoki detektatuko ditu. Gaituta badago, eremu horretan patroi kontzentrikoa erabiliko da inprimaketa azkartzeko. Bestela, patroi lerrozuzena erabiliko da lehenespenez." msgid "invalid value " msgstr "balio baliogabea " @@ -18269,6 +18313,20 @@ msgstr "" "Hainbat IP helbide ebazten dira %1% ostalari-izenerako.\n" "Hautatu erabili beharrekoa." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Eskalatze automatikoa pitarako" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Modelo hau 0,4 mm-ko pita eta 0,2 mm-ko geruza-altuera kontuan hartuta diseinatu da. \n" +"Eskalatze-aukera gaituta dagoenean (gomendatua), tamaina dinamikoki egokitzen zaie zure uneko pita-diametroari eta geruza-altuera egoki bati, testa zehatza eta irakurterraza izan dadin.\n" +"Itzali eskalatzea erreferentzia-modeloa dagoen-dagoenean inprimatu nahi baduzu bakarrik." + msgid "PA Calibration" msgstr "PA kalibrazioa" @@ -18406,6 +18464,14 @@ msgstr "Hasierako abiadura: " msgid "End speed: " msgstr "Amaierako abiadura: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Doikuntza automatikoa abiadura bolumetriko maximora" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Amaierako abiadurak filamentuaren abiadura bolumetriko maximoa gaindituko balu, geruza-altuera automatikoki jaisten da (balio estandarrak mantenduz eta makinaren mugen barruan) hura lortzeko. Gutxieneko geruza-altuerarekin ere nahikoa ez bada, amaierako abiadura jaisten da haren ordez." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18417,6 +18483,57 @@ msgstr "" "urratsa >= 0\n" "amaiera > hasiera + urratsa" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Amaierako abiadurak (%.0f mm/s) filamentuaren abiadura bolumetriko maximoa (%.1f mm³/s) gainditzen du, eta horrek kanpoko horma gutxi gorabehera %.0f mm/s-ra mugatzen du lerro-zabalera eta geruza-altuera honekin.\n" +" Horren gaineko abiadurak mugatu egingo dira, beraz dorrearen goiko blokeak ez dira eskatutako abiaduran inprimatuko.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Amaierako abiadurak (%.0f mm/s) filamentuaren abiadura bolumetriko maximoa (%.1f mm³/s) gainditzen du geruza-altuera lehenetsian (%.2f mm).\n" +"\n" +"Geruza-altuera %.2f mm-ra jaitsi da (inprimagailu honen aurrezarpenek erabiltzen duten balio bat), dorreak eskatutako abiadura lor dezan." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Inprimagailu honen aurrezarpenek erabiltzen duten geruza-altuera txikienarekin ere (%.2f mm), amaierako abiadurak (%.0f mm/s) filamentuaren abiadura bolumetriko maximoa (%.1f mm³/s) gainditzen du.\n" +"\n" +"Geruza-altuera %.2f mm-ra ezarriko da eta amaierako abiadura %.0f mm/s-ra jaitsiko da.\n" +"\n" +"Jarraitu?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Hala ere jarraitu?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Gaitu \"Doikuntza automatikoa\" hau automatikoki konpontzeko, edo hala ere jarraitu?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Gaitu \"Eskalatze automatikoa pitarako\" eta \"Doikuntza automatikoa\" hau automatikoki konpontzeko, edo hala ere jarraitu?" + msgid "Start retraction length: " msgstr "Hasierako atzera-egite luzera: " @@ -18586,7 +18703,7 @@ msgstr "YOLO (perfekzionista)" # AI Translated msgid "Top Surface Pattern" -msgstr "Goiko gainazalaren patroia" +msgstr "Goiko gainazaleko patroia" msgid "Choose a slot for the selected color" msgstr "Aukeratu zirrikitu bat hautatutako kolorearentzat" @@ -20899,6 +21016,9 @@ msgstr "" "Saihestu okertzea\n" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" +#~ msgid "Print order within a single layer." +#~ msgstr "Geruza bakarreko inprimatze-ordena." + #~ msgid "Bottom" #~ msgstr "Behekoa" @@ -21028,9 +21148,6 @@ msgstr "" #~ msgid "°" #~ msgstr "°" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "uniform scale" #~ msgstr "eskala uniformea" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 6357703b45..1257994f16 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -3760,6 +3760,10 @@ msgstr "Agencement…" msgid "Arranging" msgstr "Agencement" +# AI Translated +msgid "Arranging " +msgstr "Agencement " + msgid "Arranging canceled." msgstr "Agencement annulé." @@ -8116,21 +8120,21 @@ msgstr "Le répertoire pour le remplacement n'a pas été sélectionné" msgid "Replaced with 3D files from directory:\n" msgstr "Remplacé par des fichiers 3D depuis le répertoire :\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Ignoré %1% : même fichier.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Ignoré %s : même fichier.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Ignoré %1% : le fichier n'existe pas.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Ignoré %s : le fichier n'existe pas.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Ignoré %1% : échec du remplacement.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Ignoré %s : échec du remplacement.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Remplacé %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Remplacé %s.\n" msgid "Replaced volumes" msgstr "Volumes remplacés" @@ -9068,6 +9072,21 @@ msgstr "Assombrir les couches inférieures" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Lors du défilement du curseur de couche dans l'aperçu découpé, affiche les couches situées sous la couche actuelle assombries, de sorte que seule la couche visualisée soit affichée en pleine luminosité." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Luminosité des couches assombries" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Luminosité de rendu des couches assombries lorsque « Assombrir les couches inférieures » est activé.\n" +"99% correspond à un assombrissement à peine perceptible, 0% les affiche en noir. Limité à 99% car 100% reviendrait à désactiver l’option." + msgid "Login region" msgstr "Région d'origine" @@ -9264,22 +9283,22 @@ msgid "DEV host: api-dev.bambu-lab.com/v1" msgstr "Hôte DEV : api-dev.bambu-lab.com/v1" msgid "QA host: api-qa.bambu-lab.com/v1" -msgstr "Hôte AQ : api-qa.bambu-lab.com/v1" +msgstr "Hôte QA : api-qa.bambu-lab.com/v1" msgid "PRE host: api-pre.bambu-lab.com/v1" -msgstr "Hébergeur PRE : api-pre.bambu-lab.com/v1" +msgstr "Hôte PRE : api-pre.bambu-lab.com/v1" msgid "Product host" msgstr "Hôte du produit" msgid "Debug save button" -msgstr "bouton d'enregistrement de débogage" +msgstr "Bouton d'enregistrement de debugage" msgid "Save debug settings" -msgstr "enregistrer les paramètres de débogage" +msgstr "Enregistrer les paramètres de debugage" msgid "Debug settings have been saved successfully!" -msgstr "Les paramètres DEBUG ont été enregistrés avec succès !" +msgstr "Les paramètres de debug ont été enregistrés avec succès !" msgid "Cloud environment switched; please login again!" msgstr "L'environnement Cloud a changé, veuillez vous reconnecter !" @@ -13087,12 +13106,37 @@ msgstr "Par objet" msgid "Intra-layer order" msgstr "Ordre intra-couche" -msgid "Print order within a single layer." -msgstr "Ordre d’impression au sein d’une même couche" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Ordre dans lequel les instances d’objets sont parcourues au sein d’une même couche, ce qui détermine la quantité de déplacements effectués entre elles.\n" +"\n" +"Par défaut : chaînage par plus proche voisin, affiné par 2-opt et suppression des croisements. Un bon choix général.\n" +"En tant que liste d’objets : les instances sont imprimées dans le même ordre que la liste d’objets, sans aucune optimisation de trajet. À utiliser lorsque vous avez besoin d’un ordre prévisible et contrôlé manuellement.\n" +"Meilleur de tous (trajet le plus court) : toutes les stratégies sont évaluées et la plus courte est retenue. L’ordre des instances d’objets est déterminé une seule fois pour toute l’impression, tandis que l’ordre des îlots individuels est déterminé couche par couche ; différentes couches peuvent donc utiliser des stratégies différentes. Découpage légèrement plus lent.\n" +"Serpentin : parcours en serpentin, rangée par rangée, affiné par 2-opt. Bien adapté aux grilles régulières de nombreuses petites pièces.\n" +"\n" +"Avec plusieurs filaments ou outils dans la même couche, la réduction des changements d’outil est prioritaire : les objets sont d’abord regroupés par filament et ce réglage n’ordonne que les instances au sein de chaque groupe de filament ; la séquence globale peut donc ne pas ressembler au trajet le plus court sur la plaque." msgid "As object list" msgstr "En tant que liste d’objets" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Meilleur de tous (trajet le plus court)" + +# AI Translated +msgid "Snake" +msgstr "Serpentin" + msgid "Slow printing down for better layer cooling" msgstr "Impression lente pour un meilleur refroidissement des couches" @@ -18381,6 +18425,20 @@ msgstr "" "Il existe plusieurs adresses IP résolues par le nom d’hôte %1%.\n" "Veuillez en sélectionner une qui doit être utilisée." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Mise à l’échelle automatique selon la buse" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Ce modèle est conçu pour une buse de 0,4 mm avec une hauteur de couche de 0,2 mm. \n" +"Lorsque l’option de mise à l’échelle est activée (recommandé), il est redimensionné dynamiquement pour correspondre au diamètre de buse actuel et à une hauteur de couche appropriée, ce qui rend le test à la fois précis et facile à lire.\n" +"Ne désactivez la mise à l’échelle que si vous souhaitez imprimer le modèle de référence exactement tel quel." + msgid "PA Calibration" msgstr "Calibration Pressure Advance" @@ -18517,6 +18575,14 @@ msgstr "Vitesse de début: " msgid "End speed: " msgstr "Vitesse de fin: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Ajustement automatique à la vitesse volumétrique maximale" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Si la vitesse finale devait dépasser la vitesse volumétrique maximale du filament, la hauteur de couche est automatiquement réduite (en conservant des valeurs standard et en restant dans les limites de la machine) pour l’atteindre. Si même la hauteur de couche minimale ne suffit pas, c’est la vitesse finale qui est réduite." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18528,6 +18594,57 @@ msgstr "" "intervalles >= 0\n" "Fin > Début + Intervalle" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"La vitesse finale (%.0f mm/s) dépasse la vitesse volumétrique maximale du filament (%.1f mm³/s), ce qui limite la paroi extérieure à environ %.0f mm/s pour cette largeur de ligne et cette hauteur de couche.\n" +" Les vitesses supérieures seront bridées : les blocs supérieurs de la tour ne seront donc pas imprimés à la vitesse demandée.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"La vitesse finale (%.0f mm/s) dépasse la vitesse volumétrique maximale du filament (%.1f mm³/s) avec la hauteur de couche par défaut (%.2f mm).\n" +"\n" +"La hauteur de couche a été réduite à %.2f mm (une valeur utilisée par les profils de cette imprimante) afin que la tour puisse atteindre la vitesse demandée." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Même avec la plus petite hauteur de couche utilisée par les profils de cette imprimante (%.2f mm), la vitesse finale (%.0f mm/s) dépasse la vitesse volumétrique maximale du filament (%.1f mm³/s).\n" +"\n" +"La hauteur de couche sera réglée sur %.2f mm et la vitesse finale abaissée à %.0f mm/s.\n" +"\n" +"Continuer ?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Continuer quand même ?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Activer « Ajustement automatique » pour corriger cela automatiquement, ou continuer quand même ?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Activer « Mise à l’échelle automatique selon la buse » et « Ajustement automatique » pour corriger cela automatiquement, ou continuer quand même ?" + msgid "Start retraction length: " msgstr "Longueur de rétraction de début: " @@ -21059,6 +21176,9 @@ msgstr "" "Éviter la déformation\n" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" +#~ msgid "Print order within a single layer." +#~ msgstr "Ordre d’impression au sein d’une même couche" + #~ msgid "Bottom" #~ msgstr "Dessous" @@ -21149,9 +21269,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "Affiche les ombres portées sur la plaque dans la vue réaliste." diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 0491f17882..98cd987512 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -300,13 +300,13 @@ msgid "Tungsten Carbide" msgstr "Volfrám-karbid" msgid "The toolhead and hotend rack may move. Please keep your hands away from the chamber." -msgstr "Előfordulhat, hogy a szerszámfej és a hotendtartó megmozdul. Kérjük, ne nyúlj a kamrába." +msgstr "Előfordulhat, hogy a szerszámfej és a fejegységtartó megmozdul. Kérlek, ne nyúlj a kamrába." msgid "Warning" msgstr "Figyelmeztetés" msgid "Hotend information may be inaccurate. Would you like to re-read the hotend? (Hotend information may change during power-off)." -msgstr "A hotendinformációk pontatlanok lehetnek. Szeretnéd újra beolvasni a hotendet? (A hotendinformáció kikapcsolt állapotban megváltozhat)." +msgstr "A fejegység adatai pontatlanok lehetnek. Szeretnéd újra beolvasni a fejegységet? (A fejegység adatai kikapcsolt állapotban megváltozhatnak.)" msgid "I confirm all" msgstr "Összes megerősítése" @@ -315,10 +315,10 @@ msgid "Re-read all" msgstr "Összes újraolvasása" msgid "Reading the hotends, please wait." -msgstr "A hotendek beolvasása folyamatban van, kérjük várj." +msgstr "A fejegységek beolvasása folyamatban van, kérlek, várj." msgid "During the hotend upgrade, the toolhead will move. Don't reach into the chamber." -msgstr "A hotend felismerése során a szerszámfej mozogni fog. Ne nyúlj be a kamrába." +msgstr "A fejegység felismerése közben a szerszámfej mozogni fog. Ne nyúlj be a kamrába." # AI Translated msgid "Update" @@ -370,10 +370,10 @@ msgid "Error" msgstr "Hiba" msgid "Induction Hotend Rack" -msgstr "Indukciós hotendtartó" +msgstr "Indukciós fejegységtartó" msgid "Hotends Info" -msgstr "Hotendek adatai" +msgstr "Fejegységek adatai" msgid "Read All" msgstr "Összes beolvasása" @@ -382,7 +382,7 @@ msgid "Reading " msgstr "Beolvasás " msgid "Please wait" -msgstr "Kérjük, várj" +msgstr "Kérlek, várj" # AI Translated msgid "Reading" @@ -395,10 +395,10 @@ msgid "Raised" msgstr "Felemelve" msgid "The hotend is in an abnormal state and currently unavailable. Please go to 'Device -> Upgrade' to upgrade firmware." -msgstr "A hotend állapota rendellenes, és jelenleg nem elérhető. Kérjük, lépj az „Eszköz -> Frissítés“ oldalra a firmware frissítéséhez." +msgstr "A fejegység állapota rendellenes és jelenleg nem elérhető. Kérlek, lépj az „Eszköz -> Frissítés“ oldalra a firmware frissítéséhez." msgid "Abnormal Hotend" -msgstr "Rendellenes hotend" +msgstr "Rendellenes fejegység" msgid "Cancel" msgstr "Mégse" @@ -413,7 +413,7 @@ msgid "Refreshing" msgstr "Frissítés" msgid "Hotend status abnormal, unavailable at present. Please upgrade the firmware and try again." -msgstr "A hotend állapota nem megfelelő, jelenleg nem kérdezhető le. Frissítsd a firmware-t, és próbáld újra." +msgstr "A fejegység állapota rendellenes, ezért jelenleg nem használható. Frissítsd a firmware-t, majd próbáld újra." # AI Translated msgid "SN" @@ -427,10 +427,10 @@ msgid "Used Time: %s" msgstr "Felhasznált idő: %s" msgid "Dynamic nozzles are allocated on the current plate. Picking hotend is not supported." -msgstr "A dinamikus fúvókák a jelenlegi tálcához vannak kiosztva. A hotend kiválasztása nem támogatott." +msgstr "A dinamikus fúvókák a jelenlegi tálcához vannak kiosztva. A fejegység kiválasztása nem támogatott." msgid "Hotend Rack" -msgstr "Hotendtartó" +msgstr "Fejegységtartó" msgid "ToolHead" msgstr "Szerszámfej" @@ -542,7 +542,7 @@ msgid "Paint-on supports editing" msgstr "Festett támaszok szerkesztése" msgid "Gizmo-Place on Face" -msgstr "Gizmo-Felület Tárgyasztalra Illesztése" +msgstr "Gizmo – felület asztalra illesztése" msgid "Lay on Face" msgstr "Felületre fektetés" @@ -633,22 +633,22 @@ msgid "Color painting editing" msgstr "Színfestés szerkesztése" msgid "Paint-on fuzzy skin" -msgstr "Festett bolyhos felület" +msgstr "Festett barázdált felület" msgid "Add fuzzy skin" -msgstr "Bolyhos felület hozzáadása" +msgstr "Barázdált felület hozzáadása" msgid "Remove fuzzy skin" -msgstr "Bolyhos felület eltávolítása" +msgstr "Barázdált felület eltávolítása" msgid "Reset selection" msgstr "Kijelölés visszaállítása" msgid "Warning: Fuzzy skin is disabled, painted fuzzy skin will not take effect!" -msgstr "Figyelmeztetés: a bolyhos felület ki van kapcsolva, ezért a festett bolyhos felület nem lesz érvényes!" +msgstr "Figyelmeztetés: a barázdált felület ki van kapcsolva, ezért a festett barázdált felület nem lesz érvényes!" msgid "Enable painted fuzzy skin for this object" -msgstr "Festett bolyhos felület engedélyezése ennél az objektumnál" +msgstr "Festett barázdált felület engedélyezése ennél az objektumnál" # AI Translated msgid "Entering Paint-on fuzzy skin" @@ -678,7 +678,7 @@ msgid "Gizmo-Rotate" msgstr "Gizmo-Forgatás" msgid "Optimize orientation" -msgstr "Orientáció optimalizálása" +msgstr "Tájolás optimalizálása" msgctxt "Verb" msgid "Scale" @@ -738,7 +738,7 @@ msgid "Group operations" msgstr "Csoportos műveletek" msgid "Set orientation" -msgstr "Orientáció beállítása" +msgstr "Tájolás beállítása" msgid "Set scale" msgstr "Méretarány beállítása" @@ -799,7 +799,7 @@ msgid "Auto" msgstr "Automatikus" msgid "Manual" -msgstr "Manuális" +msgstr "Kézi" msgid "Plug" msgstr "Dugó" @@ -1092,7 +1092,7 @@ msgstr "Csökkentési arány" #, boost-format msgid "Processing model '%1%' with more than 1M triangles could be slow. It is highly recommended to simplify the model." -msgstr "A több mint 1M háromszöget tartalmazó '%1%' modell feldolgozása lehet, hogy lassú lesz. Erősen ajánlott a modell leegyszerűsítése." +msgstr "A(z) '%1%' modell több mint 1 millió háromszöget tartalmaz, ezért a feldolgozása lassú lehet. Erősen ajánlott egyszerűsíteni a modellt." msgid "Simplify model" msgstr "Modell egyszerűsítése" @@ -1700,8 +1700,8 @@ msgid "" "Do NOT save local path to 3MF file.\n" "Also disables 'reload from disk' option." msgstr "" -"NE mentse a helyi elérési utat a 3MF fájlba.\n" -"Ezzel az \"újratöltés lemezről\" opció is letiltásra kerül." +"Nem menti a helyi elérési utat a 3MF-fájlba.\n" +"Az „Újratöltés lemezről” lehetőséget is kikapcsolja." #. TRN: An menu option to convert the SVG into an unmodifiable model part. msgid "Bake" @@ -1835,7 +1835,7 @@ msgid "Measure" msgstr "Mérés" msgid "Please confirm explosion ratio = 1, and please select at least one object." -msgstr "Erősítsd meg, hogy az explosion ratio = 1, és válassz ki legalább egy objektumot." +msgstr "Állítsd 1-re a széthúzás mértékét, majd válassz ki legalább egy objektumot." msgid "Edit to scale" msgstr "Méretre szerkesztés" @@ -1941,7 +1941,7 @@ msgid "Assemble" msgstr "Összeállítás" msgid "Please confirm explosion ratio = 1 and select at least two volumes." -msgstr "Erősítsd meg, hogy a terjedési arány = 1, és válassz ki legalább két térfogatot." +msgstr "Állítsd 1-re a széthúzás mértékét, majd válassz ki legalább két térfogatot." msgid "Please select at least two volumes." msgstr "Válassz ki legalább két térfogatot." @@ -2101,9 +2101,9 @@ msgid "" msgstr "" "A 2.4.0-s verziótól kezdve az OrcaSlicer a felhasználói profilokat a Bambu Cloud helyett az Orca Cloudon keresztül szinkronizálja.\n" "\n" -"Meglévő profiljai átviteléhez jelentkezzen be az Orca Cloudba, és azok automatikusan átkerülnek. Ha többet szeretne megtudni arról, hogyan tárolja és szinkronizálja az OrcaSlicer a profiljait, vagy ha kézzel szeretné átvinni a beállításait, tekintse meg a wikinket.\n" +"A meglévő profiljaid átviteléhez jelentkezz be az Orca Cloudba, és a rendszer automatikusan átviszi őket. Ha többet szeretnél megtudni arról, hogyan tárolja és szinkronizálja az OrcaSlicer a profiljaidat, vagy hogyan viheted át kézzel a beállításaidat, nézd meg a wikinket.\n" "\n" -"Ha nem használta a Bambu Cloudot a profilok szinkronizálásához, ez a változás nem érinti Önt, és nyugodtan figyelmen kívül hagyhatja ezt az üzenetet." +"Ha nem használtad a Bambu Cloudot a profilok szinkronizálásához, ez a változás nem érint, és nyugodtan figyelmen kívül hagyhatod ezt az üzenetet." # AI Translated msgid "Profile syncing change" @@ -2150,7 +2150,7 @@ msgid "" msgstr "" "A Microsoft WebView2 Runtime telepítése nem sikerült.\n" "Egyes funkciók, köztük a beállítási varázsló, üresen jelenhetnek meg a telepítéséig.\n" -"Kérlek, telepítsd kézzel innen: https://developer.microsoft.com/microsoft-edge/webview2/ , majd indítsd újra az Orca Slicert." +"Kérlek, telepítsd kézzel innen: https://developer.microsoft.com/microsoft-edge/webview2/, majd indítsd újra az Orca Slicert." #, c-format, boost-format msgid "Resources path does not exist or is not a directory: %s" @@ -2172,7 +2172,7 @@ msgid "Click to download new version in default browser: %s" msgstr "Kattints az új verzió letöltéséhez az alapértelmezett böngészőben: %s" msgid "OrcaSlicer needs an update" -msgstr "A Orca Slicert frissíteni kell" +msgstr "Az OrcaSlicert frissíteni kell" msgid "This is the newest version." msgstr "Ez a legújabb verzió." @@ -2271,7 +2271,7 @@ msgid "Open Project" msgstr "Projekt megnyitása" msgid "The version of Orca Slicer is too low and needs to be updated to the latest version before it can be used normally." -msgstr "A Orca Slicer ezen verziója túl régi és a legfrissebb verzióra kell frissíteni, mielőtt rendesen használható lenne" +msgstr "Az Orca Slicer ezen verziója túl régi. A megfelelő működéshez frissítsd a legújabb verzióra." # AI Translated msgid "Cloud sync conflict:" @@ -2391,7 +2391,7 @@ msgstr "Adatvédelmi szabályzat frissítése" #, c-format, boost-format msgid "your Orca Cloud profile (user ID: \"%s\")" -msgstr "a Orca Cloud-profilod (felhasználói azonosító: \"%s\")" +msgstr "az Orca Cloud-profilod (felhasználói azonosító: \"%s\")" msgid "your default profile" msgstr "az alapértelmezett profilod" @@ -2406,9 +2406,9 @@ msgid "" "Do you want to migrate them to your OrcaCloud profile?\n" "This will copy your presets so they are available under your new account." msgstr "" -"Meglévő felhasználói beállítások találhatók a %s-ban.\n" -"Szeretnéd áttelepíteni őket OrcaCloud-profilba?\n" -"Ezzel átmásolja az beállítás értékeket, így azok elérhetők lesznek az új fiókjában." +"Meglévő felhasználói beállításokat találtunk itt: %s.\n" +"Szeretnéd áttelepíteni őket az Orca Cloud-profilodba?\n" +"Ezzel átmásolod a beállításaidat, így azok az új fiókodban is elérhetők lesznek." # AI Translated msgid "Migrate User Presets" @@ -2423,7 +2423,7 @@ msgstr "" "%s" msgid "The number of user presets cached in the cloud has exceeded the upper limit, newly created user presets can only be used locally." -msgstr "A felhőben tárolt felhasználói beállítások száma elérte a limitet, az újonnan létrehozott felhasználói beállítások csak helyben lesznek tárolva." +msgstr "A felhőben tárolt felhasználói beállítások száma elérte a felső korlátot. Az újonnan létrehozott felhasználói beállítások csak helyileg használhatók." msgid "Sync user presets" msgstr "Felhasználói beállítások szinkronizálása" @@ -2547,7 +2547,7 @@ msgid "Rename" msgstr "Átnevezés" msgid "Orca Slicer GUI initialization failed" -msgstr "Nem sikerült a Orca Slicer GUI inicializálása" +msgstr "Nem sikerült inicializálni az Orca Slicer grafikus felületét" #, boost-format msgid "Fatal error, exception: %1%" @@ -2761,7 +2761,7 @@ msgid "Fill bed with copies" msgstr "Asztal kitöltése másolatokkal" msgid "Fill the remaining area of bed with copies of the selected object" -msgstr "A tárgyasztal fennmaradó területének kitöltése a kijelölt objektum másolataival" +msgstr "Az asztal fennmaradó területének kitöltése a kijelölt objektum másolataival" msgid "Printable" msgstr "Nyomtatható" @@ -2770,7 +2770,7 @@ msgid "Auto Drop" msgstr "Automatikus leejtés" msgid "Automatically drops the selected object to the build plate." -msgstr "A kiválasztott objektumot automatikusan az építőlemezre ejti" +msgstr "A kiválasztott objektumot automatikusan az asztalra ejti" msgid "Fix Model" msgstr "Model javítása" @@ -2806,7 +2806,7 @@ msgid "Replace all selected parts with 3D files from folder" msgstr "Az összes kijelölt alkatrész cseréje mappából származó 3D fájlokra" msgid "Change filament" -msgstr "Filament csere" +msgstr "Filamentcsere" msgid "Set filament for selected items" msgstr "Filament beállítása a kiválasztott tárgyakhoz" @@ -2937,7 +2937,7 @@ msgid "Split the selected object" msgstr "Szétválasztja a kijelölt objektumot" msgid "Auto orientation" -msgstr "Automatikus orientáció" +msgstr "Automatikus tájolás" msgid "Auto orient the object to improve print quality" msgstr "Az objektum automatikus tájolása a nyomtatási minőség javítása érdekében." @@ -3015,7 +3015,7 @@ msgid "Fill bed with instances" msgstr "Asztal kitöltése példányokkal" msgid "Fill the remaining area of bed with instances of the selected object" -msgstr "A tárgyasztal fennmaradó területének kitöltése a kijelölt objektum példányaival" +msgstr "Az asztal fennmaradó területének kitöltése a kijelölt objektum példányaival" msgid "Clone" msgstr "Klónozás" @@ -3048,13 +3048,13 @@ msgid "Edit print parameters for a single object" msgstr "Nyomtatási paraméterek szerkesztése egy objektumhoz" msgid "Change Filament" -msgstr "Filament csere" +msgstr "Filamentcsere" msgid "Set Filament for selected items" msgstr "Filament beállítása a kiválasztott tárgyakhoz" msgid "Automatically snaps the selected object to the build plate." -msgstr "A kiválasztott objektumot automatikusan az építőlemezre illeszti" +msgstr "A kiválasztott objektumot automatikusan az asztalra illeszti" msgid "Unlock" msgstr "Feloldás" @@ -3097,7 +3097,7 @@ msgid "Click the icon to repair model object" msgstr "Kattints az ikonra a modellobjektum javításához" msgid "Right click the icon to drop the object settings" -msgstr "Kattints jobb gombbal az ikonra az objektum beállításainak elvetéséhez" +msgstr "Kattints jobb gombbal az ikonra az objektumbeállítások elvetéséhez" msgid "Click the icon to reset all settings of the object" msgstr "Kattints az ikonra az objektum összes beállításának visszaállításához" @@ -3115,7 +3115,7 @@ msgid "Click the icon to edit color painting for the object" msgstr "Kattints az ikonra az objektum színfestésének szerkesztéséhez" msgid "Click the icon to shift this object to the bed" -msgstr "Kattints az ikonra az objektum tárgyasztalra helyezéséhez" +msgstr "Kattints az ikonra az objektum asztalra helyezéséhez" # AI Translated msgid "Rename Object" @@ -3176,7 +3176,7 @@ msgid "Error!" msgstr "Hiba!" msgid "Failed to get the model data in the current file." -msgstr "Nem sikerült beolvasni a modelladatokat az aktuális fájlba." +msgstr "Nem sikerült beolvasni a modelladatokat az aktuális fájlból." # AI Translated msgid "Add primitive" @@ -3192,7 +3192,7 @@ msgid "Switch to per-object setting mode to edit process settings of selected ob msgstr "Válts át objektumonkénti beállítás módba a kiválasztott objektumok folyamatbeállításainak szerkesztéséhez." msgid "Remove paint-on fuzzy skin" -msgstr "Festett bolyhos felület eltávolítása" +msgstr "Festett barázdált felület eltávolítása" # AI Translated msgid "Delete Settings" @@ -3548,7 +3548,7 @@ msgid "Unload" msgstr "Kitöltés" msgid "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filament." -msgstr "Válassz ki egy AMS-helyet, majd nyomd meg a \"Betöltés\" vagy a \"Kitöltés\" gombot az filament automatikus betöltéséhez vagy eltávolításához." +msgstr "Válassz ki egy AMS-helyet, majd nyomd meg a \"Betöltés\" vagy a \"Kihúzás\" gombot a filament automatikus betöltéséhez vagy kihúzásához." msgid "Filament type is unknown which is required to perform this action. Please set target filament's informations." msgstr "A művelethez szükséges filament típusa ismeretlen. Állítsd be a célfilament adatait." @@ -3672,7 +3672,7 @@ msgid "Grab new filament" msgstr "Új filament megragadása" msgid "Purge old filament" -msgstr "Régi filament kiürítése" +msgstr "Régi filament öblítése" msgid "Confirm extruded" msgstr "Extrudálás megerősítése" @@ -3771,7 +3771,7 @@ msgid "Set nozzle count" msgstr "Fúvókaszám beállítása" msgid "Please set nozzle count" -msgstr "Kérjük, állítsd be a fúvókaszámot" +msgstr "Kérlek, állítsd be a fúvókaszámot" msgid "Error: Can not set both nozzle count to zero." msgstr "Hiba: Nem lehet mindkét fúvóka számát nullára állítani." @@ -3813,10 +3813,10 @@ msgid "Unknown nozzle detected. Refresh to update (unrefreshed nozzles will be s msgstr "Ismeretlen fúvóka érzékelve. Frissítsd az adatokat (a nem frissített fúvókákat nem használjuk a szeleteléskor)." msgid "Please confirm whether the required nozzle diameter and flow rate match the currently displayed values." -msgstr "Kérjük, ellenőrizd, hogy a szükséges fúvókaátmérő és áramlási sebesség megegyezik-e a kijelzőn lévővel." +msgstr "Kérlek, ellenőrizd, hogy a szükséges fúvókaátmérő és áramlási sebesség megegyezik-e a kijelzőn látható értékekkel." msgid "Your printer has different nozzles installed. Please select a nozzle for this print." -msgstr "A nyomtatóban különböző fúvókák vannak. Kérjük, válassz egy fúvókát a nyomtatáshoz." +msgstr "A nyomtatóban különböző fúvókák vannak. Kérlek, válassz egy fúvókát a nyomtatáshoz." msgid "Ignore" msgstr "Mellőzés" @@ -3848,11 +3848,15 @@ msgstr "Elrendezés..." msgid "Arranging" msgstr "Elrendezés" +# AI Translated +msgid "Arranging " +msgstr "Elrendezés " + msgid "Arranging canceled." msgstr "Elrendezése törölve." msgid "Arranging complete, but some items were not able to be arranged. Reduce spacing and try again." -msgstr "Az elrendezés megtörtént, de maradtak összeragadt tárgyak. Csökkentsd a térközt, és próbáld meg újra." +msgstr "Az elrendezés elkészült, de néhány tárgyat nem sikerült elhelyezni. Csökkentsd a térközt, majd próbáld újra." msgid "Arranging done." msgstr "Elrendezés kész." @@ -3873,20 +3877,20 @@ msgid "" "Cannot auto-orient these objects." msgstr "" "Az összes kijelölt objektum egy zárolt tálcán van,\n" -"nem lehet automatikus orientációt használni rajtuk." +"nem lehet automatikus tájolást használni rajtuk." msgid "" "This plate is locked.\n" "Cannot auto-orient on this plate." msgstr "" "Ez a tálca zárolva van.\n" -"Nem lehetséges az automatikus orientáció ezen a tálcán." +"Ezen a tálcán nem használható az automatikus tájolás." msgid "Orienting..." -msgstr "Orientáció folyamatban..." +msgstr "Tájolás folyamatban..." msgid "Orienting" -msgstr "Orientáció" +msgstr "Tájolás" msgid "Orienting canceled." msgstr "Tájolás megszakítva." @@ -3937,19 +3941,19 @@ msgid "The print file exceeds the maximum allowable size (1GB). Please simplify msgstr "A nyomtatási fájl mérete meghaladja a megengedett maximumot (1 GB). Egyszerűsítsd a modellt, majd szeletelj újra." msgid "Failed to send the print job. Please try again." -msgstr "Nem sikerült elküldeni a nyomtatási feladatot. Kérlek próbáld újra." +msgstr "Nem sikerült elküldeni a nyomtatási feladatot. Kérlek, próbáld újra." msgid "Failed to upload file to ftp. Please try again." msgstr "Nem sikerült feltölteni a fájlt FTP-re. Próbáld újra." msgid "Check the current status of the Bambu Lab server by clicking on the link above." -msgstr "A Bambu szerver aktuális állapotát a fenti hivatkozásra kattintva ellenőrizheted." +msgstr "A Bambu Lab szerver aktuális állapotát a fenti hivatkozásra kattintva ellenőrizheted." msgid "The size of the print file is too large. Please adjust the file size and try again." -msgstr "A nyomtatási fájl mérete túl nagy. Állítsd be a fájlméretet, és próbáld újra." +msgstr "A nyomtatási fájl mérete túl nagy. Állítsd be a fájlméretet, majd próbáld újra." msgid "Print file not found; please slice it again and send it for printing." -msgstr "A nyomtatási fájl nem található, szeleteld újra, és küldd nyomtatásra." +msgstr "A nyomtatási fájl nem található, szeleteld újra, majd küldd nyomtatásra." msgid "Failed to upload print file via FTP. Please check the network status and try again." msgstr "Nem sikerült feltölteni a nyomtatási fájlt FTP-re. Ellenőrizd a hálózati állapotot, majd próbáld újra." @@ -3988,7 +3992,7 @@ msgid "A Storage needs to be inserted before printing via LAN." msgstr "LAN-on keresztüli nyomtatás előtt be kell helyezni egy tárolót." msgid "Sending print job over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this." -msgstr "A nyomtatási feladat LAN-on keresztül küldésre kerül, de a nyomtatóban lévő tároló rendellenes, ami nyomtatási problémákat okozhat." +msgstr "A nyomtatási feladat LAN-on keresztüli küldése folyamatban van, de a nyomtató tárolója rendellenes, ami nyomtatási problémákat okozhat." msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending print job to printer." msgstr "A nyomtatóban lévő tároló rendellenes. Cseréld normál tárolóra, mielőtt nyomtatási feladatot küldesz a nyomtatóra." @@ -4013,7 +4017,7 @@ msgid "Storage needs to be inserted before sending to printer." msgstr "A nyomtatóra küldés előtt be kell helyezni egy tárolót." msgid "Sending G-code file over LAN, but the Storage in the printer is abnormal and print-issues may be caused by this." -msgstr "A G-kód fájl LAN-on keresztül küldésre kerül, de a nyomtatóban lévő tároló rendellenes, ami nyomtatási problémákat okozhat." +msgstr "A G-kód fájl LAN-on keresztüli küldése folyamatban van, de a nyomtató tárolója rendellenes, ami nyomtatási problémákat okozhat." msgid "The Storage in the printer is abnormal. Please replace it with a normal Storage before sending to printer." msgstr "A nyomtatóban lévő tároló rendellenes. Cseréld normál tárolóra, mielőtt a nyomtatóra küldesz." @@ -4086,7 +4090,7 @@ msgid "The imported SLA archive did not contain any presets. The current SLA pre msgstr "Az importált SLA archívum nem tartalmazott beállításokat. Tartalékként az aktuális SLA beállítások kerültek használatra." msgid "You cannot load an SLA project with a multi-part object on the bed" -msgstr "Nem tölthető be SLA projekt, ha a tárgyasztalon több részből álló objektum van" +msgstr "Nem tölthető be SLA-projekt, ha az asztalon több részből álló objektum van" msgid "Please check your object list before preset changing." msgstr "A beállítás módosítása előtt ellenőrizd az objektumlistát." @@ -4122,13 +4126,13 @@ msgid "License" msgstr "Licenc" msgid "Orca Slicer is licensed under " -msgstr "A Orca Slicer a következő licencet használja " +msgstr "Az Orca Slicer a következő licencet használja " msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, 3-as verzió" msgid "Orca Slicer is based on PrusaSlicer and BambuStudio" -msgstr "Az Orca Slicer a PrusaSlicerre és a BambuStudióra épül" +msgstr "Az Orca Slicer a PrusaSlicerre és a BambuStudio-ra épül" msgid "Libraries" msgstr "Könyvtárak" @@ -4175,7 +4179,7 @@ msgid "The input value should be greater than %1% and less than %2%" msgstr "A megadott értéknek nagyobbnak kell lennie, mint %1% és kisebbnek, mint %2%" msgid "Factors of Flow Dynamics Calibration" -msgstr "Anyagáramlás kalibrálásának faktorai" +msgstr "Áramlásdinamika-kalibrálás tényezői" msgid "Wiki Guide" msgstr "Wiki útmutató" @@ -4190,7 +4194,7 @@ msgid "Factor N" msgstr "N-tényező" msgid "Setting AMS slot information while printing is not supported" -msgstr "Nyomtatás közben nem változtathatóak meg a AMS férőhelyek adatai" +msgstr "Nyomtatás közben nem módosíthatók az AMS-férőhelyek adatai" msgid "Setting Virtual slot information while printing is not supported" msgstr "Nyomtatás közben a virtuális férőhely adatai nem módosíthatók" @@ -4229,7 +4233,7 @@ msgid "Dynamic flow calibration" msgstr "Dinamikus anyagáramlás kalibráció" msgid "The nozzle temp and max volumetric speed will affect the calibration results. Please fill in the same values as the actual printing. They can be auto-filled by selecting a filament preset." -msgstr "A fúvóka hőmérséklete és a maximális anyagáramlás sebessége befolyásolja a kalibrációs eredményeket. Kérlek, add meg a nyomtatás használt tényleges értékeket. Ezek automatikusan is kitöltheted a megfelelő filamentbeállítás kiválasztásával." +msgstr "A fúvóka hőmérséklete és a maximális volumetrikus sebesség befolyásolja a kalibrálás eredményét. Add meg a tényleges nyomtatás során használt értékeket. Ezeket a megfelelő filamentbeállítás kiválasztásával automatikusan is kitöltheted." msgid "Nozzle Diameter" msgstr "Fúvóka átmérője" @@ -4263,14 +4267,14 @@ msgid "Next" msgstr "Következő" msgid "Calibration completed. Please find the most uniform extrusion line on your hot bed like the picture below, and fill the value on its left side into the factor K input box." -msgstr "A kalibrálás befejeződött. Kérlek, válaszd ki az alábbi képen láthatóhoz legjobban hasonlító, legegyenletesebb extrudálási vonalat, és írd be a bal oldalán lévő értéket a K-tényező beviteli mezőjébe." +msgstr "A kalibrálás befejeződött. Kérlek, válaszd ki az alábbi képen láthatóhoz legjobban hasonlító, legegyenletesebb extrudálási vonalat, majd írd be a bal oldalán lévő értéket a K-tényező beviteli mezőjébe." msgid "Save" msgstr "Mentés" msgctxt "Navigation" msgid "Back" -msgstr "Hátul" +msgstr "Vissza" msgid "Example" msgstr "Példa" @@ -4298,7 +4302,7 @@ msgid "" "And you can click it to modify" msgstr "" "Felső fél: Eredeti\n" -"Alsó fél: Hozzárendelés nélkül az eredeti projekt filamentje lesz használva.\n" +"Alsó fél: hozzárendelés nélkül az eredeti projekt filamentjét használja.\n" "Kattintással módosíthatod" msgid "" @@ -4381,7 +4385,7 @@ msgid "Please change the desiccant when it is too wet. The indicator may not rep msgstr "Cseréld a nedvszívót, ha túl nedves. A jelző nem mindig pontos az alábbi esetekben: ha a fedél nyitva van, vagy ha a nedvszívó csomag cserélve lett. A nedvesség elnyelése órákat vesz igénybe, és az alacsony hőmérséklet tovább lassítja a folyamatot." msgid "Configure which AMS slot should be used for a filament used in the print job." -msgstr "Add meg, hogy melyik AMS-férőhely legyen legyen hozzárendelve a nyomtatásnál használt filamenthez." +msgstr "Add meg, hogy melyik AMS-férőhely legyen hozzárendelve a nyomtatásnál használt filamenthez." msgid "Filament used in this print job" msgstr "A nyomtatási feladatban használt filament" @@ -4427,7 +4431,7 @@ msgid "The printer does not currently support auto refill." msgstr "A nyomtató jelenleg nem támogatja az automatikus újratöltést." msgid "AMS filament backup is not enabled; please enable it in the AMS settings." -msgstr "Az AMS filament tartalék funkció nincs engedélyezve, kapcsold be az AMS beállításokban." +msgstr "A tartalék filament használata nincs engedélyezve; kapcsold be az AMS beállításaiban." msgid "" "When the current filament runs out, the printer will use identical filament to continue printing.\n" @@ -4451,31 +4455,31 @@ msgid "Insertion update" msgstr "Frissítés" msgid "The AMS will automatically read the filament information when inserting a new Bambu Lab filament spool. This takes about 20 seconds." -msgstr "Az AMS automatikusan kiolvassa a filament információkat egy új Bambu Lab filament tekercs behelyezésekor. Ez körülbelül 20 másodpercet vesz igénybe." +msgstr "Új Bambu Lab filamenttekercs behelyezésekor az AMS automatikusan kiolvassa a filament adatait. Ez körülbelül 20 másodpercet vesz igénybe." msgid "Note: if a new filament is inserted during printing, the AMS will not automatically read any information until printing is completed." -msgstr "Megjegyzés: ha nyomtatás során új filament kerül behelyezésre, az AMS nem fogja automatikusan kiolvasni az információkat a nyomtatás végéig." +msgstr "Megjegyzés: ha nyomtatás közben új filamentet helyezel be, az AMS csak a nyomtatás befejezése után olvassa ki automatikusan az adatait." msgid "When inserting a new filament, the AMS will not automatically read its information, leaving it blank for you to enter manually." -msgstr "Új filament behelyezésekor az AMS nem fogja automatikusan kiolvasni az információkat, hanem üresen hagyja azokat, így kézzel kell megadnod." +msgstr "Új filament behelyezésekor az AMS nem olvassa ki automatikusan az adatait, hanem üresen hagyja őket, hogy kézzel adhasd meg." msgid "Update on startup" msgstr "Frissítés bekapcsoláskor" msgid "The AMS will automatically read the information of inserted filament on start-up. It will take about 1 minute. The reading process will rotate the filament spools." -msgstr "Az AMS indításkor automatikusan kiolvassa a behelyezett filament adatait. Ez körülbelül 1 percet vesz igénybe. A leolvasási folyamat során a filamenttekercsek feltekercselésre kerülnek." +msgstr "Az AMS indításkor automatikusan kiolvassa a behelyezett filament adatait. Ez körülbelül 1 percet vesz igénybe. A leolvasás közben a filamenttekercsek forognak." msgid "The AMS will not automatically read information from inserted filament during startup and will continue to use the information recorded before the last shutdown." -msgstr "Az AMS indításkor nem olvassa ki automatikusan az információkat a behelyezett filamentről, és továbbra is a legutóbbi leállítás előtt rögzített információkat használja." +msgstr "Az AMS indításkor nem olvassa ki automatikusan a behelyezett filament adatait, hanem továbbra is a legutóbbi leállítás előtt rögzített adatokat használja." msgid "Update remaining capacity" -msgstr "Fennmaradó kapacitás frissítése" +msgstr "Hátralévő filamentmennyiség frissítése" msgid "AMS will attempt to estimate the remaining capacity of the Bambu Lab filaments." -msgstr "Az AMS megpróbálja megbecsülni a Bambu Lab filamentek fennmaradó kapacitását." +msgstr "Az AMS megpróbálja megbecsülni a Bambu Lab filamenttekercseken hátralévő mennyiséget." msgid "AMS filament backup" -msgstr "AMS filament tartalék" +msgstr "Automatikus váltás tartalék tekercsre" msgid "AMS will continue to another spool with matching filament properties automatically when current filament runs out." msgstr "Az AMS automatikusan egy másik, azonos tulajdonságú filamentre vált, ha az aktuális filament kifogy." @@ -4484,7 +4488,7 @@ msgid "Air Printing Detection" msgstr "Levegőbe nyomtatás észlelése" msgid "Detects clogging and filament grinding, halting printing immediately to conserve time and filament." -msgstr "Észleli az eltömődést és a filament darálását, és az idő és filament takarékossága érdekében azonnal leállítja a nyomtatást." +msgstr "Észleli az eltömődést és a filament ledarálását, majd azonnal leállítja a nyomtatást, így időt és filamentet takarít meg." msgid "AMS Type" msgstr "AMS típus" @@ -4514,10 +4518,10 @@ msgid "Calibration" msgstr "Kalibrálás" msgid "Failed to download the plug-in. Please check your firewall settings and VPN software and retry." -msgstr "Nem sikerült letölteni a bővítményt. Kérlek, ellenőrizd a tűzfal beállításait és a VPN-szoftvert, majd próbálja meg újra." +msgstr "Nem sikerült letölteni a bővítményt. Kérlek, ellenőrizd a tűzfal beállításait és a VPN-szoftvert, majd próbáld újra." msgid "Failed to install the plug-in. The plug-in file may be in use. Please restart OrcaSlicer and try again. Also check whether it is blocked or has been deleted by anti-virus software." -msgstr "Nem sikerült telepíteni a bővítményt. Lehet, hogy a bővítményfájl használatban van. Indítsd újra az OrcaSlicert, majd próbáld újra. Ellenőrizd azt is, hogy vírusirtó szoftver nem blokkolta vagy törölte-e." +msgstr "Nem sikerült telepíteni a bővítményt. Lehet, hogy a bővítményfájl használatban van. Indítsd újra az OrcaSlicert, majd próbáld újra. Ellenőrizd azt is, hogy nem blokkolta-e vagy törölte-e egy vírusirtó program." msgid "Click here to see more info" msgstr "Kattints ide további információkért" @@ -4529,16 +4533,16 @@ msgid "Restart Required" msgstr "Újraindítás szükséges" msgid "Please home all axes (click " -msgstr "Kérlek, végezd el a tengelyek alaphelyzetbe állítását (kattints" +msgstr "Kérlek, állítsd alaphelyzetbe az összes tengelyt (kattints " msgid ") to locate the toolhead's position. This prevents device moving beyond the printable boundary and causing equipment wear." -msgstr "). Ez megakadályozza, hogy a nyomtató megpróbálja a nyomtatható területen túlra mozgatni a fejet, ezzel az eszköz esetleges meghibásodását kockáztatva." +msgstr "). Így a nyomtató nem mozgatja a fejet a nyomtatható területen túlra, ami az eszköz kopását okozhatná." msgid "Go Home" msgstr "Alaphelyzet" msgid "An error occurred. The system may have run out of memory, or a bug may have occurred." -msgstr "Hiba történt. Lehet, hogy a rendszer memóriája nem elég, vagy a program hibás" +msgstr "Hiba történt. Lehet, hogy elfogyott a rendszer memóriája, vagy programhiba történt." #, boost-format msgid "A fatal error occurred: \"%1%\"" @@ -4588,16 +4592,16 @@ msgid "" "Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?\n" "Error message: %1%" msgstr "" -"Az ideiglenes G-kód másolása a kimeneti G-kódba nem sikerült. Lehet, hogy az SD kártya írásvédett?\n" +"Nem sikerült az ideiglenes G-kódot a kimeneti G-kódba másolni. Lehet, hogy az SD-kártya írásvédett?\n" "Hibaüzenet: %1%" #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." -msgstr "Az ideiglenes G-kód másolása a kimeneti G-kódba nem sikerült. Probléma lehet a céleszközzel. Kérlek, próbálkozzon újra az exportálással, vagy használjon másik eszközt. A sérült kimeneti G-kód %1%.tmp." +msgstr "Nem sikerült az ideiglenes G-kódot a kimeneti G-kódba másolni. Probléma lehet a céleszközzel. Kérlek, exportáld újra, vagy használj másik eszközt. A sérült kimeneti G-kód helye: %1%.tmp." #, boost-format msgid "Renaming of the G-code after copying to the selected destination folder has failed. Current path is %1%.tmp. Please try exporting again." -msgstr "A G-kód átnevezése a kiválasztott célmappába másolás után nem sikerült. A jelenlegi elérési út %1%.tmp. Kérlek, próbálja meg újra az exportálást." +msgstr "A G-kód átnevezése a kiválasztott célmappába másolás után nem sikerült. A jelenlegi elérési út %1%.tmp. Kérlek, próbáld újra az exportálást." #, boost-format msgid "Copying of the temporary G-code has finished but the original code at %1% couldn't be opened during copy check. The output G-code is at %2%.tmp." @@ -4641,7 +4645,7 @@ msgid "Distance of the 0,0 G-code coordinate from the front left corner of the r msgstr "A 0,0 G-kód koordinátájának távolsága a téglalap bal első sarkától." msgid "Diameter of the print bed. It is assumed that origin (0,0) is located in the center." -msgstr "A tárgyasztal átmérője. Feltételezzük, hogy az origó (0,0) középen van." +msgstr "Az asztal átmérője. Feltételezzük, hogy az origó (0,0) középen van." msgid "Rectangular" msgstr "Téglalap" @@ -4843,7 +4847,7 @@ msgstr "" "Visszaállítás a felületi réteg mélységének 50%-ára." msgid "Both [Extrusion] and [Combined] modes of Fuzzy Skin require the Arachne Wall Generator to be enabled." -msgstr "A bolyhos felület [Extrudálás] és [Kombinált] módja is megköveteli az Arachne falgenerátor engedélyezését." +msgstr "A barázdált felület [Extrudálás] és [Kombinált] módja is megköveteli az Arachne falgenerátor engedélyezését." msgid "" "Change these settings automatically?\n" @@ -4852,13 +4856,13 @@ msgid "" msgstr "" "Automatikusan módosítsuk ezeket a beállításokat?\n" "Igen - Engedélyezd az Arachne falgenerátort\n" -"Nem - Tiltsd le az Arachne falgenerátort, és állítsd a bolyhos felületet [Eltolás] módra" +"Nem - Tiltsd le az Arachne falgenerátort, majd állítsd a barázdált felületet [Eltolás] módra" msgid "Spiral mode only works when wall loops is 1, support is disabled, clumping detection by probing is disabled, top shell layers is 0, sparse infill density is 0 and timelapse type is traditional." -msgstr "A spirál mód csak akkor működik, ha a falhurkok száma 1, a támasz le van tiltva, a szondázásos csomósodásészlelés le van tiltva, a felső héjrétegek száma 0, a ritkás kitöltés sűrűsége 0, és az időzített felvétel típusa hagyományos." +msgstr "A spirál mód csak akkor működik, ha a falhurkok száma 1, a támasz és a szondázásos csomósodásészlelés ki van kapcsolva, a felső héjrétegek száma 0, a kitöltés sűrűsége 0, a Timelapse típusa pedig hagyományos." msgid " But machines with I3 structure will not generate timelapse videos." -msgstr " Az I3-szerkezetű gépek azonban nem fognak időfelvétel videókat készíteni." +msgstr " Az I3-szerkezetű gépek azonban nem készítenek Timelapse-videókat." msgid "" "Change these settings automatically?\n" @@ -4866,8 +4870,8 @@ msgid "" "No - Cancel enabling spiral mode" msgstr "" "Automatikusan megváltoztatod ezeket a beállításokat?\n" -"Igen - Módosítsa ezeket a beállításokat, és automatikusan engedélyezze a spirál mód használatát\n" -"Nem - Ne használja a spirál módot ez alkalommal" +"Igen - Módosítsd ezeket a beállításokat, és automatikusan kapcsold be a spirál módot\n" +"Nem - Most ne kapcsold be a spirál módot" msgid "Printing" msgstr "Nyomtatás" @@ -4903,7 +4907,7 @@ msgid "Inspecting first layer" msgstr "Első réteg vizsgálata" msgid "Identifying build plate type" -msgstr "Tárgyasztal azonosítása" +msgstr "Asztaltípus azonosítása" msgid "Calibrating Micro Lidar" msgstr "Micro Lidar kalibrálása" @@ -5059,16 +5063,16 @@ msgid "Update failed." msgstr "A frissítés sikertelen." msgid "Timelapse is not supported on this printer." -msgstr "Az időzített felvétel ezen a nyomtatón nem támogatott." +msgstr "Ez a nyomtató nem támogatja a Timelapse-felvételt." msgid "Timelapse is not supported while the storage does not exist." -msgstr "Az időzített felvétel nem támogatott, ha nincs tároló." +msgstr "A Timelapse-felvétel tároló nélkül nem támogatott." msgid "Timelapse is not supported while the storage is unavailable." -msgstr "Az időzített felvétel nem támogatott, ha a tároló nem érhető el." +msgstr "A Timelapse-felvétel nem támogatott, ha a tároló nem érhető el." msgid "Timelapse is not supported while the storage is readonly." -msgstr "Az időzített felvétel nem támogatott, ha a tároló csak olvasható." +msgstr "A Timelapse-felvétel nem támogatott, ha a tároló csak olvasható." msgid "To ensure your safety, certain processing tasks (such as laser) can only be resumed on printer." msgstr "A biztonság érdekében bizonyos műveletek (például lézeres feladatok) csak a nyomtatón folytathatók." @@ -5258,7 +5262,7 @@ msgid "SLA Materials settings" msgstr "SLA anyagbeállítások" msgid "Printer settings" -msgstr "Nyomtató beállítások" +msgstr "Nyomtatóbeállítások" msgid "parameter name" msgstr "paraméter neve" @@ -5447,7 +5451,7 @@ msgid "Bridge" msgstr "Áthidalás" msgid "Gap infill" -msgstr "Réskitöltés" +msgstr "Hézagok kitöltése" msgid "Skirt" msgstr "Szoknya" @@ -5471,19 +5475,19 @@ msgid "Mixed" msgstr "Vegyes" msgid "Height: " -msgstr "Magasság:" +msgstr "Magasság: " msgid "Width: " -msgstr "Szélesség:" +msgstr "Szélesség: " msgid "Flow: " -msgstr "Anyagáramlás:" +msgstr "Anyagáramlás: " msgid "Fan: " -msgstr "Ventilátor-fordulatszám:" +msgstr "Ventilátor-fordulatszám: " msgid "Temperature: " -msgstr "Hőmérséklet:" +msgstr "Hőmérséklet: " msgid "Layer Time: " msgstr "Rétegidő: " @@ -5522,7 +5526,7 @@ msgid "Time" msgstr "Idő" msgid "Speed: " -msgstr "Sebesség:" +msgstr "Sebesség: " msgid "Actual speed profile" msgstr "Tényleges sebességprofil" @@ -5633,7 +5637,7 @@ msgid "Fan speed (%)" msgstr "Ventilátor fordulatszám (%)" msgid "Temperature (℃)" -msgstr "Hőmérséklet (°C)" +msgstr "Hőmérséklet (℃)" msgid "Volumetric flow rate (mm³/s)" msgstr "Térfogatáramlás (mm³/s)" @@ -5789,7 +5793,7 @@ msgid "Move object" msgstr "Objektum mozgatása" msgid "Auto orientation options" -msgstr "Automatikus orientáció beállításai" +msgstr "Automatikus tájolás beállításai" msgid "Enable rotation" msgstr "Forgatás engedélyezése" @@ -5798,7 +5802,7 @@ msgid "Optimize support interface area" msgstr "Támasz érintkező felületének optimalizálása" msgid "Orient" -msgstr "Orientáció" +msgstr "Tájolás" msgid "Arrange options" msgstr "Elrendezési lehetőségek" @@ -5854,10 +5858,10 @@ msgid "Add plate" msgstr "Tálca hozzáadása" msgid "Auto orient all/selected objects" -msgstr "Összes/kiválasztott objektum automatikus orientációja" +msgstr "Az összes/kiválasztott objektum automatikus tájolása" msgid "Auto orient all objects on current plate" -msgstr "Aktuális tálca összes objektumának automatikus orientációja" +msgstr "A jelenlegi tálca összes objektumának automatikus tájolása" msgid "Arrange all objects" msgstr "Összes objektum elrendezése" @@ -5944,7 +5948,7 @@ msgid "Paint Toolbar" msgstr "Festés eszköztár" msgid "Explosion Ratio" -msgstr "Robbantási arány" +msgstr "Széthúzás mértéke" msgid "Section View" msgstr "Keresztmetszet nézet" @@ -6078,7 +6082,7 @@ msgid "Go Live" msgstr "Streamelés indítása" msgid "Liveview Retry" -msgstr "Élő nézet újra próbálása" +msgstr "Élőkép automatikus újrapróbálása" msgid "Resolution" msgstr "Felbontás" @@ -6156,7 +6160,7 @@ msgid "No" msgstr "Nem" msgid "will be closed before creating a new model. Do you want to continue?" -msgstr "bezárásra kerül új modell létrehozása előtt. Folytatod?" +msgstr "bezárul az új modell létrehozása előtt. Folytatod?" msgid "Slice plate" msgstr "Tálca szeletelése" @@ -6631,28 +6635,28 @@ msgid "Synchronization" msgstr "Szinkronizálás" msgid "The device cannot handle more conversations. Please retry later." -msgstr "Az eszköz nem tud több kapcsolatot kezelni. Kérlek, próbálkozz később." +msgstr "Az eszköz nem tud több kapcsolatot kezelni. Kérlek, próbáld újra később." msgid "Player is malfunctioning. Please reinstall the system player." -msgstr "A lejátszó hibásan működik. Kérlek, telepítsd újra." +msgstr "A rendszer médialejátszója nem működik megfelelően. Kérlek, telepítsd újra." msgid "The player is not loaded; please click the \"play\" button to retry." -msgstr "A lejátszó nem töltődött be; kérlek, kattints a \"lejátszás\" gombra az újra próbálkozáshoz." +msgstr "A lejátszó nem töltődött be. Kérlek, kattints a \"Lejátszás\" gombra az újbóli próbálkozáshoz." msgid "The player is not loaded because the GStreamer GTK video sink is missing or failed to initialize." msgstr "A lejátszó nem töltődik be, mert hiányzik a GStreamer GTK videonyelő, vagy nem sikerült inicializálni." msgid "Please confirm if the printer is connected." -msgstr "Kérlek, ellenőrizd, hogy a nyomtató csatlakoztatva van." +msgstr "Kérlek, ellenőrizd, hogy a nyomtató csatlakoztatva van-e." msgid "The printer is currently busy downloading. Please try again after it finishes." msgstr "A nyomtató a letöltéssel van elfoglalva. Kérlek, várd meg, amíg a letöltés befejeződik." msgid "Printer camera is malfunctioning." -msgstr "A nyomtató kamerája hibásan működik." +msgstr "A nyomtató kamerája nem működik megfelelően." msgid "A problem occurred. Please update the printer firmware and try again." -msgstr "Probléma merült fel. Kérlek, frissítsd a nyomtató firmware-ét, és próbáld meg újra." +msgstr "Probléma merült fel. Kérlek, frissítsd a nyomtató firmware-ét, majd próbáld újra." msgid "LAN Only Liveview is off. Please turn on the liveview on printer screen." msgstr "A csak LAN élőkép ki van kapcsolva. Kapcsold be az élőképet a nyomtató kijelzőjén." @@ -6664,10 +6668,10 @@ msgid "Initializing..." msgstr "Inicializálás…" msgid "Connection Failed. Please check the network and try again" -msgstr "Csatlakozás sikertelen. Kérlek, ellenőrizd a hálózatot, és próbáld újra" +msgstr "Csatlakozás sikertelen. Kérlek, ellenőrizd a hálózatot, majd próbáld újra" msgid "Please check the network and try again. You can restart or update the printer if the issue persists." -msgstr "Kérlek, ellenőrizd a hálózatot, és próbáld újra. Ha a probléma továbbra is fennáll, indítsd újra vagy frissítsd a nyomtatót." +msgstr "Kérlek, ellenőrizd a hálózatot, majd próbáld újra. Ha a probléma továbbra is fennáll, indítsd újra vagy frissítsd a nyomtatót." msgid "The printer has been logged out and cannot connect." msgstr "A nyomtató ki van jelentkezve, és nem tud csatlakozni." @@ -6694,7 +6698,7 @@ msgid "" "Do you want to stop this virtual camera?" msgstr "" "Már fut egy másik virtuális kamera.\n" -"A Orca Slicer csak egy virtuális kamerát támogat.\n" +"Az Orca Slicer csak egy virtuális kamerát támogat.\n" "Leállítod ezt a virtuális kamerát?" #, c-format, boost-format @@ -6735,7 +6739,7 @@ msgid "Timelapse" msgstr "Timelapse" msgid "Switch to timelapse files." -msgstr "Váltás timelapse fájlokra." +msgstr "Váltás Timelapse-fájlokra." # AI Translated msgid "Video" @@ -6809,11 +6813,11 @@ msgid "Failed to parse model information." msgstr "Nem sikerült feldolgozni a modellinformációkat" msgid "The .gcode.3mf file contains no G-code data. Please slice it with Orca Slicer and export a new .gcode.3mf file." -msgstr "A .gcode.3mf fájl nem tartalmaz G-kód adatot. Szeleteld újra Orca Slicerrel és exportálj egy új .gcode.3mf fájlt." +msgstr "A .gcode.3mf fájl nem tartalmaz G-kód-adatot. Szeleteld újra Orca Slicerrel, majd exportálj egy új .gcode.3mf fájlt." #, c-format, boost-format msgid "File '%s' was lost! Please download it again." -msgstr "A (z) '%s' fájl elveszett! Kérlek, töltsd le újra." +msgstr "A(z) '%s' fájl elveszett! Kérlek, töltsd le újra." #, c-format, boost-format msgid "" @@ -6852,7 +6856,7 @@ msgid "File does not exist." msgstr "A fájl nem létezik." msgid "File checksum error. Please retry." -msgstr "Fájl checksum hiba. Kérlek, próbáld újra." +msgstr "A fájl ellenőrzőösszege hibás. Kérlek, próbáld újra." msgid "Not supported on the current printer version." msgstr "A nyomtató jelenlegi szoftvere nem támogatja." @@ -7070,7 +7074,7 @@ msgid "Safety Options" msgstr "Biztonsági beállítások" msgid "Hotends" -msgstr "Hotendek" +msgstr "Fejegységek" msgid "Lamp" msgstr "Világítás" @@ -7142,7 +7146,7 @@ msgid "Layer: %d/%d" msgstr "Réteg: %d/%d" msgid "Please heat the nozzle to above 170℃ before loading or unloading filament." -msgstr "Kérlek, melegítsd a fúvókát 170 fok fölé a filament betöltése vagy kihúzása előtt." +msgstr "Kérlek, melegítsd a fúvókát 170℃ fölé a filament betöltése vagy kihúzása előtt." msgid "Chamber temperature cannot be changed in cooling mode while printing." msgstr "Nyomtatás közben hűtési módban a kamrahőmérséklet nem módosítható." @@ -7208,7 +7212,7 @@ msgid "Submit" msgstr "Elküldés" msgid "Please click on the star first." -msgstr "Kérlek, először kattints a csillagokra." +msgstr "Kérlek, először kattints a csillagra." msgid "Get oss config failed." msgstr "OSS-konfiguráció letöltése sikertelen." @@ -7454,8 +7458,8 @@ msgstr[1] "%1$d objektum vágott objektum részeként lett betöltve." #, c-format, boost-format msgid "%1$d object was loaded with fuzzy skin painting." msgid_plural "%1$d objects were loaded with fuzzy skin painting." -msgstr[0] "%1$d objektum bolyhos felület festéssel lett betöltve." -msgstr[1] "%1$d objektum bolyhos felület festéssel lett betöltve." +msgstr[0] "%1$d objektum barázdáltfelület-festéssel lett betöltve." +msgstr[1] "%1$d objektum barázdáltfelület-festéssel lett betöltve." msgid "ERROR" msgstr "HIBA" @@ -7582,7 +7586,7 @@ msgid "Enable detection of build plate position" msgstr "Nyomtatótálca helyzetének érzékelése" msgid "The localization tag of the build plate will be detected, and printing will be paused if the tag is not in predefined range." -msgstr "A nyomtató megkeresi a nyomtatótálca lokalizációs címkéjét, és szünetelteti a nyomtatást, ha az nem egy előre meghatározott tartományban van." +msgstr "A rendszer ellenőrzi a nyomtatótálca helyzetjelölő címkéjét, és szünetelteti a nyomtatást, ha a címke az előre meghatározott tartományon kívül esik." msgid "Build Plate Detection" msgstr "Tálcaészlelés" @@ -7771,7 +7775,7 @@ msgid "Compare presets" msgstr "Beállítások összehasonlítása" msgid "View all object's settings" -msgstr "Összes objektum beállításainak megtekintése" +msgstr "Az összes objektum beállításainak megtekintése" msgid "Material settings" msgstr "Anyagbeállítások" @@ -7877,7 +7881,7 @@ msgstr "Filamentváltó észlelve. Az összes AMS filament mostantól mindkét e # AI Translated msgid "A filament switcher is detected but not calibrated and thus currently unavailable. Please calibrate it on the printer and synchronize before use." -msgstr "A rendszer filamentváltót észlelt, de az nincs kalibrálva, ezért jelenleg nem használható. Kérlek, kalibráld a nyomtatón, és szinkronizáld a használat előtt." +msgstr "A rendszer filamentváltót észlelt, de az nincs kalibrálva, ezért jelenleg nem használható. Kérlek, kalibráld a nyomtatón, majd használat előtt szinkronizáld." msgid "Tips" msgstr "Tippek" @@ -7940,7 +7944,7 @@ msgstr "Pelletek" #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." -msgstr "A művelet befejezése után a(z) %s projekt bezárul, és egy új projekt jön létre." +msgstr "A művelet befejezésekor a(z) %s projekt bezárul, majd új projekt jön létre." msgid "There are no compatible filaments, and sync is not performed." msgstr "Nincs kompatibilis filament és nem történt szinkronizálás." @@ -7956,10 +7960,10 @@ msgstr "" "Frissítsd az Orca Slicert, vagy indítsd újra, hogy ellenőrizhesd a rendszerbeállítások frissítését." msgid "Only filament color information has been synchronized from printer." -msgstr "Csak a filament színinformációi lettek szinkronizálva a nyomtatóról." +msgstr "A nyomtatóról csak a filament színadatai szinkronizálódtak." msgid "Filament type and color information have been synchronized, but slot information is not included." -msgstr "A filament típus- és színinformációk szinkronizálva lettek, de a férőhelyinformáció nincs benne." +msgstr "A filament típus- és színadatai szinkronizálódtak, a férőhely adatai azonban nem." #, boost-format msgid "Do you want to save changes to \"%1%\"?" @@ -7986,10 +7990,10 @@ msgid "The nozzle hardness required by the filament is higher than the default n msgstr "Ez a filament nagyobb keménységű fúvókát igényel. Kérlek, cseréld ki a fúvókát vagy válassz másik filamentet, különben előfordulhat, hogy a fúvóka idő előtt elhasználódik vagy megsérül." msgid "Enabling traditional timelapse photography may cause surface imperfections. It is recommended to change to smooth mode." -msgstr "A hagyományos időfelvétel engedélyezése felületi hibákat okozhat. Javasoljuk, hogy válts a sima módra." +msgstr "A hagyományos Timelapse bekapcsolása felületi hibákat okozhat. Javasoljuk, hogy válts sima módra." msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again." -msgstr "A időfelvétel sima módja engedélyezett, de a törlőtorony ki van kapcsolva, ami nyomtatási hibákat okozhat. Kapcsold be a törlőtornyot, szeletelj újra, majd nyomtass ismét." +msgstr "A sima Timelapse mód be van kapcsolva, a törlőtorony azonban nincs, ami nyomtatási hibákat okozhat. Kapcsold be a törlőtornyot, szeletelj újra, majd nyomtass ismét." msgid "Expand sidebar" msgstr "Az oldalsáv kibontása" @@ -8024,7 +8028,7 @@ msgid "The 3MF file was generated by BambuStudio, loading geometry data only." msgstr "A 3MF fájlt a BambuStudio hozta létre, csak a geometriai adatok töltődnek be." msgid "This project was created with an OrcaSlicer 2.3.1-alpha and uses infill rotation template settings that may not work properly with your current infill pattern. This could result in weak support or print quality issues." -msgstr "Ez a projekt OrcaSlicer 2.3.1-alpha verzióval készült, és olyan kitöltésforgatási sablonbeállításokat használ, amelyek lehet, hogy nem működnek megfelelően a jelenlegi kitöltési mintával. Ez gyenge támaszt vagy nyomtatási minőségi problémákat okozhat." +msgstr "Ez a projekt az OrcaSlicer 2.3.1-alpha verziójával készült, és olyan kitöltésforgatási sablonbeállításokat használ, amelyek a jelenlegi kitöltési mintával nem feltétlenül működnek megfelelően. Ez gyenge alátámasztást vagy nyomtatási hibákat okozhat." msgid "Would you like OrcaSlicer to automatically fix this by clearing the rotation template settings?" msgstr "Szeretnéd, hogy az OrcaSlicer ezt automatikusan javítsa a forgatási sablonbeállítások törlésével?" @@ -8134,7 +8138,7 @@ msgid "Connected printer is %s. It must match the project preset for printing.\n msgstr "A csatlakoztatott nyomtató: %s. Ennek egyeznie kell a projekt nyomtatásához használt beállítással.\n" msgid "Do you want to sync the printer information and automatically switch the preset?" -msgstr "Szeretnéd szinkronizálni a nyomtató adatait, és automatikusan átváltani a beállítást?" +msgstr "Szeretnéd szinkronizálni a nyomtató adatait és automatikusan átváltani a beállítást?" msgid "The file does not contain any geometry data." msgstr "A fájl nem tartalmaz geometriai adatokat." @@ -8225,7 +8229,7 @@ msgid "Select a new file" msgstr "Válassz egy új fájlt" msgid "File for the replacement wasn't selected" -msgstr "A cserefájl nem lett kiválasztva" +msgstr "Nincs kiválasztva cserefájl" # AI Translated msgid "Replace with 3D file" @@ -8240,21 +8244,21 @@ msgstr "A cseréhez nem lett mappa kiválasztva" msgid "Replaced with 3D files from directory:\n" msgstr "Cserélve a mappából származó 3D fájlokra:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Kihagyva %1%: azonos fájl.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ %s kihagyva: azonos fájl.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Kihagyva %1%: a fájl nem létezik.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ %s kihagyva: a fájl nem létezik.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Kihagyva %1%: a csere sikertelen.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ %s kihagyva: a csere sikertelen.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Lecserélve: %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔%s lecserélve.\n" msgid "Replaced volumes" msgstr "Lecserélt térfogatok" @@ -8298,7 +8302,7 @@ msgid "Slicing Plate %d" msgstr "%d tálca szeletelése" msgid "Please resolve the slicing errors and publish again." -msgstr "Kérlek, orvosold a szeletelési hibákat, és próbáld meg újra." +msgstr "Kérlek, javítsd ki a szeletelési hibákat, majd tedd közzé újra." msgid "Network plug-in switched successfully." msgstr "A hálózati bővítmény sikeresen átváltva." @@ -8360,7 +8364,7 @@ msgid "Download failed; unknown file format." msgstr "Letöltés sikertelen, ismeretlen fájlformátum." msgid "Downloading project..." -msgstr "projekt letöltése ..." +msgstr "Projekt letöltése..." msgid "Download failed; File size exception." msgstr "Letöltés sikertelen, fájlméret kivétel." @@ -8370,7 +8374,7 @@ msgid "Project downloaded %d%%" msgstr "Projekt letöltve %d%%" msgid "Importing to Orca Slicer failed. Please download the file and manually import it." -msgstr "Az Orca Slicerbe importálás sikertelen. Töltsd le a fájlt és manuálisan importáljad." +msgstr "Az Orca Slicerbe importálás sikertelen. Töltsd le a fájlt, majd importáld kézzel." # AI Translated msgid "INFO:" @@ -8461,7 +8465,7 @@ msgstr "Szeletelt fájl mentése mint:" #, c-format, boost-format msgid "The file %s has been sent to the printer's storage space and can be viewed on the printer." -msgstr "A(z) %s fájl elküldésre került a nyomtatóra, és megtekinthető a nyomtatón." +msgstr "A(z) %s fájlt elküldtük a nyomtató tárhelyére. A fájl a nyomtatón tekinthető meg." msgid "The nozzle type is not set. Please set the nozzle and try again." msgstr "A fúvókatípus nincs beállítva. Állítsd be a fúvókát, majd próbáld újra." @@ -8792,7 +8796,7 @@ msgid "Units" msgstr "Mértékegység" msgid "Home" -msgstr "Haza" +msgstr "Kezdőlap" msgid "Default page" msgstr "Alapértelmezett oldal" @@ -9210,6 +9214,21 @@ msgstr "Alsó rétegek elhalványítása" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "A rétegcsúszka mozgatásakor a szeletelt előnézetben az aktuális réteg alatti rétegeket sötétítve jeleníti meg, így csak az éppen megtekintett réteg látszik teljes fényerővel." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Elhalványított rétegek fényereje" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Milyen fényesen jelenjenek meg az elhalványított rétegek, ha az \"Alsó rétegek elhalványítása\" be van kapcsolva.\n" +"A 99% alig sötétít, a 0% feketére vált. A felső határ 99%, mert a 100% ugyanaz lenne, mint az opció kikapcsolása." + msgid "Login region" msgstr "Régió" @@ -9292,7 +9311,7 @@ msgid "Select the network plug-in version to use" msgstr "A használandó hálózati bővítmény verzió kiválasztása" msgid "Associate files to OrcaSlicer" -msgstr "Fájlok társítása a OrcaSlicerhoz" +msgstr "Fájlok társítása az OrcaSlicerhez" # AI Translated msgid "File associations for the Microsoft Store version are managed by Windows Settings." @@ -9303,10 +9322,10 @@ msgid "Open Windows Default Apps Settings" msgstr "A Windows alapértelmezett alkalmazások beállításainak megnyitása" msgid "Associate 3MF files to OrcaSlicer" -msgstr ".3mf fájlok társítása a OrcaSlicerhoz" +msgstr ".3mf fájlok társítása az OrcaSlicerhez" msgid "If enabled, this sets OrcaSlicer as the default application to open 3MF files." -msgstr "Ha engedélyezve van, a OrcaSlicer-t állítja be alapértelmezett alkalmazásként a 3MF file fájlok megnyitásához" +msgstr "Bekapcsolva az OrcaSlicert állítja be alapértelmezett alkalmazásként a 3MF-fájlok megnyitásához" msgid "Associate DRC files to OrcaSlicer" msgstr "DRC fájlok társítása OrcaSlicerhez" @@ -9315,16 +9334,16 @@ msgid "If enabled, sets OrcaSlicer as default application to open DRC files." msgstr "Ha engedélyezve van, az OrcaSlicer lesz az alapértelmezett alkalmazás DRC fájlok megnyitásához." msgid "Associate STL files to OrcaSlicer" -msgstr ".stl fájlok társítása a OrcaSlicerhoz" +msgstr ".stl fájlok társítása az OrcaSlicerhez" msgid "If enabled, this sets OrcaSlicer as the default application to open STL files." -msgstr "Ha engedélyezve van, a OrcaSlicer-t állítja be alapértelmezett alkalmazásként az .stl fájlok megnyitásához" +msgstr "Bekapcsolva az OrcaSlicert állítja be alapértelmezett alkalmazásként az .stl fájlok megnyitásához" msgid "Associate STEP files to OrcaSlicer" -msgstr ".step/.stp fájlok társítása a OrcaSlicerhoz" +msgstr ".step/.stp fájlok társítása az OrcaSlicerhez" msgid "If enabled, this sets OrcaSlicer as the default application to open STEP files." -msgstr "Ha engedélyezve van, a OrcaSlicer-t állítja be alapértelmezett alkalmazásként a .step fájlok megnyitásához" +msgstr "Bekapcsolva az OrcaSlicert állítja be alapértelmezett alkalmazásként a .step fájlok megnyitásához" msgid "Associate web links to OrcaSlicer" msgstr "Webhivatkozások társítása OrcaSlicerhez" @@ -9583,7 +9602,7 @@ msgid "Jump to model publish web page" msgstr "Ugrás a modell közzététele weboldalra" msgid "Note: The preparation may take several minutes. Please be patient." -msgstr "Megjegyzés: Az előkészítés több percig is eltarthat. Kérlek várj." +msgstr "Megjegyzés: Az előkészítés több percig is eltarthat. Kérlek, várj." msgid "Publish" msgstr "Közzététel" @@ -9694,7 +9713,7 @@ msgid "Not satisfied with the grouping of filaments? Regroup and slice ->" msgstr "Nem elégedett a filamentek csoportosításával? Csoportosítsd újra és szeleteld ->" msgid "Manually change external spool during printing for multi-color printing" -msgstr "Többszínű nyomtatáshoz manuálisan cseréld a külső tekercset nyomtatás közben" +msgstr "Többszínű nyomtatáskor kézzel kell cserélni a külső tekercset" msgid "Multi-color with external" msgstr "Többszínű nyomtatás külső tekercssel" @@ -9708,7 +9727,7 @@ msgstr "A nyomtatási minőség biztosítása érdekében a szárítási hőmér # AI Translated msgid "Select timelapse storage location" -msgstr "Válaszd ki a timelapse tárolási helyét" +msgstr "Válaszd ki a Timelapse tárolási helyét" msgid "Auto Bed Leveling" msgstr "Automatikus asztalszintezés" @@ -9818,10 +9837,10 @@ msgstr "A kiválasztott nyomtató (%s) nem kompatibilis a nyomtatási fájl konf # AI Translated msgid "When spiral vase mode is enabled, machines with I3 structure will not generate timelapse videos." -msgstr "Ha a spirál (váza) mód be van kapcsolva, az I3 felépítésű gépek nem készítenek timelapse videót." +msgstr "Ha a spirál (váza) mód be van kapcsolva, az I3 felépítésű gépek nem készítenek Timelapse-videót." msgid "The current printer does not support timelapse in Traditional Mode when printing By-Object." -msgstr "Az aktuális nyomtató nem támogatja az időfelvételt hagyományos módban, ha a nyomtatás objektumonként történik." +msgstr "A jelenlegi nyomtató tárgyankénti nyomtatásnál nem támogatja a hagyományos Timelapse módot." # AI Translated msgid "I have checked the installed nozzle and want to print anyway." @@ -9863,7 +9882,7 @@ msgstr "Belső" # AI Translated #, c-format, boost-format msgid "%s space less than 20MB. Timelapse may not save properly. You can turn it off or" -msgstr "A(z) %s szabad területe kevesebb mint 20 MB. Előfordulhat, hogy a timelapse nem mentődik el megfelelően. Kikapcsolhatod, vagy" +msgstr "A(z) %s eszközön kevesebb mint 20 MB szabad hely van. Előfordulhat, hogy a Timelapse nem menthető megfelelően. Kikapcsolhatod, vagy" # AI Translated msgid "Clean up files" @@ -9871,15 +9890,15 @@ msgstr "Fájlok törlése" # AI Translated msgid "Low internal storage. This timelapse will overwrite the oldest video files." -msgstr "Kevés a belső tárhely. Ez a timelapse felülírja a legrégebbi videofájlokat." +msgstr "Kevés a belső tárhely. Ez a Timelapse felülírja a legrégebbi videofájlokat." # AI Translated msgid "Low external storage. This timelapse will overwrite the oldest video files." -msgstr "Kevés a külső tárhely. Ez a timelapse felülírja a legrégebbi videofájlokat." +msgstr "Kevés a külső tárhely. Ez a Timelapse felülírja a legrégebbi videofájlokat." # AI Translated msgid "Insufficient external storage for time-lapse photography. Connect to computer to delete files, or use a larger memory card." -msgstr "Nincs elég külső tárhely a timelapse felvételhez. Csatlakoztasd számítógéphez a fájlok törléséhez, vagy használj nagyobb memóriakártyát." +msgstr "Nincs elég külső tárhely a Timelapse-felvételhez. A fájlok törléséhez csatlakoztasd a számítógéphez, vagy használj nagyobb memóriakártyát." # AI Translated msgid "Storage Space Not Enough" @@ -9921,11 +9940,11 @@ msgstr "Jelenleg nincs elég elérhető fejegység." # AI Translated msgid "Please complete the hotend rack setup and try again." -msgstr "Kérlek, fejezd be a fejegységtartó beállítását, és próbáld újra." +msgstr "Kérlek, fejezd be a fejegységtartó beállítását, majd próbáld újra." # AI Translated msgid "Please refresh the nozzle information and try again." -msgstr "Kérlek, frissítsd a fúvókaadatokat, és próbáld újra." +msgstr "Kérlek, frissítsd a fúvókaadatokat, majd próbáld újra." # AI Translated msgid "Please re-slice to avoid filament waste." @@ -9950,7 +9969,7 @@ msgstr "A szerszámfej és a fejegységtartó tele van. Kérlek, távolíts el l #, c-format, boost-format msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing." -msgstr "A(z) %s(%s) fúvókaáramlási beállítása nem egyezik a szeletelési fájl értékével (%s). Győződj meg róla, hogy a beszerelt fúvóka megegyezik a nyomtató beállításaival, majd szeleteléskor állítsd be a megfelelő nyomtató-előbeállítást." +msgstr "A(z) %s(%s) fúvókaáramlási beállítása nem egyezik a szeletelési fájl értékével (%s). Győződj meg róla, hogy a beszerelt fúvóka megfelel a nyomtatóbeállításoknak, majd szeleteléskor válaszd ki a megfelelő nyomtatóbeállítást." msgid "Tips: If you changed your nozzle of your printer lately, please go to 'Device -> Printer parts' to change your nozzle setting." msgstr "Tipp: Ha nemrég cseréltél fúvókát a nyomtatón, lépj az 'Eszköz -> Nyomtató alkatrészei' menübe, és módosítsd a fúvóka beállítását." @@ -9972,7 +9991,7 @@ msgstr "A jelenlegi anyag keménysége (%s) meghaladja a(z) %s (%s) keménység # AI Translated msgid "Your current firmware version cannot start this print job. Please update to the latest version and try again." -msgstr "A jelenlegi firmware-verzió nem tudja elindítani ezt a nyomtatási feladatot. Kérlek, frissíts a legújabb verzióra, és próbáld újra." +msgstr "Ezzel a firmware-verzióval nem indítható el a nyomtatási feladat. Frissíts a legújabb verzióra, majd próbáld újra." # AI Translated #, c-format, boost-format @@ -9981,7 +10000,7 @@ msgstr "A jelenlegi anyag (%s) keménysége meghaladja a következő keménység # AI Translated msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended." -msgstr "Egyes filamentek nyomtatás közben extrudert válthatnak. A kézi K-érték kalibrálás nem alkalmazható a teljes nyomtatás során, ami befolyásolhatja a nyomtatási minőséget. Javasolt a dinamikus anyagáramlás-kalibrálás bekapcsolása." +msgstr "Egyes filamentek nyomtatás közben extrudert válthatnak. A kézi K-érték kalibrálás nem alkalmazható a teljes nyomtatás során, ami ronthatja a nyomtatási minőséget. Javasolt az áramlásdinamika-kalibrálás bekapcsolása." # AI Translated msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode." @@ -10001,14 +10020,14 @@ msgstr "[ %s ] magas hőmérsékletű környezetben történő nyomtatást igén #, c-format, boost-format msgid "The filament on %s may soften. Please unload." -msgstr "A(z) %s filament meglágyulhat. Kérlek, töltsd ki." +msgstr "A(z) %s filament meglágyulhat. Kérlek, vedd ki a filamentet." #, c-format, boost-format msgid "The filament on %s is unknown and may soften. Please set filament." msgstr "A(z) %s filament ismeretlen és meglágyulhat. Állítsd be a filamentet." msgid "Unable to automatically match to suitable filament. Please click to manually match." -msgstr "Nem sikerült automatikusan megfelelő filamentet párosítani. Kattints a manuális párosításhoz." +msgstr "Nem sikerült automatikusan megfelelő filamentet párosítani. Kattints rá a kézi párosításhoz." msgid "Install toolhead enhanced cooling fan to prevent filament softening." msgstr "Szerelj fel nyomtatófejhez való megerősített hűtőventilátort a filament meglágyulásának megelőzéséhez." @@ -10062,7 +10081,7 @@ msgid "Please do not mix-use the Ext with AMS." msgstr "Kérlek, ne használd vegyesen az Ext-et az AMS-sel." msgid "Invalid nozzle information, please refresh or manually set nozzle information." -msgstr "Érvénytelen fúvóka-információ, frissítsd vagy állítsd be manuálisan a fúvókaadatokat." +msgstr "Érvénytelenek a fúvóka adatai. Frissítsd őket, vagy add meg az adatokat kézzel." msgid "Storage needs to be inserted before printing via LAN." msgstr "LAN-on történő nyomtatás előtt be kell helyezni a tárolót." @@ -10080,13 +10099,13 @@ msgid "Cannot send a print job for an empty plate." msgstr "Nem küldhetsz nyomtatási feladatot egy üres tálcával." msgid "Storage needs to be inserted to record timelapse." -msgstr "Időfelvétel rögzítéséhez be kell helyezni a tárolót." +msgstr "Timelapse-felvételhez be kell helyezni a tárolót." msgid "You have selected both external and AMS filaments for an extruder. You will need to manually switch the external filament during printing." -msgstr "Egy extruderhez külső és AMS filamentet is kiválasztottál. Nyomtatás közben manuálisan kell váltanod a külső filamentet." +msgstr "Egy extruderhez külső és AMS-filamentet is kiválasztottál. Nyomtatás közben kézzel kell cserélned a külső filamentet." msgid "TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics calibration." -msgstr "A TPU 90A/TPU 85A túl puha, nem támogatja az automatikus Flow Dynamics kalibrálást." +msgstr "A TPU 90A/TPU 85A túl puha, ezért nem támogatja az automatikus áramlásdinamika-kalibrálást." msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value." msgstr "Állítsd a dinamikus áramlás kalibrálást 'KI'-re az egyéni dinamikus áramlásérték engedélyezéséhez." @@ -10126,7 +10145,7 @@ msgid "External Storage" msgstr "Külső tároló" msgid "Upload file timeout, please check if the firmware version supports it." -msgstr "Fájlfeltöltés időtúllépés, ellenőrizd, hogy a firmware verzió támogatja-e." +msgstr "A fájl feltöltése időtúllépés miatt megszakadt. Ellenőrizd, hogy a firmware-verzió támogatja-e a feltöltést." msgid "Connection timed out, please check your network." msgstr "Kapcsolat időtúllépés, ellenőrizd a hálózatot." @@ -10154,7 +10173,7 @@ msgid "Sending..." msgstr "Küldés..." msgid "File upload timed out. Please check if the firmware version supports this operation or verify if the printer is functioning properly." -msgstr "Fájlfeltöltés időtúllépés. Ellenőrizd, hogy a firmware verzió támogatja-e ezt a műveletet, és hogy a nyomtató megfelelően működik-e." +msgstr "A fájl feltöltése időtúllépés miatt megszakadt. Ellenőrizd, hogy a firmware-verzió támogatja-e ezt a műveletet, és hogy a nyomtató megfelelően működik-e." # AI Translated msgid "Sending failed, please try again!" @@ -10231,7 +10250,7 @@ msgid "Terms and Conditions" msgstr "Felhasználási feltételek" msgid "Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab device, please read the terms and conditions. By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policy and Terms of Use (collectively, the \"Terms\"). If you do not comply with or agree to the Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." -msgstr "Köszönjük, hogy Bambu Lab eszközt vásároltál. A Bambu Lab eszköz használata előtt kérlek, olvasd el a felhasználási feltételeket. Azzal, hogy rákattintasz az elfogadásra, hozzájárulsz ahhoz, hogy a Bambu Lab eszközt a adatvédelmi irányelvek és a Felhasználási feltételek (együttesen: \"Feltételek\") szerint használd. Ha nem fogadod el vagy nem tartod be a Bambu Lab adatvédelmi irányelvek rendelkezéseit, kérlek, ne használd a Bambu Lab eszközöket és szolgáltatásokat." +msgstr "Köszönjük, hogy Bambu Lab eszközt vásároltál. A Bambu Lab eszköz használata előtt kérlek, olvasd el a felhasználási feltételeket. Azzal, hogy rákattintasz az elfogadásra, hozzájárulsz ahhoz, hogy a Bambu Lab eszközt az adatvédelmi irányelvek és a Felhasználási feltételek (együttesen: \"Feltételek\") szerint használd. Ha nem fogadod el vagy nem tartod be a Bambu Lab adatvédelmi irányelvek rendelkezéseit, kérlek, ne használd a Bambu Lab eszközöket és szolgáltatásokat." msgid "and" msgstr "és" @@ -10240,14 +10259,14 @@ msgid "Privacy Policy" msgstr "Adatvédelmi szabályzat" msgid "We ask for your help to improve everyone's printer" -msgstr "Kérlek a segítségedet, hogy mindenki nyomtatója jobb legyen" +msgstr "Segíts, hogy mindenki nyomtatója jobb legyen" msgid "Statement about User Experience Improvement Program" msgstr "Nyilatkozat a Felhasználói Élmény Fejlesztési Programról" #, c-format, boost-format msgid "In the 3D Printing community, we learn from each other's successes and failures to adjust our own slicing parameters and settings. %s follows the same principle and uses machine learning to improve its performance from the successes and failures of the vast number of prints by our users. We are training %s to be smarter by feeding them the real-world data. If you are willing, this service will access information from your error logs and usage logs, which may include information described in Privacy Policy. We will not collect any Personal Data by which an individual can be identified directly or indirectly, including without limitation names, addresses, payment information, or phone numbers. By enabling this service, you agree to these terms and the statement about Privacy Policy." -msgstr "A 3D nyomtatási közösségben egymás sikereiből és hibáiból tanulunk, hogy saját szeletelési paramétereinket és beállításainkat finomhangoljuk. %s ugyanezt az elvet követi, és gépi tanulást használ arra, hogy a felhasználóink nagyszámú nyomtatásának sikereiből és hibáiból javítsa a teljesítményét. Valós adatokkal tesszük okosabbá %s működését. Ha hozzájárulsz, ez a szolgáltatás hozzáfér az error logokhoz és a használati naplókhoz, amelyek az adatvédelmi irányelvek által leírt információkat is tartalmazhatják. Nem gyűjtünk olyan személyes adatokat, amelyek alapján egy személy közvetlenül vagy közvetve azonosítható, ideértve korlátozás nélkül a neveket, címeket, fizetési információkat vagy telefonszámokat. A szolgáltatás engedélyezésével elfogadod ezeket a feltételeket és a adatvédelmi irányelvekre vonatkozó nyilatkozatot." +msgstr "A 3D nyomtatási közösségben egymás sikereiből és hibáiból tanulunk, hogy saját szeletelési paramétereinket és beállításainkat finomhangoljuk. %s ugyanezt az elvet követi és gépi tanulást használ arra, hogy a felhasználóink nagyszámú nyomtatásának sikereiből és hibáiból javítsa a teljesítményét. Valós adatokkal tesszük okosabbá %s működését. Ha hozzájárulsz, ez a szolgáltatás hozzáfér a hibanaplókhoz és a használati naplókhoz, amelyek az adatvédelmi irányelvek által leírt információkat is tartalmazhatják. Nem gyűjtünk olyan személyes adatokat, amelyek alapján egy személy közvetlenül vagy közvetve azonosítható, ideértve korlátozás nélkül a neveket, címeket, fizetési információkat vagy telefonszámokat. A szolgáltatás engedélyezésével elfogadod ezeket a feltételeket és az adatvédelmi irányelvekre vonatkozó nyilatkozatot." msgid "Statement on User Experience Improvement Plan" msgstr "Nyilatkozat a Felhasználói Élmény Fejlesztési Tervről" @@ -10296,7 +10315,7 @@ msgid "Prime tower is required for nozzle changing. There may be flaws on the mo msgstr "A fúvókacsere miatt szükség van a törlőtoronyra. Nélküle előfordulhatnak hibák a nyomtatott tárgyon. Biztos, hogy kikapcsolod a törlőtornyot?" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?" -msgstr "A sima időfelvétel miatt szükség van a törlőtoronyra. Nélküle előfordulhatnak hibák a nyomtatott tárgyon. Biztos, hogy kikapcsolod a törlőtornyot?" +msgstr "A sima Timelapse módhoz törlőtorony szükséges. Nélküle hibák jelenhetnek meg a nyomtatott tárgyon. Biztosan kikapcsolod a törlőtornyot?" msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?" msgstr "A csomósodás-észleléshez szükség van a törlőtoronyra. Nélküle előfordulhatnak hibák a nyomtatott tárgyon. Biztos, hogy kikapcsolod a törlőtornyot?" @@ -10311,7 +10330,7 @@ msgid "Enabling both precise Z height and the prime tower may cause slicing erro msgstr "A pontos Z magasság és a törlőtorony egyidejű engedélyezése szeletelési hibákat okozhat. Továbbra is engedélyezi a pontos Z magasságot?" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?" -msgstr "A sima időfelvétel miatt szükség van a törlőtoronyra. Nélküle előfordulhatnak hibák a nyomtatott tárgyon. Engedélyezed a törlőtornyot?" +msgstr "A sima Timelapse módhoz törlőtorony szükséges. Nélküle hibák jelenhetnek meg a nyomtatott tárgyon. Bekapcsolod a törlőtornyot?" msgid "Still print by object?" msgstr "Továbbra is tárgyanként szeretnél nyomtatni?" @@ -10336,8 +10355,8 @@ msgid "" "No - Do not change these settings for me." msgstr "" "Automatikusan megváltoztatod ezeket a beállításokat?\n" -"Igen - Módosítsa ezeket a beállításokat\n" -"Nem - Ne változtassa meg a beállításokat" +"Igen - Módosítsd ezeket a beállításokat\n" +"Nem - Ne módosítsd a beállításokat" msgid "" "When using soluble material for the support interface, we recommend the following settings:\n" @@ -10355,7 +10374,7 @@ msgid "Are you sure you want to enable this option?" msgstr "Biztos, hogy engedélyezed ezt az opciót?" msgid "Infill patterns are typically designed to handle rotation automatically to ensure proper printing and achieve their intended effects (e.g., Gyroid, Cubic). Rotating the current sparse infill pattern may lead to insufficient support. Please proceed with caution and thoroughly check for any potential printing issues. Are you sure you want to enable this option?" -msgstr "A kitöltési minták általában úgy vannak kialakítva, hogy a forgatást automatikusan kezeljék a megfelelő nyomtatás és a kívánt hatás elérése érdekében (pl. Gyroid, Cubic). Az aktuális ritka kitöltési minta forgatása elégtelen alátámasztáshoz vezethet. Kérlek, körültekintően járj el, és alaposan ellenőrizd a lehetséges nyomtatási problémákat. Biztos, hogy engedélyezed ezt az opciót?" +msgstr "A kitöltési minták általában maguk kezelik a forgatást a megfelelő nyomtatás és a kívánt hatás elérése érdekében (pl. Gyroid, Cubic). A jelenlegi kitöltési minta elforgatása elégtelen alátámasztáshoz vezethet. Kérlek, járj el körültekintően, és alaposan ellenőrizd a lehetséges nyomtatási problémákat. Biztos, hogy engedélyezed ezt a beállítást?" msgid "" "Layer height is too small.\n" @@ -10382,7 +10401,9 @@ msgstr "Kísérleti funkció: Filamentcsere közben nagyobb távolságon törté msgid "" "When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n" "by right-click the empty position of build plate and choose \"Add Primitive\"->\"Timelapse Wipe Tower\"." -msgstr "Ha a nyomtatófej nélküli időfelvétel engedélyezve van, javasoljuk, hogy helyezz el a tálcán egy \"Időfelvétel törlőtornyot\". Ehhez kattints jobb gombbal a tálca egy üres részére, majd válaszd a \"Primitív hozzáadása\" -> \"Időfelvétel törlőtorony\" lehetőséget." +msgstr "" +"Ha nyomtatófej nélküli Timelapse-felvételt készítesz, érdemes hozzáadni egy „Timelapse törlőtornyot”.\n" +"Kattints jobb gombbal az asztal egy üres részére, majd válaszd a „Primitív hozzáadása” -> „Timelapse törlőtorony” lehetőséget." msgid "A copy of the current system preset will be created, which will be detached from the system preset." msgstr "Létrejön az aktuális rendszer-előbeállítás másolata, amely leválik a rendszer-előbeállításról." @@ -10391,7 +10412,7 @@ msgid "The current custom preset will be detached from the parent system preset. msgstr "Az aktuális egyéni-előbeállítás leválik a szülő rendszer-előbeállításáról." msgid "Modifications to the current profile will be saved." -msgstr "Az aktuális profil módosításai mentésre kerülnek." +msgstr "Menti az aktuális profil módosításait." msgid "" "This action is not revertible.\n" @@ -10485,7 +10506,7 @@ msgid "Overhang speed" msgstr "Sebesség túlnyúlásnál" msgid "This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used" -msgstr "Nyomtatási sebesség a különböző mértékű túlnyúlásoknál. A túlnyúlás mértéke a vonalszélesség százalékában van kifejezve. A 0 sebesség azt jelenti, hogy nem történik lassítás, és a fal nyomtatási sebessége kerül alkalmazásra." +msgstr "Nyomtatási sebesség a különböző mértékű túlnyúlásoknál. A túlnyúlás mértéke a vonalszélesség százalékában van kifejezve. A 0 sebesség azt jelenti, hogy nincs lassítás, és a rendszer a fal nyomtatási sebességét használja." msgid "Set speed for external and internal bridges" msgstr "Sebesség beállítása a külső és belső hidakhoz" @@ -10576,7 +10597,7 @@ msgid "Recommended nozzle temperature range of this filament. 0 means not set" msgstr "Az ajánlott fúvóka hőmérséklet-tartomány ehhez a filamenthez. A 0 azt jelenti, hogy nincs beállítva" msgid "Flow ratio and Pressure Advance" -msgstr "Anyagáramlási arány és nyomáskiegyenlítés" +msgstr "Anyagáramlás és nyomáselőtolás" msgid "Print chamber temperature" msgstr "Nyomtatókamra hőmérséklete" @@ -10603,34 +10624,34 @@ msgid "Nozzle temperature when printing" msgstr "Fúvóka hőmérséklete nyomtatáskor" msgid "Bed temperature when the Cool Plate SuperTack is installed. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "Asztalhőmérséklet a Cool Plate SuperTack használatakor. A 0 érték azt jelenti, hogy a filament nem támogatja a Cool Plate SuperTack-re történő nyomtatást." +msgstr "Asztalhőmérséklet a SuperTack hűvös tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható erre a tálcára." # AI Translated msgid "Cool Plate" msgstr "Hűvös tálca" msgid "This is the bed temperature when the Cool Plate is installed. A value of 0 means the filament does not support printing on the Cool Plate." -msgstr "Asztalhőmérséklet a hideg tálca használatával. A 0 érték azt jelenti, hogy a filament nem támogatja a Cool Plate-re történő nyomtatást" +msgstr "Asztalhőmérséklet a hűvös tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható erre a tálcára." # AI Translated msgid "Textured Cool Plate" msgstr "Texturált hűvös tálca" msgid "This is the bed temperature when the Textured Cool Plate is installed. A value of 0 means the filament does not support printing on the Textured Cool Plate." -msgstr "Asztalhőmérséklet a Textured Cool Plate használatakor. A 0 érték azt jelenti, hogy a filament nem támogatja a Textured Cool Plate-re történő nyomtatást." +msgstr "Asztalhőmérséklet a texturált hűvös tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható erre a tálcára." msgid "This is the bed temperature when the engineering plate is installed. A value of 0 means the filament does not support printing on the Engineering Plate." -msgstr "Asztalhőmérséklet a mérnöki tálca használatával. A 0 érték azt jelenti, hogy a filament nem támogatja az Engineering Plate-re történő nyomtatást" +msgstr "Asztalhőmérséklet a műszaki tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható erre a tálcára." msgid "Smooth PEI Plate / High Temp Plate" msgstr "Sima PEI tálca / magas hőmérsékletű tálca" msgid "This is the bed temperature when the Smooth PEI Plate/High Temperature Plate is installed. A value of 0 means the filament does not support printing on the Smooth PEI Plate/High Temp Plate." -msgstr "Az asztal hőmérséklete Smooth PEI / High Temperature tálca használatakor. A 0 érték azt jelenti, hogy a filament nem támogatja Smooth PEI / High Temperature tálcára történő nyomtatást" +msgstr "Asztalhőmérséklet a sima PEI / magas hőmérsékletű tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható ezekre a tálcákra." # AI Translated msgid "This is the bed temperature when the Textured PEI Plate is installed. A value of 0 means the filament does not support printing on the Textured PEI Plate." -msgstr "Asztalhőmérséklet a texturált PEI tálca használatával. A 0 érték azt jelenti, hogy a filament nem támogatja a Textured PEI Plate-re történő nyomtatást" +msgstr "Asztalhőmérséklet a texturált PEI tálca használatakor. A 0 azt jelenti, hogy a filament nem nyomtatható erre a tálcára." msgid "Volumetric speed limitation" msgstr "Volumetrikus sebességhatár" @@ -10744,13 +10765,13 @@ msgid "Layer change G-code" msgstr "Rétegváltás G-kód" msgid "Timelapse G-code" -msgstr "Időfelvétel G-kód" +msgstr "Timelapse G-kód" msgid "Clumping Detection G-code" msgstr "Csomósodásészlelés G-kód" msgid "Change filament G-code" -msgstr "Filament csere G-kód" +msgstr "Filamentcsere G-kód" msgid "Pause G-code" msgstr "Szünet G-kód" @@ -10858,8 +10879,8 @@ msgstr "A más beállítások által örökölt beállítások nem törölhetők msgid "The following presets inherit this preset." msgid_plural "The following preset inherits this preset." -msgstr[0] "A következő profilok öröklik ezt a profilt." -msgstr[1] "A következő profil örökli ezt a profilt." +msgstr[0] "A következő profil örökli ezt a profilt." +msgstr[1] "A következő profilok öröklik ezt a profilt." #. TRN Remove/Delete #, boost-format @@ -11008,9 +11029,9 @@ msgid "" "will be transferred to\n" "\"%2%\"." msgstr "" -"Minden „Új érték” beállítás módosítva\n" +"A(z)\n" "\"%1%\"\n" -"címre kerülnek át\n" +"beállításban módosított összes „Új érték” átkerül ide:\n" "\"%2%\"." #, boost-format @@ -11019,15 +11040,15 @@ msgid "" "\"%1%\"\n" "and \"%2%\" will open without any changes." msgstr "" -"Minden „Új érték” beállítás mentésre kerül\n" +"Az összes „Új érték” mentési helye:\n" "\"%1%\"\n" -"és a \"%2%\" változtatás nélkül nyílik meg." +"A(z) \"%2%\" módosítás nélkül nyílik meg." msgid "Click the right mouse button to display the full text." msgstr "Kattints a jobb egérgombbal a teljes szöveg megjelenítéséhez." msgid "No changes will be saved." -msgstr "A módosítások nem kerülnek mentésre" +msgstr "Nem menti a módosításokat." msgid "All changes will be discarded." msgstr "Minden változtatás el lesz vetve." @@ -11273,8 +11294,8 @@ msgid "" "The color has been selected, you can choose OK \n" " to continue or manually adjust it." msgstr "" -"A szín ki lett választva, az OK gombbal folytathatod,\n" -" vagy akár manuálisan is módosíthatod." +"A szín ki van választva. Az OK gombbal folytathatod, \n" +" vagy kézzel is módosíthatod." msgid "—> " msgstr "—> " @@ -11385,10 +11406,10 @@ msgid "The selected printer (%s) is incompatible with the chosen printer profile msgstr "A kiválasztott nyomtató (%s) nem kompatibilis a szeletelőben kiválasztott nyomtatóprofillal (%s)." msgid "Timelapse is not supported because Print sequence is set to \"By object\"." -msgstr "Az időfelvétel nem támogatott ebben a módban, mert a nyomtatási sorrend \"Tárgyanként\" értékre van állítva." +msgstr "A Timelapse ebben a módban nem támogatott, mert a nyomtatási sorrend \"Tárgyanként\" értékre van állítva." msgid "You selected external and AMS filament at the same time in an extruder, you will need manually change external filament." -msgstr "Ugyanabban az extruderben egyszerre választottál külső és AMS filamentet, ezért a külső filamentet manuálisan kell majd cserélned." +msgstr "Ugyanabban az extruderben egyszerre választottál külső és AMS-filamentet, ezért nyomtatás közben kézzel kell cserélned a külső filamentet." msgid "Successfully synchronized nozzle information." msgstr "A fúvókainformációk szinkronizálása sikerült." @@ -11469,7 +11490,7 @@ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please ins msgstr "A natív Wayland élőképhez a GStreamer GTK videonyelő szükséges. Telepítsd a gtksink beépülő modult a GStreamerhez, majd indítsd újra az OrcaSlicert." msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Nem sikerült inicializálni a natív Wayland GStreamer videonyelőt.Ellenőrizd a GStreamer GTK bővítmény telepítését." +msgstr "Nem sikerült inicializálni a natív Wayland GStreamer videonyelőt. Ellenőrizd a GStreamer GTK bővítmény telepítését." msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" msgstr "Ehhez a művelethez Windows Media Player szükséges. Szeretnéd engedélyezni a \"Windows Media Player\"-t az operációs rendszerben?" @@ -11478,16 +11499,16 @@ msgid "BambuSource has not correctly been registered for media playing! Press Ye msgstr "A BambuSource nincs megfelelően regisztrálva médialejátszáshoz. Kattints az Igen gombra az újbóli regisztráláshoz. Kétszer kapsz majd megerősítési kérést." msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Hiányzó BambuSource komponens a média lejátszáshoz! Kérjük, telepítse újra az OrcaSlicert, vagy kérjen segítséget a közösségtől." +msgstr "A médialejátszáshoz szükséges BambuSource-összetevő hiányzik. Kérlek, telepítsd újra az OrcaSlicert, vagy kérj segítséget a közösségtől." msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Másik telepítésből származó BambuSource használata esetén a videólejátszás nem biztos, hogy megfelelően működik. Kattints az Igen gombra a javításhoz." +msgstr "Ha egy másik telepítésből származó BambuSource van használatban, előfordulhat, hogy a videólejátszás nem működik megfelelően. Kattints az Igen gombra a javításhoz." msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" msgstr "A rendszerből hiányoznak a GStreamer H.264 kodekjei, amelyek szükségesek a videolejátszáshoz. (Próbáld telepíteni a gstreamer1.0-plugins-bad vagy a gstreamer1.0-libav csomagokat, majd indítsd újra az Orca Slicert.)" msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." -msgstr "A cloud ügynök nem érhető el. Indítsd újra az OrcaSlicert és próbáljd újra." +msgstr "A felhőszolgáltatás nem érhető el. Indítsd újra az OrcaSlicert, majd próbáld újra." msgid "Bambu Network plug-in not detected." msgstr "A Bambu Network plug-in nem található." @@ -11649,7 +11670,7 @@ msgid "Gizmo scale" msgstr "Gizmo átméretezés" msgid "Gizmo place face on bed" -msgstr "Gizmo felület tárgyasztalra illesztése" +msgstr "Gizmo felület asztalra illesztése" msgid "Gizmo cut" msgstr "Gizmo vágás" @@ -11658,7 +11679,7 @@ msgid "Gizmo mesh boolean" msgstr "Gizmo modellháló logikai műveletek" msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM bolyhos felület festése" +msgstr "Gizmo FDM barázdált felület festése" msgid "Gizmo SLA support points" msgstr "Gizmo SLA támaszpontok" @@ -11676,7 +11697,7 @@ msgid "Gizmo assemble" msgstr "Gizmo összeállítás" msgid "Gizmo brim ears" -msgstr "Gizmo karimás fülek" +msgstr "Gizmo peremfülek" msgid "Zoom in" msgstr "Zoom közelítés" @@ -11727,13 +11748,13 @@ msgid "Delete objects, parts, modifiers" msgstr "Objektumok, tárgyak, módosítók törlése" msgid "Select the object/part and press space to change the name" -msgstr "Válaszd ki az objektumot/tárgyat, és nyomd meg a szóközt a név megváltoztatásához" +msgstr "Válaszd ki az objektumot vagy alkatrészt, majd nyomd meg a szóközt a név megváltoztatásához" msgid "Mouse click" msgstr "Egérkattintás" msgid "Select the object/part and mouse click to change the name" -msgstr "Válaszd ki az objektumot/tárgyat, és kattints az egérrel a név megváltoztatásához" +msgstr "Válaszd ki az objektumot vagy alkatrészt, majd kattints a nevére az átnevezéshez" msgid "Objects List" msgstr "Tárgyak listája" @@ -11798,7 +11819,7 @@ msgid "A new Network plug-in (%s) is available. Do you want to install it?" msgstr "Új hálózati bővítmény (%s) érhető el. Szeretnéd telepíteni?" msgid "New version of Orca Slicer" -msgstr "A Orca Slicer új verziója" +msgstr "Az Orca Slicer új verziója" # AI Translated msgid "Check on Microsoft Store" @@ -11835,7 +11856,7 @@ msgid "2. If the IP and Access Code below are different from the actual values o msgstr "2. Ha az alábbi IP-cím és hozzáférési kód eltér a nyomtatón látható valós értékektől, javítsd ki őket." msgid "3. Please obtain the device SN from the printer side; it is usually found in the device information on the printer screen." -msgstr "3. Kérjük, szerezd be az eszköz sorozatszámát a nyomtatóról; ez általában a nyomtató kijelzőjén, az eszközinformációk között található." +msgstr "3. Kérlek, keresd meg az eszköz sorozatszámát a nyomtatón; ez általában a nyomtató kijelzőjén, az eszközinformációk között található." msgid "IP" msgstr "IP" @@ -11878,7 +11899,7 @@ msgid "The printer has already been bound." msgstr "A nyomtató már hozzá lett rendelve." msgid "The printer mode is incorrect, please switch to LAN Only." -msgstr "A nyomtató módja hibás, kérjük, állítsd LAN Only módra." +msgstr "A nyomtató módja hibás, kérlek, állítsd LAN Only módra." msgid "Connecting to printer... The dialog will close later" msgstr "Kapcsolódás a nyomtatóhoz... A párbeszédablak később bezárul" @@ -11943,7 +11964,7 @@ msgid "Update successful" msgstr "Sikeres frissítés" msgid "Hotends on Rack" -msgstr "Hotendek a tartón" +msgstr "Fejegységek a tartón" msgid "Are you sure you want to update? This will take about 10 minutes. Do not turn off the power while the printer is updating." msgstr "Biztos, hogy frissíteni akarsz? Ez körülbelül 10 percet vesz igénybe. Ne kapcsold ki a nyomtatót, amíg a frissítés tart." @@ -11953,7 +11974,7 @@ msgstr "Fontos frissítést találtunk, amelyet a nyomtatás előtt telepíteni # AI Translated msgid "The firmware version is abnormal. Repairing and updating are required before printing. Do you want to update now? You can also update later on the printer or update next time you start Orca Slicer." -msgstr "A firmware verziója rendellenes. A nyomtatás előtt javításra és frissítésre van szükség. Szeretnél frissíteni most? A frissítés később a nyomtatón, vagy az Orca Slicer következő indításakor is elvégezhető." +msgstr "A firmware-verzió hibás. Nyomtatás előtt javítani és frissíteni kell. Szeretnéd most frissíteni? Ezt később a nyomtatón vagy az Orca Slicer következő indításakor is megteheted." msgid "Extension Board" msgstr "Bővítőpanel" @@ -12011,7 +12032,7 @@ msgid "No object can be printed. It may be too small." msgstr "Objektum nem nyomtatható ki. Lehet, hogy túl kicsi." msgid "Your print is very close to the priming regions. Make sure there is no collision." -msgstr "A nyomtatás nagyon közel van az alapozó régiókhoz. Győződjön meg róla, hogy nincs ütközés." +msgstr "A nyomat nagyon közel van az előkészítő extrudálás területéhez. Ellenőrizd, hogy nem ütköznek-e." msgid "" "Failed to generate G-code for invalid custom G-code.\n" @@ -12038,7 +12059,7 @@ msgid "" "Check your firmware version and update your G-code flavor to ´Marlin 2´." msgstr "" "A rezgéskompenzációt a Marlin < 2.1.2 nem támogatja.\n" -"Ellenőrizd a firmware verzióját és állítsd a G-kód változatot „Marlin 2”-re" +"Ellenőrizd a firmware-verziót, majd állítsd a G-kód változatát „Marlin 2”-re" msgid "Input shaping is only supported by Klipper, RepRapFirmware and Marlin 2." msgstr "A rezgéskompenzációt csak a Klipper, a RepRapFirmware és a Marlin 2 támogatja" @@ -12192,7 +12213,7 @@ msgid "No extrusions under current settings." msgstr "A jelenlegi beállításokkal nincsenek extrudálások." msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." -msgstr "A sima időfelvétel funkció nem használható, ha a nyomtatás \"Tárgyanként\" sorrendre van állítva." +msgstr "A sima Timelapse nem használható, ha a nyomtatási sorrend \"Tárgyanként\"." msgid "Clumping detection is not supported when \"by object\" sequence is enabled." msgstr "A csomósodásészlelés nem támogatott, ha a nyomtatási sorrend \"Tárgyanként\" értékre van állítva." @@ -12222,7 +12243,7 @@ msgid "While the object %1% itself fits the build volume, its last layer exceeds msgstr "Bár a(z) %1% objektum önmagában belefér a nyomtatási térfogatba, az utolsó rétege túllépi a maximális nyomtatási magasságot." msgid "You might want to reduce the size of your model or change current print settings and retry." -msgstr "Lehet, hogy csökkentened kell a modell méretét, vagy módosítanod kell a jelenlegi nyomtatási beállításokat, majd újra próbálkoznod." +msgstr "Próbáld meg csökkenteni a modell méretét vagy módosítani a jelenlegi nyomtatási beállításokat, majd próbáld újra." msgid "Variable layer height is not supported with Organic supports." msgstr "A változó rétegmagasság nem működik az organikus támaszokkal." @@ -12237,7 +12258,7 @@ msgid "Ooze prevention is only supported with the wipe tower when 'single_extrud msgstr "A szivárgás megelőzése csak akkor támogatott a törlőtoronnyal, ha a 'single_extruder_multi_material' ki van kapcsolva." msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors." -msgstr "A törlőtorony jelenleg csak a Marlin, RepRap/Sprinter, RepRapFirmware és Repetier G-kód változatokkal használható." +msgstr "A törlőtorony jelenleg csak a Marlin, RepRap/Sprinter, RepRapFirmware és Repetier G-kód-változatokkal használható." msgid "A prime tower is not supported in “By object” print." msgstr "A törlőtorony nem támogatott \"Tárgyanként\" nyomtatás esetén." @@ -12282,7 +12303,7 @@ msgid "For Organic supports, two walls are supported only with the Hollow/Defaul msgstr "Organikus támaszok esetén a két fal csak Üreges/Alapértelmezett alapmintázattal támogatott." msgid "The Lightning base pattern is not supported by this support type; Rectilinear will be used instead." -msgstr "A Lightning alapmintázat ennél a támasztípusnál nem támogatott; helyette egyenes vonalú mintázat lesz használva." +msgstr "Ez a támasztípus nem támogatja a Villám alapmintázatot; helyette egyenes vonalú mintázatot használ." msgid "Organic support tree tip diameter must not be smaller than support material extrusion width." msgstr "Az organikus támaszfa csúcsátmérője nem lehet kisebb, mint a támaszanyag extrudálási szélessége." @@ -12294,7 +12315,7 @@ msgid "Organic support branch diameter must not be smaller than support tree tip msgstr "Az organikus támaszfa ágának átmérője nem lehet kisebb, mint a támaszfa csúcsának átmérője." msgid "The Hollow base pattern is not supported by this support type; Rectilinear will be used instead." -msgstr "Az üreges alap mintát ez a támasztéktípus nem támogatja; helyette az egyenes vonalú lesz használva." +msgstr "Ez a támasztípus nem támogatja az üreges alapmintázatot; helyette egyenes vonalú mintázatot használ." msgid "Support enforcers are used but support is not enabled. Please enable support." msgstr "Támasz kényszerítőket használtál, de a támaszok nincsenek engedélyezve. Kérlek, engedélyezd a támaszokat." @@ -12369,7 +12390,7 @@ msgstr "" "A nagyobb sebesség eléréséhez módosíthatod a machine_max_acceleration_travel értéket a nyomtató konfigurációjában." msgid "The precise wall option will be ignored for outer-inner or inner-outer-inner wall sequences." -msgstr "A pontos fal opció figyelmen kívül lesz hagyva külső-belső vagy belső-külső-belső fali sorrend esetén." +msgstr "A szeletelő figyelmen kívül hagyja a pontos fal beállítást Külső/Belső vagy Belső/Külső/Belső falsorrendnél." # AI Translated msgid "The Adaptive Pressure Advance model for one or more extruders may contain invalid values." @@ -12441,16 +12462,16 @@ msgid "Unprintable area in XY plane. For example, X1 Series printers use the fro msgstr "A nyomtatásra nem használható terület az XY síkban. Az X1 nyomtatók például a bal első sarkot használják a filament elvágására filamentcserét követően. A terület sokszögként van meghatározva a következő formátumban: XxY, XxY, ..." msgid "Bed custom texture" -msgstr "Egyedi tárgyasztal textúra" +msgstr "Egyedi asztaltextúra" msgid "Bed custom model" -msgstr "Egyedi tárgyasztal modell" +msgstr "Egyedi asztalmodell" msgid "Elephant foot compensation" msgstr "Elefántláb kompenzáció" msgid "This shrinks the first layer on the build plate to compensate for elephant foot effect." -msgstr "Zsugorítja a kezdőréteget a tárgyasztalon, hogy kompenzálja az elefántláb-hatást" +msgstr "Zsugorítja a kezdőréteget az asztalon, hogy kompenzálja az elefántláb-hatást" msgid "Elephant foot compensation layers" msgstr "Elefántláb-kompenzáció rétegei" @@ -12466,8 +12487,8 @@ msgid "" "The initial value for the second layer is set.\n" "Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers." msgstr "" -"A belső szilárd töltés sűrűsége az elefánt lábrétegeinek kompenzálásához.\n" -"A második réteg kezdeti értéke van állítva.\n" +"A belső tömör kitöltés sűrűsége az elefántláb rétegeinek kompenzálásához.\n" +"A kezdeti értéket a második réteg használja.\n" "A következő rétegek lineárisan sűrűbbé válnak az elefant_foot_compensation_layers paraméterben megadott magassággal." msgid "This is the height for each layer. Smaller layer heights give greater accuracy but longer printing time." @@ -12487,13 +12508,13 @@ msgid "Maximum printable height of this extruder which is limited by mechanism o msgstr "Ennek az extrudernek a maximális nyomtatható magassága, amelyet a nyomtató mechanikája korlátoz." msgid "Preferred orientation" -msgstr "Előnyben részesített orientáció" +msgstr "Előnyben részesített tájolás" msgid "Automatically orient STL files on the Z axis upon initial import." msgstr "Az STL fájlok automatikus Z tengely szerinti tájolása első importáláskor." msgid "Printer preset names" -msgstr "Nyomtató beállítások neve" +msgstr "Nyomtatóbeállítások nevei" msgid "Use 3rd-party print host" msgstr "Külső nyomtatási gazdagép használata" @@ -12519,7 +12540,7 @@ msgid "Hostname, IP or URL" msgstr "Gazdagépnév, IP vagy URL" msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance. Print host behind HAProxy with basic auth enabled can be accessed by putting the user name and password into the URL in the following format: https://username:password@your-octopi-address/" -msgstr "A Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek tartalmaznia kell a nyomtató hostnevét, IP-címét vagy URL-címét. A HAProxy mögött lévő nyomtató alapszintű hitelesítéssel érhető el, ha a felhasználónevet és a jelszót a következő formátumban beleírod az URL-be: https://username:password@your-octopi-address/" +msgstr "Az Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek a nyomtató gazdagépnevét, IP-címét vagy URL-címét kell tartalmaznia. A HAProxy mögött lévő nyomtató alapszintű hitelesítéssel érhető el, ha a felhasználónevet és a jelszót a következő formátumban írod az URL-be: https://username:password@your-octopi-address/" msgid "Device UI" msgstr "Eszköz UI" @@ -12531,7 +12552,7 @@ msgid "API Key / Password" msgstr "API kulcs / jelszó" msgid "Orca Slicer can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication." -msgstr "A Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek tartalmaznia kell a hitelesítéshez szükséges API-kulcsot vagy jelszót." +msgstr "Az Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek a hitelesítéshez szükséges API-kulcsot vagy jelszót kell tartalmaznia." # AI Translated msgid "Serial Number" @@ -12548,7 +12569,7 @@ msgid "HTTPS CA File" msgstr "HTTPS CA fájl" msgid "Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. If left blank, the default OS CA certificate repository is used." -msgstr "A HTTP-alapú OctoPrint kapcsolatokhoz megadható egy egyedi CA-tanúsítvány, crt/pem formátumban. Ha üresen hagyod, az alapértelmezett OS CA tanúsítvány lesz használva." +msgstr "A HTTPS-alapú OctoPrint-kapcsolatokhoz egyedi CA-tanúsítványfájlt adhatsz meg crt/pem formátumban. Ha üresen hagyod, az operációs rendszer alapértelmezett CA-tanúsítványát használja." msgid "User" msgstr "Felhasználó" @@ -12598,22 +12619,22 @@ msgid "Other layers" msgstr "Többi réteg" msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "A kezdőrétegen kívüli rétegek tárgyasztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a nyomtatást a SuperTac hűvös tálcán." +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a SuperTack hűvös tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." -msgstr "Az asztal hőmérséklete a kezdőréteg kivételével. A 0 érték azt jelenti, hogy a filament nem támogatja a Cool Plate-re történő nyomtatást" +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a hűvös tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." -msgstr "A kezdőrétegen kívüli rétegek tárgyasztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a nyomtatást a texturált hűvös tálcán." +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a texturált hűvös tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." -msgstr "Az asztal hőmérséklete a kezdeti réteg kivételével. A 0 érték azt jelenti, hogy a szál nem támogatja az Engineering Plate-re történő nyomtatást" +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a műszaki tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." -msgstr "Az asztal hőmérséklete a kezdeti réteg kivételével. A 0 érték azt jelenti, hogy a szál nem támogatja a High Temp Plate-re történő nyomtatást" +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a magas hőmérsékletű tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." -msgstr "Asztalhőmérséklet az első réteg után. A 0 érték azt jelenti, hogy a filament nem támogatja texturált PEI tálcára történő nyomtatást." +msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a texturált PEI tálcára." msgid "First layer" msgstr "Kezdőréteg" @@ -12622,19 +12643,19 @@ msgid "First layer bed temperature" msgstr "Első réteg asztalhőmérséklete" msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "A kezdőréteg tárgyasztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a nyomtatást a SuperTac hűvös tálcán." +msgstr "A kezdőréteg asztalhőmérséklete. A 0 azt jelenti, hogy a filament nem nyomtatható a SuperTack hűvös tálcára." msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate." -msgstr "A kezdőréteg asztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a Cool Plate-re történő nyomtatást" +msgstr "A kezdőréteg asztalhőmérséklete. A 0 azt jelenti, hogy a filament nem nyomtatható a hűvös tálcára." msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured Cool Plate." -msgstr "A kezdőréteg tárgyasztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a nyomtatást a texturált hűvös tálcán." +msgstr "A kezdőréteg asztalhőmérséklete. A 0 azt jelenti, hogy a filament nem nyomtatható a texturált hűvös tálcára." msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Engineering Plate." -msgstr "A kezdőréteg asztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a Engineering Plate-re történő nyomtatást" +msgstr "A kezdőréteg asztalhőmérséklete. A 0 azt jelenti, hogy a filament nem nyomtatható a műszaki tálcára." msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the High Temp Plate." -msgstr "A kezdőréteg asztalhőmérséklete. A 0 érték azt jelenti, hogy a filament nem támogatja a High Temp Plate-re történő nyomtatást" +msgstr "A kezdőréteg asztalhőmérséklete. A 0 azt jelenti, hogy a filament nem nyomtatható a magas hőmérsékletű tálcára." # AI Translated msgid "This is the bed temperature of the first layer. A value of 0 means the filament does not support printing on the Textured PEI Plate." @@ -12647,7 +12668,7 @@ msgid "Default bed type" msgstr "Alapértelmezett asztaltípus" msgid "Default bed type for the printer (supports both numeric and string format)." -msgstr "A nyomtató alapértelmezett tárgyasztaltípusa (szám- és szöveges formátumot is támogat)." +msgstr "A nyomtató alapértelmezett asztaltípusa (szám- és szöveges formátumot is támogat)." msgid "First layer print sequence" msgstr "Az első réteg nyomtatási sorrendje" @@ -12677,7 +12698,7 @@ msgid "The number of bottom solid layers is increased when slicing if the thickn msgstr "Az alsó szilárd rétegek száma szeleteléskor megnő, ha az alsó héjrétegek vastagsága kisebb ennél az értéknél. Ezzel elkerülhető, hogy túl vékony legyen a héj, ha a rétegmagasság kicsi. A 0 azt jelenti, hogy ez a beállítás ki van kapcsolva, és az alsó héj vastagságát egyszerűen az alsó héjrétegek száma határozza meg." msgid "Apply gap fill" -msgstr "Réskitöltés alkalmazása" +msgstr "Hézagkitöltés alkalmazása" msgid "" "Enables gap fill for the selected solid surfaces. The minimum gap length that will be filled can be controlled from the filter out tiny gaps option below.\n" @@ -12693,18 +12714,18 @@ msgid "" "\n" "However this is not advised, as gap fill between perimeters is contributing to the model's strength. For models where excessive gap fill is generated between perimeters, a better option would be to switch to the arachne wall generator and use this option to control whether the cosmetic top and bottom surface gap fill is generated." msgstr "" -"Engedélyezi a réskitöltést a kijelölt tömör felületeken. A kitöltendő minimális rés hosszát az alábbi apró rések szűrése beállítással lehet szabályozni.\n" +"Engedélyezi a hézagkitöltést a kijelölt tömör felületeken. A kitöltendő hézagok minimális hosszát az alábbi apró hézagok szűrése beállítással lehet szabályozni.\n" "\n" "Lehetőségek:\n" -"1. Mindenhol: A réskitöltést a felső, alsó és belső tömör felületeken is alkalmazza a maximális szilárdság érdekében\n" -"2. Felső és alsó felületek: Csak a felső és alsó felületeken alkalmazza a réskitöltést, egyensúlyt teremtve a nyomtatási sebesség, a tömör kitöltés esetleges túlextrudálásának csökkentése, valamint a felső és alsó felületek tűlyukmentessége között\n" -"3. Sehol: Letiltja a réskitöltést minden tömör kitöltési területen\n" +"1. Mindenhol: A hézagkitöltést a felső, alsó és belső tömör felületeken is alkalmazza a maximális szilárdság érdekében\n" +"2. Felső és alsó felületek: Csak a felső és alsó felületeken alkalmazza a hézagkitöltést, egyensúlyt teremtve a nyomtatási sebesség, a tömör kitöltés esetleges túlextrudálásának csökkentése, valamint a felső és alsó felületek tűlyukmentessége között\n" +"3. Sehol: Letiltja a hézagkitöltést minden tömör kitöltési területen\n" "\n" -"Vedd figyelembe, hogy klasszikus falgenerátor használatakor a falak között is keletkezhet réskitöltés, ha közéjük nem fér el egy teljes szélességű vonal. Ezt a falak közötti réskitöltést ez a beállítás nem szabályozza.\n" +"Vedd figyelembe, hogy klasszikus falgenerátor használatakor a falak között is keletkezhet hézagkitöltés, ha közéjük nem fér el egy teljes szélességű vonal. Ezt a falak közötti hézagkitöltést ez a beállítás nem szabályozza.\n" "\n" -"Ha minden réskitöltést, beleértve a klasszikus falgenerátor által létrehozottat is, el szeretnél távolítani, állítsd az apró rések szűrése értékét egy nagy számra, például 999999-re.\n" +"Ha minden hézagkitöltést, beleértve a klasszikus falgenerátor által létrehozottat is, el szeretnél távolítani, állítsd az apró hézagok szűrése értékét egy nagy számra, például 999999-re.\n" "\n" -"Ez azonban nem ajánlott, mert a falak közötti réskitöltés hozzájárul a modell szilárdságához. Olyan modelleknél, ahol túl sok réskitöltés keletkezik a falak között, jobb megoldás lehet az Arachne falgenerátorra váltani, és ezzel a beállítással szabályozni, hogy létrejöjjön-e a felső és alsó felületek esztétikai réskitöltése." +"Ez azonban nem ajánlott, mert a falak közötti hézagkitöltés hozzájárul a modell szilárdságához. Olyan modelleknél, ahol túl sok hézagkitöltés keletkezik a falak között, jobb megoldás lehet az Arachne falgenerátorra váltani, és ezzel a beállítással szabályozni, hogy létrejöjjön-e a felső és alsó felületek esztétikai hézagkitöltése." msgid "Everywhere" msgstr "Mindenhol" @@ -12854,7 +12875,7 @@ msgstr "" "Ez a beállítás különösen jól működik a második belső híd a kitöltés felett lehetőséggel együtt, tovább javítva az áthidalást, mielőtt a tömör kitöltés extrudálásra kerül." msgid "Bridge flow ratio" -msgstr "Áthidalás áramlási sebessége" +msgstr "Áthidalás anyagáramlása" # AI Translated msgid "" @@ -12885,7 +12906,7 @@ msgstr "" "Ha 0-ra van állítva, a vonalszélesség megegyezik a belső tömör kitöltés szélességével." msgid "Internal bridge flow ratio" -msgstr "Belső híd áramlási aránya" +msgstr "Belső híd anyagáramlása" # AI Translated msgid "" @@ -12911,10 +12932,10 @@ msgid "" msgstr "" "Ez a tényező befolyásolja a felső tömör kitöltéshez felhasznált anyag mennyiségét. Kissé csökkentheted az értéket, hogy simább felületi megjelenést kapj.\n" "\n" -"A ténylegesen használt felső felületi áramlás ennek az értéknek, a filament áramlási arányának, valamint ha be van állítva, az objektum áramlási arányának a szorzatából adódik." +"A felső felület tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Bottom surface flow ratio" -msgstr "Alsó felület áramlási aránya" +msgstr "Alsó felület anyagáramlása" msgid "" "This factor affects the amount of material for bottom solid infill.\n" @@ -12923,16 +12944,16 @@ msgid "" msgstr "" "Ez a tényező befolyásolja az alsó tömör kitöltéshez felhasznált anyag mennyiségét.\n" "\n" -"A ténylegesen használt alsó tömör kitöltési áramlás ennek az értéknek, a filament áramlási arányának, valamint ha be van állítva, az objektum áramlási arányának a szorzatából adódik." +"Az alsó tömör kitöltés tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Set other flow ratios" -msgstr "Egyéb áramlási arányok beállítása" +msgstr "Egyéb anyagáramlások beállítása" msgid "Change flow ratios for other extrusion path types." -msgstr "Anyagáramlási arányok módosítása más extrudálási úttípusokhoz." +msgstr "Anyagáramlások módosítása más extrudálási úttípusokhoz." msgid "First layer flow ratio" -msgstr "Első réteg áramlási aránya" +msgstr "Első réteg anyagáramlása" msgid "" "This factor affects the amount of material on the first layer for the extrusion path roles listed in this section.\n" @@ -12941,10 +12962,10 @@ msgid "" msgstr "" "Ez a tényező az ebben a szakaszban felsorolt extrudálási útszerepek első rétegén felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"Az első rétegen az egyes útszerepek tényleges áramlási aránya (a peremeket és szoknyákat nem érinti) ezzel az értékkel lesz megszorozva." +"Az első rétegen az egyes úttípusok tényleges anyagáramlását ezzel az értékkel szorozza meg (a peremeket és szoknyákat nem érinti)." msgid "Outer wall flow ratio" -msgstr "Külső fal áramlási aránya" +msgstr "Külső fal anyagáramlása" msgid "" "This factor affects the amount of material for outer walls.\n" @@ -12953,10 +12974,10 @@ msgid "" msgstr "" "Ez a tényező a külső falakhoz felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges külső fali áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A külső fal tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Inner wall flow ratio" -msgstr "Belső fal áramlási aránya" +msgstr "Belső fal anyagáramlása" msgid "" "This factor affects the amount of material for inner walls.\n" @@ -12965,10 +12986,10 @@ msgid "" msgstr "" "Ez a tényező a belső falakhoz felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges belső fali áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A belső fal tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Overhang flow ratio" -msgstr "Túlnyúlás áramlási aránya" +msgstr "Túlnyúlás anyagáramlása" msgid "" "This factor affects the amount of material for overhangs.\n" @@ -12977,22 +12998,22 @@ msgid "" msgstr "" "Ez a tényező a túlnyúlásokhoz felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges túlnyúlási áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A túlnyúlás tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Sparse infill flow ratio" -msgstr "Ritka kitöltés áramlási aránya" +msgstr "Kitöltés anyagáramlása" msgid "" "This factor affects the amount of material for sparse infill.\n" "\n" "The actual sparse infill flow used is calculated by multiplying this value by the filament flow ratio, and if set, the object's flow ratio." msgstr "" -"Ez a tényező a ritka kitöltéshez felhasznált anyagmennyiséget befolyásolja.\n" +"Ez a tényező a kitöltéshez felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges ritka kitöltési áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A tényleges kitöltési anyagáramlást úgy számítja ki, hogy ezt az értéket megszorozza a filament anyagáramlásával, valamint ha be van állítva, az objektum anyagáramlásával." msgid "Internal solid infill flow ratio" -msgstr "Belső tömör kitöltés áramlási aránya" +msgstr "Belső tömör kitöltés anyagáramlása" msgid "" "This factor affects the amount of material for internal solid infill.\n" @@ -13001,10 +13022,10 @@ msgid "" msgstr "" "Ez a tényező a belső tömör kitöltéshez felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges belső tömör kitöltési áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A belső tömör kitöltés tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Gap fill flow ratio" -msgstr "Réskitöltés áramlási aránya" +msgstr "Hézagkitöltés anyagáramlása" msgid "" "This factor affects the amount of material for filling the gaps.\n" @@ -13013,10 +13034,10 @@ msgid "" msgstr "" "Ez a tényező a rések kitöltéséhez felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges réskitöltési áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A tényleges hézagkitöltési anyagáramlást úgy számítja ki, hogy ezt az értéket megszorozza a filament anyagáramlásával, valamint ha be van állítva, az objektum anyagáramlásával." msgid "Support flow ratio" -msgstr "Támasz áramlási aránya" +msgstr "Támasz anyagáramlása" msgid "" "This factor affects the amount of material for support.\n" @@ -13025,10 +13046,10 @@ msgid "" msgstr "" "Ez a tényező a támaszhoz felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges támaszáramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A támasz tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Support interface flow ratio" -msgstr "Támasz érintkező felület áramlási aránya" +msgstr "Támasz érintkező felületének anyagáramlása" msgid "" "This factor affects the amount of material for the support interface.\n" @@ -13037,13 +13058,13 @@ msgid "" msgstr "" "Ez a tényező a támasz érintkező felületéhez felhasznált anyagmennyiséget befolyásolja.\n" "\n" -"A tényleges támasz érintkező felületi áramlás úgy számolódik, hogy ezt az értéket megszorozza a filament áramlási arányával, valamint ha be van állítva, az objektum áramlási arányával." +"A támasz érintkező felületének tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata." msgid "Precise wall" msgstr "Pontos fal" msgid "Improve shell precision by adjusting outer wall spacing. This also improves layer consistency. NOTE: This option will be ignored for outer-inner or inner-outer-inner wall sequences." -msgstr "Javítja a héj pontosságát a külső fal távolságának finomhangolásával. Ez a rétegek egyenletességét is javítja. MEGJEGYZÉS: Ez az opció figyelmen kívül lesz hagyva külső-belső vagy belső-külső-belső fali sorrend esetén." +msgstr "A külső fal térközének finomhangolásával javítja a héj pontosságát és a rétegek egyenletességét. MEGJEGYZÉS: a szeletelő figyelmen kívül hagyja ezt a beállítást Külső/Belső vagy Belső/Külső/Belső falsorrendnél." msgid "Only one wall on top surfaces" msgstr "Csak egy fal a felső felületeken" @@ -13218,7 +13239,7 @@ msgid "This creates a gap between the innermost brim line and the object and can msgstr "A legbelső peremvonal és a tárgy közötti rés, ami megkönnyítheti a perem eltávolítását" msgid "Brim flow ratio" -msgstr "Perem áramlási arány" +msgstr "Perem anyagáramlása" msgid "" "This factor affects the amount of material for brims.\n" @@ -13227,11 +13248,11 @@ msgid "" "\n" "Note: The resulting value will not be affected by the first-layer flow ratio." msgstr "" -"Ez a tényező befolyásolja a karimák anyagának mennyiségét.\n" +"Ez a tényező befolyásolja a peremek anyagmennyiségét.\n" "\n" -"A ténylegesen használt peremáramlást úgy számítjuk ki, hogy ezt az értéket megszorozzuk a filament áramlási arányával, és ha be van állítva, akkor az objektum áramlási arányával.\n" +"A perem tényleges anyagáramlása ennek az értéknek, a filament anyagáramlásának, valamint – ha be van állítva – az objektum anyagáramlásának a szorzata.\n" "\n" -"Megjegyzés: A kapott értéket nem befolyásolja az első réteg áramlási aránya." +"Megjegyzés: A kapott értéket nem befolyásolja az első réteg anyagáramlása." msgid "Brim follows compensated outline" msgstr "A Perem a kompenzált körvonalat követi" @@ -13242,8 +13263,8 @@ msgid "" "\n" "If your current setup already works well, enabling it may be unnecessary and can cause the brim to fuse with upper layers." msgstr "" -"Ha engedélyezve van, a perem igazodik az első réteg kerületi geometriájához az elefánttalp-kompenzáció alkalmazása után.\n" -"Ez az opció arra az esetre szolgál, amikor az elefánttalp-kompenzáció jelentősen megváltoztatja az első réteg alapterületét.\n" +"Ha engedélyezve van, a perem igazodik az első réteg kerületi geometriájához az elefántláb-kompenzáció alkalmazása után.\n" +"Ez az opció akkor hasznos, ha az elefántláb-kompenzáció jelentősen megváltoztatja az első réteg alapterületét.\n" "\n" "Ha a jelenlegi beállítás már jól működik, előfordulhat, hogy az engedélyezése felesleges és a perem összeolvadását okozhatja a felső rétegekkel." @@ -13254,7 +13275,7 @@ msgid "Combine multiple brims into one when they are close to each other. This c msgstr "Karimák egybevonása, ha azok közel vannak egymáshoz. Ez javíthatja a perem tapadását." msgid "Brim ears" -msgstr "Karimás fülek" +msgstr "Peremfülek" msgid "Only draw brim over the sharp edges of the model." msgstr "Csak a modell éles szélei fölé rajzoljon peremet." @@ -13305,12 +13326,37 @@ msgstr "Tárgyanként" msgid "Intra-layer order" msgstr "Rétegen belüli sorrend" -msgid "Print order within a single layer." -msgstr "Nyomtatási sorrend egyetlen rétegen belül." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Az a sorrend, amelyben az objektumpéldányokat egyetlen rétegen belül bejárja a nyomtató, ami meghatározza, mennyi mozgás megy el a köztük való áthaladásra.\n" +"\n" +"Alapértelmezett: legközelebbi szomszéd szerinti láncolás, 2-opt eljárással és a keresztezések megszüntetésével finomítva. Jó általános választás.\n" +"Objektumlista szerint: a példányok az objektumlista sorrendjében nyomtatódnak, bármilyen útvonal-optimalizálás nélkül. Akkor használd, ha kiszámítható, kézzel vezérelt sorrendre van szükséged.\n" +"Legjobb az összes közül (legrövidebb útvonal): minden stratégia kiértékelésre kerül, és a legrövidebb kerül felhasználásra. Az objektumpéldányok sorrendje egyszer dől el az egész nyomtatásra, míg az egyes szigetek sorrendje rétegenként, így a különböző rétegek eltérő stratégiát is használhatnak. Kissé lassabb szeletelés.\n" +"Kígyóvonal: kanyargós, soronkénti bejárás, 2-opt eljárással finomítva. Jól illik sok kis alkatrész szabályos rácsához.\n" +"\n" +"Ha egy rétegen belül több filament vagy szerszám szerepel, a szerszámcserék minimalizálása élvez elsőbbséget: az objektumok először filament szerint csoportosulnak, és ez a beállítás csak az egyes filamentcsoportokon belüli példánysorrendet szabja meg, így a teljes sorrend nem feltétlenül a tálcán átvezető legrövidebb útvonalnak tűnik." msgid "As object list" msgstr "Objektumlista szerint" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Legjobb az összes közül (legrövidebb útvonal)" + +# AI Translated +msgid "Snake" +msgstr "Kígyóvonal" + msgid "Slow printing down for better layer cooling" msgstr "Nyomtatás lelassítása a jobb hűtés érdekében" @@ -13380,7 +13426,7 @@ msgid "No cooling for the first" msgstr "Nincs hűtés az első" msgid "Turn off all cooling fans for the first few layers. This can be used to improve build plate adhesion." -msgstr "Kikapcsolja a hűtést a megadott első pár rétegnél. A hűtés kikapcsolása segítheti a jobb tárgyasztalhoz való tapadást" +msgstr "Kikapcsolja a hűtést a megadott első néhány rétegnél. A hűtés kikapcsolása javíthatja az asztalhoz való tapadást" msgid "Don't support bridges" msgstr "Ne támassza alá az áthidalásokat" @@ -13439,7 +13485,7 @@ msgstr "" "Lehetőségek:\n" "1. Letiltva - nem hoz létre második hídréteget. Ez az alapértelmezett és kompatibilitási okokból így van beállítva\n" "2. Csak külső híd - csak a kifelé néző hidaknál hoz létre második hídréteget. A beállított kerületszámnál rövidebb vagy keskenyebb kis hidak kimaradnak, mert nem profitálnának a második hídrétegből. Ha létrejön, a második hídréteg az első hídréteggel párhuzamosan kerül extrudálásra a híd megerősítése érdekében\n" -"3. Csak belső híd - csak a ritka kitöltés feletti belső hidaknál hoz létre második hídréteget. Vedd figyelembe, hogy a belső hidak beleszámítanak a modell felső héjrétegeinek számába. A második belső hídréteg lehetőség szerint az elsőre merőlegesen kerül extrudálásra. Ha ugyanazon a szigeten több eltérő hídszögű régió van, akkor a sziget utolsó régiója lesz a szögreferencia\n" +"3. Csak belső híd - csak a kitöltés feletti belső hidaknál hoz létre második hídréteget. Vedd figyelembe, hogy a belső hidak beleszámítanak a modell felső héjrétegeinek számába. A második belső hídréteget lehetőség szerint az elsőre merőlegesen extrudálja. Ha ugyanazon a szigeten több eltérő hídszögű régió van, akkor a sziget utolsó régiója lesz a szögreferencia\n" "4. Alkalmazás mindenre - második hídréteget hoz létre mind a belső, mind a kifelé néző hidakhoz\n" msgid "External bridge only" @@ -13464,8 +13510,8 @@ msgid "" "3. No filtering - creates internal bridges on every potential internal overhang. This option is useful for heavily slanted top surface models; however, in most cases, it creates too many unnecessary bridges." msgstr "" "Ez az opció segíthet csökkenteni a felső felületek párnásodását erősen lejtős vagy ívelt modelleknél.\n" -"Alapértelmezés szerint a kis belső hidak kiszűrésre kerülnek, és a belső tömör kitöltés közvetlenül a ritka kitöltés fölé nyomtatódik. Ez a legtöbb esetben jól működik, felgyorsítja a nyomtatást anélkül, hogy túl nagy kompromisszumot kellene kötni a felső felület minőségében.\n" -"Erősen lejtős vagy ívelt modelleknél azonban, különösen túl alacsony ritka kitöltési sűrűség esetén, ez a támasz nélküli tömör kitöltés felkunkorodását okozhatja, ami párnásodáshoz vezet.\n" +"Alapértelmezés szerint a szeletelő kiszűri a kis belső hidakat, és a belső tömör kitöltést közvetlenül a kitöltés fölé nyomtatja. Ez a legtöbb esetben jól működik, és úgy gyorsítja fel a nyomtatást, hogy közben alig rontja a felső felület minőségét.\n" +"Erősen lejtős vagy ívelt modelleknél azonban, különösen túl alacsony kitöltési sűrűség esetén, ez a támasz nélküli tömör kitöltés felkunkorodását okozhatja, ami párnásodáshoz vezet.\n" "A korlátozott szűrés vagy a szűrés kikapcsolása belső hídréteget nyomtat a kissé alátámasztatlan belső tömör kitöltés fölé. Az alábbi opciók a szűrés érzékenységét szabályozzák, azaz azt, hogy hol jöjjenek létre belső hidak:\n" "1. Szűrés - engedélyezi ezt az opciót. Ez az alapértelmezett működés, és a legtöbb esetben jól működik\n" "2. Korlátozott szűrés - erősen lejtős felületeken hoz létre belső hidakat, miközben elkerüli a felesleges hidakat. Ez a legtöbb nehéz modellnél jól működik\n" @@ -13626,7 +13672,7 @@ msgid "" "WARNING: Lowering this value may negatively affect bed adhesion." msgstr "" "Az alsó felületi réteg sűrűsége. Esztétikai vagy funkcionális célokra szolgál, nem pedig olyan problémák javítására, mint a túlextrudálás.\n" -"FIGYELMEZTETÉS: Ennek az értéknek a csökkentése kedvezőtlenül befolyásolhatja a tárgyasztalhoz való tapadást." +"FIGYELMEZTETÉS: Ennek az értéknek a csökkentése ronthatja az asztalhoz való tapadást." # AI Translated msgid "Top surface fill order" @@ -13825,7 +13871,7 @@ msgid "" msgstr "" "Az anyag térfogata megváltozhat az olvadt és a kristályos állapot közötti átmenet során. Ez a beállítás arányosan megváltoztatja ennek a filamentnek az összes extrudálási áramlását a G-kódban. Az ajánlott értéktartomány 0,95 és 1,05 között van. Ennek az értéknek a finomhangolásával szép sík felület érhető el enyhe túl- vagy alulextrudálás esetén.\n" "\n" -"Az objektum végső áramlási aránya ennek az értéknek és a filament áramlási arányának a szorzata." +"Az objektum végső anyagáramlása ennek az értéknek és a filament anyagáramlásának a szorzata." msgid "Enable pressure advance" msgstr "Nyomáselőtolás engedélyezése" @@ -13923,7 +13969,7 @@ msgid "Keep fan always on" msgstr "Ventilátor mindig bekapcsolva" msgid "Enabling this setting means that part cooling fan will never stop entirely and will instead run at least at minimum speed to reduce the frequency of starting and stopping." -msgstr "Ezen beállítás engedélyezése esetén a tárgyhűtő ventilátor soha nem áll le, és legalább a minimális fordulatszámon fog járni, hogy csökkentse az indítás és leállítás gyakoriságát" +msgstr "Ezen beállítás engedélyezése esetén a tárgyhűtő ventilátor soha nem áll le és legalább a minimális fordulatszámon fog járni, hogy csökkentse az indítás és leállítás gyakoriságát" msgid "Don't slow down outer walls" msgstr "Lassítás nélküli külső falak" @@ -13984,7 +14030,7 @@ msgstr "Automatikus egyeztetéshez" # AI Translated msgid "Nozzle Manual" -msgstr "Fúvóka kézikönyv" +msgstr "Kézi fúvókakiosztás" msgid "Flush temperature" msgstr "Öblítési hőmérséklet" @@ -14027,7 +14073,7 @@ msgid "Bed temperature type" msgstr "Asztalhőmérséklet típusa" msgid "This option determines how the bed temperature is set during slicing: based on the temperature of the first filament or the highest temperature of the printed filaments." -msgstr "Ez az opció határozza meg, hogyan kerüljön beállításra az asztalhőmérséklet a szeletelés során: az első filament hőmérséklete vagy a nyomtatott filamentek közül a legmagasabb hőmérséklet alapján." +msgstr "Ez az opció határozza meg, hogyan állítsa be az asztalhőmérsékletet szeleteléskor: az első filament hőmérséklete vagy a nyomtatott filamentek legmagasabb hőmérséklete alapján." msgid "By First filament" msgstr "Az első filament alapján" @@ -14118,16 +14164,16 @@ msgid "Speed used for unloading the tip of the filament immediately after rammin msgstr "A filament kiürítésének sebessége közvetlenül a tömörítés után." msgid "Delay after unloading" -msgstr "Várakozás a kiürítés után" +msgstr "Várakozás a filament kihúzása után" msgid "Time to wait after the filament is unloaded. May help to get reliable tool changes with flexible materials that may need more time to shrink to original dimensions." -msgstr "A várakozási idő az filament kiürítése után. Segíthet megbízható szerszámcserét elérni rugalmas anyagok esetén, amelyeknek több időre lehet szükségük ahhoz, hogy az eredeti méretükre zsugorodjanak." +msgstr "Várakozási idő a filament kihúzása után. Rugalmas anyagoknál megbízhatóbbá teheti a szerszámcserét, mert ezeknek több időre lehet szükségük, hogy visszanyerjék eredeti méretüket." msgid "Number of cooling moves" msgstr "Hűtési lépések száma" msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." -msgstr "A filament hűtése úgy történik, hogy oda-vissza mozgatják a hűtőcsőben. Adja meg a kívánt lépések számát." +msgstr "A filament azáltal hűl le, hogy a hűtőcsövekben oda-vissza mozog. Add meg ezeknek a mozgásoknak a kívánt számát." msgid "Stamping loading speed" msgstr "Bélyegző betöltési sebesség" @@ -14148,7 +14194,7 @@ msgid "Cooling moves are gradually accelerating beginning at this speed." msgstr "A hűtési lépések fokozatosan felgyorsulnak ettől a sebességtől kezdve." msgid "Minimal purge on wipe tower" -msgstr "Minimális kiürítés a törlőtoronyban" +msgstr "Minimális öblítés a törlőtoronyban" msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably." msgstr "Szerszámváltás után az újonnan betöltött filament pontos helyzete a fúvókában nem feltétlenül ismert, és a filament nyomása valószínűleg még nem stabil. Mielőtt a nyomtatófej egy kitöltésbe vagy áldozati objektumba ürítene, az Orca Slicer ezt az anyagmennyiséget mindig először a törlőtoronyba extrudálja, hogy a későbbi kitöltési vagy áldozati objektum extrudálások megbízhatóan történjenek." @@ -14157,7 +14203,7 @@ msgid "Wipe tower cooling" msgstr "Törlőtorony hűtése" msgid "Temperature drop before entering filament tower" -msgstr "Hőmérsékletcsökkenés az filamenttoronyba lépés előtt" +msgstr "Hőmérsékletcsökkenés a filamenttoronyba lépés előtt" msgid "Interface layer pre-extrusion distance" msgstr "Érintkezőréteg előextrudálási távolsága" @@ -14181,7 +14227,7 @@ msgid "mm²" msgstr "mm²" msgid "Interface layer purge length" -msgstr "Érintkezőréteg kiürítési hossza" +msgstr "Érintkezőréteg öblítési hossza" msgid "Purge length for prime tower interface layer (where different materials meet)." msgstr "Kiürítési hossz a törlőtorony érintkezőrétegéhez (ahol a különböző anyagok találkoznak)." @@ -14202,7 +14248,7 @@ msgid "Ramming parameters" msgstr "Tömörítési paraméterek" msgid "This string is edited by RammingDialog and contains ramming specific parameters." -msgstr "Ez a karakterlánc a TömörítésPárbeszéd ablakban szerkeszthető, és a tömörítéssel kapcsolatos paramétereket tartalmaz." +msgstr "Ez a karakterlánc a tömörítési párbeszédablakban szerkeszthető, és a tömörítés paramétereit tartalmazza." msgid "Enable ramming for multi-tool setups" msgstr "Tömörítés engedélyezése több szerszámos beállításokhoz" @@ -14226,7 +14272,7 @@ msgid "Density" msgstr "Sűrűség" msgid "Filament density, for statistical purposes only." -msgstr "Filament sűrűsége. Csak statisztikákhoz kerül felhasználásra" +msgstr "A filament sűrűsége, kizárólag statisztikai célokra." msgid "g/cm³" msgstr "g/cm³" @@ -14250,7 +14296,7 @@ msgid "Support material" msgstr "Támaszanyag" msgid "Support material is commonly used to print supports and support interfaces." -msgstr "A támaszanyag a támaszok és a támasz érintkező felületeinek nyomtatásához van használva." +msgstr "A támaszanyagot általában a támaszok és azok érintkező felületeinek nyomtatására használják." msgid "Filament printable" msgstr "Filament nyomtatható" @@ -14276,7 +14322,7 @@ msgid "Price" msgstr "Költség" msgid "Filament price, for statistical purposes only." -msgstr "Filament költsége. Csak statisztikákhoz kerül felhasználásra" +msgstr "A filament ára, kizárólag statisztikai célokra." msgid "money/kg" msgstr "pénz/kg" @@ -14291,10 +14337,10 @@ msgid "(Undefined)" msgstr "(Nincs meghatározva)" msgid "Sparse infill direction" -msgstr "Ritka kitöltés iránya" +msgstr "Kitöltés iránya" msgid "This is the angle for sparse infill pattern, which controls the start or main direction of lines." -msgstr "A ritkás kitöltési minta szöge, amely a vonal kezdő- vagy fő irányát szabályozza" +msgstr "A kitöltési minta szöge, amely a vonal kezdő- vagy fő irányát szabályozza" msgid "Solid infill direction" msgstr "Tömör kitöltés iránya" @@ -14331,7 +14377,7 @@ msgstr "Kitöltés sűrűsége" #, no-c-format, no-boost-format msgid "Density of internal sparse infill, 100% turns all sparse infill into solid infill and internal solid infill pattern will be used." -msgstr "A belső ritka kitöltés sűrűsége. A 100% minden ritka kitöltést tömör kitöltéssé alakít, és a belső tömör kitöltési minta kerül használatra." +msgstr "A belső kitöltés sűrűsége. 100%-os értéknél minden kitöltés tömör kitöltéssé alakul, a szeletelő pedig a belső tömör kitöltési mintát használja." # AI Translated msgid "Align directions to model" @@ -14363,13 +14409,13 @@ msgstr "Z-kihajlási torzítás optimalizálása (kísérleti)" # AI Translated #, no-c-format, no-boost-format msgid "Tightens the gyroid wave along the Z (vertical) axis at low infill density to shorten the effective vertical column length and improve Z-axis compression buckling resistance. Filament use is preserved. No effect at ~30% sparse infill density and above. Only applies when Sparse infill pattern is set to Gyroid." -msgstr "Alacsony feltöltési sűrűség mellett megfeszíti a gyroid hullámot a Z (függőleges) tengely mentén, hogy lerövidítse a tényleges függőleges oszlophosszt és javítsa a Z-tengely összenyomódási kihajlási ellenállását. A filamenthasználat megmarad. Nincs hatása ~30% vagy annál nagyobb ritka kitöltési sűrűségnél. Csak akkor érvényes, ha a Ritka kitöltési minta Gyroid-ra van állítva." +msgstr "Alacsony kitöltési sűrűségnél megfeszíti a Gyroid hullámot a Z (függőleges) tengely mentén, hogy lerövidítse a tényleges függőleges oszlophosszt, és javítsa a Z irányú kihajlással szembeni ellenállást. A filamentfelhasználás nem változik. Körülbelül 30%-os vagy nagyobb kitöltési sűrűségnél nincs hatása. Csak akkor érvényes, ha a kitöltési minta Gyroid." msgid "Sparse infill pattern" msgstr "Kitöltési mintázat" msgid "This is the line pattern for internal sparse infill." -msgstr "Ez a belső ritkás kitöltés mintája." +msgstr "A belső kitöltés mintázata." msgid "Zig Zag" msgstr "Cikkcakk" @@ -14439,13 +14485,13 @@ msgid "Acceleration of inner walls." msgstr "A belső falak gyorsulása." msgid "Acceleration of sparse infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration." -msgstr "Gyorsulás a ritkás kitöltéseknél. Ha az érték százalékban van megadva (pl. 100%), akkor az alapértelmezett gyorsulás alapján kerül kiszámításra." +msgstr "A kitöltés gyorsulása. Ha százalékban adod meg (pl. 100%), a szeletelő az alapértelmezett gyorsulásból számítja ki." msgid "Acceleration of internal solid infill. If the value is expressed as a percentage (e.g. 100%), it will be calculated based on the default acceleration." msgstr "A belső tömör kitöltés gyorsulása. Ha az érték százalékban van megadva (pl. 100%), az alapértelmezett gyorsulás alapján lesz kiszámítva." msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion." -msgstr "A kezdőréteg gyorsulása. Alacsonyabb érték használata javíthatja a tárgyasztalhoz való tapadást" +msgstr "A kezdőréteg gyorsulása. Alacsonyabb érték használata javíthatja az asztalhoz való tapadást" msgid "Enable accel_to_decel" msgstr "accel_to_decel engedélyezése" @@ -14458,7 +14504,7 @@ msgstr "accel_to_decel" #, c-format, boost-format msgid "Klipper's max_accel_to_decel will be adjusted to this %% of acceleration." -msgstr "A Klipper max_accel_to_decel értéke a gyorsulás erre a százalékra lesz állítva." +msgstr "A Klipper max_accel_to_decel értékét a gyorsulás ezen %%-ára állítja." msgid "Default jerk." msgstr "Alapértelmezett jerk." @@ -14633,25 +14679,25 @@ msgid "All walls" msgstr "Összes fal" msgid "Fuzzy skin thickness" -msgstr "A bolyhos felület vastagsága" +msgstr "A barázdált felület vastagsága" msgid "The width of jittering: it’s recommended to keep this lower than the outer wall line width." msgstr "A rezgés szélessége: ezt ajánlott kisebbre állítani, mint a külső fal szélessége." msgid "Fuzzy skin point distance" -msgstr "A bolyhos felület ponttávolsága" +msgstr "A barázdált felület ponttávolsága" msgid "The average distance between the random points introduced on each line segment." msgstr "Az egyes vonalszakaszokon használt véletlen pontok közötti átlagos távolság" msgid "Apply fuzzy skin to first layer" -msgstr "Bolyhos felület alkalmazása az első rétegre" +msgstr "Barázdált felület alkalmazása az első rétegre" msgid "Whether to apply fuzzy skin on the first layer." -msgstr "Alkalmazzon-e bolyhos felületet az első rétegen." +msgstr "Meghatározza, hogy legyen-e barázdált felület az első rétegen." msgid "Fuzzy skin generator mode" -msgstr "A bolyhos felület generálási módja" +msgstr "A barázdált felület generálási módja" #, c-format, boost-format msgid "" @@ -14662,12 +14708,12 @@ msgid "" "\n" "Attention! The [Extrusion] and [Combined] modes works only the fuzzy_skin_thickness parameter not more than the thickness of printed loop. At the same time, the width of the extrusion for a particular layer should also not be below a certain level. It is usually equal 15-25%% of a layer height. Therefore, the maximum fuzzy skin thickness with a perimeter width of 0.4 mm and a layer height of 0.2 mm will be 0.4-(0.2*0.25)=±0.35mm! If you enter a higher parameter than this, the error Flow::spacing() will displayed, and the model will not be sliced. You can choose this number until this error is repeated." msgstr "" -"Bolyhos felület generálási mód. Csak az Arachne-nal működik!\n" +"A barázdált felület generálási módja. Csak az Arachne használatával működik!\n" "Eltolás: Klasszikus mód, amikor a mintázat úgy jön létre, hogy a fúvóka oldalirányban eltér az eredeti útvonaltól.\n" "Extrudálás: Olyan mód, amikor a mintázatot az extrudált műanyag mennyisége alakítja ki. Ez egy gyors és egyenes algoritmus, felesleges fúvókarázás nélkül, amely sima mintázatot ad. Ugyanakkor inkább a teljes felületen lazább falak kialakítására hasznos.\n" "Kombinált: Egyesített mód [Eltolás] + [Extrudálás]. A falak megjelenése hasonló az [Eltolás] módhoz, de nem hagy pórusokat a kerületek között.\n" "\n" -"Figyelem! Az [Extrudálás] és a [Kombinált] mód csak akkor működik, ha a fuzzy_skin_thickness paraméter nem nagyobb a nyomtatott hurok vastagságánál. Emellett egy adott réteg extrudálási szélessége sem lehet egy bizonyos szint alá csökkentve. Ez általában a rétegmagasság 15-25%%-a. Ezért 0,4 mm kerületszélesség és 0,2 mm rétegmagasság mellett a maximális bolyhos felület vastagság 0,4-(0,2*0,25)=±0,35 mm lesz. Ha ennél nagyobb értéket adsz meg, a Flow::spacing() hiba jelenik meg, és a modell nem lesz szeletelhető. Ezt az értéket addig választhatod, amíg ez a hiba meg nem ismétlődik." +"Figyelem! Az [Extrudálás] és a [Kombinált] mód csak akkor működik, ha a fuzzy_skin_thickness paraméter nem nagyobb a nyomtatott hurok vastagságánál. Emellett egy adott réteg extrudálási szélessége sem lehet egy bizonyos szint alá csökkentve. Ez általában a rétegmagasság 15-25%%-a. Ezért 0,4 mm kerületszélesség és 0,2 mm rétegmagasság mellett a barázdált felület maximális vastagsága 0,4-(0,2*0,25)=±0,35 mm lesz. Ha ennél nagyobb értéket adsz meg, a Flow::spacing() hiba jelenik meg, és a modell nem lesz szeletelhető. Ezt az értéket addig választhatod, amíg ez a hiba meg nem ismétlődik." msgid "Displacement" msgstr "Eltolás" @@ -14679,7 +14725,7 @@ msgid "Combined" msgstr "Kombinált" msgid "Fuzzy skin noise type" -msgstr "A bolyhos felület zajtípusa" +msgstr "A barázdált felület zajtípusa" msgid "" "Noise type to use for fuzzy skin generation:\n" @@ -14690,7 +14736,7 @@ msgid "" "Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.\n" "Ripple: Uniform ripple pattern that ripples left and right of the original path. Repeating pattern, woven appearance." msgstr "" -"A bolyhos felület generálására használható zajtípus:\n" +"A barázdált felület generálására használható zajtípus:\n" "Klasszikus: Klasszikus egységes véletlenszerű zaj.\n" "Perlin: Perlin zaj, amely egyenletesebb textúrát ad.\n" "Billow: Hasonló a perlin zajhoz, de csomósabb.\n" @@ -14717,19 +14763,19 @@ msgid "Ripple" msgstr "Fodrozódás" msgid "Fuzzy skin feature size" -msgstr "A bolyhos felület mintázatmérete" +msgstr "A barázdált felület mintázatmérete" msgid "The base size of the coherent noise features, in mm. Higher values will result in larger features." msgstr "Az összefüggő zajmintázat jellemzőinek alapmérete mm-ben. A nagyobb értékek nagyobb mintázatelemeket eredményeznek." msgid "Fuzzy Skin Noise Octaves" -msgstr "A bolyhos felület zajának oktávjai" +msgstr "A barázdált felület zajának oktávjai" msgid "The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time." msgstr "A használt összefüggő zaj oktávjainak száma. A nagyobb értékek részletesebb zajt eredményeznek, de növelik a számítási időt is." msgid "Fuzzy skin noise persistence" -msgstr "A bolyhos felület zajának perzisztenciája" +msgstr "A barázdált felület zajának perzisztenciája" msgid "The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise." msgstr "Az összefüggő zaj magasabb oktávjainak lecsengési aránya. Az alacsonyabb értékek simább zajt eredményeznek." @@ -14738,7 +14784,7 @@ msgid "Number of ripples per layer" msgstr "A fodrozódások száma rétegenként" msgid "Controls how many full cycles of ripples will be added per layer." -msgstr "Azt szabályozza, hogy hány teljes ciklus hullámzás kerüljön hozzáadásra rétegenként." +msgstr "A rétegenként hozzáadott teljes hullámciklusok számát szabályozza." msgid "Ripple offset" msgstr "Fodrozódás eltolás" @@ -14779,10 +14825,10 @@ msgid "Layers and Perimeters" msgstr "Rétegek és peremek" msgid "Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, bottom and solid infill and, if using the classic perimeter generator, to wall gap fill." -msgstr "Ne nyomtasson olyan réskitöltést, amelynek hossza kisebb a megadott küszöbértéknél (mm-ben). Ez a beállítás a felső, alsó és tömör kitöltésre vonatkozik, valamint klasszikus kerületgenerátor használata esetén a falréskitöltésre is." +msgstr "Nem nyomtat a megadott küszöbértéknél rövidebb hézagkitöltést. Ez a beállítás a felső, alsó és tömör kitöltésre, valamint klasszikus falgenerátornál a falak közötti hézagkitöltésre vonatkozik." msgid "This is the speed for gap infill. Gaps usually have irregular line width and should be printed more slowly." -msgstr "A hézagkitöltés nyomtatási sebessége. A rés általában szabálytalan vonalszélességű, és lassabban kell nyomtatni" +msgstr "A hézagkitöltés nyomtatási sebessége. A hézagok vonalszélessége általában szabálytalan, ezért lassabban kell nyomtatni őket" msgid "Precise Z height" msgstr "Pontos Z-magasság" @@ -14869,7 +14915,7 @@ msgid "Best object position" msgstr "Legjobb tárgypozíció" msgid "Best auto arranging position in range [0,1] w.r.t. bed shape." -msgstr "A legjobb automatikus elrendezés tartománya [0,1] a tárgyasztal alakja szerint." +msgstr "A legjobb automatikus elrendezés tartománya [0,1] az asztal alakja szerint." msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)." msgstr "Engedélyezd ezt az opciót, ha a gép rendelkezik kiegészítő tárgyhűtő ventilátorral. G-kód parancs: M106 P2 S(0-255)." @@ -14916,7 +14962,7 @@ msgstr "" "A kikapcsoláshoz állítsd 0-ra." msgid "Minimum non-zero part cooling fan speed" -msgstr "Minimális nem nulla rész-hűtőventilátor fordulatszáma" +msgstr "A tárgyhűtő ventilátor minimális nem nulla fordulatszáma" msgid "" "Some part-cooling fans cannot start spinning when commanded below a certain PWM duty cycle. When set above 0, any non-zero part-cooling fan command will be raised to at least this percentage so the fan reliably starts. A fan command of 0 (fan off) is always honoured exactly. This clamp is applied after every other fan calculation (first-layer ramp, layer-time interpolation, overhang/bridge/support-interface/ironing overrides), so scaling still operates within the range [this value, 100%].\n" @@ -14963,7 +15009,7 @@ msgid "Enable this if printer support cooling filter" msgstr "Engedélyezd a beállítást, ha a nyomtató támogatja a hűtőszűrőt" msgid "G-code flavor" -msgstr "G-kód változat" +msgstr "G-kód-változat" msgid "What kind of G-code the printer is compatible with." msgstr "Milyen G-kóddal kompatibilis a nyomtató." @@ -15005,7 +15051,7 @@ msgid "Infill combination" msgstr "Kitöltés összevonása" msgid "Automatically combine sparse infill of several layers to print together in order to reduce time. Walls are still printed with original layer height." -msgstr "Több réteg ritkás kitöltésének automatikus kombinálása a nyomtatási idő csökkentése érdekében. A fal továbbra is az eredeti rétegmagassággal kerül kinyomtatásra." +msgstr "Több réteg kitöltésének automatikus összevonása a nyomtatási idő csökkentéséhez. A falat továbbra is az eredeti rétegmagassággal nyomtatja." msgid "Infill shift step" msgstr "Kitöltés eltolási lépése" @@ -15014,10 +15060,10 @@ msgid "This parameter adds a slight displacement to each layer of infill to crea msgstr "Ez a paraméter enyhe eltolást ad a kitöltéshez minden rétegen, hogy keresztmintás textúra jöjjön létre." msgid "Sparse infill rotation template" -msgstr "Ritka kitöltés forgatási sablonja" +msgstr "Kitöltés forgatási sablonja" msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care." -msgstr "A ritka kitöltés irányát rétegenként forgatja egy szögsablon alapján. Adj meg vesszővel elválasztott fokértékeket (pl. '0,30,60,90'). A szögek rétegenként sorban lesznek alkalmazva, majd a lista végén ismétlődnek. Támogatott a haladó szintaxis is: a '+5' minden rétegen +5°-kal forgat; a '+5#5' minden 5 rétegenként +5°-kal forgat. A részletekért lásd a Wikit. Ha sablon van megadva, a normál kitöltési irány beállítás figyelmen kívül marad. Megjegyzés: egyes kitöltési minták (pl. Gyroid) saját maguk kezelik a forgatást; körültekintően használd." +msgstr "A kitöltés irányát rétegenként forgatja egy szögsablon alapján. Adj meg vesszővel elválasztott fokértékeket (pl. '0,30,60,90'). A szögeket rétegenként, sorban alkalmazza, majd a lista végén elölről kezdi. A haladó szintaxis is használható: a '+5' minden rétegen +5°-kal forgat; a '+5#5' minden 5 rétegenként +5°-kal forgat. A részletekért lásd a Wikit. Ha megadsz egy sablont, a normál kitöltési irány beállítását figyelmen kívül hagyja. Megjegyzés: egyes kitöltési minták (pl. Gyroid) maguk kezelik a forgatást; körültekintően használd." msgid "Solid infill rotation template" msgstr "Tömör kitöltés forgatási sablonja" @@ -15029,13 +15075,13 @@ msgid "Skeleton infill density" msgstr "Vázkitöltés sűrűsége" msgid "The remaining part of the model contour after removing a certain depth from the surface is called the skeleton. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skeleton densities, their skeleton areas will develop overlapping sections. Default is as same as infill density." -msgstr "A modell körvonalának a felületről egy bizonyos mélység eltávolítása után megmaradó részét vázként értelmezzük. Ez a paraméter ennek a résznek a sűrűségét szabályozza. Ha két régió ugyanazzal a ritka kitöltési beállítással, de eltérő vázsűrűséggel rendelkezik, a vázterületeik átfedésbe kerülnek. Alapértelmezés szerint megegyezik a kitöltési sűrűséggel." +msgstr "A modell körvonalának a felületről egy bizonyos mélység eltávolítása után megmaradó részét váznak nevezzük. Ez a paraméter ennek a résznek a sűrűségét szabályozza. Ha két régió kitöltési beállítása azonos, de a vázsűrűségük eltér, a vázterületeik átfedik egymást. Alapértelmezés szerint megegyezik a kitöltési sűrűséggel." msgid "Skin infill density" msgstr "Felületi kitöltés sűrűsége" msgid "The portion of the model's outer surface within a certain depth range is called the skin. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skin densities, this area will not be split into two separate regions. Default is as same as infill density." -msgstr "A modell külső felületének egy adott mélységtartományba eső részét felületi rétegnek nevezzük. Ez a paraméter ennek a szakasznak a sűrűségét szabályozza. Ha két régió ugyanazzal a ritka kitöltési beállítással, de eltérő felületi réteg-sűrűséggel rendelkezik, ez a terület nem lesz két külön régióra bontva. Alapértelmezés szerint megegyezik a kitöltési sűrűséggel." +msgstr "A modell külső felületének egy adott mélységtartományba eső részét felületi rétegnek nevezzük. Ez a paraméter ennek a résznek a sűrűségét szabályozza. Ha két régió kitöltési beállítása azonos, de a felületi rétegük sűrűsége eltér, ez a terület nem válik két külön régióra. Alapértelmezés szerint megegyezik a kitöltési sűrűséggel." msgid "Skin infill depth" msgstr "Felületi kitöltés mélysége" @@ -15079,9 +15125,9 @@ msgid "" "\n" "Use either absolute mm values (eg. 0.32mm for a 0.4mm nozzle) or % values (eg 80%). This value must not be larger than the nozzle diameter." msgstr "" -"A kombinált ritka kitöltés maximális rétegmagassága.\n" +"A kombinált kitöltés maximális rétegmagassága.\n" "\n" -"Állítsd 0-ra vagy 100%-ra a fúvókaátmérő használatához (a nyomtatási idő maximális csökkentéséhez), vagy kb. 80%-ra a ritka kitöltés szilárdságának maximalizálásához.\n" +"Állítsd 0-ra vagy 100%-ra a fúvókaátmérő használatához (a nyomtatási idő lehető legnagyobb csökkentéséhez), vagy kb. 80%-ra a kitöltés szilárdságának maximalizálásához.\n" "\n" "Az a rétegszám, amelyen a kitöltés összevonásra kerül, úgy számolódik, hogy ezt az értéket elosztja a rétegmagassággal, majd lefelé kerekíti a legközelebbi egészre.\n" "\n" @@ -15149,7 +15195,7 @@ msgid "Maximum straightening angle used to simplify Lightning branches." msgstr "A Villám ágak egyszerűsítéséhez használt maximális kiegyenesítési szög." msgid "Sparse infill anchor length" -msgstr "Ritka kitöltés horgonyhossza" +msgstr "Kitöltés horgonyhossza" msgid "" "Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. Orca Slicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than infill_anchor_max is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to this parameter, but no longer than anchor_length_max.\n" @@ -15186,24 +15232,24 @@ msgstr "" "Az \"Alapértelmezett\" az aktív objektum/tárgy filamentjét használja." msgid "Line width of internal sparse infill. If expressed as a %, it will be computed over the nozzle diameter." -msgstr "A belső ritka kitöltés vonalszélessége. Ha százalékban van megadva, a fúvókaátmérő alapján lesz kiszámítva." +msgstr "A belső kitöltés vonalszélessége. Ha százalékban adod meg, a szeletelő a fúvókaátmérőből számítja ki." msgid "Infill/wall overlap" msgstr "Kitöltés/fal átfedés" #, no-c-format, no-boost-format msgid "This allows the infill area to be enlarged slightly to overlap with walls for better bonding. The percentage value is relative to line width of sparse infill. Set this value to ~10-15% to minimize potential over extrusion and accumulation of material resulting in rough top surfaces." -msgstr "A kitöltési terület kissé megnagyobbodik, hogy átfedésbe kerüljön a fallal a jobb kötés érdekében. A százalékos érték a ritka kitöltés vonalszélességéhez viszonyított. Állítsd ezt az értéket kb. 10-15%-ra a lehetséges túlextrudálás és az anyagfelhalmozódás minimalizálásához, amely érdes felső felületeket eredményezhet." +msgstr "A jobb kötés érdekében kissé megnöveli a kitöltési területet, hogy az átfedje a falat. A százalékos érték a kitöltés vonalszélességéhez viszonyított. Körülbelül 10-15%-os értékkel csökkenthető a túlextrudálás és az érdes felső felületet okozó anyagfelhalmozódás." msgid "Top/Bottom solid infill/wall overlap" msgstr "Felső/alsó tömör kitöltés és fal átfedése" #, no-c-format, no-boost-format msgid "Top solid infill area is enlarged slightly to overlap with wall for better bonding and to minimize the appearance of pinholes where the top infill meets the walls. A value of 25-30% is a good starting point, minimizing the appearance of pinholes. The percentage value is relative to line width of sparse infill." -msgstr "A felső tömör kitöltési terület kissé megnagyobbodik, hogy átfedésbe kerüljön a fallal a jobb kötés érdekében, és csökkentse a tűlyukszerű hibák megjelenését ott, ahol a felső kitöltés a falakkal találkozik. Jó kiindulási érték a 25-30%, amely segít minimalizálni a tűlyukak megjelenését. A százalékos érték a ritka kitöltés vonalszélességéhez viszonyított." +msgstr "A jobb kötés és a felső kitöltés falhoz csatlakozásánál megjelenő apró lyukak csökkentése érdekében kissé megnöveli a felső tömör kitöltés területét, hogy az átfedje a falat. Jó kiindulási érték a 25-30%. A százalékos érték a kitöltés vonalszélességéhez viszonyított." msgid "This is the speed for internal sparse infill." -msgstr "A belső ritkás kitöltés sebessége" +msgstr "A belső kitöltés sebessége" msgid "Inherits profile" msgstr "Örököli a profilt" @@ -15215,7 +15261,7 @@ msgid "Interface shells" msgstr "Érintkezőréteg-héjak" msgid "Force the generation of solid shells between adjacent materials/volumes. Useful for multi-extruder prints with translucent materials or manual soluble support material." -msgstr "Kikényszeríti a tömör héjak létrehozását a szomszédos anyagok/térfogatok között. Hasznos többextruderes nyomatoknál áttetsző anyagokkal vagy manuálisan oldható támaszanyag használatakor." +msgstr "Kikényszeríti a tömör héjak létrehozását a szomszédos anyagok vagy térfogatok között. Hasznos többextruderes nyomatoknál áttetsző anyagok, illetve kézzel létrehozott, oldható támaszok használatakor." msgid "Maximum width of a segmented region" msgstr "Szegmentált régió maximális szélessége" @@ -15318,7 +15364,7 @@ msgid "Ironing expansion" msgstr "Vasaló bővítés" msgid "Expand or contract the ironing area." -msgstr "A vasalási terület bővítése/szűkítése ." +msgstr "A vasalási terület bővítése vagy szűkítése." msgid "Z contouring enabled" msgstr "Z kontúrozás engedélyezve" @@ -15381,10 +15427,10 @@ msgstr "" "Ez az opció figyelmen kívül marad, ha a G-kód változat Klipperre van állítva." msgid "This G-code will be used as a code for the pause print. Users can insert pause G-code in the G-code viewer." -msgstr "Ez a G-kód lesz használva a nyomtatás szüneteltetéséhez. A felhasználók a szünet G-kódot a G-kódnézőben illeszthetik be." +msgstr "Ezt a G-kódot használja a nyomtatás szüneteltetéséhez. A szüneteltetési G-kódot a G-kódnézőben lehet beilleszteni." msgid "This G-code will be used as a custom code." -msgstr "Ezt a G-kód egyedi kódként lesz használva." +msgstr "Ezt a G-kódot egyedi kódként használja." msgid "Small area flow compensation (beta)" msgstr "Kis területű áramláskompenzáció (béta)" @@ -15423,7 +15469,7 @@ msgid "Maximum E speed" msgstr "Maximális E sebesség" msgid "Maximum acceleration X" -msgstr "Maximális sebesség X" +msgstr "Maximális gyorsulás X" msgid "Maximum acceleration Y" msgstr "Maximális gyorsulás Y" @@ -15579,8 +15625,8 @@ msgid "" "Disable turns off input shaping in the firmware." msgstr "" "Válaszd ki a rezgéskompenzáció algoritmust.\n" -"A Default a firmware alapértelmezett beállításait használja.\n" -"A letiltása kikapcsolja a rezgéskompenzációt a firmware-ben." +"Az Alapértelmezett a firmware alapértelmezett beállításait használja.\n" +"A Letiltás kikapcsolja a rezgéskompenzációt a firmware-ben." msgid "MZV" msgstr "MZV" @@ -15747,8 +15793,8 @@ msgid "" "Auxiliary fan speed will be ramped up linearly from layer \"For the first\" to maximum at layer \"Full fan speed at layer\".\n" "\"Full fan speed at layer\" will be ignored if lower than \"For the first\", in which case the fan will run at maximum allowed speed at layer \"For the first\" + 1." msgstr "" -"A segédventilátor sebessége lineárisan megemelkedik az \"Az első\" rétegtől a maximálisig a \"Teljes ventilátorsebesség\" rétegnél.\n" -"A rendszer figyelmen kívül hagyja a „teljes ventilátor fordulatszámot” ha alacsonyabb, mint „Az első”, ebben az esetben a ventilátor a maximális megengedett sebességgel fog működni „Az első” + 1 rétegben." +"A segédventilátor sebessége az „Az első” rétegtől lineárisan emelkedik, és a „Teljes ventilátor fordulatszám ennél a rétegnél” rétegnél éri el a maximumot.\n" +"Ha a „Teljes ventilátor fordulatszám ennél a rétegnél” értéke kisebb az „Az első” értékénél, a rendszer figyelmen kívül hagyja, és a ventilátor az „Az első” + 1. rétegen a megengedett maximális sebességgel működik." msgid "Special auxiliary cooling fan speed, effective only for the first x layers." msgstr "Speciális kiegészítő hűtőventilátor sebessége, csak az első x rétegeknél hatásos." @@ -15775,7 +15821,7 @@ msgid "Host Type" msgstr "Host típusa" msgid "Orca Slicer can upload G-code files to a printer host. This field must contain the kind of the host." -msgstr "A Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek tartalmaznia kell a gazdagép típusát." +msgstr "Az Orca Slicer képes G-kód fájlokat feltölteni a nyomtatóra. Ennek a mezőnek a gazdagép típusát kell tartalmaznia." msgid "Nozzle volume" msgstr "Fúvóka térfogata" @@ -15811,7 +15857,7 @@ msgid "Extra loading distance" msgstr "Extra betöltési hossz" msgid "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading." -msgstr "Ha nullára van állítva, akkor a filamentet a betöltés során a parkolóhelyzetből pontosan ugyanannyira kerül előtolásra, mint amennyire a kiürítéskor vissza lett húzva. Ha pozitív, akkor tovább töltődik, ha negatív, akkor a betöltési mozgás rövidebb, mint a kiürítési." +msgstr "Nulla értéknél a filament betöltéskor pontosan akkora utat tesz meg a parkolóhelyzettől, amekkorát kiürítéskor visszahúzott. Pozitív értéknél tovább tölti be, negatív értéknél pedig a betöltési mozgás rövidebb a kiürítésinél." msgid "Start end points" msgstr "Kezdő- és végpontok" @@ -15916,7 +15962,7 @@ msgid "Change extrusion role G-code (process)" msgstr "Extrudálási szerepkör G-kód módosítása (folyamat)" msgid "This G-code is inserted when the extrusion role is changed. It runs after the machine and filament extrusion role G-code." -msgstr "Ez a G-kód akkor kerül beillesztésre, amikor az extrudálási szerep megváltozik. A gép és a filament extrudálási szerepkör G-kódja után fut." +msgstr "Az Orca Slicer az extrudálási szerep megváltozásakor illeszti be ezt a G-kódot. A gép és a filament extrudálási szerepéhez tartozó G-kód után fut le." # AI Translated msgid "Plugins Used" @@ -15949,7 +15995,7 @@ msgid "Raft contact Z distance" msgstr "Tutaj érintkezési Z-távolság" msgid "Z gap between raft and object. If Support Top Z Distance is 0, this value is ignored and the object is printed in direct contact with the raft (no gap)." -msgstr "Z rés a tutaj és a tárgy között. Ha a támasz felső Z-távolsága 0, ez az érték figyelmen kívül lesz hagyva és a tárgy közvetlenül a tutajon kerül nyomtatásra (rés nélkül)." +msgstr "Z-rés a tutaj és a tárgy között. Ha a támasz felső Z-távolsága 0, a szeletelő figyelmen kívül hagyja ezt az értéket, és a tárgyat közvetlenül a tutajra nyomtatja (rés nélkül)." msgid "Raft expansion" msgstr "Tutaj kibővítése" @@ -15967,7 +16013,7 @@ msgid "First layer expansion" msgstr "Első réteg kiterjesztése" msgid "This expands the first raft or support layer to improve bed adhesion." -msgstr "Az első tutaj- vagy támaszréteg kiterjesztése a tárgyasztalhoz való tapadás javítása érdekében." +msgstr "Az első tutaj- vagy támaszréteg kiterjesztése az asztalhoz való tapadás javítása érdekében." msgid "Raft layers" msgstr "Tutajrétegek" @@ -16019,7 +16065,7 @@ msgid "Long retraction when cut (beta)" msgstr "Hosszú visszahúzás vágáskor (béta)" msgid "Experimental feature: Retracting and cutting off the filament at a longer distance during changes to minimize purge. While this reduces flush significantly, it may also raise the risk of nozzle clogs or other printing problems." -msgstr "Kísérleti funkció: Filamentváltás közben nagyobb távolságról történő visszahúzás és vágás a kiürítés minimalizálása érdekében. Bár ez jelentősen csökkenti az öblítést, növelheti a fúvóka eltömődésének vagy más nyomtatási problémáknak a kockázatát." +msgstr "Kísérleti funkció: Filamentváltás közben nagyobb távolságról történő visszahúzás és vágás az öblítés minimalizálása érdekében. Bár ez jelentősen csökkenti az öblítést, növelheti a fúvóka eltömődésének vagy más nyomtatási problémáknak a kockázatát." msgid "Retraction distance when cut" msgstr "Visszahúzási távolság vágáskor" @@ -16183,7 +16229,7 @@ msgid "Back" msgstr "Hátul" msgid "Random" -msgstr "Véletlenszerû" +msgstr "Véletlenszerű" msgid "Staggered inner seams" msgstr "Eltolt belső varratok" @@ -16211,7 +16257,7 @@ msgid "Conditional scarf joint" msgstr "Feltételes átlapolt illesztés" msgid "Apply scarf joints only to smooth perimeters where traditional seams do not conceal the seams at sharp corners effectively." -msgstr "Átlapolt illesztést csak sima kerületeknél alkalmazzon, ahol a hagyományos varratok nem rejtik el hatékonyan a varratot az éles sarkoknál." +msgstr "Csak olyan sima kerületeken alkalmaz átlapolt illesztést, ahol nincsenek éles sarkok, amelyek hatékonyan elrejtenék a hagyományos varratot." msgid "Conditional angle threshold" msgstr "Feltételes szögküszöb" @@ -16228,7 +16274,7 @@ msgstr "Feltételes túlnyúlási küszöb" #, no-c-format, no-boost-format msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated." -msgstr "Ez az opció meghatározza az átlapolt varratok alkalmazásának túlnyúlási küszöbét. Ha a kerület alá nem támasztott része kisebb ennél a küszöbnél, átlapolt varrat kerül alkalmazásra. Az alapértelmezett küszöb a külső fal szélességének 40%-a. Teljesítménybeli okokból a túlnyúlás mértéke becsült érték." +msgstr "Ez a beállítás határozza meg az átlapolt varratok túlnyúlási küszöbét. Ha a kerület alá nem támasztott része kisebb ennél a küszöbnél, a szeletelő átlapolt varratot alkalmaz. Az alapértelmezett küszöb a külső fal szélességének 40%-a. Teljesítménybeli okokból a túlnyúlás mértéke csak becsült érték." msgid "Scarf joint speed" msgstr "Átlapolt varrat sebessége" @@ -16237,7 +16283,7 @@ msgid "This option sets the printing speed for scarf joints. It is recommended t msgstr "Ez az opció beállítja az átlapolt varratok nyomtatási sebességét. Ajánlott az átlapolt varratokat alacsony sebességgel nyomtatni (100 mm/s alatt). Az is javasolt, hogy kapcsold be az \"Extrudálási sebesség simítását\", ha az itt megadott sebesség jelentősen eltér a külső vagy belső fal sebességétől. Ha az itt megadott sebesség nagyobb, mint a külső vagy belső fal sebessége, a nyomtató a kettő közül a lassabbat fogja használni. Ha százalékban van megadva (pl. 80%), a sebesség a megfelelő külső vagy belső fali sebesség alapján lesz kiszámítva. Az alapértelmezett érték 100%." msgid "Scarf joint flow ratio" -msgstr "Átlapolt varrat áramlási aránya" +msgstr "Átlapolt varrat anyagáramlása" msgid "This factor affects the amount of material for scarf joints." msgstr "Ez a tényező az átlapolt varratokhoz felhasznált anyag mennyiségét befolyásolja." @@ -16339,7 +16385,7 @@ msgid "" "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n" "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n" msgstr "" -"A huzatvédő hasznos lehet az ABS vagy ASA nyomatok kunkorodásának és a tárgyasztalról való leválásának megelőzésére, amelyet légmozgás okozhat. Általában csak nyitott vázas, azaz burkolat nélküli nyomtatóknál van rá szükség.\n" +"A huzatvédő segíthet megelőzni, hogy a légmozgás miatt az ABS- vagy ASA-nyomatok felkunkorodjanak és leváljanak az asztalról. Általában csak nyitott vázas, azaz burkolat nélküli nyomtatóknál van rá szükség.\n" "\n" "Engedélyezve = a szoknya olyan magas lesz, mint a legmagasabb nyomtatott objektum. Ellenkező esetben a \"Szoknya magassága\" érték kerül használatra.\n" "Megjegyzés: Aktív huzatvédő mellett a szoknya az objektumtól mért szoknyatávolságban lesz nyomtatva. Ezért ha perem is aktív, metszheti azt. Ennek elkerüléséhez növeld a szoknyatávolság értékét.\n" @@ -16384,13 +16430,13 @@ msgstr "" "A hurkok végső száma nincs figyelembe véve az objektumok elrendezésekor vagy távolságának ellenőrzésekor. Ilyen esetben növeld a hurkok számát." msgid "The printing speed in exported G-code will be slowed down when the estimated layer time is shorter than this value in order to get better cooling for these layers." -msgstr "A nyomtatási sebesség az exportált G-kódban csökkentésre kerül, ha a becsült rétegidő kisebb, mint ez az érték, hogy a rétegek jobb hűtése biztosított legyen." +msgstr "Ha a becsült rétegidő kisebb ennél az értéknél, az exportált G-kód csökkenti a nyomtatási sebességet a rétegek jobb hűtése érdekében." msgid "Minimum sparse infill threshold" -msgstr "Ritkás kitöltés küszöbértéke" +msgstr "Kitöltés küszöbértéke" msgid "Sparse infill areas which are smaller than this threshold value are replaced by internal solid infill." -msgstr "Az ennél a küszöbértéknél kisebb ritka kitöltési területek belső tömör kitöltéssel helyettesítődnek." +msgstr "Az ennél a küszöbértéknél kisebb kitöltési területeket belső tömör kitöltéssel helyettesíti." # AI Translated msgid "" @@ -16420,7 +16466,7 @@ msgid "Line width of internal solid infill. If expressed as a %, it will be comp msgstr "A belső tömör kitöltés vonalszélessége. Ha százalékban van megadva, a fúvókaátmérő alapján lesz kiszámítva." msgid "This is the speed for internal solid infill, not including the top or bottom surface." -msgstr "A belső szilárd kitöltés sebessége, de az az érték nem vonatkozik a felső és alsó felületre" +msgstr "A belső tömör kitöltés sebessége; nem vonatkozik a felső és alsó felületre" msgid "This enables spiraling, which smooths out the Z moves of the outer contour and turns a solid model into a single walled print with solid bottom layers. The final generated model has no seam." msgstr "A spirál mód kisimítja a külső kontúr Z mozgásait. A tömör modellt egyfalú nyomatokká alakítja, tömör alsó rétegekkel. A végső modellen nincsenek varratok" @@ -16439,21 +16485,21 @@ msgid "Maximum distance to move points in XY to try to achieve a smooth spiral. msgstr "A pontok XY irányban történő maximális elmozdítása a sima spirál elérése érdekében. Ha százalékban van megadva, a fúvókaátmérő alapján lesz kiszámítva." msgid "Spiral starting flow ratio" -msgstr "Spirál kezdő áramlási aránya" +msgstr "Spirál kezdő anyagáramlása" #, no-c-format, no-boost-format msgid "Sets the starting flow ratio while transitioning from the last bottom layer to the spiral. Normally the spiral transition scales the flow ratio from 0% to 100% during the first loop which can in some cases lead to under extrusion at the start of the spiral." -msgstr "Beállítja a kezdő áramlási arányt az utolsó alsó rétegről a spirálra való átmenet során. Normál esetben a spirálra váltás az első hurok alatt 0%-ról 100%-ra skálázza az áramlási arányt, ami egyes esetekben alulextrudálást okozhat a spirál elején." +msgstr "Beállítja az anyagáramlás kezdőértékét az utolsó alsó rétegről a spirálra való átmenet során. Normál esetben a spirálra váltás az első hurok alatt 0%-ról 100%-ra növeli az anyagáramlást, ami egyes esetekben alulextrudálást okozhat a spirál elején." msgid "Spiral finishing flow ratio" -msgstr "Spirál befejező áramlási aránya" +msgstr "Spirál befejező anyagáramlása" #, no-c-format, no-boost-format msgid "Sets the finishing flow ratio while ending the spiral. Normally the spiral transition scales the flow ratio from 100% to 0% during the last loop which can in some cases lead to under extrusion at the end of the spiral." -msgstr "Beállítja a befejező áramlási arányt a spirál lezárásakor. Normál esetben a spirál lezárása az utolsó hurok alatt 100%-ról 0%-ra skálázza az áramlási arányt, ami egyes esetekben alulextrudálást okozhat a spirál végén." +msgstr "Beállítja az anyagáramlás befejező értékét a spirál lezárásakor. Normál esetben a spirál lezárása az utolsó hurok alatt 100%-ról 0%-ra csökkenti az anyagáramlást, ami egyes esetekben alulextrudálást okozhat a spirál végén." msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle." -msgstr "Ha a sima vagy a hagyományos mód van kiválasztva, minden nyomtatásnál készül egy időfelvétel-videó. Az egyes rétegek kinyomtatása után a beépített kamera egy képet készít. A nyomtatás befejeződése után aztán ezeket a képeket a szoftver egy videóvá fűzi össze. Ha a sima mód van kiválasztva, a réteg nyomtatása után a nyomtatófej a kidobónyíláshoz mozog, majd a kamera egy képet készít. Mivel a kép készítése során szivároghat valamennyi olvadt filament a fúvókából, egy törlőtoronyra van szükség a fúvóka megtisztításához." +msgstr "Sima vagy hagyományos módban minden nyomtatásról Timelapse-videó készül. Az egyes rétegek után a beépített kamera fényképet készít, majd a nyomtatás végén a szoftver videóvá fűzi össze a képeket. Sima módban a szerszámfej minden réteg után a kidobónyíláshoz mozog, mielőtt a kamera elkészíti a képet. Mivel eközben olvadt filament szivároghat a fúvókából, a fúvóka megtisztításához törlőtorony szükséges." msgid "Traditional" msgstr "Hagyományos" @@ -16467,14 +16513,14 @@ msgstr "Timelapse a legtávolabbi pontban" # AI Translated msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers." -msgstr "Bekapcsolva a timelapse felvétel a kamerától legtávolabbi pontban készül, ahelyett hogy a nyomtatófej a törlőtoronyhoz vagy a hulladékcsatornához mozogna. Csak a hagyományos timelapse módban, nem I3 felépítésű nyomtatókon működik." +msgstr "Bekapcsolva a Timelapse-felvétel a kamerától legtávolabbi pontban készül, ahelyett hogy a szerszámfej a törlőtoronyhoz vagy a hulladékcsatornához mozogna. Csak hagyományos Timelapse módban és nem I3 felépítésű nyomtatókon működik." msgid "Temperature variation" msgstr "Hőmérséklet változás" #. TRN PrintSettings : "Ooze prevention" > "Temperature variation" msgid "Temperature difference to be applied when an extruder is not active. The value is not used when 'idle_temperature' in filament settings is set to non-zero value." -msgstr "Az az alkalmazandó hőmérséklet-különbség, amikor egy extruder nem aktív. Ez az érték nem kerül felhasználásra, ha a filament beállításokban az 'idle_temperature' nem nulla értékre van állítva." +msgstr "A nem aktív extrudernél alkalmazott hőmérséklet-különbség. A rendszer figyelmen kívül hagyja ezt az értéket, ha a filamentbeállításokban az 'idle_temperature' értéke nem nulla." msgid "∆℃" msgstr "∆℃" @@ -16510,16 +16556,16 @@ msgid "Use single nozzle to print multi filament." msgstr "Egyetlen fúvóka használata többféle filament nyomtatásához." msgid "Manual Filament Change" -msgstr "Manuális filamentcsere" +msgstr "Kézi filamentcsere" msgid "Enable this option to omit the custom Change filament G-code only at the beginning of the print. The tool change command (e.g., T0) will be skipped throughout the entire print. This is useful for manual multi-material printing, where we use M600/PAUSE to trigger the manual filament change action." -msgstr "Engedélyezd ezt az opciót, hogy az egyedi Filamentcsere G-kód csak a nyomtatás elején maradjon ki. A szerszámváltási parancs (pl. T0) a teljes nyomtatás során ki lesz hagyva. Ez manuális többanyagú nyomtatásnál hasznos, ahol az M600/PAUSE parancsot használjuk a manuális filamentcsere elindítására." +msgstr "Engedélyezd ezt a beállítást, ha csak a nyomtatás elején szeretnéd kihagyni az egyéni Filamentcsere G-kódot. A szerszámváltási parancsok (pl. T0) a teljes nyomtatás során kimaradnak. Ez kézi többanyagos nyomtatásnál hasznos, ahol az M600/PAUSE paranccsal indítható el a kézi filamentcsere." msgid "Wipe tower type" msgstr "Törlőtorony típusa" msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility." -msgstr "Válassza ki a törlőtorony megvalósítását a többanyagos nyomtatáshoz. Az 1. típus ajánlott a Bambu és Qidi nyomtatókhoz szálvágóval. A 2. típus jobb kompatibilitást kínál a többszerszámos és MMU nyomtatókkal, és összességében jobb kompatibilitást biztosít." +msgstr "Válaszd ki a törlőtorony megvalósítását a többanyagos nyomtatáshoz. Az 1. típus ajánlott a szálvágóval felszerelt Bambu és Qidi nyomtatókhoz. A 2. típus jobb kompatibilitást kínál a többszerszámos és MMU nyomtatókkal." msgid "Type 1" msgstr "1. típus" @@ -16528,10 +16574,10 @@ msgid "Type 2" msgstr "2. típus" msgid "Purge in prime tower" -msgstr "Kiürítés a törlőtoronyban" +msgstr "Öblítés a törlőtoronyban" msgid "Purge remaining filament into prime tower." -msgstr "A megmaradt filament kiürítése a törlőtoronyba." +msgstr "A megmaradt filament öblítése a törlőtoronyba." msgid "Enable filament ramming" msgstr "Filament tömörítés engedélyezése" @@ -16540,19 +16586,19 @@ msgid "Tool change on wipe tower" msgstr "Szerszámcsere a törlőtoronyban" msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead." -msgstr "A szerszámcsere parancs (Tx) kiadása előtt kényszerítse a szerszámfejet a törlőtoronyhoz. Csak a 2-es típusú törlőtornyot használó többextruderes (több szerszámfejes) nyomtatóknál releváns. Alapértelmezés szerint az Orca kihagyja az utazást a több szerszámfejes gépeken, mert a firmware kezeli a fejcserét, ami azt eredményezheti, hogy a Tx parancs a nyomtatott rész felett kerül kiadásra. Engedélyezd ezt az opciót, ha azt szeretnéd, hogy a szerszámcsere mindig a törlőtorony felett történjen." +msgstr "A szerszámcsere parancs (Tx) kiadása előtt a törlőtoronyhoz mozgatja a szerszámfejet. Csak a 2-es típusú törlőtornyot használó többextruderes (több szerszámfejes) nyomtatóknál van jelentősége. Az Orca alapértelmezés szerint kihagyja ezt a mozgást a több szerszámfejes gépeknél, mert a fejcserét a firmware kezeli. Emiatt azonban előfordulhat, hogy a Tx parancsot a nyomtatott tárgy felett adja ki. Kapcsold be ezt a beállítást, ha azt szeretnéd, hogy a szerszámcsere mindig a törlőtorony felett történjen." msgid "No sparse layers (beta)" msgstr "Nincsenek ritka rétegek (béta)" msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print." -msgstr "Ha engedélyezve van, akkor törlőtorony nem kerül kinyomtatásra szerszámváltás nélküli rétegeken. A szerszámcserével rendelkező rétegeken az extruder az aktuális magasság alá süllyed a törlőtorony nyomtatásához. A felhasználó felelős azért, hogy ez ne okozzon ütközést a nyomtatás során." +msgstr "Ha engedélyezed, nem készül törlőtorony azokon a rétegeken, ahol nincs szerszámváltás. A szerszámváltást tartalmazó rétegeknél az extruder az aktuális magasság alá süllyed a törlőtorony nyomtatásához. Ügyelj arra, hogy ez ne okozzon ütközést a nyomtatás során." msgid "Prime all printing extruders" msgstr "Az összes nyomtató extruder előkészítése" msgid "If enabled, all printing extruders will be primed at the front edge of the print bed at the start of the print." -msgstr "Ha engedélyezve van, akkor a nyomtatás kezdetén az összes nyomtató extruder előkészítésre kerül a tárgyasztal elülső szélénél." +msgstr "Bekapcsolva a nyomtatás kezdetén minden extrudert előkészít az asztal elülső szélénél." # AI Translated msgid "Toolchange ordering" @@ -16576,7 +16622,7 @@ msgid "Slice gap closing radius" msgstr "Szeletelési hézag lezárási sugara" msgid "Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low." -msgstr "A háromszögháló szeletelés során a szeletelési hézag lezárási sugaránál 2x kisebb résekk feltöltésre kerülnek. A hézagok lezárása csökkentheti a nyomtatási felbontást, ezért ajánlott ezt az értéket alacsonyan tartani." +msgstr "A háromszögháló szeletelésekor kitölti a hézagzárási sugár kétszeresénél kisebb repedéseket. A hézagok lezárása csökkentheti a nyomtatási felbontást, ezért érdemes ezt az értéket viszonylag alacsonyan tartani." msgid "Slicing Mode" msgstr "Szeletelési mód" @@ -16600,7 +16646,7 @@ msgid "Z offset" msgstr "Z ofszet" msgid "This value will be added (or subtracted) from all the Z coordinates in the output G-code. It is used to compensate for bad Z endstop position: for example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." -msgstr "Ez az érték hozzáadódik (vagy kivonásra kerül) az összes Z koordinátához a kimeneti G-kódban. A Z tengely végállás pozíciójának kompenzálására szolgál: például ha a végállás nullája valójában 0,3 mm-re hagyja a fúvókát a tárgyasztal felett, akkor állítsa ezt az értéke -0,3-ra (vagy javítsa meg a végállást)." +msgstr "Ez az érték a kimeneti G-kód minden Z-koordinátáját ennyivel növeli vagy csökkenti. A hibás Z-végálláshelyzet kompenzálására szolgál: például ha a végállás nullpontján a fúvóka valójában 0,3 mm-re marad az asztaltól, állítsd ezt az értéket -0,3-ra (vagy javítsd ki a végállást)." msgid "Enable support" msgstr "Támasz engedélyezése" @@ -16609,19 +16655,19 @@ msgid "This enables support generation." msgstr "Engedélyezi a támasz generálását." msgid "Normal (auto) and Tree (auto) are used to generate support automatically. If Normal (manual) or Tree (manual) is selected, only support enforcers are generated." -msgstr "A normál (auto) és a fa (auto) a támaszok automatikus generálásához van használva. Ha a normál (kézi) vagy a fa (kézi) van kiválasztva, akkor csak a kényszerített támaszok kerülnek generálásra." +msgstr "A Normál (automatikus) és a Fa (automatikus) beállítás automatikusan hozza létre a támaszokat. A Normál (kézi) és a Fa (kézi) beállítás csak a kijelölt támaszkényszerítőknél hoz létre támaszt." msgid "Normal (auto)" -msgstr "normál (auto)" +msgstr "Normál (automatikus)" msgid "Tree (auto)" -msgstr "fa (auto)" +msgstr "Fa (automatikus)" msgid "Normal (manual)" -msgstr "normál (manuális)" +msgstr "Normál (kézi)" msgid "Tree (manual)" -msgstr "fa (manuális)" +msgstr "Fa (kézi)" msgid "Support/object XY distance" msgstr "Támasz/tárgy XY távolság" @@ -16642,16 +16688,16 @@ msgid "Use this setting to rotate the support pattern on the horizontal plane." msgstr "Ezzel a beállítással elforgathatod a támasz mintázatát a vízszintes síkon." msgid "On build plate only" -msgstr "Csak a tárgyasztaltól" +msgstr "Csak az asztalról" msgid "This setting only generates supports that begin on the build plate." -msgstr "Nem generál támaszt a modell felületén, csak a tárgyasztalon" +msgstr "Nem hoz létre támaszt a modell felületén, csak az asztalon" msgid "Support critical regions only" msgstr "Csak a kritikus területek alátámasztása" msgid "Only create support for critical regions including sharp tail, cantilever, etc." -msgstr "Csak olyan kritikus területekhez generál támasztékot, mint például egy farok vagy egyéb kiálló részek." +msgstr "Csak olyan kritikus területekhez hoz létre támaszt, mint például egy farok vagy más kiálló részek." msgid "Ignore small overhangs" msgstr "Kis túlnyúlások mellőzése" @@ -16669,7 +16715,7 @@ msgid "Bottom Z distance" msgstr "Alsó Z távolság" msgid "Z gap between the object and the support bottom. If Support Top Z Distance is 0 and the bottom has interface layers, this value is ignored and the support is printed in direct contact with the object (no gap)." -msgstr "Z rés a tárgy és a támasz alja között. Ha a támasz felső Z-távolsága 0 és az alján vannak interfész rétegek, ez az érték figyelmen kívül lesz hagyva, és a támasz közvetlenül a tárgyhoz lesz nyomtatva (rés nélkül)." +msgstr "Z-rés a tárgy és a támasz alja között. Ha a támasz felső Z-távolsága 0, és alul érintkezőrétegek vannak, a szeletelő figyelmen kívül hagyja ezt az értéket, és a támaszt közvetlenül a tárgyra nyomtatja (rés nélkül)." msgid "Support/raft base" msgstr "Támasz/tutaj alap" @@ -16698,7 +16744,7 @@ msgid "This covers the top contact layer of the supports with loops. It is disab msgstr "Lefedi a támasz felső érintkező rétegét körökkel. Alapértelmezés szerint letiltva." msgid "Support/raft interface" -msgstr "Támasz/tutaj interfész" +msgstr "Támasz/tutaj érintkező felülete" # AI Translated msgid "" @@ -16828,8 +16874,8 @@ msgid "" "Support will be generated for overhangs whose slope angle is below the threshold. The smaller this value is, the steeper the overhang that can be printed without support.\n" "Note: If set to 0, normal supports use the Threshold overlap instead, while tree supports fall back to a default value of 30." msgstr "" -"Az olyan túlnyúlásoknál, amelynek dőlésszöge ez alatt az érték alatt van, támasz fog generálódni.Minél kisebb ez az érték, annál meredekebb a túlnyúlás, amely alátámasztás nélkül nyomtatható.\n" -"Megjegyzés: Ha 0-ra van állítva, a normál támaszok a Küszöbátfedést használják, míg a fa típusú támaszok az alapértelmezett 30-as értékre térnek vissza." +"Azokhoz a túlnyúlásokhoz készül támasz, amelyek dőlésszöge a küszöbérték alatt van. Minél kisebb ez az érték, annál meredekebb túlnyúlás nyomtatható támasz nélkül.\n" +"Megjegyzés: 0 értéknél a normál támaszok helyette az átfedési küszöbértéket használják, a fatámaszok pedig visszaállnak az alapértelmezett 30-as értékre." msgid "Threshold overlap" msgstr "Átfedési küszöbérték" @@ -16864,16 +16910,16 @@ msgid "Adjusts the density of the support structure used to generate the tips of msgstr "Az ágak csúcsainak létrehozásához használt támaszszerkezet sűrűségét állítja be. A nagyobb érték jobb túlnyúlásokat eredményez, viszont a támaszokat nehezebb eltávolítani, ezért ha sűrű érintkező felületre van szükség, inkább a felső támaszérintkező felületek engedélyezése javasolt a magas ágsűrűségérték helyett." msgid "Auto brim width" -msgstr "Automatikus karimaszélesség" +msgstr "Automatikus peremszélesség" msgid "Enabling this option means the width of the brim for tree support will be automatically calculated." -msgstr "Ennek az opciónak az engedélyezése azt jelenti, hogy a fa támasz karimájának szélessége automatikusan lesz kiszámítva." +msgstr "Bekapcsolva automatikusan kiszámítja a fatámasz peremének szélességét." msgid "Tree support brim width" -msgstr "Fa támasz karimaszélessége" +msgstr "Fatámasz peremszélessége" msgid "Distance from tree branch to the outermost brim line." -msgstr "A távolság a fa támasz ágától a legkülső karimavonalig." +msgstr "A fatámasz ágának és a legkülső peremvonalnak a távolsága." msgid "Tip Diameter" msgstr "Csúcsátmérő" @@ -16978,19 +17024,19 @@ msgid "Detect thin walls" msgstr "Vékony falak felismerése" msgid "This detects thin walls which can’t contain two lines and uses a single line to print. It may not print as well because it’s not a closed loop." -msgstr "Felismeri a vékony falakat, amellyeket nem lehet két vonalnyi szélességgel nyomtatni, és egyetlen vonalt használ. Lehet nem jó a nyomat minősége, mert nem zárt hurok." +msgstr "Felismeri azokat a vékony falakat, amelyekben nem fér el két vonal, és egyetlen vonallal nyomtatja ki őket. A nyomtatási minőség gyengébb lehet, mert ez a vonal nem alkot zárt hurkot." msgid "This G-code is inserted when filament is changed, including T commands to trigger tool change." -msgstr "Ez a G-kód kerül beillesztésre, amikor a filament csere történik, beleértve a szerszámváltást indító T parancsokat is." +msgstr "Az Orca Slicer filamentcserekor illeszti be ezt a G-kódot, beleértve a szerszámváltást indító T parancsokat is." msgid "This G-code is inserted when the extrusion role is changed." -msgstr "Ez a G-kód akkor kerül beillesztésre, amikor az extrudálási szerep megváltozik." +msgstr "Az Orca Slicer az extrudálási szerep megváltozásakor illeszti be ezt a G-kódot." msgid "Change extrusion role G-code (filament)" msgstr "Az extrudálási szerep G-kódjának módosítása (szál)" msgid "This G-code is inserted when the extrusion role is changed for the active filament." -msgstr "Ez a G-kód akkor kerül beillesztésre, amikor az aktív filament extrudálási szerepe megváltozik." +msgstr "Az Orca Slicer akkor illeszti be ezt a G-kódot, amikor megváltozik az aktív filament extrudálási szerepe." msgid "Line width for top surfaces. If expressed as a %, it will be computed over the nozzle diameter." msgstr "A felső felületek vonalszélessége. Ha %-ban van megadva, a rendszer a fúvóka átmérője alapján számítja ki." @@ -17061,7 +17107,7 @@ msgid "Wipe while retracting" msgstr "Törlés visszahúzás közben" msgid "This moves the nozzle along the last extrusion path when retracting to clean any leaked material on the nozzle. This can minimize blobs when printing a new part after traveling." -msgstr "Ez visszahúzáskor a fúvókát az utolsó extrudálási útvonal mentén mozgatja, hogy a fúvókából szivárgott anyagot eltávolítsa. Ez minimálisra csökkentheti a pöttyöket, amikor a nyomtatófej a mozgást követően egy egy új alkatrész nyomtatásába kezd." +msgstr "Ez visszahúzáskor a fúvókát az utolsó extrudálási útvonal mentén mozgatja, hogy eltávolítsa a kiszivárgott anyagot. Így kevesebb anyagcsomó keletkezhet, amikor a szerszámfej a mozgás után új tárgy nyomtatásába kezd." msgid "Wipe distance" msgstr "Törlési távolság" @@ -17138,7 +17184,7 @@ msgid "Wipe tower rotation angle with respect to X axis." msgstr "Törlőtorony forgatási szöge az x-tengelyhez képest." msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower." -msgstr "A törlőtorony karimájának szélessége. Negatív szám esetén a szélesség automatikusan, a törlőtorony magassága alapján kerül kiszámításra." +msgstr "A törlőtorony peremének szélessége. Negatív értéknél a szeletelő automatikusan, a törlőtorony magassága alapján számítja ki a szélességet." msgid "Stabilization cone apex angle" msgstr "Stabilizáló kúp csúcsszöge" @@ -17160,7 +17206,7 @@ msgid "" "\n" "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting." msgstr "" -"A maximális nyomtatási sebesség öblítéskor a törlőtoronyban, valamint a törlőtorony ritka rétegeinek nyomtatásakor. Öblítés közben, ha a ritka kitöltés sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, akkor a kisebbik érték lesz használva.\n" +"A maximális nyomtatási sebesség öblítéskor a törlőtoronyban, valamint a törlőtorony ritka rétegeinek nyomtatásakor. Öblítés közben, ha a kitöltés sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, a kisebbik értéket használja.\n" "\n" "A ritka rétegek nyomtatásakor, ha a belső kerület sebessége vagy a filament maximális térfogati sebességéből számolt sebesség alacsonyabb, akkor a kisebbik érték lesz használva.\n" "\n" @@ -17194,7 +17240,7 @@ msgid "Extra rib length" msgstr "Extra bordahossz" msgid "Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume." -msgstr "A pozitív értékek növelhetik a bordafal méretét, míg a negatív értékek csökkenthetik azt. A bordafal mérete azonban nem lehet kisebb annál, mint amit a kiürítési mennyiség meghatároz." +msgstr "A pozitív értékek növelhetik, a negatív értékek pedig csökkenthetik a bordafal méretét. A bordafal azonban nem lehet kisebb az öblítési térfogat által meghatározott méretnél." msgid "Rib width" msgstr "Bordaszélesség" @@ -17209,13 +17255,13 @@ msgid "The wall of prime tower will fillet." msgstr "A törlőtorony fala lekerekített lesz." msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)." -msgstr "Az a extruder, amelyet a törlőtorony kerületének nyomtatásához kell használni. Állítsd 0-ra, ha az éppen elérhető extrudert szeretnéd használni (előnyösítve a nem oldhatót)." +msgstr "A törlőtorony kerületének nyomtatásához használt extruder. Állítsd 0-ra az éppen elérhető extruder használatához; lehetőség szerint nem oldható filamentet választ." msgid "Purging volumes - load/unload volumes" msgstr "Kiürítési mennyiségek - betöltési/kirakodási mennyiségek" msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below." -msgstr "Ez a vektor eltárolja a törlőtornyon használt egyes szerszámokra/szerszámokról való váltáshoz szükséges mennyiségeket. Ezek az értékek az alábbi teljes kiürítési mennyiségek létrehozásának egyszerűsítésére szolgálnak." +msgstr "Ez a vektor tárolja a törlőtornyon használt egyes szerszámokra és szerszámokról való váltáshoz szükséges térfogatokat. Ezek az értékek egyszerűsítik az alábbi teljes öblítési térfogatok létrehozását." msgid "Skip points" msgstr "Pontok kihagyása" @@ -17242,31 +17288,31 @@ msgid "Infill gap." msgstr "Kitöltési hézag." msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled." -msgstr "A filamentcsere utáni kiürítés az objektumok kitöltésén belül történik. Ez csökkentheti a hulladék mennyiségét és a nyomtatási időt. Ha a falakat átlátszó filamenttel nyomtatod, a vegyes színű kitöltés látható lesz. Ez az opció csak akkor működik, ha a törlőtorony engedélyezve van." +msgstr "A filamentcsere utáni öblítés az objektumok kitöltésén belül történik. Ez csökkentheti a hulladék mennyiségét és a nyomtatási időt. Ha a falakat átlátszó filamenttel nyomtatod, a vegyes színű kitöltés látható lesz. Ez az opció csak akkor működik, ha a törlőtorony engedélyezve van." msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled." -msgstr "A filamentcsere utáni kiürítés az objektumok támaszain belül történik. Ez csökkentheti a hulladék mennyiségét és a nyomtatási időt. Ez az opció csak akkor működik, ha a törlőtorony engedélyezve van." +msgstr "A filamentcsere utáni öblítés az objektumok támaszain belül történik. Ez csökkentheti a hulladék mennyiségét és a nyomtatási időt. Ez az opció csak akkor működik, ha a törlőtorony engedélyezve van." msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled." -msgstr "Ez az objektum lesz használva a fúvóka kiürítésére filamentcsere után, a nyomtatási idő csökkentése és némi filament megtakarításának érdekében. Az objektum színei ennek eredményeképpen keveredni fognak. Ez az opció csak akkor működik, ha a törlőtorony engedélyezve van." +msgstr "Ezt az objektumot használja a fúvóka öblítésére filamentcsere után, így filamentet és nyomtatási időt takarít meg. Emiatt az objektum színei keverednek. Ez a beállítás csak bekapcsolt törlőtoronnyal működik." msgid "Maximal bridging distance" msgstr "Maximális áthidalási távolság" msgid "Maximal distance between supports on sparse infill sections." -msgstr "A támaszok közötti maximális távolság a ritkás kitöltésű részeken." +msgstr "A támaszok közötti maximális távolság a kitöltési területeken." msgid "Wipe tower purge lines spacing" -msgstr "A törlőtorony kiürítési vonalainak távolsága" +msgstr "A törlőtorony öblítési vonalainak távolsága" msgid "Spacing of purge lines on the wipe tower." -msgstr "A törlőtoronyon lévő kiürítési vonalak távolsága." +msgstr "A törlőtorony öblítési vonalainak távolsága." msgid "Extra flow for purging" -msgstr "Többletáramlás a kiürítéshez" +msgstr "Többletáramlás az öblítéshez" msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically." -msgstr "A törlőtorony kiürítési vonalaihoz használt többletáramlás. Ez a kiürítési vonalakat a szokásosnál vastagabbá vagy vékonyabbá teszi. A távolság automatikusan igazodik." +msgstr "A törlőtorony öblítési vonalaihoz használt többletáramlás. Ettől az öblítési vonalak a szokásosnál vastagabbak vagy vékonyabbak lesznek. A távolság automatikusan igazodik." msgid "Idle temperature" msgstr "Üresjárati hőmérséklet" @@ -17347,7 +17393,7 @@ msgid "Relative extrusion is recommended when using \"label_objects\" option. So msgstr "A relatív extrudálás használata ajánlott a \"label_objects\" opcióval. Bizonyos extruderek jobban működnek, ha ez az opció nincs bejelölve (abszolút extrudálási mód). A törlőtorony csak a relatív móddal kompatibilis. A legtöbb nyomtatón ajánlott. Alapértelmezés szerint be van jelölve." msgid "The classic wall generator produces walls with constant extrusion width and for very thin areas, gap-fill is used. The Arachne engine produces walls with variable extrusion width." -msgstr "A klasszikus falgenerátor állandó szélességű falakat generál, és a nagyon vékony területeknél hézagkitöltést használ. Az Arachne engine változó szélességű falakat generál." +msgstr "A klasszikus falgenerátor állandó szélességű falakat hoz létre, és a nagyon vékony területeknél hézagkitöltést használ. Az Arachne falgenerátor változó szélességű falakat hoz létre." msgid "Arachne" msgstr "Arachne" @@ -17368,7 +17414,7 @@ msgid "Wall transitioning threshold angle" msgstr "Falátmenet szögének küszöbértéke" msgid "When to create transitions between even and odd numbers of walls. A wedge shape with an angle greater than this setting will not have transitions and no walls will be printed in the center to fill the remaining space. Reducing this setting reduces the number and length of these center walls, but may leave gaps or overextrude." -msgstr "Mikor legyen átmenetet a páros és páratlan számú falak között. Az ennél nagyobb szögű ék formánál nem lesz átmenet és nem kerül közé anyag, hogy kitöltse a fennmaradó helyet. Ennek az értéknek a csökkentése csökkenti a középső falak számát és hosszát, de hézagokat hagyhat vagy túlextrudálhat" +msgstr "Meghatározza, hogy mikor jöjjön létre átmenet a páros és páratlan számú falak között. Az ennél nagyobb szögű, ék alakú részeknél nem jön létre átmenet, és a fennmaradó hely kitöltéséhez nem nyomtat falat középre. Az érték csökkentésével csökken e középső falak száma és hossza, de hézagok vagy túlextrudálás alakulhat ki." msgid "Wall distribution count" msgstr "Falak elosztása" @@ -17419,16 +17465,16 @@ msgid "Width of the wall that will replace thin features (according to the Minim msgstr "A fal szélessége, amely lecseréli a modell vékony részeit (a Minimális méretben megadott érték szerint). Ha a minimális falszélesség vékonyabb, mint a nyomtatandó elem vastagsága, akkor a fal olyan vastag lesz, mint maga a nyomtatott elem. A fúvóka átmérőjének százalékában van kifejezve" msgid "Hotend change time" -msgstr "Hotendváltás ideje" +msgstr "Fejegységváltás ideje" msgid "Time to change hotend." -msgstr "A hotendváltás ideje." +msgstr "A fejegységváltás ideje." msgid "Hotend change" -msgstr "Hotendváltás" +msgstr "Fejegységváltás" msgid "When changing the hotend, it is recommended to extrude a certain length of filament from the original nozzle. This helps minimize nozzle oozing." -msgstr "A hotend cseréjekor ajánlott egy bizonyos hosszúságú filamentet extrudálni az eredeti fúvókából. Ez segít minimalizálni a fúvóka szivárgását." +msgstr "A fejegység cseréjekor ajánlott egy bizonyos hosszúságú filamentet extrudálni az eredeti fúvókából. Ez segít csökkenteni a fúvóka szivárgását." msgid "Extruder change" msgstr "Extruderváltás" @@ -17446,13 +17492,13 @@ msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. msgstr "A szivárgás megakadályozása érdekében a fúvóka a betolás során lehűl. Megjegyzés: csak a hűtési parancs és a ventilátor bekapcsolása kerül elküldésre, a célhőmérséklet elérése nem garantált. A 0 letiltást jelent." msgid "The maximum volumetric speed for ramming before a hotend change, where -1 means using the maximum volumetric speed." -msgstr "A hotendváltás előtti betolás maximális áramlási sebessége, ahol -1 a maximális sebesség használatát jelenti." +msgstr "A fejegységváltás előtti betolás maximális anyagáramlása; a -1 a maximális sebesség használatát jelenti." msgid "length when change hotend" -msgstr "hossz hotendcsere esetén" +msgstr "hossz fejegységcsere esetén" msgid "When this retraction value is modified, it will be used as the amount of filament retracted inside the hotend before changing hotends." -msgstr "Ha ezt a visszahúzási értéket módosítod, akkor ezt az értéket használja a nyomtató a filament hotend belsejéből történő visszahúzásakor, mielőtt hotendet cserélne." +msgstr "Ha módosítod, a nyomtató ezt az értéket használja, amikor fejegységcsere előtt visszahúzza a filamentet a fejegység belsejéből." # AI Translated msgid "Support fast purge mode" @@ -17464,14 +17510,14 @@ msgstr "Támogatja-e ez a nyomtató a gyors öblítési módot optimalizált hő # AI Translated msgid "Filament change" -msgstr "Filament csere" +msgstr "Filamentcsere" # AI Translated msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change." msgstr "Az extruder toronyban való előkészítéséhez szükséges anyagmennyiség, a fejegységcserét nem beleértve." msgid "The volume of material required to prime the extruder for a hotend change on the tower." -msgstr "Az extruder átöblítéséhez szükséges anyagmennyiség a hotend cseréjekor." +msgstr "Az extruder átöblítéséhez szükséges anyagmennyiség fejegységcsere esetén." msgid "Preheat temperature delta" msgstr "Előmelegítési hőmérséklet delta" @@ -17616,7 +17662,7 @@ msgid "Lift the object above the bed when it is partially below. Disabled by def msgstr "A tárgy az ágy fölé emelve, ha az részben alatta van. Alapértelmezés szerint le van tiltva." msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." -msgstr "A megadott modellek elredezése és egyetlen modellé való összevonása a tárgyasztalon, hogy egyszerre lehessen végrehajtani a műveleteket." +msgstr "A megadott modellek elrendezése és egyetlen modellé egyesítése az asztalon, hogy a műveletek egyszerre legyenek végrehajthatók." msgid "Convert Unit" msgstr "Mértékegység átváltása" @@ -17688,7 +17734,7 @@ msgid "Downward machines check" msgstr "Visszafelé kompatibilis gépek ellenőrzése" msgid "If enabled, check whether current machine downward compatible with the machines in the list." -msgstr "Ha engedélyezve van, ellenőrve van, hogy az aktuális gép visszafelé kompatibilis-e a listában szereplő gépekkel." +msgstr "Bekapcsolva ellenőrzi, hogy a jelenlegi gép visszafelé kompatibilis-e a listában szereplő gépekkel." msgid "Downward machines settings" msgstr "Visszafelé kompatibilis gépbeállítások" @@ -17729,10 +17775,10 @@ msgid "Redirects debug logging to file.\n" msgstr "A hibakeresési naplózást fájlba irányítja.\n" msgid "Enable timelapse for print" -msgstr "Időfelvétel engedélyezése a nyomtatáshoz" +msgstr "Timelapse engedélyezése a nyomtatáshoz" msgid "If enabled, this slicing will be considered using timelapse." -msgstr "Ha engedélyezve van, ez a szeletelés időfelvétel használatával számol." +msgstr "Bekapcsolva a szeletelés Timelapse használatával számol." msgid "Load custom G-code" msgstr "Egyéni G-kód betöltése" @@ -18006,13 +18052,13 @@ msgid "Size of the first layer bounding box" msgstr "Az első réteg befoglaló dobozának mérete" msgid "Bottom-left corner of print bed bounding box" -msgstr "A tárgyasztal befoglaló dobozának bal alsó sarka" +msgstr "Az asztal befoglaló téglalapjának bal alsó sarka" msgid "Top-right corner of print bed bounding box" -msgstr "A tárgyasztal befoglaló dobozának jobb felső sarka" +msgstr "Az asztal befoglaló téglalapjának jobb felső sarka" msgid "Size of the print bed bounding box" -msgstr "A tárgyasztal befoglaló dobozának mérete" +msgstr "Az asztal befoglaló téglalapjának mérete" msgid "Timestamp" msgstr "Időbélyeg" @@ -18066,13 +18112,13 @@ msgid "Layer Z" msgstr "Réteg Z" msgid "Height of the current layer above the print bed, measured to the top of the layer." -msgstr "Az aktuális réteg magassága a tárgyasztal felett, a réteg tetejéig mérve." +msgstr "Az aktuális réteg magassága az asztal felett, a réteg tetejéig mérve." msgid "Maximal layer Z" msgstr "Maximális réteg Z" msgid "Height of the last layer above the print bed." -msgstr "Az utolsó réteg magassága a tárgyasztal felett." +msgstr "Az utolsó réteg magassága az asztal felett." msgid "Filament extruder ID" msgstr "Filament extruderazonosító" @@ -18134,8 +18180,8 @@ msgid "" "An object has enabled XY Size compensation which will not be used because it is also fuzzy skin painted.\n" "XY Size compensation cannot be combined with fuzzy skin painting." msgstr "" -"Egy objektumnál engedélyezve van az XY méretkompenzáció, de ez nem lesz használva, mert bolyhos felülettel is festett.\n" -"Az XY méretkompenzáció nem kombinálható a bolyhos felület festésével." +"Egy objektumnál engedélyezve van az XY-méretkompenzáció, de a barázdált felület festése miatt nem használható.\n" +"Az XY-méretkompenzáció nem kombinálható a barázdált felület festésével." msgid "Object name" msgstr "Objektum neve" @@ -18356,7 +18402,7 @@ msgstr "" "\n" "Általában nincs szükség erre a kalibrálásra. Ha egyetlen színű/anyagú nyomtatást indítasz, és a nyomtatásindító menüben be van jelölve az \"áramlásdinamika kalibrálás\" opció, a nyomtató a régi módon fog működni, vagyis a nyomtatás előtt kalibrálja a filamentet; ha többszínű/többanyagú nyomtatást indítasz, a nyomtató minden filamentváltásnál a filament alapértelmezett kompenzációs paraméterét használja, ami a legtöbb esetben jó eredményt ad.\n" "\n" -"Kérlek, vedd figyelembe, hogy vannak olyan esetek, amelyek megbízhatatlanná tehetik a kalibrálási eredményeket, például az elégtelen tapadás a tárgyasztalon. A tapadás javítható a tárgyasztal lemosásával vagy ragasztó felvitelével. Erről további információt a wikiben találsz.\n" +"Vedd figyelembe, hogy bizonyos körülmények megbízhatatlanná tehetik a kalibrálási eredményeket, például az elégtelen tapadás az asztalon. A tapadást az asztal lemosásával vagy ragasztó felvitelével javíthatod. Erről további információt a wikiben találsz.\n" "\n" "Tesztjeinkben a kalibrálási eredmények körülbelül 10 százalékos ingadozást mutattak, ezért előfordulhat, hogy az eredmény nem lesz pontosan ugyanaz minden egyes kalibrálásnál. A kiváltó ok feltárásán még dolgozunk, hogy a jövőbeni frissítésekkel javíthassunk rajta." @@ -18468,7 +18514,7 @@ msgid "Please find the best object on your plate" msgstr "Keresd meg a legjobb tárgyat a tálcán" msgid "Fill in the value above the block with smoothest top surface" -msgstr "Töltsd ki az értéket a legsimább felső felületű blokkból" +msgstr "Írd be a legsimább felső felületű blokk fölötti értéket" msgid "Skip Calibration2" msgstr "Kalibrálás 2 kihagyása" @@ -18496,7 +18542,7 @@ msgid "Title" msgstr "Cím" msgid "A test model will be printed. Please clear the build plate and place it back to the hot bed before calibration." -msgstr "Egy tesztmodell kerül kinyomtatásra. Kérlek, tisztítsd meg a tálcát, és helyezd vissza az asztalra a kalibrálás előtt." +msgstr "A rendszer egy tesztmodellt nyomtat. A kalibrálás előtt tisztítsd meg a tálcát, majd helyezd vissza a fűtött asztalra." msgid "Printing Parameters" msgstr "Nyomtatási paraméterek" @@ -18567,7 +18613,7 @@ msgid "Step value" msgstr "Lépésérték" msgid "The nozzle diameter has been synchronized from the printer Settings" -msgstr "A fúvóka átmérője a nyomtató beállításaiból került szinkronizálásra" +msgstr "A fúvóka átmérőjét a nyomtató beállításai alapján szinkronizáltuk" msgid "From Volumetric Speed" msgstr "Ettől a volumetrikus sebességtől" @@ -18591,11 +18637,11 @@ msgid "Success to get history result" msgstr "Előzmények sikeresen lekérdezve" msgid "Refreshing the previous Flow Dynamics Calibration records" -msgstr "Az előző anyagáramlás-dinamikai kalibrációs rekordok frissítése" +msgstr "A korábbi áramlásdinamika-kalibrálási eredmények frissítése" #, c-format, boost-format msgid "Note: The hotend number on the %s is tied to the holder. When the hotend is moved to a new holder, its number will update automatically." -msgstr "Megjegyzés: A hotend száma a tartóhoz van rendelve ezen: %s. Amikor a hotendet áthelyezed egy új tartóra, a száma automatikusan frissül." +msgstr "Megjegyzés: a fejegység száma ezen a helyen van a tartóhoz rendelve: %s. Amikor a fejegységet áthelyezed egy másik tartóra, a száma automatikusan frissül." msgid "Action" msgstr "Művelet" @@ -18655,6 +18701,20 @@ msgstr "" "A(z) %1% gazdagépnévhez több IP-cím is tartozik.\n" "Válaszd ki, melyik legyen használva." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatikus méretezés a fúvókához" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Ez a modell 0,4 mm-es fúvókához és 0,2 mm-es rétegmagassághoz készült. \n" +"Ha a méretezési opció be van kapcsolva (ajánlott), a modell dinamikusan átméreteződik az aktuális fúvókaátmérőhöz és egy megfelelő rétegmagassághoz, így a teszt pontos és jól leolvasható lesz.\n" +"Csak akkor kapcsold ki a méretezést, ha a referenciamodellt pontosan az eredeti formájában szeretnéd kinyomtatni." + msgid "PA Calibration" msgstr "PA kalibrálás" @@ -18677,7 +18737,7 @@ msgid "Start PA: " msgstr "Kezdő PA: " msgid "End PA: " -msgstr "Befejező PA:" +msgstr "Befejező PA: " msgid "PA step: " msgstr "PA lépcső: " @@ -18705,8 +18765,8 @@ msgid "" msgstr "" "Kérlek, adj meg érvényes értékeket:\n" "Kezdő PA: >= 0.0\n" -"Befejező PA: > Start PA\n" -"PA lépcső: >= 0.001)" +"Befejező PA: > Kezdő PA\n" +"PA lépcső: >= 0.001" msgid "" "Acceleration values must be greater than speed values.\n" @@ -18791,6 +18851,14 @@ msgstr "Kezdősebesség: " msgid "End speed: " msgstr "Befejező sebesség: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automatikus igazítás a max. volumetrikus sebességhez" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Ha a végsebesség meghaladná a filament maximális volumetrikus sebességét, automatikusan csökkenti a rétegmagasságot (szabványos értékeket megtartva és a gép korlátain belül maradva), hogy elérje azt. Ha még a legkisebb rétegmagasság sem elegendő, akkor inkább a végsebességet csökkenti." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18802,11 +18870,62 @@ msgstr "" "lépés >= 0\n" "vég > kezdő + lépés" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"A végsebesség (%.0f mm/s) meghaladja a filament maximális volumetrikus sebességét (%.1f mm³/s), ami a külső falat ennél a vonalszélességnél és rétegmagasságnál körülbelül %.0f mm/s értékre korlátozza.\n" +" Az ennél nagyobb sebességek le lesznek vágva, így a torony felső blokkjai nem a kért sebességgel nyomtatódnak.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"A végsebesség (%.0f mm/s) meghaladja a filament maximális volumetrikus sebességét (%.1f mm³/s) az alapértelmezett rétegmagasságnál (%.2f mm).\n" +"\n" +"A rétegmagasság %.2f mm értékre csökkent (ezt az értéket a nyomtató beállításai is használják), hogy a torony elérhesse a kért sebességet." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Még a nyomtató beállításai által használt legkisebb rétegmagasságnál (%.2f mm) is meghaladja a végsebesség (%.0f mm/s) a filament maximális volumetrikus sebességét (%.1f mm³/s).\n" +"\n" +"A rétegmagasság %.2f mm értékre lesz állítva, a végsebesség pedig %.0f mm/s értékre csökken.\n" +"\n" +"Folytatod?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Mindenképp folytatod?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Engedélyezd az \"Automatikus igazítás\" opciót ennek automatikus javításához, vagy mindenképp folytatod?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Engedélyezd az \"Automatikus méretezés a fúvókához\" és az \"Automatikus igazítás\" opciót ennek automatikus javításához, vagy mindenképp folytatod?" + msgid "Start retraction length: " msgstr "Kezdő visszahúzás hossza: " msgid "End retraction length: " -msgstr "Befejező visszahúzási hossz:" +msgstr "Befejező visszahúzási hossz: " msgid "Input shaping Frequency test" msgstr "Rezgéskompenzáció frekvencia teszt" @@ -18821,7 +18940,7 @@ msgid "Fast Tower" msgstr "Gyors torony" msgid "Please ensure the selected type is compatible with your firmware version." -msgstr "Kérjük, győződj meg róla, hogy a kiválasztott típus kompatibilis a firmware verziójával." +msgstr "Kérlek, győződj meg róla, hogy a kiválasztott típus kompatibilis a firmware-verzióval." msgid "" "Marlin version => 2.1.2\n" @@ -18837,7 +18956,7 @@ msgid "" "RepRap firmware version => 3.4.0\n" "Check your firmware documentation for supported shaper types." msgstr "" -"RepRap firmware verzió => 3.4.0\n" +"RepRap firmware-verzió => 3.4.0\n" "Ellenőrizd a firmware dokumentációját a támogatott rezgéskompenzátor-típusokhoz." msgid "Frequency (Start / End): " @@ -19011,7 +19130,7 @@ msgid "Leveling before print" msgstr "Szintezés nyomtatás előtt" msgid "Time-lapse" -msgstr "Időzített felvétel" +msgstr "Timelapse" # AI Translated msgid "Enable IFS" @@ -19092,16 +19211,16 @@ msgid "Error uploading to print host" msgstr "Hiba a nyomtatási gazdagépre történő feltöltéskor" msgid "The selected bed type does not match the file. Please confirm before starting the print." -msgstr "A kiválasztott tárgyasztaltípus nem egyezik a fájlban megadottal. A nyomtatás indítása előtt erősítsd meg." +msgstr "A kiválasztott asztaltípus nem egyezik a fájlban megadottal. A nyomtatás indítása előtt erősítsd meg." msgid "Heated Bed Leveling" -msgstr "Fűtött tárgyasztal szintezése" +msgstr "Fűtött asztal szintezése" msgid "Textured Build Plate (Side A)" -msgstr "Texturált tárgyasztal (A oldal)" +msgstr "Texturált asztal (A oldal)" msgid "Smooth Build Plate (Side B)" -msgstr "Sima tárgyasztal (B oldal)" +msgstr "Sima asztal (B oldal)" # AI Translated #, c-format, boost-format @@ -19201,7 +19320,7 @@ msgid "Create Based on Current Filament" msgstr "Létrehozás a jelenlegi filament alapján" msgid "Copy Current Filament Preset " -msgstr "Jelenlegi filamentbeállítás másolása" +msgstr "Jelenlegi filamentbeállítás másolása " msgid "Basic Information" msgstr "Alapinformációk" @@ -19251,7 +19370,7 @@ msgid "\"Bambu\" or \"Generic\" cannot be used as a Vendor for custom filaments. msgstr "A \"Bambu\" vagy \"Generic\" nem használható gyártóként egyedi filamentek esetében." msgid "Filament type is not selected, please reselect type." -msgstr "A filament típusa nem lett kiválasztva, kérlek, válaszd ki a típust." +msgstr "Nincs kiválasztva filamenttípus. Kérlek, válassz egyet." # AI Translated msgid "Filament serial missing; please input serial." @@ -19342,20 +19461,20 @@ msgid "Printable Space" msgstr "Nyomtatási terület" msgid "Hot Bed STL" -msgstr "Tárgyasztal STL" +msgstr "Asztal STL-fájlja" msgid "Hot Bed SVG" -msgstr "Tárgyasztal SVG" +msgstr "Asztal SVG-fájlja" msgid "Max Print Height" msgstr "Maximális nyomtatási magasság" #, c-format, boost-format msgid "The file exceeds %d MB, please import again." -msgstr "A fájl mérete meghaladja a(z) %d MB-ot, kérlek ismételd meg az importálást." +msgstr "A fájl mérete meghaladja a(z) %d MB-ot. Kérlek, importáld újra." msgid "Exception in obtaining file size, please import again." -msgstr "Kivétel történt a fájlméret megállapításakor, kérlek ismételd meg az importálást." +msgstr "Nem sikerült megállapítani a fájl méretét. Kérlek, importáld újra." msgid "Preset path was not found; please reselect vendor." msgstr "Útvonal nem található. Kérlek, válaszd ki újra a gyártót." @@ -19381,7 +19500,7 @@ msgid "Process Preset Template" msgstr "Folyamatbeállítás sablon" msgid "You have not yet chosen which printer preset to create based on. Please choose the vendor and model of the printer" -msgstr "Még nem választottad ki, hogy melyik nyomtató beállításai alapján készüljön az új. Kérlek, válaszd ki a nyomtató gyártóját és modelljét" +msgstr "Még nem választottad ki, hogy melyik nyomtatóbeállítás alapján készüljön az új. Kérlek, válaszd ki a nyomtató gyártóját és modelljét" msgid "You have entered a disallowed character in the printable area section on the first page. Please use only numbers." msgstr "Tiltott karakter került be az első oldalon a nyomtatási terület részbe. Kérlek, csak számokat használj." @@ -19470,7 +19589,7 @@ msgid "Printer Created" msgstr "Nyomtató létrehozva" msgid "Please go to printer settings to edit your presets" -msgstr "Kérlek, a beállítások szerkesztéséhez lépj be a nyomtató beállításaiba." +msgstr "Kérlek, a beállítások szerkesztéséhez nyisd meg a nyomtatóbeállításokat." msgid "Filament Created" msgstr "Filament létrehozva" @@ -19481,7 +19600,7 @@ msgid "" "Please note that nozzle temperature, hot bed temperature, and maximum volumetric speed each have a significant impact on printing quality. Please set them carefully." msgstr "" "Ha szükséges, lépj be a filamentbeállításokhoz az értékek szerkesztéséhez.\n" -"Figyelem: a fúvóka hőmérséklete, a tárgyasztal hőmérséklete és a maximális volumetrikus sebesség jelentős hatással van a nyomtatási minőségre. Kérlek, körültekintően állítsd be őket." +"Figyelem: a fúvóka és az asztal hőmérséklete, valamint a maximális volumetrikus sebesség jelentős hatással van a nyomtatási minőségre. Kérlek, körültekintően állítsd be őket." msgid "" "\n" @@ -19575,12 +19694,16 @@ msgstr "Csak azok a nyomtatónevek jelennek meg, amelyekhez tartoznak felhaszná msgid "" "Only the filament names with user filament presets will be displayed, \n" "and all user filament presets in each filament name you select will be exported as a zip." -msgstr "Csak azok a nyomtatónevek jelennek meg, amelyekhez tartoznak felhasználói beállítások. A kiválasztott beállítások ZIP fájlként kerülnek exportálásra." +msgstr "" +"Csak azok a filamentnevek jelennek meg, amelyekhez tartoznak felhasználói filamentbeállítások,\n" +"és a kiválasztott filamentnevekhez tartozó összes felhasználói filamentbeállítás ZIP-fájlként lesz exportálva." msgid "" "Only printer names with changed process presets will be displayed, \n" "and all user process presets in each printer name you select will be exported as a zip." -msgstr "Csak azok a nyomtatónevek jelennek meg, amelyeknél változtak a folyamatbeállítások. A kiválasztott beállítások ZIP fájlként kerülnek exportálásra." +msgstr "" +"Csak azok a nyomtatónevek jelennek meg, amelyekhez módosított folyamatbeállítások tartoznak,\n" +"és a kiválasztott nyomtatónevekhez tartozó összes felhasználói folyamatbeállítás ZIP-fájlként lesz exportálva." msgid "Please select at least one printer or filament." msgstr "Kérlek, válassz ki legalább egy nyomtatót vagy filamentet." @@ -19605,8 +19728,8 @@ msgstr "A más beállítások által örökölt beállítások nem törölhetők msgid "The following presets inherits this preset." msgid_plural "The following preset inherits this preset." -msgstr[0] "A következő profilok öröklik ezt a profilt." -msgstr[1] "A következő profil örökli ezt a profilt." +msgstr[0] "A következő profil örökli ezt a profilt." +msgstr[1] "A következő profilok öröklik ezt a profilt." msgid "Delete Preset" msgstr "Beállítás törlése" @@ -19725,7 +19848,7 @@ msgid "Print Host upload" msgstr "Feltöltés a nyomtatóra" msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." -msgstr "Válaszd ki a nyomtatókommunikációhoz használt hálózati ügynök implementációját. Az elérhető ügynökök indításkor kerülnek regisztrálásra." +msgstr "Válaszd ki a nyomtatóval való kommunikációhoz használt hálózati ügynököt. Az elérhető ügynököket indításkor regisztrálja a rendszer." # AI Translated msgid "Select a Flashforge printer" @@ -19758,7 +19881,7 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self msgstr "A HTTPS CA-fájl nem kötelező. Csak akkor szükséges, ha a HTTPS-t saját aláírású tanúsítvánnyal használod." msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" -msgstr "Tanúsítványfájlok (*.crt, *.pem) |*.crt; *.pem|Minden fájl|* . *" +msgstr "Tanúsítványfájlok (*.crt, *.pem)|*.crt;*.pem|Minden fájl|*.*" msgid "Open CA certificate file" msgstr "CA tanúsítványfájl megnyitása" @@ -19794,12 +19917,12 @@ msgstr "K-sorozatú nyomtatók keresése a LAN-on... ez néhány másodpercet ve # AI Translated msgid "No K-series printers found. Make sure the printer is on the same network and not blocked by Wi-Fi client isolation, then click Scan again." -msgstr "Nem található K-sorozatú nyomtató. Győződj meg róla, hogy a nyomtató ugyanazon a hálózaton van, és nem blokkolja a Wi-Fi kliensizoláció, majd kattints újra a Keresés gombra." +msgstr "Nem található K-sorozatú nyomtató. Győződj meg róla, hogy a nyomtató ugyanazon a hálózaton van és nem blokkolja a Wi-Fi kliensizoláció, majd kattints újra a Keresés gombra." # AI Translated #, c-format msgid "Found %zu Creality printer(s). Select one and click Use Selected." -msgstr "%zu Creality nyomtató található. Válassz ki egyet, és kattints a Kijelölt használata gombra." +msgstr "%zu Creality nyomtató található. Válassz ki egyet, majd kattints a Kijelölt használata gombra." # AI Translated msgid "Active" @@ -19903,7 +20026,7 @@ msgstr "Kérlek, győződj meg róla, hogy az OrcaSlicer egyetlen példánya sem # AI Translated msgid "System folder cannot be deleted because some files are in use by another application. Please close any applications using these files and try again." -msgstr "A rendszermappa nem törölhető, mert néhány fájlt egy másik alkalmazás használ. Kérlek, zárd be az ezeket a fájlokat használó alkalmazásokat, és próbáld újra." +msgstr "A rendszermappa nem törölhető, mert néhány fájlt egy másik alkalmazás használ. Zárd be az ezeket a fájlokat használó alkalmazásokat, majd próbáld újra." # AI Translated msgid "Failed to delete system folder..." @@ -20138,7 +20261,7 @@ msgid "It has a small layer height. This results in almost negligible layer line msgstr "Kis rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak szinte elhanyagolhatók, a nyomtatási minőség pedig magas. A legtöbb nyomtatási esethez megfelelő." msgid "Compared with the default profile of a 0.2 mm nozzle, it has lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in much higher print quality but a much longer print time." -msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest alacsonyabb sebességekkel és gyorsulással dolgozik, a ritkás kitöltés mintázata pedig Gyroid. Ez jóval magasabb nyomtatási minőséget, de sokkal hosszabb nyomtatási időt eredményez." +msgstr "A 0,2 mm-es fúvóka alapértelmezett profiljához képest alacsonyabb sebességeket és gyorsulást használ, a kitöltési mintázat pedig Gyroid. Ez jóval jobb nyomtatási minőséget, de sokkal hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer height. This results in almost negligible layer lines and slightly shorter print time." msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest kissé nagyobb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak szinte elhanyagolhatók, a nyomtatási idő pedig kissé rövidebb." @@ -20150,19 +20273,19 @@ msgid "Compared with the default profile of a 0.2 mm nozzle, it has a smaller la msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak szinte láthatatlanok, a nyomtatási minőség magasabb, de a nyomtatási idő hosszabb." msgid "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in almost invisible layer lines and much higher print quality but much longer print time." -msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegvonalakkal, alacsonyabb sebességekkel és gyorsulással dolgozik, a ritkás kitöltés mintázata pedig Gyroid. Ez szinte láthatatlan rétegvonalakat és sokkal magasabb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." +msgstr "A 0,2 mm-es fúvóka alapértelmezett profiljához képest vékonyabb rétegvonalakat, alacsonyabb sebességeket és gyorsulást használ, a kitöltési mintázat pedig Gyroid. Ez szinte láthatatlan rétegvonalakat és sokkal jobb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer height. This results in minimal layer lines and higher print quality but longer print time." msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként minimálisak a rétegvonalak, a nyomtatási minőség magasabb, de a nyomtatási idő hosszabb." msgid "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in minimal layer lines and much higher print quality but much longer print time." -msgstr "A 0.2 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegvonalakkal, alacsonyabb sebességekkel és gyorsulással dolgozik, a ritkás kitöltés mintázata pedig Gyroid. Ez minimális rétegvonalakat és sokkal magasabb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." +msgstr "A 0,2 mm-es fúvóka alapértelmezett profiljához képest vékonyabb rétegvonalakat, alacsonyabb sebességeket és gyorsulást használ, a kitöltési mintázat pedig Gyroid. Ez alig látható rétegvonalakat és sokkal jobb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." msgid "It has a normal layer height. This results in average layer lines and print quality. It is suitable for most printing cases." msgstr "Normál rétegmagassággal rendelkezik. Ennek eredményeként átlagos rétegvonalak és nyomtatási minőség érhető el. A legtöbb nyomtatási esethez megfelelő." msgid "Compared with the default profile of a 0.4 mm nozzle, it has more wall loops and a higher sparse infill density. This results in higher print strength but more filament consumption and longer print time." -msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest több falhurokkal és nagyobb ritkás kitöltési sűrűséggel rendelkezik. Ez nagyobb nyomatszilárdságot, de több filamentfelhasználást és hosszabb nyomtatási időt eredményez." +msgstr "A 0,4 mm-es fúvóka alapértelmezett profiljához képest több falhurkot és nagyobb kitöltési sűrűséget használ. Ez nagyobb nyomatszilárdságot, de több filamentfelhasználást és hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height. This results in more apparent layer lines and lower print quality, but slightly shorter print time." msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest nagyobb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak jobban láthatók, a nyomtatási minőség alacsonyabb, de a nyomtatási idő kissé rövidebb." @@ -20174,13 +20297,13 @@ msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller la msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak kevésbé láthatók, a nyomtatási minőség magasabb, de a nyomtatási idő hosszabb." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in less apparent layer lines and much higher print quality but much longer print time." -msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal, alacsonyabb sebességekkel és gyorsulással dolgozik, a ritkás kitöltés mintázata pedig Gyroid. Ez kevésbé látható rétegvonalakat és sokkal magasabb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." +msgstr "A 0,4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagasságot, alacsonyabb sebességeket és gyorsulást használ, a kitöltési mintázat pedig Gyroid. Ez kevésbé látható rétegvonalakat és sokkal jobb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height. This results in almost negligible layer lines and higher print quality but longer print time." msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak szinte elhanyagolhatók, a nyomtatási minőség magasabb, de a nyomtatási idő hosszabb." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in almost negligible layer lines and much higher print quality but much longer print time." -msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal, alacsonyabb sebességekkel és gyorsulással dolgozik, a ritkás kitöltés mintázata pedig Gyroid. Ez szinte elhanyagolható rétegvonalakat és sokkal magasabb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." +msgstr "A 0,4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagasságot, alacsonyabb sebességeket és gyorsulást használ, a kitöltési mintázat pedig Gyroid. Ez alig látható rétegvonalakat és sokkal jobb nyomtatási minőséget, de jóval hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height. This results in almost negligible layer lines and longer print time." msgstr "A 0.4 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak szinte elhanyagolhatók, de a nyomtatási idő hosszabb." @@ -20189,7 +20312,7 @@ msgid "It has a big layer height. This results in apparent layer lines and ordin msgstr "Nagy rétegmagassággal rendelkezik. Ennek eredményeként jól látható rétegvonalak, átlagos nyomtatási minőség és átlagos nyomtatási idő várható." msgid "Compared with the default profile of a 0.6 mm nozzle, it has more wall loops and a higher sparse infill density. This results in higher print strength but more filament consumption and longer print time." -msgstr "A 0.6 mm-es fúvóka alapértelmezett profiljához képest több falhurokkal és nagyobb ritkás kitöltési sűrűséggel rendelkezik. Ez nagyobb nyomatszilárdságot, de több filamentfelhasználást és hosszabb nyomtatási időt eredményez." +msgstr "A 0,6 mm-es fúvóka alapértelmezett profiljához képest több falhurkot és nagyobb kitöltési sűrűséget használ. Ez nagyobb nyomatszilárdságot, de több filamentfelhasználást és hosszabb nyomtatási időt eredményez." msgid "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height. This results in more apparent layer lines and lower print quality, but shorter print time in some cases." msgstr "A 0.6 mm-es fúvóka alapértelmezett profiljához képest nagyobb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak jobban láthatók, a nyomtatási minőség alacsonyabb, de bizonyos esetekben a nyomtatási idő rövidebb." @@ -20219,7 +20342,7 @@ msgid "Compared with the default profile of a 0.8 mm nozzle, it has a smaller la msgstr "A 0.8 mm-es fúvóka alapértelmezett profiljához képest kisebb rétegmagassággal rendelkezik. Ennek eredményeként a rétegvonalak kevésbé, de továbbra is jól láthatók, a nyomtatási minőség kissé magasabb, de bizonyos esetekben a nyomtatási idő hosszabb." msgid "This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances." -msgstr "Ez sem nem egy gyakran használt filament, sem nem tartozik a Bambu filamentek közé, ráadásul márkánként jelentősen eltérhet. Ezért nyomtatás előtt erősen ajánlott a gyártótól megfelelő profilt kérni, és a paramétereket a filament viselkedése alapján finomhangolni." +msgstr "Ez a filament nem gyakran használt, és nem is Bambu-filament, ráadásul márkánként jelentősen eltérhet. Ezért nyomtatás előtt erősen ajánlott a gyártótól megfelelő profilt kérni, majd a paramétereket a filament viselkedése alapján finomhangolni." msgid "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials." msgstr "Ennek a filamentnek a nyomtatásakor fennáll a kunkorodás és az alacsony rétegtapadási szilárdság kockázata. A jobb eredmény érdekében nézd meg ezt a wikit: Nyomtatási tippek magas hőmérsékletű / műszaki anyagokhoz." @@ -20448,10 +20571,10 @@ msgid "Generates filament grouping for the left and right nozzles based on the m msgstr "A bal és jobb fúvókához olyan filamentcsoportosítást hoz létre, amely a leginkább filamenttakarékos elveket követi a hulladék minimalizálása érdekében." msgid "Generates filament grouping for the left and right nozzles based on the printer's actual filament status, reducing the need for manual filament adjustment." -msgstr "A bal és jobb fúvókához a nyomtató tényleges filamentállapota alapján hoz létre filamentcsoportosítást, csökkentve a manuális filamentbeállítás szükségességét." +msgstr "A nyomtatóban ténylegesen betöltött filamentek alapján csoportosítja a filamenteket a bal és jobb fúvókához, így kevesebb kézi beállításra van szükség." msgid "Manually assign filament to the left or right nozzle" -msgstr "Filament manuális hozzárendelése a bal vagy jobb fúvókához" +msgstr "Filament kézi hozzárendelése a bal vagy jobb fúvókához" msgid "Global settings" msgstr "Globális beállítások" @@ -20582,7 +20705,7 @@ msgstr "A feltöltés sikertelen" # AI Translated msgid "The file has been transferred, but some unknown errors occurred. Please check the device page for the file and try to start printing again." -msgstr "A fájl átvitele megtörtént, de ismeretlen hibák léptek fel. Kérlek, ellenőrizd a fájlt az eszköz oldalán, és próbáld újra elindítani a nyomtatást." +msgstr "A fájl átvitele befejeződött, de ismeretlen hiba történt. Ellenőrizd a fájlt az Eszköz oldalon, majd próbáld újra elindítani a nyomtatást." # AI Translated msgid "Failed to open file for upload." @@ -20610,23 +20733,23 @@ msgstr "A hibakód nem található" # AI Translated msgid "The printer is busy, please check the device page for the file and try to start printing again." -msgstr "A nyomtató foglalt, kérlek, ellenőrizd a fájlt az eszköz oldalán, és próbáld újra elindítani a nyomtatást." +msgstr "A nyomtató foglalt. Ellenőrizd a fájlt az Eszköz oldalon, majd próbáld újra elindítani a nyomtatást." # AI Translated msgid "The file is lost, please check and try again." -msgstr "A fájl elveszett, kérlek, ellenőrizd, és próbáld újra." +msgstr "A fájl nem található. Ellenőrizd, majd próbáld újra." # AI Translated msgid "The file is corrupted, please check and try again." -msgstr "A fájl sérült, kérlek, ellenőrizd, és próbáld újra." +msgstr "A fájl sérült. Ellenőrizd, majd próbáld újra." # AI Translated msgid "Transmission abnormality, please check and try again." -msgstr "Átviteli rendellenesség, kérlek, ellenőrizd, és próbáld újra." +msgstr "Átviteli hiba történt. Ellenőrizd, majd próbáld újra." # AI Translated msgid "The file does not match the printer, please check and try again." -msgstr "A fájl nem felel meg a nyomtatónak, kérlek, ellenőrizd, és próbáld újra." +msgstr "A fájl nem kompatibilis a nyomtatóval. Ellenőrizd, majd próbáld újra." # AI Translated msgid "Start print timeout" @@ -20650,7 +20773,7 @@ msgstr "A kapcsolat időtúllépés miatt megszakadt. Kérlek, ellenőrizd, hogy # AI Translated msgid "The Hostname/IP/URL could not be parsed, please check it and try again." -msgstr "A gépnév/IP/URL nem értelmezhető, kérlek, ellenőrizd, és próbáld újra." +msgstr "A gépnév/IP-cím/URL nem értelmezhető. Ellenőrizd, majd próbáld újra." # AI Translated msgid "File/data transfer interrupted. Please check the printer and network, then try it again." @@ -20690,27 +20813,27 @@ msgid "Add or Select" msgstr "Hozzáadás vagy kiválasztás" msgid "Warning: The brim type is not set to \"painted\", the brim ears will not take effect!" -msgstr "Figyelmeztetés: A karimatípus nincs \"festett\" értékre állítva, ezért a karimafülek nem fognak érvényesülni!" +msgstr "Figyelmeztetés: a perem típusa nincs \"festett\" értékre állítva, ezért a peremfülek nem fognak érvényesülni!" msgid "Set the brim type of this object to \"painted\"" -msgstr "Ennek az objektumnak a karimatípusát állítsd \"festett\" értékre" +msgstr "Állítsd ennek az objektumnak a peremtípusát \"festett\" értékre" msgid "invalid brim ears" msgstr "érvénytelen peremfülek" msgid "Brim Ears" -msgstr "Karimás Fülek" +msgstr "Peremfülek" msgid "Please select single object." msgstr "Válassz ki egyetlen objektumot." # AI Translated msgid "Entering Brim Ears" -msgstr "Belépés a karimás fülek módba" +msgstr "Belépés a peremfülek módba" # AI Translated msgid "Leaving Brim Ears" -msgstr "Kilépés a karimás fülek módból" +msgstr "Kilépés a peremfülek módból" msgid "Zoom Out" msgstr "Kicsinyítés" @@ -20861,7 +20984,7 @@ msgid "Number of triangular facets" msgstr "Háromszögfelületek száma" msgid "Calculating, please wait..." -msgstr "Számítás folyamatban, kérlek várj..." +msgstr "Számítás folyamatban, kérlek, várj..." # AI Translated msgid "Save these settings as default" @@ -21082,7 +21205,7 @@ msgstr "Filament az AMS kimenetében" # AI Translated msgid " The high drying temperature may cause AMS blockage, please unload first." -msgstr " A magas szárítási hőmérséklet eltömítheti az AMS-t, kérlek, előbb töltsd ki a filamentet." +msgstr " A magas szárítási hőmérséklet eltömítheti az AMS-t, ezért kérlek, előbb vedd ki a filamentet." # AI Translated msgid "Initiating AMS drying" @@ -21110,7 +21233,7 @@ msgstr " Kérlek, csatlakoztasd a tápellátást, majd használd a szárítási # AI Translated msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding." -msgstr " A magas szárítási hőmérséklet eltömítheti az AMS-t. Kérlek, a folytatás előtt töltsd ki kézzel a filamentet." +msgstr " A magas szárítási hőmérséklet eltömítheti az AMS-t. Kérlek, a folytatás előtt kézzel vedd ki a filamentet." # AI Translated msgid "System is busy" @@ -21169,19 +21292,19 @@ msgid "Starting: Checking air vent" msgstr "Indítás: levegőkifúvás ellenőrzése" msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used." -msgstr "Előfordulhat, hogy a filament nem kompatibilis az aktuális gépbeállításokkal. Általános filamentbeállítások lesznek használva." +msgstr "Előfordulhat, hogy a filament nem kompatibilis a jelenlegi gépbeállításokkal. Általános filamentbeállításokat használ." msgid "The filament model is unknown. Still using the previous filament preset." msgstr "A filament modellje ismeretlen. A korábbi filamentbeállítás marad használatban." msgid "The filament model is unknown. Generic filament presets will be used." -msgstr "A filament modellje ismeretlen. Általános filamentbeállítások lesznek használva." +msgstr "A filament modellje ismeretlen. Általános filamentbeállításokat használ." msgid "The filament may not be compatible with the current machine settings. A random filament preset will be used." -msgstr "Előfordulhat, hogy a filament nem kompatibilis az aktuális gépbeállításokkal. Egy véletlenszerű filamentbeállítás lesz használva." +msgstr "Előfordulhat, hogy a filament nem kompatibilis a jelenlegi gépbeállításokkal. Egy véletlenszerű filamentbeállítást használ." msgid "The filament model is unknown. A random filament preset will be used." -msgstr "A filament modellje ismeretlen. Egy véletlenszerű filamentbeállítás lesz használva." +msgstr "A filament modellje ismeretlen. Egy véletlenszerű filamentbeállítást használ." #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -21284,8 +21407,8 @@ msgid "" "Timelapse\n" "Did you know that you can generate a timelapse video during each print?" msgstr "" -"Időfelvétel\n" -"Tudtad, hogy minden nyomtatáshoz időfelvétel-videót készíthetsz?" +"Timelapse\n" +"Tudtad, hogy minden nyomtatásról Timelapse-videót készíthetsz?" #: resources/data/hints.ini: [hint:Auto-Arrange] msgid "" @@ -21300,8 +21423,8 @@ msgid "" "Auto-Orient\n" "Did you know that you can rotate objects to an optimal orientation for printing with a simple click?" msgstr "" -"Automatikus orientáció\n" -"Tudtad, hogy az objektumokat egy kattintással elforgathatod a nyomtatáshoz optimális orientációba?" +"Automatikus tájolás\n" +"Tudtad, hogy az objektumokat egyetlen kattintással a nyomtatáshoz optimális helyzetbe forgathatod?" #: resources/data/hints.ini: [hint:Lay on Face] msgid "" @@ -21309,8 +21432,7 @@ msgid "" "Did you know that you can quickly orient a model so that one of its faces sits on the print bed? Select the \"Place on face\" function or press the F key." msgstr "" "Felületre fektetés\n" -"Tudtad, hogy a modellt egyszerűen elforgathatod úgy, hogy az egyik oldala az asztalra kerüljön? Válaszd a \"Felületre fektetés\" opciót, vagy csak nyomd meg az F gombot.\n" -" " +"Tudtad, hogy a modellt egyszerűen elforgathatod úgy, hogy az egyik oldala az asztalra kerüljön? Válaszd a \"Felületre fektetés\" opciót, vagy csak nyomd meg az F gombot." #: resources/data/hints.ini: [hint:Object List] msgid "" @@ -21483,7 +21605,10 @@ msgid "" "Did you know that when printing materials that are prone to warping such as ABS, appropriately increasing the heatbed temperature can reduce the probability of warping?" msgstr "" "Kunkorodás elkerülése\n" -"Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor a tárgyasztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" +"Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" + +#~ msgid "Print order within a single layer." +#~ msgstr "Nyomtatási sorrend egyetlen rétegen belül." #~ msgid "Bottom" #~ msgstr "Alul" @@ -21568,9 +21693,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "Filamentek szinkronizálásának folytatása" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 44a3221846..3c43178102 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3850,6 +3850,10 @@ msgstr "Disposizione..." msgid "Arranging" msgstr "Disposizione" +# AI Translated +msgid "Arranging " +msgstr "Disposizione " + msgid "Arranging canceled." msgstr "Disposizione annullata." @@ -8240,21 +8244,21 @@ msgstr "La directory per la sostituzione non è stata selezionata" msgid "Replaced with 3D files from directory:\n" msgstr "Sostituito con file 3D dalla directory:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Saltato %1%: stesso file.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Saltato %s: stesso file.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Saltato %1%: il file non esiste.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Saltato %s: il file non esiste.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Saltato %1%: sostituzione fallita.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Saltato %s: sostituzione fallita.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Sostituito %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Sostituito %s.\n" msgid "Replaced volumes" msgstr "Volumi sostituiti" @@ -9229,6 +9233,21 @@ msgstr "Attenua gli strati inferiori" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Quando si scorre il cursore degli strati nell'anteprima elaborata, gli strati al di sotto di quello corrente vengono visualizzati scuriti, in modo che solo lo strato in visualizzazione sia mostrato alla massima luminosità." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Luminosità degli strati attenuati" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Quanto luminosi appaiono gli strati attenuati quando \"Attenua gli strati inferiori\" è attivo.\n" +"99% è appena scurito, 0% li rende neri. Limitato al 99% perché 100% equivarrebbe a disattivare l'opzione." + msgid "Login region" msgstr "Regione di accesso" @@ -13326,12 +13345,37 @@ msgstr "Per oggetto" msgid "Intra-layer order" msgstr "Ordine intra-strato" -msgid "Print order within a single layer." -msgstr "Ordine di stampa all'interno di un singolo strato." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Ordine in cui le istanze degli oggetti vengono percorse all'interno di un singolo strato; determina quanti spostamenti servono per passare dall'una all'altra.\n" +"\n" +"Predefinito: concatenamento con il vicino più prossimo, affinato con 2-opt e rimozione degli incroci. Una buona scelta generale.\n" +"Come elenco di oggetti: le istanze vengono stampate nello stesso ordine dell'elenco degli oggetti, senza alcuna ottimizzazione del percorso. Da usare quando serve un ordine prevedibile e controllato manualmente.\n" +"Il migliore di tutti (percorso più breve): tutte le strategie vengono valutate e viene usata la più breve. L'ordine delle istanze degli oggetti viene deciso una sola volta per l'intera stampa, mentre l'ordine delle singole isole viene deciso strato per strato, quindi strati diversi possono usare strategie diverse. Slicing leggermente più lento.\n" +"Serpentina: percorso a serpentina, riga per riga, affinato con 2-opt. Adatto a griglie regolari di molti pezzi piccoli.\n" +"\n" +"Con più filamenti o strumenti nello stesso strato, ridurre i cambi strumento ha la priorità: gli oggetti vengono prima raggruppati per filamento e questa impostazione ordina solo le istanze all'interno di ciascun gruppo di filamento, quindi la sequenza complessiva potrebbe non sembrare il percorso più breve sul piatto." msgid "As object list" msgstr "Come elenco di oggetti" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Il migliore di tutti (percorso più breve)" + +# AI Translated +msgid "Snake" +msgstr "Serpentina" + msgid "Slow printing down for better layer cooling" msgstr "Rallenta stampa per miglior raffreddamento degli strati" @@ -18679,6 +18723,20 @@ msgstr "" "Esistono diversi indirizzi IP che risolvono il nome host %1%.\n" "Selezionare quello da utilizzare." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Scala automaticamente in base all'ugello" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Questo modello è progettato per un ugello da 0,4 mm con un'altezza strato di 0,2 mm. \n" +"Quando l'opzione di ridimensionamento è attiva (consigliata), il modello viene ridimensionato dinamicamente in base al diametro dell'ugello attuale e a un'altezza strato adeguata, rendendo il test preciso e facile da leggere.\n" +"Disattiva il ridimensionamento solo se desideri stampare il modello di riferimento esattamente com'è." + msgid "PA Calibration" msgstr "Calibrazione AP" @@ -18815,6 +18873,14 @@ msgstr "Velocità iniziale: " msgid "End speed: " msgstr "Velocità finale: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Adatta automaticamente alla velocità volumetrica massima" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Se la velocità finale superasse la velocità volumetrica massima del filamento, l'altezza strato viene ridotta automaticamente (mantenendo valori standard e restando entro i limiti della macchina) per raggiungerla. Se anche l'altezza strato minima non è sufficiente, viene ridotta invece la velocità finale." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18826,6 +18892,57 @@ msgstr "" "incremento >= 0\n" "fine > inizio + incremento" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"La velocità finale (%.0f mm/s) supera la velocità volumetrica massima del filamento (%.1f mm³/s), il che limita la parete esterna a circa %.0f mm/s con questa larghezza linea e questa altezza strato.\n" +" Le velocità superiori verranno limitate, quindi i blocchi superiori della torre non verranno stampati alla velocità richiesta.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"La velocità finale (%.0f mm/s) supera la velocità volumetrica massima del filamento (%.1f mm³/s) con l'altezza strato predefinita (%.2f mm).\n" +"\n" +"L'altezza strato è stata ridotta a %.2f mm (un valore usato dai profili di questa stampante) affinché la torre possa raggiungere la velocità richiesta." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Anche con l'altezza strato più piccola usata dai profili di questa stampante (%.2f mm), la velocità finale (%.0f mm/s) supera la velocità volumetrica massima del filamento (%.1f mm³/s).\n" +"\n" +"L'altezza strato verrà impostata su %.2f mm e la velocità finale ridotta a %.0f mm/s.\n" +"\n" +"Continuare?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Continuare comunque?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Attivare \"Adatta automaticamente\" per correggere automaticamente il problema oppure continuare comunque?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Attivare \"Scala automaticamente in base all'ugello\" e \"Adatta automaticamente\" per correggere automaticamente il problema oppure continuare comunque?" + msgid "Start retraction length: " msgstr "Lunghezza di retrazione iniziale: " @@ -21514,6 +21631,9 @@ msgstr "" "Evita le deformazioni\n" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" +#~ msgid "Print order within a single layer." +#~ msgstr "Ordine di stampa all'interno di un singolo strato." + #~ msgid "Bottom" #~ msgstr "Inferiore" @@ -21600,9 +21720,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "Continua la sincronizzazione dei filamenti" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 8ee2ec34c0..0d9f044060 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3860,6 +3860,10 @@ msgstr "レイアウト中" msgid "Arranging" msgstr "レイアウト中" +# AI Translated +msgid "Arranging " +msgstr "レイアウト中 " + msgid "Arranging canceled." msgstr "レイアウトを取り消しました" @@ -8258,21 +8262,21 @@ msgstr "置換用のディレクトリが選択されていません" msgid "Replaced with 3D files from directory:\n" msgstr "ディレクトリの3Dファイルで置換しました:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ スキップ %1%: 同一ファイル。\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ スキップ %s: 同一ファイル。\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ スキップ %1%: ファイルが存在しません。\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ スキップ %s: ファイルが存在しません。\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ スキップ %1%: 置換に失敗しました。\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ スキップ %s: 置換に失敗しました。\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ 置換しました %1%。\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ 置換しました %s。\n" msgid "Replaced volumes" msgstr "置換されたボリューム" @@ -9249,6 +9253,21 @@ msgstr "下の積層を暗くする" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "スライスプレビューで積層スライダーを操作する際、現在の層より下の積層を暗く描画し、表示中の積層のみを明るく表示します。" +# AI Translated +msgid "Dimmed layer brightness" +msgstr "暗くした積層の明るさ" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"「下の積層を暗くする」を有効にしたときに、暗くした積層をどの程度の明るさで表示するかを指定します。\n" +"99%ではほとんど暗くならず、0%では真っ黒になります。100%はオプションを無効にした場合と同じになるため、上限は99%です。" + msgid "Login region" msgstr "地域" @@ -13416,12 +13435,37 @@ msgstr "オブジェクト順" msgid "Intra-layer order" msgstr "レイヤー内の順序" -msgid "Print order within a single layer." -msgstr "単一レイヤー内の印刷順序。" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"1つの積層内でオブジェクトインスタンスを巡回する順序です。インスタンス間の移動距離に影響します。\n" +"\n" +"デフォルト:最近傍法でつなぎ、2-optと交差の除去で改善します。一般的な用途に適した選択です。\n" +"オブジェクトリスト順:パスの最適化を行わず、オブジェクトリストと同じ順序でインスタンスを造形します。手動で管理できる予測しやすい順序が必要な場合に使用します。\n" +"すべてを比較(最短経路):すべての方式を評価し、最も短いものを使用します。オブジェクトインスタンスの順序は造形全体で1回だけ決定され、個々のアイランドの順序は積層ごとに決定されるため、積層によって異なる方式が使われる場合があります。スライスがやや遅くなります。\n" +"蛇行:行ごとに折り返しながら蛇行して巡回し、2-optで改善します。小さなパーツが規則的に並んだ配置に適しています。\n" +"\n" +"同じ積層内で複数のフィラメントやツールを使用する場合は、ツール交換の削減が優先されます。オブジェクトはまずフィラメントごとにグループ化され、この設定は各フィラメントグループ内のインスタンスの順序のみを決めるため、全体の順序はプレート全体での最短経路には見えないことがあります。" msgid "As object list" msgstr "オブジェクトリスト順" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "すべてを比較(最短経路)" + +# AI Translated +msgid "Snake" +msgstr "蛇行" + msgid "Slow printing down for better layer cooling" msgstr "冷却の為減速" @@ -19167,6 +19211,20 @@ msgstr "" "ホスト名%1%には、いくつかのIPアドレスがあります。\n" "使用するIPアドレスを1つ選んでください。" +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "ノズルに合わせて自動スケール" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"このモデルは、0.4 mmノズルと0.2 mmの積層ピッチを基準に設計されています。 \n" +"スケールオプションを有効にすると(推奨)、現在のノズル径と適切な積層ピッチに合わせてサイズが動的に調整され、テストの精度と読み取りやすさが向上します。\n" +"参照モデルをそのままの状態で造形したい場合のみ、スケールを無効にしてください。" + msgid "PA Calibration" msgstr "PAキャリブレーション" @@ -19306,6 +19364,14 @@ msgstr "開始速度: " msgid "End speed: " msgstr "終了速度: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "最大体積速度に合わせて自動調整" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "終了速度がフィラメントの最大体積速度を超える場合、その速度に到達できるよう積層ピッチを自動的に下げます(標準的な値を使用し、プリンタの制限内に収めます)。最小の積層ピッチでも足りない場合は、代わりに終了速度を下げます。" + # AI Translated msgid "" "Please input valid values:\n" @@ -19318,6 +19384,57 @@ msgstr "" "ステップ >= 0\n" "終了 > 開始 + ステップ" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"終了速度(%.0f mm/s)がフィラメントの最大体積速度(%.1f mm³/s)を超えています。この押出線幅と積層ピッチでは、外壁は約 %.0f mm/s に制限されます。\n" +" これを超える速度は制限されるため、タワーの上部ブロックは指定した速度で造形されません。\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"終了速度(%.0f mm/s)がフィラメントの最大体積速度(%.1f mm³/s)を超えています(デフォルトの積層ピッチ %.2f mm の場合)。\n" +"\n" +"タワーが指定した速度に到達できるよう、積層ピッチを %.2f mm(このプリンタのプロファイルで使用されている値)に下げました。" + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"このプリンタのプロファイルで使用されている最小の積層ピッチ(%.2f mm)でも、終了速度(%.0f mm/s)がフィラメントの最大体積速度(%.1f mm³/s)を超えています。\n" +"\n" +"積層ピッチを %.2f mm に設定し、終了速度を %.0f mm/s に下げます。\n" +"\n" +"続行しますか?" + +# AI Translated +msgid "Continue anyway?" +msgstr "このまま続行しますか?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "「自動調整」を有効にすると自動的に修正されます。このまま続行しますか?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "「ノズルに合わせて自動スケール」と「自動調整」を有効にすると自動的に修正されます。このまま続行しますか?" + msgid "Start retraction length: " msgstr "開始リトラクション長さ: " @@ -22077,6 +22194,9 @@ msgstr "" "反りを避ける\n" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" +#~ msgid "Print order within a single layer." +#~ msgstr "単一レイヤー内の印刷順序。" + #~ msgid "Bottom" #~ msgstr "底面" @@ -22157,9 +22277,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "フィラメントの同期を続行" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index de6c3df39c..5a6ac0438b 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz \n" "Language-Team: \n" @@ -3864,6 +3864,10 @@ msgstr "정렬 중..." msgid "Arranging" msgstr "정렬 중" +# AI Translated +msgid "Arranging " +msgstr "정렬 중 " + msgid "Arranging canceled." msgstr "정렬 취소됨." @@ -8284,24 +8288,24 @@ msgid "Replaced with 3D files from directory:\n" msgstr "다음 디렉터리의 3D 파일로 교체했습니다:\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ 건너뜀 %1%: 동일한 파일입니다.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ 건너뜀 %s: 동일한 파일입니다.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ 건너뜀 %1%: 파일이 존재하지 않습니다.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ 건너뜀 %s: 파일이 존재하지 않습니다.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ 건너뜀 %1%: 교체하지 못했습니다.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ 건너뜀 %s: 교체하지 못했습니다.\n" # AI Translated -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ %1%을(를) 교체했습니다.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ %s을(를) 교체했습니다.\n" # AI Translated msgid "Replaced volumes" @@ -9324,6 +9328,21 @@ msgstr "아래 레이어 어둡게 표시" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "슬라이스된 미리보기에서 레이어 슬라이더를 움직일 때 현재 레이어보다 아래에 있는 레이어를 어둡게 렌더링하여, 보고 있는 레이어만 완전한 밝기로 표시합니다." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "어둡게 표시된 레이어의 밝기" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"\"아래 레이어 어둡게 표시\"를 활성화했을 때 어둡게 표시되는 레이어의 밝기입니다.\n" +"99%는 거의 어두워지지 않고, 0%는 완전히 검게 표시됩니다. 100%는 이 옵션을 비활성화한 것과 같으므로 최대 99%로 제한됩니다." + msgid "Login region" msgstr "로그인 지역" @@ -13539,12 +13558,37 @@ msgstr "객체별" msgid "Intra-layer order" msgstr "레이어 내 순서" -msgid "Print order within a single layer." -msgstr "단일 레이어 내의 출력 순서" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"단일 레이어 내에서 객체 인스턴스를 방문하는 순서로, 인스턴스 사이를 오가는 이동량을 결정합니다.\n" +"\n" +"기본값: 최근접 이웃 방식으로 경로를 연결하고 2-opt와 교차 제거로 개선합니다. 일반적으로 무난한 선택입니다.\n" +"객체 목록으로: 경로 최적화 없이 객체 목록과 동일한 순서로 인스턴스를 출력합니다. 예측 가능하고 수동으로 제어되는 순서가 필요할 때 사용하십시오.\n" +"전체 비교(최단 경로): 모든 전략을 평가하여 가장 짧은 것을 사용합니다. 객체 인스턴스 순서는 출력 전체에 대해 한 번만 결정되고 개별 아일랜드의 순서는 레이어마다 결정되므로, 레이어에 따라 서로 다른 전략이 사용될 수 있습니다. 슬라이싱이 약간 느려집니다.\n" +"사행형: 행 단위로 앞뒤를 오가며 사행하듯 순회하고 2-opt로 개선합니다. 작은 부품이 규칙적인 격자로 배치된 경우에 적합합니다.\n" +"\n" +"같은 레이어에서 여러 필라멘트나 툴을 사용하는 경우에는 툴 교체 최소화가 우선합니다. 객체를 먼저 필라멘트별로 그룹화하며 이 설정은 각 필라멘트 그룹 내의 인스턴스 순서만 결정하므로, 전체 순서가 플레이트 전체의 최단 경로처럼 보이지 않을 수 있습니다." msgid "As object list" msgstr "객체 목록으로" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "전체 비교(최단 경로)" + +# AI Translated +msgid "Snake" +msgstr "사행형" + msgid "Slow printing down for better layer cooling" msgstr "레이어 냉각 향상을 위한 감속" @@ -14248,7 +14292,7 @@ msgstr "플러시 체적 속도" # AI Translated msgid "Volumetric speed when flushing filament. 0 indicates the max volumetric speed." -msgstr "필라멘트를 플러시할 때의 체적 속도입니다. 0은 최대 체적 속도를 의미합니다." +msgstr "필라멘트를 플러시할 때의 압출 속도입니다. 0은 최대 압출 속도를 의미합니다." msgid "This setting is the volume of filament that can be melted and extruded per second. Printing speed is limited by max volumetric speed, in case of too high and unreasonable speed setting. This value cannot be zero." msgstr "이 설정은 초당 얼마나 많은 양의 필라멘트를 녹이고 압출할 수 있는지를 나타냅니다. 너무 높고 부적절한 속도 설정의 경우 출력 속도는 최대 압출 속도에 의해 제한됩니다. 0이 될 수 없습니다" @@ -18715,7 +18759,7 @@ msgstr "" "이제 다양한 필라멘트에 대한 자동 교정 기능이 추가되었습니다. 완전히 자동으로 수행되며 결과는 나중에 사용할 수 있도록 프린터에 저장됩니다. 다음과 같은 제한된 경우에만 교정을 수행하면 됩니다:\n" "1. 다른 브랜드/모델의 새 필라멘트를 사용하거나 필라멘트가 눅눅해진 경우\n" "2. 노즐이 마모되었거나 새 노즐로 교체한 경우\n" -"3. 필라멘트 설정에서 최대 체적 속도나 출력 온도를 변경한 경우." +"3. 필라멘트 설정에서 최대 압출 속도나 출력 온도를 변경한 경우." msgid "About this calibration" msgstr "교정 정보" @@ -19033,6 +19077,20 @@ msgstr "" "호스트 이름 %1%으로 확인되는 IP 주소가 여러 개 있습니다.\n" "사용 할 IP를 선택해 주세요." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "노즐에 맞춰 자동 크기 조정" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"이 모델은 0.4 mm 노즐과 0.2 mm 레이어 높이를 기준으로 설계되었습니다. \n" +"크기 조정 옵션을 활성화하면(권장) 현재 노즐 직경과 적절한 레이어 높이에 맞춰 크기가 동적으로 조정되어 테스트가 정확하고 읽기 쉬워집니다.\n" +"참조 모델을 있는 그대로 출력하려는 경우에만 크기 조정을 끄십시오." + msgid "PA Calibration" msgstr "PA 교정" @@ -19171,6 +19229,14 @@ msgstr "시작 속도: " msgid "End speed: " msgstr "종료 속도: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "최대 압출 속도에 맞춰 자동 조정" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "종료 속도가 필라멘트의 최대 압출 속도를 초과하는 경우, 해당 속도에 도달할 수 있도록 레이어 높이를 자동으로 낮춥니다(표준 값을 유지하고 장비의 한계 내에서 조정). 최소 레이어 높이로도 부족하면 대신 종료 속도를 낮춥니다." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19182,6 +19248,57 @@ msgstr "" "단계 >= 0\n" "끝 > 시작 + 단계)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"종료 속도(%.0f mm/s)가 필라멘트의 최대 압출 속도(%.1f mm³/s)를 초과합니다. 현재 선 너비와 레이어 높이에서는 외벽이 약 %.0f mm/s로 제한됩니다.\n" +" 이보다 빠른 속도는 제한되므로 타워의 상단 블록은 요청한 속도로 출력되지 않습니다.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"종료 속도(%.0f mm/s)가 필라멘트의 최대 압출 속도(%.1f mm³/s)를 초과합니다(기본 레이어 높이 %.2f mm 기준).\n" +"\n" +"타워가 요청한 속도에 도달할 수 있도록 레이어 높이를 %.2f mm(이 프린터의 프로파일에서 사용하는 값)로 낮췄습니다." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"이 프린터의 프로파일에서 사용하는 가장 작은 레이어 높이(%.2f mm)에서도 종료 속도(%.0f mm/s)가 필라멘트의 최대 압출 속도(%.1f mm³/s)를 초과합니다.\n" +"\n" +"레이어 높이를 %.2f mm로 설정하고 종료 속도를 %.0f mm/s로 낮춥니다.\n" +"\n" +"계속하시겠습니까?" + +# AI Translated +msgid "Continue anyway?" +msgstr "그래도 계속하시겠습니까?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"자동 조정\"을 활성화하면 자동으로 해결됩니다. 그래도 계속하시겠습니까?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"노즐에 맞춰 자동 크기 조정\"과 \"자동 조정\"을 활성화하면 자동으로 해결됩니다. 그래도 계속하시겠습니까?" + msgid "Start retraction length: " msgstr "후퇴 시작 길이: " @@ -21289,7 +21406,7 @@ msgstr "채워넣기 전혀 없음" # AI Translated msgid "Volumetric speed" -msgstr "체적 속도" +msgstr "압출 속도" msgid "Step file import parameters" msgstr "스텝 파일 가져오기 매개변수" @@ -21940,6 +22057,9 @@ msgstr "" "뒤틀림 방지\n" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +#~ msgid "Print order within a single layer." +#~ msgstr "단일 레이어 내의 출력 순서" + #~ msgid "Bottom" #~ msgstr "아래" @@ -22008,9 +22128,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "필라멘트 동기화 계속하기" diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 986a9dc0d7..9a6b7ae590 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas \n" "Language-Team: \n" @@ -3840,6 +3840,10 @@ msgstr "Išdėstoma..." msgid "Arranging" msgstr "Išdėstymas" +# AI Translated +msgid "Arranging " +msgstr "Išdėstoma " + msgid "Arranging canceled." msgstr "Išdėstymas atšauktas." @@ -8235,21 +8239,21 @@ msgstr "" "Pakeista 3D failais iš katalogo:\n" "\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Praleistas %1%: tas pats failas.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Praleistas %s: tas pats failas.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Praleistas %1%: failas neegzistuoja.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Praleistas %s: failas neegzistuoja.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Praleistas %1%: nepavyko pakeisti.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Praleistas %s: nepavyko pakeisti.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Pakeistas %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Pakeistas %s.\n" msgid "Replaced volumes" msgstr "Pakeisti tūriai" @@ -9186,6 +9190,21 @@ msgstr "Pritemdyti apatinius sluoksnius" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Slenkant sluoksnių slankiklį pjaustytoje peržiūroje, atvaizduoti žemiau esančius sluoksnius pritemdytus, kad visu ryškumu būtų rodomas tik peržiūrimas sluoksnis." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Pritemdytų sluoksnių ryškumas" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Kaip ryškiai atvaizduojami pritemdyti sluoksniai, kai įjungta parinktis „Pritemdyti apatinius sluoksnius“.\n" +"99 % – pritemdymas vos pastebimas, 0 % – sluoksniai atvaizduojami juodai. Riba yra 99 %, nes 100 % prilygtų parinkties išjungimui." + msgid "Login region" msgstr "Prisijungimo regionas" @@ -13222,12 +13241,37 @@ msgstr "Objektas po objekto" msgid "Intra-layer order" msgstr "Eiliškumas sluoksnio viduje" -msgid "Print order within a single layer." -msgstr "Elementų spausdinimo eiliškumas vieno sluoksnio ribose." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Tvarka, kuria objektų kopijos aplankomos viename sluoksnyje; ji lemia, kiek tuščiosios eigos sugaištama pereinant tarp jų.\n" +"\n" +"Numatytasis: grandinės sudarymas artimiausio kaimyno metodu, patobulintas 2-opt algoritmu ir sankirtų šalinimu. Geras bendras pasirinkimas.\n" +"Kaip objektų sąrašas: kopijos spausdinamos tokia pačia tvarka kaip objektų sąraše, be jokio kelio optimizavimo. Naudokite, kai reikia nuspėjamos, rankiniu būdu valdomos tvarkos.\n" +"Geriausias iš visų (trumpiausias kelias): įvertinamos visos strategijos ir naudojama trumpiausia. Objektų kopijų tvarka nustatoma vieną kartą visam spausdinimui, o atskirų salelių tvarka – kiekvienam sluoksniui atskirai, todėl skirtinguose sluoksniuose gali būti naudojamos skirtingos strategijos. Sluoksniuojama šiek tiek lėčiau.\n" +"Gyvatėle: vingiuotas ėjimas eilutė po eilutės, patobulintas 2-opt algoritmu. Gerai tinka taisyklingiems daugelio mažų detalių tinkleliams.\n" +"\n" +"Kai tame pačiame sluoksnyje naudojamos kelios gijos ar keli įrankiai, pirmenybė teikiama įrankio keitimų mažinimui: objektai pirmiausia grupuojami pagal giją, o ši nuostata rikiuoja tik kopijas kiekvienoje grupėje, todėl bendra seka gali neatrodyti kaip trumpiausias kelias per plokštę." msgid "As object list" msgstr "Kaip objektų sąrašas" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Geriausias iš visų (trumpiausias kelias)" + +# AI Translated +msgid "Snake" +msgstr "Gyvatėle" + msgid "Slow printing down for better layer cooling" msgstr "Sulėtinti spausdinimą geresniam sluoksnių aušinimui" @@ -18537,6 +18581,20 @@ msgstr "" "Yra keli IP adresai, susieti su mazgo pavadinimu %1%.\n" "Pasirinkite tą, kurį norite naudoti." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatinis mastelis pagal purkštuką" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Šis modelis suprojektuotas 0,4 mm purkštukui ir 0,2 mm sluoksnio aukščiui. \n" +"Kai mastelio keitimo parinktis įjungta (rekomenduojama), modelio dydis dinamiškai pritaikomas prie jūsų dabartinio purkštuko skersmens ir tinkamo sluoksnio aukščio, todėl testas yra ir tikslus, ir lengvai įskaitomas.\n" +"Mastelio keitimą išjunkite tik tuo atveju, jei norite spausdinti etaloninį modelį tiksliai tokį, koks jis yra." + msgid "PA Calibration" msgstr "PA kalibravimas (Pressure Advance)" @@ -18673,6 +18731,14 @@ msgstr "Pradinis greitis: " msgid "End speed: " msgstr "Galinis greitis: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automatiškai pritaikyti prie maksimalaus tūrinio greičio" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Jei galutinis greitis viršytų maksimalų gijos tūrinį greitį, automatiškai sumažinti sluoksnio aukštį (išlaikant standartines reikšmes ir neperžengiant įrenginio apribojimų), kad jį pasiektų. Jei net mažiausio sluoksnio aukščio nepakanka, vietoj to sumažinamas galutinis greitis." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18684,6 +18750,57 @@ msgstr "" "žingsnis >= 0\n" "galinis > pradinis + žingsnis" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Galutinis greitis (%.0f mm/s) viršija maksimalų gijos tūrinį greitį (%.1f mm³/s), kuris esant tokiam linijos pločiui ir sluoksnio aukščiui riboja išorinę sienelę iki maždaug %.0f mm/s.\n" +" Didesni greičiai bus apriboti, todėl viršutiniai bokšto blokai nebus spausdinami pageidaujamu greičiu.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Galutinis greitis (%.0f mm/s) viršija maksimalų gijos tūrinį greitį (%.1f mm³/s) esant numatytajam sluoksnio aukščiui (%.2f mm).\n" +"\n" +"Sluoksnio aukštis sumažintas iki %.2f mm (reikšmė, naudojama šio spausdintuvo profiliuose), kad bokštas galėtų pasiekti pageidaujamą greitį." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Net ir esant mažiausiam sluoksnio aukščiui, naudojamam šio spausdintuvo profiliuose (%.2f mm), galutinis greitis (%.0f mm/s) viršija maksimalų gijos tūrinį greitį (%.1f mm³/s).\n" +"\n" +"Sluoksnio aukštis bus nustatytas į %.2f mm, o galutinis greitis sumažintas iki %.0f mm/s.\n" +"\n" +"Tęsti?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Vis tiek tęsti?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Įjungti „Automatiškai pritaikyti“, kad tai būtų ištaisyta automatiškai, ar vis tiek tęsti?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Įjungti „Automatinis mastelis pagal purkštuką“ ir „Automatiškai pritaikyti“, kad tai būtų ištaisyta automatiškai, ar vis tiek tęsti?" + msgid "Start retraction length: " msgstr "Pradinis įtraukimo ilgis: " @@ -21219,6 +21336,9 @@ msgstr "" "Venkite deformacijų (warping)\n" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" +#~ msgid "Print order within a single layer." +#~ msgstr "Elementų spausdinimo eiliškumas vieno sluoksnio ribose." + #~ msgid "Bottom" #~ msgstr "Apačia" @@ -21306,9 +21426,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "Realistiniame vaizde atvaizduoja krentančius šešėlius ant spausdinimo pagrindo." diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 7ee63c8a30..1ae53b2888 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4172,6 +4172,10 @@ msgstr "Rangschikken..." msgid "Arranging" msgstr "Rangschikken" +# AI Translated +msgid "Arranging " +msgstr "Rangschikken " + msgid "Arranging canceled." msgstr "Rangschikken geannuleerd." @@ -8995,24 +8999,24 @@ msgid "Replaced with 3D files from directory:\n" msgstr "Vervangen door 3D-bestanden uit de map:\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Overgeslagen %1%: hetzelfde bestand.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Overgeslagen %s: hetzelfde bestand.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Overgeslagen %1%: bestand bestaat niet.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Overgeslagen %s: bestand bestaat niet.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Overgeslagen %1%: vervangen is mislukt.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Overgeslagen %s: vervangen is mislukt.\n" # AI Translated -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Vervangen %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Vervangen %s.\n" # AI Translated msgid "Replaced volumes" @@ -10076,6 +10080,21 @@ msgstr "Onderliggende lagen dimmen" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Bij het verschuiven van de laagschuifregelaar in de slicevoorvertoning worden de lagen onder de huidige laag verduisterd weergegeven, zodat alleen de bekeken laag op volle helderheid wordt getoond." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Helderheid van gedimde lagen" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Hoe helder de gedimde lagen worden weergegeven wanneer \"Onderliggende lagen dimmen\" is ingeschakeld.\n" +"99% is nauwelijks donkerder, 0% maakt ze zwart. Beperkt tot 99%, omdat 100% hetzelfde zou zijn als de optie uitschakelen." + msgid "Login region" msgstr "Inlogregio" @@ -14544,13 +14563,37 @@ msgid "Intra-layer order" msgstr "Volgorde binnen een laag" # AI Translated -msgid "Print order within a single layer." -msgstr "Printvolgorde binnen één laag." +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"De volgorde waarin objectinstanties binnen één laag worden bezocht, wat bepaalt hoeveel verplaatsing er nodig is om ertussen te bewegen.\n" +"\n" +"Standaard: aaneenschakeling via de dichtstbijzijnde buur, verfijnd met 2-opt en het verwijderen van kruisingen. Een goede algemene keuze.\n" +"Zoals de objectlijst: instanties worden afgedrukt in dezelfde volgorde als de objectlijst, zonder enige padoptimalisatie. Gebruik dit wanneer je een voorspelbare, handmatig bepaalde volgorde nodig hebt.\n" +"Beste van allemaal (kortste pad): elke strategie wordt beoordeeld en de kortste wordt gebruikt. De volgorde van de objectinstanties wordt eenmalig voor de hele print bepaald, terwijl de volgorde van de afzonderlijke eilanden per laag wordt bepaald, waardoor verschillende lagen uiteindelijk verschillende strategieën kunnen gebruiken. Het slicen duurt iets langer.\n" +"Slingerend: slingerend traject, rij voor rij, verfijnd met 2-opt. Zeer geschikt voor regelmatige rasters van veel kleine onderdelen.\n" +"\n" +"Bij meerdere filamenten of gereedschappen in dezelfde laag heeft het beperken van het aantal gereedschapswissels voorrang: objecten worden eerst per filament gegroepeerd en deze instelling bepaalt alleen de volgorde van de instanties binnen elke filamentgroep, waardoor de totale volgorde er niet uitziet als het kortste pad over het printbed." # AI Translated msgid "As object list" msgstr "Zoals de objectlijst" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Beste van allemaal (kortste pad)" + +# AI Translated +msgid "Snake" +msgstr "Slingerend" + msgid "Slow printing down for better layer cooling" msgstr "Printsnelheid omlaag brengen zodat de laag beter kan koelen" @@ -20593,6 +20636,20 @@ msgstr "" "Er zijn meerdere IP-adressen die verwijzen naar hostname %1%.\n" "Selecteer er een die gebruikt moet worden." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatisch schalen naar mondstuk" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Dit model is ontworpen voor een mondstuk van 0,4 mm met een laaghoogte van 0,2 mm. \n" +"Wanneer de schaaloptie is ingeschakeld (aanbevolen), wordt het model dynamisch aangepast aan je huidige mondstukdiameter en een passende laaghoogte, waardoor de test zowel nauwkeurig als goed afleesbaar is.\n" +"Schakel het schalen alleen uit als je het referentiemodel precies zo wilt printen als het is." + msgid "PA Calibration" msgstr "PA-kalibratie" @@ -20736,6 +20793,14 @@ msgstr "Startsnelheid:" msgid "End speed: " msgstr "Eindsnelheid:" +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automatisch aanpassen aan max. volumetrische snelheid" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Als de eindsnelheid de maximale volumetrische snelheid van het filament zou overschrijden, wordt de laaghoogte automatisch verlaagd (met behoud van standaardwaarden en binnen de limieten van de machine) om die snelheid te halen. Als zelfs de minimale laaghoogte niet volstaat, wordt in plaats daarvan de eindsnelheid verlaagd." + # AI Translated msgid "" "Please input valid values:\n" @@ -20748,6 +20813,57 @@ msgstr "" "stap >= 0\n" "einde > start + stap" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"De eindsnelheid (%.0f mm/s) overschrijdt de maximale volumetrische snelheid van het filament (%.1f mm³/s), waardoor de buitenste wand bij deze lijndikte en laaghoogte beperkt wordt tot ongeveer %.0f mm/s.\n" +" Hogere snelheden worden begrensd, waardoor de bovenste blokken van de toren niet op de gevraagde snelheid worden geprint.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"De eindsnelheid (%.0f mm/s) overschrijdt de maximale volumetrische snelheid van het filament (%.1f mm³/s) bij de standaard laaghoogte (%.2f mm).\n" +"\n" +"De laaghoogte is verlaagd naar %.2f mm (een waarde die door de profielen van deze printer wordt gebruikt), zodat de toren de gevraagde snelheid kan halen." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Zelfs bij de kleinste laaghoogte die door de profielen van deze printer wordt gebruikt (%.2f mm) overschrijdt de eindsnelheid (%.0f mm/s) de maximale volumetrische snelheid van het filament (%.1f mm³/s).\n" +"\n" +"De laaghoogte wordt ingesteld op %.2f mm en de eindsnelheid verlaagd naar %.0f mm/s.\n" +"\n" +"Doorgaan?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Toch doorgaan?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"Automatisch aanpassen\" inschakelen om dit automatisch op te lossen, of toch doorgaan?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "\"Automatisch schalen naar mondstuk\" en \"Automatisch aanpassen\" inschakelen om dit automatisch op te lossen, of toch doorgaan?" + msgid "Start retraction length: " msgstr "Begin terugtreklengte:" @@ -23665,6 +23781,10 @@ msgstr "" "Kromtrekken voorkomen\n" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" +# AI Translated +#~ msgid "Print order within a single layer." +#~ msgstr "Printvolgorde binnen één laag." + #~ msgid "Bottom" #~ msgstr "Onderkant" @@ -23707,9 +23827,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgctxt "Sync_Nozzle_AMS" #~ msgid "Cancel" #~ msgstr "Annuleren" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index ab64679801..a0701dca09 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <>\n" "Language-Team: \n" @@ -3926,6 +3926,10 @@ msgstr "Układanie..." msgid "Arranging" msgstr "Układanie" +# AI Translated +msgid "Arranging " +msgstr "Rozmieszczanie " + msgid "Arranging canceled." msgstr "Układanie anulowane." @@ -8440,24 +8444,24 @@ msgid "Replaced with 3D files from directory:\n" msgstr "Zastąpiono plikami 3D z katalogu:\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Pominięto %1%: ten sam plik.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Pominięto %s: ten sam plik.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Pominięto %1%: plik nie istnieje.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Pominięto %s: plik nie istnieje.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Pominięto %1%: nie udało się zastąpić.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Pominięto %s: nie udało się zastąpić.\n" # AI Translated -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Zastąpiono %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Zastąpiono %s.\n" # AI Translated msgid "Replaced volumes" @@ -9479,6 +9483,21 @@ msgstr "Przyciemnij niższe warstwy" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Podczas przewijania suwaka warstw w podglądzie po cięciu renderuj warstwy poniżej bieżącej w przyciemnieniu, tak aby tylko oglądana warstwa była w pełnej jasności." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Jasność przyciemnionych warstw" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Jak jasno renderowane są przyciemnione warstwy, gdy włączona jest opcja „Przyciemnij niższe warstwy”.\n" +"99% oznacza ledwo zauważalne przyciemnienie, 0% renderuje je na czarno. Wartość jest ograniczona do 99%, ponieważ 100% oznaczałoby to samo co wyłączenie opcji." + msgid "Login region" msgstr "Region logowania" @@ -13709,12 +13728,37 @@ msgstr "Wg obiektu" msgid "Intra-layer order" msgstr "Kolejność warstw" -msgid "Print order within a single layer." -msgstr "Kolejność druku obiektów w obrębie jednej warstwy. Domyślnie lub według listy obiektów" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Kolejność, w jakiej instancje obiektów są odwiedzane w obrębie jednej warstwy; decyduje o tym, ile przemieszczeń zajmuje przechodzenie między nimi.\n" +"\n" +"Domyślny: łączenie metodą najbliższego sąsiada, dopracowane algorytmem 2-opt i usuwaniem przecięć. Dobry wybór ogólny.\n" +"Wg listy obiektów: instancje są drukowane w tej samej kolejności co na liście obiektów, bez optymalizacji ścieżki. Użyj, gdy potrzebujesz przewidywalnej, ręcznie ustalonej kolejności.\n" +"Najlepsza ze wszystkich (najkrótsza ścieżka): oceniane są wszystkie strategie i wybierana jest najkrótsza. Kolejność instancji obiektów ustalana jest raz dla całego wydruku, natomiast kolejność poszczególnych wysp jest ustalana dla każdej warstwy, więc różne warstwy mogą ostatecznie korzystać z różnych strategii. Cięcie trwa nieco dłużej.\n" +"Wężykiem: serpentynowe przechodzenie rząd po rzędzie, dopracowane algorytmem 2-opt. Dobrze sprawdza się przy regularnych siatkach wielu małych elementów.\n" +"\n" +"Gdy w tej samej warstwie używanych jest wiele filamentów lub narzędzi, priorytetem jest minimalizacja zmian narzędzia: obiekty są najpierw grupowane według filamentu, a to ustawienie porządkuje jedynie instancje w obrębie każdej grupy, więc ogólna sekwencja może nie wyglądać jak najkrótsza ścieżka po płycie." msgid "As object list" msgstr "Wg listy obiektów" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Najlepsza ze wszystkich (najkrótsza ścieżka)" + +# AI Translated +msgid "Snake" +msgstr "Wężykiem" + msgid "Slow printing down for better layer cooling" msgstr "Zwolnienie druku dla lepszego chłodzenia warstw" @@ -19211,6 +19255,20 @@ msgstr "" "Jest kilka adresów IP przypisanych do nazwy hosta %1%.\n" "Proszę wybrać jeden, który ma być używany." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Automatyczne skalowanie do dyszy" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Ten model zaprojektowano dla dyszy 0,4 mm i wysokości warstwy 0,2 mm. \n" +"Gdy opcja skalowania jest włączona (zalecane), model dynamicznie dopasowuje rozmiar do średnicy Twojej obecnej dyszy i odpowiedniej wysokości warstwy, dzięki czemu test jest dokładny i łatwy do odczytania.\n" +"Wyłącz skalowanie tylko wtedy, gdy chcesz wydrukować model referencyjny dokładnie w oryginalnej postaci." + msgid "PA Calibration" msgstr "Kalibracja PA" @@ -19349,6 +19407,14 @@ msgstr "Rozpocznij z prędkością: " msgid "End speed: " msgstr "Zakończ z prędkością: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Automatyczne dopasowanie do maksymalnej prędkości przepływu" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Jeśli prędkość końcowa przekroczyłaby maksymalną prędkość przepływu filamentu, automatycznie obniż wysokość warstwy (zachowując standardowe wartości i pozostając w limitach maszyny), aby ją osiągnąć. Jeśli nawet minimalna wysokość warstwy nie wystarczy, obniżona zostanie prędkość końcowa." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19360,6 +19426,57 @@ msgstr "" "krok >= 0\n" "koniec > start + krok)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Prędkość końcowa (%.0f mm/s) przekracza maksymalną prędkość przepływu filamentu (%.1f mm³/s), która przy tej szerokości linii i wysokości warstwy ogranicza zewnętrzną ścianę do około %.0f mm/s.\n" +" Wyższe prędkości zostaną ograniczone, więc górne bloki wieży nie zostaną wydrukowane z żądaną prędkością.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Prędkość końcowa (%.0f mm/s) przekracza maksymalną prędkość przepływu filamentu (%.1f mm³/s) przy domyślnej wysokości warstwy (%.2f mm).\n" +"\n" +"Wysokość warstwy została zmniejszona do %.2f mm (wartość stosowana w profilach tej drukarki), aby wieża mogła osiągnąć żądaną prędkość." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Nawet przy najmniejszej wysokości warstwy stosowanej w profilach tej drukarki (%.2f mm) prędkość końcowa (%.0f mm/s) przekracza maksymalną prędkość przepływu filamentu (%.1f mm³/s).\n" +"\n" +"Wysokość warstwy zostanie ustawiona na %.2f mm, a prędkość końcowa obniżona do %.0f mm/s.\n" +"\n" +"Kontynuować?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Kontynuować mimo to?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Włączyć „Automatyczne dopasowanie”, aby naprawić to automatycznie, czy kontynuować mimo to?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Włączyć „Automatyczne skalowanie do dyszy” i „Automatyczne dopasowanie”, aby naprawić to automatycznie, czy kontynuować mimo to?" + msgid "Start retraction length: " msgstr "Długość retrakcji na początku: " @@ -22117,6 +22234,9 @@ msgstr "" "Unikaj odkształceń\n" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" +#~ msgid "Print order within a single layer." +#~ msgstr "Kolejność druku obiektów w obrębie jednej warstwy. Domyślnie lub według listy obiektów" + #~ msgid "Bottom" #~ msgstr "Dół" @@ -22191,9 +22311,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "Kontynuuj aby zsynchronizować filamenty" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index cfe7549122..0d777ec32e 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -3700,6 +3700,10 @@ msgstr "Organizando…" msgid "Arranging" msgstr "Organizando" +# AI Translated +msgid "Arranging " +msgstr "Organizando " + msgid "Arranging canceled." msgstr "Organização cancelada." @@ -8022,21 +8026,21 @@ msgstr "Diretório para substituição não foi selecionado" msgid "Replaced with 3D files from directory:\n" msgstr "Substituído por arquivos 3D do diretório:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ %1% Ignorados: mesmo arquivo.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ %s Ignorados: mesmo arquivo.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ %1% Ignorados: arquivo não existe.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ %s Ignorados: arquivo não existe.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ %1% Ignorados: falha ao substituir.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ %s Ignorados: falha ao substituir.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ %1% Substituídos.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ %s Substituídos.\n" msgid "Replaced volumes" msgstr "Volumes substiruídos" @@ -8975,6 +8979,22 @@ msgstr "Escurecer camadas inferiores" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Ao mover o controle deslizante de camadas na pré-visualização fatiada, renderiza as camadas abaixo da atual escurecidas, de modo que apenas a camada visualizada seja exibida com brilho total." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Brilho das camadas escurecidas" + +# AI Translated +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Com que brilho as camadas escurecidas são exibidas quando \"Escurecer camadas inferiores\" está ativado.\n" +"99% quase não escurece, 0% as deixa pretas. Limitado a 99% porque 100% seria o mesmo que desativar a opção." + msgid "Login region" msgstr "Região de login" @@ -12983,12 +13003,37 @@ msgstr "Por objeto" msgid "Intra-layer order" msgstr "Ordem intra-camada" -msgid "Print order within a single layer." -msgstr "Ordem de impressão dentro de uma única camada." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Ordem em que as instâncias dos objetos são visitadas dentro de uma mesma camada, o que determina quanto deslocamento é gasto no trajeto entre elas.\n" +"\n" +"Padrão: encadeamento por vizinho mais próximo, refinado com 2-opt e remoção de cruzamentos. Uma boa escolha geral.\n" +"Como lista de objetos: as instâncias são impressas na mesma ordem da lista de objetos, sem nenhuma otimização de trajeto. Use quando precisar de uma ordem previsível e controlada manualmente.\n" +"Melhor de todas (caminho mais curto): todas as estratégias são avaliadas e a mais curta é usada. A ordem das instâncias dos objetos é definida uma única vez para toda a impressão, enquanto a ordem das ilhas individuais é definida por camada, de modo que camadas diferentes podem acabar usando estratégias diferentes. O fatiamento fica um pouco mais lento.\n" +"Serpentina: percurso em serpentina, linha por linha, refinado com 2-opt. Adequado a grades regulares de muitas peças pequenas.\n" +"\n" +"Com vários filamentos ou ferramentas na mesma camada, minimizar as trocas de ferramenta tem prioridade: os objetos são agrupados primeiro por filamento e esta configuração ordena apenas as instâncias dentro de cada grupo de filamento, portanto a sequência geral pode não parecer o caminho mais curto pela placa." msgid "As object list" msgstr "Como lista de objetos" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Melhor de todas (caminho mais curto)" + +# AI Translated +msgid "Snake" +msgstr "Serpentina" + msgid "Slow printing down for better layer cooling" msgstr "Diminuir a velocidade de impressão para melhor resfriamento de camada" @@ -17085,15 +17130,12 @@ msgstr "Quando este valor de retração for modificado, ele será usado como a q msgid "Support fast purge mode" msgstr "Suporte ao modo de purga rápida" -# AI Translated msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier." msgstr "Se esta impressora suporta o modo de purga rápida com temperatura e multiplicador otimizados." -# AI Translated msgid "Filament change" msgstr "Troca de filamento" -# AI Translated msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change." msgstr "O volume de material necessário para preparar a extrusora na torre, excluindo uma troca de hotend." @@ -18278,6 +18320,18 @@ msgstr "" "Há vários endereços IP resolvendo para o nome do host %1%.\n" "Por favor, selecione um que deve ser usado." +msgid "Auto-scale for nozzle" +msgstr "Escala automática para o bico" + +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Este modelo foi projetado para um bico de 0,4 mm com altura de camada de 0,2 mm. \n" +"Quando a opção de escala está ativada (recomendado), ele é redimensionado dinamicamente para corresponder ao diâmetro do bico atual e a uma altura de camada apropriada, tornando o teste preciso e fácil de ler.\n" +"Desative a escala apenas se quiser imprimir o modelo de referência exatamente como está." + msgid "PA Calibration" msgstr "Calibração de PA" @@ -18414,6 +18468,12 @@ msgstr "Velocidade Inicial: " msgid "End speed: " msgstr "Velocidade Final: " +msgid "Auto-adjust to max volumetric speed" +msgstr "Ajuste automático à velocidade volumétrica máxima" + +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Se a velocidade final ultrapassar a velocidade volumétrica máxima do filamento, reduz automaticamente a altura de camada (mantendo valores padrão e respeitando os limites da máquina) para alcançá-la. Se nem mesmo a altura de camada mínima for suficiente, reduz a velocidade final." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18425,6 +18485,51 @@ msgstr "" "passo >= 0\n" "fim > início + passo" +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"A velocidade final (%.0f mm/s) excede a velocidade volumétrica máxima do filamento (%.1f mm³/s), o que limita a parede externa a cerca de %.0f mm/s com esta largura de linha e altura de camada.\n" +" Velocidades acima disso serão limitadas, portanto os blocos superiores da torre não serão impressos na velocidade solicitada.\n" +"\n" +"%s" + +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"A velocidade final (%.0f mm/s) ultrapassa a velocidade volumétrica máxima do filamento (%.1f mm³/s) na altura de camada padrão (%.2f mm).\n" +"\n" +"A altura de camada foi reduzida para %.2f mm (um valor usado pelos perfis desta impressora) para que a torre possa atingir a velocidade solicitada." + +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Mesmo na menor altura de camada usada pelos perfis desta impressora (%.2f mm), a velocidade final (%.0f mm/s) ultrapassa a velocidade volumétrica máxima do filamento (%.1f mm³/s).\n" +"\n" +"A altura de camada será definida como %.2f mm e a velocidade final reduzida para %.0f mm/s.\n" +"\n" +"Continuar?" + +msgid "Continue anyway?" +msgstr "Continuar mesmo assim?" + +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Ativar \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?" + +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Ativar \"Escala automática para o bico\" e \"Ajuste automático\" para corrigir isso automaticamente ou continuar mesmo assim?" + msgid "Start retraction length: " msgstr "Distância de Retração Inicial: " @@ -19526,9 +19631,8 @@ msgstr "Não foi possível decifrar a resposta do servidor." msgid "Error saving session to file" msgstr "Erro salvando sessão para arquivo" -# AI Translated msgid "Error session check" -msgstr "Verificação de sessão de erro" +msgstr "Erro na verificação de sessão" msgid "Error during file upload" msgstr "Erro durante a subida do arquivo" @@ -19961,9 +20065,8 @@ msgstr "Impressão Falhou" msgid "Removed" msgstr "Removido" -# AI Translated msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" -msgstr "Ativar atribuição inteligente de filamento: atribui um filamento a vários bicos para maximizar a economia" +msgstr "Ativar atribuição inteligente de filamento: Atribui um filamento a vários bicos para maximizar a economia" msgid "Fila Saving" msgstr "Econo Filamento" @@ -20001,7 +20104,6 @@ msgstr "Tutorial em vídeo" msgid "(Sync with printer)" msgstr "(Sinc. com impressora)" -# AI Translated #, c-format, boost-format msgid "Error: %s extruder has no available %s nozzle, current group result is invalid." msgstr "Erro: a extrusora %s não tem nenhum bico %s disponível, o resultado do grupo atual é inválido." @@ -20012,17 +20114,14 @@ msgstr "Vamos fatiar de acordo com este método de agrupamento:" msgid "Tip: You can drag the filaments to reassign them to different nozzles." msgstr "Dica: Você pode arrastar os filamentos para reatribuí-los a diferentes bicos." -# AI Translated msgid "Please adjust your grouping or click " msgstr "Por favor, ajuste seu agrupamento ou clique em " -# AI Translated msgid " to set nozzle count" msgstr " para definir o número de bicos" -# AI Translated msgid "Set the physical nozzle count..." -msgstr "Definir o número físico de bicos..." +msgstr "Definir o número de bicos físicos…" msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button." msgstr "O método de agrupamento de filamentos para a placa atual é determinado pela opção no botão de fatiamento da placa." @@ -20362,99 +20461,75 @@ msgstr "Numero de facetas triangulares" msgid "Calculating, please wait..." msgstr "Calculando, por favor aguarde…" -# AI Translated msgid "Save these settings as default" msgstr "Salvar estas configurações como padrão" -# AI Translated msgid "If enabled, the values above are stored as the defaults used for future STEP imports (and shown in Preferences)." msgstr "Se ativado, os valores acima são armazenados como os padrões usados para futuras importações STEP (e mostrados nas Preferências)." -# AI Translated msgid "PresetBundle" msgstr "PresetBundle" -# AI Translated msgid "Bundle folder does not exist." msgstr "A pasta do pacote não existe." -# AI Translated msgid "Failed to open folder." msgstr "Falha ao abrir a pasta." -# AI Translated msgid "Delete selected bundle from folder and all presets loaded from it?" msgstr "Excluir o pacote selecionado da pasta e todas as predefinições carregadas a partir dele?" -# AI Translated msgid "Delete Bundle" -msgstr "Excluir pacote" +msgstr "Excluir Pacote" -# AI Translated msgid "Failed to remove bundle." msgstr "Falha ao remover o pacote." -# AI Translated msgid "Remove Bundle" msgstr "Remover pacote" -# AI Translated msgid "Unsubscribe bundle?" msgstr "Cancelar a inscrição do pacote?" -# AI Translated msgid "UnsubscribeBundle" msgstr "UnsubscribeBundle" -# AI Translated msgid "Failed to unsubscribe bundle." msgstr "Falha ao cancelar a inscrição do pacote." -# AI Translated msgid "Unsubscribe Bundle" -msgstr "Cancelar inscrição do pacote" +msgstr "Cancelar inscrição do Pacote" -# AI Translated msgid "ExportPresetBundle" msgstr "ExportPresetBundle" -# AI Translated msgid "Save preset bundle" msgstr "Salvar pacote de predefinições" -# AI Translated msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path." msgstr "Falha ao realizar a integração com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage." -# AI Translated msgid "Performing desktop integration failed - Could not find executable." msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível encontrar o executável." -# AI Translated msgid "Performing desktop integration failed because the application directory was not found." msgstr "Falha ao realizar a integração com a área de trabalho porque o diretório do aplicativo não foi encontrado." -# AI Translated msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. OrcaSlicer desktop file was probably created successfully." msgstr "Falha ao realizar a integração com a área de trabalho - não foi possível criar o arquivo desktop do Gcodeviewer. O arquivo desktop do OrcaSlicer provavelmente foi criado com sucesso." -# AI Translated msgid "Performing downloader desktop integration failed - boost::filesystem::canonical did not return appimage path." msgstr "Falha ao realizar a integração do downloader com a área de trabalho - boost::filesystem::canonical não retornou o caminho do appimage." -# AI Translated msgid "Performing downloader desktop integration failed - Could not find executable." msgstr "Falha ao realizar a integração do downloader com a área de trabalho - não foi possível encontrar o executável." -# AI Translated msgid "Performing downloader desktop integration failed because the application directory was not found." msgstr "Falha ao realizar a integração do downloader com a área de trabalho porque o diretório do aplicativo não foi encontrado." -# AI Translated msgid "Desktop Integration" -msgstr "Integração com a área de trabalho" +msgstr "Integração com a Área de Trabalho" -# AI Translated msgid "" "Desktop Integration sets this binary to be searchable by the system.\n" "\n" @@ -20478,40 +20553,33 @@ msgstr "Arquivar pré-visualização" msgid "Open File" msgstr "Abrir Arquivo" -# AI Translated msgid "AMS Dryness Control" -msgstr "Controle de secura do AMS" +msgstr "Controle de Secura do AMS" -# AI Translated msgid "Filament Drying Settings" -msgstr "Configurações de secagem de filamento" +msgstr "Configurações de Secagem de Filamento" msgid "Stopping" msgstr "Parando" -# AI Translated msgid "Unable to dry temporarily due to ..." -msgstr "Não é possível secar temporariamente devido a ..." +msgstr "Não é possível secar temporariamente devido a…" msgid "Drying Error" msgstr "Erro de Secagem" -# AI Translated msgid "Please check the Assistant for troubleshooting" msgstr "Por favor, verifique o Assistente para solução de problemas" -# AI Translated msgid "Please remove and store the filament (as shown)." msgstr "Por favor, remova e guarde o filamento (como mostrado)." -# AI Translated msgid "The AMS can rotate the filament which is properly stored, providing better drying results." msgstr "O AMS pode girar o filamento que está corretamente armazenado, proporcionando melhores resultados de secagem." msgid "Rotate spool when drying" msgstr "Girar o carretel durante a secagem" -# AI Translated msgctxt "amsdrying" msgid "Back" msgstr "Voltar" @@ -20531,11 +20599,9 @@ msgstr " temperatura mínima de secagem é " msgid "This filament may not be completely dried." msgstr "Este filamento pode não estar completamente seco." -# AI Translated msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature." msgstr "Este AMS está imprimindo no momento. Para garantir a qualidade da impressão, a temperatura de secagem não pode exceder a temperatura de secagem recomendada." -# AI Translated msgid "The temperature shall not exceed the filament's heat distortion temperature" msgstr "A temperatura não deve exceder a temperatura de distorção térmica do filamento" @@ -20548,22 +20614,18 @@ msgstr "O valor máximo de tempo não pode ser superior a 24." msgid "Insufficient power" msgstr "Potência insuficiente" -# AI Translated msgid " Too many AMS drying simultaneously. Please plug in the power or stop other drying processes before starting." msgstr " Muitos AMS secando simultaneamente. Por favor, conecte à energia ou pare outros processos de secagem antes de iniciar." msgid "AMS is busy" msgstr "O AMS está ocupado" -# AI Translated msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait." msgstr " O AMS está calibrando | lendo RFID | carregando/descarregando material, por favor aguarde." -# AI Translated msgid "Filament in AMS outlet" msgstr "Filamento na saída do AMS" -# AI Translated msgid " The high drying temperature may cause AMS blockage, please unload first." msgstr " A alta temperatura de secagem pode causar bloqueio do AMS, por favor descarregue primeiro." @@ -20576,18 +20638,15 @@ msgstr "Não suportado no modo 2D" msgid "Task in progress" msgstr "Tarefa em progresso" -# AI Translated msgid " The AMS might be in use during Task." msgstr " O AMS pode estar em uso durante a Tarefa." msgid " Firmware update in progress, please wait..." -msgstr " Atualização de firmware em progresso, por favor aguarde..." +msgstr " Atualização de firmware em progresso, por favor aguarde…" -# AI Translated msgid " Please plug in the power and then use the drying function." -msgstr " Por favor, conecte à energia e depois use a função de secagem." +msgstr " Por favor, conecte à energia e então use a função de secagem." -# AI Translated msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding." msgstr " A alta temperatura de secagem pode causar bloqueio do AMS. Por favor, descarregue o filamento manualmente antes de prosseguir." @@ -20595,7 +20654,7 @@ msgid "System is busy" msgstr "O sistema está ocupado" msgid " Initiating other drying processes, please wait a few seconds..." -msgstr " Iniciando outros processos de secagem, por favor aguarde alguns segundos..." +msgstr " Iniciando outros processos de secagem, por favor aguarde alguns segundos…" msgid "For better drying results, remove the filament and allow it to rotate." msgstr "Para obter melhores resultados de secagem, remova o filamento e permita que ele gire." @@ -20948,6 +21007,9 @@ msgstr "" "Evitar empenamento\n" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" +#~ msgid "Print order within a single layer." +#~ msgstr "Ordem de impressão dentro de uma única camada." + #~ msgid "Bottom" #~ msgstr "Inferior" @@ -20957,17 +21019,6 @@ msgstr "" #~ msgid "Rear" #~ msgstr "Traseira" -# AI Translated -#, boost-format -#~ msgid "" -#~ "Objects(%1%) have duplicated connectors. Some connectors may be missing in slicing result.\n" -#~ "Please report to PrusaSlicer team in which scenario this issue happened.\n" -#~ "Thank you." -#~ msgstr "" -#~ "Os objetos(%1%) têm conectores duplicados. Alguns conectores podem estar faltando no resultado do fatiamento.\n" -#~ "Por favor, informe à equipe do PrusaSlicer em qual cenário esse problema ocorreu.\n" -#~ "Obrigado." - #~ msgid "Skip for Now" #~ msgstr "Pular por Enquanto" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index fa629fd222..c2fbcb54be 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg \n" @@ -27,15 +27,12 @@ msgstr "Основной экструдер" msgid "main extruder" msgstr "основной экструдер" -# AI Translated msgid "Auxiliary Extruder" msgstr "Вспомогательный экструдер" -# AI Translated msgid "Auxiliary extruder" msgstr "Вспомогательный экструдер" -# AI Translated msgid "auxiliary extruder" msgstr "вспомогательный экструдер" @@ -57,27 +54,21 @@ msgstr "Правый экструдер" msgid "right extruder" msgstr "правый экструдер" -# AI Translated msgid "Main Nozzle" msgstr "Основное сопло" -# AI Translated msgid "Main nozzle" msgstr "Основное сопло" -# AI Translated msgid "main nozzle" msgstr "основное сопло" -# AI Translated msgid "Auxiliary Nozzle" msgstr "Вспомогательное сопло" -# AI Translated msgid "Auxiliary nozzle" msgstr "Вспомогательное сопло" -# AI Translated msgid "auxiliary nozzle" msgstr "вспомогательное сопло" @@ -99,67 +90,51 @@ msgstr "Правый экструдер" msgid "right nozzle" msgstr "правого сопла" -# AI Translated msgid "Main Hotend" msgstr "Основной хотэнд" -# AI Translated msgid "Main hotend" msgstr "Основной хотэнд" -# AI Translated msgid "main hotend" msgstr "основной хотэнд" -# AI Translated msgid "Auxiliary Hotend" msgstr "Вспомогательный хотэнд" -# AI Translated msgid "Auxiliary hotend" msgstr "Вспомогательный хотэнд" -# AI Translated msgid "auxiliary hotend" msgstr "вспомогательный хотэнд" -# AI Translated msgid "Left Hotend" msgstr "Левый хотэнд" -# AI Translated msgid "Left hotend" msgstr "Левый хотэнд" -# AI Translated msgid "left hotend" msgstr "левый хотэнд" -# AI Translated msgid "Right Hotend" msgstr "Правый хотэнд" -# AI Translated msgid "Right hotend" msgstr "Правый хотэнд" -# AI Translated msgid "right hotend" msgstr "правый хотэнд" -# AI Translated msgid "main" msgstr "основной" -# AI Translated msgid "auxiliary" msgstr "вспомогательный" -# AI Translated msgid "Main" msgstr "Основной" -# AI Translated msgid "Auxiliary" msgstr "Вспомогательный" @@ -279,7 +254,7 @@ msgstr "Высокий расход" msgid "Standard" msgstr "Обычный" -# AI Translated +# На бамбувики просто "хотэнд ТПУ". Очевидно, машинный перевод. Оставляю оригинальное. msgid "TPU High Flow" msgstr "TPU High Flow" @@ -295,7 +270,6 @@ msgstr "Нержавеющая сталь" msgid "Tungsten Carbide" msgstr "Карбид вольфрама" -# AI Translated msgid "The toolhead and hotend rack may move. Please keep your hands away from the chamber." msgstr "Печатающая голова и стойка хотэндов могут смещаться. Держите руки подальше от камеры." @@ -350,15 +324,12 @@ msgstr "Версия:" msgid "Latest version" msgstr "Последняя версия" -# AI Translated msgid "Row A" msgstr "Ряд A" -# AI Translated msgid "Row B" -msgstr "Ряд B" +msgstr "Ряд Б" -# AI Translated msgid "Toolhead" msgstr "Печатающая голова" @@ -368,9 +339,8 @@ msgstr "Пусто" msgid "Error" msgstr "Ошибка" -# AI Translated msgid "Induction Hotend Rack" -msgstr "Индукционная стойка хотэндов" +msgstr "Стойка индукционных хотэндов" msgid "Hotends Info" msgstr "Информация о хотэндах" @@ -384,30 +354,25 @@ msgstr "Чтение " msgid "Please wait" msgstr "Подождите" -# AI Translated msgid "Reading" msgstr "Чтение" -# AI Translated msgid "Running..." msgstr "Выполнение..." -# AI Translated +# Ряд msgid "Raised" -msgstr "Поднято" +msgstr "Поднят" -# AI Translated msgid "The hotend is in an abnormal state and currently unavailable. Please go to 'Device -> Upgrade' to upgrade firmware." -msgstr "Хотэнд находится в нештатном состоянии и сейчас недоступен. Перейдите в «Устройство -> Обновление», чтобы обновить прошивку." +msgstr "Хотэнд находится в нештатном состоянии и сейчас недоступен. Перейдите в «Принтер» → «Обновление», чтобы обновить прошивку." -# AI Translated msgid "Abnormal Hotend" msgstr "Нештатное состояние хотэнда" msgid "Cancel" msgstr "Отмена" -# AI Translated msgid "Jump to the upgrade page" msgstr "Перейти на страницу обновления" @@ -417,9 +382,8 @@ msgstr "Обновить" msgid "Refreshing" msgstr "Обновление" -# AI Translated msgid "Hotend status abnormal, unavailable at present. Please upgrade the firmware and try again." -msgstr "Состояние хотэнда нештатное, сейчас недоступно. Обновите прошивку и повторите попытку." +msgstr "Хотэнд находится в нештатном состоянии и сейчас недоступен. Обновите прошивку и попробуйте ещё раз." msgid "SN" msgstr "Серийный номер" @@ -431,19 +395,16 @@ msgstr "Версия" msgid "Used Time: %s" msgstr "Время использования: %s" -# AI Translated +# Полагаю, речь об этом https://wiki.bambulab.com/ru/software/bambu-studio/filament-track-switch-dynamic-mapping msgid "Dynamic nozzles are allocated on the current plate. Picking hotend is not supported." msgstr "На текущем столе назначены динамические сопла. Выбор хотэнда не поддерживается." -# AI Translated msgid "Hotend Rack" msgstr "Стойка хотэндов" -# AI Translated msgid "ToolHead" msgstr "Печатающая голова" -# AI Translated msgid "Nozzle information needs to be read" msgstr "Необходимо считать информацию о сопле" @@ -948,7 +909,6 @@ msgstr "Снять выбор" msgid "Select all connectors" msgstr "Выбрать все соединения" -# AI Translated msgctxt "Cut tool" msgid "Cut" msgstr "Разрезать" @@ -1885,14 +1845,14 @@ msgid "" "Select 2 faces on objects and \n" " make objects assemble together." msgstr "" -"Выберите две грани на моделях и\n" -"соберите объекты вместе." +"Выберите две грани на моделях и соберите\n" +"объекты вместе." msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." msgstr "" -"Выберите 2 точки или окружности на моделях \n" +"Выберите 2 точки или окружности на моделях\n" "и укажите расстояние между ними." msgid "Face" @@ -1954,7 +1914,6 @@ msgstr "Запуск режима измерения" msgid "Leaving Measure gizmo" msgstr "Выход из режима измерения" -# AI Translated msgctxt "Assembly tool" msgid "Assemble" msgstr "Собрать" @@ -1968,8 +1927,9 @@ msgstr "Выберите минимум две модели." msgid "(Moving)" msgstr "(подвижная)" +# Пробел в конце, чтобы не срезалась часть msgid "Point and point assembly" -msgstr "Сборка по точкам" +msgstr "Сборка по точкам " # Зачем здесь "внимание"? Это просто руководство к действию msgid "Warning: please select two different meshes." @@ -1992,8 +1952,9 @@ msgstr "" "для получения возможности поднимать их\n" "над столом." +# Пробел в конце, чтобы не срезалась часть msgid "Face and face assembly" -msgstr "Сборка по граням" +msgstr "Сборка по граням " msgid "Entering Assembly gizmo" msgstr "Запуск режима сборки" @@ -2133,7 +2094,7 @@ msgstr "" "\n" "Для автоматического переноса существующих профилей войдите в Orca Cloud. Посетите нашу Вики, чтобы узнать подробнее о ручном переносе, хранении и синхронизации профилей.\n" "\n" -"Можно спокойно игнорировать это сообщение, если вы ранее не использовали Bambu Cloud для синхронизации." +"Можно спокойно игнорировать это сообщение, если вы ранее не использовали Bambu Cloud для синхронизации. " msgid "Profile syncing change" msgstr "Изменения в синхронизации профилей" @@ -2214,7 +2175,6 @@ msgstr "Загрузка плагинов" msgid "Plugin %s is no longer available." msgstr "Плагин «%s» больше недоступен." -# AI Translated #, c-format, boost-format msgid "Plugin %s access is unauthorized." msgstr "Доступ к плагину %s не авторизован." @@ -3661,10 +3621,9 @@ msgid "Left(Aux)" msgstr "Левый (вспом.)" # FAN_HEAT_BREAK_0_IDX - охлаждение термобарьера в первом хотэнде -# AI Translated msgctxt "Hotend Heat Breaker Fan" msgid "Hotend" -msgstr "Хотэнд" +msgstr "1 термобарьер" msgid "Parts" msgstr "Основной" @@ -3713,29 +3672,23 @@ msgstr "Подтверждение экструзии" msgid "Check filament location" msgstr "Проверка расположения прутка" -# AI Translated msgid "Switch" msgstr "Переключить" -# AI Translated msgid "hotend" msgstr "хотэнд" -# AI Translated msgid "Wait for AMS cooling" msgstr "Дождитесь охлаждения AMS" -# AI Translated msgid "Switch current filament at Filament Track Switch" msgstr "Переключить текущий материал на Filament Track Switch" -# AI Translated msgid "Pull back current filament at Filament Track Switch" msgstr "Втянуть текущий материал на Filament Track Switch" -# AI Translated msgid "Switch track at Filament Track Switch" -msgstr "Переключить дорожку на Filament Track Switch" +msgstr "Переключить подачу на Filament Track Switch" msgid "The maximum temperature cannot exceed " msgstr "Температура не должна превышать " @@ -3743,45 +3696,37 @@ msgstr "Температура не должна превышать " msgid "The minmum temperature should not be less than " msgstr "Температура не должна быть ниже " -# AI Translated msgid "Type to filter..." -msgstr "Введите текст для фильтрации..." +msgstr "Поиск..." # в Сохранение толщины вертикальной оболочки. # было Везде, но из-за условия совместимости изменено.... как тогда быть? msgid "All" msgstr "Все" -# AI Translated msgid "No selected items..." -msgstr "Нет выбранных элементов..." +msgstr "Ничего не выбрано..." -# AI Translated msgid "All items selected..." -msgstr "Выбраны все элементы..." +msgstr "Выбраны все..." -# AI Translated msgid "No matching items..." -msgstr "Нет подходящих элементов..." +msgstr "Ничего не найдено..." msgid "Deselect All" msgstr "Снять выбор со всего" -# AI Translated msgid "Select visible" msgstr "Выбрать видимые" -# AI Translated msgid "Deselect visible" msgstr "Снять выбор с видимых" -# AI Translated msgid "Filter selected" -msgstr "Отфильтровать выбранные" +msgstr "Фильтровать выбранные" -# AI Translated msgid "Filter nonSelected" -msgstr "Отфильтровать невыбранные" +msgstr "Фильтровать невыбранные" msgid "Simple settings" msgstr "Простые настройки" @@ -3799,18 +3744,15 @@ msgstr "Режим разработчика" msgid "Launch troubleshoot center" msgstr "Запустить экран отладки" -# AI Translated msgid "Set nozzle count" msgstr "Задать количество сопел" -# AI Translated msgid "Please set nozzle count" -msgstr "Задайте количество сопел" +msgstr "Укажите количество сопел" msgid "Error: Can not set both nozzle count to zero." msgstr "Ошибка: оба значения не могут быть нулевыми." -# AI Translated #, c-format, boost-format msgid "Error: Nozzle count can not exceed %d." msgstr "Ошибка: количество сопел не может превышать %d." @@ -3821,45 +3763,36 @@ msgstr "Подтвердить" msgid "Extruder" msgstr "Экструдер" -# AI Translated msgid "Nozzle Selection" msgstr "Выбор сопла" -# AI Translated msgid "Available Nozzles" msgstr "Доступные сопла" msgid "Nozzle Info" msgstr "Информация о сопле" -# AI Translated msgid "Sync Nozzle status" msgstr "Синхронизировать состояние сопла" -# AI Translated msgid "Caution: Mixing nozzle diameters in one print is not supported. If the selected size is only on one extruder, single-extruder printing will be enforced." -msgstr "Внимание: смешивание диаметров сопел в одной печати не поддерживается. Если выбранный размер есть только на одном экструдере, будет принудительно применена печать одним экструдером." +msgstr "Внимание: смешивание диаметров сопел в одной печати не поддерживается. Печать будет производиться одним соплом, если выбранный диаметр есть только на одном экструдере." -# AI Translated #, c-format, boost-format msgid "Refresh %d/%d..." -msgstr "Обновление %d/%d..." +msgstr "Обновить %d/%d..." -# AI Translated msgid "Unknown nozzle detected. Refresh to update info (unrefreshed nozzles will be excluded during slicing). Verify nozzle diameter & flow rate against displayed values." -msgstr "Обнаружено неизвестное сопло. Обновите, чтобы получить сведения (необновлённые сопла будут исключены при нарезке). Сверьте диаметр сопла и расход с отображаемыми значениями." +msgstr "Обнаружено неизвестное сопло. Обновите для получения сведений (неизвестные сопла будут исключены при нарезке). Сверьте диаметр сопла и расход с отображаемыми значениями." -# AI Translated msgid "Unknown nozzle detected. Refresh to update (unrefreshed nozzles will be skipped in slicing)." -msgstr "Обнаружено неизвестное сопло. Обновите для получения сведений (необновлённые сопла будут пропущены при нарезке)." +msgstr "Обнаружено неизвестное сопло. Обновите для получения сведений (неизвестные сопла будут пропущены при нарезке)." -# AI Translated msgid "Please confirm whether the required nozzle diameter and flow rate match the currently displayed values." msgstr "Убедитесь, что требуемый диаметр сопла и расход соответствуют отображаемым значениям." -# AI Translated msgid "Your printer has different nozzles installed. Please select a nozzle for this print." -msgstr "На вашем принтере установлены разные сопла. Выберите сопло для этой печати." +msgstr "В принтере установлены разные сопла. Выберите сопло для этой печати." msgid "Ignore" msgstr "Игнорировать" @@ -3888,11 +3821,14 @@ msgstr "Расстановка..." msgid "Arranging" msgstr "Расстановка" +msgid "Arranging " +msgstr "Расстановка: " + msgid "Arranging canceled." msgstr "Расстановка отменена." msgid "Arranging complete, but some items were not able to be arranged. Reduce spacing and try again." -msgstr "Расстановка завершена, но не всё удалось уместить на столе. Уменьшите отступ расстановки и повторите попытку." +msgstr "Расстановка завершена, но не всё удалось уместить на столе. Уменьшите отступ и повторите попытку." msgid "Arranging done." msgstr "Расстановка выполнена." @@ -4342,8 +4278,8 @@ msgid "" "Lower half area: The filament from original project will be used when unmapped.\n" "And you can click it to modify" msgstr "" -"Верхняя половина: Исходный\n" -"Нижняя половина: При отсутствии назначения будет использоваться филамент из исходного проекта.\n" +"Сверху: оригинальный материал\n" +"Снизу: материал исходного проекта (если не назначен).\n" "Нажмите для изменения" msgid "" @@ -4353,7 +4289,7 @@ msgid "" msgstr "" "Сверху: оригинальный материал\n" "Снизу: материал из AMS\n" -"Нажмите, чтобы изменить" +"Нажмите для изменения" msgid "" "Upper half area: Original\n" @@ -4367,45 +4303,41 @@ msgid "AMS Slots" msgstr "Слоты AMS" msgid "Please select from the following filaments" -msgstr "Пожалуйста, выберите из следующих филаментов" +msgstr "Выберите из следующих материалов" -# AI Translated #, c-format, boost-format msgid "Select filament that installed to the %s" msgstr "Выберите материал, установленный в %s" msgid "Left AMS" -msgstr "Левый AMS" +msgstr "Левая AMS" +# Оверюзиниг: внешние мосты/внешняя катушка msgid "External" msgstr "Внешние" msgid "Reset current filament mapping" -msgstr "Сбросить текущее назначение филамента" +msgstr "Сбросить переназначенные материалы" msgid "Right AMS" -msgstr "Правый AMS" +msgstr "Правая AMS" #, c-format, boost-format msgid "Printing with the current nozzle may produce an extra %0.2f g of waste." msgstr "Печать текущим соплом может привести к дополнительным затратам %0.2f г материала." -# AI Translated #, c-format, boost-format msgid "Tips: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page." -msgstr "Совет: тип материала (%s) не совпадает с типом материала (%s) в файле нарезки. Если вы хотите использовать этот слот, установите %s вместо %s и измените информацию о слоте на странице «Устройство»." +msgstr "Совет: тип материала (%s) не совпадает с типом материала (%s) в файле нарезки. Если вы хотите использовать этот слот, установите %s вместо %s и измените информацию о слоте на странице «Принтер»." -# AI Translated #, c-format, boost-format msgid "Cannot select: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page." -msgstr "Невозможно выбрать: тип материала (%s) не совпадает с типом материала (%s) в файле нарезки. Если вы хотите использовать этот слот, установите %s вместо %s и измените информацию о слоте на странице «Устройство»." +msgstr "Невозможно выбрать: тип материала (%s) не совпадает с типом материала (%s) в файле нарезки. Если вы хотите использовать этот слот, установите %s вместо %s и измените информацию о слоте на странице «Принтер»." -# AI Translated #, c-format, boost-format msgid "Cannot select: the slot is empty or undefined. If you want to use this slot, you can install %s and change slot information on the 'Device' page." -msgstr "Невозможно выбрать: слот пуст или не определён. Если вы хотите использовать этот слот, установите %s и измените информацию о слоте на странице «Устройство»." +msgstr "Невозможно выбрать: слот пуст или не определён. Если вы хотите использовать этот слот, установите %s и измените информацию о слоте на странице «Принтер»." -# AI Translated msgid "Cannot select: No filament loaded in current slot." msgstr "Невозможно выбрать: в текущий слот не загружен материал." @@ -4447,12 +4379,10 @@ msgstr "Использовать для печати материал с вне msgid "Print with filament in AMS" msgstr "Печать материалом из AMS" -# AI Translated msgctxt "Nozzle position" msgid "Left" msgstr "Левое" -# AI Translated msgctxt "Nozzle position" msgid "Right" msgstr "Правое" @@ -4522,7 +4452,7 @@ msgid "Update remaining capacity" msgstr "Обновлять оставшуюся ёмкость катушки" msgid "AMS will attempt to estimate the remaining capacity of the Bambu Lab filaments." -msgstr "AMS попытается оценить оставшееся количество филаментов Bambu Lab." +msgstr "AMS будет пытаться оценивать оставшееся количество материалов Bambu Lab." msgid "AMS filament backup" msgstr "Резервирование материала AMS" @@ -4804,9 +4734,9 @@ msgid "" "\n" "The first layer height will be reset to 0.2." msgstr "" -"Нулевая высота начального слоя недопустима.\n" +"Нулевая высота первого слоя недопустима.\n" "\n" -"Высота первого слоя будет сброшена до 0.2." +"Значение будет сброшено до 0,2." # Оба первых предложения легко объединяются в одно. msgid "" @@ -5046,9 +4976,9 @@ msgstr "Измерение точности движений" msgid "Enhancing motion precision" msgstr "Улучшение точности движений" -# ??? Измерение точности позиционирования +# Относится к motion accuracy points – точкам фактического положения головы на сетке с эталонными координатами msgid "Measure motion accuracy" -msgstr "Измерение точности перемещения" +msgstr "Измерение точности позиционирования" msgid "Nozzle offset calibration" msgstr "Калибровка смещения сопла" @@ -5057,30 +4987,30 @@ msgid "High temperature auto bed leveling" msgstr "Измерение кривизны разогретого стола" msgid "Auto Check: Quick Release Lever" -msgstr "Автопроверка: быстросъёмный рычаг" +msgstr "Проверка: быстросъёмный модуль" msgid "Auto Check: Door and Upper Cover" -msgstr "Автопроверка: дверца и верхняя крышка" +msgstr "Проверка: дверца и верхняя крышка" msgid "Laser Calibration" msgstr "Калибровка лазера" msgid "Auto Check: Platform" -msgstr "Автопроверка: платформа" +msgstr "Проверка: стол" -# ??? Подтверждение положения камеры msgid "Confirming BirdsEye Camera location" -msgstr "Подтверждение расположения камеры BirdsEye" +msgstr "Подтверждение положения камеры" # ??? Калибровка ракурса камеры msgid "Calibrating BirdsEye Camera" msgstr "Калибровка камеры BirdsEye" +# Нет здесь никакого выравнивания, у бамбуков даже крутилок нет. Это просто снятие карты высот. msgid "Auto bed leveling -phase 1" -msgstr "Автоматическое выравнивание стола — фаза 1" +msgstr "Измерение кривизны стола — фаза 1" msgid "Auto bed leveling -phase 2" -msgstr "Автоматическое выравнивание стола — фаза 2" +msgstr "Измерение кривизны стола — фаза 2" msgid "Heating chamber" msgstr "Нагрев камеры" @@ -5092,19 +5022,22 @@ msgid "Printing calibration lines" msgstr "Печать калибровочных линий" msgid "Auto Check: Material" -msgstr "Автопроверка: материал" +msgstr "Проверка: материал" +# https://wiki.bambulab.com/ru/h2/troubleshooting/hmscode/0C00_0300_0002_0014#:~:text=калибровку%20камеры%20реального%20времени,-: msgid "Live View Camera Calibration" -msgstr "Калибровка камеры Live View" +msgstr "Калибровка камеры реального времени" msgid "Waiting for heatbed to reach target temperature" msgstr "Ожидание нагрева стола" +# у H2D система определяет, где лежит обрезок листа. Но может также относиться и к 3D-гравировке, где определяется расстояние до поверхности. msgid "Auto Check: Material Position" -msgstr "Автопроверка: положение материала" +msgstr "Проверка: положение заготовки" +# https://wiki.bambulab.com/ru/h2/troubleshooting/hmscode/0500_0400_0002_0037 msgid "Cutting Module Offset Calibration" -msgstr "Калибровка смещения режущего модуля" +msgstr "Калибровка смещения модуля резки" msgid "Measuring Surface" msgstr "Измерение поверхности" @@ -5137,7 +5070,7 @@ msgid "Timelapse is not supported while the storage is readonly." msgstr "Запись таймлапсов невозможна на защищённый от записи накопитель." msgid "To ensure your safety, certain processing tasks (such as laser) can only be resumed on printer." -msgstr "В целях безопасности некоторые задачи обработки (например, лазерная) могут быть возобновлены только на принтере." +msgstr "В целях безопасности некоторые виды обработки (например, лазерная) можно возобновить только вручную на принтере." #, c-format, boost-format msgid "The chamber temperature is too high, which may cause the filament to soften. Please wait until the chamber temperature drops below %d℃. You may open the front door or enable fans to cool down." @@ -5174,7 +5107,6 @@ msgstr "Не удалось сгенерировать калибровочны msgid "Calibration error" msgstr "Ошибка калибровки" -# AI Translated msgid "Network unavailable" msgstr "Сеть недоступна" @@ -5190,9 +5122,9 @@ msgstr "Продолжить (проблема решена)" msgid "Stop Printing" msgstr "Остановить печать" -# ??? Перейти к помощнику, Помощник по проверке +# "Ассистент" плохо ложится в "обратитесь к ассистенту", когда речь о руководстве. msgid "Check Assistant" -msgstr "Ассистент проверки" +msgstr "Помощник проверки" msgid "Filament Extruded, Continue" msgstr "Пруток выдавлен, продолжить" @@ -5213,9 +5145,9 @@ msgstr "Просмотр трансляции" msgid "No Reminder Next Time" msgstr "Больше не спрашивать" -# AI Translated +# Перепроверить msgid "Recheck" -msgstr "Проверить снова" +msgstr "Перепроверить" msgid "Ignore. Don't Remind Next Time" msgstr "Игнорировать и больше не спрашивать" @@ -5227,7 +5159,7 @@ msgid "Problem Solved and Resume" msgstr "Проблема решена, продолжить" msgid "Got it, Turn off the Fire Alarm." -msgstr "Понятно, выключить пожарную сигнализацию." +msgstr "Ясно, выключить пожарную сигнализацию." msgid "Retry (problem solved)" msgstr "Повторить (проблема решена)" @@ -5238,15 +5170,12 @@ msgstr "Остановить сушку" msgid "Proceed" msgstr "Продолжить" -# AI Translated msgid "Abort" msgstr "Прервать" -# AI Translated msgid "Disable Purification for This Print" msgstr "Отключить очистку воздуха для этой печати" -# AI Translated msgid "Don't Remind Me" msgstr "Не напоминать" @@ -5259,7 +5188,6 @@ msgstr "Продолжить" msgid "Unknown error." msgstr "Неизвестная ошибка." -# AI Translated msgid "Loading ..." msgstr "Загрузка ..." @@ -5340,8 +5268,9 @@ msgstr "слой(-я)" msgid "Range" msgstr "Диапазон" +# Подставляется в "По умолчанию" в подсказке к параметрам. Не уверен, нужно ли здесь "строка", может просто "пусто"? msgid "Empty string" -msgstr "Пустая строка" +msgstr "пустая строка" msgid "Value is out of range." msgstr "Введённое значение вне диапазона." @@ -5727,7 +5656,7 @@ msgid "Fan speed (%)" msgstr "Скорость вентилятора (%)" msgid "Temperature (℃)" -msgstr "Температура (°C)" +msgstr "Температура (℃)" msgid "Volumetric flow rate (mm³/s)" msgstr "Объёмный расход (мм³/с)" @@ -5811,9 +5740,8 @@ msgid "Adaptive" msgstr "Адаптировать" msgid "Quality / Speed" -msgstr "Качество/Скорость" +msgstr "Качество/скорость" -# AI Translated msgctxt "Mesh action" msgid "Smooth" msgstr "Сгладить" @@ -5915,7 +5843,6 @@ msgstr "Избегать зону калибровки экструзии" msgid "Align to Y axis" msgstr "Выравнивать по оси Y" -# AI Translated msgctxt "Camera View" msgid "Front" msgstr "Спереди" @@ -5924,13 +5851,11 @@ msgctxt "Camera View" msgid "Back" msgstr "Сзади" -# AI Translated #. TRN To be shown in the main menu View->Top msgctxt "Camera View" msgid "Top" msgstr "Сверху" -# AI Translated #. TRN To be shown in the main menu View->Bottom msgctxt "Camera View" msgid "Bottom" @@ -6003,7 +5928,7 @@ msgstr "Назад" # 2026). Похоже, это внутреннее название кнопки с панелью управления визуалом # пространства моделей. msgid "Canvas Toolbar" -msgstr "Панель инструментов холста" +msgstr "Панель инструментов рабочей области" # Тут баг с переносом строк, каждое слово переносится. Чем короче – тем лучше. msgid "Fit camera to scene or selected object." @@ -6134,7 +6059,7 @@ msgid "PLA and PETG filaments detected in the mixture. Adjust parameters accordi msgstr "Обнаружено совместное использование PLA и PETG. Для повышения качества рекомендуется настроить печать в соответствии с" msgid "The prime tower extends beyond the plate boundary." -msgstr "Башня очистки выходит за пределы области печати." +msgstr "Черновая башня выходит за пределы области печати." # После строки подставляется кнопка настройки msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings." @@ -6227,15 +6152,16 @@ msgid "" "You can find it in \"Settings > Network > Access code\"\n" "on the printer, as shown in the figure:" msgstr "" -"Вы можете найти его на принтере в разделе \n" -"Настройки > Сеть > Код подключения, как показано на рисунке:" +"Его можно найти на принтере в разделе\n" +"«Настройки» > «Сеть» > «Код подключения», как показано на рисунке:" msgid "" "You can find it in \"Setting > Setting > LAN only > Access Code\"\n" "on the printer, as shown in the figure:" msgstr "" -"Вы можете найти его в «Настройки > Настройки > Только LAN > Код доступа»\n" -"на принтере, как показано на рисунке:" +"Его можно найти на принтере в разделе\n" +"«Настройки» > «Настройки» > «Только LAN» > «Код доступа»,\n" +"как показано на рисунке:" msgid "Invalid input" msgstr "Неверный ввод" @@ -6279,7 +6205,7 @@ msgid "No" msgstr "Нет" msgid "will be closed before creating a new model. Do you want to continue?" -msgstr "будет закрыт перед созданием новой модели. Продолжить?" +msgstr "будет закрыт перед созданием нового проекта. Продолжить?" # Возможно, имеет смысл убрать тут "стол". Подавляющее большинство проектов – # это размещение моделей и их печать на одном столе, поэтому намёк на работу с @@ -6368,7 +6294,6 @@ msgstr "Вид снизу" msgid "Front View" msgstr "Вид спереди" -# AI Translated msgctxt "Camera View" msgid "Rear" msgstr "Сзади" @@ -6585,7 +6510,6 @@ msgstr "Отображение контура вокруг выбранных м msgid "Preferences" msgstr "Настройки" -# AI Translated msgctxt "Menu" msgid "Edit" msgstr "Правка" @@ -7005,7 +6929,7 @@ msgstr "" "Если накопитель не определяется, попробуйте отформатировать его." msgid "The firmware version of the printer is too low. Please update the firmware and try again." -msgstr "Версия прошивки принтера слишком старая. Пожалуйста, обновите прошивку и попробуйте снова." +msgstr "Слишком старая версия прошивки принтера. Пожалуйста, обновите прошивку и попробуйте снова." msgid "The file already exists, do you want to replace it?" msgstr "Файл уже существует, заменить?" @@ -7213,7 +7137,6 @@ msgstr "Настройки печати" msgid "Safety Options" msgstr "Настройки защиты" -# AI Translated msgid "Hotends" msgstr "Хотэнды" @@ -7250,11 +7173,9 @@ msgstr "Во время паузы смена материала поддерж msgid "Current extruder is busy changing filament." msgstr "В экструдере производится смена материала." -# AI Translated msgid "\"Load\" or \"Unload\" is not supported for external spool while using Filament Track Switch." msgstr "«Загрузка» и «Выгрузка» не поддерживаются для внешней катушки при использовании Filament Track Switch." -# AI Translated msgid "The Filament Track Switch has not been setup. Please setup on printer." msgstr "Filament Track Switch не настроен. Выполните настройку на принтере." @@ -7264,10 +7185,9 @@ msgstr "Слот уже занят." msgid "The selected slot is empty." msgstr "Выбранный слот пуст." -# Так и не нашёл, что это за 2D-режим такой. Выводится в пояснении к -# отключённой функции. +# Так и не нашёл, что это за 2D-режим такой. Выводится в пояснении к отключённой кнопке калибровки. Вероятно, блокировка калибровок печати у H2D при работе с лазерной (и не только) резкой msgid "Printer 2D mode does not support 3D calibration" -msgstr "2D-режим принтера не поддерживает 3D-калибровку" +msgstr "3D-калиброка недоступна в 2D-режиме" msgid "Downloading..." msgstr "Загрузка..." @@ -7294,7 +7214,7 @@ msgid "Chamber temperature cannot be changed in cooling mode while printing." msgstr "Температуру камеры нельзя изменить при печати в режиме «Охлаждение»." msgid "If the chamber temperature exceeds 40℃, the system will automatically switch to heating mode. Please confirm whether to switch." -msgstr "Если температура камеры превысит 40℃, система автоматически переключится в режим нагрева. Подтвердите переключение." +msgstr "Если температура камеры превышает 40℃, система автоматически переключится в режим нагрева. Подтвердите переключение." msgid "Please select an AMS slot before calibration" msgstr "Пожалуйста, выберите слот AMS перед калибровкой" @@ -7436,6 +7356,7 @@ msgctxt "Firmware" msgid "Update" msgstr "Обновление" +# https://wiki.bambulab.com/ru/hms/home msgid "Assistant(HMS)" msgstr "Помощник (HMS)" @@ -7649,7 +7570,7 @@ msgid "Serious warning:" msgstr "Серьёзное предупреждение:" msgid " (Repair)" -msgstr " (Восстановить)" +msgstr "(Восстановить)" msgid " Click here to install it." msgstr " Нажмите здесь, чтобы установить." @@ -7697,33 +7618,27 @@ msgctxt "Layers" msgid "Bottom" msgstr "Снизу" -# AI Translated msgid "Plugin Selection" -msgstr "Выбор плагина" +msgstr "Выбор плагинов" -# AI Translated msgid "" "No plugins capabilities available for this type.\n" "Enable or install some to use." msgstr "" -"Для этого типа нет доступных возможностей плагинов.\n" +"Плагины с требуемым функционалом отсутствуют для этого типа.\n" "Включите или установите их для использования." -# AI Translated msgid "There is stringing-prone filament in the current print job. Enabling nozzle clumping detection now may degrade print quality. Are you sure you want to enable it?" -msgstr "В текущем задании печати есть материал, склонный к образованию волос. Включение обнаружения налипания на сопло сейчас может ухудшить качество печати. Вы уверены, что хотите включить его?" +msgstr "В текущем проекте есть материал, склонный к образованию паутины. Работа проверки налипаний на сопле сейчас может ухудшить качество печати. Вы действительно хотите включить её?" -# AI Translated msgid "Enable Nozzle Clumping Detection" msgstr "Включить обнаружение налипания на сопло" -# AI Translated msgid "When enabled, the printer will automatically capture photos of printed parts and upload them to the cloud. Would you like to enable this option?" -msgstr "Когда включено, принтер будет автоматически делать фотографии печатаемых деталей и загружать их в облако. Хотите включить эту опцию?" +msgstr "Принтер будет автоматически делать фотографии печатаемых деталей и загружать их в облако. Включить эту настройку?" -# AI Translated msgid "Confirm Enable Print Status Snapshot" -msgstr "Подтвердите включение снимков состояния печати" +msgstr "Подтверждение активации снимков состояния печати" msgid "Enable detection of build plate position" msgstr "Определение положения покрытия" @@ -7737,28 +7652,23 @@ msgstr "Обнаружение покрытия стола" msgid "Identifies the type and position of the build plate on the heatbed. Pausing printing if a mismatch is detected." msgstr "Определение типа и положения покрытия стола. В случае обнаружения смещения печать приостанавливается." -# AI Translated msgid "Purifies the chamber air as the print finishes, based on the selected mode." msgstr "Очищает воздух в камере по завершении печати в соответствии с выбранным режимом." -# AI Translated msgid "Purifies the chamber air through internal circulation as each print finishes." msgstr "Очищает воздух в камере за счёт внутренней циркуляции по завершении каждой печати." -# AI Translated msgid "Automatically match the corresponding switch strategy for leak-prone filaments (disable blob detection) and regular filaments (enable blob detection)." -msgstr "Автоматически подбирает соответствующую стратегию переключения для склонных к вытеканию материалов (отключает обнаружение налипаний) и обычных материалов (включает обнаружение налипаний)." +msgstr "Автоматически подбирает соответствующую стратегию для склонных к подтёкам материалов (отключает обнаружение налипаний) и обычных материалов (включает обнаружение налипаний)." -# AI Translated msgid "Detect whether the nozzle is wrapped by filament or other foreign matter." -msgstr "Определяет, обмотано ли сопло материалом или иными посторонними частицами." +msgstr "Определяет налипший на сопло пластик или иные объекты." -# AI Translated msgid "After disabling, nozzle wrapping cannot be detected, which may lead to print failure or nozzle damage." -msgstr "После отключения обмотку сопла нельзя будет обнаружить, что может привести к сбою печати или повреждению сопла." +msgstr "После отключения налипший пластик на сопле нельзя будет обнаружить, что может привести к сбою печати или повреждению сопла." msgid "AI Detections" -msgstr "ИИ-обнаружение" +msgstr "ИИ-мониторинг" msgid "Printer will send assistant message or pause printing if any of the following problem is detected." msgstr "Принтер отправит сообщение помощника или приостановит печать, если обнаружит одну из следующих проблем." @@ -7770,27 +7680,27 @@ msgstr "Контроль печати с помощью ИИ" msgid "Pausing Sensitivity:" msgstr "Чувствительность:" +# Печать воздухом/в воздухе – другой частный случай при перехлёсте прутка или заторе msgid "Spaghetti Detection" -msgstr "Обнаружение «спагетти»" +msgstr "Обнаружение слетевших моделей" msgid "Detect spaghetti failures (scattered lose filament)." -msgstr "Обнаружение дефектов типа «спагетти» (разбросанная нить)." +msgstr "Обнаружение «спагетти» при печати в воздухе." msgid "Purge Chute Pile-Up Detection" -msgstr "Обнаружение скопления в лотке очистки" +msgstr "Обнаружение заполнения лотка прочистки" msgid "Monitor if the waste is piled up in the purge chute." -msgstr "Контроль скопления отходов в лотке очистки." +msgstr "Контроль скопления отходов в лотке прочистки." -# ???протечки, засорения msgid "Nozzle Clumping Detection" msgstr "Обнаружение пластика на сопле" msgid "Check if the nozzle is clumping by filaments or other foreign objects." -msgstr "Определение налипшего на сопле пластика или иных объектов." +msgstr "Определение налипшего на сопло пластика или иных объектов." msgid "Detects air printing caused by nozzle clogging or filament grinding." -msgstr "Определение холостой печати из-за затора или перетирания прутка." +msgstr "Определение холостой печати из-за затора или перехлёста/перетирания прутка." msgid "First Layer Inspection" msgstr "Проверка первого слоя" @@ -7801,9 +7711,8 @@ msgstr "Автовосстановление после смещения сло msgid "Store Sent Files on External Storage" msgstr "Сохранять файлы печати на внешнем накопителе" -# AI Translated msgid "Save the printing files sent from the slicer and other apps on External Storage" -msgstr "Сохранять файлы печати, отправленные из слайсера и других приложений, на внешнем накопителе" +msgstr "Сохранять на внешнем накопителе файлы печати, отправленные из слайсера и других приложений" msgid "Allow Prompt Sound" msgstr "Разрешить звуковые уведомления" @@ -7814,41 +7723,32 @@ msgstr "Обнаружение запутывания прутка" msgid "Check if the nozzle is clumping by filament or other foreign objects." msgstr "Обнаружение скапливания на сопле материала в результате засорения/протечки сопла или других причин." -# AI Translated msgid "Purify Air at Print End" msgstr "Очищать воздух по завершении печати" -# AI Translated msgid "Internal Circulation" msgstr "Внутренняя циркуляция" -# AI Translated msgid "Alignment Detection" msgstr "Обнаружение смещения" -# AI Translated msgid "Pauses printing when build plate misalignment is detected." msgstr "Приостанавливает печать при обнаружении смещения стола." -# AI Translated msgid "Foreign Object Detection" msgstr "Обнаружение посторонних предметов" -# AI Translated msgid "Checks for any objects on the build plate at the start of a print to avoid collisions." msgstr "Проверяет наличие любых предметов на столе в начале печати во избежание столкновений." -# AI Translated msgid "Printed Part Displacement Detection" msgstr "Обнаружение смещения печатаемой детали" -# AI Translated msgid "Monitors the printed part during printing and alerts immediately if it shifts or collapses." -msgstr "Отслеживает печатаемую деталь во время печати и немедленно предупреждает, если она сместилась или обрушилась." +msgstr "Отслеживает положение детали во время печати и немедленно предупреждает, если она сместилась или обрушилась." -# AI Translated msgid "Checks if the nozzle is clumping by filament or other foreign objects." -msgstr "Проверяет, не залипло ли сопло материалом или иными посторонними предметами." +msgstr "Проверяет присутствие пластика или инородных объектов на сопле." msgid "On" msgstr "Вкл" @@ -7862,13 +7762,11 @@ msgstr "Уведомление" msgid "Pause printing" msgstr "Пауза печати" -# AI Translated msgid "Print Status Snapshot" msgstr "Снимок состояния печати" -# AI Translated msgid "Automatically capture and upload print photos, showing defects during printing and the final result for remote viewing." -msgstr "Автоматически делает и загружает фотографии печати, показывая дефекты во время печати и итоговый результат для удалённого просмотра." +msgstr "Автоматически снимает и загружает в облако фотографии печати, показывая дефекты во время печати и итоговый результат для удалённого просмотра." msgctxt "Nozzle Type" msgid "Type" @@ -7883,7 +7781,7 @@ msgid "Flow" msgstr "Расход" msgid "Please change the nozzle settings on the printer." -msgstr "Пожалуйста, измените настройки сопла на принтере." +msgstr "Измените настройки сопла на принтере." msgid "Brass" msgstr "Латунь" @@ -7891,7 +7789,6 @@ msgstr "Латунь" msgid "High flow" msgstr "Высокий расход" -# AI Translated msgid "TPU High flow" msgstr "TPU High flow" @@ -7914,9 +7811,8 @@ msgstr "Общие" msgid "Objects" msgstr "Модели" -# AI Translated msgid "Cycle settings visibility" -msgstr "Переключать видимость настроек" +msgstr "Переключить видимость настроек" msgid "Compare presets" msgstr "Сравнить профили" @@ -8029,11 +7925,9 @@ msgstr "Переключение диаметра" msgid "Configuration incompatible" msgstr "Несовместимый профиль" -# AI Translated msgid "Filament switcher detected. All AMS filaments are now available for both extruders. The slicer will auto-assign for optimal printing." -msgstr "Обнаружен переключатель материалов. Все материалы AMS теперь доступны для обоих экструдеров. Слайсер автоматически распределит их для оптимальной печати." +msgstr "Обнаружен переключатель материалов. Все материалы из AMS теперь доступны для обоих экструдеров. Слайсер автоматически распределит их для оптимальной печати." -# AI Translated msgid "A filament switcher is detected but not calibrated and thus currently unavailable. Please calibrate it on the printer and synchronize before use." msgstr "Обнаружен переключатель материалов, но он не откалиброван и потому сейчас недоступен. Откалибруйте его на принтере и синхронизируйте перед использованием." @@ -8048,12 +7942,13 @@ msgid "" "The currently selected machine preset is inconsistent with the connected printer type.\n" "Are you sure to continue syncing?" msgstr "" -"Текущий выбранный профиль принтера не соответствует типу подключённого принтера.\n" +"Выбранный профиль принтера не соответствует типу подключённого принтера.\n" "Продолжить синхронизацию?" msgid "There are unset nozzle types. Please set the nozzle types of all extruders before synchronizing." msgstr "Типы сопел не заданы. Перед синхронизацией необходимо указать типы всех установленных сопел." +# О сопле/соплах? msgid "Sync extruder infomation" msgstr "Синхронизировать информацию об экструдере" @@ -8067,12 +7962,11 @@ msgid "Click to edit preset" msgstr "Изменить профиль" msgid "Nozzle" -msgstr "Экструдер" +msgstr "Сопло" msgid "Project Filaments" msgstr "Материалы проекта" -# AI Translated msgid "Purge mode" msgstr "Режим прочистки" @@ -8097,9 +7991,10 @@ msgstr "Поиск стола, модели или части..." msgid "Pellets" msgstr "Гранулы" +# Порядок слов сильно зависит от контекста; не могу воспроизвести в интерфейсе. По идее, выводится при bool Sidebar::is_new_project_in_gcode3mf(), но что-либо менять в нарезанном .gcode.3mf вообще нельзя #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." -msgstr "После завершения операции проект %s будет закрыт и создан новый проект." +msgstr "После завершения операции и закрытия текущего проекта %s будет создан новый проект." msgid "There are no compatible filaments, and sync is not performed." msgstr "Синхронизация не выполнена ввиду отсутствия совместимых материалов." @@ -8116,7 +8011,7 @@ msgid "Only filament color information has been synchronized from printer." msgstr "Синхронизирована только информация о цвете материала." msgid "Filament type and color information have been synchronized, but slot information is not included." -msgstr "Информация о типе и цвете филамента синхронизирована, но информация о слотах не включена." +msgstr "Синхронизирована информация о типе и цвете материала, но не о слотах." #, boost-format msgid "Do you want to save changes to \"%1%\"?" @@ -8351,22 +8246,18 @@ msgstr "" "Это действие приведёт к удалению информации о разрезе.\n" "Целостность модели после этого не гарантируется." -# AI Translated msgid "Delete Object" msgstr "Удалить модель" -# AI Translated msgid "Delete All Objects" msgstr "Удалить все модели" -# AI Translated msgid "Reset Project" msgstr "Сбросить проект" msgid "The selected object couldn't be split." msgstr "Невозможно разделить выбранную модель." -# AI Translated msgid "Split to Objects" msgstr "Разделить на модели" @@ -8395,9 +8286,8 @@ msgstr "Выбор нового файла" msgid "File for the replacement wasn't selected" msgstr "Файл для замены не выбран" -# AI Translated msgid "Replace with 3D file" -msgstr "Заменить 3D-файлом" +msgstr "Замена файла модели" # В заголовке окна выбора папки и ошибки "папка не найдена" msgid "Select folder to replace from" @@ -8409,21 +8299,21 @@ msgstr "Расположение для замены не указано" msgid "Replaced with 3D files from directory:\n" msgstr "Заменено файлами из расположения:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Пропущен %1%: идентичный файл.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Пропущен %s: идентичный файл.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Пропущен %1%: файл не существует.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Пропущен %s: файл не существует.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Пропущен %1%: не удалось заменить.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Пропущен %s: не удалось заменить.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Заменён %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Заменён %s.\n" msgid "Replaced volumes" msgstr "Модели заменены" @@ -8446,7 +8336,6 @@ msgstr "Не удалось перезагрузить:" msgid "Error during reload" msgstr "Ошибка во время перезагрузки" -# AI Translated msgid "Reload all" msgstr "Перезагрузить всё" @@ -8493,9 +8382,9 @@ msgid "" "After syncing, software can optimize printing time and filament usage when slicing.\n" "Would you like to sync now?" msgstr "" -"Информация о типе сопла и количестве AMS не синхронизирована с подключённого принтера.\n" -"После синхронизации программа сможет оптимизировать время печати и расход филамента при нарезке.\n" -"Хотите синхронизировать сейчас?" +"Синхронизация информации о типе сопла и количестве AMS подключённого принтера не выполнена.\n" +"После синхронизации программа сможет оптимизировать время печати и расход материала при нарезке.\n" +"Выполнить синхронизацию?" msgid "Sync now" msgstr "Синхронизировать" @@ -8545,10 +8434,10 @@ msgid "INFO:" msgstr "Информация:" msgid "No accelerations provided for calibration. Use default acceleration value " -msgstr "Не заданы ускорения для калибровки. Использовать значение ускорения по умолчанию " +msgstr "Не заданы ускорения для калибровки. Используется значение по умолчанию: " msgid "No speeds provided for calibration. Use default optimal speed " -msgstr "Не заданы скорости для калибровки. Использовать оптимальную скорость по умолчанию " +msgstr "Не заданы скорости для калибровки. Используется значение по умолчанию: " msgid "Import SLA archive" msgstr "Импорт SLA архива" @@ -8660,17 +8549,15 @@ msgstr "Причина: «%1%» не имеет пересечений с дру msgid "Unable to perform boolean operation on model meshes. Only positive parts will be exported." msgstr "Невозможно выполнить булеву операцию над сетками модели. Будут экспортированы только положительные части." -# AI Translated msgid "Flashforge host is not available." msgstr "Хост Flashforge недоступен." # Авторизация принтера Flashforge не удалась. -# AI Translated msgid "Unable to log in to the Flashforge printer." -msgstr "Не удалось войти в принтер Flashforge." +msgstr "Не удалось авторизоваться в панели управления Flashforge." msgid "Is the printer ready? Is the print sheet in place, empty and clean?" -msgstr "Готов ли Принтер? Печатная пластина на месте, пустая и чистая?" +msgstr "Готов ли принтер? Проверьте установку и состояние покрытия стола." msgid "Upload and Print" msgstr "Загрузить и напечатать" @@ -8725,47 +8612,36 @@ msgstr "«Принтер»" msgid "Synchronize AMS Filament Information" msgstr "Синхронизировать материалы в AMS" -# AI Translated msgid "OrcaCloud plugins required by the current preset are not installed:" -msgstr "Плагины OrcaCloud, необходимые для текущего профиля, не установлены:" +msgstr "Для текущего профиля требуется установка плагинов OrcaCloud:" -# AI Translated msgid "Install Plugins" msgstr "Установить плагины" -# AI Translated msgid "Local plugins required by the current preset are missing:" -msgstr "Отсутствуют локальные плагины, необходимые для текущего профиля:" +msgstr "Для текущего профиля требуются локальные плагины:" -# AI Translated msgid "Find on OrcaCloud" msgstr "Найти в OrcaCloud" -# AI Translated msgid "Plugins required by the current preset are not activated:" -msgstr "Плагины, необходимые для текущего профиля, не активированы:" +msgstr "Для текущего профиля требуются неактивные плагины:" -# AI Translated msgid "Activate Now" -msgstr "Активировать сейчас" +msgstr "Активировать" -# AI Translated msgid "The installed plugin does not provide the required capability — it may be outdated:" -msgstr "Установленный плагин не предоставляет требуемую возможность — возможно, он устарел:" +msgstr "В установленном плагине отсутствует нужный функционал (устаревшая версия?):" -# AI Translated msgid "Preparing to install plugins..." msgstr "Подготовка к установке плагинов..." -# AI Translated msgid "Installing plugins" msgstr "Установка плагинов" -# AI Translated msgid "Cancelling — finishing the current plugin..." msgstr "Отмена — завершение текущего плагина..." -# AI Translated #, boost-format msgid "Installing %1%..." msgstr "Установка %1%..." @@ -8809,9 +8685,8 @@ msgstr "Объём: %1% мм³\n" msgid "Triangles: %1%\n" msgstr "Треугольников: %1%\n" -# AI Translated msgid "Use \"Fix Model\" to repair the mesh." -msgstr "Используйте «Исправить модель» для восстановления сетки." +msgstr "Используйте «Восстановить» для исправления сетки. " #, c-format, boost-format msgid "Plate %d: %s is not suggested for use printing filament %s (%s). If you still want to do this print job, please set this filament's bed temperature to a number that is not zero." @@ -9163,7 +9038,7 @@ msgstr "Если включено, вы сможете управлять нес # Запрашивать выбор режима группировки? msgid "Pop up to select filament grouping mode" -msgstr "Всплывающее окно для выбора режима группировки филаментов" +msgstr "Всплывающее окно для выбора режима группировки материалов" msgid "Behaviour" msgstr "Автоматизация" @@ -9286,15 +9161,14 @@ msgstr "Графика" msgid "Smooth normals" msgstr "Сглаживание бликов" -# AI Translated msgid "" "Applies smooth normals to the model.\n" "\n" "Requires manual scene reload to take effect (right-click on 3D view → \"Reload All\")." msgstr "" -"Применяет сглаженные нормали к модели.\n" +"Применять сглаживание нормалей моделей.\n" "\n" -"Для вступления в силу требуется ручная перезагрузка сцены (правый клик в 3D-виде → «Перезагрузить всё»)." +"Для применения изменений требуется ручная перезагрузка сцены (контекстное меню стола → «Перезагрузить всё»)." msgid "Phong shading" msgstr "Затенение по Фонгу" @@ -9311,9 +9185,9 @@ msgstr "Применять фоновое затенение в простран msgid "Shadows" msgstr "Тени" -# AI Translated +# Опять переусложнили техническим нюансом. Изначально тени рисовались только на столе, потом это исправили и решили отметить здесь. msgid "Renders cast shadows on the plate, other objects, and each object onto itself in realistic view." -msgstr "Отображает отбрасываемые тени на столе, других моделях и на самой модели в режиме продвинутой графики." +msgstr "Отрисовывать тени в режиме продвинутой графики." msgid "Anti-aliasing" msgstr "Сглаживание" @@ -9375,17 +9249,28 @@ msgstr "Отображать частоту кадров" msgid "Displays current viewport FPS in the top-right corner." msgstr "Выводить частоту кадров рабочего пространства в правом верхнем углу." -# AI Translated msgid "G-code Preview" -msgstr "Предпросмотр G-code" +msgstr "Просмотр нарезки" -# AI Translated msgid "Dim lower layers" -msgstr "Затемнять нижние слои" +msgstr "Затемнять предыдущие слои" -# AI Translated msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." -msgstr "При перемещении ползунка слоёв в предпросмотре нарезки слои ниже текущего отображаются затемнёнными, так что на полной яркости показан только просматриваемый слой." +msgstr "Затемнять слои, находящиеся ниже текущего. Просматриваемый слой отображается на полной яркости." + +msgid "Dimmed layer brightness" +msgstr "Яркость затемнённых слоёв" + +msgid "%" +msgstr "%" + +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Процент яркости предыдущих слоёв при включении их затемнения.\n" +"99% — почти полная яркость.\n" +"0% — полное затенение." msgid "Login region" msgstr "Регион входа" @@ -9620,7 +9505,6 @@ msgstr "Несовместимые профили" msgid "My Printer" msgstr "Мой принтер" -# AI Translated msgid "AMS filaments" msgstr "Материалы AMS" @@ -9631,7 +9515,7 @@ msgid "AMS filament" msgstr "Материал AMS" msgid "Right filaments" -msgstr "Филаменты правого экструдера" +msgstr "Материалы правого экструдера" msgid "Click to select filament color" msgstr "Изменить цвет" @@ -9642,7 +9526,6 @@ msgstr "Добавить/удалить профиль" msgid "Edit preset" msgstr "Изменить профиль" -# AI Translated msgid "Change extruder color" msgstr "Изменить цвет экструдера" @@ -9686,10 +9569,9 @@ msgstr "Несовместимы" msgid "The selected preset is null!" msgstr "Выбранный профиль пуст!" -# AI Translated msgctxt "Layer range" msgid "End" -msgstr "до конца" +msgstr "конца" msgid "Customize" msgstr "Настроить" @@ -9799,10 +9681,12 @@ msgstr "Профиль «%1%» уже существует." #, boost-format msgid "Preset \"%1%\" already exists and is incompatible with the current printer." -msgstr "Профиль «%1%» уже существует и несовместим с текущим принтером." +msgstr "" +"Профиль «%1%» уже существует и\n" +"несовместим с текущим принтером." msgid "Please note that saving will overwrite the current preset." -msgstr "Обратите внимание, что при сохранении произойдёт перезапись текущего профиля." +msgstr "Обратите внимание: при сохранении произойдёт\nперезапись текущего профиля." msgid "The name cannot be the same as a preset alias name." msgstr "Имя не должно совпадать с именем предустановленного профиля." @@ -9864,8 +9748,9 @@ msgstr "Отправка задания на печать" msgid "Not satisfied with the grouping of filaments? Regroup and slice ->" msgstr "Не нравится текущая группировка материалов? Нажмите сюда, чтобы изменить и нарезать заново." +# Подсказка msgid "Manually change external spool during printing for multi-color printing" -msgstr "Ручная смена внешней катушки во время печати для многоцветной печати" +msgstr "Смена внешней катушки вручную во время многоцветной печати" msgid "Multi-color with external" msgstr "Многоцветная печать с внешней катушкой" @@ -9873,23 +9758,23 @@ msgstr "Многоцветная печать с внешней катушкой msgid "Your filament grouping method in the sliced file is not optimal." msgstr "Группировка материалов в файле печати не оптимальна." -# AI Translated msgid "To ensure print quality, the drying temperature will be lowered during printing." -msgstr "Для обеспечения качества печати температура сушки будет снижена во время печати." +msgstr "Температура сушки будет снижена на время печати во избежание проблем с качеством." -# AI Translated msgid "Select timelapse storage location" msgstr "Выберите место хранения таймлапсов" +# Ничего тут не выравнивается, банбуки чисто карту снимают msgid "Auto Bed Leveling" -msgstr "Автоматическое выравнивание стола" +msgstr "Измерение кривизны стола" +# "Пропуск" – это пояснение логики работы режима или призыв к действию? msgid "" "This checks the flatness of heatbed. Leveling makes extruded height uniform.\n" "*Automatic mode: Run a leveling check(about 10 seconds). Skip if surface is fine." msgstr "" -"Проверка ровности нагревательного стола. Выравнивание обеспечивает равномерную высоту экструзии.\n" -"*Автоматический режим: выполнить проверку (около 10 секунд). Пропустить, если поверхность в порядке." +"Снятие карты высот стола. Позволяет обеспечить равномерность высоты слоя.\n" +"*Автоматический режим: выполнить проверку (около 10 секунд). Пропуск, если поверхность в порядке." msgid "Flow Dynamics Calibration" msgstr "Калибровка динамики потока" @@ -9898,24 +9783,22 @@ msgid "" "This process determines the dynamic flow values to improve overall print quality.\n" "*Automatic mode: Skip if the filament was calibrated recently." msgstr "" -"Этот процесс определяет значения динамического потока для улучшения общего качества печати.\n" -"*Автоматический режим: пропустить, если филамент был откалиброван недавно." +"Анализ инертности системы подачи материала для улучшения общего качества печати.\n" +"*Автоматический режим: пропуск, если материал был недавно откалиброван." msgid "Nozzle Offset Calibration" -msgstr "Калибровка смещения сопла" +msgstr "Калибровка смещения сопел" msgid "" "Calibrate nozzle offsets to enhance print quality.\n" "*Automatic mode: Check for calibration before printing. Skip if unnecessary." msgstr "" -"Калибровка смещений сопел для улучшения качества печати.\n" -"*Автоматический режим: проверять калибровку перед печатью. Пропустить, если не требуется." +"Калибровка смещения сопел для улучшения качества печати.\n" +"*Автоматический режим: выполнять калибровку перед печатью по необходимости." -# AI Translated msgid "Shared PA Profile" msgstr "Общий профиль PA" -# AI Translated msgid "Nozzles and filaments of the same type share the same PA profile." msgstr "Сопла и материалы одного типа используют общий профиль PA." @@ -9931,50 +9814,40 @@ msgstr "Описание ошибки" msgid "Extra info" msgstr "Доп. информация" -# AI Translated msgid "The Filament Track Switch installed on the printer does not match the slicing file. Please re-slice to avoid print quality issues." -msgstr "Filament Track Switch, установленный на принтере, не соответствует файлу нарезки. Выполните повторную нарезку во избежание проблем с качеством печати." +msgstr "Filament Track Switch в принтере не соответствует файлу нарезки. Выполните повторную нарезку во избежание проблем с качеством печати." -# AI Translated msgid "This print requires a Filament Track Switch. Please install it first." -msgstr "Для этой печати требуется Filament Track Switch. Сначала установите его." +msgstr "Для печати этого файла требуется Filament Track Switch. Сначала установите его." -# AI Translated msgid "The Filament Track Switch has not been setup. Please setup it first." msgstr "Filament Track Switch не настроен. Сначала выполните его настройку." -# AI Translated #, c-format, boost-format msgid "Failed to send nozzle auto-mapping request to printer { code: %d }. Please try to refresh the printer information. If it still does not recover, you can try to rebind the printer and check the network connection." -msgstr "Не удалось отправить запрос на авто-сопоставление сопел принтеру { code: %d }. Попробуйте обновить информацию о принтере. Если это не помогает, попробуйте перепривязать принтер и проверить сетевое соединение." +msgstr "Не удалось отправить принтеру запрос на сопоставление сопел { код: %d }. Попробуйте обновить информацию о принтере. Если это не помогает, попробуйте проверить соединение и перепривязать принтер." -# AI Translated msgid "The printer is calculating nozzle mapping." -msgstr "Принтер вычисляет сопоставление сопел." +msgstr "Принтер выполняет сопоставление сопел." -# AI Translated msgid "Please wait a moment..." msgstr "Пожалуйста, подождите..." -# AI Translated #, c-format, boost-format msgid "Failed to receive nozzle auto-mapping table from printer { msg: %s }. Please refresh the printer information." -msgstr "Не удалось получить таблицу авто-сопоставления сопел от принтера { msg: %s }. Обновите информацию о принтере." +msgstr "Не удалось получить от принтера таблицу сопоставления сопел { ответ: %s }. Обновите информацию о принтере." -# AI Translated #, c-format, boost-format msgid "The printer failed to build the nozzle auto-mapping table { code: %d }. Please refresh nozzle information." -msgstr "Принтеру не удалось построить таблицу авто-сопоставления сопел { code: %d }. Обновите информацию о соплах." +msgstr "Принтеру не удалось составить таблицу сопоставления сопел { код: %d }. Обновите информацию о соплах." -# AI Translated #, c-format, boost-format msgid "The current nozzle mapping may produce an extra %0.2f g of waste." -msgstr "Текущее сопоставление сопел может привести к дополнительным %0.2f г отходов." +msgstr "Текущее сопоставление сопел может привести к дополнительным затратам %0.2fг материала." -# AI Translated #, c-format, boost-format msgid "Recommended filament arrangement saves %s->" -msgstr "Рекомендуемое расположение материалов экономит %s->" +msgstr "Рекомендуемое расположение материалов экономит %s→" #, c-format, boost-format msgid "Filament %s does not match the filament in AMS slot %s. Please update the printer firmware to support AMS slot assignment." @@ -9993,18 +9866,17 @@ msgstr "При включении режима вазы принтеры с ки msgid "The current printer does not support timelapse in Traditional Mode when printing By-Object." msgstr "Принтер не поддерживает таймлапс в режиме по умолчанию при печати моделей по очереди." -# AI Translated msgid "I have checked the installed nozzle and want to print anyway." -msgstr "Я проверил установленное сопло и всё равно хочу печатать." +msgstr "Установленное сопло проверено, продолжить в любом случае." msgid "Errors" msgstr "Ошибок" msgid "More than one filament types have been mapped to the same external spool, which may cause printing issues. The printer won't pause during printing." -msgstr "Несколько типов филамента назначены на одну внешнюю катушку, что может вызвать проблемы при печати. Принтер не будет приостанавливаться во время печати." +msgstr "На одну внешнюю катушку назначено несколько типов материала, что может вызвать проблемы при печати. Принтер не будет приостанавливаться во время печати." msgid "The filament type setting of external spool is different from the filament in the slicing file." -msgstr "Тип филамента на внешней катушке отличается от филамента в файле нарезки." +msgstr "Тип материала на внешней катушке отличается от материала в файле нарезки." msgid "The printer type selected when generating G-code is not consistent with the currently selected printer. It is recommended that you use the same printer type for slicing." msgstr "Выбранный профиль принтера в настройках слайсера не совпадает с фактическим принтером. Для нарезки рекомендуется использовать тот же профиль принтера." @@ -10022,48 +9894,40 @@ msgid "Please click the confirm button if you still want to proceed with printin msgstr "Нажмите кнопку подтверждения, если всё ещё хотите продолжить печать." msgid "This checks the flatness of heatbed. Leveling makes extruded height uniform." -msgstr "Проверка ровности нагревательного стола. Выравнивание обеспечивает равномерную высоту экструзии." +msgstr "Проверка кривизны стола. Обеспечивает равномерную высоту слоя." msgid "This process determines the dynamic flow values to improve overall print quality." -msgstr "Этот процесс определяет значения динамического потока для улучшения общего качества печати." +msgstr "Определение коэффициента динамического потока для улучшения общего качества печати." msgid "Internal" msgstr "Внутренние" -# AI Translated +# Подставляется storage_name #, c-format, boost-format msgid "%s space less than 20MB. Timelapse may not save properly. You can turn it off or" -msgstr "%s: свободного места меньше 20 МБ. Таймлапс может сохраниться некорректно. Вы можете отключить его или" +msgstr "%s: свободного места меньше 20 МБ. Таймлапс может сохраниться некорректно. Рекомендуется отключить его или " -# AI Translated msgid "Clean up files" -msgstr "Очистить файлы" +msgstr "очистить файлы" -# AI Translated msgid "Low internal storage. This timelapse will overwrite the oldest video files." msgstr "Мало внутренней памяти. Этот таймлапс перезапишет самые старые видеофайлы." -# AI Translated msgid "Low external storage. This timelapse will overwrite the oldest video files." msgstr "Мало внешней памяти. Этот таймлапс перезапишет самые старые видеофайлы." -# AI Translated msgid "Insufficient external storage for time-lapse photography. Connect to computer to delete files, or use a larger memory card." msgstr "Недостаточно внешней памяти для съёмки таймлапса. Подключитесь к компьютеру для удаления файлов или используйте карту памяти большего объёма." -# AI Translated msgid "Storage Space Not Enough" msgstr "Недостаточно места в хранилище" -# AI Translated msgid "Confirm & Print" -msgstr "Подтвердить и печатать" +msgstr "Подтвердить и продолжить" -# AI Translated msgid "Cancel Timelapse & Print" -msgstr "Отменить таймлапс и печатать" +msgstr "Отключить таймлапс и продолжить" -# AI Translated msgid "Clean Up" msgstr "Очистить" @@ -10081,47 +9945,38 @@ msgstr "Будет затрачено на %d г материала и на %d msgid "nozzle" msgstr "сопло" -# AI Translated #, c-format, boost-format msgid "Refreshing information of hotends(%d/%d)." msgstr "Обновление информации о хотэндах (%d/%d)." -# AI Translated msgid "There are not enough available hotends currently." -msgstr "Сейчас недостаточно доступных хотэндов." +msgstr "Доступных хотэндов сейчас недостаточно." -# AI Translated msgid "Please complete the hotend rack setup and try again." msgstr "Завершите настройку стойки хотэндов и повторите попытку." -# AI Translated msgid "Please refresh the nozzle information and try again." msgstr "Обновите информацию о соплах и повторите попытку." -# AI Translated msgid "Please re-slice to avoid filament waste." -msgstr "Выполните повторную нарезку во избежание расхода материала впустую." +msgstr "Выполните повторную нарезку во избежание излишнего расхода материала." -# AI Translated msgid "The reported hotend information may be unreliable." msgstr "Переданная информация о хотэнде может быть недостоверной." -# AI Translated #, c-format, boost-format msgid "The printer has no nozzle matching the slicing file (%s)." msgstr "На принтере нет сопла, соответствующего файлу нарезки (%s)." -# AI Translated msgid "Please install a matching nozzle in the hotend rack, or set the corresponding printer preset while slicing." msgstr "Установите подходящее сопло в стойку хотэндов или задайте соответствующий профиль принтера при нарезке." -# AI Translated msgid "The toolhead and hotend rack are full. Please remove at least one hotend before printing." -msgstr "Печатающая голова и стойка хотэндов заполнены. Перед печатью снимите хотя бы один хотэнд." +msgstr "Все места в печатающей голове и стойке хотэндов заняты. Перед печатью снимите хотя бы один хотэнд." #, c-format, boost-format msgid "The nozzle flow setting of %s(%s) doesn't match with the slicing file(%s). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset while slicing." -msgstr "Настройка потока сопла %s(%s) не совпадает с файлом нарезки (%s). Убедитесь, что настройки принтера соответствуют установленному соплу, затем выберите соответствующий профиль принтера при нарезке." +msgstr "Настройка расхода сопла %s(%s) не совпадает с файлом нарезки (%s). Убедитесь, что настройки принтера соответствуют установленному соплу, затем выберите соответствующий профиль принтера при нарезке." msgid "Tips: If you changed your nozzle of your printer lately, please go to 'Device -> Printer parts' to change your nozzle setting." msgstr "Совет: после замены сопла в принтере необходимо обновить его настройки («Принтер» → «Части принтера»)." @@ -10139,28 +9994,23 @@ msgstr "обоих экструдерах" #, c-format, boost-format msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). Please verify the nozzle or material settings and try again." -msgstr "Требования к твёрдости у выбранного материала (%s) превышают возможности %s(%s). Проверьте настройки профиля принтера или материала и попробуйте ещё раз." +msgstr "Требования к твёрдости у выбранного материала (%s) превышают возможности %s (%s). Проверьте настройки профиля принтера или материала и попробуйте ещё раз." -# AI Translated msgid "Your current firmware version cannot start this print job. Please update to the latest version and try again." -msgstr "Текущая версия прошивки не может запустить это задание печати. Обновите до последней версии и повторите попытку." +msgstr "Текущая версия прошивки не может обработать этот файл. Обновитесь до последней версии и повторите попытку." -# AI Translated #, c-format, boost-format msgid "The hardness of current material (%s) exceeds the hardness of %s(%s). It may cause nozzle wear, leading to material leakage and unstable flow. Please exercise caution when using it." -msgstr "Твёрдость текущего материала (%s) превышает твёрдость %s(%s). Это может вызвать износ сопла, приводящий к утечке материала и нестабильному потоку. Соблюдайте осторожность при использовании." +msgstr "Требования к твёрдости у выбранного материала (%s) превышают возможности %s (%s). Это может привести к износу сопла и утечкам материала/нестабильному потоку в будущем. Используйте материал с осторожностью." -# AI Translated msgid "Some filaments may switch between extruders during printing. Manual K-value calibration cannot be applied throughout the entire print, which may affect print quality. Enabling Flow Dynamics Calibration is recommended." -msgstr "Некоторые материалы могут переключаться между экструдерами во время печати. Ручную калибровку K-value нельзя применить на протяжении всей печати, что может повлиять на её качество. Рекомендуется включить калибровку динамики потока (Flow Dynamics Calibration)." +msgstr "Некоторые материалы могут переключаться между экструдерами во время печати. Ручная калибровка K-фактора не применима для всей печати, что может повлиять на её качество. Рекомендуется включить калибровку динамики потока (Flow Dynamics Calibration)." -# AI Translated msgid "There is stringing-prone filament in this file. For best print quality, we recommend switching nozzle clumping detection to Auto mode." -msgstr "В этом файле есть материал, склонный к образованию волос. Для наилучшего качества печати рекомендуем переключить обнаружение налипания на сопло в режим «Авто»." +msgstr "В текущем проекте есть материал, склонный к образованию паутины. Во избежание проблем с качеством рекомендуется включить автоматический режим обнаружения налипаний на сопло." -# AI Translated msgid "If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page." -msgstr "Если «Динамическая калибровка потока» установлена в «Авто/Вкл», система будет использовать значение ручной калибровки или значение по умолчанию и пропустит процесс калибровки потока. Вы можете выполнить ручную калибровку потока для материала TPU на странице «Калибровка»." +msgstr "Если «Калибровка динамики потока» установлена в «Авто/Вкл», система будет использовать значение ручной калибровки или значение по умолчанию и пропустит процесс калибровки. Ручную калибровку TPU можно выполнить на странице «Калибровка»." #, c-format, boost-format msgid "[ %s ] requires printing in a high-temperature environment. Please close the door." @@ -10231,16 +10081,16 @@ msgid "The printer is executing instructions. Please restart printing after it e msgstr "Принтер выполняет команды. Перезапустите печать после их завершения." msgid "AMS is setting up. Please try again later." -msgstr "AMS настраивается. Пожалуйста, попробуйте позже." +msgstr "AMS настраивается. Попробуйте позднее." msgid "Not all filaments used in slicing are mapped to the printer. Please check the mapping of filaments." -msgstr "Не все филаменты, использованные при нарезке, назначены на принтер. Проверьте назначение филаментов." +msgstr "Не все материалы, использованные при нарезке, сопоставлены с принтером. Проверьте назначение материалов." msgid "Please do not mix-use the Ext with AMS." -msgstr "Пожалуйста, не используйте одновременно внешнюю катушку и AMS." +msgstr "Не стоит использовать AMS и внешние катушки совместно." msgid "Invalid nozzle information, please refresh or manually set nozzle information." -msgstr "Недопустимая информация о сопле. Обновите или вручную задайте информацию о сопле." +msgstr "Недопустимая информация о сопле. Обновите или задайте её вручную." msgid "Storage needs to be inserted before printing via LAN." msgstr "Перед печатью по локальной сети необходимо вставить хранилище данных." @@ -10267,24 +10117,21 @@ msgid "TPU 90A/TPU 85A is too soft and does not support automatic Flow Dynamics msgstr "TPU 85A/90A слишком мягкий для автоматической калибровки." msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value." -msgstr "Установите калибровку динамического потока в «ВЫКЛ.», чтобы задать пользовательское значение динамического потока." +msgstr "Отключите калибровку динамики потока, чтобы задать пользовательское значение." msgid "This printer does not support printing all plates." msgstr "Принтер не поддерживает печать нескольких столов." -# AI Translated #, c-format, boost-format msgid "The current firmware supports a maximum of %s materials. You can either reduce the number of materials to %s or fewer on the Preparation Page, or try updating the firmware. If you are still restricted after the update, please wait for subsequent firmware support." -msgstr "Текущая прошивка поддерживает не более %s материалов. Вы можете либо уменьшить количество материалов до %s или менее на странице подготовки, либо попробовать обновить прошивку. Если после обновления ограничение сохраняется, дождитесь поддержки в последующих версиях прошивки." +msgstr "Текущая прошивка поддерживает не более %s материалов. Попробуйте обновить прошивку или уменьшить количество материалов до %s (или менее) на странице подготовки. Если после обновления ограничение сохраняется, ожидайте добавления поддержки в последующих версиях." msgid "The type of external filament is unknown or does not match with the filament type in the slicing file. Please make sure you have installed the correct filament in the external spool." msgstr "Тип материала на внешней катушке неизвестен или не соответствует материалу в файле печати. Убедитесь, что установлена внешняя катушка с требуемым материалом." -# AI Translated msgid "TPU 90A/TPU 85A are too soft. It is recommended to perform manual flow calibration on the 'Calibration' page. If 'Dynamic Flow Calibration' is set to auto/on, the system will use the previous calibration value and skip the flow calibration process." -msgstr "TPU 90A/TPU 85A слишком мягкие. Рекомендуется выполнить ручную калибровку потока на странице «Калибровка». Если «Динамическая калибровка потока» установлена в «авто/вкл», система будет использовать предыдущее значение калибровки и пропустит процесс калибровки потока." +msgstr "TPU 90A/TPU 85A слишком мягкий. Рекомендуется выполнить ручную калибровку потока на странице «Калибровка». Если «Калибровка динамики потока» установлена в «Авто/Вкл», система будет использовать предыдущие результаты и пропустит процесс калибровки." -# AI Translated msgid "The filament in the AMS may be insufficient for this print. Please refill or replace it." msgstr "Материала в AMS может быть недостаточно для этой печати. Пополните или замените его." @@ -10456,7 +10303,6 @@ msgstr "Удалить этот профиль" msgid "Search in preset" msgstr "Поиск в профиле" -# AI Translated msgid "Synchronization of different extruder drives or nozzle volume types is not supported." msgstr "Синхронизация разных приводов экструдера или типов объёма сопла не поддерживается." @@ -10466,9 +10312,8 @@ msgstr "Перенести изменения в настройки другог msgid "Click to reset all settings to the last saved preset." msgstr "Сбросить все изменения" -# AI Translated msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?" -msgstr "Для смены сопла требуется черновая башня. Без черновой башни на модели могут появиться дефекты. Вы уверены, что хотите отключить черновую башню?" +msgstr "Для смены сопла требуется черновая башня. Без черновой башни на модели могут появиться дефекты. Вы действительно хотите отключить черновую башню?" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?" msgstr "Для сглаженного таймлапса требуется черновая башня, без неё на модели могут возникнуть дефекты. Вы действительно хотите отключить черновую башню?" @@ -10484,7 +10329,7 @@ msgid "A prime tower is required for clumping detection. There may be flaws on t msgstr "Для обнаружения налипаний на сопле требуется черновая башня, без неё на модели могут образоваться дефекты. Включить обнаружение налипаний?" msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?" -msgstr "Включение «Точной высоты по Z» вместе с черновой башней может привести к ошибкам нарезки. Продолжить?" +msgstr "Включение «Точной высоты по Z» совместно с черновой башней может привести к ошибкам нарезки. Продолжить?" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?" msgstr "Для сглаженного таймлапса требуется черновая башня, без неё на модели могут возникнуть дефекты. Включить черновую башню?" @@ -10696,6 +10541,7 @@ msgstr "Материал поддержки" msgid "Support ironing" msgstr "Разглаживание поддержки" +# Технически точной локализацией было бы "фрактальные поддержки", т.к. сама структура представляет собой фрактал, а не дерево. Но у всех уже на слуху, так что менять нет смысла. Хотя звучало бы прям круто :3 msgid "Tree supports" msgstr "Древовидная поддержка" @@ -10722,13 +10568,12 @@ msgstr "G-код при смене типа линии" msgid "Post-processing Scripts" msgstr "Скрипты постобработки" -# AI Translated msgid "Slicing Pipeline Plugin" msgstr "Плагин конвейера нарезки" -# AI Translated +# В данном контексте можно, наверное, "конфигурация", т.к. тут именно управление набором плагинов, а не просто их настройками msgid "Plugin Configuration" -msgstr "Настройка плагина" +msgstr "Настройка плагинов" msgid "Notes" msgstr "Заметки" @@ -10885,7 +10730,7 @@ msgid "Multi Filament" msgstr "Печать несколькими материалами" msgid "Tool change parameters with single extruder MM printers" -msgstr "Смена материала при комбинированной печати одним экструдером" +msgstr "Смена материала при печати одним экструдером" msgid "Set" msgstr "Выбор" @@ -11050,10 +10895,8 @@ msgstr "" msgid "Firmware Retraction" msgstr "Откат из прошивки" -# Изменения в настройках ... будут сброшены при переключении на принтер с -# другим типом или количеством сопел. msgid "Switching to a printer with different extruder types or numbers will discard or reset changes to extruder or multi-nozzle-related parameters." -msgstr "Переключение на принтер с другим типом или количеством экструдеров приведёт к сбросу или удалению изменений параметров, связанных с экструдерами и многосопельной конфигурацией." +msgstr "Изменения в настройках экструдера и параметрах сопел не будут перенесены в профиль принтера с другим типом или количеством сопел." msgid "Use Modified Value" msgstr "Использовать изменённое значение" @@ -11068,7 +10911,7 @@ msgstr "" "• профили материалов: %d\n" "• профили настроек: %d\n" "\n" -"Эти профили будут удалены при удалении принтера." +"Эти профили будут удалены вместе с принтером." # ??? Профили, наследуемые от других профилей, не могут быть удалены. msgid "Presets inherited by other presets cannot be deleted!" @@ -11096,8 +10939,8 @@ msgid "" "If the preset corresponds to a filament currently in use on your printer, please reset the filament information for that slot." msgstr "" "Вы действительно хотите удалить выбранный профиль? \n" -"Если материал из этого профиля сейчас используется в вашем принтере,\n" -"необходимо сбросить информацию о материале для этого слота." +"Если вы используете его в принтере, сбросьте информацию\n" +"о нём у соответствующего слота." #, boost-format msgid "Are you sure you want to %1% the selected preset?" @@ -11154,7 +10997,6 @@ msgstr "Продолжить" msgid "Don't warn again for this preset" msgstr "Больше не спрашивать для этого профиля" -# AI Translated #, c-format, boost-format msgid "%s: %s" msgstr "%s: %s" @@ -11307,16 +11149,15 @@ msgstr "" msgid "Extruder count" msgstr "Количество экструдеров" +# Какая-то древняя строка. Ранее – "Характеристики принтера", сейчас используется ещё и в конфигурации плагинов в профиле материала (вкладка "Расширенные") msgid "Capabilities" -msgstr "Характеристики принтера" +msgstr "Возможности" -# AI Translated msgid "Left: " -msgstr "Слева: " +msgstr "Левый: " -# AI Translated msgid "Right: " -msgstr "Справа: " +msgstr "Правый: " msgid "Show all presets (including incompatible)" msgstr "Показать все профили (включая несовместимые)" @@ -11469,7 +11310,7 @@ msgid "Color match" msgstr "Подбор цвета" msgid "Approximate color matching." -msgstr "Приблизительный подбор по цвету ваших прутков." +msgstr "Приблизительный подбор по цвету ваших материалов." msgid "Append" msgstr "Добавить" @@ -11491,7 +11332,7 @@ msgid "" msgstr "выбор цветов можно изменить вручную." msgid "—> " -msgstr "—> " +msgstr "→ " msgid "" "Synchronizing AMS filaments will discard your modified but unsaved filament presets.\n" @@ -11515,7 +11356,7 @@ msgid "Plate" msgstr "Стол" msgid "The connected printer does not match the currently selected printer. Please change the selected printer." -msgstr "Подключённый принтер не соответствует текущему выбранному принтеру. Пожалуйста, измените выбранный принтер." +msgstr "Подключённый принтер не соответствует текущему выбранному. Пожалуйста, измените выбранный принтер." msgid "Mapping" msgstr "Назначение" @@ -11524,7 +11365,7 @@ msgid "Overwriting" msgstr "Переназначение" msgid "Reset all filament mapping" -msgstr "Сбросить все назначения филаментов" +msgstr "Сбросить назначения всех материалов" msgid "(Recommended filament)" msgstr "(рекомендуется)" @@ -11536,8 +11377,8 @@ msgid "" "Check heatbed flatness. Leveling makes extruded height uniform.\n" "*Automatic mode: Level first (about 10 seconds). Skip if surface is fine." msgstr "" -"Проверка ровности стола. Выравнивание обеспечивает равномерную высоту экструзии.\n" -"*Автоматический режим: сначала выполнить выравнивание (около 10 секунд). Пропустить, если поверхность в порядке." +"Снятие карты высот стола. Обеспечивает равномерную высоту слоя.\n" +"*Автоматический режим: выполнить проверку (около 10 секунд). Пропуск, если поверхность в порядке." msgid "" "Calibrate nozzle offsets to enhance print quality.\n" @@ -11553,43 +11394,43 @@ msgid "Tip" msgstr "Совет" msgid "Only synchronize filament type and color, not including AMS slot information." -msgstr "Синхронизировать только тип и цвет филамента, без информации о слотах AMS." +msgstr "Синхронизировать только тип и цвет материала, без информации о слотах AMS." msgid "Replace the project filaments list sequentially based on printer filaments. And unused printer filaments will be automatically added to the end of the list." -msgstr "Заменить список филаментов проекта последовательно на основе филаментов принтера. Неиспользуемые филаменты принтера будут автоматически добавлены в конец списка." +msgstr "Заменить список материалов проекта последовательно на основе материалов принтера. Свободные материалы будут автоматически добавлены в конец списка." msgid "Add unused AMS filaments to filaments list." msgstr "Добавить незадействованные материалы из AMS в список" msgid "Automatically merge the same colors in the model after mapping." -msgstr "Автоматически объединять одинаковые цвета в модели после назначения." +msgstr "Автоматически объединять одинаковые цвета в модели после их назначения." msgid "After being synced, this action cannot be undone." msgstr "После синхронизации это действие нельзя отменить." msgid "After being synced, the project's filament presets and colors will be replaced with the mapped filament types and colors. This action cannot be undone." -msgstr "После синхронизации профили филаментов и цвета проекта будут заменены назначенными типами и цветами филаментов. Это действие нельзя отменить." +msgstr "После синхронизации профили и цвета материалов проекта будут заменены назначенными им типами и цветами материалов. Это действие нельзя отменить." msgid "Are you sure to synchronize the filaments?" -msgstr "Вы уверены, что хотите синхронизировать филаменты?" +msgstr "Вы уверены, что хотите синхронизировать материалы?" msgid "Synchronize now" msgstr "Синхронизировать" msgid "Synchronize Filament Information" -msgstr "Синхронизация информации о филаменте" +msgstr "Синхронизация информации о материале" msgid "Add unused filaments to filaments list." -msgstr "Добавить неиспользуемые филаменты в список." +msgstr "Добавить неиспользуемые материалы в список." msgid "Only synchronize filament type and color, not including slot information." -msgstr "Синхронизировать только тип и цвет филамента, без информации о слотах." +msgstr "Синхронизировать только тип и цвет материала, без информации о слотах." msgid "Ext spool" msgstr "Внешняя катушка" msgid "Please check whether the nozzle type of the device is the same as the preset nozzle type." -msgstr "Проверьте, совпадает ли тип сопла устройства с типом сопла в профиле." +msgstr "Проверьте, совпадает ли тип сопла в принтере с типом сопла в профиле." msgid "Storage is not available or is in read-only mode." msgstr "Хранилище недоступно или защищено от записи." @@ -11602,7 +11443,7 @@ msgid "Timelapse is not supported because Print sequence is set to \"By object\" msgstr "Таймлапс не поддерживается, поскольку для последовательности печати установлено значение «Печать по очереди»." msgid "You selected external and AMS filament at the same time in an extruder, you will need manually change external filament." -msgstr "Вы выбрали одновременно внешний филамент и филамент из AMS в одном экструдере. Вам нужно будет вручную менять внешний филамент." +msgstr "Для одного экструдера одновременно выбраны внешняя катушка и катушка из AMS. Потребуется ручная смена прутка." msgid "Successfully synchronized nozzle information." msgstr "Информация о сопле успешно синхронизирована." @@ -11610,9 +11451,8 @@ msgstr "Информация о сопле успешно синхронизир msgid "Successfully synchronized nozzle and AMS number information." msgstr "Информация о сопле и количестве AMS успешно синхронизирована." -# AI Translated msgid "Do you want to continue to sync filaments?" -msgstr "Хотите продолжить синхронизацию материалов?" +msgstr "Продолжить синхронизацию материалов?" msgid "Successfully synchronized filament color from printer." msgstr "Цвет материала успешно синхронизирован с принтером." @@ -11638,7 +11478,7 @@ msgstr "" #, boost-format msgid "For constant flow rate, hold %1% while dragging." -msgstr "Для постоянного объёмного расхода удерживайте нажатой клавишу %1% при перетаскивании." +msgstr "Для выравнивания значений расхода удерживайте клавишу %1% при перетаскивании." msgid "ms" msgstr "мс" @@ -11691,7 +11531,7 @@ msgid "BambuSource has not correctly been registered for media playing! Press Ye msgstr "Компонент BambuSource неправильно зарегистрирован для воспроизведения медиафайлов! Нажмите «Да», чтобы повторно зарегистрировать его" msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Отсутствует компонент BambuSource для воспроизведения медиа! Пожалуйста, переустановите OrcaSlicer или обратитесь за помощью к сообществу." +msgstr "Отсутствует компонент BambuSource для воспроизведения медиа. Переустановите OrcaSlicer или обратитесь за помощью к сообществу." msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." msgstr "При использовании компонентов BambuSource из другого инсталлятора, воспроизведение видео может работать некорректно! Нажмите «Да», чтобы исправить это." @@ -11699,7 +11539,6 @@ msgstr "При использовании компонентов BambuSource и msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" msgstr "В вашей системе отсутствуют кодеки H.264 для GStreamer, которые необходимы для воспроизведения видео (попробуйте установить пакеты gstreamer1.0-plugins-bad или gstreamer1.0-libav, а затем перезапустить Orca Slicer)." -# AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Облачный агент недоступен. Перезапустите OrcaSlicer и повторите попытку." @@ -11715,9 +11554,8 @@ msgstr "Войти" msgid "Login failed. Please try again." msgstr "Ошибка входа. Попробуйте ещё раз." -# AI Translated msgid "parse json failed" -msgstr "не удалось разобрать JSON" +msgstr "не удалось обработать JSON" msgid "[Action Required] " msgstr "[Требуется действие] " @@ -11909,12 +11747,10 @@ msgctxt "Keyboard Shortcut" msgid "Space" msgstr "Пробел" -# AI Translated msgid "Open actions speed dial" -msgstr "Открыть панель быстрых действий" +msgstr "Открыть строку быстрых действий" # Plater – это название библиотеки. Используется в меню горячих клавиш в качестве заголовка сочетаний клавиш, которые работают внутри пространства Plater. Как минимум на Windows не отображается. -# AI Translated msgid "Plater" msgstr "Рабочая область" @@ -11993,17 +11829,15 @@ msgstr "Информация об изменениях в версии %s:" msgid "Network plug-in update" msgstr "Обновление сетевого плагина" -# AI Translated msgid "Click OK to update the Network plug-in now. If a file is in use, the update will be applied the next time Orca Slicer launches." -msgstr "Нажмите OK, чтобы обновить сетевой плагин сейчас. Если файл используется, обновление будет применено при следующем запуске Orca Slicer." +msgstr "Нажмите OK для обновления сетевого плагина. Если файл занят, обновление будет завершено при следующем запуске Orca Slicer." -# AI Translated msgid "A new Network plug-in is available. Do you want to install it?" -msgstr "Доступен новый сетевой плагин. Хотите установить его?" +msgstr "Доступна новая версия сетевого плагина. Выполнить установку?" #, c-format, boost-format msgid "A new Network plug-in (%s) is available. Do you want to install it?" -msgstr "Доступен новый сетевой плагин (%s). Хотите установить?" +msgstr "Доступна новая версия сетевого плагина: %s. Выполнить установку?" msgid "New version of Orca Slicer" msgstr "Доступна новая версия Orca Slicer" @@ -12058,9 +11892,8 @@ msgstr "Имя принтера" msgid "Where to find your printer's IP and Access Code?" msgstr "Где найти IP-адрес и код доступа к вашему принтеру?" -# AI Translated msgid "How to trouble shooting" -msgstr "Как устранить неполадки" +msgstr "Помощь в устранении неполадок" msgid "Connect" msgstr "Подключить" @@ -12121,13 +11954,13 @@ msgid "Laser 40W" msgstr "40 Вт лазер" msgid "Cutting Module" -msgstr "Модуль обрезки" +msgstr "Модуль резки" # система пожаротушения? msgid "Auto Fire Extinguishing System" msgstr "Автоматическая система пожаротушения" -# AI Translated +# По сути, локализовывается как "Переключатель AMS". Но сами бамбуки используют кривой машинный перевод в русскоязычной документации, и там переводится от случая к случаю. Поэтому имеет полный смысл оставить брендированное название. msgid "Filament Track Switch" msgstr "Filament Track Switch" @@ -12149,7 +11982,6 @@ msgstr "Сбой обновления" msgid "Update successful" msgstr "Обновление успешно завершено" -# AI Translated msgid "Hotends on Rack" msgstr "Хотэнды на стойке" @@ -12247,9 +12079,8 @@ msgstr "" "Input Shaping поддерживается только в Marlin 2.1.2 и новее.\n" "Обновите прошивку и установите тип G-кода на «Marlin 2»." -# AI Translated msgid "Input shaping is only supported by Klipper, RepRapFirmware and Marlin 2." -msgstr "Input shaping поддерживается только Klipper, RepRapFirmware и Marlin 2." +msgstr "Input shaping поддерживается только в Klipper, RepRapFirmware и Marlin 2." msgid "Grouping error: " msgstr "Ошибка группировки: " @@ -12258,9 +12089,8 @@ msgstr "Ошибка группировки: " msgid " can not be placed in the " msgstr " нельзя заправить в " -# AI Translated msgid "Group error in manual mode. Please check nozzle count or regroup." -msgstr "Ошибка группировки в ручном режиме. Проверьте количество сопел или перегруппируйте." +msgstr "Ошибка группировки в ручном режиме. Проверьте количество сопел или измените группировку." msgid "Internal Bridge" msgstr "Внутренний мост" @@ -12408,10 +12238,10 @@ msgid "Clumping detection is not supported when \"by object\" sequence is enable msgstr "Обнаружение налипаний не поддерживается при печати моделей по очереди." msgid "Enabling both precise Z height and the prime tower may cause slicing errors." -msgstr "Одновременное включение точной высоты Z и башни очистки может вызвать ошибки нарезки." +msgstr "Совместное использование точной высоты Z и черновой башни может вызвать ошибки нарезки." msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model." -msgstr "Для обнаружения налипаний требуется башня очистки; в противном случае на модели могут быть дефекты." +msgstr "Для обнаружения налипаний требуется черновая башня; в противном случае на модели могут возникнуть дефекты." msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode." msgstr "Выберите последовательность печати «По очереди» для поддержки печати несколько моделей в режиме вазы." @@ -12510,10 +12340,10 @@ msgid "Organic support branch diameter must not be smaller than support tree tip msgstr "Диаметр ветвей органической поддержки не может быть меньше диаметра их кончиков." msgid "The Hollow base pattern is not supported by this support type; Rectilinear will be used instead." -msgstr "Шаблон полого основания не поддерживается этим типом поддержки; вместо него будет использоваться прямолинейный." +msgstr "Шаблон «Полость» не поддерживается этим типом поддержек и будет заменён на «Зигзаг»." msgid "Support enforcers are used but support is not enabled. Please enable support." -msgstr "Используется принудительная поддержка, но её генерация не включена. Пожалуйста, включите генерацию поддержки в настройках слайсера." +msgstr "Используется принудительная поддержка, но её генерация не включена. Включите генерацию поддержек в настройках слайсера." msgid "Layer height cannot exceed nozzle diameter." msgstr "Высота слоя не может быть больше диаметра сопла." @@ -12521,24 +12351,21 @@ msgstr "Высота слоя не может быть больше диамет msgid "Bridge line width must not exceed nozzle diameter" msgstr "Ширина линии моста не может превышать диаметр сопла" -# AI Translated msgid "\"G92 E0\" was found in before_layer_change_gcode, but the G or E are not uppercase. Please change them to the exact uppercase \"G92 E0\"." -msgstr "«G92 E0» обнаружено в before_layer_change_gcode, но G или E не в верхнем регистре. Измените их на точное «G92 E0» в верхнем регистре." +msgstr "В G-коде перед сменой слоя обнаружена команда «G92 E0» с неправильным регистром. Измените регистр «G92 E0» на заглавные буквы." -# AI Translated msgid "\"G92 E0\" was found in layer_change_gcode, but the G or E are not uppercase. Please change them to the exact uppercase \"G92 E0\"." -msgstr "«G92 E0» обнаружено в layer_change_gcode, но G или E не в верхнем регистре. Измените их на точное «G92 E0» в верхнем регистре." +msgstr "В G-коде после смены слоя обнаружена команда «G92 E0» с неправильным регистром. Измените регистр «G92 E0» на заглавные буквы." msgid "Relative extruder addressing requires resetting the extruder position at each layer to prevent loss of floating point accuracy. Add \"G92 E0\" to layer_gcode." msgstr "При относительной адресации экструдера его положение необходимо корректировать на каждом слое, чтобы предотвратить потерю точности с плавающей запятой. Добавьте \"G92 E0\" в G-код выполняемый при смене слоя (layer_gcode)." -# AI Translated +# на самом деле, вполне совместима и часто используется в самих прошивках при сбросе координат msgid "\"G92 E0\" was found in before_layer_change_gcode, which is incompatible with absolute extruder addressing." -msgstr "«G92 E0» обнаружено в before_layer_change_gcode, что несовместимо с абсолютной адресацией экструдера." +msgstr "В G-коде перед сменой слоя обнаружена команда «G92 E0», которая несовместима с абсолютными координатами экструдера." -# AI Translated msgid "\"G92 E0\" was found in layer_change_gcode, which is incompatible with absolute extruder addressing." -msgstr "«G92 E0» обнаружено в layer_change_gcode, что несовместимо с абсолютной адресацией экструдера." +msgstr "В G-коде после смены слоя обнаружена команда «G92 E0», которая несовместима с абсолютными координатами экструдера." #, c-format, boost-format msgid "Plate %d: %s does not support filament %s" @@ -12595,15 +12422,14 @@ msgstr "Компенсация усадки материала не будет msgid "Generating skirt & brim" msgstr "Генерация юбки и каймы" -# AI Translated msgid "" "Per-object skirts cannot fit between the objects in By object print sequence.\n" "\n" "Move the objects farther apart, reduce brim/skirt size, switch Skirt type to Combined, or switch Print sequence to By layer." msgstr "" -"Пообъектные юбки не помещаются между моделями при последовательности печати «По объектам».\n" +"Независимые юбки не помещаются между моделями при печати моделей по очереди.\n" "\n" -"Раздвиньте модели дальше друг от друга, уменьшите размер каймы/юбки, переключите тип юбки на «Комбинированная» или измените последовательность печати на «По слоям»." +"Попробуйте увеличить отступ между моделями, уменьшить размер юбки/каймы, использовать совместный тип юбки или печатать модели послойно." msgid "Exporting G-code" msgstr "Экспорт в G-код" @@ -12623,29 +12449,23 @@ msgstr "Область печати" msgid "Extruder printable area" msgstr "Область печати экструдера" -# AI Translated msgid "Support parallel printheads" -msgstr "Поддержка параллельных печатающих головок" +msgstr "Поддержка параллельных печатающих голов" -# AI Translated msgid "Enable printer settings for machines that can use multiple printheads in parallel." -msgstr "Включает настройки принтера для машин, способных использовать несколько печатающих головок параллельно." +msgstr "Отобразить настройки для принтеров, способных параллельно использовать несколько зависимых печатающих голов." -# AI Translated msgid "Parallel printheads count" -msgstr "Количество параллельных печатающих головок" +msgstr "Количество зависимых голов" -# AI Translated msgid "Set the number of parallel printheads for machines like OrangeStorm Giga printer." -msgstr "Задаёт количество параллельных печатающих головок для машин вроде принтера OrangeStorm Giga." +msgstr "Задаёт количество зависимых печатающих голов для принтеров вроде OrangeStorm Giga." -# AI Translated msgid "Parallel printheads bed exclude areas" -msgstr "Исключаемые зоны стола для параллельных печатающих головок" +msgstr "Области исключения для зависимых голов" -# AI Translated msgid "Ordered list of bed exclude areas by parallel printhead count. Item 1 applies to one printhead, item 2 to two printheads, and so on. Leave an item empty for no excluded area." -msgstr "Упорядоченный список исключаемых зон стола по количеству параллельных печатающих голов. Поле 1 применяется к одной голове, поле 2 — к двум, и так далее. Оставьте поле пустым, если исключаемые зоны отсутствуют." +msgstr "Список исключаемых областей стола, упорядоченный по количеству зависимых голов. 1 – область для одной головы, 2 — область для двух, и т.д. Оставьте пустым, если исключаемые области отсутствуют." msgid "Excluded bed area" msgstr "Область исключения" @@ -12666,23 +12486,21 @@ msgid "This shrinks the first layer on the build plate to compensate for elephan msgstr "Сужает контур первого слоя на заданное значение для компенсации дефекта слоновьей ноги." msgid "Elephant foot compensation layers" -msgstr "Компенсирующих слоёв «слоновьей ноги»" +msgstr "Слои компенсации" msgid "The number of layers on which the elephant foot compensation will be active. The first layer will be shrunk by the elephant foot compensation value, then the next layers will be linearly shrunk less, up to the layer indicated by this value." -msgstr "Количество слоёв, на которые будет распространяться компенсация слоновьей ноги. Первый слой будет уменьшен на величину компенсации слоновьей ноги с последующим линейным уменьшением до слоя, указанного здесь." +msgstr "Количество слоёв для компенсации избытка материала. Сужение контура первого слоя управляется настройкой выше, последующие слои линейно расширяются до нормального размера." msgid "Elephant foot layers density" -msgstr "Плотность слоёв компенсации" +msgstr "Плотность слоя компенсации" -# AI Translated msgid "" "Density of internal solid infill for Elephant foot layers compensation.\n" "The initial value for the second layer is set.\n" "Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers." msgstr "" -"Плотность внутреннего сплошного заполнения для компенсации слоёв «слоновьей ноги».\n" -"Задаётся начальное значение для второго слоя.\n" -"Последующие слои линейно уплотняются на высоту, заданную в elefant_foot_compensation_layers." +"Начальное значение плотности сплошного заполнения для компенсации дефекта «слоновьей ноги».\n" +"Позволяет компенсировать избыток материала за счёт снижения плотности первых слоёв с постепенным её восстановлением к слою, указанному выше." msgid "This is the height for each layer. Smaller layer heights give greater accuracy but longer printing time." msgstr "Высота каждого слоя. Чем меньше, тем выше качество поверхности и затраты времени (и наоборот)." @@ -12716,7 +12534,7 @@ msgid "Allow controlling BambuLab's printer through 3rd party print hosts." msgstr "Позволяет управлять принтером BambuLab через сторонние хосты печати." msgid "Use 3MF instead of G-code" -msgstr "Сжимать G-код перед отправкой" +msgstr "Сжатие G-кода перед отправкой" msgid "Enable this if the printer accepts a 3MF file as the print job. When enabled, Orca Slicer sends the sliced file as a .gcode.3mf, instead of a plain .gcode file." msgstr "Рекомендуется для принтеров, поддерживающих печать из архивов 3MF. Файлы печати будут отправляться с расширением \".gcode.3mf\"." @@ -12784,9 +12602,8 @@ msgstr "API-ключ" msgid "HTTP digest" msgstr "HTTP digest-авторизация" -# AI Translated msgid "Configuration for the plugin capabilities this preset uses, overriding the global Capabilities configuration. Stored as a raw JSON array and edited through the dialog behind the button, never typed in directly." -msgstr "Конфигурация возможностей плагинов, используемых этим профилем, переопределяющая глобальную конфигурацию возможностей. Хранится как необработанный массив JSON и редактируется через диалоговое окно за кнопкой, а не вводится напрямую." +msgstr "Настройки функционала плагинов, используемого этим профилем. Переопределяет глобальные настройки функционала. Хранится как необработанный массив JSON и редактируется через диалоговое окно по кнопке." # Логическая ошибка; пересекаются не периметры, а траектория холостого # перемещения со стенкой модели @@ -13236,7 +13053,7 @@ msgstr "" "Фактический поток для поддержек рассчитывается путём умножения этого значения на поток материала и общий поток модели (если он задан)." msgid "Support interface flow ratio" -msgstr "Интерфейс поддержек" +msgstr "Связующие слои" msgid "" "This factor affects the amount of material for the support interface.\n" @@ -13283,6 +13100,7 @@ msgstr "Дополнительные периметры на нависания msgid "Create additional perimeter paths over steep overhangs and areas where bridges cannot be anchored." msgstr "" "Создание дополнительных периметров над крутыми нависаниями и участками, где невозможно закрепить мосты.\n" +"\n" "Внимание: включение этой настройки может повлиять на корректность генерации мостов!" # ??? Реверс на чётных слоях нависаний @@ -13365,7 +13183,7 @@ msgstr "Включение динамического управления ск msgid "Slow down for curled perimeters" msgstr "Замедляться на изогнутых периметрах" -# AI Translated +# Обновил, отформатировал и провёл семантическую оптимизацию #, no-c-format, no-boost-format msgid "" "Enable this option to slow down printing in areas where perimeters may have curled upwards.\n" @@ -13383,20 +13201,20 @@ msgid "" "Note: When this option is enabled, overhang perimeters are treated like overhangs, meaning the overhang speed is applied even if the overhanging perimeter is part of a bridge.\n" "For example, when the perimeters are 100% overhanging, with no wall supporting them from underneath, the 100% overhang speed will be applied." msgstr "" -"Включите эту опцию, чтобы замедлять печать в областях, где периметры могли загнуться вверх.\n" -"Например, дополнительное замедление будет применяться при печати нависаний на острых углах, таких как нос корпуса Benchy, уменьшая загибание, которое накапливается на нескольких слоях.\n" +"Позволяет автоматически замедлять печать в областях, где выступающие периметры могут деформироваться из-за усадки.\n" +"Например, форштевень Benchy, который сильнее подвержен накоплению усадочной деформации.\n" "\n" -"Обычно рекомендуется держать эту опцию включённой, если только охлаждение вашего принтера не достаточно мощное или скорость печати не достаточно низкая, чтобы загибание периметров не происходило. \n" -"При печати с высокой скоростью внешнего периметра этот параметр может вносить артефакты на стенках при замедлении из-за потенциально большого разброса скоростей печати, из-за которого экструдер не успевает за требуемым изменением потока.\n" -"Коренная причина этих артефактов, скорее всего, — слегка неточная настройка PA, особенно в сочетании с большим временем сглаживания PA.\n" +"Рекомендуется использовать в случаях, если скоростной режим, конструкция принтера или его система охлаждения не способны обеспечить качественного сопротивления усадке материала.\n" "\n" -"Рекомендации при включении этой опции:\n" -"1. Уменьшите время сглаживания Pressure Advance до 0,015 - 0,02, чтобы экструдер быстро реагировал на изменения скорости.\n" -"2. Увеличьте минимальные скорости печати, чтобы ограничить величину замедления и уменьшить разброс между быстрыми и медленными участками.\n" -"3. Если артефакты всё ещё появляются, включите сглаживание скорости экструзии (ERS) для дальнейшего сглаживания переходов потока.\n" +"Примечание: отключает скоростной режим мостов для нависающих периметров (передаёт его в управление настройкам нависаний ниже).\n" "\n" -"Примечание: когда эта опция включена, нависающие периметры рассматриваются как нависания, то есть скорость нависания применяется, даже если нависающий периметр является частью моста.\n" -"Например, когда периметры нависают на 100%, без стенки, поддерживающей их снизу, будет применена скорость нависания 100%." +"Внимание: требуется крайне точная настройка коррекции давления. В противном случае при быстрой печати стенок в местах перепада скоростей будут возникать заметные артефакты поверхности.\n" +"\n" +"Рекомендации по настройке:\n" +"1. Уменьшите время сглаживания Pressure Advance до 0.015-0.02, чтобы\n" +"    повысить реактивность экструдера на изменения скорости.\n" +"2. Повысьте ограничения скоростей нависаний.\n" +"3. Если это не помогло, воспользуйтесь сглаживанием расхода." msgid "mm/s or %" msgstr "мм/с или %" @@ -13527,16 +13345,45 @@ msgstr "Послойно" msgid "By object" msgstr "По очереди" -# ???Внутрислойный порядок печати msgid "Intra-layer order" msgstr "Очерёдность моделей" -msgid "Print order within a single layer." -msgstr "Последовательность печати моделей в пределах одного слоя." +# До 2.5.0 было легко и просто, теперь взяли и кучу подкапотных алгоритмов на пользователя вывалили... Упростил, насколько это возможно без потери смысла, чтобы всем угодить. Контекст: в 2.5.0 настройку переработали, чтобы все алгоритмы создавали цикличный маршрут, при котором конечная точка была бы максимально близко к началу (предположительно, следующего слоя). Цикличный маршрут позволяет избежать перемещений над уже напечатанным на слое, что убирает необходимость в Z-hop для простых моделей. PR: https://github.com/OrcaSlicer/OrcaSlicer/pull/13578 +# +# Примечания: Default использует алгоритм Greedy, 2-opt – алгоритм устранения самопересечений. Кратчайший путь проверяет всего 2 стратегии, остальные уже удалены как неэффективные и медленные. +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Последовательность печати моделей в пределах одного слоя. Влияет на суммарное время перемещений от модели к модели.\n" +"\n" +"• По умолчанию: поиск ближайших моделей с оптимизацией пути\n" +"   и устранением пересечений. Быстрый универсальный вариант.\n" +"• По списку: сохранять тот же порядок, что и в списке моделей, без\n" +"   какой-либо оптимизации. Полезно для ручной настройки очерёдности.\n" +"• Кратчайший путь: выбор кратчайшего маршрута из всех стратегий.\n" +"   Маршрут может меняться от слоя к слою из-за изменения числа\n" +"   отдельных контуров. Требует больше времени.\n" +"• Змейкой: зигзагообразный маршрут с оптимизацией. Хорошо\n" +"   подходит для массивов из множества мелких деталей.\n" +"\n" +"Примечание: при использовании нескольких материалов приоритет отдаётся минимизации числа их смен. Очерёдность определяется для каждого материала отдельно, и визуально маршрут может казаться неоптимальным." msgid "As object list" msgstr "По списку" +msgid "Best of all (shortest path)" +msgstr "Кратчайший путь" + +msgid "Snake" +msgstr "Змейкой" + msgid "Slow printing down for better layer cooling" msgstr "Замедлять печать для охлаждения слоёв" @@ -13588,17 +13435,17 @@ msgstr "" "Включение вытяжного вентилятора для лучшего охлаждения внутренней области принтера.\n" "Команда G-кода: M106 P3 S(0-255)" -# AI Translated +# Сломано и не отображается, портировано для X2D msgid "Enable this to override the fan speed set in custom G-code during print." -msgstr "Включите, чтобы переопределить скорость вентилятора, заданную в пользовательском G-code во время печати." +msgstr "Заменять процент скорости вентилятора во время печати, указанную через пользовательский G-код." -# AI Translated +# Сломано и не отображается, портировано для X2D msgid "On completion" msgstr "По завершении" -# AI Translated +# Сломано и не отображается, портировано для X2D msgid "Enable this to override the fan speed set in custom G-code after print completion." -msgstr "Включите, чтобы переопределить скорость вентилятора, заданную в пользовательском G-code после завершения печати." +msgstr "Заменить процент скорости вентилятора после завершения печати, указанную через пользовательский G-код." msgid "Speed of exhaust fan during printing. This speed will override the speed in filament custom G-code." msgstr "Скорость вытяжного вентилятора во время печати. Эта скорость переопределяет скорость в пользовательском G-коде материала." @@ -14090,7 +13937,7 @@ msgid "Extruder Color" msgstr "Цвет экструдера" msgid "Only used as a visual help on UI." -msgstr "Используется только в качестве визуальной помощи в пользовательском интерфейсе." +msgstr "Используется для визуализации в интерфейсе слайсера." msgid "Extruder offset" msgstr "Смещение координат экструдера" @@ -14167,11 +14014,11 @@ msgstr "" " • наиболее высокий расход при печати (обычно, заполнения).\n" "Выбор тестируемых ускорений:\n" " • наиболее низкое ускорение из настроек печати\n" -" • наиболее высокое ускорение (не должно превышать\n" -"    рекомендуемый предел калибровщика Input Shaper в Klipper)\n" +" • наиболее высокое ускорение (не должно превышать предел\n" +"    рекомендуемого шейпера в Klipper)\n" "\n" -"2. Выпишите коэффициенты PA по примеру выше для каждой пары расхода/ускорения. Удельный расход можно посмотреть в «Просмотре нарезки», выбрав режим отображения «Объёмный расход». Значение отображается над горизонтальной шкалой печати слоя. Особенности:\n" -"• Как правило, значение PA должно снижаться с повышением расхода.\n" +"2. Выпишите коэффициенты PA по примеру выше для каждой пары расхода/ускорения. Значения расхода можно посмотреть в «Просмотре нарезки», выбрав режим отображения «Объёмный расход». Значение отображается над горизонтальной шкалой печати слоя. Особенности:\n" +"• Как правило, коэффициент должен снижаться с повышением расхода.\n" "   Если это не так, проверьте экструдер и корректность тестов.\n" "• Диапазон PA растёт со снижением скоростей и ускорений.\n" "• Если разницы между тестами не наблюдается, выбирайте PA из\n" @@ -14182,7 +14029,6 @@ msgstr "" msgid "Enable adaptive pressure advance within features (beta)" msgstr "Адаптироваться к изменениям линии" -# AI Translated msgid "" "Enable adaptive PA whenever there are flow changes in a feature, such as line width changes in a corner or overhangs.\n" "\n" @@ -14190,11 +14036,11 @@ msgid "" "\n" "This is an experimental option, as if the PA profile is not set accurately, it will cause uniformity issues." msgstr "" -"Включает адаптивный PA всякий раз, когда в элементе есть изменения потока, например изменение ширины линии на углу или нависаниях.\n" +"Экспериментальный режим смены коэффициента РА прямо посреди печати линии для адаптации к изменениям расхода на ней (например, на нависаниях или периметрах переменной ширины).\n" "\n" -"Несовместимо с принтерами Prusa, так как они делают паузу для обработки изменений PA, что вызывает задержки и дефекты.\n" +"Предупреждение: неточный подбор значений РА может привести к дефектам при работе этой настройки.\n" "\n" -"Это экспериментальная опция: если профиль PA задан неточно, это вызовет проблемы с однородностью." +"Внимание: несовместимо с принтерами Prusa, поскольку им требуется остановка для изменения коэффициента РА." msgid "Static pressure advance for bridges" msgstr "Фиксированный PA на мостах" @@ -14265,18 +14111,18 @@ msgid "Minimum HRC of nozzle required to print the filament. A value of 0 means msgstr "Минимальная твёрдость материала сопла (HRC), необходимая для печати материалом. 0 – отключение проверки твёрдости сопел." msgid "Filament map to extruder" -msgstr "Назначение филамента на экструдер" +msgstr "Назначение материала на экструдер" msgid "Filament map to extruder." -msgstr "Назначение филамента на экструдер." +msgstr "Назначение материала на экструдер." msgid "Auto For Flush" msgstr "Авто для прочистки" +# Не смог найти в интерфейсе msgid "Auto For Match" msgstr "Авто для сопоставления" -# AI Translated msgid "Nozzle Manual" msgstr "Ручная настройка сопел" @@ -14286,9 +14132,8 @@ msgstr "Температура прочистки" msgid "Temperature when flushing filament. 0 indicates the upper bound of the recommended nozzle temperature range." msgstr "Температура при прочистке. 0 – использовать максимально допустимую температуру." -# AI Translated msgid "Flush temperature used in fast purge mode." -msgstr "Температура прочистки, используемая в режиме быстрой прочистки." +msgstr "Температура в режиме быстрой прочистки." msgid "Flush volumetric speed" msgstr "Расход при прочистке" @@ -14358,9 +14203,9 @@ msgid "" "\n" "Note: Experimental and incomplete feature imported from BBS. Functional for some profiles that already have the variable saved." msgstr "" -"При включении поток экструзии ограничивается меньшим из расчётного значения (вычисленного по ширине линии и высоте слоя) и заданного пользователем максимального потока. При отключении применяется только заданный пользователем максимальный поток.\n" +"Регулирует значение максимального расхода при печати тонких и узких линий для достижения оптимальной линейной скорости. По сути, ограничивает расход материала в случаях, когда завышенная скорость движения сопла не позволяет материалу надёжно спекаться с предыдущим слоем.\n" "\n" -"Примечание: экспериментальная и неполная функция, перенесённая из BBS. Работает для некоторых профилей, в которых уже сохранена эта переменная." +"Внимание: требует настройки модели расхода и пока работает только у преднастроенных производителем профилей материалов." msgid "Max volumetric speed multinomial coefficients" msgstr "Коэффициенты расчёта максимального расхода" @@ -14452,28 +14297,27 @@ msgstr "Мин. объём прочистки на черновой башне" msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably." msgstr "После смены инструмента, точное положение вновь загруженного прутка внутри него может быть неизвестно, и давление прутка, вероятно, ещё не стабильно. Перед тем, как очистить печатающую головку в заполнение или в «жертвенную» модель Orca Slicer всегда будет выдавливать это количество материала на черновую башню, чтобы обеспечить надёжную печать заполнения или «жертвенной» модели." -# AI Translated +# Не реализовано msgid "Wipe tower cooling" -msgstr "Охлаждение черновой башни" +msgstr "Охлаждение на черновой башне" -# AI Translated msgid "Temperature drop before entering filament tower" -msgstr "Снижение температуры перед входом в башню материала" +msgstr "Снижение температуры перед входом в башню" msgid "Interface layer pre-extrusion distance" -msgstr "Расстояние предэкструзии слоя интерфейса" +msgstr "Дистанция избыточной подачи при смене" msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)." -msgstr "Расстояние предэкструзии слоя интерфейса башни очистки (где соприкасаются разные материалы)." +msgstr "Протяжённость первичного движения прочистки после смены материала. Позволяет быстро набрать давление в сопле и сбросить перегретый материал.\n\nПримечание: фактическая длина может быть ограничена шириной башни." msgid "Interface layer pre-extrusion length" -msgstr "Длина предэкструзии слоя интерфейса" +msgstr "Длина прутка для избыточной подачи" msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)." -msgstr "Длина предэкструзии слоя интерфейса башни очистки (где соприкасаются разные материалы)." +msgstr "Длина прутка, которую необходимо продавить на этапе избыточной подачи.\n\n0 – отключить этот этап." msgid "Tower ironing area" -msgstr "Разглаживание черновой башни" +msgstr "Разглаживание кончиков" # У H2D не требует, на Вики при этом написано, что требует... В баганном порте # "улучшений" башни вообще не работает ни при каких обстоятельствах. @@ -14486,15 +14330,18 @@ msgstr "" msgid "mm²" msgstr "мм²" +# Сломано и ни на что не влияет, даже на H2D и даже в Bambu Studio. msgid "Interface layer purge length" msgstr "Прочистка на слое интерфейса" +# Из ченжлогов Bambu: Studio will do nozzle wiping before flushing rather than after flushing, and print the prime tower directly, reducing extrusion volume fluctuations and improving layer height consistency. Added a new parameter for interface-layer flushing length. msgid "Purge length for prime tower interface layer (where different materials meet)." -msgstr "Длина прочистки на слое интерфейса башни (где соприкасаются разные материалы)." +msgstr "В настоящее время ничего не делает. Задумывалось как настройка расстояния внешней очистки сопла перед основной процедурой его прочистки." msgid "Interface layer print temperature" msgstr "Температура при прочистке" +# Не используется, настройка сломана. Перевёл на случай, если починят в будущем. msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature." msgstr "" "Целевая температура при печати слоёв прочистки в черновой башне (место контакта разных материалов).\n" @@ -14569,11 +14416,9 @@ msgstr "Пригодный для печати" msgid "The filament is printable in extruder." msgstr "Материалом можно печатать через экструдер." -# AI Translated msgid "Filament-extruder compatibility" msgstr "Совместимость материала и экструдера" -# AI Translated msgid "A single 32-bit int encoding the compatibility level of a filament across all extruders (up to 10). Every 3 bits represent one extruder (bits [3*i, 3*i+2] for extruder i). 0: printable, 1: error, 2: critical warning, 3: warning, 4-7: reserved." msgstr "Одно 32-битное целое число, кодирующее уровень совместимости материала со всеми экструдерами (до 10). Каждые 3 бита представляют один экструдер (биты [3*i, 3*i+2] для экструдера i). 0: пригоден для печати, 1: ошибка, 2: критическое предупреждение, 3: предупреждение, 4-7: зарезервировано." @@ -14819,36 +14664,35 @@ msgstr "" "Внимание: параметр является устаревшим и в новых версиях Klipper был переименован в \"minimum_cruise_ratio\"." msgid "Default jerk." -msgstr "Рывок по умолчанию." +msgstr "Рывки по умолчанию." msgid "Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)." msgstr "Junction Deviation для прошивки Marlin (заменяет традиционную настройку рывка XY)." msgid "Jerk of outer walls." -msgstr "Рывок для внешних периметров." +msgstr "Рывки на внешних периметрах." msgid "Jerk of inner walls." -msgstr "Рывок для внутренних периметров." +msgstr "Рывки на внутренних периметрах." msgid "Jerk for top surface." -msgstr "Рывок для верхней поверхности." +msgstr "Рывки на верхней поверхности." msgid "Jerk for infill." -msgstr "Рывок для заполнения." +msgstr "Рывки на заполнении." msgid "Jerk for the first layer." -msgstr "Рывок для первого слоя." +msgstr "Рывки на первом слое." msgid "Jerk for travel." -msgstr "Рывок при перемещении." +msgstr "Рывки при перемещениях." -# AI Translated msgid "" "Travel jerk of first layer.\n" "The percentage value is relative to Travel Jerk." msgstr "" -"Рывок перемещения первого слоя.\n" -"Процентное значение задаётся относительно рывка перемещения." +"Рывки при перемещениях на первом слое.\n" +"Можно указать процент от рывков при обычных перемещениях." msgid "Line width of the first layer. If expressed as a %, it will be computed over the nozzle diameter." msgstr "Ширина линий первого слоя. Можно указать процент от диаметра сопла." @@ -14971,7 +14815,7 @@ msgid "Ironing line spacing" msgstr "Интервал линий" msgid "Filament-specific override for ironing line spacing. This allows you to customize the spacing between ironing lines for each filament type." -msgstr "Индивидуальная настройка расстояния между линиями разглаживания для каждого типа филамента." +msgstr "Замещение интервала между линиями разглаживания. Позволяет настроить интервал отдельно для каждого материала." # "Разглаживание" явно задано в заголовке раздела msgid "Ironing inset" @@ -15071,7 +14915,7 @@ msgid "" msgstr "" "Тип шума, используемый для генерации нечёткой оболочки.\n" "\n" -"• Случайный: равномерно резкий шум.\n" +"• Классический: равномерно резкий шум.\n" "• Шум Перлина: согласованный однородный шум.\n" "• Волновой: более резкий вариант шума Перлина.\n" "• Ребристый: резкий сглаженный шум с мраморной текстурой.\n" @@ -15080,9 +14924,9 @@ msgstr "" "\n" "Примечание: для разных алгоритмов оптимальны разные масштабы." -# Поменял на "случайный" из-за нехватки места. +# Поменял на "случайный" из-за нехватки места. UPD: Вернул из-за конфликта с генератором периметров msgid "Classic" -msgstr "Случайный" +msgstr "Классический" msgid "Perlin" msgstr "Шум Перлина" @@ -15268,31 +15112,28 @@ msgstr "Наилучшее расположение модели при авто msgid "Enable this option if machine has auxiliary part cooling fan. G-code command: M106 P2 S(0-255)." msgstr "" -"Если в принтере имеется вспомогательный вентилятор для охлаждения моделей (обычно это боковой вентилятор), можете включить эту опцию.\n" +"Включить управление вспомогательным вентилятором из настроек материала.\n" "Команда G-кода: M106 P2 S(0-255)." -# AI Translated msgid "Fan direction" msgstr "Направление вентилятора" -# AI Translated msgid "Cooling fan direction of the printer" -msgstr "Направление вентилятора охлаждения принтера" +msgstr "Направление потока охлаждения вспомогательного вентилятора" -# AI Translated msgid "Both" -msgstr "Оба" +msgstr "Обе стороны" +# "only custom start G-code" в Орке не существует. Вероятно, забыли стереть при портировании из SuperSlicer. msgid "" "Start the fan this number of seconds earlier than its target start time (you can use fractional seconds). It assumes infinite acceleration for this time estimation, and will only take into account G1 and G0 moves (arc fitting is unsupported).\n" "It won't move fan commands from custom G-code (they act as a sort of 'barrier').\n" "It won't move fan commands into the start G-code if the 'only custom start G-code' is activated.\n" "Use 0 to deactivate." msgstr "" -"Запуск вентилятора на указанное количество секунд раньше целевого времени запуска (поддерживаются доли секунды). При этом предполагается бесконечное ускорение для оценки этого времени, и учёт только перемещений G1 и G0 (Аппроксимация дугами).\n" -"Это не приведёт к сдвигу команд вентилятора из пользовательских G-кодов (они действуют как своего рода барьер).\n" -"Это не приведёт к сдвигу команд вентилятора в стартовом G-коде, если активировано «только пользовательский стартовый G-код».\n" -"Установите 0 для отключения." +"Сместить управление вентилятором на заданное время для его запуска заранее. Можно указать дробное количество секунд.\n" +"\n" +"Примечание: расчёт смещения не учитывает ускорения, команды движения по дуге (аппроксимацию дугами) и пользовательский G-код." msgid "Only overhangs" msgstr "Только на нависаниях" @@ -15308,7 +15149,8 @@ msgid "" "This is useful for fans where a low PWM/power may be insufficient to get the fan started spinning from a stop, or to get the fan up to speed faster.\n" "Set to 0 to deactivate." msgstr "" -"Время принудительного запуска (kick-start) вентилятора на максимальной скорости, после чего скорость снижается до целевой. Это необходимо для вентиляторов у которых низкое значение уровня ШИМ/мощности может быть недостаточен для запуска вентилятора после остановки или для более быстрого увеличения скорости его вращения.\n" +"Время принудительного запуска на максимальных оборотах перед выходом на заданный процент скорости. Полезно для повышения отзывчивости вентиляторов с инертным ротором (а также в случаях, когда для его страгивания требуется дополнительное усилие).\n" +"\n" "Установите 0 для отключения." msgid "Minimum non-zero part cooling fan speed" @@ -15352,16 +15194,15 @@ msgid "" "Enable this if printer support air filtration\n" "G-code command: M106 P3 S(0-255)" msgstr "" -"Если в принтере имеется вытяжной вентилятор и вам требуется дополнительное охлаждение внутренней области принтера, включите эту опцию.\n" +"Включить управление вытяжным вентилятором из настроек материала.\n" "Команда G-кода: M106 P3 S(0-255)" -# AI Translated +# Из ченжлогов Bambu: Added a filtering option with cooling mode for the adaptive air circulation system. This option can be enabled via the slicer or the printer UI, and it's mainly used to filter the air when exhausting the air for low-temperature filaments msgid "Use cooling filter" -msgstr "Использовать фильтр охлаждения" +msgstr "Охлаждать через фильтр" -# AI Translated msgid "Enable this if printer support cooling filter" -msgstr "Включите, если принтер поддерживает фильтр охлаждения" +msgstr "Включить управление вытяжным вентилятором." msgid "G-code flavor" msgstr "Тип G-кода" @@ -15542,33 +15383,29 @@ msgstr "Угол нависания заполнения" msgid "The angle of the infill angled lines. 60° will result in a pure honeycomb." msgstr "Угол нависания линий заполнения. При 60° получаются правильные соты." -# AI Translated msgid "Lightning overhang angle" -msgstr "Угол нависания для «Молнии»" +msgstr "Наклон поверхности для поддержки молнией" -# AI Translated msgid "Maximum overhang angle for Lightning infill support propagation." -msgstr "Максимальный угол нависания для распространения поддержки заполнения «Молния»." +msgstr "Максимальный угол наклона внутренних поверхностей для их поддержки отдельными ветвями молнии." -# AI Translated msgid "Prune angle" -msgstr "Угол обрезки" +msgstr "Наклон опор" -# AI Translated +# Оооочень технично. Самая главная проблема в понимании – шаблон генерируется "сверху вниз" (а не наоборот, как можно бы подумать), из-за чего и возникает вся эта техничность в содержании подсказок. На Вики чуть понятнее, но всё равно чрезвычайно технично. Убрал описание тонкостей фильтрации алгоритма и заменил на то, что по сути делает настройка. msgid "" "Controls how aggressively short or unsupported Lightning branches are pruned.\n" "This angle is converted internally to a per-layer distance." msgstr "" -"Определяет, насколько агрессивно обрезаются короткие или неподдерживаемые ветви «Молнии».\n" -"Внутренне этот угол преобразуется в расстояние на слой." +"Допустимый наклон опор молнии. Чем выше, тем быстрее и экономичнее распространяются её ветви." -# AI Translated +# "Выпрямление" здесь, вопреки первой мысли – это как раз-таки наоборот искажение шаблона по ходу печати для сокращения количества ветвей. Короче, опять путаница из-за того, что генерация ветвей происходит сверху вниз. При печати снизу вверх шаблон именно что искажается. msgid "Straightening angle" -msgstr "Угол выпрямления" +msgstr "Наклон локальных искажений" -# AI Translated +# При минимальном значении сразу понятно, что делает. Может стоит это указать, чтобы людям было проще осваивать настройку. msgid "Maximum straightening angle used to simplify Lightning branches." -msgstr "Максимальный угол выпрямления, используемый для упрощения ветвей «Молнии»." +msgstr "Дополнительные искажения позволяют эффективнее объединять опоры для ветвей. Чем больше наклон, тем сильнее может искажаться контур молнии." msgid "Sparse infill anchor length" msgstr "Длина привязок шаблона заполнения" @@ -15939,37 +15776,30 @@ msgstr "Минимальная скорость холостых перемещ msgid "Minimum travel speed (M205 T)" msgstr "Минимальная скорость перемещения без печати (M205 T)" -# AI Translated msgid "Maximum force of the Y axis" msgstr "Максимальное усилие оси Y" -# AI Translated +# По сути, перемножение массы на ускорение msgid "The allowed maximum output force of Y axis" -msgstr "Допустимое максимальное выходное усилие оси Y" +msgstr "Максимально допустимое усилие по оси Y." -# AI Translated msgid "N" msgstr "Н" -# AI Translated msgid "Bed mass of the Y axis" -msgstr "Масса стола по оси Y" +msgstr "Масса стола (оси Y)" -# AI Translated msgid "The machine bed mass load of Y axis" -msgstr "Массовая нагрузка стола машины по оси Y" +msgstr "Пассивная нагрузка механики оси Y массой стола." -# AI Translated msgid "g" msgstr "г" -# AI Translated msgid "The allowed max printed mass" -msgstr "Допустимая максимальная масса печати" +msgstr "Максимально допустимая масса печати" -# AI Translated msgid "The allowed max printed mass on a plate" -msgstr "Допустимая максимальная масса печати на столе" +msgstr "Максимально допустимая масса деталей на столе." msgid "Maximum acceleration for extruding" msgstr "Максимальное ускорение при печати" @@ -16127,8 +15957,9 @@ msgid "The highest printable layer height for the extruder. Used to limit the ma msgstr "Максимальная высота слоя для печати этим экструдером. Используется в качестве ограничения при использовании адаптивной высоты слоя." msgid "Extrusion rate smoothing" -msgstr "Сглаживание подачи" +msgstr "Сглаживание расхода" +# Провёл семантическую оптимизацию, очень уж длинно расписано. Плюс убрал про PrusaSlicer, т.к. в локализациях одинаково. + пояснения про скорость/ширину, т.к. Орка теперь умеет напрямую раскрашивать расход без необходимости считать его ручками. msgid "" "This parameter smooths out sudden extrusion rate changes that happen when the printer transitions from printing a high flow (high speed/larger width) extrusion to a lower flow (lower speed/smaller width) extrusion and vice versa.\n" "\n" @@ -16144,16 +15975,15 @@ msgid "" "\n" "Note: this parameter disables arc fitting." msgstr "" -"Сглаживает резкие изменения скорости подачи материала, которые происходят при переходе от печати с большим расходом (высокая скорость/большая ширина линии) к печати с меньшим расходом (меньшая скорость/меньшая ширина) и наоборот.\n" +"Сглаживает резкие изменения скорости подачи материала, которые происходят при переходе от печати с бóльшим расходом к печати с меньшим (и наоборот).\n" +"\n" +"По сути, ограничение производной от расхода: ограничивает скорость, с которой расход материала может меняться за единицу времени. Чем выше лимит, тем быстрее может меняться расход.\n" "\n" -"Параметр задаёт максимальную скорость, с которой расход материала может измениться за единицу времени. Чем выше лимит, тем быстрее может меняться расход материала. \n" "Установите 0 для отключения.\n" "\n" -"Для скоростных принтеров с прямой системой подачи и производительным экструдером (например, Bambu lab или Voron) сглаживание подачи обычно не требуется. Однако в некоторых случаях, когда скорость печати сильно различается, это может принести дополнительную пользу. Например, когда происходят резкие замедления из-за нависаний. В этих случаях рекомендуется использовать высокое значение, составляющее около 300-350 мм³/с², при оптимально настроенном Pressure Advance (коррекции давления) это поможет достичь более плавного перехода.\n" +"Для скоростных принтеров с производительным экструдером сглаживание обычно не требуется, но может быть полезным в местах с высоким перепадом скоростей. Например, для сглаживания замедлений при печати нависаний. При точно настроенной коррекции давления (коэффициент PA и время сглаживания) значения около 300-350 мм³/с² помогут дополнительно сгладить такие места.\n" "\n" -"У более медленных принтеров с внешней системой подачи или прошивкой без коррекции давления значение должно быть значительно ниже. 10-15 мм³/с² является хорошей отправной точкой для экструдеров с прямой подачей и 5-10 мм³/с² для внешней.\n" -"\n" -"В Prusa Slicer эта функция известна как «Сглаживание расхода» (Pressure equalizer).\n" +"Для более медленных принтеров с внешней системой подачи или прошивкой без коррекции давления значение должно быть гораздо ниже: 10-15 мм³/с² при прямой подаче и 5-10 мм³/с² при внешней.\n" "\n" "Примечание: при ненулевом значении отключает аппроксимацию дугами." @@ -16161,7 +15991,7 @@ msgid "mm³/s²" msgstr "мм³/с²" msgid "Smoothing segment length" -msgstr "Длина сглаживающего сегмента" +msgstr "Протяжённость сглаживания" msgid "" "A lower value results in smoother extrusion rate transitions. However, this results in a significantly larger G-code file and more instructions for the printer to process.\n" @@ -16176,14 +16006,13 @@ msgstr "" "\n" "Допустимые значения: 0,5–5" -# ??? msgid "Apply only on external features" -msgstr "Применять только к видимым элементам" +msgstr "Применять только к видимым элементам" msgid "Applies extrusion rate smoothing only on external perimeters and overhangs. This can help reduce artefacts due to sharp speed transitions on externally visible overhangs without impacting the print speed of features that will not be visible to the user." msgstr "" -"Сглаживание скорости экструзии будет применяться только к внешним периметрам и нависаниям.\n" -"Это помогает уменьшить количество артефактов, вызванные резкими перепадами скорости на видимых внешних участках, без влияния на скорость печати внутренних элементов, которые не видны пользователю." +"Применять сглаживание расхода только к внешним периметрам и нависаниям.\n" +"Помогает компенсировать видимые артефакты перепада скоростей без влияния на скорость печати внутренних элементов." msgid "Minimum speed for part cooling fan." msgstr "Минимальная скорость вентилятора обдува модели." @@ -16192,29 +16021,28 @@ msgid "" "Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers which is defined by no cooling layers.\n" "Please enable auxiliary_fan in printer settings to use this feature. G-code command: M106 P2 S(0-255)" msgstr "" -"Скорость вращения вспомогательного вентилятора для охлаждения моделей. Обычно это боковой вентилятор. Он всегда будет работать с этой скоростью, за исключением первых нескольких слоёв, которые обычно настроены на работу без охлаждения.\n" -"Пожалуйста, включите вспомогательный вентилятор для охлаждения моделей (auxiliary_fan) в настройках принтера, чтобы использовать эту функцию.\n" +"Процент скорости вспомогательного вентилятора для охлаждения моделей. Используется на протяжении всей печати (кроме слоёв, указанных в разделе «Охлаждение начала печати»).\n" +"Для работы этой настройки необходимо включить поддержку вспомогательного вентилятора на стороне принтера в его профиле.\n" "Команда G-кода: M106 P2 S(0-255)." -# AI Translated msgid "For the first" msgstr "Для первых" -# AI Translated msgid "Set special auxiliary cooling fan for the first certain layers." -msgstr "Задаёт особую скорость вспомогательного вентилятора обдува для первых нескольких слоёв." +msgstr "Особая скорость вспомогательного вентилятора для первых нескольких слоёв." -# AI Translated msgid "" "Auxiliary fan speed will be ramped up linearly from layer \"For the first\" to maximum at layer \"Full fan speed at layer\".\n" "\"Full fan speed at layer\" will be ignored if lower than \"For the first\", in which case the fan will run at maximum allowed speed at layer \"For the first\" + 1." msgstr "" -"Скорость вспомогательного вентилятора будет линейно увеличиваться от слоя «Для первых» до максимума на слое «Полная скорость вентилятора на слое».\n" -"«Полная скорость вентилятора на слое» будет проигнорирована, если она меньше «Для первых»; в этом случае вентилятор будет работать на максимально допустимой скорости на слое «Для первых» + 1." +"Начиная с указанного слоя, интенсивность охлаждения будет равномерно меняться для перехода к требуемым условиям обдува детали.\n" +"\n" +"Если активна настройка «Не обдувать первые N слоёв» – с учётом этих слоёв.\n" +"\n" +"Примечание: если слоёв с заблокированным обдувом больше, чем указано здесь, то восстановление происходит моментально на первом доступном слое." -# AI Translated msgid "Special auxiliary cooling fan speed, effective only for the first x layers." -msgstr "Особая скорость вспомогательного вентилятора обдува, действует только для первых x слоёв." +msgstr "Особая скорость вспомогательного вентилятора для первых N слоёв." msgid "The lowest printable layer height for the extruder. Used to limit the minimum layer height when enable adaptive layer height." msgstr "Минимальная высота слоя для печати этим экструдером. Используется в качестве ограничения при использовании адаптивной высоты слоя." @@ -16336,9 +16164,9 @@ msgstr "Глухие отверстия в основании модели ра msgid "Detect overhang walls" msgstr "Обнаруживать нависающие периметры" -#, fuzzy, c-format, boost-format +#, c-format, boost-format msgid "This detects the overhang percentage relative to line width and uses a different speed to print. For 100%% overhang, bridging speed is used." -msgstr "Определяет процент нависания относительно ширины линии и использует разную скорость печати. Для 100%-го нависания используется скорость печати мостов." +msgstr "Использовать разную скорость печати в зависимости от выноса линии относительно её опоры. Для нависаний без опоры используется скорость печати мостов." # В секции "Материал для линий" msgid "Outer walls" @@ -16396,17 +16224,15 @@ msgstr "G-код при смене типа линии (настройки пе msgid "This G-code is inserted when the extrusion role is changed. It runs after the machine and filament extrusion role G-code." msgstr "Команды в G-коде, которые выполняются между печатью разных элементов структуры (например, при переходе от периметра к заполнению). Выполняются после команд смены типа линии из настроек принтера и материала." -# AI Translated msgid "Plugins Used" msgstr "Используемые плагины" -# AI Translated +# Функционал плагинов для этого прояиля, указывается... msgid "Plugin capabilities referenced by this preset, stored as name;uuid;capability." -msgstr "Возможности плагинов, на которые ссылается этот профиль, хранятся как name;uuid;capability." +msgstr "Функционал плагинов, на который ссылается этот профиль, указывается как name;uuid;capability." -# AI Translated msgid "Python plugin(s) invoked at each slicing pipeline step to read and modify intermediate slicing data, including a final G-code post-processing step. Research/experimental." -msgstr "Плагины Python, вызываемые на каждом шаге конвейера нарезки для чтения и изменения промежуточных данных нарезки, включая финальный шаг постобработки G-code. Исследовательская/экспериментальная функция." +msgstr "Python-плагины, вызываемые на каждом этапе нарезки для чтения и изменения промежуточных её данных (включая финальную постобработку G-кода). Тестовая/экспериментальная функция." msgid "Printer type" msgstr "Тип принтера" @@ -16475,18 +16301,17 @@ msgstr "" "\n" "Примечание: значение не может быть меньше 25% или больше 100% и будет скорректировано автоматически при нарезке." -# AI Translated msgid "Retract amount after wipe" -msgstr "Величина отката после обтирания" +msgstr "Вторичный откат" -# AI Translated #, no-c-format, no-boost-format msgid "" "The length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" -"Длина быстрого отката после обтирания относительно длины отката.\n" -"Значение будет ограничено 100% минус величина отката до обтирания." +"Быстрый откат после очистки, выраженный в процентах от общей длины отката. В некоторых случаях позволяет значительно снизить количество «паутины»." +"\n" +"Примечание: суммарное значение не должно превышать 100% и будет скорректировано автоматически." msgid "Retract on layer change" msgstr "Откат при смене слоя" @@ -16613,18 +16438,16 @@ msgstr "Прямой (Direct)" msgid "Bowden" msgstr "Внешний (Bowden)" -# AI Translated +# https://wiki.bambulab.com/ru/h2c/manual/bambu-studio-h2c-operation#:~:text=Гибридный msgid "Hybrid" msgstr "Гибридный" -# Разобраться позже: wiki.bambulab.com/en/software/bambu-studio/filament-track-switch-dynamic-mapping -# AI Translated +# https://wiki.bambulab.com/ru/software/bambu-studio/filament-track-switch-dynamic-mapping msgid "Enable filament dynamic map" -msgstr "Включить динамическое сопоставление материалов" +msgstr "Динамическое сопоставление материалов" -# AI Translated msgid "Enable dynamic filament mapping during print." -msgstr "Включает динамическое сопоставление материалов во время печати." +msgstr "Включить динамическое сопоставление материалов во время печати." msgid "Has filament switcher" msgstr "Автосмена материала" @@ -16651,15 +16474,13 @@ msgid "Deretraction speed" msgstr "Скорость возврата" msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction." -msgstr "Скорость возврата материала в экструдер после отката. При значении 0 используется скорость отката." +msgstr "Скорость возврата материала в сопло после отката.\n0 – использовать скорость отката." -# AI Translated msgid "Deretraction speed (extruder change)" -msgstr "Скорость подачи (смена экструдера)" +msgstr "Скорость возврата (смена экструдера)" -# AI Translated msgid "Speed for reloading filament into the nozzle when switching extruder." -msgstr "Скорость возврата материала в сопло при смене экструдера." +msgstr "Скорость возврата материала в сопло после смены экструдера." msgid "Use firmware retraction" msgstr "Откат на уровне прошивки" @@ -16920,13 +16741,13 @@ msgstr "Тип юбки" # Про расширенное описание см. в комментарии к перевод подсказки настройки "Skirt minimum extrusion length" msgid "Combined - single skirt for all objects, Per object - individual object skirt." msgstr "" -"Выбор типа печатаемой юбки – одна общая для всех моделей или отдельные юбки для каждой модели.\n" +"Выбор типа печатаемой юбки – одна общая для всех моделей или независимые юбки для каждой модели.\n" "\n" "Внимание: при создании индивидуальных юбок проверка пересечения не совершается, из-за чего при близком расположении моделей они могут накладываться друг на друга. В таких случаях рекомендуется понизить количество контуров." # Отдельный (антоним к "совместный") msgid "Per object" -msgstr "Для каждой модели" +msgstr "Независимый" msgid "Skirt loops" msgstr "Контуров юбки" @@ -17032,21 +16853,20 @@ msgstr "" "Можно указать своё конечное значение потока, чтобы избежать подобных проблем." msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle." -msgstr "На протяжении всей печати встроенная камера делает снимки, которые затем объединяются в ускоренное видео. Избыточные резкие движения в кадре можно сгладить при помощи соответствующего режима; после печати каждого слоя для создания снимка экструдер будет отводиться к лотку для удаления излишков. В этом режиме необходима черновая башня для устранения возможных подтёков во время создания снимка." +msgstr "На протяжении всей печати в конце слоя встроенная камера делает снимки, которые затем объединяются в ускоренное видео. Избыточные резкие движения в кадре можно сгладить при помощи «Плавного» режима, в котором для создания снимка экструдер будет отводиться к лотку для сброса материала. В этом режиме необходима черновая башня для устранения возможных подтёков во время создания снимка." msgid "Traditional" -msgstr "По умолчанию" +msgstr "Обычный" +# Для кнопки "Сгладить" добавили контекст, теперь их можно разделить. msgid "Smooth" -msgstr "Сгладить" +msgstr "Плавный" -# AI Translated msgid "Farthest point timelapse" -msgstr "Таймлапс из дальней точки" +msgstr "Съёмка из дальней точки" -# AI Translated msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers." -msgstr "Когда включено, снимок таймлапса делается из наиболее удалённой от камеры точки вместо перемещения к черновой башне или лотку сброса излишков. Действует только в традиционном режиме таймлапса на принтерах, отличных от I3." +msgstr "Делать снимки из наиболее удалённой от камеры точки вместо перемещения к черновой башне или лотку для сброса материала. Работает только в обычном режиме таймлапса на принтерах с кинематикой, отличной от I3." msgid "Temperature variation" msgstr "Разница температур" @@ -17096,10 +16916,10 @@ msgid "Enable this option to omit the custom Change filament G-code only at the msgstr "Полезно для смены материала вручную при совместной печати через общий экструдер, где для этого используются команды M600/PAUSE. Отключает выполнение «G-кода смены материала» в самом начале печати (обычно это не требуется, так как пруток уже заправлен). Команда смены инструмента (например, T0) будет пропускаться на протяжении всей печати." msgid "Wipe tower type" -msgstr "Тип башни очистки" +msgstr "Тип черновой башни" msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility." -msgstr "Выберите реализацию башни очистки для многоматериальной печати. Тип 1 рекомендуется для принтеров Bambu и Qidi с обрезчиком филамента. Тип 2 обеспечивает лучшую совместимость с многоинструментальными и MMU-принтерами и в целом более универсален." +msgstr "Выбор реализации черновой башни при печати несколькими материалами. Тип 1 рекомендуется для принтеров Bambu и Qidi с обрезкой прутка. Тип 2 – универсальный вариант с поддержкой широкого спектра принтеров (в т.ч. с системами смены материала и инструментов)." msgid "Type 1" msgstr "Тип 1" @@ -17736,24 +17556,22 @@ msgstr "" "\n" "Примечание: влияет только на принтеры Bambu, в остальных случаях башня автоматически сужается по необходимости." -# ??? настройка отключена в коде +# настройка отключена в коде msgid "Purging volumes" msgstr "Объём прочистки" -# ??? настройка отключена в коде +# настройка отключена в коде msgid "Flush multiplier" msgstr "Множитель прочистки" msgid "The actual flushing volumes is equal to the flush multiplier value multiplied by the flushing volumes in the table." msgstr "Реальные объёмы прочистки равны произведению множителя и значений, указанных в таблице." -# AI Translated msgid "Flush multiplier (Fast mode)" msgstr "Множитель прочистки (быстрый режим)" -# AI Translated msgid "The flush multiplier used in fast purge mode." -msgstr "Множитель прочистки, используемый в режиме быстрой прочистки." +msgstr "Множитель для режима быстрой прочистки." msgid "Prime volume" msgstr "Объём сброса материала на черновой башне" @@ -17761,24 +17579,20 @@ msgstr "Объём сброса материала на черновой баш msgid "This is the volume of material to prime the extruder with on the tower." msgstr "Объём материала, который необходимо выдавить для подготовки экструдера на черновой башне." -# AI Translated msgid "Prime volume mode" -msgstr "Режим объёма подготовки" +msgstr "Режим прочистки" -# AI Translated msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers." -msgstr "Определяет, как вычисляются объёмы подготовки и прочистки черновой башни на многоэкструдерных принтерах." +msgstr "Режим расчёта прочистки на черновой башне для многоэкструдерных принтеров." -# AI Translated msgid "Saving" msgstr "Экономия" -# AI Translated msgid "Fast" msgstr "Быстрый" msgid "This is the width of prime towers." -msgstr "Размер черновой башни по оси X. Размер по оси Y будет автоматически вычислен исходя из необходимого объёма очистки и ширины башни. Таким образом, увеличивая ширину башни вы уменьшаете её длину и наоборот." +msgstr "Размер черновой башни по оси X. Размер по оси Y будет автоматически вычислен исходя из необходимого объёма прочистки и ширины башни. Таким образом, увеличивая ширину башни вы уменьшаете её длину и наоборот." msgid "Wipe tower rotation angle" msgstr "Угол поворота черновой башни" @@ -17810,7 +17624,7 @@ msgid "" "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting." msgstr "" "Максимальная скорость печати при очистке в черновую башню и печати её разреженных слоёв.\n" -"Во время очистки программа сопоставляет скорость разреженного заполнения и скорость, рассчитанную по 'максимальному объёмному расходу', и использует наименьшую.\n" +"Во время прочистки программа сопоставляет скорость разреженного заполнения и скорость, рассчитанную по 'максимальному объёмному расходу', и использует наименьшую.\n" "При печати разреженных слоёв программа сопоставляет скорость внутренних периметров и скорость, рассчитанную по 'максимальному объёмному расходу', и также использует наименьшую.\n" "\n" "Увеличение этой скорости может повлиять на устойчивость башни, а также увеличить силу, с которой сопло сталкивается с любыми наплывами, которые могли образоваться на черновой башне.\n" @@ -17844,7 +17658,7 @@ msgid "Extra rib length" msgstr "Вынос основания ребра" msgid "Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume." -msgstr "Положительное значение может увеличить длину ребра, а отрицательное - уменьшить. Однако она не может быть меньше размера, определяемого объёмом очистки." +msgstr "Положительное значение может увеличить длину ребра, а отрицательное - уменьшить. Однако она не может быть меньше размера, определяемого объёмом прочистки." msgid "Rib width" msgstr "Ширина ребра" @@ -18106,79 +17920,62 @@ msgstr "" "\n" "Примечание: периметр может расширяться до ширины элемента." -# AI Translated msgid "Hotend change time" msgstr "Время смены хотэнда" -# AI Translated msgid "Time to change hotend." -msgstr "Время смены хотэнда." +msgstr "Время, затрачиваемое на смену хотэнда." -# AI Translated msgid "Hotend change" msgstr "Смена хотэнда" -# AI Translated msgid "When changing the hotend, it is recommended to extrude a certain length of filament from the original nozzle. This helps minimize nozzle oozing." -msgstr "При смене хотэнда рекомендуется выдавить определённую длину материала из исходного сопла. Это помогает минимизировать вытекание из сопла." +msgstr "При смене хотэнда рекомендуется выдавить немного материала из прежнего сопла. Помогает минимизировать последующие подтёки." -# AI Translated msgid "Extruder change" msgstr "Смена экструдера" msgid "To prevent oozing, the nozzle will perform a reverse travel movement for a certain period after the ramming is complete. The setting define the travel time." -msgstr "Чтобы материал не подтекал, материал после рэмминга немного отъезжает назад. Этот параметр задаёт время движения в обратном направлении." +msgstr "Время движения сопла в обратном направлении во избежание подтёков из него. Выполняется по завершении рэмминга." msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Therefore, the ramming time must be greater than the cooldown time. 0 means disabled." -msgstr "Для предотвращения подтекания материала, температура сопла будет снижена во время рэмминга. Поэтому время рэмминга должно быть больше времени охлаждения. 0 значит отключено." +msgstr "Во избежание подтёков температура сопла будет снижена на время рэмминга. Поэтому время рэмминга должно быть больше времени охлаждения. 0 значит отключено." -# AI Translated msgid "The maximum volumetric speed for ramming before extruder change, where -1 means using the maximum volumetric speed." -msgstr "Максимальный объёмный расход при рэмминге перед сменой экструдера, где -1 означает использование максимального объёмного расхода." +msgstr "Максимальный объёмный расход для рэмминга перед сменой экструдера.\n-1 – использовать максимальный расход." -# AI Translated msgid "To prevent oozing, the nozzle temperature will be cooled during ramming. Note: only a cooldown command and fan activation are triggered, reaching the target temperature is not guaranteed. 0 means disabled." -msgstr "Во избежание вытекания температура сопла будет снижена во время рэмминга. Примечание: срабатывают только команда охлаждения и включение вентилятора; достижение целевой температуры не гарантируется. 0 означает отключено." +msgstr "Во избежание подтёков температура сопла будет снижена на время рэмминга.\n0 – не менять температуру.\n\nПримечание: срабатывают только команда охлаждения и включение вентилятора; достижение целевой температуры не гарантируется." -# AI Translated msgid "The maximum volumetric speed for ramming before a hotend change, where -1 means using the maximum volumetric speed." -msgstr "Максимальный объёмный расход при рэмминге перед сменой хотэнда, где -1 означает использование максимального объёмного расхода." +msgstr "Максимальный объёмный расход для рэмминга перед сменой хотэнда.\n-1 – использовать максимальный расход." -# AI Translated msgid "length when change hotend" -msgstr "длина при смене хотэнда" +msgstr "Откат при смене хотэнда" -# AI Translated msgid "When this retraction value is modified, it will be used as the amount of filament retracted inside the hotend before changing hotends." -msgstr "При изменении этого значения отката оно будет использоваться как величина отката материала внутри хотэнда перед сменой хотэндов." +msgstr "Величина отката материала внутри хотэнда перед его сменой." -# AI Translated msgid "Support fast purge mode" -msgstr "Поддержка режима быстрой прочистки" +msgstr "Режим быстрой прочистки" -# AI Translated msgid "Whether this printer supports fast purge mode with optimized temperature and multiplier." -msgstr "Поддерживает ли этот принтер режим быстрой прочистки с оптимизированной температурой и множителем." +msgstr "Поддерживает ли принтер режим быстрой прочистки с оптимизированной температурой и множителем." -# AI Translated msgid "Filament change" msgstr "Смена материала" -# AI Translated msgid "The volume of material required to prime the extruder on the tower, excluding a hotend change." -msgstr "Объём материала, необходимый для подготовки экструдера на башне, исключая смену хотэнда." +msgstr "Объём материала, необходимый для прочистки экструдера на башне, не считая смены хотэнда." -# AI Translated msgid "The volume of material required to prime the extruder for a hotend change on the tower." -msgstr "Объём материала, необходимый для подготовки экструдера при смене хотэнда на башне." +msgstr "Объём материала, необходимый для прочистки экструдера на башне при смене хотэнда." -# AI Translated msgid "Preheat temperature delta" -msgstr "Дельта температуры предварительного нагрева" +msgstr "Дельта преднагрева" -# AI Translated msgid "Temperature delta applied during pre-heating before tool change." -msgstr "Дельта температуры, применяемая при предварительном нагреве перед сменой инструмента." +msgstr "Разница температуры для предварительного нагрева перед сменой инструмента." msgid "Detect narrow internal solid infills" msgstr "Оптимизация заполнения узких мест" @@ -18301,11 +18098,11 @@ msgstr "Экспорт настроек в файл." # командная строка? нужен ли пеевод? msgid "Send progress to pipe" -msgstr "Отправлять прогресс в канал" +msgstr "Send progress to pipe" # ??? это относится к командной строке msgid "Send progress to pipe." -msgstr "Отправлять прогресс в канал." +msgstr "Send progress to pipe." msgid "Arrange Options" msgstr "Параметры расстановки" @@ -18455,15 +18252,14 @@ msgstr "" msgid "Log file" msgstr "Файл журнала" -# AI Translated msgid "Redirects debug logging to file.\n" -msgstr "Перенаправляет отладочный журнал в файл.\n" +msgstr "Направляет отладочные записи в файл.\n" msgid "Enable timelapse for print" msgstr "Вкл. таймлапс для печати" msgid "If enabled, this slicing will be considered using timelapse." -msgstr "Если включено, текущая нарезка будет выполнена с учётом функции таймлапса." +msgstr "Выполнять нарезку с учётом записи таймлапса." msgid "Load custom G-code" msgstr "Загрузить пользовательский G-код" @@ -18471,7 +18267,7 @@ msgstr "Загрузить пользовательский G-код" msgid "Load custom G-code from json." msgstr "Загрузить G-код из json." -# ??? назначить идентификаторы +# назначить идентификаторы msgid "Load filament IDs" msgstr "Загрузить идентификаторы материалов" @@ -18481,7 +18277,6 @@ msgstr "Загрузить идентификаторы материалов д msgid "Allow multiple colors on one plate" msgstr "Игнорировать разницу в цвете" -# ???? msgid "If enabled, Arrange will allow multiple colors on one plate." msgstr "Если включено, модели разных цветов не будут разделяться на разные столы." @@ -18530,9 +18325,8 @@ msgstr "Список значений метаданных, добавляемы msgid "Allow 3MF with newer version to be sliced" msgstr "Разрешить нарезку 3MF более новой версии" -# ??? msgid "Allow 3MF with newer version to be sliced." -msgstr "Разрешить нарезку новых версий 3MF-файлов." +msgstr "Разрешить нарезку проектов из более новых версий." msgid "Current Z-hop" msgstr "Подъём оси Z" @@ -18877,13 +18671,13 @@ msgid "" "An object's XY size compensation will not be used because it is also color-painted.\n" "XY Size compensation cannot be combined with color-painting." msgstr "" -"Коррекция горизонтальных размеров модели не будет действовать, поскольку для этой модели была выполнена операция окрашивания.\n" -"Коррекция горизонтальных размеров модели не может использоваться в сочетании с функцией раскрашивания." +"Функция «Расширение контура/пустот слоя» игнорируется.\n" +"Коррекцию невозможно выполнить для нескольких материалов в окрашенной модели." msgid "" "An object has enabled XY Size compensation which will not be used because it is also fuzzy skin painted.\n" "XY Size compensation cannot be combined with fuzzy skin painting." -msgstr "Функция «Расширение контура слоя» игнорируется. Коррекцию контура слоя невозможно выполнить, если его часть принадлежит нечёткой оболочке." +msgstr "Функция «Расширение контура/пустот слоя» игнорируется. Коррекцию невозможно выполнить, если часть слоя принадлежит нечёткой оболочке." msgid "Object name" msgstr "Имя модели" @@ -19034,7 +18828,7 @@ msgstr "" #, c-format, boost-format msgid "Only one of the results with the same name: %s will be saved. Are you sure you want to override the other results?" -msgstr "Будет сохранён только один из одноимённых результатов (%s). Вы действительно хотите перезаписать остальные?" +msgstr "Будет сохранён только один из одноимённых результатов (%s). Перезаписать остальные?" #, c-format, boost-format msgid "There is already a previous calibration result with the same name: %s. Only one result with a name is saved. Are you sure you want to overwrite the previous result?" @@ -19045,7 +18839,7 @@ msgid "" "Within the same extruder, the name(%s) must be unique when the filament type, nozzle diameter, and nozzle flow are the same.\n" "Are you sure you want to override the historical result?" msgstr "" -"Для одного экструдера имя (%s) должно быть уникальным, если тип материала, диаметр сопла и поток одинаковы.\n" +"В рамках одного экструдера имя (%s) должно быть уникальным, если тип материала, диаметр сопла и поток одинаковы.\n" "Перезаписать прошлый результат?" #, c-format, boost-format @@ -19177,13 +18971,11 @@ msgstr "Введите имя для сохранения на принтере. msgid "The name cannot exceed 40 characters." msgstr "Максимальная длина имени 40 символов." -# AI Translated msgid "Nozzle ID" msgstr "ID сопла" -# AI Translated msgid "Standard Flow" -msgstr "Стандартный расход" +msgstr "Обычный расход" msgid "Please find the best line on your plate" msgstr "Пожалуйста, найдите лучшую линию на столе" @@ -19350,7 +19142,7 @@ msgstr "История успешных результатов калибров msgid "Refreshing the previous Flow Dynamics Calibration records" msgstr "Обновление записей прошлых калибровок динамики потока" -# AI Translated +# Подставляется toolhead_display_name #, c-format, boost-format msgid "Note: The hotend number on the %s is tied to the holder. When the hotend is moved to a new holder, its number will update automatically." msgstr "Примечание: номер хотэнда на %s привязан к держателю. При перемещении хотэнда в новый держатель его номер обновится автоматически." @@ -19367,7 +19159,7 @@ msgstr "Редактировать калибровку динамики пот #, c-format, boost-format msgid "Within the same extruder, the name '%s' must be unique when the filament type, nozzle diameter, and nozzle flow are identical. Please choose a different name." -msgstr "Для одного экструдера имя «%s» должно быть уникальным при одинаковых типе филамента, диаметре и потоке сопла. Пожалуйста, выберите другое имя." +msgstr "В рамках одного экструдера имя (%s) должно быть уникальным, если тип материала, диаметр сопла и поток одинаковы. Укажите другое имя." msgid "New Flow Dynamic Calibration" msgstr "Новая калибровка динамики потока" @@ -19413,6 +19205,20 @@ msgstr "" "По имени хоста %1% обнаружено несколько IP-адресов.\n" "Выберите адрес для использования." +# В калибровке температуры и расхода +msgid "Auto-scale for nozzle" +msgstr "Адаптация к соплу" + +# Речь о температурной башне +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Тестовая модель рассчитана на сопло 0,4 мм и высоту слоя 0,2 мм.\n" +"При включении адаптации (рекомендуется) её размер динамически подстраивается под диаметр текущего сопла и подходящую высоту слоя, благодаря чему тест получается более точным и читаемым.\n" +"Отключать имееет смысл для печати эталонной модели ровно в исходном виде." + # В заголовке окна куча места msgid "PA Calibration" msgstr "Калибровка Pressure Advance" @@ -19549,6 +19355,15 @@ msgstr "Начальная скорость: " msgid "End speed: " msgstr "Конечная скорость: " +msgid "Auto-adjust to max volumetric speed" +msgstr "Адаптация к расходу" + +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "" +"Автоматически уменьшать высоту слоя для обеспечения требуемой скорости. Позволяет не упираться в предел объёмного расхода материала.\n" +"\n" +"Примечание: скорость всё равно может снижаться в случае упора в минимальную высоту слоя из заданных ограничений принтера." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19560,6 +19375,50 @@ msgstr "" "Шаг ≥ 0\n" "Конечное > начальное + шаг" +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Конечная скорость (%.0f мм/с) приводит к превышению предела объёмного расхода материала (%.1f мм³/с). При такой ширине линии периметров и высоте слоя расход ограничивает линейную скорость примерно до %.0f мм/с, и верхние сегменты башни не смогут достичь заданной скорости.\n" +"\n" +"%s" + +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Конечная скорость (%.0f мм/с) приводит к превышению предела объёмного расхода материала (%.1f мм³/с) при высоте слоя по умолчанию (%.2f мм).\n" +"\n" +"Высота слоя уменьшена до %.2f мм (минимально значение из профиля принтера), чтобы башня могла достичь заданной скорости." + +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Конечная скорость (%.0f мм/с) приводит к превышению предела объёмного расхода материала (%.1f мм³/с) даже при минимально допустимой высоте слоя (в соответствии с профилем принтера, %.2f мм).\n" +"\n" +"Высота слоя будет установлена на %.2f мм, а конечная скорость снижена до %.0f мм/с.\n" +"\n" +"Продолжить?" + +msgid "Continue anyway?" +msgstr "Всё равно продолжить?" + +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Включить адаптацию к расходу для автоматического исправления?\nНет – игнорировать предупреждение." + +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Включить адаптацию к соплу и расходу для автоматического исправления?\nНет – игнорировать предупреждение." + msgid "Start retraction length: " msgstr "Начальная длина отката: " @@ -20056,10 +19915,10 @@ msgid "Create Nozzle for Existing Printer" msgstr "Сопло для принтера" msgid "Create from Template" -msgstr "Создать из шаблона" +msgstr "Создать из общих шаблонов" msgid "Create Based on Current Printer" -msgstr "Создать на основе профиля выбранного принтера" +msgstr "Создать из профилей производителя" msgid "Import Preset" msgstr "Импорт профиля" @@ -20188,8 +20047,8 @@ msgid "" "The system preset does not allow creation. \n" "Please re-enter the printer model or nozzle diameter." msgstr "" -"Системный профиль не допускает создания.\n" -"Пожалуйста, повторно введите модель принтера или диаметр сопла." +"Имя совпадает с системным профилем.\n" +"Назовите модель принтера или диаметр сопла иначе." msgid "" "\n" @@ -20383,11 +20242,12 @@ msgid "" "All the filament presets belong to this filament would be deleted.\n" "If you are using this filament on your printer, please reset the filament information for that slot." msgstr "" -"Все профили прутка, относящиеся к этому материалу, будут удалены.\n" -"Если вы используете этот пруток в принтере, пожалуйста, сбросьте информацию о прутке для этого слота." +"Все профили, относящиеся к этому материалу, будут удалены.\n" +"Если вы используете его в принтере, сбросьте информацию о\n" +"нём у соответствующего слота." msgid "Delete filament" -msgstr "Удаление прутка" +msgstr "Удаление материала" msgid "Add Preset" msgstr "Добавить профиль" @@ -20396,13 +20256,13 @@ msgid "Add preset for new printer" msgstr "Добавление профиля для нового принтера" msgid "Copy preset from filament" -msgstr "Копировать профиль из прутка" +msgstr "Копировать профиль из материала" msgid "The filament choice not find filament preset, please reselect it" -msgstr "Не удалось найти профиль прутка. Выберите его повторно" +msgstr "Не удалось найти профиль материала. Выберите его повторно" msgid "[Delete Required]" -msgstr "[Необходимо удалить]" +msgstr "[Требуется удаление]" msgid "Edit Preset" msgstr "Изменить профиль" @@ -20469,8 +20329,8 @@ msgid "" "The currently selected nozzle type of %s extruder does not match the actual printer nozzle type.\n" "Please click the Sync button above and restart the calibration." msgstr "" -"Выбранный тип сопла экструдера %s не соответствует фактическому типу сопла принтера.\n" -"Нажмите кнопку «Синхронизация» выше и перезапустите калибровку." +"Выбранный тип сопла экструдера (%s) не соответствует фактическому типу сопла принтера.\n" +"Нажмите кнопку синхронизации выше и перезапустите калибровку." msgid "Unable to calibrate: maybe because the set calibration value range is too large, or the step is too small" msgstr "Невозможно выполнить калибровку: возможно, установленный диапазон значений калибровки слишком велик или шаг слишком мал" @@ -21132,11 +20992,9 @@ msgstr "Ошибка печати" msgid "Removed" msgstr "Удалено" -# AI Translated msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" -msgstr "Включить умное назначение материалов: назначайте один материал нескольким соплам для максимальной экономии" +msgstr "Включить умное назначение материалов: назначить один материал нескольким соплам для максимальной экономии" -# AI Translated msgid "Fila Saving" msgstr "Экономия материала" @@ -21175,10 +21033,10 @@ msgstr "Видеоурок" msgid "(Sync with printer)" msgstr " (состояние принтера)" -# AI Translated +# Отвратительная подстановка левое/правое и тип расхода сопла #, c-format, boost-format msgid "Error: %s extruder has no available %s nozzle, current group result is invalid." -msgstr "Ошибка: у экструдера %s нет доступного сопла %s, текущий результат группировки недействителен." +msgstr "Ошибка: %s сопло не поддерживает требуемый расход (%s), результат текущей группировки недействителен." msgid "We will slice according to this grouping method:" msgstr "Осуществлять нарезку в соответствии с этой группировкой:" @@ -21186,15 +21044,12 @@ msgstr "Осуществлять нарезку в соответствии с msgid "Tip: You can drag the filaments to reassign them to different nozzles." msgstr "Совет: для назначения материала перетащите его в нужное поле." -# AI Translated msgid "Please adjust your grouping or click " -msgstr "Отрегулируйте группировку или нажмите " +msgstr "Измените группировку или нажмите " -# AI Translated msgid " to set nozzle count" msgstr " для задания количества сопел" -# AI Translated msgid "Set the physical nozzle count..." msgstr "Задать физическое количество сопел..." @@ -21431,7 +21286,7 @@ msgid "Skipping objects." msgstr "Исключение объектов." msgid "Select Filament" -msgstr "Выбрать филамент" +msgstr "Выбрать материал" msgid "Null Color" msgstr "Цвет не задан" @@ -21464,7 +21319,7 @@ msgstr "Ошибка: %s" msgid "Show details" msgstr "Подробнее" -# AI Translated +# В информации о сетевом плагине msgid "Hide details" msgstr "Скрыть подробности" @@ -21493,9 +21348,8 @@ msgstr "Установить обновление" msgid "(Latest)" msgstr "(новейшая)" -# AI Translated msgid "(installed)" -msgstr "(установлено)" +msgstr "(установлена)" msgid "The Bambu Network Plug-in has been installed successfully." msgstr "Сетевой плагин Bambu успешно установлен." @@ -21547,7 +21401,6 @@ msgstr "Сохранить как настройки по умолчанию" msgid "If enabled, the values above are stored as the defaults used for future STEP imports (and shown in Preferences)." msgstr "Активируйте для сохранения настроек импорта после его завершения." -# AI Translated msgid "PresetBundle" msgstr "PresetBundle" @@ -21574,7 +21427,6 @@ msgstr "Удаление пакета" msgid "Unsubscribe bundle?" msgstr "Отписаться от пакета?" -# AI Translated msgid "UnsubscribeBundle" msgstr "UnsubscribeBundle" @@ -21585,11 +21437,9 @@ msgstr "Не удалось отписаться от пакета." msgid "Unsubscribe Bundle" msgstr "Ошибка" -# AI Translated msgid "ExportPresetBundle" msgstr "ExportPresetBundle" -# AI Translated msgid "Save preset bundle" msgstr "Сохранить пакет профилей" @@ -21643,190 +21493,146 @@ msgstr "Просмотр архива" msgid "Open File" msgstr "Открыть файл" -# AI Translated msgid "AMS Dryness Control" msgstr "Управление сушкой AMS" -# AI Translated msgid "Filament Drying Settings" msgstr "Настройки сушки материала" -# AI Translated msgid "Stopping" msgstr "Остановка" -# AI Translated msgid "Unable to dry temporarily due to ..." msgstr "Временно невозможно выполнить сушку из-за ..." -# AI Translated msgid "Drying Error" msgstr "Ошибка сушки" -# AI Translated msgid "Please check the Assistant for troubleshooting" msgstr "Обратитесь к Помощнику для устранения неполадок" -# AI Translated msgid "Please remove and store the filament (as shown)." msgstr "Извлеките и уберите материал на хранение (как показано)." -# AI Translated msgid "The AMS can rotate the filament which is properly stored, providing better drying results." -msgstr "AMS может вращать правильно уложенный на хранение материал, обеспечивая лучший результат сушки." +msgstr "AMS может вращать правильно уложенный на хранение материал, тем самым улучшая эффективность сушки." -# AI Translated msgid "Rotate spool when drying" msgstr "Вращать катушку при сушке" -# AI Translated msgctxt "amsdrying" msgid "Back" msgstr "Назад" -# AI Translated msgid "Drying-Heating" msgstr "Сушка — нагрев" -# AI Translated msgid "Drying-Dehumidifying" -msgstr "Сушка — осушение" +msgstr "Сушка — вывод влаги" -# AI Translated msgid " maximum drying temperature is " msgstr " максимальная температура сушки — " -# AI Translated msgid " minimum drying temperature is " msgstr " минимальная температура сушки — " -# AI Translated msgid "This filament may not be completely dried." -msgstr "Этот материал может быть высушен не полностью." +msgstr "Сушка этого материала может не быть эффективной." -# AI Translated msgid "This AMS is currently printing. To ensure print quality, the drying temperature cannot exceed the recommended drying temperature." -msgstr "Этот AMS сейчас печатает. Для обеспечения качества печати температура сушки не может превышать рекомендованную температуру сушки." +msgstr "AMS сейчас печатает. Во избежание проблем с печатью температура сушки не должна превышать рекомендованную." -# AI Translated msgid "The temperature shall not exceed the filament's heat distortion temperature" -msgstr "Температура не должна превышать температуру тепловой деформации материала" +msgstr "Температура сушки не должна превышать температуру размягчения материала." -# AI Translated msgid "Minimum time value cannot be less than 1." -msgstr "Минимальное значение времени не может быть меньше 1." +msgstr "Минимальное время не может быть меньше 1." -# AI Translated msgid "Maximum time value cannot be greater than 24." -msgstr "Максимальное значение времени не может быть больше 24." +msgstr "Максимальное время не может быть больше 24." -# AI Translated msgid "Insufficient power" -msgstr "Недостаточно питания" +msgstr "Нехватка мощности" -# AI Translated msgid " Too many AMS drying simultaneously. Please plug in the power or stop other drying processes before starting." -msgstr " Слишком много AMS сушат одновременно. Подключите питание или остановите другие процессы сушки перед началом." +msgstr " Слишком много AMS выполняют сушку. Подключите питание или остановите другие сеансы сушки перед началом." -# AI Translated msgid "AMS is busy" -msgstr "AMS занят" +msgstr "AMS занята" -# AI Translated msgid " AMS is calibrating | reading RFID | loading/unloading material, please wait." -msgstr " AMS калибруется | считывает RFID | загружает/выгружает материал, подождите." +msgstr " AMS калибруется | считывает RFID | меняет материал, подождите." -# AI Translated +# на Вики бамбу есть упоминание: https://wiki.bambulab.com/ru/h2/troubleshooting/hmscode/0700_2000_0002_0025#:~:text=выходного%20отверстия%20AMS msgid "Filament in AMS outlet" msgstr "Материал в выходном отверстии AMS" -# AI Translated msgid " The high drying temperature may cause AMS blockage, please unload first." -msgstr " Высокая температура сушки может вызвать засорение AMS, сначала выгрузите материал." +msgstr " Из-за высокой температуры сушки пруток может застрять в AMS, сначала выгрузите материал." -# AI Translated msgid "Initiating AMS drying" msgstr "Запуск сушки AMS" -# AI Translated msgid "Not supported in 2D mode" -msgstr "Не поддерживается в режиме 2D" +msgstr "Не поддерживается в 2D-режиме" -# AI Translated msgid "Task in progress" msgstr "Выполняется задача" -# AI Translated +# CannotDryReason: DryingInProgress msgid " The AMS might be in use during Task." -msgstr " AMS может использоваться во время задачи." +msgstr " AMS может иметь задачи в процессе." -# AI Translated msgid " Firmware update in progress, please wait..." msgstr " Выполняется обновление прошивки, подождите..." -# AI Translated msgid " Please plug in the power and then use the drying function." msgstr " Подключите питание, а затем используйте функцию сушки." -# AI Translated msgid " The high drying temperature may cause AMS blockage. Please unload the filament manually before proceeding." -msgstr " Высокая температура сушки может вызвать засорение AMS. Перед продолжением выгрузите материал вручную." +msgstr " Из-за высокой температуры сушки пруток может застрять в AMS. Перед продолжением выгрузите материал вручную." -# AI Translated msgid "System is busy" msgstr "Система занята" -# AI Translated msgid " Initiating other drying processes, please wait a few seconds..." msgstr " Запускаются другие процессы сушки, подождите несколько секунд..." -# AI Translated msgid "For better drying results, remove the filament and allow it to rotate." -msgstr "Для лучшего результата сушки извлеките материал и дайте ему вращаться." +msgstr "Для лучшего результата сушки извлеките материал и включите вращение катушки." -# AI Translated msgid "The AMS will automatically rotate the stored filament slots to enhance the drying performance." -msgstr "AMS будет автоматически вращать слоты с уложенным на хранение материалом для повышения эффективности сушки." +msgstr "AMS будет автоматически вращать слоты с хранящимися катушками для повышения эффективности сушки." -# AI Translated msgid "Alternatively, you can dry the filament without removing it." -msgstr "Кроме того, вы можете сушить материал, не извлекая его." +msgstr "Кроме того, сушить материал можно без его извлечения." -# AI Translated msgid "Unknown filaments will be treated as PLA." msgstr "Неизвестные материалы будут рассматриваться как PLA." -# AI Translated msgid "Please store the filament marked with an exclamation mark." msgstr "Уберите на хранение материал, отмеченный восклицательным знаком." -# AI Translated msgid "Filament left in the feeder during drying may soften because the drying temperature exceeds the softening point of materials like PLA and TPU." -msgstr "Материал, оставленный в подающем механизме во время сушки, может размягчиться, поскольку температура сушки превышает точку размягчения таких материалов, как PLA и TPU." +msgstr "Заправленный материал может размягчиться во время сушки, поскольку её сушки превышает точку размягчения материалов вроде PLA и TPU." -# AI Translated msgid "Starting: Checking adapter connection" msgstr "Запуск: проверка подключения адаптера" -# AI Translated msgid "Starting: Checking filament status" msgstr "Запуск: проверка состояния материала" -# AI Translated msgid "Starting: Checking drying presets" msgstr "Запуск: проверка профилей сушки" -# AI Translated msgid "Starting: Checking filament location" msgstr "Запуск: проверка расположения материала" -# AI Translated msgid "Starting: Checking air intake" msgstr "Запуск: проверка забора воздуха" -# AI Translated msgid "Starting: Checking air vent" -msgstr "Запуск: проверка вентиляционного отверстия" +msgstr "Запуск: проверка вентиляции" msgid "The filament may not be compatible with the current machine settings. Generic filament presets will be used." msgstr "Материал может быть несовместим с текущими настройками принтера. Будет использоваться базовый профиль материала." @@ -21836,14 +21642,14 @@ msgstr "Материал может быть несовместим с теку # подобных). Она задаётся вручную в файле профиля (производителем) и # отсутствует у большинства системных профилей. msgid "The filament model is unknown. Still using the previous filament preset." -msgstr "Модель филамента неизвестна. Используется предыдущий профиль филамента." +msgstr "Модель материала неизвестна. Используется предыдущий профиль материала." # Не знаю, что за "модель" материала, пропускаю. Возможно, имеется ввиду # модель коррекции объёмного расхода для функции адаптивного расхода у TPU (и # подобных). Она задаётся вручную в файле профиля (производителем) и # отсутствует у большинства системных профилей. msgid "The filament model is unknown. Generic filament presets will be used." -msgstr "Модель филамента неизвестна. Будут использованы стандартные профили филамента." +msgstr "Модель материала неизвестна. Будут использованы стандартные профили материала." msgid "The filament may not be compatible with the current machine settings. A random filament preset will be used." msgstr "Материал может быть несовместим с текущими настройками принтера. Будет использоваться случайный профиль материала." @@ -21853,7 +21659,7 @@ msgstr "Материал может быть несовместим с теку # подобных). Она задаётся вручную в файле профиля (производителем) и # отсутствует у большинства системных профилей. msgid "The filament model is unknown. A random filament preset will be used." -msgstr "Модель филамента неизвестна. Будет использован случайный профиль филамента." +msgstr "Модель материала неизвестна. Будет использован случайный профиль материала." #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -22153,6 +21959,9 @@ msgstr "" "Предотвращение коробления материала\n" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" +#~ msgid "Print order within a single layer." +#~ msgstr "Последовательность печати моделей в пределах одного слоя." + #~ msgid "Bottom" #~ msgstr "Снизу" @@ -22226,9 +22035,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "Отрисовывать тени в режиме продвинутой графики." @@ -22255,9 +22061,6 @@ msgstr "" #~ "\n" #~ "Внимание: несовместимо с принтерами Prusa, поскольку им требуется остановка для изменения коэффициента PA." -#~ msgid "Continue to sync filaments" -#~ msgstr "Продолжить синхронизацию филаментов" - #~ msgctxt "Sync_Nozzle_AMS" #~ msgid "Cancel" #~ msgstr "Отмена" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index 4f5d27ad9c..5686fb7d8f 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4245,6 +4245,10 @@ msgstr "Placerar..." msgid "Arranging" msgstr "Placerar" +# AI Translated +msgid "Arranging " +msgstr "Placerar " + msgid "Arranging canceled." msgstr "Placering avbruten." @@ -9084,24 +9088,24 @@ msgid "Replaced with 3D files from directory:\n" msgstr "Ersatt med 3D-filer från mappen:\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Hoppade över %1%: samma fil.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Hoppade över %s: samma fil.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Hoppade över %1%: filen finns inte.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Hoppade över %s: filen finns inte.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Hoppade över %1%: det gick inte att ersätta.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Hoppade över %s: det gick inte att ersätta.\n" # AI Translated -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Ersatte %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Ersatte %s.\n" # AI Translated msgid "Replaced volumes" @@ -10187,6 +10191,21 @@ msgstr "Dämpa underliggande lager" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "När du drar i lagerreglaget i den beredda förhandsgranskningen renderas lagren under det aktuella mörkare, så att endast det lager du tittar på visas med full ljusstyrka." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Ljusstyrka för dämpade lager" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Hur ljust de dämpade lagren återges när \"Dämpa underliggande lager\" är aktiverat.\n" +"99% är knappt mörkare, 0% gör dem helt svarta. Begränsat till 99% eftersom 100% skulle vara detsamma som att stänga av alternativet." + msgid "Login region" msgstr "Logga in region" @@ -14716,13 +14735,37 @@ msgid "Intra-layer order" msgstr "Ordning inom lager" # AI Translated -msgid "Print order within a single layer." -msgstr "Utskriftsordning inom ett enskilt lager." +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Ordningen som objektinstanserna besöks i inom ett och samma lager, vilket avgör hur mycket förflyttning som går åt mellan dem.\n" +"\n" +"Standard: kedjning efter närmaste granne, förfinad med 2-opt och borttagning av korsningar. Ett bra generellt val.\n" +"Som objektlistan: instanserna skrivs ut i samma ordning som i objektlistan, utan någon vägoptimering. Använd det när du behöver en förutsägbar ordning som du styr manuellt.\n" +"Bäst av alla (kortaste vägen): varje strategi utvärderas och den kortaste används. Ordningen för objektinstanserna bestäms en gång för hela utskriften, medan ordningen för enskilda öar bestäms per lager, så olika lager kan sluta med att använda olika strategier. Beredningen blir något långsammare.\n" +"Slingrande: slingrande färdväg rad för rad, förfinad med 2-opt. Passar bra för regelbundna rutnät med många små detaljer.\n" +"\n" +"Med flera filament eller verktyg i samma lager prioriteras att minimera antalet verktygsbyten: objekten grupperas först efter filament och den här inställningen ordnar bara instanserna inom varje filamentgrupp, så den totala sekvensen kanske inte ser ut som den kortaste vägen över plattan." # AI Translated msgid "As object list" msgstr "Som objektlistan" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Bäst av alla (kortaste vägen)" + +# AI Translated +msgid "Snake" +msgstr "Slingrande" + msgid "Slow printing down for better layer cooling" msgstr "Sakta ner utskrift för bättre kylning av lager" @@ -20823,6 +20866,20 @@ msgstr "" "Det finns flera IP-adresser som pekar på värdnamnet %1%.\n" "Välj vilken som ska användas." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Autoskala efter nozzel" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Den här modellen är utformad för en nozzel på 0,4 mm med en lagerhöjd på 0,2 mm. \n" +"När skalningsalternativet är aktiverat (rekommenderas) ändras storleken dynamiskt så att den matchar din aktuella nozzeldiameter och en lämplig lagerhöjd, vilket gör testet både noggrant och lättläst.\n" +"Stäng bara av skalningen om du vill skriva ut referensmodellen exakt som den är." + msgid "PA Calibration" msgstr "PA kalibrering" @@ -20969,6 +21026,14 @@ msgstr "Start hastighet: " msgid "End speed: " msgstr "Sluthastighet: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Autojustera till max volymetrisk hastighet" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Om sluthastigheten skulle överskrida filamentets maximala volymetriska hastighet sänks lagerhöjden automatiskt (med bibehållna standardvärden och inom maskinens gränser) för att nå den. Om inte ens den minsta lagerhöjden räcker sänks sluthastigheten i stället." + # AI Translated msgid "" "Please input valid values:\n" @@ -20981,6 +21046,57 @@ msgstr "" "steg >= 0\n" "slut > start + steg" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Sluthastigheten (%.0f mm/s) överskrider filamentets maximala volymetriska hastighet (%.1f mm³/s), vilket begränsar den yttre väggen till omkring %.0f mm/s vid den här linjebredden och lagerhöjden.\n" +" Högre hastigheter kapas, så tornets övre block skrivs inte ut med den begärda hastigheten.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Sluthastigheten (%.0f mm/s) överskrider filamentets maximala volymetriska hastighet (%.1f mm³/s) vid standardlagerhöjden (%.2f mm).\n" +"\n" +"Lagerhöjden har sänkts till %.2f mm (ett värde som används av den här skrivarens profiler) så att tornet kan nå den begärda hastigheten." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Även vid den minsta lagerhöjd som används av den här skrivarens profiler (%.2f mm) överskrider sluthastigheten (%.0f mm/s) filamentets maximala volymetriska hastighet (%.1f mm³/s).\n" +"\n" +"Lagerhöjden ställs in på %.2f mm och sluthastigheten sänks till %.0f mm/s.\n" +"\n" +"Vill du fortsätta?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Vill du fortsätta ändå?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Vill du aktivera \"Autojustera\" för att åtgärda detta automatiskt, eller fortsätta ändå?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Vill du aktivera \"Autoskala efter nozzel\" och \"Autojustera\" för att åtgärda detta automatiskt, eller fortsätta ändå?" + msgid "Start retraction length: " msgstr "Starta retraktion längd: " @@ -23955,6 +24071,10 @@ msgstr "" "Undvik vridning\n" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" +# AI Translated +#~ msgid "Print order within a single layer." +#~ msgstr "Utskriftsordning inom ett enskilt lager." + #~ msgid "Bottom" #~ msgstr "Botten" @@ -24000,9 +24120,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "° C" -#~ msgid "%" -#~ msgstr "%" - #~ msgctxt "Sync_Nozzle_AMS" #~ msgid "Cancel" #~ msgstr "Avbryt" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index 45352f61a6..a419ba320e 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -843,7 +843,7 @@ msgid "Hexagon" msgstr "หกเหลี่ยม" msgid "Keep orientation" -msgstr "รักษาปฐมนิเทศ" +msgstr "คงการวางแนว" msgid "Place on cut" msgstr "วางบนการตัด" @@ -891,7 +891,7 @@ msgid "Cut position" msgstr "ตำแหน่งตัด" msgid "Build Volume" -msgstr "ปริมาตรพื้นที่พิมพ์" +msgstr "ปริมาตรการพิมพ์ (Build Volume)" msgid "Multiple" msgstr "หลายรายการ" @@ -1200,7 +1200,7 @@ msgid "Horizontal text" msgstr "ข้อความแนวนอน" msgid "Shift+" -msgstr "กะ+" +msgstr "Shift+" msgid "Mouse move up or down" msgstr "เมาส์เลื่อนขึ้นหรือลง" @@ -2592,7 +2592,7 @@ msgid "Ironing" msgstr "รีดผิว" msgid "Fuzzy skin" -msgstr "ผิวฟัซซี" +msgstr "ผิวฟัซซี (Fuzzy Skin)" msgid "Extruders" msgstr "ชุดดันเส้น" @@ -2817,10 +2817,10 @@ msgid "current" msgstr "ปัจจุบัน" msgid "Scale to build volume" -msgstr "ปรับขนาดเพื่อสร้างปริมาณ" +msgstr "ปรับขนาดให้พอดีกับปริมาตรการพิมพ์" msgid "Scale an object to fit the build volume" -msgstr "ปรับขนาดวัตถุให้พอดีกับปริมาณงานสร้าง" +msgstr "ปรับขนาดวัตถุให้พอดีกับปริมาตรการพิมพ์" msgid "Flush Options" msgstr "ตัวเลือกการไล่เส้น" @@ -2898,10 +2898,10 @@ msgid "Change SVG source file, projection, size, ..." msgstr "เปลี่ยนไฟล์ต้นฉบับ SVG, การฉายภาพ, ขนาด, ..." msgid "Invalidate cut info" -msgstr "ข้อมูลการตัดไม่ถูกต้อง" +msgstr "ยกเลิกข้อมูลการตัด" msgid "Add Primitive" -msgstr "เพิ่มดั้งเดิม" +msgstr "เพิ่มรูปทรงพื้นฐาน" msgid "Add Handy models" msgstr "เพิ่มรุ่นแฮนดี้" @@ -3027,7 +3027,7 @@ msgid "Center" msgstr "กึ่งกลาง" msgid "Drop" -msgstr "หยด" +msgstr "วางลงฐานพิมพ์" msgid "Edit Process Settings" msgstr "แก้ไขการตั้งค่ากระบวนการ" @@ -3182,7 +3182,7 @@ msgid "Switch to per-object setting mode to edit process settings of selected ob msgstr "สลับไปที่โหมดการตั้งค่าต่ออ็อบเจ็กต์เพื่อแก้ไขการตั้งค่ากระบวนการของอ็อบเจ็กต์ที่เลือก" msgid "Remove paint-on fuzzy skin" -msgstr "ลบสีบนผิวที่คลุมเครือ" +msgstr "ลบการระบายสีผิวฟัซซี" # AI Translated msgid "Delete Settings" @@ -3242,7 +3242,7 @@ msgid "Add layers" msgstr "เพิ่มเลเยอร์" msgid "Cut Connectors information" -msgstr "ตัดข้อมูลตัวเชื่อมต่อ" +msgstr "ข้อมูลตัวเชื่อมสำหรับการตัด" msgid "Object manipulation" msgstr "การจัดการวัตถุ" @@ -3279,7 +3279,7 @@ msgid "Layer" msgstr "เลเยอร์" msgid "Selection conflicts" -msgstr "ข้อขัดแย้งในการคัดเลือก" +msgstr "การเลือกขัดแย้งกัน" msgid "If the first selected item is an object, the second should also be an object." msgstr "หากรายการแรกที่เลือกเป็นวัตถุ รายการที่สองก็ควรเป็นวัตถุด้วย" @@ -3390,7 +3390,7 @@ msgid "Plate" msgstr "ฐานพิมพ์" msgid "Brim" -msgstr "ขอบยึดชิ้นงาน" +msgstr "ขอบยึดชิ้นงาน (Brim)" msgid "Object/Part Settings" msgstr "การตั้งค่าวัตถุ/ชิ้นส่วน" @@ -3834,6 +3834,10 @@ msgstr "กำลังจัด..." msgid "Arranging" msgstr "การจัด" +# AI Translated +msgid "Arranging " +msgstr "กำลังจัด " + msgid "Arranging canceled." msgstr "ยกเลิกการจัดเตรียมแล้ว" @@ -4782,7 +4786,7 @@ msgid "" "YES - Keep Prime Tower\n" "NO - Keep Adaptive Layer Height and Independent Support Layer Height" msgstr "" -"ไพรม์ทาวเวอร์ไม่ทำงานเมื่อเปิดใช้งาน Adaptive Layer Height หรือ Independent ส่วนรองรับ Layer Height\n" +"Prime Tower ไม่ทำงานเมื่อเปิดใช้งาน Adaptive Layer Height หรือ Independent ส่วนรองรับ Layer Height\n" "คุณต้องการเก็บอันไหน?\n" "ใช่ - เก็บ Prime Tower ไว้\n" "ไม่ - คงความสูงของเลเยอร์แบบปรับได้และความสูงของเลเยอร์รองรับที่เป็นอิสระ" @@ -4793,7 +4797,7 @@ msgid "" "YES - Keep Prime Tower\n" "NO - Keep Adaptive Layer Height" msgstr "" -"ไพรม์ทาวเวอร์ไม่ทำงานเมื่อเปิด Adaptive Layer Height\n" +"Prime Tower ไม่ทำงานเมื่อเปิด Adaptive Layer Height\n" "คุณต้องการเก็บอันไหน?\n" "ใช่ - เก็บ Prime Tower ไว้\n" "ไม่ - คงความสูงของเลเยอร์แบบปรับได้" @@ -4804,7 +4808,7 @@ msgid "" "YES - Keep Prime Tower\n" "NO - Keep Independent Support Layer Height" msgstr "" -"ไพร์มทาวเวอร์ไม่ทำงานเมื่อเปิดความสูงของเลเยอร์รองรับอิสระ\n" +"Prime Tower ไม่ทำงานเมื่อเปิดความสูงของเลเยอร์รองรับอิสระ\n" "คุณต้องการเก็บอันไหน?\n" "ใช่ - เก็บ Prime Tower ไว้\n" "ไม่ - รักษาความสูงของชั้นรองรับที่เป็นอิสระ" @@ -5377,7 +5381,7 @@ msgid "Pressure Advance" msgstr "แรงดันล่วงหน้า (Pressure Advance)" msgid "Noop" -msgstr "นะ" +msgstr "ไม่มีการดำเนินการ" msgid "Retract" msgstr "ดึงกลับ" @@ -5401,7 +5405,7 @@ msgid "Travel" msgstr "เดินหัวเปล่า" msgid "Wipe" -msgstr "เช็ดหัวฉีด" +msgstr "เช็ดหัวฉีด (Wipe)" msgid "Extrude" msgstr "ฉีดเส้น" @@ -5437,7 +5441,7 @@ msgid "Support interface" msgstr "ผิวสัมผัสส่วนรองรับ" msgid "Prime tower" -msgstr "ทาวเวอร์ไล่เส้น" +msgstr "Prime Tower" msgid "Bottom surface" msgstr "ผิวด้านล่าง" @@ -5482,7 +5486,7 @@ msgid "Jerk: " msgstr "เจิร์ก: " msgid "PA: " -msgstr "พ่อ:" +msgstr "PA: " msgid "mm/s" msgstr "มม./วินาที" @@ -5548,7 +5552,7 @@ msgid "Tips:" msgstr "เคล็ดลับ:" msgid "Current grouping of slice result is not optimal." -msgstr "การจัดกลุ่มผลลัพธ์การแบ่งส่วนในปัจจุบันไม่เหมาะสมที่สุด" +msgstr "การจัดกลุ่มผลการสไลซ์ปัจจุบันยังไม่เหมาะสม" #, boost-format msgid "Increase %1%g filament and %2% changes compared to optimal grouping." @@ -5581,7 +5585,7 @@ msgid "Regroup filament" msgstr "จัดกลุ่มเส้นพลาสติกใหม่" msgid "up to" -msgstr "ขึ้นไป" +msgstr "สูงสุด" msgid "above" msgstr "ข้างบน" @@ -5638,7 +5642,7 @@ msgid "Filament change times" msgstr "จำนวนครั้งที่เปลี่ยนเส้น" msgid "Tool changes" -msgstr "การเปลี่ยนแปลงเครื่องมือ" +msgstr "การเปลี่ยนเครื่องมือ" msgid "Color change" msgstr "เปลี่ยนสี" @@ -5669,7 +5673,7 @@ msgid "Model printing time" msgstr "ระยะเวลาในการพิมพ์โมเดล" msgid "Show stealth mode" -msgstr "แสดงโหมดซ่อนตัว" +msgstr "แสดงโหมดเงียบ" msgid "Show normal mode" msgstr "แสดงโหมดปกติ" @@ -5686,10 +5690,10 @@ msgid "" "Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume." msgstr "" "วัตถุวางอยู่เหนือขอบเขตของแผ่นหรือสูงเกินขีดจำกัดความสูง\n" -"โปรดแก้ไขปัญหาด้วยการเลื่อนเข้าหรือออกจากเพลตโดยสิ้นเชิง และยืนยันว่าความสูงอยู่ภายในปริมาตรงานประกอบ" +"โปรดแก้ไขปัญหาด้วยการเลื่อนเข้าหรือออกจากเพลตโดยสิ้นเชิง และยืนยันว่าความสูงอยู่ภายในปริมาตรการพิมพ์" msgid "Variable layer height" -msgstr "ความสูงของชั้นตัวแปร" +msgstr "ความสูงเลเยอร์แบบแปรผัน" msgid "Adaptive" msgstr "ปรับตัวได้" @@ -5739,7 +5743,7 @@ msgid "Following objects are laid over the boundary of plate or exceeds the heig msgstr "วัตถุต่อไปนี้วางอยู่เหนือขอบเขตของแผ่นหรือสูงเกินขีดจำกัดความสูง:\n" msgid "Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume.\n" -msgstr "โปรดแก้ไขปัญหาด้วยการเลื่อนเข้าหรือออกจากเพลตโดยสิ้นเชิง และยืนยันว่าความสูงอยู่ภายในปริมาตรงานประกอบ\n" +msgstr "โปรดแก้ไขปัญหาด้วยการเลื่อนเข้าหรือออกจากเพลตโดยสิ้นเชิง และยืนยันว่าความสูงอยู่ภายในปริมาตรการพิมพ์\n" #, c-format, boost-format msgid "The position or size of some models exceeds the %s's printable range." @@ -5779,7 +5783,7 @@ msgid "Optimize support interface area" msgstr "ปรับพื้นที่อินเทอร์เฟซส่วนรองรับให้เหมาะสม" msgid "Orient" -msgstr "ตะวันออก" +msgstr "จัดวางแนว" msgid "Arrange options" msgstr "ตัวเลือกจัดเรียง" @@ -5925,7 +5929,7 @@ msgid "Paint Toolbar" msgstr "แถบเครื่องมือสี" msgid "Explosion Ratio" -msgstr "อัตราส่วนการระเบิด" +msgstr "ระดับการแยกชิ้นส่วน" msgid "Section View" msgstr "มุมมองส่วน" @@ -5998,7 +6002,7 @@ msgid "PLA and PETG filaments detected in the mixture. Adjust parameters accordi msgstr "ตรวจพบเส้นพลาสติก PLA และ PETG ในส่วนผสม ปรับพารามิเตอร์ตาม Wiki เพื่อรับรองคุณภาพการพิมพ์" msgid "The prime tower extends beyond the plate boundary." -msgstr "หอคอยหลักขยายออกไปเกินขอบเขตแผ่นเปลือกโลก" +msgstr "Prime Tower ยื่นออกนอกขอบเขตของเพลตพิมพ์" msgid "Partial flushing volume set to 0. Multi-color printing may cause color mixing in models. Please readjust flushing settings." msgstr "ตั้งค่าปริมาณการไล่เส้นบางส่วนเป็น 0 การพิมพ์หลายสีอาจทำให้เกิดการผสมสีในรุ่นต่างๆ โปรดปรับการตั้งค่าการไล่เส้นใหม่" @@ -7949,7 +7953,7 @@ msgid "Enabling traditional timelapse photography may cause surface imperfection msgstr "การเปิดใช้งานการถ่ายภาพไทม์แลปส์แบบดั้งเดิมอาจทำให้เกิดความไม่สมบูรณ์ของพื้นผิวได้ ขอแนะนำให้เปลี่ยนเป็นโหมดราบรื่น" msgid "Smooth mode for timelapse is enabled, but the prime tower is off, which may cause print defects. Please enable the prime tower, re-slice and print again." -msgstr "เปิดใช้งานโหมด Smooth สำหรับไทม์แลปส์แล้ว แต่ไพรม์ทาวเวอร์ปิดอยู่ ซึ่งอาจทำให้เกิดข้อบกพร่องในการพิมพ์ โปรดเปิดใช้งานไพร์มทาวเวอร์ สไลซ์ใหม่และพิมพ์อีกครั้ง" +msgstr "เปิดใช้งานโหมด Smooth สำหรับไทม์แลปส์แล้ว แต่ Prime Tower ปิดอยู่ ซึ่งอาจทำให้เกิดข้อบกพร่องในการพิมพ์ โปรดเปิดใช้งาน Prime Tower สไลซ์ใหม่และพิมพ์อีกครั้ง" msgid "Expand sidebar" msgstr "ขยายแถบด้านข้าง" @@ -8195,21 +8199,21 @@ msgstr "ไม่ได้เลือกไดเรกทอรีสำหร msgid "Replaced with 3D files from directory:\n" msgstr "แทนที่ด้วยไฟล์ 3D จากไดเรกทอรี:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ ข้าม %1%: ไฟล์เดียวกัน\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ ข้าม %s: ไฟล์เดียวกัน\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ ข้าม %1%: ไม่มีไฟล์อยู่\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ ข้าม %s: ไม่มีไฟล์อยู่\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ ข้าม %1%: ไม่สามารถแทนที่ได้\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ ข้าม %s: ไม่สามารถแทนที่ได้\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔แทนที่ %1%\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔แทนที่ %s\n" msgid "Replaced volumes" msgstr "ปริมาณที่ถูกแทนที่" @@ -9156,6 +9160,21 @@ msgstr "หรี่เลเยอร์ด้านล่าง" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "เมื่อเลื่อนแถบเลเยอร์ในตัวอย่างที่สไลซ์แล้ว จะแสดงเลเยอร์ที่อยู่ต่ำกว่าเลเยอร์ปัจจุบันแบบมืดลง เพื่อให้เห็นเฉพาะเลเยอร์ที่กำลังดูอยู่ด้วยความสว่างเต็มที่" +# AI Translated +msgid "Dimmed layer brightness" +msgstr "ความสว่างของเลเยอร์ที่หรี่" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"ความสว่างในการแสดงผลของเลเยอร์ที่ถูกหรี่ เมื่อเปิดใช้งาน \"หรี่เลเยอร์ด้านล่าง\"\n" +"99% คือหรี่ลงเพียงเล็กน้อย ส่วน 0% จะแสดงเป็นสีดำ ค่าสูงสุดถูกจำกัดไว้ที่ 99% เพราะ 100% จะให้ผลเหมือนกับการปิดตัวเลือกนี้" + msgid "Login region" msgstr "เข้าสู่ระบบภูมิภาค" @@ -9292,7 +9311,7 @@ msgid "" "Attempt to keep painted features (color/seam/support/fuzzy etc.) after changing the object mesh (such as cut/reload from disk/simplify/fix etc.)\n" "Highly experimental! Slow and may create artifact." msgstr "" -"พยายามคงคุณสมบัติการทาสีไว้ (สี/รอยตะเข็บ/ส่วนรองรับ/คลุมเครือ ฯลฯ) หลังจากเปลี่ยนตาข่ายวัตถุ (เช่น ตัด/โหลดซ้ำจากดิสก์/ลดความซับซ้อน/แก้ไข ฯลฯ)\n" +"พยายามคงคุณสมบัติการทาสีไว้ (สี/รอยตะเข็บ/ส่วนรองรับ/ผิวฟัซซี ฯลฯ) หลังจากเปลี่ยนตาข่ายวัตถุ (เช่น ตัด/โหลดซ้ำจากดิสก์/ลดความซับซ้อน/แก้ไข ฯลฯ)\n" "น่าทดลองมาก! ช้าและอาจสร้างสิ่งประดิษฐ์" msgid "Allow Abnormal Storage" @@ -10222,25 +10241,25 @@ msgstr "คลิกเพื่อรีเซ็ตการตั้งค่ # AI Translated msgid "Prime tower is required for nozzle changing. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?" -msgstr "จำเป็นต้องใช้ทาวเวอร์ไล่เส้นสำหรับการเปลี่ยนหัวฉีด อาจเกิดข้อบกพร่องบนโมเดลหากไม่มีทาวเวอร์ไล่เส้น คุณแน่ใจหรือไม่ว่าต้องการปิดทาวเวอร์ไล่เส้น?" +msgstr "จำเป็นต้องใช้ Prime Tower สำหรับการเปลี่ยนหัวฉีด อาจเกิดข้อบกพร่องบนโมเดลหากไม่มี Prime Tower คุณแน่ใจหรือไม่ว่าต้องการปิด Prime Tower?" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without a prime tower. Are you sure you want to disable the prime tower?" -msgstr "โหมดไทม์แลปส์แบบราบรื่นต้องใช้ไพรม์ทาวเวอร์ หากไม่มีไพรม์ทาวเวอร์อาจเกิดตำหนิบนโมเดลได้ คุณแน่ใจหรือไม่ว่าต้องการปิดไพรม์ทาวเวอร์?" +msgstr "จำเป็นต้องใช้ Prime Tower สำหรับโหมดไทม์แลปส์แบบราบรื่น หากไม่มี Prime Tower อาจเกิดตำหนิบนโมเดลได้ คุณแน่ใจหรือไม่ว่าต้องการปิด Prime Tower?" msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Are you sure you want to disable prime tower?" -msgstr "ต้องใช้ไพรม์ทาวเวอร์ในการตรวจจับการจับกันเป็นก้อน อาจมีตำหนิตรงรุ่นที่ไม่มีไพร์มทาวเวอร์ คุณแน่ใจหรือไม่ว่าต้องการปิดการใช้งานไพร์มทาวเวอร์?" +msgstr "จำเป็นต้องใช้ Prime Tower ในการตรวจจับการจับกันเป็นก้อน อาจมีตำหนิบนโมเดลที่ไม่มี Prime Tower คุณแน่ใจหรือไม่ว่าต้องการปิด Prime Tower?" msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable?" -msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและหอคอยหลักอาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน คุณยังต้องการเปิดใช้งานหรือไม่?" +msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและ Prime Tower อาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน คุณยังต้องการเปิดใช้งานหรือไม่?" msgid "A prime tower is required for clumping detection. There may be flaws on the model without prime tower. Do you still want to enable clumping detection?" -msgstr "ต้องใช้ไพรม์ทาวเวอร์ในการตรวจจับการจับกันเป็นก้อน อาจมีตำหนิตรงรุ่นที่ไม่มีไพร์มทาวเวอร์ คุณยังต้องการเปิดใช้งานการตรวจจับการจับกันเป็นก้อนหรือไม่" +msgstr "จำเป็นต้องใช้ Prime Tower ในการตรวจจับการจับกันเป็นก้อน อาจมีตำหนิบนโมเดลที่ไม่มี Prime Tower คุณยังต้องการเปิดใช้งานการตรวจจับการจับกันเป็นก้อนหรือไม่" msgid "Enabling both precise Z height and the prime tower may cause slicing errors. Do you still want to enable precise Z height?" -msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและหอคอยหลักอาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน คุณยังต้องการเปิดใช้งานความสูง Z ที่แม่นยำหรือไม่" +msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและ Prime Tower อาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน คุณยังต้องการเปิดใช้งานความสูง Z ที่แม่นยำหรือไม่" msgid "A prime tower is required for smooth timelapse mode. There may be flaws on the model without prime tower. Do you want to enable the prime tower?" -msgstr "โหมดไทม์แลปส์แบบราบรื่นต้องใช้ไพรม์ทาวเวอร์ หากไม่มีไพรม์ทาวเวอร์อาจเกิดตำหนิบนโมเดลได้ ต้องการเปิดใช้ไพรม์ทาวเวอร์หรือไม่?" +msgstr "จำเป็นต้องใช้ Prime Tower สำหรับโหมดไทม์แลปส์แบบราบรื่น หากไม่มี Prime Tower อาจเกิดตำหนิบนโมเดลได้ ต้องการเปิดใช้ Prime Tower หรือไม่?" msgid "Still print by object?" msgstr "ยังคงพิมพ์ตามวัตถุใช่ไหม" @@ -10392,7 +10411,7 @@ msgid "Z contouring" msgstr "รูปร่าง Z" msgid "Wall generator" -msgstr "เครื่องกำเนิดไฟฟ้าติดผนัง" +msgstr "ตัวสร้างผนัง" msgid "Walls and surfaces" msgstr "ผนังและพื้นผิว" @@ -10458,7 +10477,7 @@ msgid "G-code output" msgstr "เอาต์พุตรหัส G" msgid "Change extrusion role G-code" -msgstr "เปลี่ยนบทบาทการอัดขึ้นรูป G-code" +msgstr "เปลี่ยนประเภทการพิมพ์ G-code" msgid "Post-processing Scripts" msgstr "สคริปต์หลังการประมวลผล" @@ -10597,7 +10616,7 @@ msgid "Filament end G-code" msgstr "G-code สิ้นสุดของเส้นพลาสติก" msgid "Wipe tower parameters" -msgstr "พารามิเตอร์ทาวเวอร์เช็ดหัวฉีด" +msgstr "พารามิเตอร์ Wipe Tower" msgid "Multi Filament" msgstr "เส้นพลาสติกแบบหลากหลาย" @@ -10734,7 +10753,7 @@ msgid "Nozzle diameter" msgstr "เส้นผ่านศูนย์กลางหัวฉีด" msgid "Wipe tower" -msgstr "ทาวเวอร์เช็ดหัวฉีด" +msgstr "Wipe Tower" msgid "Single extruder multi-material parameters" msgstr "พารามิเตอร์วัสดุหลายชุดดันเส้นเดี่ยว" @@ -10761,7 +10780,7 @@ msgstr "" "ต้องการตั้งค่าเป็น 100% เพื่อเปิดใช้งาน Firmware Retraction หรือไม่?" msgid "Firmware Retraction" -msgstr "การเพิกถอนเฟิร์มแวร์" +msgstr "การดึงกลับด้วยเฟิร์มแวร์ (Firmware Retraction)" msgid "Switching to a printer with different extruder types or numbers will discard or reset changes to extruder or multi-nozzle-related parameters." msgstr "การเปลี่ยนไปใช้เครื่องพิมพ์ที่มีประเภทหรือหมายเลขชุดดันเส้นที่แตกต่างกันจะยกเลิกหรือรีเซ็ตการเปลี่ยนแปลงในชุดดันเส้นหรือพารามิเตอร์ที่เกี่ยวข้องกับหัวฉีดหลายตัว" @@ -11577,7 +11596,7 @@ msgid "Gizmo mesh boolean" msgstr "Gizmo mesh บูลีน" msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM เพ้นท์บนผิวที่คลุมเครือ" +msgstr "Gizmo FDM เพ้นท์ผิวฟัซซี" msgid "Gizmo SLA support points" msgstr "จุดส่วนรองรับ Gizmo SLA" @@ -11595,7 +11614,7 @@ msgid "Gizmo assemble" msgstr "กิสโมประกอบ" msgid "Gizmo brim ears" -msgstr "กิสโม่ขอบหู" +msgstr "Gizmo หูขอบยึดชิ้นงาน (Brim Ears)" msgid "Zoom in" msgstr "ซูมเข้า" @@ -11917,10 +11936,10 @@ msgid "Parts of the object at these heights may be too thin or the object may ha msgstr "บางส่วนของวัตถุที่ความสูงเหล่านี้อาจบางเกินไป หรือวัตถุอาจมี mesh ผิดปกติ" msgid "Process change extrusion role G-code" -msgstr "กระบวนการเปลี่ยนบทบาทการอัดขึ้นรูป G-code" +msgstr "กระบวนการเปลี่ยนประเภทการพิมพ์ G-code" msgid "Filament change extrusion role G-code" -msgstr "เส้นพลาสติกเปลี่ยนบทบาทการอัดขึ้นรูป G-code" +msgstr "เส้นพลาสติกเปลี่ยนประเภทการพิมพ์ G-code" msgid "No object can be printed. It may be too small." msgstr "ไม่สามารถพิมพ์วัตถุได้ อาจจะเล็กเกินไป" @@ -12081,7 +12100,7 @@ msgid " is too close to clumping detection area, there may be collisions when pr msgstr "อยู่ใกล้พื้นที่การตรวจจับการจับตัวกันมากเกินไป อาจเกิดการชนกันเมื่อพิมพ์" msgid "Prime Tower" -msgstr "ทาวเวอร์ไล่เส้น" +msgstr "Prime Tower" msgid " is too close to others, and collisions may be caused.\n" msgstr "อยู่ใกล้ผู้อื่นมากเกินไปและอาจเกิดการชนได้\n" @@ -12111,10 +12130,10 @@ msgid "Clumping detection is not supported when \"by object\" sequence is enable msgstr "ไม่รองรับการตรวจจับการจับกันเป็นก้อนเมื่อเปิดใช้งานลำดับ \"ตามวัตถุ\"" msgid "Enabling both precise Z height and the prime tower may cause slicing errors." -msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและหอคอยหลักอาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน" +msgstr "การเปิดใช้งานทั้งความสูง Z ที่แม่นยำและ Prime Tower อาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วน" msgid "A prime tower is required for clumping detection; otherwise, there may be flaws on the model." -msgstr "จำเป็นต้องใช้หอคอยหลักในการตรวจจับการจับกันเป็นก้อน มิฉะนั้นอาจมีข้อบกพร่องในแบบจำลอง" +msgstr "จำเป็นต้องใช้ Prime Tower ในการตรวจจับการจับกันเป็นก้อน มิฉะนั้นอาจมีข้อบกพร่องในแบบจำลอง" msgid "Please select \"By object\" print sequence to print multiple objects in spiral vase mode." msgstr "โปรดเลือกลำดับการพิมพ์ \"ตามวัตถุ\" เพื่อพิมพ์วัตถุหลายชิ้นในโหมดแจกันเกลียว" @@ -12124,15 +12143,15 @@ msgstr "โหมดแจกันเกลียวจะไม่ทำงา #, boost-format msgid "While the object %1% itself fits the build volume, it exceeds the maximum build volume height because of material shrinkage compensation." -msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปริมาตรการสร้าง แต่วัตถุนั้นเกินความสูงของปริมาตรการสร้างสูงสุดเนื่องจากการชดเชยการหดตัวของวัสดุ" +msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปริมาตรการพิมพ์ แต่วัตถุนั้นเกินความสูงของปริมาตรการพิมพ์สูงสุดเนื่องจากการชดเชยการหดตัวของวัสดุ" #, boost-format msgid "The object %1% exceeds the maximum build volume height." -msgstr "วัตถุ %1% เกินความสูงของปริมาตรบิลด์สูงสุด" +msgstr "วัตถุ %1% เกินความสูงของปริมาตรการพิมพ์สูงสุด" #, boost-format msgid "While the object %1% itself fits the build volume, its last layer exceeds the maximum build volume height." -msgstr "แม้ว่าออบเจ็กต์ %1% จะพอดีกับปริมาณการสร้าง แต่เลเยอร์สุดท้ายก็เกินความสูงของปริมาตรการสร้างสูงสุด" +msgstr "แม้ว่าวัตถุ %1% จะพอดีกับปริมาตรการพิมพ์ แต่วัตถุนั้นเกินความสูงของปริมาตรการพิมพ์สูงสุด" msgid "You might want to reduce the size of your model or change current print settings and retry." msgstr "คุณอาจต้องการลดขนาดแบบจำลองของคุณหรือเปลี่ยนการตั้งค่าการพิมพ์ปัจจุบันแล้วลองอีกครั้ง" @@ -12141,40 +12160,40 @@ msgid "Variable layer height is not supported with Organic supports." msgstr "ไม่รองรับความสูงของเลเยอร์ที่แปรผันได้ด้วยการรองรับแบบออร์แกนิก" msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." -msgstr "เส้นผ่านศูนย์กลางของหัวฉีดที่แตกต่างกันและเส้นผ่านศูนย์กลางของเส้นพลาสติกที่แตกต่างกันอาจทำงานได้ไม่ดีนักเมื่อเปิดใช้งานไพรม์ทาวเวอร์ ยังเป็นการทดลองอยู่มาก ดังนั้นโปรดดำเนินการด้วยความระมัดระวัง" +msgstr "เส้นผ่านศูนย์กลางของหัวฉีดที่แตกต่างกันและเส้นผ่านศูนย์กลางของเส้นพลาสติกที่แตกต่างกันอาจทำงานได้ไม่ดีนักเมื่อเปิดใช้งาน Prime Tower ยังเป็นการทดลองอยู่มาก ดังนั้นโปรดดำเนินการด้วยความระมัดระวัง" msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)." msgstr "ขณะนี้ Wipe Tower รองรับการกำหนดที่อยู่ของชุดดันเส้นแบบสัมพันธ์เท่านั้น (use_relative_e_distances=1)" msgid "Ooze prevention is only supported with the wipe tower when 'single_extruder_multi_material' is off." -msgstr "รองรับการป้องกันน้ำซึมด้วยหอเช็ดเมื่อปิด 'single_extruder_multi_material' เท่านั้น" +msgstr "รองรับการป้องกันน้ำซึมด้วย Wipe Tower เมื่อปิด 'single_extruder_multi_material' เท่านั้น" msgid "The prime tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors." -msgstr "ขณะนี้ไพรม์ทาวเวอร์รองรับเฉพาะรสชาติ Marlin, RepRap/Sprinter, RepRapFirmware และ Repetier G-code เท่านั้น" +msgstr "ขณะนี้ Prime Tower รองรับเฉพาะรสชาติ Marlin, RepRap/Sprinter, RepRapFirmware และ Repetier G-code เท่านั้น" msgid "A prime tower is not supported in “By object” print." -msgstr "ไม่รองรับไพรม์ทาวเวอร์ในการพิมพ์ \"ตามวัตถุ\"" +msgstr "ไม่รองรับ Prime Tower ในการพิมพ์ \"ตามวัตถุ\"" msgid "A prime tower is not supported when adaptive layer height is on. It requires that all objects have the same layer height." -msgstr "ไม่รองรับไพรม์ทาวเวอร์เมื่อเปิดความสูงของเลเยอร์แบบปรับได้ กำหนดให้วัตถุทั้งหมดมีความสูงของชั้นเท่ากัน" +msgstr "ไม่รองรับ Prime Tower เมื่อเปิดความสูงของเลเยอร์แบบปรับได้ กำหนดให้วัตถุทั้งหมดมีความสูงของชั้นเท่ากัน" msgid "A prime tower requires any “support gap” to be a multiple of layer height." -msgstr "ไพรม์ทาวเวอร์ต้องการให้ “support gap” เป็นจำนวนเท่าของความสูงชั้น" +msgstr "Prime Tower ต้องการให้ “support gap” เป็นจำนวนเท่าของความสูงชั้น" msgid "A prime tower requires that all objects have the same layer height." -msgstr "ไพรม์ทาวเวอร์ต้องการให้วัตถุทั้งหมดมีความสูงชั้นเท่ากัน" +msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดมีความสูงชั้นเท่ากัน" msgid "A prime tower requires that all objects are printed over the same number of raft layers." -msgstr "ไพรม์ทาวเวอร์ต้องการให้วัตถุทั้งหมดพิมพ์บนจำนวนชั้น raft เท่ากัน" +msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดพิมพ์บนจำนวนชั้น raft เท่ากัน" msgid "The prime tower is only supported for multiple objects if they are printed with the same support_top_z_distance." -msgstr "ไพรม์ทาวเวอร์รองรับวัตถุหลายชิ้นเท่านั้นหากพิมพ์ด้วย support_top_z_distance เท่ากัน" +msgstr "Prime Tower รองรับวัตถุหลายชิ้นเท่านั้นหากพิมพ์ด้วย support_top_z_distance เท่ากัน" msgid "A prime tower requires that all objects are sliced with the same layer height." -msgstr "ไพรม์ทาวเวอร์ต้องการให้วัตถุทั้งหมดถูกสไลซ์ด้วยความสูงชั้นเท่ากัน" +msgstr "Prime Tower ต้องการให้วัตถุทั้งหมดถูกสไลซ์ด้วยความสูงชั้นเท่ากัน" msgid "The prime tower is only supported if all objects have the same variable layer height." -msgstr "ไพรม์ทาวเวอร์ได้รับส่วนรองรับก็ต่อเมื่อวัตถุทั้งหมดมีความสูงของเลเยอร์ที่แปรผันเท่ากัน" +msgstr "Prime Tower ได้รับส่วนรองรับก็ต่อเมื่อวัตถุทั้งหมดมีความสูงของเลเยอร์ที่แปรผันเท่ากัน" msgid "One or more object were assigned an extruder that the printer does not have." msgstr "วัตถุอย่างน้อยหนึ่งชิ้นถูกกำหนดให้เป็นชุดดันเส้นที่เครื่องพิมพ์ไม่มี" @@ -12189,7 +12208,7 @@ msgid "Printing with multiple extruders of differing nozzle diameters. If suppor msgstr "การพิมพ์ด้วยชุดดันเส้นหลายเครื่องที่มีเส้นผ่านศูนย์กลางหัวฉีดต่างกัน หากจะพิมพ์ส่วนรองรับด้วยฟิลาเมนต์ปัจจุบัน (support_filament == 0 หรือ support_interface_filament == 0) หัวฉีดทั้งหมดจะต้องมีเส้นผ่านศูนย์กลางเท่ากัน" msgid "A prime tower requires that support has the same layer height as the object." -msgstr "ไพรม์ทาวเวอร์ต้องการให้ส่วนรองรับมีความสูงชั้นเท่ากับวัตถุ" +msgstr "Prime Tower ต้องการให้ส่วนรองรับมีความสูงชั้นเท่ากับวัตถุ" msgid "For Organic supports, two walls are supported only with the Hollow/Default base pattern." msgstr "สำหรับการรองรับแบบออร์แกนิก ผนังทั้งสองได้รับการรองรับด้วยรูปแบบฐานกลวง/ค่าเริ่มต้นเท่านั้น" @@ -12826,9 +12845,9 @@ msgid "" "\n" "For the first layer, the actual flow ratio for each path role (does not affect brims and skirts) will be multiplied by this value." msgstr "" -"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุในชั้นแรกสำหรับบทบาทเส้นทางการอัดขึ้นรูปที่แสดงอยู่ในส่วนนี้\n" +"ปัจจัยนี้ส่งผลต่อปริมาณวัสดุในชั้นแรกสำหรับประเภทการพิมพ์ที่แสดงอยู่ในส่วนนี้\n" "\n" -"สำหรับชั้นแรก อัตราการไหลตามจริงสำหรับแต่ละบทบาทของเส้นทาง (ไม่ส่งผลต่อขอบยึดชิ้นงานและเส้นล้อมชิ้นงาน) จะถูกคูณด้วยค่านี้" +"สำหรับชั้นแรก อัตราการไหลตามจริงสำหรับแต่ละประเภทการพิมพ์ (ไม่ส่งผลต่อขอบยึดชิ้นงานและเส้นล้อมชิ้นงาน) จะถูกคูณด้วยค่านี้" msgid "Outer wall flow ratio" msgstr "อัตราส่วนการไหลของผนังด้านนอก" @@ -13119,7 +13138,7 @@ msgstr "" "หมายเหตุ: ค่าผลลัพธ์จะไม่ได้รับผลกระทบจากอัตราส่วนการไหลของชั้นแรก" msgid "Brim follows compensated outline" -msgstr "ขอบยึดชิ้นงาน ปฏิบัติตามโครงร่างที่ได้รับการชดเชย" +msgstr "Brim ตามแนวที่ชดเชยแล้ว" msgid "" "When enabled, the brim is aligned with the first-layer perimeter geometry after Elephant Foot Compensation is applied.\n" @@ -13142,10 +13161,10 @@ msgid "Brim ears" msgstr "หู ขอบยึดชิ้นงาน" msgid "Only draw brim over the sharp edges of the model." -msgstr "วาดขอบยึดชิ้นงานไว้เหนือขอบคมของนางแบบเท่านั้น" +msgstr "วาดขอบยึดชิ้นงานไว้เหนือขอบคมของชิ้นงานเท่านั้น" msgid "Brim ear max angle" -msgstr "มุมสูงสุดของหูขอบยึดชิ้นงานนก" +msgstr "มุมสูงสุดของหูขอบยึดชิ้นงาน (Brim Ears)" msgid "" "Maximum angle to let a brim ear appear.\n" @@ -13190,12 +13209,37 @@ msgstr "ตามวัตถุ" msgid "Intra-layer order" msgstr "คำสั่งภายในชั้น" -msgid "Print order within a single layer." -msgstr "สั่งพิมพ์ภายในชั้นเดียว" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"ลำดับการเข้าถึงอินสแตนซ์ของวัตถุภายในเลเยอร์เดียวกัน ซึ่งกำหนดว่าต้องเดินหัวเปล่าระหว่างกันมากเพียงใด\n" +"\n" +"ค่าเริ่มต้น: การเชื่อมต่อแบบเพื่อนบ้านที่ใกล้ที่สุด ปรับปรุงด้วย 2-opt และการกำจัดเส้นทางที่ตัดกัน เป็นตัวเลือกทั่วไปที่ดี\n" +"เป็นรายการวัตถุ: พิมพ์อินสแตนซ์ตามลำดับเดียวกับรายการวัตถุ โดยไม่มีการปรับปรุงเส้นทางใด ๆ ใช้เมื่อคุณต้องการลำดับที่คาดเดาได้และควบคุมเองได้\n" +"ดีที่สุดจากทั้งหมด (เส้นทางสั้นที่สุด): จะประเมินทุกกลยุทธ์แล้วเลือกใช้กลยุทธ์ที่สั้นที่สุด ลำดับอินสแตนซ์ของวัตถุจะถูกกำหนดครั้งเดียวสำหรับทั้งงานพิมพ์ ส่วนลำดับของแต่ละเกาะจะถูกกำหนดแยกในแต่ละเลเยอร์ ดังนั้นเลเยอร์ต่าง ๆ อาจใช้กลยุทธ์ที่ต่างกัน สไลซ์ช้าลงเล็กน้อย\n" +"แบบงูเลื้อย: การไล่ทีละแถวแบบงูเลื้อย ปรับปรุงด้วย 2-opt เหมาะกับกริดที่เป็นระเบียบของชิ้นงานเล็ก ๆ จำนวนมาก\n" +"\n" +"เมื่อมีเส้นพลาสติกหรือหัวพิมพ์หลายชนิดในเลเยอร์เดียวกัน การลดจำนวนการเปลี่ยนหัวพิมพ์จะมีความสำคัญก่อน โดยวัตถุจะถูกจัดกลุ่มตามเส้นพลาสติกก่อน และการตั้งค่านี้จะจัดลำดับเฉพาะอินสแตนซ์ภายในแต่ละกลุ่มเส้นพลาสติกเท่านั้น ลำดับโดยรวมจึงอาจดูไม่เหมือนเส้นทางที่สั้นที่สุดบนฐานพิมพ์" msgid "As object list" msgstr "เป็นรายการวัตถุ" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "ดีที่สุดจากทั้งหมด (เส้นทางสั้นที่สุด)" + +# AI Translated +msgid "Snake" +msgstr "แบบงูเลื้อย" + msgid "Slow printing down for better layer cooling" msgstr "ชะลอการพิมพ์ลงเพื่อการระบายความร้อนที่ดีขึ้น" @@ -13709,7 +13753,7 @@ msgstr "" "อัตราการไหลของวัตถุขั้นสุดท้ายคือค่านี้คูณด้วยอัตราการไหลของเส้นพลาสติก" msgid "Enable pressure advance" -msgstr "เปิดใช้งานPressure Advance" +msgstr "เปิดใช้ Pressure Advance" msgid "Enable pressure advance, auto calibration result will be overwritten once enabled." msgstr "เปิดใช้งานการเลื่อนแรงดัน ผลลัพธ์การสอบเทียบอัตโนมัติจะถูกเขียนทับเมื่อเปิดใช้งาน" @@ -13718,7 +13762,7 @@ msgid "Pressure advance (Klipper) AKA Linear advance factor (Marlin)." msgstr "แรงดันล่วงหน้า (Pressure Advance) (Klipper) AKA Linear Advance Factor (Marlin)" msgid "Enable adaptive pressure advance (beta)" -msgstr "เปิดใช้งานการปรับPressure Advance (เบต้า)" +msgstr "เปิดใช้ Adaptive Pressure Advance (เบต้า)" #, no-c-format, no-boost-format msgid "" @@ -13736,7 +13780,7 @@ msgstr "" "เมื่อเปิดใช้งาน ค่าล่วงหน้าของแรงดันด้านบนจะถูกแทนที่ อย่างไรก็ตาม แนะนำให้ใช้ค่าเริ่มต้นที่สมเหตุสมผลด้านบนเพื่อเป็นทางเลือกและเมื่อมีการเปลี่ยนเครื่องมือ\n" msgid "Adaptive pressure advance measurements (beta)" -msgstr "การวัดล่วงหน้าด้วยแรงดันแบบปรับได้ (เบต้า)" +msgstr "ข้อมูลวัด Adaptive Pressure Advance (เบต้า)" #, no-c-format, no-boost-format msgid "" @@ -13977,7 +14021,7 @@ msgid "Loading speed" msgstr "ความเร็วกำลังโหลด" msgid "Speed used for loading the filament on the wipe tower." -msgstr "ความเร็วที่ใช้ในการโหลดเส้นพลาสติกบนไวด์ทาวเวอร์" +msgstr "ความเร็วที่ใช้ในการโหลดเส้นพลาสติกบน Wipe Tower" msgid "Loading speed at the start" msgstr "ความเร็วในการโหลดเมื่อเริ่มต้น" @@ -13989,7 +14033,7 @@ msgid "Unloading speed" msgstr "ความเร็วในการขนถ่าย" msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." -msgstr "ความเร็วที่ใช้ในการขนถ่ายเส้นพลาสติกบนไวด์ทาวเวอร์ (ไม่ส่งผลต่อส่วนเริ่มแรกของการขนถ่ายหลังจากการชน)" +msgstr "ความเร็วที่ใช้ในการขนถ่ายเส้นพลาสติกบน Wipe Tower (ไม่ส่งผลต่อส่วนเริ่มแรกของการขนถ่ายหลังจากการชน)" msgid "Unloading speed at the start" msgstr "ขนถ่ายความเร็วที่จุดเริ่มต้น" @@ -14031,10 +14075,10 @@ msgid "Minimal purge on wipe tower" msgstr "การล้างข้อมูลบน Wipe Tower น้อยที่สุด" msgid "After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably." -msgstr "หลังจากเปลี่ยนเครื่องมือ อาจไม่ทราบตำแหน่งที่แน่นอนของเส้นพลาสติกที่เพิ่งโหลดใหม่ภายในหัวฉีด และความดันเส้นพลาสติกก็มีแนวโน้มว่ายังไม่เสถียร ก่อนที่จะล้างหัวพิมพ์ลงในวัสดุไส้ในหรือวัตถุบูชายัญ Orca Slicer จะเตรียมวัสดุจำนวนนี้ลงในหอเช็ดเสมอเพื่อสร้างการอัดขึ้นรูปวัตถุแบบไส้ในหรือบูชายัญต่อเนื่องกันอย่างน่าเชื่อถือ" +msgstr "หลังจากเปลี่ยนเครื่องมือ อาจไม่ทราบตำแหน่งที่แน่นอนของเส้นพลาสติกที่เพิ่งโหลดใหม่ภายในหัวฉีด และความดันเส้นพลาสติกก็มีแนวโน้มว่ายังไม่เสถียร ก่อนที่จะล้างหัวพิมพ์ลงในวัสดุไส้ในหรือวัตถุบูชายัญ Orca Slicer จะเตรียมวัสดุจำนวนนี้ลงใน Wipe Tower เสมอเพื่อสร้างการอัดขึ้นรูปวัตถุแบบไส้ในหรือบูชายัญต่อเนื่องกันอย่างน่าเชื่อถือ" msgid "Wipe tower cooling" -msgstr "เช็ดทาวเวอร์คูลลิ่ง" +msgstr "Wipe Tower คูลลิ่ง" msgid "Temperature drop before entering filament tower" msgstr "อุณหภูมิลดลงก่อนเข้าหอใย" @@ -14043,19 +14087,19 @@ msgid "Interface layer pre-extrusion distance" msgstr "ระยะการอัดรีดชั้นอินเตอร์เฟซ" msgid "Pre-extrusion distance for prime tower interface layer (where different materials meet)." -msgstr "ระยะก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของไพรม์ทาวเวอร์ (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)" +msgstr "ระยะก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)" msgid "Interface layer pre-extrusion length" msgstr "ความยาวชั้นอินเตอร์เฟซก่อนการอัดขึ้นรูป" msgid "Pre-extrusion length for prime tower interface layer (where different materials meet)." -msgstr "ความยาวก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของไพรม์ทาวเวอร์ (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)" +msgstr "ความยาวก่อนการอัดขึ้นรูปสำหรับชั้นอินเทอร์เฟซของ Prime Tower (ที่วัสดุที่แตกต่างกันมาบรรจบกัน)" msgid "Tower ironing area" msgstr "พื้นที่รีดผิวแบบทาวเวอร์" msgid "Ironing area for prime tower interface layer (where different materials meet)." -msgstr "พื้นที่รีดผิวสำหรับชั้นอินเทอร์เฟซของไพร์มทาวเวอร์ (บริเวณที่วัสดุต่างกันมาบรรจบกัน)" +msgstr "พื้นที่รีดผิวสำหรับชั้นอินเทอร์เฟซของ Prime Tower (บริเวณที่วัสดุต่างกันมาบรรจบกัน)" msgid "mm²" msgstr "มม.²" @@ -14064,13 +14108,13 @@ msgid "Interface layer purge length" msgstr "ความยาวการล้างเลเยอร์อินเทอร์เฟซ" msgid "Purge length for prime tower interface layer (where different materials meet)." -msgstr "ความยาวในการไล่ล้างสำหรับชั้นอินเทอร์เฟซของไพรม์ทาวเวอร์ (เมื่อวัสดุต่างกันมาบรรจบกัน)" +msgstr "ความยาวในการไล่ล้างสำหรับชั้นอินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน)" msgid "Interface layer print temperature" msgstr "อุณหภูมิการพิมพ์เลเยอร์อินเทอร์เฟซ" msgid "Print temperature for prime tower interface layer (where different materials meet). If set to -1, use max recommended nozzle temperature." -msgstr "อุณหภูมิการพิมพ์สำหรับชั้นอินเทอร์เฟซของไพรม์ทาวเวอร์ (เมื่อวัสดุต่างกันมาบรรจบกัน) หากตั้งค่าเป็น -1 ให้ใช้อุณหภูมิหัวฉีดสูงสุดที่แนะนำ" +msgstr "อุณหภูมิการพิมพ์สำหรับชั้นอินเทอร์เฟซของ Prime Tower (เมื่อวัสดุต่างกันมาบรรจบกัน) หากตั้งค่าเป็น -1 ให้ใช้อุณหภูมิหัวฉีดสูงสุดที่แนะนำ" msgid "Speed of the last cooling move" msgstr "ความเร็วของการทำความเย็นครั้งล่าสุด" @@ -14088,7 +14132,7 @@ msgid "Enable ramming for multi-tool setups" msgstr "เปิดใช้งานการกระแทกสำหรับการตั้งค่าหลายเครื่องมือ" msgid "Perform ramming when using multi-tool printer (i.e. when the 'Single Extruder Multimaterial' in Printer Settings is unchecked). When checked, a small amount of filament is rapidly extruded on the wipe tower just before the tool change. This option is only used when the wipe tower is enabled." -msgstr "ทำการกระแทกเมื่อใช้เครื่องพิมพ์แบบหลายเครื่องมือ (เช่น เมื่อไม่ได้เลือก 'Single ชุดดันเส้น Multimaterial' ในการตั้งค่าเครื่องพิมพ์) เมื่อตรวจสอบแล้ว เส้นพลาสติกจำนวนเล็กน้อยจะถูกอัดรีดอย่างรวดเร็วบนไวด์ทาวเวอร์ก่อนที่จะเปลี่ยนเครื่องมือ ตัวเลือกนี้ใช้เฉพาะเมื่อเปิดใช้งาน Wipe Tower เท่านั้น" +msgstr "ทำการกระแทกเมื่อใช้เครื่องพิมพ์แบบหลายเครื่องมือ (เช่น เมื่อไม่ได้เลือก 'Single ชุดดันเส้น Multimaterial' ในการตั้งค่าเครื่องพิมพ์) เมื่อตรวจสอบแล้ว เส้นพลาสติกจำนวนเล็กน้อยจะถูกอัดรีดอย่างรวดเร็วบน Wipe Tower ก่อนที่จะเปลี่ยนเครื่องมือ ตัวเลือกนี้ใช้เฉพาะเมื่อเปิดใช้งาน Wipe Tower เท่านั้น" msgid "Multi-tool ramming volume" msgstr "ปริมาณการกระแทกหลายเครื่องมือ" @@ -14473,13 +14517,13 @@ msgid "Filament-specific override for ironing flow. This allows you to customize msgstr "การแทนที่เส้นพลาสติกเฉพาะสำหรับกระแสการรีดผิว ซึ่งช่วยให้คุณปรับแต่งกระแสการรีดผิวสำหรับเส้นพลาสติกแต่ละประเภทได้ ค่าที่สูงเกินไปส่งผลให้เกิดการอัดขึ้นรูปมากเกินไปบนพื้นผิว" msgid "Ironing line spacing" -msgstr "ระยะห่างระหว่างสายรีดผิว" +msgstr "ระยะห่างระหว่างเส้นรีดผิว" msgid "Filament-specific override for ironing line spacing. This allows you to customize the spacing between ironing lines for each filament type." msgstr "การแทนที่เส้นพลาสติกเฉพาะสำหรับระยะห่างระหว่างรีดผิว ซึ่งช่วยให้คุณปรับแต่งระยะห่างระหว่างเส้นรีดผิวสำหรับเส้นพลาสติกแต่ละประเภทได้" msgid "Ironing inset" -msgstr "อุปกรณ์รีดผิว" +msgstr "ระยะเว้นขอบการรีดผิว" msgid "Filament-specific override for ironing inset. This allows you to customize the distance to keep from the edges when ironing for each filament type." msgstr "การแทนที่เส้นพลาสติกเฉพาะสำหรับส่วนเสริมการรีดผิว ซึ่งช่วยให้คุณปรับแต่งระยะห่างจากขอบเมื่อรีดผิวสำหรับเส้นพลาสติกแต่ละประเภทได้" @@ -14521,10 +14565,10 @@ msgid "The average distance between the random points introduced on each line se msgstr "ระยะห่างเฉลี่ยระหว่างจุดสุ่มที่แนะนำในแต่ละส่วนของเส้น" msgid "Apply fuzzy skin to first layer" -msgstr "ทาผิวที่คลุมเครือเป็นชั้นแรก" +msgstr "ใช้ Fuzzy Skin กับชั้นแรก" msgid "Whether to apply fuzzy skin on the first layer." -msgstr "ไม่ว่าจะทาผิวฟุ้งๆในชั้นแรกหรือไม่" +msgstr "กำหนดว่าจะใช้ Fuzzy Skin กับชั้นแรกหรือไม่" msgid "Fuzzy skin generator mode" msgstr "โหมดสร้างผิวฟัซซี" @@ -14555,7 +14599,7 @@ msgid "Combined" msgstr "รวม" msgid "Fuzzy skin noise type" -msgstr "ประเภทเสียงผิวเลือน" +msgstr "ประเภท Noise ของ Fuzzy Skin" msgid "" "Noise type to use for fuzzy skin generation:\n" @@ -14566,12 +14610,12 @@ msgid "" "Voronoi: Divides the surface into voronoi cells, and displaces each one by a random amount. Creates a patchwork texture.\n" "Ripple: Uniform ripple pattern that ripples left and right of the original path. Repeating pattern, woven appearance." msgstr "" -"ประเภทเสียงรบกวนที่ใช้สำหรับการสร้างผิวที่คลุมเครือ:\n" +"ประเภท Noise ที่ใช้สำหรับการสร้างผิวฟัซซี:\n" "คลาสสิก: เสียงสุ่มเครื่องแบบคลาสสิก\n" "Perlin: เสียง Perlin ซึ่งให้เนื้อสัมผัสที่สม่ำเสมอยิ่งขึ้น\n" "Billow: คล้ายกับเสียงเพอร์ลิน แต่เป็นกลุ่มมากกว่า\n" "Ridged Multifractal: สัญญาณรบกวนที่คมชัดพร้อมคุณสมบัติหยัก สร้างพื้นผิวเหมือนหินอ่อน\n" -"โวโรนอย: แบ่งพื้นผิวออกเป็นเซลล์โวโรนอย และแทนที่แต่ละเซลล์ด้วยจำนวนสุ่ม สร้างพื้นผิวแบบเย็บปะติดปะต่อกัน\n" +"Voronoi: แบ่งพื้นผิวออกเป็นเซลล์ Voronoi และแทนที่แต่ละเซลล์ด้วยจำนวนสุ่ม สร้างพื้นผิวแบบเย็บปะติดปะต่อกัน\n" "ระลอกคลื่น: รูปแบบระลอกคลื่นสม่ำเสมอที่กระเพื่อมไปทางซ้ายและขวาของเส้นทางเดิม ลายซ้ำ ลักษณะการทอ." msgid "Classic" @@ -14587,7 +14631,7 @@ msgid "Ridged Multifractal" msgstr "Multifractal แบบสัน" msgid "Voronoi" -msgstr "โวโรน้อย" +msgstr "Voronoi" msgid "Ripple" msgstr "ระลอกคลื่น" @@ -14599,13 +14643,13 @@ msgid "The base size of the coherent noise features, in mm. Higher values will r msgstr "ขนาดฐานของคุณสมบัติเสียงที่สอดคล้องกัน หน่วยเป็น มม. ค่าที่สูงกว่าจะส่งผลให้มีคุณลักษณะที่ใหญ่ขึ้น" msgid "Fuzzy Skin Noise Octaves" -msgstr "อ็อกเทฟเสียงผิวฟัซซี" +msgstr "จำนวน Octave ของ Noise ใน Fuzzy Skin" msgid "The number of octaves of coherent noise to use. Higher values increase the detail of the noise, but also increase computation time." msgstr "จำนวนอ็อกเทฟของสัญญาณรบกวนที่สอดคล้องกันที่จะใช้ ค่าที่สูงกว่าจะเพิ่มรายละเอียดของสัญญาณรบกวน แต่ยังเพิ่มเวลาในการคำนวณด้วย" msgid "Fuzzy skin noise persistence" -msgstr "ความคงอยู่ของเสียงผิวเลือน" +msgstr "ค่า Persistence ของ Noise ใน Fuzzy Skin" msgid "The decay rate for higher octaves of the coherent noise. Lower values will result in smoother noise." msgstr "อัตราการสลายตัวของอ็อกเทฟที่สูงขึ้นของสัญญาณรบกวนที่สอดคล้องกัน ค่าที่ต่ำกว่าจะส่งผลให้มีสัญญาณรบกวนที่นุ่มนวลขึ้น" @@ -15693,7 +15737,7 @@ msgid "The start and end points which are from the cutter area to the excess chu msgstr "จุดเริ่มต้นและจุดสิ้นสุดตั้งแต่บริเวณเครื่องตัดถึงถังขยะ" msgid "Reduce infill retraction" -msgstr "ลดการหดตัวของ ไส้ใน" +msgstr "ลดการดึงกลับในไส้ใน" msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." msgstr "อย่าถอยกลับเมื่อการเดินทางอยู่ภายในพื้นที่ที่ไส้ในเข้าไปทั้งหมด นั่นหมายความว่าไม่สามารถมองเห็นการรั่วไหลได้ วิธีนี้จะช่วยลดเวลาในการดึงกลับสำหรับโมเดลที่ซับซ้อนและประหยัดเวลาในการพิมพ์ แต่จะทำให้การแบ่งส่วนและการสร้าง G-code ช้าลง โปรดทราบว่า z-hop จะไม่ดำเนินการในพื้นที่ที่มีการข้ามการถอนกลับ" @@ -15781,10 +15825,10 @@ msgid "If you want to process the output G-code through custom scripts, just lis msgstr "หากคุณต้องการประมวลผลเอาต์พุต G-code ผ่านสคริปต์ที่กำหนดเอง เพียงระบุเส้นทางสัมบูรณ์ของสคริปต์ไว้ที่นี่ แยกสคริปต์หลายรายการด้วยเครื่องหมายอัฒภาค สคริปต์จะถูกส่งผ่านเส้นทางสัมบูรณ์ไปยังไฟล์ G-code เป็นอาร์กิวเมนต์แรก และสคริปต์เหล่านี้สามารถเข้าถึงการตั้งค่าการกำหนดค่า Orca Slicer ได้โดยการอ่านตัวแปรสภาพแวดล้อม" msgid "Change extrusion role G-code (process)" -msgstr "เปลี่ยนบทบาทการอัดขึ้นรูป G-code (กระบวนการ)" +msgstr "เปลี่ยนประเภทการพิมพ์ G-code (กระบวนการ)" msgid "This G-code is inserted when the extrusion role is changed. It runs after the machine and filament extrusion role G-code." -msgstr "G-code นี้จะถูกแทรกเมื่อบทบาทการอัดขึ้นรูปมีการเปลี่ยนแปลง มันทำงานหลังจากบทบาทการอัดขึ้นรูปของเครื่องจักรและการอัดขึ้นรูปเส้นพลาสติก G-code" +msgstr "G-code นี้จะถูกแทรกเมื่อประเภทการพิมพ์มีการเปลี่ยนแปลง มันทำงานหลังจากประเภทการพิมพ์ของเครื่องจักรและเส้นพลาสติก G-code" # AI Translated msgid "Plugins Used" @@ -15853,7 +15897,7 @@ msgid "Only trigger retraction when the travel distance is longer than this thre msgstr "ทริกเกอร์การถอนกลับเมื่อระยะการเดินทางยาวกว่าเกณฑ์นี้เท่านั้น" msgid "Retract amount before wipe" -msgstr "ถอนจำนวนก่อนเช็ด" +msgstr "สัดส่วนการดึงกลับก่อน Wipe" msgid "This is the length of fast retraction before a wipe, relative to retraction length." msgstr "ความยาวของการดึงกลับอย่างรวดเร็วก่อนเช็ด สัมพันธ์กับความยาวการดึงกลับ" @@ -15872,7 +15916,7 @@ msgstr "" "ค่าจะถูกจำกัดด้วย 100% ลบด้วยปริมาณการดึงกลับก่อนค่าเช็ดหัว" msgid "Retract on layer change" -msgstr "ถอนออกเมื่อเปลี่ยนเลเยอร์" +msgstr "ดึงเส้นกลับเมื่อเปลี่ยนเลเยอร์" msgid "This forces a retraction on layer changes." msgstr "บังคับให้ถอนกลับเมื่อเปลี่ยนเลเยอร์" @@ -15881,7 +15925,7 @@ msgid "Retraction Length" msgstr "ระยะดึงกลับ" msgid "Some amount of material in extruder is pulled back to avoid ooze during long travel. Set zero to disable retraction." -msgstr "วัสดุบางส่วนในชุดดันเส้นถูกดึงกลับเพื่อหลีกเลี่ยงไม่ให้ซึ่มในระหว่างการเดินทางระยะไกล ตั้งค่าเป็นศูนย์เพื่อปิดใช้งานการเพิกถอน" +msgstr "วัสดุบางส่วนในชุดดันเส้นถูกดึงกลับเพื่อหลีกเลี่ยงไม่ให้ซึ่มในระหว่างการเดินทางระยะไกล ตั้งเป็น 0 เพื่อปิดการดึงกลับ" msgid "Long retraction when cut (beta)" msgstr "การถอยกลับยาวเมื่อตัด (เบต้า)" @@ -16005,7 +16049,7 @@ msgid "Speed for retracting filament from the nozzle." msgstr "ความเร็วในการดึงเส้นพลาสติกออกจากหัวฉีด" msgid "Deretraction speed" -msgstr "ความเร็วในการถอนกลับ" +msgstr "ความเร็วคืนเส้นหลังดึงกลับ" msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction." msgstr "ความเร็วในการบรรจุเส้นพลาสติกลงในหัวฉีด ศูนย์หมายถึงความเร็วการถอยกลับเท่ากัน" @@ -16019,7 +16063,7 @@ msgid "Speed for reloading filament into the nozzle when switching extruder." msgstr "ความเร็วในการโหลดเส้นพลาสติกกลับเข้าหัวฉีดเมื่อเปลี่ยนชุดดันเส้น" msgid "Use firmware retraction" -msgstr "ใช้การเพิกถอนเฟิร์มแวร์" +msgstr "ใช้การดึงกลับด้วยเฟิร์มแวร์" msgid "This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only supported in recent Marlin." msgstr "การตั้งค่าทดลองนี้ใช้คำสั่ง G10 และ G11 เพื่อให้เฟิร์มแวร์จัดการกับการเพิกถอน สิ่งนี้รองรับใน Marlin ล่าสุดเท่านั้น" @@ -16071,16 +16115,16 @@ msgstr "" "ปริมาณนี้สามารถระบุได้ในหน่วยมิลลิเมตรหรือเป็นเปอร์เซ็นต์ของเส้นผ่านศูนย์กลางของชุดดันเส้นในปัจจุบัน ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ 10%" msgid "Scarf joint seam (beta)" -msgstr "รอยต่อเฉียง (เบต้า)" +msgstr "รอยต่อ Scarf (เบต้า)" msgid "Use scarf joint to minimize seam visibility and increase seam strength." -msgstr "ใช้ข้อต่อเฉียงเพื่อลดการมองเห็นรอยตะเข็บและเพิ่มความแข็งแรงของรอยตะเข็บ" +msgstr "ใช้รอยต่อ Scarf เพื่อลดการมองเห็นรอยตะเข็บและเพิ่มความแข็งแรง" msgid "Conditional scarf joint" -msgstr "ข้อต่อเฉียงแบบมีเงื่อนไข" +msgstr "รอยต่อ Scarf แบบมีเงื่อนไข" msgid "Apply scarf joints only to smooth perimeters where traditional seams do not conceal the seams at sharp corners effectively." -msgstr "ใช้ข้อต่อเฉียงกับขอบเรียบเท่านั้น โดยที่รอยตะเข็บแบบเดิมไม่สามารถปกปิดรอยตะเข็บที่มุมแหลมคมได้อย่างมีประสิทธิภาพ" +msgstr "ใช้รอยต่อ Scarf กับขอบเรียบเท่านั้น โดยที่รอยตะเข็บแบบเดิมไม่สามารถปกปิดรอยตะเข็บที่มุมแหลมคมได้อย่างมีประสิทธิภาพ" msgid "Conditional angle threshold" msgstr "เกณฑ์มุมแบบมีเงื่อนไข" @@ -16089,67 +16133,67 @@ msgid "" "This option sets the threshold angle for applying a conditional scarf joint seam.\n" "If the maximum angle within the perimeter loop exceeds this value (indicating the absence of sharp corners), a scarf joint seam will be used. The default value is 155°." msgstr "" -"ตัวเลือกนี้จะกำหนดมุมเกณฑ์สำหรับการใช้รอยตะเข็บข้อต่อเฉียงแบบมีเงื่อนไข\n" -"หากมุมสูงสุดภายในวงรอบปริมณฑลเกินค่านี้ (แสดงว่าไม่มีมุมแหลมคม) จะใช้รอยตะเข็บข้อต่อเฉียง ค่าเริ่มต้นคือ 155°" +"ตัวเลือกนี้จะกำหนดมุมเกณฑ์สำหรับการใช้รอยต่อ Scarf แบบมีเงื่อนไข\n" +"หากมุมสูงสุดภายในวงรอบปริมณฑลเกินค่านี้ (แสดงว่าไม่มีมุมแหลมคม) จะใช้รอยต่อ Scarf ค่าเริ่มต้นคือ 155°" msgid "Conditional overhang threshold" msgstr "เกณฑ์ระยะยื่นแบบมีเงื่อนไข" #, no-c-format, no-boost-format msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated." -msgstr "ตัวเลือกนี้จะกำหนดเกณฑ์ส่วนยื่นสำหรับการใช้รอยตะเข็บข้อต่อเฉียง หากส่วนที่ไม่ได้รับส่วนรองรับของเส้นรอบวงน้อยกว่าเกณฑ์นี้ จะมีการเย็บรอยตะเข็บเฉียง เกณฑ์เริ่มต้นตั้งไว้ที่ 40% ของความกว้างของผนังภายนอก เมื่อพิจารณาถึงประสิทธิภาพแล้ว ระดับของระยะยื่นจึงถูกประมาณไว้" +msgstr "ตัวเลือกนี้จะกำหนดเกณฑ์ส่วนยื่นสำหรับการใช้รอยต่อ Scarf หากส่วนที่ไม่ได้รับส่วนรองรับของเส้นรอบวงน้อยกว่าเกณฑ์นี้ จะใช้รอยต่อ Scarf เกณฑ์เริ่มต้นตั้งไว้ที่ 40% ของความกว้างของผนังภายนอก เมื่อพิจารณาถึงประสิทธิภาพแล้ว ระดับของระยะยื่นจึงถูกประมาณไว้" msgid "Scarf joint speed" -msgstr "ความเร็วของข้อต่อเฉียง" +msgstr "ความเร็วรอยต่อ Scarf" msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%." -msgstr "ตัวเลือกนี้จะตั้งค่าความเร็วในการพิมพ์สำหรับข้อต่อเฉียง ขอแนะนำให้พิมพ์ข้อต่อเฉียงด้วยความเร็วต่ำ (น้อยกว่า 100 มม./วินาที) ขอแนะนำให้เปิดใช้งาน 'การปรับอัตราการอัดรีดให้เรียบ' หากความเร็วที่ตั้งไว้แตกต่างอย่างมากจากความเร็วของผนังด้านนอกหรือด้านใน หากความเร็วที่ระบุที่นี่สูงกว่าความเร็วของผนังด้านนอกหรือด้านใน เครื่องพิมพ์จะตั้งค่าเริ่มต้นไว้ที่ความเร็วที่ช้ากว่าทั้งสอง เมื่อระบุเป็นเปอร์เซ็นต์ (เช่น 80%) ความเร็วจะคำนวณตามความเร็วผนังด้านนอกหรือด้านในตามลำดับ ค่าเริ่มต้นตั้งไว้ที่ 100%" +msgstr "ตัวเลือกนี้จะตั้งค่าความเร็วในการพิมพ์สำหรับรอยต่อ Scarf ขอแนะนำให้พิมพ์รอยต่อ Scarfด้วยความเร็วต่ำ (น้อยกว่า 100 มม./วินาที) ขอแนะนำให้เปิดใช้งาน 'การปรับอัตราการอัดรีดให้เรียบ' หากความเร็วที่ตั้งไว้แตกต่างอย่างมากจากความเร็วของผนังด้านนอกหรือด้านใน หากความเร็วที่ระบุที่นี่สูงกว่าความเร็วของผนังด้านนอกหรือด้านใน เครื่องพิมพ์จะตั้งค่าเริ่มต้นไว้ที่ความเร็วที่ช้ากว่าทั้งสอง เมื่อระบุเป็นเปอร์เซ็นต์ (เช่น 80%) ความเร็วจะคำนวณตามความเร็วผนังด้านนอกหรือด้านในตามลำดับ ค่าเริ่มต้นตั้งไว้ที่ 100%" msgid "Scarf joint flow ratio" -msgstr "อัตราการไหลของข้อต่อเฉียง" +msgstr "อัตราส่วนการไหลของรอยต่อ Scarf" msgid "This factor affects the amount of material for scarf joints." -msgstr "ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับข้อต่อเฉียง" +msgstr "ปัจจัยนี้ส่งผลต่อปริมาณวัสดุสำหรับรอยต่อ Scarf" msgid "Scarf start height" -msgstr "ความสูงเริ่มต้นของเฉียง" +msgstr "ความสูงเริ่มต้นของรอยต่อ Scarf" msgid "" "Start height of the scarf.\n" "This amount can be specified in millimeters or as a percentage of the current layer height. The default value for this parameter is 0." msgstr "" -"เริ่มต้นความสูงของเฉียง\n" +"ความสูงเริ่มต้นของรอยต่อ Scarf\n" "จำนวนนี้สามารถระบุได้ในหน่วยมิลลิเมตรหรือเป็นเปอร์เซ็นต์ของความสูงของเลเยอร์ปัจจุบัน ค่าเริ่มต้นสำหรับพารามิเตอร์นี้คือ 0" msgid "Scarf around entire wall" -msgstr "เฉียงพันรอบผนังทั้งหมด" +msgstr "ใช้รอยต่อ Scarf ตลอดทั้งผนัง" msgid "The scarf extends to the entire length of the wall." -msgstr "เฉียงยาวตลอดความยาวของผนัง" +msgstr "รอยต่อ Scarf ครอบคลุมตลอดความยาวผนัง" msgid "Scarf length" -msgstr "ความยาวเฉียง" +msgstr "ความยาวรอยต่อ Scarf" msgid "Length of the scarf. Setting this parameter to zero effectively disables the scarf." -msgstr "ความยาวของเฉียง. การตั้งค่าพารามิเตอร์นี้เป็นศูนย์จะปิดใช้เฉียงอย่างมีประสิทธิภาพ" +msgstr "ความยาวของรอยต่อ Scarf ตั้งเป็น 0 เพื่อปิดการใช้ Scarf" msgid "Scarf steps" -msgstr "ขั้นตอนเฉียง" +msgstr "จำนวนขั้นของรอยต่อ Scarf" msgid "Minimum number of segments of each scarf." -msgstr "จำนวนขั้นต่ำของส่วนเฉียงแต่ละอัน" +msgstr "จำนวนเซกเมนต์ขั้นต่ำของรอยต่อ Scarf" msgid "Scarf joint for inner walls" -msgstr "ข้อต่อเฉียงสำหรับผนังด้านใน" +msgstr "รอยต่อ Scarf สำหรับผนังด้านใน" msgid "Use scarf joint for inner walls as well." -msgstr "ใช้ข้อต่อเฉียงสำหรับผนังด้านในด้วย" +msgstr "ใช้รอยต่อ Scarf กับผนังด้านในด้วย" msgid "Role base wipe speed" -msgstr "ความเร็วในการล้างฐานบทบาท" +msgstr "ความเร็ว Wipe ตามประเภทการพิมพ์" msgid "The wipe speed is determined by the speed of the current extrusion role. e.g. if a wipe action is executed immediately following an outer wall extrusion, the speed of the outer wall extrusion will be utilized for the wipe action." -msgstr "ความเร็วในการเช็ดถูกกำหนดโดยความเร็วของบทบาทการอัดขึ้นรูปในปัจจุบัน เช่น หากการดำเนินการเช็ดถูกดำเนินการทันทีหลังจากการอัดขึ้นรูปผนังด้านนอก ความเร็วของการอัดขึ้นรูปผนังด้านนอกจะถูกใช้สำหรับการดำเนินการเช็ด" +msgstr "ความเร็ว Wipe จะอิงจากความเร็วของประเภทการพิมพ์ปัจจุบัน เช่น หากการ Wipe เกิดขึ้นทันทีหลังจากพิมพ์ผนังด้านนอก ความเร็วของผนังด้านนอกจะถูกใช้สำหรับการ Wipe" msgid "Wipe on loops" msgstr "เช็ดบนลูป" @@ -16197,10 +16241,10 @@ msgid "Single loop after first layer" msgstr "วนรอบเดียวหลังจากชั้นแรก" msgid "Limits the skirt/draft shield loops to one wall after the first layer. This is useful, on occasion, to conserve filament but may cause the draft shield/skirt to warp / crack." -msgstr "จำกัดห่วงสเกิร์ต/โล่ครอบไว้ที่ผนังด้านหนึ่งหลังจากชั้นแรก สิ่งนี้มีประโยชน์ในบางครั้งเพื่ออนุรักษ์เส้นพลาสติก แต่อาจทำให้โครง/เส้นล้อมชิ้นงานบิดเบี้ยว/แตกร้าวได้" +msgstr "จำกัดห่วงสเกิร์ต/แนวป้องกันลม (Draft Shield) ไว้ที่ผนังเดียวหลังจากชั้นแรก สิ่งนี้มีประโยชน์ในบางครั้งเพื่อประหยัดเส้นพลาสติก แต่อาจทำให้แนวป้องกันลม/เส้นล้อมชิ้นงานบิดเบี้ยว/แตกร้าวได้" msgid "Draft shield" -msgstr "โล่ร่าง" +msgstr "แนวป้องกันลม (Draft Shield)" msgid "" "A draft shield is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft. It is usually needed only with open frame printers, i.e. without an enclosure.\n" @@ -16208,10 +16252,10 @@ msgid "" "Enabled = skirt is as tall as the highest printed object. Otherwise 'Skirt height' is used.\n" "Note: With the draft shield active, the skirt will be printed at skirt distance from the object. Therefore, if brims are active it may intersect with them. To avoid this, increase the skirt distance value.\n" msgstr "" -"แผงครอบมีประโยชน์ในการปกป้องงานพิมพ์ ABS หรือ ASA จากการบิดงอและการหลุดออกจากฐานพิมพ์เนื่องจากกระแสลม โดยทั่วไปจำเป็นต้องใช้กับเครื่องพิมพ์แบบเปิดเฟรมเท่านั้น กล่าวคือ ไม่มีกล่องหุ้ม\n" +"แนวป้องกันลม (Draft Shield) มีประโยชน์ในการปกป้องงานพิมพ์ ABS หรือ ASA จากการบิดงอและการหลุดออกจากฐานพิมพ์เนื่องจากกระแสลม โดยทั่วไปจำเป็นต้องใช้กับเครื่องพิมพ์แบบเปิดเฟรมเท่านั้น กล่าวคือ ไม่มีกล่องหุ้ม\n" "\n" "Enabled = เส้นล้อมชิ้นงานสูงเท่ากับวัตถุที่พิมพ์สูงสุด มิฉะนั้น จะใช้ 'ความสูงของเส้นล้อมชิ้นงาน'\n" -"หมายเหตุ: เมื่อใช้งานดราฟชีลด์ เส้นล้อมชิ้นงานจะถูกพิมพ์ที่ระยะห่างจากเส้นล้อมชิ้นงานจากวัตถุ ดังนั้นหากขอบยึดชิ้นงานยังทำงานอยู่ ขอบยึดชิ้นงานอาจตัดกัน เพื่อหลีกเลี่ยงปัญหานี้ ให้เพิ่มค่าระยะห่างของเส้นล้อมชิ้นงาน\n" +"หมายเหตุ: เมื่อใช้งานแนวป้องกันลม (Draft Shield) เส้นล้อมชิ้นงานจะถูกพิมพ์ที่ระยะห่างจากวัตถุ ดังนั้นหากขอบยึดชิ้นงานยังทำงานอยู่ ขอบยึดชิ้นงานอาจตัดกัน เพื่อหลีกเลี่ยงปัญหานี้ ให้เพิ่มค่าระยะห่างของเส้นล้อมชิ้นงาน\n" msgid "Enabled" msgstr "เปิดใช้" @@ -16318,7 +16362,7 @@ msgid "Sets the finishing flow ratio while ending the spiral. Normally the spira msgstr "ตั้งค่าอัตราส่วนการไหลขั้นสุดท้ายขณะสิ้นสุดเกลียว โดยปกติการเปลี่ยนผ่านของเกลียวจะปรับขนาดอัตราส่วนการไหลจาก 100% เป็น 0% ในระหว่างลูปสุดท้าย ซึ่งในบางกรณีอาจนำไปสู่การรีดขึ้นรูปที่ปลายเกลียว" msgid "If smooth or traditional mode is selected, a timelapse video will be generated for each print. After each layer is printed, a snapshot is taken with the chamber camera. All of these snapshots are composed into a timelapse video when printing completes. If smooth mode is selected, the toolhead will move to the excess chute after each layer is printed and then take a snapshot. Since the melt filament may leak from the nozzle during the process of taking a snapshot, a prime tower is required for smooth mode to wipe the nozzle." -msgstr "หากเลือกโหมดเรียบหรือโหมดดั้งเดิม วิดีโอไทม์แลปส์จะถูกสร้างขึ้นสำหรับการพิมพ์แต่ละครั้ง หลังจากพิมพ์แต่ละชั้นแล้ว กล้องจะถ่ายภาพสแนปช็อตด้วยกล้องแชมเบอร์ สแน็ปช็อตทั้งหมดนี้จะถูกประกอบเป็นวิดีโอไทม์แลปส์เมื่อการพิมพ์เสร็จสิ้น หากเลือกโหมดเรียบ หัวเครื่องมือจะย้ายไปยังรางส่วนเกินหลังจากพิมพ์แต่ละเลเยอร์แล้วจึงถ่ายภาพสแน็ปช็อต เนื่องจากเส้นพลาสติกที่หลอมละลายอาจรั่วไหลออกจากหัวฉีดในระหว่างขั้นตอนการถ่ายภาพ จึงจำเป็นต้องมีไพรม์ทาวเวอร์เพื่อให้โหมดราบรื่นในการเช็ดหัวฉีด" +msgstr "หากเลือกโหมดเรียบหรือโหมดดั้งเดิม วิดีโอไทม์แลปส์จะถูกสร้างขึ้นสำหรับการพิมพ์แต่ละครั้ง หลังจากพิมพ์แต่ละชั้นแล้ว กล้องจะถ่ายภาพสแนปช็อตด้วยกล้องแชมเบอร์ สแน็ปช็อตทั้งหมดนี้จะถูกประกอบเป็นวิดีโอไทม์แลปส์เมื่อการพิมพ์เสร็จสิ้น หากเลือกโหมดเรียบ หัวเครื่องมือจะย้ายไปยังรางส่วนเกินหลังจากพิมพ์แต่ละเลเยอร์แล้วจึงถ่ายภาพสแน็ปช็อต เนื่องจากเส้นพลาสติกที่หลอมละลายอาจรั่วไหลออกจากหัวฉีดในระหว่างขั้นตอนการถ่ายภาพ จึงจำเป็นต้องมี Prime Tower เพื่อให้โหมดราบรื่นในการเช็ดหัวฉีด" msgid "Traditional" msgstr "แบบดั้งเดิม" @@ -16332,7 +16376,7 @@ msgstr "ไทม์แลปส์จุดไกลสุด" # AI Translated msgid "When enabled, the timelapse snapshot is taken at the farthest point from camera instead of traveling to the wipe tower or excess chute. Only effective in traditional timelapse mode on non-I3 printers." -msgstr "เมื่อเปิดใช้งาน ภาพไทม์แลปส์จะถูกถ่ายที่จุดไกลสุดจากกล้องแทนที่จะเดินหัวไปยังทาวเวอร์เช็ดหัวฉีดหรือช่องทิ้งส่วนเกิน มีผลเฉพาะในโหมดไทม์แลปส์แบบดั้งเดิมบนเครื่องพิมพ์ที่ไม่ใช่ I3" +msgstr "เมื่อเปิดใช้งาน ภาพไทม์แลปส์จะถูกถ่ายที่จุดไกลสุดจากกล้องแทนที่จะเดินหัวไปยัง Wipe Tower หรือช่องทิ้งส่วนเกิน มีผลเฉพาะในโหมดไทม์แลปส์แบบดั้งเดิมบนเครื่องพิมพ์ที่ไม่ใช่ I3" msgid "Temperature variation" msgstr "การเปลี่ยนแปลงของอุณหภูมิ" @@ -16381,10 +16425,10 @@ msgid "Enable this option to omit the custom Change filament G-code only at the msgstr "เปิดใช้งานตัวเลือกนี้เพื่อละเว้น G-code เปลี่ยนฟิลาเมนต์แบบกำหนดเองเฉพาะตอนเริ่มต้นการพิมพ์เท่านั้น คำสั่งเปลี่ยนเครื่องมือ (เช่น T0) จะถูกข้ามไปตลอดการพิมพ์ทั้งหมด สิ่งนี้มีประโยชน์สำหรับการพิมพ์หลายวัสดุด้วยตนเอง โดยที่เราใช้ M600/PAUSE เพื่อกระตุ้นการดำเนินการเปลี่ยนเส้นพลาสติกด้วยตนเอง" msgid "Wipe tower type" -msgstr "ชนิดทาวเวอร์เช็ด" +msgstr "ชนิด Wipe Tower" msgid "Choose the wipe tower implementation for multi-material prints. Type 1 is recommended for Bambu and Qidi printers with a filament cutter. Type 2 offers better compatibility with multi-tool and MMU printers and provide overall better compatibility." -msgstr "เลือกการใช้งานไวด์ทาวเวอร์สำหรับการพิมพ์แบบหลายวัสดุ แนะนำให้ใช้ประเภท 1 สำหรับเครื่องพิมพ์ Bambu และ Qidi ที่มีเครื่องตัดเส้นพลาสติก Type 2 ให้ความเข้ากันได้ที่ดีกว่ากับเครื่องพิมพ์หลายเครื่องมือและ MMU และให้ความเข้ากันได้โดยรวมดีขึ้น" +msgstr "เลือกการใช้งาน Wipe Tower สำหรับการพิมพ์แบบหลายวัสดุ แนะนำให้ใช้ประเภท 1 สำหรับเครื่องพิมพ์ Bambu และ Qidi ที่มีเครื่องตัดเส้นพลาสติก Type 2 ให้ความเข้ากันได้ที่ดีกว่ากับเครื่องพิมพ์หลายเครื่องมือและ MMU และให้ความเข้ากันได้โดยรวมดีขึ้น" msgid "Type 1" msgstr "ประเภทที่ 1" @@ -16393,25 +16437,25 @@ msgid "Type 2" msgstr "ประเภทที่ 2" msgid "Purge in prime tower" -msgstr "ระยะเว้นในไพร์มทาวเวอร์" +msgstr "ระยะเว้นใน Prime Tower" msgid "Purge remaining filament into prime tower." -msgstr "ล้างเส้นพลาสติกที่เหลือลงในไพร์มทาวเวอร์" +msgstr "ล้างเส้นพลาสติกที่เหลือลงใน Prime Tower" msgid "Enable filament ramming" msgstr "เปิดใช้งานการอัดกระแทกเส้นเส้นพลาสติก" msgid "Tool change on wipe tower" -msgstr "การเปลี่ยนเครื่องมือบนไวด์ทาวเวอร์" +msgstr "การเปลี่ยนเครื่องมือบน Wipe Tower" msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead." -msgstr "บังคับให้หัวเครื่องมือเคลื่อนที่ไปที่หอเช็ดก่อนที่จะออกคำสั่งเปลี่ยนเครื่องมือ (Tx) เกี่ยวข้องเฉพาะกับเครื่องพิมพ์ที่มีชุดดันเส้นหลายเครื่อง (หลายหัวเครื่องมือ) ที่ใช้แผ่นเช็ดแบบ Type 2 ตามค่าเริ่มต้น Orca จะข้ามการเดินทางบนเครื่องที่มีหัวเครื่องมือหลายหัวเนื่องจากเฟิร์มแวร์จัดการการสลับหัว ซึ่งอาจส่งผลให้มีการออกคำสั่ง Tx เหนือส่วนที่พิมพ์ เปิดใช้งานตัวเลือกนี้หากคุณต้องการให้ทำการเปลี่ยนแปลงเครื่องมือเหนือหอเช็ดแทนเสมอ" +msgstr "บังคับให้หัวเครื่องมือเคลื่อนที่ไปที่ Wipe Tower ก่อนที่จะออกคำสั่งเปลี่ยนเครื่องมือ (Tx) เกี่ยวข้องเฉพาะกับเครื่องพิมพ์ที่มีชุดดันเส้นหลายเครื่อง (หลายหัวเครื่องมือ) ที่ใช้แผ่นเช็ดแบบ Type 2 ตามค่าเริ่มต้น Orca จะข้ามการเดินทางบนเครื่องที่มีหัวเครื่องมือหลายหัวเนื่องจากเฟิร์มแวร์จัดการการสลับหัว ซึ่งอาจส่งผลให้มีการออกคำสั่ง Tx เหนือส่วนที่พิมพ์ เปิดใช้งานตัวเลือกนี้หากคุณต้องการให้ทำการเปลี่ยนแปลงเครื่องมือเหนือ Wipe Tower แทนเสมอ" msgid "No sparse layers (beta)" msgstr "ไม่มีชั้นกระจัดกระจาย (เบต้า)" msgid "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print." -msgstr "หากเปิดใช้งาน หอเช็ดจะไม่ถูกพิมพ์บนเลเยอร์โดยไม่มีการเปลี่ยนแปลงเครื่องมือ บนเลเยอร์ที่มีการเปลี่ยนเครื่องมือ ชุดดันเส้นจะเคลื่อนลงด้านล่างเพื่อพิมพ์ไวด์ทาวเวอร์ ผู้ใช้มีหน้าที่รับผิดชอบในการตรวจสอบให้แน่ใจว่าไม่มีการชนกันกับงานพิมพ์" +msgstr "หากเปิดใช้งาน Wipe Tower จะไม่ถูกพิมพ์บนเลเยอร์โดยไม่มีการเปลี่ยนแปลงเครื่องมือ บนเลเยอร์ที่มีการเปลี่ยนเครื่องมือ ชุดดันเส้นจะเคลื่อนลงด้านล่างเพื่อพิมพ์ Wipe Tower ผู้ใช้มีหน้าที่รับผิดชอบในการตรวจสอบให้แน่ใจว่าไม่มีการชนกันกับงานพิมพ์" msgid "Prime all printing extruders" msgstr "ใช้ชุดดันเส้นการพิมพ์ทั้งหมด" @@ -16676,7 +16720,7 @@ msgid "Independent support layer height" msgstr "ความสูงของชั้นรองรับอิสระ" msgid "Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. This option will be invalid when the prime tower is enabled." -msgstr "เลเยอร์ส่วนรองรับใช้ความสูงของเลเยอร์ที่เป็นอิสระจากเลเยอร์วัตถุ เพื่อรองรับการปรับแต่ง Z-gap และประหยัดเวลาในการพิมพ์ ตัวเลือกนี้จะไม่ถูกต้องเมื่อเปิดใช้งานไพรม์ทาวเวอร์" +msgstr "เลเยอร์ส่วนรองรับใช้ความสูงของเลเยอร์ที่เป็นอิสระจากเลเยอร์วัตถุ เพื่อรองรับการปรับแต่ง Z-gap และประหยัดเวลาในการพิมพ์ ตัวเลือกนี้จะไม่ถูกต้องเมื่อเปิดใช้งาน Prime Tower" msgid "Threshold angle" msgstr "มุมเกณฑ์" @@ -16841,13 +16885,13 @@ msgid "This G-code is inserted when filament is changed, including T commands to msgstr "รหัส G นี้จะถูกแทรกเมื่อมีการเปลี่ยนเส้นพลาสติก รวมถึงคำสั่ง T เพื่อกระตุ้นการเปลี่ยนเครื่องมือ" msgid "This G-code is inserted when the extrusion role is changed." -msgstr "G-code นี้จะถูกแทรกเมื่อบทบาทการอัดขึ้นรูปมีการเปลี่ยนแปลง" +msgstr "G-code นี้จะถูกแทรกเมื่อประเภทการพิมพ์มีการเปลี่ยนแปลง" msgid "Change extrusion role G-code (filament)" -msgstr "เปลี่ยนบทบาทการอัดขึ้นรูป G-code (เส้นพลาสติก)" +msgstr "เปลี่ยนประเภทการพิมพ์ G-code (เส้นพลาสติก)" msgid "This G-code is inserted when the extrusion role is changed for the active filament." -msgstr "รหัส G นี้จะถูกแทรกเมื่อมีการเปลี่ยนบทบาทการอัดขึ้นรูปสำหรับเส้นพลาสติกที่ใช้งานอยู่" +msgstr "รหัส G นี้จะถูกแทรกเมื่อมีการเปลี่ยนประเภทการพิมพ์สำหรับเส้นพลาสติกที่ใช้งานอยู่" msgid "Line width for top surfaces. If expressed as a %, it will be computed over the nozzle diameter." msgstr "ความกว้างของเส้นสำหรับพื้นผิวด้านบน หากแสดงเป็น % จะคำนวณตามเส้นผ่านศูนย์กลางของหัวฉีด" @@ -16937,13 +16981,13 @@ msgstr "" "การตั้งค่าในจำนวนการถอนก่อนการล้างการตั้งค่าด้านล่างจะทำการถอนส่วนที่เกินก่อนการล้าง มิฉะนั้นจะดำเนินการหลังจากนั้น" msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." -msgstr "หอเช็ดสามารถใช้เพื่อทำความสะอาดสิ่งตกค้างบนหัวฉีด และทำให้แรงดันในห้องภายในหัวฉีดคงที่ เพื่อหลีกเลี่ยงข้อบกพร่องในลักษณะที่ปรากฏเมื่อพิมพ์วัตถุ" +msgstr "Wipe Tower สามารถใช้เพื่อทำความสะอาดสิ่งตกค้างบนหัวฉีด และทำให้แรงดันในห้องภายในหัวฉีดคงที่ เพื่อหลีกเลี่ยงข้อบกพร่องในลักษณะที่ปรากฏเมื่อพิมพ์วัตถุ" msgid "Internal ribs" -msgstr "ซี่โครงภายใน" +msgstr "ครีบเสริมภายใน" msgid "Enable internal ribs to increase the stability of the prime tower." -msgstr "เปิดใช้งานซี่โครงภายในเพื่อเพิ่มความมั่นคงของหอคอยหลัก" +msgstr "เปิดใช้ครีบเสริมภายในเพื่อเพิ่มความมั่นคงของ Prime Tower" msgid "Purging volumes" msgstr "ปริมาตรการไล่เส้น" @@ -16963,10 +17007,10 @@ msgid "The flush multiplier used in fast purge mode." msgstr "ตัวคูณการไล่เส้นที่ใช้ในโหมดไล่เส้นเร็ว" msgid "Prime volume" -msgstr "ปริมาณเฉพาะ" +msgstr "ปริมาตร Prime" msgid "This is the volume of material to prime the extruder with on the tower." -msgstr "ปริมาตรวัสดุสำหรับเตรียมหัวฉีดบนไพรม์ทาวเวอร์" +msgstr "ปริมาตรวัสดุสำหรับเตรียมหัวฉีดบน Prime Tower" # AI Translated msgid "Prime volume mode" @@ -16974,7 +17018,7 @@ msgstr "โหมดปริมาณการไพรม์" # AI Translated msgid "Selects how the wipe-tower prime and flush volumes are computed on multi-extruder printers." -msgstr "เลือกวิธีการคำนวณปริมาณการไพรม์และการไล่เส้นของทาวเวอร์เช็ดหัวฉีดบนเครื่องพิมพ์แบบหลายชุดดันเส้น" +msgstr "เลือกวิธีการคำนวณปริมาณการไพรม์และการไล่เส้นของ Wipe Tower บนเครื่องพิมพ์แบบหลายชุดดันเส้น" # AI Translated msgid "Saving" @@ -16985,25 +17029,25 @@ msgid "Fast" msgstr "เร็ว" msgid "This is the width of prime towers." -msgstr "ความกว้างของไพรม์ทาวเวอร์" +msgstr "ความกว้างของ Prime Tower" msgid "Wipe tower rotation angle" -msgstr "เช็ดมุมการหมุนของทาวเวอร์" +msgstr "มุมหมุนของ Wipe Tower" msgid "Wipe tower rotation angle with respect to X axis." -msgstr "เช็ดมุมการหมุนของทาวเวอร์ตามแกน X" +msgstr "มุมหมุนของ Wipe Tower เทียบกับแกน X" msgid "Brim width of prime tower, negative number means auto calculated width based on the height of prime tower." -msgstr "ความกว้างขอบของหอคอยหลัก ตัวเลขติดลบหมายถึงความกว้างที่คำนวณโดยอัตโนมัติตามความสูงของหอคอยหลัก" +msgstr "ความกว้างขอบของ Prime Tower ตัวเลขติดลบหมายถึงความกว้างที่คำนวณโดยอัตโนมัติตามความสูงของ Prime Tower" msgid "Stabilization cone apex angle" msgstr "มุมเอเพ็กซ์ของกรวยป้องกันการสั่นไหว" msgid "Angle at the apex of the cone that is used to stabilize the wipe tower. Larger angle means wider base." -msgstr "มุมที่ปลายกรวยที่ใช้เพื่อรักษาเสถียรภาพของหอเช็ด มุมที่ใหญ่ขึ้นหมายถึงฐานที่กว้างขึ้น" +msgstr "มุมที่ปลายกรวยที่ใช้เพื่อรักษาเสถียรภาพของ Wipe Tower มุมที่ใหญ่ขึ้นหมายถึงฐานที่กว้างขึ้น" msgid "Maximum wipe tower print speed" -msgstr "ความเร็วการพิมพ์ไวต์ทาวเวอร์สูงสุด" +msgstr "ความเร็วการพิมพ์ Wipe Tower สูงสุด" msgid "" "The maximum print speed when purging in the wipe tower and printing the wipe tower sparse layers. When purging, if the sparse infill speed or calculated speed from the filament max volumetric speed is lower, the lowest will be used instead.\n" @@ -17020,11 +17064,11 @@ msgstr "" "\n" "เมื่อพิมพ์ชั้นเบาบาง หากความเร็วเส้นรอบวงภายในหรือความเร็วที่คำนวณจากความเร็วปริมาตรสูงสุดของเส้นพลาสติกต่ำกว่า ความเร็วต่ำสุดจะถูกนำมาใช้แทน\n" "\n" -"การเพิ่มความเร็วนี้อาจส่งผลต่อเสถียรภาพของทาวเวอร์ รวมทั้งเพิ่มแรงที่หัวฉีดชนกับหยดใดๆ ที่อาจก่อตัวบนทาวเวอร์เช็ด\n" +"การเพิ่มความเร็วนี้อาจส่งผลต่อเสถียรภาพของทาวเวอร์ รวมทั้งเพิ่มแรงที่หัวฉีดชนกับหยดใดๆ ที่อาจก่อตัวบน Wipe Tower\n" "\n" "ก่อนที่จะเพิ่มพารามิเตอร์นี้เกินกว่าค่าเริ่มต้นที่ 90 มม./วินาที ตรวจสอบให้แน่ใจว่าเครื่องพิมพ์ของคุณสามารถเชื่อมต่อที่ความเร็วที่เพิ่มขึ้นได้อย่างน่าเชื่อถือ และจะมีการควบคุมอย่างดีเมื่อเปลี่ยนเครื่องมือ\n" "\n" -"สำหรับปริมณฑลภายนอกของไวต์ทาวเวอร์ ความเร็วของปริมณฑลภายในจะถูกใช้โดยไม่คำนึงถึงการตั้งค่านี้" +"สำหรับปริมณฑลภายนอกของ Wipe Tower ความเร็วของปริมณฑลภายในจะถูกใช้โดยไม่คำนึงถึงการตั้งค่านี้" msgid "Wall type" msgstr "ชนิดติดผนัง" @@ -17035,10 +17079,10 @@ msgid "" "2. Cone: A cone with a fillet at the bottom to help stabilize the wipe tower.\n" "3. Rib: Adds four ribs to the tower wall for enhanced stability." msgstr "" -"เช็ดทาวเวอร์ชนิดผนังด้านนอก\n" +"Wipe Tower ชนิดผนังด้านนอก\n" "1. สี่เหลี่ยมผืนผ้า: ประเภทผนังเริ่มต้น ซึ่งเป็นสี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูงคงที่\n" -"2. กรวย: กรวยที่มีเนื้ออยู่ด้านล่างเพื่อช่วยรักษาเสถียรภาพของหอเช็ด\n" -"3. ซี่โครง: เพิ่มสี่ซี่โครงเข้ากับผนังหอคอยเพื่อเพิ่มความมั่นคง" +"2. กรวย: กรวยที่มีเนื้ออยู่ด้านล่างเพื่อช่วยรักษาเสถียรภาพของ Wipe Tower\n" +"3. ซี่โครง: เพิ่มสี่ซี่โครงเข้ากับผนัง Wipe Tower เพื่อเพิ่มความมั่นคง" msgid "Rectangle" msgstr "สี่เหลี่ยมผืนผ้า" @@ -17056,40 +17100,40 @@ msgid "Rib width" msgstr "ความกว้างของซี่โครง" msgid "Rib width is always less than half the prime tower side length." -msgstr "ความกว้างของซี่โครงจะน้อยกว่าครึ่งหนึ่งของความยาวด้านของไพรม์ทาวเวอร์เสมอ" +msgstr "ความกว้างของซี่โครงจะน้อยกว่าครึ่งหนึ่งของความยาวด้านของ Prime Tower เสมอ" msgid "Fillet wall" msgstr "ผนังเนื้อ" msgid "The wall of prime tower will fillet." -msgstr "ผนังของไพร์มทาวเวอร์จะแล่เป็นเนื้อเดียวกัน" +msgstr "ผนังของ Prime Tower จะแล่เป็นเนื้อเดียวกัน" msgid "The extruder to use when printing perimeter of the wipe tower. Set to 0 to use the one that is available (non-soluble would be preferred)." -msgstr "ชุดดันเส้นที่จะใช้ในการพิมพ์ปริมณฑลของหอเช็ด ตั้งค่าเป็น 0 เพื่อใช้อันที่มีอยู่ (แนะนำให้ใช้แบบไม่ละลายน้ำ)" +msgstr "ชุดดันเส้นที่จะใช้ในการพิมพ์ปริมณฑลของ Wipe Tower ตั้งค่าเป็น 0 เพื่อใช้อันที่มีอยู่ (แนะนำให้ใช้แบบไม่ละลายน้ำ)" msgid "Purging volumes - load/unload volumes" msgstr "การล้างไดรฟ์ข้อมูล - โหลด/ยกเลิกการโหลดไดรฟ์ข้อมูล" msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below." -msgstr "เวกเตอร์นี้จะบันทึกปริมาณที่ต้องการเพื่อเปลี่ยนจาก/ไปยังแต่ละเครื่องมือที่ใช้บนไวด์ทาวเวอร์ ค่าเหล่านี้ใช้เพื่อทำให้การสร้างวอลุ่มการล้างข้อมูลทั้งหมดด้านล่างง่ายขึ้น" +msgstr "เวกเตอร์นี้จะบันทึกปริมาณที่ต้องการเพื่อเปลี่ยนจาก/ไปยังแต่ละเครื่องมือที่ใช้บน Wipe Tower ค่าเหล่านี้ใช้เพื่อทำให้การสร้างวอลุ่มการล้างข้อมูลทั้งหมดด้านล่างง่ายขึ้น" msgid "Skip points" msgstr "ข้ามจุด" msgid "The wall of prime tower will skip the start points of wipe path." -msgstr "ผนังของไพร์มทาวเวอร์จะข้ามจุดเริ่มต้นของเส้นทางการเช็ด" +msgstr "ผนังของ Prime Tower จะข้ามจุดเริ่มต้นของเส้นทางการเช็ด" msgid "Enable tower interface features" msgstr "เปิดใช้งานคุณสมบัติอินเทอร์เฟซแบบทาวเวอร์" msgid "Enable optimized prime tower interface behavior when different materials meet." -msgstr "เปิดใช้งานพฤติกรรมอินเทอร์เฟซของไพรม์ทาวเวอร์ที่ได้รับการปรับให้เหมาะสมเมื่อวัสดุที่แตกต่างกันมาบรรจบกัน" +msgstr "เปิดใช้งานพฤติกรรมอินเทอร์เฟซของ Prime Tower ที่ได้รับการปรับให้เหมาะสมเมื่อวัสดุที่แตกต่างกันมาบรรจบกัน" msgid "Cool down from interface boost during prime tower" -msgstr "เย็นลงจากการเพิ่มอินเทอร์เฟซระหว่างหอคอยหลัก" +msgstr "การระบายความร้อนที่เลเยอร์อินเทอร์เฟซของ Prime Tower" msgid "When interface-layer temperature boost is active, set the nozzle back to print temperature at the start of the prime tower so it cools down during the tower." -msgstr "เมื่อเปิดใช้งานการเพิ่มอุณหภูมิของชั้นอินเทอร์เฟซ ให้ตั้งค่าหัวฉีดกลับไปเป็นอุณหภูมิการพิมพ์ที่จุดเริ่มต้นของไพรม์ทาวเวอร์ เพื่อให้เย็นลงระหว่างทาวเวอร์" +msgstr "เมื่อเปิดใช้งานการเพิ่มอุณหภูมิของชั้นอินเทอร์เฟซ ให้ตั้งค่าหัวฉีดกลับไปเป็นอุณหภูมิการพิมพ์ที่จุดเริ่มต้นของ Prime Tower เพื่อให้เย็นลงระหว่าง Prime Tower" msgid "Infill gap" msgstr "การเติมช่องว่าง" @@ -17098,13 +17142,13 @@ msgid "Infill gap." msgstr "การเติมช่องว่าง." msgid "Purging after filament change will be done inside objects' infills. This may lower the amount of waste and decrease the print time. If the walls are printed with transparent filament, the mixed color infill will be visible. It will not take effect unless the prime tower is enabled." -msgstr "การล้างหลังจากเปลี่ยนเส้นพลาสติกจะดำเนินการภายในส่วนไส้ในของวัตถุ สิ่งนี้อาจลดปริมาณขยะและลดเวลาในการพิมพ์ หากผนังพิมพ์ด้วยเส้นพลาสติกโปร่งใส จะเห็นไส้ในสีผสมไว้ด้านนอก มันจะไม่มีผลเว้นแต่จะเปิดใช้งานไพรม์ทาวเวอร์" +msgstr "การล้างหลังจากเปลี่ยนเส้นพลาสติกจะดำเนินการภายในส่วนไส้ในของวัตถุ สิ่งนี้อาจลดปริมาณขยะและลดเวลาในการพิมพ์ หากผนังพิมพ์ด้วยเส้นพลาสติกโปร่งใส จะเห็นไส้ในสีผสมไว้ด้านนอก มันจะไม่มีผลเว้นแต่จะเปิดใช้งาน Prime Tower" msgid "Purging after filament change will be done inside objects' support. This may lower the amount of waste and decrease the print time. It will not take effect unless a prime tower is enabled." -msgstr "การล้างข้อมูลหลังจากเปลี่ยนเส้นพลาสติกจะดำเนินการภายในส่วนรองรับของวัตถุ สิ่งนี้อาจลดปริมาณขยะและลดเวลาในการพิมพ์ มันจะไม่มีผลเว้นแต่จะเปิดใช้งานไพรม์ทาวเวอร์" +msgstr "การล้างข้อมูลหลังจากเปลี่ยนเส้นพลาสติกจะดำเนินการภายในส่วนรองรับของวัตถุ สิ่งนี้อาจลดปริมาณขยะและลดเวลาในการพิมพ์ มันจะไม่มีผลเว้นแต่จะเปิดใช้งาน Prime Tower" msgid "This object will be used to purge the nozzle after a filament change to save filament and decrease the print time. Colors of the objects will be mixed as a result. It will not take effect unless the prime tower is enabled." -msgstr "วัตถุนี้จะใช้ในการล้างหัวฉีดหลังจากเปลี่ยนเส้นพลาสติกเพื่อประหยัดเส้นพลาสติกและลดเวลาในการพิมพ์ สีของวัตถุจะผสมกัน มันจะไม่มีผลเว้นแต่จะเปิดใช้งานไพรม์ทาวเวอร์" +msgstr "วัตถุนี้จะใช้ในการล้างหัวฉีดหลังจากเปลี่ยนเส้นพลาสติกเพื่อประหยัดเส้นพลาสติกและลดเวลาในการพิมพ์ สีของวัตถุจะผสมกัน มันจะไม่มีผลเว้นแต่จะเปิดใช้งาน Prime Tower" msgid "Maximal bridging distance" msgstr "ระยะเชื่อมต่อสูงสุด" @@ -17113,16 +17157,16 @@ msgid "Maximal distance between supports on sparse infill sections." msgstr "ระยะห่างสูงสุดระหว่างส่วนรองรับในส่วน ไส้ใน แบบกระจัดกระจาย" msgid "Wipe tower purge lines spacing" -msgstr "เช็ดระยะห่างบรรทัดล้างทาวเวอร์" +msgstr "ระยะห่างเส้นไล่พลาสติกของ Wipe Tower" msgid "Spacing of purge lines on the wipe tower." -msgstr "ระยะห่างของเส้นไล่ล้างบนหอเช็ด" +msgstr "ระยะห่างของเส้นไล่ล้างบน Wipe Tower" msgid "Extra flow for purging" msgstr "กระแสพิเศษสำหรับการล้าง" msgid "Extra flow used for the purging lines on the wipe tower. This makes the purging lines thicker or narrower than they normally would be. The spacing is adjusted automatically." -msgstr "การไหลพิเศษที่ใช้สำหรับท่อไล่ล้างบนหอเช็ด ซึ่งจะทำให้เส้นการล้างหนาหรือแคบกว่าปกติ ระยะห่างจะถูกปรับโดยอัตโนมัติ" +msgstr "การไหลพิเศษที่ใช้สำหรับท่อไล่ล้างบน Wipe Tower ซึ่งจะทำให้เส้นการล้างหนาหรือแคบกว่าปกติ ระยะห่างจะถูกปรับโดยอัตโนมัติ" msgid "Idle temperature" msgstr "อุณหภูมิว่าง" @@ -17704,10 +17748,10 @@ msgid "Specific for sequential printing. Zero-based index of currently printed o msgstr "เฉพาะสำหรับการพิมพ์ตามลำดับ ดัชนีแบบศูนย์ของวัตถุที่พิมพ์ในปัจจุบัน" msgid "Has wipe tower" -msgstr "มีหอเช็ด" +msgstr "มี Wipe Tower" msgid "Whether or not wipe tower is being generated in the print." -msgstr "มีการสร้างเช็ดทาวเวอร์ในการพิมพ์หรือไม่" +msgstr "มีการสร้าง Wipe Tower ในการพิมพ์หรือไม่" msgid "Initial extruder" msgstr "ชุดดันเส้นเริ่มต้น" @@ -17794,16 +17838,16 @@ msgid "Total cost of all material used in the print. Calculated from filament_co msgstr "ต้นทุนรวมของวัสดุทั้งหมดที่ใช้ในการพิมพ์ คำนวณจากค่า fil_cost ในการตั้งค่า เส้นพลาสติก" msgid "Total wipe tower cost" -msgstr "ต้นทุนเช็ดทาวเวอร์ทั้งหมด" +msgstr "ต้นทุน Wipe Tower ทั้งหมด" msgid "Total cost of the material wasted on the wipe tower. Calculated from filament_cost value in Filament Settings." -msgstr "ต้นทุนรวมของวัสดุที่เสียไปบนไวด์ทาวเวอร์ คำนวณจากค่า fil_cost ในการตั้งค่า เส้นพลาสติก" +msgstr "ต้นทุนรวมของวัสดุที่เสียไปบน Wipe Tower คำนวณจากค่า fil_cost ในการตั้งค่า เส้นพลาสติก" msgid "Wipe tower volume" msgstr "เช็ดปริมาตรทาวเวอร์" msgid "Total filament volume extruded on the wipe tower." -msgstr "ปริมาตรเส้นพลาสติกทั้งหมดที่อัดบนไวด์ทาวเวอร์" +msgstr "ปริมาตรเส้นพลาสติกทั้งหมดที่อัดบน Wipe Tower" msgid "Used filament" msgstr "เส้นพลาสติกที่ใช้แล้ว" @@ -18001,8 +18045,8 @@ msgid "" "An object has enabled XY Size compensation which will not be used because it is also fuzzy skin painted.\n" "XY Size compensation cannot be combined with fuzzy skin painting." msgstr "" -"วัตถุได้เปิดใช้งานการชดเชยขนาด XY ซึ่งจะไม่ถูกใช้เนื่องจากเป็นสีที่ไม่ชัดเจนเช่นกัน\n" -"การชดเชยขนาด XY ไม่สามารถใช้ร่วมกับการลงสีผิวแบบคลุมเครือได้" +"วัตถุได้เปิดใช้งานการชดเชยขนาด XY ซึ่งจะไม่ถูกใช้เนื่องจากถูกระบายสีผิวฟัซซีไว้เช่นกัน\n" +"การชดเชยขนาด XY ไม่สามารถใช้ร่วมกับการระบายสีผิวฟัซซีได้" msgid "Object name" msgstr "ชื่อออบเจ็กต์" @@ -18524,6 +18568,20 @@ msgstr "" "มีที่อยู่ IP หลายแห่งที่ใช้ชื่อโฮสต์ %1%\n" "โปรดเลือกอันที่ควรใช้" +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "ปรับขนาดอัตโนมัติตามหัวฉีด" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"โมเดลนี้ออกแบบมาสำหรับหัวฉีดขนาด 0.4 mm และความสูงเลเยอร์ 0.2 mm \n" +"เมื่อเปิดใช้งานตัวเลือกการปรับขนาด (แนะนำ) โมเดลจะปรับขนาดแบบไดนามิกให้ตรงกับเส้นผ่านศูนย์กลางหัวฉีดปัจจุบันและความสูงเลเยอร์ที่เหมาะสม ทำให้การทดสอบทั้งแม่นยำและอ่านค่าได้ง่าย\n" +"ปิดการปรับขนาดเฉพาะเมื่อคุณต้องการพิมพ์โมเดลอ้างอิงตามขนาดเดิมทุกประการ" + msgid "PA Calibration" msgstr "ปรับเทียบ PA" @@ -18660,6 +18718,14 @@ msgstr "ความเร็วเริ่มต้น:" msgid "End speed: " msgstr "ความเร็วสิ้นสุด:" +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "ปรับอัตโนมัติตามความเร็วปริมาตรสูงสุด" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "หากความเร็วปลายทางจะเกินความเร็วปริมาตรสูงสุดของเส้นพลาสติก ระบบจะลดความสูงเลเยอร์โดยอัตโนมัติ (โดยคงค่ามาตรฐานไว้และอยู่ภายในขีดจำกัดของเครื่อง) เพื่อให้ถึงค่าดังกล่าว หากแม้แต่ความสูงเลเยอร์ต่ำสุดยังไม่เพียงพอ ระบบจะลดความเร็วปลายทางแทน" + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18671,6 +18737,57 @@ msgstr "" "ขั้นตอน >= 0\n" "สิ้นสุด> เริ่มต้น + ขั้นตอน" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"ความเร็วปลายทาง (%.0f mm/s) เกินความเร็วปริมาตรสูงสุดของเส้นพลาสติก (%.1f mm³/s) ซึ่งจำกัดผนังด้านนอกไว้ที่ประมาณ %.0f mm/s ที่ความกว้างเส้นและความสูงเลเยอร์นี้\n" +" ความเร็วที่สูงกว่านี้จะถูกจำกัดไว้ ดังนั้นบล็อกด้านบนของทาวเวอร์จะไม่พิมพ์ด้วยความเร็วที่ร้องขอ\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"ความเร็วปลายทาง (%.0f mm/s) เกินความเร็วปริมาตรสูงสุดของเส้นพลาสติก (%.1f mm³/s) ที่ความสูงเลเยอร์เริ่มต้น (%.2f mm)\n" +"\n" +"ความสูงเลเยอร์ถูกลดลงเป็น %.2f mm (ค่าที่ใช้ในพรีเซ็ตของเครื่องพิมพ์นี้) เพื่อให้ทาวเวอร์ถึงความเร็วที่ร้องขอได้" + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"แม้แต่ที่ความสูงเลเยอร์ต่ำสุดที่ใช้ในพรีเซ็ตของเครื่องพิมพ์นี้ (%.2f mm) ความเร็วปลายทาง (%.0f mm/s) ก็ยังเกินความเร็วปริมาตรสูงสุดของเส้นพลาสติก (%.1f mm³/s)\n" +"\n" +"ความสูงเลเยอร์จะถูกตั้งเป็น %.2f mm และความเร็วปลายทางจะถูกลดลงเป็น %.0f mm/s\n" +"\n" +"ดำเนินการต่อหรือไม่?" + +# AI Translated +msgid "Continue anyway?" +msgstr "ดำเนินการต่ออยู่ดีหรือไม่?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "เปิดใช้งาน \"ปรับอัตโนมัติ\" เพื่อแก้ไขปัญหานี้โดยอัตโนมัติ หรือดำเนินการต่ออยู่ดี?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "เปิดใช้งาน \"ปรับขนาดอัตโนมัติตามหัวฉีด\" และ \"ปรับอัตโนมัติ\" เพื่อแก้ไขปัญหานี้โดยอัตโนมัติ หรือดำเนินการต่ออยู่ดี?" + msgid "Start retraction length: " msgstr "เริ่มต้นความยาวการดึงกลับ:" @@ -20474,7 +20591,7 @@ msgid "Auto-generate" msgstr "สร้างอัตโนมัติ" msgid "Generate brim ears using Max angle and Detection radius" -msgstr "สร้างหูขอบยึดชิ้นงานนกโดยใช้มุมสูงสุดและรัศมีการตรวจจับ" +msgstr "สร้างหูขอบยึดชิ้นงาน (Brim Ears) โดยใช้มุมสูงสุดและรัศมีการตรวจจับ" msgid "Add or Select" msgstr "เพิ่มหรือเลือก" @@ -20489,7 +20606,7 @@ msgid "invalid brim ears" msgstr "หูขอบยึดชิ้นงานไม่ถูกต้อง" msgid "Brim Ears" -msgstr "หูขอบยึดชิ้นงาน" +msgstr "หูขอบยึดชิ้นงาน (Brim Ears)" msgid "Please select single object." msgstr "กรุณาเลือกวัตถุเดียว" @@ -21244,6 +21361,9 @@ msgstr "" "หลีกเลี่ยงการบิดเบี้ยว\n" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" +#~ msgid "Print order within a single layer." +#~ msgstr "สั่งพิมพ์ภายในชั้นเดียว" + #~ msgid "Bottom" #~ msgstr "ล่าง" @@ -21331,9 +21451,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "แสดงเงาแบบทอดบนเพลตในมุมมองแบบสมจริง" @@ -21455,7 +21572,7 @@ msgstr "" #~ msgstr "เนื้อหาที่ตั้งไว้ล่วงหน้ามีขนาดใหญ่เกินกว่าจะซิงค์กับระบบคลาวด์ (เกิน 1MB) โปรดลดขนาดที่กำหนดไว้ล่วงหน้าโดยการลบการกำหนดค่าที่กำหนดเองออกหรือใช้เฉพาะในเครื่องเท่านั้น" #~ msgid "Enable adaptive pressure advance for overhangs (beta)" -#~ msgstr "เปิดใช้งานการปรับPressure Advanceสำหรับระยะยื่น (เบต้า)" +#~ msgstr "เปิดใช้ Adaptive Pressure Advance สำหรับส่วนยื่น (เบต้า)" #~ msgid "" #~ "Enable adaptive PA for overhangs as well as when flow changes within the same feature. This is an experimental option, as if the PA profile is not set accurately, it will cause uniformity issues on the external surfaces before and after overhangs.\n" @@ -21465,7 +21582,7 @@ msgstr "" #~ "ไม่รองรับเครื่องพิมพ์ Prusa เพราะจะหยุดชั่วคราวเพื่อประมวลผลการเปลี่ยน PA ทำให้เกิดความล่าช้าและข้อบกพร่อง" #~ msgid "Pressure advance for bridges" -#~ msgstr "แรงดันล่วงหน้า (Pressure Advance)สำหรับสะพาน" +#~ msgstr "Pressure Advance สำหรับสะพาน" #~ msgid "" #~ "Pressure advance value for bridges. Set to 0 to disable.\n" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 697fa76b56..467b3c355b 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,8 +3,8 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" -"PO-Revision-Date: 2026-04-08 23:59+0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" +"PO-Revision-Date: 2026-08-01 20:32+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" "Language: tr\n" @@ -12,7 +12,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Po Translator App\n" +"X-Generator: Poedit 3.9\n" # AI Translated msgid "Main Extruder" @@ -84,10 +84,10 @@ msgid "Left Nozzle" msgstr "Sol Nozul" msgid "Left nozzle" -msgstr "Sol meme" +msgstr "Sol nozul" msgid "left nozzle" -msgstr "sol meme" +msgstr "sol nozul" msgid "Right Nozzle" msgstr "Sağ Nozul" @@ -96,7 +96,7 @@ msgid "Right nozzle" msgstr "Sağ nozul" msgid "right nozzle" -msgstr "sağ meme" +msgstr "sağ nozul" # AI Translated msgid "Main Hotend" @@ -818,7 +818,7 @@ msgid "Size" msgstr "Boyut" msgid "Uniform scale" -msgstr "düzgün ölçek" +msgstr "Orantılı ölçekleme" msgid "Planar" msgstr "Düzlemsel" @@ -1159,7 +1159,7 @@ msgid "Show wireframe" msgstr "Wireframe göster" msgid "Unable to apply when processing preview" -msgstr "İşlem önizlemesi sırasında uygulanamaz." +msgstr "Önizleme işlenirken uygulanamaz" msgid "Operation already cancelling. Please wait a few seconds." msgstr "İşlem zaten iptal ediliyor. Lütfen birkaç saniye bekleyin." @@ -1727,7 +1727,7 @@ msgid "Change file" msgstr "Dosyayı değiştir" msgid "Change to another SVG file." -msgstr "Başka bir .svg dosyasına geçin" +msgstr "Farklı bir SVG dosyası seç." msgid "Forget the file path" msgstr "Dosya yolunu unut" @@ -1754,7 +1754,7 @@ msgid "Save SVG file" msgstr "SVG dosyasını kaydet" msgid "Save as SVG file." -msgstr "'.svg' dosyası olarak kaydet" +msgstr "SVG dosyası olarak kaydet." msgid "Size in emboss direction." msgstr "Kabartma yönünde boyut." @@ -2430,7 +2430,7 @@ msgstr "Gizlilik Politikası Güncellemesi" # AI Translated #, c-format, boost-format msgid "your Orca Cloud profile (user ID: \"%s\")" -msgstr "Orca Cloud profiliniz (kullanıcı kimliği: \"%s\")" +msgstr "orca Cloud profiliniz (Kullanıcı ID: \"%s\")" # AI Translated msgid "your default profile" @@ -2991,22 +2991,22 @@ msgid "Auto orientation" msgstr "Otomatik yönlendirme" msgid "Auto orient the object to improve print quality" -msgstr "Baskı kalitesini artırmak için nesneyi otomatik olarak yönlendirin." +msgstr "Baskı kalitesini artırmak için nesneyi otomatik yönlendir" msgid "Edit" msgstr "Düzenle" msgid "Merge with" -msgstr "Şununla birleştir:" +msgstr "Şununla birleştir" msgid "Delete this filament" -msgstr "Bu filamanı sil" +msgstr "Bu filamenti sil" msgid "Select All" msgstr "Hepsini seç" msgid "Select all objects on the current plate" -msgstr "geçerli plakadaki tüm nesneleri seç" +msgstr "Mevcut plakadaki tüm nesneleri seç" msgid "Select All Plates" msgstr "Tüm Plakaları Seç" @@ -3018,7 +3018,7 @@ msgid "Delete All" msgstr "Hepsini sil" msgid "Delete all objects on the current plate" -msgstr "geçerli plakadaki tüm nesneleri sil" +msgstr "Mevcut tabladaki tüm nesneleri sil" msgid "Arrange" msgstr "Hizala" @@ -3410,7 +3410,7 @@ msgid "Invalid numeric." msgstr "Geçersiz sayı." msgid "One cell can only be copied to one or more cells in the same column." -msgstr "bir hücre aynı sütundaki yalnızca bir veya daha fazla hücreye kopyalanabilir" +msgstr "Bir hücre yalnızca aynı sütundaki bir veya daha fazla hücreye kopyalanabilir." msgid "Copying multiple cells is not supported." msgstr "Birden fazla hücre kopyalama desteklenmiyor." @@ -3478,13 +3478,13 @@ msgid "More" msgstr "Daha" msgid "Open Preferences" -msgstr "Tercihler'i açın." +msgstr "Tercihleri Aç" msgid "Open next tip" -msgstr "Sonraki ipucunu açın." +msgstr "Sonraki ipucunu aç" msgid "Open documentation in web browser" -msgstr "Belgeleri web tarayıcısında açın." +msgstr "Dokümantasyonu web tarayıcısında aç" msgid "Color" msgstr "Renk" @@ -3517,7 +3517,7 @@ msgid "Jump to layer" msgstr "Katmana Atla" msgid "Please enter the layer number." -msgstr "Lütfen katman numarasını girin" +msgstr "Lütfen katman numarasını girin." msgid "Add Pause" msgstr "Duraklatma Ekle" @@ -3605,7 +3605,7 @@ msgid "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatica msgstr "Bir AMS yuvası seçin ve filamentleri otomatik olarak yüklemek veya boşaltmak için “Yükle” veya “Boşalt” düğmesine basın." msgid "Filament type is unknown which is required to perform this action. Please set target filament's informations." -msgstr "Bu eylemi gerçekleştirmek için gereken filaman türü bilinmiyor. Lütfen hedef filamanın bilgilerini ayarlayın." +msgstr "Bu eylemi gerçekleştirmek için gereken filament türü bilinmiyor. Lütfen hedef filamentin bilgilerini ayarlayın." # AI Translated msgid "AMS has not been initialized. Please initialize it before use." @@ -3759,10 +3759,10 @@ msgid "Switch track at Filament Track Switch" msgstr "Filament Track Switch'te hattı değiştir" msgid "The maximum temperature cannot exceed " -msgstr "Maksimum sıcaklık aşılamaz" +msgstr "Maksimum sıcaklık şu değeri aşamaz: " msgid "The minmum temperature should not be less than " -msgstr "Minimum sıcaklık," +msgstr "Minimum sıcaklık şu değerden az olamaz: " # AI Translated msgid "Type to filter..." @@ -3913,6 +3913,10 @@ msgstr "Hizalanıyor..." msgid "Arranging" msgstr "Hizalanıyor" +# AI Translated +msgid "Arranging " +msgstr "Hizalanıyor " + msgid "Arranging canceled." msgstr "Hizalama iptal edildi." @@ -4280,7 +4284,7 @@ msgid "" "The nozzle flow is not set. Please set the nozzle flow rate before editing the filament.\n" "'Device -> Print parts'" msgstr "" -"Meme akışı ayarlanmamış. Lütfen filamenti düzenlemeden önce nozül akış hızını ayarlayın.\n" +"Nozul akışı ayarlanmamış. Lütfen filamenti düzenlemeden önce nozul akış hızını ayarlayın.\n" "'Cihaz -> Parçaları yazdır'" msgid "AMS" @@ -4366,7 +4370,7 @@ msgid "" "And you can click it to modify" msgstr "" "Üst yarı alanı: Orijinal\n" -"Alt yarı alan: Eşleme kaldırıldığında orijinal projedeki filaman kullanılacaktır.\n" +"Alt yarı alan: Eşleme kaldırıldığında orijinal projedeki filament kullanılacaktır.\n" "Ve değiştirmek için tıklayabilirsiniz" msgid "" @@ -4467,7 +4471,7 @@ msgstr "AMS'yi Etkinleştirme" # AI Translated msgid "Print using filament on external spool." -msgstr "Harici makaradaki filamenti kullanarak yazdırma" +msgstr "Harici makaradaki filamenti kullanarak yazdır." msgid "Print with filament in AMS" msgstr "AMS içerisindeki filamentlerle yazdırma" @@ -4504,7 +4508,7 @@ msgid "" "When the current filament runs out, the printer will use identical filament to continue printing.\n" "*Identical filament: same brand, type and color." msgstr "" -"Mevcut filaman bittiğinde yazıcı, yazdırmaya devam etmek için aynı filamanı kullanacaktır.\n" +"Mevcut filament bittiğinde yazıcı, yazdırmaya devam etmek için aynı filamenti kullanacaktır.\n" "*Aynı filament: aynı marka, tip ve renkte." msgid "DRY" @@ -4523,14 +4527,14 @@ msgid "The AMS will automatically read the filament information when inserting a msgstr "AMS, yeni bir Bambu Lab filamenti takıldığında filament bilgilerini otomatik olarak okuyacaktır. Bu yaklaşık 20 saniye sürer." msgid "Note: if a new filament is inserted during printing, the AMS will not automatically read any information until printing is completed." -msgstr "Not: Yazdırma sırasında yeni bir filaman takılırsa AMS, yazdırma tamamlanana kadar herhangi bir bilgiyi otomatik olarak okumayacaktır." +msgstr "Not: Yazdırma sırasında yeni bir filament takılırsa AMS, yazdırma tamamlanana kadar herhangi bir bilgiyi otomatik olarak okumayacaktır." msgid "When inserting a new filament, the AMS will not automatically read its information, leaving it blank for you to enter manually." msgstr "Yeni bir filament yerleştirirken AMS, bilgileri otomatik olarak okumaz ve manuel olarak girmeniz için boş bırakır." # AI Translated msgid "Update on startup" -msgstr "Başlangıçta güncelle" +msgstr "Açılışta güncelle" msgid "The AMS will automatically read the information of inserted filament on start-up. It will take about 1 minute. The reading process will rotate the filament spools." msgstr "AMS, başlangıçta takılan filamentin bilgilerini otomatik olarak okuyacaktır. Yaklaşık 1 dakika sürecektir. Okuma işlemi filament makaralarını saracaktır." @@ -4566,7 +4570,7 @@ msgid "The printer is busy and cannot switch AMS type." msgstr "Yazıcı meşgul ve AMS türünü değiştiremiyor." msgid "Please unload all filament before switching." -msgstr "Lütfen değiştirmeden önce tüm filamanı boşaltın." +msgstr "Lütfen değiştirmeden önce tüm filamenti boşaltın." msgid "AMS type switching needs firmware update, taking about 30s. Switch now?" msgstr "AMS tipi anahtarlama, yaklaşık 30 saniye süren ürün yazılımı güncellemesi gerektirir. Şimdi değiştirilsin mi?" @@ -4590,7 +4594,7 @@ msgid "Failed to install the plug-in. The plug-in file may be in use. Please res msgstr "Eklenti yüklenemedi. Eklenti dosyası kullanımda olabilir. Lütfen OrcaSlicer'ı yeniden başlatın ve tekrar deneyin. Ayrıca anti-virüs yazılımı tarafından engellenip engellenmediğini veya silinip silinmediğini de kontrol edin." msgid "Click here to see more info" -msgstr "daha fazla bilgi görmek için burayı tıklayın" +msgstr "Daha fazla bilgi görmek için buraya tıklayın" msgid "The network plug-in was installed but could not be loaded. Please restart the application." msgstr "Ağ eklentisi kuruldu ancak yüklenemedi. Lütfen uygulamayı yeniden başlatın." @@ -4608,7 +4612,7 @@ msgid "Go Home" msgstr "Anasayfaya Git" msgid "An error occurred. The system may have run out of memory, or a bug may have occurred." -msgstr "Bir hata oluştu. Belki sistemin hafızası yeterli değildir veya programın bir hatasıdır" +msgstr "Bir hata oluştu. Sistem belleği tükenmiş veya bir yazılım hatası meydana gelmiş olabilir." #, boost-format msgid "A fatal error occurred: \"%1%\"" @@ -4618,7 +4622,7 @@ msgid "Please save your project and restart the application." msgstr "Lütfen projeyi kaydedin ve programı yeniden başlatın." msgid "Processing G-Code from previous file…" -msgstr "Önceki dosyadan G Kodu işleniyor..." +msgstr "Önceki dosyadan G-Kodu işleniyor…" msgid "Slicing complete" msgstr "Dilimleme tamamlandı" @@ -4682,7 +4686,7 @@ msgid "G-code file exported to %1%" msgstr "G kodu dosyası %1%’e aktarıldı" msgid "Unknown error with G-code export" -msgstr "G kodunu dışa aktarırken bilinmeyen hata." +msgstr "G-code dışa aktarımında bilinmeyen hata" #, boost-format msgid "" @@ -4695,7 +4699,7 @@ msgstr "" "Kaynak dosya %2%." msgid "Copying of the temporary G-code to the output G-code failed." -msgstr "Geçici G kodunun çıkış G koduna kopyalanması başarısız oldu" +msgstr "Geçici G-kodu dosyasının çıktı G-kodu dosyasına kopyalanması başarısız oldu." #, boost-format msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" @@ -4797,7 +4801,7 @@ msgid "" "Value was reset to 0.5" msgstr "" "Maksimum hacimsel hız çok küçük.\n" -"0,5'e sıfırla." +"Değer 0.5 olarak sıfırlandı" #, c-format, boost-format msgid "Current chamber temperature is higher than the material's safe temperature; this may result in material softening and nozzle clogs. The maximum safe temperature for the material is %d" @@ -4812,24 +4816,24 @@ msgid "" "Layer height too small\n" "It has been reset to 0.2" msgstr "" -"Katman yüksekliği çok küçük.\n" -"0,2'ye sıfırla." +"Katman yüksekliği çok küçük\n" +"Değer 0.2 olarak yeniden ayarlandı" msgid "" "Ironing spacing too small\n" "It has been reset to 0.1" msgstr "" -"Çok küçük ütüleme aralığı.\n" -"0,1'e sıfırla." +"Ütüleme satır aralığı çok küçük\n" +"Değer 0.1 olarak yeniden ayarlandı" msgid "" "Zero initial layer height is invalid.\n" "\n" "The first layer height will be reset to 0.2." msgstr "" -"Sıfır başlangıç katman yüksekliği geçersiz.\n" +"İlk katman yüksekliği sıfır olamaz.\n" "\n" -"İlk katman yüksekliği 0.2 olarak sıfırlanacak." +"İlk katman yüksekliği 0.2 olarak sıfırlandı." # AI Translated msgid "" @@ -4905,8 +4909,8 @@ msgid "" "seam_slope_start_height need to be smaller than layer_height.\n" "Reset to 0." msgstr "" -"Dikiş eğimi başlangıç yüksekliğinin katman yüksekliğinden daha küçük olması gerekir.\n" -"0 a sıfırla." +"seam_slope_start_height, layer_height değerinden küçük olmalıdır.\n" +"Değeri 0 yapın." #, no-c-format, no-boost-format msgid "" @@ -4965,7 +4969,7 @@ msgid "Paused (filament ran out)" msgstr "Duraklatıldı (filament bitti)" msgid "Heating nozzle" -msgstr "Isıtma memesi" +msgstr "Isıtma nozulü" msgid "Calibrating dynamic flow" msgstr "Dinamik akışı kalibre etme" @@ -5061,7 +5065,7 @@ msgid "Measure motion accuracy" msgstr "Hareket doğruluğunu ölçün" msgid "Nozzle offset calibration" -msgstr "Meme ofset kalibrasyonu" +msgstr "Nozul ofset kalibrasyonu" msgid "High temperature auto bed leveling" msgstr "Yüksek sıcaklıkta otomatik yatak tesviyesi" @@ -5118,7 +5122,7 @@ msgid "Measuring Surface" msgstr "Ölçüm Yüzeyi" msgid "Calibrating the detection position of nozzle clumping" -msgstr "Meme topaklanmasının algılama konumunu kalibre etme" +msgstr "Nozul topaklanmasının algılama konumunu kalibre etme" msgid "Update successful." msgstr "Güncelleme başarılı." @@ -5149,17 +5153,17 @@ msgstr "Güvenliğinizi sağlamak için belirli işleme görevleri (lazer gibi) #, c-format, boost-format msgid "The chamber temperature is too high, which may cause the filament to soften. Please wait until the chamber temperature drops below %d℃. You may open the front door or enable fans to cool down." -msgstr "Oda sıcaklığı çok yüksek, bu da filamanın yumuşamasına neden olabilir. Lütfen hazne sıcaklığı %d°C'nin altına düşene kadar bekleyin. Ön kapıyı açabilir veya fanların soğumasını sağlayabilirsiniz." +msgstr "Oda sıcaklığı çok yüksek, bu da filamentin yumuşamasına neden olabilir. Lütfen hazne sıcaklığı %d°C'nin altına düşene kadar bekleyin. Ön kapıyı açabilir veya fanların soğumasını sağlayabilirsiniz." #, c-format, boost-format msgid "AMS temperature is too high, which may cause the filament to soften. Please wait until the AMS temperature drops below %d℃." -msgstr "AMS sıcaklığı çok yüksek, bu da filamanın yumuşamasına neden olabilir. Lütfen AMS sıcaklığı %d°C'nin altına düşene kadar bekleyin." +msgstr "AMS sıcaklığı çok yüksek, bu da filamentin yumuşamasına neden olabilir. Lütfen AMS sıcaklığı %d°C'nin altına düşene kadar bekleyin." msgid "The current chamber temperature or the target chamber temperature exceeds 45℃. In order to avoid extruder clogging, low temperature filament(PLA/PETG/TPU) is not allowed to be loaded." msgstr "Mevcut hazne sıcaklığı veya hedef hazne sıcaklığı 45°C'yi aşıyor. Ekstruderin tıkanmasını önlemek için düşük sıcaklık filamentinin (PLA/PETG/TPU) yüklenmesine izin verilmez." msgid "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder. In order to avoid extruder clogging, it is not allowed to set the chamber temperature." -msgstr "Ekstrudere düşük sıcaklık filamanı (PLA/PETG/TPU) yüklenir. Ekstruderin tıkanmasını önlemek için hazne sıcaklığının ayarlanmasına izin verilmez." +msgstr "Ekstrudere düşük sıcaklık filamenti (PLA/PETG/TPU) yüklenir. Ekstruderin tıkanmasını önlemek için hazne sıcaklığının ayarlanmasına izin verilmez." msgid "When you set the chamber temperature below 40℃, the chamber temperature control will not be activated, and the target chamber temperature will automatically be set to 0℃." msgstr "Hazne sıcaklığını 40°C'nin altına ayarladığınızda, hazne sıcaklık kontrolü etkinleştirilmeyecektir. Ve hedef hazne sıcaklığı otomatik olarak 0°C'ye ayarlanacaktır." @@ -5473,7 +5477,7 @@ msgid "Noop" msgstr "Hayır" msgid "Retract" -msgstr "Geri çekme" +msgstr "Geri Çekme" msgid "Unretract" msgstr "İleri İtme" @@ -5564,10 +5568,10 @@ msgid "Layer Time: " msgstr "Katman Süresi: " msgid "Tool: " -msgstr "Alet:" +msgstr "Kafa: " msgid "Color: " -msgstr "Renk:" +msgstr "Renk: " # AI Translated msgid "Acceleration: " @@ -5577,7 +5581,7 @@ msgid "Jerk: " msgstr "Jerk: " msgid "PA: " -msgstr "PA:" +msgstr "PA: " msgid "mm/s" msgstr "mm/s" @@ -5776,7 +5780,7 @@ msgid "" "Please ensure the filaments used by this object are not arranged to other nozzles." msgstr "" "Yalnızca sol/sağ püskürtme ucu alanına bir nesne yerleştirilmiş veya sol püskürtme ucunun yazdırılabilir yüksekliğini aşıyor.\n" -"Lütfen bu nesne tarafından kullanılan filamanların diğer püskürtme uçlarına göre düzenlenmediğinden emin olun." +"Lütfen bu nesne tarafından kullanılan filamentlerin diğer püskürtme uçlarına göre düzenlenmediğinden emin olun." msgid "" "An object is laid over the boundary of plate or exceeds the height limit.\n" @@ -5848,7 +5852,7 @@ msgid "The position or size of the model %s exceeds the %s's printable range." msgstr "%s modelinin konumu veya boyutu %s'nin yazdırılabilir aralığını aşıyor." msgid " Please check and adjust the part's position or size to fit the printable range:\n" -msgstr "Lütfen parçanın konumunu veya boyutunu kontrol edip yazdırılabilir aralığa uyacak şekilde ayarlayın:\n" +msgstr " Lütfen parçanın konumunu veya boyutunu basılabilir alana sığacak şekilde kontrol edip ayarlayın:\n" #, boost-format msgid "Left nozzle: X:%1%-%2%, Y:%3%-%4%, Z:%5%-%6%\n" @@ -5954,7 +5958,7 @@ msgid "Select Plate" msgstr "Plaka Seç" msgid "Slicing" -msgstr "Dilimleniyor" +msgstr "Dilimleme" msgid "Slice all" msgstr "Hepsini dilimle" @@ -6068,19 +6072,19 @@ msgstr "Araç %d" #, c-format, boost-format msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s." -msgstr "%s filamanı %s içine yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir aralığını aşıyor." +msgstr "%s filamenti %s içine yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir aralığını aşıyor." #, c-format, boost-format msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s." -msgstr "%s filamanları %s içine yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir aralığını aşıyor." +msgstr "%s filamentleri %s içine yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir aralığını aşıyor." #, c-format, boost-format msgid "Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s." -msgstr "%s filamanı %s'e yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir yüksekliğini aşıyor." +msgstr "%s filamenti %s'e yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir yüksekliğini aşıyor." #, c-format, boost-format msgid "Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s." -msgstr "%s filamanları %s'e yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir yüksekliğini aşıyor." +msgstr "%s filamentleri %s'e yerleştirildi, ancak oluşturulan G kodu yolu %s'nin yazdırılabilir yüksekliğini aşıyor." msgid "Open wiki for more information." msgstr "Daha fazla bilgi için wiki'yi açın." @@ -6196,7 +6200,7 @@ msgstr "" "şekilde gösterildiği gibi yazıcıda:" msgid "Invalid input" -msgstr "Geçersiz Giriş." +msgstr "Geçersiz değer" msgid "New Window" msgstr "Yeni Pencere" @@ -6577,7 +6581,7 @@ msgid "Flow Rate Calibration" msgstr "Akış Hızı Kalibrasyonu" msgid "Retraction" -msgstr "Geri Çekme" +msgstr "Geri çekme" msgid "Cornering" msgstr "Köşe dönüşü" @@ -7189,7 +7193,7 @@ msgid "When printing is paused, filament loading and unloading are only supporte msgstr "Yazdırma duraklatıldığında filament yükleme ve boşaltma yalnızca harici yuvalar için desteklenir." msgid "Current extruder is busy changing filament." -msgstr "Mevcut ekstruder filamanı değiştirmekle meşgul." +msgstr "Mevcut ekstruder filamenti değiştirmekle meşgul." # AI Translated msgid "\"Load\" or \"Unload\" is not supported for external spool while using Filament Track Switch." @@ -7332,7 +7336,7 @@ msgid "Upload failed\n" msgstr "Yükleme başarısız\n" msgid "Obtaining instance_id failed\n" -msgstr "instance_id alınamadı\n" +msgstr "Örnek kimliği (instance_id) alınamadı\n" msgid "" "Your comment result cannot be uploaded due to the following reasons:\n" @@ -7501,13 +7505,13 @@ msgid "Undo integration failed." msgstr "Entegrasyon geri alınamadı." msgid "Exporting" -msgstr "Dışa Aktarılıyor." +msgstr "Dışa aktarılıyor" msgid "An update is available!" -msgstr "Yazılımın Yeni sürümü var." +msgstr "Yeni bir güncelleme mevcut!" msgid "Go to download page" -msgstr "İndirme sayfasına gidin." +msgstr "İndirme sayfasına git" msgid "Open Folder." msgstr "Klasörü Aç." @@ -7722,10 +7726,10 @@ msgid "Nozzle Clumping Detection" msgstr "Nozul Topaklanma Algılaması" msgid "Check if the nozzle is clumping by filaments or other foreign objects." -msgstr "Memenin filamanlar veya diğer yabancı nesneler tarafından topaklanıp topaklanmadığını kontrol edin." +msgstr "Nozulun filamentler veya diğer yabancı nesneler tarafından topaklanıp topaklanmadığını kontrol edin." msgid "Detects air printing caused by nozzle clogging or filament grinding." -msgstr "Nozul tıkanması veya filaman taşlamasından kaynaklanan hava baskısını algılar." +msgstr "Nozul tıkanması veya filament taşlamasından kaynaklanan hava baskısını algılar." msgid "First Layer Inspection" msgstr "Birinci Katman Denetimi" @@ -7897,14 +7901,14 @@ msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Yazdırmada %1% ile %2%'nin karıştırılması önerilmez.\n" msgid " nozzle" -msgstr "meme" +msgstr " nozul" #, boost-format msgid "It is not recommended to print the following filament(s) with %1%: %2%\n" msgstr "Aşağıdaki filament(ler)in %1%: %2% ile yazdırılması önerilmez.\n" msgid "It is not recommended to use the following nozzle and filament combinations:\n" -msgstr "Aşağıdaki nozul ve filaman kombinasyonlarının kullanılması tavsiye edilmez:\n" +msgstr "Aşağıdaki nozul ve filament kombinasyonlarının kullanılması tavsiye edilmez:\n" #, boost-format msgid "%1% with %2%\n" @@ -7978,7 +7982,7 @@ msgstr "" "Senkronizasyona devam edeceğinizden emin misiniz?" msgid "There are unset nozzle types. Please set the nozzle types of all extruders before synchronizing." -msgstr "Ayarlanmamış nozul tipleri vardır. Lütfen senkronizasyondan önce tüm ekstrüderlerin nozül tiplerini ayarlayın." +msgstr "Ayarlanmamış nozul tipleri vardır. Lütfen senkronizasyondan önce tüm ekstrüderlerin nozul tiplerini ayarlayın." msgid "Sync extruder infomation" msgstr "Ekstruder bilgilerini senkronize et" @@ -8041,7 +8045,7 @@ msgstr "" "Sistem ön ayarlarında bir güncelleme olup olmadığını kontrol etmek için lütfen Orca Slicer'ı güncelleyin veya Orca Slicer'ı yeniden başlatın." msgid "Only filament color information has been synchronized from printer." -msgstr "Yazıcıdan yalnızca filaman renk bilgisi senkronize edildi." +msgstr "Yazıcıdan yalnızca filament renk bilgisi senkronize edildi." msgid "Filament type and color information have been synchronized, but slot information is not included." msgstr "Filament türü ve renk bilgisi senkronize edilmiştir ancak slot bilgisi dahil edilmemiştir." @@ -8245,7 +8249,7 @@ msgid "Export AMF file:" msgstr "AMF dosyasını dışa aktar:" msgid "Save file as" -msgstr "Farklı kaydet:" +msgstr "Dosyayı farklı kaydet" msgid "Export OBJ file:" msgstr "OBJ dosyasını dışa aktar:" @@ -8331,21 +8335,21 @@ msgstr "Değiştirme için dizin seçilmedi" msgid "Replaced with 3D files from directory:\n" msgstr "Dizindeki 3D dosyalarla değiştirildi:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ %1% atlandı: aynı dosya.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ %s atlandı: aynı dosya.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ %1% atlandı: dosya mevcut değil.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ %s atlandı: dosya mevcut değil.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ %1% atlandı: değiştirilemedi.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ %s atlandı: değiştirilemedi.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ %1% değiştirildi.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ %s değiştirildi.\n" msgid "Replaced volumes" msgstr "Değiştirilen birimler" @@ -8416,7 +8420,7 @@ msgid "" "Would you like to sync now?" msgstr "" "Püskürtme ucu türü ve AMS miktarı bilgileri bağlı yazıcıdan senkronize edilmedi.\n" -"Senkronizasyondan sonra yazılım, dilimleme sırasında baskı süresini ve filaman kullanımını optimize edebilir.\n" +"Senkronizasyondan sonra yazılım, dilimleme sırasında baskı süresini ve filament kullanımını optimize edebilir.\n" "Şimdi senkronize etmek ister misiniz?" msgid "Sync now" @@ -8451,7 +8455,7 @@ msgid "Download failed; unknown file format." msgstr "İndirme başarısız oldu, dosya türü bilinmiyor." msgid "Downloading project..." -msgstr "proje indiriliyor..." +msgstr "Proje indiriliyor..." msgid "Download failed; File size exception." msgstr "İndirme başarısız oldu, Dosya boyutu sorunlu." @@ -8479,10 +8483,10 @@ msgid "The selected file" msgstr "Seçili dosya" msgid "Does not contain valid G-code." -msgstr "geçerli gcode içermiyor." +msgstr "Geçerli bir G-kodu içermiyor." msgid "An Error has occurred while loading the G-code file." -msgstr "G kodu dosyası yüklenirken hata oluşuyor" +msgstr "G-code dosyası yüklenirken bir hata oluştu." #. TRN %1% is archive path #, boost-format @@ -8520,7 +8524,7 @@ msgid "G-code files and models cannot be loaded together!" msgstr "G kodu dosyaları modellerle birlikte yüklenemez!" msgid "Unable to add models in preview mode" -msgstr "Önizleme modundayken model eklenemiyor!" +msgstr "Önizleme modundayken model ekleyemezsiniz" msgid "All objects will be removed, continue?" msgstr "Tüm nesneler kaldırılacak, devam edilsin mi?" @@ -8554,7 +8558,7 @@ msgid "The file %s has been sent to the printer's storage space and can be viewe msgstr "%s dosyası yazıcının depolama alanına gönderildi ve yazıcıda görüntülenebiliyor." msgid "The nozzle type is not set. Please set the nozzle and try again." -msgstr "Nozül tipi ayarlanmamış. Lütfen memeyi ayarlayın ve tekrar deneyin." +msgstr "Nozul tipi ayarlanmamış. Lütfen nozulu ayarlayın ve tekrar deneyin." msgid "The nozzle type is not set. Please check." msgstr "Nozül tipi ayarlanmamış. Lütfen kontrol edin." @@ -8809,7 +8813,7 @@ msgid "" msgstr "" "Önemli ölçüde farklı sıcaklıklara sahip filamentlerin kullanılması aşağıdakilere neden olabilir:\n" "• Ekstruder tıkanması\n" -"• Meme hasarı\n" +"• Nozul hasarı\n" "• Katman yapışma sorunları\n" "\n" "Bu özelliği etkinleştirmeye devam etmek istiyor musunuz?" @@ -8859,7 +8863,7 @@ msgid "Associate" msgstr "Ortak" msgid "with OrcaSlicer so that Orca can open models from" -msgstr "Orca’nın modelleri açabilmesi için OrcaSlicer ile" +msgstr "orca'nın modelleri şuradan açabilmesi için OrcaSlicer ile (ilişkilendir / eşleştir)" msgid "Current Association: " msgstr "Mevcut Bağlantı: " @@ -8895,7 +8899,7 @@ msgid "Enable dark Mode" msgstr "Karanlık modu etkinleştir" msgid "Allow only one OrcaSlicer instance" -msgstr "Yalnızca bir OrcaSlicer örneğine izin ver" +msgstr "Yalnızca bir orca slicer örneğine izin ver" msgid "On OSX there is always only one instance of app running by default. However it is allowed to run multiple instances of same app from the command line. In such case this settings will allow only one instance." msgstr "OSX’te her zaman varsayılan olarak çalışan tek bir uygulama örneği vardır. Ancak aynı uygulamanın birden fazla örneğinin komut satırından çalıştırılmasına izin verilir. Böyle bir durumda bu ayarlar yalnızca bir örneğe izin verecektir." @@ -9034,7 +9038,7 @@ msgid "If enabled, saved projects store the absolute path to imported source fil msgstr "Etkinleştirildiğinde kaydedilen projeler, içe aktarılan kaynak dosyaların (STEP/STL/...) mutlak yolunu saklar; böylece kaynak dosya projeden farklı bir klasörde tutulsa bile \"Diskten yeniden yükle\" çalışmayı sürdürür. Devre dışı bırakıldığında yalnızca dosya adı saklanır; bu da projeleri taşınabilir tutar ve mutlak yolların gömülmesini önler." msgid "Preset" -msgstr "Ön ayar" +msgstr "Ön Ayar" msgid "Remember printer configuration" msgstr "Yazıcı yapılandırmasını hatırla" @@ -9061,7 +9065,7 @@ msgid "filaments" msgstr "filamentler" msgid "Optimizes filament area maximum height by chosen filament count." -msgstr "Seçilen filaman sayısına göre filaman alanı maksimum yüksekliğini optimize eder." +msgstr "Seçilen filament sayısına göre filament alanı maksimum yüksekliğini optimize eder." # AI Translated msgid "Show shared profiles notification" @@ -9075,7 +9079,7 @@ msgid "Features" msgstr "Özellikler" msgid "Multi device management" -msgstr "Çoklu Cihaz Yönetimi" +msgstr "Çoklu cihaz yönetimi" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Bu seçenek etkinleştirildiğinde, aynı anda birden fazla cihaza bir görev gönderebilir ve birden fazla cihazı yönetebilirsiniz." @@ -9155,7 +9159,7 @@ msgstr "Kaydır" # AI Translated msgid "Left Mouse Drag" -msgstr "Sol Fare Sürükleme" +msgstr "Sol fare sürükleme" # AI Translated msgid "Set the action that dragging the left mouse button should perform." @@ -9163,7 +9167,7 @@ msgstr "Sol fare düğmesiyle sürüklemenin gerçekleştireceği eylemi ayarlay # AI Translated msgid "Middle Mouse Drag" -msgstr "Orta Fare Sürükleme" +msgstr "Orta fare sürükleme" # AI Translated msgid "Set the action that dragging the middle mouse button should perform." @@ -9171,14 +9175,14 @@ msgstr "Orta fare düğmesiyle sürüklemenin gerçekleştireceği eylemi ayarla # AI Translated msgid "Right Mouse Drag" -msgstr "Sağ Fare Sürükleme" +msgstr "Sağ fare sürükleme" # AI Translated msgid "Set the action that dragging the right mouse button should perform." msgstr "Sağ fare düğmesiyle sürüklemenin gerçekleştireceği eylemi ayarlayın." msgid "Clear my choice on..." -msgstr "Seçimimi temizle..." +msgstr "Seçimimi Temizle" msgid "Unsaved projects" msgstr "Kaydedilmemiş projeler" @@ -9241,7 +9245,7 @@ msgid "Renders cast shadows on the plate, other objects, and each object onto it msgstr "Gerçekçi görünümde plakaya, diğer nesnelere ve her nesnenin kendi üzerine düşen gölgeleri işler." msgid "Anti-aliasing" -msgstr "Anti-aliasing" +msgstr "Anti-Aliasing" # AI Translated msgid "MSAA Multiplier" @@ -9321,6 +9325,21 @@ msgstr "Alt katmanları karart" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Dilimlenmiş önizlemede katman kaydırıcısı gezdirilirken, geçerli katmanın altındaki katmanları koyulaştırarak yalnızca görüntülenen katmanın tam parlaklıkta gösterilmesini sağlar." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Karartılmış katman parlaklığı" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"\"Alt katmanları karart\" etkinleştirildiğinde karartılmış katmanların ne kadar parlak görüntüleneceği.\n" +"%99 neredeyse hiç karartmaz, %0 ise tamamen siyah gösterir. Üst sınır %99 olarak belirlenmiştir, çünkü %100 seçeneği devre dışı bırakmakla aynı olurdu." + msgid "Login region" msgstr "Giriş bölgesi" @@ -9363,7 +9382,7 @@ msgid "Allow logging into Bambu Cloud alongside Orca Cloud. When enabled, a Bamb msgstr "Orca Cloud'un yanı sıra Bambu Cloud'a giriş yapılmasına izin verir. Etkinleştirildiğinde ana sayfada bir Bambu giriş bölümü görünür." msgid "Update & sync" -msgstr "Güncelle ve senkronize et" +msgstr "Güncelle ve Senkronize Et" msgid "Check for stable updates only" msgstr "Yalnızca kararlı güncellemeleri kontrol edin" @@ -9375,7 +9394,7 @@ msgid "Filament sync mode" msgstr "Filament senkronizasyon modu" msgid "Choose whether sync updates both filament preset and color, or only color." -msgstr "Senkronizasyonun hem filaman ön ayarını hem de rengini mi, yoksa yalnızca rengi mi güncelleyeceğini seçin." +msgstr "Senkronizasyonun hem filament ön ayarını hem de rengini mi, yoksa yalnızca rengi mi güncelleyeceğini seçin." msgid "Filament & Color" msgstr "Filament ve Renk" @@ -9384,7 +9403,7 @@ msgid "Color only" msgstr "Yalnızca renk" msgid "Update built-in presets automatically." -msgstr "Yerleşik Ön Ayarları otomatik olarak güncelleyin." +msgstr "Yerleşik ön ayarları otomatik olarak güncelleyin." msgid "Use encrypted file for token storage" msgstr "Belirteç depolaması için şifrelenmiş dosyayı kullan" @@ -9394,7 +9413,7 @@ msgstr "Kimlik doğrulama belirteçlerini sistem anahtarlığı yerine şifrelen # AI Translated msgid "Bambu network plug-in" -msgstr "Bambu ağ eklentisi" +msgstr "Bambu Ağ Eklentisi" # AI Translated msgid "Enable Bambu network plug-in" @@ -9421,7 +9440,7 @@ msgid "Associate 3MF files to OrcaSlicer" msgstr ".3mf dosyalarını OrcaSlicer ile ilişkilendirin" msgid "If enabled, this sets OrcaSlicer as the default application to open 3MF files." -msgstr "Etkinleştirilirse, OrcaSlicer'ı .3mf dosyalarını açacak varsayılan uygulama olarak ayarlar" +msgstr "Etkinleştirilirse, 3MF dosyalarını açmak için OrcaSlicer'ı varsayılan uygulama olarak ayarlar." msgid "Associate DRC files to OrcaSlicer" msgstr "DRC dosyalarını OrcaSlicer ile ilişkilendirin" @@ -9433,13 +9452,13 @@ msgid "Associate STL files to OrcaSlicer" msgstr ".stl dosyalarını OrcaSlicer ile ilişkilendirin" msgid "If enabled, this sets OrcaSlicer as the default application to open STL files." -msgstr "Etkinleştirilirse OrcaSlicer'ı .stl dosyalarını açmak için varsayılan uygulama olarak ayarlar" +msgstr "Etkinleştirilirse, STL dosyalarını açmak için OrcaSlicer'ı varsayılan uygulama olarak ayarlar." msgid "Associate STEP files to OrcaSlicer" msgstr ".step/.stp dosyalarını OrcaSlicer ile ilişkilendirin" msgid "If enabled, this sets OrcaSlicer as the default application to open STEP files." -msgstr "Etkinleştirilirse, OrcaSlicer'ı .step dosyalarını açmak için varsayılan uygulama olarak ayarlar" +msgstr "Etkinleştirilirse, STEP dosyalarını açmak için OrcaSlicer'ı varsayılan uygulama olarak ayarlar." msgid "Associate web links to OrcaSlicer" msgstr "Web bağlantılarını OrcaSlicer ile ilişkilendirin" @@ -9542,10 +9561,10 @@ msgid "Product host" msgstr "Ürün ana bilgisayarı" msgid "Debug save button" -msgstr "hata ayıklama kaydet düğmesi" +msgstr "Hata ayıklama kaydetme butonu" msgid "Save debug settings" -msgstr "hata ayıklama ayarlarını kaydet" +msgstr "Hata ayıklama ayarlarını kaydet" msgid "Debug settings have been saved successfully!" msgstr "DEBUG ayarları başarıyla kaydedildi!" @@ -9593,7 +9612,7 @@ msgid "Change extruder color" msgstr "Ekstruder rengini değiştir" msgid "Unspecified" -msgstr "belirtilmemiş" +msgstr "Tanımlanmamış" msgid "Project-inside presets" msgstr "Proje içi ön ayarlar" @@ -9780,22 +9799,22 @@ msgstr "Görev iptal edildi" # AI Translated msgid "Bambu Cool Plate" -msgstr "Bambu Soğuk Plaka" +msgstr "Bambu Cool Plate" msgid "PLA Plate" msgstr "PLA Plaka" msgid "Bambu Engineering Plate" -msgstr "Bambu Mühendislik Plakası" +msgstr "Bambu Engineering Plate" msgid "Bambu Smooth PEI Plate" -msgstr "Bambu Pürüzsüz PEI Plaka" - -msgid "High temperature Plate" msgstr "Bambu Smooth PEI Plate" +msgid "High temperature Plate" +msgstr "High temperature Plate" + msgid "Bambu Textured PEI Plate" -msgstr "Bambu Dokulu PEI Plaka" +msgstr "Bambu Textured PEI Plate" msgid "Bambu Cool Plate SuperTack" msgstr "Bambu Cool Plate SuperTack" @@ -9813,7 +9832,7 @@ msgid "Multi-color with external" msgstr "Çok renkli harici" msgid "Your filament grouping method in the sliced file is not optimal." -msgstr "Dilimlenmiş dosyadaki filaman gruplama yönteminiz optimal değil." +msgstr "Dilimlenmiş dosyadaki filament gruplama yönteminiz optimal değil." # AI Translated msgid "To ensure print quality, the drying temperature will be lowered during printing." @@ -9862,7 +9881,7 @@ msgid "Nozzles and filaments of the same type share the same PA profile." msgstr "Aynı tipteki nozullar ve filamentler aynı PA profilini paylaşır." msgid "Send complete" -msgstr "gönderme tamamlandı" +msgstr "Gönderme tamamlandı" msgid "Error code" msgstr "Hata kodu" @@ -9943,10 +9962,10 @@ msgid "Errors" msgstr "Hatalar" msgid "More than one filament types have been mapped to the same external spool, which may cause printing issues. The printer won't pause during printing." -msgstr "Aynı harici makaraya birden fazla filaman türü eşlenmiştir; bu durum, yazdırma sorunlarına neden olabilir. Yazıcı yazdırma sırasında duraklamaz." +msgstr "Aynı harici makaraya birden fazla filament türü eşlenmiştir; bu durum, yazdırma sorunlarına neden olabilir. Yazıcı yazdırma sırasında duraklamaz." msgid "The filament type setting of external spool is different from the filament in the slicing file." -msgstr "Harici makaranın filaman türü ayarı, dilimleme dosyasındaki filamandan farklıdır." +msgstr "Harici makaranın filament türü ayarı, dilimleme dosyasındaki filamentden farklıdır." msgid "The printer type selected when generating G-code is not consistent with the currently selected printer. It is recommended that you use the same printer type for slicing." msgstr "G Kodu oluşturulurken seçilen yazıcı türü mevcut seçili yazıcıyla tutarlı değil. Dilimleme için aynı yazıcı tipini kullanmanız tavsiye edilir." @@ -10020,7 +10039,7 @@ msgid "Cost %dg filament and %d changes more than optimal grouping." msgstr "Maliyet %dg filament ve %d, optimum gruplandırmadan daha fazla değişir." msgid "nozzle" -msgstr "meme" +msgstr "nozul" # AI Translated #, c-format, boost-format @@ -10073,7 +10092,7 @@ msgstr "Geçerli yazıcının %s çapı(%.1fmm) dilimleme dosyasıyla (%.1fmm) e #, c-format, boost-format msgid "The current nozzle diameter (%.1fmm) doesn't match with the slicing file (%.1fmm). Please make sure the nozzle installed matches with settings in printer, then set the corresponding printer preset when slicing." -msgstr "Mevcut nozül çapı (%.1fmm) dilimleme dosyasıyla (%.1fmm) eşleşmiyor. Lütfen takılan püskürtme ucunun yazıcıdaki ayarlarla eşleştiğinden emin olun, ardından dilimleme sırasında ilgili yazıcı ön ayarını yapın." +msgstr "Mevcut nozul çapı (%.1fmm) dilimleme dosyasıyla (%.1fmm) eşleşmiyor. Lütfen takılan püskürtme ucunun yazıcıdaki ayarlarla eşleştiğinden emin olun, ardından dilimleme sırasında ilgili yazıcı ön ayarını yapın." msgid "both extruders" msgstr "her iki ekstruder" @@ -10113,33 +10132,33 @@ msgstr "[ %s ] yüksek sıcaklıktaki bir ortamda yazdırmayı gerektirir." #, c-format, boost-format msgid "The filament on %s may soften. Please unload." -msgstr "%s üzerindeki filaman yumuşayabilir. Lütfen boşaltın." +msgstr "%s üzerindeki filament yumuşayabilir. Lütfen boşaltın." #, c-format, boost-format msgid "The filament on %s is unknown and may soften. Please set filament." -msgstr "%s üzerindeki filaman bilinmiyor ve yumuşayabilir. Lütfen filamenti ayarlayın." +msgstr "%s üzerindeki filament bilinmiyor ve yumuşayabilir. Lütfen filamenti ayarlayın." msgid "Unable to automatically match to suitable filament. Please click to manually match." -msgstr "Uygun filamanla otomatik olarak eşleştirilemiyor. Manuel olarak eşleştirmek için lütfen tıklayın." +msgstr "Uygun filamentle otomatik olarak eşleştirilemiyor. Manuel olarak eşleştirmek için lütfen tıklayın." msgid "Install toolhead enhanced cooling fan to prevent filament softening." msgstr "Filament yumuşamasını önlemek için takım başlığı geliştirilmiş soğutma fanını takın." # AI Translated msgid "Smooth Cool Plate" -msgstr "Pürüzsüz Soğuk Plaka" +msgstr "Smooth Cool Plate" # AI Translated msgid "Engineering Plate" -msgstr "Mühendislik Plakası" +msgstr "Engineering Plate" # AI Translated msgid "Smooth High Temp Plate" -msgstr "Pürüzsüz Yüksek Sıcaklık Plakası" +msgstr "Smooth High Temp Plate" # AI Translated msgid "Textured PEI Plate" -msgstr "Dokulu PEI Plaka" +msgstr "Textured PEI Plate" msgid "Cool Plate (SuperTack)" msgstr "Cool Plate (SuperTack)" @@ -10148,25 +10167,25 @@ msgid "Click here if you can't connect to the printer" msgstr "Yazıcıya bağlanamıyorsanız burayı tıklayın" msgid "No login account, only printers in LAN mode are displayed." -msgstr "Oturum açma hesabı yok, yalnızca LAN modundaki yazıcılar görüntüleniyor" +msgstr "Oturum açılmadı; yalnızca LAN modundaki yazıcılar görüntüleniyor." msgid "Connecting to server..." -msgstr "Sunucuya baglanıyor" +msgstr "Sunucuya bağlanılıyor..." msgid "Synchronizing device information..." -msgstr "Cihaz bilgileri senkronize ediliyor" +msgstr "Cihaz bilgileri senkronize ediliyor..." msgid "Synchronizing device information timed out." -msgstr "Cihaz bilgilerinin senkronize edilmesi zaman aşımı" +msgstr "Cihaz bilgileri senkronizasyonu zaman aşımına uğradı." msgid "Cannot send a print job when the printer is not at FDM mode." msgstr "Yazıcı FDM modunda değilken yazdırma işi gönderilemiyor." msgid "Cannot send a print job while the printer is updating firmware." -msgstr "Yazıcı ürün yazılımını güncellerken yazdırma işi gönderilemiyor" +msgstr "Yazıcı yazılımı güncellenirken yeni bir baskı başlatılamaz." msgid "The printer is executing instructions. Please restart printing after it ends." -msgstr "Yazıcı talimatları yürütüyor. Lütfen bittikten sonra yazdırmayı yeniden başlatın" +msgstr "Yazıcı komutları yürütüyor. Lütfen işlem bittikten sonra baskıyı tekrar başlatın." msgid "AMS is setting up. Please try again later." msgstr "AMS kuruluyor. Lütfen daha sonra tekrar deneyin." @@ -10193,7 +10212,7 @@ msgid "Cannot send the print job to a printer whose firmware must be updated." msgstr "Yazdırma işi, ürün yazılımının güncellenmesi gereken bir yazıcıya gönderilemiyor." msgid "Cannot send a print job for an empty plate." -msgstr "Boş kalıp için yazdırma işi gönderilemiyor" +msgstr "Boş bir tabla için baskı işi gönderilemez." msgid "Storage needs to be inserted to record timelapse." msgstr "Hızlandırılmış çekimi kaydetmek için depolama biriminin eklenmesi gerekir." @@ -10208,7 +10227,7 @@ msgid "Set dynamic flow calibration to 'OFF' to enable custom dynamic flow value msgstr "Özel dinamik akış değerini etkinleştirmek için dinamik akış kalibrasyonunu 'KAPALI' olarak ayarlayın." msgid "This printer does not support printing all plates." -msgstr "Bu yazıcı tüm kalıpların yazdırılmasını desteklemiyor" +msgstr "Bu yazıcı tüm plakaların bastırılmasını desteklemiyor." # AI Translated #, c-format, boost-format @@ -10277,7 +10296,7 @@ msgid "Sending failed, please try again!" msgstr "Gönderme başarısız oldu, lütfen yeniden deneyin!" msgid "Slice complete" -msgstr "Dilimleme tamam." +msgstr "Dilimleme tamamlandı" msgid "View all Daily tips" msgstr "Tüm Günlük ipuçlarını görüntüleyin" @@ -10456,8 +10475,8 @@ msgid "" "No - Do not change these settings for me." msgstr "" "Bu ayarlar otomatik olarak değiştirilsin mi?\n" -"Evet - Bu ayarları otomatik olarak değiştir\n" -"Hayır - Bu ayarları benim için değiştirme" +"Evet - Ayarları otomatik olarak uygula.\n" +"Hayır - Ayarları değiştirme." msgid "" "When using soluble material for the support interface, we recommend the following settings:\n" @@ -10494,10 +10513,10 @@ msgid "Adjust" msgstr "Ayarla" msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications." -msgstr "Deneysel özellik: Filament değişiklikleri sırasında, floşu en aza indirmek için filamanı daha büyük bir mesafeden geri çekmek ve kesmek. Flush’u önemli ölçüde azaltabilmesine rağmen, aynı zamanda nozül tıkanmaları veya diğer yazdırma komplikasyonları riskini de artırabilir." +msgstr "Deneysel özellik: Filament değişiklikleri sırasında, floşu en aza indirmek için filamenti daha büyük bir mesafeden geri çekmek ve kesmek. Flush’u önemli ölçüde azaltabilmesine rağmen, aynı zamanda nozul tıkanmaları veya diğer yazdırma komplikasyonları riskini de artırabilir." msgid "Experimental feature: Retracting and cutting off the filament at a greater distance during filament changes to minimize flush. Although it can notably reduce flush, it may also elevate the risk of nozzle clogs or other printing complications. Please use with the latest printer firmware." -msgstr "Deneysel özellik: Filament değişiklikleri sırasında, filamanın en aza indirilmesi için filamanın daha büyük bir mesafeden geri çekilmesi ve kesilmesi. Akmayı önemli ölçüde azaltabilmesine rağmen, aynı zamanda püskürtme uçları tıkanması veya diğer yazdırma komplikasyonları riskini de artırabilir. Lütfen en son yazıcı ürün yazılımını kullanın." +msgstr "Deneysel özellik: Filament değişiklikleri sırasında, filamentin en aza indirilmesi için filamentin daha büyük bir mesafeden geri çekilmesi ve kesilmesi. Akmayı önemli ölçüde azaltabilmesine rağmen, aynı zamanda püskürtme uçları tıkanması veya diğer yazdırma komplikasyonları riskini de artırabilir. Lütfen en son yazıcı ürün yazılımını kullanın." msgid "" "When recording timelapse without toolhead, it is recommended to add a \"Timelapse Wipe Tower\" \n" @@ -10581,7 +10600,7 @@ msgstr "Hassasiyet" # AI Translated msgid "Z contouring" -msgstr "Z konturlama" +msgstr "Z Konturlama" msgid "Wall generator" msgstr "Duvar Türü" @@ -10600,7 +10619,7 @@ msgstr "Alt / Üst Katmanlar" # AI Translated msgid "First layer speed" -msgstr "İlk katman hızı" +msgstr "İlk Katman Hızı" msgid "Other layers speed" msgstr "Diğer Katmanlar" @@ -10634,7 +10653,7 @@ msgid "Support ironing" msgstr "Destek Ütüleme" msgid "Tree supports" -msgstr "Ağaç destekler" +msgstr "Ağaç Destekler" msgid "Multimaterial" msgstr "Çoklu Malzeme" @@ -10731,14 +10750,14 @@ msgid "Bed temperature when the Cool Plate SuperTack is installed. A value of 0 msgstr "Cool Plate SuperTack takılıyken yatak sıcaklığı. 0 değeri, filamentin Cool Plate SuperTack üzerine baskıyı desteklemediği anlamına gelir." msgid "Cool Plate" -msgstr "Soğuk plaka" +msgstr "Cool Plate" msgid "This is the bed temperature when the Cool Plate is installed. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Cool Plate takıldığında yatak sıcaklığı. 0 değeri, filamentin Cool Plate üzerine yazdırmayı desteklemediği anlamına gelir." # AI Translated msgid "Textured Cool Plate" -msgstr "Dokulu Soğuk Plaka" +msgstr "Textured Cool Plate" # AI Translated msgid "This is the bed temperature when the Textured Cool Plate is installed. A value of 0 means the filament does not support printing on the Textured Cool Plate." @@ -10749,7 +10768,7 @@ msgstr "Engineering Plate takıldığında yatak sıcaklığı. Değer 0, filame # AI Translated msgid "Smooth PEI Plate / High Temp Plate" -msgstr "Pürüzsüz PEI Plaka / Yüksek Sıcaklık Plakası" +msgstr "Smooth PEI Plate / High Temp Plate" msgid "This is the bed temperature when the Smooth PEI Plate/High Temperature Plate is installed. A value of 0 means the filament does not support printing on the Smooth PEI Plate/High Temp Plate." msgstr "Smooth PEI Plate / High Temp Plate takılığın da yatak sıcaklığı. 0 Değeri, filamentin Smooth PEI Plate / High Temp Plate üzerine baskı yapmayı desteklemediği anlamına gelir." @@ -10771,13 +10790,13 @@ msgstr "Minimum fan hızı" # AI Translated msgid "The part cooling fan will run at the minimum fan speed when the estimated layer time is longer than the threshold value. When the layer time is shorter than the threshold, the fan speed will be interpolated between the minimum and maximum fan speed according to layer printing time." -msgstr "Tahmini katman süresi eşik değerinden uzun olduğunda parça soğutma fanı minimum fan hızında çalışır. Katman süresi eşikten kısa olduğunda fan hızı, katman yazdırma süresine göre minimum ve maksimum fan hızı arasında enterpole edilir" +msgstr "Tahmini katman süresi eşik değerden uzun olduğunda parça soğutma fanı minimum fan hızında çalışır. Katman süresi eşik değerden kısa olduğunda fan hızı, katman baskı süresine göre minimum ve maksimum hızlar arasında kademeli olarak ayarlanır." msgid "Max fan speed threshold" msgstr "Maksimum fan hızı" msgid "The part cooling fan will run at maximum speed when the estimated layer time is shorter than the threshold value." -msgstr "Tahmini katman süresi ayar değerinden kısa olduğunda parça soğutma fanı hızı maksimum olacaktır" +msgstr "Tahmini katman süresi eşik değerden kısa olduğunda parça soğutma fanı maksimum hızda çalışır." msgid "Auxiliary part cooling fan" msgstr "Yardımcı parça soğutma fanı" @@ -10998,8 +11017,8 @@ msgstr "%1% Ön Ayar" msgid "The following preset will be deleted too:" msgid_plural "The following presets will be deleted too:" -msgstr[0] "Aşağıdaki ön ayar da silinecektir." -msgstr[1] "Aşağıdaki ön ayarlar da silinecektir." +msgstr[0] "Aşağıdaki önayar da silinecektir:" +msgstr[1] "Aşağıdaki önayarlar da silinecektir:" msgid "" "Are you sure to delete the selected preset?\n" @@ -11103,7 +11122,7 @@ msgid "Process Settings" msgstr "İşlem Ayarları" msgid "unsaved changes" -msgstr "Kaydedilmemiş Değişiklikler" +msgstr "kaydedilmemiş değişiklikler" msgid "Transfer or discard changes" msgstr "Değişiklikleri Çıkart veya Sakla" @@ -11168,7 +11187,7 @@ msgid "Click the right mouse button to display the full text." msgstr "Tam metni görüntülemek için farenin sağ tuşuna tıklayın." msgid "No changes will be saved." -msgstr "Tüm değişiklikler kaydedilmeyecek" +msgstr "Hiçbir değişiklik kaydedilmeyecek." msgid "All changes will be discarded." msgstr "Tüm değişiklikler iptal edilecek." @@ -11384,7 +11403,7 @@ msgid "view" msgstr "görüş" msgid "Current filament colors" -msgstr "Mevcut filaman renkleri" +msgstr "Mevcut filament renkleri" msgid "Matching" msgstr "Eşleştirme" @@ -11414,8 +11433,8 @@ msgid "" "The color has been selected, you can choose OK \n" " to continue or manually adjust it." msgstr "" -"Renk seçildi, Tamam'ı seçebilirsiniz \n" -" Devam etmek veya manuel olarak ayarlamak için" +"Renk seçildi; devam etmek için Tamam'ı seçebilir\n" +"veya elle ayarlayabilirsiniz." msgid "—> " msgstr "—> " @@ -11424,7 +11443,7 @@ msgid "" "Synchronizing AMS filaments will discard your modified but unsaved filament presets.\n" "Are you sure you want to continue?" msgstr "" -"AMS filamanlarının senkronize edilmesi, değiştirilmiş ancak kaydedilmemiş filaman ön ayarlarınızı siler.\n" +"AMS filamentlerinin senkronize edilmesi, değiştirilmiş ancak kaydedilmemiş filament ön ayarlarınızı siler.\n" "Devam etmek istediğinizden emin misiniz?" msgctxt "Sync_AMS" @@ -11451,10 +11470,10 @@ msgid "Overwriting" msgstr "Üzerine yazma" msgid "Reset all filament mapping" -msgstr "Tüm filaman eşlemesini sıfırla" +msgstr "Tüm filament eşlemesini sıfırla" msgid "(Recommended filament)" -msgstr "(Önerilen filaman)" +msgstr "(Önerilen filament)" msgid "Advanced Options" msgstr "Gelişmiş Seçenekler" @@ -11480,7 +11499,7 @@ msgid "Tip" msgstr "Uç" msgid "Only synchronize filament type and color, not including AMS slot information." -msgstr "AMS yuvası bilgileri hariç, yalnızca filaman tipini ve rengini senkronize edin." +msgstr "AMS yuvası bilgileri hariç, yalnızca filament tipini ve rengini senkronize edin." msgid "Replace the project filaments list sequentially based on printer filaments. And unused printer filaments will be automatically added to the end of the list." msgstr "Proje filamentleri listesini yazıcı filamentlerine göre sırayla değiştirin. Kullanılmayan yazıcı filamentleri ise otomatik olarak listenin sonuna eklenecektir." @@ -11495,7 +11514,7 @@ msgid "After being synced, this action cannot be undone." msgstr "Senkronize edildikten sonra bu işlem geri alınamaz." msgid "After being synced, the project's filament presets and colors will be replaced with the mapped filament types and colors. This action cannot be undone." -msgstr "Senkronize edildikten sonra projenin filaman ön ayarları ve renkleri, eşlenen filaman türleri ve renkleri ile değiştirilecektir. Bu eylem geri alınamaz." +msgstr "Senkronize edildikten sonra projenin filament ön ayarları ve renkleri, eşlenen filament türleri ve renkleri ile değiştirilecektir. Bu eylem geri alınamaz." msgid "Are you sure to synchronize the filaments?" msgstr "Filamentleri senkronize ettiğinizden emin misiniz?" @@ -11510,7 +11529,7 @@ msgid "Add unused filaments to filaments list." msgstr "Kullanılmayan filamentleri filament listesine ekleyin." msgid "Only synchronize filament type and color, not including slot information." -msgstr "Yuva bilgisi hariç, yalnızca filaman tipini ve rengini senkronize edin." +msgstr "Yuva bilgisi hariç, yalnızca filament tipini ve rengini senkronize edin." msgid "Ext spool" msgstr "Harici makara" @@ -11545,7 +11564,7 @@ msgid "Successfully synchronized filament color from printer." msgstr "Filament rengi yazıcıdan başarıyla senkronize edildi." msgid "Successfully synchronized color and type of filament from printer." -msgstr "Yazıcıdan filamanın rengi ve türü başarıyla senkronize edildi." +msgstr "Yazıcıdan filamentin rengi ve türü başarıyla senkronize edildi." msgctxt "FinishSyncAms" msgid "OK" @@ -11568,7 +11587,7 @@ msgid "For constant flow rate, hold %1% while dragging." msgstr "Sabit akış hızı için sürüklerken %1% basılı tutun." msgid "ms" -msgstr "Bayan" +msgstr "ms" msgid "Total ramming" msgstr "Toplam çarpma" @@ -11580,7 +11599,7 @@ msgid "Ramming line" msgstr "Çarpma hattı" msgid "Orca would re-calculate your flushing volumes everytime the filaments color changed or filaments changed. You could disable the auto-calculate in Orca Slicer > Preferences" -msgstr "Orca, filamentlerin rengi her değiştiğinde veya filamentler değiştiğinde yıkama hacimlerinizi yeniden hesaplar. Otomatik hesaplamayı Orca Dilimleyici > Tercihler'de devre dışı bırakabilirsiniz." +msgstr "Orca, filament rengi veya filament değiştirildiğinde tahliye miktarlarını her defasında yeniden hesaplar. Otomatik hesaplamayı Orca Slicer > Tercihler altından devre dışı bırakabilirsiniz" msgid "Flushing volume (mm³) for each filament pair." msgstr "Her filament çifti için yıkama hacmi (mm³)." @@ -11603,7 +11622,7 @@ msgid "Flushing volumes for filament change" msgstr "Filament değişimi için temizleme hacmi" msgid "Please choose the filament colour" -msgstr "Lütfen filaman rengini seçin" +msgstr "Lütfen filament rengini seçin" # AI Translated msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." @@ -11650,7 +11669,7 @@ msgid "parse json failed" msgstr "json ayrıştırma başarısız oldu" msgid "[Action Required] " -msgstr "[İşlem Gerekli]" +msgstr "[İşlem Gerekli] " msgid "[Action Required]" msgstr "[İşlem Gerekli]" @@ -11758,7 +11777,7 @@ msgid "Movement step set to 1mm" msgstr "Hareket adımı 1 mm'ye ayarlandı" msgid "Keyboard 1-9: set filament for object/part" -msgstr "klavye 1-9: nesne/parça için filamenti ayarlayın" +msgstr "Klavye 1-9: nesneye/parçaya filament ata" msgid "Camera view - Default" msgstr "Kamera görünümü - Varsayılan" @@ -12115,7 +12134,7 @@ msgid "Repair finished" msgstr "Onarım tamamlandı" msgid "Repair failed" -msgstr "Onarım başarısız oldu." +msgstr "Onarım başarısız oldu" msgid "Repair canceled" msgstr "Onarım iptal edildi" @@ -12137,7 +12156,7 @@ msgid "Open G-code file:" msgstr "G kodu dosyasını açın:" msgid "One object has an empty first layer and can't be printed. Please Cut the bottom or enable supports." -msgstr "Bir nesnenin başlangıç katmanı boş ve yazdırılamıyor. Lütfen alt kısmı kesin veya destekleri etkinleştirin." +msgstr "Bir nesnenin ilk katmanı boş ve yazdırılamıyor. Lütfen alt kısmı kesin veya destekleri etkinleştirin." #, boost-format msgid "The object has empty layers between %1% and %2% and can’t be printed." @@ -12148,7 +12167,7 @@ msgid "Object: %1%" msgstr "Nesne: %1%" msgid "Parts of the object at these heights may be too thin or the object may have a faulty mesh." -msgstr "Belki nesnenin bu yükseklikteki bazı kısımları çok incedir veya nesnenin ağı hatalı olabilir" +msgstr "Nesnenin bu yüksekliklerdeki kısımları çok ince olabilir veya nesne bozuk bir ağ yapısına (mesh) sahip olabilir." # AI Translated msgid "Process change extrusion role G-code" @@ -12159,7 +12178,7 @@ msgid "Filament change extrusion role G-code" msgstr "Filament ekstrüzyon rolü değişim G-code'u" msgid "No object can be printed. It may be too small." -msgstr "Hiçbir nesne yazdırılamaz. Belki çok küçük" +msgstr "Hiçbir nesne basılamıyor. Nesne çok küçük olabilir." msgid "Your print is very close to the priming regions. Make sure there is no collision." msgstr "Baskınız hazırlama bölgelerine çok yakın. Çarpışma olmadığından emin olun." @@ -12198,10 +12217,10 @@ msgid "Input shaping is only supported by Klipper, RepRapFirmware and Marlin 2." msgstr "Input shaping yalnızca Klipper, RepRapFirmware ve Marlin 2 tarafından desteklenir." msgid "Grouping error: " -msgstr "Gruplama hatası:" +msgstr "Gruplama hatası: " msgid " can not be placed in the " -msgstr "içine yerleştirilemez" +msgstr " içine yerleştirilemez " # AI Translated msgid "Group error in manual mode. Please check nozzle count or regroup." @@ -12217,7 +12236,7 @@ msgid "too many files" msgstr "çok fazla dosya" msgid "File too large" -msgstr "dosya çok büyük" +msgstr "Dosya çok büyük" msgid "unsupported method" msgstr "desteklenmeyen yöntem" @@ -12287,7 +12306,7 @@ msgid "invalid filename" msgstr "geçersiz dosya adı" msgid "Buffer too small" -msgstr "arabellek çok küçük" +msgstr "Arabellek çok küçük" msgid "internal error" msgstr "dahili hata" @@ -12296,7 +12315,7 @@ msgid "file not found" msgstr "dosya bulunamadı" msgid "Archive too large" -msgstr "arşiv çok büyük" +msgstr "Arşiv çok büyük" msgid "validation failed" msgstr "doğrulama başarısız" @@ -12320,7 +12339,7 @@ msgid " is too close to exclusion area, there may be collisions when printing." msgstr " Hariç tutma alanına çok yakın olduğundan yazdırma sırasında çarpışmalar meydana gelebilir." msgid " is too close to clumping detection area, there may be collisions when printing." -msgstr "topaklanma algılama alanına çok yakın olduğundan yazdırma sırasında çarpışmalar meydana gelebilir." +msgstr " topaklanma algılama alanına çok yakın, baskı sırasında çarpışmalar meydana gelebilir." msgid "Prime Tower" msgstr "Başbakan Kulesi" @@ -12332,7 +12351,7 @@ msgid " is too close to an exclusion area, and collisions will be caused.\n" msgstr " dışlama alanına çok yakın ve çarpışmalara neden olacak.\n" msgid " is too close to clumping detection area, and collisions will be caused.\n" -msgstr "topaklanma tespit alanına çok yakınsa çarpışmalara neden olur.\n" +msgstr " topaklanma algılama alanına çok yakın, çarpışmalar meydana gelecektir.\n" # AI Translated msgid "Selected nozzle temperatures are incompatible. Each filament's nozzle temperature must fall within the recommended nozzle temperature range of the other filaments. Otherwise, nozzle clogging or printer damage may occur." @@ -12386,7 +12405,7 @@ msgid "Variable layer height is not supported with Organic supports." msgstr "Değişken katman yüksekliği Organik desteklerle desteklenmez." msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." -msgstr "Farklı püskürtme ucu çapları ve farklı filaman çapları, ana kule etkinleştirildiğinde iyi çalışmayabilir. Oldukça deneysel olduğundan lütfen dikkatli ilerleyin." +msgstr "Farklı püskürtme ucu çapları ve farklı filament çapları, ana kule etkinleştirildiğinde iyi çalışmayabilir. Oldukça deneysel olduğundan lütfen dikkatli ilerleyin." msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)." msgstr "Temizleme Kulesi şu anda yalnızca ilgili ekstruder adreslemesiyle desteklenmektedir (use_relative_e_distances=1)." @@ -12775,7 +12794,7 @@ msgid "This is the bed temperature for layers except for the first one. A value msgstr "İlk katman dışındaki katmanlar için yatak sıcaklığı. 0 Değeri, filamentin Dokulu PEI Plaka üzerine yazdırmayı desteklemediği anlamına gelir." msgid "First layer" -msgstr "Başlangıç katmanı" +msgstr "İlk katman" msgid "First layer bed temperature" msgstr "İlk katman yatak sıcaklığı" @@ -12799,7 +12818,7 @@ msgid "This is the bed temperature of the first layer. A value of 0 means the fi msgstr "İlk katmanın yatak sıcaklığı. 0 Değeri, filamentin Dokulu PEI Plaka üzerine yazdırmayı desteklemediği anlamına gelir." msgid "Plate types supported by the printer" -msgstr "Yazıcının desteklediği yatak türleri." +msgstr "Yazıcı tarafından desteklenen plaka tipleri" msgid "Default bed type" msgstr "Varsayılan yatak türü" @@ -13111,7 +13130,7 @@ msgid "" msgstr "" "Bu faktör dış duvarlar için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek dış duvar akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek dış duvar akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Inner wall flow ratio" msgstr "İç duvar akış oranı" @@ -13123,7 +13142,7 @@ msgid "" msgstr "" "Bu faktör iç duvarlar için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek iç duvar akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek iç duvar akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Overhang flow ratio" msgstr "Çıkıntı akış oranı" @@ -13135,7 +13154,7 @@ msgid "" msgstr "" "Bu faktör çıkıntılar için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek sarkma akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek sarkma akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Sparse infill flow ratio" msgstr "Seyrek dolgu akış oranı" @@ -13147,7 +13166,7 @@ msgid "" msgstr "" "Bu faktör seyrek dolgu için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek seyrek dolgu akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek seyrek dolgu akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Internal solid infill flow ratio" msgstr "Dahili katı dolgu akış oranı" @@ -13159,7 +13178,7 @@ msgid "" msgstr "" "Bu faktör, iç katı dolgu için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek dahili katı dolgu akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek dahili katı dolgu akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Gap fill flow ratio" msgstr "Boşluk doldurma akış oranı" @@ -13171,7 +13190,7 @@ msgid "" msgstr "" "Bu faktör boşlukları dolduracak malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek boşluk doldurma akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek boşluk doldurma akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Support flow ratio" msgstr "Destek akış oranı" @@ -13183,7 +13202,7 @@ msgid "" msgstr "" "Bu faktör destek için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek destek akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek destek akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Support interface flow ratio" msgstr "Destek arayüzü akış oranı" @@ -13195,7 +13214,7 @@ msgid "" msgstr "" "Bu faktör, destek arayüzü için malzeme miktarını etkiler.\n" "\n" -"Kullanılan gerçek destek arayüzü akışı, bu değerin filaman akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." +"Kullanılan gerçek destek arayüzü akışı, bu değerin filament akış oranıyla ve ayarlandıysa nesnenin akış oranıyla çarpılmasıyla hesaplanır." msgid "Precise wall" msgstr "Hassas duvar" @@ -13217,7 +13236,7 @@ msgid "" "If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width.\n" "Warning: If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts." msgstr "" -"Eğer bir üst yüzey basılacaksa ve kısmen başka bir katman tarafından kaplıysa layer genişliği bu değerin altında olan bir üst katman olarak değerlendirilmeyecek. Yalnızca çevrelerle kaplanması gereken yüzeyde 'bir çevre üstte' tetiklemesine izin vermemek yararlı olabilir. Bu değer mm veya a % çevre ekstrüzyon genişliğinin bir yüzdesi olabilir.\n" +"Eğer bir üst yüzey basılacaksa ve kısmen başka bir katman tarafından kaplıysa katman genişliği bu değerin altında olan bir üst katman olarak değerlendirilmeyecek. Yalnızca çevrelerle kaplanması gereken yüzeyde 'bir çevre üstte' tetiklemesine izin vermemek yararlı olabilir. Bu değer mm veya a % çevre ekstrüzyon genişliğinin bir yüzdesi olabilir.\n" "Uyarı: Etkinleştirilirse bir sonraki katmanda harfler gibi bazı ince özelliklerin olması durumunda yapay yapılar oluşturulabilir. Bu yapıları kaldırmak için bu ayarı 0 olarak ayarlayın." msgid "Only one wall on first layer" @@ -13468,12 +13487,37 @@ msgstr "Nesneye göre" msgid "Intra-layer order" msgstr "Katman içi sıra" -msgid "Print order within a single layer." -msgstr "Tek bir katmanda yazdırma sırası." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Tek bir katman içinde nesne örneklerinin hangi sırayla ziyaret edileceği; bu da aralarında ne kadar seyahat harcanacağını belirler.\n" +"\n" +"Varsayılan: en yakın komşu zincirlemesi, 2-opt ve kesişim giderme ile iyileştirilir. İyi bir genel seçim.\n" +"Nesne listesi olarak: örnekler, herhangi bir yol optimizasyonu olmadan nesne listesindeki sırayla yazdırılır. Öngörülebilir, elle denetlenen bir sıraya ihtiyacınız olduğunda kullanın.\n" +"Hepsinin en iyisi (en kısa yol): her strateji değerlendirilir ve en kısa olanı kullanılır. Nesne örneklerinin sırası tüm baskı için bir kez belirlenir, tek tek adaların sırası ise her katman için ayrı belirlenir; bu nedenle farklı katmanlar farklı stratejiler kullanabilir. Dilimleme biraz daha yavaştır.\n" +"Yılankavi: satır satır ilerleyen yılankavi geçiş, 2-opt ile iyileştirilir. Çok sayıda küçük parçadan oluşan düzenli ızgaralar için çok uygundur.\n" +"\n" +"Aynı katmanda birden fazla filament veya araç varsa, araç değişimlerini en aza indirmek önceliklidir: nesneler önce filamente göre gruplanır ve bu ayar yalnızca her filament grubu içindeki örnekleri sıralar; bu nedenle genel sıra, tabla genelindeki en kısa yol gibi görünmeyebilir." msgid "As object list" msgstr "Nesne listesi olarak" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Hepsinin en iyisi (en kısa yol)" + +# AI Translated +msgid "Snake" +msgstr "Yılankavi" + msgid "Slow printing down for better layer cooling" msgstr "Daha iyi katman soğutması için baskıyı yavaşlat" @@ -13668,7 +13712,7 @@ msgid "Add end G-code when finishing the printing of this filament." msgstr "Bu filament ile baskı bittiğinde çalışacak G kod." msgid "Ensure vertical shell thickness" -msgstr "Dikey kabuk kalınlığını onayla" +msgstr "Dikey kabuk kalınlığını koru" msgid "" "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)\n" @@ -14141,10 +14185,10 @@ msgid "Minimum HRC of nozzle required to print the filament. A value of 0 means msgstr "Filamenti yazdırmak için gereken minimum HRC nozul. Sıfır, nozulun HRC'sinin kontrol edilmediği anlamına gelir." msgid "Filament map to extruder" -msgstr "Ekstrudere filaman haritası" +msgstr "Ekstrudere filament haritası" msgid "Filament map to extruder." -msgstr "Ekstrudere filaman haritası." +msgstr "Ekstrudere filament haritası." msgid "Auto For Flush" msgstr "Yıkama İçin Otomatik" @@ -14160,7 +14204,7 @@ msgid "Flush temperature" msgstr "Yıkama sıcaklığı" msgid "Temperature when flushing filament. 0 indicates the upper bound of the recommended nozzle temperature range." -msgstr "Filament yıkanırken sıcaklık. 0, önerilen meme sıcaklık aralığının üst sınırını gösterir." +msgstr "Filament yıkanırken sıcaklık. 0, önerilen nozul sıcaklık aralığının üst sınırını gösterir." # AI Translated msgid "Flush temperature used in fast purge mode." @@ -14282,7 +14326,7 @@ msgid "Speed used for unloading the filament on the wipe tower (does not affect msgstr "Filamenti silme kulesinde boşaltmak için kullanılan hız (sıkıştırmadan hemen sonra boşaltmanın ilk kısmını etkilemez)." msgid "Unloading speed at the start" -msgstr "Başlangıçta boşaltma hızı" +msgstr "Başlangıçtaki boşaltma hızı" msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Sıkıştırmadan hemen sonra filamentin ucunu boşaltmak için kullanılan hız." @@ -14309,7 +14353,7 @@ msgid "Stamping distance measured from the center of the cooling tube" msgstr "Soğutma tüpünün merkezinden ölçülen damgalama mesafesi" msgid "If set to non-zero value, filament is moved toward the nozzle between the individual cooling moves (\"stamping\"). This option configures how long this movement should be before the filament is retracted again." -msgstr "Sıfırdan farklı bir değere ayarlanırsa filaman bireysel soğutma hareketleri arasında (“damgalama”) nüzule doğru hareket ettirilir. Bu seçenek, filamanın tekrar geri çekilmesinden önce bu hareketin ne kadar sürmesi gerektiğini yapılandırır." +msgstr "Sıfırdan farklı bir değere ayarlanırsa filament bireysel soğutma hareketleri arasında (“damgalama”) nüzule doğru hareket ettirilir. Bu seçenek, filamentin tekrar geri çekilmesinden önce bu hareketin ne kadar sürmesi gerektiğini yapılandırır." msgid "Speed of the first cooling move" msgstr "İlk soğutma hareketi hızı" @@ -14404,7 +14448,7 @@ msgid "g/cm³" msgstr "g/cm³" msgid "Filament material type" -msgstr "Filament malzeme türü." +msgstr "Filament malzeme türü" msgid "Soluble material" msgstr "Çözünür malzeme" @@ -14416,7 +14460,7 @@ msgid "Filament ramming length" msgstr "Filament sıkıştırma uzunluğu" msgid "When changing the extruder, it is recommended to extrude a certain length of filament from the original extruder. This helps minimize nozzle oozing." -msgstr "Ekstrüderi değiştirirken, orijinal ekstrüderden belirli bir uzunlukta filamanın çıkarılması tavsiye edilir. Bu, meme sızıntısını en aza indirmeye yardımcı olur." +msgstr "Ekstrüderi değiştirirken, orijinal ekstrüderden belirli bir uzunlukta filamentin çıkarılması tavsiye edilir. Bu, nozul sızıntısını en aza indirmeye yardımcı olur." msgid "Support material" msgstr "Destek malzemesi" @@ -14542,7 +14586,7 @@ msgid "Sparse infill pattern" msgstr "Dolgu deseni" msgid "This is the line pattern for internal sparse infill." -msgstr "İç dolgu deseni." +msgstr "Bu, iç seyrek dolgu için çizgi desenidir." msgid "Zig Zag" msgstr "Zig zag" @@ -14619,7 +14663,7 @@ msgid "Acceleration of internal solid infill. If the value is expressed as a per msgstr "İç katı dolgunun hızlandırılması. Değer yüzde olarak ifade edilirse (örn. %100), varsayılan ivmeye göre hesaplanacaktır." msgid "This is the printing acceleration for the first layer. Using limited acceleration can improve build plate adhesion." -msgstr "Başlangıç katmanının hızlandırılması. Daha düşük bir değerin kullanılması baskı plakası yapışkanlığını iyileştirebilir." +msgstr "İlk katman için baskı ivmelenmesidir. Sınırlı bir ivmelenme kullanmak, baskı tablasına yapışmayı artırabilir." msgid "Enable accel_to_decel" msgstr "Accel_to_decel'i etkinleştir" @@ -14670,7 +14714,7 @@ msgid "Line width of the first layer. If expressed as a %, it will be computed o msgstr "İlk katmanın çizgi genişliği. % olarak ifade edilirse Nozul çapı üzerinden hesaplanacaktır." msgid "First layer height" -msgstr "Başlangıç katman yüksekliği" +msgstr "İlk katman yüksekliği" msgid "Height of the first layer. Making the first layer height thicker can improve build plate adhesion." msgstr "İlk katmanın yüksekliği. İlk katman yüksekliğini biraz kalın yapmak, baskı plakasının yapışmasını iyileştirebilir." @@ -14679,7 +14723,7 @@ msgid "This is the speed for the first layer except for solid infill sections." msgstr "Katı dolgu kısmı dışındaki ilk katmanın hızı." msgid "First layer infill" -msgstr "Başlangıç katman dolgusu" +msgstr "İlk katman dolgusu" msgid "This is the speed for solid infill parts of the first layer." msgstr "İlk katmanın katı dolgu kısmının hızı." @@ -14701,7 +14745,7 @@ msgid "First layer nozzle temperature" msgstr "İlk katman nozul sıcaklığı" msgid "Nozzle temperature for printing the first layer with this filament" -msgstr "Bu filamenti kullanırken ilk katmanı yazdırmak için nozul sıcaklığı." +msgstr "Bu filament ile ilk katmanı basmak için nozul sıcaklığı" msgid "Full fan speed at layer" msgstr "Maksimum fan hızı" @@ -14769,25 +14813,25 @@ msgid "Ironing flow" msgstr "Ütüleme akışı" msgid "Filament-specific override for ironing flow. This allows you to customize the ironing flow for each filament type. Too high value results in overextrusion on the surface." -msgstr "Ütüleme akışı için filamana özgü geçersiz kılma. Bu, her filaman türü için ütüleme akışını özelleştirmenize olanak tanır. Çok yüksek değer yüzeyde aşırı ekstrüzyona neden olur." +msgstr "Ütüleme akışı için filamente özgü geçersiz kılma. Bu, her filament türü için ütüleme akışını özelleştirmenize olanak tanır. Çok yüksek değer yüzeyde aşırı ekstrüzyona neden olur." msgid "Ironing line spacing" msgstr "Ütüleme çizgi aralığı" msgid "Filament-specific override for ironing line spacing. This allows you to customize the spacing between ironing lines for each filament type." -msgstr "Ütüleme hattı aralığı için filamente özel geçersiz kılma. Bu, her filaman türü için ütüleme çizgileri arasındaki boşluğu özelleştirmenize olanak tanır." +msgstr "Ütüleme hattı aralığı için filamente özel geçersiz kılma. Bu, her filament türü için ütüleme çizgileri arasındaki boşluğu özelleştirmenize olanak tanır." msgid "Ironing inset" msgstr "Ütüleme boşluğu" msgid "Filament-specific override for ironing inset. This allows you to customize the distance to keep from the edges when ironing for each filament type." -msgstr "İç parçayı ütülemek için filamente özel geçersiz kılma. Bu, her filaman türü için ütüleme sırasında kenarlardan korunacak mesafeyi özelleştirmenize olanak tanır." +msgstr "İç parçayı ütülemek için filamente özel geçersiz kılma. Bu, her filament türü için ütüleme sırasında kenarlardan korunacak mesafeyi özelleştirmenize olanak tanır." msgid "Ironing speed" msgstr "Ütüleme hızı" msgid "Filament-specific override for ironing speed. This allows you to customize the print speed of ironing lines for each filament type." -msgstr "Ütüleme hızı için filamana özgü geçersiz kılma. Bu, her filaman türü için ütüleme hatlarının baskı hızını özelleştirmenize olanak tanır." +msgstr "Ütüleme hızı için filamente özgü geçersiz kılma. Bu, her filament türü için ütüleme hatlarının baskı hızını özelleştirmenize olanak tanır." msgid "This setting makes the toolhead randomly jitter while printing walls so that the surface has a rough textured look. This setting controls the fuzzy position." msgstr "Duvara baskı yaparken rastgele titreme, böylece yüzeyin pürüzlü bir görünüme sahip olması. Bu ayar pütürlü konumu kontrol eder." @@ -14840,8 +14884,8 @@ msgid "" "Attention! The [Extrusion] and [Combined] modes works only the fuzzy_skin_thickness parameter not more than the thickness of printed loop. At the same time, the width of the extrusion for a particular layer should also not be below a certain level. It is usually equal 15-25%% of a layer height. Therefore, the maximum fuzzy skin thickness with a perimeter width of 0.4 mm and a layer height of 0.2 mm will be 0.4-(0.2*0.25)=±0.35mm! If you enter a higher parameter than this, the error Flow::spacing() will displayed, and the model will not be sliced. You can choose this number until this error is repeated." msgstr "" "Pütürlü yüzey oluşturma modu. Sadece Arachne ile çalışır!\n" -"Yer Değiştirme: Desen, nozülün orijinal yoldan yana kaydırılmasıyla oluşturulduğu klasik mod.\n" -"Ekstrüzyon: Desenin ekstrüde edilen plastik miktarına göre oluşturulduğu mod. Bu, nozül sarsıntısı olmadan pürüzsüz bir desen veren hızlı ve düz bir algoritmadır. Ancak, tüm dizilimde gevşek duvarlar oluşturmak için daha kullanışlıdır.\n" +"Yer Değiştirme: Desen, nozulun orijinal yoldan yana kaydırılmasıyla oluşturulduğu klasik mod.\n" +"Ekstrüzyon: Desenin ekstrüde edilen plastik miktarına göre oluşturulduğu mod. Bu, nozul sarsıntısı olmadan pürüzsüz bir desen veren hızlı ve düz bir algoritmadır. Ancak, tüm dizilimde gevşek duvarlar oluşturmak için daha kullanışlıdır.\n" "Birleşik: Eklem modu [Yer Değiştirme] + [Ekstrüzyon]. Duvarların görünümü [Yer Değiştirme] Moduna benzer, ancak çevreler arasında gözenek bırakmaz.\n" "\n" "Dikkat! [Ekstrüzyon] ve [Birleşik] modları yalnızca fuzzy_skin_thickness parametresini çalıştırır, yazdırılan ilmeğin kalınlığından daha fazla olmamalıdır. Aynı zamanda, belirli bir katman için ekstrüzyon genişliği de belirli bir seviyenin altında olmamalıdır. Genellikle katman yüksekliğinin %%15-25'ine eşittir. Bu nedenle, 0,4 mm çevre genişliği ve 0,2 mm katman yüksekliğine sahip maksimum pütürlü yüzey kalınlığı 0,4-(0,2*0,25)=±0,35 mm olacaktır! Bundan daha yüksek bir parametre girerseniz, Flow::spacing() hatası görüntülenir ve model dilimlenmez. Bu hata tekrarlanana kadar bu sayıyı seçebilirsiniz." @@ -15207,7 +15251,7 @@ msgid "Sparse infill rotation template" msgstr "Seyrek dolgu döndürme şablonu" msgid "Rotate the sparse infill direction per layer using a template of angles. Enter comma-separated degrees (e.g., '0,30,60,90'). Angles are applied in order by layer and repeat when the list ends. Advanced syntax is supported: '+5' rotates +5° every layer; '+5#5' rotates +5° every 5 layers. See the Wiki for details. When a template is set, the standard infill direction setting is ignored. Note: some infill patterns (e.g., Gyroid) control rotation themselves; use with care." -msgstr "Seyrek dolgu yönünü katman katman açı şablonuna göre döndürün. Virgülle ayrılmış açıları girin (örn. '0,30,60,90'). Açılar katman sırasına göre uygulanır ve liste sona erdiğinde tekrarlanır. Gelişmiş sözdizimi desteklenir: '+5' her katmanda +5° döndürür; '+5#5' her 5 katmanda +5° döndürür. Detaylar için Viki’ye bakın. Bir şablon ayarlandığında, standart dolgu yönü ayarı yok sayılır. NOT: bazı dolgu desenleri (örn. Gyroid) kendi döndürmesini kontrol eder; dikkatli kullanın" +msgstr "Açı şablonu kullanarak seyrek dolgu yönünü katman bazında döndürün. Virgülle ayrılmış açılar girin (ör. '0,30,60,90'). Açılar katman sırasına göre uygulanır ve liste bittiğinde tekrarlanır. Gelişmiş sözdizimi desteklenir: '+5' her katmanda +5° döndürür; '+5#5' her 5 katmanda bir +5° döndürür. Detaylar için Wiki'ye bakın. Bir şablon ayarlandığında, standart dolgu yönü ayarı göz ardı edilir. Not: Bazı dolgu desenleri (ör. Gyroid) dönmeyi kendisi kontrol eder; dikkatli kullanın." msgid "Solid infill rotation template" msgstr "Katı dolgu döndürme şablonu" @@ -15219,7 +15263,7 @@ msgid "Skeleton infill density" msgstr "İskelet dolgu yoğunluğu" msgid "The remaining part of the model contour after removing a certain depth from the surface is called the skeleton. This parameter is used to adjust the density of this section. When two regions have the same sparse infill settings but different skeleton densities, their skeleton areas will develop overlapping sections. Default is as same as infill density." -msgstr "üzeyden belirli bir derinlik çıkarıldıktan sonra model konturunda kalan kısma 'iskelet' denir. Bu parametre, bu bölümün yoğunluğunu ayarlamak için kullanılır. İki bölge aynı seyrek dolgu ayarlarına sahip fakat farklı iskelet yoğunluklarına sahipse, iskelet alanları üst üste binen bölümler oluşturabilir. Varsayılan değer, dolgu yoğunluğu ile aynıdır." +msgstr "Yüzeyden belirli bir derinlik çıkarıldıktan sonra model hatlarının geriye kalan kısmına iskelet adı verilir. Bu parametre, söz konusu alanın yoğunluğunu ayarlamak için kullanılır. İki bölge aynı seyrek dolgu ayarlarına ancak farklı iskelet yoğunluklarına sahip olduğunda, iskelet alanlarında çakışan kesitler oluşur. Varsayılan değer dolgu yoğunluğu ile aynıdır." msgid "Skin infill density" msgstr "Yüzey dolgu yoğunluğu" @@ -15450,7 +15494,7 @@ msgid "The distance from the boundary between filaments to generate interlocking msgstr "Hücrelerde ölçülen, birbirine kenetlenen yapıyı oluşturmak için filamentler arasındaki sınırdan mesafe. Çok az hücre yapışmanın zayıf olmasına neden olur." msgid "Interlocking boundary avoidance" -msgstr "Birbirine kenetlenen sınırdan kaçınma" +msgstr "Kenetleme sınır mesafesi koruması" msgid "The distance from the outside of a model where interlocking structures will not be generated, measured in cells." msgstr "Birbirine kenetlenen yapıların oluşturulmayacağı bir modelin dışına olan mesafe, hücrelerde ölçülür." @@ -15486,7 +15530,7 @@ msgid "This is the distance between the lines used for ironing." msgstr "Ütü çizgileri arasındaki mesafe." msgid "The distance to keep from the edges. A value of 0 sets this to half of the nozzle diameter." -msgstr "Kenarlardan korunacak mesafe. 0 değeri bunu nozül çapının yarısına ayarlar." +msgstr "Kenarlardan korunacak mesafe. 0 değeri bunu nozul çapının yarısına ayarlar." msgid "This is the print speed for ironing lines." msgstr "Ütüleme çizgilerinin baskı hızı." @@ -15564,7 +15608,7 @@ msgid "Silent Mode" msgstr "Sessiz mod" msgid "Whether the machine supports silent mode in which machine uses lower acceleration to print more quietly" -msgstr "Makinenin yazdırmak için daha düşük hızlanma kullandığı sessiz modu destekleyip desteklemediği." +msgstr "Daha sessiz baskı için ivmelenmeyi düşüren sessiz mod desteği" msgid "Emit limits to G-code" msgstr "G-kod sınırları" @@ -15837,7 +15881,7 @@ msgstr "" "RRF: X ve Y değerleri eşittir." msgid "Hz" -msgstr "Hz." +msgstr "Hz" msgid "Y" msgstr "Y" @@ -15994,7 +16038,7 @@ msgid "Nozzle volume" msgstr "Nozul hacmi" msgid "Volume of nozzle between the filament cutter and the end of the nozzle" -msgstr "Kesici ile nozulun ucu arasındaki nozul hacmi." +msgstr "Filament kesici ile nozul ucu arasındaki nozul hacmi" msgid "Cooling tube position" msgstr "Soğutma borusu konumu" @@ -16173,7 +16217,7 @@ msgid "This expands all raft layers in XY plane." msgstr "XY düzlemindeki tüm rafa katmanlarını genişlet." msgid "First layer density" -msgstr "Başlangıç katman yoğunluğu" +msgstr "İlk katman yoğunluğu" msgid "This is the density of the first raft or support layer." msgstr "İlk sal veya destek katmanının yoğunluğu." @@ -16360,7 +16404,7 @@ msgid "Deretraction speed" msgstr "İleri itme hızı" msgid "Speed for reloading filament into the nozzle. Zero means same speed of retraction." -msgstr "Filamentin nozüle yeniden yüklenme hızı. Sıfır, geri çekilme hızının aynı olduğu anlamına gelir." +msgstr "Filamentin nozule yeniden yüklenme hızı. Sıfır, geri çekilme hızının aynı olduğu anlamına gelir." # AI Translated msgid "Deretraction speed (extruder change)" @@ -16423,16 +16467,16 @@ msgstr "" "Bu miktar milimetre cinsinden veya mevcut ekstruder çapının yüzdesi olarak belirtilebilir. Bu parametrenin varsayılan değeri %10'dur." msgid "Scarf joint seam (beta)" -msgstr "Eğik birleşim dikişi (beta)" +msgstr "Atkı dikişi birleşimi (beta)" msgid "Use scarf joint to minimize seam visibility and increase seam strength." -msgstr "Dikiş görünürlüğünü en aza indirmek ve dikiş mukavemetini arttırmak için eğik birleşimini kullanın." +msgstr "Dikiş izini en aza indirmek ve dikiş mukavemetini artırmak için atkı dikişi kullanın." msgid "Conditional scarf joint" -msgstr "Koşullu eğik birleşimi" +msgstr "Koşullu atkı dikişi" msgid "Apply scarf joints only to smooth perimeters where traditional seams do not conceal the seams at sharp corners effectively." -msgstr "Eğik bağlantılarını yalnızca geleneksel dikişlerin keskin köşelerdeki dikişleri etkili bir şekilde gizleyemediği düzgün kenarlara uygulayın." +msgstr "Atkı dikişini yalnızca, geleneksel dikişlerin keskin köşelerde gizlenemediği düz çevre hatlarına uygular." msgid "Conditional angle threshold" msgstr "Koşullu açı eşiği" @@ -16441,61 +16485,61 @@ msgid "" "This option sets the threshold angle for applying a conditional scarf joint seam.\n" "If the maximum angle within the perimeter loop exceeds this value (indicating the absence of sharp corners), a scarf joint seam will be used. The default value is 155°." msgstr "" -"Bu seçenek, koşullu bir eğik eklem dikişi uygulamak için eşik açısını ayarlar.\n" -"Çevre halkası içindeki maksimum açı bu değeri aşarsa (keskin köşelerin bulunmadığını gösterir), bir eğik birleştirme dikişi kullanılacaktır. Varsayılan değer 155°'dir." +"Bu seçenek, koşullu atkı dikişinin uygulanacağı eşik açısını belirler.\n" +"Çevre döngüsü içindeki maksimum açı bu değeri aşarsa (keskin köşelerin olmadığını gösterir), atkı dikişi kullanılır. Varsayılan değer 155°'dir." msgid "Conditional overhang threshold" msgstr "Koşullu çıkıntı eşiği" #, no-c-format, no-boost-format msgid "This option determines the overhang threshold for the application of scarf joint seams. If the unsupported portion of the perimeter is less than this threshold, scarf joint seams will be applied. The default threshold is set at 40% of the external wall's width. Due to performance considerations, the degree of overhang is estimated." -msgstr "Bu seçenek, eğik bağlantı dikişlerinin uygulanması için sarkma eşiğini belirler. Çevrenin desteklenmeyen kısmı bu eşikten az ise eğik birleştirme dikişleri uygulanacaktır. Varsayılan eşik, dış duvar genişliğinin %40'ına ayarlanmıştır. Performans değerlendirmeleri nedeniyle çıkıntının derecesi tahmin edilir." +msgstr "Bu seçenek, atkı dikişlerinin uygulanacağı çıkıntı eşiğini belirler. Çevrenin desteklenmeyen kısmı bu eşikten azsa, atkı dikişi uygulanır. Varsayılan eşik değeri, dış duvar genişliğinin %40'ı olarak ayarlanmıştır. Performans değerlendirmeleri nedeniyle çıkıntı derecesi tahmini olarak hesaplanır." msgid "Scarf joint speed" -msgstr "Eğik birleşim hızı" +msgstr "Atkı dikişi hızı" msgid "This option sets the printing speed for scarf joints. It is recommended to print scarf joints at a slow speed (less than 100 mm/s). It's also advisable to enable 'Extrusion rate smoothing' if the set speed varies significantly from the speed of the outer or inner walls. If the speed specified here is higher than the speed of the outer or inner walls, the printer will default to the slower of the two speeds. When specified as a percentage (e.g., 80%), the speed is calculated based on the respective outer or inner wall speed. The default value is set to 100%." -msgstr "Bu seçenek, eğik bağlantılarının yazdırma hızını ayarlar. Eğik bağlantılarının yavaş bir hızda (100 mm/s'den az) yazdırılması tavsiye edilir. Ayarlanan hızın dış veya iç duvarların hızından önemli ölçüde farklı olması durumunda 'Ekstrüzyon hızı yumuşatma' seçeneğinin etkinleştirilmesi de tavsiye edilir. Burada belirtilen hız, dış veya iç duvarların hızından daha yüksekse, yazıcı varsayılan olarak iki hızdan daha yavaş olanı seçecektir. Yüzde olarak belirtildiğinde (örn. %80), hız, ilgili dış veya iç duvar hızına göre hesaplanır. Varsayılan değer %100 olarak ayarlanmıştır." +msgstr "Bu seçenek, atkı birleşimlerinin baskı hızını belirler. Atkı birleşimlerinin düşük hızlarda (100 mm/s altında) basılması önerilir. Belirlenen hız, dış veya iç duvar hızından belirgin şekilde farklıysa 'Akış hızı yumuşatma' özelliğinin etkinleştirilmesi tavsiye edilir. Buradaki hız dış veya iç duvar hızından daha yüksekse, yazıcı varsayılan olarak bu iki hızdan yavaş olanı kullanır. Yüzde olarak belirtildiğinde (ör. %80), hız ilgili dış veya iç duvar hızına göre hesaplanır. Varsayılan değer %100 olarak ayarlanmıştır." msgid "Scarf joint flow ratio" -msgstr "Eğik birleşimi akış oranı" +msgstr "Atkı dikişi akış oranı" msgid "This factor affects the amount of material for scarf joints." -msgstr "Bu faktör eğik birleşimlerinde kullanılacak materyal miktarını değiştirir." +msgstr "Bu faktör, atkı dikişleri için kullanılacak malzeme miktarını etkiler." msgid "Scarf start height" -msgstr "Eğik başlangıç yüksekliği" +msgstr "Atkı başlangıç yüksekliği" msgid "" "Start height of the scarf.\n" "This amount can be specified in millimeters or as a percentage of the current layer height. The default value for this parameter is 0." msgstr "" -"Eğik başlangıç yüksekliği.\n" -"Bu miktar milimetre cinsinden veya geçerli katman yüksekliğinin yüzdesi olarak belirtilebilir. Bu parametrenin varsayılan değeri 0'dır." +"Atkı başlangıç yüksekliği.\n" +"Bu değer milimetre cinsinden veya mevcut katman yüksekliğinin yüzdesi olarak belirtilebilir. Varsayılan değer 0'dır." msgid "Scarf around entire wall" -msgstr "Tüm duvarın etrafına atkıla" +msgstr "Tüm duvara atkı uygula" msgid "The scarf extends to the entire length of the wall." -msgstr "Eğik duvarın tüm uzunluğu boyunca uzanır." +msgstr "Atkı birleşimi, duvarın tüm uzunluğu boyunca uzanacak şekilde genişletilir." msgid "Scarf length" -msgstr "Eğik uzunluğu" +msgstr "Atkı dikişi uzunluğu" msgid "Length of the scarf. Setting this parameter to zero effectively disables the scarf." -msgstr "Atkının uzunluğu. Bu parametrenin 0 a ayarlanması atkıyı dolaylı yoldan devre dışı bırakır." +msgstr "Atkı birleşiminin uzunluğudur. Bu parametrenin 0 (sıfır) olarak ayarlanması atkı dikişini devre dışı bırakır." msgid "Scarf steps" -msgstr "Eğik kademesi" +msgstr "Atkı adımları" msgid "Minimum number of segments of each scarf." -msgstr "Her atkının minimum segment sayısı." +msgstr "Her bir atkının minimum segment sayısı." msgid "Scarf joint for inner walls" -msgstr "İç duvarlar için eğik birleşimi" +msgstr "İç duvarlar için atkı dikişi" msgid "Use scarf joint for inner walls as well." -msgstr "İç duvarlar için de eğik birleşimini kullanın." +msgstr "İç duvarlarda da atkı dikişi kullan." msgid "Role base wipe speed" msgstr "Otomatik temizleme hızı" @@ -16543,7 +16587,7 @@ msgid "Skirt height" msgstr "Etek yüksekliği" msgid "Number of skirt layers: usually only one" -msgstr "Etek katman sayısı. Genellikle tek katman." +msgstr "Etek katman sayısı: Genelde tek katman" msgid "Single loop after first layer" msgstr "İlk katmandan sonra tek duvar" @@ -16598,7 +16642,7 @@ msgid "" "Using a non-zero value is useful if the printer is set up to print without a prime line.\n" "Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case." msgstr "" -"Etek yazdırılırken mm cinsinden minimum filaman ekstrüzyon uzunluğu. Sıfır, bu özelliğin devre dışı olduğu anlamına gelir.\n" +"Etek yazdırılırken mm cinsinden minimum filament ekstrüzyon uzunluğu. Sıfır, bu özelliğin devre dışı olduğu anlamına gelir.\n" "\n" "Yazıcı ana hat olmadan yazdırmak üzere ayarlanmışsa sıfır dışında bir değer kullanmak yararlı olur.\n" "Nihai döngü sayısı, nesnelerin mesafesini düzenlerken veya doğrularken dikkate alınmaz. Böyle bir durumda döngü sayısını artırın." @@ -16656,7 +16700,7 @@ msgstr "Maksimum XY yumuşatma" #, no-c-format, no-boost-format msgid "Maximum distance to move points in XY to try to achieve a smooth spiral. If expressed as a %, it will be computed over nozzle diameter." -msgstr "Düzgün bir spiral elde etmek için XY'deki noktaları hareket ettirmek için maksimum mesafe % olarak ifade edilirse nozül çapı üzerinden hesaplanacaktır." +msgstr "Düzgün bir spiral elde etmek için XY'deki noktaları hareket ettirmek için maksimum mesafe % olarak ifade edilirse nozul çapı üzerinden hesaplanacaktır." msgid "Spiral starting flow ratio" msgstr "Spiral başlangıç akış oranı" @@ -16712,7 +16756,7 @@ msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. msgstr "Birden fazla ön ısıtma komutu ekleyin (örn. M104.1). Yalnızca Prusa XL için kullanışlıdır. Diğer yazıcılar için lütfen 1’e ayarlayın." msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G kodu, çıktı dosyasının en üstünde, diğer içeriklerden önce yazılır. Yazıcı ürün yazılımının dosyanın ilk satırlarından okuduğu meta verileri (ör. tahmini yazdırma süresi, filaman kullanımı) eklemek için kullanışlıdır. {print_time_sec} ve {used_filament_length} gibi yer tutucuları destekler." +msgstr "G kodu, çıktı dosyasının en üstünde, diğer içeriklerden önce yazılır. Yazıcı ürün yazılımının dosyanın ilk satırlarından okuduğu meta verileri (ör. tahmini yazdırma süresi, filament kullanımı) eklemek için kullanışlıdır. {print_time_sec} ve {used_filament_length} gibi yer tutucuları destekler." msgid "Start G-code" msgstr "Başlangıç G Kodu" @@ -16721,7 +16765,7 @@ msgid "G-code added when starting a print." msgstr "Baskı başladığında çalışacak G Kodu." msgid "G-code added when the printer starts using this filament" -msgstr "Bu filament ile baskı başladığında çalıştırılacak G-Kod." +msgstr "Bu filament kullanılırken yazıcı başladığında eklenen G-kodu" msgid "Single Extruder Multi Material" msgstr "Tek ekstruder çoklu malzeme" @@ -17066,7 +17110,7 @@ msgid "This setting determines the maximum overhang angle that the branches of t msgstr "Bu ayar, ağaç desteğinin dallarının oluşmasına izin verilen maksimum çıkıntı açısını belirler. Açı artırılırsa, dallar daha yatay olarak basılabilir ve daha uzağa ulaşır." msgid "Preferred Branch Angle" -msgstr "Tercih Edilen Dal Açısı" +msgstr "Tercih edilen dal açısı" #. TRN PrintSettings: "Organic supports" > "Preferred Branch Angle" msgid "The preferred angle of the branches, when they do not have to avoid the model. Use a lower angle to make them more vertical and more stable. Use a higher angle for branches to merge faster." @@ -17079,7 +17123,7 @@ msgid "This setting determines the distance between neighboring tree support nod msgstr "Bu ayar, komşu ağaç destek düğümleri arasındaki mesafeyi belirler." msgid "Branch Density" -msgstr "Dal Yoğunluğu" +msgstr "Dal yoğunluğu" #. TRN PrintSettings: "Organic supports" > "Branch Density" msgid "Adjusts the density of the support structure used to generate the tips of the branches. A higher value results in better overhangs but the supports are harder to remove, thus it is recommended to enable top support interfaces instead of a high branch density value if dense interfaces are needed." @@ -17098,7 +17142,7 @@ msgid "Distance from tree branch to the outermost brim line." msgstr "Ağaç dalından en dış kenar çizgisine kadar olan mesafe." msgid "Tip Diameter" -msgstr "Uç Çapı" +msgstr "Uç çapı" #. TRN PrintSettings: "Organic supports" > "Tip Diameter" msgid "Branch tip diameter for organic supports." @@ -17112,7 +17156,7 @@ msgstr "Bu ayar, destek düğümlerinin başlangıç çapını belirler." #. TRN PrintSettings: #lmFIXME msgid "Branch Diameter Angle" -msgstr "Dal Çapı Açısı" +msgstr "Dal çapı açısı" #. TRN PrintSettings: "Organic supports" > "Branch Diameter Angle" msgid "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the organic support." @@ -17140,13 +17184,13 @@ msgid "Support Ironing Pattern" msgstr "Destek ütüleme deseni" msgid "Support Ironing flow" -msgstr "Destek ütüleme akışı" +msgstr "Destek ütüleme akış oranı" msgid "The amount of material to extrude during ironing. Relative to flow of normal support interface layer height. Too high value results in overextrusion on the surface." msgstr "Ütüleme sırasında ekstrüde edilecek malzeme miktarı. Normal destek arayüzü katman yüksekliğinin akışına göre. Çok yüksek bir değer, yüzeyde aşırı ekstrüzyona neden olur." msgid "Support Ironing line spacing" -msgstr "Destek ütüleme satır aralığı" +msgstr "Destek ütüleme çizgi aralığı" msgid "Activate temperature control" msgstr "Sıcaklık kontrolünü etkinleştirin" @@ -17194,7 +17238,7 @@ msgid "Chamber minimal temperature" msgstr "Minimum bölme sıcaklığı" msgid "Nozzle temperature after the first layer" -msgstr "İlk katmandan sonraki katmanlar için nozul sıcaklığı." +msgstr "İlk katmandan sonraki nozul sıcaklığı" msgid "Detect thin walls" msgstr "İnce duvarı algıla" @@ -17300,7 +17344,7 @@ msgid "" msgstr "" "Geri çekilirken nozulun son yol boyunca ne kadar süre hareket edeceğini açıklayın.\n" "\n" -"Silme işleminin ne kadar sürdüğüne, ekstruder/filament geri çekme ayarlarının ne kadar hızlı ve uzun olduğuna bağlı olarak, kalan filamanı geri çekmek için bir geri çekme hareketine ihtiyaç duyulabilir.\n" +"Silme işleminin ne kadar sürdüğüne, ekstruder/filament geri çekme ayarlarının ne kadar hızlı ve uzun olduğuna bağlı olarak, kalan filamenti geri çekmek için bir geri çekme hareketine ihtiyaç duyulabilir.\n" "\n" "Aşağıdaki silme ayarından önce geri çekme miktarına bir değer ayarlamak, silme işleminden önce aşırı geri çekme işlemini gerçekleştirecektir, aksi takdirde silme işleminden sonra gerçekleştirilecektir." @@ -17311,7 +17355,7 @@ msgid "Internal ribs" msgstr "İç kaburgalar" msgid "Enable internal ribs to increase the stability of the prime tower." -msgstr "Ana kulenin stabilitesini artırmak için iç kaburgaları etkinleştirin." +msgstr "Hazırlık kulesinin (prime tower) stabilitesini ve mukavemetini artırmak için kulenin içerisine dikey kaburga (takviye) duvarları ekler." msgid "Purging volumes" msgstr "Hacimlerin temizlenmesi" @@ -17384,11 +17428,11 @@ msgid "" "\n" "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting." msgstr "" -"Silme kulesinde temizleme yaparken ve silme kulesi seyrek katmanlarını yazdırırken maksimum yazdırma hızı. Temizleme sırasında seyrek dolum hızı veya filamanın maksimum hacimsel hızından hesaplanan hız daha düşükse, bunun yerine en düşük olanı kullanılacaktır.\n" +"Silme kulesinde temizleme yaparken ve silme kulesi seyrek katmanlarını yazdırırken maksimum yazdırma hızı. Temizleme sırasında seyrek dolum hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse, bunun yerine en düşük olanı kullanılacaktır.\n" "\n" -"Seyrek katmanları yazdırırken iç çevre hızı veya filamanın maksimum hacimsel hızından hesaplanan hız daha düşükse bunun yerine en düşük olanı kullanılacaktır.\n" +"Seyrek katmanları yazdırırken iç çevre hızı veya filamentin maksimum hacimsel hızından hesaplanan hız daha düşükse bunun yerine en düşük olanı kullanılacaktır.\n" "\n" -"Bu hızın arttırılması kulenin stabilitesini etkileyebileceği gibi, nozülün silme kulesi üzerinde oluşmuş olabilecek damlacıklarla çarpışma kuvvetini de arttırabilir.\n" +"Bu hızın arttırılması kulenin stabilitesini etkileyebileceği gibi, nozulun silme kulesi üzerinde oluşmuş olabilecek damlacıklarla çarpışma kuvvetini de arttırabilir.\n" "\n" "Bu parametreyi varsayılan 90 mm/sn’nin üzerine çıkarmadan önce, yazıcınızın artan hızlarda güvenilir şekilde köprü kurabildiğinden ve takım değişimi iyi kontrol edildiğinde sızıntı yaptığından emin olun.\n" "\n" @@ -17415,16 +17459,16 @@ msgid "Rib" msgstr "Kaburga" msgid "Extra rib length" -msgstr "Ekstra rib uzunluğu" +msgstr "Ek kaburga uzunluğu" msgid "Positive values can increase the size of the rib wall, while negative values can reduce the size. However, the size of the rib wall can not be smaller than that determined by the cleaning volume." -msgstr "Pozitif değerler rib duvarının boyutunu artırabilirken, negatif değerler boyutunu azaltabilir. Ancak rib duvarının boyutu temizleme hacmi tarafından belirlenen boyuttan daha küçük olamaz." +msgstr "Ek kaburga (takviye) duvarının boyutunu ayarlar. Pozitif değerler kaburga duvarını büyütürken, negatif değerler küçültür. Ancak kaburga boyutu, temizleme hacmi (cleaning volume) ile belirlenen minimum sınırın altına inemez." msgid "Rib width" -msgstr "Rib genişliği" +msgstr "Kaburga genişliği" msgid "Rib width is always less than half the prime tower side length." -msgstr "Diş genişliği her zaman ana kule yan uzunluğunun yarısından azdır." +msgstr "Kaburga genişliği, her zaman hazırlık kulesinin (prime tower) kenar uzunluğunun yarısından az olmalıdır." msgid "Fillet wall" msgstr "Kavisli duvar" @@ -17478,7 +17522,7 @@ msgid "Maximal bridging distance" msgstr "Maksimum köprüleme mesafesi" msgid "Maximal distance between supports on sparse infill sections." -msgstr "Bu nesne, filamentten tasarruf etmek ve baskı süresini azaltmak için bir filament değişiminden sonra nozulu temizlemek için kullanılacaktır. Sonuç olarak nesnelerin renkleri karıştırılacaktır. Prime tower etkinleştirilmediği sürece etkili olmayacaktır." +msgstr "Seyrek dolgu bölümlerindeki destekler arası maksimum mesafe." msgid "Wipe tower purge lines spacing" msgstr "Silme kulesi temizleme hatları aralığı" @@ -17720,7 +17764,7 @@ msgid "Temperature delta applied during pre-heating before tool change." msgstr "Takım değişiminden önce ön ısıtma sırasında uygulanan sıcaklık farkı." msgid "Detect narrow internal solid infills" -msgstr "Dar iç katı dolguyu tespit et" +msgstr "Dar iç dolguları tespit et" msgid "This option will auto-detect narrow internal solid infill areas. If enabled, the concentric pattern will be used for the area to speed up printing. Otherwise, the rectilinear pattern will be used by default." msgstr "Bu seçenek dar dahili katı dolgu alanını otomatik olarak algılayacaktır. Etkinleştirilirse, yazdırmayı hızlandırmak amacıyla alanda eşmerkezli desen kullanılacaktır. Aksi takdirde varsayılan olarak doğrusal desen kullanılır." @@ -17751,7 +17795,7 @@ msgid "Export slicing data" msgstr "Dilimleme verilerini dışa aktar" msgid "Export slicing data to a folder" -msgstr "Dilimleme verilerini bir klasöre aktarın." +msgstr "Dilimleme verilerini bir klasöre dışa aktar" msgid "Load slicing data" msgstr "Dilimleme verilerini yükle" @@ -17799,13 +17843,13 @@ msgid "mtcpp" msgstr "mtcpp" msgid "max triangle count per plate for slicing" -msgstr "dilimleme için plaka başına maksimum üçgen sayısı." +msgstr "dilimleme için tabla başına maksimum üçgen sayısı" msgid "mstpp" msgstr "mstpp" msgid "max slicing time per plate in seconds" -msgstr "saniye cinsinden plaka başına maksimum dilimleme süresi." +msgstr "tabla başına saniye cinsinden maksimum dilimleme süresi" msgid "No check" msgstr "Kontrol yok" @@ -17916,7 +17960,7 @@ msgid "Load uptodate process/machine settings when using uptodate" msgstr "Güncel olan bir baskı süreci (process) veya makine (printer) profili seçildiğinde, ona ait en güncel ayarları otomatik olarak yükle" msgid "load up-to-date process/machine settings from the specified file when using up-to-date" -msgstr "Güncellemeyi kullanırken belirtilen dosyadan güncel işlem/yazıcı ayarlarını yükle." +msgstr "güncel durumdayken belirtilen dosyadan güncel proses/makine ayarlarını yükle" msgid "Load uptodate filament settings when using uptodate" msgstr "Güncel olan bir filament profili kullanırken, onun en güncel ayarlarını yükle" @@ -18024,13 +18068,13 @@ msgid "MakerLab version to generate this 3MF." msgstr "Bu 3mf’yi oluşturmak için MakerLab sürümü." msgid "Metadata name list" -msgstr "meta veri adı listesi" +msgstr "Meta veri adı listesi" msgid "Metadata name list added into 3MF." msgstr "3mf’ye meta veri adı listesi eklendi." msgid "Metadata value list" -msgstr "meta veri değer listesi" +msgstr "Meta veri değeri listesi" msgid "Metadata value list added into 3MF." msgstr "3mf’ye meta veri değeri listesi eklendi." @@ -18087,7 +18131,7 @@ msgid "Initial extruder" msgstr "İlk ekstruder" msgid "Zero-based index of the first extruder used in the print. Same as initial_tool." -msgstr "Baskıda kullanılan ilk ekstruderin sıfır bazlı indeksi. başlangıç_aracı ile aynı." +msgstr "Baskıda kullanılan ilk ekstruderin sıfır bazlı indeksi. initial_tool ile aynı." msgid "Initial tool" msgstr "Başlangıç aracı" @@ -18135,13 +18179,13 @@ msgid "Weight per extruder" msgstr "Ekstruder başına ağırlık" msgid "Weight per extruder extruded during the entire print. Calculated from filament_density value in Filament Settings." -msgstr "Baskının tamamı boyunca ekstrüzyon yapılan ekstruder başına ağırlık. Filament Ayarlarındaki filaman yoğunluğu değerinden hesaplanır." +msgstr "Baskının tamamı boyunca ekstrüzyon yapılan ekstruder başına ağırlık. Filament Ayarlarındaki filament yoğunluğu değerinden hesaplanır." msgid "Total weight" msgstr "Toplam ağırlık" msgid "Total weight of the print. Calculated from filament_density value in Filament Settings." -msgstr "Baskının toplam ağırlığı. Filament Ayarlarındaki filaman yoğunluğu değerinden hesaplanır." +msgstr "Baskının toplam ağırlığı. Filament Ayarlarındaki filament yoğunluğu değerinden hesaplanır." msgid "Total layer count" msgstr "Toplam katman sayısı" @@ -18177,7 +18221,7 @@ msgid "Wipe tower volume" msgstr "Kule hacmini sil" msgid "Total filament volume extruded on the wipe tower." -msgstr "Silme kulesinde ekstrüzyona tabi tutulan toplam filaman hacmi." +msgstr "Silme kulesinde ekstrüzyona tabi tutulan toplam filament hacmi." msgid "Used filament" msgstr "Kullanılan" @@ -18195,7 +18239,7 @@ msgid "Filament length (meters)" msgstr "Filament uzunluğu (metre)" msgid "Total filament length used in meters. Replaced with actual value during post-processing." -msgstr "Metre cinsinden kullanılan toplam filaman uzunluğu. Son işlem sırasında gerçek değerle değiştirilir." +msgstr "Metre cinsinden kullanılan toplam filament uzunluğu. Son işlem sırasında gerçek değerle değiştirilir." msgid "Number of objects" msgstr "Nesne sayısı" @@ -18390,7 +18434,7 @@ msgid "Meshing of a model file failed or no valid shape." msgstr "Bir model dosyasının meshlenmesi başarısız oldu veya geçerli bir şekil yok." msgid "The supplied file couldn't be read because it's empty." -msgstr "Sağlanan dosya boş olduğundan okunamadı" +msgstr "Seçilen dosya boş olduğundan okunamıyor." msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Bilinmeyen dosya formatı. Giriş dosyası .stl, .obj, .amf(.xml) uzantılı olmalıdır." @@ -18537,7 +18581,7 @@ msgid "" "Within the same extruder, the name(%s) must be unique when the filament type, nozzle diameter, and nozzle flow are the same.\n" "Are you sure you want to override the historical result?" msgstr "" -"Aynı ekstruder içinde filament tipi, nozül çapı ve nozül akışı aynı olduğunda adın(%s) benzersiz olması gerekir.\n" +"Aynı ekstruder içinde filament tipi, nozul çapı ve nozul akışı aynı olduğunda adın(%s) benzersiz olması gerekir.\n" "Geçmiş sonucu geçersiz kılmak istediğinizden emin misiniz?" #, c-format, boost-format @@ -18763,7 +18807,7 @@ msgid "Nozzle Flow" msgstr "Nozul Akışı" msgid "Filament position" -msgstr "filament konumu" +msgstr "Filament konumu" msgid "Filament For Calibration" msgstr "Kalibrasyon İçin Filament" @@ -18798,7 +18842,7 @@ msgid "Sync AMS and nozzle information" msgstr "AMS ve püskürtme ucu bilgilerini senkronize edin" msgid "Calibration only supports cases where the left and right nozzle diameters are identical." -msgstr "Kalibrasyon yalnızca sol ve sağ meme çaplarının aynı olduğu durumları destekler." +msgstr "Kalibrasyon yalnızca sol ve sağ nozul çaplarının aynı olduğu durumları destekler." msgid "From k Value" msgstr "K değerinden" @@ -18853,7 +18897,7 @@ msgstr "Akış Dinamiği Kalibrasyonunu Düzenle" #, c-format, boost-format msgid "Within the same extruder, the name '%s' must be unique when the filament type, nozzle diameter, and nozzle flow are identical. Please choose a different name." -msgstr "Aynı ekstruder içinde, filaman tipi, nozül çapı ve nozül akışı aynı olduğunda '%s' adı benzersiz olmalıdır. Lütfen farklı bir ad seçin." +msgstr "Aynı ekstruder içinde, filament tipi, bozul çapı ve nozul akışı aynı olduğunda '%s' adı benzersiz olmalıdır. Lütfen farklı bir ad seçin." msgid "New Flow Dynamic Calibration" msgstr "Yeni Akış Dinamik Kalibrasyonu" @@ -18865,7 +18909,7 @@ msgid "The extruder must be selected." msgstr "Ekstruder seçilmelidir." msgid "The nozzle must be selected." -msgstr "Meme seçilmelidir." +msgstr "Nozul seçilmelidir." msgid "Network lookup" msgstr "Ağ araması" @@ -18899,6 +18943,20 @@ msgstr "" "%1% ana bilgisayar adına çözümlenen birkaç IP adresi var.\n" "Hangisinin kullanılacağını seçin." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Nozul için otomatik ölçekleme" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Bu model, 0,4 mm nozul ve 0,2 mm katman yüksekliği esas alınarak tasarlanmıştır. \n" +"Ölçekleme seçeneği etkinleştirildiğinde (önerilir), model mevcut nozul çapınıza ve uygun bir katman yüksekliğine uyacak şekilde dinamik olarak yeniden boyutlandırılır; böylece test hem doğru hem de kolay okunur olur.\n" +"Ölçeklemeyi yalnızca referans modeli olduğu gibi yazdırmak istiyorsanız kapatın." + msgid "PA Calibration" msgstr "PA Kalibrasyonu" @@ -19036,6 +19094,14 @@ msgstr "Başlangıç hızı: " msgid "End speed: " msgstr "Bitiş hızı: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Maksimum hacimsel hıza otomatik ayarlama" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Bitiş hızı filamentin maksimum hacimsel hızını aşacak olursa, bu hıza ulaşabilmek için katman yüksekliği otomatik olarak düşürülür (standart değerler korunarak ve makinenin sınırları içinde kalınarak). Minimum katman yüksekliği bile yeterli değilse, bunun yerine bitiş hızı düşürülür." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19047,6 +19113,57 @@ msgstr "" "adım >= 0\n" "bitiş > başlangıç + adım)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Bitiş hızı (%.0f mm/s), filamentin maksimum hacimsel hızını (%.1f mm³/s) aşıyor; bu da dış duvarı bu çizgi genişliği ve katman yüksekliğinde yaklaşık %.0f mm/s ile sınırlıyor.\n" +" Bunun üzerindeki hızlar sınırlanacağından, kulenin üst blokları istenen hızda yazdırılmayacak.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Bitiş hızı (%.0f mm/s), filamentin maksimum hacimsel hızını (%.1f mm³/s) varsayılan katman yüksekliğinde (%.2f mm) aşıyor.\n" +"\n" +"Kulenin istenen hıza ulaşabilmesi için katman yüksekliği %.2f mm değerine düşürüldü (bu yazıcının ön ayarlarında kullanılan bir değer)." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Bu yazıcının ön ayarlarında kullanılan en küçük katman yüksekliğinde bile (%.2f mm), bitiş hızı (%.0f mm/s) filamentin maksimum hacimsel hızını (%.1f mm³/s) aşıyor.\n" +"\n" +"Katman yüksekliği %.2f mm olarak ayarlanacak ve bitiş hızı %.0f mm/s değerine düşürülecek.\n" +"\n" +"Devam edilsin mi?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Yine de devam edilsin mi?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Bunu otomatik olarak düzeltmek için \"Otomatik ayarlama\" seçeneğini etkinleştirin ya da yine de devam edilsin mi?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Bunu otomatik olarak düzeltmek için \"Nozul için otomatik ölçekleme\" ve \"Otomatik ayarlama\" seçeneklerini etkinleştirin ya da yine de devam edilsin mi?" + msgid "Start retraction length: " msgstr "Geri çekme uzunluğu başlangıcı: " @@ -19087,7 +19204,7 @@ msgstr "" "Desteklenen şekillendirici türleri için ürün yazılımı belgelerinize bakın." msgid "Frequency (Start / End): " -msgstr "Frekans (Başlangıç ​​/ Bitiş):" +msgstr "Frekans (Başlangıç / Bitiş): " msgid "Start / End" msgstr "Başlangıç / Bitiş" @@ -19126,7 +19243,7 @@ msgid "Check firmware compatibility." msgstr "Firmware uyumluluğunu kontrol edin." msgid "Frequency: " -msgstr "Sıklık:" +msgstr "Frekans: " # AI Translated msgid "Damp" @@ -19155,10 +19272,10 @@ msgid "SCV-V2" msgstr "SCV-V2" msgid "Start: " -msgstr "Başlangıç:" +msgstr "Başlat: " msgid "End: " -msgstr "Son:" +msgstr "Son: " msgid "Cornering settings" msgstr "Viraj alma ayarları" @@ -19400,7 +19517,7 @@ msgid "Subtract with" msgstr "Şununla çıkar" msgid "selected" -msgstr "Seçili" +msgstr "seçildi" msgid "Part 1" msgstr "Bölüm 1" @@ -19588,7 +19705,7 @@ msgid "Input Custom Nozzle Diameter" msgstr "Özel Nozul Çapını Girin" msgid "Can't find my nozzle diameter" -msgstr "Meme çapımı bulamıyorum" +msgstr "Nozul çapımı bulamıyorum" msgid "Printable Space" msgstr "Yazdırılabilir Alan" @@ -19644,7 +19761,7 @@ msgid "" "\tCancel: Do not create a preset; return to the creation interface." msgstr "" "Oluşturduğunuz yazıcı ön ayarının zaten aynı ada sahip bir ön ayarı var. Üzerine yazmak istiyor musunuz?\n" -"\tEvet: Aynı adı taşıyan yazıcı ön ayarının üzerine yazın; aynı ön ayar adı taşıyan filaman ve proses ön ayarları yeniden oluşturulacak ve aynı ön ayar \n" +"\tEvet: Aynı adı taşıyan yazıcı ön ayarının üzerine yazın; aynı ön ayar adı taşıyan filament ve proses ön ayarları yeniden oluşturulacak ve aynı ön ayar \n" "adı olmayan filament ve işlem ön ayarları rezerve edilecektir.\n" "\tİptal: Ön ayar oluşturmayın, oluşturma arayüzüne dönün." @@ -19682,7 +19799,7 @@ msgid "You have not yet selected the printer to replace the nozzle for; please c msgstr "Hala nozulu değiştirmek için yazıcı seçmediniz, lütfen bir seçim yapın." msgid "The entered nozzle diameter is invalid, please re-enter:\n" -msgstr "Girilen meme çapı geçersiz, lütfen tekrar girin:\n" +msgstr "Girilen nozul çapı geçersiz, lütfen tekrar girin:\n" msgid "" "The system preset does not allow creation. \n" @@ -19772,10 +19889,10 @@ msgid "add bundle structure file fail" msgstr "paket yapısı dosyası ekle başarısız" msgid "finalize fail" -msgstr "Tamamlama başarısız" +msgstr "tamamlama başarısız oldu" msgid "open zip written fail" -msgstr "ZIP dosyasını açma başarısız" +msgstr "zip dosyası açılamadı" msgid "Export successful" msgstr "Dışa aktarma başarılı" @@ -19876,7 +19993,7 @@ msgid "" "All the filament presets belong to this filament would be deleted.\n" "If you are using this filament on your printer, please reset the filament information for that slot." msgstr "" -"Bu filamente ait tüm filaman ön ayarları silinecektir.\n" +"Bu filamente ait tüm filament ön ayarları silinecektir.\n" "Yazıcınızda bu filamenti kullanıyorsanız lütfen o yuvanın filament bilgisini sıfırlayın." msgid "Delete filament" @@ -19941,14 +20058,14 @@ msgstr "Yazıcı ekstrüderlerinin sayısı ve kalibrasyon için seçilen yazıc #, c-format, boost-format msgid "The nozzle diameter of %s extruder is 0.2mm which does not support automatic Flow Dynamics calibration." -msgstr "%s ekstruderin meme çapı 0,2 mm'dir ve bu, otomatik Akış Dinamiği kalibrasyonunu desteklemez." +msgstr "%s ekstruderin nozul çapı 0,2 mm'dir ve bu, otomatik Akış Dinamiği kalibrasyonunu desteklemez." #, c-format, boost-format msgid "" "The currently selected nozzle diameter of %s extruder does not match the actual nozzle diameter.\n" "Please click the Sync button above and restart the calibration." msgstr "" -"%s ekstruderin şu anda seçili olan meme çapı, gerçek meme çapıyla eşleşmiyor.\n" +"%s ekstruderin şu anda seçili olan nozul çapı, gerçek nozul çapıyla eşleşmiyor.\n" "Lütfen yukarıdaki Senkronizasyon düğmesine tıklayın ve kalibrasyonu yeniden başlatın." msgid "" @@ -20390,7 +20507,7 @@ msgid "It has a small layer height. This results in almost negligible layer line msgstr "Küçük bir katman yüksekliğine sahiptir ve neredeyse ihmal edilebilir katman çizgileri ve yüksek baskı kalitesi sağlar. Çoğu genel yazdırma durumu için uygundur." msgid "Compared with the default profile of a 0.2 mm nozzle, it has lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in much higher print quality but a much longer print time." -msgstr "0,2 mm’lik nozülün varsayılan profiliyle karşılaştırıldığında daha düşük hız ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece çok daha yüksek baskı kalitesi elde edilir, ancak çok daha uzun baskı süresi elde edilir." +msgstr "0,2 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında daha düşük hız ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece çok daha yüksek baskı kalitesi elde edilir, ancak çok daha uzun baskı süresi elde edilir." msgid "Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer height. This results in almost negligible layer lines and slightly shorter print time." msgstr "0,2 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, biraz daha büyük katman yüksekliğine sahiptir ve neredeyse ihmal edilebilir düzeyde katman çizgileri ve biraz daha kısa yazdırma süresi sağlar." @@ -20414,7 +20531,7 @@ msgid "It has a normal layer height. This results in average layer lines and pri msgstr "Genel bir katman yüksekliğine sahiptir ve genel katman çizgileri ve baskı kalitesiyle sonuçlanır. Çoğu genel yazdırma durumu için uygundur." msgid "Compared with the default profile of a 0.4 mm nozzle, it has more wall loops and a higher sparse infill density. This results in higher print strength but more filament consumption and longer print time." -msgstr "0,4 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında, daha fazla duvar döngüsüne ve daha yüksek seyrek dolgu yoğunluğuna sahiptir. Bu, baskıların daha güçlü olmasına, ancak daha fazla filaman tüketimine ve daha uzun baskı süresine neden olur." +msgstr "0,4 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında, daha fazla duvar döngüsüne ve daha yüksek seyrek dolgu yoğunluğuna sahiptir. Bu, baskıların daha güçlü olmasına, ancak daha fazla filament tüketimine ve daha uzun baskı süresine neden olur." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer height. This results in more apparent layer lines and lower print quality, but slightly shorter print time." msgstr "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha büyük bir katman yüksekliğine sahiptir ve daha belirgin katman çizgileri ve daha düşük baskı kalitesi sağlar, ancak biraz daha kısa yazdırma süresi sağlar." @@ -20426,13 +20543,13 @@ msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller la msgstr "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha küçük bir katman yüksekliğine sahiptir ve daha az görünür katman çizgileri ve daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in less apparent layer lines and much higher print quality but much longer print time." -msgstr "0,4 mm’lik nozülün varsayılan profiliyle karşılaştırıldığında daha küçük katman yüksekliğine, daha düşük hızlara ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece daha az belirgin katman çizgileri ve çok daha yüksek baskı kalitesi elde edilir, ancak çok daha uzun yazdırma süresi elde edilir." +msgstr "0,4 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında daha küçük katman yüksekliğine, daha düşük hızlara ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece daha az belirgin katman çizgileri ve çok daha yüksek baskı kalitesi elde edilir, ancak çok daha uzun yazdırma süresi elde edilir." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height. This results in almost negligible layer lines and higher print quality but longer print time." msgstr "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, katman yüksekliği daha küçüktür ve neredeyse göz ardı edilebilir katman çizgileri ve daha yüksek baskı kalitesi sağlar, ancak daha uzun yazdırma süresi sağlar." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height, lower speeds and acceleration, and the sparse infill pattern is Gyroid. This results in almost negligible layer lines and much higher print quality but much longer print time." -msgstr "0,4 mm’lik nozülün varsayılan profiliyle karşılaştırıldığında daha küçük katman yüksekliğine, daha düşük hızlara ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece, neredeyse göz ardı edilebilecek düzeyde katman çizgileri ve çok daha yüksek baskı kalitesi elde edilirken, çok daha uzun baskı süresi elde edilir." +msgstr "0,4 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında daha küçük katman yüksekliğine, daha düşük hızlara ve ivmeye sahiptir ve seyrek dolgu deseni Gyroid’dir. Böylece, neredeyse göz ardı edilebilecek düzeyde katman çizgileri ve çok daha yüksek baskı kalitesi elde edilirken, çok daha uzun baskı süresi elde edilir." msgid "Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer height. This results in almost negligible layer lines and longer print time." msgstr "0,4 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, katman yüksekliği daha küçüktür ve neredeyse göz ardı edilebilecek düzeyde katman çizgileri ve daha uzun yazdırma süresi sağlar." @@ -20441,7 +20558,7 @@ msgid "It has a big layer height. This results in apparent layer lines and ordin msgstr "Büyük bir katman yüksekliğine sahiptir ve belirgin katman çizgileri ile sıradan baskı kalitesi ve baskı süresi sağlar." msgid "Compared with the default profile of a 0.6 mm nozzle, it has more wall loops and a higher sparse infill density. This results in higher print strength but more filament consumption and longer print time." -msgstr "0,6 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında, daha fazla duvar döngüsüne ve daha yüksek seyrek dolgu yoğunluğuna sahiptir. Bu, baskıların daha güçlü olmasına, ancak daha fazla filaman tüketimine ve daha uzun baskı süresine neden olur." +msgstr "0,6 mm’lik nozulun varsayılan profiliyle karşılaştırıldığında, daha fazla duvar döngüsüne ve daha yüksek seyrek dolgu yoğunluğuna sahiptir. Bu, baskıların daha güçlü olmasına, ancak daha fazla filament tüketimine ve daha uzun baskı süresine neden olur." msgid "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height. This results in more apparent layer lines and lower print quality, but shorter print time in some cases." msgstr "0,6 mm’lik püskürtme ucunun varsayılan profiliyle karşılaştırıldığında, daha büyük bir katman yüksekliğine sahiptir ve daha belirgin katman çizgileri ve daha düşük baskı kalitesi sağlar, ancak bazı yazdırma durumlarında daha kısa yazdırma süresi sağlar." @@ -20474,16 +20591,16 @@ msgid "This is neither a commonly used filament, nor one of Bambu filaments, and msgstr "Bu ne yaygın olarak kullanılan bir filament ne de Bambu filamentlerinden biri ve markadan markaya çok değişiyor. Bu nedenle, yazdırmadan önce satıcınızdan uygun profili sormanız ve bazı parametreleri performansına göre ayarlamanız önemle tavsiye edilir." msgid "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials." -msgstr "Bu filamanı yazdırırken eğrilme ve düşük katman yapışma mukavemeti riski vardır. Daha iyi sonuçlar almak için lütfen şu wiki'ye bakın: Yüksek Sıcaklık / Mühendislik malzemeleri için Yazdırma İpuçları." +msgstr "Bu filamenti yazdırırken eğrilme ve düşük katman yapışma mukavemeti riski vardır. Daha iyi sonuçlar almak için lütfen şu wiki'ye bakın: Yüksek Sıcaklık / Mühendislik malzemeleri için Yazdırma İpuçları." msgid "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials." -msgstr "Bu filamanı yazdırırken nozulun tıkanması, sızması, eğrilmesi ve düşük katman yapışma mukavemeti riski vardır. Daha iyi sonuçlar almak için lütfen şu wiki'ye bakın: Yüksek Sıcaklık / Mühendislik malzemeleri için Yazdırma İpuçları." +msgstr "Bu filamenti yazdırırken nozulun tıkanması, sızması, eğrilmesi ve düşük katman yapışma mukavemeti riski vardır. Daha iyi sonuçlar almak için lütfen şu wiki'ye bakın: Yüksek Sıcaklık / Mühendislik malzemeleri için Yazdırma İpuçları." msgid "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG." msgstr "İlgili filamentle daha iyi şeffaf veya yarı şeffaf sonuçlar elde etmek için lütfen şu wiki'ye bakın: Şeffaf PETG için yazdırma ipuçları." msgid "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing." -msgstr "Baskıların daha parlak olmasını sağlamak için lütfen kullanmadan önce filamanı kurutun ve dilimleme sırasında dış duvar hızını 40 ila 60 mm/s olarak ayarlayın." +msgstr "Baskıların daha parlak olmasını sağlamak için lütfen kullanmadan önce filamenti kurutun ve dilimleme sırasında dış duvar hızını 40 ila 60 mm/s olarak ayarlayın." msgid "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero)." msgstr "Bu filament genellikle yalnızca düşük yoğunluklu modelleri basmak için kullanılır ve bazı özel parametreler gereklidir. Daha iyi baskı kalitesi elde etmek için lütfen bu wiki'ye bakın: RC modelini köpüklü PLA (PLA Aero) ile yazdırma talimatları." @@ -20492,7 +20609,7 @@ msgid "This filament is only used to print models with a low density usually, an msgstr "Bu filament genellikle yalnızca düşük yoğunluklu modelleri basmak için kullanılır ve bazı özel parametreler gereklidir. Daha iyi baskı kalitesi elde etmek için lütfen şu wiki'ye bakın: ASA Aero Printing Guide." msgid "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide." -msgstr "Bu filaman çok yumuşak ve AMS ile uyumlu değil. Yazdırmanın birçok gereksinimi vardır ve daha iyi yazdırma kalitesi elde etmek için lütfen şu wiki'ye bakın: TPU yazdırma kılavuzu." +msgstr "Bu filament çok yumuşak ve AMS ile uyumlu değil. Yazdırmanın birçok gereksinimi vardır ve daha iyi yazdırma kalitesi elde etmek için lütfen şu wiki'ye bakın: TPU yazdırma kılavuzu." msgid "This filament has high enough hardness (about 67D) and is compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide." msgstr "Bu filament yeterince yüksek sertliğe sahiptir (yaklaşık 67D) ve AMS ile uyumludur. Yazdırmanın birçok gereksinimi vardır ve daha iyi yazdırma kalitesi elde etmek için lütfen şu wiki'ye bakın: TPU yazdırma kılavuzu." @@ -20501,7 +20618,7 @@ msgid "If you are to print a kind of soft TPU, please don't slice with this prof msgstr "Bir tür yumuşak TPU yazdıracaksanız lütfen bu profille kesmeyin; bu yalnızca yeterince yüksek sertliğe sahip (55D'den az olmayan) ve AMS ile uyumlu TPU içindir. Daha iyi baskı kalitesi elde etmek için lütfen şu wiki'ye bakın: TPU yazdırma kılavuzu." msgid "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide." -msgstr "Bu suda çözünebilen bir destek filamentidir ve genellikle model gövdesi için değil yalnızca destek yapısı içindir. Bu filamanı yazdırmak birçok gereksinimi gerektirir ve daha iyi baskı kalitesi elde etmek için lütfen şu wiki'ye bakın: PVA Yazdırma Kılavuzu." +msgstr "Bu suda çözünebilen bir destek filamentidir ve genellikle model gövdesi için değil yalnızca destek yapısı içindir. Bu filamenti yazdırmak birçok gereksinimi gerektirir ve daha iyi baskı kalitesi elde etmek için lütfen şu wiki'ye bakın: PVA Yazdırma Kılavuzu." msgid "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function." msgstr "Bu suda çözünmeyen bir destek filamentidir ve genellikle model gövdesi için değil yalnızca destek yapısı içindir. Daha iyi baskı kalitesi elde etmek için lütfen şu wiki'ye bakın: Destek Filamenti ve Destek Fonksiyonu için Yazdırma İpuçları." @@ -20537,7 +20654,7 @@ msgid "High quality profile for 0.8mm nozzle, prioritizing print quality." msgstr "0,8 mm püskürtme ucu için baskı kalitesini ön planda tutan yüksek kaliteli profil." msgid "Strength profile for 0.8mm nozzle, prioritizing strength." -msgstr "0,8 mm'lik nozül için güç profili, dayanıklılığa öncelik verilir." +msgstr "0,8 mm'lik nozul için güç profili, dayanıklılığa öncelik verilir." msgid "Standard profile for 0.8mm nozzle, prioritizing speed." msgstr "Hıza öncelik veren 0,8 mm nozul için standart profil." @@ -20697,13 +20814,13 @@ msgid "Custom Mode" msgstr "Özel Mod" msgid "Generates filament grouping for the left and right nozzles based on the most filament-saving principles to minimize waste." -msgstr "Atıkları en aza indirmek için en fazla filaman tasarrufu sağlayan ilkelere dayalı olarak sol ve sağ püskürtme uçları için filaman gruplandırması oluşturur." +msgstr "Atıkları en aza indirmek için en fazla filament tasarrufu sağlayan ilkelere dayalı olarak sol ve sağ püskürtme uçları için filament gruplandırması oluşturur." msgid "Generates filament grouping for the left and right nozzles based on the printer's actual filament status, reducing the need for manual filament adjustment." -msgstr "Yazıcının gerçek filaman durumuna göre sol ve sağ püskürtme uçları için filaman gruplandırması oluşturarak manuel filaman ayarlaması ihtiyacını azaltır." +msgstr "Yazıcının gerçek filament durumuna göre sol ve sağ püskürtme uçları için filament gruplandırması oluşturarak manuel filament ayarlaması ihtiyacını azaltır." msgid "Manually assign filament to the left or right nozzle" -msgstr "Filamenti manuel olarak sol veya sağ memeye atayın" +msgstr "Filamenti manuel olarak sol veya sağ nozule atayın" msgid "Global settings" msgstr "Genel ayarlar" @@ -20738,7 +20855,7 @@ msgid "Set the physical nozzle count..." msgstr "Fiziksel nozul sayısını ayarlayın..." msgid "The filament grouping method for current plate is determined by the dropdown option at the slicing plate button." -msgstr "Geçerli plaka için filaman gruplandırma yöntemi, dilimleme plakası düğmesindeki açılır seçenekle belirlenir." +msgstr "Geçerli plaka için filament gruplandırma yöntemi, dilimleme plakası düğmesindeki açılır seçenekle belirlenir." msgid "Connected to Obico successfully!" msgstr "Obico'ya başarıyla bağlanıldı!" @@ -21435,10 +21552,10 @@ msgid "The filament model is unknown. Generic filament presets will be used." msgstr "Filament modeli bilinmiyor. Genel filament ön ayarları kullanılacaktır." msgid "The filament may not be compatible with the current machine settings. A random filament preset will be used." -msgstr "Filament mevcut makine ayarlarıyla uyumlu olmayabilir. Rastgele bir filaman ön ayarı kullanılacaktır." +msgstr "Filament mevcut makine ayarlarıyla uyumlu olmayabilir. Rastgele bir filament ön ayarı kullanılacaktır." msgid "The filament model is unknown. A random filament preset will be used." -msgstr "Filament modeli bilinmiyor. Rastgele bir filaman ön ayarı kullanılacaktır." +msgstr "Filament modeli bilinmiyor. Rastgele bir filament ön ayarı kullanılacaktır." #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -21651,8 +21768,7 @@ msgstr "" "Baskılarınızı plakalara ayırın\n" "Çok sayıda parçası olan bir modeli baskıya hazır ayrı kalıplara bölebileceğinizi biliyor muydunuz? Bu, tüm parçaları takip etme sürecini basitleştirecektir." -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer -#: Height] +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] msgid "" "Speed up your print with Adaptive Layer Height\n" "Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!" @@ -21725,8 +21841,7 @@ msgstr "" "Gücü artırın\n" "Modelin gücünü artırmak için daha fazla duvar halkası ve daha yüksek seyrek dolgu yoğunluğu kullanabileceğinizi biliyor muydunuz?" -#: resources/data/hints.ini: [hint:When do you need to print with the printer -#: door opened] +#: resources/data/hints.ini: [hint:When do you need to print with the printer door opened] msgid "" "When do you need to print with the printer door opened?\n" "Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki." @@ -21742,6 +21857,9 @@ msgstr "" "Eğilmeyi önleyin\n" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" +#~ msgid "Print order within a single layer." +#~ msgstr "Tek bir katmanda yazdırma sırası." + #~ msgid "Bottom" #~ msgstr "Alt" @@ -21785,10 +21903,10 @@ msgstr "" #~ msgstr "Daha Sonra Yeniden Başlat" #~ msgid "Select filament that installed to the left nozzle" -#~ msgstr "Sol nozüle takılan filamanı seçin" +#~ msgstr "Sol nozule takılan filamenti seçin" #~ msgid "Select filament that installed to the right nozzle" -#~ msgstr "Sağ nozüle takılan filamanı seçin" +#~ msgstr "Sağ nozule takılan filamenti seçin" #, c-format, boost-format #~ msgid "Note: the filament type(%s) does not match with the filament type(%s) in the slicing file. If you want to use this slot, you can install %s instead of %s and change slot information on the 'Device' page." @@ -21799,7 +21917,7 @@ msgstr "" #~ msgstr "Not: yuva boş veya tanımsız. Bu yuvayı kullanmak istiyorsanız 'Cihaz' sayfasından %s yükleyebilir ve yuva bilgilerini değiştirebilirsiniz." #~ msgid "Note: Only filament-loaded slots can be selected." -#~ msgstr "Not: Yalnızca filaman yüklü yuvalar seçilebilir." +#~ msgstr "Not: Yalnızca filament yüklü yuvalar seçilebilir." #~ msgid "Save the printing files initiated from Bambu Studio, Bambu Handy and MakerWorld on External Storage" #~ msgstr "Bambu Studio, Bambu Handy ve MakerWorld'den başlatılan yazdırma dosyalarını Harici Depolamaya kaydedin" @@ -21822,9 +21940,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Continue to sync filaments" #~ msgstr "Filamentleri senkronize etmeye devam edin" @@ -22127,7 +22242,7 @@ msgstr "" #~ msgstr "hafızaya alınan meme boyutu: %d" #~ msgid "The size of nozzle type in preset is not consistent with memorized nozzle. Did you change your nozzle lately?" -#~ msgstr "Ön ayardaki nozül tipinin boyutu hafızaya alınan nozül ile tutarlı değil. Son zamanlarda nozulunuzu değiştirdiniz mi?" +#~ msgstr "Ön ayardaki nozul tipinin boyutu hafızaya alınan nozul ile tutarlı değil. Son zamanlarda nozulunuzu değiştirdiniz mi?" #, c-format, boost-format #~ msgid "nozzle[%d] in preset: %.1f" @@ -22263,7 +22378,7 @@ msgstr "" #~ msgstr "Sol püskürtme ucu: %smm" #~ msgid "Right nozzle: %smm" -#~ msgstr "Sağ nozül: %smm" +#~ msgstr "Sağ nozul: %smm" #~ msgid "\"Fix Model\" feature is currently only on Windows. Please repair the model on Orca Slicer(windows) or CAD softwares." #~ msgstr "\"Modeli Onar\" özelliği şu anda yalnızca Windows'ta bulunmaktadır. Lütfen modeli Orca Slicer (windows) veya CAD yazılımlarında onarın." diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 7b838b73b4..9204a67ec3 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk \n" "Language-Team: Ukrainian\n" @@ -3796,6 +3796,10 @@ msgstr "Організація..." msgid "Arranging" msgstr "Організація" +# AI Translated +msgid "Arranging " +msgstr "Впорядкування " + msgid "Arranging canceled." msgstr "Організацію скасовано." @@ -8302,21 +8306,21 @@ msgstr "Каталог для заміни не вибрано" msgid "Replaced with 3D files from directory:\n" msgstr "Замінено 3D-файлами з каталогу:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Пропущено %1%: той самий файл.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Пропущено %s: той самий файл.\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Пропущено %1%: файл не існує.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Пропущено %s: файл не існує.\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Пропущено %1%: не вдалося замінити.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Пропущено %s: не вдалося замінити.\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Замінено %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Замінено %s.\n" msgid "Replaced volumes" msgstr "Замінені обʼєми" @@ -9297,6 +9301,21 @@ msgstr "Затемнювати нижні шари" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Під час прокручування повзунка шарів у попередньому перегляді нарізки відображати шари нижче поточного затемненими, щоб лише переглядуваний шар показувався з повною яскравістю." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Яскравість затемнених шарів" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Наскільки яскраво відображаються затемнені шари, коли увімкнено параметр «Затемнювати нижні шари».\n" +"99% — затемнення майже непомітне, 0% — шари стають чорними. Максимум обмежено 99%, оскільки 100% дорівнювало б вимкненню параметра." + msgid "Login region" msgstr "Регіон входу" @@ -13531,12 +13550,37 @@ msgstr "По обʼєктах" msgid "Intra-layer order" msgstr "Внутрішній порядок шарів" -msgid "Print order within a single layer." -msgstr "Друк замовлення в один шар" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Порядок, у якому обходяться екземпляри обʼєктів у межах одного шару; він визначає, скільки переміщень витрачається на переходи між ними.\n" +"\n" +"Типово: побудова ланцюга методом найближчого сусіда з подальшим удосконаленням алгоритмом 2-opt та усуненням перетинів. Хороший універсальний вибір.\n" +"За порядком у списку: екземпляри друкуються в тому самому порядку, що й у списку обʼєктів, без жодної оптимізації шляху. Використовуйте, коли потрібен передбачуваний порядок, заданий вручну.\n" +"Найкращий з усіх (найкоротший шлях): оцінюються всі стратегії й застосовується та, що дає найкоротший шлях. Порядок екземплярів обʼєктів визначається один раз для всього друку, а порядок окремих острівців — для кожного шару окремо, тож різні шари можуть використовувати різні стратегії. Нарізка триває трохи довше.\n" +"Змійкою: змієподібний обхід ряд за рядом з удосконаленням алгоритмом 2-opt. Добре підходить для регулярних сіток із багатьох дрібних деталей.\n" +"\n" +"Якщо в одному шарі використовується кілька філаментів або інструментів, пріоритет має мінімізація змін інструмента: обʼєкти спочатку групуються за філаментом, і цей параметр упорядковує лише екземпляри в межах кожної групи, тож загальна послідовність може не виглядати як найкоротший шлях по пластині." msgid "As object list" msgstr "За порядком у списку" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Найкращий з усіх (найкоротший шлях)" + +# AI Translated +msgid "Snake" +msgstr "Змійкою" + msgid "Slow printing down for better layer cooling" msgstr "Сповільнювати друк для кращого охолодження шару" @@ -19089,6 +19133,20 @@ msgstr "" "Є кілька IP-адрес, які перетворюються на ім’я хоста %1%.\n" "Будь ласка, виберіть той, який слід використовувати." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Автомасштабування під сопло" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Ця модель розрахована на сопло 0,4 мм і висоту шару 0,2 мм. \n" +"Коли увімкнено масштабування (рекомендовано), розмір моделі динамічно підлаштовується під діаметр вашого поточного сопла та відповідну висоту шару, завдяки чому тест є точним і легко читається.\n" +"Вимикайте масштабування, лише якщо хочете надрукувати еталонну модель точно в первісному вигляді." + msgid "PA Calibration" msgstr "Калібрування ВТ (РА)" @@ -19230,6 +19288,14 @@ msgstr "Початкова швидкість: " msgid "End speed: " msgstr "Кінцева швидкість: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Автопідлаштування під максимальну обʼємну швидкість" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Якщо кінцева швидкість перевищить максимальну обʼємну швидкість філаменту, автоматично зменшувати висоту шару (зберігаючи стандартні значення та не виходячи за обмеження машини), щоб її досягти. Якщо навіть мінімальної висоти шару не досить, натомість буде знижено кінцеву швидкість." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19241,6 +19307,57 @@ msgstr "" "крок >= 0\n" "кінець > початок + крок)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Кінцева швидкість (%.0f мм/с) перевищує максимальну обʼємну швидкість філаменту (%.1f мм³/с), яка за такої ширини лінії та висоти шару обмежує зовнішню стінку приблизно до %.0f мм/с.\n" +" Вищі швидкості будуть обмежені, тож верхні блоки вежі не надрукуються із заданою швидкістю.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Кінцева швидкість (%.0f мм/с) перевищує максимальну обʼємну швидкість філаменту (%.1f мм³/с) за типової висоти шару (%.2f мм).\n" +"\n" +"Висоту шару зменшено до %.2f мм (значення, яке використовують профілі цього принтера), щоб вежа могла досягти заданої швидкості." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Навіть за найменшої висоти шару, яку використовують профілі цього принтера (%.2f мм), кінцева швидкість (%.0f мм/с) перевищує максимальну обʼємну швидкість філаменту (%.1f мм³/с).\n" +"\n" +"Висоту шару буде встановлено на %.2f мм, а кінцеву швидкість знижено до %.0f мм/с.\n" +"\n" +"Продовжити?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Усе одно продовжити?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Увімкнути «Автопідлаштування», щоб виправити це автоматично, чи все одно продовжити?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Увімкнути «Автомасштабування під сопло» та «Автопідлаштування», щоб виправити це автоматично, чи все одно продовжити?" + msgid "Start retraction length: " msgstr "Початкова довжина ретракту: " @@ -21862,6 +21979,9 @@ msgstr "" "Уникнення деформації\n" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" +#~ msgid "Print order within a single layer." +#~ msgstr "Друк замовлення в один шар" + #~ msgid "Bottom" #~ msgstr "Низ" @@ -21940,9 +22060,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "℃" -#~ msgid "%" -#~ msgstr "%" - #~ msgctxt "Sync_Nozzle_AMS" #~ msgid "Cancel" #~ msgstr "Скасувати" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index cda4617b7b..e6e7adf43d 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -4031,6 +4031,10 @@ msgstr "Đang sắp xếp..." msgid "Arranging" msgstr "Đang sắp xếp" +# AI Translated +msgid "Arranging " +msgstr "Đang sắp xếp " + msgid "Arranging canceled." msgstr "Hủy sắp xếp." @@ -8717,24 +8721,24 @@ msgid "Replaced with 3D files from directory:\n" msgstr "Đã thay thế bằng file 3D từ thư mục:\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ Đã bỏ qua %1%: cùng một file.\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ Đã bỏ qua %s: cùng một file.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ Đã bỏ qua %1%: file không tồn tại.\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ Đã bỏ qua %s: file không tồn tại.\n" # AI Translated -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ Đã bỏ qua %1%: thay thế thất bại.\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ Đã bỏ qua %s: thay thế thất bại.\n" # AI Translated -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ Đã thay thế %1%.\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ Đã thay thế %s.\n" # AI Translated msgid "Replaced volumes" @@ -9779,6 +9783,21 @@ msgstr "Làm mờ các lớp bên dưới" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "Khi kéo thanh trượt lớp trong bản xem trước đã slice, kết xuất các lớp bên dưới lớp hiện tại ở dạng tối đi để chỉ lớp đang xem hiển thị với độ sáng đầy đủ." +# AI Translated +msgid "Dimmed layer brightness" +msgstr "Độ sáng của lớp bị làm mờ" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"Mức độ sáng khi hiển thị các lớp bị làm mờ nếu bật \"Làm mờ các lớp bên dưới\".\n" +"99% gần như không tối đi, 0% khiến chúng đen hoàn toàn. Giới hạn ở 99% vì 100% sẽ giống hệt như tắt tùy chọn này." + # AI Translated msgid "Login region" msgstr "Khu vực đăng nhập" @@ -14093,12 +14112,37 @@ msgstr "Theo đối tượng" msgid "Intra-layer order" msgstr "Thứ tự trong lớp" -msgid "Print order within a single layer." -msgstr "Thứ tự in trong một lớp đơn." +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"Thứ tự các instance của đối tượng được đi qua trong cùng một lớp, quyết định lượng di chuyển tiêu tốn khi đi giữa chúng.\n" +"\n" +"Mặc định: nối chuỗi theo láng giềng gần nhất, tinh chỉnh bằng 2-opt và loại bỏ các đoạn cắt nhau. Lựa chọn chung tốt.\n" +"Như danh sách đối tượng: các instance được in theo đúng thứ tự trong danh sách đối tượng, không tối ưu hóa đường đi. Dùng khi bạn cần một thứ tự dễ đoán và tự kiểm soát.\n" +"Tốt nhất trong tất cả (đường đi ngắn nhất): mọi chiến lược đều được đánh giá và chiến lược ngắn nhất được sử dụng. Thứ tự các instance của đối tượng được quyết định một lần cho toàn bộ bản in, còn thứ tự của từng đảo được quyết định theo từng lớp, nên các lớp khác nhau có thể dùng chiến lược khác nhau. Slice hơi chậm hơn một chút.\n" +"Ngoằn ngoèo: duyệt lần lượt từng hàng theo kiểu ngoằn ngoèo, tinh chỉnh bằng 2-opt. Rất phù hợp với các lưới đều gồm nhiều chi tiết nhỏ.\n" +"\n" +"Khi có nhiều filament hoặc đầu công cụ trong cùng một lớp, việc giảm thiểu số lần đổi đầu công cụ được ưu tiên: các đối tượng được nhóm theo filament trước, và thiết lập này chỉ sắp xếp các instance trong từng nhóm filament, nên trình tự tổng thể có thể không giống đường đi ngắn nhất trên bàn in." msgid "As object list" msgstr "Như danh sách đối tượng" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "Tốt nhất trong tất cả (đường đi ngắn nhất)" + +# AI Translated +msgid "Snake" +msgstr "Ngoằn ngoèo" + msgid "Slow printing down for better layer cooling" msgstr "Giảm tốc độ in để làm mát lớp tốt hơn" @@ -19626,6 +19670,20 @@ msgstr "" "Có nhiều địa chỉ IP phân giải thành tên máy chủ %1%.\n" "Vui lòng chọn một địa chỉ nên được sử dụng." +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "Tự động chia tỷ lệ theo đầu phun" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"Mô hình này được thiết kế cho đầu phun 0.4 mm với chiều cao lớp 0.2 mm. \n" +"Khi bật tùy chọn chia tỷ lệ (khuyến nghị), mô hình sẽ tự động thay đổi kích thước cho khớp với đường kính đầu phun hiện tại và một chiều cao lớp phù hợp, giúp bài kiểm tra vừa chính xác vừa dễ đọc.\n" +"Chỉ tắt chia tỷ lệ nếu bạn muốn in mô hình tham chiếu đúng nguyên trạng." + msgid "PA Calibration" msgstr "Hiệu chỉnh PA" @@ -19764,6 +19822,14 @@ msgstr "Tốc độ bắt đầu: " msgid "End speed: " msgstr "Tốc độ kết thúc: " +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "Tự động điều chỉnh theo tốc độ thể tích tối đa" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "Nếu tốc độ kết thúc vượt quá tốc độ thể tích tối đa của filament, tự động giảm chiều cao lớp (giữ các giá trị tiêu chuẩn và nằm trong giới hạn của máy) để đạt được tốc độ đó. Nếu ngay cả chiều cao lớp nhỏ nhất vẫn chưa đủ, thì giảm tốc độ kết thúc thay vào đó." + msgid "" "Please input valid values:\n" "start > 10\n" @@ -19775,6 +19841,57 @@ msgstr "" "bước >= 0\n" "kết thúc > bắt đầu + bước" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"Tốc độ kết thúc (%.0f mm/s) vượt quá tốc độ thể tích tối đa của filament (%.1f mm³/s), khiến thành ngoài bị giới hạn ở khoảng %.0f mm/s với độ rộng đường và chiều cao lớp hiện tại.\n" +" Các tốc độ cao hơn mức này sẽ bị cắt bớt, nên những khối phía trên của tháp sẽ không in ở tốc độ yêu cầu.\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"Tốc độ kết thúc (%.0f mm/s) vượt quá tốc độ thể tích tối đa của filament (%.1f mm³/s) ở chiều cao lớp mặc định (%.2f mm).\n" +"\n" +"Chiều cao lớp đã được giảm xuống %.2f mm (một giá trị được dùng trong các cài đặt sẵn của máy in này) để tháp có thể đạt tốc độ yêu cầu." + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"Ngay cả ở chiều cao lớp nhỏ nhất được dùng trong các cài đặt sẵn của máy in này (%.2f mm), tốc độ kết thúc (%.0f mm/s) vẫn vượt quá tốc độ thể tích tối đa của filament (%.1f mm³/s).\n" +"\n" +"Chiều cao lớp sẽ được đặt thành %.2f mm và tốc độ kết thúc giảm xuống %.0f mm/s.\n" +"\n" +"Tiếp tục?" + +# AI Translated +msgid "Continue anyway?" +msgstr "Vẫn tiếp tục?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Bật \"Tự động điều chỉnh\" để khắc phục việc này tự động, hoặc vẫn tiếp tục?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "Bật \"Tự động chia tỷ lệ theo đầu phun\" và \"Tự động điều chỉnh\" để khắc phục việc này tự động, hoặc vẫn tiếp tục?" + msgid "Start retraction length: " msgstr "Độ dài rút bắt đầu: " @@ -22585,6 +22702,9 @@ msgstr "" "Tránh cong vênh\n" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" +#~ msgid "Print order within a single layer." +#~ msgstr "Thứ tự in trong một lớp đơn." + #~ msgid "Bottom" #~ msgstr "Dưới" @@ -22627,9 +22747,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgctxt "Sync_Nozzle_AMS" #~ msgid "Cancel" #~ msgstr "Hủy" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index 56ab729edb..345891f250 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle \n" "Language-Team: \n" @@ -3694,6 +3694,10 @@ msgstr "自动摆放中..." msgid "Arranging" msgstr "自动摆放" +# AI Translated +msgid "Arranging " +msgstr "自动摆放 " + msgid "Arranging canceled." msgstr "已取消自动摆放。" @@ -8024,21 +8028,21 @@ msgstr "未选择替换目录" msgid "Replaced with 3D files from directory:\n" msgstr "替换为目录中的 3D 文件:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ 跳过 %1%:同一文件。\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ 跳过 %s:同一文件。\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ 跳过%1%:文件不存在。\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ 跳过%s:文件不存在。\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ 跳过%1%:替换失败。\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ 跳过%s:替换失败。\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ 替换了 %1%。\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ 替换了 %s。\n" msgid "Replaced volumes" msgstr "替换的卷" @@ -8978,6 +8982,21 @@ msgstr "调暗下方图层" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "在切片预览中拖动图层滑块时,将当前图层下方的图层渲染为变暗状态,以便只有正在查看的图层以完整亮度显示。" +# AI Translated +msgid "Dimmed layer brightness" +msgstr "调暗图层的亮度" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"启用“调暗下方图层”时,被调暗的图层以多高的亮度显示。\n" +"99% 表示几乎不变暗,0% 表示显示为纯黑。上限为 99%,因为 100% 与关闭该选项的效果相同。" + msgid "Login region" msgstr "登录区域" @@ -12949,12 +12968,37 @@ msgstr "逐件" msgid "Intra-layer order" msgstr "层内打印顺序" -msgid "Print order within a single layer." -msgstr "同一层内的打印顺序" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"在同一层内访问各对象实例的顺序,它决定了在实例之间移动所花费的空驶量。\n" +"\n" +"默认:以最近邻方式串联,并通过 2-opt 和交叉消除进行优化。通常是较好的选择。\n" +"按对象列表中的顺序:不做任何路径优化,按对象列表中的顺序打印各实例。需要可预测、手动控制的顺序时使用。\n" +"全部比较(最短路径):评估所有策略并采用最短的一种。对象实例的顺序在整个打印任务中只确定一次,而各个岛的排序则逐层确定,因此不同层可能采用不同的策略。切片速度略慢。\n" +"蛇形:逐行往复的蛇形遍历,并通过 2-opt 进行优化。非常适合由大量小零件组成的规则阵列。\n" +"\n" +"当同一层中使用多种耗材丝或工具时,优先减少换料次数:对象会先按耗材丝分组,本设置仅决定每个耗材丝分组内实例的顺序,因此整体顺序看起来可能不是整个热床上的最短路径。" msgid "As object list" msgstr "按对象列表中的顺序" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "全部比较(最短路径)" + +# AI Translated +msgid "Snake" +msgstr "蛇形" + msgid "Slow printing down for better layer cooling" msgstr "降低打印速度 以得到更好的冷却" @@ -18278,6 +18322,20 @@ msgstr "" "主机名 %1% 指向了多个IP地址\n" "请在其中选择一个正在使用的地址。" +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "根据喷嘴自动缩放" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"该模型是按 0.4 mm 喷嘴和 0.2 mm 层高设计的。 \n" +"启用缩放选项后(推荐),模型会根据当前喷嘴直径和合适的层高动态调整尺寸,使测试既准确又易于读取。\n" +"只有当您希望完全按原样打印参考模型时,才关闭缩放。" + msgid "PA Calibration" msgstr "压力提前/PA校准" @@ -18412,6 +18470,14 @@ msgstr "起始速度" msgid "End speed: " msgstr "结束速度" +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "自动调整以适应最大体积流量" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "如果结束速度会超过耗材丝的最大体积流量,则自动降低层高(保持标准数值并处于机器限制范围内)以达到该速度。如果连最小层高也不够,则改为降低结束速度。" + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18423,6 +18489,57 @@ msgstr "" "步进长度 >= 0\n" "结束 > 开始 + 步进长度)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"结束速度(%.0f mm/s)超过了耗材丝的最大体积流量(%.1f mm³/s),在当前线宽和层高下,外墙被限制在约 %.0f mm/s。\n" +" 超过该值的速度会被钳制,因此塔的上部区块不会以请求的速度打印。\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"结束速度(%.0f mm/s)超过了耗材丝的最大体积流量(%.1f mm³/s)(默认层高 %.2f mm 时)。\n" +"\n" +"层高已降至 %.2f mm(该打印机配置中使用的数值),以便塔能够达到请求的速度。" + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"即使采用该打印机配置中使用的最小层高(%.2f mm),结束速度(%.0f mm/s)仍超过耗材丝的最大体积流量(%.1f mm³/s)。\n" +"\n" +"层高将设为 %.2f mm,结束速度将降至 %.0f mm/s。\n" +"\n" +"是否继续?" + +# AI Translated +msgid "Continue anyway?" +msgstr "仍要继续吗?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "启用“自动调整”可自动解决该问题,或者仍要继续?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "启用“根据喷嘴自动缩放”和“自动调整”可自动解决该问题,或者仍要继续?" + msgid "Start retraction length: " msgstr "起始回抽长度" @@ -20994,6 +21111,9 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +#~ msgid "Print order within a single layer." +#~ msgstr "同一层内的打印顺序" + #~ msgid "Bottom" #~ msgstr "底部" @@ -21086,9 +21206,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "在写实渲染中渲染投射到打印板上的阴影。" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 8885759c88..9b37009978 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-07-26 21:59-0300\n" +"POT-Creation-Date: 2026-07-29 17:40-0300\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -3795,6 +3795,10 @@ msgstr "自動擺放中..." msgid "Arranging" msgstr "自動擺放" +# AI Translated +msgid "Arranging " +msgstr "自動擺放 " + msgid "Arranging canceled." msgstr "已取消自動擺放。" @@ -4675,7 +4679,7 @@ msgid "" "Too small max volumetric speed.\n" "Value was reset to 0.5" msgstr "" -"最大體積速度設定過小\n" +"最大體積流量設定過小\n" "重設為 0.5" #, c-format, boost-format @@ -8189,21 +8193,21 @@ msgstr "未選擇替換的目錄" msgid "Replaced with 3D files from directory:\n" msgstr "已從目錄替換為 3D 檔案:\n" -#, boost-format -msgid "✖ Skipped %1%: same file.\n" -msgstr "✖ 已跳過 %1%:相同檔案。\n" +#, c-format +msgid "✖ Skipped %s: same file.\n" +msgstr "✖ 已跳過 %s:相同檔案。\n" -#, boost-format -msgid "✖ Skipped %1%: file does not exist.\n" -msgstr "✖ 已跳過 %1%:檔案不存在。\n" +#, c-format +msgid "✖ Skipped %s: file does not exist.\n" +msgstr "✖ 已跳過 %s:檔案不存在。\n" -#, boost-format -msgid "✖ Skipped %1%: failed to replace.\n" -msgstr "✖ 已跳過 %1%:無法替換。\n" +#, c-format +msgid "✖ Skipped %s: failed to replace.\n" +msgstr "✖ 已跳過 %s:無法替換。\n" -#, boost-format -msgid "✔ Replaced %1%.\n" -msgstr "✔ 已替換 %1%。\n" +#, c-format +msgid "✔ Replaced %s.\n" +msgstr "✔ 已替換 %s。\n" msgid "Replaced volumes" msgstr "已替換體積" @@ -9151,6 +9155,21 @@ msgstr "使下方層變暗" msgid "When scrubbing the layer slider in the sliced preview, render the layers below the current one darkened so that only the layer being viewed is shown at full brightness." msgstr "在切片預覽中拖曳層滑桿時,將目前層以下的各層算繪為變暗,如此只有正在檢視的層以全亮度顯示。" +# AI Translated +msgid "Dimmed layer brightness" +msgstr "變暗層的亮度" + +msgid "%" +msgstr "%" + +# AI Translated +msgid "" +"How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" +"99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option." +msgstr "" +"啟用「使下方層變暗」時,變暗的層以多高的亮度顯示。\n" +"99% 幾乎不會變暗,0% 會顯示為全黑。上限為 99%,因為 100% 與停用此選項的效果相同。" + msgid "Login region" msgstr "登入區域" @@ -13162,12 +13181,37 @@ msgstr "逐件" msgid "Intra-layer order" msgstr "單層順序" -msgid "Print order within a single layer." -msgstr "每一層的列印順序" +# AI Translated +msgid "" +"Order in which object instances are visited within a single layer, which controls how much travel is spent moving between them.\n" +"\n" +"Default: nearest-neighbor chaining, refined with 2-opt and crossing removal. A good general choice.\n" +"As object list: instances are printed in the same order as the object list, without any path optimization. Use it when you need a predictable, manually controlled order.\n" +"Best of all (shortest path): every strategy is evaluated and the shortest one is used. The object instance order is decided once for the whole print, while the ordering of individual islands is decided per layer, so different layers may end up using different strategies. Slightly slower to slice.\n" +"Snake: serpentine row-by-row traversal, refined with 2-opt. Well suited to regular grids of many small parts.\n" +"\n" +"With multiple filaments or tools in the same layer, minimizing tool changes takes priority: objects are grouped by filament first and this setting only orders the instances within each filament group, so the overall sequence may not look like the shortest path across the plate." +msgstr "" +"在同一層內走訪各物件實例的順序,這會決定在實例之間移動所花費的空駛量。\n" +"\n" +"預設:以最近鄰方式串接,並以 2-opt 與交叉消除進行改善。通常是不錯的選擇。\n" +"按照物件清單排序:不做任何路徑最佳化,依照物件清單的順序列印各實例。需要可預測、手動控制的順序時使用。\n" +"全部比較(最短路徑):評估所有策略並採用最短的一種。物件實例的順序在整個列印工作中只決定一次,而個別島嶼的排序則逐層決定,因此不同層可能採用不同的策略。切片速度略慢。\n" +"蛇形:逐行往復的蛇形走訪,並以 2-opt 進行改善。非常適合由大量小零件組成的規則陣列。\n" +"\n" +"當同一層中使用多種線材或工具時,會優先減少換料次數:物件會先依線材分組,此設定僅決定每個線材群組內實例的順序,因此整體順序看起來可能不是整個列印板上的最短路徑。" msgid "As object list" msgstr "按照物件清單排序" +# AI Translated +msgid "Best of all (shortest path)" +msgstr "全部比較(最短路徑)" + +# AI Translated +msgid "Snake" +msgstr "蛇形" + msgid "Slow printing down for better layer cooling" msgstr "降低列印速度 以得到更好的冷卻" @@ -18461,6 +18505,20 @@ msgstr "" "有多個 IP 位址解析到主機名稱 %1%。\n" "請選擇一個要使用的 IP 位址。" +# AI Translated +msgid "Auto-scale for nozzle" +msgstr "依噴嘴自動縮放" + +# AI Translated +msgid "" +"This model is designed around a 0.4 mm nozzle with a 0.2 mm layer height. \n" +"When the scaling option is enabled (recommended), it dynamically resizes to match your current nozzle diameter and an appropriate layer height, making the test both accurate and easy to read.\n" +"Turn scaling off only if you wish to print the reference model exactly as-is." +msgstr "" +"此模型是以 0.4 mm 噴嘴與 0.2 mm 層高為基準設計的。 \n" +"啟用縮放選項後(建議),模型會依目前的噴嘴直徑與合適的層高動態調整尺寸,使測試既準確又容易判讀。\n" +"只有在您想完全按原樣列印參考模型時,才關閉縮放。" + msgid "PA Calibration" msgstr "PA 校正" @@ -18597,6 +18655,14 @@ msgstr "起始速度:" msgid "End speed: " msgstr "結束速度:" +# AI Translated +msgid "Auto-adjust to max volumetric speed" +msgstr "自動調整以符合最大體積流量" + +# AI Translated +msgid "If the end speed would exceed the filament's maximum volumetric speed, automatically lower the layer height (keeping standard values and staying within the machine's limits) to reach it. If even the minimum layer height is not enough, lower the end speed instead." +msgstr "如果結束速度會超過線材的最大體積流量,則自動降低層高(維持標準數值並處於機器限制範圍內)以達到該速度。如果連最小層高也不夠,則改為降低結束速度。" + msgid "" "Please input valid values:\n" "start > 10\n" @@ -18608,6 +18674,57 @@ msgstr "" "步距 >= 0\n" "結束 > 開始 + 步距)" +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s), which limits the outer wall to about %.0f mm/s at this line width and layer height.\n" +" Speeds above this will be clamped, so the upper blocks of the tower will not print at the requested speed.\n" +"\n" +"%s" +msgstr "" +"結束速度(%.0f mm/s)超過線材的最大體積流量(%.1f mm³/s),在目前的線寬與層高下,外牆被限制在約 %.0f mm/s。\n" +" 超過該值的速度會被箝制,因此塔的上部區塊不會以要求的速度列印。\n" +"\n" +"%s" + +# AI Translated +#, c-format, boost-format +msgid "" +"The end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s) at the default layer height (%.2f mm).\n" +"\n" +"The layer height has been reduced to %.2f mm (a value used by this printer's profiles) so the tower can reach the requested speed." +msgstr "" +"結束速度(%.0f mm/s)超過線材的最大體積流量(%.1f mm³/s)(預設層高 %.2f mm 時)。\n" +"\n" +"層高已降至 %.2f mm(此印表機的設定檔中使用的數值),以便塔能夠達到要求的速度。" + +# AI Translated +#, c-format, boost-format +msgid "" +"Even at the smallest layer height used by this printer's profiles (%.2f mm) the end speed (%.0f mm/s) exceeds the filament's maximum volumetric speed (%.1f mm³/s).\n" +"\n" +"The layer height will be set to %.2f mm and the end speed lowered to %.0f mm/s.\n" +"\n" +"Continue?" +msgstr "" +"即使採用此印表機的設定檔中使用的最小層高(%.2f mm),結束速度(%.0f mm/s)仍超過線材的最大體積流量(%.1f mm³/s)。\n" +"\n" +"層高將設為 %.2f mm,結束速度將降至 %.0f mm/s。\n" +"\n" +"是否繼續?" + +# AI Translated +msgid "Continue anyway?" +msgstr "仍要繼續嗎?" + +# AI Translated +msgid "Enable \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "啟用「自動調整」可自動解決此問題,或者仍要繼續?" + +# AI Translated +msgid "Enable \"Auto-scale for nozzle\" and \"Auto-adjust\" to fix this automatically, or continue anyway?" +msgstr "啟用「依噴嘴自動縮放」和「自動調整」可自動解決此問題,或者仍要繼續?" + msgid "Start retraction length: " msgstr "起始回抽長度:" @@ -21206,6 +21323,9 @@ msgstr "" "避免翹曲\n" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" +#~ msgid "Print order within a single layer." +#~ msgstr "每一層的列印順序" + #~ msgid "Bottom" #~ msgstr "底部" @@ -21298,9 +21418,6 @@ msgstr "" #~ msgid "°C" #~ msgstr "°C" -#~ msgid "%" -#~ msgstr "%" - #~ msgid "Renders cast shadows on the plate in realistic view." #~ msgstr "在擬真檢視中於列印板上算繪投射陰影。" diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 8e91974b9c..077ee827e5 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.75", + "version": "02.03.02.76", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 (0.4 nozzle).json index 8bf73caf41..7300c45c8d 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 Max_CFS-C 0.4 nozzle.json index 5ff07e264b..adc86b4768 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1 Max_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C 0.4 nozzle.json index fbc953f420..976756a212 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C_CFS-C 0.4 nozzle.json index bacd88b9f3..6748914ae7 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1C_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1Max (0.4 nozzle).json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1Max (0.4 nozzle).json index 1083550af8..f3f37caca7 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1Max (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1Max (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1_CFS-C 0.4 nozzle.json index 3e98181430..0144a35372 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality K1_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 (0.4 nozzle).json index dba47d76a5..d6caa5e775 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 Max_CFS-C 0.4 nozzle.json index ef22dc37ab..a1896fa377 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 Max_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE 0.4 nozzle.json index 2ac16fb484..087d90a584 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE 0.4 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE_CFS-C 0.4 nozzle.json index b247bece36..62708a822a 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1 SE_CFS-C 0.4 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C 0.4 nozzle.json index b1d6201ba7..5deb17002e 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C_CFS-C 0.4 nozzle.json index 44dc07e070..2365a82d31 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1C_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1Max (0.4 nozzle).json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1Max (0.4 nozzle).json index 0b4ae9c777..02507c806f 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1Max (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1Max (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1_CFS-C 0.4 nozzle.json index 6b201d6f4d..cda928b2e7 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality K1_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 (0.4 nozzle).json index 42e894eecd..eaaeb4529f 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 (0.4 nozzle).json @@ -128,7 +128,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 Max_CFS-C 0.4 nozzle.json index f765f850c8..1a4bd4a3f3 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 Max_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE 0.4.json index 003a8287ae..19b01a9964 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE 0.4.json @@ -124,7 +124,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE_CFS-C 0.4 nozzle.json index 85de09803b..b7365760f4 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1 SE_CFS-C 0.4 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1C 0.4 nozzle.json index c33dc038f5..aa8e7b440a 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1C 0.4 nozzle.json @@ -128,7 +128,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1C_CFS-C 0.4 nozzle.json index 7957e09303..882703434d 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1C_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1Max (0.4 nozzle).json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1Max (0.4 nozzle).json index cea8966d46..51ada298d8 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1Max (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1Max (0.4 nozzle).json @@ -128,7 +128,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality K1_CFS-C 0.4 nozzle.json index a617d8e2b4..85dd6bbf3d 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality K1_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 (0.4 nozzle).json index 051a14e1d4..ce0abbf5ac 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 Max_CFS-C 0.4 nozzle.json index 8170eb02d6..afd921a54b 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 Max_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE 0.4 nozzle.json index 349601c857..34a577c896 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE 0.4 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE_CFS-C 0.4 nozzle.json index 40ecd965b1..3522e46d5a 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1 SE_CFS-C 0.4 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1C 0.4 nozzle.json index ef58869e10..697593d8c4 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1C_CFS-C 0.4 nozzle.json index af9f2c5b86..b3bf816290 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1C_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1Max (0.4 nozzle).json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1Max (0.4 nozzle).json index cea238f1f3..9f886804e3 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1Max (0.4 nozzle).json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1Max (0.4 nozzle).json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Draft @Creality K1_CFS-C 0.4 nozzle.json index 5f91995b41..16ebf21b9a 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality K1_CFS-C 0.4 nozzle.json @@ -39,7 +39,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "1", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K1 (0.6 nozzle).json b/resources/profiles/Creality/process/0.30mm Standard @Creality K1 (0.6 nozzle).json index 1259ac5186..a4bd5b2abc 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K1 (0.6 nozzle).json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K1 (0.6 nozzle).json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K1 SE 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality K1 SE 0.6 nozzle.json index 81e54598e3..d4073f4221 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K1 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K1 SE 0.6 nozzle.json @@ -38,7 +38,7 @@ "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enable_prime_tower": "0", "enable_support": "0", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K1C 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality K1C 0.6 nozzle.json index 71ecb52e77..3f86d9e613 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K1C 0.6 nozzle.json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K1C 0.6 nozzle.json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality K1Max (0.6 nozzle).json b/resources/profiles/Creality/process/0.30mm Standard @Creality K1Max (0.6 nozzle).json index db9e4b1539..54ac0870a4 100644 --- a/resources/profiles/Creality/process/0.30mm Standard @Creality K1Max (0.6 nozzle).json +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality K1Max (0.6 nozzle).json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality K1 (0.8 nozzle).json b/resources/profiles/Creality/process/0.40mm Standard @Creality K1 (0.8 nozzle).json index 5f61b218bc..2de391b8ad 100644 --- a/resources/profiles/Creality/process/0.40mm Standard @Creality K1 (0.8 nozzle).json +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality K1 (0.8 nozzle).json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality K1C 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality K1C 0.8 nozzle.json index d5d5d62cda..5cd1a9cb6a 100644 --- a/resources/profiles/Creality/process/0.40mm Standard @Creality K1C 0.8 nozzle.json +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality K1C 0.8 nozzle.json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality K1Max (0.8 nozzle).json b/resources/profiles/Creality/process/0.40mm Standard @Creality K1Max (0.8 nozzle).json index 793c6aa43e..c1c968cbb6 100644 --- a/resources/profiles/Creality/process/0.40mm Standard @Creality K1Max (0.8 nozzle).json +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality K1Max (0.8 nozzle).json @@ -126,7 +126,7 @@ "detect_narrow_internal_solid_infill": "1", "dont_filter_internal_bridges": "disabled", "elefant_foot_compensation_layers": "1", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "enable_overhang_speed": "1", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index a416f17db0..7eba013111 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -1,6 +1,6 @@ { "name": "Custom Printer", - "version": "02.04.00.01", + "version": "02.04.00.03", "force_update": "0", "description": "My configurations", "machine_model_list": [ diff --git a/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json b/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json index 1683513dbd..bf48e0488b 100644 --- a/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic ABS @MyToolChanger.json @@ -24,12 +24,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json index 5cc46deb7e..ad26608bff 100644 --- a/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic ASA @MyToolChanger.json @@ -24,12 +24,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json index 0c8918427d..d710282360 100644 --- a/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PA @MyToolChanger.json @@ -24,12 +24,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json index a7d86885ef..481fd04152 100644 --- a/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PA-CF @MyToolChanger.json @@ -24,12 +24,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json index d80b197394..47f175c277 100644 --- a/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PC @MyToolChanger.json @@ -25,12 +25,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json index 693551c428..95e47a32a8 100644 --- a/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PETG @MyToolChanger.json @@ -25,12 +25,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json index cf1db6e225..b8fe088325 100644 --- a/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA @MyToolChanger.json @@ -25,12 +25,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json index 6ae729d622..4a766aa3ef 100644 --- a/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PLA-CF @MyToolChanger.json @@ -25,12 +25,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json index ccb6d16c73..6fe168abcc 100644 --- a/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json +++ b/resources/profiles/Custom/filament/Generic PVA @MyToolChanger.json @@ -25,12 +25,6 @@ "filament_loading_speed_start": [ "50" ], - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_flow": [ - "40" - ], "filament_stamping_distance": [ "45" ], diff --git a/resources/profiles/Custom/machine/fdm_klipper_common.json b/resources/profiles/Custom/machine/fdm_klipper_common.json index 36f3fe13c6..a0ee0f1a47 100644 --- a/resources/profiles/Custom/machine/fdm_klipper_common.json +++ b/resources/profiles/Custom/machine/fdm_klipper_common.json @@ -116,7 +116,7 @@ "deretraction_speed": [ "30" ], - "z_hop_types": "Normal Lift", + "z_hop_types": "Slope Lift", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "", diff --git a/resources/profiles/Custom/machine/fdm_repetier_common.json b/resources/profiles/Custom/machine/fdm_repetier_common.json index 1171559086..b36b716e4e 100644 --- a/resources/profiles/Custom/machine/fdm_repetier_common.json +++ b/resources/profiles/Custom/machine/fdm_repetier_common.json @@ -118,7 +118,7 @@ "deretraction_speed": [ "30" ], - "z_hop_types": "Normal Lift", + "z_hop_types": "Slope Lift", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "", diff --git a/resources/profiles/Custom/machine/fdm_rrf_common.json b/resources/profiles/Custom/machine/fdm_rrf_common.json index 68708490a1..2fc9df9a3d 100644 --- a/resources/profiles/Custom/machine/fdm_rrf_common.json +++ b/resources/profiles/Custom/machine/fdm_rrf_common.json @@ -116,7 +116,7 @@ "deretraction_speed": [ "30" ], - "z_hop_types": "Normal Lift", + "z_hop_types": "Slope Lift", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "", diff --git a/resources/profiles/Custom/machine/fdm_toolchanger_common.json b/resources/profiles/Custom/machine/fdm_toolchanger_common.json index ff702d0034..55f1b2cadb 100644 --- a/resources/profiles/Custom/machine/fdm_toolchanger_common.json +++ b/resources/profiles/Custom/machine/fdm_toolchanger_common.json @@ -6,6 +6,7 @@ "instantiation": "false", "gcode_flavor": "klipper", "single_extruder_multi_material": "0", + "wait_for_temp_on_wipe_tower": "1", "default_filament_profile": [ "Generic PLA @MyToolChanger" ], @@ -172,11 +173,11 @@ "0.4" ], "z_hop_types": [ - "Normal Lift", - "Normal Lift", - "Normal Lift", - "Normal Lift", - "Normal Lift" + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift" ], "purge_in_prime_tower": "0", "machine_pause_gcode": "M601", diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index cd9abd8b0d..9701c6eb0d 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json index 5a4e910502..c455832b9c 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PET-CF @base.json @@ -36,6 +36,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_type": [ "PET-CF" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json index 9117643990..755f78cf08 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Basic @base.json @@ -39,6 +39,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_vendor": [ "Bambu Lab" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json index 69cfb1dab7..0026f408f2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PETG Translucent @base.json @@ -39,6 +39,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_vendor": [ "Bambu Lab" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json index 889822b02f..1f11ddcc54 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu PLA Aero @base.json @@ -21,6 +21,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_type": [ "PLA-AERO" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json index 49fdcb1e1b..1dea20d081 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support For PLA-PETG @base.json @@ -27,6 +27,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_scarf_seam_type": [ "none" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json index 3fe47727e1..bf714a0352 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Bambu/Bambu Support for ABS @base.json @@ -21,6 +21,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_vendor": [ "Bambu Lab" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json index 00834bb4a5..a4b0ebce09 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/COEX/COEX TPU 60A @base.json @@ -36,6 +36,9 @@ "filament_max_volumetric_speed": [ "1" ], + "filament_multitool_ramming_flow": [ + "1" + ], "filament_retraction_minimum_travel": [ "3" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json index d6ca0d695b..b4da81db72 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas ASA @base.json @@ -72,15 +72,6 @@ "fan_min_speed": [ "10" ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], "filament_cost": [ "599" ], @@ -99,30 +90,12 @@ "filament_is_support": [ "0" ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], "filament_long_retractions_when_cut": [ "nil" ], "filament_max_volumetric_speed": [ "15" ], - "filament_minimal_purge_on_wipe_tower": [ - "0" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "10" - ], - "filament_multitool_ramming_volume": [ - "10" - ], "filament_notes": [ "" ], @@ -165,21 +138,6 @@ "filament_soluble": [ "0" ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], "filament_vendor": [ "Elas" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json index 478210bb7d..8b6db5d3ad 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PETG Basic @base.json @@ -42,15 +42,6 @@ "fan_min_speed": [ "20" ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], "filament_cost": [ "445" ], @@ -69,30 +60,12 @@ "filament_is_support": [ "0" ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], "filament_long_retractions_when_cut": [ "1" ], "filament_max_volumetric_speed": [ "18" ], - "filament_minimal_purge_on_wipe_tower": [ - "0" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "10" - ], - "filament_multitool_ramming_volume": [ - "10" - ], "filament_notes": [ "" ], @@ -135,21 +108,6 @@ "filament_soluble": [ "0" ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], "filament_wipe": [ "nil" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json index abfa611aa3..d3f34beb80 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Basic @base.json @@ -71,15 +71,6 @@ "fan_min_speed": [ "60" ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], "filament_cost": [ "449.5" ], @@ -98,30 +89,12 @@ "filament_is_support": [ "0" ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], "filament_long_retractions_when_cut": [ "nil" ], "filament_max_volumetric_speed": [ "25" ], - "filament_minimal_purge_on_wipe_tower": [ - "0" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "10" - ], - "filament_multitool_ramming_volume": [ - "10" - ], "filament_notes": [ "" ], @@ -164,21 +137,6 @@ "filament_soluble": [ "0" ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], "filament_vendor": [ "Elas" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json index 38313d1d55..41fd91f011 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elas/Elas PLA Pro @base.json @@ -71,15 +71,6 @@ "fan_min_speed": [ "100" ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], "filament_cost": [ "500" ], @@ -98,30 +89,12 @@ "filament_is_support": [ "0" ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], "filament_long_retractions_when_cut": [ "nil" ], "filament_max_volumetric_speed": [ "18" ], - "filament_minimal_purge_on_wipe_tower": [ - "0" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "10" - ], - "filament_multitool_ramming_volume": [ - "10" - ], "filament_notes": [ "" ], @@ -164,21 +137,6 @@ "filament_soluble": [ "0" ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], "filament_vendor": [ "Elas" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json index d7dd19c086..7d22d28387 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json @@ -24,6 +24,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "nozzle_temperature": [ "290" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json index d6cd360eba..997f38ed4d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PETG @base.json @@ -35,6 +35,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_vendor": [ "Elegoo" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json index abae441db5..3d6c95ed00 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PLA Wood @System.json @@ -12,6 +12,9 @@ "filament_max_volumetric_speed": [ "10" ], + "filament_multitool_ramming_flow": [ + "10" + ], "nozzle_temperature": [ "220" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json index b40ce2310b..dff734c96d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json @@ -44,5 +44,8 @@ ], "filament_max_volumetric_speed": [ "10" + ], + "filament_multitool_ramming_flow": [ + "10" ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json index 843cf72fc5..1c3184da11 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json @@ -44,5 +44,8 @@ ], "filament_max_volumetric_speed": [ "8" + ], + "filament_multitool_ramming_flow": [ + "8" ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json index f7b9df437a..cf01ddf65b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PA-CF @System.json @@ -10,5 +10,8 @@ "filament_type": [ "PA-CF" ], + "filament_multitool_ramming_flow": [ + "8" + ], "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json index e402cdf775..25cf20c304 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG HF @System.json @@ -8,5 +8,8 @@ "filament_max_volumetric_speed": [ "20" ], + "filament_multitool_ramming_flow": [ + "20" + ], "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json index 5ee99ffed9..30884cf5a0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PETG-CF @System.json @@ -17,6 +17,9 @@ "filament_max_volumetric_speed": [ "11.5" ], + "filament_multitool_ramming_flow": [ + "13" + ], "overhang_fan_speed": [ "100" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json index 041ff59c44..1880ca2b21 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA High Speed @System.json @@ -12,6 +12,9 @@ "filament_max_volumetric_speed": [ "18" ], + "filament_multitool_ramming_flow": [ + "25" + ], "slow_down_layer_time": [ "4" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json index d3a6d4813c..39c71d0d62 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PLA Matte @System.json @@ -8,6 +8,9 @@ "filament_max_volumetric_speed": [ "11" ], + "filament_multitool_ramming_flow": [ + "11" + ], "filament_retraction_length": [ "0.8" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json index 65420e9dae..a7c1bbff00 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-CF @System.json @@ -15,6 +15,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_type": [ "PP-CF" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json index 931ee4b7b3..cf9ea7ace2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @System.json @@ -15,6 +15,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_type": [ "PP-GF" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json index 39e351a24c..98d390e9b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Overture/Overture Air PLA @base.json @@ -17,6 +17,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_vendor": [ "Overture" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json index d873590f08..258f80fb15 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Valment/Valment PLA Silk @base.json @@ -23,6 +23,9 @@ "filament_max_volumetric_speed": [ "7.5" ], + "filament_multitool_ramming_flow": [ + "7.5" + ], "filament_vendor": [ "Valment" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json index 6d9d015c11..dea3f03264 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_abs.json @@ -43,6 +43,12 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "15" + ], + "filament_multitool_ramming_volume": [ + "10" + ], "filament_type": [ "ABS" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json index 922a5eaa7a..09a29ce792 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_asa.json @@ -43,6 +43,12 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "12" + ], + "filament_multitool_ramming_volume": [ + "10" + ], "filament_type": [ "ASA" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json index d37476f458..cd15600a52 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_bvoh.json @@ -41,6 +41,15 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "6" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], "filament_type": [ "BVOH" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json index ce95ca7c52..3ff7e805ae 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_common.json @@ -66,6 +66,12 @@ "filament_minimal_purge_on_wipe_tower": [ "15" ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "5" + ], "filament_retract_before_wipe": [ "nil" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json index 80ffd173de..798f560e01 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_cope.json @@ -41,6 +41,9 @@ "filament_max_volumetric_speed": [ "16" ], + "filament_multitool_ramming_flow": [ + "16" + ], "filament_scarf_seam_type": [ "none" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json index bf1ff86af1..40498a05aa 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_eva.json @@ -8,6 +8,9 @@ "filament_type": [ "EVA" ], + "filament_multitool_ramming_flow": [ + "12" + ], "supertack_plate_temp": [ "0" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json index beaebbd0e7..f67709b4b2 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_hips.json @@ -41,6 +41,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_type": [ "HIPS" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json index c2e4cf86df..185af32de7 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pa.json @@ -44,6 +44,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "12" + ], "filament_type": [ "PA" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_paht.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_paht.json index 058469ff71..2a1ca6d510 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_paht.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_paht.json @@ -7,6 +7,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "12" + ], "filament_type": [ "PAHT" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json index 0f550063ad..d8fb7d00ae 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pc.json @@ -86,6 +86,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "16" + ], "filament_flow_ratio": [ "0.94" ] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json index 8ca7e39994..e656fb7715 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pctg.json @@ -26,6 +26,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "10" + ], "filament_type": [ "PCTG" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json index beb533d07f..a47543334b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pe.json @@ -38,6 +38,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "12" + ], "filament_type": [ "PE" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json index eabb12c708..8b3fef2f2b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pet.json @@ -26,6 +26,9 @@ "filament_max_volumetric_speed": [ "10" ], + "filament_multitool_ramming_flow": [ + "15" + ], "filament_type": [ "PETG" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json index f6ef3ffc0c..7719c6563d 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pha.json @@ -38,6 +38,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_type": [ "PHA" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json index ae82d44129..21b7c44365 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla.json @@ -38,6 +38,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "20" + ], "filament_scarf_seam_type": [ "none" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json index 3680a85602..a5fd601060 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pla_silk.json @@ -9,6 +9,9 @@ "filament_flow_ratio": [ "0.98" ], + "filament_multitool_ramming_flow": [ + "10" + ], "slow_down_layer_time": [ "8" ] diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json index ec9405ef9a..4df7753132 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pp.json @@ -38,6 +38,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "12" + ], "filament_type": [ "PP" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json index 3eac71bc69..c250e588b0 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_ppa.json @@ -47,6 +47,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_type": [ "PPA-CF" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json index a6a95a804e..49e0bddefd 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pps.json @@ -43,6 +43,9 @@ "filament_max_volumetric_speed": [ "4" ], + "filament_multitool_ramming_flow": [ + "4" + ], "filament_type": [ "PPS" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json index 0109726b0d..4bb30d7e11 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_pva.json @@ -40,6 +40,15 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "6" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], "filament_soluble": [ "1" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json index 96626d808d..9bc4d5ce36 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_sbs.json @@ -11,6 +11,9 @@ "filament_max_volumetric_speed": [ "12" ], + "filament_multitool_ramming_flow": [ + "12" + ], "filament_type": [ "SBS" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json index 30d9415ad3..d6fb38a6ba 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/base/fdm_filament_tpu.json @@ -43,6 +43,15 @@ "filament_max_volumetric_speed": [ "3.2" ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "3.2" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], "filament_retraction_length": [ "0.4" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json index 40c314585c..cbd4f84ed4 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Marble @base.json @@ -17,6 +17,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_vendor": [ "eSUN" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json index 85c6049935..8d22168408 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN PLA-Matte @base.json @@ -17,6 +17,9 @@ "filament_max_volumetric_speed": [ "8" ], + "filament_multitool_ramming_flow": [ + "8" + ], "filament_vendor": [ "eSUN" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json index 138a388419..732eb3fd5b 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/eSUN/eSUN ePLA-LW @System.json @@ -21,6 +21,9 @@ "filament_max_volumetric_speed": [ "6" ], + "filament_multitool_ramming_flow": [ + "6" + ], "filament_vendor": [ "eSUN" ], diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index 9e7a290f96..08a2d6a230 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.08", + "version": "02.04.00.10", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ @@ -47,6 +47,10 @@ { "name": "Qidi X-Smart 3", "sub_path": "machine/Qidi X-Smart 3.json" + }, + { + "name": "Qidi X-Plus 5", + "sub_path": "machine/Qidi X-Plus 5.json" } ], "process_list": [ @@ -885,6 +889,70 @@ { "name": "0.56mm Standard @Qidi XSmart3 0.8 nozzle", "sub_path": "process/0.56mm Standard @Qidi XSmart3 0.8 nozzle.json" + }, + { + "name": "0.08mm High Quality @X-Plus 5", + "sub_path": "process/0.08mm High Quality @X-Plus 5.json" + }, + { + "name": "0.12mm High Quality @X-Plus 5", + "sub_path": "process/0.12mm High Quality @X-Plus 5.json" + }, + { + "name": "0.16mm High Quality @X-Plus 5", + "sub_path": "process/0.16mm High Quality @X-Plus 5.json" + }, + { + "name": "0.16mm Standard @X-Plus 5", + "sub_path": "process/0.16mm Standard @X-Plus 5.json" + }, + { + "name": "0.20mm High Quality @X-Plus 5", + "sub_path": "process/0.20mm High Quality @X-Plus 5.json" + }, + { + "name": "0.20mm Standard @X-Plus 5", + "sub_path": "process/0.20mm Standard @X-Plus 5.json" + }, + { + "name": "0.24mm Standard @X-Plus 5", + "sub_path": "process/0.24mm Standard @X-Plus 5.json" + }, + { + "name": "0.08mm High Quality @X-Plus 5 0.2 nozzle", + "sub_path": "process/0.08mm High Quality @X-Plus 5 0.2 nozzle.json" + }, + { + "name": "0.10mm Standard @X-Plus 5 0.2 nozzle", + "sub_path": "process/0.10mm Standard @X-Plus 5 0.2 nozzle.json" + }, + { + "name": "0.12mm Balanced Quality @X-Plus 5 0.2 nozzle", + "sub_path": "process/0.12mm Balanced Quality @X-Plus 5 0.2 nozzle.json" + }, + { + "name": "0.18mm Balanced Quality @X-Plus 5 0.6 nozzle", + "sub_path": "process/0.18mm Balanced Quality @X-Plus 5 0.6 nozzle.json" + }, + { + "name": "0.24mm Balanced Quality @X-Plus 5 0.6 nozzle", + "sub_path": "process/0.24mm Balanced Quality @X-Plus 5 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @X-Plus 5 0.6 nozzle", + "sub_path": "process/0.30mm Standard @X-Plus 5 0.6 nozzle.json" + }, + { + "name": "0.24mm Balanced Quality @X-Plus 5 0.8 nozzle", + "sub_path": "process/0.24mm Balanced Quality @X-Plus 5 0.8 nozzle.json" + }, + { + "name": "0.32mm Balanced Quality @X-Plus 5 0.8 nozzle", + "sub_path": "process/0.32mm Balanced Quality @X-Plus 5 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @X-Plus 5 0.8 nozzle", + "sub_path": "process/0.40mm Standard @X-Plus 5 0.8 nozzle.json" } ], "filament_list": [ @@ -6035,6 +6103,998 @@ { "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "fdm_filament_x5_common", + "sub_path": "filament/X5/fdm_filament_x5_common.json" + }, + { + "name": "Generic ABS@X-Plus 5-Series", + "sub_path": "filament/X5/Generic ABS @X-Plus 5.json" + }, + { + "name": "QIDI ASA@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ASA @X-Plus 5.json" + }, + { + "name": "Generic PETG@X-Plus 5-Series", + "sub_path": "filament/X5/Generic PETG @X-Plus 5.json" + }, + { + "name": "Generic PLA Silk@X-Plus 5-Series", + "sub_path": "filament/X5/Generic PLA Silk @X-Plus 5.json" + }, + { + "name": "Generic PLA@X-Plus 5-Series", + "sub_path": "filament/X5/Generic PLA @X-Plus 5.json" + }, + { + "name": "Generic PLA+@X-Plus 5-Series", + "sub_path": "filament/X5/Generic PLA+ @X-Plus 5.json" + }, + { + "name": "PolyLite PLA@X-Plus 5-Series", + "sub_path": "filament/X5/PolyLite PLA @X-Plus 5.json" + }, + { + "name": "Polymaker PLA-HT@X-Plus 5-Series", + "sub_path": "filament/X5/Polymaker PLA-HT @X-Plus 5.json" + }, + { + "name": "QIDI PLA-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA-CF @X-Plus 5.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Rapido@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ABS Rapido @X-Plus 5.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Odorless@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ABS Odorless @X-Plus 5.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Rapido @X-Plus 5.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Silk@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Silk @X-Plus 5.json" + }, + { + "name": "QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Tough@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG Tough @X-Plus 5.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PET-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PET-CF @X-Plus 5.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PA12-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PA12-CF @X-Plus 5.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PA6-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PA6-CF @X-Plus 5.json" + }, + { + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PAHT-CF @X-Plus 5.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PPS-CF @X-Plus 5.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ABS-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ABS-GF @X-Plus 5.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI UltraPA@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI UltraPA @X-Plus 5.json" + }, + { + "name": "QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic TPU 95A@X-Plus 5-Series", + "sub_path": "filament/X5/Generic TPU 95A @X-Plus 5.json" + }, + { + "name": "QIDI PC/ABS-FR@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PC-ABS-FR @X-Plus 5.json" + }, + { + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ASA-Aero@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ASA-Aero @X-Plus 5.json" + }, + { + "name": "QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Generic ABS @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic ABS @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic ABS @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic ABS @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Generic PETG @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic PETG @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic PETG @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic PETG @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Generic PLA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic PLA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic PLA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic PLA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic PLA+ @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Generic PLA+ @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Generic PLA+ @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic PLA+ @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic PLA+ @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic PLA+ @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic PLA+ @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic PLA+ @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI TPU 95A-HF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI TPU 95A-HF @X-Plus 5.json" + }, + { + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/PolyLite PLA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/PolyLite PLA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/PolyLite PLA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "PolyLite PLA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/PolyLite PLA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "PolyLite ABS@X-Plus 5-Series", + "sub_path": "filament/X5/PolyLite ABS @X-Plus 5.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/PolyLite ABS @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/PolyLite ABS @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/PolyLite ABS @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "PolyLite ABS @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/PolyLite ABS @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Overture PLA@X-Plus 5-Series", + "sub_path": "filament/X5/Overture PLA @X-Plus 5.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Overture PLA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Overture PLA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Overture PLA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Overture PLA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Overture PLA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Overture ABS@X-Plus 5-Series", + "sub_path": "filament/X5/Overture ABS @X-Plus 5.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Overture ABS @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Overture ABS @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Overture ABS @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Overture ABS @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Overture ABS @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Bambu PLA@X-Plus 5-Series", + "sub_path": "filament/X5/Bambu PLA @X-Plus 5.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Bambu PLA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Bambu ABS@X-Plus 5-Series", + "sub_path": "filament/X5/Bambu ABS @X-Plus 5.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Bambu ABS @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Bambu PETG@X-Plus 5-Series", + "sub_path": "filament/X5/Bambu PETG @X-Plus 5.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Bambu PETG @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PLA@X-Plus 5-Series", + "sub_path": "filament/X5/HATCHBOX PLA @X-Plus 5.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "HATCHBOX ABS@X-Plus 5-Series", + "sub_path": "filament/X5/HATCHBOX ABS @X-Plus 5.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "HATCHBOX PETG@X-Plus 5-Series", + "sub_path": "filament/X5/HATCHBOX PETG @X-Plus 5.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PAHT-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PAHT-GF @X-Plus 5.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PET-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PET-GF @X-Plus 5.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI WOOD Rapido @X-Plus 5.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Generic PC@X-Plus 5-Series", + "sub_path": "filament/X5/Generic PC @X-Plus 5.json" + }, + { + "name": "Generic PC @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/Generic PC @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "Generic PC @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/Generic PC @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Generic PC @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/Generic PC @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Generic PC @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/Generic PC @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI TPU-Aero@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI TPU-Aero @X-Plus 5.json" + }, + { + "name": "QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI Support For PET/PA@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI Support For PET-PA @X-Plus 5.json" + }, + { + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI Support For PAHT@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI Support For PAHT @X-Plus 5.json" + }, + { + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Basic@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Basic @X-Plus 5.json" + }, + { + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Matte Basic@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PLA Matte Basic @X-Plus 5.json" + }, + { + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Rapido@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG Rapido @X-Plus 5.json" + }, + { + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Basic@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG Basic @X-Plus 5.json" + }, + { + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG Translucent@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG Translucent @X-Plus 5.json" + }, + { + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle", + "sub_path": "filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG-CF @X-Plus 5.json" + }, + { + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PETG-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PETG-GF @X-Plus 5.json" + }, + { + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PPS-GF @X-Plus 5.json" + }, + { + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI PEBA 95A@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI PEBA 95A @X-Plus 5.json" + }, + { + "name": "QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ASA-CF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI ASA-CF @X-Plus 5.json" + }, + { + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "QIDI TPU-GF@X-Plus 5-Series", + "sub_path": "filament/X5/QIDI TPU-GF @X-Plus 5.json" + }, + { + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle", + "sub_path": "filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle", + "sub_path": "filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle", + "sub_path": "filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json" } ], "machine_list": [ @@ -6197,6 +7257,22 @@ { "name": "Qidi Q2C 0.8 nozzle", "sub_path": "machine/Qidi Q2C 0.8 nozzle.json" + }, + { + "name": "Qidi X-Plus 5 0.4 nozzle", + "sub_path": "machine/Qidi X-Plus 5 0.4 nozzle.json" + }, + { + "name": "Qidi X-Plus 5 0.6 nozzle", + "sub_path": "machine/Qidi X-Plus 5 0.6 nozzle.json" + }, + { + "name": "Qidi X-Plus 5 0.8 nozzle", + "sub_path": "machine/Qidi X-Plus 5 0.8 nozzle.json" + }, + { + "name": "Qidi X-Plus 5 0.2 nozzle", + "sub_path": "machine/Qidi X-Plus 5 0.2 nozzle.json" } ] } diff --git a/resources/profiles/Qidi/Qidi X-Plus 5_cover.png b/resources/profiles/Qidi/Qidi X-Plus 5_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..06f5c5858df019a00fa26f45fa34f8bf8e618064 GIT binary patch literal 33441 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 L^>bP0l+XkKq6c&u literal 0 HcmV?d00001 diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..32352a70c8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "v4Of6ePWz1oGVLqU", + "name": "Bambu ABS @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..8b6bc2ebb6 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "K3KqxJ3z6lSKoCsQ", + "name": "Bambu ABS @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..3fa0dfca1f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "D3OOS6ShJDdn4dlU", + "name": "Bambu ABS @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..833774ecff --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "8zWM4mqGjwjy2yJb", + "name": "Bambu ABS @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu ABS@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json new file mode 100644 index 0000000000..1464576f61 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "name": "Bambu ABS@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.05" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "ABS" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..67725a5ee4 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "ed9ZVS66ll61akjK", + "name": "Bambu PETG @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PETG@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..953359bb36 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "mPLqTb7smgIDOZTg", + "name": "Bambu PETG @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..77014127cd --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "A3K4JfwyqUnciD2e", + "name": "Bambu PETG @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..3e95da1618 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "4qjG4MYXmLPJ5Qjm", + "name": "Bambu PETG @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json new file mode 100644 index 0000000000..0a4d2ce22c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "name": "Bambu PETG@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.056" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..8cebbd7581 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "cI5eJwzwoecS97SU", + "name": "Bambu PLA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..3e7d24cf85 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "UP5ST3BYA3nWaT5i", + "name": "Bambu PLA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..e3e192d1e8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "jSFJn0WmV76aBwPt", + "name": "Bambu PLA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..2390355042 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "MYCn1SS32p63RzX0", + "name": "Bambu PLA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json new file mode 100644 index 0000000000..7660c8174d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "Bambu PLA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_adhesiveness_category": [ + "100" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..c12bcc6687 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "xxRxeoAbiYJcH1P4", + "name": "Generic ABS @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..7807bc8420 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "MM6yfNPfpCtbsm2M", + "name": "Generic ABS @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..6de2b02613 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "BIiPt2AExUkASm2F", + "name": "Generic ABS @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "24.5" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..6e7bda8441 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "VzKqGnik79qlJ1bA", + "name": "Generic ABS @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "24.5" + ], + "pressure_advance": [ + "0.011" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json new file mode 100644 index 0000000000..4bb0cbe387 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_11", + "name": "Generic ABS@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.04" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "filament_type": [ + "ABS" + ], + "filament_vendor": [ + "Generic" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..da5c50af1a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "setting_id": "ERbh7DQQfK7A623W", + "name": "Generic PC @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PC@X-Plus 5-Series", + "filament_flow_ratio": [ + "0.94" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], + "chamber_temperatures": [ + "0" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..487d8dd31d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "MK8OyxUEziAeEbXk", + "name": "Generic PC @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PC@X-Plus 5-Series", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..90829d6463 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "EQIfBmyVNumOKVWU", + "name": "Generic PC @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PC@X-Plus 5-Series", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..514715f8a2 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PC @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "FsTuQT5hxmfjHyVZ", + "name": "Generic PC @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PC@X-Plus 5-Series", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json new file mode 100644 index 0000000000..360f0ee803 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_23", + "name": "Generic PC@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "chamber_temperatures": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "cool_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "110" + ], + "eng_plate_temp": [ + "110" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "500" + ], + "filament_density": [ + "1.04" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PC" + ], + "filament_vendor": [ + "Generic" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "hot_plate_temp": [ + "110" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "60" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_layer_time": [ + "2" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "supertack_plate_temp": [ + "0" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "textured_plate_temp": [ + "110" + ], + "textured_cool_plate_temp_initial_layer": [ + "0" + ], + "textured_cool_plate_temp": [ + "0" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..2b4e220a54 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "KaxkabCgu6EWZBzj", + "name": "Generic PETG @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..4da60c3c48 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "ckqzES7LsTgYKKhb", + "name": "Generic PETG @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..6f1b9667ab --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "1ID4LaQVZN4WjJ4v", + "name": "Generic PETG @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..764e313efe --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "yzkFoRA3R01K3lCa", + "name": "Generic PETG @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json new file mode 100644 index 0000000000..ab1b23bb60 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_41", + "name": "Generic PETG@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "40" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Generic" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.056" + ], + "slow_down_layer_time": [ + "12" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..218b407d21 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "m5zUk3OpAayCbBwF", + "name": "Generic PLA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..c8dd22aba5 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "5Eorr9nKVhLbnYAZ", + "name": "Generic PLA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..ee352a5667 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "nqOawjrkU2lp3P0K", + "name": "Generic PLA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..14a7fa59c1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "nA20S71nTMCso0Bn", + "name": "Generic PLA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json new file mode 100644 index 0000000000..e3939b7796 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_1", + "name": "Generic PLA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Generic" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..f701cf5b50 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "42feLKkUTBQTPNDm", + "name": "Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..b898df762a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "uyCmwBkoRNNRbG5R", + "name": "Generic PLA Silk @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk@X-Plus 5-Series", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json new file mode 100644 index 0000000000..1c0d325a37 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json @@ -0,0 +1,90 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_4", + "name": "Generic PLA Silk@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_retraction_length": [ + "0.5" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Generic" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.032" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "eng_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "hot_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..a7a736a95a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "aD9SNuHAOxVFczNM", + "name": "Generic PLA+ @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA+@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..e10196f45c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "QDAKF2VaO4MkiYZ7", + "name": "Generic PLA+ @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA+@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..62c8ce9de1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "kNONALYQIZ8hkU2f", + "name": "Generic PLA+ @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA+@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..78599cb326 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "ehm8mY40hPq6Bjby", + "name": "Generic PLA+ @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA+@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json new file mode 100644 index 0000000000..e1d40b179f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json @@ -0,0 +1,60 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "Generic PLA+@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Generic" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature": [ + "230" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..525652742c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "blCxzXDeplxz7FrS", + "name": "Generic TPU 95A @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic TPU 95A@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..f17a6e91e5 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "mXwJpelMKlY7SQR8", + "name": "Generic TPU 95A @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic TPU 95A@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..072983e488 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "o9NLhClfpsJFEE3P", + "name": "Generic TPU 95A @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic TPU 95A@X-Plus 5-Series", + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json new file mode 100644 index 0000000000..d5f56d408b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json @@ -0,0 +1,81 @@ +{ + "type": "filament", + "filament_id": "QD_4_0_50", + "name": "Generic TPU 95A@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "30" + ], + "cool_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "35" + ], + "filament_adhesiveness_category": [ + "600" + ], + "filament_density": [ + "1.21" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_type": [ + "TPU" + ], + "filament_vendor": [ + "Generic" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "hot_plate_temp": [ + "35" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature": [ + "230" + ], + "pressure_advance": [ + "0.1" + ], + "supertack_plate_temp_initial_layer": [ + "30" + ], + "supertack_plate_temp": [ + "30" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "35" + ], + "textured_cool_plate_temp_initial_layer": [ + "30" + ], + "textured_cool_plate_temp": [ + "30" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..2346539b73 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "uarx8NrJerlKsoA8", + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..4566ece152 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "T52l6W0u1uoiXrAx", + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..bb16d32b06 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "krTIEBmeK9q2R60M", + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..19b4ce995f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "B99z7PiwClkWtyqv", + "name": "HATCHBOX ABS @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX ABS@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json new file mode 100644 index 0000000000..3f5987240c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "name": "HATCHBOX ABS@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.05" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "ABS" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..dc87553374 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "2y03Jbrd8epf06MW", + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PETG@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..21441a8d3e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "KHbEUzPhVICXYhTs", + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..85219cea79 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "3HPxSQqEM8XGZqgU", + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..c6b4b699cd --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "eZnTfUmPGkeoEP87", + "name": "HATCHBOX PETG @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PETG@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json new file mode 100644 index 0000000000..5f794e561c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "name": "HATCHBOX PETG@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.056" + ], + "slow_down_layer_time": [ + "8" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..a1838c2041 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "Sn0LAKII01kQONZS", + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..82e54e389e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "HWmejqWfehK4LG6C", + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..d6ac4c9a7e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "zjIVoA34wN8AT6cp", + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..5b89e541e3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "sTjweBRTvE0P6YtE", + "name": "HATCHBOX PLA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "HATCHBOX PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json new file mode 100644 index 0000000000..094e540793 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "HATCHBOX PLA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_adhesiveness_category": [ + "100" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "HATCHBOX" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..7194b54b7f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "tLj2E2dWAdLKpC4K", + "name": "Overture ABS @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.054" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..5e50aa5dbc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "1IkBG0ywAkk3VhOd", + "name": "Overture ABS @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.033" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..9bacef9d3a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "4SXA27uTG5kcbnAq", + "name": "Overture ABS @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.02" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..a53148ed26 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "AzC8XjbkzsxEPDMG", + "name": "Overture ABS @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json new file mode 100644 index 0000000000..ea12b78ead --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "name": "Overture ABS@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.12" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "filament_type": [ + "ABS" + ], + "filament_vendor": [ + "Overture" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "255" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.033" + ], + "slow_down_layer_time": [ + "6" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..f209b21a6e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "2TAd2Dlk6KPvvmMg", + "name": "Overture PLA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.062" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..a625953f60 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "1rKASIobH0DqQUeH", + "name": "Overture PLA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.037" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..5a3dfdee8f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "UWQ7bLf74AxEPDdc", + "name": "Overture PLA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.019" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..86d8605933 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "bIg1NW0EwTlmRNAF", + "name": "Overture PLA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Overture PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json new file mode 100644 index 0000000000..571eb2bbeb --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "Overture PLA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Overture" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "10" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..0618d3c36f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "AJYooe7fIzg43McT", + "name": "PolyLite ABS @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.054" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..36e012b0d6 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "S0uCyMruXw5waEYf", + "name": "PolyLite ABS @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.033" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..1bf7cdf030 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "oYlfF3MMF5DEeJpK", + "name": "PolyLite ABS @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.02" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..9d1f541dfc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "hHXz74Ps9x4T7kZl", + "name": "PolyLite ABS @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite ABS@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json new file mode 100644 index 0000000000..48b6caa32b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "name": "PolyLite ABS@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.12" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "filament_type": [ + "ABS" + ], + "filament_vendor": [ + "Polymaker" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "255" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.033" + ], + "slow_down_layer_time": [ + "6" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..f823b38e67 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "kKfybaeH6Llb3Vdc", + "name": "PolyLite PLA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.062" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..b7f3ef07f6 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "hzEsCxIKwuV2ubrz", + "name": "PolyLite PLA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.037" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..8b98d3842a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "PODs7XKIgMiJZI5x", + "name": "PolyLite PLA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.019" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..f4b6b8c2ee --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "LQ1rP7NSTjw2moHk", + "name": "PolyLite PLA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "PolyLite PLA@X-Plus 5-Series", + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json new file mode 100644 index 0000000000..5b37f7ae8a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "PolyLite PLA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Polymaker" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "10" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..78389ceeb5 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "p9cDXBgbjwjOX5me", + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Polymaker PLA-HT@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.062" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..9f77b41119 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "TpI2jqmcVygyTO8N", + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Polymaker PLA-HT@X-Plus 5-Series", + "pressure_advance": [ + "0.037" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..3c46385369 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "69AgpjCCTxF5ffW1", + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Polymaker PLA-HT@X-Plus 5-Series", + "pressure_advance": [ + "0.019" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..788db83504 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "tcoQNICpWYGdE24e", + "name": "Polymaker PLA-HT @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Polymaker PLA-HT@X-Plus 5-Series", + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json new file mode 100644 index 0000000000..f3c54e81f1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "name": "Polymaker PLA-HT@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "Polymaker" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature": [ + "215" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "10" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..254422bb19 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "8SvrXXv743rCyyeN", + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "pressure_advance": [ + "0.03" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..1bd37ac08a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "YviPsfkGYv6Q3r3T", + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..cbb361fb9c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "YLOcbaCppSmQ1twv", + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "24.5" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..912dc04ed7 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "setting_id": "Klsu6iALsWgbg3vK", + "name": "QIDI ABS Odorless @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "24.5" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json new file mode 100644 index 0000000000..a2f14984a0 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_14", + "name": "QIDI ABS Odorless@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.02" + ], + "filament_flow_ratio": [ + "0.92" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_type": [ + "ABS" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "7.4" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "temperature_vitrification": [ + "100" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..99a9e16c08 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "bTwNiMSHwex0gxrd", + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..30086f5dce --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "mcPlHcr33zPv3aIf", + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..47278a61b1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "0np334pRpl3qa8Uq", + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..f79fcfdfac --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "Vp2bJxFhsPvW6K0P", + "name": "QIDI ABS Rapido @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json new file mode 100644 index 0000000000..0ecb9c656c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_11", + "name": "QIDI ABS Rapido@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.05" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "ABS" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "7.4" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..34632b393f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "U69dFGlkEk9twDF6", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..59492201a5 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "XaJbATawtVrUsXpz", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..93b4cb3aba --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "Xb0A7YqmqP2peSM3", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..c4edce73be --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "4AA9wGDNebbTHf4X", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json new file mode 100644 index 0000000000..f3603eda99 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_13", + "name": "QIDI ABS Rapido Metal@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_type": [ + "ABS" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "7.4" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..d81d623d33 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "V9h7YWcaTejmFCh0", + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..88ee5f2146 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "hO8H1GUCzMkwFtQH", + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..997e67a0f0 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "LskHdeEngKlRCSmg", + "name": "QIDI ABS-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json new file mode 100644 index 0000000000..2ab2fbfc84 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_12", + "name": "QIDI ABS-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "45" + ], + "chamber_temperatures": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.15" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "ABS-GF" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "5.3" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "270" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..d417265f5a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "FgeIGgT8xZCm4UO8", + "name": "QIDI ASA @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA@X-Plus 5-Series", + "chamber_temperatures": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..ed86d714a1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "VRicNQizOCKkgLBJ", + "name": "QIDI ASA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..a7870accce --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "KDjln7WdhhbSztX3", + "name": "QIDI ASA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..30496917d1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "X9TOBuOKBbJIoF7y", + "name": "QIDI ASA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json new file mode 100644 index 0000000000..97127fe57b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_18", + "name": "QIDI ASA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.07" + ], + "filament_flow_ratio": [ + "0.92" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_type": [ + "ASA" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "4.9" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "255" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..08a4ed22a9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "g5F7NP83yx0Iub4c", + "name": "QIDI ASA-Aero @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA-Aero@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json new file mode 100644 index 0000000000..14423fd58c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_19", + "name": "QIDI ASA-Aero@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.03" + ], + "filament_flow_ratio": [ + "0.7" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.01" + ], + "filament_retraction_minimum_travel": [ + "0" + ], + "filament_type": [ + "ASA-AERO" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "filament_wipe": [ + "0" + ], + "filament_z_hop": [ + "0" + ], + "impact_strength_z": [ + "3.4" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "260" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..be97fdfd58 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "Aqh00EJ8ZaiPCU6F", + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..cd8bbc98bd --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "fgwkL5igRvM0leJf", + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA-CF@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..3095a16138 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "setting_id": "bDAcTzwdiXT4fFnT", + "name": "QIDI ASA-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA-CF@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json new file mode 100644 index 0000000000..9a8958c860 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_20", + "name": "QIDI ASA-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "35" + ], + "fan_max_speed": [ + "25" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.07" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "ASA-CF" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "4.9" + ], + "nozzle_temperature_initial_layer": [ + "275" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature": [ + "275" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "12" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..165c5cfb62 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "vDXAb7Kkj7nFc8go", + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA12-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..ad26af1f86 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "KjZ3jgo2Zoklkk0F", + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA12-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..5324f0c183 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "Xcl3UPe7tmXw9hXa", + "name": "QIDI PA12-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA12-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json new file mode 100644 index 0000000000..3464bed9a3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_27", + "name": "QIDI PA12-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.09" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PA12-CF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "5.7" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..fbe5870078 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "qTjsP8oR1sbh56Gh", + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA6-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..016f9bb2e4 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "4kzkdzJmDYGic0aa", + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA6-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..ba0d981c29 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "97peVPSildpjdDQj", + "name": "QIDI PA6-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA6-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json new file mode 100644 index 0000000000..9b6a66f61b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_25", + "name": "QIDI PA6-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.09" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PA6-CF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "5.7" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "300" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..68d604414d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "3iw5hq0KFa9NU4b3", + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..0ca7290e39 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "7eBDjJbetxOC3aNT", + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..b3b88d5f28 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "hkIpB0QZOGZpoYFX", + "name": "QIDI PAHT-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json new file mode 100644 index 0000000000..fcfccfe0f6 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_30", + "name": "QIDI PAHT-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.2" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PAHT-CF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "13.3" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "nozzle_temperature": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "180" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..9638d33afc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "R7cctkITobdKgMkY", + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..4d926ff370 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "cVzpHjaSzsDm0bwG", + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.015" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..ce49e3ef04 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "N0aUkpcJD6CvODci", + "name": "QIDI PAHT-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json new file mode 100644 index 0000000000..3c0f1056ed --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_31", + "name": "QIDI PAHT-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PAHT-GF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "13.3" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "nozzle_temperature": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.027" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "180" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..e4842206ed --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "uYwbMiemSo7LxiqR", + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PC/ABS-FR@X-Plus 5-Series", + "pressure_advance": [ + "0.042" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..35c317e8d3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "Fxkv0PN8RU17fkB0", + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PC/ABS-FR@X-Plus 5-Series", + "pressure_advance": [ + "0.031" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..456a93a6d0 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "oKNGzYqymTnWQsBB", + "name": "QIDI PC/ABS-FR @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PC/ABS-FR@X-Plus 5-Series", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json new file mode 100644 index 0000000000..b6c6fb3b64 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_34", + "name": "QIDI PC/ABS-FR@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "50" + ], + "chamber_temperatures": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "cool_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "eng_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "200" + ], + "filament_density": [ + "1.19" + ], + "filament_flow_ratio": [ + "0.92" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PC-ABS-FR" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "hot_plate_temp": [ + "100" + ], + "impact_strength_z": [ + "8" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "75%" + ], + "pressure_advance": [ + "0.082" + ], + "slow_down_layer_time": [ + "4" + ], + "supertack_plate_temp_initial_layer": [ + "65" + ], + "supertack_plate_temp": [ + "65" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_cool_plate_temp_initial_layer": [ + "65" + ], + "textured_cool_plate_temp": [ + "65" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..5fa07706a9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "hgdi1oL4EFzh0h7h", + "name": "QIDI PEBA 95A @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PEBA 95A@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..f44261951e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "iNZpBz1iklW3sJlj", + "name": "QIDI PEBA 95A @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PEBA 95A@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json new file mode 100644 index 0000000000..43410eabe1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json @@ -0,0 +1,96 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_36", + "name": "QIDI PEBA 95A@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "30" + ], + "cool_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "35" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_adhesiveness_category": [ + "600" + ], + "filament_density": [ + "1.15" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_type": [ + "PEBA" + ], + "filament_vendor": [ + "QIDI" + ], + "filament_z_hop": [ + "0" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "hot_plate_temp": [ + "35" + ], + "impact_strength_z": [ + "88.7" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.04" + ], + "slow_down_layer_time": [ + "14" + ], + "supertack_plate_temp_initial_layer": [ + "30" + ], + "supertack_plate_temp": [ + "30" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "35" + ], + "textured_cool_plate_temp_initial_layer": [ + "30" + ], + "textured_cool_plate_temp": [ + "30" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..bfdd1aed31 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "bILtWMlzBPi4Ft8a", + "name": "QIDI PET-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..cb78cf3afc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "E0Y6g3qpoERrgSUH", + "name": "QIDI PET-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.025" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..ae40d594ff --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "e2HuHVJZck2nKANa", + "name": "QIDI PET-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.025" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json new file mode 100644 index 0000000000..162cbec691 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_37", + "name": "QIDI PET-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "cool_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "800" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PET-CF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "4.5" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_layer_time": [ + "5" + ], + "temperature_vitrification": [ + "185" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "supertack_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..97029aeb25 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "2NHbKFmgDoN1oHlo", + "name": "QIDI PET-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..480d13bb65 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "cMlzOMKIIIro4H62", + "name": "QIDI PET-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..2cc0cfe2cb --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "evxG7nCDQx2Y5UV5", + "name": "QIDI PET-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json new file mode 100644 index 0000000000..84310856cc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json @@ -0,0 +1,111 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_38", + "name": "QIDI PET-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "50" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "50" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "cool_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "800" + ], + "filament_density": [ + "1.38" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PET-GF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "4.5" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "nozzle_temperature": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.022" + ], + "slow_down_layer_time": [ + "5" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "supertack_plate_temp": [ + "70" + ], + "temperature_vitrification": [ + "185" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..6689cca71a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "k4jOZFY5QV2bMKHK", + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Basic@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.054" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..c1b29f1b75 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "b55sLpGKCrWLiDPf", + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Basic@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..3be97a337f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "XcxbsZ4d8Dh21WX0", + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..92a57fb1b8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "9MEoOjLU7AOCvb9X", + "name": "QIDI PETG Basic @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json new file mode 100644 index 0000000000..46810f49c3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_39", + "name": "QIDI PETG Basic@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.054" + ], + "slow_down_layer_time": [ + "12" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..220a6ce55a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "oi5JKM4fwEYHefs0", + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Rapido@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.054" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..9fe3affac2 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "SZOwb16vrcdtaDzJ", + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Rapido@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..a550919113 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "4LKxL4N0ccD6vZ60", + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..b56b55d1ff --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "rsNDDt3IFUOMYV3O", + "name": "QIDI PETG Rapido @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json new file mode 100644 index 0000000000..fd506d8e74 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_41", + "name": "QIDI PETG Rapido@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "275" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.054" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..7708ebba0d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "k4kLQheLeWOw8bwp", + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..5c8c182a2b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "WEyrSDtW2CJeLQmg", + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..ad75cc5722 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "Morgo6GIzU3Voc0Q", + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..37c0beddb9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "DsoxBXKOjsENLEZf", + "name": "QIDI PETG Tough @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json new file mode 100644 index 0000000000..3e9f0a1cdf --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_40", + "name": "QIDI PETG Tough@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.056" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..03e72feba9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "2UJnG0rXeU2nCIQL", + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Translucent@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.054" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..545bd42538 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "S2DQ7jy5KqbiVNnV", + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Translucent@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..963916f76e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "G33dlk73weGNFNwg", + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Translucent@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..42bf38bde4 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "zqI9F8vplNFfm2pa", + "name": "QIDI PETG Translucent @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Translucent@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json new file mode 100644 index 0000000000..62ea937028 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_45", + "name": "QIDI PETG Translucent@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "250" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.054" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..04176974f5 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "cXbQtMQKmAFqwmqK", + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-CF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..ce16a13acf --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "YNIWSLXvW6kSPRFG", + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..e1ce42ee0a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "O0lwfGXO3BdPCask", + "name": "QIDI PETG-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json new file mode 100644 index 0000000000..fcddc636a8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_42", + "name": "QIDI PETG-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "filament_type": [ + "PETG-CF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "255" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.048" + ], + "slow_down_layer_time": [ + "6" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..46b3b1176a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "zfI1VXQ7E0re78CC", + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..4af6b7db02 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "zYEbjZPipK4BgHRO", + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..bf819e04a9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "5ef246YwGEK0eVCr", + "name": "QIDI PETG-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.04" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json new file mode 100644 index 0000000000..fa65907d3d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json @@ -0,0 +1,102 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_43", + "name": "QIDI PETG-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "45" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "300" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PETG-GF" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "10.6" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "255" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.056" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..4ec7f05eb9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "sfrpgBzPufKwgBCT", + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Basic@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..20dd378bd2 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "6ZscfuWENwCkdSYE", + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..574e748c98 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "pEry2GMq8UJEw7c7", + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..527eb00054 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "MTq8xcAKCWABLI2k", + "name": "QIDI PLA Basic @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json new file mode 100644 index 0000000000..0ee194dfb3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json @@ -0,0 +1,63 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_7", + "name": "QIDI PLA Basic@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "13.8" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..0078600f36 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "54iiCCwizthHtT1v", + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Matte Basic@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..d67aa77dc4 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "ojnl8sBbBL4QBL8q", + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Matte Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..6575396e45 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "XtZarwF2HIipdHjN", + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Matte Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..8c4584a70b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "TRkCNQeoDvLBaJMt", + "name": "QIDI PLA Matte Basic @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Matte Basic@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json new file mode 100644 index 0000000000..7796bf1faa --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json @@ -0,0 +1,63 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_8", + "name": "QIDI PLA Matte Basic@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "13.8" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..3ea3dac12f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "S56TixVPmXr4uFut", + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..178fcfd08d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "KATHrxoL84i7MiVJ", + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..2ad1d18a60 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "YE6WmGAG5Ua6bbap", + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..ffc9edfb78 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "KPqnbBv0Np93O02u", + "name": "QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json new file mode 100644 index 0000000000..1aa1803258 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json @@ -0,0 +1,60 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_1", + "name": "QIDI PLA Rapido@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "13.8" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..e469cf1fd1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "jlUpp5oaYSWwaNn1", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..3f74323770 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "E0gYAZUksoFlebuH", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..f45479c37f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "juxpaK6EosaHj2ok", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..7e4ec99248 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "OlgI3WQA3QLhPsdw", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json new file mode 100644 index 0000000000..d8cbd06ea1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_2", + "name": "QIDI PLA Rapido Matte@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.42" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "6.6" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..7506c80541 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "t9qUv1IlI5VJ8LoV", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..e2be1216f3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "ARcrUoVsGSM0RB1a", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..2b3fae0a1e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "A23HjUFAyt4GeHAW", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "pressure_advance": [ + "0.020" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..e6868b6772 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "nMpSP1jmsQIUjGPb", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json new file mode 100644 index 0000000000..404b7cd1e8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json @@ -0,0 +1,57 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_3", + "name": "QIDI PLA Rapido Metal@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "filament_type": [ + "PLA" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.20" + ], + "impact_strength_z": [ + "16.8" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..dfd789a216 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "IUU7TApRivYtrrt0", + "name": "QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Silk@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..286c1d3a36 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "lx9Dqv6EMmZ0C2SD", + "name": "QIDI PLA Silk @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Silk@X-Plus 5-Series", + "pressure_advance": [ + "0.021" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json new file mode 100644 index 0000000000..57c0c3e1dc --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json @@ -0,0 +1,84 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_4", + "name": "QIDI PLA Silk@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.24" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "4.6" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "eng_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "hot_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..c341f7c71d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "5PocTwpY0SnNzcdc", + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..5c08e7f67f --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "5NETSLSQlaoR2MYD", + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..7435222e8b --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "setting_id": "AUO7iSMEa6GDvM7Y", + "name": "QIDI PLA-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF@X-Plus 5-Series", + "filament_max_volumetric_speed": [ + "18" + ], + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json new file mode 100644 index 0000000000..1c4d8c99e3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json @@ -0,0 +1,75 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_5", + "name": "QIDI PLA-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_type": [ + "PLA-CF" + ], + "impact_strength_z": [ + "7.8" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.042" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [], + "close_additional_fan_first_x_layers": [ + "1" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..2c2d573713 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "FwWut7sJIMbe87XC", + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..9cc0556490 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "gDIuKCdgoP59Xc0G", + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.021" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..573f8e17f8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "D29sGCB9OI4cTn0S", + "name": "QIDI PPS-CF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json new file mode 100644 index 0000000000..c6be7046f6 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json @@ -0,0 +1,117 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_44", + "name": "QIDI PPS-CF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "65" + ], + "chamber_temperatures": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "110" + ], + "eng_plate_temp": [ + "110" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "0" + ], + "filament_adhesiveness_category": [ + "801" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "PPS-CF" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "hot_plate_temp": [ + "110" + ], + "impact_strength_z": [ + "2.8" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "nozzle_temperature_range_high": [ + "350" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "nozzle_temperature": [ + "320" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_layer_time": [ + "2" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "180" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "textured_plate_temp": [ + "110" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..de96ad5f7a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "5C6dIIgQOt4NiTu0", + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..470839ef59 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "aSd6UW4Mrlxpa15E", + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.021" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..6cc49dbd68 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "7JC2zAUgtGu5zSGo", + "name": "QIDI PPS-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-GF@X-Plus 5-Series", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json new file mode 100644 index 0000000000..757d4dbf3d --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json @@ -0,0 +1,117 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_46", + "name": "QIDI PPS-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "65" + ], + "chamber_temperatures": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "10" + ], + "filament_adhesiveness_category": [ + "801" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PPS-GF" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "impact_strength_z": [ + "2.8" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "nozzle_temperature_range_high": [ + "350" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "nozzle_temperature": [ + "320" + ], + "overhang_fan_speed": [ + "50" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "6" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "temperature_vitrification": [ + "180" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..5bd3b85fb9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "oMvDD9rKJGcezwpq", + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PAHT@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..37f474533e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "6BhbbuUP6HCVScDd", + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PAHT@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..f28e56c5b1 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "kA4fvvj6xZEhArXv", + "name": "QIDI Support For PAHT @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PAHT@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json new file mode 100644 index 0000000000..ed1222daa9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_32", + "name": "QIDI Support For PAHT@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "0" + ], + "filament_adhesiveness_category": [ + "800" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PAHT-S" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "4.5" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "30" + ], + "overhang_fan_threshold": [ + "95%" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_layer_time": [ + "6" + ], + "temperature_vitrification": [ + "218" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "80" + ], + "supertack_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "80" + ], + "textured_cool_plate_temp": [ + "80" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..615d9af041 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "0xy82KbAJD5uBara", + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PET/PA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..1e0c81424c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "2oCGYFdC4dfpNUw4", + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PET/PA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..2d47d18707 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "hFYahJkYIgmjcuPb", + "name": "QIDI Support For PET/PA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI Support For PET/PA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json new file mode 100644 index 0000000000..346c3cc3eb --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_33", + "name": "QIDI Support For PET/PA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "55" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "cool_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_cooling_layer_time": [ + "10" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "0" + ], + "filament_adhesiveness_category": [ + "800" + ], + "filament_density": [ + "1.16" + ], + "filament_flow_ratio": [ + "0.91" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PA-S" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "4.5" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature": [ + "280" + ], + "overhang_fan_speed": [ + "30" + ], + "overhang_fan_threshold": [ + "95%" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_layer_time": [ + "6" + ], + "temperature_vitrification": [ + "168" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "supertack_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..1f2db1eb25 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "ygLg4KVojo7YoG5K", + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU 95A-HF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..94e992d0e9 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "K98nPXclatc5HnIx", + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU 95A-HF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..e05faeed65 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "pTxBir6QC9KhWrLU", + "name": "QIDI TPU 95A-HF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU 95A-HF@X-Plus 5-Series", + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json new file mode 100644 index 0000000000..4721ab171c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json @@ -0,0 +1,84 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_50", + "name": "QIDI TPU 95A-HF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "30" + ], + "cool_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "35" + ], + "filament_adhesiveness_category": [ + "600" + ], + "filament_density": [ + "1.15" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_type": [ + "TPU" + ], + "filament_vendor": [ + "QIDI" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "hot_plate_temp": [ + "35" + ], + "impact_strength_z": [ + "88.7" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature": [ + "230" + ], + "pressure_advance": [ + "0.1" + ], + "supertack_plate_temp_initial_layer": [ + "30" + ], + "supertack_plate_temp": [ + "30" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "35" + ], + "textured_cool_plate_temp_initial_layer": [ + "30" + ], + "textured_cool_plate_temp": [ + "30" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..592ad5a51c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "KIIwoI87n5MkT83b", + "name": "QIDI TPU-Aero @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU-Aero@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..f18b67f608 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "eUNygrv7weqgX7e0", + "name": "QIDI TPU-Aero @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU-Aero@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json new file mode 100644 index 0000000000..b6eee90916 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json @@ -0,0 +1,93 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_49", + "name": "QIDI TPU-Aero@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "30" + ], + "cool_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "35" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_adhesiveness_category": [ + "600" + ], + "filament_density": [ + "1.15" + ], + "filament_flow_ratio": [ + "0.5" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_retraction_length": [ + "0" + ], + "filament_type": [ + "TPU-AERO" + ], + "filament_vendor": [ + "QIDI" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "hot_plate_temp": [ + "35" + ], + "impact_strength_z": [ + "88.7" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "14" + ], + "supertack_plate_temp_initial_layer": [ + "30" + ], + "supertack_plate_temp": [ + "30" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "35" + ], + "textured_cool_plate_temp_initial_layer": [ + "30" + ], + "textured_cool_plate_temp": [ + "30" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..8e88b23151 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "AtsowCGhOIw4GeRJ", + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..5a7687b51c --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "wqk4I1KaRyLEm12W", + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..2fe800d6ab --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "o2JjRsoi03ST3Wh2", + "name": "QIDI TPU-GF @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI TPU-GF@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json new file mode 100644 index 0000000000..b3f2f71866 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json @@ -0,0 +1,84 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_15", + "name": "QIDI TPU-GF@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "cool_plate_temp_initial_layer": [ + "30" + ], + "cool_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp": [ + "35" + ], + "filament_adhesiveness_category": [ + "600" + ], + "filament_density": [ + "1.15" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_type": [ + "TPU-GF" + ], + "filament_vendor": [ + "QIDI" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "hot_plate_temp": [ + "35" + ], + "impact_strength_z": [ + "88.7" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature": [ + "240" + ], + "pressure_advance": [ + "0.1" + ], + "supertack_plate_temp_initial_layer": [ + "30" + ], + "supertack_plate_temp": [ + "30" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "textured_plate_temp": [ + "35" + ], + "textured_cool_plate_temp_initial_layer": [ + "30" + ], + "textured_cool_plate_temp": [ + "30" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..ae7b99531e --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "RzZGtHGu2xKASwwu", + "name": "QIDI UltraPA @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..e9bfbe4362 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "0seF33ojhYF6lNM4", + "name": "QIDI UltraPA @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..6f03ff7b5a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "vfr7Lv94OHi4KOCw", + "name": "QIDI UltraPA @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json new file mode 100644 index 0000000000..9d86c06f95 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json @@ -0,0 +1,99 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_24", + "name": "QIDI UltraPA@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "55" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "55" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.21" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_type": [ + "UltraPA" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "15.5" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "nozzle_temperature": [ + "280" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "15" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "170" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..c88635f447 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "setting_id": "8h1ITuLzHYf0J4NA", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA-CF25@X-Plus 5-Series", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..66ac797bb8 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "WK63qDyLkG4fznPW", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA-CF25@X-Plus 5-Series", + "pressure_advance": [ + "0.022" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..282fed912a --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "53sirpAAiDOx0c8P", + "name": "QIDI UltraPA-CF25 @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI UltraPA-CF25@X-Plus 5-Series", + "pressure_advance": [ + "0.02" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json new file mode 100644 index 0000000000..73379541b3 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_26", + "name": "QIDI UltraPA-CF25@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "box_temperature_range_high": [ + "65" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_adhesiveness_category": [ + "400" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "UltraPA-CF25" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "impact_strength_z": [ + "15.5" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "nozzle_temperature": [ + "300" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "pressure_advance": [ + "0.026" + ], + "slow_down_layer_time": [ + "2" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "supertack_plate_temp": [ + "60" + ], + "temperature_vitrification": [ + "230" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_cool_plate_temp_initial_layer": [ + "60" + ], + "textured_cool_plate_temp": [ + "60" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..2232226b78 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "gIumq0YfeZrNDTZt", + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI WOOD Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.044" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..b9ecf201ba --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "qUjZ8AUjivOk8uCf", + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI WOOD Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..fc15698443 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "setting_id": "A2kztfG9PA7Qxh7r", + "name": "QIDI WOOD Rapido @Qidi X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI WOOD Rapido@X-Plus 5-Series", + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json new file mode 100644 index 0000000000..30428c7422 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json @@ -0,0 +1,66 @@ +{ + "type": "filament", + "filament_id": "QD_4_1_6", + "name": "QIDI WOOD Rapido@X-Plus 5-Series", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_x5_common", + "additional_cooling_fan_speed": [ + "100" + ], + "box_temperature_range_high": [ + "45" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "PLA" + ], + "impact_strength_z": [ + "5.6" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pressure_advance": [ + "0.044" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_cool_plate_temp": [ + "45" + ], + "compatible_printers": [] +} diff --git a/resources/profiles/Qidi/filament/X5/fdm_filament_x5_common.json b/resources/profiles/Qidi/filament/X5/fdm_filament_x5_common.json new file mode 100644 index 0000000000..a161158dc4 --- /dev/null +++ b/resources/profiles/Qidi/filament/X5/fdm_filament_x5_common.json @@ -0,0 +1,255 @@ +{ + "type": "filament", + "name": "fdm_filament_x5_common", + "from": "system", + "instantiation": "false", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "additional_fan_full_speed_layer": [ + "0" + ], + "bed_type": [ + "Cool Plate" + ], + "box_temperature_range_high": [ + "0" + ], + "box_temperature_range_low": [ + "0" + ], + "box_temperature": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "close_additional_fan_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "45" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "fan_cooling_layer_time": [ + "60" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "0" + ], + "filament_cooling_before_tower": [ + "0" + ], + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_dev_ams_drying_ams_limitations": [ + "1" + ], + "filament_dev_ams_drying_temperature": [ + "40.0", + "40.0", + "40.0", + "40.0" + ], + "filament_dev_ams_drying_time": [ + "8.0", + "8.0", + "8.0", + "8.0" + ], + "filament_dev_drying_softening_temperature": [ + "40.0" + ], + "filament_dev_ams_drying_heat_distortion_temperature": [ + "45.0" + ], + "filament_dev_drying_cooling_temperature": [ + "35.0" + ], + "filament_dev_chamber_drying_bed_temperature": [ + "90.0" + ], + "filament_dev_chamber_drying_time": [ + "12.0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; Filament-specific end gcode \n;END gcode for filament" + ], + "filament_extruder_compatibility": [ + "0" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_settings_id": [ + "" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + "; Filament start gcode" + ], + "filament_type": [ + "PLA" + ], + "filament_vendor": [ + "QIDI" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_wipe": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_ramming_travel_time": [ + "0" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_prime_volume": [ + "30" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "pressure_advance": [ + "0.042" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "supertack_plate_temp": [ + "45" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "60" + ] +} diff --git a/resources/profiles/Qidi/machine/Qidi Q2 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q2 0.4 nozzle.json index 6f3115dbd5..6a0a91b2ac 100644 --- a/resources/profiles/Qidi/machine/Qidi Q2 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q2 0.4 nozzle.json @@ -17,7 +17,7 @@ "cooling_tube_length": "0", "parking_pos_retraction": "0", "extra_loading_move": "5", - "change_filament_gcode": "G1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nBUFFER_MONITORING ENABLE=0\nDISABLE_ALL_SENSOR\nM106 S255\nMOVE_TO_TRASH\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-10 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\n; FLUSH_START\nM106 S25\nG1 E30 F300\n; FLUSH_END\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 X85 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM400\nM106 S255\nM104 S[new_filament_temp]\nINIT_SYNC_BUFFER_STATE\nBUFFER_MONITORING ENABLE=1\nG1 E10 F25 \nM109 S[new_filament_temp]\nG1 E-5 F1800\nCLEAR_OOZE\nTOOL_CHANGE_END\nG1 Y270 F8000\nM106 S0\nG1 E2 F1800\nENABLE_ALL_SENSOR\n", + "change_filament_gcode": "{if current_extruder != next_extruder}\nG1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nBUFFER_MONITORING ENABLE=0\nDISABLE_ALL_SENSOR\nM106 S255\nMOVE_TO_TRASH\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-10 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\n; FLUSH_START\nM106 S25\nG1 E30 F300\n; FLUSH_END\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 X85 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM400\nM106 S255\nM104 S[new_filament_temp]\nINIT_SYNC_BUFFER_STATE\nBUFFER_MONITORING ENABLE=1\nG1 E10 F25 \nM109 S[new_filament_temp]\nG1 E-5 F1800\nCLEAR_OOZE\nTOOL_CHANGE_END\nG1 Y270 F8000\nM106 S0\nG1 E2 F1800\nENABLE_ALL_SENSOR\n{endif}\n", "default_filament_profile": [ "QIDI PLA Rapido @Qidi Q2 0.4 nozzle" ], diff --git a/resources/profiles/Qidi/machine/Qidi Q2C 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q2C 0.4 nozzle.json index fbf61a6af9..9d4683885f 100644 --- a/resources/profiles/Qidi/machine/Qidi Q2C 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q2C 0.4 nozzle.json @@ -17,7 +17,7 @@ "cooling_tube_length": "0", "parking_pos_retraction": "0", "extra_loading_move": "5", - "change_filament_gcode": "G1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nBUFFER_MONITORING ENABLE=0\nDISABLE_ALL_SENSOR\nM106 S255\nMOVE_TO_TRASH\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-10 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\n; FLUSH_START\nM106 S25\nG1 E30 F300\n; FLUSH_END\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 X85 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM400\nM106 S255\nM104 S[new_filament_temp]\nINIT_SYNC_BUFFER_STATE\nBUFFER_MONITORING ENABLE=1\nG1 E10 F25 \nM109 S[new_filament_temp]\nG1 E-5 F1800\nCLEAR_OOZE\nTOOL_CHANGE_END\nG1 Y270 F8000\nM106 S0\nG1 E2 F1800\nENABLE_ALL_SENSOR\n", + "change_filament_gcode": "{if current_extruder != next_extruder}\nG1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nBUFFER_MONITORING ENABLE=0\nDISABLE_ALL_SENSOR\nM106 S255\nMOVE_TO_TRASH\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-10 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\n; FLUSH_START\nM106 S25\nG1 E30 F300\n; FLUSH_END\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 X85 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 X92 F9000\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM400\nM106 S255\nM104 S[new_filament_temp]\nINIT_SYNC_BUFFER_STATE\nBUFFER_MONITORING ENABLE=1\nG1 E10 F25 \nM109 S[new_filament_temp]\nG1 E-5 F1800\nCLEAR_OOZE\nTOOL_CHANGE_END\nG1 Y270 F8000\nM106 S0\nG1 E2 F1800\nENABLE_ALL_SENSOR\n{endif}\n", "default_filament_profile": [ "QIDI PLA Rapido @Qidi Q2C 0.4 nozzle" ], diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json index be754eb338..ef26c0a620 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json @@ -13,7 +13,7 @@ "bed_exclude_area": [ "0x0, 16x0, 16x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 6x13, 6x23, 0x23, 0x13, 0x13, 0x13, 0x13, 0x387, 53x387, 53x390, 0x390, 0x387, 0x387, 0x397, 0x390, 338x390, 338x384, 390x384, 390x390, 0x390" ], - "change_filament_gcode": "G1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\nM104 S{old_filament_temp - 10}\nM106 S255\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-2 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\nM106 S0\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\nM109.0 S{(nozzle_temperature_range_high[current_extruder])-25}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\nM109.0 S{(nozzle_temperature_range_high[next_extruder])-25}\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\nG1 Y403.5 F2000\nG1 E{flush_length_1} F{old_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 E{flush_length_3} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\nM400\nM106 S180\nM104 S{new_filament_temp - 10}\nG1 E1 F10\nM109.1 S{new_filament_temp - 10}\nG1 E-4 F1000\nG4 P2000\nM204 S5000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F3000\nG1 X145 F2000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F8000\nG1 Y380\nG1 X116\nG4 P2000\nG1 Y403 F3000\nG1 X130\nG1 X100 F8000\nG1 Y380\nG1 X116\nG1 Y403 F3000\nG1 X130 F3000\nG1 X100 F8000\nG1 Y380\nM104 S[new_filament_temp]\nTOOL_CHANGE_END\nG1 E{new_retract_length_toolchange + 1} F{new_filament_e_feedrate}\nENABLE_ALL_SENSOR\n", + "change_filament_gcode": "{if current_extruder != next_extruder}\nG1 Z{max_layer_z + 3.0} F1200\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\nM104 S{old_filament_temp - 10}\nM106 S255\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-2 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\nM106 S0\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\nM109.0 S{(nozzle_temperature_range_high[current_extruder])-25}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\nM109.0 S{(nozzle_temperature_range_high[next_extruder])-25}\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\nG1 Y403.5 F2000\nG1 E{flush_length_1} F{old_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 E{flush_length_3} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\nM400\nM106 S180\nM104 S{new_filament_temp - 10}\nG1 E1 F10\nM109.1 S{new_filament_temp - 10}\nG1 E-4 F1000\nG4 P2000\nM204 S5000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F3000\nG1 X145 F2000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F8000\nG1 Y380\nG1 X116\nG4 P2000\nG1 Y403 F3000\nG1 X130\nG1 X100 F8000\nG1 Y380\nG1 X116\nG1 Y403 F3000\nG1 X130 F3000\nG1 X100 F8000\nG1 Y380\nM104 S[new_filament_temp]\nTOOL_CHANGE_END\nG1 E{new_retract_length_toolchange + 1} F{new_filament_e_feedrate}\nENABLE_ALL_SENSOR\n{endif}\n", "default_filament_profile": [ "QIDI PLA Rapido @Qidi X-Max 4 0.4 nozzle" ], diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json index c4e758a451..82e9da78cb 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json @@ -60,7 +60,7 @@ "2" ], "single_extruder_multi_material": "1", - "change_filament_gcode": "{if max_layer_z < 12}\nG1 Z15 F1200\n{else}\nG1 Z{max_layer_z + 3.0} F1200\n{endif}\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\n{if long_retractions_when_cut[previous_extruder]}\nMOVE_TO_TRASH\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM400\n{else}\nG1 E-5 F{old_filament_e_feedrate}\n{endif}\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM400\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\nM106 S0\nM106 P2 S0\nUNLOAD_T[current_extruder]\nG92 E0\nM83\nG1 E2 F50\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={nozzle_temperature_range_high[current_extruder]} WAIT=1\n{else}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={nozzle_temperature_range_high[next_extruder]} WAIT=1\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\nM400\nM106 S60\n; FLUSH_START\nG1 E1 F50\nG1 E{65.5 * 0.58} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E{65.5 * 0.18} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E{65.5 * 0.18} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{if flush_length_1 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_1 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E{flush_length_1 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E{flush_length_1 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM104 S[new_filament_temp]\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nM109 S[new_filament_temp]\nG92 E0\nM400\nCLEAR_FLUSH\nCLEAR_OOZE\nM400\nM106 S0\nTOOL_CHANGE_END\nG1 Y305 F9000\nENABLE_ALL_SENSOR", + "change_filament_gcode": "{if current_extruder != next_extruder}\n{if max_layer_z < 12}\nG1 Z15 F1200\n{else}\nG1 Z{max_layer_z + 3.0} F1200\n{endif}\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\n{if long_retractions_when_cut[previous_extruder]}\nMOVE_TO_TRASH\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\nM400\n{else}\nG1 E-5 F{old_filament_e_feedrate}\n{endif}\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM400\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\n{endif}\nM106 S0\nM106 P2 S0\nUNLOAD_T[current_extruder]\nG92 E0\nM83\nG1 E2 F50\nT[next_extruder]\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={nozzle_temperature_range_high[current_extruder]} WAIT=1\n{else}\nSET_HEATER_TEMPERATURE HEATER=extruder TARGET={nozzle_temperature_range_high[next_extruder]} WAIT=1\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\nM400\nM106 S60\n; FLUSH_START\nG1 E1 F50\nG1 E{65.5 * 0.58} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E{65.5 * 0.18} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E{65.5 * 0.18} F{old_filament_e_feedrate}\nG1 E{65.5 * 0.02} F50\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{if flush_length_1 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_1 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E{flush_length_1 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E{flush_length_1 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_1 * 0.02} F50\nG1 E-[old_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[old_retract_length_toolchange] F300\nG1 E{flush_length_2 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_3 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nCLEAR_FLUSH\nM400\nM106 S60\n; FLUSH_START\nG1 E[new_retract_length_toolchange] F300\nG1 E{flush_length_4 * 0.58} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E-[new_retract_length_toolchange] F1800\n; FLUSH_END\n{endif}\nM104 S[new_filament_temp]\nM400\nM106 S255\nG91\nG1 X-5 F60\nG1 X5 F60\nG90\nM109 S[new_filament_temp]\nG92 E0\nM400\nCLEAR_FLUSH\nCLEAR_OOZE\nM400\nM106 S0\nTOOL_CHANGE_END\nG1 Y305 F9000\nENABLE_ALL_SENSOR\n{endif}", "is_support_multi_box": "0", "machine_pause_gcode": "PAUSE", "thumbnails": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..54fed33aea --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.2 nozzle.json @@ -0,0 +1,28 @@ +{ + "type": "machine", + "name": "Qidi X-Plus 5 0.2 nozzle", + "inherits": "Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "setting_id": "prjWhtWxCsXqcrHr", + "instantiation": "true", + "printer_model": "Qidi X-Plus 5", + "printer_variant": "0.2", + "default_filament_profile": [ + "QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @X-Plus 5 0.2 nozzle", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.04" + ], + "nozzle_diameter": [ + "0.2" + ], + "printer_agent": "qidi", + "retraction_length": [ + "0.4" + ], + "support_box_temp_control": "1" +} diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.4 nozzle.json new file mode 100644 index 0000000000..f23f86af2a --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.4 nozzle.json @@ -0,0 +1,88 @@ +{ + "type": "machine", + "name": "Qidi X-Plus 5 0.4 nozzle", + "inherits": "fdm_machine_x_common", + "from": "system", + "setting_id": "exeoc5LTdCkPeWLD", + "instantiation": "true", + "printer_model": "Qidi X-Plus 5", + "auxiliary_fan": "1", + "bed_exclude_area": [ + "0x0,9x0,9x13,0x13" + ], + "box_id": "4", + "change_filament_gcode": "{if current_extruder != next_extruder}\n{if max_layer_z + 3 > max_print_height}\nG0 Z{max_print_height} F1200\n{else}\nG0 Z{max_layer_z + 3} F1200\n{endif}\nTOOL_CHANGE_START F=[current_extruder] T=[next_extruder]\nDISABLE_ALL_SENSOR\nM104 S{old_filament_temp - 10}\nM106 S255\n{if long_retractions_when_cut[previous_extruder]}\nG1 E-{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{else}\nG1 E-5 F{old_filament_e_feedrate}\n{endif}\nM400\nCUT_FILAMENT T=[current_extruder]\nMOVE_TO_TRASH\nM106 P2 S0\nUNLOAD_T[current_extruder]\nT[next_extruder]\nM106 S0\n{if nozzle_temperature_range_high[current_extruder] >= nozzle_temperature_range_high[next_extruder]}\nM104 S{nozzle_temperature_range_high[current_extruder]}\nM109.0 S{(nozzle_temperature_range_high[current_extruder])-25}\n{else}\nM104 S{nozzle_temperature_range_high[next_extruder]}\nM109.0 S{(nozzle_temperature_range_high[next_extruder])-25}\n{endif}\n{if long_retractions_when_cut[previous_extruder]}\nG1 E{retraction_distances_when_cut[previous_extruder]} F{old_filament_e_feedrate}\n{endif}\n{if flush_length_1 > 1}\n; FLUSH_START\nG1 E{flush_length_1} F{old_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_3 > 1}\n; FLUSH_START\nG1 E{flush_length_3} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4} F{new_filament_e_feedrate * 0.5}\n; FLUSH_END\n{endif}\nM400\nM106 S180\nM104 S{new_filament_temp - 10}\nG1 E1 F10\nM109.1 S{new_filament_temp - 10}\nG1 E-4 F1000\nG4 P2000\nM204 S5000\nG1 X109 F8000\nG1 X95 F5000\nG1 X109 F8000\nG1 X95 F5000\nG1 X140 F10000\nG1 Y319\nG1 X110\nG4 P2000\nG1 Y339 F2000\nG1 X123 F6000\nG1 X110\nG1 X123\nG1 X110\nG1 X123\nG1 X110\nG1 X123\nG1 X95\nG1 Y319 F10000\nM104 S[new_filament_temp]\nTOOL_CHANGE_END\nG1 E{new_retract_length_toolchange} F{new_filament_e_feedrate}\nENABLE_ALL_SENSOR\n{endif}", + "default_bed_type": "Textured PEI Plate", + "default_filament_profile": [ + "QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle" + ], + "default_print_profile": "0.20mm Standard @X-Plus 5", + "enable_long_retraction_when_cut": "2", + "extruder_clearance_dist_to_rod": "42", + "extruder_clearance_height_to_lid": "168", + "extruder_clearance_height_to_rod": "42", + "extruder_clearance_max_radius": "75", + "fan_direction": "left", + "gcode_flavor": "klipper", + "is_support_3mf": "1", + "is_support_mqtt": "1", + "is_support_multi_box": "1", + "is_support_polar_cooler": "1", + "is_support_timelapse": "1", + "layer_change_gcode": "{if timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\n{if layer_z + 0.4 > max_print_height}\nG2 Z{max_print_height} I0.86 J0.86 P1 F20000 ; spiral lift a little\n{else}\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\n{endif}\nMOVE_TO_TRASH\n{if layer_z <=25}\nG1 Z25\n{endif}\nG92 E0\nM400\nTIMELAPSE_TAKE_FRAME\nG1 E[retraction_length] F300\nG1 X140 F8000\nG1 Y319\n{if layer_z <=25}\nG1 Z[layer_z]\n{endif}\n{elsif timelapse_type == 0} ; timelapse without wipe tower\nTIMELAPSE_TAKE_FRAME\n{endif}\nG92 E0\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}", + "machine_end_gcode": "SET_PRINT_MAIN_STATUS MAIN_STATUS=print_end\nDISABLE_BOX_HEATER\nM141 S0\nM140 S0\nDISABLE_ALL_SENSOR\nG1 E-3 F1800\n{if max_layer_z + 3 > max_print_height}\nG0 Z{max_print_height} F600\n{else}\nG0 Z{max_layer_z + 3} F600\n{endif}\nUNLOAD_FILAMENT T=[current_extruder]\nG0 Y320 F12000\nG0 X105 Y320 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}\nM104 S0\nPRINT_END", + "machine_max_acceleration_x": [ + "20000" + ], + "machine_max_acceleration_y": [ + "20000" + ], + "machine_max_jerk_e": [ + "4" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "4" + ], + "machine_max_speed_x": [ + "600" + ], + "machine_max_speed_y": [ + "600" + ], + "machine_max_speed_z": [ + "20" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": ";===== PRINT_PHASE_INIT =====\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nSET_PRINT_MAIN_STATUS MAIN_STATUS=print_start\nM220 S100\nM221 S100\nDISABLE_ALL_SENSOR\nM1002 R1\nM107\nCLEAR_PAUSE\nM140 S[bed_temperature_initial_layer_single]\nM141 S[chamber_temperature]\nG29.0\nSET_PRINT_SUB_STATUS SUB_STATUS=tool_head_reset\nG28\n\n;===== BOX_PREPAR =====\nSET_PRINT_SUB_STATUS SUB_STATUS=change_filament\nBOX_PRINT_START EXTRUDER=[initial_no_support_extruder] HOTENDTEMP={nozzle_temperature_range_high[initial_tool]}\nM400\nEXTRUSION_AND_FLUSH HOTEND=[nozzle_temperature_initial_layer]\n\n;===== CLEAR_NOZZLE =====\nSET_PRINT_SUB_STATUS SUB_STATUS=flush_filament\nG1 Z20 F480\nMOVE_TO_TRASH\n{if chamber_temperature[0] == 0}\nM106 P3 S[during_print_exhaust_fan_speed]\n{else}\nM106 P3 S0\n{endif}\nM1004\nM106 S0\nM109 S[nozzle_temperature_initial_layer]\nG92 E0\nM83\nG1 E5 F80\nG1 E200 F300\nM400\nM106 S255\nG1 E-3 F1000\nM104 S140\nSET_PRINT_SUB_STATUS SUB_STATUS=clear_nozzle\nM109.1 S{nozzle_temperature_initial_layer[0]-30}\nM204 S10000\nG1 X109 F10000\nG1 X95 F6000\nG1 X109 F10000\nG1 X95 F6000\nG1 X109 F10000\nG1 X95 F6000\nG1 Y318\nG1 X151 F15000\nG1 Y327\nG1 Z5 F480\nM400\nprobe samples=1\nG91\nG1 Z0.1\nG90\nM106 S255\nM109.1 S150\nG91\nG1 X20 F200\nG1 Y3\nG1 X-20\nG1 Y-3\nG1 X20\nG90\nG2 I0.5 J0.5 F480\nG2 I0.5 J0.5\nG2 I0.5 J0.5\nG1 Z10\nG1 Y318 F12000\nG1 X77\nG1 Y338 F2000\nG1 X95 F12000\nG1 X123\nG1 X110\nG1 X123\nG1 X110\nG1 X123\nG1 X110\nG1 X123\nG1 X110\nG1 X140\nG1 X160 Y160\nM106 S0\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_bed_temp\nM190 S[bed_temperature_initial_layer_single]\nSET_PRINT_SUB_STATUS SUB_STATUS=wait_chamber_temp\nM191 S[chamber_temperature]\nG1 Y-2 F15000\nG1 X15\nG1 X-2 F5000\nG4 P1000\nG1 X-1 F1000\nG1 X-2 F5000\nG4 P1000\nG1 E-4 F1800\nG1 X15 F3000\nG1 X20 Y20 F15000\nSET_PRINT_SUB_STATUS SUB_STATUS=z_tilt_adjust\nZ_TILT_ADJUST\nSET_PRINT_SUB_STATUS SUB_STATUS=auto_bed_adjust\nG29\nM1002 A1\nG1 X160 Y160 Z10 F20000\nM1006 Z{10 - ((nozzle_temperature_initial_layer[initial_tool] - 130) / 14 - 5.0) / 100}\nG0 Y-1\nM109 S[nozzle_temperature_initial_layer]\nENABLE_ALL_SENSOR\n\n;===== PRINT_START =====\n; LAYER_HEIGHT: 0.2\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nprobe samples=1\nG91\nG0 Z0.6 F480\nG90\nG1 X140 Y1 F20000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 X180 E20 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 Z1 F480\nSET_PRINT_MAIN_STATUS MAIN_STATUS=printing", + "nozzle_diameter": [ + "0.4" + ], + "nozzle_volume": [ + "125" + ], + "printable_area": [ + "0x0", + "320x0", + "320x320", + "0x320", + "0x0" + ], + "printable_height": "300", + "printer_agent": "qidi", + "printer_settings_id": "Qidi", + "retract_lift_below": [ + "299" + ], + "support_box_temp_control": "1", + "support_multi_bed_types": "1", + "thumbnail_size": [ + "50x50" + ], + "use_3mf": "1" +} diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..649462eab9 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.6 nozzle.json @@ -0,0 +1,31 @@ +{ + "type": "machine", + "name": "Qidi X-Plus 5 0.6 nozzle", + "inherits": "Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "setting_id": "C4EIoDQYYzDGANJA", + "instantiation": "true", + "printer_model": "Qidi X-Plus 5", + "printer_variant": "0.6", + "default_filament_profile": [ + "QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle" + ], + "default_print_profile": "0.30mm Standard @X-Plus 5 0.6 nozzle", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ], + "nozzle_diameter": [ + "0.6" + ], + "printer_agent": "qidi", + "retraction_length": [ + "1.4" + ], + "retraction_minimum_travel": [ + "3" + ], + "support_box_temp_control": "1" +} diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..ed932902f9 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 5 0.8 nozzle.json @@ -0,0 +1,31 @@ +{ + "type": "machine", + "name": "Qidi X-Plus 5 0.8 nozzle", + "inherits": "Qidi X-Plus 5 0.4 nozzle", + "from": "system", + "setting_id": "5eqkluxp0SrRzhV7", + "instantiation": "true", + "printer_model": "Qidi X-Plus 5", + "printer_variant": "0.8", + "default_filament_profile": [ + "QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle" + ], + "default_print_profile": "0.40mm Standard @X-Plus 5 0.8 nozzle", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "nozzle_diameter": [ + "0.8" + ], + "printer_agent": "qidi", + "retract_length_toolchange": [ + "3" + ], + "retraction_length": [ + "3" + ], + "support_box_temp_control": "1" +} diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 5.json b/resources/profiles/Qidi/machine/Qidi X-Plus 5.json new file mode 100644 index 0000000000..afc1d9af54 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 5.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Qidi X-Plus 5", + "model_id": "Qidi-XPlus-5", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "machine_tech": "FFF", + "family": "Qidi", + "bed_model": "qidi_xplus5_buildplate_model.stl", + "bed_texture": "qidi_xplus5_buildplate_texture.svg", + "hotend_model": "qidi_xseries_gen3_hotend.stl", + "default_materials": "Generic ABS @Qidi X-Plus 5 0.4 nozzle;Generic PLA @Qidi X-Plus 5 0.4 nozzle;QIDI ABS Odorless @Qidi X-Plus 5 0.4 nozzle;QIDI ABS Rapido @Qidi X-Plus 5 0.4 nozzle;QIDI PLA Rapido @Qidi X-Plus 5 0.2 nozzle;QIDI PLA Rapido @Qidi X-Plus 5 0.4 nozzle;QIDI PLA Rapido @Qidi X-Plus 5 0.6 nozzle;QIDI PLA Rapido @Qidi X-Plus 5 0.8 nozzle;QIDI PLA Rapido Matte @Qidi X-Plus 5 0.4 nozzle;QIDI PLA-CF @Qidi X-Plus 5 0.4 nozzle;Generic PLA Silk @Qidi X-Plus 5 0.4 nozzle;QIDI PLA Silk @Qidi X-Plus 5 0.4 nozzle;QIDI ASA @Qidi X-Plus 5 0.4 nozzle;QIDI PETG Basic @Qidi X-Plus 5 0.4 nozzle;QIDI PETG Rapido @Qidi X-Plus 5 0.4 nozzle;QIDI PETG Tough @Qidi X-Plus 5 0.4 nozzle;QIDI PETG Translucent @Qidi X-Plus 5 0.4 nozzle;QIDI PLA Basic @Qidi X-Plus 5 0.4 nozzle;QIDI PLA Matte Basic @Qidi X-Plus 5 0.4 nozzle;Generic PETG @Qidi X-Plus 5 0.4 nozzle" +} diff --git a/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..6ef2deee1a --- /dev/null +++ b/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5 0.2 nozzle.json @@ -0,0 +1,70 @@ +{ + "type": "process", + "setting_id": "ojwggKwtZ95dDdGn", + "name": "0.08mm High Quality @X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "5", + "bottom_shell_layers": "5", + "bridge_flow": "1", + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "initial_layer_infill_speed": [ + "70" + ], + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": [ + "40" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.22", + "inner_wall_speed": [ + "150" + ], + "internal_solid_infill_line_width": "0.22", + "layer_height": "0.08", + "line_width": "0.22", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.22", + "outer_wall_speed": [ + "100" + ], + "overhang_1_4_speed": [ + "60" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": [ + "100" + ], + "support_bottom_z_distance": "0.08", + "support_line_width": "0.22", + "support_top_z_distance": "0.08", + "top_color_penetration_layers": "7", + "top_shell_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "500" + ], + "wall_loops": "4", + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5.json b/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5.json new file mode 100644 index 0000000000..5b76c79ef4 --- /dev/null +++ b/resources/profiles/Qidi/process/0.08mm High Quality @X-Plus 5.json @@ -0,0 +1,73 @@ +{ + "type": "process", + "setting_id": "pdbmnAHtrlkeD1D6", + "name": "0.08mm High Quality @X-Plus 5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "7", + "bottom_shell_layers": "7", + "bridge_flow": "1", + "default_acceleration": [ + "4000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "210" + ], + "initial_layer_infill_speed": [ + "105" + ], + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_speed": [ + "120" + ], + "internal_solid_infill_speed": [ + "150" + ], + "ironing_flow": "8%", + "layer_height": "0.08", + "outer_wall_acceleration": [ + "2000" + ], + "outer_wall_speed": [ + "60" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_3_4_speed": [ + "10" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "0", + "sparse_infill_speed": [ + "150" + ], + "sparse_infill_pattern": "gyroid", + "support_bottom_z_distance": "0.08", + "support_threshold_angle": "15", + "support_top_z_distance": "0.08", + "top_color_penetration_layers": "9", + "top_shell_layers": "9", + "top_shell_thickness": "1", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "350" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.10mm Standard @X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/process/0.10mm Standard @X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..a8a9aa5f37 --- /dev/null +++ b/resources/profiles/Qidi/process/0.10mm Standard @X-Plus 5 0.2 nozzle.json @@ -0,0 +1,63 @@ +{ + "type": "process", + "setting_id": "3k8N3voNC9Kp0Ov6", + "name": "0.10mm Standard @X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "5", + "bottom_shell_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "initial_layer_infill_speed": [ + "70" + ], + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": [ + "40" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_flow": "20%", + "ironing_speed": "20", + "layer_height": "0.1", + "line_width": "0.22", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.22", + "overhang_1_4_speed": [ + "60" + ], + "skin_infill_line_width": "0.22", + "outer_wall_speed": [ + "100" + ], + "prime_tower_width": "60", + "skeleton_infill_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "sparse_infill_speed": [ + "100" + ], + "support_bottom_z_distance": "0.1", + "support_line_width": "0.22", + "support_top_z_distance": "0.1", + "top_color_penetration_layers": "7", + "top_shell_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "500" + ], + "wall_loops": "4", + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.12mm Balanced Quality @X-Plus 5 0.2 nozzle.json b/resources/profiles/Qidi/process/0.12mm Balanced Quality @X-Plus 5 0.2 nozzle.json new file mode 100644 index 0000000000..1c1d304ccd --- /dev/null +++ b/resources/profiles/Qidi/process/0.12mm Balanced Quality @X-Plus 5 0.2 nozzle.json @@ -0,0 +1,66 @@ +{ + "type": "process", + "setting_id": "O20HfmdyTRg2xayA", + "name": "0.12mm Balanced Quality @X-Plus 5 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "5", + "bottom_shell_layers": "5", + "bridge_flow": "1", + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "initial_layer_infill_speed": [ + "70" + ], + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": [ + "40" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "layer_height": "0.12", + "line_width": "0.22", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.22", + "outer_wall_speed": [ + "100" + ], + "overhang_1_4_speed": [ + "60" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "sparse_infill_speed": [ + "100" + ], + "support_bottom_z_distance": "0.12", + "support_line_width": "0.22", + "support_top_z_distance": "0.12", + "top_color_penetration_layers": "7", + "top_shell_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "500" + ], + "wall_loops": "4", + "compatible_printers": [ + "Qidi X-Plus 5 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.12mm High Quality @X-Plus 5.json b/resources/profiles/Qidi/process/0.12mm High Quality @X-Plus 5.json new file mode 100644 index 0000000000..a74aecb369 --- /dev/null +++ b/resources/profiles/Qidi/process/0.12mm High Quality @X-Plus 5.json @@ -0,0 +1,73 @@ +{ + "type": "process", + "setting_id": "xWoxLO8XiKAOEvPO", + "name": "0.12mm High Quality @X-Plus 5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "5", + "bottom_shell_layers": "5", + "bridge_flow": "1", + "default_acceleration": [ + "4000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "230" + ], + "initial_layer_infill_speed": [ + "105" + ], + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_speed": [ + "150" + ], + "internal_solid_infill_speed": [ + "180" + ], + "layer_height": "0.12", + "outer_wall_acceleration": [ + "2000" + ], + "outer_wall_speed": [ + "60" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_3_4_speed": [ + "10" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": [ + "180" + ], + "support_bottom_z_distance": "0.12", + "support_threshold_angle": "20", + "support_top_z_distance": "0.12", + "top_color_penetration_layers": "7", + "top_shell_layers": "5", + "top_shell_thickness": "0.6", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "350" + ], + "wall_loops": "2", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.16mm High Quality @X-Plus 5.json b/resources/profiles/Qidi/process/0.16mm High Quality @X-Plus 5.json new file mode 100644 index 0000000000..54f20f7324 --- /dev/null +++ b/resources/profiles/Qidi/process/0.16mm High Quality @X-Plus 5.json @@ -0,0 +1,65 @@ +{ + "type": "process", + "setting_id": "7hYw7osV25Xu2yiu", + "name": "0.16mm High Quality @X-Plus 5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "4", + "bottom_shell_layers": "4", + "bridge_flow": "1", + "default_acceleration": [ + "4000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "250" + ], + "inner_wall_acceleration": [ + "0" + ], + "internal_solid_infill_speed": [ + "200" + ], + "ironing_flow": "25%", + "ironing_speed": "20", + "layer_height": "0.16", + "outer_wall_acceleration": [ + "2000" + ], + "outer_wall_speed": [ + "60" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_3_4_speed": [ + "10" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": [ + "200" + ], + "support_bottom_z_distance": "0.16", + "support_threshold_angle": "25", + "support_top_z_distance": "0.16", + "top_color_penetration_layers": "6", + "top_shell_layers": "6", + "top_shell_thickness": "1.0", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "350" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.16mm Standard @X-Plus 5.json b/resources/profiles/Qidi/process/0.16mm Standard @X-Plus 5.json new file mode 100644 index 0000000000..5399e693aa --- /dev/null +++ b/resources/profiles/Qidi/process/0.16mm Standard @X-Plus 5.json @@ -0,0 +1,62 @@ +{ + "type": "process", + "setting_id": "xP7mco0WGscmPNoV", + "name": "0.16mm Standard @X-Plus 5", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bottom_color_penetration_layers": "4", + "bottom_shell_layers": "4", + "bridge_flow": "1", + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "250" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.16", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_speed": [ + "200" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_3_4_speed": [ + "10" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "sparse_infill_speed": [ + "350" + ], + "support_bottom_z_distance": "0.16", + "support_threshold_angle": "25", + "support_top_z_distance": "0.16", + "top_color_penetration_layers": "6", + "top_shell_layers": "6", + "top_shell_thickness": "1.0", + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.18mm Balanced Quality @X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/process/0.18mm Balanced Quality @X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..85d94d49a7 --- /dev/null +++ b/resources/profiles/Qidi/process/0.18mm Balanced Quality @X-Plus 5 0.6 nozzle.json @@ -0,0 +1,73 @@ +{ + "type": "process", + "setting_id": "kj7YrKOrYowWXXrY", + "name": "0.18mm Balanced Quality @X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.62", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.18", + "line_width": "0.62", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.62", + "outer_wall_speed": [ + "200" + ], + "overhang_1_4_speed": [ + "0" + ], + "overhang_2_4_speed": [ + "50" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "sparse_infill_speed": [ + "350" + ], + "support_bottom_z_distance": "0.18", + "support_line_width": "0.62", + "support_top_z_distance": "0.18", + "top_surface_line_width": "0.62", + "top_surface_speed": [ + "200" + ], + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.20mm High Quality @X-Plus 5.json b/resources/profiles/Qidi/process/0.20mm High Quality @X-Plus 5.json new file mode 100644 index 0000000000..4f8c7b4ef4 --- /dev/null +++ b/resources/profiles/Qidi/process/0.20mm High Quality @X-Plus 5.json @@ -0,0 +1,63 @@ +{ + "type": "process", + "setting_id": "azERQAEOdeNEo2z7", + "name": "0.20mm High Quality @X-Plus 5", + "from": "system", + "inherits": "fdm_process_n_common", + "instantiation": "true", + "bottom_shell_layers": "3", + "bridge_flow": "1", + "default_acceleration": [ + "4000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "250" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_speed": [ + "150" + ], + "internal_solid_infill_speed": [ + "200" + ], + "outer_wall_acceleration": [ + "2000" + ], + "outer_wall_speed": [ + "60" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_3_4_speed": [ + "10" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "sparse_infill_speed": [ + "200" + ], + "sparse_infill_density": "15%", + "sparse_infill_pattern": "gyroid", + "top_color_penetration_layers": "5", + "top_shell_layers": "5", + "top_shell_thickness": "1.0", + "top_surface_speed": [ + "150" + ], + "travel_speed": [ + "350" + ], + "wall_loops": "2", + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.20mm Standard @X-Plus 5.json b/resources/profiles/Qidi/process/0.20mm Standard @X-Plus 5.json new file mode 100644 index 0000000000..decaceecae --- /dev/null +++ b/resources/profiles/Qidi/process/0.20mm Standard @X-Plus 5.json @@ -0,0 +1,47 @@ +{ + "type": "process", + "setting_id": "ug7kxxCLKKE7MoJW", + "name": "0.20mm Standard @X-Plus 5", + "from": "system", + "inherits": "fdm_process_n_common", + "instantiation": "true", + "bridge_flow": "1", + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "250" + ], + "inner_wall_speed": [ + "300" + ], + "inner_wall_acceleration": [ + "0" + ], + "internal_solid_infill_speed": [ + "250" + ], + "ironing_flow": "15%", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_speed": [ + "200" + ], + "prime_tower_width": "60", + "prime_tower_flat_ironing": "1", + "sparse_infill_speed": [ + "350" + ], + "top_color_penetration_layers": "5", + "top_shell_layers": "5", + "top_shell_thickness": "1.0", + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..16e25dcef3 --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.6 nozzle.json @@ -0,0 +1,71 @@ +{ + "type": "process", + "setting_id": "BWwslzDWus0iHZM8", + "name": "0.24mm Balanced Quality @X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_infill_speed": [ + "105" + ], + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.62", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.24", + "line_width": "0.62", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.62", + "outer_wall_speed": [ + "200" + ], + "overhang_3_4_speed": [ + "30" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "sparse_infill_speed": [ + "350" + ], + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "top_surface_speed": [ + "200" + ], + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..e7d69b3f09 --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Balanced Quality @X-Plus 5 0.8 nozzle.json @@ -0,0 +1,63 @@ +{ + "type": "process", + "setting_id": "TdXf6dJK5dAiFtIW", + "name": "0.24mm Balanced Quality @X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.82", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.24", + "line_width": "0.82", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.82", + "outer_wall_speed": [ + "200" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "sparse_infill_speed": [ + "350" + ], + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.24mm Standard @X-Plus 5.json b/resources/profiles/Qidi/process/0.24mm Standard @X-Plus 5.json new file mode 100644 index 0000000000..8a435e69e7 --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Standard @X-Plus 5.json @@ -0,0 +1,50 @@ +{ + "type": "process", + "setting_id": "fiMTwk6ObF3WNpi5", + "name": "0.24mm Standard @X-Plus 5", + "from": "system", + "inherits": "fdm_process_n_common", + "instantiation": "true", + "bridge_flow": "1", + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "250" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.24", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_speed": [ + "200" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "sparse_infill_speed": [ + "350" + ], + "support_threshold_angle": "35", + "top_color_penetration_layers": "4", + "top_shell_layers": "4", + "top_shell_thickness": "1.0", + "top_surface_line_width": "0.45", + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.30mm Standard @X-Plus 5 0.6 nozzle.json b/resources/profiles/Qidi/process/0.30mm Standard @X-Plus 5 0.6 nozzle.json new file mode 100644 index 0000000000..a297f33bac --- /dev/null +++ b/resources/profiles/Qidi/process/0.30mm Standard @X-Plus 5 0.6 nozzle.json @@ -0,0 +1,65 @@ +{ + "type": "process", + "setting_id": "ZHUAMUGv0HI3h8fQ", + "name": "0.30mm Standard @X-Plus 5 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.62", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.3", + "line_width": "0.62", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.62", + "outer_wall_speed": [ + "120" + ], + "prime_tower_width": "60", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "sparse_infill_speed": [ + "350" + ], + "support_line_width": "0.62", + "top_shell_layers": "4", + "top_surface_line_width": "0.62", + "top_surface_speed": [ + "200" + ], + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.32mm Balanced Quality @X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/process/0.32mm Balanced Quality @X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..be02d140d6 --- /dev/null +++ b/resources/profiles/Qidi/process/0.32mm Balanced Quality @X-Plus 5 0.8 nozzle.json @@ -0,0 +1,72 @@ +{ + "type": "process", + "setting_id": "Vl4hMKR69J1JcquX", + "name": "0.32mm Balanced Quality @X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_infill_speed": [ + "105" + ], + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.82", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.32", + "line_width": "0.82", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.82", + "outer_wall_speed": [ + "200" + ], + "overhang_3_4_speed": [ + "30" + ], + "prime_tower_width": "60", + "prime_tower_brim_width": "-1", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "sparse_infill_speed": [ + "350" + ], + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": [ + "200" + ], + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.40mm Standard @X-Plus 5 0.8 nozzle.json b/resources/profiles/Qidi/process/0.40mm Standard @X-Plus 5 0.8 nozzle.json new file mode 100644 index 0000000000..cb3f30c20e --- /dev/null +++ b/resources/profiles/Qidi/process/0.40mm Standard @X-Plus 5 0.8 nozzle.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "setting_id": "6EBzl1Pg5Px36Cu6", + "name": "0.40mm Standard @X-Plus 5 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_n_common", + "bridge_flow": "1", + "bridge_speed": [ + "30" + ], + "default_acceleration": [ + "10000" + ], + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "0", + "gap_infill_speed": [ + "50" + ], + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "inner_wall_acceleration": [ + "0" + ], + "inner_wall_line_width": "0.82", + "inner_wall_speed": [ + "300" + ], + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_speed": [ + "250" + ], + "layer_height": "0.4", + "line_width": "0.82", + "outer_wall_acceleration": [ + "5000" + ], + "outer_wall_line_width": "0.82", + "prime_tower_width": "60", + "prime_tower_flat_ironing": "1", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "sparse_infill_speed": [ + "350" + ], + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": [ + "200" + ], + "top_shell_layers": "4", + "travel_speed": [ + "500" + ], + "compatible_printers": [ + "Qidi X-Plus 5 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/qidi_xplus5_buildplate_model.stl b/resources/profiles/Qidi/qidi_xplus5_buildplate_model.stl new file mode 100644 index 0000000000000000000000000000000000000000..5e2d7ca48585ce2287c9981b73a28977b93c779b GIT binary patch literal 28284 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 \ No newline at end of file diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index cdc7f0fe81..9a6fab7942 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.07", + "version": "02.04.00.09", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ @@ -426,10 +426,6 @@ "name": "0.16 Optimal @Snapmaker U1 (0.4 nozzle)", "sub_path": "process/0.16 Optimal @Snapmaker U1 (0.4 nozzle).json" }, - { - "name": "0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle)", - "sub_path": "process/0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle).json" - }, { "name": "0.20 Quality @Snapmaker U1 (0.4 nozzle)", "sub_path": "process/0.20 Quality @Snapmaker U1 (0.4 nozzle).json" @@ -486,6 +482,66 @@ "name": "fdm_process_U1_0.8_common", "sub_path": "process/fdm_process_U1_0.8_common.json" }, + { + "name": "fdm_process_U1_0.06_nozzle_0.2", + "sub_path": "process/fdm_process_U1_0.06_nozzle_0.2.json" + }, + { + "name": "fdm_process_U1_0.08_nozzle_0.2", + "sub_path": "process/fdm_process_U1_0.08_nozzle_0.2.json" + }, + { + "name": "fdm_process_U1_0.10_nozzle_0.2", + "sub_path": "process/fdm_process_U1_0.10_nozzle_0.2.json" + }, + { + "name": "fdm_process_U1_0.12_nozzle_0.2", + "sub_path": "process/fdm_process_U1_0.12_nozzle_0.2.json" + }, + { + "name": "fdm_process_U1_0.14_nozzle_0.2", + "sub_path": "process/fdm_process_U1_0.14_nozzle_0.2.json" + }, + { + "name": "fdm_process_U1_0.18_nozzle_0.6", + "sub_path": "process/fdm_process_U1_0.18_nozzle_0.6.json" + }, + { + "name": "fdm_process_U1_0.24_nozzle_0.6", + "sub_path": "process/fdm_process_U1_0.24_nozzle_0.6.json" + }, + { + "name": "fdm_process_U1_0.24_nozzle_0.8", + "sub_path": "process/fdm_process_U1_0.24_nozzle_0.8.json" + }, + { + "name": "fdm_process_U1_0.30_nozzle_0.6", + "sub_path": "process/fdm_process_U1_0.30_nozzle_0.6.json" + }, + { + "name": "fdm_process_U1_0.32_nozzle_0.8", + "sub_path": "process/fdm_process_U1_0.32_nozzle_0.8.json" + }, + { + "name": "fdm_process_U1_0.36_nozzle_0.6", + "sub_path": "process/fdm_process_U1_0.36_nozzle_0.6.json" + }, + { + "name": "fdm_process_U1_0.40_nozzle_0.8", + "sub_path": "process/fdm_process_U1_0.40_nozzle_0.8.json" + }, + { + "name": "fdm_process_U1_0.42_nozzle_0.6", + "sub_path": "process/fdm_process_U1_0.42_nozzle_0.6.json" + }, + { + "name": "fdm_process_U1_0.48_nozzle_0.8", + "sub_path": "process/fdm_process_U1_0.48_nozzle_0.8.json" + }, + { + "name": "fdm_process_U1_0.56_nozzle_0.8", + "sub_path": "process/fdm_process_U1_0.56_nozzle_0.8.json" + }, { "name": "0.06 High Quality @Snapmaker U1 (0.2 nozzle)", "sub_path": "process/0.06 High Quality @Snapmaker U1 (0.2 nozzle).json" @@ -1508,10 +1564,6 @@ "name": "Snapmaker PLA Metal @U1", "sub_path": "filament/Snapmaker PLA Metal @U1.json" }, - { - "name": "Snapmaker PLA Silk @U1", - "sub_path": "filament/Snapmaker PLA Silk @U1.json" - }, { "name": "Snapmaker PLA Silk", "sub_path": "filament/Snapmaker PLA Silk.json" @@ -1671,6 +1723,214 @@ { "name": "Snapmaker PLA Matte @U1 base", "sub_path": "filament/Snapmaker PLA Matte @U1 base.json" + }, + { + "name": "Polymaker PLA @U1 base", + "sub_path": "filament/Polymaker PLA @U1 base.json" + }, + { + "name": "Polymaker Silk PLA Family @U1", + "sub_path": "filament/Polymaker Silk PLA Family @U1.json" + }, + { + "name": "Polymaker Tough PLA Family @U1", + "sub_path": "filament/Polymaker Tough PLA Family @U1.json" + }, + { + "name": "Snapmaker Breakaway Support For PLA @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker Breakaway Support For PLA @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker Breakaway Support For PLA @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PETG HF @U1 base2", + "sub_path": "filament/Snapmaker PETG HF @U1 base2.json" + }, + { + "name": "Snapmaker PETG Translucent @U1 base", + "sub_path": "filament/Snapmaker PETG Translucent @U1 base.json" + }, + { + "name": "Snapmaker PLA Basic @U1 base", + "sub_path": "filament/Snapmaker PLA Basic @U1 base.json" + }, + { + "name": "Snapmaker PLA Full Spectrum @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PLA Glow @U1 base", + "sub_path": "filament/Snapmaker PLA Glow @U1 base.json" + }, + { + "name": "Snapmaker PLA Matte @U1 base2", + "sub_path": "filament/Snapmaker PLA Matte @U1 base2.json" + }, + { + "name": "Snapmaker PLA Silk @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PLA Silk @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PLA Silk @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA Silk @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA Silk @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA Silk @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA SnapSpeed @U1 base2", + "sub_path": "filament/Snapmaker PLA SnapSpeed @U1 base2.json" + }, + { + "name": "Snapmaker PLA Translucent @U1 base", + "sub_path": "filament/Snapmaker PLA Translucent @U1 base.json" + }, + { + "name": "Snapmaker PLA Wood @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PLA Wood @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PLA Wood @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA Wood @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA Wood @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA Wood @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA-CF @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PLA-CF @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PLA-CF @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA-CF @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA-CF @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA-CF @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PVA @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PVA @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PVA @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PVA @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker TPU 90A @U1", + "sub_path": "filament/Snapmaker TPU 90A @U1.json" + }, + { + "name": "Snapmaker TPU 90A @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker TPU 90A @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker TPU 90A @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker TPU 90A @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker TPU 95A HF @U1", + "sub_path": "filament/Snapmaker TPU 95A HF @U1.json" + }, + { + "name": "Snapmaker TPU 95A HF @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker TPU 95A HF @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA Silk @U1", + "sub_path": "filament/Snapmaker PLA Silk @U1.json" + }, + { + "name": "Polymaker General PLA Family @U1", + "sub_path": "filament/Polymaker General PLA Family @U1.json" + }, + { + "name": "Snapmaker PETG HF @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PETG HF @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PETG HF @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PETG HF @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PETG HF @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PETG HF @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PETG Translucent @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PETG Translucent @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PETG Translucent @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PETG Translucent @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PETG Translucent @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PETG Translucent @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PETG Translucent @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PETG Translucent @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA Basic @U1", + "sub_path": "filament/Snapmaker PLA Basic @U1.json" + }, + { + "name": "Snapmaker PLA Glow @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PLA Glow @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PLA Matte @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PLA Matte @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PLA Matte @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA Matte @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA Matte @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA Matte @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA SnapSpeed @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PLA SnapSpeed @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PLA SnapSpeed @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA SnapSpeed @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA SnapSpeed @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA SnapSpeed @U1 0.8 nozzle.json" + }, + { + "name": "Snapmaker PLA Translucent @U1 0.2 nozzle", + "sub_path": "filament/Snapmaker PLA Translucent @U1 0.2 nozzle.json" + }, + { + "name": "Snapmaker PLA Translucent @U1 0.4 nozzle", + "sub_path": "filament/Snapmaker PLA Translucent @U1 0.4 nozzle.json" + }, + { + "name": "Snapmaker PLA Translucent @U1 0.6 nozzle", + "sub_path": "filament/Snapmaker PLA Translucent @U1 0.6 nozzle.json" + }, + { + "name": "Snapmaker PLA Translucent @U1 0.8 nozzle", + "sub_path": "filament/Snapmaker PLA Translucent @U1 0.8 nozzle.json" } ], "machine_list": [ diff --git a/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json new file mode 100644 index 0000000000..c706ba776d --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Polymaker General PLA Family @U1", + "inherits": "Polymaker PLA @U1 base", + "from": "system", + "setting_id": "thXfSaUkOAKJ50ey", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "temperature_vitrification": [ + "62" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json new file mode 100644 index 0000000000..b27c48f720 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json @@ -0,0 +1,107 @@ +{ + "type": "filament", + "name": "Polymaker PLA @U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OGFL99", + "instantiation": "false", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_vendor": [ + "Generic" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "15%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_shrink": [ + "100%" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "supertack_plate_temp": [ + "45" + ], + "supertack_plate_temp_initial_layer": [ + "45" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "45" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json new file mode 100644 index 0000000000..b6bd119022 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Polymaker Silk PLA Family @U1", + "inherits": "Polymaker PLA @U1 base", + "from": "system", + "setting_id": "h8vIYpXbxFtHPV6e", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_density": [ + "1.34" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json new file mode 100644 index 0000000000..e5c2c7d7f6 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Polymaker Tough PLA Family @U1", + "inherits": "Polymaker PLA @U1 base", + "from": "system", + "setting_id": "d6CC81Es2hp46bto", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_vendor": [ + "Polymaker" + ], + "slow_down_layer_time": [ + "6" + ], + "temperature_vitrification": [ + "55" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json index 31799163c6..b38925e01b 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon ASA-CF08 @Snapmaker U1.json @@ -11,7 +11,6 @@ "filament_minimal_purge_on_wipe_tower": [ "15" ], - "pressure_advance": [ "0.05" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json index fd99eee105..1bb569c291 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA12-CF10 @Snapmaker U1.json @@ -17,7 +17,6 @@ "filament_z_hop": [ "0.0" ], - "enable_pressure_advance": [ "1" ], diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json index 1b227b2fd0..d6106faa50 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PA6-CF20 @Snapmaker U1.json @@ -17,7 +17,6 @@ "filament_z_hop": [ "0.0" ], - "enable_pressure_advance": [ "1" ], diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json index cfe6890a80..6e1797904c 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Fiberon PETG-ESD @Snapmaker U1.json @@ -17,7 +17,6 @@ "supertack_plate_temp_initial_layer": [ "70" ], - "pressure_advance": [ "0.04" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json index 707d5ae54b..f4703d6c40 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite Dual PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyLite Dual PLA @0.2 nozzle", - "setting_id": "jhmy4YHi9MuL0DWu", "inherits": "PolyLite PLA @0.2 nozzle", + "from": "system", + "setting_id": "jhmy4YHi9MuL0DWu", + "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.2 nozzle)", "Snapmaker A250 Dual BKit (0.2 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json index 1a4422472c..e1ce855c61 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyLite J1 PLA @0.2 nozzle", - "setting_id": "jFlRSxx0KvN3BOUu", "inherits": "PolyLite PLA @0.2 nozzle", + "from": "system", + "setting_id": "jFlRSxx0KvN3BOUu", + "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.2 nozzle)" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json index 6c5017d0a8..55d39a0832 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite J1 PLA.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyLite J1 PLA", - "setting_id": "wcpOTTMyZNPFKyXr", "inherits": "PolyLite PLA @base", + "from": "system", + "setting_id": "wcpOTTMyZNPFKyXr", + "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", "Snapmaker J1 (0.6 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Base.json index cd5f75a463..579940a5b2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Base.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "PolyLite PETG @Base", + "inherits": "fdm_filament_petg", + "from": "system", + "instantiation": "false", "filament_density": [ "1.25" ], @@ -18,11 +23,6 @@ "0" ], "description": "", - "inherits": "fdm_filament_petg", - "name": "PolyLite PETG @Base", - "type": "filament", - "instantiation": "false", - "from": "system", "filament_vendor": [ "Polymaker" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json index 47cf37385d..f51cc5eeec 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG @Snapmaker U1.json @@ -17,7 +17,6 @@ "supertack_plate_temp_initial_layer": [ "70" ], - "pressure_advance": [ "0.05" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json index 6089dd66c4..a3efeee371 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PETG Translucent @Snapmaker U1.json @@ -17,7 +17,6 @@ "supertack_plate_temp_initial_layer": [ "70" ], - "pressure_advance": [ "0.05" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @0.2 nozzle.json index c3897e63c2..fcceb14014 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyLite PLA @0.2 nozzle", - "setting_id": "s9mdMaFca8SHfji9", "inherits": "PolyLite PLA @base", + "from": "system", + "setting_id": "s9mdMaFca8SHfji9", + "instantiation": "true", "compatible_printers": [ "Snapmaker A250 (0.2 nozzle)", "Snapmaker A250 BKit (0.2 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json index 4173572637..3a4621b838 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyLite PLA @base.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "false", "name": "PolyLite PLA @base", - "filament_id": "1393866034", "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "1393866034", + "instantiation": "false", "filament_flow_ratio": [ "0.95" ], diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json index b45068dd52..3f8cbc7674 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra Dual PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyTerra Dual PLA @0.2 nozzle", - "setting_id": "UQYgjH1uVxf3d2Nv", "inherits": "PolyTerra PLA @0.2 nozzle", + "from": "system", + "setting_id": "UQYgjH1uVxf3d2Nv", + "instantiation": "true", "compatible_printers": [ "Snapmaker A250 Dual (0.2 nozzle)", "Snapmaker A250 Dual BKit (0.2 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json index dd4f969f62..9cb7060139 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyTerra J1 PLA @0.2 nozzle", - "setting_id": "mxKHxGmBZzPLS82O", "inherits": "PolyTerra PLA @0.2 nozzle", + "from": "system", + "setting_id": "mxKHxGmBZzPLS82O", + "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.2 nozzle)" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json index 7b66438058..2583b2a2c3 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra J1 PLA.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyTerra J1 PLA", - "setting_id": "4MZWZX7QPBzxdEGj", "inherits": "PolyTerra PLA @base", + "from": "system", + "setting_id": "4MZWZX7QPBzxdEGj", + "instantiation": "true", "compatible_printers": [ "Snapmaker J1 (0.4 nozzle)", "Snapmaker J1 (0.6 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @0.2 nozzle.json index 07d45a7633..e70ee3d5a0 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/PolyTerra PLA @0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "from": "system", - "instantiation": "true", "name": "PolyTerra PLA @0.2 nozzle", - "setting_id": "6W1ygT08NordBdIW", "inherits": "PolyTerra PLA @base", + "from": "system", + "setting_id": "6W1ygT08NordBdIW", + "instantiation": "true", "compatible_printers": [ "Snapmaker A250 (0.2 nozzle)", "Snapmaker A250 BKit (0.2 nozzle)", diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Base.json index 7c05254a2e..76b1d2020c 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA @Base.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Polymaker HT-PLA @Base", + "inherits": "fdm_filament_pla", + "from": "system", + "instantiation": "false", "filament_density": [ "1.28" ], @@ -18,11 +23,6 @@ "0" ], "description": "", - "inherits": "fdm_filament_pla", - "name": "Polymaker HT-PLA @Base", - "type": "filament", - "instantiation": "false", - "from": "system", "filament_vendor": [ "Polymaker" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Base.json index 3a64237122..06019b562c 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker HT-PLA-GF @Base.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Polymaker HT-PLA-GF @Base", + "inherits": "fdm_filament_pla", + "from": "system", + "instantiation": "false", "filament_density": [ "1.34" ], @@ -18,11 +23,6 @@ "0" ], "description": "", - "inherits": "fdm_filament_pla", - "name": "Polymaker HT-PLA-GF @Base", - "type": "filament", - "instantiation": "false", - "from": "system", "filament_vendor": [ "Polymaker" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Base.json index 0965bd153b..3692eac7d5 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PETG @Base.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Polymaker PETG @Base", + "inherits": "fdm_filament_petg", + "from": "system", + "instantiation": "false", "filament_density": [ "1.3" ], @@ -18,11 +23,6 @@ "0" ], "description": "", - "inherits": "fdm_filament_petg", - "name": "Polymaker PETG @Base", - "type": "filament", - "instantiation": "false", - "from": "system", "filament_vendor": [ "Polymaker" ] diff --git a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Base.json b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Base.json index 072fa53c93..d69ccc79f2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker/Polymaker PLA Pro @Base.json @@ -1,4 +1,9 @@ { + "type": "filament", + "name": "Polymaker PLA Pro @Base", + "inherits": "fdm_filament_pla", + "from": "system", + "instantiation": "false", "filament_density": [ "1.23" ], @@ -18,11 +23,6 @@ "0" ], "description": "", - "inherits": "fdm_filament_pla", - "name": "Polymaker PLA Pro @Base", - "type": "filament", - "instantiation": "false", - "from": "system", "filament_vendor": [ "Polymaker" ] diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1.json index 083432ebd5..fe6c59ba80 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ABS @U1.json @@ -7,5 +7,8 @@ "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" + ], + "filament_retract_length_toolchange": [ + "5" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1.json index 0c5d22723a..67bde29e8d 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker ASA @U1.json @@ -7,5 +7,8 @@ "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" + ], + "filament_retract_length_toolchange": [ + "5" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json new file mode 100644 index 0000000000..db331b0daa --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json @@ -0,0 +1,104 @@ +{ + "type": "filament", + "name": "Snapmaker Breakaway Support For PLA @U1 0.2 nozzle", + "inherits": "Snapmaker Breakaway Support @base", + "from": "system", + "setting_id": "mJoaud6wulT4p8SA", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "filament_type": [ + "PLA" + ], + "enable_pressure_advance": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_max_volumetric_speed": [ + "0.5" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "pressure_advance": [ + "0.2" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json new file mode 100644 index 0000000000..248c57f6d0 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json @@ -0,0 +1,104 @@ +{ + "type": "filament", + "name": "Snapmaker Breakaway Support For PLA @U1 0.6 nozzle", + "inherits": "Snapmaker Breakaway Support @base", + "from": "system", + "setting_id": "rKUUREJNhstIU0I2", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filament_type": [ + "PLA" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.95" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "pressure_advance": [ + "0.02" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_min_speed": [ + "100" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json new file mode 100644 index 0000000000..47cf80d076 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json @@ -0,0 +1,98 @@ +{ + "type": "filament", + "name": "Snapmaker Breakaway Support For PLA @U1 0.8 nozzle", + "inherits": "Snapmaker Breakaway Support @base", + "from": "system", + "setting_id": "hQ8jQ5GKQKGKuPew", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filament_type": [ + "PLA" + ], + "enable_pressure_advance": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "69.98" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "0.93" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "3" + ], + "filament_retraction_speed": [ + "nil" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "pressure_advance": [ + "0.015" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "textured_plate_temp": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json index 97b2f8b07f..9e5d63a63c 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json @@ -10,5 +10,83 @@ ], "filament_type": [ "PLA" + ], + "enable_pressure_advance": [ + "1" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "20" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "pressure_advance": [ + "0.03" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.2 nozzle.json new file mode 100644 index 0000000000..f1c3aa30a1 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.2 nozzle.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "name": "Snapmaker PETG HF @U1 0.2 nozzle", + "inherits": "Snapmaker PETG HF @U1 base2", + "from": "system", + "setting_id": "Ujul2YTBwfldFiFd", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1", + "1" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "30" + ], + "filament_end_gcode": [ + "\n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "3" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "60" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_z_hop_types": [ + "Slope Lift" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.6 nozzle.json new file mode 100644 index 0000000000..66a535b7fb --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.6 nozzle.json @@ -0,0 +1,113 @@ +{ + "type": "filament", + "name": "Snapmaker PETG HF @U1 0.6 nozzle", + "inherits": "Snapmaker PETG HF @U1 base2", + "from": "system", + "setting_id": "2FfQZdp5xunngnF0", + "instantiation": "true", + "filament_ramming_travel_time": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "30" + ], + "filament_end_gcode": [ + "\n" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "2.5" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "60" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.8 nozzle.json new file mode 100644 index 0000000000..04446a623e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 0.8 nozzle.json @@ -0,0 +1,110 @@ +{ + "type": "filament", + "name": "Snapmaker PETG HF @U1 0.8 nozzle", + "inherits": "Snapmaker PETG HF @U1 base2", + "from": "system", + "setting_id": "ebANa67V4B2nwUaX", + "instantiation": "true", + "filament_ramming_travel_time": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "30" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "60" + ], + "supertack_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json new file mode 100644 index 0000000000..0ad75759a1 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json @@ -0,0 +1,279 @@ +{ + "type": "filament", + "name": "Snapmaker PETG HF @U1 base2", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "GFG96", + "instantiation": "false", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_type": [ + "PETG" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.28" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "slow_down_layer_time": [ + "25" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "counter_coef_1": [ + "0" + ], + "counter_coef_2": [ + "0.008" + ], + "counter_coef_3": [ + "-0.041" + ], + "counter_limit_min": [ + "-0.035" + ], + "counter_limit_max": [ + "0.033" + ], + "circle_compensation_speed": [ + "200" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "diameter_limit": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_cooling_before_tower": [ + "0" + ], + "filament_dev_ams_drying_ams_limitations": [ + "0" + ], + "filament_dev_ams_drying_temperature": [ + "40.0" + ], + "filament_dev_ams_drying_time": [ + "8.0" + ], + "filament_dev_drying_softening_temperature": [ + "40.0" + ], + "filament_dev_ams_drying_heat_distortion_temperature": [ + "45.0" + ], + "filament_dev_drying_cooling_temperature": [ + "35.0" + ], + "filament_dev_chamber_drying_bed_temperature": [ + "90.0" + ], + "filament_dev_chamber_drying_time": [ + "12.0" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_long_retractions_when_ec": [ + "nil" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_ramming_volumetric_speed_nc": [ + "-1" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_printable": [ + "3" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_ec": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_vendor": [ + "Generic" + ], + "filament_prime_volume": [ + "45" + ], + "filament_prime_volume_nc": [ + "60" + ], + "filament_extruder_variant": [ + "Direct Drive Standard" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_shrink": [ + "100%" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_pre_cooling_temperature_nc": [ + "0" + ], + "filament_ramming_travel_time": [ + "0" + ], + "filament_ramming_travel_time_nc": [ + "0" + ], + "filament_retract_length_nc": [ + "14" + ], + "hole_coef_1": [ + "0" + ], + "hole_coef_2": [ + "-0.008" + ], + "hole_coef_3": [ + "0.23415" + ], + "hole_limit_min": [ + "0.088" + ], + "hole_limit_max": [ + "0.22" + ], + "impact_strength_z": [ + "10" + ], + "long_retractions_when_ec": [ + "0" + ], + "retraction_distances_when_ec": [ + "0" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "no_slow_down_for_cooling_on_outwalls": [ + "0" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "70" + ], + "filament_change_length": [ + "10" + ], + "filament_velocity_adaptation_factor": [ + "1" + ], + "compatible_printers": [], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0" + ], + "filament_adhesiveness_category": [ + "300" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.2 nozzle.json new file mode 100644 index 0000000000..ee6234f406 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.2 nozzle.json @@ -0,0 +1,110 @@ +{ + "type": "filament", + "name": "Snapmaker PETG Translucent @U1 0.2 nozzle", + "inherits": "Snapmaker PETG Translucent @U1 base", + "from": "system", + "setting_id": "UTpedqYJysaoe3OI", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "additional_cooling_fan_speed": [ + "20" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_loading_speed": [ + "28" + ], + "filament_max_volumetric_speed": [ + "1" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.23" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.4 nozzle.json new file mode 100644 index 0000000000..e0e60a0e14 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.4 nozzle.json @@ -0,0 +1,98 @@ +{ + "type": "filament", + "name": "Snapmaker PETG Translucent @U1 0.4 nozzle", + "inherits": "Snapmaker PETG Translucent @U1 base", + "from": "system", + "setting_id": "k6UQJJASzFSfePqN", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "24.99" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.04" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_density": [ + "1.25" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.6 nozzle.json new file mode 100644 index 0000000000..14f59104f8 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.6 nozzle.json @@ -0,0 +1,107 @@ +{ + "type": "filament", + "name": "Snapmaker PETG Translucent @U1 0.6 nozzle", + "inherits": "Snapmaker PETG Translucent @U1 base", + "from": "system", + "setting_id": "FlcbnP3kWiJLMDMl", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.8 nozzle.json new file mode 100644 index 0000000000..e746141f06 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 0.8 nozzle.json @@ -0,0 +1,104 @@ +{ + "type": "filament", + "name": "Snapmaker PETG Translucent @U1 0.8 nozzle", + "inherits": "Snapmaker PETG Translucent @U1 base", + "from": "system", + "setting_id": "aJk3TnFTU3uQGjd3", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "hot_plate_temp": [ + "80" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "10%" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "30" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json new file mode 100644 index 0000000000..eb18fb4838 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json @@ -0,0 +1,8 @@ +{ + "type": "filament", + "name": "Snapmaker PETG Translucent @U1 base", + "inherits": "fdm_filament_petg", + "from": "system", + "filament_id": "PETG_TRANSLUCENT_001", + "instantiation": "false" +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json new file mode 100644 index 0000000000..adf7624e1f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json @@ -0,0 +1,127 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Basic @U1 base", + "from": "system", + "filament_id": "1417031127011", + "instantiation": "false", + "filament_end_gcode": [ + "" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_loading_speed_start": [ + "35" + ], + "filament_loading_speed": [ + "35" + ], + "filament_unloading_speed_start": [ + "35" + ], + "filament_unloading_speed": [ + "35" + ], + "filament_load_time": [ + "2" + ], + "filament_unload_time": [ + "2" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cooling_initial_speed": [ + "35" + ], + "filament_cooling_final_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "220" + ], + "temperature_vitrification": [ + "60" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1.json new file mode 100644 index 0000000000..4b68672fa5 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Basic @U1", + "inherits": "Snapmaker PLA Basic @U1 base", + "from": "system", + "setting_id": "ZtUJN4JpkR0MLpiY", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "25" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json new file mode 100644 index 0000000000..990e67a79e --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Full Spectrum @U1 0.4 nozzle", + "inherits": "Snapmaker PLA Basic @U1 base", + "from": "system", + "setting_id": "iybaFWrXKOsmXgMJ", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "25" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 0.4 nozzle.json new file mode 100644 index 0000000000..907781cd2c --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 0.4 nozzle.json @@ -0,0 +1,95 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Glow @U1 0.4 nozzle", + "inherits": "Snapmaker PLA Glow @U1 base", + "from": "system", + "setting_id": "ee1YNNr8CwKetuvY", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "20" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "30" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json new file mode 100644 index 0000000000..ad3c1f4bbb --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Glow @U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SPGLOW001", + "instantiation": "false", + "filament_end_gcode": [ + "" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_loading_speed_start": [ + "35" + ], + "filament_loading_speed": [ + "35" + ], + "filament_unloading_speed_start": [ + "35" + ], + "filament_unloading_speed": [ + "35" + ], + "filament_load_time": [ + "2" + ], + "filament_unload_time": [ + "2" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cooling_initial_speed": [ + "35" + ], + "filament_cooling_final_speed": [ + "60" + ], + "nozzle_temperature": [ + "220" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.2 nozzle.json new file mode 100644 index 0000000000..2a8c1e40c3 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.2 nozzle.json @@ -0,0 +1,287 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Matte @U1 0.2 nozzle", + "inherits": "Snapmaker PLA Matte @U1 base2", + "from": "system", + "setting_id": "d3c48DeNk7VDeeHf", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.26" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "2" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1.05" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_minimal_purge_on_wipe_tower": [ + "5" + ], + "filament_multitool_ramming_flow": [ + "4" + ], + "filament_multitool_ramming_volume": [ + "4" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_z_hop_types": [ + "nil" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "pressure_advance": [ + "0.025" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.6 nozzle.json new file mode 100644 index 0000000000..9de7615ae5 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.6 nozzle.json @@ -0,0 +1,287 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Matte @U1 0.6 nozzle", + "inherits": "Snapmaker PLA Matte @U1 base2", + "from": "system", + "setting_id": "l3E1WaljDn2uoTqW", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.26" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "45" + ], + "textured_plate_temp_initial_layer": [ + "45" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_flow_ratio": [ + "0.99" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unloading_speed": [ + "100" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "pressure_advance": [ + "0.015" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.8 nozzle.json new file mode 100644 index 0000000000..251b2a47b6 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 0.8 nozzle.json @@ -0,0 +1,287 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Matte @U1 0.8 nozzle", + "inherits": "Snapmaker PLA Matte @U1 base2", + "from": "system", + "setting_id": "NLPd4AA0seW3NXdy", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.26" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "215" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_unloading_speed": [ + "100" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "pressure_advance": [ + "0.015" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json new file mode 100644 index 0000000000..6c0dcf26fd --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json @@ -0,0 +1,127 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Matte @U1 base2", + "from": "system", + "filament_id": "141703112701", + "instantiation": "false", + "filament_end_gcode": [ + "" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_loading_speed_start": [ + "35" + ], + "filament_loading_speed": [ + "35" + ], + "filament_unloading_speed_start": [ + "35" + ], + "filament_unloading_speed": [ + "35" + ], + "filament_load_time": [ + "2" + ], + "filament_unload_time": [ + "2" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cooling_initial_speed": [ + "35" + ], + "filament_cooling_final_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "220" + ], + "temperature_vitrification": [ + "60" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json index fcb1d74c92..a71c43f9b0 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1.json @@ -27,7 +27,7 @@ "0" ], "additional_cooling_fan_speed": [ - "70" + "80" ], "chamber_temperature": [ "0" @@ -47,9 +47,6 @@ "cool_plate_temp_initial_layer": [ "60" ], - "default_filament_colour": [ - "" - ], "dont_slow_down_outer_wall": [ "0" ], @@ -60,7 +57,7 @@ "1" ], "enable_pressure_advance": [ - "1" + "0" ], "eng_plate_temp": [ "60" @@ -102,7 +99,7 @@ "; filament end gcode \n" ], "filament_flow_ratio": [ - "1.01" + "1" ], "filament_is_support": [ "0" @@ -117,7 +114,7 @@ "nil" ], "filament_max_volumetric_speed": [ - "20" + "22" ], "filament_minimal_purge_on_wipe_tower": [ "15" @@ -140,6 +137,9 @@ "filament_retract_before_wipe": [ "nil" ], + "filament_retract_length_toolchange": [ + "5" + ], "filament_retract_lift_above": [ "nil" ], @@ -216,19 +216,19 @@ "0" ], "hot_plate_temp": [ - "55" + "65" ], "hot_plate_temp_initial_layer": [ - "55" + "65" ], "idle_temperature": [ "0" ], "nozzle_temperature": [ - "220" + "215" ], "nozzle_temperature_initial_layer": [ - "220" + "215" ], "nozzle_temperature_range_high": [ "240" @@ -276,9 +276,9 @@ "40" ], "textured_plate_temp": [ - "60" + "65" ], "textured_plate_temp_initial_layer": [ - "60" + "65" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json index a530b9208e..9fba864f40 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Metal @U1 base.json @@ -46,8 +46,5 @@ ], "nozzle_temperature": [ "220" - ], - "default_filament_colour": [ - "" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json new file mode 100644 index 0000000000..5eb860506c --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json @@ -0,0 +1,285 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Silk @U1 0.2 nozzle", + "inherits": "Snapmaker PLA Basic @U1 base", + "from": "system", + "setting_id": "Q5xH6oGGlbXr14Pa", + "filament_id": "11813638720", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "1.02" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "3" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "18" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "dont_slow_down_outer_wall": [ + "1" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_unloading_speed": [ + "90" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "pressure_advance": [ + "0.015" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json new file mode 100644 index 0000000000..5df6ff5a3a --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json @@ -0,0 +1,285 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Silk @U1 0.6 nozzle", + "inherits": "Snapmaker PLA Basic @U1 base", + "from": "system", + "setting_id": "2pieDQoz9PiDCnU1", + "filament_id": "11813638720", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "15" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_unloading_speed": [ + "90" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "pressure_advance": [ + "0.015" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json new file mode 100644 index 0000000000..0758372ea0 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json @@ -0,0 +1,285 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Silk @U1 0.8 nozzle", + "inherits": "Snapmaker PLA Basic @U1 base", + "from": "system", + "setting_id": "f3H0JFUnds0mkKCN", + "filament_id": "11813638720", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "15" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_unloading_speed": [ + "90" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "pressure_advance": [ + "0.015" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json index 12d65834ea..227fa034dc 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 base.json @@ -55,8 +55,5 @@ ], "nozzle_temperature": [ "230" - ], - "default_filament_colour": [ - "" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json index 7fdf44e792..c68904ffd9 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json @@ -1,11 +1,285 @@ { "type": "filament", "name": "Snapmaker PLA Silk @U1", - "inherits": "Snapmaker PLA Silk @U1 base", + "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "9PkHSwtXFM0zPWth", + "filament_id": "11813638720", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "25" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_start_gcode": [ + "" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "dont_slow_down_outer_wall": [ + "1" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_retraction_length": [ + "0.2" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_unloading_speed": [ + "90" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "pressure_advance": [ + "0.015" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.2 nozzle.json new file mode 100644 index 0000000000..7fcb20f31b --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.2 nozzle.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Snapmaker PLA SnapSpeed @U1 0.2 nozzle", + "inherits": "Snapmaker PLA SnapSpeed @U1 base2", + "from": "system", + "setting_id": "jsAgNNiUC6DoO7rz", + "instantiation": "true", + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "1.01" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_multitool_ramming_flow": [ + "30" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "pressure_advance": [ + "0.2" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.6 nozzle.json new file mode 100644 index 0000000000..18fca8b4fd --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.6 nozzle.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Snapmaker PLA SnapSpeed @U1 0.6 nozzle", + "inherits": "Snapmaker PLA SnapSpeed @U1 base2", + "from": "system", + "setting_id": "aKudBpQBj3MZZZav", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_multitool_ramming_flow": [ + "30" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1.6" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.8 nozzle.json new file mode 100644 index 0000000000..2ebadbd2b2 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 0.8 nozzle.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Snapmaker PLA SnapSpeed @U1 0.8 nozzle", + "inherits": "Snapmaker PLA SnapSpeed @U1 base2", + "from": "system", + "setting_id": "sWoInox4hzxzIHfe", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_multitool_ramming_flow": [ + "30" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1.6" + ], + "filament_retraction_speed": [ + "30" + ], + "nozzle_temperature": [ + "215" + ], + "pressure_advance": [ + "0.018" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "enable_pressure_advance": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json new file mode 100644 index 0000000000..84889e3d9b --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json @@ -0,0 +1,281 @@ +{ + "type": "filament", + "name": "Snapmaker PLA SnapSpeed @U1 base2", + "from": "system", + "filament_id": "141703112701", + "instantiation": "false", + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers": [], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "24.99" + ], + "filament_density": [ + "1.26" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + " " + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + " " + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "45" + ], + "textured_plate_temp_initial_layer": [ + "45" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1.json index 96d86d2a81..2525f5b2a9 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1.json @@ -33,13 +33,13 @@ "0" ], "close_fan_the_first_x_layers": [ - "3" + "1" ], "compatible_printers_condition": "", "compatible_prints": [], "compatible_prints_condition": "", "complete_print_exhaust_fan_speed": [ - "80" + "70" ], "cool_plate_temp": [ "60" @@ -47,20 +47,17 @@ "cool_plate_temp_initial_layer": [ "60" ], - "default_filament_colour": [ - "" - ], "dont_slow_down_outer_wall": [ "0" ], "during_print_exhaust_fan_speed": [ - "60" + "70" ], "enable_overhang_bridge_fan": [ "1" ], "enable_pressure_advance": [ - "1" + "0" ], "eng_plate_temp": [ "60" @@ -102,7 +99,7 @@ "; filament end gcode \n" ], "filament_flow_ratio": [ - "0.99" + "0.966" ], "filament_is_support": [ "0" @@ -117,7 +114,7 @@ "nil" ], "filament_max_volumetric_speed": [ - "18" + "20" ], "filament_minimal_purge_on_wipe_tower": [ "15" @@ -126,7 +123,7 @@ "1" ], "filament_multitool_ramming_flow": [ - "40" + "30" ], "filament_multitool_ramming_volume": [ "5" @@ -140,6 +137,9 @@ "filament_retract_before_wipe": [ "nil" ], + "filament_retract_length_toolchange": [ + "5" + ], "filament_retract_lift_above": [ "nil" ], @@ -159,13 +159,13 @@ "nil" ], "filament_retraction_length": [ - "0.8" + "1.2" ], "filament_retraction_minimum_travel": [ "nil" ], "filament_retraction_speed": [ - "30" + "nil" ], "filament_shrink": [ "100%" @@ -207,19 +207,19 @@ "nil" ], "filament_z_hop": [ - "nil" + "0.4" ], "filament_z_hop_types": [ - "nil" + "Slope Lift" ], "full_fan_speed_layer": [ "0" ], "hot_plate_temp": [ - "55" + "65" ], "hot_plate_temp_initial_layer": [ - "55" + "65" ], "idle_temperature": [ "0" @@ -231,7 +231,7 @@ "220" ], "nozzle_temperature_range_high": [ - "230" + "240" ], "nozzle_temperature_range_low": [ "190" @@ -246,7 +246,7 @@ "0.4157" ], "pressure_advance": [ - "0.026" + "0.02" ], "reduce_fan_stop_start_freq": [ "1" @@ -267,7 +267,7 @@ "-1" ], "temperature_vitrification": [ - "60" + "45" ], "textured_cool_plate_temp": [ "40" @@ -276,9 +276,9 @@ "40" ], "textured_plate_temp": [ - "60" + "65" ], "textured_plate_temp_initial_layer": [ - "60" + "65" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.2 nozzle.json new file mode 100644 index 0000000000..6271b7af42 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.2 nozzle.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Translucent @U1 0.2 nozzle", + "inherits": "Snapmaker PLA Translucent @U1 base", + "from": "system", + "setting_id": "zIg9XLrieYNBduyn", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "1.02" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "1.6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "0%" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "0.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.15" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.4 nozzle.json new file mode 100644 index 0000000000..7d4270ef31 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.4 nozzle.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Translucent @U1 0.4 nozzle", + "inherits": "Snapmaker PLA Translucent @U1 base", + "from": "system", + "setting_id": "RqtrcLcy124ICGEc", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "25.4" + ], + "filament_density": [ + "1.32" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "8" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "50" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "0.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.6 nozzle.json new file mode 100644 index 0000000000..af3f95c757 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.6 nozzle.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Translucent @U1 0.6 nozzle", + "inherits": "Snapmaker PLA Translucent @U1 base", + "from": "system", + "setting_id": "OZHemzEcvzFMN8fL", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "0%" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "0.5" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.8 nozzle.json new file mode 100644 index 0000000000..a10a4b2fb1 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 0.8 nozzle.json @@ -0,0 +1,284 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Translucent @U1 0.8 nozzle", + "inherits": "Snapmaker PLA Translucent @U1 base", + "from": "system", + "setting_id": "IPehCg9fKawLorB5", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "0%" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PLA" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "Snapmaker" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "idle_temperature": [ + "0" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json new file mode 100644 index 0000000000..4f4842ae1d --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Translucent @U1 base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "SPTR001", + "instantiation": "false", + "filament_end_gcode": [ + "" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_loading_speed_start": [ + "35" + ], + "filament_loading_speed": [ + "35" + ], + "filament_unloading_speed_start": [ + "35" + ], + "filament_unloading_speed": [ + "35" + ], + "filament_load_time": [ + "2" + ], + "filament_unload_time": [ + "2" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cooling_initial_speed": [ + "35" + ], + "filament_cooling_final_speed": [ + "60" + ], + "nozzle_temperature": [ + "220" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json new file mode 100644 index 0000000000..4768ac2783 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json @@ -0,0 +1,108 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Wood @U1 0.4 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XvizDDHbds3bVrzi", + "filament_id": "GFL9922", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_start_gcode": [ + "" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_end_gcode": [ + "\n" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "0.6" + ], + "pressure_advance": [ + "0.025" + ], + "slow_down_layer_time": [ + "4" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json new file mode 100644 index 0000000000..43d306ebae --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Wood @U1 0.6 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Kp77DCcitdmoyjqm", + "filament_id": "GFL9922", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filament_start_gcode": [ + "" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_end_gcode": [ + "\n" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "0.4" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json new file mode 100644 index 0000000000..da788a35fb --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json @@ -0,0 +1,114 @@ +{ + "type": "filament", + "name": "Snapmaker PLA Wood @U1 0.8 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "nBYnNiqwLo6nAsqi", + "filament_id": "GFL9922", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filament_start_gcode": [ + "" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_end_gcode": [ + "\n" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.965" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "0.4" + ], + "pressure_advance": [ + "0.007" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "nozzle_temperature": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json new file mode 100644 index 0000000000..b986a7244a --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json @@ -0,0 +1,132 @@ +{ + "type": "filament", + "name": "Snapmaker PLA-CF @U1 0.4 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "2INwruC3ZVkBTdUT", + "filament_id": "GFL98111", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "enable_pressure_advance": [ + "1" + ], + "filament_end_gcode": [ + "" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_minimal_purge_on_wipe_tower": [ + "50" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "5" + ], + "filament_retraction_length": [ + "1" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "pressure_advance": [ + "0.01" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "40" + ], + "slow_down_layer_time": [ + "7" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ], + "additional_cooling_fan_speed": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json new file mode 100644 index 0000000000..dcb6392634 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json @@ -0,0 +1,138 @@ +{ + "type": "filament", + "name": "Snapmaker PLA-CF @U1 0.6 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "CKfdL85SvbOLzMuP", + "filament_id": "GFL98111", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_end_gcode": [ + "" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "25" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "2" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "pressure_advance": [ + "0.015" + ], + "filament_cost": [ + "35" + ], + "filament_density": [ + "1.22" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_wipe_distance": [ + "2" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "40" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ], + "additional_cooling_fan_speed": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json new file mode 100644 index 0000000000..1e6e961497 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "Snapmaker PLA-CF @U1 0.8 nozzle", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "fhhnfJm4dN9FXpWQ", + "filament_id": "GFL98111", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_end_gcode": [ + "" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "25" + ], + "filament_start_gcode": [ + "" + ], + "filament_vendor": [ + "Snapmaker" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "3" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "pressure_advance": [ + "0.015" + ], + "filament_cost": [ + "35" + ], + "filament_density": [ + "1.22" + ], + "slow_down_layer_time": [ + "8" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "40" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "45" + ], + "additional_cooling_fan_speed": [ + "0" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json index 617a8c23ea..63f877d965 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 base.json @@ -59,9 +59,6 @@ "temperature_vitrification": [ "150" ], - "default_filament_colour": [ - "" - ], "filament_type": [ "PLA-CF" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json index ec04c8108d..9091258467 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json @@ -7,5 +7,8 @@ "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" + ], + "filament_retract_length_toolchange": [ + "5" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.6 nozzle.json new file mode 100644 index 0000000000..b28e0627ad --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.6 nozzle.json @@ -0,0 +1,113 @@ +{ + "type": "filament", + "name": "Snapmaker PVA @U1 0.6 nozzle", + "inherits": "Snapmaker PVA @U1 base", + "from": "system", + "setting_id": "lIqgnfeZdAm8G0TH", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "79.98" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "7" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "fan_min_speed": [ + "100" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.8 nozzle.json new file mode 100644 index 0000000000..6572a60078 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1 0.8 nozzle.json @@ -0,0 +1,107 @@ +{ + "type": "filament", + "name": "Snapmaker PVA @U1 0.8 nozzle", + "inherits": "Snapmaker PVA @U1 base", + "from": "system", + "setting_id": "WxtuvwWxy73Gi0IK", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "enable_pressure_advance": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "79.98" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_retract_length_toolchange": [ + "10" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "1" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "225" + ], + "nozzle_temperature_initial_layer": [ + "225" + ], + "nozzle_temperature_range_low": [ + "205" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "7" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1.json index f9a33d7bcb..5ed5d243ac 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PVA @U1.json @@ -7,5 +7,95 @@ "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" + ], + "enable_pressure_advance": [ + "1" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "pressure_advance": [ + "0.03" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "fan_min_speed": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.4" + ], + "filament_cooling_initial_speed": [ + "2.2" + ], + "filament_cooling_moves": [ + "4" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "28" + ], + "filament_loading_speed_start": [ + "3" + ], + "filament_max_volumetric_speed": [ + "5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "20" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "filament_retract_length_toolchange": [ + "4" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_unloading_speed": [ + "90" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "slow_down_layer_time": [ + "10" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" ] } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json new file mode 100644 index 0000000000..6ae8a5b675 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 90A @U1 0.6 nozzle", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "uQCplebxmpBpzsnk", + "filament_id": "GFU99", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "pressure_advance": [ + "0.02" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_deretraction_speed": [ + "20" + ], + "filament_flow_ratio": [ + "1.093" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_retract_length_toolchange": [ + "4" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_speed": [ + "20" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "slow_down_layer_time": [ + "14" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "0" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json new file mode 100644 index 0000000000..45f0f7a0e9 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 90A @U1 0.8 nozzle", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "w4Hpl2qNPmgNvaeM", + "filament_id": "GFU99", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.5" + ], + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "pressure_advance": [ + "0.02" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_deretraction_speed": [ + "20" + ], + "filament_flow_ratio": [ + "1.095" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_retract_length_toolchange": [ + "4" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "20" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "slow_down_layer_time": [ + "14" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json new file mode 100644 index 0000000000..e89397849b --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json @@ -0,0 +1,141 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 90A @U1", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "T4MmgICRrSzvmCZ5", + "filament_id": "GFU99", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3.2" + ], + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "pressure_advance": [ + "0.4" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "complete_print_exhaust_fan_speed": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_flow_ratio": [ + "1.045" + ], + "filament_multitool_ramming_flow": [ + "5" + ], + "filament_retract_length_toolchange": [ + "2" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "slow_down_layer_time": [ + "14" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json index a6d8c41b5d..3c51439206 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json @@ -43,9 +43,6 @@ "filament_retraction_speed": [ "nil" ], - "filament_settings_id": [ - "" - ], "filament_soluble": [ "0" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json new file mode 100644 index 0000000000..1085c84e6f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 95A HF @U1 0.6 nozzle", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "Q2svXpkEqg0dCdq3", + "filament_id": "GFU99", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "enable_pressure_advance": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1.067" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_retract_length_toolchange": [ + "8" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "overhang_fan_threshold": [ + "95%" + ], + "pressure_advance": [ + "0.14" + ], + "slow_down_layer_time": [ + "8" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json new file mode 100644 index 0000000000..bef4c7712f --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 95A HF @U1 0.8 nozzle", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "RjsE08h3l37cAkAs", + "filament_id": "GFU99", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "enable_pressure_advance": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1.045" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_multitool_ramming_flow": [ + "15" + ], + "filament_retract_length_toolchange": [ + "8" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "overhang_fan_threshold": [ + "95%" + ], + "pressure_advance": [ + "0.12" + ], + "slow_down_layer_time": [ + "12" + ], + "additional_cooling_fan_speed": [ + "100" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json new file mode 100644 index 0000000000..5e0696d906 --- /dev/null +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "Snapmaker TPU 95A HF @U1", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "KwcwmV2UmZUgCBoz", + "filament_id": "GFU99", + "instantiation": "true", + "compatible_printers": [ + "Snapmaker U1 (0.4 nozzle)" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_volume": [ + "0.1" + ], + "enable_pressure_advance": [ + "0" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "10" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_flow_ratio": [ + "1.067" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_retract_length_toolchange": [ + "6" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_vendor": [ + "Snapmaker" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pressure_advance": [ + "0.23" + ], + "slow_down_layer_time": [ + "10" + ], + "activate_air_filtration": [ + "0" + ], + "chamber_temperatures": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "30" + ], + "cool_plate_temp_initial_layer": [ + "30" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "30" + ], + "eng_plate_temp_initial_layer": [ + "30" + ], + "filament_cost": [ + "20" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "hot_plate_temp": [ + "35" + ], + "hot_plate_temp_initial_layer": [ + "35" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "temperature_vitrification": [ + "30" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "nozzle_temperature_range_low": [ + "200" + ] +} diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json index 8a5cbc56d8..183e125c73 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.2 nozzle).json @@ -1,13 +1,54 @@ { "type": "machine", - "setting_id": "CwJeuh1rxZcjvkXh", "name": "Snapmaker U1 (0.2 nozzle)", - "from": "system", - "instantiation": "true", "inherits": "fdm_U1", + "from": "system", + "setting_id": "CwJeuh1rxZcjvkXh", + "instantiation": "true", "printer_model": "Snapmaker U1", "printer_variant": "0.2", - "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 nozzle)", + "auxiliary_fan": "1", + "change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if 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);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n", + "deretraction_speed": [ + "30", + "30", + "30", + "30" + ], + "extruder_colour": [ + "#FCE94F", + "#FCE94F", + "#FCE94F", + "#FCE94F" + ], + "extruder_offset": [ + "0x0", + "0x0", + "0x0", + "0x0" + ], + "host_type": "octoprint", + "long_retractions_when_cut": [ + "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_max_jerk_z": [ + "3", + "0.4" + ], + "machine_max_speed_e": [ + "30", + "25" + ], + "machine_max_speed_z": [ + "20", + "12" + ], + "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 Z_OFFSET=-0.07\n{else} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0", + "machine_tool_change_time": "5", "max_layer_height": [ "0.14", "0.14", @@ -26,5 +67,125 @@ "0.2", "0.2" ], - "nozzle_type": "hardened_steel" + "nozzle_type": "hardened_steel", + "printable_area": [ + "0.5x1", + "270.5x1", + "270.5x271", + "0.5x271" + ], + "printable_height": "270.05", + "retract_before_wipe": [ + "0%", + "0%", + "0%", + "0%" + ], + "retract_length_toolchange": [ + "10", + "10", + "10", + "10" + ], + "retract_lift_above": [ + "0", + "0", + "0", + "0" + ], + "retract_lift_below": [ + "269", + "269", + "269", + "269" + ], + "retract_lift_enforce": [ + "All Surfaces", + "All Surfaces", + "All Surfaces", + "All Surfaces" + ], + "retract_restart_extra": [ + "0", + "0", + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0", + "0", + "0" + ], + "retract_when_changing_layer": [ + "1", + "1", + "1", + "1" + ], + "retraction_distances_when_cut": [ + "18", + "18", + "18", + "18" + ], + "retraction_length": [ + "0.4", + "0.4", + "0.4", + "0.4" + ], + "retraction_minimum_travel": [ + "1", + "1", + "1", + "1" + ], + "retraction_speed": [ + "30", + "30", + "30", + "30" + ], + "thumbnails": "48x48/PNG, 300x300/PNG", + "travel_slope": [ + "3", + "3", + "3", + "3" + ], + "wipe": [ + "1", + "1", + "1", + "1" + ], + "wipe_distance": [ + "2", + "2", + "2", + "2" + ], + "z_hop": [ + "0.4", + "0.4", + "0.4", + "0.4" + ], + "z_hop_types": [ + "Auto Lift", + "Auto Lift", + "Auto Lift", + "Auto Lift" + ], + "enable_filament_ramming": "0", + "extruder_clearance_height_to_rod": "27.5", + "extruder_clearance_radius": "72.5", + "machine_load_filament_time": "0", + "machine_unload_filament_time": "0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT", + "machine_pause_gcode": "M600", + "nozzle_volume": "143", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}", + "default_print_profile": "0.10 Standard @Snapmaker U1 (0.2 nozzle)" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json index 1105a7ec1d..6d2ec2cfe6 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json @@ -1,14 +1,20 @@ { "type": "machine", - "setting_id": "UeTP4RqAd7xAMHVE", "name": "Snapmaker U1 (0.4 nozzle)", - "from": "system", - "instantiation": "true", "inherits": "fdm_U1", + "from": "system", + "setting_id": "UeTP4RqAd7xAMHVE", + "instantiation": "true", "printer_model": "Snapmaker U1", "printer_variant": "0.4", "auxiliary_fan": "1", "change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if 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);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n", + "deretraction_speed": [ + "30", + "30", + "30", + "30" + ], "extruder_colour": [ "#FCE94F", "#FCE94F", @@ -29,38 +35,6 @@ "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_max_acceleration_extruding": [ - "25000", - "25000" - ], - "machine_max_acceleration_retracting": [ - "5000", - "5000" - ], - "machine_max_acceleration_travel": [ - "25000", - "25000" - ], - "machine_max_acceleration_x": [ - "25000", - "25000" - ], - "machine_max_acceleration_y": [ - "25000", - "25000" - ], - "machine_max_acceleration_z": [ - "500", - "200" - ], - "machine_max_jerk_x": [ - "9", - "9" - ], - "machine_max_jerk_y": [ - "9", - "9" - ], "machine_max_jerk_z": [ "3", "0.4" @@ -69,22 +43,11 @@ "30", "25" ], - "machine_max_speed_x": [ - "1000", - "200" - ], - "machine_max_speed_y": [ - "1000", - "200" - ], "machine_max_speed_z": [ "20", "12" ], - "resonance_avoidance": "1", - "min_resonance_avoidance_speed": "40", - "max_resonance_avoidance_speed": "90", - "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20251222 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}\nSET_PRINT_STATS_INFO CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\nG28 X Y\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nG28 Z\n\n;===== 热床调平 =================\n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n; Original upstream: BED_MESH_CALIBRATE PROBE_COUNT=11,11\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X10 Y3 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X110 E15 F360\nG1 Z1.5\n\nG90\nM106 S0", + "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 Z_OFFSET=-0.07\n{else} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0", "machine_tool_change_time": "5", "max_layer_height": [ "0.32", @@ -104,7 +67,7 @@ "0.4", "0.4" ], - "nozzle_type": "stainless_steel", + "nozzle_type": "hardened_steel", "printable_area": [ "0.5x1", "270.5x1", @@ -112,7 +75,6 @@ "0.5x271" ], "printable_height": "270.05", - "printer_settings_id": "MyToolChanger 0.4 nozzle - Copy", "retract_before_wipe": [ "0%", "0%", @@ -168,10 +130,10 @@ "18" ], "retraction_length": [ - "0.8", - "0.8", - "0.8", - "0.8" + "1.5", + "1.5", + "1.5", + "1.5" ], "retraction_minimum_travel": [ "1", @@ -180,16 +142,10 @@ "1" ], "retraction_speed": [ - "40", - "40", - "40", - "40" - ], - "deretraction_speed": [ - "35", - "35", - "35", - "35" + "30", + "30", + "30", + "30" ], "thumbnails": "48x48/PNG, 300x300/PNG", "travel_slope": [ @@ -228,17 +184,11 @@ "machine_load_filament_time": "0", "machine_unload_filament_time": "0", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT", - "z_hop_when_prime": [ - "0", - "0", - "0", - "0" - ], - "ramming_pressure_advance_value": "0.02", - "tool_change_temprature_wait": "0", - "printer_notes": "", + "default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 nozzle)", "machine_pause_gcode": "M600", - "default_bed_type": "Textured PEI Plate", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num+1}", - "nozzle_volume": "143" + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}", + "nozzle_volume": "143", + "resonance_avoidance": "1", + "min_resonance_avoidance_speed": "40", + "max_resonance_avoidance_speed": "90" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4+0.6 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4+0.6 nozzle).json index f637b2a592..c9866329bd 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4+0.6 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4+0.6 nozzle).json @@ -1,10 +1,10 @@ { "type": "machine", - "setting_id": "O6AMxX1Ptbtv4zCK", "name": "Snapmaker U1 (0.4+0.6 nozzle)", - "from": "system", - "instantiation": "true", "inherits": "fdm_U1", + "from": "system", + "setting_id": "O6AMxX1Ptbtv4zCK", + "instantiation": "true", "printer_model": "Snapmaker U1", "printer_variant": "0.4+0.6", "default_print_profile": "0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle)", diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json index 60e699d108..a6cb0d0bd3 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.6 nozzle).json @@ -1,18 +1,59 @@ { "type": "machine", - "setting_id": "1OseO7RSPgE4CRKO", "name": "Snapmaker U1 (0.6 nozzle)", - "from": "system", - "instantiation": "true", "inherits": "fdm_U1", + "from": "system", + "setting_id": "1OseO7RSPgE4CRKO", + "instantiation": "true", "printer_model": "Snapmaker U1", "printer_variant": "0.6", - "default_print_profile": "0.20 Standard @Snapmaker U1 (0.6 nozzle)", + "auxiliary_fan": "1", + "change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if 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);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n", + "deretraction_speed": [ + "30", + "30", + "30", + "30" + ], + "extruder_colour": [ + "#FCE94F", + "#FCE94F", + "#FCE94F", + "#FCE94F" + ], + "extruder_offset": [ + "0x0", + "0x0", + "0x0", + "0x0" + ], + "host_type": "octoprint", + "long_retractions_when_cut": [ + "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_max_jerk_z": [ + "3", + "0.4" + ], + "machine_max_speed_e": [ + "30", + "25" + ], + "machine_max_speed_z": [ + "20", + "12" + ], + "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 Z_OFFSET=-0.07\n{else} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0", + "machine_tool_change_time": "5", "max_layer_height": [ - "0.48", - "0.48", - "0.48", - "0.48" + "0.42", + "0.42", + "0.42", + "0.42" ], "min_layer_height": [ "0.12", @@ -26,5 +67,125 @@ "0.6", "0.6" ], - "nozzle_type": "stainless_steel" + "nozzle_type": "stainless_steel", + "printable_area": [ + "0.5x1", + "270.5x1", + "270.5x271", + "0.5x271" + ], + "printable_height": "270.05", + "retract_before_wipe": [ + "0%", + "0%", + "0%", + "0%" + ], + "retract_length_toolchange": [ + "10", + "10", + "10", + "10" + ], + "retract_lift_above": [ + "0", + "0", + "0", + "0" + ], + "retract_lift_below": [ + "269", + "269", + "269", + "269" + ], + "retract_lift_enforce": [ + "All Surfaces", + "All Surfaces", + "All Surfaces", + "All Surfaces" + ], + "retract_restart_extra": [ + "0", + "0", + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0", + "0", + "0" + ], + "retract_when_changing_layer": [ + "1", + "1", + "1", + "1" + ], + "retraction_distances_when_cut": [ + "18", + "18", + "18", + "18" + ], + "retraction_length": [ + "1.4", + "1.4", + "1.4", + "1.4" + ], + "retraction_minimum_travel": [ + "3", + "3", + "3", + "3" + ], + "retraction_speed": [ + "30", + "30", + "30", + "30" + ], + "thumbnails": "48x48/PNG, 300x300/PNG", + "travel_slope": [ + "3", + "3", + "3", + "3" + ], + "wipe": [ + "1", + "1", + "1", + "1" + ], + "wipe_distance": [ + "1", + "1", + "1", + "1" + ], + "z_hop": [ + "0.4", + "0.4", + "0.4", + "0.4" + ], + "z_hop_types": [ + "Auto Lift", + "Auto Lift", + "Auto Lift", + "Auto Lift" + ], + "enable_filament_ramming": "0", + "extruder_clearance_height_to_rod": "27.5", + "extruder_clearance_radius": "72.5", + "machine_load_filament_time": "0", + "machine_unload_filament_time": "0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT", + "machine_pause_gcode": "M600", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}", + "nozzle_volume": "143", + "default_print_profile": "0.30 Standard @Snapmaker U1 (0.6 nozzle)" } diff --git a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json index b775c2c964..ef4da1a516 100644 --- a/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.8 nozzle).json @@ -1,13 +1,54 @@ { "type": "machine", - "setting_id": "WTkhQtyDO06YY6AG", "name": "Snapmaker U1 (0.8 nozzle)", - "from": "system", - "instantiation": "true", "inherits": "fdm_U1", + "from": "system", + "setting_id": "WTkhQtyDO06YY6AG", + "instantiation": "true", "printer_model": "Snapmaker U1", "printer_variant": "0.8", - "default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 nozzle)", + "auxiliary_fan": "1", + "change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if 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);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n", + "deretraction_speed": [ + "30", + "30", + "30", + "30" + ], + "extruder_colour": [ + "#FCE94F", + "#FCE94F", + "#FCE94F", + "#FCE94F" + ], + "extruder_offset": [ + "0x0", + "0x0", + "0x0", + "0x0" + ], + "host_type": "octoprint", + "long_retractions_when_cut": [ + "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_max_jerk_z": [ + "3", + "0.4" + ], + "machine_max_speed_e": [ + "30", + "25" + ], + "machine_max_speed_z": [ + "20", + "12" + ], + "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 Z_OFFSET=-0.07\n{else} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0", + "machine_tool_change_time": "5", "max_layer_height": [ "0.56", "0.56", @@ -26,5 +67,125 @@ "0.8", "0.8" ], - "nozzle_type": "hardened_steel" + "nozzle_type": "hardened_steel", + "printable_area": [ + "0.5x1", + "270.5x1", + "270.5x271", + "0.5x271" + ], + "printable_height": "270.05", + "retract_before_wipe": [ + "0%", + "0%", + "0%", + "0%" + ], + "retract_length_toolchange": [ + "10", + "10", + "10", + "10" + ], + "retract_lift_above": [ + "0", + "0", + "0", + "0" + ], + "retract_lift_below": [ + "269", + "269", + "269", + "269" + ], + "retract_lift_enforce": [ + "All Surfaces", + "All Surfaces", + "All Surfaces", + "All Surfaces" + ], + "retract_restart_extra": [ + "0", + "0", + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0", + "0", + "0" + ], + "retract_when_changing_layer": [ + "1", + "1", + "1", + "1" + ], + "retraction_distances_when_cut": [ + "18", + "18", + "18", + "18" + ], + "retraction_length": [ + "1.5", + "1.5", + "1.5", + "1.5" + ], + "retraction_minimum_travel": [ + "1", + "1", + "1", + "1" + ], + "retraction_speed": [ + "30", + "30", + "30", + "30" + ], + "thumbnails": "48x48/PNG, 300x300/PNG", + "travel_slope": [ + "3", + "3", + "3", + "3" + ], + "wipe": [ + "1", + "1", + "1", + "1" + ], + "wipe_distance": [ + "2", + "2", + "2", + "2" + ], + "z_hop": [ + "0.4", + "0.4", + "0.4", + "0.4" + ], + "z_hop_types": [ + "Auto Lift", + "Auto Lift", + "Auto Lift", + "Auto Lift" + ], + "enable_filament_ramming": "0", + "extruder_clearance_height_to_rod": "27.5", + "extruder_clearance_radius": "72.5", + "machine_load_filament_time": "0", + "machine_unload_filament_time": "0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT", + "machine_pause_gcode": "M600", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}", + "nozzle_volume": "143", + "default_print_profile": "0.40 Standard @Snapmaker U1 (0.8 nozzle)" } diff --git a/resources/profiles/Snapmaker/machine/fdm_U1.json b/resources/profiles/Snapmaker/machine/fdm_U1.json index 73fe5b74ef..717215b507 100644 --- a/resources/profiles/Snapmaker/machine/fdm_U1.json +++ b/resources/profiles/Snapmaker/machine/fdm_U1.json @@ -176,8 +176,6 @@ "Normal Lift", "Normal Lift" ], - "bed_mesh_max": "267,267", - "bed_mesh_min": "3,3", "purge_in_prime_tower": "0", "machine_pause_gcode": "M601", "change_filament_gcode": "", @@ -185,13 +183,16 @@ "scan_first_layer": "0", "nozzle_type": "undefine", "auxiliary_fan": "0", - "default_bed_type": "Textured PEI Plate", - "printer_agent": "snapmaker", + "support_multi_bed_types": "1", + "default_bed_type": "4", "printable_area": [ "0.5x1", "270.5x1", "270.5x271", "0.5x271" ], - "printable_height": "270.05" + "printable_height": "270.05", + "bed_mesh_min": "3,3", + "bed_mesh_max": "267,267", + "printer_agent": "snapmaker" } diff --git a/resources/profiles/Snapmaker/process/0.06 High Quality @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.06 High Quality @Snapmaker U1 (0.2 nozzle).json index 996b127b77..3dec06228e 100644 --- a/resources/profiles/Snapmaker/process/0.06 High Quality @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.06 High Quality @Snapmaker U1 (0.2 nozzle).json @@ -1,43 +1,31 @@ { - "type": "process", - "name": "0.06 High Quality @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.06", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.06", - "support_bottom_z_distance": "0.06", - "setting_id": "3SCofR6VrVyo3vJp", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in minimal layer lines and much higher printing quality, but much longer printing time.", - "default_acceleration": "4000", - "elefant_foot_compensation": "0.15", - "outer_wall_acceleration": "2000", - "outer_wall_speed": "60", - "sparse_infill_pattern": "gyroid", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "13.5", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.06 High Quality @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.06_nozzle_0.2", + "from": "system", + "setting_id": "3SCofR6VrVyo3vJp", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in minimal layer lines and much higher printing quality, but much longer printing time.", + "default_acceleration": "4000", + "elefant_foot_compensation": "0.15", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "sparse_infill_pattern": "gyroid", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "13.5", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.06 Standard @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.06 Standard @Snapmaker U1 (0.2 nozzle).json index 85e50ec87f..7c80e048f6 100644 --- a/resources/profiles/Snapmaker/process/0.06 Standard @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.06 Standard @Snapmaker U1 (0.2 nozzle).json @@ -1,39 +1,27 @@ { - "type": "process", - "name": "0.06 Standard @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.06", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.06", - "support_bottom_z_distance": "0.06", - "setting_id": "997RaiNHd2YhpaRB", - "description": "Compared with the default profile of 0.2 mm nozzle, it has a smaller layer height, and results in minimal layer lines and higher printing quality, but shorter printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "13.5", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.06 Standard @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.06_nozzle_0.2", + "from": "system", + "setting_id": "997RaiNHd2YhpaRB", + "instantiation": "true", + "description": "Compared with the default profile of 0.2 mm nozzle, it has a smaller layer height, and results in minimal layer lines and higher printing quality, but shorter printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "13.5", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker U1 (0.4 nozzle).json index aeffe99f2a..b8a8e126aa 100644 --- a/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 Extra Fine @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,19 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "18", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "outer_wall_speed": "100", + "precise_outer_wall": "1", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.2 nozzle).json index fe0fc0e87d..27d3903f06 100644 --- a/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.2 nozzle).json @@ -1,43 +1,31 @@ { - "type": "process", - "name": "0.08 High Quality @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.08", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.08", - "support_bottom_z_distance": "0.08", - "setting_id": "6ExpMU3Wq4J1R7wy", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in almost invisible layer lines and much higher printing quality, but much longer printing time.", - "default_acceleration": "4000", - "elefant_foot_compensation": "0.15", - "outer_wall_acceleration": "2000", - "outer_wall_speed": "60", - "sparse_infill_pattern": "gyroid", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "18", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.08 High Quality @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.08_nozzle_0.2", + "from": "system", + "setting_id": "6ExpMU3Wq4J1R7wy", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer lines, lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in almost invisible layer lines and much higher printing quality, but much longer printing time.", + "default_acceleration": "4000", + "elefant_foot_compensation": "0.15", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "sparse_infill_pattern": "gyroid", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "18", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.4 nozzle).json index b86156d841..677e6742d9 100644 --- a/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 High Quality @Snapmaker U1 (0.4 nozzle).json @@ -21,6 +21,18 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "18", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.08 Standard @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.08 Standard @Snapmaker U1 (0.2 nozzle).json index 472176ff40..b4728bd60f 100644 --- a/resources/profiles/Snapmaker/process/0.08 Standard @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.08 Standard @Snapmaker U1 (0.2 nozzle).json @@ -1,39 +1,27 @@ { - "type": "process", - "name": "0.08 Standard @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.08", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.08", - "support_bottom_z_distance": "0.08", - "setting_id": "loFrCYH9ux2L5JpZ", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer height, and results in almost invisible layer lines and higher printing quality, but shorter printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "18", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.08 Standard @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.08_nozzle_0.2", + "from": "system", + "setting_id": "loFrCYH9ux2L5JpZ", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer height, and results in almost invisible layer lines and higher printing quality, but shorter printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "18", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.10 High Quality @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.10 High Quality @Snapmaker U1 (0.2 nozzle).json index 0f15ce7c5f..80b2120807 100644 --- a/resources/profiles/Snapmaker/process/0.10 High Quality @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.10 High Quality @Snapmaker U1 (0.2 nozzle).json @@ -1,43 +1,31 @@ { - "type": "process", - "name": "0.10 High Quality @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.1", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.1", - "support_bottom_z_distance": "0.1", - "setting_id": "BfLpmnJnSBYBFInR", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in much higher printing quality, but a much longer printing time.", - "default_acceleration": "4000", - "elefant_foot_compensation": "0.15", - "outer_wall_acceleration": "2000", - "outer_wall_speed": "60", - "sparse_infill_pattern": "gyroid", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "28", - "prime_volume": "25", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.10 High Quality @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.10_nozzle_0.2", + "from": "system", + "setting_id": "BfLpmnJnSBYBFInR", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has lower speeds and acceleration, and the sparse infill pattern is Gyroid. So, it results in much higher printing quality, but a much longer printing time.", + "default_acceleration": "4000", + "elefant_foot_compensation": "0.15", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "sparse_infill_pattern": "gyroid", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "28", + "prime_volume": "25", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.10 Standard @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.10 Standard @Snapmaker U1 (0.2 nozzle).json index 460bf8b6fd..80739205ac 100644 --- a/resources/profiles/Snapmaker/process/0.10 Standard @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.10 Standard @Snapmaker U1 (0.2 nozzle).json @@ -1,41 +1,29 @@ { - "type": "process", - "name": "0.10 Standard @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.1", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.1", - "support_bottom_z_distance": "0.1", - "setting_id": "SOq962UWv1ml1Mk0", - "description": "It has a small layer height, and results in almost negligible layer lines and high printing quality. It is suitable for most general printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "preheat_time": "31", - "prime_tower_brim_width": "6", - "prime_tower_width": "28", - "prime_volume": "25", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "slowdown_for_curled_perimeters": "0" + "type": "process", + "name": "0.10 Standard @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.10_nozzle_0.2", + "from": "system", + "setting_id": "SOq962UWv1ml1Mk0", + "instantiation": "true", + "description": "It has a small layer height, and results in almost negligible layer lines and high printing quality. It is suitable for most general printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "preheat_time": "31", + "prime_tower_brim_width": "6", + "prime_tower_width": "28", + "prime_volume": "25", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "slowdown_for_curled_perimeters": "0" } diff --git a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker U1 (0.4 nozzle).json index 42823b3f0b..2da54a6dc3 100644 --- a/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 Fine @Snapmaker U1 (0.4 nozzle).json @@ -13,5 +13,18 @@ ], "ooze_prevention": "1", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "27", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_threshold_angle": "25", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.12 High Quality @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.12 High Quality @Snapmaker U1 (0.4 nozzle).json index 8564a41b24..9302a40421 100644 --- a/resources/profiles/Snapmaker/process/0.12 High Quality @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 High Quality @Snapmaker U1 (0.4 nozzle).json @@ -20,5 +20,20 @@ "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" ], - "slowdown_for_curled_perimeters": "0" + "prime_tower_width": "30", + "prime_volume": "27", + "slowdown_for_curled_perimeters": "0", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "standby_temperature_delta": "-150", + "support_threshold_angle": "25", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.12 Standard @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.12 Standard @Snapmaker U1 (0.2 nozzle).json index de68cc0dd0..cc93a97e99 100644 --- a/resources/profiles/Snapmaker/process/0.12 Standard @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.12 Standard @Snapmaker U1 (0.2 nozzle).json @@ -1,39 +1,27 @@ { - "type": "process", - "name": "0.12 Standard @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.12", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.12", - "support_bottom_z_distance": "0.12", - "setting_id": "KHC1zpxpuvaUEzvf", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer height, and results in almost negligible layer lines, and slightly shorter printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "28", - "prime_volume": "27", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.12 Standard @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.12_nozzle_0.2", + "from": "system", + "setting_id": "KHC1zpxpuvaUEzvf", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has a slightly bigger layer height, and results in almost negligible layer lines, and slightly shorter printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "28", + "prime_volume": "27", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.14 Standard @Snapmaker U1 (0.2 nozzle).json b/resources/profiles/Snapmaker/process/0.14 Standard @Snapmaker U1 (0.2 nozzle).json index c265d55e67..54513eb14b 100644 --- a/resources/profiles/Snapmaker/process/0.14 Standard @Snapmaker U1 (0.2 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.14 Standard @Snapmaker U1 (0.2 nozzle).json @@ -1,39 +1,27 @@ { - "type": "process", - "name": "0.14 Standard @Snapmaker U1 (0.2 nozzle)", - "inherits": "fdm_process_U1_0.2_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.14", - "initial_layer_print_height": "0.1", - "wall_loops": "4", - "bottom_shell_layers": "5", - "top_shell_layers": "7", - "bridge_flow": "1", - "initial_layer_speed": "40", - "initial_layer_infill_speed": "70", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "support_top_z_distance": "0.14", - "support_bottom_z_distance": "0.14", - "setting_id": "NGJoV0n6T510y9wM", - "description": "Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer height, and results in slightly visible layer lines, but shorter printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.2 nozzle)" - ], - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "32", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib" + "type": "process", + "name": "0.14 Standard @Snapmaker U1 (0.2 nozzle)", + "inherits": "fdm_process_U1_0.14_nozzle_0.2", + "from": "system", + "setting_id": "NGJoV0n6T510y9wM", + "instantiation": "true", + "description": "Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer height, and results in slightly visible layer lines, but shorter printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.2 nozzle)" + ], + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "32", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib" } diff --git a/resources/profiles/Snapmaker/process/0.16 High Quality @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.16 High Quality @Snapmaker U1 (0.4 nozzle).json index e66f9f3beb..416d85881c 100644 --- a/resources/profiles/Snapmaker/process/0.16 High Quality @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.16 High Quality @Snapmaker U1 (0.4 nozzle).json @@ -21,6 +21,19 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "36", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_threshold_angle": "30", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker U1 (0.4 nozzle).json index 2817871fad..6871a3e120 100644 --- a/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.16 Optimal @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,18 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "36", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.18 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.18 Standard @Snapmaker U1 (0.6 nozzle).json index e68cf86d75..77b756bffc 100644 --- a/resources/profiles/Snapmaker/process/0.18 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.18 Standard @Snapmaker U1 (0.6 nozzle).json @@ -1,42 +1,32 @@ { - "type": "process", - "name": "0.18 Standard @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.25", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "support_top_z_distance": "0.18", - "support_bottom_z_distance": "0.18", - "setting_id": "XGSrVgnsUFv6uCRs", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and higher printing quality, but longer printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "41", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)" + "type": "process", + "name": "0.18 Standard @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.18_nozzle_0.6", + "from": "system", + "setting_id": "XGSrVgnsUFv6uCRs", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and higher printing quality, but longer printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "layer_height": "0.25", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "41", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle).json deleted file mode 100644 index 5de608c68d..0000000000 --- a/resources/profiles/Snapmaker/process/0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle).json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "process", - "name": "0.20 Bambu Support W @Snapmaker U1 (0.4 nozzle)", - "inherits": "fdm_process_U1_0.20", - "from": "system", - "setting_id": "8OkVMuElKExBdftG", - "instantiation": "true", - "enable_support": "1", - "support_interface_top_layers": "3", - "support_top_z_distance": "0.2", - "support_interface_loop_pattern": "1", - "support_interface_spacing": "0", - "support_interface_speed": "80", - "support_filament": "0", - "support_interface_filament": "0", - "enable_prime_tower": "1", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "ooze_prevention": "1", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" -} diff --git a/resources/profiles/Snapmaker/process/0.20 Quality @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Quality @Snapmaker U1 (0.4 nozzle).json index ac7fc102bc..da92006d49 100644 --- a/resources/profiles/Snapmaker/process/0.20 Quality @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Quality @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,7 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4 nozzle).json index 243718507b..5d873d5efd 100644 --- a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,8 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "45", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json index 52e1aa9349..63bb6ea170 100644 --- a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.4+0.6 nozzle).json @@ -20,6 +20,7 @@ "smooth_coefficient": "150", "overhang_totally_speed": "50", "ooze_prevention": "1", + "prime_tower_width": "30", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.6 nozzle).json index f5ab699928..d1bb174a62 100644 --- a/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Standard @Snapmaker U1 (0.6 nozzle).json @@ -13,6 +13,7 @@ "Snapmaker U1 (0.6 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.20 Strength @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Strength @Snapmaker U1 (0.4 nozzle).json index 4defa45a16..91c5995b92 100644 --- a/resources/profiles/Snapmaker/process/0.20 Strength @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Strength @Snapmaker U1 (0.4 nozzle).json @@ -15,6 +15,18 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "45", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.20 Support @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Support @Snapmaker U1 (0.4 nozzle).json index 36a3172b48..0cb85cc26d 100644 --- a/resources/profiles/Snapmaker/process/0.20 Support @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Support @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,8 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "40", + "prime_volume": "15", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.20 Support W @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.20 Support W @Snapmaker U1 (0.4 nozzle).json index 37ba596b63..3d1887bea9 100644 --- a/resources/profiles/Snapmaker/process/0.20 Support W @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.20 Support W @Snapmaker U1 (0.4 nozzle).json @@ -18,6 +18,8 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "50", + "prime_volume": "38", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150" } diff --git a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker U1 (0.4 nozzle).json index a4c10a8ad1..f98007b6e1 100644 --- a/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Draft @Snapmaker U1 (0.4 nozzle).json @@ -12,6 +12,18 @@ "Snapmaker U1 (0.4 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "54", "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150" + "standby_temperature_delta": "-150", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "precise_outer_wall": "1", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.6 nozzle).json index b8a8427baf..7a9f4e2154 100644 --- a/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.6 nozzle).json @@ -1,41 +1,32 @@ { - "type": "process", - "name": "0.24 Standard @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.24", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "setting_id": "BziJYuA5U5gWm6FM", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and slight higher printing quality, but longer printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "55", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.24 Standard @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.24_nozzle_0.6", + "from": "system", + "setting_id": "BziJYuA5U5gWm6FM", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and slight higher printing quality, but longer printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "55", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.8 nozzle).json index 1b13e745d2..d9e1a2bf94 100644 --- a/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.24 Standard @Snapmaker U1 (0.8 nozzle).json @@ -1,43 +1,32 @@ { - "type": "process", - "name": "0.24 Standard @Snapmaker U1 (0.8 nozzle)", - "inherits": "fdm_process_U1_0.8_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.24", - "initial_layer_print_height": "0.4", - "bridge_flow": "1", - "top_surface_pattern": "monotonic", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "5", - "setting_id": "QcJ5p9h0eYUb91ak", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and slight higher printing quality, but longer printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.8 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "min_width_top_surface": "90", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "54", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)" + "type": "process", + "name": "0.24 Standard @Snapmaker U1 (0.8 nozzle)", + "inherits": "fdm_process_U1_0.24_nozzle_0.8", + "from": "system", + "setting_id": "QcJ5p9h0eYUb91ak", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer height, and results in less apparent layer lines and slight higher printing quality, but longer printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "min_width_top_surface": "90", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "54", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker U1 (0.4 nozzle).json b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker U1 (0.4 nozzle).json index 4adf06f100..4382b11e41 100644 --- a/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker U1 (0.4 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.28 Extra Draft @Snapmaker U1 (0.4 nozzle).json @@ -11,5 +11,19 @@ "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" ], - "slowdown_for_curled_perimeters": "0" + "prime_tower_width": "30", + "prime_volume": "63", + "slowdown_for_curled_perimeters": "0", + "wipe_tower_filament": "0", + "prime_tower_brim_width": "5", + "wipe_tower_cone_angle": "15", + "wipe_tower_extra_spacing": "120%", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "gap_fill_target": "topbottom" } diff --git a/resources/profiles/Snapmaker/process/0.30 Draft @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.30 Draft @Snapmaker U1 (0.6 nozzle).json index 8f8e6a1d15..52eb63a64d 100644 --- a/resources/profiles/Snapmaker/process/0.30 Draft @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.30 Draft @Snapmaker U1 (0.6 nozzle).json @@ -13,6 +13,8 @@ "Snapmaker U1 (0.6 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "68", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.30 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.30 Standard @Snapmaker U1 (0.6 nozzle).json index 3ed454a7d5..e2d5c192bb 100644 --- a/resources/profiles/Snapmaker/process/0.30 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.30 Standard @Snapmaker U1 (0.6 nozzle).json @@ -1,40 +1,31 @@ { - "type": "process", - "name": "0.30 Standard @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.3", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "setting_id": "TWxp6qgz1DJa8Ngo", - "description": "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "68", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.30 Standard @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.30_nozzle_0.6", + "from": "system", + "setting_id": "TWxp6qgz1DJa8Ngo", + "instantiation": "true", + "description": "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "68", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.30 Strength @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.30 Strength @Snapmaker U1 (0.6 nozzle).json index ce6563d960..c216eb09d2 100644 --- a/resources/profiles/Snapmaker/process/0.30 Strength @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.30 Strength @Snapmaker U1 (0.6 nozzle).json @@ -1,42 +1,33 @@ { - "type": "process", - "name": "0.30 Strength @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.3", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "setting_id": "CBaL0vgwtgsd6Snj", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has more wall loops and a higher sparse infill density. So, it results in higher strength of the prints, but more filament consumption and longer printing time.", - "elefant_foot_compensation": "0.15", - "sparse_infill_density": "25%", - "wall_loops": "4", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_width": "30", - "prime_volume": "68", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "prime_tower_brim_width": "5", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_type": "tree(auto)", - "wipe_tower_extra_spacing": "120%" + "type": "process", + "name": "0.30 Strength @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.30_nozzle_0.6", + "from": "system", + "setting_id": "CBaL0vgwtgsd6Snj", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has more wall loops and a higher sparse infill density. So, it results in higher strength of the prints, but more filament consumption and longer printing time.", + "elefant_foot_compensation": "0.15", + "sparse_infill_density": "25%", + "wall_loops": "4", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_width": "30", + "prime_volume": "68", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "prime_tower_brim_width": "5", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_type": "tree(auto)", + "wipe_tower_extra_spacing": "120%" } diff --git a/resources/profiles/Snapmaker/process/0.32 Standard @Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/process/0.32 Standard @Snapmaker U1 (0.8 nozzle).json index 47ac276acc..d2c20559fd 100644 --- a/resources/profiles/Snapmaker/process/0.32 Standard @Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.32 Standard @Snapmaker U1 (0.8 nozzle).json @@ -1,44 +1,34 @@ { - "type": "process", - "name": "0.32 Standard @Snapmaker U1 (0.8 nozzle)", - "inherits": "fdm_process_U1_0.8_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.32", - "initial_layer_print_height": "0.4", - "bridge_flow": "0.7", - "top_surface_pattern": "monotonic", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "5", - "setting_id": "iVRz2B0VBIBL1xVd", - "description": "Compared with the default profile of a 0.8 mm nozzle, it has a slightly smaller layer height, and results in slightly less but still apparent layer lines and slightly higher printing quality, but longer printing time in some printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.8 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "72", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "bridge_density": "70%", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.32 Standard @Snapmaker U1 (0.8 nozzle)", + "inherits": "fdm_process_U1_0.32_nozzle_0.8", + "from": "system", + "setting_id": "iVRz2B0VBIBL1xVd", + "instantiation": "true", + "description": "Compared with the default profile of a 0.8 mm nozzle, it has a slightly smaller layer height, and results in slightly less but still apparent layer lines and slightly higher printing quality, but longer printing time in some printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "72", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "bridge_density": "70%", + "bridge_flow": "0.7", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.36 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.36 Standard @Snapmaker U1 (0.6 nozzle).json index ddd97a76c3..44ea3bb3f4 100644 --- a/resources/profiles/Snapmaker/process/0.36 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.36 Standard @Snapmaker U1 (0.6 nozzle).json @@ -1,41 +1,32 @@ { - "type": "process", - "name": "0.36 Standard @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.36", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "setting_id": "C0PiCFd3P222knX9", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in more apparent layer lines and lower printing quality, but shorter printing time in some printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "81", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.36 Standard @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.36_nozzle_0.6", + "from": "system", + "setting_id": "C0PiCFd3P222knX9", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in more apparent layer lines and lower printing quality, but shorter printing time in some printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "81", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.40 Extra Draft @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.40 Extra Draft @Snapmaker U1 (0.6 nozzle).json index 265c91eb35..37238fb0ea 100644 --- a/resources/profiles/Snapmaker/process/0.40 Extra Draft @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.40 Extra Draft @Snapmaker U1 (0.6 nozzle).json @@ -13,6 +13,8 @@ "Snapmaker U1 (0.6 nozzle)" ], "ooze_prevention": "1", + "prime_tower_width": "30", + "prime_volume": "90", "slowdown_for_curled_perimeters": "0", "standby_temperature_delta": "-150", "wipe_tower_filament": "0", diff --git a/resources/profiles/Snapmaker/process/0.40 Standard @Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/process/0.40 Standard @Snapmaker U1 (0.8 nozzle).json index 24edfabf6d..8d00eb9fab 100644 --- a/resources/profiles/Snapmaker/process/0.40 Standard @Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.40 Standard @Snapmaker U1 (0.8 nozzle).json @@ -1,45 +1,35 @@ { - "type": "process", - "name": "0.40 Standard @Snapmaker U1 (0.8 nozzle)", - "inherits": "fdm_process_U1_0.8_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.4", - "initial_layer_print_height": "0.4", - "bridge_flow": "0.8", - "top_surface_pattern": "monotonic", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "5", - "setting_id": "VqkPgUtZi159BKpJ", - "description": "It has a very big layer height, and results in very apparent layer lines, low printing quality and general printing time.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.8 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "90", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "bridge_density": "60%", - "enable_arc_fitting": "0", - "min_width_top_surface": "200%", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "40", - "support_type": "tree(auto)" + "type": "process", + "name": "0.40 Standard @Snapmaker U1 (0.8 nozzle)", + "inherits": "fdm_process_U1_0.40_nozzle_0.8", + "from": "system", + "setting_id": "VqkPgUtZi159BKpJ", + "instantiation": "true", + "description": "It has a very big layer height, and results in very apparent layer lines, low printing quality and general printing time.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "90", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "bridge_density": "60%", + "bridge_flow": "0.8", + "enable_arc_fitting": "0", + "min_width_top_surface": "200%", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "40", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.42 Standard @Snapmaker U1 (0.6 nozzle).json b/resources/profiles/Snapmaker/process/0.42 Standard @Snapmaker U1 (0.6 nozzle).json index d65ba8e688..d3e4bf7f07 100644 --- a/resources/profiles/Snapmaker/process/0.42 Standard @Snapmaker U1 (0.6 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.42 Standard @Snapmaker U1 (0.6 nozzle).json @@ -1,41 +1,32 @@ { - "type": "process", - "name": "0.42 Standard @Snapmaker U1 (0.6 nozzle)", - "inherits": "fdm_process_U1_0.6_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.42", - "initial_layer_print_height": "0.3", - "bridge_flow": "1", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "15", - "setting_id": "SVJzhQA3KQetRZmo", - "description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in much more apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.6 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "precise_z_height": "0", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "95", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.42 Standard @Snapmaker U1 (0.6 nozzle)", + "inherits": "fdm_process_U1_0.42_nozzle_0.6", + "from": "system", + "setting_id": "SVJzhQA3KQetRZmo", + "instantiation": "true", + "description": "Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer height, and results in much more apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.6 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "precise_z_height": "0", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "95", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.48 Standard @Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/process/0.48 Standard @Snapmaker U1 (0.8 nozzle).json index 08e054619e..d6cdf607dd 100644 --- a/resources/profiles/Snapmaker/process/0.48 Standard @Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.48 Standard @Snapmaker U1 (0.8 nozzle).json @@ -1,43 +1,32 @@ { - "type": "process", - "name": "0.48 Standard @Snapmaker U1 (0.8 nozzle)", - "inherits": "fdm_process_U1_0.8_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.48", - "initial_layer_print_height": "0.4", - "bridge_flow": "1", - "top_surface_pattern": "monotonic", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "5", - "setting_id": "5H6JWChFEo3zqoHQ", - "description": "Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer height, and results in very apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.8 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "internal_bridge_speed": "100%", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "108", - "seam_gap": "15%", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.48 Standard @Snapmaker U1 (0.8 nozzle)", + "inherits": "fdm_process_U1_0.48_nozzle_0.8", + "from": "system", + "setting_id": "5H6JWChFEo3zqoHQ", + "instantiation": "true", + "description": "Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer height, and results in very apparent layer lines and much lower printing quality, but shorter printing time in some printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "internal_bridge_speed": "100%", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "108", + "seam_gap": "15%", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/0.56 Standard @Snapmaker U1 (0.8 nozzle).json b/resources/profiles/Snapmaker/process/0.56 Standard @Snapmaker U1 (0.8 nozzle).json index 86b571d1f5..9f67114c20 100644 --- a/resources/profiles/Snapmaker/process/0.56 Standard @Snapmaker U1 (0.8 nozzle).json +++ b/resources/profiles/Snapmaker/process/0.56 Standard @Snapmaker U1 (0.8 nozzle).json @@ -1,41 +1,31 @@ { - "type": "process", - "name": "0.56 Standard @Snapmaker U1 (0.8 nozzle)", - "inherits": "fdm_process_U1_0.8_common", - "from": "system", - "instantiation": "true", - "layer_height": "0.56", - "initial_layer_print_height": "0.4", - "bridge_flow": "1", - "top_surface_pattern": "monotonic", - "initial_layer_speed": "35", - "initial_layer_infill_speed": "55", - "sparse_infill_speed": "100", - "top_surface_speed": "150", - "bridge_speed": "30", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "5", - "setting_id": "JZEIXOUT33c7MrZj", - "description": "Compared with the default profile of a 0.8 mm nozzle, it has a much bigger layer height, and results in extremely apparent layer lines and much lower printing quality, but much shorter printing time in some printing cases.", - "elefant_foot_compensation": "0.15", - "smooth_coefficient": "150", - "overhang_totally_speed": "50", - "compatible_printers": [ - "Snapmaker U1 (0.8 nozzle)" - ], - "filter_out_gap_fill": "1", - "gap_fill_target": "topbottom", - "prime_tower_brim_width": "5", - "prime_tower_width": "30", - "prime_volume": "126", - "wipe_tower_extra_rib_length": "8", - "wipe_tower_extra_spacing": "120%", - "wipe_tower_wall_type": "rib", - "enable_arc_fitting": "0", - "ooze_prevention": "1", - "precise_outer_wall": "0", - "slowdown_for_curled_perimeters": "0", - "standby_temperature_delta": "-150", - "support_threshold_angle": "35", - "support_type": "tree(auto)" + "type": "process", + "name": "0.56 Standard @Snapmaker U1 (0.8 nozzle)", + "inherits": "fdm_process_U1_0.56_nozzle_0.8", + "from": "system", + "setting_id": "JZEIXOUT33c7MrZj", + "instantiation": "true", + "description": "Compared with the default profile of a 0.8 mm nozzle, it has a much bigger layer height, and results in extremely apparent layer lines and much lower printing quality, but much shorter printing time in some printing cases.", + "elefant_foot_compensation": "0.15", + "smooth_coefficient": "150", + "overhang_totally_speed": "50", + "compatible_printers": [ + "Snapmaker U1 (0.8 nozzle)" + ], + "filter_out_gap_fill": "1", + "gap_fill_target": "topbottom", + "layer_height": "0.56", + "prime_tower_brim_width": "5", + "prime_tower_width": "30", + "prime_volume": "126", + "wipe_tower_extra_rib_length": "8", + "wipe_tower_extra_spacing": "120%", + "wipe_tower_wall_type": "rib", + "enable_arc_fitting": "0", + "ooze_prevention": "1", + "precise_outer_wall": "1", + "slowdown_for_curled_perimeters": "0", + "standby_temperature_delta": "-150", + "support_threshold_angle": "35", + "support_type": "tree(auto)" } diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1.json b/resources/profiles/Snapmaker/process/fdm_process_U1.json index 5d89a91866..72dab0c16b 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_U1.json +++ b/resources/profiles/Snapmaker/process/fdm_process_U1.json @@ -33,7 +33,6 @@ "wall_loops": "2", "inner_wall_line_width": "0.45", "inner_wall_speed": "40", - "print_settings_id": "", "raft_layers": "0", "seam_position": "nearest", "skirt_distance": "2", diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.06_nozzle_0.2.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.06_nozzle_0.2.json new file mode 100644 index 0000000000..240fd4f425 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.06_nozzle_0.2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.06_nozzle_0.2", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.06", + "initial_layer_print_height": "0.1", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.25", + "sparse_infill_line_width": "0.22", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "70", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "support_top_z_distance": "0.06", + "support_bottom_z_distance": "0.06" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.08_nozzle_0.2.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.08_nozzle_0.2.json new file mode 100644 index 0000000000..41a824fa3a --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.08_nozzle_0.2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.08_nozzle_0.2", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.08", + "initial_layer_print_height": "0.1", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.25", + "sparse_infill_line_width": "0.22", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "70", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "support_top_z_distance": "0.08", + "support_bottom_z_distance": "0.08" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.10_nozzle_0.2.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.10_nozzle_0.2.json new file mode 100644 index 0000000000..5ca58d7bd1 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.10_nozzle_0.2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.10_nozzle_0.2", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.1", + "initial_layer_print_height": "0.1", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.25", + "sparse_infill_line_width": "0.22", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "70", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "support_top_z_distance": "0.1", + "support_bottom_z_distance": "0.1" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.12_nozzle_0.2.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.12_nozzle_0.2.json new file mode 100644 index 0000000000..8c70dd9dee --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.12_nozzle_0.2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.12_nozzle_0.2", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.12", + "initial_layer_print_height": "0.1", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.25", + "sparse_infill_line_width": "0.22", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "70", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "support_top_z_distance": "0.12", + "support_bottom_z_distance": "0.12" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.14_nozzle_0.2.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.14_nozzle_0.2.json new file mode 100644 index 0000000000..1ac42c9ffa --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.14_nozzle_0.2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.14_nozzle_0.2", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.14", + "initial_layer_print_height": "0.1", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.25", + "sparse_infill_line_width": "0.22", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "40", + "initial_layer_infill_speed": "70", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "support_top_z_distance": "0.14", + "support_bottom_z_distance": "0.14" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.18_nozzle_0.6.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.18_nozzle_0.6.json new file mode 100644 index 0000000000..f4725a73c7 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.18_nozzle_0.6.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.18_nozzle_0.6", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.18", + "initial_layer_print_height": "0.3", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "15", + "support_top_z_distance": "0.18", + "support_bottom_z_distance": "0.18" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.6.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.6.json new file mode 100644 index 0000000000..a014a375b3 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.6.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.24_nozzle_0.6", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.24", + "initial_layer_print_height": "0.3", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "15" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.8.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.8.json new file mode 100644 index 0000000000..e958e9a2ee --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.24_nozzle_0.8.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.24_nozzle_0.8", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.24", + "initial_layer_print_height": "0.4", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.30_nozzle_0.6.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.30_nozzle_0.6.json new file mode 100644 index 0000000000..a44a9ca05a --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.30_nozzle_0.6.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.30_nozzle_0.6", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.3", + "initial_layer_print_height": "0.3", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "15" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.32_nozzle_0.8.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.32_nozzle_0.8.json new file mode 100644 index 0000000000..67d9ecdb62 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.32_nozzle_0.8.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.32_nozzle_0.8", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.32", + "initial_layer_print_height": "0.4", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.36_nozzle_0.6.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.36_nozzle_0.6.json new file mode 100644 index 0000000000..314965b603 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.36_nozzle_0.6.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.36_nozzle_0.6", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.36", + "initial_layer_print_height": "0.3", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "15" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.40_nozzle_0.8.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.40_nozzle_0.8.json new file mode 100644 index 0000000000..ec19b56fa5 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.40_nozzle_0.8.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.40_nozzle_0.8", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.4", + "initial_layer_print_height": "0.4", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.42_nozzle_0.6.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.42_nozzle_0.6.json new file mode 100644 index 0000000000..18c1e7d79b --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.42_nozzle_0.6.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.42_nozzle_0.6", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.42", + "initial_layer_print_height": "0.3", + "bridge_flow": "1", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "initial_layer_line_width": "0.62", + "sparse_infill_line_width": "0.62", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "15" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.48_nozzle_0.8.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.48_nozzle_0.8.json new file mode 100644 index 0000000000..8d5632b790 --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.48_nozzle_0.8.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.48_nozzle_0.8", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.48", + "initial_layer_print_height": "0.4", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.56_nozzle_0.8.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.56_nozzle_0.8.json new file mode 100644 index 0000000000..7a5c92932d --- /dev/null +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.56_nozzle_0.8.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_U1_0.56_nozzle_0.8", + "inherits": "fdm_process_U1_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.56", + "initial_layer_print_height": "0.4", + "bridge_flow": "1", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "initial_layer_line_width": "0.82", + "sparse_infill_line_width": "0.82", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "55", + "sparse_infill_speed": "100", + "top_surface_speed": "150", + "bridge_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5" +} diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_0.6_common.json b/resources/profiles/Snapmaker/process/fdm_process_U1_0.6_common.json index 93119a9370..40ea900ba2 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_U1_0.6_common.json +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_0.6_common.json @@ -7,7 +7,7 @@ "line_width": "0.62", "outer_wall_line_width": "0.62", "inner_wall_line_width": "0.62", - "initial_layer_line_width": "0.72", + "initial_layer_line_width": "0.62", "sparse_infill_line_width": "0.62", "internal_solid_infill_line_width": "0.62", "support_line_width": "0.62", diff --git a/resources/profiles/Snapmaker/process/fdm_process_U1_common.json b/resources/profiles/Snapmaker/process/fdm_process_U1_common.json index 0af8c229a7..462ddb53ae 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_U1_common.json +++ b/resources/profiles/Snapmaker/process/fdm_process_U1_common.json @@ -13,8 +13,7 @@ "compatible_printers_condition": "", "draft_shield": "disabled", "elefant_foot_compensation": "0", - "enable_arc_fitting": "1", - "exclude_object": "1", + "enable_arc_fitting": "0", "outer_wall_acceleration": "5000", "wall_infill_order": "inner wall/outer wall/infill", "line_width": "0.42", @@ -46,7 +45,7 @@ "internal_solid_infill_speed": "150", "initial_layer_infill_speed": "60", "resolution": "0.012", - "support_type": "normal(auto)", + "support_type": "tree(auto)", "support_style": "default", "support_top_z_distance": "0.2", "support_bottom_z_distance": "0.2", @@ -68,11 +67,9 @@ "travel_speed": "500", "enable_prime_tower": "1", "wipe_tower_no_sparse_layers": "0", - "wipe_tower_cone_angle": "30", - "wipe_tower_wall_type": "rib", - "wipe_tower_extra_rib_length": "0", "prime_tower_width": "35", - "prime_volume": "30", "wall_generator": "arachne", - "compatible_printers": [] + "compatible_printers": [], + "wipe_tower_extra_rib_length": "8", + "exclude_object": "1" } diff --git a/resources/profiles/Snapmaker/process/fdm_process_a400.json b/resources/profiles/Snapmaker/process/fdm_process_a400.json index 39e7565f0b..f8ca481f9f 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_a400.json +++ b/resources/profiles/Snapmaker/process/fdm_process_a400.json @@ -5,7 +5,7 @@ "from": "system", "instantiation": "false", "initial_layer_print_height": "0.2", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "initial_layer_infill_speed": "75", "outer_wall_speed": "100", "inner_wall_speed": "160", diff --git a/resources/profiles/Snapmaker/process/fdm_process_common.json b/resources/profiles/Snapmaker/process/fdm_process_common.json index 6fb4fa2de4..458a0f6162 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_common.json +++ b/resources/profiles/Snapmaker/process/fdm_process_common.json @@ -110,7 +110,7 @@ "top_surface_jerk": "2", "travel_jerk": "4", "enable_support": "0", - "support_type": "normal(auto)", + "support_type": "tree(auto)", "support_style": "snug", "support_threshold_angle": "30", "support_on_build_plate_only": "1", diff --git a/resources/profiles/Snapmaker/process/fdm_process_idex.json b/resources/profiles/Snapmaker/process/fdm_process_idex.json index 7e04710bd3..6aeabfdaa7 100644 --- a/resources/profiles/Snapmaker/process/fdm_process_idex.json +++ b/resources/profiles/Snapmaker/process/fdm_process_idex.json @@ -5,7 +5,7 @@ "from": "system", "instantiation": "false", "initial_layer_print_height": "0.2", - "enable_arc_fitting": "1", + "enable_arc_fitting": "0", "initial_layer_infill_speed": "75", "outer_wall_speed": "120", "inner_wall_speed": "250", diff --git a/resources/profiles/Voron/machine/fdm_klipper_common.json b/resources/profiles/Voron/machine/fdm_klipper_common.json index 4d40f3d168..b4ffd1a4bb 100644 --- a/resources/profiles/Voron/machine/fdm_klipper_common.json +++ b/resources/profiles/Voron/machine/fdm_klipper_common.json @@ -116,7 +116,7 @@ "deretraction_speed": [ "30" ], - "z_hop_types": "Normal Lift", + "z_hop_types": "Slope Lift", "silent_mode": "0", "single_extruder_multi_material": "1", "change_filament_gcode": "", diff --git a/resources/profiles/re3D.json b/resources/profiles/re3D.json index e0acc669d0..94cca3c2ef 100644 --- a/resources/profiles/re3D.json +++ b/resources/profiles/re3D.json @@ -1,214 +1,219 @@ { - "name": "re3D", - "version": "02.04.00.03", - "force_update": "0", - "description": "re3D configurations", - "machine_model_list": [ - { - "name": "re3D Gigabot 4", - "sub_path": "machine/re3D Gigabot 4.json" - }, - { - "name": "re3D Gigabot 4 XLT", - "sub_path": "machine/re3D Gigabot 4 XLT.json" - }, - { - "name": "re3D GigabotX 2", - "sub_path": "machine/re3D GigabotX 2.json" - }, - { - "name": "re3D GigabotX 2 XLT", - "sub_path": "machine/re3D GigabotX 2 XLT.json" - }, - { - "name": "re3D Terabot 4", - "sub_path": "machine/re3D Terabot 4.json" - }, - { - "name": "re3D TerabotX 2", - "sub_path": "machine/re3D TerabotX 2.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "fdm_process_re3D_common", - "sub_path": "process/fdm_process_re3D_common.json" - }, - { - "name": "fgf_process_re3D_common", - "sub_path": "process/fgf_process_re3D_common.json" - }, - { - "name": "0.2 Fine", - "sub_path": "process/0.2mm Fine @re3D fdm 0.4.json" - }, - { - "name": "0.26 Standard", - "sub_path": "process/0.26mm Standard @re3D fdm 0.4.json" - }, - { - "name": "0.3 Fine", - "sub_path": "process/0.3mm Fine @re3D fdm 0.8.json" - }, - { - "name": "0.32 Draft", - "sub_path": "process/0.32mm Draft @re3D fdm 0.4.json" - }, - { - "name": "0.4 Standard", - "sub_path": "process/0.4mm Draft @re3D fdm 0.8.json" - }, - { - "name": "0.6 Standard", - "sub_path": "process/0.6mm Standard @re3D fgf 0.8.json" - }, - { - "name": "1.0 Standard", - "sub_path": "process/1.0mm Standard @re3D fgf 1.75.json" - } - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "re3D PC", - "sub_path": "filament/re3D PC.json" - }, - { - "name": "re3D PC @0.4 nozzle", - "sub_path": "filament/re3D PC @0.4 nozzle.json" - }, - { - "name": "re3D PC @0.8 nozzle", - "sub_path": "filament/re3D PC @0.8 nozzle.json" - }, - { - "name": "re3D Greengate rPETG", - "sub_path": "filament/re3D Greengate rPETG.json" - }, - { - "name": "re3D Greengate rPETG @0.8 nozzle", - "sub_path": "filament/re3D Greengate rPETG @0.8 nozzle.json" - }, - { - "name": "re3D Greengate rPETG @1.75 nozzle", - "sub_path": "filament/re3D Greengate rPETG @1.75 nozzle.json" - }, - { - "name": "re3D PETG", - "sub_path": "filament/re3D PETG.json" - }, - { - "name": "re3D PETG @0.4 nozzle", - "sub_path": "filament/re3D PETG @0.4 nozzle.json" - }, - { - "name": "re3D PETG @0.8 nozzle", - "sub_path": "filament/re3D PETG @0.8 nozzle.json" - }, - { - "name": "re3D rPP", - "sub_path": "filament/re3D rPP.json" - }, - { - "name": "re3D rPP @0.8 nozzle", - "sub_path": "filament/re3D rPP @0.8 nozzle.json" - }, - { - "name": "re3D rPP @1.75 nozzle", - "sub_path": "filament/re3D rPP @1.75 nozzle.json" - }, - { - "name": "re3D PLA", - "sub_path": "filament/re3D PLA.json" - }, - { - "name": "re3D PLA @0.4 nozzle", - "sub_path": "filament/re3D PLA @0.4 nozzle.json" - }, - { - "name": "re3D PLA @0.8 nozzle", - "sub_path": "filament/re3D PLA @0.8 nozzle.json" - } - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "fdm_re3D_common", - "sub_path": "machine/fdm_re3D_common.json" - }, - { - "name": "fgf_re3D_common", - "sub_path": "machine/fgf_re3D_common.json" - }, - { - "name": "re3D Gigabot 4 0.4 nozzle", - "sub_path": "machine/re3D Gigabot 4 0.4 nozzle.json" - }, - { - "name": "re3D Gigabot 4 0.8 nozzle", - "sub_path": "machine/re3D Gigabot 4 0.8 nozzle.json" - }, - { - "name": "re3D Gigabot 4 XLT 0.4 nozzle", - "sub_path": "machine/re3D Gigabot 4 XLT 0.4 nozzle.json" - }, - { - "name": "re3D Gigabot 4 XLT 0.8 nozzle", - "sub_path": "machine/re3D Gigabot 4 XLT 0.8 nozzle.json" - }, - { - "name": "re3D Terabot 4 0.4 nozzle", - "sub_path": "machine/re3D Terabot 4 0.4 nozzle.json" - }, - { - "name": "re3D Terabot 4 0.8 nozzle", - "sub_path": "machine/re3D Terabot 4 0.8 nozzle.json" - }, - { - "name": "re3D GigabotX 2 0.8 nozzle", - "sub_path": "machine/re3D GigabotX 2 0.8 nozzle.json" - }, - { - "name": "re3D GigabotX 2 1.75 nozzle", - "sub_path": "machine/re3D GigabotX 2 1.75 nozzle.json" - }, - { - "name": "re3D GigabotX 2 XLT 0.8 nozzle", - "sub_path": "machine/re3D GigabotX 2 XLT 0.8 nozzle.json" - }, - { - "name": "re3D GigabotX 2 XLT 1.75 nozzle", - "sub_path": "machine/re3D GigabotX 2 XLT 1.75 nozzle.json" - }, - { - "name": "re3D TerabotX 2 0.8 nozzle", - "sub_path": "machine/re3D TerabotX 2 0.8 nozzle.json" - }, - { - "name": "re3D TerabotX 2 1.75 nozzle", - "sub_path": "machine/re3D TerabotX 2 1.75 nozzle.json" - } - ] -} + "name": "re3D", + "url": "", + "version": "03.00.08", + "force_update": "0", + "description": "re3D configurations", + "machine_model_list": [ + { + "name": "re3D Gigabot 4", + "sub_path": "machine/re3D Gigabot 4.json" + }, + { + "name": "re3D Gigabot 4 XLT", + "sub_path": "machine/re3D Gigabot 4 XLT.json" + }, + { + "name": "re3D GigabotX 2", + "sub_path": "machine/re3D GigabotX 2.json" + }, + { + "name": "re3D GigabotX 2 XLT", + "sub_path": "machine/re3D GigabotX 2 XLT.json" + }, + { + "name": "re3D Terabot 4", + "sub_path": "machine/re3D Terabot 4.json" + }, + { + "name": "re3D TerabotX 2", + "sub_path": "machine/re3D TerabotX 2.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_re3D_common", + "sub_path": "process/fdm_process_re3D_common.json" + }, + { + "name": "fgf_process_re3D_common", + "sub_path": "process/fgf_process_re3D_common.json" + }, + { + "name": "0.2 Fine", + "sub_path": "process/0.2mm Fine @re3D fdm 0.4.json" + }, + { + "name": "0.26 Standard", + "sub_path": "process/0.26mm Standard @re3D fdm 0.4.json" + }, + { + "name": "0.32 Draft", + "sub_path": "process/0.32mm Draft @re3D fdm 0.4.json" + }, + { + "name": "0.3 Fine", + "sub_path": "process/0.3mm Fine @re3D fdm 0.8.json" + }, + { + "name": "0.4 Standard", + "sub_path": "process/0.4mm Draft @re3D fdm 0.8.json" + }, + { + "name": "1.0 Standard", + "sub_path": "process/1.0mm Standard @re3D fgf 1.75.json" + }, + { + "name": "0.6 Standard", + "sub_path": "process/0.6mm Standard @re3D fgf 0.8.json" + } + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pp", + "sub_path": "filament/fdm_filament_pp.json" + }, + { + "name": "fdm_filament_pc", + "sub_path": "filament/fdm_filament_pc.json" + }, + { + "name": "re3D PLA", + "sub_path": "filament/re3D PLA.json" + }, + { + "name": "re3D PETG", + "sub_path": "filament/re3D PETG.json" + }, + { + "name": "re3D PC", + "sub_path": "filament/re3D PC.json" + }, + { + "name": "re3D rPETG", + "sub_path": "filament/re3D rPETG.json" + }, + { + "name": "re3D rPP", + "sub_path": "filament/re3D rPP.json" + }, + { + "name": "re3D PLA @0.4 nozzle", + "sub_path": "filament/re3D PLA @0.4 nozzle.json" + }, + { + "name": "re3D PLA @0.8 nozzle", + "sub_path": "filament/re3D PLA @0.8 nozzle.json" + }, + { + "name": "re3D PETG @0.4 nozzle", + "sub_path": "filament/re3D PETG @0.4 nozzle.json" + }, + { + "name": "re3D PETG @0.8 nozzle", + "sub_path": "filament/re3D PETG @0.8 nozzle.json" + }, + { + "name": "re3D PC @0.4 nozzle", + "sub_path": "filament/re3D PC @0.4 nozzle.json" + }, + { + "name": "re3D PC @0.8 nozzle", + "sub_path": "filament/re3D PC @0.8 nozzle.json" + }, + { + "name": "re3D rPETG @0.8 nozzle", + "sub_path": "filament/re3D rPETG @0.8 nozzle.json" + }, + { + "name": "re3D rPETG @1.75 nozzle", + "sub_path": "filament/re3D rPETG @1.75 nozzle.json" + }, + { + "name": "re3D rPP @0.8 nozzle", + "sub_path": "filament/re3D rPP @0.8 nozzle.json" + }, + { + "name": "re3D rPP @1.75 nozzle", + "sub_path": "filament/re3D rPP @1.75 nozzle.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_re3D_common", + "sub_path": "machine/fdm_re3D_common.json" + }, + { + "name": "fgf_re3D_common", + "sub_path": "machine/fgf_re3D_common.json" + }, + { + "name": "re3D Gigabot 4 0.4 nozzle", + "sub_path": "machine/re3D Gigabot 4 0.4 nozzle.json" + }, + { + "name": "re3D Gigabot 4 0.8 nozzle", + "sub_path": "machine/re3D Gigabot 4 0.8 nozzle.json" + }, + { + "name": "re3D Gigabot 4 XLT 0.4 nozzle", + "sub_path": "machine/re3D Gigabot 4 XLT 0.4 nozzle.json" + }, + { + "name": "re3D Gigabot 4 XLT 0.8 nozzle", + "sub_path": "machine/re3D Gigabot 4 XLT 0.8 nozzle.json" + }, + { + "name": "re3D GigabotX 2 0.8 nozzle", + "sub_path": "machine/re3D GigabotX 2 0.8 nozzle.json" + }, + { + "name": "re3D GigabotX 2 1.75 nozzle", + "sub_path": "machine/re3D GigabotX 2 1.75 nozzle.json" + }, + { + "name": "re3D GigabotX 2 XLT 0.8 nozzle", + "sub_path": "machine/re3D GigabotX 2 XLT 0.8 nozzle.json" + }, + { + "name": "re3D GigabotX 2 XLT 1.75 nozzle", + "sub_path": "machine/re3D GigabotX 2 XLT 1.75 nozzle.json" + }, + { + "name": "re3D Terabot 4 0.4 nozzle", + "sub_path": "machine/re3D Terabot 4 0.4 nozzle.json" + }, + { + "name": "re3D Terabot 4 0.8 nozzle", + "sub_path": "machine/re3D Terabot 4 0.8 nozzle.json" + }, + { + "name": "re3D TerabotX 2 0.8 nozzle", + "sub_path": "machine/re3D TerabotX 2 0.8 nozzle.json" + }, + { + "name": "re3D TerabotX 2 1.75 nozzle", + "sub_path": "machine/re3D TerabotX 2 1.75 nozzle.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/fdm_filament_pp.json b/resources/profiles/re3D/filament/fdm_filament_pp.json new file mode 100644 index 0000000000..16a1c9705d --- /dev/null +++ b/resources/profiles/re3D/filament/fdm_filament_pp.json @@ -0,0 +1,10 @@ +{ + "type": "filament", + "name": "fdm_filament_pp", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_common", + "filament_type": [ + "PP" + ] +} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json index 47a3a44f34..d3ec58f07c 100644 --- a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "re3D PC @0.4 nozzle" ], + "filament_type": [ + "PC" + ], "compatible_printers": [ "re3D Gigabot 4 0.4 nozzle", "re3D Gigabot 4 XLT 0.4 nozzle", diff --git a/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json index c1f329f295..2f4f743d07 100644 --- a/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PC @0.8 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "re3D PC @0.8 nozzle" ], + "filament_type": [ + "PC" + ], "compatible_printers": [ "re3D Gigabot 4 0.8 nozzle", "re3D Gigabot 4 XLT 0.8 nozzle", diff --git a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json index c275a7517f..d85397a1c0 100644 --- a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json @@ -17,6 +17,9 @@ "filament_vendor": [ "re3D" ], + "filament_type": [ + "PETG" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json index 148f6540fe..c45d4a84e5 100644 --- a/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PETG @0.8 nozzle.json @@ -14,6 +14,9 @@ "re3D Gigabot 4 XLT 0.8 nozzle", "re3D Terabot 4 0.8 nozzle" ], + "filament_type": [ + "PETG" + ], "filament_vendor": [ "re3D" ], diff --git a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json index 1719807f7f..a3630d0111 100644 --- a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "re3D PLA @0.4 nozzle" ], + "filament_type": [ + "PLA" + ], "compatible_printers": [ "re3D Gigabot 4 0.4 nozzle", "re3D Gigabot 4 XLT 0.4 nozzle", diff --git a/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json index 01e7abbc9a..002e18f67c 100644 --- a/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PLA @0.8 nozzle.json @@ -9,6 +9,9 @@ "filament_settings_id": [ "re3D PLA @0.8 nozzle" ], + "filament_type": [ + "PLA" + ], "compatible_printers": [ "re3D Gigabot 4 0.8 nozzle", "re3D Gigabot 4 XLT 0.8 nozzle", diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json similarity index 89% rename from resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json rename to resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json index 028bf042bb..0ac0d012f5 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json @@ -1,14 +1,21 @@ { "type": "filament", "filament_id": "GFG01", - "setting_id": "fRX555Prkdu5ESIp", - "name": "re3D Greengate rPETG @0.8 nozzle", + "setting_id": "WlELqPVnuL7DaTxs", + "name": "re3D rPETG @0.8 nozzle", "from": "system", + "renamed_from": "re3D Greengate rPETG @0.8 nozzle", "instantiation": "true", "inherits": "fdm_filament_pet", "nozzle_temperature_initial_layer": [ "0" ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "re3D" + ], "nozzle_temperature": [ "0" ], diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json similarity index 89% rename from resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json rename to resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json index 5ae3d832ff..8cd090fc06 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json @@ -1,14 +1,21 @@ { "type": "filament", "filament_id": "GFG01", - "setting_id": "6aPU6CYS2cmODkok", - "name": "re3D Greengate rPETG @1.75 nozzle", + "setting_id": "sHzO2S3mmE6Iqs2O", + "name": "re3D rPETG @1.75 nozzle", "from": "system", + "renamed_from": "re3D Greengate rPETG @1.75 nozzle", "instantiation": "true", "inherits": "fdm_filament_pet", "nozzle_temperature_initial_layer": [ "0" ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "re3D" + ], "nozzle_temperature": [ "0" ], diff --git a/resources/profiles/re3D/filament/re3D Greengate rPETG.json b/resources/profiles/re3D/filament/re3D rPETG.json similarity index 78% rename from resources/profiles/re3D/filament/re3D Greengate rPETG.json rename to resources/profiles/re3D/filament/re3D rPETG.json index de56af4f02..fe19f12539 100644 --- a/resources/profiles/re3D/filament/re3D Greengate rPETG.json +++ b/resources/profiles/re3D/filament/re3D rPETG.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "re3D Greengate rPETG", + "name": "re3D rPETG", "from": "system", + "renamed_from": "re3D Greengate rPETG", "instantiation": "true", "inherits": "fdm_filament_pet", "filament_id": "GFG01", - "setting_id": "SdugLw5oy9GB7NID", + "setting_id": "6aESuJ2S2Kogd4Lq", "filament_settings_id": [ - "re3D Greengate rPETG" + "re3D rPETG" ], "compatible_printers": [ "re3D GigabotX 2 0.8 nozzle", diff --git a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json index a49f19e128..5f5467e86d 100644 --- a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json @@ -5,7 +5,7 @@ "name": "re3D rPP @0.8 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "fdm_filament_pp", "filament_type": [ "PP" ], diff --git a/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json index 0bde56c596..2e5a3f4386 100644 --- a/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPP @1.75 nozzle.json @@ -5,7 +5,7 @@ "name": "re3D rPP @1.75 nozzle", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", + "inherits": "fdm_filament_pp", "filament_type": [ "PP" ], diff --git a/resources/profiles/re3D/filament/re3D rPP.json b/resources/profiles/re3D/filament/re3D rPP.json index bf96aa51e6..f7244f5985 100644 --- a/resources/profiles/re3D/filament/re3D rPP.json +++ b/resources/profiles/re3D/filament/re3D rPP.json @@ -3,10 +3,7 @@ "name": "re3D rPP", "from": "system", "instantiation": "true", - "inherits": "fdm_filament_pet", - "filament_type": [ - "PP" - ], + "inherits": "fdm_filament_pp", "filament_id": "GFG02", "setting_id": "8PB62qm5Cd3SHLf4", "filament_settings_id": [ diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json index a0cbd3c0e2..d14d3c260e 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "GB4", "printer_model": "re3D Gigabot 4", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D Gigabot 4_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json index e5d847e62c..9bc78b36ad 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "GB4", "printer_model": "re3D Gigabot 4", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D Gigabot 4_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json index 8a5e118bff..56b4030476 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "GB4", "printer_model": "re3D Gigabot 4 XLT", - "bed_texture": "Gigabot 4 XLT_buildplate_texture.png", + "bed_texture": "re3D Gigabot 4 XLT_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json index a3fabc985d..a14e730b30 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "GB4", "printer_model": "re3D Gigabot 4 XLT", - "bed_texture": "Gigabot 4 XLT_buildplate_texture.png", + "bed_texture": "re3D Gigabot 4 XLT_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D GigabotX 2 0.8 nozzle.json index 8260ee5a1d..f6bac17a0d 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FGF", "model_id": "re3D GBX2", "printer_model": "re3D GigabotX 2", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D GigabotX 2_buildplate_texture.svg", "printable_area": [ "0x0", "552x0", @@ -25,7 +25,7 @@ "0.3" ], "default_filament_profile": [ - "re3D Greengate rPETG @0.8 nozzle" + "re3D rPETG @0.8 nozzle" ], "default_print_profile": "0.6 Standard", "printer_settings_id": "re3d_gbx_08", diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 1.75 nozzle.json b/resources/profiles/re3D/machine/re3D GigabotX 2 1.75 nozzle.json index 8a89e9d858..585c219bc7 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 1.75 nozzle.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 1.75 nozzle.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "model_id": "re3D GBX2", "printer_model": "re3D GigabotX 2", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D GigabotX 2_buildplate_texture.svg", "printable_area": [ "0x0", "552x0", @@ -26,7 +26,7 @@ "0.6" ], "default_filament_profile": [ - "re3D Greengate rPETG @1.75 nozzle" + "re3D rPETG @1.75 nozzle" ], "default_print_profile": "1.0 Standard", "printer_settings_id": "re3d_gbx_175", diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 0.8 nozzle.json index 2d81331c5c..863d8e6403 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FGF", "model_id": "re3D GBX2 XLT", "printer_model": "re3D GigabotX 2 XLT", - "bed_texture": "GigabotX 2 XLT_buildplate_texture.png", + "bed_texture": "re3D GigabotX 2 XLT_buildplate_texture.svg", "printable_area": [ "0x0", "552x0", @@ -25,7 +25,7 @@ "0.3" ], "default_filament_profile": [ - "re3D Greengate rPETG @0.8 nozzle" + "re3D rPETG @0.8 nozzle" ], "default_print_profile": "0.6 Standard", "printer_settings_id": "re3d_gbx_xlt_08", diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 1.75 nozzle.json b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 1.75 nozzle.json index 63503c01d8..5784b4e673 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 1.75 nozzle.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT 1.75 nozzle.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "model_id": "re3D GBX2 XLT", "printer_model": "re3D GigabotX 2 XLT", - "bed_texture": "GigabotX 2 XLT_buildplate_texture.png", + "bed_texture": "re3D GigabotX 2 XLT_buildplate_texture.svg", "printable_area": [ "0x0", "552x0", @@ -26,7 +26,7 @@ "0.6" ], "default_filament_profile": [ - "re3D Greengate rPETG @1.75 nozzle" + "re3D rPETG @1.75 nozzle" ], "default_print_profile": "1.0 Standard", "printer_settings_id": "re3d_gbx_xlt_175", diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json index 09a2702f3a..99800331d9 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D GigabotX 2 XLT_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D Greengate rPETG;re3D rPP;" + "default_materials": "re3D rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2.json b/resources/profiles/re3D/machine/re3D GigabotX 2.json index cc1470ee05..3a1db130b0 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D GigabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D Greengate rPETG;re3D rPP;" + "default_materials": "re3D rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json index 105b0f2621..d24ba564a2 100644 --- a/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "TB4", "printer_model": "re3D Terabot 4", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D Terabot 4_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json index bd83a5ef45..6255e84896 100644 --- a/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FFF", "model_id": "TB4", "printer_model": "re3D Terabot 4", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D Terabot 4_buildplate_texture.svg", "default_materials": "re3D PETG;re3D PLA;re3D PC", "printable_area": [ "0x0", diff --git a/resources/profiles/re3D/machine/re3D TerabotX 2 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D TerabotX 2 0.8 nozzle.json index daa97c2e88..5622a813c1 100644 --- a/resources/profiles/re3D/machine/re3D TerabotX 2 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D TerabotX 2 0.8 nozzle.json @@ -6,7 +6,7 @@ "machine_tech": "FGF", "model_id": "re3D TBX2", "printer_model": "re3D TerabotX 2", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D TerabotX 2_buildplate_texture.svg", "printable_area": [ "0x0", "892x0", @@ -25,7 +25,7 @@ "0.3" ], "default_filament_profile": [ - "re3D Greengate rPETG @0.8 nozzle" + "re3D rPETG @0.8 nozzle" ], "default_print_profile": "0.6 Standard", "printer_settings_id": "re3d_tbx2_08", diff --git a/resources/profiles/re3D/machine/re3D TerabotX 2 1.75 nozzle.json b/resources/profiles/re3D/machine/re3D TerabotX 2 1.75 nozzle.json index 401833977a..398ab006bd 100644 --- a/resources/profiles/re3D/machine/re3D TerabotX 2 1.75 nozzle.json +++ b/resources/profiles/re3D/machine/re3D TerabotX 2 1.75 nozzle.json @@ -7,7 +7,7 @@ "machine_tech": "FGF", "model_id": "re3D TBX2", "printer_model": "re3D TerabotX 2", - "bed_texture": "Gigabot 4_buildplate_texture.png", + "bed_texture": "re3D TerabotX 2_buildplate_texture.svg", "printable_area": [ "0x0", "892x0", @@ -26,7 +26,7 @@ "0.6" ], "default_filament_profile": [ - "re3D Greengate rPETG @1.75 nozzle" + "re3D rPETG @1.75 nozzle" ], "default_print_profile": "1.0 Standard", "printer_settings_id": "re3d_tbx2_175", diff --git a/resources/profiles/re3D/machine/re3D TerabotX 2.json b/resources/profiles/re3D/machine/re3D TerabotX 2.json index 9d8d0b2cb4..f541a62ad7 100644 --- a/resources/profiles/re3D/machine/re3D TerabotX 2.json +++ b/resources/profiles/re3D/machine/re3D TerabotX 2.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D TerabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D Greengate rPETG;re3D rPP;" + "default_materials": "re3D rPETG;re3D rPP;" } diff --git a/resources/profiles/re3D/process/0.26mm Standard @re3D fdm 0.4.json b/resources/profiles/re3D/process/0.26mm Standard @re3D fdm 0.4.json index 7d443c9730..2ab80cdf26 100644 --- a/resources/profiles/re3D/process/0.26mm Standard @re3D fdm 0.4.json +++ b/resources/profiles/re3D/process/0.26mm Standard @re3D fdm 0.4.json @@ -22,5 +22,35 @@ "top_surface_line_width": "0.48", "support_line_width": "0.48", "support_top_z_distance": "0.2", - "support_bottom_z_distance": "0.2" -} \ No newline at end of file + "support_bottom_z_distance": "0.2", + "bridge_speed": "50", + "internal_bridge_speed": "150%", + "default_acceleration": "5000", + "outer_wall_speed": "60", + "initial_layer_speed": "50", + "gap_infill_speed": "60", + "sparse_infill_speed": "80", + "inner_wall_speed": "80", + "internal_solid_infill_speed": "80", + "support_interface_speed": "30", + "support_speed": "90", + "top_surface_speed": "50", + "travel_speed": "300", + "top_surface_acceleration": "2500", + "initial_layer_acceleration": "1000", + "travel_acceleration": "5000", + "inner_wall_acceleration": "5000", + "ironing_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "initial_layer_infill_speed": "50", + "outer_wall_acceleration": "2500", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "5000", + "internal_solid_infill_acceleration": "5000", + "initial_layer_travel_speed": "100%", + "small_perimeter_speed": "50%", + "filename_format": "{input_filename_base}_{\"E\"}{initial_tool}_{filament_type[initial_tool]}_{print_time}.gcode" +} diff --git a/resources/profiles/re3D/process/0.2mm Fine @re3D fdm 0.4.json b/resources/profiles/re3D/process/0.2mm Fine @re3D fdm 0.4.json index 2734cf3334..10013e9c36 100644 --- a/resources/profiles/re3D/process/0.2mm Fine @re3D fdm 0.4.json +++ b/resources/profiles/re3D/process/0.2mm Fine @re3D fdm 0.4.json @@ -22,5 +22,32 @@ "top_surface_line_width": "0.44", "support_line_width": "0.48", "support_top_z_distance": "0.2", - "support_bottom_z_distance": "0.2" -} \ No newline at end of file + "support_bottom_z_distance": "0.2", + "outer_wall_speed": "60", + "initial_layer_speed": "50", + "gap_infill_speed": "60", + "sparse_infill_speed": "80", + "inner_wall_speed": "80", + "internal_solid_infill_speed": "80", + "support_interface_speed": "30", + "support_speed": "90", + "top_surface_speed": "50", + "travel_speed": "300", + "top_surface_acceleration": "2500", + "initial_layer_acceleration": "1000", + "travel_acceleration": "5000", + "inner_wall_acceleration": "5000", + "ironing_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "initial_layer_infill_speed": "50", + "outer_wall_acceleration": "2500", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "5000", + "internal_solid_infill_acceleration": "5000", + "initial_layer_travel_speed": "100%", + "small_perimeter_speed": "50%", + "filename_format": "{input_filename_base}_{\"E\"}{initial_tool}_{filament_type[initial_tool]}_{print_time}.gcode" +} diff --git a/resources/profiles/re3D/process/0.32mm Draft @re3D fdm 0.4.json b/resources/profiles/re3D/process/0.32mm Draft @re3D fdm 0.4.json index 3ce98e2e7e..1b14349f81 100644 --- a/resources/profiles/re3D/process/0.32mm Draft @re3D fdm 0.4.json +++ b/resources/profiles/re3D/process/0.32mm Draft @re3D fdm 0.4.json @@ -22,5 +22,32 @@ "top_surface_line_width": "0.48", "support_line_width": "0.48", "support_top_z_distance": "0.35", - "support_bottom_z_distance": "0.35" -} \ No newline at end of file + "support_bottom_z_distance": "0.35", + "outer_wall_speed": "60", + "initial_layer_speed": "50", + "gap_infill_speed": "60", + "sparse_infill_speed": "80", + "inner_wall_speed": "80", + "internal_solid_infill_speed": "80", + "support_interface_speed": "30", + "support_speed": "90", + "top_surface_speed": "50", + "travel_speed": "300", + "top_surface_acceleration": "2500", + "initial_layer_acceleration": "1000", + "travel_acceleration": "5000", + "inner_wall_acceleration": "5000", + "ironing_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "initial_layer_infill_speed": "50", + "outer_wall_acceleration": "2500", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "5000", + "internal_solid_infill_acceleration": "5000", + "initial_layer_travel_speed": "100%", + "small_perimeter_speed": "50%", + "filename_format": "{input_filename_base}_{\"E\"}{initial_tool}_{filament_type[initial_tool]}_{print_time}.gcode" +} diff --git a/resources/profiles/re3D/process/0.3mm Fine @re3D fdm 0.8.json b/resources/profiles/re3D/process/0.3mm Fine @re3D fdm 0.8.json index 27c2452d19..2b35f2c1f8 100644 --- a/resources/profiles/re3D/process/0.3mm Fine @re3D fdm 0.8.json +++ b/resources/profiles/re3D/process/0.3mm Fine @re3D fdm 0.8.json @@ -22,5 +22,32 @@ "top_surface_line_width": "1", "support_line_width": "1", "support_top_z_distance": "0.24", - "support_bottom_z_distance": "0.24" -} \ No newline at end of file + "support_bottom_z_distance": "0.24", + "outer_wall_speed": "60", + "initial_layer_speed": "50", + "gap_infill_speed": "60", + "sparse_infill_speed": "80", + "inner_wall_speed": "80", + "internal_solid_infill_speed": "80", + "support_interface_speed": "30", + "support_speed": "90", + "top_surface_speed": "50", + "travel_speed": "300", + "top_surface_acceleration": "2500", + "initial_layer_acceleration": "1000", + "travel_acceleration": "5000", + "inner_wall_acceleration": "5000", + "ironing_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "initial_layer_infill_speed": "50", + "outer_wall_acceleration": "2500", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "5000", + "internal_solid_infill_acceleration": "5000", + "initial_layer_travel_speed": "100%", + "small_perimeter_speed": "50%", + "filename_format": "{input_filename_base}_{\"E\"}{initial_tool}_{filament_type[initial_tool]}_{print_time}.gcode" +} diff --git a/resources/profiles/re3D/process/0.4mm Draft @re3D fdm 0.8.json b/resources/profiles/re3D/process/0.4mm Draft @re3D fdm 0.8.json index d46316ef4e..d00f8bce44 100644 --- a/resources/profiles/re3D/process/0.4mm Draft @re3D fdm 0.8.json +++ b/resources/profiles/re3D/process/0.4mm Draft @re3D fdm 0.8.json @@ -22,5 +22,32 @@ "top_surface_line_width": "1", "support_line_width": "1", "support_top_z_distance": "0.42", - "support_bottom_z_distance": "0.42" -} \ No newline at end of file + "support_bottom_z_distance": "0.42", + "outer_wall_speed": "60", + "initial_layer_speed": "50", + "gap_infill_speed": "60", + "sparse_infill_speed": "80", + "inner_wall_speed": "80", + "internal_solid_infill_speed": "80", + "support_interface_speed": "30", + "support_speed": "90", + "top_surface_speed": "50", + "travel_speed": "300", + "top_surface_acceleration": "2500", + "initial_layer_acceleration": "1000", + "travel_acceleration": "5000", + "inner_wall_acceleration": "5000", + "ironing_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "initial_layer_infill_speed": "50", + "outer_wall_acceleration": "2500", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "5000", + "internal_solid_infill_acceleration": "5000", + "initial_layer_travel_speed": "100%", + "small_perimeter_speed": "50%", + "filename_format": "{input_filename_base}_{\"E\"}{initial_tool}_{filament_type[initial_tool]}_{print_time}.gcode" +} diff --git a/resources/profiles/re3D/process/fdm_process_common.json b/resources/profiles/re3D/process/fdm_process_common.json index 164ff9d58a..dcd5c826ae 100644 --- a/resources/profiles/re3D/process/fdm_process_common.json +++ b/resources/profiles/re3D/process/fdm_process_common.json @@ -6,34 +6,27 @@ "adaptive_layer_height": "0", "reduce_crossing_wall": "0", "bridge_flow": "0.95", - "bridge_speed": "10", "brim_width": "5", "compatible_printers": [], "print_sequence": "by layer", - "default_acceleration": "0", "bridge_no_support": "0", "elefant_foot_compensation": "0.1", "outer_wall_line_width": "0.4", - "outer_wall_speed": "25", "line_width": "0.4", "infill_direction": "45", "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_line_width": "0.4", "initial_layer_print_height": "0.2", - "initial_layer_speed": "15", - "gap_infill_speed": "25", "infill_combination": "0", "sparse_infill_line_width": "0.4", "infill_wall_overlap": "25%", - "sparse_infill_speed": "70", "interface_shells": "0", "detect_overhang_wall": "0", "reduce_infill_retraction": "0", "filename_format": "{input_filename_base}.gcode", "wall_loops": "3", "inner_wall_line_width": "0.4", - "inner_wall_speed": "40", "print_settings_id": "", "raft_layers": "0", "seam_position": "nearest", @@ -41,7 +34,6 @@ "skirt_height": "2", "minimum_sparse_infill_area": "0", "internal_solid_infill_line_width": "0.4", - "internal_solid_infill_speed": "60", "spiral_mode": "0", "standby_temperature_delta": "-20", "enable_support": "0", @@ -53,16 +45,12 @@ "support_interface_loop_pattern": "0", "support_interface_top_layers": "2", "support_interface_spacing": "0", - "support_interface_speed": "80", "support_base_pattern": "rectilinear", "support_base_pattern_spacing": "2", - "support_speed": "40", "support_threshold_angle": "30", "support_object_xy_distance": "0.5", "detect_thin_wall": "0", "top_surface_line_width": "0.4", - "top_surface_speed": "35", - "travel_speed": "150", "enable_prime_tower": "1", "prime_tower_width": "60", "xy_hole_compensation": "0", diff --git a/resources/profiles/re3D/process/fdm_process_re3D_common.json b/resources/profiles/re3D/process/fdm_process_re3D_common.json index a1547448e3..ea169330f4 100644 --- a/resources/profiles/re3D/process/fdm_process_re3D_common.json +++ b/resources/profiles/re3D/process/fdm_process_re3D_common.json @@ -1,116 +1,88 @@ { - "type": "process", - "name": "fdm_process_re3D_common", - "from": "system", - "instantiation": "false", - "inherits": "fdm_process_common", - "adaptive_layer_height": "0", - "reduce_crossing_wall": "1", - "bridge_flow": "0.985", - "bridge_speed": "25", - "brim_width": "8", - "print_sequence": "by layer", - "default_acceleration": "5000", - "bridge_no_support": "0", - "elefant_foot_compensation": "0", - "outer_wall_speed": "120", - "sparse_infill_density": "15%", - "sparse_infill_pattern": "rectilinear", - "initial_layer_speed": "50", - "gap_infill_speed": "30", - "infill_combination": "0", - "infill_wall_overlap": "25%", - "sparse_infill_speed": "50", - "detect_overhang_wall": "1", - "reduce_infill_retraction": "0", - "filename_format": "{input_filename_base}.gcode", - "wall_loops": "3", - "inner_wall_speed": "40", - "wall_generator": "arachne", - "raft_layers": "0", - "seam_position": "nearest", - "skirt_distance": "8", - "skirt_height": "1", - "minimum_sparse_infill_area": "0", - "internal_solid_infill_speed": "40", - "spiral_mode": "0", - "standby_temperature_delta": "-75", - "enable_support": "1", - "support_filament": "0", - "support_interface_filament": "0", - "support_on_build_plate_only": "0", - "support_interface_loop_pattern": "0", - "support_interface_top_layers": "2", - "support_interface_spacing": "0.05", - "support_interface_speed": "80", - "support_base_pattern": "rectilinear", - "support_base_pattern_spacing": "2", - "support_speed": "40", - "support_threshold_angle": "30", - "support_object_xy_distance": "0.5", - "detect_thin_wall": "0", - "top_surface_speed": "30", - "travel_speed": "300", - "enable_prime_tower": "0", - "prime_tower_width": "60", - "xy_hole_compensation": "0", - "xy_contour_compensation": "0", - "max_travel_detour_distance": "0", - "bottom_surface_pattern": "monotonic", - "bottom_shell_layers": "3", - "bottom_shell_thickness": "0", - "brim_object_gap": "0.1", - "compatible_printers_condition": "", - "top_surface_acceleration": "500", - "draft_shield": "disabled", - "enable_arc_fitting": "1", - "wall_infill_order": "inner wall/outer wall/infill", - "infill_direction": "45", - "initial_layer_acceleration": "500", - "travel_acceleration": "5000", - "inner_wall_acceleration": "5000", - "interface_shells": "0", - "ironing_flow": "10%", - "ironing_spacing": "0.1", - "ironing_speed": "20", - "ironing_type": "no ironing", - "overhang_1_4_speed": "45", - "overhang_2_4_speed": "35", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "15", - "print_settings_id": "fdm_process_re3D_common", - "skirt_loops": "2", - "resolution": "0.0", - "support_type": "normal(auto)", - "support_style": "snug", - "support_interface_bottom_layers": "2", - "tree_support_branch_angle": "45", - "tree_support_wall_count": "0", - "top_surface_pattern": "monotonicline", - "top_shell_layers": "4", - "top_shell_thickness": "0.6", - "initial_layer_infill_speed": "50", - "wipe_tower_no_sparse_layers": "0", - "precise_outer_wall": "0", - "outer_wall_acceleration": "2500", - "bridge_acceleration": "5000", - "sparse_infill_acceleration": "5000", - "internal_solid_infill_acceleration": "5000", - "accel_to_decel_enable": "0", - "prime_volume": "200", - "ooze_prevention": "1", - "preheat_time": "30", - "initial_layer_travel_speed": "100", - "slow_down_layers": "2", - "small_perimeter_speed": "20", - "small_perimeter_threshold": "10", - "exclude_object": "1", - "compatible_printers": [ - "re3D Gigabot 4 0.4 nozzle", - "re3D Gigabot 4 0.8 nozzle", - "re3D Gigabot 4 XLT 0.4 nozzle", - "re3D Gigabot 4 XLT 0.8 nozzle", - "re3D Terabot 4 0.4 nozzle", - "re3D Terabot 4 0.8 nozzle" - ] -} \ No newline at end of file + "type": "process", + "name": "fdm_process_re3D_common", + "from": "system", + "instantiation": "false", + "inherits": "fdm_process_common", + "adaptive_layer_height": "0", + "reduce_crossing_wall": "1", + "bridge_flow": "0.985", + "brim_width": "8", + "print_sequence": "by layer", + "bridge_no_support": "0", + "elefant_foot_compensation": "0", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "rectilinear", + "infill_combination": "0", + "infill_wall_overlap": "25%", + "detect_overhang_wall": "1", + "reduce_infill_retraction": "0", + "filename_format": "{input_filename_base}.gcode", + "wall_loops": "3", + "wall_generator": "arachne", + "raft_layers": "0", + "seam_position": "nearest", + "skirt_distance": "8", + "skirt_height": "1", + "minimum_sparse_infill_area": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-75", + "enable_support": "1", + "support_filament": "0", + "support_interface_filament": "0", + "support_on_build_plate_only": "0", + "support_interface_loop_pattern": "0", + "support_interface_top_layers": "2", + "support_interface_spacing": "0.05", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.5", + "detect_thin_wall": "0", + "enable_prime_tower": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "brim_object_gap": "0.1", + "compatible_printers_condition": "", + "draft_shield": "disabled", + "enable_arc_fitting": "1", + "wall_infill_order": "inner wall/outer wall/infill", + "infill_direction": "45", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.1", + "ironing_type": "no ironing", + "print_settings_id": "fdm_process_re3D_common", + "skirt_loops": "2", + "resolution": "0.0", + "support_type": "normal(auto)", + "support_style": "snug", + "support_interface_bottom_layers": "2", + "tree_support_branch_angle": "45", + "tree_support_wall_count": "0", + "top_surface_pattern": "monotonicline", + "top_shell_layers": "4", + "top_shell_thickness": "0.6", + "wipe_tower_no_sparse_layers": "0", + "precise_outer_wall": "0", + "accel_to_decel_enable": "0", + "prime_volume": "200", + "ooze_prevention": "1", + "preheat_time": "30", + "slow_down_layers": "2", + "small_perimeter_threshold": "10", + "exclude_object": "1", + "compatible_printers": [ + "re3D Gigabot 4 0.4 nozzle", + "re3D Gigabot 4 0.8 nozzle", + "re3D Gigabot 4 XLT 0.4 nozzle", + "re3D Gigabot 4 XLT 0.8 nozzle", + "re3D Terabot 4 0.4 nozzle", + "re3D Terabot 4 0.8 nozzle" + ] +} diff --git a/resources/shaders/140/gouraud.fs b/resources/shaders/140/gouraud.fs index 728b7f942c..e099984b46 100644 --- a/resources/shaders/140/gouraud.fs +++ b/resources/shaders/140/gouraud.fs @@ -1,4 +1,7 @@ #version 140 +// Multisample depth texture for the anti-aliased outline (see 3DScene.cpp render_with_outline). +// Optional on the GLSL 140 path: if unavailable, fallback to a non-multisample depth texture. +#extension GL_ARB_texture_multisample : enable const vec3 ZERO = vec3(0.0, 0.0, 0.0); //BBS: add grey and orange @@ -36,7 +39,14 @@ uniform SlopeDetection slope; //BBS: add outline_color uniform bool is_outline; +// The outline is a per-fragment discard mask, which the framebuffer MSAA cannot smooth, so the +// silhouette is resolved per sample from a multisample copy of the outlined model's depth buffer. +#ifdef GL_ARB_texture_multisample +uniform sampler2DMS depth_tex; +uniform int msaa_samples; // samples in depth_tex, 1 when MSAA is off +#else uniform sampler2D depth_tex; +#endif uniform vec2 screen_size; #ifdef ENABLE_ENVIRONMENT_MAP @@ -99,45 +109,87 @@ float GetTolerance(float d, float k) return -k*(d+A)*(d+A)/B; } -float DetectSilho(vec2 fragCoord, vec2 dir) +// Depth of sample s at integer pixel coord. +#ifdef GL_ARB_texture_multisample +float FetchDepth(ivec2 coord, int s) +{ + // texelFetch has no wrap mode, so clamp to the edge texel (sampler2D used CLAMP_TO_EDGE). + ivec2 sz = textureSize(depth_tex); + return abs(texelFetch(depth_tex, clamp(coord, ivec2(0), sz - 1), s).r); +} +#else +float FetchDepth(ivec2 coord, int s) +{ + return abs(texture(depth_tex, (vec2(coord) + 0.5) / screen_size).r); +} +#endif + +float DetectSilho(ivec2 coord, ivec2 dir, int s) { // ------------------------------------------- - // x0 ___ x1----o - // :\ : + // x0 ___ x1----o + // :\ : // r0 : \ : r1 - // : \ : + // : \ : // o---x2 ___ x3 // // r0 and r1 are the differences between actual // and expected (as if x0..3 where on the same // plane) depth values. // ------------------------------------------- - - float x0 = abs(texture(depth_tex, (fragCoord + dir*-2.0) / screen_size).r); - float x1 = abs(texture(depth_tex, (fragCoord + dir*-1.0) / screen_size).r); - float x2 = abs(texture(depth_tex, (fragCoord + dir* 0.0) / screen_size).r); - float x3 = abs(texture(depth_tex, (fragCoord + dir* 1.0) / screen_size).r); - + float x0 = FetchDepth(coord + dir*-2, s); + float x1 = FetchDepth(coord + dir*-1, s); + float x2 = FetchDepth(coord, s); + float x3 = FetchDepth(coord + dir* 1, s); + float d0 = (x1-x0); float d1 = (x2-x3); - + float r0 = x1 + d0 - x2; float r1 = x2 + d1 - x1; - - float tol = GetTolerance(x2, 0.04); - - return smoothstep(0.0, tol*tol, max( - r0*r1, 0.0)); + float tol = GetTolerance(x2, 0.04); + + return smoothstep(0.0, tol*tol, max( - r0*r1, 0.0)); } -float DetectSilho(vec2 fragCoord) +float DetectSilho(ivec2 coord, int s) { return max( - DetectSilho(fragCoord, vec2(1,0)), // Horizontal - DetectSilho(fragCoord, vec2(0,1)) // Vertical + DetectSilho(coord, ivec2(1,0), s), // Horizontal + DetectSilho(coord, ivec2(0,1), s) // Vertical ); } +// Full response of one sample. Reduce the max() per sample and average only afterwards: +// max(mean) <= mean(max), and averaging first hollows out diagonal and curved lines. +float DetectSilhoSample(ivec2 coord, int s) +{ + float v = DetectSilho(coord, s); + // Makes silhouettes thicker. + for (int i = 1; i <= INFLATE; ++i) + { + v = max(v, DetectSilho(coord + ivec2(i, 0), s)); + v = max(v, DetectSilho(coord + ivec2(0, i), s)); + } + return v; +} + +// Average the per-sample coverage into the sub-pixel anti-aliasing of the line. +float DetectSilho(vec2 fragCoord) +{ + ivec2 coord = ivec2(fragCoord); +#ifdef GL_ARB_texture_multisample + int n = max(msaa_samples, 1); +#else + const int n = 1; +#endif + float acc = 0.0; + for (int s = 0; s < n; ++s) + acc += DetectSilhoSample(coord, s); + return acc / float(n); +} + // Returns a lighting multiplier in [1 - shadow_intensity, 1]: < 1 where the fragment is // occluded from the light in the shadow map. 3x3 PCF softens the edges. float shadow_shade() @@ -224,14 +276,7 @@ void main() //BBS: add outline_color if (is_outline) { color = vec4((vec3(intensity.y) + color.rgb * intensity.x) * shade, color.a); - vec2 fragCoord = gl_FragCoord.xy; - float s = DetectSilho(fragCoord); - // Makes silhouettes thicker. - for(int i=1;i<=INFLATE; i++) - { - s = max(s, DetectSilho(fragCoord.xy + vec2(i, 0))); - s = max(s, DetectSilho(fragCoord.xy + vec2(0, i))); - } + float s = DetectSilho(gl_FragCoord.xy); if (s < 0.01) discard; out_color = vec4(mix(color.rgb, getBackfaceColor(color.rgb), s), color.a); diff --git a/resources/shaders/140/phong.fs b/resources/shaders/140/phong.fs index bbde72592c..f847763658 100644 --- a/resources/shaders/140/phong.fs +++ b/resources/shaders/140/phong.fs @@ -1,4 +1,7 @@ #version 140 +// Multisample depth texture for the anti-aliased outline (see 3DScene.cpp render_with_outline). +// Optional on the GLSL 140 path: if unavailable, fallback to a non-multisample depth texture. +#extension GL_ARB_texture_multisample : enable const vec3 ZERO = vec3(0.0, 0.0, 0.0); const vec3 LightRed = vec3(0.78, 0.0, 0.0); @@ -51,7 +54,14 @@ uniform SlopeDetection slope; //BBS: add outline_color uniform bool is_outline; +// The outline is a per-fragment discard mask, which the framebuffer MSAA cannot smooth, so the +// silhouette is resolved per sample from a multisample copy of the outlined model's depth buffer. +#ifdef GL_ARB_texture_multisample +uniform sampler2DMS depth_tex; +uniform int msaa_samples; // samples in depth_tex, 1 when MSAA is off +#else uniform sampler2D depth_tex; +#endif uniform vec2 screen_size; #ifdef ENABLE_ENVIRONMENT_MAP @@ -100,12 +110,27 @@ float GetTolerance(float d, float k) return -k*(d+A)*(d+A)/B; } -float DetectSilho(vec2 fragCoord, vec2 dir) +// Depth of sample s at integer pixel coord. +#ifdef GL_ARB_texture_multisample +float FetchDepth(ivec2 coord, int s) { - float x0 = abs(texture(depth_tex, (fragCoord + dir*-2.0) / screen_size).r); - float x1 = abs(texture(depth_tex, (fragCoord + dir*-1.0) / screen_size).r); - float x2 = abs(texture(depth_tex, (fragCoord + dir* 0.0) / screen_size).r); - float x3 = abs(texture(depth_tex, (fragCoord + dir* 1.0) / screen_size).r); + // texelFetch has no wrap mode, so clamp to the edge texel (sampler2D used CLAMP_TO_EDGE). + ivec2 sz = textureSize(depth_tex); + return abs(texelFetch(depth_tex, clamp(coord, ivec2(0), sz - 1), s).r); +} +#else +float FetchDepth(ivec2 coord, int s) +{ + return abs(texture(depth_tex, (vec2(coord) + 0.5) / screen_size).r); +} +#endif + +float DetectSilho(ivec2 coord, ivec2 dir, int s) +{ + float x0 = FetchDepth(coord + dir*-2, s); + float x1 = FetchDepth(coord + dir*-1, s); + float x2 = FetchDepth(coord, s); + float x3 = FetchDepth(coord + dir* 1, s); float d0 = (x1-x0); float d1 = (x2-x3); @@ -116,17 +141,45 @@ float DetectSilho(vec2 fragCoord, vec2 dir) float tol = GetTolerance(x2, 0.04); return smoothstep(0.0, tol*tol, max( - r0*r1, 0.0)); - } -float DetectSilho(vec2 fragCoord) +float DetectSilho(ivec2 coord, int s) { return max( - DetectSilho(fragCoord, vec2(1,0)), - DetectSilho(fragCoord, vec2(0,1)) + DetectSilho(coord, ivec2(1,0), s), + DetectSilho(coord, ivec2(0,1), s) ); } +// Full response of one sample. Reduce the max() per sample and average only afterwards: +// max(mean) <= mean(max), and averaging first hollows out diagonal and curved lines. +float DetectSilhoSample(ivec2 coord, int s) +{ + float v = DetectSilho(coord, s); + // Makes silhouettes thicker. + for (int i = 1; i <= INFLATE; ++i) + { + v = max(v, DetectSilho(coord + ivec2(i, 0), s)); + v = max(v, DetectSilho(coord + ivec2(0, i), s)); + } + return v; +} + +// Average the per-sample coverage into the sub-pixel anti-aliasing of the line. +float DetectSilho(vec2 fragCoord) +{ + ivec2 coord = ivec2(fragCoord); +#ifdef GL_ARB_texture_multisample + int n = max(msaa_samples, 1); +#else + const int n = 1; +#endif + float acc = 0.0; + for (int s = 0; s < n; ++s) + acc += DetectSilhoSample(coord, s); + return acc / float(n); +} + float compute_ssao_factor(vec3 normal, vec3 view_dir, vec3 eye_pos) { vec3 normal_dx = dFdx(normal); @@ -270,13 +323,7 @@ void main() if (is_outline) { vec3 shaded_rgb = (vec3(specular) + window_reflection + color.rgb * diffuse) * PHONG_BRIGHTNESS * shade; vec4 shaded_color = vec4(clamp(shaded_rgb, vec3(0.0), vec3(1.0)), color.a); - vec2 fragCoord = gl_FragCoord.xy; - float s = DetectSilho(fragCoord); - for(int i=1;i<=INFLATE; i++) - { - s = max(s, DetectSilho(fragCoord.xy + vec2(i, 0))); - s = max(s, DetectSilho(fragCoord.xy + vec2(0, i))); - } + float s = DetectSilho(gl_FragCoord.xy); if (s < 0.01) discard; out_color = vec4(mix(shaded_color.rgb, getBackfaceColor(shaded_color.rgb), s), shaded_color.a); diff --git a/resources/web/dialog/PluginsDialog/index.js b/resources/web/dialog/PluginsDialog/index.js index ea081a23aa..ad1242e4f9 100644 --- a/resources/web/dialog/PluginsDialog/index.js +++ b/resources/web/dialog/PluginsDialog/index.js @@ -602,15 +602,17 @@ function SourceLabel(source) { return "Mine"; case "subscribed": return "Subscribed"; + case "orphaned": + return "Orphaned"; default: return "Local"; } } -// Shared Local/Subscribed/Mine pill, used both after the row name and in the info panel. +// Shared source pill, used both after the row name and in the info panel. function SourceBadge(source) { const normalized = String(source || "").toLowerCase(); - const variant = (normalized === "mine" || normalized === "subscribed") ? normalized : "local"; + const variant = (normalized === "mine" || normalized === "subscribed" || normalized === "orphaned") ? normalized : "local"; const badge = document.createElement("span"); badge.className = `plugin-source-badge source-${variant}`; badge.textContent = SourceLabel(source); @@ -654,7 +656,7 @@ function LabelCell(plugin, isExpanded = false, capabilityCount = 0, nameRanges = const labelCell = document.createElement("span"); labelCell.className = "label-cell"; - const hasCloudLink = plugin.source === "mine" || plugin.source === "subscribed"; + const hasCloudLink = plugin.source === "mine" || plugin.source === "subscribed" || plugin.source === "orphaned"; const pluginLabelText = plugin.label || plugin.name || plugin.plugin_id || ""; const canExpand = capabilityCount > 0; @@ -705,7 +707,7 @@ function LabelCell(plugin, isExpanded = false, capabilityCount = 0, nameRanges = function SourceCell(plugin) { const cell = document.createElement("span"); const normalized = String(plugin.source || "").toLowerCase(); - const variant = (normalized === "mine" || normalized === "subscribed") ? normalized : "local"; + const variant = (normalized === "mine" || normalized === "subscribed" || normalized === "orphaned") ? normalized : "local"; cell.className = `source-cell source-${variant}`; const sourceLabel = document.createElement("span"); @@ -1233,7 +1235,7 @@ function RenderDescription(plugin) { return; } - const isCloud = plugin && (plugin.source === "mine" || plugin.source === "subscribed"); + const isCloud = plugin && (plugin.source === "mine" || plugin.source === "subscribed" || plugin.source === "orphaned"); if (isCloud && String(plugin?.sharing_token || "")) { node.appendChild(document.createTextNode("View on OrcaCloud ")); const link = document.createElement("a"); @@ -1370,6 +1372,13 @@ function RenderDetailSummary(container, plugin) { message.textContent = errorText || StatusDescription(plugin); container.appendChild(message); + if (plugin.orphaned === true) { + const warning = document.createElement("div"); + warning.className = "detail-description detail-warning-text"; + warning.textContent = "Orphaned: This plugin is no longer subscribed or available in OrcaCloud. The local copy remains installed and can still be used."; + container.appendChild(warning); + } + const updateStatus = GetUpdateStatus(plugin); if (updateStatus === "update_available") { const note = document.createElement("div"); diff --git a/resources/web/dialog/PluginsDialog/styles.css b/resources/web/dialog/PluginsDialog/styles.css index b1c3caa055..3d8c18be9e 100644 --- a/resources/web/dialog/PluginsDialog/styles.css +++ b/resources/web/dialog/PluginsDialog/styles.css @@ -251,6 +251,11 @@ body.pane-resizing { font-weight: 600; } +.source-cell.source-orphaned { + color: var(--plugin-status-warn); + font-weight: 600; +} + .source-cell.source-local { color: var(--plugin-source-neutral-text); } @@ -648,6 +653,10 @@ body.pane-resizing { color: var(--plugin-status-danger); } +.detail-warning-text { + color: var(--plugin-status-warn); +} + .detail-status-chip { display: inline-flex; align-items: center; @@ -915,6 +924,11 @@ body.pane-resizing { color: var(--plugin-source-subscribed-text); } +.plugin-source-badge.source-orphaned { + background: var(--plugin-status-warn-bg); + color: var(--plugin-status-warn); +} + .plugin-cloud-link { color: var(--plugin-link-text); cursor: pointer; diff --git a/scripts/msix/AppxManifest.xml b/scripts/msix/AppxManifest.xml index 62b2216c5a..fd4c89edb0 100644 --- a/scripts/msix/AppxManifest.xml +++ b/scripts/msix/AppxManifest.xml @@ -2,11 +2,13 @@ + IgnorableNamespaces="uap uap3 rescap rescap3 desktop desktop6 virtualization"> + + + + + + + + + + + + + + diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index cdfc8544a4..07ce3d69d3 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -46,12 +46,16 @@ def no_duplicates_object_pairs_hook(pairs): return seen # NOTE: currently Orca expects compatible_printers to be a defined in every instantiation profile, inheritation is not supported in Profile page -def check_filament_compatible_printers(vendor_folder): +def check_filament_compatible_printers(vendor, vendor_folder): """ Checks JSON files in the vendor folder for missing or empty 'compatible_printers' when 'instantiation' is flagged as true. + In the OrcaFilamentLibrary 'compatible_printers' is optional: a profile without it is generic and + offered on every printer, while a profile that lists printers supersedes the generic one there. + Parameters: + vendor (str): The vendor name the folder belongs to. vendor_folder (str or Path): The directory to search for JSON profile files. Returns: @@ -115,7 +119,7 @@ def check_filament_compatible_printers(vendor_folder): for profile in profiles.values(): instantiation = str(profile['content'].get("instantiation", "")).lower() == "true" - if instantiation: + if instantiation and vendor != 'OrcaFilamentLibrary': try: compatible_printers = get_property(profile, "compatible_printers") if not compatible_printers or (isinstance(compatible_printers, list) and not compatible_printers): @@ -571,7 +575,7 @@ def main(): vendor_path = profiles_dir / vendor_name if args.check_filaments or not (args.check_materials and not args.check_filaments): - errors_found += check_filament_compatible_printers(vendor_path / "filament") + errors_found += check_filament_compatible_printers(vendor_name, vendor_path / "filament") if args.check_materials: new_errors, new_warnings = check_machine_default_materials(profiles_dir, vendor_name) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index e0a15209a3..71d6ffde80 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -7054,7 +7054,7 @@ int CLI::run(int argc, char **argv) gcode_viewer.render_calibration_thumbnail(*calibration_data, cali_thumbnail_width, cali_thumbnail_height, calibration_params, partplate_list, opengl_mgr); //generate_calibration_thumbnail(*calibration_data, thumbnail_width, thumbnail_height, calibration_params); - //*plate_bboxes[index] = p->generate_first_layer_bbox(); + // *plate_bboxes[index] = p->generate_first_layer_bbox(); calibration_thumbnails.push_back(calibration_data);*/ PlateBBoxData* plate_bbox = new PlateBBoxData(); diff --git a/src/libslic3r/AABBMesh.cpp b/src/libslic3r/AABBMesh.cpp index a23fd69f68..be026f69d7 100644 --- a/src/libslic3r/AABBMesh.cpp +++ b/src/libslic3r/AABBMesh.cpp @@ -54,12 +54,12 @@ public: int & i, Eigen::Matrix &closest) { - size_t idx_unsigned = 0; - Vec3d closest_vec3d(closest); - double dist = + size_t idx_unsigned { 0 }; + Vec3d closest_vec3d { Vec3d::Zero() }; + const double dist { AABBTreeIndirect::squared_distance_to_indexed_triangle_set( its.vertices, its.indices, m_tree, point, idx_unsigned, - closest_vec3d); + closest_vec3d) }; i = int(idx_unsigned); closest = closest_vec3d; return dist; @@ -311,10 +311,9 @@ AABBMesh::hit_result IndexedMesh::filter_hits( double AABBMesh::squared_distance(const Vec3d &p, int& i, Vec3d& c) const { - double sqdst = 0; - Eigen::Matrix pp = p; - Eigen::Matrix cc; - sqdst = m_aabb->squared_distance(*m_tm, pp, i, cc); + const Eigen::Matrix pp { p }; + Eigen::Matrix cc { Vec3d::Zero() }; + const double sqdst { m_aabb->squared_distance(*m_tm, pp, i, cc) }; c = cc; return sqdst; } diff --git a/src/libslic3r/AABBTreeLines.hpp b/src/libslic3r/AABBTreeLines.hpp index 97ad1bdf44..52c4cdf545 100644 --- a/src/libslic3r/AABBTreeLines.hpp +++ b/src/libslic3r/AABBTreeLines.hpp @@ -31,8 +31,9 @@ namespace AABBTreeLines { inline VectorType closest_point_to_origin(size_t primitive_index, ScalarType& squared_distance) const { Vec nearest_point; + Vec cast_origin = origin.template cast(); const LineType& line = lines[primitive_index]; - squared_distance = line_alg::distance_to_squared(line, origin.template cast(), &nearest_point); + squared_distance = line_alg::distance_to_squared(line, cast_origin, &nearest_point); return nearest_point.template cast(); } }; diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index dcbead0ddd..a5d0e24eac 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -202,10 +202,25 @@ void AppConfig::set_defaults() if (get("seq_top_layer_only").empty()) set("seq_top_layer_only", "1"); - // ORCA: darken layers below the current one while scrubbing the preview (ported from preFlight) + // ORCA: darken the layers the preview layer slider is not scrubbed to if (get("preview_dim_previous_layers").empty()) set_bool("preview_dim_previous_layers", false); + // ORCA: brightness of those dimmed layers, in percent. 0 = black, capped at 99 because + // 100 would render them unchanged, which is what disabling the option already does + if (get("preview_dim_previous_layers_brightness").empty()) + set("preview_dim_previous_layers_brightness", "40"); + else { + int brightness = 40; + try { + brightness = std::stoi(get("preview_dim_previous_layers_brightness")); + } + catch (...) { + brightness = 40; + } + set("preview_dim_previous_layers_brightness", std::to_string(std::max(0, std::min(brightness, 99)))); + } + if (get("filaments_area_preferred_count").empty()) set("filaments_area_preferred_count", "10"); @@ -611,6 +626,12 @@ void AppConfig::set_defaults() set_bool("window_buttons_on_left", false); #endif + if (get("use_printer_agents").empty()) + { + // false = legacy behavior using print hosts + set_bool("use_printer_agents", false); + } + // Remove legacy window positions/sizes erase("app", "main_frame_maximized"); erase("app", "main_frame_pos"); @@ -862,7 +883,7 @@ std::string AppConfig::load() } } } - } catch(std::exception err) { + } catch(const std::exception &err) { BOOST_LOG_TRIVIAL(info) << format("parse app config \"%1%\", error: %2%", AppConfig::loading_path(), err.what()); return err.what(); diff --git a/src/libslic3r/Arachne/WallToolPaths.hpp b/src/libslic3r/Arachne/WallToolPaths.hpp index dde3dc785f..d7120a088c 100644 --- a/src/libslic3r/Arachne/WallToolPaths.hpp +++ b/src/libslic3r/Arachne/WallToolPaths.hpp @@ -23,14 +23,14 @@ inline coord_t meshfix_maximum_extrusion_area_deviation() { return scaled> - BoundingBoxBase(It from, It to) + BoundingBoxBase(It from, It to) : BoundingBoxBase() { construct(*this, from, to); } BoundingBoxBase(const PointsType &points) diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 6473dc5c21..9cee5a0e4b 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -32,15 +32,13 @@ static void append_and_translate(ExPolygons &dst, const ExPolygons &src, const P for (; dst_idx < dst.size(); ++dst_idx) dst[dst_idx].translate(instance_shift); } -// BBS: generate brim area by objs -static void append_and_translate(ExPolygons& dst, const ExPolygons& src, - const PrintInstance& instance, size_t instance_idx, std::map& brimAreaMap) { +// Orca: Translate the brim area into print coordinates and store it per instance. +static void append_and_translate(const ExPolygons& src, const PrintInstance& instance, + size_t instance_idx, std::map& brimAreaMap) { ExPolygons srcShifted = src; Point instance_shift = instance.shift_without_plate_offset(); - for (size_t src_idx = 0; src_idx < srcShifted.size(); ++src_idx) - srcShifted[src_idx].translate(instance_shift); - srcShifted = diff_ex(srcShifted, dst); - //expolygons_append(dst, temp2); + for (ExPolygon& expoly : srcShifted) + expoly.translate(instance_shift); expolygons_append(brimAreaMap[{ instance.print_object->id(), instance_idx }], std::move(srcShifted)); } @@ -351,7 +349,7 @@ static ExPolygons make_brim_ears_auto(const ExPolygons& obj_expoly, coord_t size return mouse_ears_ex; } -static ExPolygons make_brim_ears(const PrintObject* object, const double& flowWidth, float brim_offset, Flow &flow, bool is_outer_brim) +static ExPolygons make_brim_ears(const PrintObject* object) { ExPolygons mouse_ears_ex; BrimPoints brim_ear_points = object->model_object()->brim_points; @@ -375,12 +373,7 @@ static ExPolygons make_brim_ears(const PrintObject* object, const double& flowWi Vec3f world_pos = pt.transform(trsf.get_matrix()); if ( world_pos.z() > 0) continue; Polygon point_round; - float brim_width = floor(scale_(pt.head_front_radius) / flowWidth / 2) * flowWidth * 2; - if (is_outer_brim) { - double flowWidthScale = flowWidth / SCALING_FACTOR; - brim_width = floor(brim_width / flowWidthScale / 2) * flowWidthScale * 2; - } - coord_t size_ear = (brim_width - brim_offset - flow.scaled_spacing()); + const coord_t size_ear = scale_(pt.head_front_radius); for (size_t i = 0; i < POLY_SIDE_COUNT; i++) { double angle = (2.0 * PI * i) / POLY_SIDE_COUNT; point_round.points.emplace_back(size_ear * cos(angle), size_ear * sin(angle)); @@ -454,7 +447,8 @@ static ExPolygons outer_inner_brim_area(const Print& print, bool has_brim_auto = object->config().brim_type == btAutoBrim; const bool use_auto_brim_ears = object->config().brim_type == btEar; const bool use_brim_ears = object->config().brim_type == btPainted; - const bool has_inner_brim = brim_type == btInnerOnly || brim_type == btOuterAndInner || use_auto_brim_ears || use_brim_ears; + const bool use_inner_brim_ears = (use_auto_brim_ears || use_brim_ears) && !object->config().brim_ears_outer_only.value; + const bool has_inner_brim = brim_type == btInnerOnly || brim_type == btOuterAndInner || use_inner_brim_ears; const bool has_outer_brim = brim_type == btOuterOnly || brim_type == btOuterAndInner || brim_type == btAutoBrim || use_auto_brim_ears || use_brim_ears; coord_t ear_detection_length = scale_(object->config().brim_ears_detection_length.value); coordf_t brim_ears_max_angle = object->config().brim_ears_max_angle.value; @@ -533,7 +527,7 @@ static ExPolygons outer_inner_brim_area(const Print& print, auto innerExpoly = offset_ex(ex_poly.contour, brim_offset, jtRound, SCALED_RESOLUTION); ExPolygons outerExpoly; if (use_brim_ears) { - outerExpoly = make_brim_ears(object, flowWidth, brim_offset, flow, true); + outerExpoly = make_brim_ears(object); //outerExpoly = offset_ex(outerExpoly, brim_width_mod, jtRound, SCALED_RESOLUTION); } else if (use_auto_brim_ears) { coord_t size_ear = (brim_width_mod - brim_offset - flow.scaled_spacing()); @@ -547,7 +541,7 @@ static ExPolygons outer_inner_brim_area(const Print& print, ExPolygons outerExpoly; auto innerExpoly = offset_ex(ex_poly_holes_reversed, -brim_width - brim_offset); if (use_brim_ears) { - outerExpoly = make_brim_ears(object, flowWidth, brim_offset, flow, false); + outerExpoly = make_brim_ears(object); } else if (use_auto_brim_ears) { coord_t size_ear = (brim_width - brim_offset - flow.scaled_spacing()); outerExpoly = make_brim_ears_auto(offset_ex(ex_poly_holes_reversed, -brim_offset), size_ear, ear_detection_length, brim_ears_max_angle, false); @@ -572,7 +566,7 @@ static ExPolygons outer_inner_brim_area(const Print& print, for (size_t instance_idx = 0; instance_idx < object->instances().size(); ++instance_idx) { const PrintInstance& instance = object->instances()[instance_idx]; if (!brim_area_object.empty()) - append_and_translate(brim_area, brim_area_object, instance, instance_idx, brimAreaMap); + append_and_translate(brim_area_object, instance, instance_idx, brimAreaMap); append_and_translate(no_brim_area, no_brim_area_object, instance); append_and_translate(holes, holes_object, instance); append_and_translate(objectIslands, objectIsland, instance); @@ -875,6 +869,14 @@ void make_brim(const Print& print, PrintTryCancel try_cancel, Polygons& islands_ ExPolygons islands_area_ex = outer_inner_brim_area(print, float(flow.scaled_spacing()), brimAreaMap, objPrintVec, printExtruders); + if (!print.config().combine_brims) { + ExPolygons claimed_area; + for (auto& [_, areas] : brimAreaMap) { + areas = diff_ex(areas, claimed_area); + expolygons_append(claimed_area, areas); + } + } + // BBS: Find boundingbox of the first layer for (const ObjectID printObjID : print.print_object_ids()) { BoundingBox bbx; diff --git a/src/libslic3r/Config.hpp b/src/libslic3r/Config.hpp index da36321b6f..ef93f0d509 100644 --- a/src/libslic3r/Config.hpp +++ b/src/libslic3r/Config.hpp @@ -2,6 +2,7 @@ #define slic3r_Config_hpp_ #include +#include #include #include #include @@ -780,10 +781,14 @@ public: this->values[i] = rhs_vec->values[i]; modified = true; } else { - if ((i < default_index.size()) && (default_index[i] < default_value.size())) + // Orca: a negative slot (failed variant lookup) must not silently collapse the + // whole array to the first slot's value — the int-vs-size_t comparison used to + // promote -1 past the bounds check. Keep the slot's own value (get_at-style + // clamp) when no valid index is available. + if ((i < default_index.size()) && (default_index[i] >= 0) && (size_t(default_index[i]) < default_value.size())) this->values[i] = default_value[default_index[i]]; else - this->values[i] = default_value[0]; + this->values[i] = default_value[std::min(i, default_value.size() - 1)]; } } return modified; @@ -2106,6 +2111,11 @@ public: throw ConfigurationError("ConfigOptionEnumGeneric: Assigning an incompatible type"); // rhs could be of the following type: ConfigOptionEnumGeneric or ConfigOptionEnum this->value = rhs->getInt(); + // Orca: options embedded in a StaticPrintConfig are constructed without a keys_map; + // adopt the source's so a later serialize() can emit names. + if (this->keys_map == nullptr) + if (auto rhs_generic = dynamic_cast(rhs)) + this->keys_map = rhs_generic->keys_map; } std::string serialize() const override @@ -2162,7 +2172,12 @@ public: if (rhs->type() != this->type()) throw ConfigurationError("ConfigOptionEnumGeneric: Assigning an incompatible type"); // rhs could be of the following type: ConfigOptionEnumsGeneric - this->values = dynamic_cast(rhs)->values; + auto rhs_enums = dynamic_cast(rhs); + this->values = rhs_enums->values; + // Orca: options embedded in a StaticPrintConfig are constructed without a keys_map; + // adopt the source's so a later serialize() emits names instead of empty tokens. + if (this->keys_map == nullptr) + this->keys_map = rhs_enums->keys_map; } std::string serialize() const override @@ -2258,6 +2273,8 @@ public: plugin_picker, // Raw JSON string value, edited through a dialog behind a button rather than in the row. plugin_config, + // PrinterAgentChoice + printer_agent_select, }; // Identifier of this option. It is stored here so that it is accessible through the by_serialization_key_ordinal map. @@ -2965,6 +2982,8 @@ public: const double & opt_float(const t_config_option_key &opt_key, unsigned int idx) const; double & opt_float_nullable(const t_config_option_key &opt_key, unsigned int idx) { return this->option(opt_key)->get_at(idx); } const double & opt_float_nullable(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } + FloatOrPercent & opt_float_or_percent_nullable(const t_config_option_key &opt_key, unsigned int idx) { return this->option(opt_key)->get_at(idx); } + const FloatOrPercent & opt_float_or_percent_nullable(const t_config_option_key &opt_key, unsigned int idx) const { return dynamic_cast(this->option(opt_key))->get_at(idx); } int& opt_int(const t_config_option_key &opt_key) { return this->option(opt_key)->value; } int opt_int(const t_config_option_key &opt_key) const { return dynamic_cast(this->option(opt_key))->value; } diff --git a/src/libslic3r/Extruder.cpp b/src/libslic3r/Extruder.cpp index 1e250b707e..b1b6ca347a 100644 --- a/src/libslic3r/Extruder.cpp +++ b/src/libslic3r/Extruder.cpp @@ -220,12 +220,12 @@ double Extruder::retract_restart_extra() const double Extruder::retract_length_toolchange() const { - return m_config->retract_length_toolchange.get_at(extruder_id()); + return m_config->retract_length_toolchange.get_at(m_config_index); } double Extruder::retract_restart_extra_toolchange() const { - return m_config->retract_restart_extra_toolchange.get_at(extruder_id()); + return m_config->retract_restart_extra_toolchange.get_at(m_config_index); } double Extruder::travel_slope() const diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index f29d4ef3fd..88d87ddb26 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -278,6 +278,9 @@ struct SurfaceFillParams // For Gyroid: when true, use the parameterized "optimized" wave. bool gyroid_optimized = false; + // Orca: corner smoothing factor in the range [0, 1]. + double smooth_factor { 0. }; + CenterOfSurfacePattern center_of_surface_pattern{CenterOfSurfacePattern::Each_Surface}; bool separated_infills{false}; @@ -316,6 +319,7 @@ struct SurfaceFillParams RETURN_COMPARE_NON_EQUAL(skin_infill_depth); RETURN_COMPARE_NON_EQUAL(infill_overhang_angle); RETURN_COMPARE_NON_EQUAL(gyroid_optimized); + RETURN_COMPARE_NON_EQUAL(smooth_factor); RETURN_COMPARE_NON_EQUAL(center_of_surface_pattern); RETURN_COMPARE_NON_EQUAL(separated_infills); RETURN_COMPARE_NON_EQUAL_TYPED(unsigned, fill_order); @@ -348,6 +352,7 @@ struct SurfaceFillParams this->center_of_surface_pattern == rhs.center_of_surface_pattern && this->separated_infills == rhs.separated_infills && this->gyroid_optimized == rhs.gyroid_optimized && + this->smooth_factor == rhs.smooth_factor && this->fill_order == rhs.fill_order; } }; @@ -964,6 +969,11 @@ std::vector group_fills(const Layer &layer, LockRegionParam &lock_p params.angle = calculate_infill_rotation_angle(layer.object(), layer.id(), region_config.infill_direction.value, region_config.sparse_infill_rotate_template.value); params.fixed_angle = !region_config.sparse_infill_rotate_template.value.empty(); + + // Orca: special case; apply smoothing factor only for Hilbert Curve sparse infill. + // FillHilbertCurve::generate clamps and validates the value itself. + if (params.pattern == ipHilbertCurve) + params.smooth_factor = 0.01 * region_config.sparse_infill_smooth_factor.value; } else { const bool top_layer_direction_set = surface.is_top() && region_config.top_layer_direction.value >= 0.; const bool bottom_layer_direction_set = surface.is_bottom() && region_config.bottom_layer_direction.value >= 0.; @@ -1328,6 +1338,7 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: params.lateral_lattice_angle_2 = surface_fill.params.lateral_lattice_angle_2; params.infill_overhang_angle = surface_fill.params.infill_overhang_angle; params.gyroid_optimized = surface_fill.params.gyroid_optimized; + params.smooth_factor = surface_fill.params.smooth_factor; // BBS params.flow = surface_fill.params.flow; @@ -1569,6 +1580,7 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc params.infill_overhang_angle = surface_fill.params.infill_overhang_angle; params.multiline = surface_fill.params.multiline; params.gyroid_optimized = surface_fill.params.gyroid_optimized; + params.smooth_factor = surface_fill.params.smooth_factor; for (ExPolygon &expoly : surface_fill.expolygons) { // Spacing is modified by the filler to indicate adjustments. Reset it for each expolygon. diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 2606529099..45157ec42d 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -1857,12 +1857,12 @@ static inline void base_support_extend_infill_lines(Polylines &infill, BoundaryI const bool first = graph.first(cp); int extend_next_idx = -1; int extend_prev_idx = -1; - coord_t dist_y_prev; - coord_t dist_y_next; - double arc_len_prev; - double arc_len_next; + coord_t dist_y_prev = 0; + coord_t dist_y_next = 0; + double arc_len_prev = 0; + double arc_len_next = 0; - if (! graph.next_vertical(cp)){ + if (! graph.next_vertical(cp)) { size_t i = cp.point_idx; size_t j = next_idx_modulo(i, contour); while (j != cp.next_on_contour->point_idx) { diff --git a/src/libslic3r/Fill/FillBase.hpp b/src/libslic3r/Fill/FillBase.hpp index 8128b9c9d1..d50c29b332 100644 --- a/src/libslic3r/Fill/FillBase.hpp +++ b/src/libslic3r/Fill/FillBase.hpp @@ -82,6 +82,9 @@ struct FillParams // For Gyroid: when true, use the parameterized "optimized" variant. bool gyroid_optimized { false }; + // Orca: corner smoothing factor in the range [0, 1]. + double smooth_factor { 0. }; + // For Lateral lattice coordf_t lateral_lattice_angle_1 { 0.f }; coordf_t lateral_lattice_angle_2 { 0.f }; diff --git a/src/libslic3r/Fill/FillPlanePath.cpp b/src/libslic3r/Fill/FillPlanePath.cpp index 7ce8e4abb3..7c4f285ac6 100644 --- a/src/libslic3r/Fill/FillPlanePath.cpp +++ b/src/libslic3r/Fill/FillPlanePath.cpp @@ -114,12 +114,12 @@ void FillPlanePath::_fill_surface_single( // Filling in a bounding box over the whole object, clip generated polyline against the snug bounding box. snug_bounding_box.translate(-shift.x(), -shift.y()); InfillPolylineClipper output(snug_bounding_box, distance_between_lines); - this->generate(min_x, min_y, max_x, max_y, resolution, output); + this->generate(min_x, min_y, max_x, max_y, resolution, params, output); polyline.points = std::move(output.result()); } else { // Filling in a snug bounding box, no need to clip. InfillPolylineOutput output(distance_between_lines); - this->generate(min_x, min_y, max_x, max_y, resolution, output); + this->generate(min_x, min_y, max_x, max_y, resolution, params, output); polyline.points = std::move(output.result()); } } @@ -288,6 +288,147 @@ static void generate_hilbert_curve(coord_t min_x, coord_t min_y, coord_t max_x, } } +using QuinticBezier = std::array; + +static bool is_bezier_flat(const QuinticBezier &curve, const double deviation) +{ + // A Bezier curve stays inside the convex hull of its control points. Therefore, keeping every + // control point within a deviation-wide strip around the endpoint chord conservatively bounds the + // flattening error. The cross product is the perpendicular distance scaled by the chord length; + // comparing squared values avoids a square root. + const Vec2d chord = curve.back() - curve.front(); + const double chord_length_sq = chord.squaredNorm(); + const double max_cross_sq = deviation * deviation * chord_length_sq; + + for (size_t i = 1; i + 1 < curve.size(); ++i) { + const Vec2d offset = curve[i] - curve.front(); + const double cross = chord.x() * offset.y() - chord.y() * offset.x(); + if (cross * cross > max_cross_sq) + return false; + } + return true; +} + +static void subdivide_bezier(const QuinticBezier &curve, QuinticBezier &left, QuinticBezier &right) +{ + // Split the curve at t = 0.5 using de Casteljau's algorithm. Each averaging level contributes one + // control point to the left half and one to the right half; the latter is filled backwards to keep + // both resulting control polygons in their original parameter direction. + QuinticBezier subdivision = curve; + left.front() = subdivision.front(); + right.back() = subdivision.back(); + for (size_t level = 1; level < curve.size(); ++level) { + for (size_t i = 0; i + level < curve.size(); ++i) + subdivision[i] = 0.5 * (subdivision[i] + subdivision[i + 1]); + left[level] = subdivision.front(); + right[curve.size() - level - 1] = subdivision[curve.size() - level - 1]; + } +} + +static void flatten_bezier(const QuinticBezier &curve, const double deviation, std::vector &output) +{ + // Subdivide to at least depth 1 so a rounded corner cannot collapse to a single diagonal chord. + // A uniform subdivision depth keeps samples at equal parameter intervals t = k / 2^depth, + // avoiding abrupt segment-length jumps at adaptive-depth boundaries. + static constexpr size_t max_depth = 16; + + std::vector subcurves(2); + subdivide_bezier(curve, subcurves[0], subcurves[1]); + + for (size_t depth = 1; depth < max_depth; ++depth) { + bool all_flat = true; + for (const QuinticBezier &c : subcurves) + if (!is_bezier_flat(c, deviation)) { + all_flat = false; + break; + } + if (all_flat) + break; + std::vector finer(subcurves.size() * 2); + for (size_t i = 0; i < subcurves.size(); ++i) + subdivide_bezier(subcurves[i], finer[i * 2], finer[i * 2 + 1]); + subcurves = std::move(finer); + } + + // The curve start is deliberately omitted so consecutive curve pieces can share it without duplication. + output.reserve(output.size() + subcurves.size()); + for (const QuinticBezier &c : subcurves) + output.emplace_back(c.back()); +} + +template +static void generate_smooth_hilbert_curve( + coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, + const double corner_distance, Output &output) +{ + // A Hilbert curve is defined on a square grid whose side is a power of two. As in the unsmoothed + // generator, expand the larger requested dimension to the next valid Hilbert grid size. The output + // clipper or the later region intersection removes the padded part of the traversal. + size_t sz = 2; + const size_t sz0 = std::max(max_x + 1 - min_x, max_y + 1 - min_y); + while (sz < sz0) + sz <<= 1; + + const size_t point_count = sz * sz; + output.reserve(point_count); + + // The caller normalizes resolution to the unit Hilbert grid; retain a finite positive tolerance + // if this helper is invoked with an invalid resolution. + const double deviation = resolution > 0. && std::isfinite(resolution) ? resolution : EPSILON; + // Construct one canonical 90-degree corner from (-corner_distance, 0) to (0, corner_distance). + // At each end, the first three control points are collinear and equally spaced: the tangent follows + // the adjoining straight leg and the second derivative is zero. The endpoint curvature is therefore + // zero, giving G2 joins to both legs. Every Hilbert turn is an oriented copy of this curve, so flatten + // it only once to the requested chordal-deviation tolerance. + const QuinticBezier corner_curve {{ + {-corner_distance, 0.}, {-0.7 * corner_distance, 0.}, {-0.4 * corner_distance, 0.}, + {0., 0.4 * corner_distance}, {0., 0.7 * corner_distance}, {0., corner_distance} + }}; + std::vector curve_coefficients; + flatten_bezier(corner_curve, deviation, curve_coefficients); + + auto translated_point = [min_x, min_y](size_t idx) { + Point p = hilbert_n_to_xy(idx); + return Point(p.x() + min_x, p.y() + min_y); + }; + auto to_vec2d = [](const Point &p) { return Vec2d(double(p.x()), double(p.y())); }; + bool has_last_output = false; + Vec2d last_output; + // Fully smoothed adjacent corners may meet at the same segment midpoint. Suppress such duplicates + // to avoid emitting zero-length extrusion segments. + auto add_point = [&output, &has_last_output, &last_output](const Vec2d &point) { + if (!has_last_output || point.x() != last_output.x() || point.y() != last_output.y()) { + output.add_point(point); + last_output = point; + has_last_output = true; + } + }; + + Vec2d previous = to_vec2d(translated_point(0)); + Vec2d corner = to_vec2d(translated_point(1)); + add_point(previous); + // Replace each non-collinear Hilbert vertex by the canonical curve expressed in the local basis of + // its incoming and outgoing unit vectors. Collinear vertices remain part of the straight polyline. + for (size_t i = 1; i + 1 < point_count; ++i) { + const Vec2d next = to_vec2d(translated_point(i + 1)); + const Vec2d incoming = (corner - previous).normalized(); + const Vec2d outgoing = (next - corner).normalized(); + const double cross = incoming.x() * outgoing.y() - incoming.y() * outgoing.x(); + + if (std::abs(cross) < EPSILON) { + add_point(corner); + } else { + add_point(corner - corner_distance * incoming); + for (const Vec2d &coefficient : curve_coefficients) + add_point(corner + coefficient.x() * incoming + coefficient.y() * outgoing); + } + + previous = corner; + corner = next; + } + add_point(corner); +} + void FillHilbertCurve::generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double /* resolution */, InfillPolylineOutput &output) { if (output.clips()) @@ -296,6 +437,24 @@ void FillHilbertCurve::generate(coord_t min_x, coord_t min_y, coord_t max_x, coo generate_hilbert_curve(min_x, min_y, max_x, max_y, output); } +void FillHilbertCurve::generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, + const FillParams ¶ms, InfillPolylineOutput &output) +{ + const double smooth_factor = std::isfinite(params.smooth_factor) ? + std::clamp(params.smooth_factor, 0., 1.) : 0.; + if (smooth_factor == 0.) { + this->generate(min_x, min_y, max_x, max_y, resolution, output); + return; + } + + const double corner_distance = 0.5 * smooth_factor; + if (output.clips()) + generate_smooth_hilbert_curve( + min_x, min_y, max_x, max_y, resolution, corner_distance, static_cast(output)); + else + generate_smooth_hilbert_curve(min_x, min_y, max_x, max_y, resolution, corner_distance, output); +} + template static void generate_octagram_spiral(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, Output &output) { diff --git a/src/libslic3r/Fill/FillPlanePath.hpp b/src/libslic3r/Fill/FillPlanePath.hpp index 1371e8506a..b4b25b73ae 100644 --- a/src/libslic3r/Fill/FillPlanePath.hpp +++ b/src/libslic3r/Fill/FillPlanePath.hpp @@ -53,6 +53,11 @@ protected: friend class InfillPolylineClipper; virtual void generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, InfillPolylineOutput &output) = 0; + virtual void generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, + const FillParams & /* params */, InfillPolylineOutput &output) + { + this->generate(min_x, min_y, max_x, max_y, resolution, output); + } }; class FillArchimedeanChords : public FillPlanePath @@ -75,6 +80,8 @@ public: protected: bool centered() const override { return false; } void generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, InfillPolylineOutput &output) override; + void generate(coord_t min_x, coord_t min_y, coord_t max_x, coord_t max_y, const double resolution, + const FillParams ¶ms, InfillPolylineOutput &output) override; }; class FillOctagramSpiral : public FillPlanePath diff --git a/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index 138b50bc88..8b40b8753c 100644 --- a/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp @@ -3576,7 +3576,7 @@ Polylines FillLateralHoneycomb::fill_surface(const Surface *surface, const FillP // | // | // 0 --+-- - // / \ + // ⟋ ⟍ // why inverted? // it makes determining some of the properties easier // and the two angled legs provide additional horizontal stiffness diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp index 8b07286c5b..f82ced7d86 100644 --- a/src/libslic3r/Format/STEP.cpp +++ b/src/libslic3r/Format/STEP.cpp @@ -712,7 +712,7 @@ unsigned int Step::get_triangle_num(double linear_deflection, double angle_defle return 0; } } - } catch(Exception e) { + } catch(const Exception &e) { return 0; } diff --git a/src/libslic3r/Format/STEP.hpp b/src/libslic3r/Format/STEP.hpp index 1a65d5956b..336fd79766 100644 --- a/src/libslic3r/Format/STEP.hpp +++ b/src/libslic3r/Format/STEP.hpp @@ -78,7 +78,7 @@ public: Standard_Boolean UserBreak() override { return should_stop.load(); } void Show(const Message_ProgressScope&, const Standard_Boolean) override { - std::cout << "Progress: " << GetPosition() << "%" << std::endl; + std::cout << "Progress: " << std::fixed << std::setprecision(2) << 100.0 * GetPosition() << "%" << std::endl; } private: std::atomic& should_stop; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 5b0ce2f716..18d805936e 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -13,6 +13,7 @@ #include "GCode/PrintExtents.hpp" #include "GCode/Thumbnails.hpp" #include "GCode/WipeTower.hpp" +#include "GCode/WipeTower2.hpp" #include "ShortestPath.hpp" #include "GCode/OrderingStrategies.hpp" #include "Print.hpp" @@ -767,30 +768,31 @@ static std::vector get_path_of_change_filament(const Print& print) return changes; } + // Clearance the tower-approach router keeps around the tower: the avoid box is + // inflated by this much before routing, and the inflated corners must stay on the + // bed for a route to be generated at all. + static constexpr float wipe_tower_routing_clearance = 2.f; + // BBS // start_pos refers to the last position before the wipe_tower. // end_pos refers to the wipe tower's start_pos. // using the print coordinate system - Polyline WipeTowerIntegration::generate_path_to_wipe_tower(const Point& start_pos,const Point &end_pos , const BoundingBox& avoid_polygon , const BoundingBox& printer_bbx) const + Polyline WipeTowerIntegration::generate_path_to_wipe_tower(const Point& start_pos,const Point &end_pos , const BoundingBox& avoid_polygon , const Polygons& bed_polygons) const { Polyline res; - coord_t alpha = scaled(2.f); // offset distance + coord_t alpha = scaled(wipe_tower_routing_clearance); // offset distance BoundingBox avoid_polygon_inner = avoid_polygon; avoid_polygon_inner.offset(alpha); coord_t width = avoid_polygon_inner.max[0] - avoid_polygon_inner.min[0]; - Polygon bed_polygon = printer_bbx.polygon(); Vec2f v(1, 0); // the first print direction of end_pos. if (abs(end_pos[0] - avoid_polygon_inner.min[0]) < width / 2) v = -v; // judge whether the wipe tower's infill goes to the left or right. - // Judge whether the avoid_polygon_inner is outside the printer_bbx. + // Judge whether the avoid_polygon_inner is outside the bed. The real printable + // outline is tested (not its bounding box), so on circular/custom beds corners + // hanging off the bed are rejected. // If so, do nothing and just go directly to the end_pos. - bool is_bbx_in_bed = true; Points avoid_points = avoid_polygon_inner.polygon().points; - for (auto &wipe_tower_bbx_p : avoid_points) { - if (ClipperLib::PointInPolygon(wipe_tower_bbx_p, bed_polygon.points) != 1) { - is_bbx_in_bed = false; - break; - } - } + const bool is_bbx_in_bed = std::all_of(avoid_points.begin(), avoid_points.end(), + [&bed_polygons](const Point &pt) { return contains(bed_polygons, pt, /*border_result=*/false); }); if (!is_bbx_in_bed) { res.points.push_back(end_pos); return res; @@ -889,6 +891,77 @@ static std::vector get_path_of_change_filament(const Print& print) return res; } + // Type2 tower-local point -> bed frame. The rib-wall offset is tower-local, so it + // rotates with the tower (unlike the BBL tower in append_tcr, which never rotates). + Vec2f WipeTowerIntegration::transform_wt2_pt(const Vec2f &pt) const + { + const float alpha = m_wipe_tower_rotation / 180.f * float(M_PI); + return Eigen::Rotation2Df(alpha) * (pt + m_rib_offset) + m_wipe_tower_pos; + } + + // Bed outline the tower-approach router plans against, in object coordinates. The real + // outline is returned, not its bounding box, so the router's containment tests fail off + // the bed on circular/custom shapes; the multi-nozzle narrowing lives in the accessor. + Polygons WipeTowerIntegration::shared_printable_area(GCode &gcodegen) const + { + // The frame change is a pure translation, so transform the origin once. + const Point offset = wipe_tower_point_to_object_point(gcodegen, Vec2f(m_plate_origin(0), m_plate_origin(1))); + Polygons bed_polygons = gcodegen.m_print->get_extruder_shared_printable_polygon(); + for (Polygon &poly : bed_polygons) + poly.translate(offset); + return bed_polygons; + } + + // With skip points enabled the Type2 tower wall has an opening at each toolchange's + // entry (tcr.start_pos): route the approach around the tower's bounding box so the + // nozzle enters through that opening instead of dragging across the printed wall + // (append_tcr parity). Emits only the waypoints leading up to the opening — the + // caller still travels to start_wipe_pos itself. Returns an empty string when the + // gap wall is off (option off or cone wall) or the approach already starts inside + // the tower: such hops never cross the wall and must stay direct. + std::string WipeTowerIntegration::travel_to_tower_gap(GCode &gcodegen, const Point &route_start, const Point &start_wipe_pos) const + { + if (!WipeTower2::use_gap_wall(gcodegen.m_config)) + return {}; + const Vec2f plate_origin_2d(m_plate_origin(0), m_plate_origin(1)); + // Transform tower-local corners exactly like the tcr points; a rotated tower gets a + // conservative axis-aligned envelope from the result. + auto tower_polygon = [&](const BoundingBoxf &bbx) { + Polygon poly = scaled(bbx).polygon(); + for (Point &p : poly.points) + p = wipe_tower_point_to_object_point(gcodegen, transform_wt2_pt(unscale(p).cast()) + plate_origin_2d); + return poly; + }; + // The avoid envelope covers the first-layer brim (and rib flare), which a travel may + // cross freely: early-out only when the approach already starts over the tower body + // itself, so a start between the wall and the brim edge still gets routed in through + // the wall opening. Test the rotated polygon, not its bounding box — at angles off the + // axes the box's corner triangles cover most of the brim ring. + const float body_width = gcodegen.m_config.wipe_tower_wall_type.value == WipeTowerWallType::wtwRib ? m_wipe_tower_depth : m_right; + if (tower_polygon(BoundingBoxf(Vec2d(0., 0.), Vec2d(body_width, m_wipe_tower_depth))).contains(route_start)) + return {}; + + const Polygons bed = shared_printable_area(gcodegen); + BoundingBox avoid_bbx = get_extents(tower_polygon(m_wipe_tower_bbx)); + // The inflated corners must stay on the bed for the router to generate a route at all: + // clamp the box against the bed shrunk by the clearance the router adds, so a tower + // parked near the bed edge is still routed along the clamped side instead of always + // travelling straight across the tower. + BoundingBox clamp_bbx = get_extents(bed); + clamp_bbx.offset(-(scaled(wipe_tower_routing_clearance) + SCALED_EPSILON)); + avoid_bbx.min = avoid_bbx.min.cwiseMax(clamp_bbx.min); + avoid_bbx.max = avoid_bbx.max.cwiseMin(clamp_bbx.max); + if (avoid_bbx.min.x() >= avoid_bbx.max.x() || avoid_bbx.min.y() >= avoid_bbx.max.y()) + return {}; + + Polyline travel_polyline = generate_path_to_wipe_tower(route_start, start_wipe_pos, avoid_bbx, bed); + std::string gcode; + // The polyline's last point is start_wipe_pos itself — emitted by the caller. + for (size_t i = 0; i + 1 < travel_polyline.points.size(); ++i) + gcode += gcodegen.travel_to(travel_polyline.points[i], erMixed, "Travel to a Wipe Tower"); + return gcode; + } + std::string WipeTowerIntegration::append_tcr(GCode& gcodegen, const WipeTower::ToolChangeResult& tcr, int new_filament_id, double z) const { if (new_filament_id != -1 && new_filament_id != tcr.new_tool) @@ -999,6 +1072,7 @@ static std::vector get_path_of_change_filament(const Print& print) std::string change_filament_gcode = gcodegen.config().change_filament_gcode.value; bool is_used_travel_avoid_perimeter = gcodegen.m_config.prime_tower_skip_points.value; + if (is_nozzle_change && !tcr.nozzle_change_result.is_extruder_change) is_used_travel_avoid_perimeter = false; // add nozzle change gcode into change filament gcode std::string nozzle_change_gcode_trans; @@ -1076,8 +1150,8 @@ static std::vector get_path_of_change_filament(const Print& print) float old_retract_length = (old_filament_id != -1) ? full_config.retraction_length.get_at(old_fi) : 0; float new_retract_length = full_config.retraction_length.get_at(new_fi); - float old_retract_length_toolchange = (old_filament_id != -1) ? full_config.retract_length_toolchange.get_at(old_filament_id) : 0; - float new_retract_length_toolchange = full_config.retract_length_toolchange.get_at(new_filament_id); + float old_retract_length_toolchange = (old_filament_id != -1) ? full_config.retract_length_toolchange.get_at(old_fi) : 0; + float new_retract_length_toolchange = full_config.retract_length_toolchange.get_at(new_fi); int old_filament_temp = (old_filament_id != -1) ? (gcodegen.on_first_layer()? full_config.nozzle_temperature_initial_layer.get_at(old_fi) : full_config.nozzle_temperature.get_at(old_fi)) : 210; int new_filament_temp = gcodegen.on_first_layer() ? full_config.nozzle_temperature_initial_layer.get_at(new_fi) : full_config.nozzle_temperature.get_at(new_fi); Vec3d nozzle_pos = gcode_writer.get_position(); @@ -1261,24 +1335,7 @@ static std::vector get_path_of_change_filament(const Print& print) Vec2f gcode_last_pos2d{gcode_last_pos[0], gcode_last_pos[1]}; Point gcode_last_pos2d_object = gcodegen.gcode_to_point(gcode_last_pos2d.cast() + plate_origin_2d.cast()); Point start_wipe_pos = wipe_tower_point_to_object_point(gcodegen, tool_change_start_pos + plate_origin_2d); - BoundingBox avoid_bbx, printer_bbx; - { - // set printer_bbx - // Multi-nozzle: clamp the avoid-perimeter travel bounds to the region every - // extruder can reach (get_extruder_shared_printable_polygon) instead of the full - // bed. Gated on the multi-nozzle predicate so H2D and every existing single/dual - // printer keep the historic full-printable_area routing byte-identical. - if (is_multi_nozzle_printer(gcodegen.m_config)) { - printer_bbx = get_extents(gcodegen.m_print->get_extruder_shared_printable_polygon()); - printer_bbx.min = wipe_tower_point_to_object_point(gcodegen, unscaled(printer_bbx.min) + plate_origin_2d); - printer_bbx.max = wipe_tower_point_to_object_point(gcodegen, unscaled(printer_bbx.max) + plate_origin_2d); - } else { - Pointfs bed_pointsf = gcodegen.m_config.printable_area.values; - Points bed_points; - for (auto p : bed_pointsf) { bed_points.push_back(wipe_tower_point_to_object_point(gcodegen, p.cast() + plate_origin_2d)); } - printer_bbx = BoundingBox(bed_points); - } - } + BoundingBox avoid_bbx; { // set avoid_bbx avoid_bbx = scaled(m_wipe_tower_bbx); @@ -1290,7 +1347,7 @@ static std::vector get_path_of_change_filament(const Print& print) avoid_bbx = BoundingBox(avoid_points.points); } std::string travel_to_wipe_tower_gcode; - Polyline travel_polyline = generate_path_to_wipe_tower(gcode_last_pos2d_object, start_wipe_pos, avoid_bbx, printer_bbx); + Polyline travel_polyline = generate_path_to_wipe_tower(gcode_last_pos2d_object, start_wipe_pos, avoid_bbx, shared_printable_area(gcodegen)); for (size_t i = 0; i < travel_polyline.points.size(); ++i) { const auto &p = travel_polyline.points[i]; @@ -1308,20 +1365,23 @@ static std::vector get_path_of_change_filament(const Print& print) } // do unretract after setting current extruder_id - // PETG filaments on a device with a filament switcher get a small (2 mm) pre-extrusion - // before the tool change. has_filament_switcher is a develop-only key read defensively from the - // full config (Orca does not carry it as a static PrintConfig member — same convention as - // enable_filament_dynamic_map); no shipping profile sets it (grep resources/profiles = 0), so - // is_petg_pre_extrusion is always false -> extra_unretract stays 0 -> byte-identical to the plain - // unretract() fleet-wide. The tower-interface contact pre-extrusion length (the - // is_contact_pre_extrusion branch) is NOT applied here; it is only computed as the guard used to - // give the contact path priority over PETG. + // BBS pattern: the wipe tower shifts the toolchange start position outward for the + // tower-interface (contact) pre-extrusion and for the PETG-with-filament-switcher case; + // the pre-extrusion material itself is laid down here as extra unretract on the approach. + // has_filament_switcher is a develop-only key read defensively from the full config (Orca + // does not carry it as a static PrintConfig member — same convention as + // enable_filament_dynamic_map); no shipping profile sets it, so is_petg_pre_extrusion is + // always false fleet-wide. const ConfigOptionBool* has_filament_switcher_opt = gcodegen.m_print->full_print_config().option("has_filament_switcher"); bool is_contact_pre_extrusion = tcr.is_contact && gcodegen.m_config.enable_tower_interface_features; bool is_petg_pre_extrusion = !is_contact_pre_extrusion && gcodegen.config().filament_type.get_at(tcr.new_tool) == "PETG" && has_filament_switcher_opt && has_filament_switcher_opt->value; - float extra_unretract = is_petg_pre_extrusion ? 2.f : 0.f; + float extra_unretract = 0.f; + if (is_contact_pre_extrusion) + extra_unretract = gcodegen.m_config.filament_tower_interface_pre_extrusion_length.get_at(tcr.new_tool); + else if (is_petg_pre_extrusion) + extra_unretract = 2.f; std::string toolchange_unretract_str = (extra_unretract > 0.f) ? gcodegen.unretract(extra_unretract) : gcodegen.unretract(); check_add_eol(toolchange_unretract_str); @@ -1419,20 +1479,16 @@ static std::vector get_path_of_change_filament(const Print& print) // We want to rotate and shift all extrusions (gcode postprocessing) and starting and ending position float alpha = m_wipe_tower_rotation / 180.f * float(M_PI); - auto transform_wt_pt = [&alpha, this](const Vec2f &pt) -> Vec2f { - Vec2f out = Eigen::Rotation2Df(alpha) * pt; - out += m_wipe_tower_pos; - return out; - }; - + // Priming lines are absolute bed moves; everything else is tower-local + // (transform_wt2_pt). Vec2f start_pos = tcr.start_pos; Vec2f end_pos = tcr.end_pos; if (!tcr.priming) { - start_pos = transform_wt_pt(start_pos); - end_pos = transform_wt_pt(end_pos); + start_pos = transform_wt2_pt(start_pos); + end_pos = transform_wt2_pt(end_pos); } - Vec2f wipe_tower_offset = tcr.priming ? Vec2f::Zero() : m_wipe_tower_pos; + Vec2f wipe_tower_offset = tcr.priming ? Vec2f::Zero() : Vec2f(m_wipe_tower_pos + Eigen::Rotation2Df(alpha) * m_rib_offset); float wipe_tower_rotation = tcr.priming ? 0.f : alpha; Vec2f plate_origin_2d(m_plate_origin(0), m_plate_origin(1)); @@ -1462,16 +1518,34 @@ static std::vector get_path_of_change_filament(const Print& print) || is_ramming || tool_change_on_wipe_tower); - if (should_travel_to_tower || gcodegen.m_need_change_layer_lift_z) { + const Point start_wipe_pos = wipe_tower_point_to_object_point(gcodegen, start_pos + plate_origin_2d); + const bool travel_to_tower_now = should_travel_to_tower || gcodegen.m_need_change_layer_lift_z; + if (travel_to_tower_now) { // FIXME: It would be better if the wipe tower set the force_travel flag for all toolchanges, // then we could simplify the condition and make it more readable. - gcode += gcodegen.retract(); + + // Orca: pass the configured lift type, as append_tcr does above. lazy_lift() keeps + // the first type it is given, so the NormalLift default would pin this hop to a + // standing move. Slope and spiral both need a known head position. + LiftType lift_type = LiftType::NormalLift; + if (gcodegen.writer().filament() != nullptr && gcodegen.writer().is_current_position_clear()) { + ZHopType z_hop_type = ZHopType(gcodegen.config().z_hop_types.get_at( + gcodegen.get_filament_config_index((int) gcodegen.writer().filament()->id()))); + if (z_hop_type == ZHopType::zhtAuto) + z_hop_type = ZHopType::zhtSpiral; + lift_type = gcodegen.to_lift_type(z_hop_type); + } + gcode += gcodegen.retract(false, false, lift_type); gcodegen.m_avoid_crossing_perimeters.use_external_mp_once(); - gcode += gcodegen.travel_to(wipe_tower_point_to_object_point(gcodegen, start_pos + plate_origin_2d), erMixed, "Travel to a Wipe Tower"); + if (!tcr.priming && gcodegen.last_pos_defined()) + gcode += travel_to_tower_gap(gcodegen, gcodegen.last_pos(), start_wipe_pos); + gcode += gcodegen.travel_to(start_wipe_pos, erMixed, "Travel to a Wipe Tower"); gcode += gcodegen.unretract(); } else { // When this is multiextruder printer without any ramming, we can just change - // the tool without travelling to the tower. + // the tool without travelling to the tower. The tower entry travel then lives + // inside the tcr gcode; with skip points on it is rerouted below, once the + // toolchange gcode (and the head position it ends at) is known. } if (will_go_down) { @@ -1493,7 +1567,38 @@ static std::vector get_path_of_change_filament(const Print& print) interface_temp = gcodegen.config().nozzle_temperature_range_high.get_at(new_extruder_id); toolchange_temp_override = interface_temp; } - toolchange_gcode_str = gcodegen.set_extruder(new_extruder_id, tcr.print_z, false, toolchange_temp_override); // TODO: toolchange_z vs print_z + toolchange_gcode_str = gcodegen.set_extruder(new_extruder_id, tcr.print_z, false, toolchange_temp_override, + WipeTower2::wait_for_temp_enabled(gcodegen.m_config)); // TODO: toolchange_z vs print_z + if (!travel_to_tower_now && !tcr.priming && WipeTower2::use_gap_wall(gcodegen.m_config)) { + // The tool changed in place (multi-tool printer without ramming), so the + // tower entry is the tcr's own positioning move — a straight line across + // the printed wall. Route it around the tower and in through the wall + // opening instead, riding at the end of the change_filament_gcode + // substitution so the generator's positioning move degrades to a + // zero-length one (append_tcr parity: travel after the filament change, + // retracted, with the new filament). + Vec3f last_gcode_pos = gcodegen.writer().get_position().cast(); + Point route_start; + bool have_start = false; + if (GCodeProcessor::get_last_position_from_gcode(toolchange_gcode_str, last_gcode_pos)) { + // A custom change_filament_gcode may have moved the head (tool docks + // etc.); recover the real position from the emitted gcode. + route_start = gcodegen.gcode_to_point(Vec2d(last_gcode_pos.x(), last_gcode_pos.y()) + plate_origin_2d.cast()); + have_start = true; + } else if (gcodegen.last_pos_defined()) { + route_start = gcodegen.last_pos(); + have_start = true; + } + if (have_start) { + gcodegen.set_last_pos(route_start); + gcodegen.m_avoid_crossing_perimeters.use_external_mp_once(); + std::string travel = travel_to_tower_gap(gcodegen, route_start, start_wipe_pos); + travel += gcodegen.travel_to(start_wipe_pos, erMixed, "Travel to a Wipe Tower"); + check_add_eol(travel); + toolchange_gcode_str += travel; + gcodegen.set_last_pos(start_wipe_pos); + } + } if (gcodegen.config().enable_prime_tower) { deretraction_str += gcodegen.writer().travel_to_z(z, "Force restore layer Z", true); Vec3d position{gcodegen.writer().get_position()}; @@ -1614,7 +1719,7 @@ static std::vector get_path_of_change_filament(const Print& print) std::string trimmed = line; trimmed.erase(0, trimmed.find_first_not_of(" \t")); bool skip_line = false; - if (boost::starts_with(trimmed, "M109")) { + if (boost::starts_with(trimmed, "M109") && trimmed.find(WipeTower2::wait_for_temp_tag()) == std::string::npos) { bool matches_extruder = true; if (trimmed.find('T') != std::string::npos) matches_extruder = trimmed.find(t_token) != std::string::npos; @@ -1679,7 +1784,7 @@ static std::vector get_path_of_change_filament(const Print& print) // Prepare a future wipe. gcodegen.m_wipe.reset_path(); for (const Vec2f& wipe_pt : tcr.wipe_path) - gcodegen.m_wipe.path.points.emplace_back(wipe_tower_point_to_object_point(gcodegen, transform_wt_pt(wipe_pt) + plate_origin_2d)); + gcodegen.m_wipe.path.points.emplace_back(wipe_tower_point_to_object_point(gcodegen, transform_wt2_pt(wipe_pt) + plate_origin_2d)); } // Let the planner know we are traveling between objects. @@ -2793,6 +2898,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato DoExport::init_gcode_processor(print.config(), m_processor, m_silent_time_estimator_enabled, print.get_layered_nozzle_group_result()); const bool is_bbl_printers = print.is_BBL_printer(); + const bool skip_config_block = print.config().gcode_skip_config_block; const WipeTowerType wipe_tower_type = print.wipe_tower_type(); m_calib_config.clear(); // resets analyzer's tracking data @@ -2968,7 +3074,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato // as configuration key / value pairs to be parsable by older versions of // PrusaSlicer G-code viewer. { - if (is_bbl_printers) { + if (is_bbl_printers && !skip_config_block) { file.write("; CONFIG_BLOCK_START\n"); std::string full_config; append_full_config(print, full_config); @@ -3995,23 +4101,25 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato GCodeProcessor::ETags::Estimated_Printing_Time_Placeholder) .c_str()); file.write("\n"); - file.write("; CONFIG_BLOCK_START\n"); - std::string full_config; - append_full_config(print, full_config); - if (!full_config.empty()) - file.write(full_config); + if (!skip_config_block) { + file.write("; CONFIG_BLOCK_START\n"); + std::string full_config; + append_full_config(print, full_config); + if (!full_config.empty()) + file.write(full_config); - // SoftFever: write compatiple info - int first_layer_bed_temperature = get_bed_temperature(0, true, print.config().curr_bed_type); - file.write_format("; first_layer_bed_temperature = %d\n", first_layer_bed_temperature); - file.write_format("; bed_shape = %s\n", print.full_print_config().opt_serialize("printable_area").c_str()); - file.write_format("; first_layer_temperature = %d\n", print.config().nozzle_temperature_initial_layer.get_at(0)); - file.write_format("; first_layer_height = %.3f\n", print.config().initial_layer_print_height.value); - - //SF TODO -// file.write_format("; variable_layer_height = %d\n", print.ad.adaptive_layer_height ? 1 : 0); - - file.write("; CONFIG_BLOCK_END\n\n"); + // SoftFever: write compatiple info + int first_layer_bed_temperature = get_bed_temperature(0, true, print.config().curr_bed_type); + file.write_format("; first_layer_bed_temperature = %d\n", first_layer_bed_temperature); + file.write_format("; bed_shape = %s\n", print.full_print_config().opt_serialize("printable_area").c_str()); + file.write_format("; first_layer_temperature = %d\n", print.config().nozzle_temperature_initial_layer.get_at(0)); + file.write_format("; first_layer_height = %.3f\n", print.config().initial_layer_print_height.value); + + //SF TODO +// file.write_format("; variable_layer_height = %d\n", print.ad.adaptive_layer_height ? 1 : 0); + + file.write("; CONFIG_BLOCK_END\n\n"); + } // !skip_config_block } file.write("\n"); @@ -5417,7 +5525,7 @@ LayerResult GCode::process_layer( // add tag for processor gcode += ";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Layer_Change) + "\n"; // export layer z - char buf[64]; + char buf[80]; sprintf(buf, print.is_BBL_printer() ? "; Z_HEIGHT: %g\n" : ";Z:%g\n", print_z); gcode += buf; // export layer height @@ -6618,6 +6726,7 @@ void GCode::append_full_config(const Print &print, std::string &str) "farthest_point_timelapse"sv, "compatible_printers"sv, "compatible_prints"sv, + "filament_colour_type"sv, "print_host"sv, "print_host_webui"sv, "printhost_apikey"sv, @@ -7542,8 +7651,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, if (sloped) { speed = std::min(speed, m_config.scarf_joint_speed.get_abs_value(speed)); } - } - else if(path.role() == erInternalBridgeInfill) { + } else if(path.role() == erInternalBridgeInfill) { speed = m_config.get_abs_value_at("internal_bridge_speed", get_nozzle_config_index(m_writer.filament()->id())); } else if (path.role() == erOverhangPerimeter || path.role() == erSupportTransition || path.role() == erBridgeInfill) { speed = NOZZLE_CONFIG(bridge_speed); @@ -7554,7 +7662,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } else if (path.role() == erTopSolidInfill) { speed = NOZZLE_CONFIG(top_surface_speed); } else if (path.role() == erIroning) { - speed = m_config.get_abs_value("ironing_speed"); + const size_t filament_idx = get_filament_config_index(m_writer.filament()->id()); + speed = m_config.filament_ironing_speed.is_nil(filament_idx) + ? m_config.get_abs_value("ironing_speed") + : m_config.filament_ironing_speed.get_at(filament_idx); } else if (path.role() == erBottomSurface) { speed = NOZZLE_CONFIG(initial_layer_infill_speed); } else if (path.role() == erGapFill) { @@ -8845,7 +8956,7 @@ void GCode::update_placeholder_parser_with_variant_params() } } -std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bool by_object, int toolchange_temp_override) +std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bool by_object, int toolchange_temp_override, bool defer_temp_wait) { int new_extruder_id = get_extruder_id(new_filament_id); if (!m_writer.need_toolchange(new_filament_id)) @@ -8944,7 +9055,7 @@ std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bo // per-layer nozzle grouping; resolve the column instead of indexing by the filament id. size_t new_fi = get_filament_config_index((int)new_filament_id); float new_retract_length = m_config.retraction_length.get_at(new_fi); - float new_retract_length_toolchange = m_config.retract_length_toolchange.get_at(new_filament_id); + float new_retract_length_toolchange = m_config.retract_length_toolchange.get_at(new_fi); int new_filament_temp = this->on_first_layer() ? m_config.nozzle_temperature_initial_layer.get_at(new_fi) : m_config.nozzle_temperature.get_at(new_fi); // BBS: if print_z == 0 use first layer temperature if (abs(print_z) < EPSILON) @@ -8952,6 +9063,24 @@ std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bo if (toolchange_temp_override > 0) new_filament_temp = toolchange_temp_override; + // With wait_for_temp_on_wipe_tower the blocking M109 is deferred to the wipe tower, so raise + // the incoming filament's target here — ahead of the tool change rather than after it — and + // let the heat-up overlap the change itself as well as the travel to the tower. The command + // always carries an explicit tool index (the option is off for single extruder MM, so the + // writer emits one), leaving the outgoing filament that pre_toolchange just dropped to its + // standby temperature alone. nozzle_temperature == 0 means "use the first layer temperature". + if (defer_temp_wait) { + // Target what the tower will wait on. It waits on the first layer temperature not only on + // the first layer but also while priming, which runs before any layer is set: there + // on_first_layer() is false and print_z is the initial layer height, so neither test above + // catches it. nozzle_temperature == 0 means "use the first layer temperature" as well. + int preheat_temp = new_filament_temp; + if (toolchange_temp_override <= 0 && (m_layer == nullptr || preheat_temp <= 0)) + preheat_temp = m_config.nozzle_temperature_initial_layer.get_at(new_fi); + if (preheat_temp > 0) + gcode += m_writer.set_temperature(preheat_temp, false, new_filament_id); + } + Vec3d nozzle_pos = m_writer.get_position(); float old_retract_length, old_retract_length_toolchange, wipe_volume; int old_filament_temp, old_filament_e_feedrate; @@ -8975,7 +9104,7 @@ std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bo // gap-filled carry-forward, so its current-layer column matches the nozzle it occupies. size_t old_fi = get_filament_config_index(old_filament_id); old_retract_length = m_config.retraction_length.get_at(old_fi); - old_retract_length_toolchange = m_config.retract_length_toolchange.get_at(old_filament_id); + old_retract_length_toolchange = m_config.retract_length_toolchange.get_at(old_fi); old_filament_temp = this->on_first_layer()? m_config.nozzle_temperature_initial_layer.get_at(old_fi) : m_config.nozzle_temperature.get_at(old_fi); //During the filament change, the extruder will extrude an extra length of grab_length for the corresponding detection, so the purge can reduce this length. @@ -9255,8 +9384,10 @@ std::string GCode::set_extruder(unsigned int new_filament_id, double print_z, bo } check_add_eol(gcode); } - // Set the new extruder to the operating temperature. - if (m_ooze_prevention.enable) + // Set the new extruder to the operating temperature. With defer_temp_wait the target was + // already raised before the tool change and the blocking wait belongs to the wipe tower + // generator, so there is nothing left to restore here. + if (m_ooze_prevention.enable && !defer_temp_wait) gcode += m_ooze_prevention.post_toolchange(*this); if (m_config.enable_pressure_advance.get_at(new_filament_id)) { diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index fdb6f54861..6bdb04a8a9 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -130,8 +130,11 @@ public: private: WipeTowerIntegration& operator=(const WipeTowerIntegration&); std::string append_tcr(GCode &gcodegen, const WipeTower::ToolChangeResult &tcr, int new_extruder_id, double z = -1.) const; - Polyline generate_path_to_wipe_tower(const Point &start_pos, const Point &end_pos, const BoundingBox &avoid_polygon, const BoundingBox &printer_bbx) const; + Polyline generate_path_to_wipe_tower(const Point &start_pos, const Point &end_pos, const BoundingBox &avoid_polygon, const Polygons &bed_polygons) const; std::string append_tcr2(GCode &gcodegen, const WipeTower::ToolChangeResult &tcr, int new_extruder_id, double z = -1.) const; + std::string travel_to_tower_gap(GCode &gcodegen, const Point &route_start, const Point &start_wipe_pos) const; + Vec2f transform_wt2_pt(const Vec2f &pt) const; + Polygons shared_printable_area(GCode &gcodegen) const; // Postprocesses gcode: rotates and moves G1 extrusions and returns result std::string post_process_wipe_tower_moves(const WipeTower::ToolChangeResult& tcr, const Vec2f& translation, float angle) const; @@ -181,7 +184,7 @@ struct LayerResult { // It is used for the pressure equalizer because it needs to buffer one layer back. bool nop_layer_result { false }; - static LayerResult make_nop_layer_result() { return {"", std::numeric_limits::max(), false, false, true}; } + static LayerResult make_nop_layer_result() { return {"", std::numeric_limits::max(), false, false, true}; } }; class GCode { @@ -259,7 +262,7 @@ public: std::string retract(bool toolchange = false, bool is_last_retraction = false, LiftType lift_type = LiftType::NormalLift, bool apply_instantly = false, ExtrusionRole role = erNone); // extra_retract forwards a PETG pre-extrusion over-extrusion; default 0 -> identical to the plain deretract. std::string unretract(float extra_retract = 0.f) { return m_writer.unlift() + m_writer.unretract(extra_retract); } - std::string set_extruder(unsigned int extruder_id, double print_z, bool by_object=false, int toolchange_temp_override = -1); + std::string set_extruder(unsigned int extruder_id, double print_z, bool by_object=false, int toolchange_temp_override = -1, bool defer_temp_wait = false); bool is_BBL_Printer(); WipeTowerType wipe_tower_type(); diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index cc53cd0e51..cebfe486cb 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -1450,8 +1450,8 @@ void GCodeProcessor::run_post_process() // flag) runs none of this. It is pure data construction — it only fills m_filament_blocks / // m_extruder_blocks / m_machine_*_gcode_*_line_id and never touches the exported g-code, so even // the enable_pre_heating fleet stays byte-identical (nothing reads the blocks until the injection - // pass). In practice it also stays empty/degenerate today because no template/code yet emits the - // MACHINE_*_GCODE_* / NOZZLE_CHANGE_* / CP_TOOLCHANGE_WIPE markers it keys off. + // pass). The wipe tower emits the NOZZLE_CHANGE_* (ramming) and CP_TOOLCHANGE_WIPE markers this + // builder keys off; the MACHINE_*_GCODE_* markers come from the machine g-code templates. m_filament_blocks.clear(); m_extruder_blocks.clear(); m_machine_start_gcode_end_line_id = (unsigned int) (-1); @@ -5926,8 +5926,11 @@ void GCodeProcessor::process_G10(const GCodeReader::GCodeLine& line) GCodeReader::GCodeLine g10; g10.set(Axis::E, -this->m_parser.config().retraction_length.get_at(m_extruder_id)); g10.set(Axis::F, this->m_parser.config().retraction_speed.get_at(m_extruder_id) * 60); + //Orca: Firmware retract emulation must not change the modal G1 feedrate. + const float feedrate = m_feedrate; --m_g1_line_id; process_G1(g10); + m_feedrate = feedrate; } void GCodeProcessor::process_G11(const GCodeReader::GCodeLine& line) @@ -5936,8 +5939,11 @@ void GCodeProcessor::process_G11(const GCodeReader::GCodeLine& line) GCodeReader::GCodeLine g11; g11.set(Axis::E, this->m_parser.config().retraction_length.get_at(m_extruder_id) + this->m_parser.config().retract_restart_extra.get_at(m_extruder_id)); g11.set(Axis::F, this->m_parser.config().deretraction_speed.get_at(m_extruder_id) * 60); + // Orca: Firmware unretract emulation must not change the modal G1 feedrate. + const float feedrate = m_feedrate; --m_g1_line_id; process_G1(g11); + m_feedrate = feedrate; } void GCodeProcessor::process_G20(const GCodeReader::GCodeLine& line) diff --git a/src/libslic3r/GCode/PrintExtents.cpp b/src/libslic3r/GCode/PrintExtents.cpp index 4a65ae5ae4..9008adaa9a 100644 --- a/src/libslic3r/GCode/PrintExtents.cpp +++ b/src/libslic3r/GCode/PrintExtents.cpp @@ -143,7 +143,8 @@ BoundingBoxf get_wipe_tower_extrusions_extents(const Print &print, const coordf_ double wipe_tower_y = print.config().wipe_tower_y.get_at(plate_idx) + plate_origin(1); Transform2d trafo = Eigen::Translation2d(wipe_tower_x, wipe_tower_y) * - Eigen::Rotation2Dd(Geometry::deg2rad(print.config().wipe_tower_rotation_angle.value)); + Eigen::Rotation2Dd(Geometry::deg2rad(print.config().wipe_tower_rotation_angle.value)) * + Eigen::Translation2d(print.wipe_tower_data().rib_offset.cast()); // tower-local rib-wall shift, zero unless rib BoundingBoxf bbox; for (const std::vector &tool_changes : print.wipe_tower_data().tool_changes) { diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 06bca292d4..5834937169 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -3,11 +3,9 @@ #include #include #include -#include #include #include #include - #include "GCodeProcessor.hpp" #include "BoundingBox.hpp" #include "ClipperUtils.hpp" @@ -17,12 +15,16 @@ namespace Slic3r { -constexpr float flat_iron_speed = 10.f * 60.f; +float flat_iron_speed = 10.f * 60.f; static const double wipe_tower_wall_infill_overlap = 0.0; static constexpr double WIPE_TOWER_RESOLUTION = 0.1; +// Orca: SCALING_FACTOR is a runtime variable (large-printer switch), so this cannot be constexpr #define WT_SIMPLIFY_TOLERANCE_SCALED (0.001 / SCALING_FACTOR) static constexpr int arc_fit_size = 20; #define SCALED_WIPE_TOWER_RESOLUTION (WIPE_TOWER_RESOLUTION / SCALING_FACTOR) +enum class LimitFlow { None, LimitPrintFlow, LimitRammingFlow, LimitRammingFlowNC};//nc:nozzle change +static const std::map nozzle_diameter_to_nozzle_change_width{{0.2f, 0.5f}, {0.4f, 1.0f}, {0.6f, 1.2f}, {0.8f, 1.4f}}; + inline float align_round(float value, float base) { return std::round(value / base) * base; @@ -67,7 +69,7 @@ static bool is_valid_gcode(const std::string &gcode) return is_valid; } -static Polygon chamfer_polygon(Polygon &polygon, double chamfer_dis = 2., double angle_tol = 30. / 180. * PI) +Polygon chamfer_polygon(Polygon &polygon, double chamfer_dis = 2., double angle_tol = 30. / 180. * PI) { if (polygon.points.size() < 3) return polygon; Polygon res; @@ -169,7 +171,7 @@ Polygon WipeTower::rounding_polygon(Polygon &polygon, double rounding /*= 2.*/, return res; } -static Polygon rounding_rectangle(Polygon &polygon, double rounding = 2., double angle_tol = 30. / 180. * PI) { +Polygon rounding_rectangle(Polygon &polygon, double rounding = 2., double angle_tol = 30. / 180. * PI) { if (polygon.points.size() < 3) return polygon; Polygon res; res.points.reserve(polygon.points.size() * 2); @@ -226,7 +228,7 @@ static Polygon rounding_rectangle(Polygon &polygon, double rounding = 2., double return res; } -static std::pair ray_intersetion_line(const Vec2f &a, const Vec2f &v1, const Vec2f &b, const Vec2f &c) +std::pair ray_intersetion_line(const Vec2f &a, const Vec2f &v1, const Vec2f &b, const Vec2f &c) { const Vec2f v2 = c - b; double denom = cross2(v1, v2); @@ -243,19 +245,19 @@ static std::pair ray_intersetion_line(const Vec2f &a, const Vec2f & } return std::pair(false, Vec2f{0, 0}); } -static Polygon scale_polygon(const std::vector &points) { +Polygon scale_polygon(const std::vector &points) { Polygon res; for (const auto &p : points) res.points.push_back(scaled(p)); return res; } -static std::vector unscale_polygon(const Polygon& polygon) +std::vector unscale_polygon(const Polygon& polygon) { std::vector res; for (const auto &p : polygon.points) res.push_back(unscaled(p)); return res; } -static Polygon generate_rectange(const Line &line, coord_t offset) +Polygon generate_rectange(const Line &line, coord_t offset) { Point p1 = line.a; Point p2 = line.b; @@ -294,7 +296,7 @@ struct Segment bool is_valid() const { return start.y() < end.y(); } }; -static std::vector remove_points_from_segment(const Segment &segment, const std::vector &skip_points, double range) +std::vector remove_points_from_segment(const Segment &segment, const std::vector &skip_points, double range) { std::vector result; result.push_back(segment); @@ -333,7 +335,7 @@ struct PointWithFlag int pair_idx; // gap_pair idx bool is_forward; }; -static IntersectionInfo move_point_along_polygon(const std::vector &points, const Vec2f &startPoint, int startIdx, float offset, bool forward, int pair_idx) +IntersectionInfo move_point_along_polygon(const std::vector &points, const Vec2f &startPoint, int startIdx, float offset, bool forward, int pair_idx) { float remainingDistance = offset; IntersectionInfo res; @@ -395,7 +397,7 @@ static IntersectionInfo move_point_along_polygon(const std::vector &point return res; }; -static void insert_points(std::vector &pl, int idx, Vec2f pos, int pair_idx, bool is_forward) +void insert_points(std::vector &pl, int idx, Vec2f pos, int pair_idx, bool is_forward) { int next = (idx + 1) % pl.size(); Vec2f pos1 = pl[idx].pos; @@ -411,15 +413,111 @@ static void insert_points(std::vector &pl, int idx, Vec2f pos, in } } -static Polylines remove_points_from_polygon(const Polygon &polygon, const std::vector &skip_points, double range, bool is_left ,Polygon& insert_skip_pg) +// For skip_point +// TODO: Optimize the skip_point algorithm itself instead of adding guards here +Polygon add_extra_point(const Polygon &polygon, int scale_range) { - assert(polygon.size() > 2); + Polygon res; + if (polygon.size() < 2) return polygon; + + // Compute bounding box of the polygon + auto polygon_box = get_extents(polygon); + + // Anchor point: X at bbox center, Y at bbox bottom + Vec2f anchor_point(float(polygon_box.center()[0]), float(polygon_box.min[1])); + + // Find the edge whose midpoint is closest to the anchor point + size_t closest_edge_idx = 0; + float min_dist_sq = std::numeric_limits::max(); + + for (size_t i = 0; i < polygon.size(); ++i) { + const Point &a_i = polygon[i]; + const Point &b_i = polygon[(i + 1) % polygon.size()]; + + Vec2f a(float(a_i.x()), float(a_i.y())); + Vec2f b(float(b_i.x()), float(b_i.y())); + Vec2f mid = (a + b) * 0.5f; + + float dist_sq = (anchor_point - mid).squaredNorm(); + if (dist_sq < min_dist_sq) { + min_dist_sq = dist_sq; + closest_edge_idx = i; + } + } + + // Edge endpoints (integer space) + const Point &a_i = polygon[closest_edge_idx]; + const Point &b_i = polygon[(closest_edge_idx + 1) % polygon.size()]; + + // Convert to float for geometric computation + Vec2f a(float(a_i.x()), float(a_i.y())); + Vec2f b(float(b_i.x()), float(b_i.y())); + + Vec2f mid = (a + b) * 0.5f; + + // Direction vectors from midpoint towards A and B + Vec2f dir_to_a = a - mid; + Vec2f dir_to_b = b - mid; + + float len_a = dir_to_a.norm(); + float len_b = dir_to_b.norm(); + + // Guard against degenerated edges + if (len_a < EPSILON || len_b < EPSILON) return polygon; + + dir_to_a /= len_a; + dir_to_b /= len_b; + + // Clamp range to avoid overshooting the edge + float max_range = std::min(len_a, len_b) * 0.9f; + float range = std::min(float(scale_range), max_range); + + // Offset points (float space) + Vec2f offset_to_a_f = mid + dir_to_a * range; + Vec2f offset_to_b_f = mid + dir_to_b * range; + + // Safe cast back to scaled integer Point + auto to_int_point = [](const Vec2f &p) { + auto clamp = [](float v) -> coord_t { + constexpr float kMin = float(std::numeric_limits::min()); + constexpr float kMax = float(std::numeric_limits::max()); + v = std::clamp(v, kMin, kMax); + return static_cast(std::lround(v)); + }; + return Point(clamp(p.x()), clamp(p.y())); + }; + + Point mid_i = to_int_point(mid); + Point offset_to_a_i = to_int_point(offset_to_a_f); + Point offset_to_b_i = to_int_point(offset_to_b_f); + + // Rebuild polygon with inserted points + for (size_t i = 0; i < polygon.size(); ++i) { + res.points.push_back(polygon[i]); + + // Insert points right after the selected edge start vertex + if (i == closest_edge_idx) { + res.points.push_back(offset_to_a_i); + res.points.push_back(mid_i); + res.points.push_back(offset_to_b_i); + } + } + + return res; +} + + + +Polylines remove_points_from_polygon(const Polygon &polygon_ori, const std::vector &skip_points, double range, float wt_width, Polygon &insert_skip_pg) +{ + Polygon polygon = add_extra_point(polygon_ori, scale_(range)); + if (polygon.size() < 2) return Polylines{to_polyline(polygon)}; Polylines result; std::vector new_pl; // add intersection points for gaps, where bool indicates whether it's a gap point. std::vector inter_info; - Vec2f ray = is_left ? Vec2f(-1, 0) : Vec2f(1, 0); auto polygon_box = get_extents(polygon); - Point anchor_point = is_left ? Point{polygon_box.max[0], polygon_box.min[1]} : polygon_box.min; // rd:ld + //Point anchor_point = /*is_left ? Point{polygon_box.max[0], polygon_box.min[1]} :*/ polygon_box.min; // rd:ld + Point anchor_point = Point{polygon_box.center()[0], polygon_box.min[1]}; // for next reconnect std::vector points; { points.reserve(polygon.points.size()); @@ -430,6 +528,8 @@ static Polylines remove_points_from_polygon(const Polygon &polygon, const std::v } for (int i = 0; i < skip_points.size(); i++) { + bool is_left = abs(skip_points[i].x()) < wt_width / 2.f; + Vec2f ray = is_left ? Vec2f(-1, 0) : Vec2f(1, 0); for (int j = 0; j < points.size(); j++) { Vec2f& p1 = points[j]; Vec2f& p2 = points[(j + 1) % points.size()]; @@ -493,22 +593,22 @@ static Polylines remove_points_from_polygon(const Polygon &polygon, const std::v return result; } -static Polylines contrust_gap_for_skip_points(const Polygon &polygon, const std::vector & skip_points ,float wt_width,float gap_length,Polygon& insert_skip_polygon) +Polylines construct_gap_for_skip_points(const Polygon &polygon, const std::vector & skip_points ,float wt_width,float gap_length,Polygon& insert_skip_polygon) { if (skip_points.empty()) { insert_skip_polygon = polygon; return Polylines{to_polyline(polygon)}; } - bool is_left = false; - const auto &pt = skip_points.front(); - if (abs(pt.x()) < wt_width/2.f) { - is_left = true; - } - return remove_points_from_polygon(polygon, skip_points, gap_length, is_left, insert_skip_polygon); + //bool is_left = false; + //const auto &pt = skip_points.front(); + //if (abs(pt.x()) < wt_width/2.f) { + // is_left = true; + //} + return remove_points_from_polygon(polygon, skip_points, gap_length, wt_width, insert_skip_polygon); }; -static Polygon generate_rectange_polygon(const Vec2f &wt_box_min ,const Vec2f & wt_box_max) { +Polygon generate_rectange_polygon(const Vec2f &wt_box_min ,const Vec2f & wt_box_max) { Polygon res; res.points.push_back(scaled(wt_box_min)); res.points.push_back(scaled(Vec2f{wt_box_max[0], wt_box_min[1]})); @@ -517,10 +617,22 @@ static Polygon generate_rectange_polygon(const Vec2f &wt_box_min ,const Vec2f & return res; } +const char* flush_planner_queue_command(GCodeFlavor flavor) +{ + return flavor == gcfKlipper ? "M400\n" : "G4 S0\n"; +} + +std::string wait_command(GCodeFlavor flavor, float seconds) +{ + if (flavor == gcfKlipper) + return "G4 P" + std::to_string(std::lround(seconds * 1000.f)) + "\n"; + return "G4 S" + Slic3r::float_to_string_decimal_point(seconds, 3) + "\n"; +} + class WipeTowerWriter { public: - WipeTowerWriter(float layer_height, float line_width, GCodeFlavor flavor, const std::vector& filament_parameters) : + WipeTowerWriter(float layer_height, float line_width, GCodeFlavor flavor, const std::vector& filament_parameters, bool enable_arc_fitting) : m_current_pos(std::numeric_limits::max(), std::numeric_limits::max()), m_current_z(0.f), m_current_feedrate(0.f), @@ -528,9 +640,13 @@ public: m_extrusion_flow(0.f), m_preview_suppressed(false), m_elapsed_time(0.f), - m_gcode_flavor(flavor), - m_filpar(filament_parameters) - { +#if ENABLE_GCODE_VIEWER_DATA_CHECKING + m_default_analyzer_line_width(line_width), +#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING + m_gcode_flavor(flavor), + m_enable_arc_fitting(enable_arc_fitting), + m_filpar(filament_parameters) + { // ORCA: This class is only used by BBL printers, so set the parameter appropriately. // This fixes an issue where the wipe tower was using BBL tags resulting in statistics for purging in the purge tower not being displayed. GCodeProcessor::s_IsBBLPrinter = true; @@ -550,6 +666,18 @@ public: return *this; } +#if ENABLE_GCODE_VIEWER_DATA_CHECKING + WipeTowerWriter& change_analyzer_mm3_per_mm(float len, float e) { + static const float area = float(M_PI) * 1.75f * 1.75f / 4.f; + float mm3_per_mm = (len == 0.f ? 0.f : area * e / len); + // adds tag for processor: + std::stringstream str; + str << ";" << GCodeProcessor::Mm3_Per_Mm_Tag << mm3_per_mm << "\n"; + m_gcode += str.str(); + return *this; + } +#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING + WipeTowerWriter& set_initial_position(const Vec2f &pos, float width = 0.f, float depth = 0.f, float internal_angle = 0.f) { m_wipe_tower_width = width; m_wipe_tower_depth = depth; @@ -587,8 +715,13 @@ public: // Suppress / resume G-code preview in Slic3r. Slic3r will have difficulty to differentiate the various // filament loading and cooling moves from normal extrusion moves. Therefore the writer // is asked to suppres output of some lines, which look like extrusions. +#if ENABLE_GCODE_VIEWER_DATA_CHECKING + WipeTowerWriter& suppress_preview() { change_analyzer_line_width(0.f); m_preview_suppressed = true; return *this; } + WipeTowerWriter& resume_preview() { change_analyzer_line_width(m_default_analyzer_line_width); m_preview_suppressed = false; return *this; } +#else WipeTowerWriter& suppress_preview() { m_preview_suppressed = true; return *this; } - WipeTowerWriter& resume_preview() { m_preview_suppressed = false; return *this; } + WipeTowerWriter& resume_preview() { m_preview_suppressed = false; return *this; } +#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING WipeTowerWriter& feedrate(float f) { @@ -610,9 +743,9 @@ public: float get_and_reset_used_filament_length() { float temp = m_used_filament_length; m_used_filament_length = 0.f; return temp; } // Extrude with an explicitely provided amount of extrusion. - WipeTowerWriter& extrude_explicit(float x, float y, float e, float f = 0.f, bool record_length = false, bool limit_volumetric_flow = true) + WipeTowerWriter &extrude_explicit(float x, float y, float e, float f = 0.f, bool record_length = false ,LimitFlow limit_flow = LimitFlow::LimitPrintFlow) { - if (x == m_current_pos.x() && y == m_current_pos.y() && e == 0.f && (f == 0.f || f == m_current_feedrate)) + if ((std::abs(x - m_current_pos.x()) <= (float)EPSILON) && (std::abs(y - m_current_pos.y()) < (float)EPSILON) && e == 0.f && (f == 0.f || f == m_current_feedrate)) // Neither extrusion nor a travel move. return *this; @@ -627,9 +760,12 @@ public: Vec2f rot(this->rotate(Vec2f(x,y))); // this is where we want to go if (! m_preview_suppressed && e > 0.f && len > 0.f) { - // Width of a squished extrusion, corrected for the roundings of the squished extrusions. +#if ENABLE_GCODE_VIEWER_DATA_CHECKING + change_analyzer_mm3_per_mm(len, e); +#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING + // Width of a squished extrusion, corrected for the roundings of the squished extrusions. // This is left zero if it is a travel move. - float width = e * m_filpar[0].filament_area / (len * m_layer_height); + float width = e * m_filpar[0].filament_area / (len * m_layer_height); // Correct for the roundings of a squished extrusion. width += m_layer_height * float(1. - M_PI / 4.); if (m_extrusions.empty() || m_extrusions.back().pos != rotated_current_pos) @@ -637,6 +773,12 @@ public: m_extrusions.emplace_back(WipeTower::Extrusion(rot, width, m_current_tool)); } + if (e == 0.f) { + m_gcode += set_travel_acceleration(); + } else { + m_gcode += set_normal_acceleration(); + } + m_gcode += "G1"; if (std::abs(rot.x() - rotated_current_pos.x()) > (float)EPSILON) m_gcode += set_format_X(rot.x()); @@ -649,9 +791,12 @@ public: m_gcode += set_format_E(e); if (f != 0.f && f != m_current_feedrate) { - if (limit_volumetric_flow) { + if (limit_flow!= LimitFlow::None) { float e_speed = e / (((len == 0.f) ? std::abs(e) : len) / f * 60.f); - f /= std::max(1.f, e_speed / m_filpar[m_current_tool].max_e_speed); + float tmp = m_filpar[m_current_tool].max_e_speed; + if (limit_flow == LimitFlow::LimitRammingFlow) tmp = m_filpar[m_current_tool].max_e_ramming_speed.first; + else if (limit_flow == LimitFlow::LimitRammingFlowNC) tmp = m_filpar[m_current_tool].max_e_ramming_speed.second; + f /= std::max(1.f, e_speed / tmp); } m_gcode += set_format_F(f); } @@ -666,7 +811,7 @@ public: } // Extrude with an explicitely provided amount of extrusion. - WipeTowerWriter &extrude_arc_explicit(ArcSegment &arc, float f = 0.f, bool record_length = false, bool limit_volumetric_flow = true) + WipeTowerWriter &extrude_arc_explicit(ArcSegment &arc, float f = 0.f, bool record_length = false, LimitFlow limit_flow = LimitFlow::LimitPrintFlow) { float x = (float)unscale(arc.end_point).x(); float y = (float)unscale(arc.end_point).y(); @@ -706,6 +851,13 @@ public: } } + + if (e == 0.f) { + m_gcode += set_travel_acceleration(); + } else { + m_gcode += set_normal_acceleration(); + } + m_gcode += arc.direction == ArcDirection::Arc_Dir_CCW ? "G3" : "G2"; const Vec2f center_offset = this->rotate(unscaled(arc.center)) - rotated_current_pos; m_gcode += set_format_X(rot.x()); @@ -716,9 +868,13 @@ public: if (e != 0.f) m_gcode += set_format_E(e); if (f != 0.f && f != m_current_feedrate) { - if (limit_volumetric_flow) { + if (limit_flow != LimitFlow::None) { float e_speed = e / (((len == 0.f) ? std::abs(e) : len) / f * 60.f); - f /= std::max(1.f, e_speed / m_filpar[m_current_tool].max_e_speed); + float tmp = m_filpar[m_current_tool].max_e_speed; + if (limit_flow == LimitFlow::LimitRammingFlow) tmp = m_filpar[m_current_tool].max_e_ramming_speed.first; + else if (limit_flow == LimitFlow::LimitRammingFlowNC) + tmp = m_filpar[m_current_tool].max_e_ramming_speed.second; + f /= std::max(1.f, e_speed / tmp); } m_gcode += set_format_F(f); } @@ -732,8 +888,10 @@ public: return *this; } - WipeTowerWriter& extrude_explicit(const Vec2f &dest, float e, float f = 0.f, bool record_length = false, bool limit_volumetric_flow = true) - { return extrude_explicit(dest.x(), dest.y(), e, f, record_length); } + WipeTowerWriter &extrude_explicit(const Vec2f &dest, float e, float f = 0.f, bool record_length = false, LimitFlow limit_flow = LimitFlow::LimitPrintFlow) + { + return extrude_explicit(dest.x(), dest.y(), e, f, record_length, limit_flow); + } // Travel to a new XY position. f=0 means use the current value. WipeTowerWriter& travel(float x, float y, float f = 0.f) @@ -743,15 +901,15 @@ public: { return extrude_explicit(dest.x(), dest.y(), 0.f, f); } // Extrude a line from current position to x, y with the extrusion amount given by m_extrusion_flow. - WipeTowerWriter& extrude(float x, float y, float f = 0.f) + WipeTowerWriter &extrude(float x, float y, float f = 0.f, LimitFlow limit_flow = LimitFlow::LimitPrintFlow) { float dx = x - m_current_pos.x(); float dy = y - m_current_pos.y(); - return extrude_explicit(x, y, std::sqrt(dx*dx+dy*dy) * m_extrusion_flow, f, true); + return extrude_explicit(x, y, std::sqrt(dx * dx + dy * dy) * m_extrusion_flow, f, false, limit_flow); } - WipeTowerWriter &extrude_arc(ArcSegment &arc, float f = 0.f) + WipeTowerWriter &extrude_arc(ArcSegment &arc, float f = 0.f, LimitFlow limit_flow = LimitFlow::LimitPrintFlow) { - return extrude_arc_explicit(arc, f, true); + return extrude_arc_explicit(arc, f, false , limit_flow); } WipeTowerWriter& extrude(const Vec2f &dest, const float f = 0.f) @@ -866,7 +1024,12 @@ public: { Polyline pl = to_polyline(wall_polygon); pl.simplify(WT_SIMPLIFY_TOLERANCE_SCALED); - pl.simplify_by_fitting_arc(SCALED_WIPE_TOWER_RESOLUTION); + if (m_enable_arc_fitting) { + pl.simplify_by_fitting_arc(SCALED_WIPE_TOWER_RESOLUTION); + } else { + pl.simplify(SCALED_WIPE_TOWER_RESOLUTION); + pl.reset_to_linear_move(); + } auto get_closet_idx = [this](std::vector &corners) -> int { Vec2f anchor{this->m_current_pos.x(), this->m_current_pos.y()}; @@ -895,6 +1058,9 @@ public: } } + if (segments.empty()) + return (*this); + int index_of_closest = get_closet_idx(segments); int i = index_of_closest; travel(segments[i].start); // travel to the closest points @@ -937,7 +1103,7 @@ public: } float end_point = x() + (farthest_x > x() ? 1.f : -1.f) * x_distance; - return extrude_explicit(end_point, y(), loading_dist, x_speed * 60.f, false, false); + return extrude_explicit(end_point, y(), loading_dist, x_speed * 60.f, false, LimitFlow::None); } // Elevate the extruder head above the current print_z position. @@ -958,8 +1124,8 @@ public: // extrude quickly amount e to x2 with feed f. WipeTowerWriter& ram(float x1, float x2, float dy, float e0, float e, float f) { - extrude_explicit(x1, m_current_pos.y() + dy, e0, f, true, false); - extrude_explicit(x2, m_current_pos.y(), e, 0.f, true, false); + extrude_explicit(x1, m_current_pos.y() + dy, e0, f, true, LimitFlow::None); + extrude_explicit(x2, m_current_pos.y(), e, 0.f, true, LimitFlow::None); return *this; } @@ -968,8 +1134,8 @@ public: // at the current Y position to spread the leaking material. WipeTowerWriter& cool(float x1, float x2, float e1, float e2, float f) { - extrude_explicit(x1, m_current_pos.y(), e1, f, false, false); - extrude_explicit(x2, m_current_pos.y(), e2, false, false); + extrude_explicit(x1, m_current_pos.y(), e1, f, false, LimitFlow::None); + extrude_explicit(x2, m_current_pos.y(), e2, 0.f, false, LimitFlow::None); return *this; } @@ -991,7 +1157,7 @@ public: { if (time==0.f) return *this; - m_gcode += "G4 S" + Slic3r::float_to_string_decimal_point(time, 3) + "\n"; + m_gcode += wait_command(m_gcode_flavor, time); return *this; } @@ -1002,26 +1168,22 @@ public: return *this; } - // Let the firmware back up the active speed override value. - WipeTowerWriter& speed_override_backup() + // Let the firmware back up the active speed override value. + WipeTowerWriter& speed_override_backup() { // BBS: BBL machine don't support speed backup -#if 0 if (m_gcode_flavor == gcfMarlinLegacy || m_gcode_flavor == gcfMarlinFirmware) m_gcode += "M220 B\n"; -#endif - return *this; + return *this; } - // Let the firmware restore the active speed override value. - WipeTowerWriter& speed_override_restore() - { - // BBS: BBL machine don't support speed restore -#if 0 + // Let the firmware restore the active speed override value. + WipeTowerWriter& speed_override_restore() + { + // BBS: BBL machine don't support speed restore if (m_gcode_flavor == gcfMarlinLegacy || m_gcode_flavor == gcfMarlinFirmware) m_gcode += "M220 R\n"; -#endif - return *this; + return *this; } // Set digital trimpot motor @@ -1040,7 +1202,7 @@ public: WipeTowerWriter& flush_planner_queue() { - m_gcode += "G4 S0\n"; + m_gcode += flush_planner_queue_command(m_gcode_flavor); return *this; } @@ -1115,7 +1277,14 @@ public: } return closestIndex; }; - for (auto &pl : pls) pl.simplify_by_fitting_arc(SCALED_WIPE_TOWER_RESOLUTION); + if (m_enable_arc_fitting) { + for (auto &pl : pls) pl.simplify_by_fitting_arc(SCALED_WIPE_TOWER_RESOLUTION); + } else { + for (auto &pl : pls) { + pl.simplify(SCALED_WIPE_TOWER_RESOLUTION); + pl.reset_to_linear_move(); + } + } std::vector segments; for (const auto &pl : pls) { @@ -1131,9 +1300,11 @@ public: segments.back().is_arc = true; segments.back().arcsegment = pl.fitting_result[i].arc_data; } - } } + if (segments.empty()) + return; + int index_of_closest = get_closet_idx(segments); int i = index_of_closest; travel(segments[i].start); // travel to the closest points @@ -1158,7 +1329,7 @@ public: Vec2f box_max = center + Vec2f{step_length, step_length}; Vec2f box_min = center - Vec2f{step_length, step_length}; int n = std::ceil(edge_length / step_length / 2.f); - assert(n > 0); + if (n <= 0) return; while (n--) { travel(box_max.x(), m_current_pos.y(), feedrate); travel(m_current_pos.x(), box_max.y(), feedrate); @@ -1170,6 +1341,122 @@ public: } } + WipeTowerWriter &format_line_M104(int target_temp, int target_extruder, bool wait_for_moves = true, const std::string &comment = std::string()) + { + std::string buffer; + if (wait_for_moves) + // Not flush_planner_queue_command(): this BBL precool path wants M400, which every + // flavor it reaches understands, not the zero dwell the other flavors flush with. + buffer += "M400\n"; + buffer += "M104"; + if (target_extruder != -1) + buffer += (" T" + std::to_string(m_physical_extruder_map[target_extruder])); + buffer += " S" + std::to_string(target_temp) + " N0"; // N0 means the gcode is generated by slicer + if (!comment.empty()) buffer += " ;" + comment; + buffer += '\n'; + append(buffer); + return *this; + } + + WipeTowerWriter &format_line_M109(int target_temp, int target_extruder, const std::string &comment = std::string()) + { + std::string buffer = "M109"; + if (target_extruder != -1) + buffer += (" T" + std::to_string(m_physical_extruder_map[target_extruder])); + buffer += " S" + std::to_string(target_temp) + " N0"; // N0 means the gcode is generated by slicer + if (!comment.empty()) buffer += " ;" + comment; + buffer += '\n'; + append(buffer); + return *this; + }; + + void set_first_layer(bool is_first_layer) { m_is_first_layer = is_first_layer; } + void set_normal_acceleration(const std::vector &accelerations) { m_normal_accelerations = accelerations; }; + void set_first_layer_normal_acceleration(const std::vector &accelerations) { m_first_layer_normal_accelerations = accelerations; }; + void set_travel_acceleration(const std::vector &accelerations) { m_travel_accelerations = accelerations; }; + void set_first_layer_travel_acceleration(const std::vector &accelerations) { m_first_layer_travel_accelerations = accelerations; }; + void set_max_acceleration(unsigned int acceleration) { m_max_acceleration = acceleration; }; + void set_accel_to_decel_enable(bool enable) { m_accel_to_decel_enable = enable; } + void set_accel_to_decel_factor(float factor) { m_accel_to_decel_factor = factor; } + void set_layer_id(int layer_id) { m_layer_id = layer_id; } + void set_multi_nozzle_group_result(const MultiNozzleUtils::LayeredNozzleGroupResult *multi_nozzle_group_result) { m_multi_nozzle_group_result = multi_nozzle_group_result; } + void set_physical_extruder_map(const std::vector &physical_extruder_map) { m_physical_extruder_map = physical_extruder_map; } + +private: + std::string set_normal_acceleration() { + std::vector accelerations = m_is_first_layer ? m_first_layer_normal_accelerations : m_normal_accelerations; + if (accelerations.empty() || !m_multi_nozzle_group_result) + return std::string(); + int extruder_id = m_multi_nozzle_group_result->get_extruder_id(m_current_tool, m_layer_id); + // Orca: get_extruder_id returns -1 when the filament is not covered by the map + // (reachable with a stale manual filament map); skip instead of indexing out of bounds. + if (extruder_id < 0 || extruder_id >= (int) accelerations.size()) + return std::string(); + unsigned int acc = accelerations[extruder_id]; + return set_acceleration_impl(acc); + } + std::string set_travel_acceleration() + { + std::vector accelerations = m_is_first_layer ? m_first_layer_travel_accelerations : m_travel_accelerations; + if (accelerations.empty() || !m_multi_nozzle_group_result) + return std::string(); + int extruder_id = m_multi_nozzle_group_result->get_extruder_id(m_current_tool, m_layer_id); + // Orca: get_extruder_id returns -1 when the filament is not covered by the map + // (reachable with a stale manual filament map); skip instead of indexing out of bounds. + if (extruder_id < 0 || extruder_id >= (int) accelerations.size()) + return std::string(); + unsigned int acc = accelerations[extruder_id]; + return set_acceleration_impl(acc); + } + std::string set_acceleration_impl(unsigned int acceleration) { + // Clamp the acceleration to the allowed maximum. + if (m_max_acceleration > 0 && acceleration > m_max_acceleration) + acceleration = m_max_acceleration; + + if (acceleration == 0 || acceleration == m_last_acceleration) + return std::string(); + + m_last_acceleration = acceleration; + + std::ostringstream gcode; + if (m_gcode_flavor == gcfRepetier) { + // M201: Set max printing acceleration + gcode << "M201 X" << acceleration << " Y" << acceleration; + gcode << "\n"; + // M202: Set max travel acceleration + gcode << "M202 X" << acceleration << " Y" << acceleration; + } else if (m_gcode_flavor == gcfRepRapFirmware) { + // M204: Set default acceleration + gcode << "M204 P" << acceleration; + } else if (m_gcode_flavor == gcfMarlinFirmware) { + // This is new MarlinFirmware with separated print/retraction/travel acceleration. + // Use M204 P, we don't want to override travel acc by M204 S (which is deprecated anyway). + gcode << "M204 P" << acceleration; + } + else if (m_gcode_flavor == gcfKlipper && m_accel_to_decel_enable) { + gcode << "SET_VELOCITY_LIMIT ACCEL_TO_DECEL=" << acceleration * m_accel_to_decel_factor / 100; + gcode << "\nM204 S" << acceleration; + } + else { + // M204: Set default acceleration + gcode << "M204 S" << acceleration; + } + gcode << "\n"; + return gcode.str(); + } + std::vector m_normal_accelerations; + std::vector m_first_layer_normal_accelerations; + std::vector m_travel_accelerations; + std::vector m_first_layer_travel_accelerations; + bool m_is_first_layer{false}; + unsigned int m_max_acceleration{0}; + unsigned int m_last_acceleration{0}; + bool m_accel_to_decel_enable; + float m_accel_to_decel_factor; + const MultiNozzleUtils::LayeredNozzleGroupResult *m_multi_nozzle_group_result{nullptr}; + int m_layer_id = -1; + std::vector m_physical_extruder_map; + private: Vec2f m_start_pos; Vec2f m_current_pos; @@ -1189,8 +1476,12 @@ private: float m_wipe_tower_depth = 0.f; unsigned m_last_fan_speed = 0; int current_temp = -1; +#if ENABLE_GCODE_VIEWER_DATA_CHECKING + const float m_default_analyzer_line_width; +#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING float m_used_filament_length = 0.f; GCodeFlavor m_gcode_flavor; + bool m_enable_arc_fitting = true; const std::vector& m_filpar; std::string set_format_X(float x) @@ -1244,7 +1535,7 @@ WipeTower::ToolChangeResult WipeTower::construct_tcr(WipeTowerWriter& writer, bool is_finish, bool is_tool_change, float purge_volume, - bool is_contact) const + bool is_contact ) const { ToolChangeResult result; result.priming = priming; @@ -1261,9 +1552,8 @@ WipeTower::ToolChangeResult WipeTower::construct_tcr(WipeTowerWriter& writer, result.is_finish_first = is_finish; result.nozzle_change_result = m_nozzle_change_result; result.is_tool_change = is_tool_change; - result.is_contact = is_contact; result.tool_change_start_pos = is_tool_change ? result.start_pos : Vec2f(0, 0); - + result.is_contact = is_contact; // BBS result.purge_volume = purge_volume; return result; @@ -1285,7 +1575,6 @@ WipeTower::ToolChangeResult WipeTower::construct_block_tcr(WipeTowerWriter &writ result.wipe_path = std::move(writer.wipe_path()); result.is_finish_first = is_finish; result.is_tool_change = false; - result.is_contact = false; result.tool_change_start_pos = Vec2f(0, 0); // BBS result.purge_volume = purge_volume; @@ -1341,25 +1630,56 @@ float WipeTower::get_auto_brim_by_height(float max_height) { return 8.f; } -Vec2f WipeTower::move_box_inside_box(const BoundingBox &box1, const BoundingBox &box2,int scaled_offset) +Vec2f WipeTower::move_box_inside_polygon(const BoundingBox &box, const Polygons &polygons, coord_t offset) { - Vec2f res{0, 0}; - if (box1.size()[0] >= box2.size()[0]- 2*scaled_offset || box1.size()[1] >= box2.size()[1]-2*scaled_offset) return res; + if (polygons.empty()) return Vec2f{0.f, 0.f}; - if (box1.max[0] > box2.max[0] - scaled_offset) { - res[0] = unscaled((box2.max[0] - scaled_offset) - box1.max[0]); - } - else if (box1.min[0] < box2.min[0] + scaled_offset) { - res[0] = unscaled((box2.min[0] + scaled_offset) - box1.min[0]); + const BoundingBox bed = get_extents(polygons); + // No position fits the footprint. + if (box.size().x() >= bed.size().x() - 2 * offset || box.size().y() >= bed.size().y() - 2 * offset) + return Vec2f{0.f, 0.f}; + + // Clamp against the bounding box first, moving only along the axis that is violated so a dragged + // prime tower slides along the bed edge instead of jumping inwards. + Point shift(0, 0); + for (int axis = 0; axis < 2; ++axis) { + if (box.max[axis] > bed.max[axis] - offset) + shift[axis] = (bed.max[axis] - offset) - box.max[axis]; + else if (box.min[axis] < bed.min[axis] + offset) + shift[axis] = (bed.min[axis] + offset) - box.min[axis]; } - if (box1.max[1] > box2.max[1] - scaled_offset) { - res[1] = unscaled((box2.max[1] - scaled_offset) - box1.max[1]); + // A bed that fills its own bounding box is fully clamped by that, so every rectangular bed — all + // but the delta-style profiles — stops here and keeps its historic placement, including when a + // negative margin lets the footprint hang over the edge. The tolerance is relative because an + // exact rectangle loses a few ulps once the areas are squared world coordinates. + double area = 0.; + for (const Polygon &poly : polygons) area += std::abs(poly.area()); + const double bed_area = double(bed.size().x()) * double(bed.size().y()); + if (area >= bed_area * (1. - EPSILON)) return unscaled(shift); + + // Clamp a negative margin (an auto brim width that has not been resolved yet) to zero: padding by + // it would shrink the footprint and hand back a position the validation still rejects. The + // epsilon lets the move's round trip through millimeters land on the outline without counting as + // a violation. + BoundingBox padded = box.inflated(std::max(offset, 0) - SCALED_EPSILON); + padded.translate(shift); + auto fits = [&padded, &polygons](const Point &move) { + BoundingBox moved = padded; + moved.translate(move); + return diff(Polygons{moved.polygon()}, polygons).empty(); + }; + if (fits(Point(0, 0))) return unscaled(shift); + + // Walk towards the middle of the bed. On every non-rectangular bed we ship, the fitting positions + // form a convex region around it, so bisecting stops just inside the outline. + Point lo(0, 0), hi = bed.center() - padded.center(); + if (!fits(hi)) return unscaled(shift); + for (int i = 0; i < 12; ++i) { + const Point mid = (lo + hi) / 2; + if (fits(mid)) hi = mid; else lo = mid; } - else if (box1.min[1] < box2.min[1] + scaled_offset) { - res[1] = unscaled((box2.min[1] + scaled_offset) - box1.min[1]); - } - return res; + return unscaled(Point(shift + hi)); } Polygon WipeTower::rib_section(float width, float depth, float rib_length, float rib_width,bool fillet_wall) @@ -1480,40 +1800,43 @@ WipeTower::WipeTower(const PrintConfig& config, int plate_idx, Vec3d plate_origi m_enable_wrapping_detection(config.enable_wrapping_detection), m_wrapping_detection_layers(config.wrapping_detection_layers.value && (config.wrapping_exclude_area.values.size() > 2)), m_slice_used_filaments(slice_used_filaments.size()), - m_filaments_change_length(config.filament_change_length.values), m_is_multi_extruder(config.nozzle_diameter.size() > 1), m_use_gap_wall(config.prime_tower_skip_points.value), + // Orca: rib-wall options live under wipe_tower_* names and the wall type is an enum m_use_rib_wall(config.wipe_tower_wall_type.value == WipeTowerWallType::wtwRib), m_extra_rib_length((float)config.wipe_tower_extra_rib_length.value), m_rib_width((float)config.wipe_tower_rib_width.value), m_used_fillet(config.wipe_tower_fillet_wall.value), m_extra_spacing((float)config.prime_tower_infill_gap.value/100.f), m_tower_framework(config.prime_tower_enable_framework.value), + // Orca: prime_tower_max_speed is named wipe_tower_max_purge_speed (same default/min) + m_max_speed((float)config.wipe_tower_max_purge_speed.value*60.f), + m_accel_to_decel_enable(config.accel_to_decel_enable.value), + m_accel_to_decel_factor(config.accel_to_decel_factor.value), + m_printable_height(config.extruder_printable_height.values), m_flat_ironing(config.prime_tower_flat_ironing.value), m_enable_tower_interface_features(config.enable_tower_interface_features.value), - m_enable_tower_interface_cooldown_during_tower(config.enable_tower_interface_cooldown_during_tower.value) + m_physical_extruder_map(config.physical_extruder_map.values), + m_enable_arc_fitting(config.enable_arc_fitting.value) + // Orca: has_filament_switcher is a device-set dynamic key, not a PrintConfig member; + // it is pushed in from Print via set_has_filament_switcher() instead of read here. { + m_contact_speed = 20 * 60.f; + m_filaments_change_length.first = config.filament_change_length.values; + m_filaments_change_length.second = config.filament_change_length_nc.values; + m_hotend_heating_rate = config.hotend_heating_rate.values; + m_hotend_cooling_rate = config.hotend_cooling_rate.values; m_flat_ironing = (m_flat_ironing && m_use_gap_wall); - - // Prime-tower heating during wipe. m_is_multiple_nozzle mirrors the gate used in ToolOrdering/GCode - // (std::any_of extruder_max_nozzle_count > 1); it is false for every current printer, so the - // heating-during-wipe logic in toolchange_wipe_new is inert. - m_hotend_heating_rate = config.hotend_heating_rate.values; - m_physical_extruder_map = config.physical_extruder_map.values; - m_is_multiple_nozzle = std::any_of(config.extruder_max_nozzle_count.values.begin(), - config.extruder_max_nozzle_count.values.end(), - [](int v) { return v > 1; }); - - // Per-extruder printable-height clamp. Empty for single-extruder printers - // (extruder_printable_height = []), so is_valid_last_layer is inert there. - m_printable_height = config.extruder_printable_height.values; - m_last_layer_id.assign(config.nozzle_diameter.size(), -1); + // Orca: default/initial-layer/travel acceleration are object-scope options here (PrintConfig + // members in BBS), so Print pushes the resolved columns in via set_accelerations() instead of + // the ctor reading them from config. + m_max_accels = config.machine_max_acceleration_extruding.values.front(); // Read absolute value of first layer speed, if given as percentage, // it is taken over following default. Speeds from config are not // easily accessible here. const float default_speed = 60.f; - m_first_layer_speed = config.initial_layer_speed.get_at(get_extruder_index(config, (unsigned int)initial_tool)); + m_first_layer_speed = config.initial_layer_speed.get_at(get_extruder_index(config, (unsigned int) initial_tool)); if (m_first_layer_speed == 0.f) // just to make sure autospeed doesn't break it. m_first_layer_speed = default_speed / 2.f; @@ -1550,6 +1873,9 @@ WipeTower::WipeTower(const PrintConfig& config, int plate_idx, Vec3d plate_origi m_bed_bottom_left = m_bed_shape == RectangularBed ? Vec2f(bed_points.front().x(), bed_points.front().y()) : Vec2f::Zero(); + m_last_layer_id.resize(config.nozzle_diameter.size(), -1); + m_origin = {plate_origin[0], plate_origin[1]}; + m_is_multiple_nozzle = std::any_of(config.extruder_max_nozzle_count.values.begin(), config.extruder_max_nozzle_count.values.end(), [](auto &elem) { return elem > 1; }); } @@ -1559,31 +1885,16 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config) //while (m_filpar.size() < idx+1) // makes sure the required element is in the vector m_filpar.push_back(FilamentParameters()); - // Orca: one row per filament, indexed by the raw filament id. Under a per-layer nozzle - // grouping the per-variant arrays may hold several columns per filament; the tower has no - // layer dimension here, so it keeps the filament's first column (tower x per-layer - // grouping is a documented follow-up). m_filpar[idx].material = config.filament_type.get_at(idx); + // Orca: wipe_tower_filament (issue #10971) forces a specific filament to print the tower wall by + // marking every other filament as "soluble"; 0 keeps the plain per-filament soluble flag. m_filpar[idx].is_soluble = config.wipe_tower_filament == 0 ? config.filament_soluble.get_at(idx) : (idx != size_t(config.wipe_tower_filament - 1)); // BBS m_filpar[idx].is_support = config.filament_is_support.get_at(idx); m_filpar[idx].nozzle_temperature = config.nozzle_temperature.get_at(idx); m_filpar[idx].nozzle_temperature_initial_layer = config.nozzle_temperature_initial_layer.get_at(idx); m_filpar[idx].category = config.filament_adhesiveness_category.get_at(idx); - { - int interface_temp = config.filament_tower_interface_print_temp.get_at(idx); - if (interface_temp == -1) - interface_temp = config.nozzle_temperature_range_high.get_at(idx); - m_filpar[idx].interface_print_temperature = interface_temp; - } - m_filpar[idx].tower_interface_pre_extrusion_dist = config.filament_tower_interface_pre_extrusion_dist.get_at(idx); - m_filpar[idx].tower_interface_pre_extrusion_length = config.filament_tower_interface_pre_extrusion_length.get_at(idx); - // PETG pre-extrusion offset reuses the tower-interface pre-extrusion distance. Only read by the - // has_filament_switcher-gated PETG branch in get_next_pos (inert fleet-wide). - m_filpar[idx].petg_pre_extrusion_offset_dist = config.filament_tower_interface_pre_extrusion_dist.get_at(idx); - m_filpar[idx].tower_ironing_area = config.filament_tower_ironing_area.get_at(idx); - m_filpar[idx].tower_interface_purge_length = config.filament_tower_interface_purge_volume.get_at(idx); - m_filpar[idx].filament_cooling_before_tower = config.filament_cooling_before_tower.get_at(idx); + m_filpar[idx].flat_iron_area = config.filament_tower_ironing_area.get_at(idx); // If this is a single extruder MM printer, we will use all the SE-specific config values. // Otherwise, the defaults will be used to turn off the SE stuff. @@ -1609,14 +1920,10 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config) if (max_vol_speed!= 0.f) m_filpar[idx].max_e_speed = (max_vol_speed / filament_area()); - // Vortek H2C: carousel-specific ramming, precool, and reverse travel parameters + //set extruder change and nozzle change ramming speed { - // Ramming speed: .first = extruder change, .second = nozzle change (carousel) - // Use the dedicated ramming volumetric speed, falling back to max_vol_speed only when - // the setting is nil/-1. float ramming_vol_speed = float(config.filament_ramming_volumetric_speed.get_at(idx)); - if (config.filament_ramming_volumetric_speed.is_nil(idx) || is_approx(config.filament_ramming_volumetric_speed.get_at(idx), -1.)) - ramming_vol_speed = max_vol_speed; + if (config.filament_ramming_volumetric_speed.is_nil(idx) || is_approx(config.filament_ramming_volumetric_speed.get_at(idx), -1.)) ramming_vol_speed = max_vol_speed; m_filpar[idx].max_e_ramming_speed.first = (ramming_vol_speed / filament_area()); float ramming_vol_speed_nc = float(config.filament_ramming_volumetric_speed_nc.get_at(idx)); @@ -1624,51 +1931,57 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config) ramming_vol_speed_nc = max_vol_speed; m_filpar[idx].max_e_ramming_speed.second = (ramming_vol_speed_nc / filament_area()); } - { - // Precool target temp: .first = extruder change, .second = nozzle change (carousel) - // Precool is only active when enable_pre_heating is on; otherwise no precool temp/timing is - // applied and the downstream precool_t stays 0, matching printers with pre-heating disabled. - m_filpar[idx].precool_target_temp = {0, 0}; - if (config.enable_pre_heating.value) { - if (!config.filament_pre_cooling_temperature.is_nil(idx) && config.filament_pre_cooling_temperature.get_at(idx) != 0) - m_filpar[idx].precool_target_temp.first = config.filament_pre_cooling_temperature.get_at(idx); - if (!config.filament_pre_cooling_temperature_nc.is_nil(idx) && config.filament_pre_cooling_temperature_nc.get_at(idx) != 0) - m_filpar[idx].precool_target_temp.second = config.filament_pre_cooling_temperature_nc.get_at(idx); - } - } - { - // Precool timing: (nozzle_temp - precool_temp) / hotend_cooling_rate - int extruder_count = m_is_multi_extruder ? 2 : 1; // H2C = 2 extruders - float nozzle_temp = float(config.nozzle_temperature.is_nil(idx) ? 0 : config.nozzle_temperature.get_at(idx)); - float nozzle_temp_fl = float(config.nozzle_temperature_initial_layer.is_nil(idx) ? nozzle_temp : config.nozzle_temperature_initial_layer.get_at(idx)); - m_filpar[idx].precool_t.first.resize(extruder_count, 0.f); - m_filpar[idx].precool_t.second.resize(extruder_count, 0.f); - m_filpar[idx].precool_t_first_layer.first.resize(extruder_count, 0.f); - m_filpar[idx].precool_t_first_layer.second.resize(extruder_count, 0.f); - std::vector cooling_rates = config.hotend_cooling_rate.values; - for (int i = 0; i < extruder_count && i < (int)cooling_rates.size(); i++) { - if (cooling_rates[i] < EPSILON) continue; - if (m_filpar[idx].precool_target_temp.first != 0) { - m_filpar[idx].precool_t.first[i] = std::max(0.f, nozzle_temp - float(m_filpar[idx].precool_target_temp.first)) / float(cooling_rates[i]); - m_filpar[idx].precool_t_first_layer.first[i] = std::max(0.f, nozzle_temp_fl - float(m_filpar[idx].precool_target_temp.first)) / float(cooling_rates[i]); - } - if (m_filpar[idx].precool_target_temp.second != 0) { - m_filpar[idx].precool_t.second[i] = std::max(0.f, nozzle_temp - float(m_filpar[idx].precool_target_temp.second)) / float(cooling_rates[i]); - m_filpar[idx].precool_t_first_layer.second[i] = std::max(0.f, nozzle_temp_fl - float(m_filpar[idx].precool_target_temp.second)) / float(cooling_rates[i]); - } - } - } - { - // Ramming travel time: .first = extruder change, .second = nozzle change (carousel) - m_filpar[idx].ramming_travel_time = {0.f, 0.f}; - if (!config.filament_ramming_travel_time.is_nil(idx)) - m_filpar[idx].ramming_travel_time.first = float(config.filament_ramming_travel_time.get_at(idx)); - if (!config.filament_ramming_travel_time_nc.is_nil(idx)) - m_filpar[idx].ramming_travel_time.second = float(config.filament_ramming_travel_time_nc.get_at(idx)); - } + //set precooling time/precooling target temp during extruder change and nozzle change + { + int extruder_count = m_multi_nozzle_group_result->get_extruder_count(); + m_filpar[idx].precool_t.first.resize(extruder_count, 0.f); + m_filpar[idx].precool_t_first_layer.first.resize(extruder_count, 0.f); + m_filpar[idx].precool_t.second.resize(extruder_count, 0.f); + m_filpar[idx].precool_t_first_layer.second.resize(extruder_count, 0.f); + m_filpar[idx].precool_target_temp.first = 0; + m_filpar[idx].precool_target_temp.second = 0; + float nozzle_temp_first_layer = config.nozzle_temperature_initial_layer.is_nil(idx) ? -1.f : float(config.nozzle_temperature_initial_layer.get_at(idx)); + float nozzle_temp_other_layer = config.nozzle_temperature.is_nil(idx) ? -1.f : float(config.nozzle_temperature.get_at(idx)); + std::vector hotend_cooling_rates = config.hotend_cooling_rate.values; + auto is_need_precooling = [&](bool extruder_change) -> bool + { + bool res = config.enable_pre_heating.value; + if (extruder_change) return res &&!config.filament_pre_cooling_temperature.is_nil(idx) && config.filament_pre_cooling_temperature.get_at(idx) != 0; + return res &&!config.filament_pre_cooling_temperature_nc.is_nil(idx) && config.filament_pre_cooling_temperature_nc.get_at(idx) != 0; + }; + if (is_need_precooling(true)) { + for (int i = 0; i < m_filpar[idx].precool_t.first.size(); i++) { + if (config.hotend_cooling_rate.is_nil(i)) continue; + m_filpar[idx].precool_t.first[i] = std::max(0.f, nozzle_temp_other_layer - float(config.filament_pre_cooling_temperature.get_at(idx))) / float(hotend_cooling_rates[i]); + m_filpar[idx].precool_t_first_layer.first[i] = std::max(0.f, nozzle_temp_first_layer -float(config.filament_pre_cooling_temperature.get_at(idx))) /float(hotend_cooling_rates[i]); + } + m_filpar[idx].precool_target_temp.first = config.filament_pre_cooling_temperature.get_at(idx); + } + + if (is_need_precooling(false)) { + for (int i = 0; i < m_filpar[idx].precool_t.second.size(); i++) { + if (config.hotend_cooling_rate.is_nil(i)) continue; + m_filpar[idx].precool_t.second[i] = std::max(0.f, nozzle_temp_other_layer - float(config.filament_pre_cooling_temperature_nc.get_at(idx))) / float(hotend_cooling_rates[i]); + m_filpar[idx].precool_t_first_layer.second[i] = std::max(0.f, nozzle_temp_first_layer -float(config.filament_pre_cooling_temperature_nc.get_at(idx))) /float(hotend_cooling_rates[i]); + } + m_filpar[idx].precool_target_temp.second = config.filament_pre_cooling_temperature_nc.get_at(idx); + } + + } + //set ramming reverse travel time during extruder change and nozzle change + { + m_filpar[idx].ramming_travel_time = {0, 0}; + if (!config.filament_ramming_travel_time.is_nil(idx)) m_filpar[idx].ramming_travel_time.first = float(config.filament_ramming_travel_time.get_at(idx)); + if (!config.filament_ramming_travel_time_nc.is_nil(idx)) m_filpar[idx].ramming_travel_time.second = float(config.filament_ramming_travel_time_nc.get_at(idx)); + } m_perimeter_width = nozzle_diameter * Width_To_Nozzle_Ratio; // all extruders are now assumed to have the same diameter - m_nozzle_change_perimeter_width = 2*m_perimeter_width; + // Orca: custom presets may use nozzle diameters outside the BBS table; fall back to the + // previous 2*perimeter_width rule (identical to the table for 0.4) instead of throwing. + { + auto nc_width_it = nozzle_diameter_to_nozzle_change_width.find(nozzle_diameter); + m_nozzle_change_perimeter_width = nc_width_it != nozzle_diameter_to_nozzle_change_width.end() ? nc_width_it->second : 2.f * m_perimeter_width; + } // BBS: remove useless config #if 0 if (m_semm) { @@ -1687,6 +2000,18 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config) m_filpar[idx].retract_length = config.retraction_length.get_at(idx); m_filpar[idx].retract_speed = config.retraction_speed.get_at(idx); m_filpar[idx].wipe_dist = config.wipe_distance.get_at(idx); + m_filpar[idx].filament_cooling_before_tower = config.filament_cooling_before_tower.get_at(idx); + m_filpar[idx].filament_petg_pre_extrusion_offset_dist = config.filament_tower_interface_pre_extrusion_dist.get_at(idx); + if (config.enable_tower_interface_features.value) { + m_filpar[idx].filament_tower_interface_print_temp = config.filament_tower_interface_print_temp.get_at(idx) == -1 ? config.nozzle_temperature_range_high.get_at(idx) : + config.filament_tower_interface_print_temp.get_at(idx); + m_filpar[idx].filament_tower_interface_pre_extrusion_dist = config.filament_tower_interface_pre_extrusion_dist.get_at(idx); + m_filpar[idx].filament_tower_interface_pre_extrusion_length = config.filament_tower_interface_pre_extrusion_length.get_at(idx); + } else { + m_filpar[idx].filament_tower_interface_print_temp = config.nozzle_temperature.get_at(idx); + m_filpar[idx].filament_tower_interface_pre_extrusion_dist = 0.f; + m_filpar[idx].filament_tower_interface_pre_extrusion_length = 0.f; + } } @@ -1704,13 +2029,13 @@ std::vector WipeTower::prime( return std::vector(); } -Vec2f WipeTower::get_next_pos(const WipeTower::box_coordinates &cleaning_box, float wipe_length, bool interface_layer, size_t interface_tool) +Vec2f WipeTower::get_next_pos(const WipeTower::box_coordinates &cleaning_box, float wipe_length, bool solid_toolchange) { const float &xl = cleaning_box.ld.x(); const float &xr = cleaning_box.rd.x(); int line_count = wipe_length / (xr - xl); - float dy = m_layer_info->extra_spacing * m_perimeter_width; + float dy = m_layer_info->extra_spacing * get_block_gap_width(m_current_tool,false); float y_offset = float(line_count) * dy; const Vec2f pos_offset = Vec2f(0.f, m_depth_traversed); @@ -1733,23 +2058,20 @@ Vec2f WipeTower::get_next_pos(const WipeTower::box_coordinates &cleaning_box, fl break; default: break; } - // Shift the wipe start outward for a PETG pre-extrusion on filament-switcher devices, clamped to the - // shared printable bed. Gated on m_has_filament_switcher, which is false for the whole shipping fleet - // (no profile sets the key), so is_petg_pre_extrusion is always false and res is returned unchanged. - // The tower-interface contact branch is deliberately NOT applied here (enable_tower_interface_features - // DOES ship on H2C/X2D; applying it would change their g-code); is_contact_pre_extrusion is computed - // only as the guard that gives the contact path priority over PETG. - bool is_contact_pre_extrusion = interface_layer && m_enable_tower_interface_features; - bool is_petg_pre_extrusion = !is_contact_pre_extrusion && is_petg_filament(m_current_tool) && m_has_filament_switcher; - if (is_petg_pre_extrusion) { - Vec2f stop_pos = res; - float offset_dist = m_filpar[m_current_tool].petg_pre_extrusion_offset_dist; - auto printer_bbx = unscaled(get_extents(m_shared_print_bed)); // BoundingBoxBase - printer_bbx.translate((-m_wipe_tower_pos - m_rib_offset).cast()); + bool is_contact_pre_extrusion = solid_toolchange && m_enable_tower_interface_features; + bool is_petg_pre_extrusion = !is_contact_pre_extrusion && is_petg_filament(m_current_tool) && m_has_filament_switcher; + if (is_contact_pre_extrusion || is_petg_pre_extrusion) { + Vec2f stop_pos = res; + float filament_tower_interface_pre_extrusion_dist = is_petg_pre_extrusion + ? m_filpar[m_current_tool].filament_petg_pre_extrusion_offset_dist + : m_filpar[m_current_tool].filament_tower_interface_pre_extrusion_dist; + // Orca: unscaled(BoundingBox) here is a template returning BoundingBoxBase, not BoundingBoxf + auto printer_bbx = unscaled(get_extents(m_shared_print_bed)); + printer_bbx.translate((-m_wipe_tower_pos - m_rib_offset).cast()); // first layer never be contact if (stop_pos.x() < m_wipe_tower_width / 2.f) - stop_pos = Vec2f(stop_pos.x() - offset_dist, stop_pos.y()); + stop_pos = Vec2f(stop_pos.x() - filament_tower_interface_pre_extrusion_dist, stop_pos.y()); else - stop_pos = Vec2f(stop_pos.x() + offset_dist, stop_pos.y()); + stop_pos = Vec2f(stop_pos.x() + filament_tower_interface_pre_extrusion_dist, stop_pos.y()); if (stop_pos.x() < printer_bbx.min[0]) stop_pos.x() = printer_bbx.min[0]; if (stop_pos.x() > printer_bbx.max[0]) stop_pos.x() = printer_bbx.max[0]; res = stop_pos; @@ -1759,10 +2081,11 @@ Vec2f WipeTower::get_next_pos(const WipeTower::box_coordinates &cleaning_box, fl WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_perimeter, bool first_toolchange_to_nonsoluble) { - m_nozzle_change_result.gcode.clear(); - if (!m_filament_map.empty() && tool < m_filament_map.size() && m_filament_map[m_current_tool] != m_filament_map[tool]) { - m_nozzle_change_result = nozzle_change(m_current_tool, tool); - } + //only for tool = unsigned (-1) ,never get here + //m_nozzle_change_result.gcode.clear(); + //if (!m_filament_map.empty() && tool < m_filament_map.size() && m_filament_map[m_current_tool] != m_filament_map[tool]) { + // m_nozzle_change_result = nozzle_change(m_current_tool, tool); + //} size_t old_tool = m_current_tool; @@ -1792,7 +2115,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per (tool != (unsigned int)(-1) ? wipe_depth + m_depth_traversed - m_perimeter_width : m_wipe_tower_depth - m_perimeter_width)); - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) @@ -1801,13 +2124,14 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per "; CP TOOLCHANGE START\n") .comment_with_value(" toolchange #", m_num_tool_changes + 1); // the number is zero-based + set_for_wipe_tower_writer(writer); if (tool != (unsigned)(-1)) writer.append(std::string("; material : " + (m_current_tool < m_filpar.size() ? m_filpar[m_current_tool].material : "(NONE)") + " -> " + m_filpar[tool].material + "\n").c_str()) .append(";--------------------\n"); writer.speed_override_backup(); - writer.speed_override(100); + writer.speed_override(100); float feedrate = is_first_layer() ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, 5400.f); @@ -1857,7 +2181,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per } } - Vec2f initial_position = get_next_pos(cleaning_box, wipe_length, false, tool); + Vec2f initial_position = get_next_pos(cleaning_box, wipe_length,false); writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); if (extrude_perimeter) { @@ -1901,7 +2225,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per //BBS //if (m_set_extruder_trimpot) // writer.set_extruder_trimpot(550); // Reset the extruder current to a normal value. - writer.speed_override_restore(); + writer.speed_override_restore(); writer.feedrate(m_travel_speed * 60.f) .flush_planner_queue() .reset_extruder() @@ -1913,9 +2237,9 @@ WipeTower::ToolChangeResult WipeTower::tool_change(size_t tool, bool extrude_per if (m_current_tool < m_used_filament_length.size()) m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); - return construct_tcr(writer, false, old_tool, false, true, purge_volume, false); + return construct_tcr(writer, false, old_tool, false, true, purge_volume,false); } - +#if 0 WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int new_filament_id) { float wipe_depth = 0.f; @@ -1940,18 +2264,27 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int // Otherwise we are going to Unload only. And m_layer_info would be invalid. } + auto format_nozzle_change_line = [](bool start, int old_filament_id, int new_filament_id)->std::string { + char buff[64]; + std::string tag = start ? GCodeProcessor::reserved_tag(GCodeProcessor::ETags::NozzleChangeStart) : GCodeProcessor::reserved_tag(GCodeProcessor::ETags::NozzleChangeEnd); + snprintf(buff, sizeof(buff), ";%s OF%d NF%d\n", tag.c_str(), old_filament_id, new_filament_id); + return std::string(buff); + }; + float nozzle_change_speed = 60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow; if (is_tpu_filament(m_current_tool)) { nozzle_change_speed *= 0.25; } - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) .set_extrusion_flow(m_extrusion_flow) .set_y_shift(m_y_shift + (new_filament_id != (unsigned int) (-1) && (m_current_shape == SHAPE_REVERSED) ? m_layer_info->depth - m_layer_info->toolchanges_depth() : 0.f)) - .append(format_nozzle_change_tag(true, old_filament_id, new_filament_id)); + .append(format_nozzle_change_line(true,old_filament_id,new_filament_id)); + + set_for_wipe_tower_writer(writer); box_coordinates cleaning_box(Vec2f(m_perimeter_width, m_perimeter_width), m_wipe_tower_width - 2 * m_perimeter_width, (new_filament_id != (unsigned int) (-1) ? wipe_depth + m_depth_traversed - m_perimeter_width : m_wipe_tower_depth - m_perimeter_width)); @@ -2027,14 +2360,14 @@ WipeTower::NozzleChangeResult WipeTower::nozzle_change(int old_filament_id, int } } - writer.append(format_nozzle_change_tag(false, old_filament_id, new_filament_id)); + writer.append(format_nozzle_change_line(false, old_filament_id, new_filament_id)); result.start_pos = writer.start_pos_rotated(); result.end_pos = writer.pos(); - result.gcode = std::move(writer.gcode()); + result.gcode = writer.gcode(); return result; } - +#endif // Ram the hot material out of the melt zone, retract the filament into the cooling tubes and let it cool. void WipeTower::toolchange_Unload( WipeTowerWriter &writer, @@ -2248,12 +2581,12 @@ void WipeTower::toolchange_Wipe( float wipe_length) { // Increase flow on first layer, slow down print. - writer.set_extrusion_flow(m_extrusion_flow * (is_first_layer() ? 1.15f : 1.f)) + writer.set_extrusion_flow(m_extrusion_flow * (is_first_layer() ? m_first_layer_flow_ratio : 1.f)) .append("; CP TOOLCHANGE WIPE\n"); // BBS: add the note for gcode-check, when the flow changed, the width should follow the change if (is_first_layer()) { - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Width) + std::to_string(1.15 * m_perimeter_width) + "\n"); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Width) + std::to_string(m_first_layer_flow_ratio * m_perimeter_width) + "\n"); } const float& xl = cleaning_box.ld.x(); @@ -2287,7 +2620,7 @@ void WipeTower::toolchange_Wipe( if (m_depth_traversed != 0) writer.travel(xl, writer.y() + dy); #endif - + bool need_change_flow = false; // now the wiping itself: for (int i = 0; true; ++i) { @@ -2382,6 +2715,21 @@ WipeTower::box_coordinates WipeTower::align_perimeter(const WipeTower::box_coord return aligned_box; } +void WipeTower::set_for_wipe_tower_writer(WipeTowerWriter &writer) +{ + writer.set_normal_acceleration(m_normal_accels); + writer.set_travel_acceleration(m_travel_accels); + writer.set_first_layer_normal_acceleration(m_first_layer_normal_accels); + writer.set_first_layer_travel_acceleration(m_first_layer_travel_accels); + writer.set_max_acceleration(m_max_accels); + writer.set_multi_nozzle_group_result(m_multi_nozzle_group_result); + writer.set_accel_to_decel_enable(m_accel_to_decel_enable); + writer.set_accel_to_decel_factor(m_accel_to_decel_factor); + writer.set_first_layer(m_cur_layer_id == 0); + writer.set_layer_id(m_cur_layer_id); + writer.set_physical_extruder_map(m_physical_extruder_map); +} +#if 0 WipeTower::ToolChangeResult WipeTower::finish_layer(bool extrude_perimeter, bool extruder_fill) { assert(! this->layer_finished()); @@ -2389,20 +2737,20 @@ WipeTower::ToolChangeResult WipeTower::finish_layer(bool extrude_perimeter, bool size_t old_tool = m_current_tool; - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED ? m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start) + "\n"); // Slow down on the 1st layer. bool first_layer = is_first_layer(); // BBS: speed up perimeter speed to 90mm/s for non-first layer float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, 5400.f); - if (m_enable_tower_interface_features && m_prev_layer_had_interface) - feedrate = std::min(feedrate, 20.f * 60.f); float fill_box_y = m_layer_info->toolchanges_depth() + m_perimeter_width; box_coordinates fill_box(Vec2f(m_perimeter_width, fill_box_y), m_wipe_tower_width - 2 * m_perimeter_width, m_layer_info->depth - fill_box_y); @@ -2545,12 +2893,40 @@ WipeTower::ToolChangeResult WipeTower::finish_layer(bool extrude_perimeter, bool if (m_current_tool < m_used_filament_length.size()) m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); - return construct_tcr(writer, false, old_tool, true, false, 0.f, false); + return construct_tcr(writer, false, old_tool, true, false, 0.f,false); +} +#endif +WipeTower::WipeTowerInfo::ToolChange WipeTower::set_toolchange(int old_tool, int new_tool, float layer_height, float wipe_volume, float purge_volume,int layer_id) +{ + float depth = 0.f; + float width = m_wipe_tower_width - 2 * m_perimeter_width; + float nozzle_change_width = m_wipe_tower_width - (m_nozzle_change_perimeter_width + m_perimeter_width); + float length_to_extrude = volume_to_length(wipe_volume, m_perimeter_width, layer_height); + float toolchange_gap_width = get_block_gap_width(new_tool,false); + float nozzlechange_gap_width = get_block_gap_width(old_tool,true); + float filament_change_length = !is_same_extruder(old_tool, new_tool, layer_id) ? m_filaments_change_length.first[old_tool] : m_filaments_change_length.second[old_tool]; + depth += std::ceil(length_to_extrude / width) * toolchange_gap_width; + // depth *= m_extra_spacing; + + float nozzle_change_depth = 0; + float nozzle_change_length = 0; + if (is_need_ramming(old_tool, new_tool, layer_id)) { + double e_flow = nozzle_change_extrusion_flow(layer_height); + double length = filament_change_length / e_flow; + int nozzle_change_line_count = std::ceil(length / nozzle_change_width); + nozzle_change_depth = nozzle_change_line_count * nozzlechange_gap_width; + depth += nozzle_change_depth; + nozzle_change_length = length; + } + WipeTowerInfo::ToolChange tool_change = WipeTowerInfo::ToolChange(old_tool, new_tool, depth, 0.f, 0.f, wipe_volume, length_to_extrude, purge_volume); + tool_change.nozzle_change_depth = nozzle_change_depth; + tool_change.nozzle_change_length = nozzle_change_length; + return tool_change; } // Appends a toolchange into m_plan and calculates neccessary depth of the corresponding box void WipeTower::plan_toolchange(float z_par, float layer_height_par, unsigned int old_tool, - unsigned int new_tool, float wipe_volume, float purge_volume) + unsigned int new_tool, float wipe_volume_ec,float wipe_volume_nc,float purge_volume) { assert(m_plan.empty() || m_plan.back().z <= z_par + WT_EPSILON); // refuses to add a layer below the last one @@ -2570,7 +2946,8 @@ void WipeTower::plan_toolchange(float z_par, float layer_height_par, unsigned in // BBS: if the wipe tower width is too small, the depth will be infinity if (width <= EPSILON) return; - + int layer_id = static_cast(m_plan.size()) - 1; + float wipe_volume = is_same_extruder(old_tool, new_tool, layer_id) && !is_same_nozzle(old_tool, new_tool, layer_id) ? wipe_volume_nc : wipe_volume_ec; // BBS: remove old filament ramming and first line #if 0 float length_to_extrude = volume_to_length(0.25f * std::accumulate(m_filpar[old_tool].ramming_speed.begin(), m_filpar[old_tool].ramming_speed.end(), 0.f), @@ -2592,39 +2969,24 @@ void WipeTower::plan_toolchange(float z_par, float layer_height_par, unsigned in depth += std::ceil(length_to_extrude / width) * m_perimeter_width; //depth *= m_extra_spacing; - + float filament_change_length = !is_same_extruder(old_tool, new_tool, layer_id) ? m_filaments_change_length.first[old_tool] : m_filaments_change_length.second[old_tool]; float nozzle_change_depth = 0; - if (!m_filament_map.empty() && m_filament_map[old_tool] != m_filament_map[new_tool]) { + float nozzle_change_length = 0; + if (is_need_ramming(old_tool, new_tool, layer_id)) { double e_flow = nozzle_change_extrusion_flow(layer_height_par); - double length = m_filaments_change_length[old_tool] / e_flow; - int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1; - if (has_tpu_filament()) - nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width; - else - nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width; - depth += nozzle_change_depth; - } - if (nozzle_change_depth == 0 - && !m_filament_nozzle_map.empty() - && old_tool < m_filament_nozzle_map.size() && new_tool < m_filament_nozzle_map.size() - && m_filament_nozzle_map[old_tool] != m_filament_nozzle_map[new_tool]) { - double e_flow = nozzle_change_extrusion_flow(layer_height_par); - double length = m_filaments_change_length[old_tool] / e_flow; - int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1; - if (has_tpu_filament()) - nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width; - else - nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width; + double length = filament_change_length / e_flow; + int nozzle_change_line_count = std::ceil(length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width)); + nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width; depth += nozzle_change_depth; + nozzle_change_length = length; } WipeTowerInfo::ToolChange tool_change = WipeTowerInfo::ToolChange(old_tool, new_tool, depth, 0.f, 0.f, wipe_volume, length_to_extrude, purge_volume); tool_change.nozzle_change_depth = nozzle_change_depth; + tool_change.nozzle_change_length = nozzle_change_length; m_plan.back().tool_changes.push_back(tool_change); #endif } - - - +#if 0 void WipeTower::plan_tower() { // BBS @@ -2755,7 +3117,7 @@ void WipeTower::save_on_last_wipe() } } } - +#endif bool WipeTower::is_tpu_filament(int filament_id) const { return m_filpar[filament_id].material == "TPU"; @@ -2766,11 +3128,11 @@ bool WipeTower::is_petg_filament(int filament_id) const return m_filpar[filament_id].material == "PETG"; } -bool WipeTower::is_need_reverse_travel(int filament_id, bool extruder_change) const +bool WipeTower::is_need_reverse_travel(int filament_id,bool extruder_change) const { if (extruder_change) - return m_filpar[filament_id].ramming_travel_time.first > EPSILON; - return m_filpar[filament_id].ramming_travel_time.second > EPSILON; + return m_filpar[filament_id].ramming_travel_time.first > EPSILON && m_filaments_change_length.first[filament_id]>EPSILON; + return m_filpar[filament_id].ramming_travel_time.second > EPSILON && m_filaments_change_length.second[filament_id] > EPSILON; } // BBS: consider both soluable and support properties @@ -2785,15 +3147,13 @@ int WipeTower::first_toolchange_to_nonsoluble_nonsupport( return -1; } -static WipeTower::ToolChangeResult merge_tcr(WipeTower::ToolChangeResult& first, - WipeTower::ToolChangeResult& second) +WipeTower::ToolChangeResult WipeTower::merge_tcr(ToolChangeResult &first, ToolChangeResult &second) { assert(first.new_tool == second.initial_tool); WipeTower::ToolChangeResult out = first; - out.is_contact = first.is_contact || second.is_contact; if ((first.end_pos - second.start_pos).norm() > (float)EPSILON) { std::string travel_gcode = "G1 X" + Slic3r::float_to_string_decimal_point(second.start_pos.x(), 3) + " Y" + - Slic3r::float_to_string_decimal_point(second.start_pos.y(), 3) + " F5400" + "\n"; + Slic3r::float_to_string_decimal_point(second.start_pos.y(), 3) + " F" + std::to_string(m_max_speed) + "\n"; bool need_insert_travel = true; if (second.is_tool_change && is_approx(second.start_pos.x(), second.tool_change_start_pos.x()) @@ -2811,7 +3171,7 @@ static WipeTower::ToolChangeResult merge_tcr(WipeTower::ToolChangeResult& first, out.wipe_path = second.wipe_path; out.initial_tool = first.initial_tool; out.new_tool = second.new_tool; - + out.is_contact = first.is_contact || second.is_contact; if (!first.nozzle_change_result.gcode.empty()) out.nozzle_change_result = first.nozzle_change_result; else if (!second.nozzle_change_result.gcode.empty()) @@ -2834,75 +3194,108 @@ static WipeTower::ToolChangeResult merge_tcr(WipeTower::ToolChangeResult& first, return out; } -void WipeTower::get_wall_skip_points(const WipeTowerInfo &layer) -{ +void WipeTower::get_all_wall_skip_points() { m_wall_skip_points.clear(); + m_wall_skip_points.resize(m_plan.size()); + for (int i = 0; i < m_plan.size(); i++) { + const WipeTowerInfo &layer = m_plan[i]; + get_wall_skip_points(m_plan[i],i); + } +} + + +void WipeTower::get_wall_skip_points(const WipeTowerInfo &layer, int layer_id) +{ + const int pre_access_layer = 4; std::unordered_map cur_block_depth; for (int i = 0; i < int(layer.tool_changes.size()); ++i) { const WipeTowerInfo::ToolChange &tool_change = layer.tool_changes[i]; size_t old_filament = tool_change.old_tool; size_t new_filament = tool_change.new_tool; - float spacing = m_layer_info->extra_spacing; - if (has_tpu_filament() && m_layer_info->extra_spacing < m_tpu_fixed_spacing) spacing = 1; - float nozzle_change_depth = tool_change.nozzle_change_depth * spacing; - // Drop the nozzle-change depth on an extruder's final layer above its printable height - // (inert unless is_valid_last_layer clamps, i.e. multi-extruder near Z-max). - if (!is_valid_last_layer(old_filament, m_cur_layer_id, layer.z)) nozzle_change_depth = 0.f; - //float nozzle_change_depth = tool_change.nozzle_change_depth * (has_tpu_filament() ? m_tpu_fixed_spacing : layer.extra_spacing); - auto* block = get_block_by_category(m_filpar[new_filament].category, false); - if (!block) - continue; - //float wipe_depth = tool_change.required_depth - nozzle_change_depth; - float wipe_depth = ceil(tool_change.wipe_length / (m_wipe_tower_width - 2 * m_perimeter_width)) * m_perimeter_width*layer.extra_spacing; - float process_depth = 0.f; - if (!cur_block_depth.count(m_filpar[new_filament].category)) - cur_block_depth[m_filpar[new_filament].category] = block->start_depth; + float nozzle_change_depth = tool_change.nozzle_change_depth; + float wipe_depth = tool_change.required_depth - nozzle_change_depth; + if (!is_valid_last_layer(old_filament, layer_id, m_plan[layer_id].z)) nozzle_change_depth = 0.f; + auto *block = get_block_by_category(m_filpar[new_filament].category, false); + if (!block) continue; + float process_depth = 0.f; + if (!cur_block_depth.count(m_filpar[new_filament].category)) cur_block_depth[m_filpar[new_filament].category] = block->start_depth; process_depth = cur_block_depth[m_filpar[new_filament].category]; - if (!m_filament_map.empty() && new_filament < m_filament_map.size() && m_filament_map[old_filament] != m_filament_map[new_filament]) { + if (is_need_ramming(new_filament, old_filament, layer_id)) { if (m_filament_categories[new_filament] == m_filament_categories[old_filament]) process_depth += nozzle_change_depth; else { if (!cur_block_depth.count(m_filpar[old_filament].category)) { - auto* old_block = get_block_by_category(m_filpar[old_filament].category, false); - if (!old_block) - continue; + auto *old_block = get_block_by_category(m_filpar[old_filament].category, false); + if (!old_block) continue; cur_block_depth[m_filpar[old_filament].category] = old_block->start_depth; } cur_block_depth[m_filpar[old_filament].category] += nozzle_change_depth; } } - { - Vec2f res; - int index = m_cur_layer_id % 4; - switch (index % 4) { - case 0: res = Vec2f(0, process_depth); break; - case 1: res = Vec2f(m_wipe_tower_width, process_depth + wipe_depth - layer.extra_spacing*m_perimeter_width); break; - case 2: res = Vec2f(m_wipe_tower_width, process_depth); break; - case 3: res = Vec2f(0, process_depth + wipe_depth - layer.extra_spacing * m_perimeter_width); break; - default: break; - } - m_wall_skip_points.emplace_back(res); + float infill_gap_width = get_block_gap_width(new_filament, false); + Vec2f res; + int index = layer_id % 4; + switch (index % 4) { + case 0: res = Vec2f(0, process_depth); break; + case 1: res = Vec2f(m_wipe_tower_width, process_depth + wipe_depth - m_plan[layer_id].extra_spacing * infill_gap_width); break; + case 2: res = Vec2f(m_wipe_tower_width, process_depth); break; + case 3: res = Vec2f(0, process_depth + wipe_depth - m_plan[layer_id].extra_spacing * infill_gap_width); break; + default: break; + } + + m_wall_skip_points[layer_id].emplace_back(res); + + cur_block_depth[m_filpar[new_filament].category] = process_depth + wipe_depth; + + bool solid_toolchange = block->layers_type[layer_id] == WipeTowerLayerType::Contact; + if (solid_toolchange && m_enable_tower_interface_features) { + for (int j = 0; j < pre_access_layer; j++) { + int pre_layer_id = layer_id - j; + if (pre_layer_id < 0) break; + m_wall_skip_points[pre_layer_id].push_back(res); + } } - cur_block_depth[m_filpar[new_filament].category] = process_depth + tool_change.required_depth - tool_change.nozzle_change_depth * layer.extra_spacing; } + if (m_enable_tower_interface_features) { + for (auto &block : m_wipe_tower_blocks) { + float block_depth = cur_block_depth.count(block.filament_adhesiveness_category) ? cur_block_depth[block.filament_adhesiveness_category] : block.start_depth; + if (block_depth + EPSILON >= block.start_depth + block.layer_depths[layer_id] - m_perimeter_width) { continue; } + bool block_solid = block.layers_type[layer_id] == WipeTowerLayerType::Contact; + bool add_skip_point = block_solid && std::abs(block_depth - block.start_depth) < EPSILON; + if (add_skip_point) { + Vec2f res; + int index = layer_id % 4; + + float dy_skip = block.layer_depths[layer_id] - m_perimeter_width; + int n_skip = (int) ((dy_skip + 0.25f * m_perimeter_width) / m_perimeter_width + 1); + float gird_depth = m_perimeter_width * (n_skip - 1); // in sync with finish_block_solid + switch (index % 4) { + case 0: res = Vec2f(0, block_depth); break; + case 1: res = Vec2f(m_wipe_tower_width, block_depth + gird_depth); break; + case 2: res = Vec2f(m_wipe_tower_width, block_depth); break; + case 3: res = Vec2f(0, block_depth + gird_depth); break; + default: break; + } + m_wall_skip_points[layer_id].emplace_back(res); + for (int j = 0; j < pre_access_layer; j++) { + int pre_layer_id = layer_id - j; + if (pre_layer_id < 0) break; + m_wall_skip_points[pre_layer_id].push_back(res); + } + } + } } +} WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool solid_toolchange,bool solid_nozzlechange) { m_nozzle_change_result.gcode.clear(); - // Skip the cross-extruder nozzle change (ramming) on an extruder's final layer above its printable - // height. is_valid_last_layer is inert unless multi-extruder near Z-max. - if (!m_filament_map.empty() && new_tool < m_filament_map.size() && m_filament_map[m_current_tool] != m_filament_map[new_tool] - && is_valid_last_layer(m_current_tool, m_cur_layer_id, m_z_pos)) { - m_nozzle_change_result = nozzle_change_new(m_current_tool, new_tool, solid_nozzlechange); - } - if (m_nozzle_change_result.gcode.empty() - && !m_filament_nozzle_map.empty() - && m_current_tool < m_filament_nozzle_map.size() && new_tool < m_filament_nozzle_map.size() - && m_filament_nozzle_map[m_current_tool] != m_filament_nozzle_map[new_tool] - && is_valid_last_layer(m_current_tool, m_cur_layer_id, m_z_pos)) { - m_nozzle_change_result = nozzle_change_new(m_current_tool, new_tool, solid_nozzlechange); + bool hotend_change = false; + if (is_need_ramming(m_current_tool,new_tool, m_cur_layer_id)) { + hotend_change = is_same_extruder(m_current_tool, new_tool, m_cur_layer_id); + //If it is the last layer and exceeds the printable height, cancel ramming + if (is_valid_last_layer(m_current_tool, m_cur_layer_id, m_z_pos)) m_nozzle_change_result = ramming(m_current_tool, new_tool, solid_nozzlechange, !hotend_change); } size_t old_tool = m_current_tool; @@ -2919,32 +3312,19 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol wipe_depth = b.required_depth; purge_volume = b.purge_volume; nozzle_change_depth = b.nozzle_change_depth; - if (has_tpu_filament()) - nozzle_change_line_count = ((b.nozzle_change_depth + WT_EPSILON) / m_nozzle_change_perimeter_width) / 2; - else - nozzle_change_line_count = (b.nozzle_change_depth + WT_EPSILON) / m_nozzle_change_perimeter_width; break; } } - - bool interface_layer = solid_toolchange && m_enable_tower_interface_features; - if (interface_layer && new_tool < m_filpar.size()) { - float extra_purge_length = m_filpar[new_tool].tower_interface_purge_length; - if (extra_purge_length > 0.f) { - purge_volume += extra_purge_length * m_filpar[new_tool].filament_area; - wipe_length += extra_purge_length; - } - } - + m_current_tool = new_tool; WipeTowerBlock* block = get_block_by_category(m_filpar[new_tool].category, false); if (!block) { assert(block != nullptr); return WipeTower::ToolChangeResult(); } m_cur_block = block; - box_coordinates cleaning_box(Vec2f(m_perimeter_width, block->cur_depth), m_wipe_tower_width - 2 * m_perimeter_width, wipe_depth-m_layer_info->extra_spacing*nozzle_change_depth); + box_coordinates cleaning_box(Vec2f(m_perimeter_width, block->cur_depth), m_wipe_tower_width - 2 * m_perimeter_width, wipe_depth-nozzle_change_depth); - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) @@ -2953,6 +3333,8 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol "; CP TOOLCHANGE START\n") .comment_with_value(" toolchange #", m_num_tool_changes + 1); // the number is zero-based + set_for_wipe_tower_writer(writer); + if (new_tool != (unsigned) (-1)) writer.append( std::string("; material : " + (m_current_tool < m_filpar.size() ? m_filpar[m_current_tool].material : "(NONE)") + " -> " + m_filpar[new_tool].material + "\n").c_str()) .append(";--------------------\n"); @@ -2962,7 +3344,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol // Ram the hot material out of the melt zone, retract the filament into the cooling tubes and let it cool. if (new_tool != (unsigned int) -1) { // This is not the last change. - Vec2f initial_position = get_next_pos(cleaning_box, wipe_length, interface_layer, new_tool); + Vec2f initial_position = get_next_pos(cleaning_box, wipe_length, solid_toolchange); writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start) + "\n"); @@ -2970,25 +3352,8 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol is_first_layer() ? m_filpar[new_tool].nozzle_temperature_initial_layer : m_filpar[new_tool].nozzle_temperature); toolchange_Change(writer, new_tool, m_filpar[new_tool].material); // Change the tool, set a speed override for soluble and flex materials. toolchange_Load(writer, cleaning_box); - - int base_temp = is_first_layer() ? m_filpar[new_tool].nozzle_temperature_initial_layer : m_filpar[new_tool].nozzle_temperature; - if (interface_layer) { - int interface_temp = m_filpar[new_tool].interface_print_temperature; - if (interface_temp > 0 && interface_temp != base_temp) - writer.set_extruder_temp(interface_temp, true); - if (m_enable_tower_interface_cooldown_during_tower && interface_temp > 0 && interface_temp != base_temp) - writer.set_extruder_temp(base_temp, false); - float pre_dist = m_filpar[new_tool].tower_interface_pre_extrusion_dist; - float pre_len = m_filpar[new_tool].tower_interface_pre_extrusion_length; - if (pre_dist > 0.f && pre_len > 0.f) { - bool start_left = (m_cur_layer_id % 4 == 0 || m_cur_layer_id % 4 == 3); - float target_x = writer.x() + (start_left ? pre_dist : -pre_dist); - target_x = std::max(cleaning_box.ld.x(), std::min(cleaning_box.rd.x(), target_x)); - writer.extrude_explicit(target_x, writer.y(), pre_len, 600.f); - } - } - - if (m_is_multi_extruder && is_tpu_filament(new_tool)) { +# if 0 + if (m_is_multi_extruder && is_need_reverse_travel(new_tool)) { float dy = m_layer_info->extra_spacing * m_nozzle_change_perimeter_width; if (m_layer_info->extra_spacing < m_tpu_fixed_spacing) { dy = m_tpu_fixed_spacing * m_nozzle_change_perimeter_width; @@ -3019,22 +3384,15 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol } writer.travel(initial_position); } - +#endif toolchange_wipe_new(writer, cleaning_box, wipe_length, solid_toolchange); - if (interface_layer) { - int base_temp = is_first_layer() ? m_filpar[new_tool].nozzle_temperature_initial_layer : m_filpar[new_tool].nozzle_temperature; - int interface_temp = m_filpar[new_tool].interface_print_temperature; - if (!m_enable_tower_interface_cooldown_during_tower && interface_temp > 0 && interface_temp != base_temp) - writer.set_extruder_temp(base_temp, false); - } - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_End) + "\n"); ++m_num_tool_changes; } else toolchange_Unload(writer, cleaning_box, m_filpar[m_current_tool].material, m_filpar[m_current_tool].nozzle_temperature); - block->cur_depth += (wipe_depth - nozzle_change_depth * m_layer_info->extra_spacing); + block->cur_depth += (wipe_depth - nozzle_change_depth); block->last_filament_change_id = new_tool; // BBS @@ -3050,192 +3408,187 @@ WipeTower::ToolChangeResult WipeTower::tool_change_new(size_t new_tool, bool sol if (m_current_tool < m_used_filament_length.size()) m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); - return construct_tcr(writer, false, old_tool, false, true, purge_volume, interface_layer); + return construct_tcr(writer, false, old_tool, false, true, purge_volume, solid_toolchange); } -WipeTower::NozzleChangeResult WipeTower::nozzle_change_new(int old_filament_id, int new_filament_id, bool solid_infill) +//for extruder change and nozzle change +WipeTower::NozzleChangeResult WipeTower::ramming(int old_filament_id, int new_filament_id, bool solid_infill, bool extruder_change) { + auto format_line_M106 = []() { return std::string{"M106 S255\n"};}; + auto format_line_M633 = []() { return std::string{"M633\n"};}; + auto format_line_M632 = [](int filament_id, int nozzle_id) { + std::string buffer = "M632 S" + std::to_string(filament_id); + if (nozzle_id >= 0) + buffer += " H" + std::to_string(nozzle_id); + buffer += " M N\n"; + return buffer; + }; + int nozzle_change_line_count = 0; + float x_offset = m_perimeter_width + (m_nozzle_change_perimeter_width - m_perimeter_width) / 2; + float nozzle_change_box_width = m_wipe_tower_width - 2 * x_offset; + float nozzle_change_depth = 0.f; if (new_filament_id != (unsigned int) (-1)) { for (const auto &b : m_layer_info->tool_changes) if (b.new_tool == new_filament_id) { - if (has_tpu_filament()) - nozzle_change_line_count = ((b.nozzle_change_depth + WT_EPSILON) / m_nozzle_change_perimeter_width) / 2; - else - nozzle_change_line_count = (b.nozzle_change_depth + WT_EPSILON) / m_nozzle_change_perimeter_width; + nozzle_change_line_count = std::ceil(b.nozzle_change_length / nozzle_change_box_width); + nozzle_change_depth = b.nozzle_change_depth; break; } } + auto format_nozzle_change_line = [this](bool start, int old_filament_id, int new_filament_id) -> std::string { + char buff[64]; + // Orca: the nozzle-change markers are standalone tag constants, not ETags entries + // (the Reserved_Tags parallel arrays have a non-BBL variant that must stay aligned). + std::string tag = start ? GCodeProcessor::Nozzle_Change_Start_Tag : GCodeProcessor::Nozzle_Change_End_Tag; + int old_nozzle_id = get_nozzle_id(old_filament_id, m_cur_layer_id); + int new_nozzle_id = get_nozzle_id(new_filament_id, m_cur_layer_id); + snprintf(buff, sizeof(buff), ";%s OF%d NF%d ON%d NN%d\n", tag.c_str(), old_filament_id, new_filament_id,old_nozzle_id,new_nozzle_id); + return std::string(buff); + }; float nz_extrusion_flow = nozzle_change_extrusion_flow(m_layer_height); - bool extruder_change = !is_in_same_extruder(old_filament_id, new_filament_id); - float max_e_ramming = extruder_change - ? m_filpar[m_current_tool].max_e_ramming_speed.first - : m_filpar[m_current_tool].max_e_ramming_speed.second; - if (max_e_ramming < EPSILON) max_e_ramming = m_filpar[m_current_tool].max_e_speed; // fallback - float nozzle_change_speed = 60.0f * max_e_ramming / nz_extrusion_flow; - nozzle_change_speed = solid_infill ? 40.f * 60.f : nozzle_change_speed; - - if (is_tpu_filament(m_current_tool)) { - nozzle_change_speed *= 0.25; - } - float bridge_speed = std::min(60.0f * max_e_ramming / nozzle_change_extrusion_flow(0.2), nozzle_change_speed); - - WipeTowerWriter writer(m_layer_height, m_nozzle_change_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_nozzle_change_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(nz_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) - .set_y_shift(m_y_shift + (new_filament_id != (unsigned int) (-1) && (m_current_shape == SHAPE_REVERSED) ? m_layer_info->depth - m_layer_info->toolchanges_depth() : 0.f)) - .append(format_nozzle_change_tag(true, old_filament_id, new_filament_id)); - - if (!extruder_change && m_is_multiple_nozzle) { - writer.append("M632 S" + std::to_string(new_filament_id) + " M N\n"); - // Use m_physical_extruder_map for heater index (matches format_line_M104 in add_M104_by_requirement) - if (m_filpar[m_current_tool].precool_target_temp.second != 0) { - int logical_ext = m_filament_map.empty() ? 0 : m_filament_map[m_current_tool] - 1; - int phys_ext = (logical_ext >= 0 && logical_ext < (int)m_physical_extruder_map.size()) - ? m_physical_extruder_map[logical_ext] : logical_ext; - writer.append("M400\n"); - writer.append("M104 T" + std::to_string(phys_ext) + " S" + - std::to_string(m_filpar[m_current_tool].precool_target_temp.second) + " N0\n"); - writer.append("M106 S255\n"); - } - writer.append("M633\n"); - } + .set_y_shift(m_y_shift + (new_filament_id != (unsigned int) (-1) && (m_current_shape == SHAPE_REVERSED) ? m_layer_info->depth - m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); WipeTowerBlock* block = get_block_by_category(m_filpar[old_filament_id].category, false); if (!block) { assert(false); return WipeTower::NozzleChangeResult(); } - m_cur_block = block; - float dy = m_layer_info->extra_spacing * m_nozzle_change_perimeter_width; - if (has_tpu_filament() && m_extra_spacing < m_tpu_fixed_spacing) - dy = m_tpu_fixed_spacing * m_nozzle_change_perimeter_width; - - float x_offset = m_perimeter_width + (m_nozzle_change_perimeter_width - m_perimeter_width) / 2; - box_coordinates cleaning_box(Vec2f(x_offset,block->cur_depth + (m_nozzle_change_perimeter_width - m_perimeter_width) / 2), - m_wipe_tower_width - 2 * x_offset, - nozzle_change_line_count * dy - (m_nozzle_change_perimeter_width - m_perimeter_width) / 2); + m_cur_block = block; + float dy = is_first_layer() ? m_nozzle_change_perimeter_width : m_layer_info->extra_spacing * get_block_gap_width(m_current_tool, true); + box_coordinates cleaning_box(Vec2f(x_offset, block->cur_depth + (m_nozzle_change_perimeter_width - m_perimeter_width) / 2), + nozzle_change_box_width, + nozzle_change_depth); Vec2f initial_position = cleaning_box.ld; writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); - const float &xl = cleaning_box.ld.x(); - const float &xr = cleaning_box.rd.x(); - dy = solid_infill ? m_nozzle_change_perimeter_width : dy; - nozzle_change_line_count = solid_infill ? std::numeric_limits::max() : nozzle_change_line_count; - m_left_to_right = true; - - if (extruder_change) { - float ramming_length = nozzle_change_line_count * (xr - xl); - int extruder_id = m_filament_map.empty() ? 0 : m_filament_map[m_current_tool] - 1; - float precool_t = (extruder_id >= 0 && extruder_id < (int)m_filpar[m_current_tool].precool_t.first.size()) - ? m_filpar[m_current_tool].precool_t.first[extruder_id] : 0.f; - float precool_t_fl = (extruder_id >= 0 && extruder_id < (int)m_filpar[m_current_tool].precool_t_first_layer.first.size()) - ? m_filpar[m_current_tool].precool_t_first_layer.first[extruder_id] : 0.f; - float per_cooling_max_speed = nozzle_change_speed; - if (is_first_layer() && precool_t_fl > EPSILON) - per_cooling_max_speed = ramming_length / precool_t_fl * 60.f; - else if (precool_t > EPSILON) - per_cooling_max_speed = ramming_length / precool_t * 60.f; - if (nozzle_change_speed > per_cooling_max_speed) nozzle_change_speed = per_cooling_max_speed; - if (bridge_speed > per_cooling_max_speed) bridge_speed = per_cooling_max_speed; - } - - int real_nozzle_change_line_count = 0; - bool need_change_flow = false; - for (int i = 0; true; ++i) { - if (need_thick_bridge_flow(writer.pos().y())) { - writer.set_extrusion_flow(nozzle_change_extrusion_flow(0.2)); - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(0.2) + "\n"); - need_change_flow = true; + // --- Nozzle change preamble: notify firmware + precool --- + writer.append(format_nozzle_change_line(true, old_filament_id, new_filament_id)); + if (!extruder_change) { + int new_nozzle_id = m_multi_nozzle_group_result->is_support_dynamic_nozzle_map() + ? get_nozzle_id(new_filament_id, m_cur_layer_id) : -1; + writer.append(format_line_M632(new_filament_id, new_nozzle_id)); + if (m_filpar[m_current_tool].precool_target_temp.second != 0) { + writer.format_line_M104(m_filpar[m_current_tool].precool_target_temp.second, get_extruder_id(m_current_tool, m_cur_layer_id)) + .append(format_line_M106()); } - if (m_left_to_right) - writer.extrude(xr + wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), need_change_flow ? bridge_speed : nozzle_change_speed); - else - writer.extrude(xl - wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), need_change_flow ? bridge_speed : nozzle_change_speed); - real_nozzle_change_line_count++; - if (i == nozzle_change_line_count - 1) - break; - if ((writer.y() + dy - cleaning_box.ru.y()+(m_nozzle_change_perimeter_width+m_perimeter_width)/2) > (float)EPSILON) break; - if (need_change_flow) { - writer.set_extrusion_flow(nozzle_change_extrusion_flow(m_layer_height)); - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(m_layer_height) + "\n"); - need_change_flow = false; - } - writer.extrude(writer.x(), writer.y() + dy, nozzle_change_speed); - m_left_to_right = !m_left_to_right; + writer.append(format_line_M633()); } - if (need_change_flow) { - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(m_layer_height) + "\n"); - } - writer.set_extrusion_flow(nz_extrusion_flow); // Reset the extrusion flow. - block->cur_depth += real_nozzle_change_line_count * dy; - block->last_nozzle_change_id = old_filament_id; NozzleChangeResult result; - if (!extruder_change && m_is_multiple_nozzle) { - writer.append("M632 S" + std::to_string(new_filament_id) + " M N\n"); - } - if (is_need_reverse_travel(m_current_tool, extruder_change)) { - bool left_to_right = !m_left_to_right; - int tpu_line_count = real_nozzle_change_line_count; - float reverse_speed = nozzle_change_speed * 2; // reverse travel runs at double the nozzle-change speed - float rt_time = extruder_change ? m_filpar[m_current_tool].ramming_travel_time.first - : m_filpar[m_current_tool].ramming_travel_time.second; - float need_reverse_travel_dis = rt_time * reverse_speed / 60.f; - float real_travel_dis = tpu_line_count * (xr - xl - 2 * m_perimeter_width); - if (real_travel_dis < need_reverse_travel_dis) - reverse_speed *= real_travel_dis / need_reverse_travel_dis; - writer.travel(writer.x(), writer.y() + dy/2); + if (nozzle_change_line_count > 0) { + float max_e_ramming_speed = extruder_change ? m_filpar[m_current_tool].max_e_ramming_speed.first : m_filpar[m_current_tool].max_e_ramming_speed.second; + float nozzle_change_speed = 60.0f * max_e_ramming_speed / nz_extrusion_flow; + if (solid_infill) + nozzle_change_speed = std::min(40.f * 60.f, nozzle_change_speed); + float bridge_speed = std::min(60.0f * max_e_ramming_speed / nozzle_change_extrusion_flow(0.2), nozzle_change_speed); + const float &xl = cleaning_box.ld.x(); + const float &xr = cleaning_box.rd.x(); + dy = solid_infill ? m_nozzle_change_perimeter_width : dy; + if (solid_infill) + nozzle_change_line_count = std::floor(EPSILON + (cleaning_box.ru[1] - cleaning_box.rd[1] + (m_nozzle_change_perimeter_width - m_perimeter_width) / 2.f) / + m_nozzle_change_perimeter_width); + m_left_to_right = true; + bool need_change_flow = false; + float ramming_length = nozzle_change_line_count * (xr - xl); + int extruder_id = get_extruder_id(m_current_tool, m_cur_layer_id); + float precool_t = extruder_change ? m_filpar[m_current_tool].precool_t.first[extruder_id] : m_filpar[m_current_tool].precool_t.second[extruder_id]; + float precool_t_first_layer = extruder_change ? m_filpar[m_current_tool].precool_t_first_layer.first[extruder_id] : + m_filpar[m_current_tool].precool_t_first_layer.second[extruder_id]; + float per_cooling_max_speed = nozzle_change_speed; + if (extruder_change) { + if (is_first_layer() && precool_t_first_layer > EPSILON) + per_cooling_max_speed = ramming_length / precool_t_first_layer * 60.f; + else if (precool_t > EPSILON) + per_cooling_max_speed = ramming_length / precool_t * 60.f; + }//BBS:nozzle change does not require forcing a cooldown to a specific temperature. + if (nozzle_change_speed > per_cooling_max_speed) nozzle_change_speed = per_cooling_max_speed; + if (bridge_speed > per_cooling_max_speed) bridge_speed = per_cooling_max_speed; + LimitFlow LimitRamming = extruder_change ? LimitFlow::LimitRammingFlow : LimitFlow::LimitRammingFlowNC; for (int i = 0; true; ++i) { - need_reverse_travel_dis -= (xr - xl - 2 * m_perimeter_width); - float offset_dis = 0.f; - if (need_reverse_travel_dis < 0) - offset_dis = -need_reverse_travel_dis; - if (left_to_right) - writer.travel(xr - m_perimeter_width - offset_dis, writer.y(), reverse_speed); + if (need_thick_bridge_flow(writer.pos().y())) { + writer.set_extrusion_flow(nozzle_change_extrusion_flow(0.2)); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(0.2) + "\n"); + need_change_flow = true; + } + if (m_left_to_right) + writer.extrude(xr + wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), need_change_flow ? bridge_speed : nozzle_change_speed, LimitRamming); else - writer.travel(xl + m_perimeter_width + offset_dis, writer.y(), reverse_speed); - if (need_reverse_travel_dis < EPSILON) break; - if (i == tpu_line_count - 1) + writer.extrude(xl - wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), need_change_flow ? bridge_speed : nozzle_change_speed, LimitRamming); + if (i == nozzle_change_line_count - 1) break; - writer.travel(writer.x(), writer.y() - dy); - left_to_right = !left_to_right; + if ((writer.y() + dy - cleaning_box.ru.y()+(m_nozzle_change_perimeter_width+m_perimeter_width)/2) > (float)EPSILON) break; + if (need_change_flow) { + writer.set_extrusion_flow(nozzle_change_extrusion_flow(m_layer_height)); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(m_layer_height) + "\n"); + need_change_flow = false; + } + writer.extrude(writer.x(), writer.y() + dy, nozzle_change_speed, LimitRamming); + m_left_to_right = !m_left_to_right; } - } else if (is_tpu_filament(m_current_tool)) { - bool left_to_right = !m_left_to_right; - int tpu_line_count = (real_nozzle_change_line_count + 2 - 1) / 2; - nozzle_change_speed *= 2; - writer.travel(writer.x(), writer.y() - m_nozzle_change_perimeter_width); - - for (int i = 0; true; ++i) { - if (left_to_right) - writer.travel(xr - m_perimeter_width, writer.y(), nozzle_change_speed); - else - writer.travel(xl + m_perimeter_width, writer.y(), nozzle_change_speed); - - if (i == tpu_line_count - 1) - break; - - writer.travel(writer.x(), writer.y() - dy); - left_to_right = !left_to_right; + if (need_change_flow) { + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(m_layer_height) + "\n"); } - } else { - result.wipe_path.push_back(writer.pos_rotated()); - if (m_left_to_right) { - result.wipe_path.push_back(Vec2f(0, writer.pos_rotated().y())); + + writer.set_extrusion_flow(nz_extrusion_flow); + block->cur_depth += nozzle_change_depth; + block->last_nozzle_change_id = old_filament_id; + // --- Post-ramming: re-arm nozzle change for travel phase --- + if (!extruder_change) { + int new_nozzle_id = m_multi_nozzle_group_result->is_support_dynamic_nozzle_map() + ? get_nozzle_id(new_filament_id, m_cur_layer_id) : -1; + writer.append(format_line_M632(new_filament_id, new_nozzle_id)); + } + + if (is_need_reverse_travel(m_current_tool, extruder_change)) { + bool left_to_right = !m_left_to_right; + int tpu_line_count = nozzle_change_line_count; + nozzle_change_speed *= 2; // due to nozzle change 2 perimeter + float ramming_travel_time = extruder_change ? m_filpar[m_current_tool].ramming_travel_time.first : m_filpar[m_current_tool].ramming_travel_time.second; + float need_reverse_travel_dis = ramming_travel_time * nozzle_change_speed / 60.f; + float real_travel_dis = tpu_line_count * (xr - xl - 2 * m_perimeter_width); + if (real_travel_dis < need_reverse_travel_dis) + nozzle_change_speed *= real_travel_dis / need_reverse_travel_dis; + writer.travel(writer.x(), writer.y() + dy/2); + + for (int i = 0; true; ++i) { + need_reverse_travel_dis -= (xr - xl - 2 * m_perimeter_width); + float offset_dis = 0.f; + if (need_reverse_travel_dis < 0) { + offset_dis = -need_reverse_travel_dis; + } + if (left_to_right) + writer.travel(xr - m_perimeter_width - offset_dis, writer.y(), nozzle_change_speed); + else + writer.travel(xl + m_perimeter_width + offset_dis , writer.y(), nozzle_change_speed); + if (need_reverse_travel_dis < EPSILON) break; + if (i == tpu_line_count - 1) + break; + + writer.travel(writer.x(), writer.y() - dy); + left_to_right = !left_to_right; + } } else { - result.wipe_path.push_back(Vec2f(m_wipe_tower_width, writer.pos_rotated().y())); + result.wipe_path.push_back(writer.pos_rotated()); + if (m_left_to_right) { + result.wipe_path.push_back(Vec2f(0, writer.pos_rotated().y())); + } else { + result.wipe_path.push_back(Vec2f(m_wipe_tower_width, writer.pos_rotated().y())); + } } + if (!extruder_change) writer.append(format_line_M633()); } - if (!extruder_change && m_is_multiple_nozzle) writer.append("M633\n"); - - writer.append(format_nozzle_change_tag(false, old_filament_id, new_filament_id)); + writer.append(format_nozzle_change_line(false, old_filament_id, new_filament_id)); result.start_pos = writer.start_pos_rotated(); result.origin_start_pos = initial_position; @@ -3250,91 +3603,110 @@ WipeTower::ToolChangeResult WipeTower::finish_layer_new(bool extrude_perimeter, assert(!this->layer_finished()); m_current_layer_finished = true; - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED ? m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start) + "\n"); // Slow down on the 1st layer. bool first_layer = is_first_layer(); // BBS: speed up perimeter speed to 90mm/s for non-first layer - float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, 5400.f); - - float fill_box_depth = m_wipe_tower_depth - 2 * m_perimeter_width; - if (m_wipe_tower_blocks.size() == 1) { - fill_box_depth = m_layer_info->depth - 2 * m_perimeter_width; - } - box_coordinates fill_box(Vec2f(m_perimeter_width, m_perimeter_width), m_wipe_tower_width - 2 * m_perimeter_width, fill_box_depth); - - writer.set_initial_position((m_left_to_right ? fill_box.ru : fill_box.lu), m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); + float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, m_max_speed) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, m_max_speed); bool toolchanges_on_layer = m_layer_info->toolchanges_depth() > WT_EPSILON; std::vector finish_rect_wipe_path; - if (extrude_fill_wall) { - // inner perimeter of the sparse section, if there is space for it: - if (fill_box.ru.y() - fill_box.rd.y() > WT_EPSILON) { - writer.rectangle_fill_box(this, fill_box, finish_rect_wipe_path, feedrate); + const bool multi_block_fill = (m_wipe_tower_blocks.size() > 1) && (extrude_fill_wall || extrude_fill); + + // Build list of fill boxes: one per block when multi_block_fill, else one for whole tower. + std::vector fill_boxes; + if (multi_block_fill) { + for (const WipeTowerBlock &block : m_wipe_tower_blocks) { + float block_fill_height = block.depth - 2 * m_perimeter_width; + if (m_cur_layer_id >= 0 && size_t(m_cur_layer_id) < block.layer_depths.size()) + block_fill_height = block.layer_depths[m_cur_layer_id] - 2 * m_perimeter_width; + if (block_fill_height <= WT_EPSILON) + continue; + fill_boxes.emplace_back( + Vec2f(m_perimeter_width, block.start_depth + m_perimeter_width), + m_wipe_tower_width - 2 * m_perimeter_width, + block_fill_height); } } + if (fill_boxes.empty()) { + float fill_box_depth = m_wipe_tower_depth - 2 * m_perimeter_width; + if (m_wipe_tower_blocks.size() == 1) + fill_box_depth = m_layer_info->depth - 2 * m_perimeter_width; + fill_boxes.emplace_back(Vec2f(m_perimeter_width, m_perimeter_width), m_wipe_tower_width - 2 * m_perimeter_width, fill_box_depth); + } - // Extrude infill to support the material to be printed above. - const float dy = (fill_box.lu.y() - fill_box.ld.y() - m_perimeter_width); - float left = fill_box.lu.x() + 2 * m_perimeter_width; - float right = fill_box.ru.x() - 2 * m_perimeter_width; - if (extrude_fill && dy > m_perimeter_width) { - writer.travel(fill_box.ld + Vec2f(m_perimeter_width * 2, 0.f)) - .append(";--------------------\n" - "; CP EMPTY GRID START\n") - .comment_with_value(" layer #", m_num_layer_changes + 1); + writer.set_initial_position((m_left_to_right ? fill_boxes.front().ru : fill_boxes.front().lu), m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); - // Is there a soluble filament wiped/rammed at the next layer? - // If so, the infill should not be sparse. - bool solid_infill = m_layer_info + 1 == m_plan.end() ? - false : - std::any_of((m_layer_info + 1)->tool_changes.begin(), (m_layer_info + 1)->tool_changes.end(), - [this](const WipeTowerInfo::ToolChange &tch) { return m_filpar[tch.new_tool].is_soluble || m_filpar[tch.old_tool].is_soluble; }); - solid_infill |= first_layer && m_adhesion; + bool solid_infill = (m_layer_info + 1 == m_plan.end()) ? false : + std::any_of((m_layer_info + 1)->tool_changes.begin(), (m_layer_info + 1)->tool_changes.end(), + [this](const WipeTowerInfo::ToolChange &tch) { return m_filpar[tch.new_tool].is_soluble || m_filpar[tch.old_tool].is_soluble; }); + solid_infill |= first_layer && m_adhesion; - if (solid_infill) { - float sparse_factor = 1.5f; // 1=solid, 2=every other line, etc. - if (first_layer) { // the infill should touch perimeters - left -= m_perimeter_width; - right += m_perimeter_width; - sparse_factor = 1.f; - } - float y = fill_box.ld.y() + m_perimeter_width; - int n = dy / (m_perimeter_width * sparse_factor); - float spacing = (dy - m_perimeter_width) / (n - 1); - int i = 0; - for (i = 0; i < n; ++i) { - writer.extrude(writer.x(), y, feedrate).extrude(i % 2 ? left : right, y); - y = y + spacing; - } - writer.extrude(writer.x(), fill_box.lu.y()); - } else { - // Extrude an inverse U at the left of the region and the sparse infill. - writer.extrude(fill_box.lu + Vec2f(m_perimeter_width * 2, 0.f), feedrate); + for (size_t i = 0; i < fill_boxes.size(); ++i) { + const box_coordinates &fill_box = fill_boxes[i]; + if (i > 0) + writer.travel(m_left_to_right ? fill_box.ru : fill_box.lu); - const int n = 1 + int((right - left) / m_bridging); - const float dx = (right - left) / n; - for (int i = 1; i <= n; ++i) { - float x = left + dx * i; - writer.travel(x, writer.y()); - writer.extrude(x, i % 2 ? fill_box.rd.y() : fill_box.ru.y()); + if (extrude_fill_wall && (fill_box.ru.y() - fill_box.rd.y() > WT_EPSILON)) + writer.rectangle_fill_box(this, fill_box, finish_rect_wipe_path, feedrate); + // Extrude infill to support the material to be printed above. + const float dy = (fill_box.lu.y() - fill_box.ld.y() - m_perimeter_width); + float left = fill_box.lu.x() + 2 * m_perimeter_width; + float right = fill_box.ru.x() - 2 * m_perimeter_width; + + if (extrude_fill && dy > m_perimeter_width) { + writer.travel(fill_box.ld + Vec2f(m_perimeter_width * 2, 0.f)) + .append(";--------------------\n" + "; CP EMPTY GRID START\n") + .comment_with_value(" layer #", m_num_layer_changes + 1); + + if (solid_infill) { + float sparse_factor = 1.5f; // 1=solid, 2=every other line, etc. + if (first_layer) { // the infill should touch perimeters + left -= m_perimeter_width; + right += m_perimeter_width; + sparse_factor = 1.f; + } + float y = fill_box.ld.y() + m_perimeter_width; + int n = dy / (m_perimeter_width * sparse_factor); + float spacing = (dy - m_perimeter_width) / (n - 1); + int i = 0; + for (i = 0; i < n; ++i) { + writer.extrude(writer.x(), y, feedrate).extrude(i % 2 ? left : right, y); + y = y + spacing; + } + writer.extrude(writer.x(), fill_box.lu.y()); + } else { + // Extrude an inverse U at the left of the region and the sparse infill. + writer.extrude(fill_box.lu + Vec2f(m_perimeter_width * 2, 0.f), feedrate); + + const int n = 1 + int((right - left) / m_bridging); + const float dx = (right - left) / n; + for (int i = 1; i <= n; ++i) { + float x = left + dx * i; + writer.travel(x, writer.y()); + writer.extrude(x, i % 2 ? fill_box.rd.y() : fill_box.ru.y()); + } + + finish_rect_wipe_path.clear(); + // BBS: add wipe_path for this case: only with finish rectangle + finish_rect_wipe_path.emplace_back(writer.pos()); + finish_rect_wipe_path.emplace_back(Vec2f(left + dx * n, n % 2 ? fill_box.ru.y() : fill_box.rd.y())); } - finish_rect_wipe_path.clear(); - // BBS: add wipe_path for this case: only with finish rectangle - finish_rect_wipe_path.emplace_back(writer.pos()); - finish_rect_wipe_path.emplace_back(Vec2f(left + dx * n, n % 2 ? fill_box.ru.y() : fill_box.rd.y())); + writer.append("; CP EMPTY GRID END\n" + ";------------------\n\n\n\n\n\n\n"); } - - writer.append("; CP EMPTY GRID END\n" - ";------------------\n\n\n\n\n\n\n"); } // outer perimeter (always): @@ -3419,23 +3791,25 @@ WipeTower::ToolChangeResult WipeTower::finish_layer_new(bool extrude_perimeter, m_used_filament_length[m_current_tool] += writer.get_and_reset_used_filament_length(); m_nozzle_change_result.gcode.clear(); - return construct_tcr(writer, false, m_current_tool, true, false, 0.f, false); + return construct_tcr(writer, false, m_current_tool, true, false, 0.f,false); } WipeTower::ToolChangeResult WipeTower::finish_block(const WipeTowerBlock &block, int filament_id, bool extrude_fill) { - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(filament_id) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED ? m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start) + "\n"); // Slow down on the 1st layer. bool first_layer = is_first_layer(); // BBS: speed up perimeter speed to 90mm/s for non-first layer - float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[filament_id].max_e_speed / m_extrusion_flow, 5400.f); + float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, m_max_speed) : std::min(60.0f * m_filpar[filament_id].max_e_speed / m_extrusion_flow, m_max_speed); box_coordinates fill_box(Vec2f(0, 0), 0, 0); fill_box = box_coordinates(Vec2f(m_perimeter_width, block.cur_depth), m_wipe_tower_width - 2 * m_perimeter_width, block.start_depth + block.layer_depths[m_cur_layer_id] - block.cur_depth - m_perimeter_width); @@ -3529,49 +3903,96 @@ WipeTower::ToolChangeResult WipeTower::finish_block(const WipeTowerBlock &block, return construct_block_tcr(writer, false, filament_id, true, 0.f); } -WipeTower::ToolChangeResult WipeTower::finish_block_solid(const WipeTowerBlock &block, int filament_id, bool extrude_fill, bool interface_solid) +WipeTower::ToolChangeResult WipeTower::finish_block_solid(const WipeTowerBlock &block, int filament_id, bool extrude_fill, WipeTowerLayerType layer_type) { float layer_height = m_layer_height; float e_flow = m_extrusion_flow; - if (m_cur_layer_id > 1 && !block.solid_infill[m_cur_layer_id - 1] && m_extrusion_flow < extrusion_flow(0.2)) { + if (m_cur_layer_id > 1 && block.layers_type[m_cur_layer_id - 1]==WipeTowerLayerType::Normal && m_extrusion_flow < extrusion_flow(0.2)) { layer_height = 0.2; e_flow = extrusion_flow(0.2); } - WipeTowerWriter writer(layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(e_flow) .set_z(m_z_pos) .set_initial_tool(filament_id) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED ? m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start) + "\n"); // Slow down on the 1st layer. bool first_layer = is_first_layer(); // BBS: speed up perimeter speed to 90mm/s for non-first layer - float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[filament_id].max_e_speed / m_extrusion_flow, 5400.f); - feedrate = interface_solid ? 20.f * 60.f : feedrate; + float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, m_max_speed) : std::min(60.0f * m_filpar[filament_id].max_e_speed / m_extrusion_flow, m_max_speed); + feedrate = (layer_type == WipeTowerLayerType::Contact || layer_type == WipeTowerLayerType::Contact_UP) ? 20.f * 60.f : feedrate; box_coordinates fill_box(Vec2f(0, 0), 0, 0); fill_box = box_coordinates(Vec2f(m_perimeter_width, block.cur_depth), m_wipe_tower_width - 2 * m_perimeter_width, block.start_depth + block.layer_depths[m_cur_layer_id] - block.cur_depth - m_perimeter_width); - - writer.set_initial_position((m_left_to_right ? fill_box.rd : fill_box.ld), m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); - m_left_to_right = !m_left_to_right; bool toolchanges_on_layer = m_layer_info->toolchanges_depth() > WT_EPSILON; - + const float dy = (fill_box.lu.y() - fill_box.ld.y()); + int n = (dy + 0.25 * m_perimeter_width) / m_perimeter_width+1; + float spacing = m_perimeter_width; + Vec2f initial_pos(0, 0); + bool up_to_down = false; + //set initial pos + { + int index = m_cur_layer_id % 4; + float gird_depth = spacing * (n-1); + switch (index % 4) { + case 0: + initial_pos = fill_box.ld; + m_left_to_right = true; + up_to_down = false; + break; + case 1: + initial_pos = Vec2f(fill_box.rd.x(), fill_box.rd.y() + gird_depth); + m_left_to_right = false; + up_to_down = true; + break; + case 2: + initial_pos = fill_box.rd; + m_left_to_right = false; + up_to_down = false; + break; + case 3: + initial_pos = Vec2f(fill_box.ld.x(), gird_depth + fill_box.ld.y()); + m_left_to_right = true; + up_to_down = true; + break; + default: break; + } + } // Extrude infill to support the material to be printed above. - const float dy = (fill_box.lu.y() - fill_box.ld.y()); float left = fill_box.lu.x(); float right = fill_box.ru.x(); std::vector finish_rect_wipe_path; { - writer.append(";--------------------\n" + writer + .append(";--------------------\n" "; CP EMPTY GRID START\n") .comment_with_value(" layer #", m_num_layer_changes + 1); + bool is_full_block = std::abs(block.cur_depth - block.start_depth) < EPSILON; + if (is_full_block && layer_type == WipeTowerLayerType::Contact && m_enable_tower_interface_features ) { + Vec2f stop_pos = initial_pos; + float filament_tower_interface_pre_extrusion_dist = m_filpar[m_current_tool].filament_tower_interface_pre_extrusion_dist; + // Orca: unscaled(BoundingBox) here is a template returning BoundingBoxBase, not BoundingBoxf + auto printer_bbx = unscaled(get_extents(m_shared_print_bed)); + printer_bbx.translate((- m_wipe_tower_pos - m_rib_offset).cast()); // first layer never be contact + if (stop_pos.x() < m_wipe_tower_width/2.f) + stop_pos = Vec2f(stop_pos.x() - filament_tower_interface_pre_extrusion_dist, stop_pos.y()); + else + stop_pos = Vec2f(stop_pos.x() + filament_tower_interface_pre_extrusion_dist, stop_pos.y()); + if (stop_pos.x() < printer_bbx.min[0]) stop_pos.x() = printer_bbx.min[0]; + if (stop_pos.x() > printer_bbx.max[0]) stop_pos.x() = printer_bbx.max[0]; + initial_pos = stop_pos; + if (m_filpar[m_current_tool].filament_tower_interface_print_temp != m_filpar[m_current_tool].nozzle_temperature) + writer.format_line_M109(m_filpar[m_current_tool].filament_tower_interface_print_temp, get_extruder_id(m_current_tool, m_cur_layer_id)); + writer.retract(-m_filpar[m_current_tool].filament_tower_interface_pre_extrusion_length - 2.f, 100.f); + } + writer.set_initial_position(initial_pos, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); - float y = fill_box.ld.y(); - int n = (dy + 0.25 * m_perimeter_width) / m_perimeter_width + 1; - float spacing = m_perimeter_width; int i = 0; for (i = 0; i < n; ++i) { writer.extrude(m_left_to_right ? right : left, writer.y(), feedrate); @@ -3580,10 +4001,10 @@ WipeTower::ToolChangeResult WipeTower::finish_block_solid(const WipeTowerBlock & break; } m_left_to_right = !m_left_to_right; - y = y + spacing; - writer.extrude(writer.x(), y, feedrate); + writer.extrude(writer.x(), writer.y()+spacing*(up_to_down?-1:1), feedrate); } - + if (layer_type == WipeTowerLayerType::Contact && m_enable_tower_interface_features && m_filpar[m_current_tool].filament_tower_interface_print_temp != m_filpar[m_current_tool].nozzle_temperature) + writer.format_line_M104(m_filpar[m_current_tool].nozzle_temperature, get_extruder_id(m_current_tool, m_cur_layer_id)); writer.append("; CP EMPTY GRID END\n" ";------------------\n\n\n\n\n\n\n"); } @@ -3601,50 +4022,53 @@ WipeTower::ToolChangeResult WipeTower::finish_block_solid(const WipeTowerBlock & void WipeTower::toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinates &cleaning_box, float wipe_length,bool solid_tool_toolchange) { - writer.set_extrusion_flow(m_extrusion_flow * (is_first_layer() ? 1.15f : 1.f)).append("; CP TOOLCHANGE WIPE\n"); - + writer.set_extrusion_flow(m_extrusion_flow * (is_first_layer() ? m_first_layer_flow_ratio : 1.f)) + // Orca: CP_TOOLCHANGE_WIPE is a standalone tag constant, not an ETags entry + .append(";" + GCodeProcessor::Toolchange_Wipe_Tag + " CT" + std::to_string(solid_tool_toolchange) + " FL" + std::to_string(is_first_layer()) + "\n"); if (!m_nozzle_change_result.gcode.empty()) writer.change_analyzer_line_width(m_perimeter_width); // BBS: add the note for gcode-check, when the flow changed, the width should follow the change if (is_first_layer()) { - writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Width) + std::to_string(1.15 * m_perimeter_width) + "\n"); + writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Width) + std::to_string(m_first_layer_flow_ratio * m_perimeter_width) + "\n"); } + + //if (solid_tool_toolchange && m_filpar[m_current_tool].filament_tower_interface_print_temp != m_filpar[m_current_tool].nozzle_temperature) + // writer.append(format_line_M109(m_filpar[m_current_tool].filament_tower_interface_print_temp, m_filament_map[this->m_current_tool] - 1)); + //if (solid_tool_toolchange && m_filpar[m_current_tool].filament_tower_interface_pre_extrusion_length != 0) + // writer.retract(-m_filpar[m_current_tool].filament_tower_interface_pre_extrusion_length, 100.f); + float retract_length = m_filpar[m_current_tool].retract_length; float retract_speed = m_filpar[m_current_tool].retract_speed * 60; - const float ironing_area = m_filpar[m_current_tool].tower_ironing_area; - const bool do_ironing = m_flat_ironing && (!solid_tool_toolchange || !m_enable_tower_interface_features); - const float &xl = cleaning_box.ld.x(); const float &xr = cleaning_box.rd.x(); - + bool should_flat_ironging = m_flat_ironing; + bool should_line_ironing = true; + if (!m_contact_ironing && solid_tool_toolchange) { + should_flat_ironging = false; + should_line_ironing = false; + } + bool should_cooling_before_tower = !solid_tool_toolchange; + bool should_cooling_before_object = false;//interface layer heating print tower, then cooling print object + int cooling_begin_line = 2; float x_to_wipe = wipe_length; - float dy = solid_tool_toolchange ? m_perimeter_width :m_layer_info->extra_spacing * m_perimeter_width; + float dy = is_first_layer() ? m_perimeter_width : m_layer_info->extra_spacing * get_block_gap_width(m_current_tool,false); + if (solid_tool_toolchange) + dy = m_perimeter_width; x_to_wipe = solid_tool_toolchange ? std::numeric_limits::max(): x_to_wipe; - float target_speed = is_first_layer() ? std::min(m_first_layer_speed * 60.f, 4800.f) : 4800.f; - target_speed = solid_tool_toolchange ? 20.f * 60.f : target_speed; - // Nominal wipe-speed schedule. The applied wipe_speed is nominal_speed * speed_factor; speed_factor - // stays 1.0 unless the H2C prime-tower heating-during-wipe model below slows the wipe so the hotend - // can reach temperature (nominal_speed == wipe_speed when speed_factor == 1, i.e. single-nozzle). - float nominal_speed = 0.33f * target_speed; + float target_speed = is_first_layer() ? std::min(m_first_layer_speed * 60.f, m_max_speed) : m_max_speed; + target_speed = solid_tool_toolchange ? m_contact_speed : target_speed; + const std::vector WipeSpeedMap{0.33f * target_speed, 0.375f * target_speed, 0.458f * target_speed, 0.875f * target_speed, + std::min(target_speed, 0.875f * target_speed + 50.f)}; + float wipe_speed = WipeSpeedMap[0]; m_left_to_right = ((m_cur_layer_id + 3) % 4 >= 2); bool is_from_up = (m_cur_layer_id % 2 == 1); - // Prime-tower heating during wipe. Everything here is gated on m_is_multiple_nozzle (false for every - // current printer); the lambdas emit nothing until add_M104_by_requirement's gate opens, so the - // single-nozzle wipe is untouched. - // WipeSpeedMap mirrors the nominal schedule above and is read only by estimate_wipe_time. It is a - // std::array (stack, no per-call heap allocation); values depend on runtime target_speed so it - // cannot be static const. - const std::array WipeSpeedMap{0.33f * target_speed, 0.375f * target_speed, 0.458f * target_speed, - 0.875f * target_speed, std::min(target_speed, 0.875f * target_speed + 50.f)}; - auto estimate_wipe_time = [&cleaning_box, &x_to_wipe, &xr, &xl, &dy, &WipeSpeedMap, &solid_tool_toolchange]() -> float { - int n = std::ceil(x_to_wipe / (xr - xl)); - if (solid_tool_toolchange) n = (cleaning_box.lu[1] - cleaning_box.ld[1]) / dy; + auto estimate_time_kernel = [&WipeSpeedMap,&xr,&xl](int n) { + float time = std::numeric_limits::max(); float one_line_len = xr - xl; - float time = std::numeric_limits::max(); if (n <= 1) time = one_line_len / WipeSpeedMap[0]; else if (n <= 2) @@ -3659,65 +4083,51 @@ void WipeTower::toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinat } return time * 60.f; }; - // Emit the arriving-hotend pre-heat inside the M632/M633 nozzle-change barrier. `M632 S[ H] - // M N` opens the barrier (M = firmware nozzle-change flag, N = slicer generated), the M104 sets the - // arriving hotend temp, and `M633` closes it. H2C's grouping is static (no dynamic nozzle map), so the - // H field is omitted (a dynamic nozzle map would supply a real nozzle id, a static map -1 =>no - // H). The counterproductive fan-on (M106 S255) used for departing-tool cooldown is intentionally - // omitted, since this is a pre-HEAT of the arriving tool. The whole helper is only ever called from - // add_M104_by_requirement, which is gated on m_is_multiple_nozzle (extruder_max_nozzle_count>1) => H2C - // only; every other printer's wipe tower is untouched. - // BBS: extruder change preheat uses M400 + M104 WITHOUT M632/M633 barrier. - // M632 barriers are only for carousel nozzle changes (emitted in nozzle_change_new/ramming). - auto format_line_M104 = [this](int target_temp, int target_extruder = -1, bool wait_for_moves = true, const std::string &comment = "") { - std::string buffer; - if (wait_for_moves) - buffer += "M400\n"; - buffer += "M104"; - if (target_extruder != -1 && target_extruder < (int) m_physical_extruder_map.size()) - buffer += (" T" + std::to_string(m_physical_extruder_map[target_extruder])); - buffer += " S" + std::to_string(target_temp) + " N0"; // N0 means the gcode is generated by the slicer - if (!comment.empty()) buffer += " ;" + comment; - buffer += '\n'; - return buffer; + auto estimate_wipe_time = [&estimate_time_kernel, & cleaning_box, &target_speed, &x_to_wipe, &xr, &xl, &dy, &WipeSpeedMap, &solid_tool_toolchange](int begin_line) -> float { + int n = std::ceil(x_to_wipe / (xr - xl)); + if (solid_tool_toolchange) n = (cleaning_box.lu[1] - cleaning_box.ld[1]) / dy; + float total_time = estimate_time_kernel(n); + float beg_time = n <= 0 ? 0 : estimate_time_kernel(begin_line); + return total_time-beg_time; }; - // m_is_multiple_nozzle gate needed because Orca calls toolchange_wipe_new for ALL printers (BBS has it H2C-only). - bool should_heating = m_is_multiple_nozzle && m_filpar[m_current_tool].filament_cooling_before_tower > EPSILON && - !solid_tool_toolchange && !is_first_layer(); - auto add_M104_by_requirement = [&writer, &format_line_M104, &should_heating, this]() { + + bool should_heating = m_filpar[m_current_tool].filament_cooling_before_tower > EPSILON && !solid_tool_toolchange && !is_first_layer(); + auto add_M104_by_requirement = [&writer, &should_heating, this]() { if (m_filpar[m_current_tool].filament_cooling_before_tower < EPSILON) return; if (!should_heating) return; float target_temp = is_first_layer() ? m_filpar[m_current_tool].nozzle_temperature_initial_layer : m_filpar[m_current_tool].nozzle_temperature; - writer.append(format_line_M104(target_temp, m_filament_map[m_current_tool] - 1)); + writer.format_line_M104(target_temp, get_extruder_id(m_current_tool, m_cur_layer_id)); }; float speed_factor = 1.f; - if (should_heating) { - // The heating-slowdown scaling is disabled — no additional heating time is required, so - // speed_factor stays 1.0. The structure and estimate_wipe_time/WipeSpeedMap are retained for - // future H2C tuning; the divide-by-zero/bounds guard is preserved in the commented body below. - // int extruder_id = m_filament_map[m_current_tool] - 1; - // if (extruder_id >= 0 && extruder_id < (int) m_hotend_heating_rate.size() && m_hotend_heating_rate[extruder_id] > 0.) { - // float estimate_time = estimate_wipe_time(); - // float heat_time = m_filpar[m_current_tool].filament_cooling_before_tower / m_hotend_heating_rate[extruder_id]; - // if (estimate_time < heat_time) speed_factor = estimate_time / heat_time; - // } - (void) estimate_wipe_time; // retain scaffolding above without an unused-lambda warning + if (should_heating) + { + //No additional heating time is required. + //float estimate_time = estimate_wipe_time(0); + //int extruder_id = m_filament_map[m_current_tool] - 1; + //float heat_time = m_filpar[m_current_tool].filament_cooling_before_tower / m_hotend_heating_rate[extruder_id]; + //heat_time /= 2.f; + //speed_factor = estimate_time / (heat_time+estimate_time); + //wipe_speed *= speed_factor; } - float wipe_speed = nominal_speed * speed_factor; - - // now the wiping itself: - for (int i = 0; true; ++i) { - if (i != 0) { - if (nominal_speed < 0.34f * target_speed) - nominal_speed = 0.375f * target_speed; - else if (nominal_speed < 0.377 * target_speed) - nominal_speed = 0.458f * target_speed; - else if (nominal_speed < 0.46f * target_speed) - nominal_speed = 0.875f * target_speed; - else - nominal_speed = std::min(target_speed, nominal_speed + 50.f); - wipe_speed = nominal_speed * speed_factor; + if (should_cooling_before_object) { + int n = (cleaning_box.lu[1] - cleaning_box.ld[1]) / dy; + int extruder_id = get_extruder_id(m_current_tool, m_cur_layer_id); + float cooling_time = (m_filpar[m_current_tool].filament_tower_interface_print_temp - m_filpar[m_current_tool].nozzle_temperature) / m_hotend_cooling_rate[extruder_id]; + if (n < 2) { + float estimate_time = estimate_wipe_time(0); + speed_factor = estimate_time > cooling_time? 1: estimate_time / cooling_time; + cooling_begin_line = 0; + } else { + float estimate_time = estimate_wipe_time(2); + speed_factor = estimate_time > cooling_time ? 1 : estimate_time / cooling_time; + cooling_begin_line = 2; //TODO: No slowdown for the first two lines. } + wipe_speed *= speed_factor; + } + + + for (int i = 0; true; ++i) { + if (i < WipeSpeedMap.size()) wipe_speed = WipeSpeedMap[i] * speed_factor; bool need_change_flow = need_thick_bridge_flow(writer.y()); // BBS: check the bridging area and use the bridge flow @@ -3725,44 +4135,53 @@ void WipeTower::toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinat writer.set_extrusion_flow(extrusion_flow(0.2)); writer.append(";" + GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Height) + std::to_string(0.2) + "\n"); } - + float flat_iron_area = m_filpar[m_current_tool].flat_iron_area; float ironing_length = 3.; + + if (should_cooling_before_object && i == cooling_begin_line) { + writer.format_line_M104(m_filpar[m_current_tool].nozzle_temperature, get_extruder_id(m_current_tool, m_cur_layer_id)); + } + if (i == 0 && m_use_gap_wall) { // BBS: add ironing after extruding start if (m_left_to_right) { - float dx = xr + wipe_tower_wall_infill_overlap * m_perimeter_width - writer.pos().x(); - if (abs(dx) < ironing_length) ironing_length = abs(dx); - writer.extrude(writer.x() + ironing_length, writer.y(), wipe_speed); - writer.retract(retract_length, retract_speed); - writer.travel(writer.x() - 1.5 * ironing_length, writer.y(), 600.); - if (do_ironing && ironing_area > 0.f) { - writer.travel(writer.x() + 0.5f * ironing_length, writer.y(), 240.); - Vec2f pos{writer.x() + 1.f * ironing_length, writer.y()}; - writer.spiral_flat_ironing(writer.pos(), ironing_area, m_perimeter_width, flat_iron_speed); - writer.travel(pos, wipe_speed); - } else - writer.travel(writer.x() + 1.5 * ironing_length, writer.y(), 240.); - writer.retract(-retract_length, retract_speed); - add_M104_by_requirement(); // Pre-heat the arriving hotend during the wipe + if (should_line_ironing) { + float dx = xr + wipe_tower_wall_infill_overlap * m_perimeter_width - writer.pos().x(); + if (abs(dx) < ironing_length) ironing_length = abs(dx); + writer.extrude(writer.x() + ironing_length, writer.y(), wipe_speed); + writer.retract(retract_length, retract_speed); + writer.travel(writer.x() - 1.5 * ironing_length, writer.y(), 600.); + if (should_flat_ironging) { + writer.travel(writer.x() + 0.5f * ironing_length, writer.y(), 240.); + Vec2f pos{writer.x() + 1.f * ironing_length, writer.y()}; + writer.spiral_flat_ironing(writer.pos(), flat_iron_area, m_perimeter_width, flat_iron_speed); + writer.travel(pos, wipe_speed); + } else + writer.travel(writer.x() + 1.5 * ironing_length, writer.y(), 240.); + writer.retract(-retract_length, retract_speed); + } + add_M104_by_requirement(); writer.extrude(xr + wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), wipe_speed); } else { - float dx = xl - wipe_tower_wall_infill_overlap * m_perimeter_width - writer.pos().x(); - if (abs(dx) < ironing_length) ironing_length = abs(dx); - writer.extrude(writer.x() - ironing_length, writer.y(), wipe_speed); - writer.retract(retract_length, retract_speed); - writer.travel(writer.x() + 1.5 * ironing_length, writer.y(), 600.); - if (do_ironing && ironing_area > 0.f) { - writer.travel(writer.x() - 0.5f * ironing_length, writer.y(), 240.); - Vec2f pos{writer.x() - 1.0f * ironing_length, writer.y()}; - writer.spiral_flat_ironing(writer.pos(), ironing_area, m_perimeter_width, flat_iron_speed); - writer.travel(pos, wipe_speed); - }else - writer.travel(writer.x() - 1.5 * ironing_length, writer.y(), 240.); - writer.retract(-retract_length, retract_speed); - add_M104_by_requirement(); // Pre-heat the arriving hotend during the wipe + if (should_line_ironing) { + float dx = xl - wipe_tower_wall_infill_overlap * m_perimeter_width - writer.pos().x(); + if (abs(dx) < ironing_length) ironing_length = abs(dx); + writer.extrude(writer.x() - ironing_length, writer.y(), wipe_speed); + writer.retract(retract_length, retract_speed); + writer.travel(writer.x() + 1.5 * ironing_length, writer.y(), 600.); + if (should_flat_ironging) { + writer.travel(writer.x() - 0.5f * ironing_length, writer.y(), 240.); + Vec2f pos{writer.x() - 1.0f * ironing_length, writer.y()}; + writer.spiral_flat_ironing(writer.pos(), flat_iron_area, m_perimeter_width, flat_iron_speed); + writer.travel(pos, wipe_speed); + } else + writer.travel(writer.x() - 1.5 * ironing_length, writer.y(), 240.); + writer.retract(-retract_length, retract_speed); + } + add_M104_by_requirement(); writer.extrude(xl - wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), wipe_speed); } } else { - if (i == 0) add_M104_by_requirement(); // Pre-heat the arriving hotend during the wipe + if (i == 0) add_M104_by_requirement(); if (m_left_to_right) writer.extrude(xr + wipe_tower_wall_infill_overlap * m_perimeter_width, writer.y(), wipe_speed); else @@ -3855,67 +4274,6 @@ int WipeTower::get_filament_category(int filament_id) return m_filament_categories[filament_id]; } -bool WipeTower::is_in_same_extruder(int filament_id_1, int filament_id_2) -{ - if (filament_id_1 >= m_filament_map.size() || filament_id_2 >= m_filament_map.size()) - return true; - - return m_filament_map[filament_id_1] == m_filament_map[filament_id_2]; -} - -std::string WipeTower::format_nozzle_change_tag(bool start, int old_filament_id, int new_filament_id) const -{ - const std::string &tag = start ? GCodeProcessor::Nozzle_Change_Start_Tag : GCodeProcessor::Nozzle_Change_End_Tag; - int old_nozzle = (old_filament_id >= 0 && old_filament_id < (int)m_filament_nozzle_map.size()) - ? m_filament_nozzle_map[old_filament_id] : -1; - int new_nozzle = (new_filament_id >= 0 && new_filament_id < (int)m_filament_nozzle_map.size()) - ? m_filament_nozzle_map[new_filament_id] : -1; - char buff[96]; - snprintf(buff, sizeof(buff), ";%s OF%d NF%d ON%d NN%d\n", tag.c_str(), old_filament_id, new_filament_id, old_nozzle, new_nozzle); - return std::string(buff); -} - -// Per-extruder printable-height clamp: is an extruder still allowed to print on this wipe-tower layer, -// or is it its final layer above the extruder's printable height? -// Orca: the arriving extruder id is resolved as m_filament_map[tool]-1 (1-based map, layer-static), -// because Orca's wipe tower is extruder-level rather than tracking a per-layer nozzle map (the same -// idiom the pre-heat path uses in toolchange_wipe_new). Gated on m_is_multi_extruder so that -// single-extruder printers (including ones whose extruder_printable_height defaults to {0}) always -// return true and leave wipe-tower g-code unchanged. -bool WipeTower::is_valid_last_layer(int tool, int layer_id, double layer_z) const -{ - if (!m_is_multi_extruder) - return true; - int extruder_id = (tool >= 0 && tool < (int) m_filament_map.size()) ? m_filament_map[tool] - 1 : -1; - if (extruder_id < 0 || extruder_id >= (int) m_printable_height.size() || extruder_id >= (int) m_last_layer_id.size()) - return true; - if (m_last_layer_id[extruder_id] == layer_id && layer_z > m_printable_height[extruder_id]) - return false; - return true; -} - -// Records, per extruder, the last wipe-tower layer index that uses it, so is_valid_last_layer can -// recognise the extruder's final layer. Inert for single-extruder printers (early return); -// bounds-checked because m_filament_map may be empty/short. -void WipeTower::set_nozzle_last_layer_id() -{ - if (!m_is_multi_extruder) - return; - for (int idx = 0; idx < (int) m_plan.size(); ++idx) { - const auto &info = m_plan[idx]; - for (const auto &tc : info.tool_changes) { - int old_tool = (int) tc.old_tool; - int new_tool = (int) tc.new_tool; - int old_ext = (old_tool >= 0 && old_tool < (int) m_filament_map.size()) ? m_filament_map[old_tool] - 1 : -1; - int new_ext = (new_tool >= 0 && new_tool < (int) m_filament_map.size()) ? m_filament_map[new_tool] - 1 : -1; - if (old_ext >= 0 && old_ext < (int) m_last_layer_id.size()) - m_last_layer_id[old_ext] = idx; - if (new_ext >= 0 && new_ext < (int) m_last_layer_id.size()) - m_last_layer_id[new_ext] = idx; - } - } -} - void WipeTower::reset_block_status() { for (auto &block : m_wipe_tower_blocks) { @@ -3924,6 +4282,39 @@ void WipeTower::reset_block_status() block.last_nozzle_change_id = -1; } } +void WipeTower::set_nozzle_last_layer_id() +{ + for (int idx = 0; idx < m_plan.size(); idx++) { + auto &info = m_plan[idx]; + for(int i =0 ; i= 0) m_last_layer_id[get_extruder_id(old_tool, idx)] = idx; + m_last_layer_id[get_extruder_id(new_tool, idx)] = idx; + } + } +} + +void WipeTower::set_first_layer_flow_ratio(const float flow_ratio) +{ + m_first_layer_flow_ratio = flow_ratio; +} + +// Orca: default/initial-layer/travel acceleration are object-scope options here (PrintConfig +// members read directly in the BBS ctor), so Print resolves the columns and pushes them in. +void WipeTower::set_accelerations(const std::vector &normal, const std::vector &first_layer_normal, + const std::vector &travel, const std::vector &first_layer_travel) +{ + auto to_accels = [](const std::vector &values, std::vector &accels) { + accels.clear(); + for (double value : values) + accels.emplace_back((unsigned int) floor(value + 0.5)); + }; + to_accels(normal, m_normal_accels); + to_accels(first_layer_normal, m_first_layer_normal_accels); + to_accels(travel, m_travel_accels); + to_accels(first_layer_travel, m_first_layer_travel_accels); +} void WipeTower::update_all_layer_depth(float wipe_tower_depth) { @@ -3956,7 +4347,7 @@ void WipeTower::update_all_layer_depth(float wipe_tower_depth) } } -void WipeTower::generate_wipe_tower_blocks() +void WipeTower::generate_wipe_tower_blocks(bool add_solid_flag) { // 1. generate all layer depth m_all_layers_depth.clear(); @@ -3964,7 +4355,7 @@ void WipeTower::generate_wipe_tower_blocks() m_cur_layer_id = 0; for (auto& info : m_plan) { for (const WipeTowerInfo::ToolChange &tool_change : info.tool_changes) { - if (is_in_same_extruder(tool_change.old_tool, tool_change.new_tool)) { + if (!is_need_ramming(tool_change.old_tool, tool_change.new_tool, m_cur_layer_id)) { int filament_adhesiveness_category = get_filament_category(tool_change.new_tool); add_depth_to_block(tool_change.new_tool, filament_adhesiveness_category, tool_change.required_depth); } @@ -3997,35 +4388,13 @@ void WipeTower::generate_wipe_tower_blocks() auto* block = get_block_by_category(iter->first, true); if (block->layer_depths.empty()) { block->layer_depths.resize(all_layer_category_to_depth.size(), 0); - block->solid_infill.resize(all_layer_category_to_depth.size(), false); block->finish_depth.resize(all_layer_category_to_depth.size(), 0); + block->layers_type.resize(all_layer_category_to_depth.size(), WipeTowerLayerType::Normal); } block->depth = std::max(block->depth, iter->second); block->layer_depths[layer_id] = iter->second; } } - - // add solid infill flag - int solid_infill_layer = 4; - for (WipeTowerBlock& block : m_wipe_tower_blocks) { - for (int layer_id = 0; layer_id < all_layer_category_to_depth.size(); ++layer_id) { - std::unordered_map &category_to_depth = all_layer_category_to_depth[layer_id]; - if (is_approx(category_to_depth[block.filament_adhesiveness_category], 0.f)) { - int layer_count = solid_infill_layer; - while (layer_count > 0) { - if (layer_id + layer_count < all_layer_category_to_depth.size()) { - std::unordered_map& up_layer_depth = all_layer_category_to_depth[layer_id + layer_count]; - if (!is_approx(up_layer_depth[block.filament_adhesiveness_category], 0.f)) { - block.solid_infill[layer_id] = true; - break; - } - } - --layer_count; - } - } - } - } - // 4. get real depth for every layer for (int layer_id = m_plan.size() - 1; layer_id >= 0; --layer_id) { m_plan[layer_id].depth = 0; @@ -4045,54 +4414,166 @@ void WipeTower::generate_wipe_tower_blocks() } } } + + // add solid infill flag + if (add_solid_flag) { + int solid_infill_layer_low = 4; + std::vector> layers_used_tools; + + int first_tool = -1; + for (const auto &layer : m_plan) { + if (!layer.tool_changes.empty()) { + first_tool = layer.tool_changes.front().old_tool; + break; + } + } + for (auto &info : m_plan) { + std::unordered_set used_tools; + if (info.tool_changes.empty()) { + used_tools.insert(get_filament_category(first_tool)); + } else { + for (const WipeTowerInfo::ToolChange &tool_change : info.tool_changes) { + used_tools.insert(get_filament_category(tool_change.old_tool)); + used_tools.insert(get_filament_category(tool_change.new_tool)); + } + first_tool = info.tool_changes.back().new_tool; + } + layers_used_tools.push_back(used_tools); + } + + for (WipeTowerBlock &block : m_wipe_tower_blocks) { + for (int layer_id = 0; layer_id < all_layer_category_to_depth.size(); ++layer_id) { + std::unordered_map &category_to_depth = all_layer_category_to_depth[layer_id]; + if (category_to_depth[block.filament_adhesiveness_category] < block.layer_depths[layer_id] - m_perimeter_width) { + bool cur_has_block_category = layers_used_tools[layer_id].count(block.filament_adhesiveness_category); + int layer_count = solid_infill_layer_low; + while (layer_count > 0) { + if (layer_id + layer_count < all_layer_category_to_depth.size()) { + std::unordered_map &up_layer_depth = all_layer_category_to_depth[layer_id + layer_count]; + { + bool up_has_block_category = layers_used_tools[layer_id + layer_count].count(block.filament_adhesiveness_category); + if (cur_has_block_category != up_has_block_category) { + block.layers_type[layer_id] = WipeTowerLayerType::Solid; + break; + } + } + } + --layer_count; + } + } + if (layer_id > 0) { + bool cur_has_block_category = layers_used_tools[layer_id].count(block.filament_adhesiveness_category); + bool pre_has_block_category = layers_used_tools[layer_id - 1].count(block.filament_adhesiveness_category); + if (cur_has_block_category != pre_has_block_category) { block.layers_type[layer_id] = WipeTowerLayerType::Contact; } + if (block.layers_type[layer_id - 1] == WipeTowerLayerType::Contact && block.layers_type[layer_id] != WipeTowerLayerType::Contact) { + block.layers_type[layer_id] = WipeTowerLayerType::Contact_UP; + } + } + } + } + } + +} +void WipeTower::calc_block_infill_gap() +{ + //1.calc block infill gap width + struct BlockInfo + { + bool has_ramming = false; + bool has_reverse_travel = false; + float depth = 0.f; + }; + std::unordered_map block_info; + std::unordered_map high_block_info; + for (int i= (int)m_plan.size()-1;i>=0;i--) + { + for (auto &toolchange : m_plan[i].tool_changes) { + int new_tool =toolchange.new_tool; + int old_tool =toolchange.old_tool; + if (is_need_ramming(old_tool,new_tool, i)) { + bool extruder_change = !is_same_extruder(new_tool, old_tool, i); + block_info[m_filpar[old_tool].category].has_ramming=true; + if (is_need_reverse_travel(old_tool, extruder_change)) block_info[m_filpar[old_tool].category].has_reverse_travel = true; + block_info[m_filpar[old_tool].category].depth += toolchange.nozzle_change_depth; + } + if (!block_info.count(m_filpar[new_tool].category)) block_info.insert({m_filpar[new_tool].category,BlockInfo{}}); + block_info[m_filpar[new_tool].category].depth += toolchange.required_depth - toolchange.nozzle_change_depth; + } + for (auto &block : block_info) { + if (high_block_info.count(block.first) && high_block_info[block.first].depth > block.second.depth) + block.second.depth = high_block_info[block.first].depth; + } + high_block_info = block_info; + + for (auto &block : block_info) { block.second.depth = 0.f;} + if (i == 0) block_info = high_block_info; + } + float max_depth = std::accumulate(block_info.begin(), block_info.end(), 0.f, [](float value, const std::pair &block) { return value + block.second.depth; }); + float height_to_depth = get_limit_depth_by_height(m_wipe_tower_height); + float height_to_spacing = max_depth > height_to_depth ? 1.f : height_to_depth / max_depth; + + float spacing_ratio = m_extra_spacing - 1.f; + float extra_width = spacing_ratio * m_perimeter_width; + float line_gap_tol = 2.f * m_nozzle_change_perimeter_width; //If the block's line_gap is greater than it, the block should be aligned. + for (auto &info : block_info) { + //case1: no ramming, it can always align + if (!info.second.has_ramming) { + m_block_infill_gap_width[info.first].first = m_block_infill_gap_width[info.first].second = extra_width + m_perimeter_width; + } + // case2: has ramming, but no reverse travel + // + else if (!info.second.has_reverse_travel) { + float line_gap = m_nozzle_change_perimeter_width + extra_width; + if (!m_use_rib_wall) line_gap *= height_to_spacing; + if (line_gap < line_gap_tol) { + m_block_infill_gap_width[info.first].first = m_perimeter_width + extra_width; + m_block_infill_gap_width[info.first].second = m_nozzle_change_perimeter_width + extra_width; + } else { + m_block_infill_gap_width[info.first].first = m_block_infill_gap_width[info.first].second = m_nozzle_change_perimeter_width + extra_width; + } + } + // case 3: has ramming and reverse travel + else { + float extra_tpu_fix_spacing = m_tpu_fixed_spacing - 1.f; + float line_gap = m_nozzle_change_perimeter_width + std::max(extra_tpu_fix_spacing * m_perimeter_width, extra_width); + if (!m_use_rib_wall) line_gap = height_to_spacing * line_gap; + if (line_gap < line_gap_tol) { + m_block_infill_gap_width[info.first].first = m_perimeter_width + extra_width; + m_block_infill_gap_width[info.first].second = m_nozzle_change_perimeter_width + std::max(extra_tpu_fix_spacing * m_perimeter_width, extra_width); + } else { + m_block_infill_gap_width[info.first].first = m_block_infill_gap_width[info.first].second = m_nozzle_change_perimeter_width + + std::max(extra_tpu_fix_spacing * m_perimeter_width, extra_width); + } + } + } + + //2. recalculate toolchange depth + for (int idx = 0; idx < m_plan.size(); idx++) { + for (auto &toolchange : m_plan[idx].tool_changes) { + toolchange = set_toolchange(toolchange.old_tool, toolchange.new_tool, m_plan[idx].height, toolchange.wipe_volume, toolchange.purge_volume,idx); + } + } + m_extra_spacing = 1.f; } void WipeTower::plan_tower_new() { if (m_wipe_tower_brim_width < 0) m_wipe_tower_brim_width = get_auto_brim_by_height(m_wipe_tower_height); + calc_block_infill_gap(); if (m_use_rib_wall) { // recalculate wipe_tower_with and layer's depth - generate_wipe_tower_blocks(); + generate_wipe_tower_blocks(false); float max_depth = std::accumulate(m_wipe_tower_blocks.begin(), m_wipe_tower_blocks.end(), 0.f, [](float a, const auto &t) { return a + t.depth; }) + m_perimeter_width; float square_width = align_ceil(std::sqrt(max_depth * m_wipe_tower_width * m_extra_spacing), m_perimeter_width); - //std::cout << " before m_wipe_tower_width = " << m_wipe_tower_width << " max_depth = " << max_depth << std::endl; m_wipe_tower_width = square_width; - float width = m_wipe_tower_width - 2 * m_perimeter_width; for (int idx = 0; idx < m_plan.size(); idx++) { for (auto &toolchange : m_plan[idx].tool_changes) { - float length_to_extrude = toolchange.wipe_length; - float depth = std::ceil(length_to_extrude / width) * m_perimeter_width; - float nozzle_change_depth = 0; - if (!m_filament_map.empty() && m_filament_map[toolchange.old_tool] != m_filament_map[toolchange.new_tool]) { - double e_flow = nozzle_change_extrusion_flow(m_plan[idx].height); - double length = m_filaments_change_length[toolchange.old_tool] / e_flow; - int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1; - if (has_tpu_filament()) - nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width; - else - nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width; - depth += nozzle_change_depth; - } - if (nozzle_change_depth == 0 - && !m_filament_nozzle_map.empty() - && toolchange.old_tool < (int)m_filament_nozzle_map.size() && toolchange.new_tool < (int)m_filament_nozzle_map.size() - && m_filament_nozzle_map[toolchange.old_tool] != m_filament_nozzle_map[toolchange.new_tool]) { - double e_flow = nozzle_change_extrusion_flow(m_plan[idx].height); - double length = m_filaments_change_length[toolchange.old_tool] / e_flow; - int nozzle_change_line_count = length / (m_wipe_tower_width - 2*m_nozzle_change_perimeter_width) + 1; - if (has_tpu_filament()) - nozzle_change_depth = m_tpu_fixed_spacing * nozzle_change_line_count * m_nozzle_change_perimeter_width; - else - nozzle_change_depth = nozzle_change_line_count * m_nozzle_change_perimeter_width; - depth += nozzle_change_depth; - } - toolchange.nozzle_change_depth = nozzle_change_depth; - toolchange.required_depth = depth; + toolchange = set_toolchange(toolchange.old_tool, toolchange.new_tool, m_plan[idx].height, toolchange.wipe_volume, toolchange.purge_volume,idx); } } } - generate_wipe_tower_blocks(); + generate_wipe_tower_blocks(true); float max_depth = 0.f; for (const auto &block : m_wipe_tower_blocks) { @@ -4126,28 +4607,29 @@ void WipeTower::plan_tower_new() for (int idx = 0; idx < m_plan.size(); idx++) { auto &info = m_plan[idx]; - if (idx == 0 && m_extra_spacing > 1.f + EPSILON) { + if (idx == 0 /*&& m_extra_spacing > 1.f + EPSILON*/) { // apply solid fill for the first layer info.extra_spacing = 1.f; for (auto &toolchange : info.tool_changes) { - float x_to_wipe = volume_to_length(toolchange.wipe_volume, m_perimeter_width, info.height); + //float x_to_wipe = volume_to_length(toolchange.wipe_volume, m_perimeter_width, info.height); float line_len = m_wipe_tower_width - 2 * m_perimeter_width; - float x_to_wipe_new = x_to_wipe * m_extra_spacing; - x_to_wipe_new = std::floor(x_to_wipe_new / line_len) * line_len; - x_to_wipe_new = std::max(x_to_wipe_new, x_to_wipe); + float wipe_depth = (toolchange.required_depth - toolchange.nozzle_change_depth) * m_extra_spacing; + float wipe_line_count = wipe_depth / m_perimeter_width; + float nozzle_change_depth = toolchange.nozzle_change_depth * m_extra_spacing; - int line_count = std::ceil((x_to_wipe_new - WT_EPSILON) / line_len); - // nozzle change length - int nozzle_change_line_count = (toolchange.nozzle_change_depth + WT_EPSILON) / m_nozzle_change_perimeter_width; + int nozzle_change_line_count = (toolchange.nozzle_change_depth * m_extra_spacing + WT_EPSILON) / m_nozzle_change_perimeter_width; - toolchange.required_depth = line_count * m_perimeter_width + nozzle_change_line_count * m_nozzle_change_perimeter_width; - toolchange.wipe_volume = x_to_wipe_new / x_to_wipe * toolchange.wipe_volume; - toolchange.wipe_length = x_to_wipe_new; + toolchange.required_depth = wipe_depth + nozzle_change_depth; + toolchange.wipe_length = wipe_line_count * line_len; + toolchange.wipe_volume = length_to_volume(toolchange.wipe_length, m_perimeter_width, info.height); + toolchange.nozzle_change_length = nozzle_change_line_count * (m_wipe_tower_width - (m_nozzle_change_perimeter_width + m_perimeter_width)); + toolchange.nozzle_change_depth = nozzle_change_depth; } } else { info.extra_spacing = m_extra_spacing; for (auto &toolchange : info.tool_changes) { toolchange.required_depth *= m_extra_spacing; + toolchange.nozzle_change_depth *= m_extra_spacing; toolchange.wipe_length = volume_to_length(toolchange.wipe_volume, m_perimeter_width, info.height); } } @@ -4155,7 +4637,8 @@ void WipeTower::plan_tower_new() } update_all_layer_depth(max_depth); - set_nozzle_last_layer_id(); // record per-extruder last layer for is_valid_last_layer + set_nozzle_last_layer_id(); + if(m_use_gap_wall) get_all_wall_skip_points(); float diagonal = sqrt(m_wipe_tower_depth * m_wipe_tower_depth + m_wipe_tower_width * m_wipe_tower_width); m_rib_length = std::max({m_rib_length, diagonal}); m_rib_length += m_extra_rib_length; @@ -4227,7 +4710,6 @@ void WipeTower::generate_new(std::vector layer_result; int index = 0; - std::unordered_set solid_blocks_id;// The contact surface of different bonded materials is solid. for (auto layer : m_plan) { reset_block_status(); m_cur_layer_id = index++; - m_prev_layer_had_interface = m_current_layer_has_interface; - m_current_layer_has_interface = !solid_blocks_id.empty(); set_layer(layer.z, layer.height, 0, false, layer.z == m_plan.back().z); - if (m_layer_info->depth < m_perimeter_width) continue; - if (m_wipe_tower_blocks.size() == 1) { if (m_layer_info->depth < m_wipe_tower_depth - m_perimeter_width) { // align y shift to perimeter width @@ -4263,32 +4740,30 @@ void WipeTower::generate_new(std::vector int { + auto get_wall_filament_for_this_layer = [this, &layer, &wall_filament]() -> int { if (layer.tool_changes.size() == 0) return -1; int candidate_id = -1; for (size_t idx = 0; idx < layer.tool_changes.size(); ++idx) { if (idx == 0) { - // An extruder's last-layer filament above its printable height cannot supply the - // outer wall. is_valid_last_layer is inert unless it clamps. - if (layer.tool_changes[idx].old_tool == wall_filament_id && is_valid_last_layer(layer.tool_changes[idx].old_tool, m_cur_layer_id, layer.z)) - return wall_filament_id; - else if (m_filpar[layer.tool_changes[idx].old_tool].category == m_filpar[wall_filament_id].category && - is_valid_last_layer(layer.tool_changes[idx].old_tool, m_cur_layer_id, layer.z)) { + if (layer.tool_changes[idx].old_tool == wall_filament && is_valid_last_layer(layer.tool_changes[idx].old_tool, this->m_cur_layer_id, layer.z)) + return wall_filament; + else if (m_filpar[layer.tool_changes[idx].old_tool].category == m_filpar[wall_filament].category && + is_valid_last_layer(layer.tool_changes[idx].old_tool, this->m_cur_layer_id, layer.z)) { candidate_id = layer.tool_changes[idx].old_tool; } } - if (layer.tool_changes[idx].new_tool == wall_filament_id) { - return wall_filament_id; + if (layer.tool_changes[idx].new_tool == wall_filament) { + return wall_filament; } - if ((candidate_id == -1) && (m_filpar[layer.tool_changes[idx].new_tool].category == m_filpar[wall_filament_id].category)) + if ((candidate_id == -1) && (m_filpar[layer.tool_changes[idx].new_tool].category == m_filpar[wall_filament].category)) candidate_id = layer.tool_changes[idx].new_tool; } return candidate_id == -1 ? layer.tool_changes[0].new_tool : candidate_id; @@ -4300,7 +4775,7 @@ void WipeTower::generate_new(std::vectorlayers_type[m_cur_layer_id] == WipeTowerLayerType::Contact; const auto * block2 = get_block_by_category(m_filpar[layer.tool_changes[i].old_tool].category, false); - id = std::find_if(m_wipe_tower_blocks.begin(), m_wipe_tower_blocks.end(), [&](const WipeTowerBlock &b) { return &b == block2; }) - m_wipe_tower_blocks.begin(); - bool solid_nozzlechange = solid_blocks_id.count(id); + if(block2) solid_nozzlechange = block2->layers_type[m_cur_layer_id] == WipeTowerLayerType::Contact; layer_result.emplace_back(tool_change_new(layer.tool_changes[i].new_tool, solid_toolchange,solid_nozzlechange)); if (i == 0 && (layer.tool_changes[i].old_tool == wall_idx)) { @@ -4348,7 +4822,6 @@ void WipeTower::generate_new(std::vector next_solid_blocks_id; // insert finish block if (wall_idx != -1) { if (layer.tool_changes.empty()) { @@ -4361,7 +4834,8 @@ void WipeTower::generate_new(std::vector> &result) @@ -4521,7 +4985,7 @@ void WipeTower::generate(std::vector> & } if (i == idx) { - layer_result.emplace_back(tool_change(layer.tool_changes[i].new_tool, m_enable_timelapse_print ? false : true)); + layer_result.emplace_back(tool_change(layer.tool_changes[i].new_tool, m_enable_timelapse_print ? false : true, false)); // finish_layer will be called after this toolchange finish_layer_tcr = finish_layer(false, layer.extruder_fill); } @@ -4529,7 +4993,7 @@ void WipeTower::generate(std::vector> & if (idx == -1 && i == 0) { layer_result.emplace_back(tool_change(layer.tool_changes[i].new_tool, false, true)); } else { - layer_result.emplace_back(tool_change(layer.tool_changes[i].new_tool)); + layer_result.emplace_back(tool_change(layer.tool_changes[i].new_tool, false, false)); } } } @@ -4552,21 +5016,23 @@ void WipeTower::generate(std::vector> & result.emplace_back(std::move(layer_result)); } } - +#endif WipeTower::ToolChangeResult WipeTower::only_generate_out_wall(bool is_new_mode) { size_t old_tool = m_current_tool; - WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar); + WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar, m_enable_arc_fitting); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) .set_initial_tool(m_current_tool) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED ? m_layer_info->toolchanges_depth() : 0.f)); + set_for_wipe_tower_writer(writer); + // Slow down on the 1st layer. bool first_layer = is_first_layer(); // BBS: speed up perimeter speed to 90mm/s for non-first layer - float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, 5400.f) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, 5400.f); + float feedrate = first_layer ? std::min(m_first_layer_speed * 60.f, m_max_speed) : std::min(60.0f * m_filpar[m_current_tool].max_e_speed / m_extrusion_flow, m_max_speed); float fill_box_y = m_layer_info->toolchanges_depth() + m_perimeter_width; box_coordinates fill_box(Vec2f(m_perimeter_width, fill_box_y), m_wipe_tower_width - 2 * m_perimeter_width, m_layer_info->depth - fill_box_y); @@ -4679,7 +5145,9 @@ Polygon WipeTower::generate_support_wall_new(WipeTowerWriter &writer, const box_ } if (!extrude_perimeter) return wall_polygon; - if (skip_points) { result_wall = contrust_gap_for_skip_points(wall_polygon,m_wall_skip_points,m_wipe_tower_width,2.5*m_perimeter_width,insert_skip_polygon); } + if (skip_points) { + result_wall = construct_gap_for_skip_points(wall_polygon, m_wall_skip_points[m_cur_layer_id], m_wipe_tower_width, 2.5 * m_perimeter_width, insert_skip_polygon); + } else { result_wall.push_back(to_polyline(wall_polygon)); insert_skip_polygon = wall_polygon; @@ -4689,7 +5157,6 @@ Polygon WipeTower::generate_support_wall_new(WipeTowerWriter &writer, const box_ BoundingBox bbox = get_extents(result_wall); m_rib_offset = Vec2f(-unscaled(bbox.min.x()), -unscaled(bbox.min.y())); } - return insert_skip_polygon; } @@ -4699,7 +5166,7 @@ Polygon WipeTower::generate_support_wall(WipeTowerWriter &writer, const box_coor float retract_speed = m_filpar[m_current_tool].retract_speed *60 ; bool is_left = false; bool is_right = false; - for (auto pt : m_wall_skip_points) { + for (auto pt : m_wall_skip_points[m_cur_layer_id]) { if (abs(pt.x()) < EPSILON) { is_left = true; } else if (abs(pt.x() - m_wipe_tower_width) < EPSILON) { @@ -4750,7 +5217,7 @@ Polygon WipeTower::generate_support_wall(WipeTowerWriter &writer, const box_coor index = (index + 1) % 4; if (index == 2) { if (is_right) { - std::vector break_segments = remove_points_from_segment(Segment(wt_box.rd, wt_box.ru), m_wall_skip_points, 2.5 * m_perimeter_width); + std::vector break_segments = remove_points_from_segment(Segment(wt_box.rd, wt_box.ru), m_wall_skip_points[m_cur_layer_id], 2.5 * m_perimeter_width); for (auto iter = break_segments.begin(); iter != break_segments.end(); ++iter) { float dx = iter->start.x() - writer.pos().x(); float dy = iter->start.y() - writer.pos().y(); @@ -4770,7 +5237,7 @@ Polygon WipeTower::generate_support_wall(WipeTowerWriter &writer, const box_coor } } else if (index == 0) { if (is_left) { - std::vector break_segments = remove_points_from_segment(Segment(wt_box.ld, wt_box.lu), m_wall_skip_points, 2.5 * m_perimeter_width); + std::vector break_segments = remove_points_from_segment(Segment(wt_box.ld, wt_box.lu), m_wall_skip_points[m_cur_layer_id], 2.5 * m_perimeter_width); for (auto iter = break_segments.rbegin(); iter != break_segments.rend(); ++iter) { float dx = iter->end.x() - writer.pos().x(); float dy = iter->end.y() - writer.pos().y(); @@ -4831,4 +5298,43 @@ bool WipeTower::need_thick_bridge_flow(float pos_y) const { return false; } +bool WipeTower::is_valid_last_layer(int tool, int layer_id, double layer_z) const +{ + int extruder_id = get_extruder_id(tool, layer_id); + if (extruder_id < 0 || extruder_id >= m_printable_height.size()) return true; + if (m_last_layer_id[extruder_id] == layer_id && layer_z > m_printable_height[extruder_id]) return false; + return true; +} +float WipeTower::get_block_gap_width(int tool,bool is_nozzlechangle) +{ + //assert(m_block_infill_gap_width.count(m_filpar[tool].category));//The code contains logic that attempts to access non-existent blocks, + // such as in case of involving two extruders with only a single head and a single layer, + // some code will attempt to access the block's nozzle_change_gap_width, even though the block does not exist. + if (!m_block_infill_gap_width.count(m_filpar[tool].category)) { + return is_nozzlechangle ? m_nozzle_change_perimeter_width : m_perimeter_width; + } + return is_nozzlechangle ? m_block_infill_gap_width[m_filpar[tool].category].second : m_block_infill_gap_width[m_filpar[tool].category].first; + +} + +bool WipeTower::is_need_ramming(int filament_id_1, int filament_id_2, int layer_id) const +{ + return !m_multi_nozzle_group_result->are_filaments_same_nozzle(filament_id_1, filament_id_2, layer_id); +} +bool WipeTower::is_same_extruder(int filament_id_1, int filament_id_2, int layer_id) const +{ + return m_multi_nozzle_group_result->are_filaments_same_extruder(filament_id_1, filament_id_2, layer_id); +} + +bool WipeTower::is_same_nozzle(int filament_id_1, int filament_id_2, int layer_id) const +{ + return m_multi_nozzle_group_result->are_filaments_same_nozzle(filament_id_1, filament_id_2, layer_id); +} + +int WipeTower::get_nozzle_id(int filament_id, int layer_id) const { return m_multi_nozzle_group_result->get_nozzle_id(filament_id, layer_id); } + +int WipeTower::get_extruder_id(int filament_id, int layer_id) const { + return m_multi_nozzle_group_result->get_extruder_id(filament_id, layer_id); +} + } // namespace Slic3r diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index 508765824e..045c82cbf3 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -12,7 +12,7 @@ #include "libslic3r/Polyline.hpp" #include "libslic3r/TriangleMesh.hpp" #include - +#include "libslic3r/MultiNozzleUtils.hpp" namespace Slic3r { @@ -20,6 +20,17 @@ class WipeTowerWriter; class PrintConfig; enum GCodeFlavor : unsigned char; +// Cuts the tower wall polygon open at each skip point (a toolchange's entry position) +// so the entry travel can pass through instead of crossing the printed wall. Defined in +// WipeTower.cpp, shared by WipeTower and WipeTower2. +Polylines construct_gap_for_skip_points( + const Polygon& polygon, const std::vector& skip_points, float wt_width, float gap_length, Polygon& insert_skip_polygon); + +// Klipper acts on commands the instant it parses them, and its G4 reads only P (milliseconds), +// so the zero-second and seconds-valued dwells every other flavor uses neither synchronize nor +// pause there. Both defined in WipeTower.cpp, shared by WipeTower and WipeTower2. +const char* flush_planner_queue_command(GCodeFlavor flavor); // finish queued moves, e.g. around M104/M109 +std::string wait_command(GCodeFlavor flavor, float seconds); // pause for `seconds` class WipeTower { @@ -34,7 +45,11 @@ public: static TriangleMesh its_make_rib_tower(float width, float depth, float height, float rib_length, float rib_width, bool fillet_wall); static TriangleMesh its_make_rib_brim(const Polygon& brim, float layer_height); static Polygon rib_section(float width, float depth, float rib_length, float rib_width, bool fillet_wall); - static Vec2f move_box_inside_box(const BoundingBox &box1, const BoundingBox &box2, int offset = 0); + // Translation that brings a footprint inside the printable outline, padded by offset. The prime + // tower is validated against the real outline (see layered_print_cleareance_valid), so clamping + // against the bounding box alone would leave it off a delta or hexagonal bed. box and polygons + // must share one scaled coordinate frame; the translation comes back in millimeters. + static Vec2f move_box_inside_polygon(const BoundingBox &box, const Polygons &polygons, coord_t offset = 0); static Polygon rounding_polygon(Polygon &polygon, double rounding = 2., double angle_tol = 30. / 180. * PI); struct Extrusion { @@ -84,7 +99,6 @@ public: bool priming; bool is_tool_change{false}; - bool is_contact{false}; Vec2f tool_change_start_pos; // Pass a polyline so that normal G-code generator can do a wipe for us. @@ -108,6 +122,7 @@ public: // executing the gcode finish_layer_tcr. bool is_finish_first = false; + bool is_contact = false; NozzleChangeResult nozzle_change_result; // Sum the total length of the extrusion. @@ -122,6 +137,8 @@ public: } return e_length; } + // Orca: set by WipeTower2 (non-BBL tower) to force a travel to the tower even when the + // previous position is unknown; read by WipeTowerIntegration::append_tcr2 (GCode.cpp). bool force_travel = false; }; @@ -162,15 +179,12 @@ public: bool priming, size_t old_tool, bool is_finish, - bool is_tool_change, - float purge_volume, - bool is_contact = false) const; + bool is_tool_change, float purge_volume, bool is_contact) const; ToolChangeResult construct_block_tcr(WipeTowerWriter& writer, bool priming, size_t filament_id, - bool is_finish, - float purge_volume) const; + bool is_finish, float purge_volume) const; // x -- x coordinates of wipe tower in mm ( left bottom corner ) @@ -184,9 +198,14 @@ public: // Set the extruder properties. void set_extruder(size_t idx, const PrintConfig& config); + void set_shared_print_bed(const Polygons &bed) { m_shared_print_bed = bed; } + // Orca: has_filament_switcher is not a static PrintConfig member here, so it is pushed in from + // Print via a setter rather than read in the ctor. Device-set only. + void set_has_filament_switcher(bool v) { m_has_filament_switcher = v; } // Appends into internal structure m_plan containing info about the future wipe tower // to be used before building begins. The entries must be added ordered in z. - void plan_toolchange(float z_par, float layer_height_par, unsigned int old_tool, unsigned int new_tool, float wipe_volume = 0.f, float prime_volume = 0.f); + void plan_toolchange(float z_par, float layer_height_par, unsigned int old_tool, unsigned int new_tool, float wipe_volume_ec = 0.f, float wipe_volume_nc = 0.f, float prime_volume = 0.f); + // Iterates through prepared m_plan, generates ToolChangeResults and appends them to "result" void generate(std::vector> &result); @@ -219,9 +238,6 @@ public: } } - void set_wipe_volume(std::vector>& wiping_matrix) { - wipe_volumes = wiping_matrix; - } // Switch to a next layer. void set_layer( @@ -250,7 +266,6 @@ public: // Calculate extrusion flow from desired line width, nozzle diameter, filament diameter and layer_height: m_extrusion_flow = extrusion_flow(layer_height); - // Advance m_layer_info iterator, making sure we got it right while (!m_plan.empty() && m_layer_info->z < print_z - WT_EPSILON && m_layer_info+1 != m_plan.end()) ++m_layer_info; @@ -309,20 +324,9 @@ public: std::vector get_used_filament() const { return m_used_filament_length; } int get_number_of_toolchanges() const { return m_num_tool_changes; } - void set_filament_map(const std::vector &filament_map) { m_filament_map = filament_map; } - // Vortek H2C: filament_id → physical nozzle_id for carousel rotation detection - void set_filament_nozzle_map(const std::vector &nozzle_map) { m_filament_nozzle_map = nozzle_map; } - void set_has_tpu_filament(bool has_tpu) { m_has_tpu_filament = has_tpu; } + bool has_tpu_filament() const { return m_has_tpu_filament; } - - // Orca: has_filament_switcher is not a static PrintConfig member, so it is pushed in from Print - // via a setter rather than read in the ctor. Device-set only. - void set_has_filament_switcher(bool v) { m_has_filament_switcher = v; } - // The region every extruder can reach, used to clamp the PETG pre-extrusion offset to the - // printable bed. - void set_shared_print_bed(const Polygons &bed) { m_shared_print_bed = bed; } - struct FilamentParameters { std::string material = "PLA"; int category; @@ -331,15 +335,15 @@ public: bool is_support = false; int nozzle_temperature = 0; int nozzle_temperature_initial_layer = 0; - int interface_print_temperature = 0; - float loading_speed = 0.f; - float loading_speed_start = 0.f; - float unloading_speed = 0.f; - float unloading_speed_start = 0.f; - float delay = 0.f ; - int cooling_moves = 0; - float cooling_initial_speed = 0.f; - float cooling_final_speed = 0.f; + // BBS: remove useless config + //float loading_speed = 0.f; + //float loading_speed_start = 0.f; + //float unloading_speed = 0.f; + //float unloading_speed_start = 0.f; + //float delay = 0.f ; + //int cooling_moves = 0; + //float cooling_initial_speed = 0.f; + //float cooling_final_speed = 0.f; float ramming_line_width_multiplicator = 1.f; float ramming_step_multiplicator = 1.f; float max_e_speed = std::numeric_limits::max(); @@ -349,41 +353,41 @@ public: float retract_length; float retract_speed; float wipe_dist; - float tower_interface_pre_extrusion_dist = 0.f; - float tower_interface_pre_extrusion_length = 0.f; - // Outward shift of the wipe start for a PETG pre-extrusion on filament-switcher devices; - // set from filament_tower_interface_pre_extrusion_dist. - float petg_pre_extrusion_offset_dist = 0.f; - float tower_ironing_area = 4.f; - float tower_interface_purge_length = 0.f; - // Distance (in mm of filament) that a hotend is allowed to pre-cool before the - // tower is reached; drives the prime-tower heating-during-wipe model (multi-nozzle only). - float filament_cooling_before_tower = 0.f; - // .first = extruder change, .second = nozzle change (carousel) - std::pair max_e_ramming_speed{0.f, 0.f}; - std::pair ramming_travel_time{0.f, 0.f}; - std::pair precool_target_temp{0, 0}; - std::pair,std::vector> precool_t; - std::pair,std::vector> precool_t_first_layer; + std::pair max_e_ramming_speed;//[0]extruder change [1]nozzle change + std::pair ramming_travel_time; // Travel time after ramming + std::pair,std::vector> precool_t;//Pre-cooling time, set to 0 to ensure the ramming speed is controlled solely by ramming volumetric speed. + std::pair, std::vector> precool_t_first_layer; + std::pair precool_target_temp; + float filament_cooling_before_tower = 0.f; + float flat_iron_area; + float filament_tower_interface_print_temp; + float filament_tower_interface_pre_extrusion_dist = 0; + float filament_tower_interface_pre_extrusion_length = 0; + float filament_petg_pre_extrusion_offset_dist = 0; }; - void set_used_filament_ids(const std::vector &used_filament_ids) { m_used_filament_ids = used_filament_ids; }; + void set_used_filament_ids(const std::vector &used_filament_ids) { m_used_filament_ids = used_filament_ids; }; void set_filament_categories(const std::vector & filament_categories) { m_filament_categories = filament_categories;}; - std::vector m_used_filament_ids; + void set_nozzle_group_result(const MultiNozzleUtils::LayeredNozzleGroupResult &multi_nozzle_group_result) { m_multi_nozzle_group_result = &multi_nozzle_group_result; }; + std::vector m_used_filament_ids; std::vector m_filament_categories; + const MultiNozzleUtils::LayeredNozzleGroupResult *m_multi_nozzle_group_result{nullptr}; + + enum class WipeTowerLayerType : unsigned char { Normal, Contact, Solid, Contact_UP};// Contact layer should be solid and reduce feed struct WipeTowerBlock { int block_id{0}; int filament_adhesiveness_category{0}; std::vector layer_depths; - std::vector solid_infill; + //std::vector solid_infill; std::vector finish_depth{0}; // the start pos of finish frame for every layer + std::vector layers_type; // type of the layer, normal, Contact or Solid float depth{0}; float start_depth{0}; float cur_depth{0}; - int last_filament_change_id{-1}; + int last_filament_change_id{-1}; int last_nozzle_change_id{-1}; }; @@ -403,25 +407,33 @@ public: WipeTowerBlock* get_block_by_category(int filament_adhesiveness_category, bool create); void add_depth_to_block(int filament_id, int filament_adhesiveness_category, float depth, bool is_nozzle_change = false); int get_filament_category(int filament_id); - bool is_in_same_extruder(int filament_id_1, int filament_id_2); - // Vortek H2C: format BBS-compatible NOZZLE_CHANGE_START/END tag with OF/NF/ON/NN payload - std::string format_nozzle_change_tag(bool start, int old_filament_id, int new_filament_id) const; void reset_block_status(); int get_wall_filament_for_all_layer(); // for generate new wipe tower void generate_new(std::vector> &result); void plan_tower_new(); - void generate_wipe_tower_blocks(); + void generate_wipe_tower_blocks(bool add_solid_flag); void update_all_layer_depth(float wipe_tower_depth); - + void set_nozzle_last_layer_id(); + void set_first_layer_flow_ratio(const float flow_ratio); + // Orca: default/initial-layer/travel acceleration are object-scope options here (PrintConfig + // members in BBS), so Print pushes the resolved per-variant columns in via this setter. + void set_accelerations(const std::vector &normal, const std::vector &first_layer_normal, + const std::vector &travel, const std::vector &first_layer_travel); + void calc_block_infill_gap(); ToolChangeResult tool_change_new(size_t new_tool, bool solid_change = false, bool solid_nozzlechange=false); - NozzleChangeResult nozzle_change_new(int old_filament_id, int new_filament_id, bool solid_change = false); + NozzleChangeResult ramming(int old_filament_id, int new_filament_id, bool solid_change = false, bool extruder_change = true); // extruder_chang means nozzle_change ToolChangeResult finish_layer_new(bool extrude_perimeter = true, bool extrude_fill = true, bool extrude_fill_wall = true); ToolChangeResult finish_block(const WipeTowerBlock &block, int filament_id, bool extrude_fill = true); - ToolChangeResult finish_block_solid(const WipeTowerBlock &block, int filament_id, bool extrude_fill = true ,bool interface_solid =false); + ToolChangeResult finish_block_solid(const WipeTowerBlock &block, int filament_id, bool extrude_fill = true, WipeTowerLayerType layer_type = WipeTowerLayerType::Normal); void toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinates &cleaning_box, float wipe_length,bool solid_toolchange=false); Vec2f get_rib_offset() const { return m_rib_offset; } + bool is_need_ramming(int filament_id_1, int filament_id_2, int layer_id) const; + bool is_same_extruder(int filament_id_1, int filament_id_2, int layer_id) const; + bool is_same_nozzle(int filament_id_1, int filament_id_2, int layer_id) const; + int get_nozzle_id(int filament_id, int layer_id) const; + int get_extruder_id(int filament_id, int layer_id) const; private: enum wipe_shape // A fill-in direction @@ -441,7 +453,6 @@ private: bool m_enable_wrapping_detection = false; bool m_enable_timelapse_print = false; bool m_semm = true; // Are we using a single extruder multimaterial printer? - bool m_purge_in_prime_tower = false; // Do we purge in the prime tower? Vec2f m_wipe_tower_pos; // Left front corner of the wipe tower in mm. float m_wipe_tower_width; // Width of the wipe tower. float m_wipe_tower_depth = 0.f; // Depth of the wipe tower @@ -459,12 +470,11 @@ private: float m_travel_speed = 0.f; float m_first_layer_speed = 0.f; size_t m_first_layer_idx = size_t(-1); - - std::vector m_filaments_change_length; + Vec2f m_origin; + std::vector m_last_layer_id; + std::pair,std::vector> m_filaments_change_length;//[0]extruder change [1]nozzle change size_t m_cur_layer_id; NozzleChangeResult m_nozzle_change_result; - std::vector m_filament_map; - std::vector m_filament_nozzle_map; // Vortek H2C: filament_id → physical nozzle_id bool m_has_tpu_filament{false}; bool m_is_multi_extruder{false}; bool m_use_gap_wall{false}; @@ -475,33 +485,32 @@ private: bool m_used_fillet{false}; Vec2f m_rib_offset{Vec2f(0.f, 0.f)}; bool m_tower_framework{false}; - + bool m_need_reverse_travel{false}; + bool m_enable_tower_interface_features{false}; // G-code generator parameters. - float m_cooling_tube_retraction = 0.f; - float m_cooling_tube_length = 0.f; - float m_parking_pos_retraction = 0.f; - float m_extra_loading_move = 0.f; + // BBS: remove useless config + //float m_cooling_tube_retraction = 0.f; + //float m_cooling_tube_length = 0.f; + //float m_parking_pos_retraction = 0.f; + //float m_extra_loading_move = 0.f; float m_bridging = 0.f; bool m_no_sparse_layers = false; - bool m_set_extruder_trimpot = false; + // BBS: remove useless config + //bool m_set_extruder_trimpot = false; bool m_adhesion = true; GCodeFlavor m_gcode_flavor; - - // Multi-nozzle prime-tower heating during wipe. m_is_multiple_nozzle gates the whole - // feature; it is false for every current (single-nozzle) printer (extruder_max_nozzle_count - // defaults to 1), so the pre-heat/pre-cool path is inert and wipe-tower g-code is unchanged. - bool m_is_multiple_nozzle = false; - std::vector m_hotend_heating_rate; // config.hotend_heating_rate (deg/s per extruder) - std::vector m_physical_extruder_map; // logical extruder -> physical tool number (M104 T param) - - // Per-extruder printable-height clamp. m_printable_height = config.extruder_printable_height - // (per-extruder Z limit; empty for single-extruder printers, [320,325] for H2D). m_last_layer_id - // records, per extruder, the last wipe-tower layer that uses it. is_valid_last_layer() is gated on - // m_is_multi_extruder so single-extruder wipe-tower g-code is unchanged; the clamp only bites a - // multi-extruder wipe tower whose final per-extruder layer exceeds that extruder's printable - // height (near the Z limit). - std::vector m_printable_height; - std::vector m_last_layer_id; + bool m_is_multiple_nozzle = false; + std::vector m_normal_accels; + std::vector m_first_layer_normal_accels; + std::vector m_travel_accels; + std::vector m_first_layer_travel_accels; + unsigned int m_max_accels; + bool m_accel_to_decel_enable; + float m_accel_to_decel_factor; + bool m_enable_arc_fitting = true; + std::vector m_hotend_heating_rate; + std::vector m_hotend_cooling_rate; + Polygons m_shared_print_bed; // Bed properties enum { @@ -512,10 +521,11 @@ private: float m_bed_width; // width of the bed bounding box Vec2f m_bed_bottom_left; // bottom-left corner coordinates (for rectangular beds) + float m_first_layer_flow_ratio; float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill. float m_nozzle_change_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; float m_extrusion_flow = 0.038f; //0.029f;// Extrusion flow is derived from m_perimeter_width, layer height and filament diameter. - + std::unordered_map> m_block_infill_gap_width; // categories to infill_gap: toolchange gap, nozzlechange gap // Extruder specific parameters. std::vector m_filpar; @@ -528,50 +538,52 @@ private: // A fill-in direction (positive Y, negative Y) alternates with each layer. wipe_shape m_current_shape = SHAPE_NORMAL; size_t m_current_tool = 0; - // Orca: support mmu wipe tower - std::vector> wipe_volumes; + // BBS + //const std::vector> wipe_volumes; float m_depth_traversed = 0.f; // Current y position at the wipe tower. bool m_current_layer_finished = false; bool m_left_to_right = true; float m_extra_spacing = 1.f; float m_tpu_fixed_spacing = 2; - std::vector m_wall_skip_points; + float m_max_speed = 5400.f; // the maximum printing speed on the prime tower. + std::vector> m_wall_skip_points; std::map m_outer_wall; + std::vector m_printable_height; bool is_first_layer() const { return size_t(m_layer_info - m_plan.begin()) == m_first_layer_idx; } + bool is_valid_last_layer(int tool, int layer_id, double layer_z) const; bool m_flat_ironing=false; - bool m_enable_tower_interface_features=false; - bool m_enable_tower_interface_cooldown_during_tower=false; - // Filament-switcher device flag + shared printable bed for the PETG pre-extrusion offset. - // m_has_filament_switcher is false for the whole shipping fleet (no profile sets the key), so - // the PETG branch in get_next_pos never runs -> no change fleet-wide. - bool m_has_filament_switcher=false; - Polygons m_shared_print_bed; - bool m_prev_layer_had_interface=false; - bool m_current_layer_has_interface=false; + bool m_contact_ironing = false; + bool m_has_filament_switcher = false; + float m_contact_speed = 20 * 60.f; + std::vector m_physical_extruder_map; // Calculates length of extrusion line to extrude given volume float volume_to_length(float volume, float line_width, float layer_height) const { return std::max(0.f, volume / (layer_height * (line_width - layer_height * (1.f - float(M_PI) / 4.f)))); } - + // Calculates volume of extrusion line + float length_to_volume(float length,float line_width, float layer_height) const + { + return std::max(0.f, length * (layer_height * (line_width - layer_height * (1.f - float(M_PI) / 4.f)))); + } // Calculates depth for all layers and propagates them downwards void plan_tower(); // Goes through m_plan and recalculates depths and width of the WT to make it exactly square - experimental void make_wipe_tower_square(); - Vec2f get_next_pos(const WipeTower::box_coordinates &cleaning_box, float wipe_length, bool interface_layer, size_t interface_tool); + Vec2f get_next_pos(const WipeTower::box_coordinates &cleaning_box, float wipe_length, bool solid_toolchange); // Goes through m_plan, calculates border and finish_layer extrusions and subtracts them from last wipe void save_on_last_wipe(); bool is_tpu_filament(int filament_id) const; bool is_petg_filament(int filament_id) const; - bool is_need_reverse_travel(int filament_id, bool extruder_change) const; - + bool is_need_reverse_travel(int filament, bool extruder_change) const; // BBS box_coordinates align_perimeter(const box_coordinates& perimeter_box); + void set_for_wipe_tower_writer(WipeTowerWriter &writer); // to store information about tool changes for a given layer struct WipeTowerInfo{ @@ -584,6 +596,7 @@ private: float wipe_volume; float wipe_length; float nozzle_change_depth{0}; + float nozzle_change_length{0}; // BBS float purge_volume; ToolChange(size_t old, size_t newtool, float depth=0.f, float ramming_depth=0.f, float fwl=0.f, float wv=0.f, float wl = 0, float pv = 0) @@ -613,7 +626,7 @@ private: // ot -1 if there is no such toolchange. int first_toolchange_to_nonsoluble_nonsupport( const std::vector& tool_changes) const; - + WipeTowerInfo::ToolChange set_toolchange(int old_tool, int new_tool, float layer_height, float wipe_volume, float purge_volume,int layer_id); void toolchange_Unload( WipeTowerWriter &writer, const box_coordinates &cleaning_box, @@ -633,13 +646,10 @@ private: WipeTowerWriter &writer, const box_coordinates &cleaning_box, float wipe_volume); - void get_wall_skip_points(const WipeTowerInfo &layer); - - // Per-extruder printable-height clamp (see m_printable_height). is_valid_last_layer returns - // false only for a multi-extruder wipe tower's final per-extruder layer that exceeds that - // extruder's printable height; returns true (no clamp) in every other case. - bool is_valid_last_layer(int tool, int layer_id, double layer_z) const; - void set_nozzle_last_layer_id(); + void get_wall_skip_points(const WipeTowerInfo &layer,int layer_id); + void get_all_wall_skip_points(); + ToolChangeResult merge_tcr(ToolChangeResult &first, ToolChangeResult &second); + float get_block_gap_width(int tool, bool is_nozzlechangle = false); }; diff --git a/src/libslic3r/GCode/WipeTower2.cpp b/src/libslic3r/GCode/WipeTower2.cpp index 34b385d4be..ee0f9c375a 100644 --- a/src/libslic3r/GCode/WipeTower2.cpp +++ b/src/libslic3r/GCode/WipeTower2.cpp @@ -24,7 +24,6 @@ namespace Slic3r { -static constexpr float flat_iron_area = 4.f; constexpr float flat_iron_speed = 10.f * 60.f; static const double wipe_tower_wall_infill_overlap = 0.0; static constexpr double WIPE_TOWER_RESOLUTION = 0.1; @@ -234,24 +233,6 @@ static Polygon rounding_rectangle(Polygon& polygon, double rounding = 2., double return res; } -static std::pair ray_intersetion_line(const Vec2f& a, const Vec2f& v1, const Vec2f& b, const Vec2f& c) -{ - const Vec2f v2 = c - b; - double denom = cross2(v1, v2); - if (fabs(denom) < EPSILON) - return {false, Vec2f(0, 0)}; - const Vec2f v12 = (a - b); - double nume_a = cross2(v2, v12); - double nume_b = cross2(v1, v12); - double t1 = nume_a / denom; - double t2 = nume_b / denom; - if (t1 >= 0 && t2 >= 0 && t2 <= 1.) { - // Get the intersection point. - Vec2f res = a + t1 * v1; - return std::pair(true, res); - } - return std::pair(false, Vec2f{0, 0}); -} static Polygon scale_polygon(const std::vector& points) { Polygon res; @@ -296,6 +277,7 @@ static Polygon generate_rectange(const Line& line, coord_t offset) return poly; }; +// Straight or arc-fitted wall segment used by WipeTowerWriter2::generate_path(). struct Segment { Vec2f start; @@ -306,234 +288,6 @@ struct Segment bool is_valid() const { return start.y() < end.y(); } }; -static std::vector remove_points_from_segment(const Segment& segment, const std::vector& skip_points, double range) -{ - std::vector result; - result.push_back(segment); - float x = segment.start.x(); - - for (const Vec2f& point : skip_points) { - std::vector newResult; - for (const auto& seg : result) { - if (point.y() + range <= seg.start.y() || point.y() - range >= seg.end.y()) { - newResult.push_back(seg); - } else { - if (point.y() - range > seg.start.y()) { - newResult.push_back(Segment(Vec2f(x, seg.start.y()), Vec2f(x, point.y() - range))); - } - if (point.y() + range < seg.end.y()) { - newResult.push_back(Segment(Vec2f(x, point.y() + range), Vec2f(x, seg.end.y()))); - } - } - } - - result = newResult; - } - - result.erase(std::remove_if(result.begin(), result.end(), [](const Segment& seg) { return !seg.is_valid(); }), result.end()); - return result; -} - -struct IntersectionInfo -{ - Vec2f pos; - int idx; - int pair_idx; // gap_pair idx - float dis_from_idx; - bool is_forward; -}; - -struct PointWithFlag -{ - Vec2f pos; - int pair_idx; // gap_pair idx - bool is_forward; -}; -static IntersectionInfo move_point_along_polygon( - const std::vector& points, const Vec2f& startPoint, int startIdx, float offset, bool forward, int pair_idx) -{ - float remainingDistance = offset; - IntersectionInfo res; - int mod = points.size(); - if (forward) { - int next = (startIdx + 1) % mod; - remainingDistance -= (points[next] - startPoint).norm(); - if (remainingDistance <= 0) { - res.idx = startIdx; - res.pos = startPoint + (points[next] - startPoint).normalized() * offset; - res.pair_idx = pair_idx; - res.dis_from_idx = (points[startIdx] - res.pos).norm(); - return res; - } else { - for (int i = (startIdx + 1) % mod; i != startIdx; i = (i + 1) % mod) { - float segmentLength = (points[(i + 1) % mod] - points[i]).norm(); - if (remainingDistance <= segmentLength) { - float ratio = remainingDistance / segmentLength; - res.idx = i; - res.pos = points[i] + ratio * (points[(i + 1) % mod] - points[i]); - res.dis_from_idx = remainingDistance; - res.pair_idx = pair_idx; - return res; - } - remainingDistance -= segmentLength; - } - res.idx = (startIdx - 1 + mod) % mod; - res.pos = points[startIdx]; - res.pair_idx = pair_idx; - res.dis_from_idx = (res.pos - points[res.idx]).norm(); - } - } else { - int next = (startIdx + 1) % mod; - remainingDistance -= (points[startIdx] - startPoint).norm(); - if (remainingDistance <= 0) { - res.idx = startIdx; - res.pos = startPoint - (points[next] - points[startIdx]).normalized() * offset; - res.dis_from_idx = (res.pos - points[startIdx]).norm(); - res.pair_idx = pair_idx; - return res; - } - for (int i = (startIdx - 1 + mod) % mod; i != startIdx; i = (i - 1 + mod) % mod) { - float segmentLength = (points[(i + 1) % mod] - points[i]).norm(); - if (remainingDistance <= segmentLength) { - float ratio = remainingDistance / segmentLength; - res.idx = i; - res.pos = points[(i + 1) % mod] - ratio * (points[(i + 1) % mod] - points[i]); - res.dis_from_idx = segmentLength - remainingDistance; - res.pair_idx = pair_idx; - return res; - } - remainingDistance -= segmentLength; - } - res.idx = startIdx; - res.pos = points[res.idx]; - res.pair_idx = pair_idx; - res.dis_from_idx = 0; - } - return res; -}; - -static void insert_points(std::vector& pl, int idx, Vec2f pos, int pair_idx, bool is_forward) -{ - int next = (idx + 1) % pl.size(); - Vec2f pos1 = pl[idx].pos; - Vec2f pos2 = pl[next].pos; - if ((pos - pos1).squaredNorm() < EPSILON) { - pl[idx].pair_idx = pair_idx; - pl[idx].is_forward = is_forward; - } else if ((pos - pos2).squaredNorm() < EPSILON) { - pl[next].pair_idx = pair_idx; - pl[next].is_forward = is_forward; - } else { - pl.insert(pl.begin() + idx + 1, PointWithFlag{pos, pair_idx, is_forward}); - } -} - -static Polylines remove_points_from_polygon( - const Polygon& polygon, const std::vector& skip_points, double range, bool is_left, Polygon& insert_skip_pg) -{ - assert(polygon.size() > 2); - Polylines result; - std::vector new_pl; // add intersection points for gaps, where bool indicates whether it's a gap point. - std::vector inter_info; - Vec2f ray = is_left ? Vec2f(-1, 0) : Vec2f(1, 0); - auto polygon_box = get_extents(polygon); - Point anchor_point = is_left ? Point{polygon_box.max[0], polygon_box.min[1]} : polygon_box.min; // rd:ld - std::vector points; - { - points.reserve(polygon.points.size()); - int idx = polygon.closest_point_index(anchor_point); - Polyline tmp_poly = polygon.split_at_index(idx); - for (auto& p : tmp_poly) - points.push_back(unscale(p).cast()); - points.pop_back(); - } - - for (int i = 0; i < skip_points.size(); i++) { - for (int j = 0; j < points.size(); j++) { - Vec2f& p1 = points[j]; - Vec2f& p2 = points[(j + 1) % points.size()]; - auto [is_inter, inter_pos] = ray_intersetion_line(skip_points[i], ray, p1, p2); - if (is_inter) { - IntersectionInfo forward = move_point_along_polygon(points, inter_pos, j, range, true, i); - IntersectionInfo backward = move_point_along_polygon(points, inter_pos, j, range, false, i); - backward.is_forward = false; - forward.is_forward = true; - inter_info.push_back(backward); - inter_info.push_back(forward); - break; - } - } - } - - // insert point to new_pl - for (const auto& p : points) - new_pl.push_back({p, -1}); - std::sort(inter_info.begin(), inter_info.end(), [](const IntersectionInfo& lhs, const IntersectionInfo& rhs) { - if (rhs.idx == lhs.idx) - return lhs.dis_from_idx < rhs.dis_from_idx; - return lhs.idx < rhs.idx; - }); - for (int i = inter_info.size() - 1; i >= 0; i--) { - insert_points(new_pl, inter_info[i].idx, inter_info[i].pos, inter_info[i].pair_idx, inter_info[i].is_forward); - } - - { - // set insert_pg for wipe_path - for (auto& p : new_pl) - insert_skip_pg.points.push_back(scaled(p.pos)); - } - - int beg = 0; - bool skip = true; - int i = beg; - Polyline pl; - - do { - if (skip || new_pl[i].pair_idx == -1) { - pl.points.push_back(scaled(new_pl[i].pos)); - i = (i + 1) % new_pl.size(); - skip = false; - } else { - if (!pl.points.empty()) { - pl.points.push_back(scaled(new_pl[i].pos)); - result.push_back(pl); - pl.points.clear(); - } - int left = new_pl[i].pair_idx; - int j = (i + 1) % new_pl.size(); - while (j != beg && new_pl[j].pair_idx != left) { - if (new_pl[j].pair_idx != -1 && !new_pl[j].is_forward) - left = new_pl[j].pair_idx; - j = (j + 1) % new_pl.size(); - } - i = j; - skip = true; - } - } while (i != beg); - - if (!pl.points.empty()) { - if (new_pl[i].pair_idx == -1) - pl.points.push_back(scaled(new_pl[i].pos)); - result.push_back(pl); - } - return result; -} - -static Polylines contrust_gap_for_skip_points( - const Polygon& polygon, const std::vector& skip_points, float wt_width, float gap_length, Polygon& insert_skip_polygon) -{ - if (skip_points.empty()) { - insert_skip_polygon = polygon; - return Polylines{to_polyline(polygon)}; - } - bool is_left = false; - const auto& pt = skip_points.front(); - if (abs(pt.x()) < wt_width / 2.f) { - is_left = true; - } - return remove_points_from_polygon(polygon, skip_points, gap_length, is_left, insert_skip_polygon); -}; - static Polygon generate_rectange_polygon(const Vec2f& wt_box_min, const Vec2f& wt_box_max) { Polygon res; @@ -632,7 +386,8 @@ public: } WipeTowerWriter2& switch_filament_monitoring(bool enable) { - m_gcode += std::string("G4 S0\n") + "M591 " + (enable ? "R" : "S0") + "\n"; + flush_planner_queue(); + m_gcode += enable ? "M591 R\n" : "M591 S0\n"; return *this; } @@ -658,6 +413,7 @@ public: const Vec2f& pos() const { return m_current_pos; } const Vec2f start_pos_rotated() const { return m_start_pos; } const Vec2f pos_rotated() const { return this->rotate(m_current_pos); } + const Vec2f rotated(const Vec2f &pt) const { return this->rotate(pt); } float elapsed_time() const { return m_elapsed_time; } float get_and_reset_used_filament_length() { float temp = m_used_filament_length; m_used_filament_length = 0.f; return temp; } @@ -869,10 +625,13 @@ public: } // Set extruder temperature, don't wait by default. - WipeTowerWriter2& set_extruder_temp(int temperature, bool wait = false) + WipeTowerWriter2& set_extruder_temp(int temperature, bool wait = false, const std::string& comment = std::string()) { - m_gcode += "G4 S0\n"; // to flush planner queue - m_gcode += "M" + std::to_string(wait ? 109 : 104) + " S" + std::to_string(temperature) + "\n"; + flush_planner_queue(); + m_gcode += "M" + std::to_string(wait ? 109 : 104) + " S" + std::to_string(temperature); + if (!comment.empty()) + m_gcode += " " + comment; + m_gcode += "\n"; return *this; } @@ -881,7 +640,7 @@ public: { if (time==0.f) return *this; - m_gcode += "G4 S" + Slic3r::float_to_string_decimal_point(time, 3) + "\n"; + m_gcode += wait_command(m_gcode_flavor, time); return *this; } @@ -923,8 +682,8 @@ public: } WipeTowerWriter2& flush_planner_queue() - { - m_gcode += "G4 S0\n"; + { + m_gcode += flush_planner_queue_command(m_gcode_flavor); return *this; } @@ -1245,6 +1004,19 @@ WipeTower::ToolChangeResult WipeTower2::construct_tcr(WipeTowerWriter2& writer, +bool WipeTower2::use_gap_wall(const PrintConfig& config) +{ + // The cone wall has its own fully separate generator with no gap machinery. + return config.prime_tower_skip_points.value && config.wipe_tower_wall_type.value != wtwCone; +} + +bool WipeTower2::wait_for_temp_enabled(const PrintConfig& config) +{ + // SEMM runs its own unload/load temperature sequence; the GUI hides the option + // there but a profile may still carry it set. + return config.wait_for_temp_on_wipe_tower.value && !config.single_extruder_multi_material.value; +} + WipeTower2::WipeTower2(const PrintConfig& config, const PrintRegionConfig& default_region_config,int plate_idx, Vec3d plate_origin, const std::vector>& wiping_matrix, size_t initial_tool) : m_semm(config.single_extruder_multi_material.value), m_enable_filament_ramming(config.enable_filament_ramming.value), @@ -1272,9 +1044,10 @@ WipeTower2::WipeTower2(const PrintConfig& config, const PrintRegionConfig& defau m_rib_width(config.wipe_tower_rib_width), m_extra_rib_length(config.wipe_tower_extra_rib_length), m_wall_type((int)config.wipe_tower_wall_type), - m_flat_ironing(config.prime_tower_flat_ironing.value), + m_use_gap_wall(use_gap_wall(config)), m_enable_tower_interface_features(config.enable_tower_interface_features.value), - m_enable_tower_interface_cooldown_during_tower(config.enable_tower_interface_cooldown_during_tower.value) + m_enable_tower_interface_cooldown_during_tower(config.enable_tower_interface_cooldown_during_tower.value), + m_wait_for_temp_on_wipe_tower(wait_for_temp_enabled(config)) { // Read absolute value of first layer speed, if given as percentage, // it is taken over following default. Speeds from config are not @@ -1324,6 +1097,7 @@ WipeTower2::WipeTower2(const PrintConfig& config, const PrintRegionConfig& defau m_bed_bottom_left = m_bed_shape == RectangularBed ? Vec2f(bed_points.front().x(), bed_points.front().y()) : Vec2f::Zero(); + m_bed_polygon = Polygon::new_scale(bed_points); } @@ -1342,6 +1116,7 @@ void WipeTower2::set_extruder(size_t idx, const PrintConfig& config) m_filpar[idx].is_soluble = (idx != size_t(m_wipe_tower_filament - 1)); else m_filpar[idx].is_soluble = config.filament_soluble.get_at(idx); + m_filpar[idx].is_support = config.filament_is_support.get_at(idx); m_filpar[idx].temperature = config.nozzle_temperature.get_at(idx); m_filpar[idx].first_layer_temperature = config.nozzle_temperature_initial_layer.get_at(idx); m_filpar[idx].filament_minimal_purge_on_wipe_tower = config.filament_minimal_purge_on_wipe_tower.get_at(idx); @@ -1474,15 +1249,15 @@ std::vector WipeTower2::prime( unsigned int tool = tools[idx_tool]; m_left_to_right = true; - toolchange_Change(writer, tool, m_filpar[tool].material); // Select the tool, set a speed override for soluble and flex materials. + toolchange_Change(writer, tool, m_filpar[tool].material, m_filpar[tool].first_layer_temperature, false); // Select the tool, set a speed override for soluble and flex materials. toolchange_Load(writer, cleaning_box); // Prime the tool. if (idx_tool + 1 == tools.size()) { // Last tool should not be unloaded, but it should be wiped enough to become of a pure color. - toolchange_Wipe(writer, cleaning_box, wipe_volumes[tools[idx_tool-1]][tool], false); + toolchange_Wipe(writer, cleaning_box, wipe_volumes[tools[idx_tool-1]][tool], false, true); } else { // Ram the hot material out of the melt zone, retract the filament into the cooling tubes and let it cool. //writer.travel(writer.x(), writer.y() + m_perimeter_width, 7200); - toolchange_Wipe(writer, cleaning_box , 20.f, false); + toolchange_Wipe(writer, cleaning_box , 20.f, false, true); WipeTower::box_coordinates box = cleaning_box; box.translate(0.f, writer.y() - cleaning_box.ld.y() + m_perimeter_width); toolchange_Unload(writer, box , m_filpar[m_current_tool].material, m_filpar[m_current_tool].first_layer_temperature, m_filpar[tools[idx_tool + 1]].first_layer_temperature); @@ -1525,8 +1300,9 @@ WipeTower::ToolChangeResult WipeTower2::tool_change(size_t tool) float wipe_area = 0.f; float wipe_volume = 0.f; + float ramming_depth = 0.f; bool interface_layer = m_enable_tower_interface_features && m_current_layer_has_interface; - + // Finds this toolchange info if (tool != (unsigned int)(-1)) { @@ -1534,6 +1310,7 @@ WipeTower::ToolChangeResult WipeTower2::tool_change(size_t tool) if ( b.new_tool == tool ) { wipe_volume = b.wipe_volume; wipe_area = b.required_depth; + ramming_depth = b.ramming_depth; break; } } @@ -1571,7 +1348,9 @@ WipeTower::ToolChangeResult WipeTower2::tool_change(size_t tool) writer.speed_override_backup(); writer.speed_override(100); - Vec2f initial_position = cleaning_box.ld + Vec2f(0.f, m_depth_traversed); + // On a boundary wipe start this enters at the wall gap on the first wipe row; + // toolchange_Unload() then climbs back up to the ram band along the box interior. + Vec2f initial_position = toolchange_entry_pos(m_depth_traversed, ramming_depth, is_first_layer()); writer.set_initial_position(initial_position, m_wipe_tower_width, m_wipe_tower_depth, m_internal_rotation); // Increase the extruder driver current to allow fast ramming. @@ -1580,17 +1359,28 @@ WipeTower::ToolChangeResult WipeTower2::tool_change(size_t tool) // Ram the hot material out of the melt zone, retract the filament into the cooling tubes and let it cool. if (tool != (unsigned int)-1){ // This is not the last change. + // Without a ram — or with the boundary wipe start, where the ram band is + // quantized to whole rows — the box is planned as whole wipe rows; the wipe + // then fills it completely so adjacent purge blocks stay contiguous. Uses the + // old tool (m_current_tool before toolchange_Change). + const bool fill_box = !tool_ramming_enabled(m_current_tool) || boundary_wipe_start_enabled(m_current_tool); auto new_tool_temp = is_first_layer() ? m_filpar[tool].first_layer_temperature : m_filpar[tool].temperature; toolchange_Unload(writer, cleaning_box, m_filpar[m_current_tool].material, (is_first_layer() ? m_filpar[m_current_tool].first_layer_temperature : m_filpar[m_current_tool].temperature), new_tool_temp); - toolchange_Change(writer, tool, m_filpar[tool].material); // Change the tool, set a speed override for soluble and flex materials. + // Wait-at-tower target: the interface temp when an interface boost applies on this layer, + // otherwise the print temp (nozzle_temperature == 0 means "use the first layer temp"). + int wait_for_temp = interface_layer && m_filpar[tool].interface_print_temperature > 0 ? + m_filpar[tool].interface_print_temperature : + (is_first_layer() || m_filpar[tool].temperature == 0 ? m_filpar[tool].first_layer_temperature : m_filpar[tool].temperature); + toolchange_Change(writer, tool, m_filpar[tool].material, wait_for_temp, true); // Change the tool, set a speed override for soluble and flex materials. toolchange_Load(writer, cleaning_box); writer.travel(writer.x(), writer.y()-m_perimeter_width); // cooling and loading were done a bit down the road int base_temp = is_first_layer() ? m_filpar[tool].first_layer_temperature : m_filpar[tool].temperature; if (interface_layer) { int interface_temp = m_filpar[tool].interface_print_temperature; - if (interface_temp > 0 && interface_temp != base_temp) + // With wait-for-temp-on-wipe-tower the toolchange already blocked for the interface temp. + if (interface_temp > 0 && interface_temp != base_temp && !m_wait_for_temp_on_wipe_tower) writer.set_extruder_temp(interface_temp, true); if (m_enable_tower_interface_cooldown_during_tower && interface_temp > 0 && interface_temp != base_temp) writer.set_extruder_temp(base_temp, false); @@ -1602,7 +1392,7 @@ WipeTower::ToolChangeResult WipeTower2::tool_change(size_t tool) writer.extrude_explicit(target_x, writer.y(), pre_len, 600.f); } } - toolchange_Wipe(writer, cleaning_box, wipe_volume, interface_layer); // Wipe the newly loaded filament until the end of the assigned wipe area. + toolchange_Wipe(writer, cleaning_box, wipe_volume, interface_layer, false, fill_box); // Wipe the newly loaded filament until the end of the assigned wipe area. if (interface_layer) { int interface_temp = m_filpar[tool].interface_print_temperature; if (!m_enable_tower_interface_cooldown_during_tower && interface_temp > 0 && interface_temp != base_temp) @@ -1657,11 +1447,20 @@ void WipeTower2::toolchange_Unload( float remaining = xr - xl ; // keeps track of distance to the next turnaround float e_done = 0; // measures E move done from each segment - // Orca: Do ramming when SEMM and ramming is enabled or when multi tool head when ramming is enabled on the multi tool. - const bool do_ramming = (m_semm && m_enable_filament_ramming) || m_filpar[m_current_tool].multitool_ramming; + const bool do_ramming = tool_ramming_enabled(m_current_tool); const bool cold_ramming = m_is_mk4mmu3; + // Orca: see set_toolchange() — quantized ram band + wipe restart at the boundary. + const bool boundary_wipe_start = boundary_wipe_start_enabled(m_current_tool); + float planned_ramming_depth = 0.f; + if (boundary_wipe_start && m_layer_info != m_plan.end()) + for (const auto& tch : m_layer_info->tool_changes) + if (tch.old_tool == m_current_tool) { planned_ramming_depth = tch.ramming_depth; break; } if (do_ramming) { + if (boundary_wipe_start) + // The entry sits at the wall gap on the first wipe row past the reserved + // ram band; step inward first, then move to the band clear of the wall. + writer.travel(Vec2f(ramming_start_pos.x(), writer.y())); writer.travel(ramming_start_pos); // move to starting position if (! m_is_mk4mmu3) writer.disable_linear_advance(); @@ -1672,7 +1471,8 @@ void WipeTower2::toolchange_Unload( writer.set_position(ramming_start_pos); // if the ending point of the ram would end up in mid air, align it with the end of the wipe tower: - if (do_ramming && (m_layer_info > m_plan.begin() && m_layer_info < m_plan.end() && (m_layer_info-1!=m_plan.begin() || !m_adhesion ))) { + // (with a boundary wipe start the band is quantized to whole rows below, so no phase alignment is needed) + if (do_ramming && !boundary_wipe_start && (m_layer_info > m_plan.begin() && m_layer_info < m_plan.end() && (m_layer_info-1!=m_plan.begin() || !m_adhesion ))) { // this is y of the center of previous sparse infill border float sparse_beginning_y = 0.f; @@ -1731,6 +1531,28 @@ void WipeTower2::toolchange_Unload( e_done = 0; } } + + // Orca: quantize the ram band up to the whole reserved rows (BBL quantizes the + // old-tool purge the same way) so no unprinted void is left between the band and + // the wipe restarting at the boundary below it. + if (planned_ramming_depth > 0.f) { + const int reserved_rows = std::max(1, int(std::round(planned_ramming_depth / y_step))); + const float last_row_y = ramming_start_pos.y() + (reserved_rows - 1) * y_step; + // Same bead model as the ramming segments above: E per mm of ram line. + const float e_per_mm = 1.f / (volume_to_length(1.f, line_width, m_layer_height) * filament_area()); + const float fill_feed = m_filpar[m_current_tool].ramming_speed.empty() ? 3000.f : + 60.f * volume_to_length(m_filpar[m_current_tool].ramming_speed.back(), line_width, m_layer_height); + while (true) { + const float target_x = m_left_to_right ? xr : xl; + if (std::abs(target_x - writer.x()) > WT_EPSILON) + writer.ram(writer.x(), target_x, 0.f, 0.f, e_per_mm * std::abs(target_x - writer.x()), fill_feed); + if (writer.y() + 0.5f * y_step > last_row_y) + break; + writer.travel(writer.x(), writer.y() + y_step, 7200); + m_left_to_right = !m_left_to_right; + } + } + Vec2f end_of_ramming(writer.x(),writer.y()); writer.change_analyzer_line_width(m_perimeter_width); // so the next lines are not affected by ramming_line_width_multiplier @@ -1838,10 +1660,27 @@ void WipeTower2::toolchange_Unload( // this is to align ramming and future wiping extrusions, so the future y-steps can be uniform from the start: // the perimeter_width will later be subtracted, it is there to not load while moving over just extruded material Vec2f pos = Vec2f(end_of_ramming.x(), end_of_ramming.y() + (y_step/m_extra_spacing_ramming-m_perimeter_width) / 2.f + m_perimeter_width); - if (do_ramming) + if (planned_ramming_depth > 0.f) { + // Orca: restart the wipe at the left-edge boundary on a fresh row below the + // quantized ram band so the entry scrub always runs at the wall gap (BBL keeps + // CP_TOOLCHANGE_WIPE starting at a box corner the same way). Same lattice + // formula as the no-ram branch below, offset by the ram band. + writer.travel(Vec2f(ramming_start_pos.x(), + cleaning_box.ld.y() + m_depth_traversed + + wipe_start_offset_after_ram(planned_ramming_depth, is_first_layer()) + m_perimeter_width), 2400.f); + m_left_to_right = true; + } + else if (do_ramming) writer.travel(pos, 2400.f); - else - writer.set_position(pos); + else { + // Orca: with no ram printed there is no ramming geometry to align with. Start the + // first wipe row so the purge row lattice continues across the block boundary + // (previous box's last row top edge sits at its box top): with the planned depth + // of rows * dy, the last row's top edge then lands exactly on this box's top and + // no blank band is left between adjacent purge blocks. + writer.set_position(Vec2f(end_of_ramming.x(), + cleaning_box.ld.y() + m_depth_traversed + wipe_start_offset_after_ram(0.f, is_first_layer()) + m_perimeter_width)); + } writer.resume_preview() .flush_planner_queue(); @@ -1851,7 +1690,9 @@ void WipeTower2::toolchange_Unload( void WipeTower2::toolchange_Change( WipeTowerWriter2 &writer, const size_t new_tool, - const std::string& new_material) + const std::string& new_material, + const int wait_for_temp, + const bool wait_beside_tower) { // Ask the writer about how much of the old filament we consumed: if (m_current_tool < m_used_filament_length.size()) @@ -1865,6 +1706,90 @@ void WipeTower2::toolchange_Change( if (m_is_mk4mmu3) writer.switch_filament_monitoring(true); + const bool wait_for_temp_here = m_wait_for_temp_on_wipe_tower && wait_for_temp > 0; + + // The Tn above was issued without a blocking temperature wait (GCode::set_extruder only raises + // the target, ahead of the Tn); block here, before the deretraction below, which must not + // extrude on a cold nozzle. Like the Bambu H2C, park beside the tower for the heat-up so drool lands + // next to it instead of on its top surface — nearest x side first, then that side clamped + // toward the bed edge, then the far side, in place if all would leave the bed. Raw + // pre-rotated moves (see the repositioning move below) keep the writer's tracked position + // at the tower entry. The tag keeps the + // interface-temp deduplication pass in append_tcr2 from stripping the M109. + if (wait_for_temp_here && wait_beside_tower) { + // The rib wall and the stabilization cone bulge past the nominal width rectangle + // (widest near the bottom), and the first-layer brim is printed around the wall later + // in the layer — clear the widest of them, not just the rectangle, so the park point + // and its drool stay off the tower. + float min_x = 0.f, max_x = m_wipe_tower_width; + if (m_wall_type == (int)wtwRib) { + WipeTower::box_coordinates wt_box(Vec2f(0.f, 0.f), m_wipe_tower_width, m_layer_info->depth + m_perimeter_width); + const BoundingBox rib_bbox = get_extents(generate_rib_polygon(wt_box)); // the fillet stays within this bbox + min_x = std::min(min_x, unscaled(rib_bbox.min.x())); + max_x = std::max(max_x, unscaled(rib_bbox.max.x())); + } else if (m_wall_type == (int)wtwCone) { + const double support_scale = get_wipe_tower_cone_base(m_wipe_tower_width, m_wipe_tower_height, m_wipe_tower_depth, + m_wipe_tower_cone_angle).second; + const double z = m_no_sparse_layers ? (m_current_height + m_layer_info->height) : m_layer_info->z; + const double r = std::tan(Geometry::deg2rad(m_wipe_tower_cone_angle / 2.f)) * (m_wipe_tower_height - z); + const double w = m_layer_info->depth + m_perimeter_width; + if (r > 0.5 * w + 0.01) { // same guard as generate_support_cone_wall + const float bulge = float(std::sqrt(r * r - 0.25 * w * w) / support_scale); + min_x = std::min(min_x, m_wipe_tower_width / 2.f - bulge); + max_x = std::max(max_x, m_wipe_tower_width / 2.f + bulge); + } + } + if (is_first_layer()) { + const float brim = m_wipe_tower_brim_width < 0.f ? WipeTower::get_auto_brim_by_height(m_wipe_tower_height) : + m_wipe_tower_brim_width; + min_x -= brim; + max_x += brim; + } + constexpr float gap = 2.f; + constexpr float min_gap = 0.5f; + const bool on_left = writer.x() < m_wipe_tower_width / 2.f; + const float near_x = on_left ? min_x - gap : max_x + gap; + const float far_x = on_left ? max_x + gap : min_x - gap; + const Eigen::Rotation2Df to_bed(float(Geometry::deg2rad(m_wipe_tower_rotation_angle))); + auto park_pt_on_bed = [this, &writer, to_bed](float side_x) { + const Vec2f bed_pt = to_bed * (writer.rotated(Vec2f(side_x, writer.y())) + m_rib_offset) + m_wipe_tower_pos; + return m_bed_polygon.contains(Point::new_scale(bed_pt.x(), bed_pt.y())); + }; + float park_x = near_x; + bool have_park = park_pt_on_bed(near_x); + if (!have_park) { + // The ideal near point hangs off the bed: pull it back to the bed edge as long + // as that still clears the tower envelope by min_gap (the BBL tower clamps its + // stop_pos against the bed the same way in append_tcr). Bisection, because with + // tower rotation and non-rectangular beds the bed edge is not axis-aligned. + const float limit_x = on_left ? min_x - min_gap : max_x + min_gap; + if (park_pt_on_bed(limit_x)) { + float on = limit_x, off = near_x; + for (int i = 0; i < 8; ++i) { + const float mid = 0.5f * (on + off); + if (park_pt_on_bed(mid)) + on = mid; + else + off = mid; + } + park_x = on; + have_park = true; + } + } + if (!have_park && park_pt_on_bed(far_x)) { + park_x = far_x; + have_park = true; + } + if (have_park) { + const Vec2f stop = writer.rotated(Vec2f(park_x, writer.y())); + writer.feedrate(m_travel_speed * 60.f) + .append(std::string("G1 X") + Slic3r::float_to_string_decimal_point(stop.x()) + + " Y" + Slic3r::float_to_string_decimal_point(stop.y()) + + never_skip_tag() + "\n"); + } + writer.set_extruder_temp(wait_for_temp, true, wait_for_temp_tag()); + } + // Travel to where we assume we are. Custom toolchange or some special T code handling (parking extruder etc) // gcode could have left the extruder somewhere, we cannot just start extruding. We should also inform the // postprocessor that we absolutely want to have this in the gcode, even if it thought it is the same as before. @@ -1875,6 +1800,10 @@ void WipeTower2::toolchange_Change( + never_skip_tag() + "\n" ); + // Priming has no tower to park beside — wait right at the priming line instead. + if (wait_for_temp_here && !wait_beside_tower) + writer.set_extruder_temp(wait_for_temp, true, wait_for_temp_tag()); + writer.append("[deretraction_from_wipe_tower_generator]"); // The toolchange Tn command will be inserted later, only in case that the user does @@ -1920,7 +1849,9 @@ void WipeTower2::toolchange_Wipe( WipeTowerWriter2 &writer, const WipeTower::box_coordinates &cleaning_box, float wipe_volume, - bool interface_layer) + bool interface_layer, + bool priming, + bool fill_box) { // Increase flow on first layer, slow down print. writer.set_extrusion_flow(m_extrusion_flow * (is_first_layer() ? 1.18f : 1.f)) @@ -1929,7 +1860,7 @@ void WipeTower2::toolchange_Wipe( const float& xr = cleaning_box.rd.x(); writer.set_extrusion_flow(m_extrusion_flow * m_extra_flow); - const float line_width = m_perimeter_width * m_extra_flow; + const float line_width = wipe_line_width(); writer.change_analyzer_line_width(line_width); // Variables x_to_wipe and traversed_x are here to be able to make sure it always wipes at least @@ -1937,7 +1868,7 @@ void WipeTower2::toolchange_Wipe( // wipe until the end of the assigned area. float x_to_wipe = volume_to_length(wipe_volume, m_perimeter_width, m_layer_height) / m_extra_flow; - float dy = (is_first_layer() ? m_extra_flow : m_extra_spacing_wipe) * m_perimeter_width; // Don't use the extra spacing for the first layer, but do use the spacing resulting from increased flow. + float dy = wipe_row_spacing(is_first_layer()); // Don't use the extra spacing for the first layer, but do use the spacing resulting from increased flow. // All the calculations in all other places take the spacing into account for all the layers. // If spare layers are excluded->if 1 or less toolchange has been done, it must be sill the first layer, too.So slow down. @@ -1950,9 +1881,6 @@ void WipeTower2::toolchange_Wipe( m_left_to_right = !m_left_to_right; } - const bool do_ironing = m_flat_ironing && (!interface_layer || !m_enable_tower_interface_features); - const float ironing_area = m_filpar[m_current_tool].tower_ironing_area; - // now the wiping itself: for (int i = 0; true; ++i) { if (i!=0) { @@ -1963,22 +1891,45 @@ void WipeTower2::toolchange_Wipe( } float traversed_x = writer.x(); + + // BBS gap wall: iron the first few mm of the purge, then drag the retracted nozzle + // back out through the wall gap and scrub it with a dry spiral centred on the entry + // point so the toolchange start blob is not left on the wall (same sequence as the + // BBL tower's toolchange_wipe_new; the spiral self-disables when the filament's + // tower ironing area is 0). WT2's entry gap always sits at the left-edge entry + // point, so only iron when the purge actually starts there heading right (in-place + // toolchangers do; SEMM ram/cooling moves leave the nozzle mid-box, far from any gap). + if (i == 0 && m_use_gap_wall && !interface_layer && !priming && m_left_to_right && + writer.x() - xl < 2.5f * line_width) { + float ironing_length = 3.f; + if (xr - writer.x() < ironing_length) + ironing_length = std::max(xr - writer.x(), 0.f); + const float retract_length = m_filpar[m_current_tool].retract_length; + const float retract_speed = m_filpar[m_current_tool].retract_speed * 60.f; + writer.extrude(writer.x() + ironing_length, writer.y(), wipe_speed); + writer.retract(retract_length, retract_speed); + writer.travel(writer.x() - 1.5f * ironing_length, writer.y(), 600.f); + writer.travel(writer.x() + 0.5f * ironing_length, writer.y(), 240.f); + const Vec2f iron_end(writer.x() + ironing_length, writer.y()); + writer.spiral_flat_ironing(writer.pos(), m_filpar[m_current_tool].tower_ironing_area, m_perimeter_width, flat_iron_speed); + writer.travel(iron_end, wipe_speed); + writer.retract(-retract_length, retract_speed); + } + if (m_left_to_right) writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5f*line_width), writer.y(), wipe_speed); else writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5f*line_width), writer.y(), wipe_speed); - if (i == 0 && do_ironing && ironing_area > 0.f) { - writer.travel(writer.x(), writer.y(), 600.f); - writer.spiral_flat_ironing(writer.pos(), ironing_area, m_perimeter_width, 10.f * 60.f); - } - if (writer.y()+float(EPSILON) > cleaning_box.lu.y()-0.5f*line_width) break; // in case next line would not fit traversed_x -= writer.x(); x_to_wipe -= std::abs(traversed_x); - if (x_to_wipe < WT_EPSILON) { + // Orca: with no ram printed the box was planned as whole wipe rows; fill it + // completely (quantizing the purge up to the planned rows) so the next block + // can start right above it without a blank band in between. + if (!fill_box && x_to_wipe < WT_EPSILON) { writer.travel(m_left_to_right ? xl + 1.5f*line_width : xr - 1.5f*line_width, writer.y(), 7200); break; } @@ -2110,7 +2061,7 @@ WipeTower::ToolChangeResult WipeTower2::finish_layer() poly = generate_support_cone_wall(writer, wt_box, feedrate, infill_cone, spacing); } else { WipeTower::box_coordinates wt_box(Vec2f(0.f, 0.f), m_wipe_tower_width, m_layer_info->depth + m_perimeter_width); - poly = generate_support_rib_wall(writer, wt_box, feedrate, first_layer, m_wall_type == (int)wtwRib, true, false); + poly = generate_support_rib_wall(writer, wt_box, feedrate, first_layer, m_wall_type == (int)wtwRib, true); } // brim (first layer only) @@ -2179,31 +2130,68 @@ std::pair WipeTower2::get_wipe_tower_cone_base(double width, dou } // Static method to extract wipe_volumes[from][to] from the configuration. -std::vector> WipeTower2::extract_wipe_volumes(const PrintConfig& config) +// Takes a ConfigBase so the GUI's wipe tower size estimate can pass the plate's +// DynamicPrintConfig directly instead of materializing a full PrintConfig per call. +std::vector> WipeTower2::extract_wipe_volumes(const ConfigBase& config) { - // Get wiping matrix to get number of extruders and convert vector to vector: - std::vector wiping_matrix(cast(config.flush_volumes_matrix.values)); - auto scale = config.flush_multiplier.get_at(0); + // flush_volumes_matrix holds one filaments x filaments block per nozzle (written by + // PresetBundle::update_multi_material_filament_presets), so the filament count is + // sqrt(size / nozzles). One tower serves every nozzle and the filament to nozzle assignment is + // only decided later by ToolOrdering, so fold the blocks with std::max: the depth reserved here + // has to cover the worst nozzle. With a single nozzle the fold has one term. + const std::vector &raw_matrix = config.option("flush_volumes_matrix")->values; + const auto *nozzle_diameter = config.option("nozzle_diameter"); + size_t nozzle_nums = (nozzle_diameter == nullptr || nozzle_diameter->values.empty()) ? 1 : nozzle_diameter->values.size(); + unsigned int number_of_extruders = (unsigned int)(sqrt(raw_matrix.size() / nozzle_nums) + EPSILON); + if (size_t(number_of_extruders) * number_of_extruders * nozzle_nums != raw_matrix.size()) { + // Saved for a different nozzle count (older project, or the printer was just switched): + // fall back to reading the whole option as one block, as this did before. + nozzle_nums = 1; + number_of_extruders = (unsigned int)(sqrt(raw_matrix.size()) + EPSILON); + } // The values shall only be used when SEMM is enabled. The purging for other printers // is determined by filament_minimal_purge_on_wipe_tower. - if (! config.purge_in_prime_tower.value || ! config.single_extruder_multi_material.value) - std::fill(wiping_matrix.begin(), wiping_matrix.end(), 0.f); + const bool purge = config.option("purge_in_prime_tower")->value + && config.option("single_extruder_multi_material")->value; - // Extract purging volumes for each extruder pair: - std::vector> wipe_volumes; - const unsigned int number_of_extruders = (unsigned int)(sqrt(wiping_matrix.size())+EPSILON); - for (size_t i = 0; i(wiping_matrix.begin()+i*number_of_extruders, wiping_matrix.begin()+(i+1)*number_of_extruders)); + // Extract purging volumes for each extruder pair, each nozzle's block scaled by its own multiplier: + std::vector> wipe_volumes(number_of_extruders, std::vector(number_of_extruders, 0.f)); + if (purge) { + const auto *multiplier = config.option("flush_multiplier"); + for (size_t nozzle_id = 0; nozzle_id < nozzle_nums; ++nozzle_id) { + const std::vector block = get_flush_volumes_matrix(raw_matrix, nozzle_id, nozzle_nums); + const double scale = multiplier->get_at(nozzle_id); + for (unsigned int i = 0; i(wipe_volumes[i][j], float(block[size_t(i) * number_of_extruders + j]) * scale); + } + } // Also include filament_minimal_purge_on_wipe_tower. This is needed for the preview. + const auto *minimal_purge = config.option("filament_minimal_purge_on_wipe_tower"); for (unsigned int i = 0; i(wipe_volumes[i][j] * scale, config.filament_minimal_purge_on_wipe_tower.get_at(j)); + wipe_volumes[i][j] = std::max(wipe_volumes[i][j], minimal_purge->get_at(j)); return wipe_volumes; } +float WipeTower2::estimate_semm_flush_volume(const ConfigBase& config, size_t filaments_cnt) +{ + const std::vector> wipe_volumes = extract_wipe_volumes(config); + if (wipe_volumes.empty()) // an empty flush matrix would make the average below 0/0 + return 0.f; + float maximum = 0.f; + for (const std::vector &v : wipe_volumes) + maximum += *std::max_element(v.begin(), v.end()); + maximum = maximum * filaments_cnt / wipe_volumes.size(); + + // Orca: it's overshooting a bit, so let's reduce it a bit + maximum *= 0.6; + return maximum; +} + static float get_wipe_depth(float volume, float layer_height, float perimeter_width, float extra_flow, float extra_spacing, float width) { float length_to_extrude = (volume_to_length(volume, perimeter_width, layer_height)) / extra_flow; @@ -2228,15 +2216,32 @@ void WipeTower2::plan_toolchange(float z_par, float layer_height_par, unsigned i return; // this is an actual toolchange - let's calculate depth to reserve on the wipe tower - float width = m_wipe_tower_width - 3*m_perimeter_width; - float length_to_extrude = volume_to_length(0.25f * std::accumulate(m_filpar[old_tool].ramming_speed.begin(), m_filpar[old_tool].ramming_speed.end(), 0.f), - m_perimeter_width * m_filpar[old_tool].ramming_line_width_multiplicator, - layer_height_par); - // Orca: Set ramming depth to 0 if ramming is disabled. - float ramming_depth = m_enable_filament_ramming ? ((int(length_to_extrude / width) + 1) * (m_perimeter_width * m_filpar[old_tool].ramming_line_width_multiplicator * m_filpar[old_tool].ramming_step_multiplicator) * m_extra_spacing_ramming) : 0; - float first_wipe_line = - (width*((length_to_extrude / width)-int(length_to_extrude / width)) - width); + const bool first_layer_plan = (m_plan.size() - 1) == m_first_layer_idx; + m_plan.back().tool_changes.push_back(set_toolchange(old_tool, new_tool, layer_height_par, wipe_volume, first_layer_plan)); +} - float first_wipe_volume = length_to_volume(first_wipe_line, m_perimeter_width * m_extra_flow, layer_height_par); +WipeTower2::WipeTowerInfo::ToolChange WipeTower2::set_toolchange(size_t old_tool, size_t new_tool, float layer_height, float wipe_volume, bool first_layer_plan) +{ + float width = m_wipe_tower_width - 3*m_perimeter_width; + float length_to_extrude = volume_to_length((m_semm ? 0.25f : m_filpar[old_tool].multitool_ramming_time) * std::accumulate(m_filpar[old_tool].ramming_speed.begin(), m_filpar[old_tool].ramming_speed.end(), 0.f), + m_perimeter_width * m_filpar[old_tool].ramming_line_width_multiplicator, + layer_height); + // Orca: Reserve ramming depth only when toolchange_Unload() will actually ram, + // otherwise the unprinted reservation leaves blank bands between the purge boxes. + const bool do_ramming = tool_ramming_enabled(old_tool); + // Orca: with the gap wall on a multi-tool printer the ram band is quantized up to + // the whole reserved rows and the wipe restarts at the left-edge boundary on a + // fresh row below it (BBL parity: the old-tool purge is whole rows and the wipe + // always starts at the box corner, where the entry scrub runs). + const bool boundary_wipe_start = boundary_wipe_start_enabled(old_tool); + float ramming_depth = do_ramming ? ((int(length_to_extrude / width) + 1) * (m_perimeter_width * m_filpar[old_tool].ramming_line_width_multiplicator * m_filpar[old_tool].ramming_step_multiplicator) * m_extra_spacing_ramming) : 0; + // first_wipe_line rides for free on the last (partially used) ramming row, which + // is already covered by ramming_depth. Without ramming that row does not exist + // (and with a boundary wipe start the ram band is quantized to whole rows), so + // the whole wipe volume needs reserved wiping depth. + float first_wipe_line = (do_ramming && !boundary_wipe_start) ? - (width*((length_to_extrude / width)-int(length_to_extrude / width)) - width) : 0.f; + + float first_wipe_volume = length_to_volume(first_wipe_line, m_perimeter_width * m_extra_flow, layer_height); // ORCA: Keep wipe-depth planning consistent with toolchange_Wipe(). // ORCA: On the first layer, toolchange_Wipe() advances purge rows using @@ -2245,12 +2250,11 @@ void WipeTower2::plan_toolchange(float z_par, float layer_height_par, unsigned i // ORCA: float dy = (is_first_layer() ? m_extra_flow : m_extra_spacing_wipe) * m_perimeter_width; // ORCA: Use the same spacing here so reserved depth matches consumed depth // ORCA: and first-layer purge segments do not leave visible gaps. - const bool first_layer_plan = (m_plan.size() - 1) == m_first_layer_idx; const float planning_spacing = first_layer_plan ? m_extra_flow : m_extra_spacing_wipe; - float wiping_depth = get_wipe_depth(wipe_volume - first_wipe_volume, layer_height_par, m_perimeter_width, m_extra_flow, planning_spacing, width); - - m_plan.back().tool_changes.push_back(WipeTowerInfo::ToolChange(old_tool, new_tool, ramming_depth + wiping_depth, ramming_depth, first_wipe_line, wipe_volume)); + float wiping_depth = get_wipe_depth(wipe_volume - first_wipe_volume, layer_height, m_perimeter_width, m_extra_flow, planning_spacing, width); + + return WipeTowerInfo::ToolChange(old_tool, new_tool, ramming_depth + wiping_depth, ramming_depth, first_wipe_line, wipe_volume); } @@ -2288,49 +2292,64 @@ void WipeTower2::save_on_last_wipe() continue; // Which toolchange will finish_layer extrusions be subtracted from? - int idx = first_toolchange_to_nonsoluble(m_layer_info->tool_changes); + int idx = first_toolchange_to_nonsoluble_nonsupport(m_layer_info->tool_changes); if (idx == -1) { // In this case, finish_layer will be called at the very beginning. finish_layer().total_extrusion_length_in_plane(); } + const float width = m_wipe_tower_width - 3*m_perimeter_width; // width we draw into + auto recompute_toolchange = [this, width](WipeTowerInfo::ToolChange& toolchange, float volume_to_save) { + float volume_left_to_wipe = std::max(m_filpar[toolchange.new_tool].filament_minimal_purge_on_wipe_tower, toolchange.wipe_volume_total - volume_to_save); + float volume_we_need_depth_for = std::max(0.f, volume_left_to_wipe - length_to_volume(toolchange.first_wipe_line, m_perimeter_width*m_extra_flow, m_layer_info->height)); + + // ORCA: Keep wipe-depth planning consistent with toolchange_Wipe(). + // ORCA: On the first layer, toolchange_Wipe() advances purge rows using + // ORCA: m_extra_flow * m_perimeter_width, while later layers use + // ORCA: m_extra_spacing_wipe * m_perimeter_width. + // ORCA: float dy = (is_first_layer() ? m_extra_flow : m_extra_spacing_wipe) * m_perimeter_width; + // ORCA: Use the same spacing here so reserved depth matches consumed depth + // ORCA: and first-layer purge segments do not leave visible gaps. + const bool first_layer_plan = size_t(m_layer_info - m_plan.begin()) == m_first_layer_idx; + const float planning_spacing = first_layer_plan ? m_extra_flow : m_extra_spacing_wipe; + + float depth_to_wipe = get_wipe_depth(volume_we_need_depth_for, m_layer_info->height, m_perimeter_width, m_extra_flow, planning_spacing, width); + + toolchange.required_depth = toolchange.ramming_depth + depth_to_wipe; + toolchange.wipe_volume = volume_left_to_wipe; + }; + for (int i=0; itool_changes.size()); ++i) { auto& toolchange = m_layer_info->tool_changes[i]; tool_change(toolchange.new_tool); if (i == idx) { - float width = m_wipe_tower_width - 3*m_perimeter_width; // width we draw into - - float volume_to_save = length_to_volume(finish_layer().total_extrusion_length_in_plane(), m_perimeter_width, m_layer_info->height); - float volume_left_to_wipe = std::max(m_filpar[toolchange.new_tool].filament_minimal_purge_on_wipe_tower, toolchange.wipe_volume_total - volume_to_save); - float volume_we_need_depth_for = std::max(0.f, volume_left_to_wipe - length_to_volume(toolchange.first_wipe_line, m_perimeter_width*m_extra_flow, m_layer_info->height)); - - // ORCA: Keep wipe-depth planning consistent with toolchange_Wipe(). - // ORCA: On the first layer, toolchange_Wipe() advances purge rows using - // ORCA: m_extra_flow * m_perimeter_width, while later layers use - // ORCA: m_extra_spacing_wipe * m_perimeter_width. - // ORCA: float dy = (is_first_layer() ? m_extra_flow : m_extra_spacing_wipe) * m_perimeter_width; - // ORCA: Use the same spacing here so reserved depth matches consumed depth - // ORCA: and first-layer purge segments do not leave visible gaps. - const bool first_layer_plan = size_t(m_layer_info - m_plan.begin()) == m_first_layer_idx; - const float planning_spacing = first_layer_plan ? m_extra_flow : m_extra_spacing_wipe; - - float depth_to_wipe = get_wipe_depth(volume_we_need_depth_for, m_layer_info->height, m_perimeter_width, m_extra_flow, planning_spacing, width); - - toolchange.required_depth = toolchange.ramming_depth + depth_to_wipe; - toolchange.wipe_volume = volume_left_to_wipe; + recompute_toolchange(toolchange, length_to_volume(finish_layer().total_extrusion_length_in_plane(), m_perimeter_width, m_layer_info->height)); + } else if (toolchange.wipe_volume < m_filpar[toolchange.new_tool].filament_minimal_purge_on_wipe_tower) { + // Keep filament_minimal_purge_on_wipe_tower enforced for toolchanges that get + // no finish-layer saving, e.g. a support/soluble filament skipped as the + // finish filament above. Recomputing only when the clamp binds leaves all + // other toolchanges with their planned values bit-for-bit. + recompute_toolchange(toolchange, 0.f); } } } } -// Return index of first toolchange that switches to non-soluble extruder -// ot -1 if there is no such toolchange. -int WipeTower2::first_toolchange_to_nonsoluble( +// Return the index of the toolchange whose new filament should print the layer's +// finish extrusions (sparse infill + wall + brim), or -1 to print them with the +// layer's incoming filament before any toolchange happens. +// Like WipeTower::first_toolchange_to_nonsoluble_nonsupport(): support and soluble +// filaments bond poorly to the material printed on top of them, so they must not +// print the tower's shell when another filament is available on the layer. +int WipeTower2::first_toolchange_to_nonsoluble_nonsupport( const std::vector& tool_changes) const { + if (tool_changes.empty()) + return -1; + // If a specific wipe tower filament is forced, use it to decide where to finish the layer. if (m_wipe_tower_filament > 0) { for (size_t idx = 0; idx < tool_changes.size(); ++idx) { @@ -2339,8 +2358,19 @@ int WipeTower2::first_toolchange_to_nonsoluble( } return -1; } - // Orca: allow calculation of the required depth and wipe volume for soluble toolchanges as well. - return tool_changes.empty() ? -1 : 0; + + auto is_wall_filament = [this](size_t tool) { + return !m_filpar[tool].is_soluble && !m_filpar[tool].is_support; + }; + for (size_t idx = 0; idx < tool_changes.size(); ++idx) + if (is_wall_filament(tool_changes[idx].new_tool)) + return idx; + if (is_wall_filament(tool_changes.front().old_tool)) + return -1; + // Only support/soluble filaments on this layer: keep the first toolchange so the + // finish-layer saving and the minimal-purge clamp still apply to it (Orca depth + // and wipe volume accounting, see save_on_last_wipe()). + return 0; } static WipeTower::ToolChangeResult merge_tcr(WipeTower::ToolChangeResult& first, @@ -2363,6 +2393,24 @@ static WipeTower::ToolChangeResult merge_tcr(WipeTower::ToolChangeResult& first, } +// Precompute, for every plan layer, the wall openings ("skip points") at each toolchange's +// entry position, like WipeTower::get_all_wall_skip_points(). toolchange_entry_pos() +// reproduces from the finalized plan where tool_change() will start, so each gap coincides +// with the entry travel's target (tcr.start_pos, pre-rotation frame). BBL parity: the gap +// sits at the CP_TOOLCHANGE_WIPE start row, never at the ram band. +void WipeTower2::compute_wall_skip_points() +{ + m_wall_skip_points.assign(m_plan.size(), std::vector()); + for (size_t layer_id = 0; layer_id < m_plan.size(); ++layer_id) { + float depth_traversed = 0.f; + for (const auto& toolchange : m_plan[layer_id].tool_changes) { + m_wall_skip_points[layer_id].emplace_back( + toolchange_entry_pos(depth_traversed, toolchange.ramming_depth, layer_id == m_first_layer_idx)); + depth_traversed += toolchange.required_depth; + } + } +} + // Processes vector m_plan and calls respective functions to generate G-code for the wipe tower // Resulting ToolChangeResults are appended into vector "result" void WipeTower2::generate(std::vector> &result) @@ -2378,12 +2426,41 @@ void WipeTower2::generate(std::vector> } #endif - m_rib_length = std::max({m_rib_length, sqrt(m_wipe_tower_depth * m_wipe_tower_depth + m_wipe_tower_width * m_wipe_tower_width)}); + if (m_wall_type == (int)wtwRib) { + // Rib wall: force a square tower like WipeTower::plan_tower_new(), ignoring the + // configured prime_tower_width (the GUI greys it out in rib mode). The planned depths + // already include the extra-spacing factors, so sqrt(depth * width) preserves the + // purge area. Replan every toolchange for the new width, then re-derive the depths. + float max_depth = 0.f; + for (const auto& current_plan : m_plan) + max_depth = std::max(max_depth, current_plan.depth); + if (max_depth > EPSILON) { + m_wipe_tower_width = align_ceil(std::sqrt(max_depth * m_wipe_tower_width), m_perimeter_width); + for (size_t idx = 0; idx < m_plan.size(); ++idx) + for (auto& toolchange : m_plan[idx].tool_changes) + toolchange = set_toolchange(toolchange.old_tool, toolchange.new_tool, + m_plan[idx].height, toolchange.wipe_volume, + idx == m_first_layer_idx); + plan_tower(); + } + + // Like WipeTower::plan_tower_new(): extend the ribs instead of the tower when the + // tower is smaller than the height-based stability minimum. + const float min_depth = WipeTower::get_limit_depth_by_height(m_wipe_tower_height); + if (m_wipe_tower_depth + EPSILON < min_depth) + m_rib_length = std::max(m_rib_length, min_depth * (float)std::sqrt(2.f)); + } + + const float diagonal = std::sqrt(m_wipe_tower_depth * m_wipe_tower_depth + m_wipe_tower_width * m_wipe_tower_width); + m_rib_length = std::max(m_rib_length, diagonal); m_rib_length += m_extra_rib_length; - m_rib_length = std::max(0.f, m_rib_length); + m_rib_length = std::max(diagonal, m_rib_length); // a negative extra length must not shrink the ribs below the diagonal m_rib_width = std::min(m_rib_width, std::min(m_wipe_tower_depth, m_wipe_tower_width) / 2.f); // Ensure that the rib wall of the wipetower are attached to the infill. + if (m_use_gap_wall) + compute_wall_skip_points(); + m_layer_info = m_plan.begin(); m_current_height = 0.f; @@ -2410,7 +2487,7 @@ void WipeTower2::generate(std::vector> if (m_layer_info->depth < m_wipe_tower_depth - m_perimeter_width) m_y_shift = (m_wipe_tower_depth-m_layer_info->depth-m_perimeter_width)/2.f; - int idx = first_toolchange_to_nonsoluble(layer.tool_changes); + int idx = first_toolchange_to_nonsoluble_nonsupport(layer.tool_changes); WipeTower::ToolChangeResult finish_layer_tcr; if (idx == -1) { @@ -2503,8 +2580,7 @@ Polygon WipeTower2::generate_support_rib_wall(WipeTowerWriter2& double feedrate, bool first_layer, bool rib_wall, - bool extrude_perimeter, - bool skip_points) + bool extrude_perimeter) { float retract_length = m_filpar[m_current_tool].retract_length; @@ -2524,18 +2600,28 @@ Polygon WipeTower2::generate_support_rib_wall(WipeTowerWriter2& if (!extrude_perimeter) return wall_polygon; - if (skip_points) { - result_wall = contrust_gap_for_skip_points(wall_polygon, std::vector(), m_wipe_tower_width, 2.5 * m_perimeter_width, + if (m_use_gap_wall) { + // Cut the wall open at each toolchange's entry (see compute_wall_skip_points()). + // The vector is empty during the save_on_last_wipe planning passes, which therefore + // measure the un-gapped wall — same approximation as the BBL tower. + static const std::vector no_skip_points; + const size_t layer_id = size_t(m_layer_info - m_plan.begin()); + const std::vector& layer_skip_points = + layer_id < m_wall_skip_points.size() ? m_wall_skip_points[layer_id] : no_skip_points; + result_wall = construct_gap_for_skip_points(wall_polygon, layer_skip_points, m_wipe_tower_width, 2.5 * m_perimeter_width, insert_skip_polygon); } else { result_wall.push_back(to_polyline(wall_polygon)); insert_skip_polygon = wall_polygon; } writer.generate_path(result_wall, feedrate, retract_length, retract_speed, m_used_fillet); - //if (m_cur_layer_id == 0) { - // BoundingBox bbox = get_extents(result_wall); - // m_rib_offset = Vec2f(-unscaled(bbox.min.x()), -unscaled(bbox.min.y())); - //} + // Tower-local shift that puts the rib wall's protruding first-layer min corner at the + // configured tower position, like WipeTower::generate_support_wall_new(). Measured on + // the un-gapped outline so a wall gap cannot shift the tower. + if (rib_wall && is_first_layer()) { + BoundingBox bbox = get_extents(insert_skip_polygon); + m_rib_offset = Vec2f(-unscaled(bbox.min.x()), -unscaled(bbox.min.y())); + } return insert_skip_polygon; } diff --git a/src/libslic3r/GCode/WipeTower2.hpp b/src/libslic3r/GCode/WipeTower2.hpp index 7060eefa4a..5b1a474b5d 100644 --- a/src/libslic3r/GCode/WipeTower2.hpp +++ b/src/libslic3r/GCode/WipeTower2.hpp @@ -17,13 +17,20 @@ namespace Slic3r class WipeTowerWriter2; class PrintRegionConfig; +class ConfigBase; class WipeTower2 { public: static const std::string never_skip_tag() { return "_GCODE_WIPE_TOWER_NEVER_SKIP_TAG"; } + // Marks the wait-for-temp-on-wipe-tower M109 so the interface-temp deduplication pass + // in WipeTowerIntegration::append_tcr2 does not strip it. + static const std::string wait_for_temp_tag() { return ";_WAIT_FOR_TEMP_ON_WIPE_TOWER"; } static std::pair get_wipe_tower_cone_base(double width, double height, double depth, double angle_deg); - static std::vector> extract_wipe_volumes(const PrintConfig& config); + static std::vector> extract_wipe_volumes(const ConfigBase& config); + // Estimated total flush volume of a SEMM print with the given number of filaments, + // used to reserve wipe tower space before the tower is generated. + static float estimate_semm_flush_volume(const ConfigBase& config, size_t filaments_cnt); // Construct ToolChangeResult from current state of WipeTower2 and WipeTowerWriter2. @@ -34,6 +41,15 @@ public: bool is_finish, bool is_contact = false) const; + // Whether this print cuts wall openings ("skip points") at the toolchange entries. + // Shared with the entry routing in GCode.cpp so the router and the tower agree. + static bool use_gap_wall(const PrintConfig& config); + + // Whether the blocking toolchange temperature wait moves onto the wipe tower. + // Shared with the defer flag in GCode.cpp append_tcr2 so the deferral and the + // tower's tagged M109 can never disagree. + static bool wait_for_temp_enabled(const PrintConfig& config); + // x -- x coordinates of wipe tower in mm ( left bottom corner ) // y -- y coordinates of wipe tower in mm ( left bottom corner ) // width -- width of wipe tower in mm ( default 60 mm - leave as it is ) @@ -69,9 +85,9 @@ public: const float brim = m_wipe_tower_brim_width_real; return BoundingBoxf(Vec2d(-brim, -brim), Vec2d(double(m_wipe_tower_width) + brim, double(m_wipe_tower_depth) + brim)); } - // WT2 doesn't currently compute a rib-origin compensation like WipeTower (m_rib_offset), - // so expose a zero offset for consistency purposes (to maintain API parity). - Vec2f get_rib_offset() const { return Vec2f::Zero(); } + // Tower-local shift that puts the rib wall's first-layer min corner at the configured + // tower position, like WipeTower::get_rib_offset(). Zero unless the rib wall is used. + Vec2f get_rib_offset() const { return m_rib_offset; } float get_rib_width() const { return m_rib_width; } float get_rib_length() const { return m_rib_length; } @@ -149,6 +165,7 @@ public: struct FilamentParameters { std::string material = "PLA"; bool is_soluble = false; + bool is_support = false; int temperature = 0; int first_layer_temperature = 0; int interface_print_temperature = 0; @@ -220,9 +237,9 @@ private: float m_perimeter_speed = 0.f; float m_first_layer_speed = 0.f; size_t m_first_layer_idx = size_t(-1); - bool m_flat_ironing = false; bool m_enable_tower_interface_features = false; bool m_enable_tower_interface_cooldown_during_tower = false; + bool m_wait_for_temp_on_wipe_tower = false; bool m_prev_layer_had_interface = false; bool m_current_layer_has_interface = false; @@ -231,6 +248,12 @@ private: float m_rib_width = 10; float m_extra_rib_length = 0; float m_rib_length = 0; + Vec2f m_rib_offset = Vec2f::Zero(); + bool m_use_gap_wall = false; + // Per plan layer, each toolchange's entry position (tower-local, un-shifted frame): + // where the wall is cut open so the entry travel does not cross the printed wall. + // Filled by compute_wall_skip_points() once the plan is final. + std::vector> m_wall_skip_points; bool m_enable_arc_fitting = false; @@ -253,6 +276,7 @@ private: } m_bed_shape; float m_bed_width; // width of the bed bounding box Vec2f m_bed_bottom_left; // bottom-left corner coordinates (for rectangular beds) + Polygon m_bed_polygon; // printable_area contour (scaled) float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill. float m_extrusion_flow = 0.038f; //0.029f;// Extrusion flow is derived from m_perimeter_width, layer height and filament diameter. @@ -278,6 +302,37 @@ private: bool is_first_layer() const { return size_t(m_layer_info - m_plan.begin()) == m_first_layer_idx; } + // Purge row lattice of toolchange_Wipe(): row pitch and extrusion width. + float wipe_row_spacing(bool first_layer) const { return (first_layer ? m_extra_flow : m_extra_spacing_wipe) * m_perimeter_width; } + float wipe_line_width() const { return m_perimeter_width * m_extra_flow; } + + // Whether toolchange_Unload() rams this (old) tool out. + bool tool_ramming_enabled(size_t tool) const { return (m_semm && m_enable_filament_ramming) || m_filpar[tool].multitool_ramming; } + // Whether the wipe restarts at the box boundary on a fresh row below the quantized + // ram band after ramming this (old) tool out (multi-tool gap wall; SEMM keeps the + // stock continue-from-ram-end behavior). + bool boundary_wipe_start_enabled(size_t tool) const { return tool_ramming_enabled(tool) && !m_semm && m_use_gap_wall; } + + // With a boundary wipe start the wipe begins on a fresh row below the quantized ram + // band. Y offset from the box start to that first wipe row. + float wipe_start_offset_after_ram(float ramming_depth, bool first_layer) const + { + return ramming_depth + wipe_row_spacing(first_layer) - (m_perimeter_width + wipe_line_width()) / 2.f; + } + + // Tower-local entry position of a toolchange whose box starts depth_traversed into + // the layer: the box corner, moved down to the first wipe row when the plan gives + // it a boundary wipe start (ramming_depth > 0 iff the unload rams). tool_change() + // enters here and compute_wall_skip_points() cuts the wall gap here, so the routed + // entry, the gap and the wipe scrub all share one opening. + Vec2f toolchange_entry_pos(float depth_traversed, float ramming_depth, bool first_layer) const + { + Vec2f pos(m_perimeter_width / 2.f, m_perimeter_width / 2.f + depth_traversed); + if (!m_semm && m_use_gap_wall && ramming_depth > 0.f) + pos.y() += wipe_start_offset_after_ram(ramming_depth, first_layer); + return pos; + } + // Calculates extrusion flow needed to produce required line width for given layer height float extrusion_flow(float layer_height = -1.f) const // negative layer_height - return current m_extrusion_flow { @@ -328,9 +383,10 @@ private: std::vector m_used_filament_length; std::vector>> m_used_filament_length_until_layer; - // Return index of first toolchange that switches to non-soluble extruder - // ot -1 if there is no such toolchange. - int first_toolchange_to_nonsoluble( + // Return the index of the toolchange whose new filament should print the layer's + // finish extrusions (sparse infill + wall + brim), or -1 to print them with the + // layer's incoming filament before any toolchange happens. + int first_toolchange_to_nonsoluble_nonsupport( const std::vector& tool_changes) const; void toolchange_Unload( @@ -343,7 +399,9 @@ private: void toolchange_Change( WipeTowerWriter2 &writer, const size_t new_tool, - const std::string& new_material); + const std::string& new_material, + const int wait_for_temp, + const bool wait_beside_tower); void toolchange_Load( WipeTowerWriter2 &writer, @@ -353,7 +411,9 @@ private: WipeTowerWriter2 &writer, const WipeTower::box_coordinates &cleaning_box, float wipe_volume, - bool interface_layer); + bool interface_layer, + bool priming = false, + bool fill_box = false); Polygon generate_support_rib_wall(WipeTowerWriter2& writer, @@ -361,8 +421,7 @@ private: double feedrate, bool first_layer, bool rib_wall, - bool extrude_perimeter, - bool skip_points); + bool extrude_perimeter); Polygon generate_support_cone_wall( WipeTowerWriter2& writer, @@ -372,6 +431,12 @@ private: float spacing); Polygon generate_rib_polygon(const WipeTower::box_coordinates& wt_box); + + void compute_wall_skip_points(); + + // Computes the depth reserved for a toolchange (shared by plan_toolchange() and the + // rib-wall square-tower replanning in generate()). + WipeTowerInfo::ToolChange set_toolchange(size_t old_tool, size_t new_tool, float layer_height, float wipe_volume, bool first_layer_plan); }; diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index e3d1c30362..0e80cc1fb7 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -3,6 +3,7 @@ #include "I18N.hpp" #include "PrintConfig.hpp" #include "ClipperUtils.hpp" +#include "Geometry/ArcWelder.hpp" #include "Line.hpp" #include #include @@ -1018,45 +1019,48 @@ std::string GCodeWriter::_spiral_travel_to_z(double z, const Vec2d &ij_offset, c } if (!this->config.enable_arc_fitting) { // Orca: if arc fitting is disabled, approximate the arc with small linear segments - std::ostringstream oss; const double z_start = m_pos(2); // starting Z height - // -------------------------------------------------------------------- - // Determine number of segments based on Resolution - // -------------------------------------------------------------------- - const double ref_resolution = 0.01; // reference resolution in mm - const double ref_segments = 8.0; // reference number of segments at reference resolution - - // number of linear segments to use for approximating the arc, clamp between 4 and 16 - const int segments = std::clamp(int(std::round(ref_segments * (ref_resolution / m_resolution))), 4, 16); - // -------------------------------------------------------------------- - const double px = m_pos(0) - m_x_offset; // take plate offset into consideration const double py = m_pos(1) - m_y_offset; // take plate offset into consideration const double cx = px + ij_offset(0); // center x const double cy = py + ij_offset(1); // center y const double radius = ij_offset.norm(); // radius + + // Number of linear segments approximating the circle, chosen so that a chord never deviates + // from the true arc by more than the slicing resolution. A resolution of 0 means "no + // simplification", which has no finite segment count, so it takes the upper bound. + constexpr size_t min_segments = 8; // keep a small spiral visibly round + constexpr size_t max_segments = 128; // bound the emitted G-code + const int segments = int(m_resolution > 0. ? + std::clamp(Geometry::ArcWelder::arc_discretization_steps(radius, 2. * M_PI, m_resolution), min_segments, max_segments) : + max_segments); + const double a0 = std::atan2(py - cy, px - cx); // start angle - const double delta = 2.0 * M_PI; // CCW full circle - if (full_gcode_comment) - oss << ";" << comment << "\n"; + auto emit_point = [&output](const Vec3d &point) { + GCodeG1Formatter w; + w.emit_xyz(point); + output += w.string(); + }; - oss << "G1 F" << (speed * 60.0) << "\n"; // set feedrate + output.reserve(size_t(segments) * 40); // ~40 characters per emitted G1 line + + GCodeG1Formatter w; // set feedrate + w.emit_f(speed * 60.0); + w.emit_comment(GCodeWriter::full_gcode_comment, comment); + output += w.string(); // approximate the arc with small linear segments (without the last point which is added later to ensure exactness) for (int i = 1; i < segments; ++i) { - double t = double(i) / segments; // parametric position along arc - double a = a0 + delta * t; // CCW arc param - double x = cx + radius * std::cos(a); // point on circle - double y = cy + radius * std::sin(a); // point on circle - double zz = z_start + (z - z_start) * t; // interpolated Z height - - oss << "G1 X" << x << " Y" << y << " Z" << zz << "\n"; + const double t = double(i) / segments; // parametric position along arc + const double a = a0 + 2. * M_PI * t; // CCW arc param, full circle + emit_point(Vec3d(cx + radius * std::cos(a), // point on circle + cy + radius * std::sin(a), + z_start + (z - z_start) * t)); // interpolated Z height } - oss << "G1 X" << px << " Y" << py << " Z" << z << "\n"; // final point to ensure exactness - output = oss.str(); + emit_point(Vec3d(px, py, z)); // final point to ensure exactness } else { // Orca: if arc fitting is enabled emit a G2/G3 command for the spiral lift output = std::string("G17") + (full_gcode_comment ? " ; XY plane for arc\n" : "\n"); diff --git a/src/libslic3r/Measure.hpp b/src/libslic3r/Measure.hpp index 614b443131..2f378f5778 100644 --- a/src/libslic3r/Measure.hpp +++ b/src/libslic3r/Measure.hpp @@ -94,7 +94,7 @@ public: void* volume{nullptr}; std::vector* plane_indices{nullptr}; - Transform3d world_tran; + Transform3d world_tran = Transform3d::Identity(); std::shared_ptr> world_plane_features{nullptr}; std::shared_ptr origin_surface_feature{nullptr}; diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index 1177a5227d..c689c7ce78 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -3243,9 +3243,9 @@ double Model::findMaxSpeed(const ModelObject* object) { if (objectKey == "outer_wall_speed") externalPerimeterSpeedObj = object->config.get().opt_float_nullable(objectKey, 0); if (objectKey == "small_perimeter_speed") - smallPerimeterSpeedObj = object->config.get().opt_float_nullable(objectKey, 0); + smallPerimeterSpeedObj = object->config.get().opt_float_or_percent_nullable(objectKey, 0).get_abs_value(externalPerimeterSpeedObj); if (objectKey == "small_support_perimeter_speed") - smallSupportPerimeterSpeedObj = object->config.get().opt_float_nullable(objectKey, 0); + smallSupportPerimeterSpeedObj = object->config.get().opt_float_or_percent_nullable(objectKey, 0).get_abs_value(supportSpeedObj); } objMaxSpeed = std::max(perimeterSpeedObj, std::max(externalPerimeterSpeedObj, std::max(infillSpeedObj, std::max(solidInfillSpeedObj, std::max(topSolidInfillSpeedObj, std::max(supportSpeedObj, std::max(smallPerimeterSpeedObj, std::max(smallSupportPerimeterSpeedObj, objMaxSpeed)))))))); if (objMaxSpeed <= 0) objMaxSpeed = 250.; diff --git a/src/libslic3r/Orient.hpp b/src/libslic3r/Orient.hpp index 30dbdd3a20..370f23d4fb 100644 --- a/src/libslic3r/Orient.hpp +++ b/src/libslic3r/Orient.hpp @@ -48,100 +48,50 @@ struct OrientMesh { }; -// params for minimizing support area -struct OrientParamsArea { - float TAR_A = 0.015f; - float TAR_B = 0.177f; - float RELATIVE_F = 20; - float CONTOUR_F = 0.5f; - float BOTTOM_F = 2.5f; - float BOTTOM_HULL_F = 0.1f; - float TAR_C = 0.1f; - float TAR_D = 1; - float TAR_E = 0.0115f; - float FIRST_LAY_H = 0.2f;//0.0475; - float VECTOR_TOL = -0.00083f; - float NEGL_FACE_SIZE = 0.01f; - float ASCENT = -0.5f; - float PLAFOND_ADV = 0.0599f; - float CONTOUR_AMOUNT = 0.0182427f; - float OV_H = 2.574f; - float height_offset = 2.3728f; - float height_log = 0.041375f; - float height_log_k = 1.9325457f; - float LAF_MAX = 0.999f; // cos(1.4\degree) for low angle face 0.9997f - float LAF_MIN = 0.97f; // cos(14\degree) 0.9703f - float TAR_LAF = 0.001f; //0.01f - float TAR_PROJ_AREA = 0.1f; - float BOTTOM_MIN = 0.1f; // min bottom area. If lower than it the object may be unstable - float BOTTOM_MAX = 2000; // max bottom area. If get to it the object is stable enough (further increase bottom area won't do more help) - float height_to_bottom_hull_ratio_MIN = 1; - float BOTTOM_HULL_MAX = 2000;// max bottom hull area - float APPERANCE_FACE_SUPP=3; // penalty of generating supports on appearance face - - float overhang_angle = 60.f; - bool use_low_angle_face = true; - bool min_volume = false; - Eigen::Vector3f fun_dir; - - /// Allow parallel execution. - bool parallel = true; - - /// Progress indicator callback called when an object gets packed. - /// The unsigned argument is the number of items remaining to pack. - std::function progressind = {}; - - /// A predicate returning true if abort is needed. - std::function stopcondition = {}; - - OrientParamsArea() = default; -}; - struct OrientParams { - float TAR_A = 0.01f;//0.128f; - float TAR_B = 0.177f; - float RELATIVE_F= 6.610621027964314f; - float CONTOUR_F = 0.23228623269775997f; - float BOTTOM_F = 1.167152017941474f; - float BOTTOM_HULL_F = 0.1f; - float TAR_C = 0.24308070476924726f; - float TAR_D = 0.6284515508160871f; - float TAR_E = 0;//0.032157292647062234; - float FIRST_LAY_H = 0.2f;//0.029; - float VECTOR_TOL = -0.0011163303070972383f; - float NEGL_FACE_SIZE = 0.1f; - float ASCENT= -0.5f; - float PLAFOND_ADV = 0.04079208948120519f; - float CONTOUR_AMOUNT = 0.0101472219892684f; - float OV_H = 1.0370178217794535f; - float height_offset = 2.7417608343142073f; - float height_log = 0.06442030687034085f; - float height_log_k = 0.3933594673063997f; - float LAF_MAX = 0.999f; // cos(1.4\degree) for low angle face //0.9997f; - float LAF_MIN= 0.9703f; // cos(14\degree) 0.9703f; - float TAR_LAF = 0.01f; //0.1f - float TAR_PROJ_AREA = 0.1f; - float BOTTOM_MIN = 0.1f; // min bottom area. If lower than it the objects may be unstable - float BOTTOM_MAX = 2000; //400 - float height_to_bottom_hull_ratio_MIN = 1; - float BOTTOM_HULL_MAX = 2000;// max bottom hull area to clip //600 - float APPERANCE_FACE_SUPP=3; // penalty of generating supports on appearance face - - float overhang_angle = 60.f; - bool use_low_angle_face = true; - bool min_volume = false; - Eigen::Vector3f fun_dir; + float TAR_A { 0.01f }; // 0.128f; + float TAR_B { 0.177f }; + float RELATIVE_F { 6.610621027964314f }; + float CONTOUR_F { 0.23228623269775997f }; + float BOTTOM_F { 1.167152017941474f }; + float BOTTOM_HULL_F { 0.1f }; + float TAR_C { 0.24308070476924726f }; + float TAR_D { 0.6284515508160871f }; + float TAR_E { 0}; // 0.032157292647062234; + float FIRST_LAY_H { 0.2f}; // 0.029; + float VECTOR_TOL { -0.0011163303070972383f }; + float NEGL_FACE_SIZE { 0.1f }; + float ASCENT { -0.5f }; + float PLAFOND_ADV { 0.04079208948120519f }; + float CONTOUR_AMOUNT { 0.0101472219892684f }; + float OV_H { 1.0370178217794535f }; + float height_offset { 2.7417608343142073f }; + float height_log { 0.06442030687034085f }; + float height_log_k { 0.3933594673063997f }; + float LAF_MAX { 0.999f }; // cos(1.4\degree) for low angle face //0.9997f; + float LAF_MIN { 0.9703f }; // cos(14\degree) 0.9703f; + float TAR_LAF { 0.01f }; // 0.1f + float TAR_PROJ_AREA { 0.1f }; + float BOTTOM_MIN { 0.1f }; // min bottom area. If lower than it the objects may be unstable + float BOTTOM_MAX { 2000 }; // 400 + float height_to_bottom_hull_ratio_MIN { 1 }; + float BOTTOM_HULL_MAX { 2000 }; // max bottom hull area to clip //600 + float APPERANCE_FACE_SUPP { 3 }; // penalty of generating supports on appearance face + float overhang_angle { 60.f }; + bool use_low_angle_face { true }; + bool min_volume { false }; + Eigen::Vector3f fun_dir {}; /// Allow parallel execution. - bool parallel = false; + bool parallel { false }; /// Progress indicator callback called when an object gets packed. /// The unsigned argument is the number of items remaining to pack. - std::function progressind = {}; + std::function progressind {}; /// A predicate returning true if abort is needed. - std::function stopcondition = {}; + std::function stopcondition {}; OrientParams() = default; }; diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 1c785c3184..2d6c993d78 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -360,6 +360,14 @@ static ClipperLib_Z::Paths clip_extrusion(const ClipperLib_Z::Path& subject, con return clipped_paths; } +static double clipper_z_path_length(const ClipperLib_Z::Path &path) +{ + double len = 0.; + for (size_t i = 1; i < path.size(); ++ i) + len += (Vec2d(double(path[i].x()), double(path[i].y())) - Vec2d(double(path[i - 1].x()), double(path[i - 1].y()))).norm(); + return len; +} + struct PerimeterGeneratorArachneExtrusion { Arachne::ExtrusionLine* extrusion = nullptr; @@ -571,17 +579,156 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p return extrusion_coll; } -// ORCA: only_one_wall_top detects the top as "slice − upper", so a feature rising from the middle of a -// top surface becomes an enclosed hole that gets ringed with extra inner walls. Fill those holes back -// into the top. Only holes that are both covered by the upper layer (excludes bridges) and backed by -// solid material (excludes voids) are filled. -static ExPolygons fill_enclosed_top_feature_holes(const ExPolygons &top, const Polygons &covered_by_upper, const ExPolygons &solid) +// ORCA: only_one_wall_top acts on top surfaces, so without a top shell there is nothing for it to act on: zero top +// shell layers retype the top surfaces as internal, see LayerRegion::prepare_fill_surfaces(). A 0% top surface +// density does leave a top surface - just an unfilled one - so it does not disable the feature. +// ConfigManipulation::toggle_print_fff_options() hides the option under the same condition, so a profile that left +// it enabled does not act behind a hidden checkbox. +static bool has_top_shell_layers(const PrintRegionConfig &config) { - ExPolygons filled = top; - for (ExPolygon &ex : filled) - ex.holes.clear(); - const ExPolygons feature_holes = intersection_ex(intersection_ex(diff_ex(filled, top), covered_by_upper), solid); - return feature_holes.empty() ? top : union_ex(top, feature_holes); + return config.top_shell_layers.value > 0; +} + +// ORCA: only_one_wall_first_layer thins the first layer to a single wall, the bottom counterpart of the above and +// gated the same way: zero bottom shell layers retype the bottom surfaces as internal, so that wall would ring +// sparse infill on the bed. The bottom surface density plays no part - an unfilled bottom surface is still a bottom +// surface, exactly as for the top - and it cannot reach zero anyway, being capped at a 10% minimum. +static bool has_bottom_shell_layers(const PrintRegionConfig &config) +{ + return config.bottom_shell_layers.value > 0; +} + +// ORCA: the inner walls are only given up when a top fill takes their space, and it has to actually reach it - +// a 0% top surface density leaves no fill at all, and without top_surface_expansion the fill never grows over +// them. Either way the original generation is kept (re-onion the not-top region), which is what users of +// only_one_wall_top alone have always got. +static bool top_fill_replaces_inner_walls(const PrintRegionConfig &config) +{ + return has_top_shell_layers(config) && config.top_surface_density.value > 0 && config.top_surface_expansion.value > 0; +} + +// ORCA: only_one_wall_top - cheap per-vertex classification of a wall against the top surface. Only Partial +// needs the geometry clipped or measured; a segment crossing the top with no vertex inside is rare enough to ignore. +enum class TopOverlap { None, Partial, Full }; + +static bool point_over_top(const Point &p, const ExPolygons &top_region, const BoundingBox &top_region_bbox) +{ + if (! top_region_bbox.contains(p)) + return false; + for (const ExPolygon &ex : top_region) + if (ex.contains(p, false)) + return true; + return false; +} + +static TopOverlap classify_over_top(const Points &pts, const ExPolygons &top_region, const BoundingBox &top_region_bbox) +{ + size_t inside = 0; + for (const Point &p : pts) + if (point_over_top(p, top_region, top_region_bbox)) + ++ inside; + return inside == 0 ? TopOverlap::None : inside == pts.size() ? TopOverlap::Full : TopOverlap::Partial; +} + +static TopOverlap classify_over_top(const Arachne::ExtrusionLine &el, const ExPolygons &top_region, const BoundingBox &top_region_bbox) +{ + size_t inside = 0; + for (const Arachne::ExtrusionJunction &j : el.junctions) + if (point_over_top(j.p, top_region, top_region_bbox)) + ++ inside; + return inside == 0 ? TopOverlap::None : inside == el.junctions.size() ? TopOverlap::Full : TopOverlap::Partial; +} + +// ORCA: only_one_wall_top for Arachne - cut out of the already generated inner walls the parts running over the top +// surface, so geometry that continues upward keeps its walls. A wall too short over the top to be worth slitting open +// is left whole, its footprint reported in kept_over_top for the caller to withhold from the top fill. +static void clip_inner_walls_over_top(std::vector &inner_perimeters, const ExPolygons &top_region, coord_t perimeter_width, Polygons &kept_over_top) +{ + const BoundingBox top_region_bbox = get_extents(top_region).inflated(SCALED_EPSILON); + auto covered_by = [](const Arachne::ExtrusionLine &el) { + Polyline centerline; + centerline.points.reserve(el.junctions.size()); + coord_t width = 0; + for (const Arachne::ExtrusionJunction &j : el.junctions) { + centerline.points.emplace_back(j.p); + width = std::max(width, j.w); + } + return offset(centerline, float(width) / 2.f); + }; + // Pull the cut back by half a wall width: the clip severs the centerline, but the bead's rounded end + // extends half a width past its endpoint and would otherwise overlap the top fill. + ClipperLib_Z::Paths top_paths_z; + for (const Polygon &poly : to_polygons(offset_ex(top_region, float(perimeter_width) / 2.f))) { + top_paths_z.emplace_back(); + ClipperLib_Z::Path &out = top_paths_z.back(); + out.reserve(poly.points.size()); + for (const Point &pt : poly.points) + out.emplace_back(pt.x(), pt.y(), 0); + } + for (Arachne::VariableWidthLines &inner_perimeter : inner_perimeters) { + Arachne::VariableWidthLines kept; + kept.reserve(inner_perimeter.size()); + for (Arachne::ExtrusionLine &el : inner_perimeter) { + if (el.empty()) + continue; + const TopOverlap overlap = classify_over_top(el, top_region, top_region_bbox); + if (overlap == TopOverlap::None) { + kept.emplace_back(std::move(el)); + continue; + } + if (overlap == TopOverlap::Full) + continue; // the clip below would return nothing anyway + ClipperLib_Z::Path subject; + subject.reserve(el.size()); + for (const Arachne::ExtrusionJunction &j : el.junctions) + subject.emplace_back(j.p.x(), j.p.y(), j.w); + ClipperLib_Z::Paths pieces = clip_extrusion(subject, top_paths_z, ClipperLib_Z::ctDifference); + + // Clipper treats the subject as an open polyline, so it also cuts a closed loop at its (arbitrary) + // start vertex and may reverse pieces. Stitch pieces sharing an endpoint back together. + auto same_pt = [](const ClipperLib_Z::IntPoint &p, const ClipperLib_Z::IntPoint &q) { + return std::abs(p.x() - q.x()) <= SCALED_EPSILON && std::abs(p.y() - q.y()) <= SCALED_EPSILON; + }; + for (size_t i = 0; i < pieces.size(); ++ i) { + for (size_t j = i + 1; j < pieces.size();) { + ClipperLib_Z::Path &a = pieces[i]; + ClipperLib_Z::Path &b = pieces[j]; + if (same_pt(a.front(), b.front()) || same_pt(a.front(), b.back())) + std::reverse(a.begin(), a.end()); + if (same_pt(a.back(), b.back())) + std::reverse(b.begin(), b.end()); + if (same_pt(a.back(), b.front())) { + a.insert(a.end(), b.begin() + 1, b.end()); + pieces.erase(pieces.begin() + j); + j = i + 1; // the merged path has new endpoints, restart the scan + } else + ++ j; + } + } + + // If the clip removed next to nothing, keep the loop untouched instead of slitting it open. The + // half-width pull-back above already costs about one width per crossing, hence two widths. + double kept_length = 0.; + for (const ClipperLib_Z::Path &path : pieces) + kept_length += clipper_z_path_length(path); + if (clipper_z_path_length(subject) - kept_length < 2. * double(perimeter_width)) { + append(kept_over_top, covered_by(el)); + kept.emplace_back(std::move(el)); + continue; + } + + for (const ClipperLib_Z::Path &path : pieces) { + Arachne::ExtrusionLine clipped(el.inset_idx, el.is_odd); + clipped.junctions.reserve(path.size()); + for (const ClipperLib_Z::IntPoint &pt : path) + clipped.junctions.emplace_back(Point(pt.x(), pt.y()), coord_t(pt.z()), el.inset_idx); + // Discard tiny leftovers that would print as zits. + if (clipped.size() >= 2 && clipped.getLength() >= perimeter_width) + kept.emplace_back(std::move(clipped)); + } + } + inner_perimeter = std::move(kept); + } } void PerimeterGenerator::split_top_surfaces(const ExPolygons &orig_polygons, ExPolygons &top_fills, @@ -649,7 +796,6 @@ void PerimeterGenerator::split_top_surfaces(const ExPolygons &orig_polygons, ExP ExPolygons delete_bridge = diff_ex(orig_polygons, bridge_checker, ApplySafetyOffset::Yes); ExPolygons top_polygons = diff_ex(delete_bridge, upper_polygons_series_clipped, ApplySafetyOffset::Yes); - top_polygons = fill_enclosed_top_feature_holes(top_polygons, upper_polygons_series_clipped, orig_polygons); // get the not-top surface, from the "real top" but enlarged by external_infill_margin (and the // min_width_top_surface we removed a bit before) @@ -1234,6 +1380,11 @@ void PerimeterGenerator::process_classic() for (const Surface &surface : all_surfaces) surface_exp.push_back(surface.expolygon); std::vector surface_order = chain_expolygons(surface_exp); + // ORCA: neither one-wall option has a surface to act on without the shell behind it, see + // has_top_shell_layers() / has_bottom_shell_layers(). Gated here so every use below - including the + // topmost and first layers - sees the same answer. + const bool only_one_wall_top = this->config->only_one_wall_top && has_top_shell_layers(*this->config); + const bool only_one_wall_first_layer = this->config->only_one_wall_first_layer && has_bottom_shell_layers(*this->config); for (size_t order_idx = 0; order_idx < surface_order.size(); order_idx++) { const Surface &surface = all_surfaces[surface_order[order_idx]]; // detect how many perimeters must be generated for this island @@ -1241,16 +1392,23 @@ void PerimeterGenerator::process_classic() int sparse_infill_density = this->config->sparse_infill_density.value; if (this->config->alternate_extra_wall && this->layer_id % 2 == 1 && !m_spiral_vase && sparse_infill_density > 0) // add alternating extra wall loop_number++; - if (this->layer_id == object_config->raft_layers && this->config->only_one_wall_first_layer) + if (this->layer_id == object_config->raft_layers && only_one_wall_first_layer) loop_number = 0; // Set the topmost layer to be one wall - if (loop_number > 0 && config->only_one_wall_top && this->upper_slices == nullptr) + if (loop_number > 0 && only_one_wall_top && this->upper_slices == nullptr) loop_number = 0; ExPolygons last = union_ex(surface.expolygon.simplify_p(surface_simplify_resolution)); ExPolygons gaps; ExPolygons top_fills; ExPolygons fill_clip; + // ORCA: only_one_wall_top, all empty unless this island has a top surface on this layer. See the + // post-onion reduction below: the region to keep clear of inner walls, the space freed by the dropped + // walls (goes to infill, not left as a void) and the space held by the kept ones (withheld from the fill). + ExPolygons one_wall_top_region; + ExPolygons one_wall_top_reclaimed; + Polygons one_wall_top_kept_bands; + bool apply_one_wall_top = false; if (loop_number >= 0) { // In case no perimeters are to be generated, loop_number will equal to -1. std::vector contours(loop_number+1); // depth => loops @@ -1389,8 +1547,19 @@ void PerimeterGenerator::process_classic() //BBS: refer to superslicer //store surface for top infill if only_one_wall_top - if (i == 0 && i!=loop_number && config->only_one_wall_top && !surface.is_bridge() && this->upper_slices != NULL) { - this->split_top_surfaces(last, top_fills, last, fill_clip); + if (i == 0 && i!=loop_number && only_one_wall_top && !surface.is_bridge() && this->upper_slices != NULL) { + if (top_fill_replaces_inner_walls(*this->config)) { + // ORCA: take the top fill and the keep-out region but leave `last` as the real geometry, + // so the onion follows it and the walls over the top are reduced in one step below. + ExPolygons non_top_polygons; + this->split_top_surfaces(last, top_fills, non_top_polygons, fill_clip); + apply_one_wall_top = !top_fills.empty(); + if (apply_one_wall_top) + one_wall_top_region = diff_ex(last, non_top_polygons); + } else { + // Onion the not-top region only, so the remaining walls stop at the top boundary. + this->split_top_surfaces(last, top_fills, last, fill_clip); + } } if (i == loop_number && (! has_gap_fill || this->config->sparse_infill_density.value == 0)) { @@ -1400,6 +1569,46 @@ void PerimeterGenerator::process_classic() } } + // ORCA: only_one_wall_top reduction - drop the inner walls (depth > 0) running over the top surface and + // take that space back from the gaps, leaving the top with the outer wall and the top infill. Classic + // perimeters are closed loops, so a wall can only be kept or dropped whole; one that merely grazes the + // top (same tolerance as the Arachne clip) is kept and withheld from the top fill instead. + if (apply_one_wall_top) { + const BoundingBox top_region_bbox = get_extents(one_wall_top_region).inflated(SCALED_EPSILON); + const double grazing_tolerance = 2. * double(perimeter_width); + // The band a wall covers, taken around its centerline so the orientation of holes does not matter. + auto wall_band = [perimeter_spacing](const Polygon &poly) { + Polygon centerline = poly; + centerline.make_counter_clockwise(); + return diff(offset(centerline, float(perimeter_spacing) / 2.f), + offset(centerline, -float(perimeter_spacing) / 2.f)); + }; + Polygons dropped_wall_bands; + auto reduce_over_top = [&](PerimeterGeneratorLoops &loops) { + loops.erase(std::remove_if(loops.begin(), loops.end(), [&](const PerimeterGeneratorLoop &loop) { + const TopOverlap overlap = classify_over_top(loop.polygon.points, one_wall_top_region, top_region_bbox); + if (overlap == TopOverlap::None) + return false; + // Only a wall straddling the boundary is worth measuring; a wall wholly over the top goes. + if (overlap == TopOverlap::Partial && + total_length(intersection_pl(Polylines{ loop.polygon.split_at_first_point() }, one_wall_top_region)) < grazing_tolerance) { + append(one_wall_top_kept_bands, wall_band(loop.polygon)); + return false; + } + append(dropped_wall_bands, wall_band(loop.polygon)); + return true; + }), loops.end()); + }; + for (int d = 1; d <= loop_number; ++ d) { + reduce_over_top(contours[d]); + reduce_over_top(holes[d]); + } + if (! gaps.empty()) + gaps = diff_ex(gaps, one_wall_top_region); + if (! dropped_wall_bands.empty()) + one_wall_top_reclaimed = diff_ex(dropped_wall_bands, one_wall_top_region); + } + // nest loops: holes first for (int d = 0; d <= loop_number; ++ d) { PerimeterGeneratorLoops &holes_d = holes[d]; @@ -1634,7 +1843,10 @@ void PerimeterGenerator::process_classic() and use zigzag). */ //FIXME Vojtech: This grows by a rounded extrusion width, not by line spacing, // therefore it may cover the area, but no the volume. - last = diff_ex(last, gap_fill.polygons_covered_by_width(10.f)); + Polygons gap_fill_covered = gap_fill.polygons_covered_by_width(10.f); + last = diff_ex(last, gap_fill_covered); + if (! one_wall_top_reclaimed.empty()) + one_wall_top_reclaimed = diff_ex(one_wall_top_reclaimed, gap_fill_covered); this->gap_fill->append(std::move(gap_fill.entities)); } @@ -1679,9 +1891,15 @@ void PerimeterGenerator::process_classic() // append infill areas to fill_surfaces //if any top_fills, grow them by ext_perimeter_spacing/2 to have the real un-anchored fill ExPolygons top_infill_exp = intersection_ex(fill_clip, offset_ex(top_fills, double(ext_perimeter_spacing / 2))); + // ORCA: only_one_wall_top - route the top fill around the walls kept despite grazing the top. + if (!one_wall_top_kept_bands.empty()) + top_infill_exp = diff_ex(top_infill_exp, one_wall_top_kept_bands); if (!top_fills.empty()) { infill_exp = union_ex(infill_exp, offset_ex(top_infill_exp, double(top_infill_peri_overlap))); } + // ORCA: only_one_wall_top - what the top fill does not cover of the dropped walls goes to infill. + if (!one_wall_top_reclaimed.empty()) + infill_exp = union_ex(infill_exp, one_wall_top_reclaimed); this->fill_surfaces->append(infill_exp, stInternal); apply_extra_perimeters(infill_exp); @@ -1700,6 +1918,8 @@ void PerimeterGenerator::process_classic() double(-inset - infill_peri_overlap)); if (!top_fills.empty()) polyWithoutOverlap = union_ex(polyWithoutOverlap, top_infill_exp); + if (!one_wall_top_reclaimed.empty()) + polyWithoutOverlap = union_ex(polyWithoutOverlap, one_wall_top_reclaimed); this->fill_no_overlap->insert(this->fill_no_overlap->end(), polyWithoutOverlap.begin(), polyWithoutOverlap.end()); } @@ -1757,7 +1977,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim ExPolygons unsupported = diff_ex(last, *this->lower_slices, ApplySafetyOffset::Yes); if (!unsupported.empty()) { //remove small overhangs - ExPolygons unsupported_filtered = offset2_ex(unsupported, double(-perimeter_spacing), double(perimeter_spacing)); + ExPolygons unsupported_filtered = opening_ex(unsupported, perimeter_spacing); if (!unsupported_filtered.empty()) { //to_draw.insert(to_draw.end(), last.begin(), last.end()); @@ -1870,35 +2090,40 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim //TODO: add other polys as holes inside this one (-margin) } else { // if(this->config->counterbore_hole_bridging.value == chbBridges) // Orca: Partial counterbore bridging is mask-based. Preserve the supported - // remainder (`last`) and use simplified BridgeDetector coverage to derive the + // remainder and use simplified BridgeDetector coverage to derive the // bridgeable counterbore span. The span is grown from supported material, - // shrunk back, stripped from `last`, and expanded back. It is then prevented - // from intruding deeper into `last` than the explicit anchor overlap. - // Finally, add the allowed anchor band from `last` then remove the + // shrunk back, stripped from the remaining normal surface, and expanded back. + // It is then prevented from intruding deeper into it than the explicit anchor overlap. + // Finally, add the allowed anchor band from it then remove the // narrow hole-side wall contact, which must remain unbridgeable. - last = diff_ex(last, unsupported_filtered, ApplySafetyOffset::Yes); + const ExPolygons remaining = diff_ex(last, unsupported_filtered, ApplySafetyOffset::Yes); ExPolygons bridgeable_filtered; + for (ExPolygon& poly : bridgeable) { poly.simplify(perimeter_spacing, &bridgeable_filtered); } bridgeable_filtered = opening_ex(bridgeable_filtered, ext_perimeter_width); // Get rid of coarseness of the resulted bridgeable area by using the original supported area as reference. - // This is to avoid keeping tiny bridgeable areas that are far from the supported area, or protrude into it. - bridgeable_filtered = union_ex(offset_ex(last, perimeter_spacing), bridgeable_filtered); + // This is to avoid keeping tiny bridgeable areas that are far from the supported area, or protrude into it. + bridgeable_filtered = union_ex(offset_ex(remaining, perimeter_spacing), bridgeable_filtered); bridgeable_filtered = offset_ex(bridgeable_filtered, -perimeter_spacing); - bridgeable_filtered = diff_ex(bridgeable_filtered, last, ApplySafetyOffset::Yes); + bridgeable_filtered = diff_ex(bridgeable_filtered, remaining, ApplySafetyOffset::Yes); bridgeable_filtered = opening_ex(bridgeable_filtered, perimeter_spacing); // filter noise from the diff_ex bridgeable_filtered = offset_ex(bridgeable_filtered, perimeter_spacing); // restore the size to the original bridgeable area // Safety measure: Keep the bridge mask from intruding deeper into the - // supported anchor region (`last`) than the explicit anchor overlap. - bridgeable_filtered = diff_ex(bridgeable_filtered, offset_ex(last, -bridge_anchor_offset)); + // supported anchor region than the explicit anchor overlap. + bridgeable_filtered = diff_ex(bridgeable_filtered, offset_ex(remaining, -bridge_anchor_offset)); - ExPolygons bridge_anchor_areas = intersection_ex(last, offset_ex(unsupported_filtered, bridge_anchor_offset)); + ExPolygons bridge_anchor_areas = intersection_ex(remaining, offset_ex(unsupported_filtered, bridge_anchor_offset)); unsupported_filtered = union_ex(bridgeable_filtered, bridge_anchor_areas); // add bridge anchor unsupported_filtered = opening_ex(unsupported_filtered, bridge_anchor_offset); // remove anchor area from hole-side walls, it must remain unbridgeable + + // update 'last' only if we have a valid bridgeable area, otherwise we will lose the original unsupported area + if (!unsupported_filtered.empty()) + last = remaining; // TODO: Fix the case with thin outer walls around the bridge (1~2 walls) where classic wall // might generate two walls in a tiny space or non at all if "Detect thin walls" is not activated } @@ -2138,6 +2363,11 @@ void PerimeterGenerator::process_arachne() process_no_bridge(all_surfaces, perimeter_spacing, ext_perimeter_width); // BBS: don't simplify too much which influence arc fitting when export gcode if arc_fitting is enabled double surface_simplify_resolution = (print_config->enable_arc_fitting && !this->has_fuzzy_skin) ? 0.2 * m_scaled_resolution : m_scaled_resolution; + // ORCA: neither one-wall option has a surface to act on without the shell behind it, see + // has_top_shell_layers() / has_bottom_shell_layers(). Gated here so every use below - including the + // topmost and first layers - sees the same answer. + const bool only_one_wall_top = this->config->only_one_wall_top && has_top_shell_layers(*this->config); + const bool only_one_wall_first_layer = this->config->only_one_wall_first_layer && has_bottom_shell_layers(*this->config); // we need to process each island separately because we might have different // extra perimeters for each one for (const Surface& surface : all_surfaces) { @@ -2150,12 +2380,12 @@ void PerimeterGenerator::process_arachne() // Set the bottommost layer to be one wall const bool is_bottom_layer = (this->layer_id == object_config->raft_layers) ? true : false; - if (is_bottom_layer && this->config->only_one_wall_first_layer) + if (is_bottom_layer && only_one_wall_first_layer) loop_number = 0; // Orca: set the topmost layer to be one wall according to the config const bool is_topmost_layer = (this->upper_slices == nullptr) ? true : false; - if (is_topmost_layer && loop_number > 0 && config->only_one_wall_top) + if (is_topmost_layer && loop_number > 0 && only_one_wall_top) loop_number = 0; auto apply_precise_outer_wall = config->precise_outer_wall && config->wall_sequence == WallSequence::InnerOuter; @@ -2175,10 +2405,10 @@ void PerimeterGenerator::process_arachne() //PS: One wall top surface for Arachne ExPolygons top_expolygons; // Calculate how many inner loops remain when TopSurfaces is selected. - const int inner_loop_number = (config->only_one_wall_top && upper_slices != nullptr) ? loop_number - 1 : -1; + const int inner_loop_number = (only_one_wall_top && upper_slices != nullptr) ? loop_number - 1 : -1; // Set one perimeter when TopSurfaces is selected. - if (config->only_one_wall_top && loop_number > 0) + if (only_one_wall_top && loop_number > 0) loop_number = 0; Arachne::WallToolPathsParams input_params_tmp = input_params; @@ -2209,7 +2439,6 @@ void PerimeterGenerator::process_arachne() upper_slices_clipped = ClipperUtils::clip_clipper_polygons_with_subject_bbox(*upper_slices, infill_contour_bbox); top_expolygons = diff_ex(infill_contour, upper_slices_clipped); - top_expolygons = fill_enclosed_top_feature_holes(top_expolygons, upper_slices_clipped, infill_contour); if (!top_expolygons.empty()) { if (lower_slices != nullptr) { @@ -2230,25 +2459,33 @@ void PerimeterGenerator::process_arachne() // due to thin lines being generated top_expolygons = offset2_ex(top_expolygons, -top_surface_min_width, top_surface_min_width + float(perimeter_width * 0.85)); - // Get the not-top ExPolygons (including bridges) from current slices and expanded real top ExPolygons (without bridges). - const ExPolygons not_top_expolygons = diff_ex(infill_contour, top_expolygons); - - // Get final top ExPolygons. + // Get final top ExPolygons (bridges were excluded above, so they stay walled). top_expolygons = intersection_ex(top_expolygons, infill_contour); - const Polygons not_top_polygons = to_polygons(offset_ex(not_top_expolygons,wall_0_inset)); - Arachne::WallToolPaths inner_wall_tool_paths(not_top_polygons, perimeter_spacing, perimeter_spacing, coord_t(inner_loop_number + 1), 0, layer_height, input_params_tmp); + // ORCA: onion the real region (inside the outer wall) so the remaining walls follow the actual + // geometry, then cut away the parts over the top surface. Re-onioning the non-top complement + // instead - the fallback when there is no top fill - walls the top/non-top interface and rings + // top-surface islands with inner walls that don't exist when the feature is disabled. + const bool clip_walls_over_top = top_fill_replaces_inner_walls(*this->config); + const Polygons inner_region = to_polygons(offset_ex(clip_walls_over_top ? infill_contour + : diff_ex(infill_contour, top_expolygons), + wall_0_inset)); + Arachne::WallToolPaths inner_wall_tool_paths(inner_region, perimeter_spacing, perimeter_spacing, coord_t(inner_loop_number + 1), 0, layer_height, input_params_tmp); std::vector inner_perimeters = inner_wall_tool_paths.getToolPaths(); - // Recalculate indexes of inner perimeters before merging them. - if (!perimeters.empty()) { - for (Arachne::VariableWidthLines &inner_perimeter : inner_perimeters) { - if (inner_perimeter.empty()) - continue; + if (clip_walls_over_top) { + Polygons kept_over_top; + clip_inner_walls_over_top(inner_perimeters, top_expolygons, perimeter_width, kept_over_top); + // Route the top fill around the walls kept despite grazing the top. + if (! kept_over_top.empty()) + top_expolygons = diff_ex(top_expolygons, kept_over_top); + } + + // Recalculate indexes of inner perimeters before merging them: they come after the single outer wall. + if (!perimeters.empty()) + for (Arachne::VariableWidthLines &inner_perimeter : inner_perimeters) for (Arachne::ExtrusionLine &el : inner_perimeter) ++el.inset_idx; - } - } perimeters.insert(perimeters.end(), inner_perimeters.begin(), inner_perimeters.end()); infill_contour = union_ex(top_expolygons, inner_wall_tool_paths.getInnerContour()); diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index e3a4037590..3e29e0c172 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1791,6 +1791,8 @@ namespace client // from UTF8 to UTF16 don't bail out. msg += boost::nowide::narrow(boost::nowide::widen(error_line)); msg += '\n'; + // The error dialog (MsgDialog.cpp) renders this excerpt monospaced. It recognizes a source + // line directly above a caret line of spaces and a single '^'. for (size_t i = 0; i < error_pos; ++ i) msg += ' '; msg += "^\n"; diff --git a/src/libslic3r/Polyline.hpp b/src/libslic3r/Polyline.hpp index 88671391db..f52c3c9bbd 100644 --- a/src/libslic3r/Polyline.hpp +++ b/src/libslic3r/Polyline.hpp @@ -129,13 +129,13 @@ public: std::vector fitting_result; //BBS: simplify points by arc fitting void simplify_by_fitting_arc(double tolerance); - //BBS: + void reset_to_linear_move(); + //BBS: Polylines equally_spaced_lines(double distance) const; private: void append_fitting_result_after_append_points(); void append_fitting_result_after_append_polyline(const Polyline& src); - void reset_to_linear_move(); bool split_fitting_result_before_index(const size_t index, Point &new_endpoint, std::vector& data) const; bool split_fitting_result_after_index(const size_t index, Point &new_startpoint, std::vector& data) const; }; diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 775c31b563..9ae8b86fd8 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1037,6 +1037,7 @@ static std::vector s_Preset_print_options{ "fill_multiline", "gyroid_optimized", "sparse_infill_pattern", + "sparse_infill_smooth_factor", "lateral_lattice_angle_1", "lateral_lattice_angle_2", "infill_overhang_angle", @@ -1090,7 +1091,7 @@ static std::vector s_Preset_print_options{ "top_surface_speed", "support_speed", "support_object_xy_distance", "support_object_first_layer_gap", "support_interface_speed", "bridge_speed", "internal_bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", "outer_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "skirt_type", "skirt_loops", "skirt_speed","min_skirt_length", "skirt_distance", "skirt_start_angle", "skirt_height","single_loop_draft_shield", "draft_shield", - "brim_width", "brim_object_gap", "brim_flow_ratio", "brim_use_efc_outline", "combine_brims", "brim_type", "brim_ears_max_angle", "brim_ears_detection_length", "enable_support", "support_type", "support_threshold_angle", "support_threshold_overlap","enforce_support_layers", + "brim_width", "brim_object_gap", "brim_flow_ratio", "brim_use_efc_outline", "combine_brims", "brim_type", "brim_ears_max_angle", "brim_ears_detection_length", "brim_ears_outer_only", "enable_support", "support_type", "support_threshold_angle", "support_threshold_overlap","enforce_support_layers", "raft_layers", "raft_first_layer_density", "raft_first_layer_expansion", "raft_contact_distance", "raft_expansion", "support_base_pattern", "support_base_pattern_spacing", "support_expansion", "support_style", // BBS @@ -1350,6 +1351,8 @@ static std::vector s_Preset_filament_options {/*"filament_colour", "filament_retraction_length", "filament_retraction_minimum_travel", "filament_retraction_speed", + "filament_retract_length_toolchange", + "filament_retract_restart_extra_toolchange", "filament_wipe", "filament_z_hop", "filament_z_hop_types", @@ -1403,7 +1406,7 @@ static std::vector s_Preset_machine_limits_options { static std::vector s_Preset_printer_options { "printer_technology", "printable_area", "extruder_printable_area", "support_parallel_printheads", "parallel_printheads_count", "parallel_printheads_bed_exclude_areas", "bed_exclude_area","bed_custom_texture", "bed_custom_model", "gcode_flavor", - "fan_kickstart", "part_cooling_fan_min_pwm", "fan_speedup_time", "fan_speedup_overhangs", + "gcode_skip_config_block", "fan_kickstart", "part_cooling_fan_min_pwm", "fan_speedup_time", "fan_speedup_overhangs", "single_extruder_multi_material", "manual_filament_change", "file_start_gcode", "machine_start_gcode", "machine_end_gcode", "before_layer_change_gcode", "printing_by_object_gcode", "layer_change_gcode", "time_lapse_gcode", "wrapping_detection_gcode", "change_filament_gcode", "change_extrusion_role_gcode", "printer_model", "printer_variant", "printer_extruder_id", "printer_extruder_variant", "extruder_variant_list", "default_nozzle_volume_type", "printable_height", "extruder_printable_height", "extruder_clearance_radius", "extruder_clearance_height_to_lid", "extruder_clearance_height_to_rod", @@ -1420,7 +1423,7 @@ static std::vector s_Preset_printer_options { "use_relative_e_distances", "extruder_type", "use_firmware_retraction", "printer_notes", "grab_length", "support_object_skip_flush", "physical_extruder_map", "cooling_tube_retraction", - "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "wipe_tower_type", "purge_in_prime_tower", "enable_filament_ramming", "tool_change_on_wipe_tower", + "cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "wipe_tower_type", "purge_in_prime_tower", "enable_filament_ramming", "tool_change_on_wipe_tower", "wait_for_temp_on_wipe_tower", "z_offset", "disable_m73", "preferred_orientation", "emit_machine_limits_to_gcode", "pellet_modded_printer", "support_multi_bed_types", "use_3mf", "default_bed_type", "bed_mesh_min","bed_mesh_max","bed_mesh_probe_distance", "adaptive_bed_mesh_margin", "enable_long_retraction_when_cut","long_retractions_when_cut","retraction_distances_when_cut", "bed_temperature_formula", "nozzle_flush_dataset", @@ -3783,12 +3786,14 @@ void PresetCollection::update_library_profile_excluded_from() } // Check all presets that has the same alias as the filament presets with empty compatible_printers in Orca Filament Library. + // A printer specific profile supersedes the generic one, no matter whether it lives in a vendor bundle or in the + // library itself. for (const Preset& preset : m_presets) { - if (preset.vendor == nullptr || preset.vendor->name == PresetBundle::ORCA_FILAMENT_LIBRARY) + if (preset.vendor == nullptr) continue; const auto* compatible_printers = dynamic_cast(preset.config.option("compatible_printers")); - // All profiles in concrete vendor profile shouldn't have empty compatible_printers, but here we check it for safety. + // Profiles with empty compatible_printers are the generic ones, they never supersede anything. if (compatible_printers == nullptr || compatible_printers->values.empty()) continue; auto itr = excluded_froms.find(preset.alias); diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 01cbc43bc2..5557d36891 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -5378,7 +5378,7 @@ void PresetBundle::update_multi_material_filament_presets(size_t to_delete_filam f_multiplier.resize(nozzle_nums, 1.f); } - if ( (num_filaments * num_filaments) != size_t(old_matrix.size() / old_nozzle_nums) ) { + if (old_matrix.size() != num_filaments * num_filaments * nozzle_nums) { // First verify if purging volumes presets for each extruder matches number of extruders std::vector& filaments = this->project_config.option("flush_volumes_vector")->values; while (filaments.size() < 2* num_filaments) { diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 334bda84e9..1af28255ee 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -282,6 +282,14 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n || opt_key == "wipe_tower_x" || opt_key == "wipe_tower_y" || opt_key == "wipe_tower_rotation_angle") { + // The tower gcode itself is position-independent (position and rotation are applied + // at export), except that the wait_for_temp_on_wipe_tower park bakes a bed-relative + // side choice into it (WipeTower2::toolchange_Change) — regenerate it when the tower + // moves. Gating on the old config is safe: both inputs of wait_for_temp_enabled + // invalidate psWipeTower themselves when they are part of the same diff. + if ((opt_key == "wipe_tower_x" || opt_key == "wipe_tower_y" || opt_key == "wipe_tower_rotation_angle") + && WipeTower2::wait_for_temp_enabled(m_config)) + steps.emplace_back(psWipeTower); steps.emplace_back(psSkirtBrim); } else if ( opt_key == "slicing_pipeline_plugin" @@ -382,6 +390,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n || opt_key == "wiping_volumes_extruders" || opt_key == "enable_filament_ramming" || opt_key == "tool_change_on_wipe_tower" + || opt_key == "wait_for_temp_on_wipe_tower" || opt_key == "purge_in_prime_tower" || opt_key == "z_offset" || opt_key == "support_multi_bed_types" @@ -1039,13 +1048,14 @@ static StringObjectException layered_print_cleareance_valid(const Print &print, wipe_tower_convex_hull.points.emplace_back(scale_(x + width), scale_(y)); wipe_tower_convex_hull.points.emplace_back(scale_(x + width), scale_(y + depth)); wipe_tower_convex_hull.points.emplace_back(scale_(x), scale_(y + depth)); - wipe_tower_convex_hull.rotate(a); + wipe_tower_convex_hull.rotate(Geometry::deg2rad(a), Point(scale_(x), scale_(y))); convex_hulls_temp.push_back(wipe_tower_convex_hull); } else { //here, wipe_tower_polygon is not always convex. Polygon wipe_tower_polygon; if (print.wipe_tower_data().wipe_tower_mesh_data) wipe_tower_polygon = print.wipe_tower_data().wipe_tower_mesh_data->bottom; + wipe_tower_polygon.rotate(Geometry::deg2rad(a)); wipe_tower_polygon.translate(Point(scale_(x), scale_(y))); convex_hulls_temp.push_back(wipe_tower_polygon); } @@ -1064,6 +1074,22 @@ static StringObjectException layered_print_cleareance_valid(const Print &print, if (print_config.enable_wrapping_detection.value && !intersection({wrapping_poly}, convex_hulls_temp).empty()) { return {L("Prime Tower") + L(" is too close to clumping detection area, and collisions will be caused.\n")}; } + // Skip the containment check for towers that will never be printed (single-filament + // prints without smooth timelapse keep the config's tower position but emit nothing). + // Pre-generation only the body square is tested — the auto-brim estimate can overshoot + // the generated brim by several mm and must not hard-fail a print that physically fits. + // Post-generation the mesh bottom already includes the real brim, so the exact + // footprint is tested. + if (filaments_count > 1 || print.enable_timelapse_print()) { + // The shared printable polygon is plate-local, while the tower polygons above are + // already shifted by the plate origin. + Polygons printable_polys = print.get_extruder_shared_printable_polygon(); + const Point plate_shift(scale_(plate_origin.x()), scale_(plate_origin.y())); + for (Polygon &p : printable_polys) + p.translate(plate_shift); + if (!diff(convex_hulls_temp, printable_polys).empty()) + return {L("Prime Tower") + L(" is partially outside the printable area, and it cannot be printed.\n")}; + } return {}; } @@ -3409,7 +3435,11 @@ void Print::update_filament_maps_to_config(std::vector f_maps, std::vector< } else if ((extruder_volume_type_count > extruder_count) && (m_config.filament_volume_map.values.size() > index)) nozzle_volume_type = (NozzleVolumeType)(m_config.filament_volume_map.values[index]); - m_config.filament_map_2.values[index] = m_ori_full_print_config.get_index_for_extruder(f_maps[index], "print_extruder_id", extruder_type, nozzle_volume_type, "print_extruder_variant"); + // Orca: when the process variant columns cannot be matched (degenerate + // print_extruder_id), key the override by plain extruder index like the seeding + // above instead of poisoning the map with -1. + int slot_index = m_ori_full_print_config.get_index_for_extruder(f_maps[index], "print_extruder_id", extruder_type, nozzle_volume_type, "print_extruder_variant"); + m_config.filament_map_2.values[index] = slot_index >= 0 ? slot_index : f_maps[index] - 1; } m_full_print_config = m_ori_full_print_config; @@ -3914,6 +3944,12 @@ const WipeTowerData &Print::wipe_tower_data(size_t filaments_cnt) const double volume = wipe_volume * filament_depth_count; if (m_config.nozzle_diameter.values.size() == 2) volume += filament_change_volume * (int) (filaments_cnt / 2); + // Sizing should take into account currently set wiping volumes. + // For a long time, the initial preview would just use 900/width per toolchange (15mm on a 60mm wide tower) + // and it worked well enough. Let's try to do slightly better by accounting for the purging volumes. + const bool semm_flush = m_config.purge_in_prime_tower && m_config.single_extruder_multi_material; + if (semm_flush) volume = WipeTower2::estimate_semm_flush_volume(m_config, filaments_cnt); + if (m_config.wipe_tower_wall_type.value == WipeTowerWallType::wtwRib) { double depth = std::sqrt(volume / layer_height * extra_spacing); if (need_wipe_tower || filaments_cnt > 1) { @@ -3925,30 +3961,16 @@ const WipeTowerData &Print::wipe_tower_data(size_t filaments_cnt) const } } else { - double width = m_config.prime_tower_width; - if (m_config.purge_in_prime_tower && m_config.single_extruder_multi_material) { - // Calculating depth should take into account currently set wiping volumes. - // For a long time, the initial preview would just use 900/width per toolchange (15mm on a 60mm wide tower) - // and it worked well enough. Let's try to do slightly better by accounting for the purging volumes. - std::vector> wipe_volumes = WipeTower2::extract_wipe_volumes(m_config); - std::vector max_wipe_volumes; - for (const std::vector &v : wipe_volumes) - max_wipe_volumes.emplace_back(*std::max_element(v.begin(), v.end())); - float maximum = std::accumulate(max_wipe_volumes.begin(), max_wipe_volumes.end(), 0.f); - maximum = maximum * filaments_cnt / max_wipe_volumes.size(); - - // Orca: it's overshooting a bit, so let's reduce it a bit - maximum *= 0.6; - const_cast(this)->m_wipe_tower_data.depth = maximum / (layer_height * width); - } else { - double depth = volume / (layer_height * width) * extra_spacing; - if (need_wipe_tower || m_wipe_tower_data.depth > EPSILON) { + double width = m_config.prime_tower_width; + double depth = volume / (layer_height * width); + // The flush volumes already hold the spacing between wipes. + if (!semm_flush) depth *= extra_spacing; + if (need_wipe_tower || depth > EPSILON) { float min_wipe_tower_depth = WipeTower::get_limit_depth_by_height(max_height); depth = std::max((double) min_wipe_tower_depth, depth); } const_cast(this)->m_wipe_tower_data.depth = depth; - } - const_cast(this)->m_wipe_tower_data.brim_width = m_config.prime_tower_brim_width; + const_cast(this)->m_wipe_tower_data.brim_width = m_config.prime_tower_brim_width; } if (m_config.prime_tower_brim_width < 0) const_cast(this)->m_wipe_tower_data.brim_width = WipeTower::get_auto_brim_by_height(max_height); } @@ -4017,10 +4039,33 @@ void Print::_make_wipe_tower() // in BBL machine, wipe tower is only use to prime extruder. So just use a global wipe volume. WipeTower wipe_tower(m_config, m_plate_index, m_origin, m_wipe_tower_data.tool_ordering.first_extruder(), m_wipe_tower_data.tool_ordering.empty() ? 0.f : m_wipe_tower_data.tool_ordering.back().print_z, m_wipe_tower_data.tool_ordering.all_extruders()); + // Orca: the tower's first-layer flow follows the user's first-layer flow ratio (BBS reads + // its initial_layer_flow_ratio here — STUDIO-14254; first_layer_flow_ratio is Orca's analog, + // default 1.0 in both). Honor the set_other_flow_ratios gate that governs the option + // everywhere else. + wipe_tower.set_first_layer_flow_ratio(m_default_object_config.set_other_flow_ratios + ? float(m_default_region_config.first_layer_flow_ratio) + : 1.f); wipe_tower.set_has_tpu_filament(this->has_tpu_filament()); - wipe_tower.set_filament_map(this->get_filament_maps()); - // Vortek H2C: pass nozzle-level map for carousel rotation detection in tool_change_new() - wipe_tower.set_filament_nozzle_map(this->get_filament_nozzle_maps()); + // Per-layer filament->nozzle grouping. sort_and_build_data() above publishes it on the Print + // for by-layer prints; by-object prints publish only later (psSkirtBrim), so fall back to the + // ToolOrdering's own copy there. set_extruder() below dereferences it, so it must be set first. + auto print_group_result = get_layered_nozzle_group_result(); + const MultiNozzleUtils::LayeredNozzleGroupResult &nozzle_group_result = + print_group_result ? *print_group_result : m_wipe_tower_data.tool_ordering.get_layered_nozzle_group_result(); + wipe_tower.set_nozzle_group_result(nozzle_group_result); + { + // Orca: acceleration options are object-scope (PrintConfig members in BBS), so resolve + // the per-variant columns here; initial_layer_travel_acceleration is FloatOrPercent + // over travel_acceleration and needs the full config to resolve. + std::vector first_layer_travel_accels; + for (size_t i = 0; i < m_config.initial_layer_travel_acceleration.values.size(); ++i) + first_layer_travel_accels.emplace_back(m_full_print_config.get_abs_value_at("initial_layer_travel_acceleration", i)); + wipe_tower.set_accelerations(m_default_object_config.default_acceleration.values, + m_default_object_config.initial_layer_acceleration.values, + m_default_object_config.travel_acceleration.values, + first_layer_travel_accels); + } // Feed the has_filament_switcher device flag (develop-only dynamic key, read defensively from // the full config — no shipping profile sets it) and the shared printable bed used by the PETG // pre-extrusion offset clamp. Both are inert unless has_filament_switcher is set. @@ -4056,27 +4101,19 @@ void Print::_make_wipe_tower() multi_extruder_flush.emplace_back(wipe_volumes); } - // Use NozzleStatusRecorder for per-carousel-slot tracking (BBS pattern). - // The original Orca code tracked per-extruder (2 slots), which collapsed all - // carousel filaments into one slot and caused massive redundant AMS flushing. - auto group_result = get_layered_nozzle_group_result(); + // Per-carousel-slot purge tracking via NozzleStatusRecorder (BBS pattern); the layered + // group result set on the tower above resolves each filament to its nozzle slot per layer. MultiNozzleUtils::NozzleStatusRecorder nozzle_recorder; - // Fallback (group_result == null) per-physical-nozzle tracking, matching the original - // pre-port behavior: remembers the last filament loaded in each physical nozzle slot. - std::vector nozzle_cur_filament_ids(nozzle_nums, (unsigned int) -1); std::vectorfilament_maps = get_filament_maps(); int layer_idx = -1; unsigned int current_filament_id = m_wipe_tower_data.tool_ordering.first_extruder(); // Initialize NozzleStatusRecorder with the first filament's carousel slot - if (group_result) { - auto nozzle = group_result->get_nozzle_for_filament(current_filament_id, layer_idx); + { + auto nozzle = nozzle_group_result.get_nozzle_for_filament(current_filament_id, layer_idx); if (nozzle) nozzle_recorder.set_nozzle_status(nozzle->group_id, current_filament_id, nozzle->extruder_id); - } else { - size_t cur_nozzle_id = filament_maps[current_filament_id] - 1; - nozzle_cur_filament_ids[cur_nozzle_id] = current_filament_id; } for (auto& layer_tools : m_wipe_tower_data.tool_ordering.layer_tools()) { // for all layers @@ -4095,8 +4132,8 @@ void Print::_make_wipe_tower() float volume_to_purge = 0; // Per-carousel-slot purge tracking via NozzleStatusRecorder - if (group_result) { - auto nozzle_info = group_result->get_nozzle_for_filament(filament_id, layer_idx); + { + auto nozzle_info = nozzle_group_result.get_nozzle_for_filament(filament_id, layer_idx); if (nozzle_info) { int extruder_id = nozzle_info->extruder_id; int nozzle_id = nozzle_info->group_id; @@ -4115,22 +4152,6 @@ void Print::_make_wipe_tower() } nozzle_recorder.set_nozzle_status(nozzle_id, filament_id, extruder_id); } - } else { - // Fallback: original Orca per-physical-nozzle path (non-carousel printers). - // Flush source is the last filament that occupied THIS nozzle, guarded so the - // first use of a nozzle incurs no flush. - int nozzle_id = filament_maps[filament_id] - 1; - unsigned int pre_filament_id = nozzle_cur_filament_ids[nozzle_id]; - if (pre_filament_id != (unsigned int) -1 && pre_filament_id != filament_id) { - volume_to_purge = multi_extruder_flush[nozzle_id][pre_filament_id][filament_id]; - float flush_multiplier = (m_config.prime_volume_mode == PrimeVolumeMode::pvmFast) - ? m_config.flush_multiplier_fast.get_at(nozzle_id) - : m_config.flush_multiplier.get_at(nozzle_id); - volume_to_purge *= flush_multiplier; - volume_to_purge = layer_tools.wiping_extrusions().mark_wiping_extrusions( - *this, current_filament_id, filament_id, volume_to_purge); - } - nozzle_cur_filament_ids[nozzle_id] = filament_id; } //During the filament change, the extruder will extrude an extra length of grab_length for the corresponding detection, so the purge can reduce this length. @@ -4138,29 +4159,21 @@ void Print::_make_wipe_tower() float grab_purge_volume = m_config.grab_length.get_at(grab_extruder_id) * 2.4; //(diameter/2)^2*PI=2.4 volume_to_purge = std::max(0.f, volume_to_purge - grab_purge_volume); - // Select prime volume per-filament: nozzle change (carousel rotation) uses - // filament_prime_volume_nc, filament change (same nozzle slot) uses filament_prime_volume. + // Prime volume per-filament: the tower now picks extruder-change vs nozzle-change + // (carousel) internally per plan layer, so pass both candidates (BBS pattern). float wipe_volume_ec = filament_id < m_config.filament_prime_volume.values.size() ? m_config.filament_prime_volume.values[filament_id] : (float) m_config.prime_volume; float wipe_volume_nc = filament_id < m_config.filament_prime_volume_nc.values.size() ? m_config.filament_prime_volume_nc.values[filament_id] : (float) m_config.prime_volume; - - float prime_volume = wipe_volume_ec; - if (group_result) { - bool is_nozzle_change = group_result->are_filaments_same_extruder(current_filament_id, filament_id, layer_idx) && - !group_result->are_filaments_same_nozzle(current_filament_id, filament_id, layer_idx); - if (is_nozzle_change) { - prime_volume = wipe_volume_nc; - } - } if (m_config.prime_volume_mode == PrimeVolumeMode::pvmSaving) { - prime_volume = 15.f; + wipe_volume_ec = 15.f; + wipe_volume_nc = 15.f; } wipe_tower.plan_toolchange((float)layer_tools.print_z, (float)layer_tools.wipe_tower_layer_height, current_filament_id, filament_id, - prime_volume, volume_to_purge); + wipe_volume_ec, wipe_volume_nc, volume_to_purge); current_filament_id = filament_id; } layer_tools.wiping_extrusions().ensure_perimeters_infills_order(*this); @@ -4338,7 +4351,12 @@ void Print::_make_wipe_tower() wipe_tower.get_rib_width(), wipe_tower.get_rib_length(), config().wipe_tower_fillet_wall.value); const Vec3d origin = Vec3d::Zero(); - m_fake_wipe_tower.set_fake_extrusion_data(wipe_tower.position(), wipe_tower.width(), wipe_tower.get_wipe_tower_height(), + // FakeWipeTower::pos is a bed-frame translation applied after rotation + // (getFakeExtrusionPathsFromWipeTower2 rotates about the local origin), so the + // tower-local rib offset must be rotated into the bed frame first. + m_fake_wipe_tower.rib_offset = Eigen::Rotation2Df(Geometry::deg2rad((float)config().wipe_tower_rotation_angle.value)) * + wipe_tower.get_rib_offset(); + m_fake_wipe_tower.set_fake_extrusion_data(wipe_tower.position() + m_fake_wipe_tower.rib_offset, wipe_tower.width(), wipe_tower.get_wipe_tower_height(), config().initial_layer_print_height, m_wipe_tower_data.depth, m_wipe_tower_data.z_and_depth_pairs, m_wipe_tower_data.brim_width, config().wipe_tower_rotation_angle, config().wipe_tower_cone_angle, diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 0956cfe154..6d5dbb05f5 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -559,9 +559,11 @@ static inline bool model_volume_solid_or_modifier(const ModelVolume &mv) static inline Transform3f trafo_for_bbox(const Transform3d &object_trafo, const Transform3d &volume_trafo) { - Transform3d m = object_trafo * volume_trafo; - m.translation().x() = 0.; - m.translation().y() = 0.; + // Orca: Keep the volume's local XY offset for multipart overlap checks, but remove the object's bed placement. + Transform3d object_trafo_local = object_trafo; + object_trafo_local.translation().x() = 0.; + object_trafo_local.translation().y() = 0.; + Transform3d m = object_trafo_local * volume_trafo; return m.cast(); } @@ -1355,7 +1357,11 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ if ((extruder_volume_type_count > extruder_count) && opt_filament_volume_maps && opt_filament_volume_maps->values.size() == filament_maps.size()) nozzle_volume_type = (NozzleVolumeType)(opt_filament_volume_maps->values[index]); - m_config.filament_map_2.values[index] = new_full_config.get_index_for_extruder(filament_maps[index], "print_extruder_id", extruder_type, nozzle_volume_type, "print_extruder_variant"); + // Orca: when the process variant columns cannot be matched (degenerate + // print_extruder_id), key the override by plain extruder index like the seeding + // above instead of poisoning the map with -1. + int slot_index = new_full_config.get_index_for_extruder(filament_maps[index], "print_extruder_id", extruder_type, nozzle_volume_type, "print_extruder_variant"); + m_config.filament_map_2.values[index] = slot_index >= 0 ? slot_index : filament_maps[index] - 1; } // Do not use the ApplyStatus as we will use the max function when updating apply_status. @@ -1411,6 +1417,16 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_ num_extruders_changed = true; } } + else if (! print_diff.empty()) { + // Orca: m_config can diverge from an unchanged full config (e.g. the in-slice retract + // override recompute writing different values than the apply-time computation). The + // invalidation above already fired for print_diff, so repair m_config here as well; + // otherwise the divergence is never corrected and every subsequent apply of the same + // config invalidates the result again, forever. + m_placeholder_parser.apply_config(filament_overrides); + m_config.apply_only(new_full_config, print_diff, true); + m_config.apply(filament_overrides); + } ModelObjectStatusDB model_object_status_db; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 7510fcf17a..f9d895332a 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -72,6 +72,8 @@ const std::vector filament_extruder_override_keys = { "filament_deretraction_speed", "filament_retract_restart_extra", //not in filament_options_with_variant, added on 20250816 "filament_retraction_minimum_travel", + "filament_retract_length_toolchange", + "filament_retract_restart_extra_toolchange", // BBS: floats "filament_wipe_distance", // bools @@ -1937,6 +1939,13 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(1)); + def = this->add("brim_ears_outer_only", coBool); + def->label = L("Brim ears outer only"); + def->category = L("Support"); + def->tooltip = L("Generate mouse ears only on the outer contour of the model, excluding holes and enclosed sections."); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionBool(false)); + def = this->add("compatible_printers", coStrings); def->label = L("Select printers"); def->mode = comAdvanced; @@ -3457,6 +3466,18 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back(L("Octagram Spiral")); def->set_default_value(new ConfigOptionEnum(ipCrossHatch)); + def = this->add("sparse_infill_smooth_factor", coPercent); + def->label = L("Sparse infill smooth factor"); + def->category = L("Strength"); + def->tooltip = L("Controls how strongly sparse infill corners are rounded. 0% keeps the original right-angle path, " + "while 100% produces the largest possible curves between adjacent infill lines. " + "Currently applies only to the Hilbert Curve."); + def->sidetext = "%"; + def->min = 0; + def->max = 100; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionPercent(0)); + def = this->add("top_surface_acceleration", coFloats); def->label = L("Top surface"); def->category = L("Speed"); @@ -4240,6 +4261,15 @@ void PrintConfigDef::init_fff_params() def->readonly = false; def->set_default_value(new ConfigOptionEnum(gcfMarlinLegacy)); + def = this->add("gcode_skip_config_block", coBool); + def->label = L("Skip G-code config block"); + def->tooltip = L("Do not write the CONFIG_BLOCK (slicer configuration key/value pairs) into the G-code file. " + "This can help with printers whose firmware crashes when parsing these comment lines " + "(e.g. Anycubic go-klipper). Note: the G-code file will no longer contain slicer settings, " + "so importing it back into OrcaSlicer will not restore the configuration."); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionBool(false)); + def = this->add("pellet_modded_printer", coBool); def->label = L("Pellet Modded Printer"); def->tooltip = L("Enable this option if your printer uses pellets instead of filaments."); @@ -4273,7 +4303,7 @@ void PrintConfigDef::init_fff_params() "slow down."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(0)); - + //BBS def = this->add("infill_combination", coBool); def->label = L("Infill combination"); @@ -5706,12 +5736,10 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloatsNullable{10}); def = this->add("retract_length_toolchange", coFloats); - def->label = L("Length"); - //def->full_label = L("Retraction Length (Toolchange)"); - def->full_label = "Retraction Length (Toolchange)"; - //def->tooltip = L("When retraction is triggered before changing tool, filament is pulled back " - // "by the specified amount (the length is measured on raw filament, before it enters " - // "the extruder)."); + def->label = L("Retraction Length (Toolchange)"); + def->tooltip = L("When retraction is triggered before changing tool, filament is pulled back " + "by the specified amount (the length is measured on raw filament, before it enters " + "the extruder)."); def->sidetext = L("mm"); // millimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 10. }); @@ -5965,7 +5993,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloats { 0. }); def = this->add("retract_restart_extra_toolchange", coFloats); - def->label = L("Extra length on restart"); + def->label = L("Extra length on restart (Toolchange)"); def->tooltip = L("When the retraction is compensated after changing tool, the extruder will push " "this additional amount of filament."); def->sidetext = L("mm"); // millimeters, CIS languages need translation @@ -6542,6 +6570,17 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); + def = this->add("wait_for_temp_on_wipe_tower", coBool); + def->label = L("Wait for temperature on wipe tower"); + def->tooltip = L("Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe " + "tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on " + "the tower instead of the model, and the travel overlaps with the heating. " + "Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. " + "The firmware or tool change macro must not wait for the temperature itself. " + "When disabled, the temperature wait is issued right after the tool change command."); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionBool(false)); + def = this->add("wipe_tower_no_sparse_layers", coBool); def->label = L("No sparse layers (beta)"); @@ -8135,10 +8174,12 @@ void PrintConfigDef::init_extruder_option_keys() "long_retractions_when_cut", "retract_after_wipe", "retract_before_wipe", + "retract_length_toolchange", "retract_lift_above", "retract_lift_below", "retract_lift_enforce", "retract_restart_extra", + "retract_restart_extra_toolchange", "retract_when_changing_layer", "retraction_distances_when_cut", "retraction_length", @@ -9226,6 +9267,8 @@ std::set filament_options_with_variant = { "filament_retract_lift_below", "filament_retract_lift_enforce", "filament_retract_restart_extra", + "filament_retract_length_toolchange", + "filament_retract_restart_extra_toolchange", "filament_retraction_speed", "filament_deretraction_speed", "filament_retraction_minimum_travel", @@ -10383,6 +10426,16 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector &variant_index, int stride) +{ + // A single-value object or region override applies to every nozzle variant. + std::vector indices = variant_index; + if (source.size() == 1 && !source.is_nil(0)) + std::fill(indices.begin(), indices.end(), 0); + target.set_to_index(&source, indices, stride); +} + //used for object/region config //use the smallest of multiple to single @@ -10516,6 +10569,44 @@ int DynamicPrintConfig::get_extruder_nozzle_volume_count(int extruder_count, std return count; } +// Orca: BBL system profiles ship full-width print_extruder_id/print_extruder_variant columns, but +// custom multi-extruder printers only ever get the machine-scope columns synthesized for them (see +// extend_extruder_variant); the process scope keeps the length-1 defaults, both in presets and in +// 3mf project configs. Expanding with that degenerate map makes every per-extruder lookup fail, and +// because both keys are themselves in print_options_with_variant, the expansion then latches a +// full-width-but-wrong [1,1,...] map that also defeats the generated_extruder_id fallback in +// get_index_for_extruder. Synthesize the process columns from the printer's extruder_variant_list +// (same token walk as extend_extruder_variant) before expanding. +static void ensure_process_variant_columns(DynamicPrintConfig &config, const DynamicPrintConfig &printer_config) +{ + auto id_opt = dynamic_cast(config.option("print_extruder_id")); + auto variant_opt = dynamic_cast(config.option("print_extruder_variant")); + auto list_opt = dynamic_cast(printer_config.option("extruder_variant_list")); + if (!id_opt || !variant_opt || !list_opt) + return; + if (id_opt->values.size() != 1 || variant_opt->values.size() != 1) + return; + + std::vector ids; + std::vector variants; + for (int i = 0; i < int(list_opt->values.size()); ++i) { + std::vector tokens; + boost::split(tokens, list_opt->get_at(i), boost::is_any_of(","), boost::token_compress_on); + for (std::string &token : tokens) { + boost::trim(token); + if (token.empty()) + continue; + ids.push_back(i + 1); + variants.push_back(token); + } + } + // A single column is the legitimate single-extruder layout, not a degenerate one. + if (ids.size() <= 1) + return; + id_opt->values = std::move(ids); + variant_opt->values = std::move(variants); +} + std::vector DynamicPrintConfig::update_values_to_printer_extruders(DynamicPrintConfig& printer_config, int extruder_count, int extruder_nozzle_volume_count, std::vector>& nv_types, std::set& key_set, std::string id_name, std::string variant_name, unsigned int stride, unsigned int extruder_id, NozzleVolumeType filament_nvt) { @@ -10557,6 +10648,8 @@ std::vector DynamicPrintConfig::update_values_to_printer_extruders(DynamicP variant_count = 1; } else { + if (id_name == "print_extruder_id") + ensure_process_variant_columns(*this, printer_config); // Orca: emit the slots first, then size variant_count from what was actually // emitted. extruder_nozzle_volume_count only equals the emitted total when every // extruder carries per-type stats; an extruder with an empty stats entry combined @@ -11420,7 +11513,7 @@ void update_static_print_config_from_dynamic(ConfigBase& config, const DynamicPr else { ConfigOptionVectorBase* opt_vec_src = static_cast(opt_src); const ConfigOptionVectorBase* opt_vec_dest = static_cast(opt_dest); - opt_vec_src->set_to_index(opt_vec_dest, variant_index, stride); + set_variant_override(*opt_vec_src, *opt_vec_dest, variant_index, stride); } } } diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 67841c6404..f51c1c6411 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -842,6 +842,9 @@ extern std::set printer_options_with_variant_1; extern std::set printer_options_with_variant_2; extern std::set empty_options; +void set_variant_override(ConfigOptionVectorBase &target, const ConfigOptionVectorBase &source, + const std::vector &variant_index, int stride = 1); + extern std::set filament_dev_options; extern void update_static_print_config_from_dynamic(ConfigBase& config, const DynamicPrintConfig& dest_config, std::vector variant_index, std::set& key_set1, int stride = 1); @@ -1082,6 +1085,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloat, brim_width)) ((ConfigOptionFloat, brim_ears_detection_length)) ((ConfigOptionFloat, brim_ears_max_angle)) + ((ConfigOptionBool, brim_ears_outer_only)) ((ConfigOptionFloat, skirt_start_angle)) ((ConfigOptionBool, bridge_no_support)) ((ConfigOptionFloat, elefant_foot_compensation)) @@ -1264,6 +1268,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionString, sparse_infill_rotate_template)) ((ConfigOptionPercent, sparse_infill_density)) ((ConfigOptionEnum, sparse_infill_pattern)) + ((ConfigOptionPercent, sparse_infill_smooth_factor)) ((ConfigOptionFloat, lateral_lattice_angle_1)) ((ConfigOptionFloat, lateral_lattice_angle_2)) ((ConfigOptionFloat, infill_overhang_angle)) @@ -1545,7 +1550,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, gcode_add_line_number)) ((ConfigOptionBool, bbl_bed_temperature_gcode)) ((ConfigOptionEnum, gcode_flavor)) - + ((ConfigOptionBool, gcode_skip_config_block)) ((ConfigOptionFloat, time_cost)) ((ConfigOptionString, layer_change_gcode)) ((ConfigOptionString, time_lapse_gcode)) @@ -1658,6 +1663,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, purge_in_prime_tower)) ((ConfigOptionBool, enable_filament_ramming)) ((ConfigOptionBool, tool_change_on_wipe_tower)) + ((ConfigOptionBool, wait_for_temp_on_wipe_tower)) ((ConfigOptionBool, support_multi_bed_types)) ((ConfigOptionBool, use_3mf)) @@ -2391,6 +2397,55 @@ static void set_flush_volumes_matrix(std::vector &out_matrix, const std::vect } } +template +static bool has_zero_flush_volume_for_used_filaments(const std::vector &fv_matrix, + const std::vector &flush_multipliers, + const std::vector &used_filaments) +{ + if (used_filaments.size() < 2 || flush_multipliers.empty()) + return false; + + if (fv_matrix.size() % flush_multipliers.size() != 0) + return false; + + const size_t matrix_len = fv_matrix.size() / flush_multipliers.size(); + const size_t row_len = size_t(std::sqrt(double(matrix_len))); + if (row_len < 2 || row_len * row_len != matrix_len) + return false; + + std::vector filtered_filaments; + filtered_filaments.reserve(used_filaments.size()); + for (int filament_id : used_filaments) { + if (filament_id <= 0 || filament_id > int(row_len)) + continue; + if (std::find(filtered_filaments.begin(), filtered_filaments.end(), filament_id) == filtered_filaments.end()) + filtered_filaments.push_back(filament_id); + } + if (filtered_filaments.size() < 2) + return false; + + for (T multiplier : flush_multipliers) { + if (multiplier == 0) + return true; + } + + for (size_t nozzle_idx = 0; nozzle_idx < flush_multipliers.size(); nozzle_idx++) { + const size_t block_offset = nozzle_idx * matrix_len; + for (int from_id : filtered_filaments) { + for (int to_id : filtered_filaments) { + if (from_id == to_id) + continue; + + const size_t matrix_idx = block_offset + size_t(from_id - 1) * row_len + size_t(to_id - 1); + if (matrix_idx < fv_matrix.size() && fv_matrix[matrix_idx] == 0) + return true; + } + } + } + + return false; +} + size_t get_extruder_index(const GCodeConfig& config, unsigned int filament_id); } // namespace Slic3r diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 0d31f6c04c..8368de1a4f 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1175,6 +1175,7 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "brim_type" || opt_key == "brim_ears_max_angle" || opt_key == "brim_ears_detection_length" + || opt_key == "brim_ears_outer_only" // BBS: brim generation depends on printing speed || opt_key == "outer_wall_speed" || opt_key == "small_perimeter_speed" @@ -1364,7 +1365,6 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "infill_combination_max_layer_height" || opt_key == "bottom_shell_thickness" || opt_key == "top_shell_thickness" - || opt_key == "top_surface_expansion" || opt_key == "top_surface_expansion_margin" || opt_key == "top_surface_expansion_direction" || opt_key == "minimum_sparse_infill_area" @@ -1400,7 +1400,6 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "infill_anchor" || opt_key == "infill_anchor_max" || opt_key == "top_surface_line_width" - || opt_key == "top_surface_density" || opt_key == "bottom_surface_density" || opt_key == "center_of_surface_pattern" || opt_key == "separated_infills" @@ -1411,6 +1410,7 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "infill_overhang_angle") { steps.emplace_back(posInfill); } else if (opt_key == "sparse_infill_pattern" + || opt_key == "sparse_infill_smooth_factor" || opt_key == "symmetric_infill_y_axis" || opt_key == "infill_shift_step" || opt_key == "sparse_infill_rotate_template" @@ -1434,6 +1434,24 @@ bool PrintObject::invalidate_state_by_config_options( is_approx(new_density->value, 0.) || is_approx(new_density->value, 100.)) steps.emplace_back(posPerimeters); steps.emplace_back(posPrepareInfill); + } else if (opt_key == "top_surface_density") { + // ORCA: 0% means no top solid fill, which switches off both the top surface expansion and the wall + // removal over top surfaces. Only crossing zero matters; posPerimeters cascades to posPrepareInfill. + const auto *old_density = old_config.option(opt_key); + const auto *new_density = new_config.option(opt_key); + assert(old_density && new_density); + if (is_approx(old_density->value, 0.) || is_approx(new_density->value, 0.)) + steps.emplace_back(posPerimeters); + steps.emplace_back(posInfill); + } else if (opt_key == "top_surface_expansion") { + // ORCA: without the expansion the top fill never reaches the space freed by only_one_wall_top, so the + // walls over top surfaces are kept. Only crossing zero matters; posPerimeters cascades to posPrepareInfill. + const auto *old_expansion = old_config.option(opt_key); + const auto *new_expansion = new_config.option(opt_key); + assert(old_expansion && new_expansion); + if (old_expansion->value <= 0. || new_expansion->value <= 0.) + steps.emplace_back(posPerimeters); + steps.emplace_back(posPrepareInfill); } else if (opt_key == "internal_solid_infill_line_width") { // This value is used for calculating perimeter - infill overlap, thus perimeters need to be recalculated. steps.emplace_back(posPerimeters); @@ -1760,51 +1778,50 @@ void PrintObject::detect_surfaces_type() } } - // ORCA: Expand the top surfaces outward by top_surface_expansion in every direction. This - // enlarges the top solid infill and, in particular, grows it over the covered material left - // by features rising from the middle of a top surface (filling holes and joining tops so the - // features rest on it). The expansion stays inside the section it belongs to: each connected - // solid island has its own outer wall, so the top is grown within each island separately and - // clipped to it - growing one island's top across the gap into another island (which may have - // no top surface, leaving a partially filled layer) is never allowed. The top infill sits - // inside the perimeters, so the margin is measured from the walls: the island is inset by the - // band the walls consume (outer wall + inner walls) plus the configured margin, making that - // value the real clearance between the expanded top and the walls (avoiding a hull line). The - // original top is unioned back in, so where it already sits within that band it is kept as-is. - // Never claims a bottom surface. - const double top_expansion = layerm->region().config().top_surface_expansion.value; - if (top_expansion > 0. && ! top.empty()) { - const double d = scale_(top_expansion); - const auto jt = Clipper2Lib::JoinType::Miter; - const ExPolygons T = union_ex(to_expolygons(top)); - const int wall_loops = layerm->region().config().wall_loops.value; + // ORCA: Grow the top surfaces by top_surface_expansion, so the top solid infill also covers the + // material left by features rising from the middle of a top surface (filling the holes and + // joining the tops, so the features rest on solid infill). Each connected island is grown and + // clipped separately: growing one island's top across a gap into another - which may have no top + // surface at all, leaving a partially filled layer - is never allowed. The original top is + // unioned back in and bottom surfaces are never claimed, so this can only add area. + const PrintRegionConfig ®ion_config = layerm->region().config(); + const double top_expansion = region_config.top_surface_expansion.value; + // Nothing to expand without a top fill: a 0% top surface density leaves the top layer with + // walls only, and zero top shell layers retypes it as internal in prepare_fill_surfaces(). + if (top_expansion > 0. && region_config.top_shell_layers.value > 0 && + region_config.top_surface_density.value > 0. && ! top.empty()) { + const double d = scale_(top_expansion); + const ExPolygons T = union_ex(to_expolygons(top)); + // Walls are laid out on spacing, not width; and only_one_wall_top leaves a single wall over + // a top surface, which is exactly the situation handled here. + const int wall_loops = region_config.only_one_wall_top.value ? std::min(region_config.wall_loops.value, 1) + : region_config.wall_loops.value; const double wall_band = wall_loops <= 0 ? 0. : double(layerm->flow(frExternalPerimeter).scaled_width()) + - double(layerm->flow(frPerimeter).scaled_width()) * double(wall_loops - 1); - const double margin = scale_(layerm->region().config().top_surface_expansion_margin.value); + double(layerm->flow(frPerimeter).scaled_spacing()) * double(wall_loops - 1); + const double margin = scale_(region_config.top_surface_expansion_margin.value); // minimum real top to act on: ignore anything thinner than ~2 top-infill lines const float min_top = float(layerm->flow(frTopSolidInfill).scaled_width()); - const auto direction = layerm->region().config().top_surface_expansion_direction.value; + const auto direction = region_config.top_surface_expansion_direction.value; ExPolygons grown; for (const ExPolygon &island : union_ex(layerm_slices_surfaces)) { // The top infill only exists inside the perimeters, so seed and measure from the infill - // region (the island minus the wall band), not the raw slice. A section whose only - // exposed top lies in the wall band - i.e. a layer where the top is just the walls - // themselves - has no infill here and is skipped, instead of being flooded inward by - // the expansion. Thin slivers inside the infill region are dropped by the opening too. + // region (the island minus the wall band), not the raw slice: a section whose exposed top + // is just the walls themselves is then skipped instead of being flooded inward. Clip the + // layer's tops to the island first, to keep the boolean ops proportional to the island. const ExPolygons infill_region = wall_band > 0. ? offset_ex(island, -float(wall_band)) : ExPolygons{ island }; - const ExPolygons island_top = intersection_ex(T, infill_region); + const ExPolygons island_top = intersection_ex( + ClipperUtils::clip_clipper_polygons_with_subject_bbox(T, get_extents(island).inflated(SCALED_EPSILON)), + infill_region); if (opening_ex(island_top, min_top).empty()) continue; // no real top infill in this section - never expand into it - // grow by d, then keep only the part allowed by the configured direction: inward fills - // the holes/gaps left by features (clip the growth back to the top's own filled outline, - // which leaves the outer edge fixed), outward grows the outer edge toward the walls (drop - // the growth that fell into the original holes), and inward+outward keeps both. - ExPolygons expanded = offset_ex_2(island_top, d, jt); + // Grow, then keep only what the configured direction allows, using the top's own filled + // outline (same outer edge, holes closed) to tell the two apart. + ExPolygons expanded = offset_ex_2(island_top, d, Clipper2Lib::JoinType::Miter); if (direction != TopSurfaceExpansionDirection::InwardAndOutward) { - ExPolygons outline; // the top with its holes filled (same outer edge) + ExPolygons outline; outline.reserve(island_top.size()); for (const ExPolygon &ex : island_top) outline.emplace_back(ex.contour); @@ -3795,7 +3812,7 @@ static void apply_to_print_region_config(PrintRegionConfig &out, const DynamicPr else { ConfigOptionVectorBase* opt_vec_src = static_cast(my_opt); const ConfigOptionVectorBase* opt_vec_dest = static_cast(it->second.get()); - opt_vec_src->set_to_index(opt_vec_dest, variant_index, 1); + set_variant_override(*opt_vec_src, *opt_vec_dest, variant_index); } } } diff --git a/src/libslic3r/SLA/IndexedMesh.cpp b/src/libslic3r/SLA/IndexedMesh.cpp index b879e3f48b..65d9d90b34 100644 --- a/src/libslic3r/SLA/IndexedMesh.cpp +++ b/src/libslic3r/SLA/IndexedMesh.cpp @@ -56,12 +56,12 @@ public: int & i, Eigen::Matrix &closest) { - size_t idx_unsigned = 0; - Vec3d closest_vec3d(closest); - double dist = + size_t idx_unsigned { 0 }; + Vec3d closest_vec3d { Vec3d::Zero() }; + const double dist { AABBTreeIndirect::squared_distance_to_indexed_triangle_set( its.vertices, its.indices, m_tree, point, idx_unsigned, - closest_vec3d); + closest_vec3d) }; i = int(idx_unsigned); closest = closest_vec3d; return dist; diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index 2dee4bc780..06ebbbf41d 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -51,9 +51,4 @@ // Enable extension of tool position imgui dialog to show actual speed profile #define ENABLE_ACTUAL_SPEED_DEBUG 1 -// Disable layout inspector for public release -#if BBL_RELEASE_TO_PUBLIC -#define WXINSPECTOR_DISABLE -#endif - #endif // _prusaslicer_technologies_h_ diff --git a/src/libvgcode/include/Viewer.hpp b/src/libvgcode/include/Viewer.hpp index 7c0a0c295a..5141245d96 100644 --- a/src/libvgcode/include/Viewer.hpp +++ b/src/libvgcode/include/Viewer.hpp @@ -91,12 +91,15 @@ public: // void toggle_top_layer_only_view_range(); // - // Dim previous layers (ORCA, ported from preFlight) - // Whether the layers below the current top layer are rendered darkened while - // scrubbing below the full print, so only the current layer is shown at full brightness. + // Dim previous layers (ORCA) + // Whether the layers the layer slider is not scrubbed to are rendered darkened while + // showing less than the full print, so only the inspected layer(s) are at full brightness. + // How bright those darkened layers are rendered, 1.0 = unchanged, 0.0 = black. // bool is_dim_previous_layers() const; void set_dim_previous_layers(bool value); + float get_dim_previous_layers_brightness() const; + void set_dim_previous_layers_brightness(float value); // // Returns true if the given option is visible. // diff --git a/src/libvgcode/src/Settings.hpp b/src/libvgcode/src/Settings.hpp index 89cb9771b4..b3aa371c4a 100644 --- a/src/libvgcode/src/Settings.hpp +++ b/src/libvgcode/src/Settings.hpp @@ -19,9 +19,11 @@ struct Settings EViewType view_type{ EViewType::FeatureType }; ETimeMode time_mode{ ETimeMode::Normal }; bool top_layer_only_view_range{ false }; - // ORCA: when enabled, all layers below the current top layer are rendered - // darkened (keeping their color) while scrubbing below the full print (ported from preFlight) + // ORCA: when enabled, every layer the layer slider is not scrubbed to is rendered + // darkened (keeping its color) while showing less than the full print bool dim_previous_layers{ false }; + // ORCA: how bright those darkened layers are rendered, 1.0 = unchanged, 0.0 = black + float dim_previous_layers_brightness{ 0.4f }; bool spiral_vase_mode{ false }; // // Required update flags diff --git a/src/libvgcode/src/Viewer.cpp b/src/libvgcode/src/Viewer.cpp index a36cf011ce..eb606598e9 100644 --- a/src/libvgcode/src/Viewer.cpp +++ b/src/libvgcode/src/Viewer.cpp @@ -82,6 +82,16 @@ void Viewer::set_dim_previous_layers(bool value) m_impl->set_dim_previous_layers(value); } +float Viewer::get_dim_previous_layers_brightness() const +{ + return m_impl->get_dim_previous_layers_brightness(); +} + +void Viewer::set_dim_previous_layers_brightness(float value) +{ + m_impl->set_dim_previous_layers_brightness(value); +} + bool Viewer::is_option_visible(EOptionType type) const { return m_impl->is_option_visible(type); diff --git a/src/libvgcode/src/ViewerImpl.cpp b/src/libvgcode/src/ViewerImpl.cpp index 9804e12b9e..da1a601149 100644 --- a/src/libvgcode/src/ViewerImpl.cpp +++ b/src/libvgcode/src/ViewerImpl.cpp @@ -1223,16 +1223,12 @@ static float encode_color(const Color& color) { return static_cast(i_color); } -// ORCA: how much the layers below the current top layer are darkened when -// Settings::dim_previous_layers is enabled (ported from preFlight). 0.0 = no change, 1.0 = black. -static constexpr float PREVIOUS_LAYER_DARKEN_FACTOR = 0.60f; - -// ORCA: returns the encoded color scaled towards black by 'factor', preserving its hue -static float encode_color_darkened(const Color& color, float factor) { - const float keep = 1.0f - factor; - const int r = static_cast(color[0] * keep); - const int g = static_cast(color[1] * keep); - const int b = static_cast(color[2] * keep); +// ORCA: returns the encoded color scaled towards black by 'brightness', preserving its hue. +// 1.0 = no change, 0.0 = black. +static float encode_color_dimmed(const Color& color, float brightness) { + const int r = static_cast(color[0] * brightness); + const int g = static_cast(color[1] * brightness); + const int b = static_cast(color[2] * brightness); const int i_color = r << 16 | g << 8 | b; return static_cast(i_color); } @@ -1248,15 +1244,20 @@ void ViewerImpl::update_colors_texture() const size_t top_layer_id = m_settings.top_layer_only_view_range ? m_layers.get_view_range()[1] : 0; const bool color_top_layer_only = m_view_range.get_full()[1] != m_view_range.get_visible()[1]; - // ORCA: when dim_previous_layers is enabled, darken every layer below the current top layer - // (keeping its color) whenever we are not rendering the whole print, so that only the layer - // being scrubbed to is shown at full brightness (ported from preFlight). This shares - // top_layer_id with the greying path, so it only applies while in top-layer-only mode - that - // way the moves slider still animates normally across all layers when that mode is disabled. - const bool dim_previous_layers = m_settings.dim_previous_layers && !m_layers.empty(); - const bool full_render = (m_layers.get_view_range()[0] == 0) && - (m_layers.get_view_range()[1] >= static_cast(m_layers.count()) - 1) && - (m_view_range.get_visible()[1] == m_view_range.get_full()[1]); + // ORCA: when dim_previous_layers is enabled, darken every layer (keeping its color) except the + // one(s) the layer slider is being scrubbed to, so that only those are shown at full brightness. + // A slider thumb marks a layer as inspected only once it is moved away from + // its end of the print: the upper one while it is below the last layer (or while the moves + // slider is not at the end of the layer), the lower one while it is above the first layer, so + // trimming the print from the bottom lights up the lowest visible layer and using the slider as + // a range lights up both ends. When neither thumb is moved the whole print is rendered normally. + // Gated on top-layer-only mode, which the greying path below also keys off of, so that the moves + // slider still animates normally across all layers when that mode is disabled. + const Interval& layers_range = m_layers.get_view_range(); + const bool inspecting_top_layer = layers_range[1] + 1 < m_layers.count() || color_top_layer_only; + const bool inspecting_bottom_layer = layers_range[0] > 0; + const bool dim_previous_layers = m_settings.dim_previous_layers && m_settings.top_layer_only_view_range && + !m_layers.empty() && (inspecting_top_layer || inspecting_bottom_layer); // Based on current settings and slider position, we might want to render some // vertices as dark grey (or darkened, see above). Use either that or the normal color (from the cache). @@ -1265,9 +1266,13 @@ void ViewerImpl::update_colors_texture() for (size_t i=0; i ViewerImpl::get_time_modes() const { std::vector ret; diff --git a/src/libvgcode/src/ViewerImpl.hpp b/src/libvgcode/src/ViewerImpl.hpp index 8a91d5524f..4da312fc0e 100644 --- a/src/libvgcode/src/ViewerImpl.hpp +++ b/src/libvgcode/src/ViewerImpl.hpp @@ -85,9 +85,14 @@ public: bool is_top_layer_only_view_range() const { return m_settings.top_layer_only_view_range; } void toggle_top_layer_only_view_range(); - // ORCA: darken layers below the current top layer while scrubbing (ported from preFlight) + // ORCA: darken every layer the layer slider is not scrubbed to, so that only the inspected + // one(s) - the top thumb's layer, the bottom thumb's layer, or both - stay at full + // brightness. dim_previous_layers_brightness sets how dark the rest go, 1.0 = unchanged, + // 0.0 = black bool is_dim_previous_layers() const { return m_settings.dim_previous_layers; } void set_dim_previous_layers(bool value); + float get_dim_previous_layers_brightness() const { return m_settings.dim_previous_layers_brightness; } + void set_dim_previous_layers_brightness(float value); bool is_spiral_vase_mode() const { return m_settings.spiral_vase_mode; } diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index b52a520200..bf5d1f2421 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -70,6 +70,9 @@ float FullTransparentModdifiedToFixAlpha = 0.3f; // value like 0.18f could not because in C++ (int)(0.18f * 255) == 45 however in OpenGL it renders this as 46 // which breaks the `SelectMachineDialog::record_edge_pixels_data()` function! float FULL_BLACK_THRESHOLD = 0.2f; +// Keep depth_tex away from texture unit 0 to avoid sampler-type aliasing with +// shadow/environment samplers when realistic view is disabled. +static constexpr int OUTLINE_DEPTH_TEX_UNIT = 5; Slic3r::ColorRGBA adjust_color_for_rendering(const Slic3r::ColorRGBA &colors) { @@ -518,6 +521,37 @@ void GLVolume::render_with_outline(const GUI::Size& cnv_size) glsafe(::glStencilMask(0xFF)); glsafe(::glDisable(GL_STENCIL_TEST)); // render the outline using depth buffer and discard the pixels that are not on the outline + // The silhouette is resolved per sample in the shader (see DetectSilho in gouraud.fs/phong.fs). + // That needs the GL 3.2 entry points and a shader that declares depth_tex as sampler2DMS, which + // only the 140 ones do and only under GL_ARB_texture_multisample - so ask the compiled program + // rather than the GL version, or a sampler2D ends up bound to a multisample texture. + // Only the Arb branch below allocates a multisample texture, so keep the target consistent with it. + const bool use_msaa_outline = framebuffers_type == GUI::OpenGLManager::EFramebufferType::Arb && + GUI::wxGetApp().is_gl_version_greater_or_equal_to(3, 2) && + shader->get_uniform_location("msaa_samples") >= 0; + const GLenum depth_tex_target = use_msaa_outline ? GL_TEXTURE_2D_MULTISAMPLE : GL_TEXTURE_2D; + // Keep the depth texture off image unit 0. The object shaders leave shadow_map (and + // environment_tex) at the default sampler value 0 whenever the shadow pass is skipped - which is + // the case with realistic view off - and GL forbids two sampler types referring to the same image + // unit. A sampler2DMS on unit 0 then makes every draw fail with INVALID_OPERATION on drivers that + // enforce it (Mesa), i.e. the model disappears entirely. Unit 5 is unused (shadow_map takes 4). + const int depth_tex_unit = OUTLINE_DEPTH_TEX_UNIT; + int aa_samples = 1; + if (use_msaa_outline) { + if (const AppConfig* app_config = GUI::wxGetApp().app_config; app_config != nullptr) { + const std::string value = app_config->get(SETTING_OPENGL_AA_SAMPLES); + if (value == "2" || value == "4" || value == "8" || value == "16") + aa_samples = ::atoi(value.c_str()); + } + // Never request more samples than the driver supports for depth textures (a 1-sample texture + // is used when MSAA is disabled, keeping a single code path for the sampler2DMS shader). + GLint max_samples = 1; + glsafe(::glGetIntegerv(GL_MAX_DEPTH_TEXTURE_SAMPLES, &max_samples)); + if (aa_samples > max_samples) + aa_samples = max_samples < 1 ? 1 : max_samples; + if (aa_samples < 1) + aa_samples = 1; + } // 1st. render pass, render the model into a separate render target that has only depth buffer GLuint depth_fbo = 0; GLuint depth_tex = 0; @@ -525,21 +559,26 @@ void GLVolume::render_with_outline(const GUI::Size& cnv_size) glsafe(::glGenFramebuffers(1, &depth_fbo)); glsafe(::glBindFramebuffer(GL_FRAMEBUFFER, depth_fbo)); - glActiveTexture(GL_TEXTURE0); + glsafe(::glActiveTexture(GL_TEXTURE0 + depth_tex_unit)); glsafe(::glGenTextures(1, &depth_tex)); - glsafe(::glBindTexture(GL_TEXTURE_2D, depth_tex)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32F, cnv_size.get_width(), cnv_size.get_height(), 0, GL_DEPTH_COMPONENT, GL_FLOAT, nullptr)); + glsafe(::glBindTexture(depth_tex_target, depth_tex)); + if (use_msaa_outline) { + // Multisample textures do not take filter/wrap parameters. + glsafe(::glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, aa_samples, GL_DEPTH_COMPONENT32F, cnv_size.get_width(), cnv_size.get_height(), GL_TRUE)); + } else { + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32F, cnv_size.get_width(), cnv_size.get_height(), 0, GL_DEPTH_COMPONENT, GL_FLOAT, nullptr)); + } - glsafe(::glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depth_tex, 0)); + glsafe(::glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, depth_tex_target, depth_tex, 0)); } else { glsafe(::glGenFramebuffersEXT(1, &depth_fbo)); glsafe(::glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, depth_fbo)); - glActiveTexture(GL_TEXTURE0); + glsafe(::glActiveTexture(GL_TEXTURE0 + depth_tex_unit)); glsafe(::glGenTextures(1, &depth_tex)); glsafe(::glBindTexture(GL_TEXTURE_2D, depth_tex)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); @@ -550,12 +589,15 @@ void GLVolume::render_with_outline(const GUI::Size& cnv_size) glsafe(::glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, depth_tex, 0)); } + // Unbind before drawing: the texture is this framebuffer's depth attachment, so leaving it bound + // to a sampled unit would be a feedback loop. + glsafe(::glBindTexture(depth_tex_target, 0)); + glsafe(::glActiveTexture(GL_TEXTURE0)); glsafe(::glClear(GL_DEPTH_BUFFER_BIT)); if (tverts_range == std::make_pair(0, -1)) model.render(shader); else model.render(this->tverts_range, shader); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); // 2nd. render pass, just a normal render with the depth buffer passed as a texture if (framebuffers_type == GUI::OpenGLManager::EFramebufferType::Arb) { @@ -565,13 +607,17 @@ void GLVolume::render_with_outline(const GUI::Size& cnv_size) } shader->set_uniform("is_outline", true); shader->set_uniform("screen_size", Vec2f{cnv_size.get_width(), cnv_size.get_height()}); - glActiveTexture(GL_TEXTURE0); - glsafe(::glBindTexture(GL_TEXTURE_2D, depth_tex)); - shader->set_uniform("depth_tex", 0); + shader->set_uniform("msaa_samples", aa_samples); + glsafe(::glActiveTexture(GL_TEXTURE0 + depth_tex_unit)); + glsafe(::glBindTexture(depth_tex_target, depth_tex)); + glsafe(::glActiveTexture(GL_TEXTURE0)); + shader->set_uniform("depth_tex", depth_tex_unit); simple_render(shader, model_objects, colors); // Some clean up to do - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); + glsafe(::glActiveTexture(GL_TEXTURE0 + depth_tex_unit)); + glsafe(::glBindTexture(depth_tex_target, 0)); + glsafe(::glActiveTexture(GL_TEXTURE0)); shader->set_uniform("is_outline", false); if (framebuffers_type == GUI::OpenGLManager::EFramebufferType::Arb) { glsafe(::glBindFramebuffer(GL_FRAMEBUFFER, 0)); @@ -1075,6 +1121,10 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, const float support_normal_z = get_selection_support_normal_z(); + // Prime depth_tex on every frame so non-outline draws do not keep the + // default sampler unit 0, which can conflict with other sampler types. + shader->set_uniform("depth_tex", OUTLINE_DEPTH_TEX_UNIT); + for (GLVolumeWithIdAndZ& volume : to_render) { #if ENABLE_MODIFIERS_ALWAYS_TRANSPARENT if (type == ERenderType::Transparent) { diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 74165c20fe..2e436e8462 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -4,6 +4,7 @@ #include "GUI_App.hpp" #include "libslic3r/Preset.hpp" #include "I18N.hpp" +#include #include #include #include @@ -1075,54 +1076,105 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi // Sort the filaments { - static std::unordered_map sorted_names - { {"Bambu PLA Basic", 0}, - {"Bambu PLA Matte", 1}, - {"Bambu PETG HF", 2}, - {"Bambu ABS", 3}, - {"Bambu PLA Silk", 4}, - {"Bambu PLA-CF" , 5}, - {"Bambu PLA Galaxy", 6}, - {"Bambu PLA Metal", 7}, - {"Bambu PLA Marble", 8}, - {"Bambu PETG-CF", 9}, - {"Bambu PETG Translucent", 10}, - {"Bambu ABS-GF", 11} + std::unordered_map selected_filament_ranks; + + // Helper lambda to find a filament Preset by name. We can call this multiple times to walk the inheritance chain and find the base filament. + auto find_filament_by_name = [](const std::string& wanted, const PresetCollection& filaments) -> const Preset* { + for (auto it = filaments.begin(); it != filaments.end(); ++it) { + if (it->name == wanted) { + return &(*it); + } + } + return nullptr; }; - static std::vector sorted_vendors { "Bambu Lab", "Generic" }; - static std::vector sorted_types { "PLA", "PETG", "ABS", "TPU" }; - auto _filament_sorter = [&query_filament_vendors, &query_filament_types](const wxString& left, const wxString& right) -> bool - { - { // Compare name order - const auto& iter1 = sorted_names.find(left); - int name_order1 = (iter1 != sorted_names.end()) ? iter1->second : INT_MAX; + // For each active filament preset, find its base filament alias and promote it in extruder order. + auto bundle = wxGetApp().preset_bundle; + const auto& preset_names = bundle->filament_presets; + for (size_t i = preset_names.size(); i-- > 0; ) { + std::string wanted = preset_names[i]; + const int sort_rank = -static_cast(preset_names.size() - i); + + const Preset* match = nullptr; - const auto& iter2 = sorted_names.find(right); - int name_order2 = (iter2 != sorted_names.end()) ? iter2->second : INT_MAX; - if (name_order1 != name_order2) + do { + auto find_result = find_filament_by_name(wanted, bundle->filaments); + if (!find_result) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << " No available filament name matches " << wanted; + break; + } + + match = find_result; + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " Found available filament matching current preset name " << wanted + << " - Name: " << match->name << " - Alias: " << match->alias + << " - Inherits: " << match->inherits(); + + if (match->inherits().length() == 0) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " No more inherits so we reached the base filament"; + break; + } + + wanted = match->inherits(); + } while (1); // Or loop while (match->alias.length() == 0) because existence of alias and inherits on a Preset seem to be exclusive + + if (!match) { + continue; + } + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " Update filament rank to " + std::to_string(sort_rank) + " for preset Name: " + << match->name << " - Alias: " << match->alias; + selected_filament_ranks.insert_or_assign(match->alias, sort_rank); + } + + static const std::vector sorted_vendors { "Generic" }; + static const std::vector sorted_types { "PLA", "PETG", "ABS", "TPU" }; + auto priority_rank = [](const std::vector& priorities, const wxString& value) { + const auto iter = std::find_if(priorities.begin(), priorities.end(), [&value](const wxString& priority) { + return priority.CmpNoCase(value) == 0; + }); + return iter - priorities.begin(); + }; + auto _filament_sorter = [&query_filament_vendors, &query_filament_types, &selected_filament_ranks, &priority_rank](const wxString& left, const wxString& right) -> bool + { + { // Compare selected filament order + const auto& iter1 = selected_filament_ranks.find(left); + int selected_order1 = (iter1 != selected_filament_ranks.end()) ? iter1->second : INT_MAX; + + const auto& iter2 = selected_filament_ranks.find(right); + int selected_order2 = (iter2 != selected_filament_ranks.end()) ? iter2->second : INT_MAX; + if (selected_order1 != selected_order2) { - return name_order1 < name_order2; + return selected_order1 < selected_order2; } } { // Compare vendor - auto iter1 = std::find(sorted_vendors.begin(), sorted_vendors.end(), query_filament_vendors[left]); - auto iter2 = std::find(sorted_vendors.begin(), sorted_vendors.end(), query_filament_vendors[right]); - if (iter1 != iter2) - { - return iter1 < iter2; - }; + const wxString& vendor1 = query_filament_vendors.at(left); + const wxString& vendor2 = query_filament_vendors.at(right); + const auto rank1 = priority_rank(sorted_vendors, vendor1); + const auto rank2 = priority_rank(sorted_vendors, vendor2); + if (rank1 != rank2) + return rank1 < rank2; + + const int vendor_compare = vendor1.CmpNoCase(vendor2); + if (vendor_compare != 0) + return vendor_compare < 0; } { // Compare type - auto iter1 = std::find(sorted_types.begin(), sorted_types.end(), query_filament_types[left]); - auto iter2 = std::find(sorted_types.begin(), sorted_types.end(), query_filament_types[right]); - if (iter1 != iter2) - { - return iter1 < iter2; - } + const wxString& type1 = query_filament_types.at(left); + const wxString& type2 = query_filament_types.at(right); + const auto rank1 = priority_rank(sorted_types, type1); + const auto rank2 = priority_rank(sorted_types, type2); + if (rank1 != rank2) + return rank1 < rank2; + + const int type_compare = type1.CmpNoCase(type2); + if (type_compare != 0) + return type_compare < 0; } - return left < right; + const int name_compare = left.CmpNoCase(right); + return name_compare != 0 ? name_compare < 0 : left < right; }; std::sort(filament_items.begin(), filament_items.end(), _filament_sorter); diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 57f25eba24..3885a391b8 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -12,6 +12,7 @@ #include "libslic3r/GCode/AdaptivePAProcessor.hpp" #include "Plater.hpp" +#include #include #include @@ -70,6 +71,12 @@ void ConfigManipulation::toggle_line(const std::string& opt_key, const bool togg cb_toggle_line(opt_key, toggle, opt_index); } +void ConfigManipulation::set_option_label(const std::string& opt_key, const wxString& label, int opt_index) +{ + if (cb_set_option_label) + cb_set_option_label(opt_key, label, opt_index); +} + void ConfigManipulation::check_nozzle_recommended_temperature_range(DynamicPrintConfig *config) { if (is_msg_dlg_already_exist) return; @@ -244,6 +251,59 @@ void ConfigManipulation::check_chamber_minimal_temperature(DynamicPrintConfig* c } } +void ConfigManipulation::layer_height_limits(double& min_layer_height, double& max_layer_height) const +{ + const DynamicPrintConfig& printer_config = GUI::wxGetApp().preset_bundle->printers.get_edited_preset().config; + const std::vector& min_limits = printer_config.option("min_layer_height")->values; + const std::vector& max_limits = printer_config.option("max_layer_height")->values; + min_layer_height = *std::min_element(min_limits.begin(), min_limits.end()); + max_layer_height = *std::max_element(max_limits.begin(), max_limits.end()); +} + +bool ConfigManipulation::check_layer_height(DynamicPrintConfig* config) +{ + double min_layer_height = 0., max_layer_height = 0.; + layer_height_limits(min_layer_height, max_layer_height); + const double layer_height = config->opt_float("layer_height"); + + if (min_layer_height > EPSILON && layer_height < EPSILON) { + const wxString msg_text = wxString::Format(_L("Layer height is too small. It will be set to the minimum (%g mm)."), min_layer_height); + MessageDialog dialog(wxGetApp().plater(), msg_text, "", wxICON_WARNING | wxOK); + dialog.SetButtonLabel(wxID_OK, _L("OK")); + is_msg_dlg_already_exist = true; + dialog.ShowModal(); + is_msg_dlg_already_exist = false; + DynamicPrintConfig new_conf = *config; + new_conf.set_key_value("layer_height", new ConfigOptionFloat(min_layer_height)); + apply(config, &new_conf); + return true; + } + if (max_layer_height > EPSILON && layer_height > max_layer_height + EPSILON) + return layer_height_out_of_range_dialog(config, max_layer_height); + if (min_layer_height > EPSILON && layer_height < min_layer_height - EPSILON) + return layer_height_out_of_range_dialog(config, min_layer_height); + return false; +} + +bool ConfigManipulation::layer_height_out_of_range_dialog(DynamicPrintConfig* config, double clamp_to) +{ + wxString msg_text = _(L("Layer height is outside the limits set in Printer Settings -> Extruder -> Layer height limits, " + "this may cause printing quality issues.")); + msg_text += "\n\n" + wxString::Format(_L("Adjust it to the limit (%g mm) automatically?"), clamp_to); + MessageDialog dialog(wxGetApp().plater(), msg_text, "", wxICON_WARNING | wxYES | wxNO); + dialog.SetButtonLabel(wxID_YES, _L("Adjust")); + dialog.SetButtonLabel(wxID_NO, _L("Ignore")); + is_msg_dlg_already_exist = true; + const bool adjust = dialog.ShowModal() == wxID_YES; + if (adjust) { + DynamicPrintConfig new_conf = *config; + new_conf.set_key_value("layer_height", new ConfigOptionFloat(clamp_to)); + apply(config, &new_conf); + } + is_msg_dlg_already_exist = false; + return adjust; +} + void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config, const bool is_plate_config) { // #ys_FIXME_to_delete @@ -258,7 +318,6 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con // layer_height shouldn't be equal to zero auto layer_height = config->opt_float("layer_height"); - auto gpreset = GUI::wxGetApp().preset_bundle->printers.get_edited_preset(); if (layer_height < EPSILON) { const wxString msg_text = _(L("Layer height too small\nIt has been reset to 0.2")); @@ -271,20 +330,6 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con is_msg_dlg_already_exist = false; } - //BBS: limite the max layer_herght - auto max_lh = gpreset.config.opt_float("max_layer_height",0); - if (max_lh > 0.2 && layer_height > max_lh+ EPSILON) - { - const wxString msg_text = wxString::Format(L"Too large layer height.\nReset to %0.3f.", max_lh); - MessageDialog dialog(nullptr, msg_text, "", wxICON_WARNING | wxOK); - DynamicPrintConfig new_conf = *config; - is_msg_dlg_already_exist = true; - dialog.ShowModal(); - new_conf.set_key_value("layer_height", new ConfigOptionFloat(max_lh)); - apply(config, &new_conf); - is_msg_dlg_already_exist = false; - } - //BBS: ironing_spacing shouldn't be too small or equal to zero if (config->opt_float("ironing_spacing") < 0.05) { @@ -703,12 +748,14 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in toggle_line("spiral_mode_max_xy_smoothing", has_spiral_vase && config->opt_bool("spiral_mode_smooth")); toggle_line("spiral_starting_flow_ratio", has_spiral_vase); toggle_line("spiral_finishing_flow_ratio", has_spiral_vase); - bool has_top_shell = config->opt_int("top_shell_layers") > 0 || (has_spiral_vase && config->opt_int("bottom_shell_layers") > 1); + bool has_top_shell_layers = config->opt_int("top_shell_layers") > 0 || (has_spiral_vase && config->opt_int("bottom_shell_layers") > 1); + bool has_top_shell = has_top_shell_layers && config->option("top_surface_density")->value > 0; bool has_bottom_shell = config->opt_int("bottom_shell_layers") > 0; - bool has_solid_infill = has_top_shell || has_bottom_shell; + bool has_solid_infill = has_top_shell_layers || has_bottom_shell; + toggle_line("sparse_infill_smooth_factor", pattern == ipHilbertCurve); toggle_field("top_surface_pattern", has_top_shell); toggle_field("bottom_surface_pattern", has_bottom_shell); - toggle_field("top_surface_density", has_top_shell); + toggle_field("top_surface_density", has_top_shell_layers); toggle_field("bottom_surface_density", has_bottom_shell); toggle_field("top_layer_direction", has_top_shell); toggle_field("bottom_layer_direction", has_bottom_shell); @@ -751,7 +798,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in for (auto el : { "sparse_infill_speed", "bridge_speed", "internal_bridge_speed"}) toggle_field(el, have_infill || has_solid_infill, variant_index); - toggle_field("top_shell_thickness", ! has_spiral_vase && has_top_shell); + toggle_field("top_shell_thickness", ! has_spiral_vase && has_top_shell_layers); toggle_field("bottom_shell_thickness", ! has_spiral_vase && has_bottom_shell); // Gap fill is newly allowed in between perimeter lines even for empty infill (see GH #1476). @@ -806,14 +853,19 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in toggle_field("outer_wall_filament_id", have_perimeters || have_brim); toggle_field("inner_wall_filament_id", have_perimeters || have_brim); - bool have_brim_ear = (config->opt_enum("brim_type") == btEar); + const BrimType brim_type = config->opt_enum("brim_type"); + const bool have_auto_brim_ear = brim_type == btEar; + const bool have_painted_brim_ear = brim_type == btPainted; + set_option_label("brim_width", have_auto_brim_ear ? _L("Brim ear radius") : _L("Brim width")); const auto brim_width = config->opt_float("brim_width"); - // disable brim_ears_max_angle and brim_ears_detection_length if brim_width is 0 + // Automatic brim ear settings require a non-zero brim width. toggle_field("brim_ears_max_angle", brim_width > 0.0f); toggle_field("brim_ears_detection_length", brim_width > 0.0f); - // hide brim_ears_max_angle and brim_ears_detection_length if brim_ear is not selected - toggle_line("brim_ears_max_angle", have_brim_ear); - toggle_line("brim_ears_detection_length", have_brim_ear); + // Painted ears carry their own radius and do not depend on brim_width. + toggle_field("brim_ears_outer_only", have_painted_brim_ear || brim_width > 0.0f); + toggle_line("brim_ears_max_angle", have_auto_brim_ear); + toggle_line("brim_ears_detection_length", have_auto_brim_ear); + toggle_line("brim_ears_outer_only", have_auto_brim_ear || have_painted_brim_ear); // Hide Elephant foot compensation layers if elefant_foot_compensation is not enabled toggle_line("elefant_foot_compensation_layers", config->opt_float("elefant_foot_compensation") > 0 || config->option("elefant_foot_layers_density")->get_abs_value(1.0f) < 1.0f); @@ -1008,7 +1060,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in toggle_line("make_overhang_printable_angle", have_make_overhang_printable); toggle_line("make_overhang_printable_hole_size", have_make_overhang_printable); - toggle_line("min_width_top_surface", config->opt_bool("only_one_wall_top") || ((config->opt_float("min_length_factor") > 0.5f) && have_arachne)); // 0.5 is default value + // Orca: the one-wall options act on top/bottom surfaces, which exist only with a shell. An unfilled surface + // (0% surface density) is still a surface, so these are gated on the layer counts alone. + toggle_line("only_one_wall_first_layer", has_bottom_shell); + toggle_line("only_one_wall_top", has_top_shell_layers); + toggle_line("min_width_top_surface", (has_top_shell_layers && config->opt_bool("only_one_wall_top")) || ((config->opt_float("min_length_factor") > 0.5f) && have_arachne)); // 0.5 is default value for (auto el : { "hole_to_polyhole_threshold", "hole_to_polyhole_twisted", "hole_to_polyhole_max_edges" }) toggle_line(el, config->opt_bool("hole_to_polyhole")); diff --git a/src/slic3r/GUI/ConfigManipulation.hpp b/src/slic3r/GUI/ConfigManipulation.hpp index 0ad1fb0b7c..ac53ffb4bb 100644 --- a/src/slic3r/GUI/ConfigManipulation.hpp +++ b/src/slic3r/GUI/ConfigManipulation.hpp @@ -29,6 +29,7 @@ class ConfigManipulation std::function load_config = nullptr; std::function cb_toggle_field = nullptr; std::function cb_toggle_line = nullptr; + std::function cb_set_option_label = nullptr; // callback to propagation of changed value, if needed std::function cb_value_change = nullptr; //BBS: change local config to const DynamicPrintConfig @@ -45,10 +46,12 @@ public: std::function cb_value_change, //BBS: change local config to DynamicPrintConfig const DynamicPrintConfig* local_config = nullptr, - wxWindow* msg_dlg_parent = nullptr) : + wxWindow* msg_dlg_parent = nullptr, + std::function cb_set_option_label = nullptr) : load_config(load_config), cb_toggle_field(cb_toggle_field), cb_toggle_line(cb_toggle_line), + cb_set_option_label(cb_set_option_label), cb_value_change(cb_value_change), m_msg_dlg_parent(msg_dlg_parent), local_config(local_config) {} @@ -58,6 +61,7 @@ public: load_config = nullptr; cb_toggle_field = nullptr; cb_toggle_line = nullptr; + cb_set_option_label = nullptr; cb_value_change = nullptr; } @@ -67,6 +71,7 @@ public: t_config_option_keys const &applying_keys() const; void toggle_field(const std::string& field_key, const bool toggle, int opt_index = -1); void toggle_line(const std::string& field_key, const bool toggle, int opt_index = -1); + void set_option_label(const std::string& field_key, const wxString& label, int opt_index = -1); // FFF print void update_print_fff_config(DynamicPrintConfig* config, const bool is_global_config = false, const bool is_plate_config = false); @@ -81,6 +86,9 @@ public: void check_filament_max_volumetric_speed(DynamicPrintConfig *config); void check_chamber_temperature(DynamicPrintConfig* config); void check_chamber_minimal_temperature(DynamicPrintConfig* config); + bool check_layer_height(DynamicPrintConfig* config); + bool layer_height_out_of_range_dialog(DynamicPrintConfig* config, double clamp_to); + void layer_height_limits(double& min_layer_height, double& max_layer_height) const; void set_is_BBL_Printer(bool is_bbl_printer) { is_BBL_Printer = is_bbl_printer; }; bool get_is_BBL_Printer() { return is_BBL_Printer; }; // SLA print diff --git a/src/slic3r/GUI/ConnectPrinter.cpp b/src/slic3r/GUI/ConnectPrinter.cpp index b4cd7f4f2f..3e78e7fe5c 100644 --- a/src/slic3r/GUI/ConnectPrinter.cpp +++ b/src/slic3r/GUI/ConnectPrinter.cpp @@ -156,6 +156,8 @@ void ConnectPrinterDialog::on_input_enter(wxCommandEvent& evt) void ConnectPrinterDialog::on_button_confirm(wxCommandEvent &event) { wxString code = m_textCtrl_code->GetTextCtrl()->GetValue(); + if (code.empty()) + code = "88888888"; for (char c : code) { if (!(('0' <= c && c <= '9') || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))) { show_error(this, _L("Invalid input")); @@ -163,7 +165,7 @@ void ConnectPrinterDialog::on_button_confirm(wxCommandEvent &event) } } if (m_obj) { - m_obj->set_user_access_code(code.ToStdString()); + m_obj->set_access_code(code.ToStdString()); } EndModal(wxID_OK); } diff --git a/src/slic3r/GUI/DeviceCore/DevManager.cpp b/src/slic3r/GUI/DeviceCore/DevManager.cpp index 2d54b5c85f..edc958ec53 100644 --- a/src/slic3r/GUI/DeviceCore/DevManager.cpp +++ b/src/slic3r/GUI/DeviceCore/DevManager.cpp @@ -15,6 +15,18 @@ using namespace nlohmann; +namespace { + // Orca: access_code and user_access_code used to be separate AppConfig keys before the two + // fields were merged; fall back to the legacy key so existing users' saved codes aren't lost. + std::string get_access_code_with_legacy_fallback(Slic3r::AppConfig* config, const std::string& dev_id) + { + std::string code = config->get("access_code", dev_id); + if (code.empty()) + code = config->get("user_access_code", dev_id); + return code; + } +} + namespace Slic3r { DeviceManager::DeviceManager(NetworkAgent* agent) @@ -48,8 +60,7 @@ namespace Slic3r obj->bind_sec_link = "secure"; obj->m_is_online = true; obj->last_alive = Slic3r::Utils::get_current_time_utc(); - obj->set_access_code(config->get("access_code", m.dev_id), false); - obj->set_user_access_code(config->get("user_access_code", m.dev_id), false); + obj->set_access_code(get_access_code_with_legacy_fallback(config, m.dev_id), false); if (obj->has_access_right()) { localMachineList.insert(std::make_pair(m.dev_id, obj)); } else { @@ -339,8 +350,7 @@ namespace Slic3r //load access code AppConfig* config = Slic3r::GUI::wxGetApp().app_config; if (config) { - obj->set_access_code(Slic3r::GUI::wxGetApp().app_config->get("access_code", dev_id), false); - obj->set_user_access_code(Slic3r::GUI::wxGetApp().app_config->get("user_access_code", dev_id), false); + obj->set_access_code(get_access_code_with_legacy_fallback(config, dev_id), false); } localMachineList.insert(std::make_pair(dev_id, obj)); @@ -382,7 +392,6 @@ namespace Slic3r obj->m_is_online = true; obj->last_alive = Slic3r::Utils::get_current_time_utc(); obj->set_access_code(access_code, false); - obj->set_user_access_code(access_code, false); update_local_machine(*obj); @@ -496,6 +505,26 @@ namespace Slic3r OnSelectedMachineChanged(previous_selected_machine, selected_machine); } + void DeviceManager::clear_other_devices() + { + // why: on agent swap, keep "My Devices" but drop the transient "Other Devices" + // Those belong to the previous agent's network scan; the new agent's start_discovery re-populates its own. + const auto my = get_my_machine_list(); + for (auto it = localMachineList.begin(); it != localMachineList.end();) + { + if (my.find(it->first) == my.end()) + { + // not a "My Device" -> an "Other Device" + delete it->second; + it = localMachineList.erase(it); + } + else + { + ++it; + } + } + } + bool DeviceManager::set_selected_machine(std::string dev_id) { BOOST_LOG_TRIVIAL(info) << "set_selected_machine=" << dev_id @@ -558,7 +587,6 @@ namespace Slic3r } else { - Slic3r::GUI::wxGetApp().reset_unsigned_plugin_warning(); if (m_agent) { if (it->second->connection_type() != "lan" || it->second->connection_type().empty()) @@ -851,7 +879,9 @@ namespace Slic3r int result = m_agent->get_user_print_info(&http_code, &body, provider); if (result == 0) { - parse_user_print_info(body); + // parse_user_print_info and on_machine_alive (SSDP for discovery) both mutate the same userMachineList map. + // on_machine_alive mutates the map on the UI thread, do the same for parse_user_print_info. + Slic3r::GUI::wxGetApp().CallAfter([this, body]() { parse_user_print_info(body); }); } } @@ -878,17 +908,15 @@ namespace Slic3r void DeviceManager::load_last_machine() { - if (userMachineList.empty()) return; - else if (userMachineList.size() == 1) { - this->set_selected_machine(userMachineList.begin()->second->get_dev_id()); - } else { - const auto& last_monitor_machine = get_user_last_machine(); - if (userMachineList.find(last_monitor_machine) != userMachineList.end()) { - set_selected_machine(last_monitor_machine); - } else { - this->set_selected_machine(userMachineList.begin()->second->get_dev_id()); - } - } + // Only reconnect the remembered cloud machine. Do not select an arbitrary + // first machine: agent swaps intentionally leave the selection empty until + // the new agent explicitly selects its configured printer. + if (userMachineList.empty()) + return; + + const auto& last_monitor_machine = get_user_last_machine(); + if (userMachineList.find(last_monitor_machine) != userMachineList.end()) + set_selected_machine(last_monitor_machine); } void DeviceManager::OnMachineBindStateChanged(MachineObject* obj, const std::string& new_state) diff --git a/src/slic3r/GUI/DeviceCore/DevManager.h b/src/slic3r/GUI/DeviceCore/DevManager.h index 1f7f87b7fb..e3ac0064b9 100644 --- a/src/slic3r/GUI/DeviceCore/DevManager.h +++ b/src/slic3r/GUI/DeviceCore/DevManager.h @@ -48,6 +48,10 @@ public: MachineObject* get_selected_machine(); bool set_selected_machine(std::string dev_id); + // why: clears stale sidebar sync-status / AMS visuals. Public so the printer-agent + // swap path can reuse it instead of duplicating the two sidebar calls. + void OnSelectedMachineLost(); + void record_user_last_machine(const std::string& dev_id); std::string get_user_last_machine() const; @@ -70,6 +74,8 @@ public: void erase_user_machine(std::string dev_id) { userMachineList.erase(dev_id); } void clean_user_info(bool keep_local_selection = false); + void clear_other_devices(); + void load_last_machine(); void update_user_machine_list_info(const std::string& provider); void parse_user_print_info(std::string body); @@ -110,7 +116,6 @@ private: void check_pushing(); void OnMachineBindStateChanged(MachineObject* obj, const std::string& new_state); - void OnSelectedMachineLost(); void OnSelectedMachineChanged(const std::string& pre_dev_id, const std::string& new_dev_id); diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 5499694686..f4befe78c1 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -449,9 +449,7 @@ bool MachineObject::HasRecentLanMessage() std::string MachineObject::get_access_code() const { - if (get_user_access_code().empty()) - return access_code; - return get_user_access_code(); + return access_code; } void MachineObject::set_access_code(std::string code, bool only_refresh) @@ -470,37 +468,6 @@ void MachineObject::set_access_code(std::string code, bool only_refresh) } } -void MachineObject::erase_user_access_code() -{ - this->user_access_code = ""; - AppConfig* config = GUI::wxGetApp().app_config; - if (config) { - GUI::wxGetApp().app_config->erase("user_access_code", get_dev_id()); - //GUI::wxGetApp().app_config->save(); - } -} - -void MachineObject::set_user_access_code(std::string code, bool only_refresh) -{ - this->user_access_code = code; - if (only_refresh && !code.empty()) { - AppConfig* config = GUI::wxGetApp().app_config; - if (config && !code.empty()) { - GUI::wxGetApp().app_config->set_str("user_access_code", get_dev_id(), code); - DeviceManager::update_local_machine(*this); - } - } -} - -std::string MachineObject::get_user_access_code() const -{ - AppConfig* config = GUI::wxGetApp().app_config; - if (config) { - return GUI::wxGetApp().app_config->get("user_access_code", get_dev_id()); - } - return ""; -} - std::string MachineObject::get_show_printer_type() const { std::string printer_type = this->printer_type; @@ -2907,7 +2874,6 @@ int MachineObject::parse_json(std::string tunnel, std::string payload, bool key_ std::string access_code = j_pre["system"]["access_code"].get(); if (!access_code.empty()) { set_access_code(access_code); - set_user_access_code(access_code); } } } @@ -4647,6 +4613,40 @@ void MachineObject::set_ctt_dlg( wxString text){ } } +void MachineObject::show_unsupported_dlg(int code) +{ + // why: a dead control invites repeat clicks, and the frame is modeless - without the guard + // every click stacks another one. Same shape as set_ctt_dlg above, including the reset on + // both hide and close so a dismissed dialog can reappear on the next attempt. + if (m_unsupported_dlg_shown) { + return; + } + m_unsupported_dlg_shown = true; + + // why: two codes so the user learns which kind of dead end this is - the slicer having no + // translation for the command, or the printer's own config lacking the hardware to run it. + const wxString text = (code == ORCA_NETWORK_ERR_CAP_NOT_AVAILABLE) ? + _L("This printer is not configured with the hardware this control needs.") : + _L("This control is not supported on this printer."); + + // note: constructed directly rather than through CallAfter because every publish_json caller + // is on the UI thread - clicks come from wx handlers, and the agent marshals its own push + // callbacks back to main before parse_json runs. set_ctt_dlg relies on the same property. + auto unsupported_dlg = new GUI::SecondaryCheckDialog(nullptr, wxID_ANY, _L("Warning"), + GUI::SecondaryCheckDialog::VisibleButtons::ONLY_CONFIRM); + unsupported_dlg->update_text(text); + unsupported_dlg->Bind(wxEVT_SHOW, [this](auto& e) { + if (!e.IsShown()) { + m_unsupported_dlg_shown = false; + } + }); + unsupported_dlg->Bind(wxEVT_CLOSE_WINDOW, [this](auto& e) { + e.Skip(); + m_unsupported_dlg_shown = false; + }); + unsupported_dlg->on_show(); +} + int MachineObject::publish_gcode(std::string gcode_str) { json j; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 456901cf84..33635fbe6e 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -113,7 +113,6 @@ private: std::string dev_name; std::string dev_ip; std::string access_code; - std::string user_access_code; // type, time stamp, delay std::vector> message_delay; @@ -228,11 +227,6 @@ public: std::string get_access_code() const; void set_access_code(std::string code, bool only_refresh = true); - /*user access code*/ - void set_user_access_code(std::string code, bool only_refresh = true); - void erase_user_access_code(); - std::string get_user_access_code() const; - //PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; std::string printer_type; /* model_id */ std::string get_show_printer_type() const; @@ -272,9 +266,11 @@ public: bool m_is_online; bool m_lan_mode_connection_state{false}; bool m_set_ctt_dlg{ false }; + bool m_unsupported_dlg_shown{ false }; void set_lan_mode_connection_state(bool state) {m_lan_mode_connection_state = state;}; bool get_lan_mode_connection_state() {return m_lan_mode_connection_state;}; void set_ctt_dlg( wxString text); + void show_unsupported_dlg(int code); int parse_msg_count = 0; int keep_alive_count = 0; std::chrono::system_clock::time_point last_update_time; /* last received print data from machine */ diff --git a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp index 33e9cdf518..259506612d 100644 --- a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp +++ b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp @@ -1,9 +1,9 @@ -//**********************************************************/ -/* File: uiAmsHumidityPopup.cpp +/********************************************************** +* File: uiAmsHumidityPopup.cpp * Description: The popup with DevAms Humidity * * \n class uiAmsHumidityPopup -//**********************************************************/ +**********************************************************/ #include "uiAmsHumidityPopup.h" @@ -191,4 +191,4 @@ void uiAmsPercentHumidityDryPopup::msw_rescale() } // namespace GUI -} // namespace Slic3r \ No newline at end of file +} // namespace Slic3r diff --git a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h index 0f22c6b662..a109381c86 100644 --- a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h +++ b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h @@ -1,9 +1,9 @@ -//**********************************************************/ -/* File: uiAmsHumidityPopup.h +/********************************************************** +* File: uiAmsHumidityPopup.h * Description: The popup with DevAms Humidity * * \n class uiAmsHumidityPopup -//**********************************************************/ +**********************************************************/ #pragma once #include "slic3r/GUI/Widgets/AMSItem.hpp" @@ -68,7 +68,7 @@ private: wxStaticBitmap* m_dry_state_img; Label* m_dry_state; - + Label* m_humidity_header; Label* m_humidity_label; @@ -81,4 +81,4 @@ private: wxSizer* m_sizer; }; -}} // namespace Slic3r::GUI \ No newline at end of file +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp b/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp index 5167f482b8..59fc8809ce 100644 --- a/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp +++ b/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp @@ -1,9 +1,9 @@ -//**********************************************************/ -/* File: uiDeviceUpdateVersion.cpp +/********************************************************** +* File: uiDeviceUpdateVersion.cpp * Description: The panel with firmware info * * \n class uiDeviceUpdateVersion -//**********************************************************/ +**********************************************************/ #include "uiDeviceUpdateVersion.h" @@ -114,4 +114,4 @@ void uiDeviceUpdateVersion::CreateWidgets() Layout(); wxGetApp().UpdateDarkUIWin(this); -} \ No newline at end of file +} diff --git a/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h b/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h index 100280db62..342067e374 100644 --- a/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h +++ b/src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h @@ -1,9 +1,9 @@ -//**********************************************************/ -/* File: uiDeviceUpdateVersion.h +/********************************************************** +* File: uiDeviceUpdateVersion.h * Description: The panel with firmware info * * \n class uiDeviceUpdateVersion -//**********************************************************/ +**********************************************************/ #pragma once #include @@ -44,4 +44,4 @@ private: wxStaticText* m_dev_version; wxStaticBitmap* m_dev_upgrade_indicator; }; -};// end of namespace Slic3r::GUI \ No newline at end of file +};// end of namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index bcbc381eff..8d05de13a4 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -35,6 +35,7 @@ #include "Widgets/TextCtrl.h" #include "../Utils/ColorSpaceConvert.hpp" +#include "../Utils/NetworkAgentFactory.hpp" #ifdef __WXOSX__ #define wxOSX true #else @@ -1334,27 +1335,7 @@ void SpinCtrl::BUILD() { if (!parsed || value < INT_MIN || value > INT_MAX) tmp_value = UNDEF_VALUE; else { - tmp_value = std::min(std::max((int)value, temp->GetMin()), temp->GetMax()); -#ifdef __WXOSX__ -#ifdef UNDEFINED__WXOSX__ // BBS - // Forcibly set the input value for SpinControl, since the value - // inserted from the keyboard or clipboard is not updated under OSX - SpinInput* spin = static_cast(window); - spin->SetValue(tmp_value); - // But in SetValue() is executed m_text_ctrl->SelectAll(), so - // discard this selection and set insertion point to the end of string - // temp->GetText()->SetInsertionPointEnd(); -#endif -#else - // update value for the control only if it was changed in respect to the Min/max values - if (tmp_value != (int)value) { - temp->SetValue(tmp_value); - // But after SetValue() cursor ison the first position - // so put it to the end of string - // int pos = std::to_string(tmp_value).length(); - // temp->SetSelection(pos, pos); - } -#endif + tmp_value = (int)value; } }), temp->GetTextCtrl()->GetId()); @@ -1375,6 +1356,10 @@ void SpinCtrl::propagate_value() on_kill_focus(); } else { auto ctrl = dynamic_cast(window); + tmp_value = std::min(std::max(tmp_value, ctrl->GetMin()), ctrl->GetMax()); + if (ctrl->GetValue() != tmp_value) + ctrl->SetValue(tmp_value); // Clamp now when the user is done typing (kill focus / Enter / spin arrows) + if (m_value.empty() ? !ctrl->GetTextCtrl()->GetLabel().IsEmpty() : ctrl->GetValue() != boost::any_cast(m_value)) @@ -1419,39 +1404,6 @@ using choice_ctrl = ::ComboBox; // BBS static std::map dynamic_lists; -static bool is_plugin_printer_agent_key(const std::string& value) -{ - return value.rfind("plugin:", 0) == 0; -} - -static int printer_agent_item_for_enum_index(const choice_ctrl* field, int enum_index) -{ - if (!field) - return -1; - - const unsigned int count = field->GetCount(); - for (unsigned int idx = 0; idx < count; ++idx) { - if (void* data = field->GetClientData(idx)) { - const int stored = static_cast(reinterpret_cast(data)) - 1; - if (stored == enum_index) - return static_cast(idx); - } - } - - return -1; -} - -static int printer_agent_enum_index_for_item(const choice_ctrl* field, int item_index, int fallback) -{ - if (!field || item_index < 0) - return fallback; - - if (void* data = field->GetClientData(item_index)) - return static_cast(reinterpret_cast(data)) - 1; - - return fallback; -} - void Choice::register_dynamic_list(std::string const &optname, DynamicList *list) { dynamic_lists.emplace(optname, list); } void DynamicList::update() @@ -1534,33 +1486,7 @@ void Choice::BUILD() window = dynamic_cast(temp); if (! m_opt.enum_labels.empty() || ! m_opt.enum_values.empty()) { - if (m_opt_id == "printer_agent") { - const bool has_builtin_agents = std::any_of(m_opt.enum_values.begin(), m_opt.enum_values.end(), - [](const std::string& value) { return !is_plugin_printer_agent_key(value); }); - const bool has_plugin_agents = std::any_of(m_opt.enum_values.begin(), m_opt.enum_values.end(), - [](const std::string& value) { return is_plugin_printer_agent_key(value); }); - - auto append_agent_rows = [this, temp](bool plugins) { - for (size_t i = 0; i < m_opt.enum_values.size(); ++i) { - const bool is_plugin = is_plugin_printer_agent_key(m_opt.enum_values[i]); - if (is_plugin != plugins) - continue; - - const wxString label = i < m_opt.enum_labels.size() ? _(m_opt.enum_labels[i]) : wxString(m_opt.enum_values[i]); - const int item = temp->Append(label); - temp->SetClientData(item, reinterpret_cast(static_cast(i + 1))); - } - }; - - if (has_builtin_agents) { - temp->Append(_L("System agents"), wxNullBitmap, DD_ITEM_STYLE_SPLIT_ITEM | DD_ITEM_STYLE_DISABLED); - append_agent_rows(false); - } - if (has_plugin_agents) { - temp->Append(_L("Plugins"), wxNullBitmap, DD_ITEM_STYLE_SPLIT_ITEM | DD_ITEM_STYLE_DISABLED); - append_agent_rows(true); - } - } else if (m_opt.enum_labels.empty()) { + if (m_opt.enum_labels.empty()) { // Append non-localized enum_values for (auto el : m_opt.enum_values) temp->Append(el); @@ -1667,7 +1593,7 @@ void Choice::set_selection() switch (m_opt.type) { case coEnum:{ const int val = m_opt.default_value->getInt(); - field->SetSelection(m_opt_id == "printer_agent" ? printer_agent_item_for_enum_index(field, val) : val); + field->SetSelection(val); break; } case coFloat: @@ -1717,12 +1643,7 @@ void Choice::set_value(const std::string& value, bool change_event) //! Redunda } choice_ctrl* field = dynamic_cast(window); - if (m_opt_id == "printer_agent") { - const int enum_index = idx == m_opt.enum_values.size() ? - (m_opt.default_value ? m_opt.default_value->getInt() : 0) : - static_cast(idx); - field->SetSelection(printer_agent_item_for_enum_index(field, enum_index)); - } else if (idx == m_opt.enum_values.size()) + if (idx == m_opt.enum_values.size()) field->SetValue(value); else field->SetSelection(idx); @@ -1788,33 +1709,11 @@ void Choice::set_value(const boost::any& value, bool change_event) case coEnum: // BBS case coEnums: { - auto printer_agent_index_from_key = [this](const std::string& key) { - auto it = std::find(m_opt.enum_values.begin(), m_opt.enum_values.end(), key); - if (it != m_opt.enum_values.end()) - return static_cast(it - m_opt.enum_values.begin()); - return m_opt.default_value ? m_opt.default_value->getInt() : 0; - }; - - int val = 0; - if (m_opt_id == "printer_agent") { - if (const int* int_value = boost::any_cast(&value)) - val = *int_value; - else if (const wxString* wx_value = boost::any_cast(&value)) - val = printer_agent_index_from_key(into_u8(*wx_value)); - else if (const std::string* string_value = boost::any_cast(&value)) - val = printer_agent_index_from_key(*string_value); - else { - m_disable_change_event = false; - return; - } - } else - val = boost::any_cast(value); + int val = boost::any_cast(value); int selection = val; - if (m_opt_id == "printer_agent") { - selection = printer_agent_item_for_enum_index(field, val); - } else if (m_opt_id == "input_shaping_type") { + if (m_opt_id == "input_shaping_type") { if (field != nullptr) { const unsigned int count = field->GetCount(); int match_index = -1; @@ -1936,12 +1835,6 @@ boost::any& Choice::get_value() { if (m_opt.nullable && field->GetSelection() == -1) m_value = ConfigOptionEnumsGenericNullable::nil_value(); - else if (m_opt_id == "printer_agent") - { - const int selection = field->GetSelection(); - const int fallback = m_opt.default_value ? m_opt.default_value->getInt() : 0; - m_value = printer_agent_enum_index_for_item(field, selection, fallback); - } else if (m_opt_id == "input_shaping_type") { int selection = field->GetSelection(); @@ -2083,6 +1976,171 @@ void Choice::msw_rescale() } +// PrinterAgentChoice + +void PrinterAgentChoice::reload_rows() +{ + auto* combo = dynamic_cast(window); // wxWidgets ComboBox + if (!combo) + return; + + // clear ComboBox + combo->Clear(); + + // helpers + const auto agents = NetworkAgentFactory::get_registered_printer_agents(); + const bool has_builtin_agents = std::any_of(agents.begin(), agents.end(), + [](const PrinterAgentInfo& a) { return !a.is_plugin(); }); + const bool has_plugin_agents = std::any_of(agents.begin(), agents.end(), + [](const PrinterAgentInfo& a) { return a.is_plugin(); }); + + auto append_agent_rows = [combo](bool is_plugin) + { + const auto agents = NetworkAgentFactory::get_registered_printer_agents(); + for (size_t i = 0; i < agents.size(); ++i) + { + if (agents[i].is_plugin() != is_plugin) + continue; + const int item = combo->Append(_(agents[i].display_name)); + // why: carry the agent-id string on the row. alias is an owned wxString (auto-freed, never rendered) + combo->SetItemAlias(item, from_u8(agents[i].id)); + } + }; + + // append rows + if (has_builtin_agents) + { + combo->Append(_L("System agents"), wxNullBitmap, DD_ITEM_STYLE_SPLIT_ITEM | DD_ITEM_STYLE_DISABLED); + append_agent_rows(false); // append rows for agents that are not plugins + } + if (has_plugin_agents) + { + combo->Append(_L("Plugins"), wxNullBitmap, DD_ITEM_STYLE_SPLIT_ITEM | DD_ITEM_STYLE_DISABLED); + append_agent_rows(true); // append rows for agents that are plugins + } +} + +void PrinterAgentChoice::BUILD() +{ + wxSize size(def_width_wider() * m_em_unit, wxDefaultCoord); + if (m_opt.height >= 0) size.SetHeight(m_opt.height * m_em_unit); + if (m_opt.width >= 0) size.SetWidth(m_opt.width * m_em_unit); + + static Builder builder; + choice_ctrl* temp = builder.build(m_parent, wxID_ANY, wxString(""), wxDefaultPosition, size, 0, nullptr, + wxCB_READONLY); + temp->Clear(); + temp->GetDropDown().SetUseContentWidth(true); + if (parent_is_custom_ctrl && m_opt.height < 0) + opt_height = (double)temp->GetTextCtrl()->GetSize().GetHeight() / m_em_unit; + temp->SetTextLabel(_L(m_opt.sidetext)); + m_combine_side_text = true; +#ifdef __WXGTK3__ + wxSize best_sz = temp->GetBestSize(); + if (best_sz.x > size.x) temp->SetSize(best_sz); +#endif + if (!wxOSX) temp->SetBackgroundStyle(wxBG_STYLE_PAINT); + + window = dynamic_cast(temp); + + reload_rows(); + + temp->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent&) { on_change_field(); }, temp->GetId()); + temp->SetToolTip(get_tooltip_text(temp->GetValue())); +} + +// Resolve CONFIG id string to a matching row in the live REGISTRY. "" uses the vendor default. +// An unregistered id clears selection and shows " (missing)" as free text. +void PrinterAgentChoice::set_value(const std::string& value, bool change_event) +{ + m_disable_change_event = !change_event; + + auto* field = dynamic_cast(window); + + // check if any row's corresponding id matches the agent id we are attempting to set + const std::string effective_agent_id = wxGetApp().resolve_printer_agent_id(value); + const unsigned int count = field->GetCount(); + int match = wxNOT_FOUND; + for (unsigned int i = 0; i < count; ++i) + { + if (into_u8(field->GetItemAlias(i)) == effective_agent_id) // if alias == id + { + match = static_cast(i); + break; + } + } + + // based on match or not, set selection and value + // - SetSelection and SetValue are UI to manipulate the display of the ComboBox + // - SetSelection automatically calls SetValue for the same value + // - we can also SetValue separately from SetSelection + if (match == wxNOT_FOUND) + { + field->SetSelection(wxNOT_FOUND); // nothing shows as selected in the dropdown + field->SetValue(from_u8(value + " (missing)")); // set a value not in the selection (upper display field) + } + else + { + // display name of agent shows both in upper display field and appears selected in dropdown + field->SetSelection(match); + } + + m_disable_change_event = false; +} + +// Accept boost::any values from callers (usually to OptionsGroup/Field parent classes) and normalize them to an agent id. +// Then use PrinterAgentChoice::set_value(std::string& value, ...) +void PrinterAgentChoice::set_value(const boost::any& value, bool change_event) +{ + m_disable_change_event = !change_event; + + auto* field = dynamic_cast(window); + if (value.empty()) + { + field->SetValue(""); + m_value = value; + m_disable_change_event = false; + return; + } + + std::string id; + if (const std::string* s = boost::any_cast(&value)) + id = *s; + else if (const wxString* w = boost::any_cast(&value)) + id = into_u8(*w); + set_value(id, change_event); +} + +// A real row returns its alias, which is the agent id. Header rows, missing rows, +// and no selection return empty boost::any so the custom writer leaves config unchanged. +boost::any& PrinterAgentChoice::get_value() +{ + auto* field = dynamic_cast(window); + const int sel = field->GetSelection(); + const std::string id = sel < 0 ? std::string{} : into_u8(field->GetItemAlias(sel)); + if (id.empty()) + m_value = boost::any{}; + else + m_value = id; + return m_value; +} + +void PrinterAgentChoice::enable() { dynamic_cast(window)->Enable(); } +void PrinterAgentChoice::disable() { dynamic_cast(window)->Disable(); } + +void PrinterAgentChoice::msw_rescale() +{ + Field::msw_rescale(); + + auto* field = dynamic_cast(window)->GetTextCtrl(); + wxSize size(wxDefaultSize); + size.SetWidth((m_opt.width > 0 ? m_opt.width : def_width_wider()) * m_em_unit); + field->SetMinSize(wxSize(-1, int(1.5f * field->GetFont().GetPixelSize().y + 0.5f))); + field->SetSize(size); + + dynamic_cast(window)->Rescale(); +} + void PluginField::BUILD() { auto* panel = new wxPanel(m_parent, wxID_ANY); diff --git a/src/slic3r/GUI/Field.hpp b/src/slic3r/GUI/Field.hpp index 4e9c65da5d..e57a569561 100644 --- a/src/slic3r/GUI/Field.hpp +++ b/src/slic3r/GUI/Field.hpp @@ -469,6 +469,44 @@ public: void suppress_scroll(); }; +// printer_agent is a coString whose choices come from the live agent registry. +// PrinterAgentChoice uses a ComboBox directly because Choice expects static config enums. +// Real rows carry the stored agent id in the row alias (SetItemAlias/GetItemAlias). +class PrinterAgentChoice : public Field +{ + using Field::Field; + +public: + PrinterAgentChoice(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt, id) + { + } + + PrinterAgentChoice(wxWindow* parent, const ConfigOptionDef& opt, const t_config_option_key& id) : Field( + parent, opt, id) + { + } + + ~PrinterAgentChoice() + { + } + + wxWindow* window{nullptr}; + + void BUILD() override; + // Clear and repopulate rows from the live registry (grouped System agents / Plugins). + // Does not change selection; the caller follows with set_value(stored id). + void reload_rows(); + + void set_value(const std::string& value, bool change_event = false); + void set_value(const boost::any& value, bool change_event = false) override; + boost::any& get_value() override; + + void enable() override; + void disable() override; + void msw_rescale() override; + wxWindow* getWindow() override { return window; } +}; + class PluginField : public Field { using Field::Field; public: diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 20bcb109e1..b882117aae 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -1134,8 +1134,9 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const if (current_top_layer_only != required_top_layer_only) m_viewer.toggle_top_layer_only_view_range(); - // ORCA: darken layers below the current one while scrubbing the preview (ported from preFlight) + // ORCA: darken the layers the preview layer slider is not scrubbed to m_viewer.set_dim_previous_layers(get_app_config()->get_bool("preview_dim_previous_layers")); + m_viewer.set_dim_previous_layers_brightness(0.01f * std::stoi(get_app_config()->get("preview_dim_previous_layers_brightness"))); // avoid processing if called with the same gcode_result if (m_last_result_id == gcode_result.id && wxGetApp().is_editor()) { diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 570c688987..a19f7bb9ae 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -333,9 +333,12 @@ public: libvgcode::EViewType get_view_type() const { return m_viewer.get_view_type(); } - // ORCA: darken layers below the current top layer while scrubbing the preview (ported from preFlight) + // ORCA: darken the layers not scrubbed to while using the preview layer slider void set_dim_previous_layers(bool value) { m_viewer.set_dim_previous_layers(value); } bool is_dim_previous_layers() const { return m_viewer.is_dim_previous_layers(); } + // ORCA: brightness of those darkened layers, 1.0 = unchanged, 0.0 = black + void set_dim_previous_layers_brightness(float value) { m_viewer.set_dim_previous_layers_brightness(value); } + float get_dim_previous_layers_brightness() const { return m_viewer.get_dim_previous_layers_brightness(); } void set_layers_z_range(const std::array& layers_z_range); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index f39761f0ec..a51a10296c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1842,6 +1842,10 @@ void GLCanvas3D::enable_separator_toolbar(bool enable) m_separator_toolbar.set_enabled(enable); } +bool GLCanvas3D::has_mouse_capture() const { + return m_canvas != nullptr && m_canvas->HasCapture(); +} + void GLCanvas3D::zoom_to_bed() { BoundingBoxf3 box = m_bed.build_volume().bounding_volume(); @@ -2182,7 +2186,7 @@ void GLCanvas3D::render(bool only_init) // Negative coordinate means out of the window, likely because the window was deactivated. // In that case the tooltip should be hidden. - if (m_mouse.position.x() >= 0. && m_mouse.position.y() >= 0.) { + if (m_mouse.position.x() >= 0. && m_mouse.position.y() >= 0. || has_mouse_capture()) { // ORCA continue to capture mouse pos mid drag if (tooltip.empty()) tooltip = m_layers_editing.get_tooltip(*this); @@ -2867,6 +2871,9 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re } if (wt && (need_wipe_tower || filaments_count > 1) && !wxGetApp().plater()->only_gcode_mode() && !wxGetApp().plater()->is_gcode_3mf()) { + // The tower size estimate reads printer- and filament-scope keys, which the print preset + // does not carry; built once here rather than per plate. + const DynamicPrintConfig full_config = wxGetApp().preset_bundle->full_config(); for (int plate_id = 0; plate_id < n_plates; plate_id++) { // If print ByObject and there is only one object in the plate, the wipe tower is allowed to be generated. PartPlate* part_plate = ppl.get_plate(plate_id); @@ -2891,51 +2898,26 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re if (part_plate->get_objects_on_this_plate().empty()) continue; float brim_width = print->wipe_tower_data(filaments_count).brim_width; - const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; int nozzle_nums = wxGetApp().preset_bundle->get_printer_extruder_count(); - Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(print_cfg, w, v, nozzle_nums, 0, false, dynamic_cast(dconfig.option("enable_wrapping_detection"))->value); + Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(full_config, w, v, nozzle_nums, 0, false, dynamic_cast(dconfig.option("enable_wrapping_detection"))->value); - { - const float margin = WIPE_TOWER_MARGIN + brim_width; - BoundingBoxf3 plate_bbox = part_plate->get_bounding_box(); - BoundingBoxf plate_bbox_2d(Vec2d(plate_bbox.min(0), plate_bbox.min(1)), Vec2d(plate_bbox.max(0), plate_bbox.max(1))); - const std::vector &extruder_areas = part_plate->get_extruder_areas(); - for (Pointfs points : extruder_areas) { - BoundingBoxf bboxf(points); - plate_bbox_2d.min = plate_bbox_2d.min(0) >= bboxf.min(0) ? plate_bbox_2d.min : bboxf.min; - plate_bbox_2d.max = plate_bbox_2d.max(0) <= bboxf.max(0) ? plate_bbox_2d.max : bboxf.max; - } - - coordf_t plate_bbox_x_min_local_coord = plate_bbox_2d.min(0) - plate_origin(0); - coordf_t plate_bbox_x_max_local_coord = plate_bbox_2d.max(0) - plate_origin(0); - coordf_t plate_bbox_y_max_local_coord = plate_bbox_2d.max(1) - plate_origin(1); - - if (!current_print->is_step_done(psWipeTower) || !current_print->wipe_tower_data().wipe_tower_mesh_data) { - // update for wipe tower position - { - int volume_idx_wipe_tower_new = m_volumes.load_wipe_tower_preview(1000 + plate_id, x + plate_origin(0), y + plate_origin(1), - (float) wipe_tower_size(0), (float) wipe_tower_size(1), (float) wipe_tower_size(2), - a, - /*!print->is_step_done(psWipeTower)*/ true, brim_width); - int volume_idx_wipe_tower_old = volume_idxs_wipe_tower_old[plate_id]; - if (volume_idx_wipe_tower_old != -1) map_glvolume_old_to_new[volume_idx_wipe_tower_old] = volume_idx_wipe_tower_new; - } - } else { - const float margin = 2.f; - auto tower_bottom = current_print->wipe_tower_data().wipe_tower_mesh_data->bottom; - tower_bottom.translate(scaled(Vec2d{x, y})); - tower_bottom.translate(scaled(Vec2d{plate_origin[0], plate_origin[1]})); - auto tower_bottom_bbox = get_extents(tower_bottom); - BoundingBoxf3 plate_bbox = wxGetApp().plater()->get_partplate_list().get_plate(plate_id)->get_build_volume(true); - BoundingBox plate_bbox2d = BoundingBox(scaled(Vec2f(plate_bbox.min[0], plate_bbox.min[1])), scaled(Vec2f(plate_bbox.max[0], plate_bbox.max[1]))); - Vec2f offset = WipeTower::move_box_inside_box(tower_bottom_bbox, plate_bbox2d, scaled(margin)); - int volume_idx_wipe_tower_new = m_volumes.load_real_wipe_tower_preview(1000 + plate_id, x + plate_origin(0), y + plate_origin(1), - current_print->wipe_tower_data().wipe_tower_mesh_data->real_wipe_tower_mesh, - current_print->wipe_tower_data().wipe_tower_mesh_data->real_brim_mesh, - true,a,/*!print->is_step_done(psWipeTower)*/ true, m_initialized); - int volume_idx_wipe_tower_old = volume_idxs_wipe_tower_old[plate_id]; - if (volume_idx_wipe_tower_old != -1) map_glvolume_old_to_new[volume_idx_wipe_tower_old] = volume_idx_wipe_tower_new; - } + // The stored position is already clamped onto the bed, by + // set_default_wipe_tower_pos_for_plate and again on every drag. + if (!current_print->is_step_done(psWipeTower) || !current_print->wipe_tower_data().wipe_tower_mesh_data) { + // update for wipe tower position + int volume_idx_wipe_tower_new = m_volumes.load_wipe_tower_preview(1000 + plate_id, x + plate_origin(0), y + plate_origin(1), + (float) wipe_tower_size(0), (float) wipe_tower_size(1), (float) wipe_tower_size(2), + a, + /*!print->is_step_done(psWipeTower)*/ true, brim_width); + int volume_idx_wipe_tower_old = volume_idxs_wipe_tower_old[plate_id]; + if (volume_idx_wipe_tower_old != -1) map_glvolume_old_to_new[volume_idx_wipe_tower_old] = volume_idx_wipe_tower_new; + } else { + int volume_idx_wipe_tower_new = m_volumes.load_real_wipe_tower_preview(1000 + plate_id, x + plate_origin(0), y + plate_origin(1), + current_print->wipe_tower_data().wipe_tower_mesh_data->real_wipe_tower_mesh, + current_print->wipe_tower_data().wipe_tower_mesh_data->real_brim_mesh, + true,a,/*!print->is_step_done(psWipeTower)*/ true, m_initialized); + int volume_idx_wipe_tower_old = volume_idxs_wipe_tower_old[plate_id]; + if (volume_idx_wipe_tower_old != -1) map_glvolume_old_to_new[volume_idx_wipe_tower_old] = volume_idx_wipe_tower_new; } } } @@ -4170,6 +4152,23 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) // BBS: single snapshot Plater::SingleSnapshot single(wxGetApp().plater()); +#ifdef __WXMAC__ + // On macOS, the mouse key state is only present for mouse btn related events such as wxEVT_LEFT_DOWN. + // For other events, all buttons are reported as non-pressed, such as window leaving event. This causes + // imgui stopped responding if cursor moved out of window, such as + // https://github.com/OrcaSlicer/OrcaSlicer/pull/14999#issuecomment-5151344759 + // We solve this by correcting the state of the event from the actual mouse state querying with `wxGetMouseState()` + // so it works like on other platforms. + { + const auto state = wxGetMouseState(); + evt.SetLeftDown(state.LeftIsDown()); + evt.SetMiddleDown(state.MiddleIsDown()); + evt.SetRightDown(state.RightIsDown()); + evt.SetAux1Down(state.Aux1IsDown()); + evt.SetAux2Down(state.Aux2IsDown()); + } +#endif + #if ENABLE_RETINA_GL const float scale = m_retina_helper->get_scale_factor(); evt.SetX(evt.GetX() * scale); @@ -4183,11 +4182,27 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) // ignore left up events coming from imgui windows and not processed by them m_mouse.ignore_left_up = true; m_tooltip.set_in_imgui(false); - if (imgui->update_mouse_data(evt)) { + + // while a non-ImGui drag is already in progress (gizmo grabber, object move, rectangle selection, layer editing), + // don't let ImGui/ImGuizmo claim the event just because the cursor is hovering something like the navigator cube + // that incorrectly suppresses the active drag's tooltip and can interrupt its processing. The active drag always takes priority. + const bool other_drag_active = m_gizmos.is_dragging() || m_mouse.dragging || m_rectangle_selection.is_dragging() || m_layers_editing.state == LayersEditing::Editing; + + if (imgui->update_mouse_data(evt) && !other_drag_active) { if ((evt.LeftDown() || (evt.Moving() && (evt.AltDown() || evt.ShiftDown()))) && m_canvas != nullptr) m_canvas->SetFocus(); m_mouse.position = evt.Leaving() ? Vec2d(-1.0, -1.0) : pos.cast(); m_tooltip.set_in_imgui(true); + + // ORCA keep tracking mouse position while drag active and cursor not in window bounds + const bool imgui_dragging_active = (GImGui != nullptr && ImGui::GetIO().MouseDown[0] && GImGui->ActiveId != 0) || m_navigator_dragging; + if (!has_mouse_capture() && imgui_dragging_active) + m_canvas->CaptureMouse(); + + // release capture as soon as the button goes up + if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) + mouse_up_cleanup(); + render(); #ifdef SLIC3R_DEBUG_MOUSE_EVENTS printf((format_mouse_event_debug_message(evt) + " - Consumed by ImGUI\n").c_str()); @@ -4284,6 +4299,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_main_toolbar.on_mouse(evt2, *this); } + // ORCA keep tracking mouse position while drag active and cursor not in window bounds + if (!has_mouse_capture() && evt.LeftIsDown() && m_gizmos.is_dragging()) + m_canvas->CaptureMouse(); + if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) mouse_up_cleanup(); @@ -4389,6 +4408,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) // Start editing the layer height. m_layers_editing.state = LayersEditing::Editing; _perform_layer_editing_action(&evt); + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); } else { @@ -4402,6 +4424,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) && m_gizmos.get_current_type() != GLGizmosManager::MmSegmentation && m_gizmos.get_current_type() != GLGizmosManager::FuzzySkin) { m_rectangle_selection.start_dragging(m_mouse.position, evt.ShiftDown() ? GLSelectionRectangle::Select : GLSelectionRectangle::Deselect); + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + m_dirty = true; } } @@ -4469,6 +4495,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_mouse.drag.start_position_3D = m_mouse.scene_position; m_sequential_print_clearance_first_displacement = true; m_moving = true; + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); } } } @@ -4477,6 +4506,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) } else if (evt.Dragging() && evt.LeftIsDown() && m_mouse.drag.move_volume_idx != -1 && m_layers_editing.state == LayersEditing::Unknown) { if (m_canvas_type != ECanvasType::CanvasAssembleView) { + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + if (!m_mouse.drag.move_requires_threshold) { m_mouse.dragging = true; Vec3d cur_pos = m_mouse.drag.start_position_3D; @@ -4528,6 +4561,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) else if (evt.Dragging() && evt.LeftIsDown() && m_picking_enabled && m_rectangle_selection.is_dragging()) { //BBS not in assemble view if (m_canvas_type != ECanvasType::CanvasAssembleView) { + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + m_rectangle_selection.dragging(pos.cast()); m_dirty = true; } @@ -4537,12 +4574,19 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (m_layers_editing.state != LayersEditing::Unknown && layer_editing_object_idx != -1) { if (m_layers_editing.state == LayersEditing::Editing) { + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + _perform_layer_editing_action(&evt); m_mouse.position = pos.cast(); } } // do not process the dragging if the left mouse was set down in another canvas else if (is_camera_rotate(evt, button_mappings)) { + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + // Orca: Sphere rotation for painting view // if dragging over blank area with left button or other button mapped to rotate, then rotate bool middle_or_right_button_used_as_rotate = (evt.MiddleIsDown() && button_mappings[MouseButton::Middle] == MouseAction::Rotation) || @@ -4622,6 +4666,10 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_mouse.drag.start_position_3D = Vec3d((double)pos(0), (double)pos(1), 0.0); } else if (is_camera_pan(evt, button_mappings)) { + + if (!has_mouse_capture()) // ORCA keep tracking mouse position while drag active and cursor not in window bounds + m_canvas->CaptureMouse(); + // if dragging with right button or if button functions swapped and dragging with left button over blank area then pan if (m_mouse.is_start_position_2D_defined()) { // get point in model space at Z = 0 @@ -4686,7 +4734,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) deselect_all(); } //BBS Select plate in this 3D canvas. - else if (evt.LeftUp() && !m_mouse.dragging && m_picking_enabled && !m_hover_plate_idxs.empty() && (m_canvas_type == CanvasView3D) && !is_layers_editing_enabled()) + // The left up may come from an ImGui window (e.g. a drag started on the gizmo floating window and released over the bed), + // in which case it must not be treated as a click on the plate, otherwise the gizmo would be closed (see deselect_all below). + else if (evt.LeftUp() && !m_mouse.ignore_left_up && !m_mouse.dragging && m_picking_enabled && !m_hover_plate_idxs.empty() && (m_canvas_type == CanvasView3D) && !is_layers_editing_enabled()) { int hover_idx = m_hover_plate_idxs.front(); wxGetApp().plater()->select_plate_by_hover_id(hover_idx); @@ -6033,9 +6083,18 @@ void GLCanvas3D::_render_3d_navigator() { if (!wxGetApp().show_3d_navigator()) { m_canvas_toolbar_pos[0] = 0; + m_navigator_dragging = false; return; } + // Fix stealing capture event from other drag events + const bool other_drag_active = !m_navigator_dragging && (m_moving || m_rectangle_selection.is_dragging() || m_gizmos.is_dragging() || m_layers_editing.state == LayersEditing::Editing); + + ImGuiIO& io = ImGui::GetIO(); + const bool saved_mouse_down0 = io.MouseDown[0]; + if (other_drag_active) + io.MouseDown[0] = false; + ImGuizmo::BeginFrame(); auto& style = ImGuizmo::GetStyle(); @@ -6060,7 +6119,6 @@ void GLCanvas3D::_render_3d_navigator() sc *= (float) dpi / (float) DPI_DEFAULT; #endif // WIN32 - const ImGuiIO& io = ImGui::GetIO(); const float viewManipulateLeft = 0; const float viewManipulateTop = io.DisplaySize.y; const float camDistance = 8.f; @@ -6084,6 +6142,10 @@ void GLCanvas3D::_render_3d_navigator() camDistance, ImVec2(viewManipulateLeft, viewManipulateTop - size), ImVec2(size, size), 0x00101010); + // Restore the real mouse-down state + if (other_drag_active) + io.MouseDown[0] = saved_mouse_down0; + if (result.changed) { for (unsigned int c = 0; c < 4; ++c) { for (unsigned int r = 0; r < 4; ++r) { @@ -6115,6 +6177,8 @@ void GLCanvas3D::_render_3d_navigator() request_extra_frame(); } + + m_navigator_dragging = result.dragging; } #define ENABLE_THUMBNAIL_GENERATOR_DEBUG_OUTPUT 0 @@ -6913,7 +6977,7 @@ void GLCanvas3D::_update_select_plate_toolbar_stats_item(bool force_selected) { else m_sel_plate_toolbar.show_stats_item = false; - if (force_selected && m_sel_plate_toolbar.show_stats_item) + if (force_selected && m_sel_plate_toolbar.show_stats_item && m_sel_plate_toolbar.m_all_plates_stats_item) m_sel_plate_toolbar.m_all_plates_stats_item->selected = true; } @@ -9226,8 +9290,12 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar() //ORCA ImGui::IsWindowHovered() returns false when left_down events on buttons that causes scrollbar disappears for a short time auto win_pos = ImGui::GetWindowPos(); - bool is_win_hovered = ImGui::IsMouseHoveringRect(win_pos, win_pos + ImVec2(window_width + (show_scroll ? scrollbar_size : 0), window_height), !show_scroll); // use non clipped rectangle to reserve clickable area for scrollbar track - m_sel_plate_toolbar.is_display_scrollbar = is_win_hovered; + bool is_win_hovered = ImGui::IsMouseHoveringRect(win_pos, win_pos + ImVec2(window_width + (show_scroll ? scrollbar_size : 0), window_height), !show_scroll); + + // Also show scrollbar visible and continue to capture mouse position + const bool is_scrollbar_active_drag = GImGui != nullptr && ImGui::GetIO().MouseDown[0] && GImGui->ActiveId != 0 && GImGui->ActiveIdWindow == ImGui::GetCurrentWindow(); + + m_sel_plate_toolbar.is_display_scrollbar = is_win_hovered || is_scrollbar_active_drag; imgui.end(); } @@ -10534,9 +10602,8 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state) wxString region = L"en"; if (language.find("zh") == 0) region = L"zh"; - // Use the generic dual-nozzle PLA+PETG guide rather than the H2D-specific page - // so the link is relevant for all dual-extrusion printers, not just Bambu H2D. (#12073) - wxGetApp().open_browser_with_warning_dialog(wxString::Format(L"https://wiki.bambulab.com/%s/filament-acc/filament/pla-and-petg-dual-extrusion", region)); + // Although this link looks like it's only for the H2D, its guidance is generic. + wxGetApp().open_browser_with_warning_dialog(wxString::Format(L"https://wiki.bambulab.com/%s/filament-acc/filament/h2d-pla-and-petg-mutual-support", region)); return false; }); } @@ -10670,24 +10737,14 @@ bool GLCanvas3D::is_flushing_matrix_error() { if (!Sidebar::should_show_SEMM_buttons()) return false; + std::vector plate_extruders = wxGetApp().plater()->get_partplate_list().get_curr_plate()->get_extruders(true); + if (plate_extruders.size() < 2) + return false; + const auto &project_config = wxGetApp().preset_bundle->project_config; const std::vector &config_matrix = (project_config.option("flush_volumes_matrix"))->values; const std::vector &config_multiplier = (project_config.option("flush_multiplier"))->values; - - for (auto multiplier : config_multiplier) { - if (multiplier == 0) return true; - } - - int matrix_len = config_matrix.size() / config_multiplier.size(); - int row_len = std::sqrt(matrix_len); - for (int i = 0; i < config_matrix.size(); i++) - { - int relative_id = i % matrix_len; - int row_id = relative_id / row_len; - int col_id = relative_id % row_len; - if (row_id != col_id && config_matrix[i] == 0) return true; - } - return false; + return has_zero_flush_volume_for_used_filaments(config_matrix, config_multiplier, plate_extruders); } bool GLCanvas3D::_is_any_volume_outside() const diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 84cf311e57..17497edf16 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -589,6 +589,7 @@ private: bool m_toolpath_outside{ false }; ECursorType m_cursor_type; GLSelectionRectangle m_rectangle_selection; + bool m_navigator_dragging{ false }; //BBS:add plate related logic mutable std::vector m_hover_volume_idxs; @@ -916,6 +917,7 @@ public: void update_volumes_colors_by_extruder(); bool is_dragging() const { return m_gizmos.is_dragging() || m_moving; } + bool has_mouse_capture() const; void render(bool only_init = false); bool is_rendering_enabled() @@ -1117,6 +1119,10 @@ public: void set_mouse_as_dragging() { m_mouse.dragging = true; } bool is_mouse_dragging() const { return m_mouse.dragging; } + // True when the current left up event comes from an ImGui window and was not processed by it + // (e.g. a drag that started on a gizmo floating window and was released over the 3D scene). + // Such a release is the end of an ImGui interaction, not a click on the scene. + bool is_mouse_left_up_ignored() const { return m_mouse.ignore_left_up; } double get_size_proportional_to_max_bed_size(double factor) const; diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index 554ecd4a4e..29f8fc9749 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -256,18 +256,18 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt } } -void show_error(wxWindow* parent, const wxString& message, bool monospaced_font) +void show_error(wxWindow* parent, const wxString& message, bool has_code_excerpts) { wxGetApp().CallAfter([=] { - ErrorDialog msg(parent, message, monospaced_font); + ErrorDialog msg(parent, message, has_code_excerpts); msg.ShowModal(); }); } -void show_error(wxWindow* parent, const char* message, bool monospaced_font) +void show_error(wxWindow* parent, const char* message, bool has_code_excerpts) { assert(message); - show_error(parent, wxString::FromUTF8(message), monospaced_font); + show_error(parent, wxString::FromUTF8(message), has_code_excerpts); } void show_error_id(int id, const std::string& message) diff --git a/src/slic3r/GUI/GUI.hpp b/src/slic3r/GUI/GUI.hpp index 357fd20a97..db882b79cf 100644 --- a/src/slic3r/GUI/GUI.hpp +++ b/src/slic3r/GUI/GUI.hpp @@ -40,11 +40,11 @@ extern void add_menus(wxMenuBar *menu, int event_preferences_changed, int event_ // Change option value in config void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt_key, const boost::any& value, int opt_index = 0); -// If monospaced_font is true, the error message is displayed using html
tags, -// so that the code formatting will be preserved. This is useful for reporting errors from the placeholder parser. -void show_error(wxWindow* parent, const wxString& message, bool monospaced_font = false); -void show_error(wxWindow* parent, const char* message, bool monospaced_font = false); -inline void show_error(wxWindow* parent, const std::string& message, bool monospaced_font = false) { show_error(parent, message.c_str(), monospaced_font); } +// If has_code_excerpts is true, code excerpts (a source line and the caret line below it) render +// monospaced so the caret aligns. Used for placeholder-parser errors. +void show_error(wxWindow* parent, const wxString& message, bool has_code_excerpts = false); +void show_error(wxWindow* parent, const char* message, bool has_code_excerpts = false); +inline void show_error(wxWindow* parent, const std::string& message, bool has_code_excerpts = false) { show_error(parent, message.c_str(), has_code_excerpts); } void show_error_id(int id, const std::string& message); // For Perl void show_info(wxWindow* parent, const wxString& message, const wxString& title = wxString()); void show_info(wxWindow* parent, const char* message, const char* title = nullptr); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 07e99348bb..db51bd9d8e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -307,6 +307,20 @@ public: #endif // !__APPLE__ ) { + // Some desktop environments ignore splash screen typed window properties + // when running the app through Wayland,resulting in the titlebar being shown + // on the splash screen. The code below creates a client-side window decoration + // when running on Wayland and then removes that decoration. This ensures every + // environment correctly targets and removes the titlebar for this screen. + #if defined(__WXGTK__) + if (Slic3r::GUI::is_running_on_wayland()) { + GtkWidget *empty = gtk_fixed_new(); + gtk_widget_set_size_request(empty, 0, 0); + gtk_window_set_titlebar(GTK_WINDOW(GetHandle()), empty); + gtk_window_set_decorated(GTK_WINDOW(GetHandle()), false); + } + #endif + this->SetPosition(pos); this->CenterOnScreen(); @@ -2152,7 +2166,6 @@ void GUI_App::init_networking_callbacks() obj->is_tunnel_mqtt = tunnel; obj->command_request_push_all(true); obj->command_get_version(); - obj->erase_user_access_code(); obj->command_get_access_code(); if (m_agent) m_agent->install_device_cert(obj->get_dev_id(), obj->is_lan_mode_printer()); @@ -2202,7 +2215,6 @@ void GUI_App::init_networking_callbacks() wxString text; if (msg == "5") { obj->set_access_code(""); - obj->erase_user_access_code(); text = wxString::Format(_L("Incorrect password")); wxGetApp().show_dialog(text); } else { @@ -2795,16 +2807,58 @@ void GUI_App::init_plugin_gui_wiring() }); }; + // why: a newly loaded plugin only adds a selectable agent + // refresh the dropdown and leave the live agent alone + auto refresh_printer_agent_dropdown_after_load = [](const std::string&) + { + if (!wxTheApp) + return; + + GUI_App* app = &GUI::wxGetApp(); + if (app->is_closing()) + return; + + app->CallAfter([app] + { + if (!app->is_closing()) + app->refresh_printer_agent_dropdown(); + }); + }; + + // why: the unloaded plugin may have been the provider of the live agent + // re-run selection, where a now-missing agent will be cleared + // refresh dropdown after + auto switch_printer_agent_after_unload = [](const std::string&) + { + if (!wxTheApp) + return; + + GUI_App* app = &GUI::wxGetApp(); + if (app->is_closing()) + return; + + app->CallAfter([app] { + if (app->is_closing()) + return; + + app->switch_printer_agent(); + app->refresh_printer_agent_dropdown(); + }); + }; + plugin_mgr.subscribe_on_unload_callback(PluginHostUi::close_windows_for_plugin); plugin_mgr.subscribe_on_load_callback([refresh_plugins_dialog](const std::string&) { refresh_plugins_dialog(); }); plugin_mgr.subscribe_on_unload_callback([refresh_plugins_dialog](const std::string&) { refresh_plugins_dialog(); }); plugin_mgr.subscribe_on_load_callback(NetworkAgentFactory::register_python_plugin); plugin_mgr.subscribe_on_unload_callback(NetworkAgentFactory::deregister_python_plugin); + plugin_mgr.subscribe_on_load_callback(refresh_printer_agent_dropdown_after_load); + plugin_mgr.subscribe_on_unload_callback(switch_printer_agent_after_unload); plugin_mgr.subscribe_on_capability_load_callback( - [refresh_plugins_dialog](const PluginCapabilityId& capability) { + [refresh_plugins_dialog, refresh_printer_agent_dropdown_after_load](const PluginCapabilityId& capability) { if (capability.type == PluginCapabilityType::PrinterConnection) NetworkAgentFactory::register_python_printer_agent(capability.plugin_key, capability.name); refresh_plugins_dialog(); + refresh_printer_agent_dropdown_after_load(capability.plugin_key); // A newly loaded capability may satisfy a missing-plugin notification; re-validate the // current plate (on the UI thread) so the notification clears once its plugin is available. if (wxTheApp && !wxGetApp().is_closing()) @@ -2814,10 +2868,11 @@ void GUI_App::init_plugin_gui_wiring() }); }); plugin_mgr.subscribe_on_capability_unload_callback( - [refresh_plugins_dialog](const PluginCapabilityId& capability) { + [refresh_plugins_dialog, switch_printer_agent_after_unload](const PluginCapabilityId& capability) { if (capability.type == PluginCapabilityType::PrinterConnection) NetworkAgentFactory::deregister_python_printer_agent(capability.plugin_key, capability.name); refresh_plugins_dialog(); + switch_printer_agent_after_unload(capability.plugin_key); }); } @@ -3859,6 +3914,48 @@ unsigned GUI_App::get_colour_approx_luma(const wxColour &colour) )); } +void GUI_App::refresh_printer_agent_dropdown() +{ + if (Tab* tab = get_tab(Preset::TYPE_PRINTER)) + { + if (auto* printer_tab = dynamic_cast(tab)) + printer_tab->refresh_printer_agent_dropdown(); + } +} + +void GUI_App::set_live_printer_agent(std::shared_ptr agent) +{ + if (!m_agent) + return; + + // why: tearing down the old machine selection is only ever the prefix of setting the live + // agent (to a new one, or to null when the selection is missing) - so it lives here, not as + // a standalone helper. Pass nullptr to clear the selection. + if (DeviceManager* dev = getDeviceManager()) + { + dev->set_selected_machine(""); // why: empty id disconnects and deselects the current machine + m_agent->set_user_selected_machine(""); + // note: belt-and-suspenders (precedent: DeviceManagerRefresher::on_timer) + dev->OnSelectedMachineLost(); // why: clear stale sidebar sync-status / AMS + dev->clear_other_devices(); // why: drop stale LAN discoveries; keep My Devices + } + + m_agent->set_printer_agent(agent); + sidebar().update_all_preset_comboboxes(); +} + +std::string GUI_App::resolve_printer_agent_id(const std::string& stored_id) +{ + if (!stored_id.empty()) + return stored_id; + return (preset_bundle && preset_bundle->is_bbl_vendor()) ? BBL_PRINTER_AGENT_ID : ORCA_PRINTER_AGENT_ID; +} + +std::string GUI_App::canonical_printer_agent_id(const std::string& picked_id) +{ + return picked_id == resolve_printer_agent_id("") ? std::string() : picked_id; +} + void GUI_App::switch_printer_agent() { if (!m_agent) { @@ -3866,24 +3963,17 @@ void GUI_App::switch_printer_agent() return; } - // Read printer_agent from config, falling back to default - std::string effective_agent_id = ORCA_PRINTER_AGENT_ID; - if (preset_bundle->is_bbl_vendor()) - effective_agent_id = BBL_PRINTER_AGENT_ID; - const DynamicPrintConfig& config = preset_bundle->printers.get_edited_preset().config; - if (config.has("printer_agent")) { - const std::string& value = config.option("printer_agent")->value; - if (!value.empty()) - effective_agent_id = value; - } + const std::string effective_agent_id = resolve_printer_agent_id(config.opt_string("printer_agent")); // Check if agent is registered const PrinterAgentInfo* agent_info_ptr = NetworkAgentFactory::get_printer_agent_info(effective_agent_id); if (!agent_info_ptr) { - BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": unregistered agent ID '" << effective_agent_id - << "', keeping current agent"; - // Keep current agent, don't switch + // why: the selected agent's provider is gone (e.g. plugin unloaded); leaving the old + // live agent up would keep talking to a machine the user can no longer select. + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": agent ID '" << effective_agent_id + << "' is unregistered; clearing live printer agent"; + set_live_printer_agent(nullptr); return; } const PrinterAgentInfo agent_info = *agent_info_ptr; @@ -3897,7 +3987,9 @@ void GUI_App::switch_printer_agent() NetworkAgentFactory::create_printer_agent_by_id(effective_agent_id, cloud_agent, log_dir); if (!new_printer_agent) { - BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": failed to create agent '" << effective_agent_id << "', keeping current agent"; + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": failed to create agent '" << effective_agent_id + << "'; clearing live printer agent"; + set_live_printer_agent(nullptr); return; } @@ -3920,9 +4012,9 @@ void GUI_App::switch_printer_agent() return; } - // Swap the agent - m_agent->set_printer_agent(new_printer_agent); - sidebar().update_all_preset_comboboxes(); + // Swap the agent; set_live_printer_agent resets the device selection so the new + // agent starts clean (#124). + set_live_printer_agent(new_printer_agent); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": printer agent switched to " << effective_agent_id; @@ -8192,7 +8284,7 @@ bool GUI_App::show_modal_ip_address_enter_dialog(bool input_sn, wxString title) wxGetApp().app_config->save(); obj->set_dev_ip(ip_address.ToStdString()); - obj->set_user_access_code(access_code.ToStdString()); + obj->set_access_code(access_code.ToStdString()); } } }); diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index bda27d40ec..8bf32df64c 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -365,9 +365,14 @@ public: HMSQuery* get_hms_query() { return hms_query; } NetworkAgent* getAgent() { return m_agent; } - // Dynamic printer agent switching + // Reconcile the live printer agent with the stored preset selection. void switch_printer_agent(); + std::string resolve_printer_agent_id(const std::string& stored_id); + // ORCA TODO: in the future, bbl presets should specify "bbl" printer agent id + // then, all resolve and canonical would just be ORCA<->"" + std::string canonical_printer_agent_id(const std::string& picked_id); + FilamentColorCodeQuery* get_filament_color_code_query(); bool is_editor() const { return m_app_mode == EAppMode::Editor; } bool is_gcode_viewer() const { return m_app_mode == EAppMode::GCodeViewer; } @@ -798,6 +803,11 @@ private: void window_pos_center(wxTopLevelWindow *window); bool select_language(); + // Dynamic printer agent selection - internal helpers for switch_printer_agent + // and the plugin load/unload callbacks (init_plugin_gui_wiring). + void refresh_printer_agent_dropdown(); + void set_live_printer_agent(std::shared_ptr agent); // null clears the selection + bool config_wizard_startup(); void check_updates(const bool verbose); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index a4a60ac4bd..5254492e5d 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -123,6 +123,7 @@ std::map> SettingsFactory::PART_CATE {"sparse_infill_density", "", 1}, {"fill_multiline", "", 1}, {"sparse_infill_pattern", "", 1}, + {"sparse_infill_smooth_factor", "", 1}, {"lateral_lattice_angle_1", "", 1}, {"lateral_lattice_angle_2", "", 1}, {"infill_overhang_angle", "", 1}, diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index b23b554a74..dc89f5f9bb 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -3213,7 +3213,7 @@ void ObjectList::merge(bool to_multipart_object) //changed_object(obj_idx); //remove(); } - /* wxGetApp().plater()->load_model_objects(objects); + // wxGetApp().plater()->load_model_objects(objects); Selection& selection = p->view3D->get_canvas3d()->get_selection(); size_t last_obj_idx = p->model.objects.size() - 1; diff --git a/src/slic3r/GUI/GUI_ObjectSettings.cpp b/src/slic3r/GUI/GUI_ObjectSettings.cpp index 65cd99a2fa..25e6204a40 100644 --- a/src/slic3r/GUI/GUI_ObjectSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectSettings.cpp @@ -139,7 +139,7 @@ bool ObjectSettings::update_settings_list() optgroup->sidetext_width = 5; optgroup->m_on_change = [this, config](const t_config_option_key& opt_id, const boost::any& value) { - this->update_config_values(config); + this->update_config_values(config, opt_id); wxGetApp().obj_list()->changed_object(); }; // call back for rescaling of the extracolumn control @@ -325,7 +325,7 @@ bool ObjectSettings::add_missed_options(ModelConfig* config_to, const DynamicPri return is_added; } -void ObjectSettings::update_config_values(ModelConfig* config) +void ObjectSettings::update_config_values(ModelConfig* config, const std::string& changed_opt_key) { const auto objects_model = wxGetApp().obj_list()->GetModel(); const auto item = wxGetApp().obj_list()->GetSelection(); @@ -403,6 +403,10 @@ void ObjectSettings::update_config_values(ModelConfig* config) } main_config.apply(config->get(), true); + + if (printer_technology == ptFFF && changed_opt_key == "layer_height") + config_manipulation.check_layer_height(&main_config); + printer_technology == ptFFF ? config_manipulation.update_print_fff_config(&main_config) : config_manipulation.update_print_sla_config(&main_config) ; diff --git a/src/slic3r/GUI/GUI_ObjectSettings.hpp b/src/slic3r/GUI/GUI_ObjectSettings.hpp index 8903f8748b..21146425cc 100644 --- a/src/slic3r/GUI/GUI_ObjectSettings.hpp +++ b/src/slic3r/GUI/GUI_ObjectSettings.hpp @@ -66,7 +66,7 @@ public: * we should add sparse_infill_pattern to avoid endless loop in update */ bool add_missed_options(ModelConfig *config_to, const DynamicPrintConfig &config_from); - void update_config_values(ModelConfig *config); + void update_config_values(ModelConfig *config, const std::string& changed_opt_key = ""); void UpdateAndShow(const bool show); void msw_rescale(); void sys_color_changed(); diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp index 37ccfb8e41..e72c421a08 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp @@ -223,7 +223,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ std::weak_ptr weak_optgroup(optgroup); optgroup->m_on_change = [this, is_object, object, config, group_category](const t_config_option_key &opt_id, const boost::any &value) { this->m_parent->Freeze(); - this->update_config_values(is_object, object, config, group_category); + this->update_config_values(is_object, object, config, group_category, opt_id); wxGetApp().obj_list()->changed_object(); this->m_parent->Thaw(); //update_extra_column_visible_status(optgroup.get(), cat.second, config); @@ -369,7 +369,7 @@ int ObjectTableSettings::update_extra_column_visible_status(ConfigOptionsGroup* return count; } -void ObjectTableSettings::update_config_values(bool is_object, ModelObject* object, ModelConfig* config, const std::string& category) +void ObjectTableSettings::update_config_values(bool is_object, ModelObject* object, ModelConfig* config, const std::string& category, const std::string& changed_opt_key) { int different_count = 0; const auto printer_technology = wxGetApp().plater()->printer_technology(); @@ -403,6 +403,9 @@ void ObjectTableSettings::update_config_values(bool is_object, ModelObject* obje config_manipulation.set_is_BBL_Printer(wxGetApp().preset_bundle->is_bbl_vendor()); + if (printer_technology == ptFFF && changed_opt_key == "layer_height") + config_manipulation.check_layer_height(&main_config); + printer_technology == ptFFF ? config_manipulation.update_print_fff_config(&main_config) : config_manipulation.update_print_sla_config(&main_config) ; diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp index 534426f554..39e7e514e2 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.hpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.hpp @@ -70,7 +70,7 @@ public: bool add_missed_options(ModelConfig *config_to, const DynamicPrintConfig &config_from); //return visible count int update_extra_column_visible_status(ConfigOptionsGroup* option_group, const std::vector& option_keys, ModelConfig* config); - void update_config_values(bool is_object, ModelObject* object, ModelConfig* config, const std::string& category); + void update_config_values(bool is_object, ModelObject* object, ModelConfig* config, const std::string& category, const std::string& changed_opt_key = ""); void UpdateAndShow(int row, const bool show, bool is_object, bool is_multiple_selection, ModelObject* object, ModelConfig* config, const std::string& category); void ValueChanged(int row, bool is_object, ModelObject* object, ModelConfig* config, const std::string& category, const std::string& key); void resetAllValues(int row, bool is_object, ModelObject* object, ModelConfig* config, const std::string& category); diff --git a/src/slic3r/GUI/GUI_Utils.cpp b/src/slic3r/GUI/GUI_Utils.cpp index 697eefea0b..cb8ba45c6b 100644 --- a/src/slic3r/GUI/GUI_Utils.cpp +++ b/src/slic3r/GUI/GUI_Utils.cpp @@ -548,7 +548,7 @@ void RemoveButtonBorder(wxWindow* win) GtkCssProvider* provider = gtk_css_provider_new(); const char* css = - "button {" + "button, button:hover, button:active, button:focus {" " border: none;" " outline: none;" " box-shadow: none;" @@ -589,6 +589,58 @@ void RemoveButtonBorder(wxWindow* win) ); #endif } + +void RemoveInputBorder(wxWindow* win) +{ + GtkWidget* widget = win->GetHandle(); + if (!widget) return; + +#if GTK_CHECK_VERSION(3, 0, 0) + // GTK3+: use CSS provider + GtkCssProvider* provider = gtk_css_provider_new(); + + // Target 'entry' and its inner subnodes (like text selection areas) + const char* css = + "entry, entry text, entry undershoot {" + " border: none;" + " outline: none;" + " box-shadow: none;" + " padding: 0px;" + " margin: 0px;" + " min-height: 0px;" + " min-width: 0px;" + " background: none;" + "}"; + +#if GTK_CHECK_VERSION(4, 0, 0) + // GTK4 + gtk_css_provider_load_from_data(provider, css, -1); +#else + // GTK3 + gtk_css_provider_load_from_data(provider, css, -1, nullptr); +#endif + + GtkStyleContext* ctx = gtk_widget_get_style_context(widget); + gtk_style_context_add_provider( + ctx, + GTK_STYLE_PROVIDER(provider), + GTK_STYLE_PROVIDER_PRIORITY_USER + ); + g_object_unref(provider); + +#else + // GTK2: Target the x/y thickness of the entry widget + gtk_rc_parse_string( + "style \"no-padding-entry\" {" + " xthickness = 0" + " ythickness = 0" + " GtkEntry::inner-border = { 0, 0, 0, 0 }" + " GtkEntry::focus-line-width = 0" + "}" + "class \"GtkEntry\" style \"no-padding-entry\"" + ); +#endif +} #endif // __WXGTK__ #ifdef __linux__ diff --git a/src/slic3r/GUI/GUI_Utils.hpp b/src/slic3r/GUI/GUI_Utils.hpp index 427ba9f0ad..c93c40b066 100644 --- a/src/slic3r/GUI/GUI_Utils.hpp +++ b/src/slic3r/GUI/GUI_Utils.hpp @@ -113,14 +113,7 @@ public: update_dark_ui(this); #endif - // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3). - // So, calculate the m_em_unit value from the font size, as before -#if !defined(__WXGTK__) - m_em_unit = std::max(10, 10.0f * m_scale_factor); -#else - // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window. - m_em_unit = std::max(10, this->GetTextExtent("m").x - 1); -#endif // __WXGTK__ + update_em_unit(); // recalc_font(); @@ -235,6 +228,19 @@ private: // m_em_unit = metrics.averageWidth; // } + // update em_unit value for new window font + void update_em_unit() + { + // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3). + // So, calculate the m_em_unit value from the font size, as before +#if !defined(__WXGTK__) + m_em_unit = std::max(10, 10.0f * m_scale_factor); +#else + // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window. + m_em_unit = std::max(10, this->GetTextExtent("m").x - 1); +#endif // __WXGTK__ + } + // check if new scale is differ from previous bool is_new_scale_factor() const { return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; } @@ -247,8 +253,7 @@ private: // set normal application font as a current window font m_normal_font = this->GetFont(); - // update em_unit value for new window font - m_em_unit = std::max(10, 10.0f * m_scale_factor); + update_em_unit(); // rescale missed controls sizes and images on_dpi_changed(suggested_rect); @@ -472,8 +477,9 @@ void dataview_remove_insets(wxDataViewCtrl* dv); void staticbox_remove_margin(wxStaticBox* sb); #endif -#ifdef __WXGTK3__ -void RemoveButtonBorder(wxWindow* win); +#ifdef __WXGTK__ +void RemoveButtonBorder(wxWindow* win); // for wxButton/wxBitmapToggleButton based controls (SwitchButton, CheckBox) +void RemoveInputBorder(wxWindow* win); // for TextCtrl based controls (TextInput, ComboBox, SpinInput..) #endif #if defined(__WXOSX__) || defined(__linux__) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 7855ea92cc..1aaac99d40 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -442,7 +442,7 @@ bool GLGizmoBase::use_grabbers(const wxMouseEvent &mouse_event) { } } else if (m_dragging) { // when mouse cursor leave window than finish actual dragging operation - bool is_leaving = mouse_event.Leaving(); + bool is_leaving = mouse_event.Leaving() && !m_parent.has_mouse_capture(); // ORCA keep tracking mouse position while drag active and cursor not in window bounds if (mouse_event.Dragging()) { Point mouse_coord(mouse_event.GetX(), mouse_event.GetY()); auto ray = m_parent.mouse_ray(mouse_coord); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp index 45aaf37a86..709e7b5b21 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp @@ -15,6 +15,8 @@ static const ColorRGBA DEF_COLOR = {0.7f, 0.7f, 0.7f, 1.f}; static const ColorRGBA SELECTED_COLOR = {0.0f, 0.5f, 0.5f, 1.0f}; static const ColorRGBA ERR_COLOR = {1.0f, 0.3f, 0.3f, 0.5f}; static const ColorRGBA HOVER_COLOR = {0.7f, 0.7f, 0.7f, 0.5f}; +static constexpr float BRIM_EAR_RADIUS_MIN = 0.1f; +static constexpr float BRIM_EAR_RADIUS_MAX = 100.f; static ModelVolume *get_model_volume(const Selection &selection, Model &model) { @@ -41,14 +43,14 @@ GLGizmoBrimEars::GLGizmoBrimEars(GLCanvas3D &parent, const std::string &icon_fil bool GLGizmoBrimEars::on_init() { - m_new_point_head_diameter = get_brim_default_radius(); + m_new_point_head_radius = get_brim_default_radius(); m_shortcut_key = WXK_CONTROL_E; const wxString ctrl = GUI::shortkey_ctrl_prefix(); const wxString alt = GUI::shortkey_alt_prefix(); - m_desc["head_diameter"] = _L("Head diameter"); + m_desc["brim_ear_radius"] = _L("Brim ear radius"); m_desc["max_angle"] = _L("Max angle"); m_desc["detection_radius"] = _L("Detection radius"); m_desc["remove"] = _L("Remove"); @@ -62,7 +64,7 @@ bool GLGizmoBrimEars::on_init() m_shortcuts = { {_L("Left mouse button"), _L("Add or Select")}, {_L("Right mouse button"), _L("Remove")}, - {ctrl + _L("Mouse wheel"), m_desc["head_diameter"]}, + {ctrl + _L("Mouse wheel"), m_desc["brim_ear_radius"]}, {alt + _L("Mouse wheel"), m_desc["section_view"]}, }; @@ -358,7 +360,7 @@ bool GLGizmoBrimEars::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_p Transform3d inverse_trsf = volume->get_instance_transformation().get_matrix_no_offset().inverse(); std::pair pos_and_normal; if (unproject_on_mesh2(mouse_position, pos_and_normal)) { - render_hover_point = CacheEntry(BrimPoint(pos_and_normal.first, m_new_point_head_diameter / 2.f), false, (inverse_trsf * m_world_normal).cast(), true); + render_hover_point = CacheEntry(BrimPoint(pos_and_normal.first, m_new_point_head_radius), false, (inverse_trsf * m_world_normal).cast(), true); } else { render_hover_point.reset(); } @@ -397,7 +399,7 @@ bool GLGizmoBrimEars::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_p Vec3d object_pos = trsf.inverse() * world_pos; // brim ear always face up Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Add brim ear"); - add_point_to_cache(object_pos.cast(), m_new_point_head_diameter / 2.f, false, (inverse_trsf * m_world_normal).cast()); + add_point_to_cache(object_pos.cast(), m_new_point_head_radius, false, (inverse_trsf * m_world_normal).cast()); m_parent.set_as_dirty(); m_wait_for_up_event = true; find_single(); @@ -490,9 +492,9 @@ bool GLGizmoBrimEars::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_p // mouse wheel up if (action == SLAGizmoEventType::MouseWheelUp) { if (control_down) { - float initial_value = m_new_point_head_diameter; + float initial_value = m_new_point_head_radius; begin_radius_change(initial_value); - m_new_point_head_diameter = std::min(20., initial_value + 0.1); + m_new_point_head_radius = std::min(BRIM_EAR_RADIUS_MAX, initial_value + 0.1f); update_cache_radius(); return true; } @@ -502,9 +504,9 @@ bool GLGizmoBrimEars::gizmo_event(SLAGizmoEventType action, const Vec2d &mouse_p if (action == SLAGizmoEventType::MouseWheelDown) { if (control_down) { - float initial_value = m_new_point_head_diameter; + float initial_value = m_new_point_head_radius; begin_radius_change(initial_value); - m_new_point_head_diameter = std::max(5., initial_value - 0.1); + m_new_point_head_radius = std::max(BRIM_EAR_RADIUS_MIN, initial_value - 0.1f); update_cache_radius(); return true; } @@ -597,18 +599,18 @@ std::vector GLGizmoBrimEars::get_config_options(const std: void GLGizmoBrimEars::begin_radius_change(float initial_value) { - if (m_old_point_head_diameter == 0.f) - m_old_point_head_diameter = initial_value; + if (m_old_point_head_radius == 0.f) + m_old_point_head_radius = initial_value; } void GLGizmoBrimEars::update_cache_radius() { if (render_hover_point) - render_hover_point->brim_point.head_front_radius = m_new_point_head_diameter / 2.f; + render_hover_point->brim_point.head_front_radius = m_new_point_head_radius; for (auto &cache_entry : m_editing_cache) if (cache_entry.selected) { - cache_entry.brim_point.head_front_radius = m_new_point_head_diameter / 2.f; + cache_entry.brim_point.head_front_radius = m_new_point_head_radius; find_single(); update_model_object(); } @@ -617,18 +619,18 @@ void GLGizmoBrimEars::update_cache_radius() void GLGizmoBrimEars::apply_radius_change() { - if (m_old_point_head_diameter == 0.f) return; + if (m_old_point_head_radius == 0.f) return; // momentarily restore the old value to take snapshot for (auto& cache_entry : m_editing_cache) if (cache_entry.selected) - cache_entry.brim_point.head_front_radius = m_old_point_head_diameter / 2.f; - float backup = m_new_point_head_diameter; - m_new_point_head_diameter = m_old_point_head_diameter; - Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Change point head diameter"); - m_new_point_head_diameter = backup; + cache_entry.brim_point.head_front_radius = m_old_point_head_radius; + float backup = m_new_point_head_radius; + m_new_point_head_radius = m_old_point_head_radius; + Plater::TakeSnapshot snapshot(wxGetApp().plater(), "Change brim ear radius"); + m_new_point_head_radius = backup; update_cache_radius(); - m_old_point_head_diameter = 0.f; + m_old_point_head_radius = 0.f; } void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limit) @@ -653,7 +655,7 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar); float space_size = m_imgui->get_style_scaling() * 8; - std::vector text_list = {m_desc["head_diameter"], m_desc["max_angle"], m_desc["detection_radius"], m_desc["clipping_of_view"], + std::vector text_list = {m_desc["brim_ear_radius"], m_desc["max_angle"], m_desc["detection_radius"], m_desc["clipping_of_view"], m_desc["create"], m_desc["remove"]}; float widest_text = m_imgui->find_widest_text(text_list); float caption_size = widest_text + space_size + ImGui::GetStyle().WindowPadding.x; @@ -680,11 +682,11 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi // - keep updating the head radius during sliding so it is continuosly refreshed in 3D scene // - take correct undo/redo snapshot after the user is done with moving the slider ImGui::AlignTextToFramePadding(); - float initial_value = m_new_point_head_diameter; - m_imgui->text(m_desc["head_diameter"]); + float initial_value = m_new_point_head_radius; + m_imgui->text(m_desc["brim_ear_radius"]); ImGui::SameLine(caption_size); ImGui::PushItemWidth(slider_width); - m_imgui->bbl_slider_float_style("##head_diameter", &m_new_point_head_diameter, 5, 20, "%.1f", 1.0f, true); + m_imgui->bbl_slider_float_style("##brim_ear_radius", &m_new_point_head_radius, BRIM_EAR_RADIUS_MIN, BRIM_EAR_RADIUS_MAX, "%.1f", 1.0f, true); if (m_imgui->get_last_slider_status().clicked) { begin_radius_change(initial_value); } @@ -695,7 +697,7 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi } ImGui::SameLine(drag_left_width); ImGui::PushItemWidth(1.5 * slider_icon_width); - ImGui::BBLDragFloat("##head_diameter_input", &m_new_point_head_diameter, 0.05f, 0.0f, 0.0f, "%.1f"); + ImGui::BBLDragFloat("##brim_ear_radius_input", &m_new_point_head_radius, 0.05f, BRIM_EAR_RADIUS_MIN, BRIM_EAR_RADIUS_MAX, "%.1f"); ImGui::Separator(); @@ -910,9 +912,9 @@ void GLGizmoBrimEars::on_stop_dragging() m_point_before_drag = CacheEntry(); } -void GLGizmoBrimEars::on_load(cereal::BinaryInputArchive &ar) { ar(m_new_point_head_diameter, m_editing_cache, m_selection_empty); } +void GLGizmoBrimEars::on_load(cereal::BinaryInputArchive &ar) { ar(m_new_point_head_radius, m_editing_cache, m_selection_empty); } -void GLGizmoBrimEars::on_save(cereal::BinaryOutputArchive &ar) const { ar(m_new_point_head_diameter, m_editing_cache, m_selection_empty); } +void GLGizmoBrimEars::on_save(cereal::BinaryOutputArchive &ar) const { ar(m_new_point_head_radius, m_editing_cache, m_selection_empty); } void GLGizmoBrimEars::select_point(int i) { @@ -920,11 +922,11 @@ void GLGizmoBrimEars::select_point(int i) for (auto &point_and_selection : m_editing_cache) point_and_selection.selected = (i == AllPoints); m_selection_empty = (i == NoPoints); - if (i == AllPoints) m_new_point_head_diameter = m_editing_cache[0].brim_point.head_front_radius * 2.f; + if (i == AllPoints) m_new_point_head_radius = m_editing_cache[0].brim_point.head_front_radius; } else { m_editing_cache[i].selected = true; m_selection_empty = false; - m_new_point_head_diameter = m_editing_cache[i].brim_point.head_front_radius * 2.f; + m_new_point_head_radius = m_editing_cache[i].brim_point.head_front_radius; } } @@ -1011,8 +1013,7 @@ void GLGizmoBrimEars::auto_generate() auto add_point = [this, &trsf, &normal](const Point &p) { Vec3d world_pos = {float(p.x() * SCALING_FACTOR), float(p.y() * SCALING_FACTOR), -0.0001}; Vec3d object_pos = trsf.inverse() * world_pos; - // m_editing_cache.emplace_back(BrimPoint(object_pos.cast(), m_new_point_head_diameter / 2), false, normal); - add_point_to_cache(object_pos.cast(), m_new_point_head_diameter / 2, false, normal); + add_point_to_cache(object_pos.cast(), m_new_point_head_radius, false, normal); }; for (const ExPolygon &ex_poly : m_first_layer) { Polygon out_poly = ex_poly.contour; @@ -1158,8 +1159,11 @@ void GLGizmoBrimEars::reset_all_pick() { std::mapprinters.get_edited_preset().config.option("nozzle_diameter")->get_at(0); - const DynamicPrintConfig &pring_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; - return pring_cfg.get_abs_value("initial_layer_line_width", nozzle_diameter) * 16.0f; + const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; + return std::clamp( + float(print_cfg.get_abs_value("initial_layer_line_width", nozzle_diameter) * 8.0), + BRIM_EAR_RADIUS_MIN, + BRIM_EAR_RADIUS_MAX); } ExPolygon GLGizmoBrimEars::make_polygon(BrimPoint point, const Geometry::Transformation &trsf) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp index 8b1ff2ca62..4e531e6acc 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -98,12 +98,12 @@ private: void render_points(const Selection& selection); - float m_new_point_head_diameter; // Size of a new point. + float m_new_point_head_radius; // Radius of a new point. float m_max_angle = 125.f; float m_detection_radius = 1.f; double m_detection_radius_max = .0f; CacheEntry m_point_before_drag; // undo/redo - so we know what state was edited - float m_old_point_head_diameter = 0.; // the same + float m_old_point_head_radius = 0.; // the same mutable std::vector m_editing_cache; // a support point and whether it is currently selectedchanges or undo/redo std::map m_single_brim; ObjectID m_old_mo_id; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index feba37133a..ecf465afe7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -566,8 +566,11 @@ bool GLGizmoEmboss::on_mouse_for_translate(const wxMouseEvent &mouse_event) void GLGizmoEmboss::on_mouse_change_selection(const wxMouseEvent &mouse_event) { - static bool was_dragging = true; - if ((mouse_event.LeftUp() || mouse_event.RightUp()) && !was_dragging) { + static bool was_dragging = true; + // The left up may be the end of a drag that started on the gizmo floating window (e.g. selecting + // text in the input field). Such a release is not a click on the scene and must not close the gizmo. + // (The flag is only set for left up events, so right up behavior is unchanged.) + if ((mouse_event.LeftUp() || mouse_event.RightUp()) && !was_dragging && !m_parent.is_mouse_left_up_ignored()) { // is hovered volume closest hovered? int hovered_idx = m_parent.get_first_hover_volume_idx(); if (hovered_idx < 0) diff --git a/src/slic3r/GUI/IMSlider.cpp b/src/slic3r/GUI/IMSlider.cpp index 35f4761257..c008963646 100644 --- a/src/slic3r/GUI/IMSlider.cpp +++ b/src/slic3r/GUI/IMSlider.cpp @@ -1733,7 +1733,7 @@ std::string IMSlider::get_label(int tick, LabelType label_type) ::sprintf(layer_height, "%.2f", m_values.empty() ? m_label_koef * value : m_values[value]); if (label_type == ltHeight) return std::string(layer_height); if (label_type == ltHeightWithLayer) { - char buffer[64]; + char buffer[90]; size_t layer_number; layer_number = m_draw_mode == dmSequentialFffPrint ? (m_values.empty() ? value : value + 1) : m_is_wipe_tower ? get_layer_number(value, label_type) + 1 : (m_values.empty() ? value : value + 1); ::sprintf(buffer, "%5s\n%5s", std::to_string(layer_number).c_str(), layer_height); diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 8974a169d1..d46e8ed31b 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -2809,12 +2809,26 @@ void ImGuiWrapper::init_font(bool compress) } } + if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { + ImFontConfig fallback_cfg = cfg; + fallback_cfg.MergeMode = true; + static constexpr ImWchar celsius_range[] = { 0x2103, 0x2103, 0 }; + io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Regular.ttf").c_str(), m_font_size, &fallback_cfg, celsius_range); + } + bold_font = io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/" + font_name_bold).c_str(), m_font_size, &cfg, ranges.Data); if (bold_font == nullptr) { bold_font = io.Fonts->AddFontDefault(); if (bold_font == nullptr) { throw Slic3r::RuntimeError("ImGui: Could not load deafult font"); } } + if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { + ImFontConfig fallback_cfg = cfg; + fallback_cfg.MergeMode = true; + static constexpr ImWchar celsius_range[] = { 0x2103, 0x2103, 0 }; + io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Bold.ttf").c_str(), m_font_size, &fallback_cfg, celsius_range); + } + if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { default_font->Scale *= 1.25f; bold_font->Scale *= 1.25f; diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index c3d05c556f..6b74b71af1 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -548,7 +548,7 @@ void ArrangeJob::process(Ctl &ctl) params.stopcondition = [&ctl]() { return ctl.was_canceled(); }; params.progressind = [this, &ctl](unsigned num_finished, std::string str = "") { - ctl.update_status(num_finished * 100 / status_range(), _u8L("Arranging") + str); + ctl.update_status(num_finished * 100 / status_range(), _u8L("Arranging ") + str); }; { diff --git a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp index f988f622ce..31bd6728b1 100644 --- a/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontStyleImagesJob.cpp @@ -45,24 +45,26 @@ void CreateFontStyleImagesJob::process(Ctl &ctl) for (const ExPolygon &shape : shapes) bounding_box.merge(BoundingBox(shape.contour.points)); for (ExPolygon &shape : shapes) shape.translate(-bounding_box.min); - - // calculate conversion from FontPoint to screen pixels by size of font - double scale = get_text_shape_scale(item.prop, *item.font.font_file) * m_input.ppm; - scales[index] = scale; - //double scale = font_prop.size_in_mm * SCALING_FACTOR; - BoundingBoxf bb2(bounding_box.min.cast(), - bounding_box.max.cast()); + if (bounding_box.size().x() < 1 || bounding_box.size().y() < 1) + continue; // or however the font job's degenerate-box case is handled + + // Normalize to fit max_size, exactly like CreateFontImageJob does against m_input.size. + // Fit by height (matches row height), then clamp width if needed. + constexpr float preview_padding_px = 2.f; // margin for AA sampling, tune to your AA kernel radius + + double scale = m_input.max_size.y() / (double) bounding_box.size().y(); + BoundingBoxf bb2(bounding_box.min.cast(), bounding_box.max.cast()); bb2.scale(scale); - image.tex_size.x = std::ceil(bb2.max.x() - bb2.min.x()); - image.tex_size.y = std::ceil(bb2.max.y() - bb2.min.y()); - // crop image width - if (image.tex_size.x > m_input.max_size.x()) + // crop width only if the (now height-normalized) text is too wide + image.tex_size.x = std::ceil(bb2.max.x() - bb2.min.x()) + 2 * preview_padding_px; + image.tex_size.y = std::ceil(bb2.max.y() - bb2.min.y()) + 2 * preview_padding_px; + + if (image.tex_size.x > m_input.max_size.x()) image.tex_size.x = m_input.max_size.x(); - // crop image height - if (image.tex_size.y > m_input.max_size.y()) - image.tex_size.y = m_input.max_size.y(); + + scales[index] = scale; } // arrange bounding boxes diff --git a/src/slic3r/GUI/Jobs/OrientJob.cpp b/src/slic3r/GUI/Jobs/OrientJob.cpp index 7347bad6a2..ee8ea875c0 100644 --- a/src/slic3r/GUI/Jobs/OrientJob.cpp +++ b/src/slic3r/GUI/Jobs/OrientJob.cpp @@ -149,6 +149,46 @@ void OrientJob::prepare() } } +/// parameters to minimize support area +static void setMinimalSupportAreaPrams(Slic3r::orientation::OrientParams &out) +{ + out.TAR_A = 0.015f; + out.TAR_B = 0.177f; + out.RELATIVE_F = 20; + out.CONTOUR_F = 0.5f; + out.BOTTOM_F = 2.5f; + out.BOTTOM_HULL_F = 0.1f; + out.TAR_C = 0.1f; + out.TAR_D = 1; + out.TAR_E = 0.0115f; + out.FIRST_LAY_H = 0.2f; // 0.0475; + out.VECTOR_TOL = -0.00083f; + out.NEGL_FACE_SIZE = 0.01f; + out.ASCENT = -0.5f; + out.PLAFOND_ADV = 0.0599f; + out.CONTOUR_AMOUNT = 0.0182427f; + out.OV_H = 2.574f; + out.height_offset = 2.3728f; + out.height_log = 0.041375f; + out.height_log_k = 1.9325457f; + out.LAF_MAX = 0.999f; // cos(1.4\degree) for low angle face 0.9997f + out.LAF_MIN = 0.97f; // cos(14\degree) 0.9703f + out.TAR_LAF = 0.001f; // 0.01f + out.TAR_PROJ_AREA = 0.1f; + out.BOTTOM_MIN = 0.1f; // min bottom area. If lower than it the object may be unstable + out.BOTTOM_MAX = 2000; // max bottom area. If get to it the object is stable enough (further increase bottom area won't do more help) + out.height_to_bottom_hull_ratio_MIN = 1, + out.BOTTOM_HULL_MAX = 2000; // max bottom hull area + out.APPERANCE_FACE_SUPP = 3; // penalty of generating supports on appearance face + out.overhang_angle = 60.f; + out.use_low_angle_face = true; + out.min_volume = false; + out.fun_dir = {}; + out.parallel = true; + out.progressind = {}; + out.stopcondition = {}; +} + void OrientJob::process(Ctl &ctl) { static const auto arrangestr = _u8L("Orienting..."); @@ -161,9 +201,8 @@ void OrientJob::process(Ctl &ctl) const GLCanvas3D::OrientSettings& settings = m_plater->canvas3D()->get_orient_settings(); orientation::OrientParams params; - orientation::OrientParamsArea params_area; if (settings.min_area) { - memcpy(¶ms, ¶ms_area, sizeof(params)); + setMinimalSupportAreaPrams(params); params.min_volume = false; } else { diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 7b638e3316..5a0e70b74c 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -708,7 +708,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ m_print_enable = get_enable_print_status(); m_print_btn->Enable(m_print_enable); if (m_print_enable) { - if (wxGetApp().preset_bundle->use_bbl_network()) + if (wxGetApp().preset_bundle->use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_PRINT_PLATE)); else wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SEND_GCODE)); @@ -1368,9 +1368,88 @@ void MainFrame::init_tabpanel() { } // SoftFever -void MainFrame::show_device(bool bBBLPrinter) { +void MainFrame::show_device(bool should_use_native) { auto idx = -1; - if (bBBLPrinter) { + + const bool use_printer_agents = wxGetApp().app_config->get_bool("use_printer_agents"); + + // The web page is appended when printer agents are enabled. Remove that + // extra page before switching back to the normal native/Web layout. + if (!use_printer_agents) { + if ((idx = m_tabpanel->FindPage(m_printer_view)) != wxNOT_FOUND && idx != tpMonitor) { + m_printer_view->Show(false); + m_tabpanel->RemovePage(idx); + } + } + + if (use_printer_agents) { + if (!m_monitor) { + m_monitor = new MonitorPanel(m_tabpanel, wxID_ANY, wxDefaultPosition, wxDefaultSize); + m_monitor->SetBackgroundColour(*wxWHITE); + } + + if (m_tabpanel->FindPage(m_monitor) == wxNOT_FOUND) { + if ((idx = m_tabpanel->FindPage(m_printer_view)) != wxNOT_FOUND) { + m_printer_view->Show(false); + m_tabpanel->RemovePage(idx); + } + m_monitor->Show(false); + m_tabpanel->InsertPage(tpMonitor, m_monitor, _L("Device"), std::string("tab_monitor_active"), + std::string("tab_monitor_active")); + } + + if (m_printer_view == nullptr) { + m_printer_view = new PrinterWebView(m_tabpanel); + Bind(EVT_LOAD_PRINTER_URL, [this](LoadPrinterViewEvent& evt) { + wxString url = evt.GetString(); + wxString key = evt.GetAPIkey(); + // select_tab(MainFrame::tpMonitor); + m_printer_view->load_url(url, key); + }); + } + + if (wxGetApp().is_enable_multi_machine()) { + if (!m_multi_machine) { + m_multi_machine = new MultiMachinePage(m_tabpanel, wxID_ANY, wxDefaultPosition, wxDefaultSize); + m_multi_machine->SetBackgroundColour(*wxWHITE); + } + // TODO: change the bitmap + if (m_tabpanel->FindPage(m_multi_machine) == wxNOT_FOUND) { + m_multi_machine->Show(false); + m_tabpanel->InsertPage(tpMultiDevice, m_multi_machine, _L("Multi-device"), std::string("tab_multi_active"), + std::string("tab_multi_active"), false); + } + } + if (!m_calibration) { + m_calibration = new CalibrationPanel(m_tabpanel, wxID_ANY, wxDefaultPosition, wxDefaultSize); + m_calibration->SetBackgroundColour(*wxWHITE); + } + // Calibration is always the last page, so don't use InsertPage here. Otherwise, if multi_machine page is not enabled, + // the calibration tab won't be properly added as well, due to the TabPosition::tpCalibration no longer matches the real tab position. + if (m_tabpanel->FindPage(m_calibration) == wxNOT_FOUND) { + m_calibration->Show(false); + m_tabpanel->AddPage(m_calibration, _L("Calibration"), std::string("tab_calibration_active"), + std::string("tab_calibration_active"), false); + } + + if ((idx = m_tabpanel->FindPage(m_printer_view)) == wxNOT_FOUND) { + m_printer_view->Show(false); + m_tabpanel->AddPage(m_printer_view, _L("Device (Web)"), std::string("tab_monitor_active"), + std::string("tab_monitor_active"), false); + } else { + m_tabpanel->SetPageText(idx, _L("Device (Web)")); + } + +#ifdef _MSW_DARK_MODE + wxGetApp().UpdateDarkUIWin(this); +#endif // _MSW_DARK_MODE + + fit_tab_labels(); // ORCA on printer change + + return; + } + + if (should_use_native) { if (m_tabpanel->FindPage(m_monitor) != wxNOT_FOUND) { fit_tab_labels(); // ORCA on printer change - same button layout return; @@ -1999,7 +2078,8 @@ wxBoxSizer* MainFrame::create_side_tools() SidePopup* p = new SidePopup(this); if (wxGetApp().preset_bundle - && !wxGetApp().preset_bundle->is_bbl_vendor()) { + && !wxGetApp().preset_bundle->is_bbl_vendor() + && !wxGetApp().app_config->get_bool("use_printer_agents")) { // ThirdParty Buttons SideButton* export_gcode_btn = new SideButton(p, _L("Export G-code file"), ""); export_gcode_btn->SetCornerRadius(0); @@ -2132,7 +2212,7 @@ wxBoxSizer* MainFrame::create_side_tools() const auto preset_bundle = wxGetApp().preset_bundle; if (preset_bundle) { - if (preset_bundle->use_bbl_network()) { + if (preset_bundle->use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) { // BBL network support everything } else { support_send = false; // All 3rd print hosts do not have the send options @@ -4253,14 +4333,26 @@ void MainFrame::load_printer_url(wxString url, wxString apikey) void MainFrame::load_printer_url() { PresetBundle &preset_bundle = *wxGetApp().preset_bundle; - if (preset_bundle.use_bbl_device_tab() || NetworkAgentFactory::is_current_printer_agent_plugin()) + if (preset_bundle.use_bbl_device_tab() && !wxGetApp().app_config->get_bool("use_printer_agents")) return; auto cfg = preset_bundle.printers.get_edited_preset().config; + if (cfg.opt_string("print_host").empty()) { + if (auto *device_manager = wxGetApp().getDeviceManager()) { + auto *machine = device_manager->get_selected_machine(); + if (!machine) { + auto machines = device_manager->get_my_machine_list(); + if (machines.size() == 1) + machine = machines.begin()->second; + } + if (machine && !machine->get_dev_ip().empty()) + cfg.opt_string("print_host") = machine->get_dev_ip(); + } + } wxString url = from_u8(PrintHost::get_print_host_webui(&cfg)); wxString apikey; const auto host_type = cfg.option>("host_type")->value; - if (cfg.has("printhost_apikey") && (host_type == htPrusaLink || host_type == htPrusaConnect)) + if (cfg.has("printhost_apikey") && host_type != htSimplyPrint) apikey = cfg.opt_string("printhost_apikey"); if (!url.empty()) { load_printer_url(url, apikey); diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index 20229a611e..a614783c31 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -358,7 +358,7 @@ public: void RunScript(wxString js); //SoftFever - void show_device(bool bBBLPrinter); + void show_device(bool should_use_native); void fit_tab_labels(); // ORCA PA_Calibration_Dlg* m_pa_calib_dlg{ nullptr }; @@ -385,7 +385,7 @@ public: CalibrationPanel* m_calibration{ nullptr }; WebViewPanel* m_webview { nullptr }; PrinterWebView* m_printer_view{nullptr}; - wxLogWindow* m_log_window { nullptr }; + wxLogWindow* m_log_window { nullptr }; // BBS //wxBookCtrlBase* m_tabpanel { nullptr }; Notebook* m_tabpanel{ nullptr }; diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index ebf4db6846..7f1effd162 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -9,8 +9,13 @@ #include #include #include +#include + +#include #include +#include +#include #include "libslic3r/libslic3r.h" #include "libslic3r/Utils.hpp" @@ -229,12 +234,82 @@ void MsgDialog::finalize() } +// A placeholder-parser caret line, pointing at the column where parsing failed. +static bool is_caret_line(const std::string &line) +{ + return std::count(line.begin(), line.end(), '^') == 1 && + std::all_of(line.begin(), line.end(), [](char c) { return c == ' ' || c == '^'; }); +} + +// Tag each line as a code excerpt (a caret line or the source line above one) that must stay +// monospaced for the '^' to align. +static std::vector> classify_code_lines(const std::string &msg) +{ + std::vector lines; + boost::split(lines, msg, boost::is_any_of("\n")); + for (std::string &line : lines) + if (!line.empty() && line.back() == '\r') + line.pop_back(); + + std::vector> tagged; + tagged.reserve(lines.size()); + for (size_t i = 0; i < lines.size(); ++i) { + bool is_code = is_caret_line(lines[i]) || (i + 1 < lines.size() && is_caret_line(lines[i + 1])); + tagged.emplace_back(std::move(lines[i]), is_code); + } + return tagged; +} + +// Keeps whitespace literal so the caret's leading spaces survive. +// Used inside , which supplies the fixed face.
 does both but adds a blank line above it.
+class CodeExcerptTagHandler : public wxHtmlWinTagHandler
+{
+public:
+    wxString GetSupportedTags() override { return wxT("EXCERPT"); }
+    bool     HandleTag(const wxHtmlTag &tag) override
+    {
+        const wxHtmlWinParser::WhitespaceMode ws = m_WParser->GetWhitespaceMode();
+        m_WParser->SetWhitespaceMode(wxHtmlWinParser::Whitespace_Pre);
+        ParseInner(tag);
+        m_WParser->SetWhitespaceMode(ws);
+        return true;
+    }
+};
+
+// Render the message as HTML, monospacing only the code excerpts.
+static std::string format_parser_error_html(const std::string &msg)
+{
+    std::string out;
+    for (const auto &[text, is_code] : classify_code_lines(msg)) {
+        if (!out.empty()) out += "
"; // join, not trail; a trailing
forces a scrollbar + std::string escaped = xml_escape(text); + if (is_code) + out += "" + escaped + ""; + else + out += escaped; + } + return out; +} + +// Measure each line in the font it will render in, so the dialog fits the longest line without slack. +static wxSize measure_mixed_text(wxWindow *parent, const std::string &msg, const wxFont &prose_font, const wxFont &code_font) +{ + wxClientDC dc(parent); + int width = 0, height = 0; + for (const auto &[text, is_code] : classify_code_lines(msg)) { + dc.SetFont(is_code ? code_font : prose_font); + width = std::max(width, dc.GetTextExtent(wxString::FromUTF8(text.c_str())).GetWidth()); + height += dc.GetCharHeight(); + } + return wxSize(width, height); +} + // Text shown as HTML, so that mouse selection and Ctrl-V to copy will work. static void add_msg_content(wxWindow *parent, wxBoxSizer *content_sizer, wxString msg, - bool monospaced_font = false, - bool is_marked_msg = false, + bool has_code_excerpts = false, + bool is_marked_msg = false, const wxString &link_text = "", std::function link_callback = nullptr) { @@ -243,7 +318,7 @@ static void add_msg_content(wxWindow *parent, // count lines in the message int msg_lines = 0; - if (!monospaced_font) { + if (!has_code_excerpts) { int line_len = 55;// count of symbols in one line int start_line = 0; for (auto i = msg.begin(); i != msg.end(); ++i) { @@ -300,13 +375,23 @@ static void add_msg_content(wxWindow *parent, page_size = wxSize(info_width, page_height); } else { - wxClientDC dc(parent); - dc.SetFont(font); // ORCA without this it calculates bigger size - wxSize msg_sz = dc.GetMultiLineTextExtent(msg) + parent->FromDIP(wxSize(10,5)); // added extra spacing to prevent wrapping + wxSize msg_sz; + if (has_code_excerpts) { + msg_sz = measure_mixed_text(parent, msg.ToUTF8().data(), font, monospace); + } else { + wxClientDC dc(parent); + dc.SetFont(font); // ORCA without this it calculates bigger size + msg_sz = dc.GetMultiLineTextExtent(msg); + } + msg_sz += parent->FromDIP(wxSize(10,5)); // added extra spacing to prevent wrapping - page_size = wxSize(std::min(msg_sz.GetX(), info_width), std::min(msg_sz.GetY(), info_width)); + int page_height = msg_sz.GetY(); + // Reserve the horizontal scrollbar's height, or it clips the last line. + if (msg_sz.GetX() > info_width) + page_height += wxSystemSettings::GetMetric(wxSYS_HSCROLL_Y, parent); + page_size = wxSize(std::min(msg_sz.GetX(), info_width), std::min(page_height, info_width)); // Extra line breaks in message dialog - if (link_text.IsEmpty() && !link_callback && is_marked_msg == false) {//for common text + if (link_text.IsEmpty() && !link_callback && is_marked_msg == false && !has_code_excerpts) {//for common text html->Destroy(); if (msg_sz.GetX() < info_width) {//No need for line breaks info_width = msg_sz.GetX(); @@ -337,12 +422,15 @@ static void add_msg_content(wxWindow *parent, } html->SetMinSize(page_size); - std::string msg_escaped = xml_escape(msg.ToUTF8().data(), is_marked_msg); - boost::replace_all(msg_escaped, "\r\n", "
"); - boost::replace_all(msg_escaped, "\n", "
"); - if (monospaced_font) - // Code formatting will be preserved. This is useful for reporting errors from the placeholder parser. - msg_escaped = std::string("
") + msg_escaped + "
"; + std::string msg_escaped; + if (has_code_excerpts) { + html->GetParser()->AddTagHandler(new CodeExcerptTagHandler()); + msg_escaped = format_parser_error_html(msg.ToUTF8().data()); + } else { + msg_escaped = xml_escape(msg.ToUTF8().data(), is_marked_msg); + boost::replace_all(msg_escaped, "\r\n", "
"); + boost::replace_all(msg_escaped, "\n", "
"); + } if (!link_text.IsEmpty() && link_callback) { msg_escaped += "
" + std::string(link_text.ToUTF8().data()) + ""; @@ -360,15 +448,15 @@ static void add_msg_content(wxWindow *parent, // ErrorDialog -ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &temp_msg, bool monospaced_font) +ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &temp_msg, bool has_code_excerpts) : MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_FULL_NAME), wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_FULL_NAME), wxOK) , msg(temp_msg) { - add_msg_content(this, content_sizer, msg, monospaced_font); + add_msg_content(this, content_sizer, msg, has_code_excerpts); - // Use a small bitmap with monospaced font, as the error text will not be wrapped. - logo->SetBitmap(create_scaled_bitmap("OrcaSlicer_192px_grayscale.png", this, monospaced_font ? 48 : /*1*/64)); + // Use a small bitmap for code excerpts, which cannot wrap and so need the width. + logo->SetBitmap(create_scaled_bitmap("OrcaSlicer_192px_grayscale.png", this, has_code_excerpts ? 48 : /*1*/64)); SetMaxSize(MSG_DLG_MAX_SIZE); diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 174d734336..90fd160310 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -106,9 +106,9 @@ protected: class ErrorDialog : public MsgDialog { public: - // If monospaced_font is true, the error message is displayed using html
tags, - // so that the code formatting will be preserved. This is useful for reporting errors from the placeholder parser. - ErrorDialog(wxWindow *parent, const wxString &temp_msg, bool courier_font); + // If has_code_excerpts is true, code excerpts (a source line and the caret line below it) render + // monospaced so the caret aligns. Used for placeholder-parser errors. + ErrorDialog(wxWindow *parent, const wxString &temp_msg, bool has_code_excerpts); ErrorDialog(ErrorDialog &&) = delete; ErrorDialog(const ErrorDialog &) = delete; ErrorDialog &operator=(ErrorDialog &&) = delete; diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 0f6cdba602..25c13c4b8d 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -54,6 +54,9 @@ const t_field& OptionsGroup::build_field(const t_config_option_key& id, const Co case ConfigOptionDef::GUIType::one_string: m_fields.emplace(id, TextCtrl::Create(this->ctrl_parent(), opt, id)); break; case ConfigOptionDef::GUIType::plugin_picker: m_fields.emplace(id, PluginField::Create(this->ctrl_parent(), opt, id)); break; case ConfigOptionDef::GUIType::plugin_config: m_fields.emplace(id, PluginConfigField::Create(this->ctrl_parent(), opt, id)); break; + case ConfigOptionDef::GUIType::printer_agent_select: m_fields.emplace( + id, PrinterAgentChoice::Create(this->ctrl_parent(), opt, id)); + break; default: switch (opt.type) { case coFloatOrPercent: @@ -386,6 +389,7 @@ void OptionsGroup::activate_line(Line& line) } if (label != nullptr && line.label_tooltip != "") label->SetToolTip(line.label_tooltip); + line.label_widget = label; } } @@ -574,6 +578,7 @@ void OptionsGroup::clear(bool destroy_custom_ctrl) for (Line& line : m_lines) { if (line.near_label_widget_win) line.near_label_widget_win = nullptr; + line.label_widget = nullptr; if (line.widget_sizer) { line.widget_sizer->Clear(true); @@ -652,6 +657,16 @@ Option ConfigOptionsGroup::get_option(const std::string& opt_key, int opt_index void ConfigOptionsGroup::on_change_OG(const t_config_option_key& opt_id, const boost::any& value) { + if (opt_id == "printer_agent") { + // TODO: Replace this option-specific branch with a generic value adapter if + // more fields need custom field-value to config-value conversion. + if (const std::string* id = boost::any_cast(&value)) + this->change_opt_value("printer_agent", wxGetApp().canonical_printer_agent_id(*id)); + + OptionsGroup::on_change_OG(opt_id, value); + return; + } + if (!m_opt_map.empty()) { auto it = m_opt_map.find(opt_id); if (it == m_opt_map.end()) { @@ -770,6 +785,19 @@ void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, } } #endif + else if (opt_key == "printer_agent") + { + // why: printer_agent is a coString kept out of m_opt_map. The generic non-opt_map revert + // below restores the edited config from get_value(), but a deregistered/"(missing)" saved + // id has no selectable row, so the field yields no value and the edited config keeps the + // user's interim pick -> stuck dirty. Restore the SAVED id straight into the edited config + // (displayable or not; config is the saved or system baseline), then repaint and notify. + const std::string saved_id = config.opt_string("printer_agent"); + set_value(opt_key, saved_id); + this->change_opt_value(opt_key, saved_id); + OptionsGroup::on_change_OG(opt_key, saved_id); + return; + } else if (m_opt_map.find(opt_key) == m_opt_map.end() || // This option don't have corresponded field opt_key == "printable_area" || opt_key == "compatible_printers" || opt_key == "compatible_prints" || opt_key == "thumbnails" || diff --git a/src/slic3r/GUI/OptionsGroup.hpp b/src/slic3r/GUI/OptionsGroup.hpp index 5e1f55dfd8..c808545145 100644 --- a/src/slic3r/GUI/OptionsGroup.hpp +++ b/src/slic3r/GUI/OptionsGroup.hpp @@ -62,6 +62,7 @@ public: widget_t widget {nullptr}; std::function near_label_widget{ nullptr }; wxWindow* near_label_widget_win {nullptr}; + wxStaticText* label_widget {nullptr}; wxSizer* widget_sizer {nullptr}; wxSizer* extra_widget_sizer {nullptr}; //BBS: export the extra colume widget @@ -81,6 +82,14 @@ public: label(_(label)), label_tooltip(_(tooltip)) {} Line() : m_is_separator(true) {} + void set_label(const wxString& new_label) { + label = new_label; + if (label_widget != nullptr) { + label_widget->SetLabel(label + (label.IsEmpty() ? "" : ": ")); + label_widget->Refresh(); + } + } + bool is_separator() const { return m_is_separator; } bool has_only_option(const std::string& opt_key) const { return m_options.size() == 1 && m_options[0].opt_id == opt_key; } diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 4b52592f2d..910c761c06 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -2262,6 +2262,12 @@ Vec3d PartPlate::estimate_wipe_tower_size(const DynamicPrintConfig & config, con } double volume = wipe_volume * (extruder_count == 2 ? plate_extruder_size : (plate_extruder_size - 1)); if (extruder_count == 2) volume += filament_change_volume * (int) (plate_extruder_size / 2); + // Read from the passed plate config — m_print may not have been applied yet + // (fresh plates, CLI), in which case its PrintConfig still holds defaults. + const auto *purge_opt = config.option("purge_in_prime_tower"); + const auto *semm_opt = config.option("single_extruder_multi_material"); + const bool semm_flush = purge_opt && purge_opt->value && semm_opt && semm_opt->value; + if (semm_flush) volume = WipeTower2::estimate_semm_flush_volume(config, plate_extruder_size); if (use_rib_wall) { depth = std::sqrt(volume / layer_height * extra_spacing); if (need_wipe_tower || plate_extruder_size > 1) { @@ -2274,7 +2280,9 @@ Vec3d PartPlate::estimate_wipe_tower_size(const DynamicPrintConfig & config, con } } else { - depth = volume/ (layer_height * w) *extra_spacing; + depth = volume / (layer_height * w); + // The flush volumes already hold the spacing between wipes. + if (!semm_flush) depth *= extra_spacing; if (need_wipe_tower || depth > EPSILON) { float min_wipe_tower_depth = WipeTower::get_limit_depth_by_height(max_height); depth = std::max((double)min_wipe_tower_depth, depth); @@ -2298,6 +2306,7 @@ arrangement::ArrangePolygon PartPlate::estimate_wipe_tower_polygon(const Dynamic bool enable_wrapping = (wrapping_opt != nullptr) && wrapping_opt->value; wt_size = estimate_wipe_tower_size(config, w, v, extruder_count, plate_extruder_size, use_global_objects, enable_wrapping); int plate_width=m_width, plate_depth=m_depth; + w = wt_size(0); // effective width; differs from prime_tower_width when the rib wall squares the tower float depth = wt_size(1); float margin = WIPE_TOWER_MARGIN + tower_brim_width, wp_brim_width = 0.f; const ConfigOption* wipe_tower_brim_width_opt = config.option("prime_tower_brim_width"); @@ -3336,6 +3345,11 @@ BoundingBoxf3 PartPlate::get_build_volume(bool use_share) return plate_box; } +Polygon PartPlate::get_shared_printable_polygon() const +{ + return m_extruder_areas.empty() ? Polygon::new_scale(m_shape) : get_shared_poly(m_extruder_areas); +} + bool PartPlate::contains(const Vec3d& point) const { return m_bounding_box.contains(point); @@ -4374,22 +4388,21 @@ void PartPlateList::set_default_wipe_tower_pos_for_plate(int plate_idx, bool ini f_volume_maps = wxGetApp().preset_bundle->get_default_nozzle_volume_types_for_filaments(filament_maps); } DynamicPrintConfig full_config = wxGetApp().preset_bundle->full_config(false, filament_maps, f_volume_maps); - const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; - float w = dynamic_cast(print_cfg.option("prime_tower_width"))->value; + float w = dynamic_cast(full_config.option("prime_tower_width"))->value; float v = dynamic_cast(full_config.option("prime_volume"))->value; bool enable_wrapping = false; const ConfigOptionBool *wrapping_opt = dynamic_cast(full_config.option("enable_wrapping_detection")); if (wrapping_opt) enable_wrapping = wrapping_opt->value; int nozzle_nums = wxGetApp().preset_bundle->get_printer_extruder_count(); - Vec3d wipe_tower_size = part_plate->estimate_wipe_tower_size(print_cfg, w, v, nozzle_nums, init_pos ? 2 : 0, false, enable_wrapping); + Vec3d wipe_tower_size = part_plate->estimate_wipe_tower_size(full_config, w, v, nozzle_nums, init_pos ? 2 : 0, false, enable_wrapping); if (!init_pos && (is_approx(wipe_tower_size(0), 0.0) || is_approx(wipe_tower_size(1), 0.0))) { - wipe_tower_size = part_plate->estimate_wipe_tower_size(print_cfg, w, v, nozzle_nums, 2, false, enable_wrapping); + wipe_tower_size = part_plate->estimate_wipe_tower_size(full_config, w, v, nozzle_nums, 2, false, enable_wrapping); } // Compute brim-aware margin: brim extends outward from tower position float brim_width = 0.f; - const ConfigOptionFloat *brim_opt = print_cfg.option("prime_tower_brim_width"); + const ConfigOptionFloat *brim_opt = full_config.option("prime_tower_brim_width"); if (brim_opt) { brim_width = brim_opt->value; if (brim_width < 0) brim_width = WipeTower::get_auto_brim_by_height((float) wipe_tower_size.z()); @@ -4411,6 +4424,18 @@ void PartPlateList::set_default_wipe_tower_pos_for_plate(int plate_idx, bool ini } } + // The bounding box above still allows a corner a delta or hexagonal bed does not have, and the + // prime tower is validated against the real outline — pull it onto the bed before storing. + { + Polygons bed{part_plate->get_shared_printable_polygon()}; + bed.front().translate(Point(-scaled(plate_origin.x()), -scaled(plate_origin.y()))); // into the frame x/y live in + const BoundingBox tower(Point::new_scale(x, y), + Point::new_scale(x + wipe_tower_size(0), y + wipe_tower_size(1))); + const Vec2f move = WipeTower::move_box_inside_polygon(tower, bed, scaled(margin)); + x += move.x(); + y += move.y(); + } + ConfigOptionFloat wt_x_opt(x); ConfigOptionFloat wt_y_opt(y); dynamic_cast(proj_cfg.option("wipe_tower_x"))->set_at(&wt_x_opt, plate_idx, 0); diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index 8f4055706f..47481dcad4 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -425,6 +425,9 @@ public: const BoundingBox get_bounding_box_crd(); BoundingBoxf3 get_plate_box() {return get_build_volume();} BoundingBoxf3 get_build_volume(bool use_share = false); + // Polygon counterpart of get_build_volume(true), in scaled world coordinates. The bounding box + // that one returns hides the corners a non-rectangular bed does not have. + Polygon get_shared_printable_polygon() const; const std::vector& get_exclude_areas() { return m_exclude_bounding_box; } diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index b40cd22697..989cf204e1 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -25,7 +25,6 @@ #include "GUI.hpp" #include "GUI_App.hpp" #include "MainFrame.hpp" -#include "slic3r/Utils/NetworkAgentFactory.hpp" #include "format.hpp" #include "Tab.hpp" #include "wxExtensions.hpp" @@ -128,22 +127,8 @@ PhysicalPrinterDialog::~PhysicalPrinterDialog() void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgroup) { m_optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { - // Special handling for printer_agent: convert fake enum index to string agent ID - if (opt_key == "printer_agent") { - try { - int selected_idx = boost::any_cast(value); - auto agents = NetworkAgentFactory::get_registered_printer_agents(); - if (selected_idx >= 0 && selected_idx < static_cast(agents.size())) { - m_config->set_key_value("printer_agent", - new ConfigOptionString(agents[selected_idx].id)); - } - } catch (const boost::bad_any_cast&) { - // If value is not an int, ignore - } + if (opt_key == "host_type" || opt_key == "printhost_authorization_type") this->update(); - } else if (opt_key == "host_type" || opt_key == "printhost_authorization_type") { - this->update(); - } if (opt_key == "print_host") this->update_printhost_buttons(); if (opt_key == "printhost_port") @@ -154,47 +139,6 @@ void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgr m_optgroup->append_single_option_line("host_type"); - // Build printer agent dropdown from registry (only if network agent is available) - if (wxGetApp().getAgent() != nullptr) { - auto agents = NetworkAgentFactory::get_registered_printer_agents(); - - if (!agents.empty()) { - // Create a fake enum option to force a Choice widget instead of TextCtrl - // (printer_agent is coString in config, but we need a dropdown) - ConfigOptionDef def; - def.type = coEnum; - def.width = Field::def_width_wider(); - def.label = L("Printer Agent"); - def.tooltip = L("Select the network agent implementation for printer communication. " - "Available agents are registered at startup."); - def.mode = comAdvanced; - - // Populate enum values and labels from registered agents - for (const auto& agent : agents) { - def.enum_values.push_back(agent.id); - def.enum_labels.push_back(agent.display_name); - } - - // Resolve selected agent: use config value if valid, otherwise fall back to default - std::string selected_agent = m_config->opt_string("printer_agent"); - auto it = std::find_if(agents.begin(), agents.end(), [&selected_agent](const auto& a) { return a.id == selected_agent; }); - if (it == agents.end()) { - selected_agent = ORCA_PRINTER_AGENT_ID; - it = std::find_if(agents.begin(), agents.end(), [&selected_agent](const auto& a) { return a.id == selected_agent; }); - } - - if (it != agents.end()) { - size_t default_idx = std::distance(agents.begin(), it); - def.set_default_value(new ConfigOptionInt(static_cast(default_idx))); - } - - // Create and append the option line - auto agent_option = Option(def, "printer_agent"); - Line agent_line = m_optgroup->create_single_option_line(agent_option); - m_optgroup->append_line(agent_line); - } - } - auto create_sizer_with_btn = [](wxWindow* parent, Button** btn, const std::string& icon_name, const wxString& label) { *btn = new Button(parent, label); (*btn)->SetStyle(ButtonStyle::Regular, ButtonType::Parameter); @@ -725,7 +669,7 @@ void PhysicalPrinterDialog::update(bool printer_change) } // For bbl printers, show option to control the device tab - if (wxGetApp().preset_bundle->is_bbl_vendor()) { + if (wxGetApp().preset_bundle->is_bbl_vendor() || wxGetApp().app_config->get_bool("use_printer_agents")) { m_optgroup->show_field("bbl_use_print_host_webui"); const bool use_print_host_webui = !current_webui.empty(); if (Field* printhost_webui_field = m_optgroup->get_field("bbl_use_print_host_webui"); printhost_webui_field) { @@ -816,31 +760,6 @@ void PhysicalPrinterDialog::update_host_type(bool printer_change) } } -void PhysicalPrinterDialog::update_printer_agent_type() -{ - if (m_config == nullptr) - return; - - Field* agent_field = m_optgroup->get_field("printer_agent"); - if (!agent_field) - return; - - Choice* agent_choice = dynamic_cast(agent_field); - if (!agent_choice) - return; - - // Sync selection with current config value - const std::string current_agent = m_config->opt_string("printer_agent"); - - auto agents = NetworkAgentFactory::get_registered_printer_agents(); - for (size_t i = 0; i < agents.size(); ++i) { - if (agents[i].id == current_agent) { - agent_choice->set_value(i); - return; - } - } -} - void PhysicalPrinterDialog::update_printers() { wxBusyCursor wait; @@ -894,11 +813,6 @@ void PhysicalPrinterDialog::OnOK(wxEvent& event) { wxGetApp().get_tab(Preset::TYPE_PRINTER)->save_preset("", false, false, true, m_preset_name); event.Skip(); - - // Defer printer agent switch to ensure preset save completes first - wxGetApp().CallAfter([] { - wxGetApp().switch_printer_agent(); - }); } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.hpp b/src/slic3r/GUI/PhysicalPrinterDialog.hpp index 694e7aaf90..0ba2cad54f 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.hpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.hpp @@ -60,7 +60,6 @@ public: void update(bool printer_change = false); void update_host_type(bool printer_change); - void update_printer_agent_type(); void update_preset_input(); void update_printhost_buttons(); void update_printers(); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 106c142fea..5b06db9d3e 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3246,7 +3246,8 @@ void Sidebar::update_all_preset_comboboxes() auto p_mainframe = wxGetApp().mainframe; auto cfg = preset_bundle.printers.get_edited_preset().config; - const bool use_native_device_tab = preset_bundle.use_bbl_device_tab() || NetworkAgentFactory::is_current_printer_agent_plugin(); + const bool use_printer_agents = wxGetApp().app_config->get_bool("use_printer_agents"); + const bool use_native_device_tab = preset_bundle.use_bbl_device_tab() || use_printer_agents; if (preset_bundle.use_bbl_network()) { //only show connection button for not-BBL printer @@ -3258,7 +3259,8 @@ void Sidebar::update_all_preset_comboboxes() p_mainframe->set_print_button_to_default(MainFrame::PrintSelectType::ePrintPlate); } else { //p->btn_connect_printer->Show(); - p->m_printer_connect->Show(); + // ORCA: hide the physical-printer connection button when printer agents are enabled + p->m_printer_connect->Show(!use_printer_agents); // ORCA: show/hide sync-ams button based on filament sync mode auto agent = wxGetApp().getAgent(); @@ -3280,10 +3282,14 @@ void Sidebar::update_all_preset_comboboxes() const auto host_type = cfg.option>("host_type")->value; if (cfg.has("printhost_apikey") && (host_type != htSimplyPrint)) apikey = cfg.opt_string("printhost_apikey"); - print_btn_type = preset_bundle.is_bbl_vendor() ? MainFrame::PrintSelectType::ePrintPlate : MainFrame::PrintSelectType::eSendGcode; + print_btn_type = (preset_bundle.is_bbl_vendor() || wxGetApp().app_config->get_bool("use_printer_agents")) + ? MainFrame::PrintSelectType::ePrintPlate + : MainFrame::PrintSelectType::eSendGcode; } - if (!use_native_device_tab) + if (use_printer_agents) + p_mainframe->load_printer_url(); + else if (!use_native_device_tab) p_mainframe->load_printer_url(url, apikey); @@ -3439,7 +3445,10 @@ void Sidebar::update_presets(Preset::Type preset_type) bool isBBL = preset_bundle.is_bbl_vendor(); bool is_dual_extruder = extruder_variants->size() == 2; - p->layout_printer(preset_bundle.use_bbl_network(), isBBL && is_dual_extruder); + // why: agent mode drives the native device tab, so the sidebar lays out like BBL + // (no physical-printer connect button). + p->layout_printer(preset_bundle.use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents"), + isBBL && is_dual_extruder); // Update nozzle titles from printer config (e.g. "Main Nozzle" / "Auxiliary Nozzle" for N6) // UI left = DEPUTY_EXTRUDER_ID(1), UI right = MAIN_EXTRUDER_ID(0) @@ -5625,6 +5634,7 @@ struct Plater::priv void on_action_slice_all(SimpleEvent&); void on_action_publish(wxCommandEvent &evt); void on_action_print_plate(SimpleEvent&); + void open_machine_select_dialog(int plate_idx, PrintFromType print_type = PrintFromType::FROM_NORMAL); void on_action_print_all(SimpleEvent&); void on_action_export_gcode(SimpleEvent&); void on_action_send_gcode(SimpleEvent&); @@ -9493,7 +9503,7 @@ void Plater::priv::replace_all_with_stl() return; } - std::string status = _L("Replaced with 3D files from directory:\n").ToStdString() + out_path.string() + "\n\n"; + wxString status = _L("Replaced with 3D files from directory:\n") + from_u8(out_path.string()) + "\n\n"; for (unsigned int idx : volume_idxs) { const GLVolume* v = selection.get_volume(idx); @@ -9513,13 +9523,13 @@ void Plater::priv::replace_all_with_stl() std::string volume_name = volume->name; if (new_path == input_path) { - status += boost::str(boost::format(_L("✖ Skipped %1%: same file.\n").ToStdString()) % volume_name); + status += wxString::Format(_L("✖ Skipped %s: same file.\n"), from_u8(volume_name)); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " skipping replace volume : same filename " << new_path; continue; } if (!fs::exists(new_path)) { - status += boost::str(boost::format(_L("✖ Skipped %1%: file does not exist.\n").ToStdString()) % volume_name); + status += wxString::Format(_L("✖ Skipped %s: file does not exist.\n"), from_u8(volume_name)); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " cannot replace volume : filen does not exist " << new_path; continue; } @@ -9527,12 +9537,12 @@ void Plater::priv::replace_all_with_stl() BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " replacing volume : " << input_path << " with " << new_path; if (!replace_volume_with_stl(object_idx, volume_idx, new_path, _u8L("Replace with 3D file"))) { - status += boost::str(boost::format(_L("✖ Skipped %1%: failed to replace.\n").ToStdString()) % volume_name); + status += wxString::Format(_L("✖ Skipped %s: failed to replace.\n"), from_u8(volume_name)); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " cannot replace volume : failed to replace with " << new_path; continue; } - status += boost::str(boost::format(_L("✔ Replaced %1%.\n").ToStdString()) % volume_name); + status += wxString::Format(_L("✔ Replaced %s.\n"), from_u8(volume_name)); } // update 3D scene @@ -11166,18 +11176,23 @@ void Plater::priv::on_action_print_plate(SimpleEvent&) } PresetBundle& preset_bundle = *wxGetApp().preset_bundle; - if (preset_bundle.use_bbl_network()) { - // BBS - if (!m_select_machine_dlg) - m_select_machine_dlg = new SelectMachineDialog(q); - m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); - m_select_machine_dlg->prepare(partplate_list.get_curr_plate_index()); - m_select_machine_dlg->ShowModal(); + if (preset_bundle.use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) { + open_machine_select_dialog(partplate_list.get_curr_plate_index()); } else { q->send_gcode_legacy(PLATE_CURRENT_IDX, nullptr); } } +void Plater::priv::open_machine_select_dialog(int plate_idx, PrintFromType print_type) +{ + // BBS + if (!m_select_machine_dlg) + m_select_machine_dlg = new SelectMachineDialog(q); + m_select_machine_dlg->set_print_type(print_type); + m_select_machine_dlg->prepare(plate_idx); + m_select_machine_dlg->ShowModal(); +} + void Plater::priv::on_action_send_to_multi_machine(SimpleEvent&) { if (!m_send_multi_dlg) @@ -11193,10 +11208,7 @@ void Plater::priv::on_action_print_plate_from_sdcard(SimpleEvent&) } //BBS - if (!m_select_machine_dlg) m_select_machine_dlg = new SelectMachineDialog(q); - m_select_machine_dlg->set_print_type(PrintFromType::FROM_SDCARD_VIEW); - m_select_machine_dlg->prepare(0); - m_select_machine_dlg->ShowModal(); + open_machine_select_dialog(0, PrintFromType::FROM_SDCARD_VIEW); } void Plater::priv::on_tab_selection_changing(wxBookCtrlEvent& e) @@ -11211,13 +11223,13 @@ void Plater::priv::on_tab_selection_changing(wxBookCtrlEvent& e) sidebar_layout.show = new_sel == MainFrame::tp3DEditor || new_sel == MainFrame::tpPreview; update_sidebar(); int old_sel = e.GetOldSelection(); - const bool is_printer_agent_plugin = NetworkAgentFactory::is_current_printer_agent_plugin(); + const bool use_printer_agents = wxGetApp().app_config->get_bool("use_printer_agents"); const bool use_native_device_tab = wxGetApp().preset_bundle && - (wxGetApp().preset_bundle->use_bbl_device_tab() || is_printer_agent_plugin); + (wxGetApp().preset_bundle->use_bbl_device_tab() || use_printer_agents); if (use_native_device_tab && new_sel == MainFrame::tpMonitor) { // BBL network module is only required for BBL-vendor printers. // Non-BBL Python plugins (e.g. moonraker) drive the Device tab without it. - if (!is_printer_agent_plugin && wxGetApp().preset_bundle->is_bbl_vendor() && !Slic3r::NetworkAgent::is_network_module_loaded()) { + if (!use_printer_agents && wxGetApp().preset_bundle->is_bbl_vendor() && !Slic3r::NetworkAgent::is_network_module_loaded()) { e.Veto(); BOOST_LOG_TRIVIAL(info) << boost::format("skipped tab switch from %1% to %2%, lack of network plugins") % old_sel % new_sel; if (q) { @@ -11226,9 +11238,14 @@ void Plater::priv::on_tab_selection_changing(wxBookCtrlEvent& e) } } } else { - if (new_sel == MainFrame::tpMonitor && wxGetApp().preset_bundle != nullptr) { + const bool selecting_web_device_tab = main_frame->m_printer_view && + main_frame->m_tabpanel->GetPage(new_sel) == main_frame->m_printer_view; + if (selecting_web_device_tab) { + // Use the selected discovered machine when the preset has no host. + main_frame->load_printer_url(); + } else if (new_sel == MainFrame::tpMonitor && wxGetApp().preset_bundle != nullptr) { auto cfg = wxGetApp().preset_bundle->printers.get_edited_preset().config; - wxString url = cfg.opt_string("print_host_webui").empty() ? cfg.opt_string("print_host") : cfg.opt_string("print_host_webui"); + wxString url = from_u8(PrintHost::get_print_host_webui(&cfg)); if (main_frame->m_printer_view && url.empty()) { // It's missing_connection page, reload so that we can replay the gif image main_frame->m_printer_view->reload(); @@ -11273,13 +11290,8 @@ void Plater::priv::on_action_print_all(SimpleEvent&) } PresetBundle& preset_bundle = *wxGetApp().preset_bundle; - if (preset_bundle.use_bbl_network()) { - // BBS - if (!m_select_machine_dlg) - m_select_machine_dlg = new SelectMachineDialog(q); - m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); - m_select_machine_dlg->prepare(PLATE_ALL_IDX); - m_select_machine_dlg->ShowModal(); + if (preset_bundle.use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) { + open_machine_select_dialog(PLATE_ALL_IDX); } else { q->send_gcode_legacy(PLATE_ALL_IDX, nullptr); } diff --git a/src/slic3r/GUI/PluginSource.hpp b/src/slic3r/GUI/PluginSource.hpp index ee1464c8df..8742153c9e 100644 --- a/src/slic3r/GUI/PluginSource.hpp +++ b/src/slic3r/GUI/PluginSource.hpp @@ -11,6 +11,7 @@ namespace Slic3r // IMPORTANT: ordinal order is the Plugins dialog Source sort priority. Mine, Subscribed, + Orphaned, Local }; @@ -20,6 +21,7 @@ namespace Slic3r { case PluginSource::Mine: return "mine"; case PluginSource::Subscribed: return "subscribed"; + case PluginSource::Orphaned: return "orphaned"; case PluginSource::Local: return "local"; } diff --git a/src/slic3r/GUI/PluginsDialog.cpp b/src/slic3r/GUI/PluginsDialog.cpp index 23cf7a2648..a39fcbc535 100644 --- a/src/slic3r/GUI/PluginsDialog.cpp +++ b/src/slic3r/GUI/PluginsDialog.cpp @@ -103,6 +103,7 @@ struct PluginDialogItem bool loading = false; bool is_cloud_plugin = false; + bool orphaned = false; bool has_local_package = false; bool unauthorized = false; bool has_script_capability = false; @@ -246,6 +247,7 @@ nlohmann::json build_plugin_payload_item(const PluginDialogItem& dialog_item) payload_item["sharing_token"] = dialog_item.sharing_token; payload_item["thumbnail_url"] = dialog_item.thumbnail_url; payload_item["installed"] = dialog_item.has_local_package; + payload_item["orphaned"] = dialog_item.orphaned; payload_item["installed_version"] = dialog_item.installed_version; payload_item["latest_version"] = dialog_item.latest_version; return payload_item; @@ -268,7 +270,8 @@ PluginSource derive_plugin_source(const PluginDescriptor& descriptor) const bool is_cloud = descriptor.is_cloud_plugin(); const bool is_mine = is_cloud && has_cloud_meta && descriptor.cloud->is_mine; - // Source is ownership/locality only; issue states never replace this badge. + if (is_cloud && has_cloud_meta && descriptor.cloud->orphaned) + return PluginSource::Orphaned; if (is_mine) return PluginSource::Mine; if (is_cloud) @@ -281,11 +284,12 @@ PluginAvailableActions evaluate_action_policy(const PluginDialogItem& item) PluginAvailableActions available_actions; const bool is_loading = item.status == PluginStatus::Loading; const bool is_cloud = item.is_cloud_plugin; + const bool is_orphaned = item.orphaned; const bool is_mine = item.source == PluginSource::Mine; const bool has_local = item.has_local_package; const bool authorized_for_install = !item.unauthorized; - available_actions.toggle_installs_cloud_plugin = is_cloud && !has_local && authorized_for_install; + available_actions.toggle_installs_cloud_plugin = is_cloud && !is_orphaned && !has_local && authorized_for_install; available_actions.can_toggle = !is_loading && (has_local || available_actions.toggle_installs_cloud_plugin); auto add_action = [&available_actions](const char* id, const char* label, bool enabled = true, bool danger = false) { @@ -294,7 +298,7 @@ PluginAvailableActions evaluate_action_policy(const PluginDialogItem& item) // Owned cloud plugins fall through to the local delete: it removes the installed package only. // Deleting a plugin from the cloud is a plugin hub operation and is never offered here. - if (is_cloud && !is_mine) { + if (is_cloud && !is_orphaned && !is_mine) { add_action("unsubscribe_plugin", "Unsubscribe", true, true); } else if (has_local) { add_action("delete_plugin", "Delete", true, true); @@ -302,11 +306,13 @@ PluginAvailableActions evaluate_action_policy(const PluginDialogItem& item) add_action("open_folder", "Show in folder", has_local); - if (is_cloud) { - add_action("reinstall_plugin", "Reinstall"); - } else { - add_action("reload_plugin", "Reload"); - add_action("clear_cache_reload_plugin", "Delete cache and reload"); + if (!is_orphaned) { + if (is_cloud) { + add_action("reinstall_plugin", "Reinstall"); + } else { + add_action("reload_plugin", "Reload"); + add_action("clear_cache_reload_plugin", "Delete cache and reload"); + } } return available_actions; @@ -360,6 +366,7 @@ PluginDialogItem build_plugin_dialog_item(const PluginDescriptor& descriptor) item.error_text = descriptor.normalized_error(); item.has_error = descriptor.has_error(); item.is_cloud_plugin = descriptor.is_cloud_plugin(); + item.orphaned = descriptor.cloud.has_value() && descriptor.cloud->orphaned; item.has_local_package = descriptor.has_local_package(); item.unauthorized = descriptor.is_unauthorized(); item.is_loaded = manager.is_plugin_loaded(descriptor.plugin_key); @@ -592,7 +599,35 @@ bool PluginsDialog::get_descriptor(const std::string& plugin_key, PluginDescript void PluginsDialog::refresh_plugin_metadata_async(const wxString& title, const wxString& message, bool fetch_cloud) { - run_with_dialog([fetch_cloud]() { refresh_plugin_metadata_blocking(fetch_cloud); }, [this]() { send_plugins(); }, title, message); + run_with_dialog([fetch_cloud]() { refresh_plugin_metadata_blocking(fetch_cloud); }, [this]() { + prompt_for_missing_plugins(); + send_plugins(); + }, title, message); +} + +void PluginsDialog::prompt_for_missing_plugins() +{ + PluginManager& manager = PluginManager::instance(); + const std::vector missing = manager.get_missing_plugin_descriptors(); + if (missing.empty()) + return; + + wxString names; + std::vector keys; + keys.reserve(missing.size()); + for (const PluginDescriptor& plugin : missing) { + keys.push_back(plugin.plugin_key); + names += "\n- "; + names += plugin_display_name(plugin.plugin_key); + } + + const int result = wxMessageBox( + wxString::Format(_L("The following installed plugins were not found on disk:\n%s\n\nRemove them from OrcaSlicer?"), names), + _L("Missing Plugins"), wxYES_NO | wxNO_DEFAULT | wxICON_WARNING, this); + restore_z_order(); + + if (result == wxYES) + manager.remove_missing_plugins(keys); } void PluginsDialog::refresh_plugins() diff --git a/src/slic3r/GUI/PluginsDialog.hpp b/src/slic3r/GUI/PluginsDialog.hpp index a0e7bd8022..e663de79e4 100644 --- a/src/slic3r/GUI/PluginsDialog.hpp +++ b/src/slic3r/GUI/PluginsDialog.hpp @@ -68,6 +68,7 @@ private: bool get_descriptor(const std::string& plugin_key, Slic3r::PluginDescriptor& descriptor) const; void refresh_plugin_metadata_async(const wxString& title, const wxString& message, bool fetch_cloud); + void prompt_for_missing_plugins(); void refresh_plugins(); void toggle_plugin(const std::string& plugin_key, bool enabled); void toggle_plugin_capability(const std::string& plugin_key, PluginCapabilityType type, const std::string& capability_name, bool enabled); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index bd5b7420ff..f802ba6ecb 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -700,6 +700,12 @@ wxBoxSizer *PreferencesDialog::create_item_spinctrl(wxString title, wxString tit auto input = new SpinInput(m_parent, wxEmptyString, side_label, wxDefaultPosition, DESIGN_INPUT_SIZE, wxSP_ARROW_KEYS, min, max, stoi(app_config->get(param))); input->SetToolTip(tip); + // ORCA: this one is only meaningful while the dimming it controls is enabled + if (param == "preview_dim_previous_layers_brightness") { + m_dim_previous_layers_brightness_input = input; + input->Enable(app_config->get_bool("preview_dim_previous_layers")); + } + m_sizer->Add(input, 0, wxALIGN_CENTER_VERTICAL); if(!title2.empty()){ @@ -1050,8 +1056,10 @@ wxBoxSizer *PreferencesDialog::create_item_checkbox(wxString title, wxString too wxGetApp().mainframe->m_webview->SendCloudProvidersInfo(); } } - // ORCA: apply the preview dimming change immediately to the currently loaded preview (ported from preFlight) + // ORCA: apply the preview dimming change immediately to the currently loaded preview else if (param == "preview_dim_previous_layers") { + if (m_dim_previous_layers_brightness_input) + m_dim_previous_layers_brightness_input->Enable(app_config->get_bool(param)); if (Plater* plater = wxGetApp().plater()) { if (GLCanvas3D* canvas = plater->get_preview_canvas3D()) { canvas->get_gcode_viewer().set_dim_previous_layers(app_config->get_bool(param)); @@ -1127,6 +1135,14 @@ wxBoxSizer *PreferencesDialog::create_item_checkbox(wxString title, wxString too wxGetApp().plater()->sidebar().update_presets(Preset::TYPE_FILAMENT); } + if (param == "use_printer_agents") + { + // Rebuild the Device tab so the native/web-UI choice reflects the new flag + // immediately, instead of only on the next printer-preset change or restart. + if (wxGetApp().plater()) + wxGetApp().plater()->sidebar().update_all_preset_comboboxes(); + } + if (param == "enable_high_low_temp_mixed_printing") { if (checkbox->GetValue()) { const wxString warning_title = _L("Bed Temperature Difference Warning"); @@ -1914,6 +1930,28 @@ void PreferencesDialog::create_items() ); g_sizer->Add(item_dim_previous_layers); + auto item_dim_previous_layers_brightness = create_item_spinctrl( + _L("Dimmed layer brightness"), + "", + _L("%"), + _L("How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" + "99% is barely darkened, 0% renders them black. Capped at 99% because 100% would be the same as disabling the option."), + "preview_dim_previous_layers_brightness", + 0, + 99, + // ORCA: apply the new brightness immediately to the currently loaded preview + [](int value) { + if (Plater* plater = wxGetApp().plater()) { + if (GLCanvas3D* canvas = plater->get_preview_canvas3D()) { + canvas->get_gcode_viewer().set_dim_previous_layers_brightness(0.01f * value); + canvas->set_as_dirty(); + canvas->request_extra_frame(); + } + } + } + ); + g_sizer->Add(item_dim_previous_layers_brightness); + g_sizer->AddSpacer(FromDIP(10)); sizer_page->Add(g_sizer, 0, wxEXPAND); @@ -2071,6 +2109,12 @@ void PreferencesDialog::create_items() auto item_show_unsupported = create_item_checkbox(_L("Show unsupported presets"), _L("Show incompatible/unsupported presets in the printer and filament dropdown lists. These presets cannot be selected."), "show_unsupported_presets"); g_sizer->Add(item_show_unsupported); + auto item_plugin_printer_agents = create_item_checkbox( + _L("(Experimental) Use printer agents instead of print hosts"), _L( + "Route print jobs for non-Bambu printers through printer plug-in agents instead of the classic print-host upload flow.\nWhen disabled, OrcaSlicer uses the legacy print-host behavior."), + "use_printer_agents"); + g_sizer->Add(item_plugin_printer_agents); + //// DEVELOPER > Experimental Features g_sizer->Add(create_item_title(_L("Experimental Features")), 1, wxEXPAND); diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 95bfcb5367..94340ce619 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -13,6 +13,7 @@ #include "Widgets/ComboBox.hpp" #include "Widgets/CheckBox.hpp" #include "Widgets/TextInput.hpp" +#include "Widgets/SpinInput.hpp" #include "Widgets/TabCtrl.hpp" #include "slic3r/Utils/bambu_networking.hpp" @@ -71,6 +72,7 @@ public: ::CheckBox * m_sync_user_preset_checkbox = {nullptr}; ::CheckBox * m_bambu_cloud_checkbox = {nullptr}; ::TextInput *m_backup_interval_textinput = {nullptr}; + ::SpinInput *m_dim_previous_layers_brightness_input = {nullptr}; ::ComboBox * m_network_version_combo = {nullptr}; std::vector m_available_versions; diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 8fdca030c6..c979fc3212 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -865,6 +865,9 @@ PlaterPresetComboBox::PlaterPresetComboBox(wxWindow *parent, Preset::Type preset clr_picker = new wxBitmapButton(parent, wxID_ANY, {}, wxDefaultPosition, wxSize(FromDIP(20), FromDIP(20)), wxBU_EXACTFIT | wxBU_AUTODRAW | wxBORDER_NONE); clr_picker->SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE)); clr_picker->SetToolTip(_L("Click to select filament color")); +#ifdef __WXGTK__ + RemoveButtonBorder(clr_picker); +#endif clr_picker->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e) { // Check if it's an official filament auto fila_type = Preset::remove_suffix_modified(GetValue().ToUTF8().data()); diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index 22f65f4a60..7b2d091176 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -1991,7 +1991,7 @@ void InputIpAddressDialog::workerThreadFunc(std::string str_ip, std::string str_ if (w.expired()) return; if (m_obj) { - m_obj->set_user_access_code(str_access_code); + m_obj->set_access_code(str_access_code); wxGetApp().getDeviceManager()->set_selected_machine(m_obj->get_dev_id()); } @@ -2055,6 +2055,11 @@ void InputIpAddressDialog::on_text(wxCommandEvent &evt) { auto str_ip = m_input_ip->GetTextCtrl()->GetValue(); auto str_access_code = m_input_access_code->GetTextCtrl()->GetValue(); + + if (str_access_code.empty()) { + str_access_code = "88888888"; + } + auto str_name = m_input_printer_name->GetTextCtrl()->GetValue().Strip(wxString::both); auto str_sn = m_input_sn->GetTextCtrl()->GetValue().Strip(wxString::both); bool invalid_access_code = true; @@ -2062,7 +2067,7 @@ void InputIpAddressDialog::on_text(wxCommandEvent &evt) for (char c : str_access_code) { if (!(('0' <= c && c <= '9') || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))) { invalid_access_code = false; - return; + break; } } diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 52bcbed4de..0b33e48ec4 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -112,12 +112,56 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox sizer->Add(m_radio_group, 0, wxEXPAND | wxTOP | wxLEFT, BORDER_W); if (parent->m_mode == comDevelop) { - m_detach_checkbox = new wxCheckBox(parent, wxID_ANY, _L("Detach from parent")); - sizer->Add(m_detach_checkbox, 0, wxALIGN_LEFT | wxALL, BORDER_W); - // Set initial state (unchecked by default) - m_detach_checkbox->SetValue(m_detach); - // Bind the checkbox event to update the detach state for this item - m_detach_checkbox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_detach = m_detach_checkbox->GetValue(); }); + // A new user copy of a system preset inherits from the selected system preset. + const std::string parent_name = sel_preset.is_system ? sel_preset.name : sel_preset.inherits(); + const bool can_detach = !parent_name.empty(); + + wxBoxSizer *detach_sizer = new wxBoxSizer(wxHORIZONTAL); + + auto detach_tooltip = _L("Copies all inherited values from the parent into this preset and removes the parent relationship. Presets compatible only with the parent may become unsupported."); + + auto detach_checkbox = new ::CheckBox(parent); + detach_checkbox->SetToolTip(detach_tooltip); + + auto detach_label = new wxStaticText(parent, wxID_ANY, _L("Detach from parent")); + detach_label->SetFont(::Label::Body_14); + detach_label->SetToolTip(detach_tooltip); + + detach_sizer->Add(detach_checkbox, 0, wxALIGN_LEFT | wxLEFT, BORDER_W); + detach_sizer->Add(detach_label , 0, wxALIGN_CENTRE_VERTICAL | wxLEFT, FromDIP(5)); + sizer->Add(detach_sizer, 0, wxEXPAND | wxTOP, BORDER_W); + sizer->AddSpacer(FromDIP(5)); + + const wxString parent_text = can_detach ? from_u8(parent_name) : _L("Unique preset"); + auto parent_label = new wxStaticText(parent, wxID_ANY, parent_text); + parent_label->SetFont(::Label::Body_12); + parent_label->SetForegroundColour(wxColour("#6B6B6B")); + parent_label->SetToolTip(can_detach ? _L("Parent preset") : _L("This preset does not inherit from another preset.")); + sizer->Add(parent_label, 0, wxEXPAND | wxLEFT, BORDER_W + FromDIP(24)); + + sizer->AddSpacer(FromDIP(5)); + + if (!can_detach) { + detach_checkbox->Disable(); + detach_label->SetForegroundColour(wxColour("#6B6B6B")); + } + else { + // Set initial state (unchecked by default) + detach_checkbox->SetValue(m_detach); + // Bind the checkbox event to update the detach state for this item + detach_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, detach_checkbox](wxCommandEvent&) { m_detach = detach_checkbox->GetValue(); }); + + detach_label->SetForegroundColour(wxColour("#363636")); + + auto on_toggle = [this, detach_checkbox]() { + detach_checkbox->SetValue(!detach_checkbox->GetValue()); + wxCommandEvent ev(wxEVT_TOGGLEBUTTON, detach_checkbox->GetId()); + ev.SetEventObject(detach_checkbox); + detach_checkbox->GetEventHandler()->ProcessEvent(ev); + }; + detach_label->Bind(wxEVT_LEFT_DOWN, [on_toggle](wxMouseEvent& e) {if(!e.LeftDClick()) on_toggle();}); + detach_label->Bind(wxEVT_LEFT_DCLICK, [on_toggle](wxMouseEvent& e) {on_toggle();}); + } } m_radio_group->Bind(wxEVT_COMMAND_RADIOBOX_SELECTED, [this](wxCommandEvent &e) { diff --git a/src/slic3r/GUI/SavePresetDialog.hpp b/src/slic3r/GUI/SavePresetDialog.hpp index 0b71325927..05aa1b2d39 100644 --- a/src/slic3r/GUI/SavePresetDialog.hpp +++ b/src/slic3r/GUI/SavePresetDialog.hpp @@ -75,7 +75,6 @@ class SavePresetDialog : public DPIDialog bool m_save_to_project {false}; RadioGroup* m_radio_group; // ORCA bool m_detach{false}; - wxCheckBox* m_detach_checkbox{nullptr}; void update(); }; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 1ab78fcc11..6cc988b879 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3629,7 +3629,7 @@ void SelectMachineDialog::on_send_print() BOOST_LOG_TRIVIAL(error) << "build_nozzle_info errors"; } - m_print_job->sdcard_state = obj_->GetStorage()->get_sdcard_state(); + m_print_job->sdcard_state = obj_->GetStorage()->get_sdcard_state(); m_print_job->has_sdcard = wxGetApp().app_config->get("allow_abnormal_storage") == "true" ? (m_print_job->sdcard_state == DevStorage::SdcardState::HAS_SDCARD_NORMAL || m_print_job->sdcard_state == DevStorage::SdcardState::HAS_SDCARD_ABNORMAL) @@ -3868,12 +3868,11 @@ _compare_obj_names(MachineObject* obj1, MachineObject* obj2) } /******************************************************************* -*@note _collect_machine_list -*@param dev_manager -- the device manager -*@param sorted_machine_objs -- return the sorted machine objects -*@param best_one -- return the best one -*/ -/*******************************************************************/ +* @note _collect_machine_list +* @param dev_manager -- the device manager +* @param sorted_machine_objs -- return the sorted machine objects +* @param best_one -- return the best one +*******************************************************************/ static void _collect_sorted_machines(Slic3r::DeviceManager* dev_manager, std::vector& sorted_machine_objs) diff --git a/src/slic3r/GUI/SelectMachinePop.cpp b/src/slic3r/GUI/SelectMachinePop.cpp index 492199569e..96324fb4d8 100644 --- a/src/slic3r/GUI/SelectMachinePop.cpp +++ b/src/slic3r/GUI/SelectMachinePop.cpp @@ -704,7 +704,6 @@ void SelectMachinePopup::update_user_devices() } mobj->set_access_code(""); - mobj->erase_user_access_code(); } if (GUI::wxGetApp().plater()) diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index 5d6a545873..b6d7abde21 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -1270,9 +1270,7 @@ void Selection::translate(const Vec3d &displacement, TransformationType transfor } else { if (v.is_wipe_tower) {//in world cs int plate_idx = v.object_idx() - 1000; - BoundingBoxf3 plate_bbox = wxGetApp().plater()->get_partplate_list().get_plate(plate_idx)->get_build_volume(true); - BoundingBox plate_bbox2d = BoundingBox(scaled(Vec2f(plate_bbox.min[0], plate_bbox.min[1])), scaled(Vec2f(plate_bbox.max[0], plate_bbox.max[1]))); - Vec3d tower_size = v.bounding_box().size(); + const Polygons bed_polys{wxGetApp().plater()->get_partplate_list().get_plate(plate_idx)->get_shared_printable_polygon()}; Vec3d tower_origin = m_cache.volumes_data[i].get_volume_position(); Vec3d actual_displacement = displacement; bool show_read_wipe_tower = wxGetApp().plater()->get_partplate_list().get_plate(plate_idx)->fff_print()->is_step_done(psWipeTower); @@ -1287,18 +1285,7 @@ void Selection::translate(const Vec3d &displacement, TransformationType transfor BoundingBoxf3 tower_bbox = v.bounding_box(); tower_bbox.translate(actual_displacement + tower_origin); BoundingBox tower_bbox2d = BoundingBox(scaled(Vec2f(tower_bbox.min[0], tower_bbox.min[1])), scaled(Vec2f(tower_bbox.max[0], tower_bbox.max[1]))); - Vec2f offset = WipeTower::move_box_inside_box(tower_bbox2d, plate_bbox2d,scaled(margin)); - //if (tower_origin(0) + actual_displacement(0) - margin < plate_bbox.min(0)) { - // actual_displacement(0) = plate_bbox.min(0) - tower_origin(0) + margin; - //} else if (tower_origin(0) + actual_displacement(0) + tower_size(0) + margin > plate_bbox.max(0)) { - // actual_displacement(0) = plate_bbox.max(0) - tower_origin(0) - tower_size(0) - margin; - //} - - //if (tower_origin(1) + actual_displacement(1) - margin < plate_bbox.min(1)) { - // actual_displacement(1) = plate_bbox.min(1) - tower_origin(1) + margin; - //} else if (tower_origin(1) + actual_displacement(1) + tower_size(1) + margin > plate_bbox.max(1)) { - // actual_displacement(1) = plate_bbox.max(1) - tower_origin(1) - tower_size(1) - margin; - //} + const Vec2f offset = WipeTower::move_box_inside_polygon(tower_bbox2d, bed_polys, scaled(margin)); actual_displacement += Vec3d(offset[0], offset[1],0); v.set_volume_offset(m_cache.volumes_data[i].get_volume_position() + actual_displacement); } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index ef830b7f35..1a31355d0e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -33,6 +33,7 @@ #include "GUI_App.hpp" #include "GUI_ObjectList.hpp" +#include "slic3r/Utils/NetworkAgentFactory.hpp" #include "slic3r/Utils/PresetUpdater.hpp" #include "slic3r/plugin/PluginConfig.hpp" #include "Plater.hpp" @@ -1738,6 +1739,13 @@ void Tab::toggle_line(const std::string &opt_key, bool toggle, int opt_index) if (line) line->toggle_visible = toggle; }; +void Tab::set_option_label(const std::string &opt_key, const wxString &label, int opt_index) +{ + if (!m_active_page) return; + Line *line = m_active_page->get_line(opt_key, opt_index); + if (line) line->set_label(label); +} + // To be called by custom widgets, load a value into a config, // update the preset selection boxes (the dirty flags) // If value is saved before calling this function, put saved_value = true, @@ -2128,43 +2136,9 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) m_last_sparse_infill_rotate_template_value = m_config->opt_string("sparse_infill_rotate_template"); } - if(opt_key=="layer_height"){ - auto min_layer_height_from_nozzle=m_preset_bundle->full_config().option("min_layer_height")->values; - auto max_layer_height_from_nozzle=m_preset_bundle->full_config().option("max_layer_height")->values; - auto layer_height_floor = *std::min_element(min_layer_height_from_nozzle.begin(), min_layer_height_from_nozzle.end()); - auto layer_height_ceil = *std::max_element(max_layer_height_from_nozzle.begin(), max_layer_height_from_nozzle.end()); - const auto lh = m_config->opt_float("layer_height"); - bool exceed_minimum_flag = lh < layer_height_floor; - bool exceed_maximum_flag = lh > layer_height_ceil; - - if (exceed_maximum_flag || exceed_minimum_flag) { - if (lh < EPSILON) { - auto msg_text = _(L("Layer height is too small.\nIt will set to min_layer_height\n")); - MessageDialog dialog(wxGetApp().plater(), msg_text, "", wxICON_WARNING | wxOK); - dialog.SetButtonLabel(wxID_OK, _L("OK")); - dialog.ShowModal(); - auto new_conf = *m_config; - new_conf.set_key_value("layer_height", new ConfigOptionFloat(layer_height_floor)); - m_config_manipulation.apply(m_config, &new_conf); - } else { - wxString msg_text = _(L("Layer height exceeds the limit in Printer Settings -> Extruder -> Layer height limits, " - "this may cause printing quality issues.")); - msg_text += "\n\n" + _(L("Adjust to the set range automatically?\n")); - MessageDialog dialog(wxGetApp().plater(), msg_text, "", wxICON_WARNING | wxYES | wxNO); - dialog.SetButtonLabel(wxID_YES, _L("Adjust")); - dialog.SetButtonLabel(wxID_NO, _L("Ignore")); - auto answer = dialog.ShowModal(); - auto new_conf = *m_config; - if (answer == wxID_YES) { - if (exceed_maximum_flag) - new_conf.set_key_value("layer_height", new ConfigOptionFloat(layer_height_ceil)); - if (exceed_minimum_flag) - new_conf.set_key_value("layer_height", new ConfigOptionFloat(layer_height_floor)); - m_config_manipulation.apply(m_config, &new_conf); - } - } + if (opt_key == "layer_height") { + if (m_config_manipulation.check_layer_height(m_config)) wxGetApp().plater()->update(); - } } string opt_key_without_idx = opt_key.substr(0, opt_key.find('#')); @@ -2816,6 +2790,7 @@ void TabPrint::build() optgroup->append_single_option_line("fill_multiline", "strength_settings_infill#fill-multiline"); optgroup->append_single_option_line("sparse_infill_pattern", "strength_settings_infill#sparse-infill-pattern"); optgroup->append_single_option_line("gyroid_optimized", "strength_settings_patterns#gyroid-optimized"); + optgroup->append_single_option_line("sparse_infill_smooth_factor", "strength_settings_patterns#sparse-infill-smooth-factor"); optgroup->append_single_option_line("infill_direction", "strength_settings_infill#direction"); optgroup->append_single_option_line("sparse_infill_rotate_template", "strength_settings_infill_rotation_template_metalanguage"); optgroup->append_single_option_line("skin_infill_density", "strength_settings_patterns#locked-zag"); @@ -3069,6 +3044,7 @@ void TabPrint::build() optgroup->append_single_option_line("combine_brims", "others_settings_brim#combine-brims"); optgroup->append_single_option_line("brim_ears_max_angle", "others_settings_brim#ear-max-angle"); optgroup->append_single_option_line("brim_ears_detection_length", "others_settings_brim#ear-detection-radius"); + optgroup->append_single_option_line("brim_ears_outer_only", "others_settings_brim#brim-ears-outer-only"); optgroup = page->new_optgroup(L("Special mode"), L"param_special"); optgroup->append_single_option_line("slicing_mode", "others_settings_special_mode#slicing-mode"); @@ -3997,13 +3973,12 @@ void TabFilament::add_filament_overrides_page() const int extruder_idx = 0; // #ys_FIXME - ConfigOptionsGroupShp retraction_optgroup = page->new_optgroup(L("Retraction"), L"param_retraction"); - auto append_retraction_option = [this, retraction_optgroup](const std::string& opt_key, int opt_index) + auto append_retraction_option = [this](ConfigOptionsGroupShp optgroup, const std::string& opt_key, int opt_index) { Line line {"",""}; - line = retraction_optgroup->create_single_option_line(retraction_optgroup->get_option(opt_key, opt_index)); + line = optgroup->create_single_option_line(optgroup->get_option(opt_key, opt_index)); - line.near_label_widget = [this, optgroup_wk = ConfigOptionsGroupWkp(retraction_optgroup), opt_key, opt_index](wxWindow* parent) { + line.near_label_widget = [this, optgroup_wk = ConfigOptionsGroupWkp(optgroup), opt_key, opt_index](wxWindow* parent) { auto check_box = new ::CheckBox(parent); // ORCA modernize checkboxes check_box->Bind(wxEVT_TOGGLEBUTTON, [this, optgroup_wk, opt_key, opt_index](wxCommandEvent& evt) { const bool is_checked = evt.IsChecked(); @@ -4030,9 +4005,10 @@ void TabFilament::add_filament_overrides_page() return check_box; }; - retraction_optgroup->append_line(line); + optgroup->append_line(line); }; + ConfigOptionsGroupShp retraction_optgroup = page->new_optgroup(L("Retraction"), L"param_retraction"); for (const std::string opt_key : { "filament_retraction_length", "filament_z_hop", "filament_z_hop_types", @@ -4056,7 +4032,13 @@ void TabFilament::add_filament_overrides_page() //SoftFever // "filament_seam_gap" }) - append_retraction_option(opt_key, extruder_idx); + append_retraction_option(retraction_optgroup, opt_key, extruder_idx); + + ConfigOptionsGroupShp toolchange_optgroup = page->new_optgroup(L("Retraction when switching material"), L"param_retraction_material_change"); + for (const std::string opt_key : { "filament_retract_length_toolchange", + "filament_retract_restart_extra_toolchange" + }) + append_retraction_option(toolchange_optgroup, opt_key, extruder_idx); ConfigOptionsGroupShp ironing_optgroup = page->new_optgroup(L("Ironing"), L"param_ironing"); auto append_ironing_option = [this, ironing_optgroup](const std::string& opt_key, int opt_index) @@ -4171,6 +4153,8 @@ void TabFilament::update_filament_overrides_page(const DynamicPrintConfig* print "filament_retraction_speed", "filament_deretraction_speed", "filament_retract_restart_extra", + "filament_retract_length_toolchange", + "filament_retract_restart_extra_toolchange", "filament_retraction_minimum_travel", "filament_retract_when_changing_layer", "filament_wipe", @@ -4201,7 +4185,8 @@ void TabFilament::update_filament_overrides_page(const DynamicPrintConfig* print is_checked &= !dynamic_cast(m_config->option(opt_key))->is_nil(extruder_idx); m_overrides_options[opt_key]->SetValue(is_checked); - Field* field = optgroup->get_fieldc(opt_key, 0); + // the toolchange overrides live in their own optgroup, so search the whole page + Field* field = page->get_field(opt_key, 0); if (field == nullptr) continue; if (opt_key == "filament_long_retractions_when_cut") { @@ -5007,8 +4992,43 @@ void TabPrinter::build_fff() optgroup->append_single_option_line("printer_structure", "printer_basic_information_advanced#printer-structure"); optgroup->append_single_option_line("gcode_flavor", "printer_basic_information_advanced#g-code-flavor"); + optgroup->append_single_option_line("gcode_skip_config_block", "printer_basic_information_advanced#skip-g-code-config-block"); optgroup->append_single_option_line("pellet_modded_printer", "printer_basic_information_advanced#pellet-modded-printer"); optgroup->append_single_option_line("bbl_use_printhost", "printer_basic_information_advanced#use-3rd-party-print-host"); + + // "Printer Agent" dropdown - printer_agent is a coString; gui_type routes it to + // PrinterAgentChoice instead of a TextCtrl. Rows and values come from the live agent + // registry, and the value is stored as the agent-id string. + if (wxGetApp().getAgent() != nullptr) + { + auto registered_printer_agents = NetworkAgentFactory::get_registered_printer_agents(); + if (!registered_printer_agents.empty()) + { + ConfigOptionDef def; + def.type = coString; + def.gui_type = ConfigOptionDef::GUIType::printer_agent_select; + def.width = 3 * Field::def_width_wider() / 2; + def.label = L("Printer Agent"); + def.tooltip = L("Select the network agent implementation for printer communication. " + "Available agents are registered at startup."); + def.mode = comAdvanced; + + // Create the field without get_option() so it is not registered in m_opt_map. + // ConfigOptionsGroup handles printer_agent before the generic mapped write path. + Line agent_line = optgroup->create_single_option_line(Option(def, "printer_agent")); + optgroup->append_line(agent_line); + if (Field* agent_field = get_field("printer_agent")) + { + if (auto* choice = dynamic_cast(agent_field); choice && choice->getWindow()) + choice->set_value(m_config->opt_string("printer_agent"), false); + } + + // Register by hand so the UnsavedChanges dialog can render a row for it. + wxGetApp().sidebar().get_searcher().add_key("printer_agent", m_type, optgroup->title, + optgroup->config_category()); + } + } + optgroup->append_single_option_line("use_3mf"); optgroup->append_single_option_line("scan_first_layer" , "printer_basic_information_advanced#scan-first-layer"); optgroup->append_single_option_line("enable_power_loss_recovery", "printer_basic_information_advanced#power-loss-recovery"); @@ -5573,6 +5593,7 @@ if (is_marlin_flavor) optgroup->append_single_option_line("purge_in_prime_tower", "printer_multimaterial_wipe_tower#purge-in-prime-tower"); optgroup->append_single_option_line("enable_filament_ramming", "printer_multimaterial_wipe_tower#enable-filament-ramming"); optgroup->append_single_option_line("tool_change_on_wipe_tower", "printer_multimaterial_wipe_tower#tool-change-on-wipe-tower"); + optgroup->append_single_option_line("wait_for_temp_on_wipe_tower", "printer_multimaterial_wipe_tower#wait-for-temperature-on-wipe-tower"); optgroup = page->new_optgroup(L("Single extruder multi-material parameters"), "param_settings"); @@ -5875,6 +5896,16 @@ void TabPrinter::reload_config() // so update it implicitly if (m_active_page && m_active_page->title() == "Multimaterial") m_active_page->set_value("extruders_count", int(m_extruders_count)); + + // m_opt_map-driven reload does not cover printer_agent, so sync this custom field explicitly. + if (Field* agent_field = get_field("printer_agent")) + { + if (auto* choice = dynamic_cast(agent_field); choice && choice->getWindow()) + { + const std::string selected_agent = m_config->opt_string("printer_agent"); + choice->set_value(selected_agent, false); + } + } } void TabPrinter::activate_selected_page(std::function throw_if_canceled) @@ -5885,6 +5916,16 @@ void TabPrinter::activate_selected_page(std::function throw_if_canceled) // so update it implicitly if (m_active_page && m_active_page->title() == "Multimaterial") m_active_page->set_value("extruders_count", int(m_extruders_count)); + + // m_opt_map-driven reload does not cover printer_agent, so sync this custom field explicitly. + if (Field* agent_field = get_field("printer_agent")) + { + if (auto* choice = dynamic_cast(agent_field); choice && choice->getWindow()) + { + const std::string selected_agent = m_config->opt_string("printer_agent"); + choice->set_value(selected_agent, false); + } + } } void TabPrinter::clear_pages() @@ -6086,6 +6127,7 @@ void TabPrinter::toggle_options() // so the option is irrelevant there. const size_t extruders_count = m_config->option("nozzle_diameter")->size(); toggle_option("tool_change_on_wipe_tower", !bSEMM && supports_wipe_tower_2 && extruders_count > 1); + toggle_option("wait_for_temp_on_wipe_tower", !bSEMM && supports_wipe_tower_2 && extruders_count > 1); } wxString extruder_number; long val = 1; @@ -7843,6 +7885,24 @@ bool TabPrinter::apply_extruder_cnt_from_cache() return false; } +void TabPrinter::refresh_printer_agent_dropdown() const +{ + auto* choice = dynamic_cast(get_field("printer_agent")); + if (!choice || !choice->getWindow()) + return; + + const auto agents = NetworkAgentFactory::get_registered_printer_agents(); + if (agents.empty()) + return; + + // why: rows live on PrinterAgentChoice now; rebuild them from the live registry and re-select the stored id. + const std::string selected_agent = wxGetApp().preset_bundle->printers.get_edited_preset() + .config.opt_string("printer_agent"); + choice->reload_rows(); + choice->set_value(selected_agent, false); + this->GetParent()->Layout(); +} + bool Tab::validate_custom_gcodes() { if (m_type != Preset::TYPE_FILAMENT && @@ -8934,11 +8994,15 @@ ConfigManipulation Tab::get_config_manipulation() return toggle_line(opt_key, toggle, opt_index >= 0 ? opt_index + 256 : opt_index); }; + auto cb_set_option_label = [this](const t_config_option_key &opt_key, const wxString &label, int opt_index) { + return set_option_label(opt_key, label, opt_index >= 0 ? opt_index + 256 : opt_index); + }; + auto cb_value_change = [this](const std::string& opt_key, const boost::any& value) { return on_value_change(opt_key, value); }; - return ConfigManipulation(load_config, cb_toggle_field, cb_toggle_line, cb_value_change, nullptr, this); + return ConfigManipulation(load_config, cb_toggle_field, cb_toggle_line, cb_value_change, nullptr, this, cb_set_option_label); } diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index 9be9bc17f8..19eb0b849d 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -402,6 +402,7 @@ public: Field* get_field(const t_config_option_key &opt_key, Page** selected_page, int opt_index = -1); void toggle_option(const std::string &opt_key, bool toggle, int opt_index = -1); void toggle_line(const std::string &opt_key, bool toggle, int opt_index = -1); // BBS: hide some line + void set_option_label(const std::string &opt_key, const wxString &label, int opt_index = -1); wxSizer* description_line_widget(wxWindow* parent, ogStaticText** StaticText, wxString text = wxEmptyString); bool current_preset_is_dirty() const; bool saved_preset_is_dirty() const; @@ -674,6 +675,7 @@ public: wxSizer* create_bed_shape_widget(wxWindow* parent); void cache_extruder_cnt(const DynamicPrintConfig* config = nullptr); bool apply_extruder_cnt_from_cache(); + void refresh_printer_agent_dropdown() const; }; class TabSLAMaterial : public Tab diff --git a/src/slic3r/GUI/Widgets/CheckBox.cpp b/src/slic3r/GUI/Widgets/CheckBox.cpp index 54e98887e7..91cbb8c4e1 100644 --- a/src/slic3r/GUI/Widgets/CheckBox.cpp +++ b/src/slic3r/GUI/Widgets/CheckBox.cpp @@ -2,7 +2,7 @@ #include "../wxExtensions.hpp" -#ifdef __WXGTK3__ +#ifdef __WXGTK__ #include "../GUI_Utils.hpp" #endif @@ -29,7 +29,7 @@ CheckBox::CheckBox(wxWindow *parent, int id) Bind(wxEVT_LEAVE_WINDOW, &CheckBox::updateBitmap, this); #endif -#ifdef __WXGTK3__ +#ifdef __WXGTK__ Slic3r::GUI::RemoveButtonBorder(this); #endif diff --git a/src/slic3r/GUI/Widgets/RadioBox.cpp b/src/slic3r/GUI/Widgets/RadioBox.cpp index a8a1d8a1ef..7f20b8724c 100644 --- a/src/slic3r/GUI/Widgets/RadioBox.cpp +++ b/src/slic3r/GUI/Widgets/RadioBox.cpp @@ -2,6 +2,10 @@ #include "../wxExtensions.hpp" +#ifdef __WXGTK__ +#include "../GUI_Utils.hpp" +#endif + namespace Slic3r { namespace GUI { RadioBox::RadioBox(wxWindow *parent) @@ -15,6 +19,7 @@ RadioBox::RadioBox(wxWindow *parent) // Bind(wxEVT_TOGGLEBUTTON, [this](auto& e) { update(); e.Skip(); }); update(); #ifdef __WXGTK__ + Slic3r::GUI::RemoveButtonBorder(this); wxSize bestSize = GetBestSize(); bestSize.IncTo(m_on.GetBmpSize()); SetSize(bestSize); diff --git a/src/slic3r/GUI/Widgets/SpinInput.cpp b/src/slic3r/GUI/Widgets/SpinInput.cpp index ccd7a80447..fba5a45233 100644 --- a/src/slic3r/GUI/Widgets/SpinInput.cpp +++ b/src/slic3r/GUI/Widgets/SpinInput.cpp @@ -5,6 +5,10 @@ #include +#ifdef __WXGTK__ +#include "../GUI_Utils.hpp" +#endif + BEGIN_EVENT_TABLE(SpinInput, StaticBox) EVT_KEY_DOWN(SpinInput::keyPressed) @@ -58,6 +62,11 @@ void SpinInput::Create(wxWindow *parent, state_handler.attach({&label_color, &text_color}); state_handler.update_binds(); text_ctrl = new TextCtrl(this, wxID_ANY, text, {20, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER, wxTextValidator(wxFILTER_DIGITS)); + +#ifdef __WXGTK__ + Slic3r::GUI::RemoveInputBorder(text_ctrl); +#endif + text_ctrl->SetFont(Label::Body_14); text_ctrl->SetBackgroundColour(background_color.colorForStates(state_handler.states())); text_ctrl->SetForegroundColour(text_color.colorForStates(state_handler.states())); diff --git a/src/slic3r/GUI/Widgets/SwitchButton.cpp b/src/slic3r/GUI/Widgets/SwitchButton.cpp index 9e780c0f02..c391ddd017 100644 --- a/src/slic3r/GUI/Widgets/SwitchButton.cpp +++ b/src/slic3r/GUI/Widgets/SwitchButton.cpp @@ -12,7 +12,7 @@ #include "libslic3r/MacUtils.hpp" #endif -#ifdef __WXGTK3__ +#ifdef __WXGTK__ #include "../GUI_Utils.hpp" #endif @@ -37,7 +37,7 @@ SwitchButton::SwitchButton(wxWindow* parent, wxWindowID id) Bind(wxEVT_TOGGLEBUTTON, [this](auto& e) { update(); e.Skip(); }); SetFont(Label::Body_12); -#ifdef __WXGTK3__ +#ifdef __WXGTK__ Slic3r::GUI::RemoveButtonBorder(this); #endif diff --git a/src/slic3r/GUI/Widgets/TextInput.cpp b/src/slic3r/GUI/Widgets/TextInput.cpp index 362e4c99b3..49605e048d 100644 --- a/src/slic3r/GUI/Widgets/TextInput.cpp +++ b/src/slic3r/GUI/Widgets/TextInput.cpp @@ -6,6 +6,10 @@ #include #include +#ifdef __WXGTK__ +#include "../GUI_Utils.hpp" +#endif + BEGIN_EVENT_TABLE(TextInput, StaticBox) EVT_PAINT(TextInput::paintEvent) @@ -60,6 +64,11 @@ void TextInput::Create(wxWindow * parent, state_handler.attach({&label_color, & text_color}); state_handler.update_binds(); text_ctrl = new TextCtrl(this, wxID_ANY, text, {4, 4}, wxDefaultSize, style | wxBORDER_NONE | wxTE_PROCESS_ENTER); + +#ifdef __WXGTK__ + Slic3r::GUI::RemoveInputBorder(text_ctrl); +#endif + text_ctrl->SetFont(Label::Body_14); text_ctrl->SetInitialSize(text_ctrl->GetBestSize()); text_ctrl->SetBackgroundColour(background_color.colorForStates(state_handler.states())); diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index e40046c37d..2ca8f3cfbd 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -1022,6 +1022,10 @@ ScalableButton::ScalableButton( wxWindow * parent, m_width = size.x * 10 / em; m_height= size.y * 10 / em; } + +#ifdef __WXGTK__ + Slic3r::GUI::RemoveButtonBorder(this); +#endif } diff --git a/src/slic3r/Utils/IPrinterAgent.hpp b/src/slic3r/Utils/IPrinterAgent.hpp index 91d271316e..0fa3616344 100644 --- a/src/slic3r/Utils/IPrinterAgent.hpp +++ b/src/slic3r/Utils/IPrinterAgent.hpp @@ -2,6 +2,13 @@ #define __I_PRINTER_AGENT_HPP__ #include "bambu_networking.hpp" +// why: these extend the BAMBU_NETWORK_* return space rather than opening a new one - the value +// flows through the same int domain callers already compare against BAMBU_NETWORK_SUCCESS. +// They live here and not in bambu_networking.hpp because that file is a vendor header replaced +// wholesale by header-sync commits (see c09252ce11), which would silently clobber them. +// -70xx is free: the vendor occupies -1..-25 and -10xx through -60xx. +#define ORCA_NETWORK_ERR_CMD_NOT_SUPPORTED -7010 // no translation exists for this command +#define ORCA_NETWORK_ERR_CAP_NOT_AVAILABLE -7020 // a translation exists; this printer lacks the capability #include #include diff --git a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp index d21dce5070..cd3ef82b62 100644 --- a/src/slic3r/Utils/MoonrakerPrinterAgent.cpp +++ b/src/slic3r/Utils/MoonrakerPrinterAgent.cpp @@ -1359,7 +1359,6 @@ void MoonrakerPrinterAgent::announce_printhost_device() if (auto* app_config = GUI::wxGetApp().app_config) { const std::string access_code = device_info.api_key.empty() ? "88888888" : device_info.api_key; app_config->set_str("access_code", device_info.dev_id, access_code); - app_config->set_str("user_access_code", device_info.dev_id, access_code); } nlohmann::json payload; diff --git a/src/slic3r/Utils/NetworkAgentFactory.cpp b/src/slic3r/Utils/NetworkAgentFactory.cpp index 3883d99f2e..ff950d0946 100644 --- a/src/slic3r/Utils/NetworkAgentFactory.cpp +++ b/src/slic3r/Utils/NetworkAgentFactory.cpp @@ -465,25 +465,5 @@ void NetworkAgentFactory::deregister_python_printer_agent(const std::string& plu << plugin_key << "' with agent ID '" << agent_id << "'"; } -bool NetworkAgentFactory::is_current_printer_agent_plugin() -{ - auto* preset_bundle = GUI::wxGetApp().preset_bundle; - if (!preset_bundle) - return false; - - std::string agent_key = ORCA_PRINTER_AGENT_ID; - if (preset_bundle->is_bbl_vendor()) - agent_key = BBL_PRINTER_AGENT_ID; - - const auto& cfg = preset_bundle->printers.get_edited_preset().config; - if (cfg.has("printer_agent")) { - const std::string& value = cfg.option("printer_agent")->value; - if (!value.empty()) - agent_key = value; - } - - const PrinterAgentInfo* info = get_printer_agent_info(agent_key); - return info && info->is_plugin(); -} } // namespace Slic3r diff --git a/src/slic3r/Utils/NetworkAgentFactory.hpp b/src/slic3r/Utils/NetworkAgentFactory.hpp index cfff6fb1c7..a055b19493 100644 --- a/src/slic3r/Utils/NetworkAgentFactory.hpp +++ b/src/slic3r/Utils/NetworkAgentFactory.hpp @@ -166,8 +166,6 @@ public: static void register_python_printer_agent(const std::string& plugin_key, const std::string& capability_name); static void deregister_python_printer_agent(const std::string& plugin_key, const std::string& capability_name); - static bool is_current_printer_agent_plugin(); - private: // Factory is not instantiable NetworkAgentFactory() = delete; diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 9ec57fd653..18a9db4e26 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -1,12 +1,14 @@ #include "PresetUpdater.hpp" #include +#include #include +#include #include #include #include -#include #include +#include #include #include #include @@ -19,6 +21,7 @@ #include #include +#include #include #include @@ -204,7 +207,6 @@ struct PresetUpdater::priv // Per-vendor update checking std::set checked_vendors; - std::mutex vendor_check_mutex; std::vector vendor_check_threads; std::atomic vendor_check_cancel{false}; @@ -221,10 +223,10 @@ struct PresetUpdater::priv priv(); void set_download_prefs(AppConfig *app_config); - bool get_file(const std::string &url, const fs::path &target_path) const; - //BBS: refine preset update logic + bool get_file(const std::string &url, const fs::path &target_path) const; + //BBS: refine preset update logic bool extract_file(const fs::path &source_path, const fs::path &dest_path = {}); - void prune_tmps() const; + void prune_tmp(const std::string& vendor_id) const; void sync_version() const; void parse_version_string(const std::string& body) const; void sync_resources(std::string http_url, std::map &resources, bool check_patch = false, std::string current_version="", std::string changelog_file=""); @@ -371,14 +373,14 @@ bool PresetUpdater::priv::extract_file(const fs::path &source_path, const fs::pa return true; } -// Remove leftover paritally downloaded files, if any. -void PresetUpdater::priv::prune_tmps() const +// Remove a leftover partial archive for the vendor about to be synchronized. +void PresetUpdater::priv::prune_tmp(const std::string& vendor_id) const { - for (auto &dir_entry : boost::filesystem::directory_iterator(cache_path)) - if (is_plain_file(dir_entry) && dir_entry.path().extension() == TMP_EXTENSION) { - BOOST_LOG_TRIVIAL(debug) << "[Orca Updater]remove old cached files: " << dir_entry.path().string(); - fs::remove(dir_entry.path()); - } + boost::system::error_code ec; + const fs::path tmp_path = cache_path / (vendor_id + TMP_EXTENSION); + fs::remove(tmp_path, ec); + if (ec) + BOOST_LOG_TRIVIAL(warning) << "[Orca Updater]failed to remove " << tmp_path.string() << ": " << ec.message(); } //BBS: refine the Preset Updater logic @@ -1060,10 +1062,9 @@ void PresetUpdater::priv::check_installed_vendor_profiles() const Semver resource_ver = get_version_from_json(file_path); Semver vendor_ver = get_version_from_json(path_in_vendor.string()); - bool version_match = ((resource_ver.maj() == vendor_ver.maj()) && (resource_ver.min() == vendor_ver.min())); - - if (!version_match || (vendor_ver < resource_ver)) { - BOOST_LOG_TRIVIAL(info) << "[Orca Updater]:found vendor "<set_download_prefs(GUI::wxGetApp().app_config); if (!p->enabled_version_check && !p->enabled_config_update) { return; } - // Copy the whole vendors data for use in the background thread - // Unfortunatelly as of C++11, it needs to be copied again - // into the closure (but perhaps the compiler can elide this). - VendorMap vendors = preset_bundle ? preset_bundle->vendors : VendorMap{}; - - // Determine active vendor before entering the thread - std::string active_vendor; - if (preset_bundle) { - const Preset& printer = preset_bundle->printers.get_edited_preset(); - if (printer.vendor) - active_vendor = printer.vendor->id; - } - - p->thread = std::thread([this, vendors, active_vendor, http_url, language, plugin_version]() { - this->p->prune_tmps(); - if (p->cancel) - return; - this->p->sync_version(); - if (p->cancel) - return; - // Per-vendor config check for the active vendor at startup - if (!active_vendor.empty() && !vendors.empty()) { - this->p->sync_vendor_config(active_vendor); - if (p->cancel) - return; - { - std::lock_guard lock(this->p->vendor_check_mutex); - this->p->checked_vendors.insert(active_vendor); - } - } - if (p->cancel) - return; - this->p->sync_plugins(http_url, plugin_version); - this->p->sync_printer_config(http_url); - //if (p->cancel) - // return; - //remove the tooltip currently - //this->p->sync_tooltip(http_url, language); + p->thread = std::thread([this, http_url, language, plugin_version]() { + try { + this->p->sync_version(); + if (p->cancel) + return; + // Vendor profile updates are triggered by check_vendor_update() + // after the startup printer preset has been restored. + this->p->sync_plugins(http_url, plugin_version); + this->p->sync_printer_config(http_url); + //if (p->cancel) + // return; + //remove the tooltip currently + //this->p->sync_tooltip(http_url, language); + } catch (const std::exception &e) { + BOOST_LOG_TRIVIAL(error) << "[Orca Updater] background sync failed: " << e.what(); + } catch (...) { + BOOST_LOG_TRIVIAL(error) << "[Orca Updater] background sync failed with an unknown exception"; + } }); } @@ -1356,16 +1337,17 @@ void PresetUpdater::check_vendor_update(const std::string& vendor_id) if (!p->enabled_config_update) return; if (vendor_id.empty()) return; - std::lock_guard lock(p->vendor_check_mutex); - if (!p->checked_vendors.insert(vendor_id).second) return; p->vendor_check_threads.emplace_back([this, vendor_id]() { try { + this->p->prune_tmp(vendor_id); this->p->sync_vendor_config(vendor_id); } catch (const std::exception& e) { BOOST_LOG_TRIVIAL(error) << "[Orca Updater] vendor update failed for " << vendor_id << ": " << e.what(); + } catch (...) { + BOOST_LOG_TRIVIAL(error) << "[Orca Updater] vendor update failed for " << vendor_id << " with an unknown exception"; } }); } diff --git a/src/slic3r/Utils/RaycastManager.cpp b/src/slic3r/Utils/RaycastManager.cpp index c51a19ebd9..62c7a922d7 100644 --- a/src/slic3r/Utils/RaycastManager.cpp +++ b/src/slic3r/Utils/RaycastManager.cpp @@ -107,7 +107,7 @@ std::optional RaycastManager::first_hit(const Vec3d& point, const AABBMesh *hit_mesh = nullptr; double hit_squared_distance = 0.; int hit_face = -1; - Vec3d hit_world; + Vec3d hit_world { Vec3d::Zero() }; const Transform3d *hit_tramsformation = nullptr; const TrKey *hit_key = nullptr; diff --git a/src/slic3r/plugin/PluginDescriptor.hpp b/src/slic3r/plugin/PluginDescriptor.hpp index b7792e2e31..b0d2d214c3 100644 --- a/src/slic3r/plugin/PluginDescriptor.hpp +++ b/src/slic3r/plugin/PluginDescriptor.hpp @@ -20,6 +20,7 @@ struct CloudPluginState bool update_available = false; // Cloud version > the local package version. bool unauthorized = false; // Cloud plugin is valid locally, but cannot receive cloud updates. bool is_mine = false; // Plugin was created (and uploaded) by the current user. + bool orphaned = false; // Cloud identity remains locally, but the plugin is no longer subscribed/available. }; enum class PluginUpdateStatus @@ -106,6 +107,8 @@ struct PluginDescriptor { if (!cloud.has_value()) return PluginUpdateStatus::Normal; + if (cloud->orphaned) + return PluginUpdateStatus::Normal; if (cloud->unauthorized) return PluginUpdateStatus::Unauthorized; if (cloud->update_available) diff --git a/src/slic3r/plugin/PluginFsUtils.cpp b/src/slic3r/plugin/PluginFsUtils.cpp index 3e014eaec7..112c6ebf2b 100644 --- a/src/slic3r/plugin/PluginFsUtils.cpp +++ b/src/slic3r/plugin/PluginFsUtils.cpp @@ -120,8 +120,7 @@ bool delete_plugin_root(const boost::filesystem::path& resolved_root, const std: } if (removed_count == 0) { - error = "Plugin folder was not found: " + resolved_root.string(); - return false; + return true; } BOOST_LOG_TRIVIAL(info) << "Deleted plugin: " << plugin_id << " from " << resolved_root.string(); diff --git a/src/slic3r/plugin/PluginManager.cpp b/src/slic3r/plugin/PluginManager.cpp index 6ef0cc8d53..d84f629112 100644 --- a/src/slic3r/plugin/PluginManager.cpp +++ b/src/slic3r/plugin/PluginManager.cpp @@ -311,6 +311,7 @@ void PluginManager::merge_discovered_plugins(std::vector disco } seen.push_back(descriptor.plugin_key); + m_missing_plugin_keys.erase(descriptor.plugin_key); Plugin* existing = find_plugin_locked(descriptor.plugin_key); if (existing == nullptr) { @@ -331,12 +332,47 @@ void PluginManager::merge_discovered_plugins(std::vector disco return; } - // Unloading may call Python and lifecycle subscribers may re-enter the manager, so never do it - // while holding m_mutex. unload_and_erase_if() retries until no matching entry is loaded at the - // moment of erase, in case another caller starts a load between the initial snapshot and the - // teardown. - unload_and_erase_if( - [&seen](const Plugin& plugin) { return std::find(seen.begin(), seen.end(), plugin.descriptor.plugin_key) == seen.end(); }); + // A package can be temporarily absent while an external side-loader replaces it. Keep the + // descriptor and its persisted enable state until the user explicitly removes the missing + // entry, or a later scan rediscovers it. In particular, do not unload here: the unload callback + // would turn a transient filesystem gap into enabled=false in the sidecar. + { + std::lock_guard lock(m_mutex); + for (const Plugin& plugin : m_plugins) { + if (plugin.descriptor.has_local_package() && + std::find(seen.begin(), seen.end(), plugin.descriptor.plugin_key) == seen.end()) + m_missing_plugin_keys.insert(plugin.descriptor.plugin_key); + } + } +} + +std::vector PluginManager::get_missing_plugin_descriptors() const +{ + std::lock_guard lock(m_mutex); + + std::vector result; + result.reserve(m_missing_plugin_keys.size()); + for (const Plugin& plugin : m_plugins) + if (m_missing_plugin_keys.count(plugin.descriptor.plugin_key) != 0) + result.push_back(plugin.descriptor); + return result; +} + +void PluginManager::remove_missing_plugins(const std::vector& plugin_keys) +{ + const std::unordered_set requested(plugin_keys.begin(), plugin_keys.end()); + + // The predicate is evaluated only while m_mutex is held by unload_and_erase_if(). Checking the + // current missing set here prevents a package that reappeared between the dialog and removal + // from being erased. + unload_and_erase_if([this, &requested](const Plugin& plugin) { + return requested.count(plugin.descriptor.plugin_key) != 0 && + m_missing_plugin_keys.count(plugin.descriptor.plugin_key) != 0; + }); + + std::lock_guard lock(m_mutex); + for (const std::string& plugin_key : requested) + m_missing_plugin_keys.erase(plugin_key); } void PluginManager::unload_and_erase_if(const std::function& should_remove, @@ -1464,7 +1500,8 @@ void PluginManager::fetch_plugins_from_cloud(std::vector* out_not_f std::vector cloud_list{}; std::vector not_found{}, unauthorized{}; - if (!m_cloud_service.fetch_manifests_into_descriptors(cloud_list, not_found, unauthorized)) { + const bool cloud_fetch_succeeded = m_cloud_service.fetch_manifests_into_descriptors(cloud_list, not_found, unauthorized); + if (!cloud_fetch_succeeded) { if (wxTheApp != nullptr) { GUI::wxGetApp().CallAfter([] { if (GUI::wxGetApp().is_closing()) @@ -1479,9 +1516,10 @@ void PluginManager::fetch_plugins_from_cloud(std::vector* out_not_f } } - update_cloud_metadata(cloud_list); + if (cloud_fetch_succeeded) + update_cloud_metadata(cloud_list); - { + if (cloud_fetch_succeeded) { std::lock_guard lock(m_mutex); // Clear the previous cloud verdicts before re-applying the fresh ones. @@ -1490,19 +1528,28 @@ void PluginManager::fetch_plugins_from_cloud(std::vector* out_not_f if (!entry.is_cloud_plugin()) continue; entry.set_unauthorized(false); + if (entry.cloud.has_value()) + entry.cloud->orphaned = false; if (entry.normalized_error() == CLOUD_PLUGIN_NOT_FOUND_ERROR) entry.clear_error(); } - for (const std::string& uuid : not_found) { - for (Plugin& plugin : m_plugins) { - PluginDescriptor& entry = plugin.descriptor; - if (!entry.is_cloud_plugin() || entry.cloud_uuid() != uuid) - continue; - if (!entry.has_local_package()) - entry.set_error(CLOUD_PLUGIN_NOT_FOUND_ERROR); - break; - } + // A successful subscriptions response may report missing UUIDs explicitly, or it may + // simply omit an unsubscribed plugin from `data`. Both cases leave a locally retained + // cloud package orphaned. Owned plugins are returned by the separate mine endpoint and + // must not be orphaned merely because they are not subscribed. + for (Plugin& plugin : m_plugins) { + PluginDescriptor& entry = plugin.descriptor; + if (!entry.is_cloud_plugin() || entry.cloud->is_mine) + continue; + + const bool explicitly_not_found = std::find(not_found.begin(), not_found.end(), entry.cloud_uuid()) != not_found.end(); + const bool returned_by_cloud = std::any_of(cloud_list.begin(), cloud_list.end(), [&entry](const PluginDescriptor& cloud_entry) { + return cloud_entry.cloud_uuid() == entry.cloud_uuid(); + }); + entry.cloud->orphaned = explicitly_not_found || !returned_by_cloud; + if (entry.cloud->orphaned) + entry.cloud->update_available = false; } for (const std::string& uuid : unauthorized) { diff --git a/src/slic3r/plugin/PluginManager.hpp b/src/slic3r/plugin/PluginManager.hpp index ee7eab3106..26a02c09ec 100644 --- a/src/slic3r/plugin/PluginManager.hpp +++ b/src/slic3r/plugin/PluginManager.hpp @@ -132,6 +132,11 @@ public: bool try_get_plugin_descriptor(const std::string& plugin_key, PluginDescriptor& out) const; // Same, but only for packages that are loadable (i.e. not an invalid package). bool try_get_valid_plugin_descriptor(const std::string& plugin_key, PluginDescriptor& out) const; + // Packages that were present in the previous discovery pass but were not found on disk in the + // latest rescan. They are retained until the user explicitly removes them or a later scan finds + // them again. + std::vector get_missing_plugin_descriptors() const; + void remove_missing_plugins(const std::vector& plugin_keys); // Packages whose .install_state.json marks them for auto-load. std::vector get_enabled_plugin_keys() const; // The package owning a loaded capability, for the by-name dispatch path. @@ -265,6 +270,7 @@ private: // Every discovered plugin, loaded or not. module == nullptr => not loaded. std::vector m_plugins; + std::unordered_set m_missing_plugin_keys; std::unordered_set m_load_in_progress; // Keys whose in-flight load has been cancelled. Cancellation does NOT remove the key from diff --git a/src/slic3r/plugin/host/PluginHostApp.cpp b/src/slic3r/plugin/host/PluginHostApp.cpp index a17f160bb7..75acd4cc7b 100644 --- a/src/slic3r/plugin/host/PluginHostApp.cpp +++ b/src/slic3r/plugin/host/PluginHostApp.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -55,6 +56,15 @@ void host_bindings::register_app(py::module_& host) return current_plater()->model(); }, py::return_value_policy::reference); host.def("preset_bundle", ¤t_preset_bundle, py::return_value_policy::reference); + // UI language of the running app ("en_US", "ru_RU", ...), so plugins can + // localize their own dialogs. The app config file that stores this value + // is deny-listed by the audit hook (it sits next to cloud secrets), so a + // read-only accessor is the supported way to get just the language. + host.def("app_language", []() -> std::string { + if (wxTheApp == nullptr) + throw std::runtime_error("OrcaSlicer application is not initialized"); + return GUI::into_u8(GUI::wxGetApp().current_language_code_safe()); + }); } } // namespace Slic3r diff --git a/tests/data/wipe_tower_temperature_trace_main.txt b/tests/data/wipe_tower_temperature_trace_main.txt new file mode 100644 index 0000000000..f755008c26 --- /dev/null +++ b/tests/data/wipe_tower_temperature_trace_main.txt @@ -0,0 +1,172 @@ +# Temperature and tool-change commands of a wait_for_temp_on_wipe_tower-off slice, +# captured from the main branch at a10d9e77cf. Regeneration is described +# at the test that reads this file: "Toolchange temperature commands are unchanged +# when the wipe tower wait is off" in tests/fff_print/test_multifilament.cpp. +# +# The "time:" and "lead" values are toolchain-specific -- GCC, Clang and MSVC each produce +# slightly different estimates from an identical toolpath -- so they are compared with a +# tolerance, not exactly. Do not regenerate this file to resolve a mismatch in them: no single +# capture satisfies all three, and recapturing just moves the failure to other platforms. +M104 S215 T0 ; set nozzle temperature +M104 S215 T1 ; set nozzle temperature +; CP PRIMING START +T1 ; change extruder +M109 S215 T1 ; set nozzle temperature and wait for it to be reached +M104 S175 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S215 T0 ; set nozzle temperature and wait for it to be reached +; CP PRIMING END +M104 S215 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S175 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S215 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; set nozzle temperature +M104 S240 T0 ; preheat T0 time: 30s lead 30.0s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.4s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 31s lead 30.9s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 31s lead 30.7s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 31s lead 30.6s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.3s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 31s lead 30.6s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.0s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.2s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 31s lead 30.7s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.4s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.4s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T0 ; preheat T0 time: 30s lead 30.0s +; CP TOOLCHANGE START +M104 S200 T1 ; set nozzle temperature ;cooldown +T0 ; change extruder +M109 S240 T0 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +M104 S240 T1 ; preheat T1 time: 30s lead 30.0s +; CP TOOLCHANGE START +M104 S200 T0 ; set nozzle temperature ;cooldown +T1 ; change extruder +M109 S240 T1 ; set nozzle temperature and wait for it to be reached +; CP TOOLCHANGE END +; CP TOOLCHANGE START +; CP TOOLCHANGE END +M104 S0 ; turn off temperature diff --git a/tests/fff_print/CMakeLists.txt b/tests/fff_print/CMakeLists.txt index abddfebe5e..08f86de8a7 100644 --- a/tests/fff_print/CMakeLists.txt +++ b/tests/fff_print/CMakeLists.txt @@ -11,12 +11,14 @@ add_executable(${_TEST_NAME}_tests test_gcodewriter.cpp test_model.cpp test_multifilament.cpp + test_perimeters.cpp test_print.cpp test_printobject.cpp test_skirt_brim.cpp test_slicing_pipeline_hook.cpp test_support_material.cpp test_trianglemesh.cpp + test_wipe_tower.cpp ) target_link_libraries(${_TEST_NAME}_tests test_common libslic3r Catch2::Catch2WithMain) set_property(TARGET ${_TEST_NAME}_tests PROPERTY FOLDER "tests") diff --git a/tests/fff_print/test_multifilament.cpp b/tests/fff_print/test_multifilament.cpp index f33a8e1e61..484b7fb68a 100644 --- a/tests/fff_print/test_multifilament.cpp +++ b/tests/fff_print/test_multifilament.cpp @@ -1,12 +1,25 @@ #include +#include "libslic3r/GCode/GCodeProcessor.hpp" #include "libslic3r/GCodeReader.hpp" #include "test_helpers.hpp" +#include "test_utils.hpp" +#include #include +#include +#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include using namespace Slic3r; using namespace Slic3r::Test; @@ -27,6 +40,210 @@ static std::set tools_for_role(const std::string& gcode, const std::string& return tools; } +// X where the nozzle sits while each tagged _WAIT_FOR_TEMP_ON_WIPE_TOWER M109 blocks: +// the nearest preceding G1 carrying an X (the park travel emitted just before the wait). +static std::vector wait_park_xs(const std::string& gcode) +{ + std::vector lines; + std::istringstream stream(gcode); + for (std::string line; std::getline(stream, line);) + lines.emplace_back(std::move(line)); + std::vector xs; + for (size_t i = 0; i < lines.size(); ++i) { + if (lines[i].rfind("M109", 0) != 0 || lines[i].find("_WAIT_FOR_TEMP_ON_WIPE_TOWER") == std::string::npos) + continue; + for (size_t j = i; j-- > 0;) { + if (lines[j].rfind("G1 ", 0) != 0) + continue; + const size_t x_pos = lines[j].find('X'); + if (x_pos == std::string::npos) + continue; + xs.push_back(std::stod(lines[j].substr(x_pos + 1))); + break; + } + } + return xs; +} + +// Estimated print time at each 1-based line of an exported G-code file, from a second +// GCodeProcessor pass over it. MoveVertex::time is the duration of one move and gcode_id is the +// line it came from (already rebased past the M73 insertions), so the running sum before the first +// move of a line is the elapsed time at that line. The file carries its own config footer, so +// process_file configures the processor -- including the shared s_IsBBLPrinter static that other +// tests in this binary mutate -- from the settings the export itself used. +static std::vector elapsed_time_by_line(const std::string& gcode) +{ + ScopedTemporaryFile temp_gcode(".gcode"); + { + std::ofstream os(temp_gcode.string()); + os << gcode; + } + GCodeProcessor processor; + processor.process_file(temp_gcode.string()); + + constexpr size_t NORMAL = size_t(PrintEstimatedStatistics::ETimeMode::Normal); + const size_t n_lines = size_t(std::count(gcode.begin(), gcode.end(), '\n')) + 2; + std::vector elapsed(n_lines, 0.); + double running = 0.; + size_t next = 0; + for (const auto& move : processor.get_result().moves) { + const size_t id = std::min(move.gcode_id, n_lines - 1); + while (next <= id) + elapsed[next++] = running; + running += move.time[NORMAL]; + } + while (next < n_lines) + elapsed[next++] = running; + return elapsed; +} + +// The temperature-relevant projection of `gcode`: every M104/M109/Tn line, plus the toolchange and +// priming markers that anchor them, in order. A preheat -- an M104 the GCodeProcessor backtrace +// inserts mid-object, outside any block, naming a tool other than the one currently loaded -- also +// carries "lead s", the estimated time from there to the tool change it heats for, which is the +// property preheat_time controls. No other temperature command gets one: for an M104 retargeting +// the active tool (the first-layer-to-other-layers bump) or one inside a block, the distance to the +// next Tn is a layer time or a handful of moves and says nothing about preheat_time. Everything +// else is dropped, so the trace does not move when travel, tower geometry or line numbering do. +static std::vector temperature_trace(const std::string& gcode) +{ + std::vector lines; + std::istringstream stream(gcode); + for (std::string line; std::getline(stream, line);) { + line.erase(0, line.find_first_not_of(" \t")); + while (!line.empty() && (line.back() == '\r' || line.back() == ' ' || line.back() == '\t')) + line.pop_back(); + lines.emplace_back(std::move(line)); + } + const std::vector elapsed = elapsed_time_by_line(gcode); + + const auto is_tool = [](const std::string& l) { return l.size() >= 2 && l[0] == 'T' && std::isdigit((unsigned char) l[1]); }; + const auto is_temp = [](const std::string& l) { return l.rfind("M104", 0) == 0 || l.rfind("M109", 0) == 0; }; + const auto marker = [](const std::string& l) -> const char* { + for (const char* m : { "; CP TOOLCHANGE START", "; CP TOOLCHANGE END", "; CP PRIMING START", "; CP PRIMING END" }) + if (l.find(m) != std::string::npos) + return m; + return nullptr; + }; + + // Tool a "T" line, or the "T" argument of an M104, names -- or -1 when it names none. + const auto tool_of = [&is_tool](const std::string& l) -> int { + size_t t = std::string::npos; // index of the 'T' + if (is_tool(l)) + t = 0; + else if (l.rfind("M104", 0) == 0 && l.find(" T") != std::string::npos) + t = l.find(" T") + 1; + if (t == std::string::npos || t + 1 >= l.size() || !std::isdigit((unsigned char) l[t + 1])) + return -1; + return std::stoi(l.substr(t + 1)); + }; + + std::vector trace; + bool in_block = false; + int current_tool = -1; + for (size_t i = 0; i < lines.size(); ++i) { + if (const char* m = marker(lines[i])) { + in_block = std::string(m).find("START") != std::string::npos; + trace.emplace_back(m); // the marker alone: some carry a trailing tool id, some do not + } else if (is_tool(lines[i]) || is_temp(lines[i])) { + std::string entry = lines[i]; + const int named = tool_of(lines[i]); + if (!in_block && lines[i].rfind("M104", 0) == 0 && current_tool != -1 && named != -1 && named != current_tool) { + size_t tn = i; + while (tn < lines.size() && !is_tool(lines[tn])) + ++tn; + if (tn < lines.size()) { + char lead[32]; + std::snprintf(lead, sizeof(lead), "\tlead %.1fs", elapsed[tn + 1] - elapsed[i + 1]); + entry += lead; + } + } + if (is_tool(lines[i])) + current_tool = named; + trace.emplace_back(std::move(entry)); + } + } + return trace; +} + +// "M104 S240 T0 ; preheat T0 time: 31slead 30.9s" carries the same quantity twice, and both +// vary by toolchain: the backtrace picks the first line at least preheat_time out, so a sub-tenth +// difference in the estimate selects a neighbouring move and "lead" steps by that move's duration. +// Tolerate "lead", still far below the tens of seconds a displaced preheat would shift it. Check +// "time:" against its own entry's "lead" instead of across runs -- being a rounding of it, that +// still catches a change in how it is derived without tracking the absolute estimate. +static constexpr double TRACE_TIME_TOLERANCE_S = 1.5; +static constexpr double TRACE_ROUNDING_SLACK_S = 0.05; // correct rounding keeps |time - lead| <= 0.5 + +struct TraceEntry +{ + std::string text; // timing values replaced by a placeholder + std::optional time_s; + std::optional lead_s; +}; + +static TraceEntry parse_trace_entry(const std::string& entry) +{ + TraceEntry out; + std::string text = entry; + + // Split off the tail only when it really is a "lead s", so an unexpected one still compares. + const size_t tab = text.find('\t'); + if (tab != std::string::npos) { + const std::string tail = text.substr(tab + 1); // "lead 30.2s" + const size_t sp = tail.find(' '); + if (sp != std::string::npos && sp + 1 < tail.size() + && std::isdigit(static_cast(tail[sp + 1]))) { + out.lead_s = std::stod(tail.substr(sp + 1)); + text.erase(tab); + } + } + + static constexpr std::string_view k_time = "time: "; + const size_t at = text.find(k_time); + // Require a digit first: a dots-only run would otherwise reach std::stod and throw. + if (at != std::string::npos && at + k_time.size() < text.size() + && std::isdigit(static_cast(text[at + k_time.size()]))) { + const size_t first = at + k_time.size(); + size_t last = first; + while (last < text.size() && (std::isdigit(static_cast(text[last])) || text[last] == '.')) + ++last; + out.time_s = std::stod(text.substr(first, last - first)); + text.replace(first, last - first, ""); // surrounding text, incl. the "s", still compared + } + + out.text = std::move(text); + return out; +} + +static bool timings_match(const std::optional& a, const std::optional& b) +{ + if (a.has_value() != b.has_value()) + return false; + return !a.has_value() || std::abs(*a - *b) <= TRACE_TIME_TOLERANCE_S; +} + +// "time:" must be its own entry's "lead" rounded to a whole second. +static bool time_is_rounded_lead(const TraceEntry& e) +{ + if (!e.time_s.has_value() || !e.lead_s.has_value()) + return true; // nothing to cross-check + return std::abs(*e.time_s - *e.lead_s) <= 0.5 + TRACE_ROUNDING_SLACK_S; +} + +// `a` is the slice under test, `b` the recorded golden. +static bool trace_entries_match(const std::string& a, const std::string& b) +{ + const auto x = parse_trace_entry(a); + const auto y = parse_trace_entry(b); + if (x.text != y.text) + return false; + // A field appearing or disappearing is a real change even though the values are tolerated. + if (x.time_s.has_value() != y.time_s.has_value()) + return false; + return timings_match(x.lead_s, y.lead_s) && time_is_rounded_lead(x); +} + // Tool index = filament id - 1; brim and skirt follow the wall filament. TEST_CASE("Each feature prints with its assigned filament", "[MultiFilament]") { @@ -86,6 +303,399 @@ TEST_CASE("Per-object wall filament override is honored", "[MultiFilament]") CHECK(tools_for_role(gcode, "infill") == std::set{ 0 }); // infill not overridden: stays on F1 } +// With wait_for_temp_on_wipe_tower the blocking M109 moves from right after the Tn command to +// a stop point parked beside the wipe tower (heat-up drool falls next to the tower, not onto +// its top): tagged with _WAIT_FOR_TEMP_ON_WIPE_TOWER, after the toolchange and before the +// repositioning move and the first extrusion of the purge. The restore that used to block there +// demotes to a non-blocking M104 and moves ahead of the Tn, so the incoming tool heats up over +// the change itself. Ordering and the off-tower stop are the contract here. +TEST_CASE("Toolchange temperature wait moves to the wipe tower when enabled", "[MultiFilament]") +{ + const bool wait_on_tower = GENERATE(false, true); + DYNAMIC_SECTION("wait_for_temp_on_wipe_tower " << (wait_on_tower ? 1 : 0)) { + const std::string gcode = slice_with_object_overrides( + { cube(20), cube(20) }, + multifilament_config(2, { + { "nozzle_diameter", "0.4,0.4" }, + { "printer_extruder_id", "1,2" }, + { "printer_extruder_variant", "Direct Drive Standard,Direct Drive Standard" }, + { "extruder_printable_height", "0,0" }, + { "single_extruder_multi_material", 0 }, + { "enable_prime_tower", 1 }, + { "prime_tower_width", 35 }, + { "wipe_tower_x", "50" }, + { "wipe_tower_y", "50" }, + { "ooze_prevention", 1 }, + { "standby_temperature_delta", -40 }, + // The post-processor's own preheat pass also inserts an M104 for the incoming + // filament ahead of the Tn; switch it off so the temperature commands under test + // are the only ones in the toolchange block. + { "preheat_time", 0 }, + { "wait_for_temp_on_wipe_tower", wait_on_tower ? 1 : 0 }, + }), + // One filament per object -> a toolchange on every layer. Assigned at the object + // level: the used-filament count that gates the prime tower is derived from + // object/volume configs on the harness's single apply (region filament ids such + // as sparse_infill_filament_id are not counted there and the tower would be + // silently disabled). + { { { "extruder", 1 } }, { { "extruder", 2 } } }); + + // Split into lines and scan the "; CP TOOLCHANGE START".."; CP TOOLCHANGE END" blocks. + std::vector lines; + std::istringstream gcode_stream(gcode); + for (std::string line; std::getline(gcode_stream, line);) + lines.emplace_back(std::move(line)); + const auto is_tool_line = [](const std::string& l) { return l.size() >= 2 && l[0] == 'T' && std::isdigit((unsigned char)l[1]); }; + const auto is_m109_line = [](const std::string& l) { return l.rfind("M109", 0) == 0; }; + // A non-blocking set-temperature naming one specific tool, e.g. "M104 S255 T1". + const auto is_m104_for_tool = [](const std::string& l, int tool) { + if (l.rfind("M104", 0) != 0) + return false; + const std::string token = " T" + std::to_string(tool); + const size_t at = l.find(token); + return at != std::string::npos && !std::isdigit((unsigned char)l[at + token.size()]); + }; + const auto is_tagged_wait = [](const std::string& l) { return l.find("_WAIT_FOR_TEMP_ON_WIPE_TOWER") != std::string::npos; }; + const auto is_extruding = [](const std::string& l) { + if (l.rfind("G1 ", 0) != 0) + return false; + const size_t e = l.find(" E"); + return e != std::string::npos && l.find_first_of("XY") != std::string::npos && l[e + 2] != '-'; + }; + + int checked_blocks = 0; + for (size_t i = 0; i < lines.size(); ++i) { + if (lines[i].find("; CP TOOLCHANGE START") == std::string::npos) + continue; + size_t block_end = i; + while (block_end < lines.size() && lines[block_end].find("; CP TOOLCHANGE END") == std::string::npos) + ++block_end; + size_t tool_line = block_end; + for (size_t j = i; j < block_end; ++j) + if (is_tool_line(lines[j])) { tool_line = j; break; } + if (tool_line == block_end) + continue; // final unload block, no toolchange + ++checked_blocks; + + // Where the incoming tool's target temperature is raised, relative to its Tn. + const int new_tool = std::stoi(lines[tool_line].substr(1)); + size_t preheat = tool_line, restore = block_end; + for (size_t j = i; j < tool_line; ++j) + if (is_m104_for_tool(lines[j], new_tool)) { preheat = j; break; } + for (size_t j = tool_line + 1; j < block_end; ++j) + if (is_m104_for_tool(lines[j], new_tool)) { restore = j; break; } + + size_t tagged_wait = block_end, untagged_m109 = block_end, first_extrusion = block_end; + for (size_t j = tool_line + 1; j < block_end; ++j) { + if (is_m109_line(lines[j]) && tagged_wait == block_end && is_tagged_wait(lines[j])) + tagged_wait = j; + if (is_m109_line(lines[j]) && untagged_m109 == block_end && !is_tagged_wait(lines[j])) + untagged_m109 = j; + if (first_extrusion == block_end && is_extruding(lines[j])) + first_extrusion = j; + } + INFO("toolchange block at line " << i + 1); + if (wait_on_tower) { + // The only blocking wait is the tagged one, parked beside the tower before the purge. + REQUIRE(tagged_wait < block_end); + CHECK(untagged_m109 == block_end); + // The target is raised ahead of the toolchange, so the incoming tool heats up + // while it is picked up, and nothing sets it again afterwards. + CHECK(preheat < tool_line); + CHECK(restore == block_end); + REQUIRE(first_extrusion < block_end); + CHECK(tagged_wait < first_extrusion); + // The travel preceding the wait parks outside the tower footprint. The tower + // auto-sizes, so derive its extent from the purge extrusions of this block. + size_t stop_line = block_end; + for (size_t j = tagged_wait; j-- > tool_line;) + if (lines[j].rfind("G1 ", 0) == 0 && lines[j].find('X') != std::string::npos) { stop_line = j; break; } + REQUIRE(stop_line < block_end); + const double stop_x = std::stod(lines[stop_line].substr(lines[stop_line].find('X') + 1)); + double purge_min_x = std::numeric_limits::max(), purge_max_x = std::numeric_limits::lowest(); + for (size_t j = tagged_wait; j < block_end; ++j) { + const size_t x_pos = lines[j].find('X'); + if (!is_extruding(lines[j]) || x_pos == std::string::npos) + continue; + const double x = std::stod(lines[j].substr(x_pos + 1)); + purge_min_x = std::min(purge_min_x, x); + purge_max_x = std::max(purge_max_x, x); + } + REQUIRE(purge_min_x <= purge_max_x); + INFO("stop travel: " << lines[stop_line] << " purge x range: " << purge_min_x << ".." << purge_max_x); + const bool beside_tower = stop_x < purge_min_x - 0.5 || stop_x > purge_max_x + 0.5; + CHECK(beside_tower); + } else { + // Stock behavior: the blocking wait follows the toolchange command directly, and + // nothing raises the incoming tool's target before it. + REQUIRE(untagged_m109 < block_end); + CHECK(tagged_wait == block_end); + CHECK(preheat == tool_line); + if (first_extrusion < block_end) + CHECK(untagged_m109 < first_extrusion); + } + i = block_end; + } + REQUIRE(checked_blocks > 0); + if (!wait_on_tower) + CHECK(gcode.find("_WAIT_FOR_TEMP_ON_WIPE_TOWER") == std::string::npos); + } +} + +// Priming runs before the first layer is set up, so set_extruder sees no layer at all: its +// on_first_layer() test is false and print_z is the initial layer height rather than 0. The +// tower nonetheless blocks on the first layer temperature there, so the pre-heat raised ahead +// of each priming Tn has to name that same temperature — pre-heating to the "other layers" +// value instead leaves the tagged M109 asking the firmware to cool back down before the +// priming lines are extruded. +TEST_CASE("Wipe tower priming pre-heats to the first layer temperature", "[MultiFilament]") +{ + const std::string gcode = slice_with_object_overrides( + { cube(20), cube(20) }, + multifilament_config(2, { + { "nozzle_diameter", "0.4,0.4" }, + { "printer_extruder_id", "1,2" }, + { "printer_extruder_variant", "Direct Drive Standard,Direct Drive Standard" }, + { "extruder_printable_height", "0,0" }, + { "single_extruder_multi_material", 0 }, + { "single_extruder_multi_material_priming", 1 }, + { "enable_prime_tower", 1 }, + { "prime_tower_width", 35 }, + { "wipe_tower_x", "50" }, + { "wipe_tower_y", "50" }, + { "preheat_time", 0 }, // see the wait test above + // Distinct enough that picking the wrong one is unambiguous. + { "nozzle_temperature_initial_layer", "215,215" }, + { "nozzle_temperature", "240,240" }, + { "wait_for_temp_on_wipe_tower", 1 }, + }), + { { { "extruder", 1 } }, { { "extruder", 2 } } }); + + std::vector lines; + std::istringstream gcode_stream(gcode); + for (std::string line; std::getline(gcode_stream, line);) + lines.emplace_back(std::move(line)); + // Temperature of an M104/M109, or -1 when the line is neither. + const auto temp_of = [](const std::string& l) { + if (l.rfind("M104", 0) != 0 && l.rfind("M109", 0) != 0) + return -1; + const size_t s = l.find('S'); + return s == std::string::npos ? -1 : std::stoi(l.substr(s + 1)); + }; + + size_t start = lines.size(), end = lines.size(); + for (size_t i = 0; i < lines.size(); ++i) { + if (start == lines.size() && lines[i].find("; CP PRIMING START") != std::string::npos) + start = i; + else if (start < lines.size() && lines[i].find("; CP PRIMING END") != std::string::npos) { + end = i; + break; + } + } + REQUIRE(start < end); + + int checked_waits = 0; + for (size_t i = start; i < end; ++i) { + if (lines[i].find("_WAIT_FOR_TEMP_ON_WIPE_TOWER") == std::string::npos) + continue; + ++checked_waits; + INFO("priming wait at line " << i + 1 << ": " << lines[i]); + CHECK(temp_of(lines[i]) == 215); // the tower waits on the first layer temperature + // The most recent set-temperature before it is the pre-heat, and must agree with it. + int preheat = -1; + for (size_t j = i; j-- > start;) + if ((preheat = temp_of(lines[j])) != -1) + break; + CHECK(preheat == 215); + } + REQUIRE(checked_waits > 0); // the feature under test is active +} + +// The temperature-wait park picks its side of the tower by testing bed containment with the +// tower position at psWipeTower generation time, while WipeTowerIntegration shifts the cached +// moves by the CURRENT position at export. Moving the tower normally invalidates only +// psSkirtBrim (tower gcode is position-independent), but the park makes it bed-relative, so a +// GUI-style move-and-reslice on the same Print must regenerate the tower — otherwise the stale +// park prints outside the bed. Contract: every tagged wait parks inside the printable area. +TEST_CASE("Wipe tower temperature-wait park is regenerated when the tower moves", "[MultiFilament]") +{ + // Two objects, one filament each: a toolchange (and a tagged wait) on every layer, like + // the wait test above — but on a single-extruder machine profile: the synthetic + // dual-extruder keys would drag in the extruder-variant expansion, which is not + // idempotent on the default machine profile and would pollute the re-apply diff below. + // Rectangle wall and no brim keep the tower-local footprint inside [0, 35], so the park + // sits at the generator's 2mm side gap: local -2 or 37. + DynamicPrintConfig config = multifilament_config(2, { + { "single_extruder_multi_material", 0 }, + { "enable_prime_tower", 1 }, + { "prime_tower_width", 35 }, + { "wipe_tower_wall_type", "rectangle" }, // the default rib bulges past the width + { "prime_tower_brim_width", 0 }, // the default 3 widens the first-layer envelope + { "printable_area", "0x0,200x0,200x200,0x200" }, + { "wipe_tower_x", "0" }, + { "wipe_tower_y", "50" }, + { "ooze_prevention", 1 }, + { "standby_temperature_delta", -40 }, + { "wait_for_temp_on_wipe_tower", 1 }, + }); + // init_print force-sets this on its own copy; set it here too so the re-apply below + // diffs in wipe_tower_x ONLY — the exact GUI increment under test. + config.set_key_value("gcode_comments", new ConfigOptionBool(true)); + + Print print; + Model model; + const std::vector> overrides{ + { { "extruder", 1 } }, { { "extruder", 2 } } }; // object-level, see the wait test above + init_print(std::vector{ cube(20), cube(20) }, print, model, config, &overrides); + + const std::string at_edge = gcode(print); + const std::vector at_edge_parks = wait_park_xs(at_edge); + REQUIRE(!at_edge_parks.empty()); // the feature under test is active + for (double x : at_edge_parks) { + INFO("wait park X " << x << " with the tower at x=0 on a 200mm bed"); + CHECK(x >= -0.05); + CHECK(x <= 200.05); + } + REQUIRE(print.is_step_done(psWipeTower)); + + // Move the tower to the right bed edge (164 + 35 = 199 keeps the body printable) and + // re-apply on the SAME Print, as the GUI does. Base the re-apply on the print's own + // resolved config so the diff is wipe_tower_x alone — re-applying the caller's config + // would also diff the apply-time extruder normalization write-backs, and those keys + // regenerate the tower for the wrong reason. The cached right-side park would export + // at 164 + 37 = 201, off the bed; regeneration clamps the park against the bed edge. + // Assemble the moved config exactly the way init_print assembled the first one — the + // apply-time normalization is only idempotent when both applies start from the same + // derivation, and any stray diff key would regenerate the tower for the wrong reason. + config.set_deserialize_strict({ { "wipe_tower_x", "164" } }); + DynamicPrintConfig moved_config = DynamicPrintConfig::full_print_config(); + moved_config.apply(config); + moved_config.set_key_value("gcode_comments", new ConfigOptionBool(true)); + print.apply(model, moved_config); + CHECK_FALSE(print.is_step_done(psWipeTower)); // the move must re-generate the tower + + const std::string moved = gcode(print); + const std::vector moved_parks = wait_park_xs(moved); + REQUIRE(!moved_parks.empty()); // the waits must survive the re-slice + for (double x : moved_parks) { + INFO("wait park X " << x << " with the tower at x=164 on a 200mm bed"); + CHECK(x >= -0.05); + CHECK(x <= 200.05); + } +} + +// The flag-off half of the three tests above. Every site wait_for_temp_on_wipe_tower touches is +// guarded -- set_extruder's pre-toolchange preheat block and its post_toolchange skip, +// toolchange_Change's park, the interface-temp guard in WipeTower2::tool_change, and append_tcr2's +// tagged-M109 filter -- so with the option off the feature has to be inert and temperature emission +// has to stay exactly as it was before the option existed. That is pinned against a trace captured +// from main rather than against expectations written from the current code, which would be +// re-derived from the very code they are meant to guard. +// +// Note what main emits here, since it is easy to misread as a missing wait: with preheat_time set, +// the toolchange carries no blocking M109 at all. GCodeProcessor's backtrace moves the heat-up to +// an M104 preheat_time seconds earlier and demotes the in-place command, which is the entire point +// of preheating. The lead times below are what pin that placement. +TEST_CASE("Toolchange temperature commands are unchanged when the wipe tower wait is off", "[MultiFilament][Regression]") +{ + // 20x20x5 cubes at the default 0.2mm layer height are 25 layers, one filament each, so there is + // a toolchange -- and a preheat ahead of it -- on every layer. + const std::string gcode = slice_with_object_overrides( + { make_cube(20., 20., 5.), make_cube(20., 20., 5.) }, + multifilament_config(2, { + { "nozzle_diameter", "0.4,0.4" }, + { "printer_extruder_id", "1,2" }, + { "printer_extruder_variant", "Direct Drive Standard,Direct Drive Standard" }, + { "extruder_printable_height", "0,0" }, + { "single_extruder_multi_material", 0 }, + { "single_extruder_multi_material_priming", 1 }, // reaches toolchange_Change's priming path + { "enable_prime_tower", 1 }, + { "prime_tower_width", 35 }, + { "wipe_tower_x", "50" }, + { "wipe_tower_y", "50" }, + // GCodeProcessor::apply_config enables the preheat backtrace on + // ooze_prevention && preheat_time > 0 && !SEMM && filaments > 1. That is what puts an + // M104 preheat_time seconds ahead of every Tn, and it also gives set_extruder's + // standby/restore pair, which the option demotes and moves when it is on. + { "ooze_prevention", 1 }, + { "standby_temperature_delta", -40 }, + { "preheat_time", 30 }, + { "preheat_steps", 1 }, + // enable_tower_interface_features is deliberately left off: the interface temperature + // is observable only through a change_filament_gcode template that reads + // new_filament_temp, since append_tcr2 strips the tower's own M109 for it, and the + // default template here has none. The option's interface-temp guard is covered by the + // enabled-path tests above instead. + // + // Distinct enough that a wrong pick between the two is unambiguous in the trace. + { "nozzle_temperature_initial_layer", "215,215" }, + { "nozzle_temperature", "240,240" }, + { "wait_for_temp_on_wipe_tower", 0 }, + }), + // Object-level, so the used-filament count that gates the prime tower is derived from it. + { { { "extruder", 1 } }, { { "extruder", 2 } } }); + + const std::vector trace = temperature_trace(gcode); + REQUIRE(trace.size() > 1); + CHECK(gcode.find("_WAIT_FOR_TEMP_ON_WIPE_TOWER") == std::string::npos); + + const std::string golden_path = std::string(TEST_DATA_DIR PATH_SEPARATOR "wipe_tower_temperature_trace_main.txt"); + + // Regenerate by appending this test and its helpers to the same file on main (dropping the + // wait_for_temp_on_wipe_tower key, which main's config does not know), rebuilding + // fff_print_tests there, running it with ORCA_UPDATE_WIPE_TOWER_TEMP_TRACE=1, copying the file + // it writes back here, and filling in the commit it was captured from. + if (std::getenv("ORCA_UPDATE_WIPE_TOWER_TEMP_TRACE") != nullptr) { + std::ofstream out(golden_path); + REQUIRE(out.good()); + out << "# Temperature and tool-change commands of a wait_for_temp_on_wipe_tower-off slice,\n" + "# captured from the main branch at . Regeneration is described\n" + "# at the test that reads this file: \"Toolchange temperature commands are unchanged\n" + "# when the wipe tower wait is off\" in tests/fff_print/test_multifilament.cpp.\n"; + for (const std::string& entry : trace) + out << entry << "\n"; + WARN("Rewrote " << golden_path << " from this run; it no longer reflects main."); + return; + } + + std::vector golden; + { + std::ifstream in(golden_path); + INFO("reading " << golden_path); + REQUIRE(in.good()); + for (std::string line; std::getline(in, line);) { + if (!line.empty() && line.back() == '\r') + line.pop_back(); + if (!line.empty() && line[0] != '#') + golden.push_back(std::move(line)); + } + } + REQUIRE(!golden.empty()); + + // Reported separately from the golden comparison below: it is a different failure. + for (size_t i = 0; i < trace.size(); ++i) { + const auto entry = parse_trace_entry(trace[i]); + if (time_is_rounded_lead(entry)) + continue; + INFO("at trace entry " << i + 1); + INFO(" " << trace[i]); + FAIL("\"time:\" is not its entry's \"lead\" rounded to a whole second"); + } + + const size_t common = std::min(trace.size(), golden.size()); + for (size_t i = 0; i < common; ++i) { + if (trace_entries_match(trace[i], golden[i])) + continue; + // Report the first difference only: past it the two are misaligned and every later entry + // would be reported as a difference too. + INFO("first difference at trace entry " << i + 1); + INFO(" main: " << golden[i]); + INFO(" branch: " << trace[i]); + FAIL("temperature emission differs from main with wait_for_temp_on_wipe_tower off"); + } + CHECK(trace.size() == golden.size()); +} + // max_layer_height can be shorter than the extruder count (normalization sizes it to the // filament count under single_extruder_multi_material). calc_max_layer_height() in ToolOrdering // indexed it per-nozzle and read past the end. Shortened directly here to isolate that read; @@ -104,3 +714,4 @@ TEST_CASE("Multi-extruder slice stays in bounds with a short max_layer_height", init_and_process_print({ cube(20) }, print, config); REQUIRE_FALSE(print.objects().front()->layers().empty()); } + diff --git a/tests/fff_print/test_perimeters.cpp b/tests/fff_print/test_perimeters.cpp new file mode 100644 index 0000000000..a98877ad2f --- /dev/null +++ b/tests/fff_print/test_perimeters.cpp @@ -0,0 +1,257 @@ +#include + +#include "libslic3r/ExtrusionEntity.hpp" +#include "libslic3r/ExtrusionEntityCollection.hpp" +#include "libslic3r/Layer.hpp" +#include "libslic3r/Print.hpp" + +#include +#include +#include + +#include "test_helpers.hpp" + +using namespace Slic3r; +using namespace Slic3r::Test; + +namespace { + +// The layer at this Z is the last one of the base, so its top surface is the ledge. +const double ledge_z = 5.0; + +// The first layer, at initial_layer_print_height. +const double first_layer_z = 0.2; + +// TestMesh::step scaled 3x in X/Y: a 60x60x5 base carrying a 54x54 column up to z=10, leaving a 3mm +// top ledge around a feature that keeps rising. That is the geometry both only_one_wall_top and the +// top surface expansion act on. The ledge has to stay wider than the wall band plus two top-infill +// lines, or the expansion discards it as a sliver and the tests below assert nothing. +TriangleMesh step_with_ledge() +{ + TriangleMesh m = Slic3r::Test::mesh(TestMesh::step); + m.scale(Vec3f(3.f, 3.f, 1.f)); + return m; +} + +// Every setting the assertions depend on, so none of them rests on a default. +DynamicPrintConfig base_config(const char *wall_generator) +{ + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "wall_generator", wall_generator }, + { "layer_height", 0.2 }, // puts a layer boundary exactly on ledge_z + { "initial_layer_print_height", 0.2 }, + { "wall_loops", 3 }, + { "sparse_infill_density", "15%" }, + { "top_shell_layers", 3 }, + { "bottom_shell_layers", 3 }, + { "top_surface_density", "100%" }, + { "top_surface_expansion", 0.0 }, + { "only_one_wall_top", false }, + { "only_one_wall_first_layer", false }, + // Do not let the one-wall threshold discard the 3mm ledge before the feature sees it. + { "min_width_top_surface", 0.0 }, + }); + return config; +} + +double collection_length(const ExtrusionEntityCollection &coll) +{ + double len = 0.; + for (const ExtrusionEntity *entity : coll.flatten().entities) + if (! entity->is_collection()) + len += entity->length(); + return len; +} + +// Extruded length per layer. Two slices are compared through this rather than through their G-code, +// because the G-code carries a config block that differs whenever any setting differs. +struct SliceLengths { + std::vector perimeters; + std::vector fills; +}; + +SliceLengths slice_lengths(const Print &print) +{ + SliceLengths out; + for (const Layer *layer : print.objects().front()->layers()) { + double perimeters = 0., fills = 0.; + for (const LayerRegion *region : layer->regions()) { + perimeters += collection_length(region->perimeters); + fills += collection_length(region->fills); + } + out.perimeters.push_back(perimeters); + out.fills.push_back(fills); + } + return out; +} + +double perimeter_length_at(const Print &print, double print_z) +{ + for (const Layer *layer : print.objects().front()->layers()) + if (std::abs(layer->print_z - print_z) < 1e-4) { + double len = 0.; + for (const LayerRegion *region : layer->regions()) + len += collection_length(region->perimeters); + return len; + } + return 0.; +} + +// Largest per-layer difference between two series; a negative result means they are not comparable. +double max_difference(const std::vector &a, const std::vector &b) +{ + if (a.size() != b.size() || a.empty()) + return -1.; + double worst = 0.; + for (size_t i = 0; i < a.size(); ++ i) + worst = std::max(worst, std::abs(a[i] - b[i])); + return worst; +} + +} // namespace + +// The expansion only retypes area as top solid infill, so it can do nothing where there is no top +// fill to begin with: zero top shell layers retypes the top surfaces as internal, and a top surface +// density of 0% leaves the top layer with walls only. The last section is the control - the same +// expansion on the same model does change the slice once a top fill exists - without which the two +// equality checks above it would hold for an unrelated reason. +TEST_CASE("Top surface expansion only acts where there is a top fill", "[Perimeters]") +{ + const char *wall_generator = GENERATE("classic", "arachne"); + CAPTURE(wall_generator); + + auto lengths_for = [wall_generator](int top_shell_layers, const char *top_surface_density, double expansion) { + DynamicPrintConfig config = base_config(wall_generator); + config.set_deserialize_strict({ + { "top_shell_layers", top_shell_layers }, + { "top_surface_density", top_surface_density }, + { "top_surface_expansion", expansion }, + }); + Print print; + init_and_process_print({ step_with_ledge() }, print, config); + REQUIRE_FALSE(print.objects().empty()); + return slice_lengths(print); + }; + + SECTION("no top shell layers") { + const SliceLengths off = lengths_for(0, "100%", 0.0); + const SliceLengths on = lengths_for(0, "100%", 2.0); + REQUIRE(off.perimeters.size() == on.perimeters.size()); + CHECK_THAT(max_difference(off.perimeters, on.perimeters), Catch::Matchers::WithinAbs(0., 1.0)); + CHECK_THAT(max_difference(off.fills, on.fills), Catch::Matchers::WithinAbs(0., 1.0)); + } + + SECTION("zero top surface density") { + const SliceLengths off = lengths_for(3, "0%", 0.0); + const SliceLengths on = lengths_for(3, "0%", 2.0); + REQUIRE(off.perimeters.size() == on.perimeters.size()); + CHECK_THAT(max_difference(off.perimeters, on.perimeters), Catch::Matchers::WithinAbs(0., 1.0)); + CHECK_THAT(max_difference(off.fills, on.fills), Catch::Matchers::WithinAbs(0., 1.0)); + } + + SECTION("with a top fill the same expansion does change the slice") { + const SliceLengths off = lengths_for(3, "100%", 0.0); + const SliceLengths on = lengths_for(3, "100%", 2.0); + REQUIRE(off.fills.size() == on.fills.size()); + CHECK(max_difference(off.fills, on.fills) > scale_(0.5)); + } +} + +// With no top shell the top surfaces are retyped as internal, so the top surface density has nothing +// left to control: there is no top fill, and only_one_wall_top - the one route from the density to the +// perimeters - is itself switched off for want of a top surface to act on. +TEST_CASE("Top surface density does not affect a slice without a top shell", "[Perimeters]") +{ + const char *wall_generator = GENERATE("classic", "arachne"); + CAPTURE(wall_generator); + + auto lengths_for = [wall_generator](const char *top_surface_density) { + DynamicPrintConfig config = base_config(wall_generator); + config.set_deserialize_strict({ + { "top_shell_layers", 0 }, + { "only_one_wall_top", true }, + { "top_surface_density", top_surface_density }, + }); + Print print; + init_and_process_print({ step_with_ledge() }, print, config); + REQUIRE_FALSE(print.objects().empty()); + return slice_lengths(print); + }; + + const SliceLengths solid = lengths_for("100%"); + const SliceLengths none = lengths_for("0%"); + REQUIRE(solid.perimeters.size() == none.perimeters.size()); + CHECK_THAT(max_difference(solid.perimeters, none.perimeters), Catch::Matchers::WithinAbs(0., 1.0)); + CHECK_THAT(max_difference(solid.fills, none.fills), Catch::Matchers::WithinAbs(0., 1.0)); +} + +// On the ledge layer the inner walls are given up to the top fill, so that layer loses wall length. +// The handover needs a top fill that reaches the freed space: at a top surface density of 0% there is +// no top fill at all, and without top_surface_expansion the fill never grows over the walls. Either +// way the feature still runs, through the original generation, which keeps the inner walls up to the +// top boundary - putting that layer back between the plain and the one-wall slice. +TEST_CASE("Only one wall on top surfaces drops inner walls only where a top fill replaces them", "[Perimeters]") +{ + const char *wall_generator = GENERATE("classic", "arachne"); + CAPTURE(wall_generator); + + auto ledge_perimeters_for = [wall_generator](bool only_one_wall_top, const char *top_surface_density, double expansion) { + DynamicPrintConfig config = base_config(wall_generator); + config.set_deserialize_strict({ + { "only_one_wall_top", only_one_wall_top }, + { "top_surface_density", top_surface_density }, + { "top_surface_expansion", expansion }, + }); + Print print; + init_and_process_print({ step_with_ledge() }, print, config); + REQUIRE_FALSE(print.objects().empty()); + return perimeter_length_at(print, ledge_z); + }; + + const double plain = ledge_perimeters_for(false, "100%", 2.0); + const double one_wall = ledge_perimeters_for(true, "100%", 2.0); + const double one_wall_no_fill = ledge_perimeters_for(true, "0%", 2.0); + const double one_wall_no_expand = ledge_perimeters_for(true, "100%", 0.0); + + REQUIRE(plain > 0.); + CHECK(one_wall < plain); + // Both fall back to the original generation, which cuts the walls back to the top boundary but not past it. + CHECK(one_wall_no_fill > one_wall); + CHECK(one_wall_no_fill < plain); + CHECK(one_wall_no_expand > one_wall); + CHECK(one_wall_no_expand < plain); +} + +// The bottom counterpart: the first layer is thinned to a single wall only where a bottom shell fills the +// space behind it. With no bottom shell layers the bottom surfaces are retyped as internal, so that wall +// would ring sparse infill on the bed - the option is switched off instead, and the GUI hides it in that +// state so a profile that left it enabled cannot act behind a hidden checkbox. +TEST_CASE("Only one wall on the first layer needs a bottom shell", "[Perimeters]") +{ + const char *wall_generator = GENERATE("classic", "arachne"); + CAPTURE(wall_generator); + + auto first_layer_perimeters_for = [wall_generator](bool only_one_wall_first_layer, int bottom_shell_layers) { + DynamicPrintConfig config = base_config(wall_generator); + config.set_deserialize_strict({ + { "only_one_wall_first_layer", only_one_wall_first_layer }, + { "bottom_shell_layers", bottom_shell_layers }, + }); + Print print; + init_and_process_print({ step_with_ledge() }, print, config); + REQUIRE_FALSE(print.objects().empty()); + return perimeter_length_at(print, first_layer_z); + }; + + const double plain = first_layer_perimeters_for(false, 3); + const double one_wall = first_layer_perimeters_for(true, 3); + // Both at zero bottom shell layers, so everything else that setting changes cancels out between them. + const double plain_no_shell = first_layer_perimeters_for(false, 0); + const double one_wall_no_shell = first_layer_perimeters_for(true, 0); + + REQUIRE(plain > 0.); + CHECK(one_wall < plain); + // No bottom shell: the option is inert, down to the same walls an unchecked box gives. + CHECK_THAT(one_wall_no_shell, Catch::Matchers::WithinAbs(plain_no_shell, 1.0)); +} diff --git a/tests/fff_print/test_print.cpp b/tests/fff_print/test_print.cpp index 9cb085f78b..6bff945fc3 100644 --- a/tests/fff_print/test_print.cpp +++ b/tests/fff_print/test_print.cpp @@ -338,6 +338,22 @@ TEST_CASE("G-code lists the resolved extrusion-width settings", "[Print]") CHECK(with_first_layer.find("; first layer extrusion width") != std::string::npos); } +// gcode_skip_config_block suppresses the resolved-settings block while leaving the +// header and executable blocks intact. +TEST_CASE("gcode_skip_config_block omits the resolved-settings comment block", "[Print]") +{ + const std::string gcode = slice({ cube(20) }, { + { "gcode_skip_config_block", true }, + { "gcode_comments", true }, + }); + CHECK(gcode.find("; CONFIG_BLOCK_START") == std::string::npos); + CHECK(gcode.find("; CONFIG_BLOCK_END") == std::string::npos); + CHECK(gcode.find("; layer_height =") == std::string::npos); + CHECK(gcode.find("; fill_density =") == std::string::npos); + CHECK(gcode.find("; HEADER_BLOCK_START") != std::string::npos); + CHECK(gcode.find("; EXECUTABLE_BLOCK_START") != std::string::npos); +} + // Custom G-code templates substitute placeholders during export. TEST_CASE("Custom G-code placeholders are substituted", "[Print]") { diff --git a/tests/fff_print/test_skirt_brim.cpp b/tests/fff_print/test_skirt_brim.cpp index d957a4c649..17a79a7828 100644 --- a/tests/fff_print/test_skirt_brim.cpp +++ b/tests/fff_print/test_skirt_brim.cpp @@ -4,6 +4,7 @@ #include "libslic3r/Config.hpp" #include "libslic3r/Geometry.hpp" #include "libslic3r/Geometry/ConvexHull.hpp" +#include "libslic3r/Layer.hpp" #include @@ -32,6 +33,30 @@ static size_t brim_loop_count(Print &print) return n; } +static bool brim_enters_first_layer_hole(Print &print) +{ + const PrintObject *object = print.get_object(0); + Polygons holes; + for (const ExPolygon &slice : object->layers().front()->lslices) + holes.insert(holes.end(), slice.holes.begin(), slice.holes.end()); + + const Vec3d plate_origin = print.get_plate_origin(); + Point shift = object->instances().front().shift_without_plate_offset(); + shift += Point(scaled(plate_origin.x()), scaled(plate_origin.y())); + for (Polygon &hole : holes) + hole.translate(shift); + + for (const auto &kv : print.get_brimMap()) { + Polylines brim_paths; + kv.second.collect_polylines(brim_paths); + for (const Polyline &path : brim_paths) + for (const Point &point : path.points) + if (contains(holes, point, false)) + return true; + } + return false; +} + // The span is skirt_height layers, or every layer when a draft shield is on (forced even at // height 0); per-object skirts are rejected in By object printing (no room between objects). TEST_CASE("Skirt is emitted once per layer it spans", "[SkirtBrim]") @@ -153,6 +178,24 @@ TEST_CASE("Object brims are generated per instance", "[SkirtBrim]") } } +TEST_CASE("Uncombined neighboring brims precede their respective objects", "[SkirtBrim]") +{ + Print print; + Model model; + place_two_cubes_apart(0, { + { "skirt_loops", 0 }, + { "brim_type", "outer_only" }, + { "brim_width", 5 }, + { "combine_brims", 0 }, + }, print, model); + print.process(); + + REQUIRE(print.skirt_brim_groups().size() == 1); + REQUIRE(print.skirt_brim_groups().front().brims.size() == 2); + CHECK(role_sequence(gcode(print), { "brim", "perimeter" }) == + std::vector{ "brim", "perimeter", "brim", "perimeter" }); +} + TEST_CASE("Combine brims merges neighboring object instances", "[SkirtBrim]") { Print print; @@ -207,6 +250,131 @@ TEST_CASE("Brim ears appear only at corners within the max angle", "[SkirtBrim]" } } +TEST_CASE("Outer-only brim ears stay out of model holes", "[SkirtBrim]") +{ + const bool outer_only = GENERATE(false, true); + DYNAMIC_SECTION("brim_ears_outer_only=" << outer_only) { + Print print; + init_and_process_print({ TestMesh::cube_with_concave_hole }, print, { + { "skirt_loops", 0 }, + { "brim_type", "brim_ears" }, + { "brim_width", 2 }, + { "brim_ears_max_angle", 125 }, + { "brim_ears_detection_length", 0 }, + { "brim_ears_outer_only", outer_only }, + { "initial_layer_line_width", 0.5 }, + }); + + REQUIRE(brim_loop_count(print) > 0); + CHECK(brim_enters_first_layer_hole(print) != outer_only); + } +} + +TEST_CASE("Painted brim ear radius controls sliced size", "[SkirtBrim]") +{ + constexpr double ear_radius = 10.0; + + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "skirt_loops", 0 }, + { "brim_type", "painted" }, + { "brim_width", 15 }, + { "brim_object_gap", 0.1 }, + { "brim_ears_outer_only", true }, + { "initial_layer_line_width", 0.5 }, + }); + + Print print; + Model model; + init_print({ cube(20) }, print, model, config); + print.process(); + + const PrintObject *object = print.get_object(0); + REQUIRE(!object->layers().front()->lslices.empty()); + const Point ear_center = object->layers().front()->lslices.front().contour.points.front(); + + Transform3d model_transform = model.objects.front()->instances.front()->get_transformation().get_matrix_no_offset(); + const Point ¢er_offset = object->center_offset(); + model_transform = model_transform.pretranslate( + Vec3d(-unscale(center_offset.x()), -unscale(center_offset.y()), 0)); + Vec3d model_pos = model_transform.inverse() * + Vec3d(unscale(ear_center.x()), unscale(ear_center.y()), 0); + model_pos.z() = model.objects.front()->raw_mesh_bounding_box().min.z() - 0.0001; + model.objects.front()->brim_points = { + BrimPoint(model_pos.cast(), float(ear_radius)), + }; + + print.apply(model, config); + print.process(); + + const Vec3d plate_origin = print.get_plate_origin(); + Point path_center = ear_center + object->instances().front().shift_without_plate_offset(); + path_center += Point(scaled(plate_origin.x()), scaled(plate_origin.y())); + + double max_path_radius = 0.0; + for (const auto &kv : print.get_brimMap()) { + Polylines brim_paths; + kv.second.collect_polylines(brim_paths); + for (const Polyline &path : brim_paths) + for (const Point &point : path.points) + max_path_radius = std::max(max_path_radius, unscale((point - path_center).cast().norm())); + } + + REQUIRE(max_path_radius > 0.0); + INFO("Outermost painted-ear path radius: " << max_path_radius << " mm"); + CHECK(max_path_radius > ear_radius - 0.5); + CHECK(max_path_radius < ear_radius); +} + +TEST_CASE("Outer-only painted brim ears stay out of model holes", "[SkirtBrim]") +{ + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "skirt_loops", 0 }, + { "brim_type", "painted" }, + { "brim_ears_outer_only", true }, + { "initial_layer_line_width", 0.5 }, + }); + + Print print; + Model model; + init_print({ TestMesh::cube_with_concave_hole }, print, model, config); + + // Slice once to obtain exact outer and inner contour points in print + // coordinates, then express them in the model coordinates painted ears store. + print.process(); + const PrintObject *object = print.get_object(0); + REQUIRE(!object->layers().front()->lslices.empty()); + REQUIRE(!object->layers().front()->lslices.front().holes.empty()); + + Transform3d model_transform = model.objects.front()->instances.front()->get_transformation().get_matrix_no_offset(); + const Point ¢er_offset = object->center_offset(); + model_transform = model_transform.pretranslate( + Vec3d(-unscale(center_offset.x()), -unscale(center_offset.y()), 0)); + const double bottom_z = model.objects.front()->raw_mesh_bounding_box().min.z() - 0.0001; + auto painted_point = [&model_transform, bottom_z](const Point &point) { + Vec3d model_pos = model_transform.inverse() * + Vec3d(unscale(point.x()), unscale(point.y()), 0); + model_pos.z() = bottom_z; + return BrimPoint(model_pos.cast(), 3.f); + }; + + const ExPolygon &first_slice = object->layers().front()->lslices.front(); + Polygon inner_contour = first_slice.holes.front(); + inner_contour.reverse(); + const Points inner_ear_points = inner_contour.concave_points(55. * PI / 180.); + REQUIRE(!inner_ear_points.empty()); + model.objects.front()->brim_points = { + painted_point(first_slice.contour.points.front()), + painted_point(inner_ear_points.front()), + }; + print.apply(model, config); + print.process(); + + REQUIRE(brim_loop_count(print) > 0); + CHECK_FALSE(brim_enters_first_layer_hole(print)); +} + SCENARIO("Skirt has the configured number of loops", "[SkirtBrim]") { GIVEN("20mm cube and default config") { WHEN("skirt_loops is set to 2") { diff --git a/tests/fff_print/test_wipe_tower.cpp b/tests/fff_print/test_wipe_tower.cpp new file mode 100644 index 0000000000..2bd7ac4189 --- /dev/null +++ b/tests/fff_print/test_wipe_tower.cpp @@ -0,0 +1,184 @@ +#include + +#include +#include + +#include "libslic3r/BoundingBox.hpp" +#include "libslic3r/ClipperUtils.hpp" +#include "libslic3r/GCode/GCodeProcessor.hpp" +#include "libslic3r/GCode/WipeTower.hpp" +#include "libslic3r/PrintConfig.hpp" + +#include "test_helpers.hpp" + +using namespace Slic3r; +using namespace Slic3r::Test; + +// Taken from the config enum map rather than hand-listed, so a flavor added to GCodeFlavor later +// is covered here without editing this file. +static std::vector non_klipper_flavors() +{ + std::vector flavors; + for (const auto &[name, value] : ConfigOptionEnum::get_enum_values()) + if (GCodeFlavor(value) != gcfKlipper) + flavors.push_back(GCodeFlavor(value)); + return flavors; +} + +static std::string flavor_name(GCodeFlavor flavor) +{ + return ConfigOptionEnum::get_enum_names()[int(flavor)]; +} + +TEST_CASE("Klipper flushes the wipe tower planner queue with M400", "[WipeTower]") +{ + CHECK(std::string(flush_planner_queue_command(gcfKlipper)) == "M400\n"); +} + +TEST_CASE("Other flavors flush the wipe tower planner queue with a zero dwell", "[WipeTower]") +{ + const GCodeFlavor flavor = GENERATE(from_range(non_klipper_flavors())); + INFO("gcode flavor: " << flavor_name(flavor)); + CHECK(std::string(flush_planner_queue_command(flavor)) == "G4 S0\n"); +} + +// 1.5s is exactly representable as a float, so neither form can drift when rounded. +TEST_CASE("Klipper waits in the wipe tower with a millisecond dwell", "[WipeTower]") +{ + CHECK(wait_command(gcfKlipper, 1.5f) == "G4 P1500\n"); +} + +TEST_CASE("Other flavors wait in the wipe tower with a seconds dwell", "[WipeTower]") +{ + const GCodeFlavor flavor = GENERATE(from_range(non_klipper_flavors())); + INFO("gcode flavor: " << flavor_name(flavor)); + CHECK(wait_command(flavor, 1.5f) == "G4 S1.500\n"); +} + +// The prime tower is validated against the real printable outline, so the placement clamps have to +// agree with it wherever that outline is not a rectangle. A regular hexagon inscribed in a 200mm +// circle stands in for the shipped delta beds. +TEST_CASE("The wipe tower placement clamp follows a non-rectangular bed outline", "[WipeTower]") +{ + const coord_t margin = scaled(1.); + auto square_at = [](double x, double y, double side) { + return BoundingBox(Point::new_scale(x, y), Point::new_scale(x + side, y + side)); + }; + // Does the footprint, padded by pad, sit inside the outline once the returned move is applied? + auto lands_inside = [](BoundingBox box, const Polygons &bed, const Vec2f &move, coord_t pad) { + box.translate(Point::new_scale(move.x(), move.y())); + return diff(Polygons{box.inflated(pad).polygon()}, bed).empty(); + }; + + const Polygons hex_bed{make_circle_num_segments(scaled(100.), 6)}; + const Polygons square_bed{Polygon::new_scale(Pointfs{{0., 0.}, {200., 0.}, {200., 200.}, {0., 200.}})}; + + SECTION("a rectangular bed is left to the bounding box clamp") { + const Vec2f move = WipeTower::move_box_inside_polygon(square_at(50., 50., 30.), square_bed, margin); + CHECK_THAT(move.x(), Catch::Matchers::WithinAbs(0., 1e-6)); + CHECK_THAT(move.y(), Catch::Matchers::WithinAbs(0., 1e-6)); + } + + // Dragging the tower off one edge may not pull it away from the other, or it would jump out from + // under the cursor instead of sliding along the edge. + SECTION("only the violated axis is clamped") { + const Vec2f move = WipeTower::move_box_inside_polygon(square_at(185., 50., 30.), square_bed, margin); + CHECK_THAT(move.x(), Catch::Matchers::WithinAbs(-16., 1e-6)); + CHECK_THAT(move.y(), Catch::Matchers::WithinAbs(0., 1e-6)); + } + + SECTION("a footprint already inside the outline is left alone") { + const Vec2f move = WipeTower::move_box_inside_polygon(square_at(-15., -15., 30.), hex_bed, margin); + CHECK_THAT(move.x(), Catch::Matchers::WithinAbs(0., 1e-6)); + CHECK_THAT(move.y(), Catch::Matchers::WithinAbs(0., 1e-6)); + } + + SECTION("a footprint in the bounding box corner is pulled onto the bed") { + const BoundingBox box = square_at(55., 50., 30.); + REQUIRE_FALSE(lands_inside(box, hex_bed, Vec2f::Zero(), margin)); // in the bbox, off the hexagon + CHECK(lands_inside(box, hex_bed, WipeTower::move_box_inside_polygon(box, hex_bed, margin), margin)); + } + + // An unresolved auto brim width reaches the drag clamp as a negative margin. Padding by it would + // shrink the footprint and hand back a position the slice validation still rejects. + SECTION("a negative margin still lands the footprint inside the outline") { + const BoundingBox box = square_at(55., 50., 30.); + const coord_t brim = scaled(-0.5); + CHECK(lands_inside(box, hex_bed, WipeTower::move_box_inside_polygon(box, hex_bed, brim), 0)); + } + + SECTION("a footprint too large for the bed is left alone") { + const Vec2f move = WipeTower::move_box_inside_polygon(square_at(-200., -200., 400.), hex_bed, margin); + CHECK_THAT(move.x(), Catch::Matchers::WithinAbs(0., 1e-6)); + CHECK_THAT(move.y(), Catch::Matchers::WithinAbs(0., 1e-6)); + } +} + +// The cases above only exercise the helpers in isolation. The one below slices a real +// two-filament print, so it also covers the binding constraint of both changes: that the +// configured `gcode_flavor` reaches the wipe tower writer and lands in the exported G-code. + +// The G-code inside each WIPE_TOWER_START/WIPE_TOWER_END pair, concatenated, so an M400 emitted +// outside the tower (e.g. GCodeProcessor's pre-heat injector) cannot create a false match. +static std::string wipe_tower_regions(const std::string &gcode) +{ + const std::string &start_tag = GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_Start); + const std::string &end_tag = GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Wipe_Tower_End); + std::string regions; + size_t pos = 0; + while (true) { + size_t start = gcode.find(start_tag, pos); + if (start == std::string::npos) + break; + size_t end = gcode.find(end_tag, start); + if (end == std::string::npos) + break; + regions.append(gcode, start, end - start); + pos = end + 1; + } + return regions; +} + +// A per-layer toolchange between the wall and infill filaments, same shape as +// test_multifilament.cpp's "Each feature prints with its assigned filament", so the wipe tower +// runs its toolchange path (and so `flush_planner_queue()`) on every layer. +static DynamicPrintConfig wipe_tower_toolchange_config(const std::string &gcode_flavor) +{ + return multifilament_config(2, { + { "sparse_infill_filament_id", 1 }, + { "internal_solid_filament_id", 1 }, + { "top_surface_filament_id", 1 }, + { "bottom_surface_filament_id", 1 }, + { "outer_wall_filament_id", 2 }, + { "inner_wall_filament_id", 2 }, + { "enable_prime_tower", true }, + { "layer_height", 0.3 }, + { "gcode_flavor", gcode_flavor }, + }); +} + +// Slices a 10mm cube under `config`. Not plain Test::slice: a brand-new Print's first `apply()` +// counts one filament in use, and DynamicPrintConfig::normalize_fdm_2's single-filament rule then +// clears `enable_prime_tower`. A second apply, once init_print's regions have settled, sees both +// filaments and the tower survives. +static std::string slice_with_prime_tower(const DynamicPrintConfig &config) +{ + Print print; + Model model; + init_print({ cube(10) }, print, model, config); + print.apply(model, config); + return gcode(print); +} + +TEST_CASE("The wipe tower's toolchange planner flush follows the gcode flavor", "[WipeTower]") +{ + auto [flavor, expected, unexpected] = GENERATE(table({ + { "klipper", "M400", "G4 S0" }, + { "marlin", "G4 S0", "M400" } })); + DYNAMIC_SECTION(flavor) { + const std::string tower = wipe_tower_regions(slice_with_prime_tower(wipe_tower_toolchange_config(flavor))); + REQUIRE_FALSE(tower.empty()); + CHECK_THAT(tower, Catch::Matchers::ContainsSubstring(expected)); + CHECK_THAT(tower, !Catch::Matchers::ContainsSubstring(unexpected)); + } +} diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index 7524c27479..1ad299473c 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -18,6 +18,7 @@ add_executable(${_TEST_NAME}_tests test_preset_setting_id.cpp test_preset_diff.cpp test_elephant_foot_compensation.cpp + test_fill_plane_path.cpp test_geometry.cpp test_multimaterial_segmentation.cpp test_placeholder_parser.cpp @@ -28,6 +29,7 @@ add_executable(${_TEST_NAME}_tests test_stl.cpp test_meshboolean.cpp test_marchingsquares.cpp + test_model.cpp test_utils.cpp test_timeutils.cpp test_voronoi.cpp diff --git a/tests/libslic3r/test_3mf.cpp b/tests/libslic3r/test_3mf.cpp index 1a082cd8e0..c839149f5f 100644 --- a/tests/libslic3r/test_3mf.cpp +++ b/tests/libslic3r/test_3mf.cpp @@ -155,10 +155,8 @@ SCENARIO("H2C multi-nozzle .3mf round-trip", "[3mf][MultiNozzle]") { // store_bbs_3mf stages Metadata/project_settings.config through the model's backup path; // point it at a writable temp dir (the default lives under a read-only root in CI). - std::string backup_dir = - (boost::filesystem::temp_directory_path() / boost::filesystem::unique_path("orca_mn_%%%%%%%%")).string(); - boost::filesystem::create_directories(backup_dir); - model.set_backup_path(backup_dir); + ScopedTemporaryDir backup_dir("orca_mn"); + model.set_backup_path(backup_dir.string()); // Global (printer) config: give nozzle_volume_type a non-default value so the slice_info // read-back is a meaningful assertion (High Flow == 1). @@ -180,7 +178,8 @@ SCENARIO("H2C multi-nozzle .3mf round-trip", "[3mf][MultiNozzle]") { plate->config.set_key_value("enable_filament_dynamic_map", new ConfigOptionBool(true)); WHEN("stored to and reloaded from a .3mf") { - std::string test_file = std::string(TEST_DATA_DIR) + "/test_3mf/mn_roundtrip.3mf"; + ScopedTemporaryFile temp(".3mf"); + const std::string test_file = temp.string(); StoreParams store_params; store_params.path = test_file.c_str(); @@ -202,8 +201,6 @@ SCENARIO("H2C multi-nozzle .3mf round-trip", "[3mf][MultiNozzle]") { bool loaded = load_bbs_3mf(test_file.c_str(), &dst_config, &ctxt, &dst_model, &dst_plates, &project_presets, &is_bbl_3mf, &is_orca_3mf, &file_version, nullptr, LoadStrategy::LoadModel | LoadStrategy::LoadConfig); - boost::filesystem::remove(test_file); - THEN("every multi-nozzle key round-trips as expected") { REQUIRE(loaded); REQUIRE(dst_plates.size() >= 1); @@ -233,7 +230,6 @@ SCENARIO("H2C multi-nozzle .3mf round-trip", "[3mf][MultiNozzle]") { release_PlateData_list(dst_plates); } delete plate; // store_bbs_3mf does not take ownership of the source plate - boost::filesystem::remove_all(backup_dir); } } @@ -250,10 +246,8 @@ SCENARIO("Non-standard nozzle diameter survives .3mf save on a single-nozzle pri REQUIRE(load_stl(src_file.c_str(), &model)); model.add_default_instances(); - std::string backup_dir = - (boost::filesystem::temp_directory_path() / boost::filesystem::unique_path("orca_nd_%%%%%%%%")).string(); - boost::filesystem::create_directories(backup_dir); - model.set_backup_path(backup_dir); + ScopedTemporaryDir backup_dir("orca_nd"); + model.set_backup_path(backup_dir.string()); // Single extruder with a non-standard 0.5 mm nozzle; extruder_max_nozzle_count stays at its // default (no nozzle cluster), so the writer must emit the exact config diameter. @@ -276,7 +270,8 @@ SCENARIO("Non-standard nozzle diameter survives .3mf save on a single-nozzle pri plate->slice_filaments_info.push_back(fi); WHEN("stored to and reloaded from a .3mf") { - std::string test_file = std::string(TEST_DATA_DIR) + "/test_3mf/nd_roundtrip.3mf"; + ScopedTemporaryFile temp(".3mf"); + const std::string test_file = temp.string(); StoreParams store_params; store_params.path = test_file.c_str(); @@ -296,8 +291,6 @@ SCENARIO("Non-standard nozzle diameter survives .3mf save on a single-nozzle pri bool loaded = load_bbs_3mf(test_file.c_str(), &dst_config, &ctxt, &dst_model, &dst_plates, &project_presets, &is_bbl_3mf, &is_orca_3mf, &file_version, nullptr, LoadStrategy::LoadModel | LoadStrategy::LoadConfig); - boost::filesystem::remove(test_file); - THEN("the saved nozzle diameter is the exact 0.5, not the rounded 0.4") { REQUIRE(loaded); REQUIRE(dst_plates.size() >= 1); @@ -315,7 +308,6 @@ SCENARIO("Non-standard nozzle diameter survives .3mf save on a single-nozzle pri release_PlateData_list(dst_plates); } delete plate; // store_bbs_3mf does not take ownership of the source plate - boost::filesystem::remove_all(backup_dir); } } @@ -436,10 +428,8 @@ SCENARIO("Nozzle-group metadata .3mf round-trip", "[3mf][MultiNozzle]") { REQUIRE(load_stl(src_file.c_str(), &model)); model.add_default_instances(); - std::string backup_dir = - (boost::filesystem::temp_directory_path() / boost::filesystem::unique_path("orca_ng_%%%%%%%%")).string(); - boost::filesystem::create_directories(backup_dir); - model.set_backup_path(backup_dir); + ScopedTemporaryDir backup_dir("orca_ng"); + model.set_backup_path(backup_dir.string()); DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); @@ -459,7 +449,8 @@ SCENARIO("Nozzle-group metadata .3mf round-trip", "[3mf][MultiNozzle]") { plate->config.set_key_value("filament_map", new ConfigOptionInts({ 1, 2, 1 })); WHEN("stored to and reloaded from a .3mf") { - std::string test_file = std::string(TEST_DATA_DIR) + "/test_3mf/ng_roundtrip.3mf"; + ScopedTemporaryFile temp(".3mf"); + const std::string test_file = temp.string(); StoreParams store_params; store_params.path = test_file.c_str(); @@ -479,8 +470,6 @@ SCENARIO("Nozzle-group metadata .3mf round-trip", "[3mf][MultiNozzle]") { bool loaded = load_bbs_3mf(test_file.c_str(), &dst_config, &ctxt, &dst_model, &dst_plates, &project_presets, &is_bbl_3mf, &is_orca_3mf, &file_version, nullptr, LoadStrategy::LoadModel | LoadStrategy::LoadConfig); - boost::filesystem::remove(test_file); - THEN("the tags round-trip into the loaded plate's nozzles_info") { REQUIRE(loaded); REQUIRE(dst_plates.size() >= 1); @@ -506,67 +495,5 @@ SCENARIO("Nozzle-group metadata .3mf round-trip", "[3mf][MultiNozzle]") { release_PlateData_list(dst_plates); } delete plate; - boost::filesystem::remove_all(backup_dir); - } -} - -SCENARIO("2D convex hull of sinking object", "[3mf][.]") { - GIVEN("model") { - // load a model - Model model; - std::string src_file = std::string(TEST_DATA_DIR) + "/test_3mf/Prusa.stl"; - REQUIRE(load_stl(src_file.c_str(), &model)); - model.add_default_instances(); - - WHEN("model is rotated, scaled and set as sinking") { - ModelObject* object = model.objects[0]; - object->center_around_origin(false); - - // This outputs the same exact data as the Prusaslicer test - write_debug_stl("3mf/orca.ascii", object->volumes[0]->mesh()); - - // set instance's attitude so that it is rotated, scaled (and sinking? how is it sinking? the rotation? does it matter if it's sinking?) - ModelInstance* instance = object->instances[0]; - instance->set_rotation(X, -M_PI / 4.0); - instance->set_offset(Vec3d::Zero()); - instance->set_scaling_factor({ 2.0, 2.0, 2.0 }); - - // calculate 2D convex hull - auto trafo = instance->get_transformation().get_matrix(); - - // This matrix is the same exact matrix as the Prusaslicer test - CAPTURE(trafo); - Polygon hull_2d = object->convex_hull_2d(trafo); - - // But we get different hull_2d.points here (and somehow decimal numbers despite being int64_t values, but that's probabaly printing configuration somewhere -- Prusaslicer's prints out with newlines between the X&Y and not one between coordinates, which is about the worse possible output). - // I think it's something to do with PrusaSlicer ignoring everything under the Z plane, which makes sense from the results. - // See the comments added to ModelObject::convex_hull_2d for more information. - - // verify result - Points result = { - { -91501496, -15914144 }, - { 91501496, -15914144 }, - { 91501496, 4243 }, - { 78229680, 4246883 }, - { 56898100, 4246883 }, - { -85501496, 4242641 }, - { -91501496, 4243 } - }; - - THEN("2D convex hull should match with reference") { - // Allow 1um error due to floating point rounding. - bool res = hull_2d.points.size() == result.size(); - if (res) { - for (size_t i = 0; i < result.size(); ++ i) { - const Point &p1 = result[i]; - const Point &p2 = hull_2d.points[i]; - CHECK((std::abs(p1.x() - p2.x()) > 1 || std::abs(p1.y() - p2.y()) > 1)); - } - } - - CAPTURE(hull_2d.points); - REQUIRE(res); - } - } } } diff --git a/tests/libslic3r/test_config.cpp b/tests/libslic3r/test_config.cpp index f256ae3442..12b161322d 100644 --- a/tests/libslic3r/test_config.cpp +++ b/tests/libslic3r/test_config.cpp @@ -4,6 +4,8 @@ #include "libslic3r/PrintConfigConstants.hpp" #include "libslic3r/LocalesUtils.hpp" +#include "test_utils.hpp" + #include #include #include @@ -233,6 +235,56 @@ SCENARIO("Config ini load/save interface", "[Config]") { } } +TEST_CASE("Flush-volume warning predicate respects used filament transitions", "[Config][Regression]") +{ + const std::vector multipliers = {1.0}; + + SECTION("Single used filament does not trigger warning with zero transition entries") + { + const std::vector matrix = { + 0.0, 0.0, + 0.0, 0.0 + }; + const std::vector used_filaments = {1}; + + REQUIRE_FALSE(has_zero_flush_volume_for_used_filaments(matrix, multipliers, used_filaments)); + } + + SECTION("Two used filaments trigger warning when transition flush entry is zero") + { + const std::vector matrix = { + 0.0, 0.0, + 0.0, 0.0 + }; + const std::vector used_filaments = {1, 2}; + + REQUIRE(has_zero_flush_volume_for_used_filaments(matrix, multipliers, used_filaments)); + } + + SECTION("Two used filaments do not trigger warning when transitions are non-zero") + { + const std::vector matrix = { + 0.0, 280.0, + 280.0, 0.0 + }; + const std::vector used_filaments = {1, 2}; + + REQUIRE_FALSE(has_zero_flush_volume_for_used_filaments(matrix, multipliers, used_filaments)); + } + + SECTION("Zero multiplier still triggers warning when multiple filaments are used") + { + const std::vector matrix = { + 0.0, 280.0, + 280.0, 0.0 + }; + const std::vector zero_multiplier = {0.0}; + const std::vector used_filaments = {1, 2}; + + REQUIRE(has_zero_flush_volume_for_used_filaments(matrix, zero_multiplier, used_filaments)); + } +} + // TODO: https://github.com/SoftFever/OrcaSlicer/issues/11269 - Is this test still relevant? Delete if not. // It was failing so at least "nozzle_type" and "extruder_printable_area" could not be serialized // and an exception was thrown, but "nozzle_type" has been around for at least 3 months now. @@ -407,8 +459,7 @@ SCENARIO("update_diff_values_to_child_config tolerates legacy machine-limit vect // } TEST_CASE("save_to_json round-trips plugin capability references as strings", "[Config][plugins]") { - namespace fs = boost::filesystem; - const fs::path tmp = fs::temp_directory_path() / fs::unique_path("orca_plugins_%%%%-%%%%.json"); + ScopedTemporaryFile tmp(".json"); const std::vector refs = { "local_plugin;;inset", "cloud_plugin;550e8400-e29b-41d4-a716-446655440000;inset" @@ -435,8 +486,6 @@ TEST_CASE("save_to_json round-trips plugin capability references as strings", "[ REQUIRE(reloaded.load_from_json(tmp.string(), substitutions, true, key_values, reason) == 0); CHECK(reason.empty()); CHECK(reloaded.option("slicing_pipeline_plugin")->values == refs); - - fs::remove(tmp); } TEST_CASE("plugin capability references survive string-map serialization", "[Config][plugins]") { diff --git a/tests/libslic3r/test_config_variant_expansion.cpp b/tests/libslic3r/test_config_variant_expansion.cpp index 14675fd4dc..dd7de2af44 100644 --- a/tests/libslic3r/test_config_variant_expansion.cpp +++ b/tests/libslic3r/test_config_variant_expansion.cpp @@ -43,18 +43,33 @@ TEST_CASE("apply_override fills nil entries from the 0-based default index", "[C REQUIRE(resolved.values == std::vector({30., 42.})); } - SECTION("an index past the machine slots falls back to the first slot") { + SECTION("an index past the machine slots keeps the slot's own value") { std::vector slot_index{5, 0}; ConfigOptionFloats resolved(machine); REQUIRE(resolved.apply_override(&filament, slot_index)); REQUIRE(resolved.values == std::vector({10., 42.})); } - SECTION("a negative index (unresolved slot) falls back to the first slot") { - std::vector slot_index{-1, 0}; + SECTION("a negative index (unresolved slot) keeps the slot's own value") { + ConfigOptionFloatsNullable all_nil; + all_nil.values = {ConfigOptionFloatsNullable::nil_value(), ConfigOptionFloatsNullable::nil_value(), + ConfigOptionFloatsNullable::nil_value()}; + std::vector slot_index{2, -1, 0}; ConfigOptionFloats resolved(machine); - REQUIRE(resolved.apply_override(&filament, slot_index)); - REQUIRE(resolved.values == std::vector({10., 42.})); + REQUIRE(!resolved.apply_override(&all_nil, slot_index)); + REQUIRE(resolved.values == std::vector({30., 20., 10.})); + } + + SECTION("all-nil overrides keyed by unresolved slots leave the machine values intact") { + // The failed-lookup map a degenerate print_extruder_id used to produce; the negative + // slots must not collapse the machine array to its first value. + ConfigOptionFloats per_extruder({100., 70., 70., 70., 100.}); + ConfigOptionFloatsNullable all_nil; + all_nil.values.assign(5, ConfigOptionFloatsNullable::nil_value()); + std::vector slot_index{0, -1, -1, -1, 0}; + ConfigOptionFloats resolved(per_extruder); + REQUIRE(!resolved.apply_override(&all_nil, slot_index)); + REQUIRE(resolved.values == std::vector({100., 70., 70., 70., 100.})); } } @@ -272,6 +287,102 @@ TEST_CASE("update_values_to_printer_extruders expands one slot per (extruder x v } } +TEST_CASE("update_values_to_printer_extruders synthesizes degenerate process variant columns", "[Config]") +{ + // Non-BBL process presets and 3mf project configs keep the length-1 defaults for + // print_extruder_id/print_extruder_variant; only BBL system presets ship full-width columns. + auto add_degenerate_print_columns = [](DynamicPrintConfig &config) { + config.option("print_extruder_id", true)->values = {1}; + config.option("print_extruder_variant", true)->values = {"Direct Drive Standard"}; + config.option("outer_wall_speed", true)->values = {30.}; + }; + + SECTION("a single-column pair on a multi-extruder machine expands to one column per extruder") { + DynamicPrintConfig config; + config.option("extruder_type", true)->values = {etDirectDrive, etDirectDrive}; + config.option("nozzle_volume_type", true)->values = {nvtStandard, nvtStandard}; + config.option("extruder_variant_list", true)->values = {"Direct Drive Standard", "Direct Drive Standard"}; + add_degenerate_print_columns(config); + + std::vector> nozzle_volume_types; + int extruder_count = 2; + int count = config.get_extruder_nozzle_volume_count(extruder_count, nozzle_volume_types); + + std::vector variant_index = config.update_values_to_printer_extruders(config, extruder_count, count, nozzle_volume_types, + print_options_with_variant, "print_extruder_id", "print_extruder_variant"); + + REQUIRE(variant_index == std::vector({0, 1})); + REQUIRE(config.option("print_extruder_id")->values == std::vector({1, 2})); + REQUIRE(config.option("print_extruder_variant")->values == + std::vector({"Direct Drive Standard", "Direct Drive Standard"})); + // width-1 data arrays replicate their only column into every slot + REQUIRE(config.option("outer_wall_speed")->values == std::vector({30., 30.})); + } + + SECTION("a multi-variant list synthesizes one column per (extruder x variant)") { + DynamicPrintConfig config = make_hybrid_printer_config(); + add_degenerate_print_columns(config); + + std::vector> nozzle_volume_types; + int extruder_count = 2; + int count = config.get_extruder_nozzle_volume_count(extruder_count, nozzle_volume_types); + REQUIRE(count == 3); + + std::vector variant_index = config.update_values_to_printer_extruders(config, extruder_count, count, nozzle_volume_types, + print_options_with_variant, "print_extruder_id", "print_extruder_variant"); + + // same slot resolution as the explicit BBL-style 4-column layout + REQUIRE(variant_index == std::vector({0, 2, 3})); + REQUIRE(config.option("print_extruder_id")->values == std::vector({1, 2, 2})); + REQUIRE(config.option("print_extruder_variant")->values == + std::vector({"Direct Drive Standard", "Direct Drive Standard", "Direct Drive High Flow"})); + REQUIRE(config.option("outer_wall_speed")->values == std::vector({30., 30., 30.})); + } + + SECTION("a single-extruder single-column layout is not treated as degenerate") { + DynamicPrintConfig config; + config.option("extruder_type", true)->values = {etDirectDrive}; + config.option("nozzle_volume_type", true)->values = {nvtStandard}; + config.option("extruder_variant_list", true)->values = {"Direct Drive Standard"}; + add_degenerate_print_columns(config); + + std::vector> nozzle_volume_types; + int extruder_count = 1; + int count = config.get_extruder_nozzle_volume_count(extruder_count, nozzle_volume_types); + + config.update_values_to_printer_extruders(config, extruder_count, count, nozzle_volume_types, + print_options_with_variant, "print_extruder_id", "print_extruder_variant"); + + REQUIRE(config.option("print_extruder_id")->values == std::vector({1})); + REQUIRE(config.option("outer_wall_speed")->values == std::vector({30.})); + } + + SECTION("a second expansion leaves the synthesized layout unchanged") { + DynamicPrintConfig config; + config.option("extruder_type", true)->values = {etDirectDrive, etDirectDrive}; + config.option("nozzle_volume_type", true)->values = {nvtStandard, nvtStandard}; + config.option("extruder_variant_list", true)->values = {"Direct Drive Standard", "Direct Drive Standard"}; + add_degenerate_print_columns(config); + + std::vector> nozzle_volume_types; + int extruder_count = 2; + int count = config.get_extruder_nozzle_volume_count(extruder_count, nozzle_volume_types); + + config.update_values_to_printer_extruders(config, extruder_count, count, nozzle_volume_types, + print_options_with_variant, "print_extruder_id", "print_extruder_variant"); + DynamicPrintConfig once = config; + config.update_values_to_printer_extruders(config, extruder_count, count, nozzle_volume_types, + print_options_with_variant, "print_extruder_id", "print_extruder_variant"); + + REQUIRE(config.option("print_extruder_id")->values == + once.option("print_extruder_id")->values); + REQUIRE(config.option("print_extruder_variant")->values == + once.option("print_extruder_variant")->values); + REQUIRE(config.option("outer_wall_speed")->values == + once.option("outer_wall_speed")->values); + } +} + TEST_CASE("update_values_to_printer_extruders_for_multiple_filaments resolves per-filament slots", "[Config]") { auto make_filament_arrays = [](DynamicPrintConfig &config) { diff --git a/tests/libslic3r/test_fill_plane_path.cpp b/tests/libslic3r/test_fill_plane_path.cpp new file mode 100644 index 0000000000..bbb75dce58 --- /dev/null +++ b/tests/libslic3r/test_fill_plane_path.cpp @@ -0,0 +1,164 @@ +#include + +#include +#include +#include +#include + +#include "libslic3r/Fill/FillPlanePath.hpp" +#include "libslic3r/PrintConfig.hpp" + +using namespace Slic3r; + +namespace { + +constexpr double output_scale = 1'000'000.; + +class TestableHilbertCurve : public FillHilbertCurve +{ +public: + Points generate_points(double resolution, double smooth_factor = 0., coord_t max_coordinate = 7) + { + InfillPolylineOutput output(output_scale); + FillParams params; + params.smooth_factor = smooth_factor; + FillHilbertCurve::generate(0, 0, max_coordinate, max_coordinate, resolution, params, output); + return std::move(output.result()); + } +}; + +double path_length(const Points &points) +{ + double length = 0.; + for (size_t i = 1; i < points.size(); ++i) + length += (points[i] - points[i - 1]).cast().norm(); + return length; +} + +double discrete_curvature_at(const Points &points, const Point &point) +{ + const auto point_it = std::find(points.begin(), points.end(), point); + REQUIRE(point_it != points.end()); + const size_t point_idx = size_t(std::distance(points.begin(), point_it)); + REQUIRE(point_idx > 0); + REQUIRE(point_idx + 1 < points.size()); + + const Vec2d incoming = (points[point_idx] - points[point_idx - 1]).cast() / output_scale; + const Vec2d outgoing = (points[point_idx + 1] - points[point_idx]).cast() / output_scale; + const Vec2d chord = incoming + outgoing; + const double cross = std::abs(incoming.x() * outgoing.y() - incoming.y() * outgoing.x()); + return 2. * cross / (incoming.norm() * outgoing.norm() * chord.norm()); +} + +} // namespace + +TEST_CASE("Hilbert curve exposes a smoothing factor", "[FillPlanePath]") +{ + const ConfigOptionDef *factor_def = print_config_def.get("sparse_infill_smooth_factor"); + REQUIRE(factor_def != nullptr); + REQUIRE(factor_def->type == coPercent); + REQUIRE_THAT(factor_def->min, Catch::Matchers::WithinAbs(0., 1e-12)); + REQUIRE_THAT(factor_def->max, Catch::Matchers::WithinAbs(100., 1e-12)); + REQUIRE_THAT(factor_def->get_default_value()->value, + Catch::Matchers::WithinAbs(0., 1e-12)); +} + +TEST_CASE("Hilbert curve smoothing rounds right angle turns", "[FillPlanePath]") +{ + const Points sharp = TestableHilbertCurve().generate_points(0.005); + const Points smooth = TestableHilbertCurve().generate_points(0.005, 1.); + + REQUIRE(smooth.front() == sharp.front()); + REQUIRE(smooth.back() == sharp.back()); + REQUIRE(smooth.size() > sharp.size()); + + bool has_turn = false; + for (size_t i = 1; i < smooth.size(); ++i) { + const Vec2d segment = (smooth[i] - smooth[i - 1]).cast(); + REQUIRE(segment.squaredNorm() > 0.); + } + for (size_t i = 1; i + 1 < smooth.size(); ++i) { + const Vec2d incoming = (smooth[i] - smooth[i - 1]).cast(); + const Vec2d outgoing = (smooth[i + 1] - smooth[i]).cast(); + const double cross = incoming.x() * outgoing.y() - incoming.y() * outgoing.x(); + const double cosine = incoming.dot(outgoing) / (incoming.norm() * outgoing.norm()); + has_turn |= std::abs(cross) > 0.; + REQUIRE(cosine > 0.); + } + REQUIRE(has_turn); + + const coord_t upper_bound = coord_t(7 * output_scale); + for (const Point &point : smooth) { + REQUIRE(point.x() >= 0); + REQUIRE(point.y() >= 0); + REQUIRE(point.x() <= upper_bound); + REQUIRE(point.y() <= upper_bound); + } +} + +TEST_CASE("Smoothed Hilbert curve honors path resolution", "[FillPlanePath]") +{ + const Points coarse = TestableHilbertCurve().generate_points(0.1, 1.); + const Points fine = TestableHilbertCurve().generate_points(0.001, 1.); + + REQUIRE(fine.size() > coarse.size()); + REQUIRE(fine.front() == coarse.front()); + REQUIRE(fine.back() == coarse.back()); +} + +TEST_CASE("Smoothed Hilbert corners use a uniform subdivision depth", "[FillPlanePath]") +{ + const Points smooth = TestableHilbertCurve().generate_points(0.0035, 1., 1); + const Point curve_entry(0, coord_t(0.5 * output_scale)); + const Point curve_exit(coord_t(0.5 * output_scale), coord_t(output_scale)); + + const auto entry_it = std::find(smooth.begin(), smooth.end(), curve_entry); + REQUIRE(entry_it != smooth.end()); + const auto exit_it = std::find(entry_it, smooth.end(), curve_exit); + REQUIRE(exit_it != smooth.end()); + + const size_t segment_count = size_t(std::distance(entry_it, exit_it)); + REQUIRE(segment_count > 1); + REQUIRE((segment_count & (segment_count - 1)) == 0); + + double previous_length = (entry_it[1] - entry_it[0]).cast().norm(); + REQUIRE(previous_length > 0.); + double max_length_ratio = 1.; + for (size_t segment = 1; segment < segment_count; ++segment) { + const double current_length = (entry_it[segment + 1] - entry_it[segment]).cast().norm(); + REQUIRE(current_length > 0.); + max_length_ratio = std::max(max_length_ratio, + std::max(current_length / previous_length, previous_length / current_length)); + previous_length = current_length; + } + REQUIRE(max_length_ratio < 1.5); +} + +TEST_CASE("Hilbert smoothing joins straight segments with continuous curvature", "[FillPlanePath]") +{ + const Points coarse = TestableHilbertCurve().generate_points(0.005, 0.5, 1); + const Points fine = TestableHilbertCurve().generate_points(0.0001, 0.5, 1); + const Point first_curve_entry(0, coord_t(0.75 * output_scale)); + + const double coarse_entry_curvature = discrete_curvature_at(coarse, first_curve_entry); + const double fine_entry_curvature = discrete_curvature_at(fine, first_curve_entry); + REQUIRE(coarse_entry_curvature > 0.); + REQUIRE(fine_entry_curvature < 0.25 * coarse_entry_curvature); +} + +TEST_CASE("Hilbert curve smooth factor controls corner curvature", "[FillPlanePath]") +{ + const Points sharp = TestableHilbertCurve().generate_points(0.005); + const Points half_smooth = TestableHilbertCurve().generate_points(0.005, 0.5); + const Points full_smooth = TestableHilbertCurve().generate_points(0.005, 1.); + const Points invalid_factor = TestableHilbertCurve().generate_points( + 0.005, std::numeric_limits::quiet_NaN()); + + REQUIRE(full_smooth.front() == half_smooth.front()); + REQUIRE(full_smooth.back() == half_smooth.back()); + REQUIRE(path_length(full_smooth) < path_length(half_smooth)); + REQUIRE(invalid_factor == sharp); + + for (size_t i = 1; i < full_smooth.size(); ++i) + REQUIRE((full_smooth[i] - full_smooth[i - 1]).squaredNorm() > 0); +} diff --git a/tests/libslic3r/test_model.cpp b/tests/libslic3r/test_model.cpp new file mode 100644 index 0000000000..3a580e3be2 --- /dev/null +++ b/tests/libslic3r/test_model.cpp @@ -0,0 +1,40 @@ +#include + +#include "libslic3r/Model.hpp" + +using namespace Slic3r; + +// convex_hull_2d does not clip geometry below the bed, so these cases avoid +// sinking transforms. +TEST_CASE("A part's 2D convex hull is its footprint projected onto the bed", "[Model]") +{ + Model model; + ModelObject* object = model.add_object(); + // Keep the cube's raw coordinates ([0,20] on every axis): the default + // add_volume re-centers the geometry, which would move the footprint. + object->add_volume(make_cube(20, 20, 20), ModelVolumeType::MODEL_PART, false); + + SECTION("identity transform yields the 20 mm square") { + const Polygon hull = object->convex_hull_2d(Geometry::Transformation{}.get_matrix()); + const BoundingBox bb = hull.bounding_box(); + CHECK(hull.size() == 4); + CHECK(bb.min.x() == scaled(0.)); + CHECK(bb.min.y() == scaled(0.)); + CHECK(bb.max.x() == scaled(20.)); + CHECK(bb.max.y() == scaled(20.)); + } + + SECTION("scaling and offset move and grow the footprint") { + Geometry::Transformation t; + t.set_scaling_factor({2, 2, 2}); // cube now spans [0,40] + t.set_offset({10, 5, 0}); // then shift +10 in X, +5 in Y + + const Polygon hull = object->convex_hull_2d(t.get_matrix()); + const BoundingBox bb = hull.bounding_box(); + CHECK(hull.size() == 4); + CHECK(bb.min.x() == scaled(10.)); + CHECK(bb.min.y() == scaled(5.)); + CHECK(bb.max.x() == scaled(50.)); + CHECK(bb.max.y() == scaled(45.)); + } +} diff --git a/tests/libslic3r/test_preset_bundle_loading.cpp b/tests/libslic3r/test_preset_bundle_loading.cpp index 351535dd9d..844ccb6a8b 100644 --- a/tests/libslic3r/test_preset_bundle_loading.cpp +++ b/tests/libslic3r/test_preset_bundle_loading.cpp @@ -5,28 +5,14 @@ #include "libslic3r/PresetBundle.hpp" #include "libslic3r/AppConfig.hpp" +#include "test_utils.hpp" + using namespace Slic3r; namespace { namespace fs = boost::filesystem; -struct TempPresetDir { - fs::path path; - - TempPresetDir() - { - path = fs::temp_directory_path() / fs::unique_path("orcaslicer-preset-%%%%-%%%%-%%%%"); - fs::create_directories(path); - } - - ~TempPresetDir() - { - boost::system::error_code ec; - fs::remove_all(path, ec); - } -}; - void write_print_preset(const DynamicPrintConfig &default_config, const fs::path &file, const std::string &name, const std::string &inherits = {}) { DynamicPrintConfig config(default_config); @@ -82,17 +68,17 @@ struct RenameTestCollection : public PresetCollection TEST_CASE("Preset identity is canonicalized from load path", "[Preset][Identity]") { - TempPresetDir temp_dir; + ScopedTemporaryDir temp_dir; PresetBundle bundle; PresetsConfigSubstitutions substitutions; - write_print_preset(bundle.prints.default_preset().config, temp_dir.path / PRESET_PRINT_NAME / "User.json", "User"); - write_print_preset(bundle.prints.default_preset().config, temp_dir.path / PRESET_LOCAL_DIR / "bundle-1" / PRESET_PRINT_NAME / "LocalBundle.json", "LocalBundle"); - write_print_preset(bundle.prints.default_preset().config, temp_dir.path / PRESET_SUBSCRIBED_DIR / "remote-1" / PRESET_PRINT_NAME / "Subscribed.json", "Subscribed"); + write_print_preset(bundle.prints.default_preset().config, temp_dir.path() / PRESET_PRINT_NAME / "User.json", "User"); + write_print_preset(bundle.prints.default_preset().config, temp_dir.path() / PRESET_LOCAL_DIR / "bundle-1" / PRESET_PRINT_NAME / "LocalBundle.json", "LocalBundle"); + write_print_preset(bundle.prints.default_preset().config, temp_dir.path() / PRESET_SUBSCRIBED_DIR / "remote-1" / PRESET_PRINT_NAME / "Subscribed.json", "Subscribed"); - bundle.prints.load_presets(temp_dir.path.string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); - bundle.prints.load_presets((temp_dir.path / PRESET_LOCAL_DIR / "bundle-1").string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); - bundle.prints.load_presets((temp_dir.path / PRESET_SUBSCRIBED_DIR / "remote-1").string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); + bundle.prints.load_presets(temp_dir.path().string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); + bundle.prints.load_presets((temp_dir.path() / PRESET_LOCAL_DIR / "bundle-1").string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); + bundle.prints.load_presets((temp_dir.path() / PRESET_SUBSCRIBED_DIR / "remote-1").string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); const Preset *root_user = bundle.prints.find_preset("User"); REQUIRE(root_user != nullptr); @@ -112,14 +98,14 @@ TEST_CASE("Preset identity is canonicalized from load path", "[Preset][Identity] TEST_CASE("Legacy bundle import without bundle metadata stays in the user preset directory", "[Preset][Identity]") { - TempPresetDir temp_dir; + ScopedTemporaryDir temp_dir; PresetBundle bundle; PresetsConfigSubstitutions substitutions; std::vector result; int overwrite = 0; - std::string file = (temp_dir.path / "legacy-bundle" / "Imported.json").string(); - const fs::path user_root = temp_dir.path / "user"; + std::string file = (temp_dir.path() / "legacy-bundle" / "Imported.json").string(); + const fs::path user_root = temp_dir.path() / "user"; write_print_preset(bundle.prints.default_preset().config, file, "Imported"); fs::create_directories(user_root); @@ -252,7 +238,7 @@ TEST_CASE("find_preset2 auto-matches removed Generic vendor profiles to the libr TEST_CASE("Renamed parent is normalized into a loaded preset's inherits", "[Preset][Rename]") { - TempPresetDir temp_dir; + ScopedTemporaryDir temp_dir; RenameTestCollection coll; // Current parent, renamed from "Old Process". @@ -262,10 +248,10 @@ TEST_CASE("Renamed parent is normalized into a loaded preset's inherits", "[Pres // A user preset on disk that still inherits the OLD name. write_preset_with_inherits(coll.default_preset().config, - temp_dir.path / PRESET_PRINT_NAME / "Child.json", "Child", "Old Process"); + temp_dir.path() / PRESET_PRINT_NAME / "Child.json", "Child", "Old Process"); PresetsConfigSubstitutions substitutions; - coll.load_presets(temp_dir.path.string(), PRESET_PRINT_NAME, substitutions, + coll.load_presets(temp_dir.path().string(), PRESET_PRINT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); const Preset *child = coll.find_preset("Child"); @@ -279,17 +265,17 @@ TEST_CASE("Renamed parent is normalized into a loaded preset's inherits", "[Pres TEST_CASE("Removed Generic parent is normalized into a loaded filament's inherits", "[Preset][Rename]") { - TempPresetDir temp_dir; + ScopedTemporaryDir temp_dir; PresetBundle bundle; add_inmemory_preset(bundle.filaments, "Generic PLA @System"); // A user filament that still inherits a removed " Generic PLA" profile. write_preset_with_inherits(bundle.filaments.default_preset().config, - temp_dir.path / PRESET_FILAMENT_NAME / "MyPLA.json", "MyPLA", "Voron Generic PLA"); + temp_dir.path() / PRESET_FILAMENT_NAME / "MyPLA.json", "MyPLA", "Voron Generic PLA"); PresetsConfigSubstitutions substitutions; - bundle.filaments.load_presets(temp_dir.path.string(), PRESET_FILAMENT_NAME, substitutions, + bundle.filaments.load_presets(temp_dir.path().string(), PRESET_FILAMENT_NAME, substitutions, ForwardCompatibilitySubstitutionRule::Disable); const Preset *child = bundle.filaments.find_preset("MyPLA"); @@ -488,3 +474,69 @@ TEST_CASE("Plugin capability override keys are scoped per preset type", "[Preset } } +namespace { + +// A standalone filament collection that exposes the protected library masking builder, so the Orca +// Filament Library scenario can be set up without the full system-profile load pipeline. +struct LibraryFilamentTestCollection : public PresetCollection +{ + LibraryFilamentTestCollection() + : PresetCollection(Preset::TYPE_FILAMENT, Preset::filament_options(), + static_cast(FullPrintConfig::defaults())) + {} + using PresetCollection::update_library_profile_excluded_from; +}; + +} // namespace + +// Orca: a filament in the Orca Filament Library that names its compatible printers has to hide the generic +// library filament sharing its alias, the same way a vendor owned filament does. Otherwise both are compatible +// with that printer and the plater combo box lists the shared alias twice. +TEST_CASE("A printer specific filament supersedes the generic library filament with the same alias", "[Preset][Bundle]") +{ + LibraryFilamentTestCollection filaments; + PresetCollection printers(Preset::TYPE_PRINTER, Preset::printer_options(), + static_cast(FullPrintConfig::defaults())); + // The masking keys off the vendor name, which VendorProfile's constructor does not derive from the id. + VendorProfile library(PresetBundle::ORCA_FILAMENT_LIBRARY); + VendorProfile vendor("Vendor"); + library.name = PresetBundle::ORCA_FILAMENT_LIBRARY; + vendor.name = "Vendor"; + + auto add_filament = [&filaments](const VendorProfile &owner, const std::string &name, std::vector compatible_printers) { + Preset &preset = add_inmemory_preset(filaments, name); + preset.alias = "Generic ABS"; + preset.vendor = &owner; + preset.config.option("compatible_printers", true)->values = std::move(compatible_printers); + }; + + add_filament(library, "Generic ABS @System", {}); + add_filament(library, "Generic ABS @Printer A", { "Printer A" }); + add_filament(vendor, "Generic ABS @Printer B", { "Printer B" }); + + filaments.update_library_profile_excluded_from(); + + const Preset *generic = filaments.find_preset("Generic ABS @System"); + REQUIRE(generic != nullptr); + CHECK(generic->m_excluded_from.count("Printer A") == 1); + CHECK(generic->m_excluded_from.count("Printer B") == 1); + CHECK(generic->m_excluded_from.size() == 2); + + // A printer specific profile names printers, so it is never the one being hidden - not even by itself. + const Preset *specific = filaments.find_preset("Generic ABS @Printer A"); + REQUIRE(specific != nullptr); + CHECK(specific->m_excluded_from.empty()); + + // ...and the generic profile really drops out of the compatible set on the printer it is hidden from. + add_inmemory_preset(printers, "Printer A"); + add_inmemory_preset(printers, "Printer C"); + const Preset *printer_a = printers.find_preset("Printer A"); + const Preset *printer_c = printers.find_preset("Printer C"); + REQUIRE(printer_a != nullptr); + REQUIRE(printer_c != nullptr); + + const PresetWithVendorProfile generic_lib(*generic, &library); + CHECK_FALSE(is_compatible_with_printer(generic_lib, PresetWithVendorProfile(*printer_a, nullptr))); + CHECK(is_compatible_with_printer(generic_lib, PresetWithVendorProfile(*printer_c, nullptr))); +} + diff --git a/tests/libslic3r/test_toolordering_nozzle_group.cpp b/tests/libslic3r/test_toolordering_nozzle_group.cpp index ae6aac4dbe..26e36c0dbf 100644 --- a/tests/libslic3r/test_toolordering_nozzle_group.cpp +++ b/tests/libslic3r/test_toolordering_nozzle_group.cpp @@ -8,6 +8,8 @@ #include "libslic3r/Print.hpp" #include "libslic3r/TriangleMesh.hpp" +#include "test_utils.hpp" + #include #include #include @@ -500,6 +502,52 @@ TEST_CASE("Re-applying an unchanged config after slicing keeps the result valid" REQUIRE(print.is_step_done(psSlicingFinished)); } +TEST_CASE("A degenerate process variant map on a custom multi-extruder printer slices to a stable result", "[Print][Regression]") +{ + // Non-BBL multi-extruder printers get machine-scope variant columns synthesized on preset + // load (extend_extruder_variant), but nothing ships process-scope print_extruder_id / + // print_extruder_variant: presets and 3mf project configs carry the length-1 defaults. The + // apply-time expansion must synthesize the process columns from extruder_variant_list; + // otherwise the failed per-extruder lookups collapse the per-extruder retract overrides + // during slicing and the post-slice re-apply invalidates every fresh result, forever. + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_num_extruders(5); + config.option("nozzle_diameter", true)->values = {0.4, 0.4, 0.4, 0.4, 0.4}; + // per-extruder machine values that a first-slot collapse would destroy + config.option("retract_before_wipe", true)->values = {100., 70., 70., 70., 100.}; + config.option("z_hop_types", true)->values = {zhtSlope, zhtNormal, zhtNormal, zhtNormal, zhtSlope}; + // filament presets carry the nullable override twins (all-nil = "no override"); they are what + // routes the machine values through apply_override in the in-slice override recompute + config.option("filament_retract_before_wipe", true)->values = + std::vector(5, ConfigOptionPercentsNullable::nil_value()); + config.option("filament_z_hop_types", true)->values = + std::vector(5, ConfigOptionEnumsGenericNullable::nil_value()); + config.option("filament_diameter", true)->values = std::vector(5, 1.75); + config.option("filament_colour", true)->values = {"#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#00FFFF"}; + config.option("filament_map", true)->values = {1, 2, 3, 4, 1}; + + Model model; + model.add_object("cube", "", make_cube(20, 20, 20))->add_instance()->set_offset(Vec3d(100., 100., 0.)); + + Print print; + print.apply(model, config); + print.process(); + REQUIRE(print.is_step_done(psSlicingFinished)); + + // BackgroundSlicingProcess reads the engine-computed maps back into the plate config after + // slicing; the next apply overlays that written-back state. + config.option("filament_map", true)->values = print.get_filament_maps(); + config.option("filament_volume_map", true)->values = print.get_filament_volume_maps(); + config.option("filament_nozzle_map", true)->values = print.get_filament_nozzle_maps(); + + auto status = print.apply(model, config); + REQUIRE(status == PrintBase::APPLY_STATUS_UNCHANGED); + REQUIRE(print.is_step_done(psSlicingFinished)); + // the per-extruder machine values must survive the in-slice override recompute + REQUIRE(print.config().retract_before_wipe.values == std::vector({100., 70., 70., 70., 100.})); + REQUIRE(print.config().z_hop_types.values == std::vector({zhtSlope, zhtNormal, zhtNormal, zhtNormal, zhtSlope})); +} + TEST_CASE("normalize_nozzle_map_per_layer makes per-filament assignments gap-free", "[MultiNozzle][H2C][Dynamic]") { SECTION("gaps inherit the last used nozzle, entries on used layers stay untouched") { @@ -662,10 +710,9 @@ TEST_CASE("Sequential selector prints publish a stitched result and cache the pl REQUIRE(print.config().filament_self_index.values.size() >= print.config().filament_map.values.size()); // Export must consume the cached plans and produce g-code without throwing. - boost::filesystem::path gcode_path = boost::filesystem::temp_directory_path() / "orca_seq_dynamic_publish_test.gcode"; - REQUIRE_NOTHROW(print.export_gcode(gcode_path.string(), nullptr, nullptr)); - REQUIRE(boost::filesystem::exists(gcode_path)); - boost::filesystem::remove(gcode_path); + ScopedTemporaryFile gcode(".gcode"); + REQUIRE_NOTHROW(print.export_gcode(gcode.string(), nullptr, nullptr)); + REQUIRE(boost::filesystem::exists(gcode.path())); } TEST_CASE("Per-variant expansion gives migrating filaments one slot per variant", "[PrintConfig][H2C][Dynamic]") diff --git a/tests/slic3rutils/plugin_test_utils.hpp b/tests/slic3rutils/plugin_test_utils.hpp index 52e503f6f4..d60b3441c8 100644 --- a/tests/slic3rutils/plugin_test_utils.hpp +++ b/tests/slic3rutils/plugin_test_utils.hpp @@ -6,6 +6,8 @@ #include +#include "test_utils.hpp" + namespace Slic3r { // Point data_dir() at a throwaway directory for the lifetime of a test and @@ -13,24 +15,20 @@ namespace Slic3r { // disposable tree and tests don't leak state into each other. struct ScopedDataDir { + ScopedTemporaryDir tmp; // owns the temp dir (create + recursive remove) + boost::filesystem::path dir; // = tmp.path(); kept as a member for callers std::string previous; - boost::filesystem::path dir; explicit ScopedDataDir(const std::string& tag) + : tmp("orca-" + tag), dir(tmp.path()), previous(data_dir()) { - namespace fs = boost::filesystem; - previous = data_dir(); - dir = fs::temp_directory_path() / fs::unique_path("orca-" + tag + "-%%%%-%%%%"); - fs::create_directories(dir); set_data_dir(dir.string()); } - ~ScopedDataDir() - { - set_data_dir(previous); - boost::system::error_code ec; - boost::filesystem::remove_all(dir, ec); - } + ~ScopedDataDir() { set_data_dir(previous); } // tmp removes the directory + + // The plugin manager scans {data_dir}/orca_plugins. + boost::filesystem::path plugins_dir() const { return dir / "orca_plugins"; } ScopedDataDir(const ScopedDataDir&) = delete; ScopedDataDir& operator=(const ScopedDataDir&) = delete; diff --git a/tests/slic3rutils/test_network_versions.cpp b/tests/slic3rutils/test_network_versions.cpp index efe8b5d831..349082a965 100644 --- a/tests/slic3rutils/test_network_versions.cpp +++ b/tests/slic3rutils/test_network_versions.cpp @@ -6,6 +6,8 @@ #include "libslic3r/Utils.hpp" #include "slic3r/Utils/bambu_networking.hpp" +#include "plugin_test_utils.hpp" + using namespace Slic3r; namespace fs = boost::filesystem; @@ -25,27 +27,16 @@ static const char* PLUGIN_EXT = ".so"; struct PluginFolderFixture { - fs::path root; - std::string previous_data_dir; + ScopedDataDir data{"netver"}; PluginFolderFixture() { - previous_data_dir = data_dir(); - root = fs::temp_directory_path() / fs::unique_path("orca-netver-%%%%%%%%"); - fs::create_directories(root / "plugins"); - set_data_dir(root.string()); - } - - ~PluginFolderFixture() - { - set_data_dir(previous_data_dir); - boost::system::error_code ec; - fs::remove_all(root, ec); + fs::create_directories(data.dir / "plugins"); } void add_plugin(const std::string& version) { - boost::nowide::ofstream f((root / "plugins" / (PLUGIN_PREFIX + version + PLUGIN_EXT)).string()); + boost::nowide::ofstream f((data.dir / "plugins" / (PLUGIN_PREFIX + version + PLUGIN_EXT)).string()); f << "stub"; } }; diff --git a/tests/slic3rutils/test_plugin_cloud_metadata.cpp b/tests/slic3rutils/test_plugin_cloud_metadata.cpp index ec8b61dea9..c34b596ee0 100644 --- a/tests/slic3rutils/test_plugin_cloud_metadata.cpp +++ b/tests/slic3rutils/test_plugin_cloud_metadata.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -48,6 +49,18 @@ const char* const CLOUD_PLUGIN_SOURCE = R"PY(# /// script # version = "1.0" # /// print('ok') + +import orca +class stubscript(orca.script.ScriptPluginCapabilityBase): + def get_name(self): + return "stubscript" + def execute(self): + return orca.ExecutionResult.success("Stub orca script.") + +@orca.plugin +class stubpackage(orca.base): + def register_capabilities(self): + orca.register_capability(stubscript) )PY"; } // namespace @@ -152,4 +165,31 @@ TEST_CASE("cloud metadata refresh preserves a plugin's stored config", "[PluginC reloaded.load(); REQUIRE(reloaded.has_config(id)); CHECK(reloaded.get_config(id)->config == configured); + + // A local package can remain after the cloud subscription disappears. The cloud identity is + // retained for diagnosis, but the orphaned state must suppress update availability until the + // plugin is returned by a later cloud refresh. + PluginDescriptor orphaned_record = cloud_record; + orphaned_record.cloud->orphaned = true; + orphaned_record.cloud->update_available = true; + manager.update_cloud_metadata({orphaned_record}); + + const PluginDescriptor orphaned = find_by_uuid(); + REQUIRE(orphaned.cloud.has_value()); + CHECK(orphaned.cloud->orphaned); + CHECK_FALSE(orphaned.has_error()); + CHECK(orphaned.get_update_status() == PluginUpdateStatus::Normal); + + // Orphaned is informational only: the local package must remain loadable and usable. + std::string load_error; + manager.load_plugin(uuid, /*skip_deps=*/true); + REQUIRE(manager.wait_for_plugin_load(uuid, std::chrono::seconds(120), load_error)); + INFO("load error: " << load_error); + CHECK(load_error.empty()); + CHECK(manager.is_plugin_loaded(uuid)); + CHECK(manager.unload_plugin(uuid)); + + // Seeing the plugin in a subsequent cloud response clears the orphaned marker. + manager.update_cloud_metadata({cloud_record}); + CHECK_FALSE(find_by_uuid().cloud->orphaned); } diff --git a/tests/slic3rutils/test_plugin_lifecycle.cpp b/tests/slic3rutils/test_plugin_lifecycle.cpp index c49471de28..63a4e6827b 100644 --- a/tests/slic3rutils/test_plugin_lifecycle.cpp +++ b/tests/slic3rutils/test_plugin_lifecycle.cpp @@ -6,6 +6,8 @@ #include #include +#include "plugin_test_utils.hpp" + #include #include @@ -25,32 +27,6 @@ namespace fs = boost::filesystem; namespace { -// Point data_dir() at a throwaway directory for the lifetime of a test and restore the previous -// value afterwards, so discovery scans a disposable {data_dir}/orca_plugins tree and tests don't -// leak state into each other. -struct ScopedDataDir -{ - std::string previous; - fs::path dir; - - explicit ScopedDataDir(const std::string& tag) - { - previous = data_dir(); - dir = fs::temp_directory_path() / fs::unique_path("orca-" + tag + "-%%%%-%%%%"); - fs::create_directories(dir); - set_data_dir(dir.string()); - } - - ~ScopedDataDir() - { - set_data_dir(previous); - boost::system::error_code ec; - fs::remove_all(dir, ec); - } - - fs::path plugins_dir() const { return dir / "orca_plugins"; } -}; - // Brings the plugin system up, and tears it down explicitly at the end of the test. // // Shutting the interpreter down here, rather than leaving it to PythonInterpreter's static diff --git a/tests/slic3rutils/test_slicing_pipeline_bindings.cpp b/tests/slic3rutils/test_slicing_pipeline_bindings.cpp index 8f00b6f31b..5e819c09e0 100644 --- a/tests/slic3rutils/test_slicing_pipeline_bindings.cpp +++ b/tests/slic3rutils/test_slicing_pipeline_bindings.cpp @@ -16,6 +16,8 @@ TEST_CASE("SlicingPipeline capability-type string maps round-trip", "[slicing_pi #include "libslic3r/Point.hpp" #include "libslic3r/ExPolygon.hpp" #include "libslic3r/Surface.hpp" + +#include "test_utils.hpp" #include "libslic3r/Layer.hpp" #include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/ExtrusionEntityCollection.hpp" @@ -142,7 +144,7 @@ TEST_CASE("orca.slicing psGCodePostProcess context: file edit in place + config import_orca_module(); py::gil_scoped_acquire gil; - const fs::path gpath = fs::temp_directory_path() / fs::unique_path("orca_pp_%%%%-%%%%.gcode"); + ScopedTemporaryFile gpath(".gcode"); { boost::nowide::ofstream ofs(gpath.string()); ofs << "; header\nG1 X0 Y0\n"; @@ -196,9 +198,7 @@ _pp_result = Stamp().execute(_pp_ctx) boost::nowide::ifstream ifs(gpath.string()); std::stringstream ss; ss << ifs.rdbuf(); contents = ss.str(); } - CHECK(contents.find("; stamped by File") != std::string::npos); - fs::remove(gpath); -} + CHECK(contents.find("; stamped by File") != std::string::npos);} // --------------------------------------------------------------------------- // Toolpath helpers for the raw-graph tests. diff --git a/tests/test_utils.hpp b/tests/test_utils.hpp index d928f2f41e..97e684fd6e 100644 --- a/tests/test_utils.hpp +++ b/tests/test_utils.hpp @@ -27,26 +27,47 @@ inline Slic3r::TriangleMesh load_model(const std::string &obj_filename) return mesh; } -// RAII holder for a unique temporary file path, removed when the guard goes out -// of scope so a failing assertion never leaks it. Uses the system temp dir with -// a unique name (parallel-safe, cross-platform). The file itself is created by -// whoever writes to path()/string(); this only reserves the name and cleans up. -class ScopedTemporaryFile +// --------------------------------------------------------------------------- +// Scoped temporary paths +// --------------------------------------------------------------------------- + +// Owns a unique path under the system temp dir, "-[]" +// (parallel-safe, cross-platform). Shared base for the two RAII temp guards below. +class ScopedTemporaryPath +{ +public: + const boost::filesystem::path &path() const { return m_path; } + std::string string() const { return m_path.string(); } + ScopedTemporaryPath(const ScopedTemporaryPath &) = delete; + ScopedTemporaryPath &operator=(const ScopedTemporaryPath &) = delete; + +protected: + ScopedTemporaryPath(const std::string &prefix, const std::string &extension) + : m_path(boost::filesystem::temp_directory_path() + / boost::filesystem::unique_path(prefix + "-%%%%-%%%%-%%%%" + extension)) + {} + ~ScopedTemporaryPath() = default; // non-virtual: never deleted through a base pointer + + boost::filesystem::path m_path; +}; + +// A temp file the caller creates by writing to path()/string(); the guard only +// reserves the name and removes the file on scope exit. +class ScopedTemporaryFile : public ScopedTemporaryPath { public: explicit ScopedTemporaryFile(const std::string &extension = ".tmp") - : m_path(boost::filesystem::temp_directory_path() - / boost::filesystem::unique_path("orca-%%%%-%%%%-%%%%" + extension)) - {} + : ScopedTemporaryPath("orca", extension) {} ~ScopedTemporaryFile() { boost::system::error_code ec; boost::filesystem::remove(m_path, ec); } - ScopedTemporaryFile(const ScopedTemporaryFile &) = delete; - ScopedTemporaryFile &operator=(const ScopedTemporaryFile &) = delete; +}; - const boost::filesystem::path &path() const { return m_path; } - std::string string() const { return m_path.string(); } - -private: - boost::filesystem::path m_path; +// A temp directory created on construction and removed recursively on scope exit. +class ScopedTemporaryDir : public ScopedTemporaryPath +{ +public: + explicit ScopedTemporaryDir(const std::string &prefix = "orca") + : ScopedTemporaryPath(prefix, "") { boost::filesystem::create_directories(m_path); } + ~ScopedTemporaryDir() { boost::system::error_code ec; boost::filesystem::remove_all(m_path, ec); } }; // --------------------------------------------------------------------------- @@ -66,7 +87,7 @@ inline std::string debug_artifact_path(const std::string &name) boost::filesystem::path dir = boost::filesystem::temp_directory_path() / boost::filesystem::unique_path("orca-test-artifacts-%%%%-%%%%"); boost::filesystem::create_directories(dir); - std::printf("Debug test artifacts will be written to %s\n", dir.string().c_str()); + std::fprintf(stderr, "Debug test artifacts will be written to %s\n", dir.string().c_str()); return dir; }(); boost::filesystem::path full = root / name; @@ -75,57 +96,52 @@ inline std::string debug_artifact_path(const std::string &name) } // Dump a mesh as OBJ. -inline void write_debug_obj(const std::string &name, const Slic3r::TriangleMesh &mesh) +inline void write_debug_obj([[maybe_unused]] const std::string &name, + [[maybe_unused]] const Slic3r::TriangleMesh &mesh) { #ifndef NDEBUG mesh.WriteOBJFile(debug_artifact_path(name).c_str()); -#else - (void) name; (void) mesh; #endif } -inline void write_debug_obj(const std::string &name, const indexed_triangle_set &its) +inline void write_debug_obj([[maybe_unused]] const std::string &name, + [[maybe_unused]] const indexed_triangle_set &its) { #ifndef NDEBUG its_write_obj(its, debug_artifact_path(name).c_str()); -#else - (void) name; (void) its; #endif } // Dump a mesh as ASCII STL. -inline void write_debug_stl(const std::string &name, const Slic3r::TriangleMesh &mesh) +inline void write_debug_stl([[maybe_unused]] const std::string &name, + [[maybe_unused]] const Slic3r::TriangleMesh &mesh) { #ifndef NDEBUG mesh.write_ascii(debug_artifact_path(name).c_str()); -#else - (void) name; (void) mesh; #endif } // Draw an SVG artifact through a callback that receives the open SVG. Second // overload takes a BoundingBox when the drawing needs one. template -inline void write_debug_svg(const std::string &name, Draw &&draw) +inline void write_debug_svg([[maybe_unused]] const std::string &name, [[maybe_unused]] Draw &&draw) { #ifndef NDEBUG Slic3r::SVG svg(debug_artifact_path(name)); draw(svg); svg.Close(); -#else - (void) name; (void) draw; #endif } template -inline void write_debug_svg(const std::string &name, const Slic3r::BoundingBox &bbox, Draw &&draw) +inline void write_debug_svg([[maybe_unused]] const std::string &name, + [[maybe_unused]] const Slic3r::BoundingBox &bbox, + [[maybe_unused]] Draw &&draw) { #ifndef NDEBUG Slic3r::SVG svg(debug_artifact_path(name), bbox); draw(svg); svg.Close(); -#else - (void) name; (void) bbox; (void) draw; #endif } @@ -133,13 +149,11 @@ inline void write_debug_svg(const std::string &name, const Slic3r::BoundingBox & // artifact. operator<< is resolved by ADL at the call site, so this header needn't // include the producer's headers. template -inline void write_debug_stream(const std::string &name, Produce &&produce) +inline void write_debug_stream([[maybe_unused]] const std::string &name, [[maybe_unused]] Produce &&produce) { #ifndef NDEBUG std::ofstream out(debug_artifact_path(name), std::ios::out | std::ios::binary); out << produce(); -#else - (void) name; (void) produce; #endif } From 73131735a276e49ed7dac933f958103c16fc1637 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 13:25:29 +0800 Subject: [PATCH 060/164] Fix Linux unit tests loading deps-built FFmpeg libraries The test executables that link libslic3r_gui (which links PkgConfig::LIBAV) have a load-time dependency on the deps-built FFmpeg shared libraries. The CI unit-test runner only receives the tests artifact, so those libraries were unresolvable there (Ubuntu 24.04 ships libavcodec.so.60, not .61). Copy the libraries next to each affected test executable and give it an $ORIGIN rpath, mirroring the Windows branch that copies DLLs next to every test executable. orcaslicer_copy_sos now places the copies in the per-config output directory for multi-config generators, like orcaslicer_copy_dlls does. Co-Authored-By: Claude --- CMakeLists.txt | 14 +++++++++++--- tests/CMakeLists.txt | 24 +++++++----------------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c66c099023..1e65dc5132 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1097,8 +1097,16 @@ endfunction() function(orcaslicer_copy_sos target config postfix output_sos) - set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") - message ("set out_dir to CMAKE_CURRENT_BINARY_DIR: ${_out_dir}") + get_property(_is_multi GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + get_target_property(_alt_out_dir ${target} RUNTIME_OUTPUT_DIRECTORY) + + if (_alt_out_dir) + set(_out_dir "${_alt_out_dir}") + elseif (_is_multi) + set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}/${config}") + else () + set(_out_dir "${CMAKE_CURRENT_BINARY_DIR}") + endif () file(COPY ${CMAKE_PREFIX_PATH}/lib/libavcodec.so ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 @@ -1114,7 +1122,7 @@ function(orcaslicer_copy_sos target config postfix output_sos) ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 DESTINATION ${_out_dir}) - set(${output_dlls} + set(${output_sos} ${_out_dir}/libavcodec.so ${_out_dir}/libavcodec.so.61 ${_out_dir}/libavcodec.so.61.3.100 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 28818a5ee1..c403152c4e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,23 +63,13 @@ function(orcaslicer_copy_test_dlls) endif() set_property(TARGET ${_TEST_NAME}_tests PROPERTY BUILD_RPATH "$ORIGIN") - add_custom_command(TARGET ${_TEST_NAME}_tests POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61 - ${CMAKE_PREFIX_PATH}/lib/libavcodec.so.61.3.100 - ${CMAKE_PREFIX_PATH}/lib/libavutil.so - ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59 - ${CMAKE_PREFIX_PATH}/lib/libavutil.so.59.8.100 - ${CMAKE_PREFIX_PATH}/lib/libswscale.so - ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8 - ${CMAKE_PREFIX_PATH}/lib/libswscale.so.8.1.100 - ${CMAKE_PREFIX_PATH}/lib/libswresample.so - ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5 - ${CMAKE_PREFIX_PATH}/lib/libswresample.so.5.1.100 - "$" - COMMENT "Copying FFmpeg libraries next to test executable" - VERBATIM) + set(_configs ${CMAKE_CONFIGURATION_TYPES}) + if (NOT _configs) + set(_configs "${CMAKE_BUILD_TYPE}") + endif() + foreach(_cfg IN LISTS _configs) + orcaslicer_copy_sos(${_TEST_NAME}_tests "${_cfg}" "" _unused_sos) + endforeach() endif() endfunction() From f6f68573b63c44a456cf78ea617903c37b657aa8 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Fri, 14 Aug 2026 14:48:57 +0800 Subject: [PATCH 061/164] fix: add resources folder to the allowed roots as readonly --- src/slic3r/plugin/PluginAuditManager.cpp | 178 ++++++++++++++++++++--- src/slic3r/plugin/PluginAuditManager.hpp | 52 ++++++- tests/slic3rutils/plugin_test_utils.hpp | 20 +++ tests/slic3rutils/test_plugin_audit.cpp | 146 +++++++++++++++++++ 4 files changed, 365 insertions(+), 31 deletions(-) diff --git a/src/slic3r/plugin/PluginAuditManager.cpp b/src/slic3r/plugin/PluginAuditManager.cpp index 023e55bd22..4d69a4f761 100644 --- a/src/slic3r/plugin/PluginAuditManager.cpp +++ b/src/slic3r/plugin/PluginAuditManager.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -111,6 +112,22 @@ static AuditEventCategory event_category(const std::string& event_name) return it == audit_event_categories.end() ? AuditEventCategory::None : it->second; } +// True for the categories whose targets are filesystem paths, as opposed to a network +// address or a process command line -- the deny-path and allowed-root checks only make sense +// against a path. +static bool is_fs_category(AuditEventCategory category) +{ + switch (category) { + case AuditEventCategory::FsRead: + case AuditEventCategory::FsReadWrite: + case AuditEventCategory::FsCreate: + case AuditEventCategory::FsDelete: + return true; + default: + return false; + } +} + // --------------------------------------------------------------------------- // Path safety // --------------------------------------------------------------------------- @@ -179,7 +196,7 @@ bool is_inside_allowed_root(const boost::filesystem::path& candidate, const boos thread_local std::string PluginAuditManager::m_current_plugin_key = ""; thread_local std::string PluginAuditManager::m_current_capability_name = ""; -thread_local std::vector PluginAuditManager::m_scoped_allowed_roots; +thread_local std::vector PluginAuditManager::m_scoped_allowed_roots; thread_local bool PluginAuditManager::m_audit_denial_pending = false; thread_local bool PluginAuditManager::m_has_last_violation = false; thread_local AuditViolation PluginAuditManager::m_last_violation; @@ -224,23 +241,24 @@ std::string PluginAuditManager::current_capability() const { return m_current_ca void PluginAuditManager::clear_current_capability() { m_current_capability_name.clear(); } -void PluginAuditManager::add_global_allowed_root(const boost::filesystem::path& root) +void PluginAuditManager::add_global_allowed_root(const boost::filesystem::path& root, bool allow_write) { if (root.empty()) return; std::lock_guard lock(m_mutex); - m_global_allowed_roots.push_back(root); - BOOST_LOG_TRIVIAL(info) << "[AUDIT] Global allowed root: " << root.string(); + m_global_allowed_roots.push_back({root, allow_write}); + BOOST_LOG_TRIVIAL(info) << "[AUDIT] Global allowed root: " << root.string() << " allow_write=" << allow_write; } -void PluginAuditManager::add_scoped_allowed_root(const boost::filesystem::path& root) +void PluginAuditManager::add_scoped_allowed_root(const boost::filesystem::path& root, bool allow_write) { if (root.empty()) return; - m_scoped_allowed_roots.push_back(root); - BOOST_LOG_TRIVIAL(info) << "[AUDIT] Scoped allowed root for plugin " << current_plugin() << ": " << root.string(); + m_scoped_allowed_roots.push_back({root, allow_write}); + BOOST_LOG_TRIVIAL(info) << "[AUDIT] Scoped allowed root for plugin " << current_plugin() << ": " << root.string() + << " allow_write=" << allow_write; } // --------------------------------------------------------------------------- @@ -293,6 +311,67 @@ bool PluginAuditManager::is_denied_filename(const boost::filesystem::path& candi return false; } +// --------------------------------------------------------------------------- +// Denied path keywords +// --------------------------------------------------------------------------- + +void PluginAuditManager::add_denied_path_keyword(const std::string& keyword) +{ + if (keyword.empty()) + return; + + std::string lower = keyword; + std::transform(lower.begin(), lower.end(), lower.begin(), [](unsigned char c) { return std::tolower(c); }); + + std::lock_guard lock(m_mutex); + m_denied_path_keywords.push_back(lower); + BOOST_LOG_TRIVIAL(info) << "[AUDIT] Denied path keyword: " << lower; +} + +std::vector PluginAuditManager::default_denied_path_keywords() +{ + // Broad, categorical rules on top of the exact-name is_denied_filename registry: a plugin + // must never be able to reach a secret, a certificate, or a configuration file just because + // it happens to live inside an otherwise-allowed root (e.g. the bundled TLS client cert at + // resources_dir()/cert/..., which would become reachable the moment resources_dir() is + // granted as a read-only allowed root). + return {"secret", "cert", "conf"}; +} + +bool PluginAuditManager::is_denied_path_keyword(const boost::filesystem::path& candidate) const +{ + namespace fs = boost::filesystem; + + boost::system::error_code ec; + fs::path canon = fs::weakly_canonical(candidate, ec); + if (ec) { + canon = fs::absolute(candidate, ec).lexically_normal(); + if (ec) + canon = candidate; + } + + std::lock_guard lock(m_mutex); + if (m_denied_path_keywords.empty()) + return false; + + for (const auto& component : canon) { + std::string name = component.string(); + if (name.empty()) + continue; + std::transform(name.begin(), name.end(), name.begin(), [](unsigned char c) { return std::tolower(c); }); + for (const auto& keyword : m_denied_path_keywords) { + if (name.find(keyword) != std::string::npos) + return true; + } + } + return false; +} + +bool PluginAuditManager::is_denied_path(const boost::filesystem::path& candidate) const +{ + return is_denied_filename(candidate) || is_denied_path_keyword(candidate); +} + // --------------------------------------------------------------------------- // Policy checks // --------------------------------------------------------------------------- @@ -306,14 +385,20 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat if (plugin_key.empty()) return {true, ""}; // not running inside a plugin context - // Denied filenames are checked before the allowed roots. The app config and the cloud - // refresh token live directly inside data_dir(), which is a global allowed root, so a deny - // placed any lower would be unreachable. + // Denied filenames/keywords are checked before the allowed roots. The app config and the + // cloud refresh token live directly inside data_dir(), which is a global allowed root, and + // the bundled TLS client cert lives inside resources_dir(), a read-only global allowed + // root, so a deny placed any lower would be unreachable. if (is_denied_filename(path)) { BOOST_LOG_TRIVIAL(warning) << "[AUDIT] block path=" << path.string() << " is_write=" << is_write << " plugin=" << plugin_key << " reason=denied filename"; return {false, "denied filename"}; } + if (is_denied_path_keyword(path)) { + BOOST_LOG_TRIVIAL(warning) << "[AUDIT] block path=" << path.string() << " is_write=" << is_write + << " plugin=" << plugin_key << " reason=denied path keyword"; + return {false, "denied path keyword"}; + } namespace fs = boost::filesystem; fs::path candidate = path; @@ -326,8 +411,11 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat candidate = absolute_candidate; } + // A root that doesn't allow writes only matches a read-shaped request; a write/create/ + // delete-shaped one falls through to "outside allowed root" for that root even though the + // path is physically inside it. for (const auto& root : m_scoped_allowed_roots) { - if (is_inside_allowed_root(candidate, root)) { + if ((!is_write || root.allow_write) && is_inside_allowed_root(candidate, root.path)) { return {true, ""}; } } @@ -335,7 +423,7 @@ AuditDecision PluginAuditManager::check_path_access(const boost::filesystem::pat { std::lock_guard lock(m_mutex); for (const auto& root : m_global_allowed_roots) { - if (is_inside_allowed_root(candidate, root)) { + if ((!is_write || root.allow_write) && is_inside_allowed_root(candidate, root.path)) { return {true, ""}; } } @@ -799,6 +887,27 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user return 0; } + // the open function can take in different flags that determine if it is a read or readwrite. + const AuditEventCategory event_type = + event_name == "open" ? PluginAuditDetail::open_category(args) : event_category(event_name); + if (event_type == AuditEventCategory::None) + return 0; + + const bool fs_category = is_fs_category(event_type); + const std::vector targets = PluginAuditDetail::audit_targets(event_name, event_type, args); + + // A denied path (secrets, certificates, config files -- see is_denied_path) is an + // unconditional block: checked before the ancestor-cascade check below, so a cascade + // approval recorded for an unrelated action can never launder access to one, and before + // the allowed-root shortcut further down, so an allowed root (e.g. the read-only resources + // folder) cannot make a denied path underneath it reachable. + if (fs_category) { + for (const auto& target : targets) { + if (mgr->is_denied_path(boost::filesystem::path(target))) + return PluginAuditDetail::report_denied(*mgr, event_name, {false, "denied path"}); + } + } + PluginDescriptor plugin_descriptor; PluginManager::instance().try_get_plugin_descriptor(mgr->current_plugin(), plugin_descriptor); @@ -809,11 +918,20 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user if (mgr->has_approved_ancestor(mgr->current_plugin(), call_site_ids)) return 0; - // the open function can take in different flags that determine if it is a read or readwrite. - const AuditEventCategory event_type = - event_name == "open" ? PluginAuditDetail::open_category(args) : event_category(event_name); - if (event_type == AuditEventCategory::None) - return 0; + // A filesystem target that resolves entirely inside a pre-determined allowed root -- the + // plugin system's own data_dir() tree (which holds each plugin's storage folder and the + // installed/system profile cache), the read-only bundled resources folder, or a per-call + // scoped root such as the current G-code folder -- is part of the plugin system's normal + // workflow and does not need a prompt. + if (fs_category && !targets.empty()) { + const bool is_write = event_type != AuditEventCategory::FsRead; + const bool all_inside_allowed_root = + std::all_of(targets.begin(), targets.end(), [&](const std::string& target) { + return mgr->check_path_access(boost::filesystem::path(target), is_write).allowed; + }); + if (all_inside_allowed_root) + return 0; + } PluginInstallState state; const bool have_install_state = PluginManager::instance().get_install_state(mgr->current_plugin(), state); @@ -823,8 +941,7 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user const std::string plugin_name = state.plugin_name.empty() ? mgr->current_plugin() : state.plugin_name; - const std::vector targets = PluginAuditDetail::audit_targets(event_name, event_type, args); - std::vector* permission_list = PluginAuditDetail::permission_list_for(event_type, state.permissions); + std::vector* permission_list = PluginAuditDetail::permission_list_for(event_type, state.permissions); return PluginAuditDetail::decide_audited_event(*mgr, state, mgr->current_plugin(), plugin_name, event_name, event_type, targets, permission_list, call_site_ids); @@ -832,12 +949,20 @@ int PluginAuditManager::audit_hook(const char* event, PyObject* args, void* user void PluginAuditManager::install_hook() { - // data_dir() is the only globally-allowed root during plugin execution. - // The executable directory and resources directory are intentionally NOT allowed - // here: plugins must not access outside data_dir() (G-code plugins additionally get - // the temp G-code folder via a scoped root). + // data_dir() is the primary globally-allowed root during plugin execution: read+write. It + // covers the plugin system's own workflow needs -- each plugin's storage folder + // (data_dir()/orca_plugins) and the installed/system profile cache (data_dir()/system) -- + // without a separate, narrower grant for either (G-code plugins additionally get the temp + // G-code folder via a scoped root, see SlicingPipelinePluginCapabilityTrampoline). add_global_allowed_root(data_dir()); + // resources_dir() holds the app's bundled, shared assets (installed system profiles, the + // bundled TLS client cert, web assets). Plugins may read from it -- e.g. inspecting bundled + // profiles -- but must never write into the shared, potentially multi-user app install, so + // it is granted read-only. The bundled cert itself stays unreachable regardless, via the + // "cert" denied-path keyword seeded below. + add_global_allowed_root(resources_dir(), /*allow_write=*/false); + // The user's app config and cloud credentials live directly inside data_dir(), so the // root just granted would otherwise expose them to any plugin. Deny them by name. // @@ -850,6 +975,13 @@ void PluginAuditManager::install_hook() for (const auto& name : default_denied_filenames()) add_denied_filename(name); + // Categorical denies on top of the exact-name list above: no path a plugin can reach may + // contain a "secret", "cert"(ificate), or "conf"(ig) path component, regardless of which + // allowed root it happens to sit inside. default_denied_path_keywords() is the single + // source of this list; the tests seed from it too. + for (const auto& keyword : default_denied_path_keywords()) + add_denied_path_keyword(keyword); + if (PySys_AddAuditHook(audit_hook, this) < 0) { BOOST_LOG_TRIVIAL(error) << "[AUDIT] Failed to install CPython audit hook"; return; diff --git a/src/slic3r/plugin/PluginAuditManager.hpp b/src/slic3r/plugin/PluginAuditManager.hpp index 3b86014d42..d6751a57fd 100644 --- a/src/slic3r/plugin/PluginAuditManager.hpp +++ b/src/slic3r/plugin/PluginAuditManager.hpp @@ -24,6 +24,14 @@ struct AuditViolation { std::string reason; }; +// A filesystem root a plugin may access while an audit context is active. allow_write is +// false for a root that only grants reads (e.g. the bundled, shared resources folder) -- +// a write-shaped event never matches such a root, even though a read-shaped one does. +struct AllowedRoot { + boost::filesystem::path path; + bool allow_write = true; +}; + // The set of CPython audit events PluginAuditManager recognizes, grouped by the kind of // operation they represent. None means the event isn't one audit_hook() acts on at all. enum class AuditEventCategory { @@ -65,8 +73,11 @@ public: void clear_current_capability(); // --- allowed-roots registry --- - void add_global_allowed_root(const boost::filesystem::path& root); - void add_scoped_allowed_root(const boost::filesystem::path& root); + // allow_write = false registers a read-only root: a read-shaped event inside it is allowed, + // but a write/create/delete-shaped event is not, so it falls through to the normal + // prompt-or-deny path instead. + void add_global_allowed_root(const boost::filesystem::path& root, bool allow_write = true); + void add_scoped_allowed_root(const boost::filesystem::path& root, bool allow_write = true); // --- denied-filenames registry --- // Filenames a plugin may never touch, in any directory, regardless of the enclosing allowed @@ -89,10 +100,34 @@ public: // 8.3 short name is out of scope (see the design doc). This blocks direct access only. bool is_denied_filename(const boost::filesystem::path& candidate) const; + // --- denied-path-keyword registry --- + // Keywords that categorically deny a path if ANY of its components (directory or file + // name), not just the base name, contains one case-insensitively -- e.g. a "secrets" + // subfolder, a "certificates" folder, or a "conf"/"config" file anywhere the plugin can + // otherwise reach, including inside an allowed root. This is intentionally broader and + // fuzzier than the exact-name is_denied_filename registry: it exists to categorically rule + // out whole classes of sensitive paths (secrets, certificates, config) rather than name + // specific known files, at the cost of over-blocking an unrelated name that happens to + // contain the keyword -- the fail-safe direction, same rationale as is_denied_filename. + void add_denied_path_keyword(const std::string& keyword); + + // The list install_hook() seeds into the keyword registry. Exposed so tests seed the exact + // same set without a live interpreter. + static std::vector default_denied_path_keywords(); + + // True when any component of candidate's (canonicalized) path contains a registered + // keyword, case-insensitively. + bool is_denied_path_keyword(const boost::filesystem::path& candidate) const; + + // is_denied_filename(candidate) || is_denied_path_keyword(candidate). Convenience for + // call sites that only need to know whether a path is categorically off-limits, not which + // specific rule fired. + bool is_denied_path(const boost::filesystem::path& candidate) const; + // --- policy checks --- - // Shared core for every audited filesystem event. The deny list is consulted above the - // allowed roots, so a denied filename is blocked even when the file sits inside data_dir(), - // which is itself a global allowed root. + // Shared core for every audited filesystem event. The deny checks are consulted above the + // allowed roots, so a denied path is blocked even when it sits inside an allowed root (e.g. + // data_dir(), which is a global allowed root). AuditDecision check_path_access(const boost::filesystem::path& candidate, bool is_write); AuditDecision check_open(const std::string& path, const std::string& mode); @@ -130,15 +165,16 @@ private: static thread_local std::string m_current_plugin_key; static thread_local std::string m_current_capability_name; - static thread_local std::vector m_scoped_allowed_roots; + static thread_local std::vector m_scoped_allowed_roots; static thread_local bool m_audit_denial_pending; static thread_local bool m_has_last_violation; static thread_local AuditViolation m_last_violation; // mutable: is_denied_filename() and has_approved_ancestor() are const queries that must lock. mutable std::mutex m_mutex; - std::vector m_global_allowed_roots; + std::vector m_global_allowed_roots; std::vector m_denied_filenames; + std::vector m_denied_path_keywords; std::unordered_map> m_approved_call_sites; // plugin_key -> call-site ids }; @@ -160,7 +196,7 @@ public: private: std::string m_previous_id; std::string m_previous_capability; - std::vector m_previous_scoped_roots; + std::vector m_previous_scoped_roots; }; } // namespace Slic3r diff --git a/tests/slic3rutils/plugin_test_utils.hpp b/tests/slic3rutils/plugin_test_utils.hpp index d60b3441c8..cbdcf1ff95 100644 --- a/tests/slic3rutils/plugin_test_utils.hpp +++ b/tests/slic3rutils/plugin_test_utils.hpp @@ -34,4 +34,24 @@ struct ScopedDataDir ScopedDataDir& operator=(const ScopedDataDir&) = delete; }; +// Point resources_dir() at a throwaway directory for the lifetime of a test and restore the +// previous value afterwards, mirroring ScopedDataDir. +struct ScopedResourcesDir +{ + ScopedTemporaryDir tmp; + boost::filesystem::path dir; + std::string previous; + + explicit ScopedResourcesDir(const std::string& tag) + : tmp("orca-" + tag), dir(tmp.path()), previous(resources_dir()) + { + set_resources_dir(dir.string()); + } + + ~ScopedResourcesDir() { set_resources_dir(previous); } + + ScopedResourcesDir(const ScopedResourcesDir&) = delete; + ScopedResourcesDir& operator=(const ScopedResourcesDir&) = delete; +}; + } // namespace Slic3r diff --git a/tests/slic3rutils/test_plugin_audit.cpp b/tests/slic3rutils/test_plugin_audit.cpp index 20fc2b86e7..71ce692671 100644 --- a/tests/slic3rutils/test_plugin_audit.cpp +++ b/tests/slic3rutils/test_plugin_audit.cpp @@ -27,6 +27,16 @@ void seed_denied_names() mgr.add_denied_filename(name); } +// Seed the keyword registry with the same list install_hook() uses. Same rationale as +// seed_denied_names(): a process-singleton registry, seeded from the single shared source so +// production and tests cannot drift apart. +void seed_denied_keywords() +{ + PluginAuditManager& mgr = PluginAuditManager::instance(); + for (const auto& keyword : PluginAuditManager::default_denied_path_keywords()) + mgr.add_denied_path_keyword(keyword); +} + } // namespace TEST_CASE("Plugin audit denies app config and token filenames anywhere", "[audit]") @@ -190,3 +200,139 @@ TEST_CASE("Plugin audit does not constrain non-plugin code", "[audit]") CHECK(mgr.check_open(conf.string(), "w").allowed); CHECK(mgr.check_open(conf.string(), "r").allowed); } + +TEST_CASE("Plugin audit denies secret/certificate/config-like paths by keyword", "[audit]") +{ + seed_denied_keywords(); + const PluginAuditManager& mgr = PluginAuditManager::instance(); + + SECTION("a 'secrets' directory component is denied") + { + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/secrets/api_key.json"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/secret/token.txt"))); + } + + SECTION("a 'certificate(s)' directory component is denied") + { + CHECK(mgr.is_denied_path_keyword(fs::path("/resources/cert/slicer_base64.cer"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/resources/certificates/ca.pem"))); + } + + SECTION("a 'conf'/'config' directory or file component is denied") + { + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/conf/settings.json"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/config/settings.json"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/plugin.conf"))); + } + + SECTION("matching is case-insensitive") + { + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/SECRETS/token.txt"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/resources/CertBundle/ca.pem"))); + CHECK(mgr.is_denied_path_keyword(fs::path("/plugin/CONFIG.JSON"))); + } + + SECTION("matching is not limited to the base name -- any ancestor component counts") + { + CHECK(mgr.is_denied_path_keyword(fs::path("/data/secrets/nested/deep/file.txt"))); + } + + SECTION("an unrelated path is not denied") + { + CHECK_FALSE(mgr.is_denied_path_keyword(fs::path("/plugin/output/model.gcode"))); + CHECK_FALSE(mgr.is_denied_path_keyword(fs::path("/plugin/storage/state.json"))); + } + + SECTION("an empty path is not denied") + { + CHECK_FALSE(mgr.is_denied_path_keyword(fs::path())); + } +} + +TEST_CASE("Plugin audit is_denied_path combines the filename and keyword registries", "[audit]") +{ + seed_denied_names(); + seed_denied_keywords(); + const PluginAuditManager& mgr = PluginAuditManager::instance(); + + SECTION("a filename-registry match is denied") + { + CHECK(mgr.is_denied_path(fs::path(SLIC3R_APP_KEY ".conf"))); + } + + SECTION("a keyword-registry match is denied") + { + CHECK(mgr.is_denied_path(fs::path("/plugin/secrets/token.txt"))); + } + + SECTION("a path matching neither registry is not denied") + { + CHECK_FALSE(mgr.is_denied_path(fs::path("/plugin/output/model.gcode"))); + } +} + +TEST_CASE("Plugin audit a read-only allowed root blocks writes but not reads", "[audit]") +{ + ScopedDataDir data_dir_guard("plugin-audit-readonly"); + ScopedResourcesDir resources_dir_guard("plugin-audit-readonly-resources"); + seed_denied_names(); + seed_denied_keywords(); + + PluginAuditManager& mgr = PluginAuditManager::instance(); + mgr.add_global_allowed_root(resources_dir(), /*allow_write=*/false); + + ScopedPluginAuditContext ctx("test_plugin", ""); + + const fs::path readonly_file = fs::path(resources_dir()) / "profiles" / "vendor.json"; + + SECTION("a read inside the read-only root is allowed") + { + CHECK(mgr.check_open(readonly_file.string(), "r").allowed); + } + + SECTION("a write inside the read-only root is blocked") + { + AuditDecision decision = mgr.check_open(readonly_file.string(), "w"); + CHECK_FALSE(decision.allowed); + CHECK(decision.reason == "outside allowed root"); + } + + SECTION("a create inside the read-only root is blocked") + { + AuditDecision decision = mgr.check_path_access(readonly_file, /*is_write=*/true); + CHECK_FALSE(decision.allowed); + } + + SECTION("the bundled cert underneath the read-only root is denied even for reads") + { + const fs::path cert = fs::path(resources_dir()) / "cert" / "slicer_base64.cer"; + AuditDecision decision = mgr.check_open(cert.string(), "r"); + CHECK_FALSE(decision.allowed); + CHECK(decision.reason == "denied path keyword"); + } +} + +TEST_CASE("Plugin audit a scoped root can also be registered read-only", "[audit]") +{ + ScopedDataDir data_dir_guard("plugin-audit-scoped-readonly"); + seed_denied_names(); + seed_denied_keywords(); + + PluginAuditManager& mgr = PluginAuditManager::instance(); + + const fs::path readonly_dir = fs::path(data_dir()) / "readonly_scope"; + fs::create_directories(readonly_dir); + + ScopedPluginAuditContext ctx("test_plugin", ""); + mgr.add_scoped_allowed_root(readonly_dir, /*allow_write=*/false); + + SECTION("a read inside the scoped read-only root is allowed") + { + CHECK(mgr.check_open((readonly_dir / "vendor.json").string(), "r").allowed); + } + + SECTION("a write inside the scoped read-only root is blocked") + { + CHECK_FALSE(mgr.check_open((readonly_dir / "vendor.json").string(), "w").allowed); + } +} From 111364d8808750fff1b02b3bb331b5f87781aeaa Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 20:08:35 +0800 Subject: [PATCH 062/164] Add design doc for macOS FFmpeg player Co-Authored-By: Claude --- .../2026-08-14-ffmpeg-player-macos-design.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 docs/superpowers/specs/2026-08-14-ffmpeg-player-macos-design.md diff --git a/docs/superpowers/specs/2026-08-14-ffmpeg-player-macos-design.md b/docs/superpowers/specs/2026-08-14-ffmpeg-player-macos-design.md new file mode 100644 index 0000000000..812a7bf735 --- /dev/null +++ b/docs/superpowers/specs/2026-08-14-ffmpeg-player-macos-design.md @@ -0,0 +1,110 @@ +# FFmpeg Media Player for macOS — Design + +Date: 2026-08-14 +Branch: `dev/ffmpeg-player-macos` + +## Problem + +The branch's new FFmpeg-based media player (`wxMediaCtrl3` + `AVVideoDecoder`) is used on +Windows and Linux, but macOS still runs the old player: `wxMediaCtrl2.mm`, an ObjC +`BambuPlayer` class dlsym'd from the Bambu network plugin that renders via CALayer. +On macOS, `wxMediaCtrl3` is currently aliased to `wxMediaCtrl2` and FFmpeg is not linked +into the app at all. + +Goal: make macOS use the same FFmpeg player as Windows/Linux, linking the **static** +FFmpeg libraries from the deps build instead of dynamic ones. + +## Current state (verified) + +- New player (Win/Linux): `GUI/wxMediaCtrl3.cpp` + `GUI/AVVideoDecoder.cpp`. Decodes with + FFmpeg (libavcodec/libswscale/libavutil), renders frames into `wxImage` (non-Windows) / + `wxBitmap` (Windows) drawn in a `paintEvent`, feeds via the `Bambu_*` C API + (`BambuTunnel.h`, `BAMBU_DYNAMIC`) dlsym'd from the network plugin through + `StaticBambuLib::get()` (`GUI/Printer/PrinterFileSystem.cpp`, compiled on all platforms). +- Old player (macOS): `GUI/wxMediaCtrl2.mm` uses the ObjC `BambuPlayer` class found via + `dlsym(module, "OBJC_CLASS_$_BambuPlayer")` in `libBambuSource.dylib`. +- The macOS network plugin `libBambuSource.dylib` already exports the full Bambu C API + (verified with `nm`), so the new player needs zero plugin changes. +- FFmpeg linking in `src/slic3r/CMakeLists.txt` is guarded by `if (NOT APPLE)` — + macOS currently does not link FFmpeg. +- `deps/FFMPEG/FFMPEG.cmake`: non-MSVC branch builds FFmpeg from source with + `--enable-shared`. The existing arm64 deps build on the dev machine happened to be + configured with both static and shared enabled, so `libavcodec.a` / `libswscale.a` / + `libavutil.a` are already present at + `deps/build/arm64/OrcaSlicer_dep/usr/local/lib/`. +- `EVT_MEDIA_CTRL_STAT` is `wxDEFINE_EVENT`'d in `wxMediaCtrl2.cpp` (Win/Linux) and + `wxMediaCtrl2.mm` (macOS); the define in `wxMediaCtrl3.cpp` is commented out. +- `wxMediaCtrl2` is never instantiated anywhere on any platform — dead code. +- `StatusPanel` already creates `wxMediaCtrl3`; `MediaPlayCtrl` only uses the + `wxMediaCtrl3` interface (`Load/Play/Stop/GetState/GetVideoSize/GetLastError/SetIdleImage`), + so no UI-side changes are needed. + +## Approach (approved) + +**Reuse the shared player on macOS.** Compile the existing `wxMediaCtrl3.cpp` + +`AVVideoDecoder.cpp` on macOS so all three platforms run one implementation. +Rendering uses the existing `wxImage` → `DrawBitmap` paint path, identical to Linux. +Known trade-off: frames are scaled to the widget's logical (1x) size, so Retina is +slightly soft compared to the old CALayer player. Accepted for now; a Retina-aware +scaling follow-up is possible later. + +Rejected alternative: a native CGImage/CALayer renderer for macOS — faster and +Retina-crisp, but adds a second render implementation to maintain. + +## Changes + +### 1. Enable the FFmpeg player on macOS (source) + +- `GUI/wxMediaCtrl3.h`: remove the `#ifdef __WXMAC__` branch (lines 18–22) that aliases + `wxMediaCtrl3` → `wxMediaCtrl2`. macOS then compiles the real `wxMediaCtrl3` class, + including the `BAMBU_DYNAMIC` BambuTunnel path used on Linux. +- Event symbol fix: move `wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent)` into + `wxMediaCtrl3.cpp` (uncomment the existing line) and remove it from + `wxMediaCtrl2.cpp`. One definition total in the lib; all three platforms resolve it. + +### 2. Static FFmpeg linking (deps + app) + +- `deps/FFMPEG/FFMPEG.cmake`: in the non-MSVC branch, pass + `--disable-shared --enable-static` when `APPLE`. Linux keeps `--enable-shared`; + Windows keeps its prebuilt shared DLL zips. Fresh macOS deps builds install only + `libavcodec.a` / `libswscale.a` / `libavutil.a` — no dylibs to bundle, no + rpath/install_name handling. (The existing local arm64 deps build already contains + the `.a` files, so no deps rebuild is strictly needed to try the change locally, + but a fresh CI deps build must produce them.) +- `src/slic3r/CMakeLists.txt`: + - APPLE branch of `SLIC3R_GUI_SOURCES`: add `GUI/wxMediaCtrl3.cpp`, + `GUI/wxMediaCtrl3.h`, `GUI/AVVideoDecoder.cpp`, `GUI/AVVideoDecoder.hpp`; + remove `GUI/wxMediaCtrl2.mm` and `GUI/wxMediaCtrl2.h` (the `.h` stays on + disk for the Win/Linux build of `wxMediaCtrl2.cpp`, but nothing on macOS + includes it after this change). + - Add an APPLE mirror of the `NOT APPLE` FFmpeg block: `find_library` for + `libavcodec.a`, `libswscale.a`, `libavutil.a` under `${CMAKE_PREFIX_PATH}/lib` + with `NO_DEFAULT_PATH`, link them (order avcodec → swscale → avutil), and add + `${CMAKE_PREFIX_PATH}/include` as a SYSTEM include directory. Deps are built with + `--disable-zlib` and no external codecs, so the three static libs link cleanly. + +### 3. Remove the old player + +- Delete `GUI/wxMediaCtrl2.mm` and `GUI/BambuPlayer/BambuPlayer.h` (header used only + by the `.mm`; the real `BambuPlayer` lives inside the network plugin). +- Remove the now-dead `__WXMAC__` section of `GUI/wxMediaCtrl2.h`. +- `wxMediaCtrl2.cpp` (Win/Linux) stays in the build as-is (dead but harmless; out of + scope to remove on this branch). + +### 4. Verification + +- Build on macOS: `cmake --build build_arm64` (or `build/arm64`). +- Confirm no dynamic FFmpeg dependency: `otool -L` on the app binary shows no `libav*` + dylib references. +- Runtime: with the network plugin loaded, the Device tab camera preview streams via + the FFmpeg player (check the device page / `MediaPlayCtrl`). +- macOS `ctest` still passes — static linking means no test-executable `.so` copying + hacks (unlike the Linux shared-lib setup). + +## Out of scope + +- Linux (shared libs, AppImage/flatpak bundling) and Windows (prebuilt DLL zips) + keep their current FFmpeg setup. +- Retina-aware frame scaling / native CGImage rendering (follow-up if visual quality + is judged insufficient). +- Audio streaming (neither player plays audio in this UI path). From ec31750330e272e1a6ccf3f23d5f0e2617a74d58 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 20:11:09 +0800 Subject: [PATCH 063/164] Add implementation plan for macOS FFmpeg player Co-Authored-By: Claude --- .../plans/2026-08-14-ffmpeg-player-macos.md | 376 ++++++++++++++++++ 1 file changed, 376 insertions(+) create mode 100644 docs/superpowers/plans/2026-08-14-ffmpeg-player-macos.md diff --git a/docs/superpowers/plans/2026-08-14-ffmpeg-player-macos.md b/docs/superpowers/plans/2026-08-14-ffmpeg-player-macos.md new file mode 100644 index 0000000000..811626fc8b --- /dev/null +++ b/docs/superpowers/plans/2026-08-14-ffmpeg-player-macos.md @@ -0,0 +1,376 @@ +# macOS FFmpeg Media Player Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Make macOS use the same FFmpeg-based media player (`wxMediaCtrl3` + `AVVideoDecoder`) as Windows/Linux, linking the static FFmpeg libraries from the deps build, and remove the old `wxMediaCtrl2.mm` BambuPlayer-based player. + +**Architecture:** The new player is platform-neutral C++ already used on Linux/Windows. Enabling it on macOS is pure build wiring: compile `wxMediaCtrl3.cpp` + `AVVideoDecoder.cpp` on macOS, drop the `__WXMAC__` alias that redirects `wxMediaCtrl3` to the old `wxMediaCtrl2`, and link static FFmpeg (`libavcodec.a`/`libswscale.a`/`libavutil.a`) from the deps install. The Bambu stream API is dlsym'd at runtime from the network plugin (`libBambuSource.dylib`), which already exports it — no plugin changes needed. Rendering reuses the existing `wxImage` → `DrawBitmap` paint path (same as Linux). + +**Tech Stack:** C++17, wxWidgets, CMake, FFmpeg 7.0.3 (libavcodec/libswscale/libavutil), macOS (Xcode generator), `deps/` ExternalProject build system. + +## Global Constraints + +- Branch: `dev/ffmpeg-player-macos`. Commit after every task. +- **Linux and Windows builds must not change** — the FFmpeg deps flag change is guarded by `APPLE`; Linux keeps `--enable-shared`, Windows keeps its prebuilt DLL zips. +- Static FFmpeg only on macOS: deps produce `libavcodec.a`/`libswscale.a`/`libavutil.a`; the app links those explicitly — the app binary must have **no** `libav*` dylib references (`otool -L` check). +- Follow existing code style: PascalCase classes, snake_case functions, C++17. +- No changes to `StatusPanel.cpp`, `MediaPlayCtrl.*`, or the BambuTunnel interface — the app already creates `wxMediaCtrl3` and uses only its public interface. +- The player cannot be unit-tested (hardware/plugin-dependent GUI code); verification is build-level, link-level, and manual runtime on a Mac. +- `localization/i18n/list.txt` references only `wxMediaCtrl2.cpp` (Win/Linux, stays) — no translation-list changes needed. +- Build dirs on the dev machine: main app = `build_arm64/` (Xcode generator, multi-config), deps = `deps/build/arm64/` (Unix Makefiles). App target name: `OrcaSlicer`. Substitute your own configured build dirs where noted. + +--- + +### Task 1: Enable wxMediaCtrl3 on macOS and link static FFmpeg + +**Files:** +- Modify: `src/slic3r/GUI/wxMediaCtrl3.h` (lines 18–22: the `#ifdef __WXMAC__` alias branch) +- Modify: `src/slic3r/GUI/wxMediaCtrl3.cpp:13` (uncomment the event define) +- Modify: `src/slic3r/GUI/wxMediaCtrl2.cpp:101` (remove the event define) +- Modify: `src/slic3r/CMakeLists.txt` (APPLE source list ~lines 779–792; FFmpeg link block ~lines 905–910) + +**Interfaces:** +- Consumes: nothing new (all classes already exist). +- Produces: `wxMediaCtrl3` class compiled on macOS with the same interface as Linux/Windows — `Load(wxURI)`, `Play()`, `Stop()`, `SetIdleImage(wxString)`, `GetState()`, `GetLastError()`, `GetVideoSize()`, event `EVT_MEDIA_CTRL_STAT` defined once in the lib (from `wxMediaCtrl3.cpp`). + +- [ ] **Step 1: Remove the macOS alias in wxMediaCtrl3.h** + +Current (lines 16–23 of `src/slic3r/GUI/wxMediaCtrl3.h`): + +```cpp +void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); + +#ifdef __WXMAC__ + +#include "wxMediaCtrl2.h" +#define wxMediaCtrl3 wxMediaCtrl2 + +#else + +#define BAMBU_DYNAMIC +``` + +New: + +```cpp +void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); + +#define BAMBU_DYNAMIC +``` + +Also remove the matching `#endif` that closed the `#else` branch (the one before the final `#endif /* wxMediaCtrl3_h */`), so the file's `#ifndef`/`#endif` guard pair stays balanced. + +- [ ] **Step 2: Move the EVT_MEDIA_CTRL_STAT definition into wxMediaCtrl3.cpp** + +In `src/slic3r/GUI/wxMediaCtrl3.cpp:13`, uncomment: + +```cpp +//wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); +``` + +becomes: + +```cpp +wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); +``` + +In `src/slic3r/GUI/wxMediaCtrl2.cpp:101`, delete: + +```cpp +wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); +``` + +(One definition total in the lib — `MediaPlayCtrl.cpp:59` binds this event on the media ctrl.) + +- [ ] **Step 3: Update the APPLE source list in CMakeLists.txt** + +In `src/slic3r/CMakeLists.txt`, the APPLE branch (currently compiles `wxMediaCtrl2.mm`, which becomes dead on macOS): + +```cmake + GUI/wxMediaCtrl2.mm + GUI/wxMediaCtrl2.h + GUI/wxMediaCtrl3.h + ) +``` + +becomes: + +```cmake + GUI/AVVideoDecoder.cpp + GUI/AVVideoDecoder.hpp + GUI/wxMediaCtrl3.cpp + GUI/wxMediaCtrl3.h + ) +``` + +(The `else ()` branch — Win/Linux — stays exactly as it is.) + +- [ ] **Step 4: Link static FFmpeg on macOS** + +In `src/slic3r/CMakeLists.txt`, the FFmpeg block (currently `if (NOT APPLE)`): + +```cmake +if (NOT APPLE) + pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET + libavcodec + libswscale + libavutil + ) + target_link_libraries(libslic3r_gui PkgConfig::LIBAV) +endif() +``` + +becomes: + +```cmake +if (APPLE) + # Static FFmpeg from the deps install: nothing to bundle into the .app, + # no rpath/install_name handling. Order matters: avcodec -> swscale -> avutil. + find_library(LIBAVCODEC_LIBRARY NAMES libavcodec.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBSWSCALE_LIBRARY NAMES libswscale.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBAVUTIL_LIBRARY NAMES libavutil.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY}) + target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include) +else () + pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET + libavcodec + libswscale + libavutil + ) + target_link_libraries(libslic3r_gui PkgConfig::LIBAV) +endif() +``` + +The deps install (`${CMAKE_PREFIX_PATH}/lib`) already contains the three `.a` files from the existing arm64 deps build — no deps rebuild needed for this task. + +- [ ] **Step 5: Reconfigure and build the app** + +Run (Xcode generator; `cmake` re-runs automatically on build): + +```bash +cmake --build build_arm64 --config RelWithDebInfo --target OrcaSlicer +``` + +Expected: configure succeeds (no `pkg_check_modules` errors on macOS, `find_library` finds all three `.a` files), compile succeeds (`wxMediaCtrl3.cpp` and `AVVideoDecoder.cpp` compile on macOS without changes), link succeeds. + +If CMake complains that `wxMediaCtrl3.h` is included but not in the source list or similar IDE-only warnings — ignore; headers in the list are cosmetic. + +- [ ] **Step 6: Verify no dynamic FFmpeg dependency** + +```bash +otool -L build_arm64/src/RelWithDebInfo/OrcaSlicer.app/Contents/MacOS/OrcaSlicer | grep -i "libav" || echo "OK: no dynamic FFmpeg" +``` + +Expected: prints `OK: no dynamic FFmpeg` (empty grep output). This is the whole point of static linking — nothing to bundle into the `.app`. + +- [ ] **Step 7: Quick sanity — macOS unit tests still pass** + +```bash +ctest --test-dir build_arm64/tests/libslic3r --output-on-failure +``` + +Expected: passes (add `-C RelWithDebInfo` if the multi-config generator requires it). If no tests were built in this build dir, build target `tests` first (`cmake --build build_arm64 --config RelWithDebInfo --target tests`). + +- [ ] **Step 8: Commit** + +```bash +git add src/slic3r/CMakeLists.txt src/slic3r/GUI/wxMediaCtrl3.h src/slic3r/GUI/wxMediaCtrl3.cpp src/slic3r/GUI/wxMediaCtrl2.cpp +git commit -m "feat: use FFmpeg media player on macOS with static FFmpeg" +``` + +--- + +### Task 2: Static-only FFmpeg in the macOS deps build + +**Files:** +- Modify: `deps/FFMPEG/FFMPEG.cmake` (non-MSVC branch, APPLE section and CONFIGURE_COMMAND) + +**Interfaces:** +- Consumes: nothing. +- Produces: a deps install on macOS containing only `libavcodec.a`, `libswscale.a`, `libavutil.a` (+ headers) — no `libav*` dylibs, so no bundling/rpath machinery is ever needed on macOS. Linux and Windows output are unchanged. + +- [ ] **Step 1: Add the static flag variable** + +In `deps/FFMPEG/FFMPEG.cmake`, inside the non-MSVC `else ()` branch, in the existing `if (APPLE)` block: + +```cmake + if (APPLE) + set(_minos_cmd + "CFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" + "LDFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" + ) +``` + +add after the `_minos_cmd` set: + +```cmake + # Static FFmpeg: nothing to bundle into the .app, no rpath handling. + # Shared flags must come AFTER --enable-shared below so they win. + set(_link_cmd --enable-static --disable-shared) +``` + +and add a matching `else ()` after the `if (IS_CROSS_COMPILE) ... endif()` block inside that `if (APPLE)`, so non-Apple Unix keeps shared: + +```cmake + else () + set(_link_cmd --enable-shared) + endif () +``` + +(If the existing `if (IS_CROSS_COMPILE)` block is the last thing inside `if (APPLE)`, the new `else ()` closes the `if (APPLE)` itself.) + +- [ ] **Step 2: Use the variable in CONFIGURE_COMMAND** + +In the `ExternalProject_Add(dep_FFMPEG ...)` configure command: + +```cmake + "--prefix=${DESTDIR}" + --enable-shared +``` + +becomes: + +```cmake + "--prefix=${DESTDIR}" + --enable-shared + ${_link_cmd} +``` + +Order matters: `--enable-shared` comes first, then `--enable-static --disable-shared` (APPLE) or `--enable-shared` (Linux) — the last flag wins in FFmpeg configure. + +- [ ] **Step 3: Rebuild the FFmpeg dep (slow — several minutes, run in background)** + +The changed CONFIGURE_COMMAND invalidates the ExternalProject stamp, so this re-configures and rebuilds FFmpeg: + +```bash +cmake --build deps/build/arm64 --target dep_FFMPEG +``` + +For a fully clean static-only check (removes the previous shared build tree, which can leave stale `.dylib` files behind in the in-source build): + +```bash +rm -rf deps/build/arm64/dep_FFMPEG-prefix +cmake --build deps/build/arm64 --target dep_FFMPEG +``` + +- [ ] **Step 4: Verify the artifacts** + +```bash +ls deps/build/arm64/dep_FFMPEG-prefix/src/dep_FFMPEG/libavcodec/*.a +ls deps/build/arm64/dep_FFMPEG-prefix/src/dep_FFMPEG/libavcodec/*.dylib 2>/dev/null || echo "OK: no dylibs" +``` + +Expected: `libavcodec.a` present, second command prints `OK: no dylibs`. Check `libavutil` and `libswscale` the same way. + +- [ ] **Step 5: Verify the app still links against the static libs** + +```bash +cmake --build build_arm64 --config RelWithDebInfo --target OrcaSlicer +otool -L build_arm64/src/RelWithDebInfo/OrcaSlicer.app/Contents/MacOS/OrcaSlicer | grep -i "libav" || echo "OK: no dynamic FFmpeg" +``` + +Expected: build succeeds, `OK: no dynamic FFmpeg`. + +- [ ] **Step 6: Commit** + +```bash +git add deps/FFMPEG/FFMPEG.cmake +git commit -m "build: build static-only FFmpeg for macOS deps" +``` + +--- + +### Task 3: Remove the old macOS player + +**Files:** +- Delete: `src/slic3r/GUI/wxMediaCtrl2.mm` +- Delete: `src/slic3r/GUI/BambuPlayer/BambuPlayer.h` (and the empty `BambuPlayer/` dir) +- Modify: `src/slic3r/GUI/wxMediaCtrl2.h` (remove the `#ifdef __WXMAC__` section, lines 22–60) + +**Interfaces:** +- Consumes: Task 1 (macOS no longer references `wxMediaCtrl2` — nothing includes `wxMediaCtrl2.h` on macOS anymore; `wxMediaCtrl2` is never instantiated on any platform). +- Produces: a clean tree where the old BambuPlayer-based player is gone from macOS. The `BambuPlayer` ObjC class itself remains inside the network plugin (external prebuilt binary) — only the GUI-side consumer is removed. + +- [ ] **Step 1: Delete the old player files** + +```bash +git rm src/slic3r/GUI/wxMediaCtrl2.mm +git rm src/slic3r/GUI/BambuPlayer/BambuPlayer.h +rmdir src/slic3r/GUI/BambuPlayer 2>/dev/null || true +``` + +- [ ] **Step 2: Strip the __WXMAC__ section from wxMediaCtrl2.h** + +In `src/slic3r/GUI/wxMediaCtrl2.h`, remove the entire macOS branch of the `#ifdef __WXMAC__` guard — from `#ifdef __WXMAC__` (line 22) through the closing `};` of the mac class (line 60), and the `#else` marker — leaving only the non-mac `class wxMediaCtrl2 : public wxMediaCtrl { ... };` definition followed by the final `#endif /* wxMediaCtrl2_h */`. The resulting file keeps its `#ifndef`/`#endif` include guard pair balanced. + +The file stays on disk because Win/Linux compile `wxMediaCtrl2.cpp`, which includes it. + +- [ ] **Step 3: Grep for leftover references** + +```bash +grep -rn "wxMediaCtrl2.mm\|BambuPlayer/BambuPlayer.h\|BambuPlayer" src/slic3r --include="*.cpp" --include="*.h" --include="*.mm" --include="*.txt" +``` + +Expected: no hits in `src/slic3r/GUI` (ignore `localization/i18n/list.txt:196`, which lists the Win/Linux `wxMediaCtrl2.cpp` and stays). + +- [ ] **Step 4: Rebuild the app** + +```bash +cmake --build build_arm64 --config RelWithDebInfo --target OrcaSlicer +``` + +Expected: configure + compile + link succeed with the deleted files gone. + +- [ ] **Step 5: Commit** + +```bash +git add -A src/slic3r/GUI +git commit -m "refactor: remove old BambuPlayer-based media player from macOS" +``` + +--- + +### Task 4: Runtime verification on hardware + +**Files:** none — manual verification. + +**Interfaces:** consumes all prior tasks. Final gate: the new player must actually stream on a Mac. + +- [ ] **Step 1: Launch the freshly built app** + +```bash +open build_arm64/src/RelWithDebInfo/OrcaSlicer.app +``` + +Expected: app launches normally; no crash in the network/device subsystem. + +- [ ] **Step 2: Load the network plugin and open the Device tab** + +Log in / ensure the network plugin (`libBambuSource.dylib`) loads, select a printer, open the Device tab (camera monitoring panel). + +Expected: the camera preview area shows the idle image initially (no crash — this exercises `wxMediaCtrl3::SetIdleImage` and the `wxImage` load path on macOS for the first time). + +- [ ] **Step 3: Start the stream and watch it render** + +Click play / wait for `MediaPlayCtrl` to start the stream. + +Expected: live video renders in the panel. Check the console/log output (`BOOST_LOG` goes to the terminal if run from it, or check the log file): +- `stat_log ...` lines appear (the `EVT_MEDIA_CTRL_STAT` path is live — proves the Bambu C API dlsym worked from `libBambuSource.dylib`); +- no repeated decode/error messages like `AVVideoDecoder: ...` or `can not find function ...` (proves `StaticBambuLib::get` resolved all Bambu functions); +- Stop/Play toggle works; idle image reappears on stop; +- window resize keeps aspect ratio (exercises `DoSetSize`/`adjust_frame_size`/`paintEvent`). + +- [ ] **Step 4: Confirm the old player is really gone** + +Expected: nothing in the logs references `BambuPlayer` (the ObjC class is no longer dlsym'd); the video path is entirely `wxMediaCtrl3` + `AVVideoDecoder`. + +If a printer is unavailable, at minimum verify Steps 1–2 (launch + idle image) and note in the PR that live-stream verification needs hardware. + +- [ ] **Step 5: Final review pass** + +```bash +git log --oneline -6 +git show --stat HEAD # and each of the three task commits +``` + +Expected: the last 4 commits are the design doc + the 3 implementation tasks (each task commit touches only its listed files). Review the diff for scope: no Linux/Windows changes beyond the two `EVT_MEDIA_CTRL_STAT` lines in Task 1, no `StatusPanel`/`MediaPlayCtrl` changes. From 2c8f56dd849fd1aadccf8f0a50c8427bf46497d4 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 21:01:43 +0800 Subject: [PATCH 064/164] feat: use FFmpeg media player on macOS with static FFmpeg --- src/slic3r/CMakeLists.txt | 15 ++++++++++++--- src/slic3r/GUI/wxMediaCtrl2.cpp | 2 -- src/slic3r/GUI/wxMediaCtrl3.cpp | 2 +- src/slic3r/GUI/wxMediaCtrl3.h | 9 --------- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 0436c9a817..afdee92145 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -784,8 +784,9 @@ if (APPLE) GUI/DeepLinkHandlerMac.mm GUI/DeepLinkHandlerMac.h GUI/GUI_UtilsMac.mm - GUI/wxMediaCtrl2.mm - GUI/wxMediaCtrl2.h + GUI/AVVideoDecoder.cpp + GUI/AVVideoDecoder.hpp + GUI/wxMediaCtrl3.cpp GUI/wxMediaCtrl3.h ) FIND_LIBRARY(DISKARBITRATION_LIBRARY DiskArbitration) @@ -903,7 +904,15 @@ if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE) endif () -if (NOT APPLE) +if (APPLE) + # Static FFmpeg from the deps install: nothing to bundle into the .app, + # no rpath/install_name handling. Order matters: avcodec -> swscale -> avutil. + find_library(LIBAVCODEC_LIBRARY NAMES libavcodec.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBSWSCALE_LIBRARY NAMES libswscale.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBAVUTIL_LIBRARY NAMES libavutil.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY}) + target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include) +else () pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET libavcodec libswscale diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 6ab9ec5913..7500de6626 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -98,8 +98,6 @@ public: }; #endif -wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); - wxMediaCtrl2::wxMediaCtrl2(wxWindow *parent) { #if defined(__LINUX__) && defined(__WXGTK__) diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index 0e4bffb3a7..098db68808 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -10,7 +10,7 @@ #include #endif -//wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); +wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); BEGIN_EVENT_TABLE(wxMediaCtrl3, wxWindow) diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index 859722d421..1d64955ffd 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -15,13 +15,6 @@ wxDECLARE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); -#ifdef __WXMAC__ - -#include "wxMediaCtrl2.h" -#define wxMediaCtrl3 wxMediaCtrl2 - -#else - #define BAMBU_DYNAMIC #include #include @@ -89,6 +82,4 @@ private: std::thread m_thread; }; -#endif - #endif /* wxMediaCtrl3_h */ From 4531dc2af178a6aeaedbfd8dcfdc068a02624a70 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 21:10:26 +0800 Subject: [PATCH 065/164] build: build static-only FFmpeg for macOS deps Co-Authored-By: Claude --- deps/FFMPEG/FFMPEG.cmake | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/deps/FFMPEG/FFMPEG.cmake b/deps/FFMPEG/FFMPEG.cmake index 26ce001833..42e915ca82 100644 --- a/deps/FFMPEG/FFMPEG.cmake +++ b/deps/FFMPEG/FFMPEG.cmake @@ -22,10 +22,13 @@ if (MSVC) else () if (APPLE) - set(_minos_cmd - "CFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" - "LDFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}" + set(_minos_cmd + "--extra-cflags=-mmacosx-version-min=${DEP_OSX_TARGET}" + "--extra-ldflags=-mmacosx-version-min=${DEP_OSX_TARGET}" ) + # Static FFmpeg: nothing to bundle into the .app, no rpath handling. + # Shared flags must come AFTER --enable-shared below so they win. + set(_link_cmd --enable-static --disable-shared) if (IS_CROSS_COMPILE) set(_cross_cmd --enable-cross-compile) set(_pic_cmd --enable-pic) @@ -37,7 +40,9 @@ else () set(_cc_cmd "--cc=clang -arch x86_64") endif() endif() - endif() + else () + set(_link_cmd --enable-shared) + endif () set(_build_j -j) if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL}) @@ -55,6 +60,8 @@ else () ${_cc_cmd} "--prefix=${DESTDIR}" --enable-shared + ${_link_cmd} + ${_minos_cmd} --disable-doc --enable-small --disable-outdevs From 97955dbab8ffcc014fa276fbab019b953d45f9a0 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 21:15:20 +0800 Subject: [PATCH 066/164] refactor: remove old BambuPlayer-based media player from macOS Co-Authored-By: Claude --- src/slic3r/GUI/BambuPlayer/BambuPlayer.h | 30 ---- src/slic3r/GUI/wxMediaCtrl2.h | 44 ------ src/slic3r/GUI/wxMediaCtrl2.mm | 181 ----------------------- 3 files changed, 255 deletions(-) delete mode 100644 src/slic3r/GUI/BambuPlayer/BambuPlayer.h delete mode 100644 src/slic3r/GUI/wxMediaCtrl2.mm diff --git a/src/slic3r/GUI/BambuPlayer/BambuPlayer.h b/src/slic3r/GUI/BambuPlayer/BambuPlayer.h deleted file mode 100644 index fe5f0d049a..0000000000 --- a/src/slic3r/GUI/BambuPlayer/BambuPlayer.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// BambuPlayer.h -// BambuPlayer -// -// Created by cmguo on 2021/12/6. -// - -#import -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface BambuPlayer : NSObject - -+ (void) initialize; - -- (instancetype) initWithDisplayLayer: (AVSampleBufferDisplayLayer*) layer; -- (instancetype) initWithImageView: (NSView*) view; -- (int) open: (char const *) url; -- (NSSize) videoSize; -- (int) play; -- (void) stop; -- (void) close; - -- (void) setLogger: (void (*)(void const * context, int level, char const * msg)) logger withContext: (void const *) context; - -@end - -NS_ASSUME_NONNULL_END diff --git a/src/slic3r/GUI/wxMediaCtrl2.h b/src/slic3r/GUI/wxMediaCtrl2.h index c22cc10f2f..a29bf6dba6 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.h +++ b/src/slic3r/GUI/wxMediaCtrl2.h @@ -19,48 +19,6 @@ void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, in typedef struct _GstElement GstElement; #endif -#ifdef __WXMAC__ - -class wxMediaCtrl2 : public wxWindow -{ -public: - wxMediaCtrl2(wxWindow * parent); - - ~wxMediaCtrl2(); - - void Load(wxURI url); - - void Play(); - - void Stop(); - - void SetIdleImage(wxString const & image); - - wxMediaState GetState() const; - - wxSize GetVideoSize() const; - - int GetLastError() const { return m_error; } - - static inline const wxMediaState MEDIASTATE_BUFFERING = static_cast(6); - -protected: - void DoSetSize(int x, int y, int width, int height, int sizeFlags) override; - - static void bambu_log(void const *ctx, int level, char const *msg); - - void NotifyStopped(); - -private: - void create_player(); - void * m_player = nullptr; - wxMediaState m_state = wxMEDIASTATE_STOPPED; - int m_error = 0; - wxSize m_video_size{16, 9}; -}; - -#else - class wxMediaCtrl2 : public wxMediaCtrl { public: @@ -114,6 +72,4 @@ private: wxSize m_video_size{16, 9}; }; -#endif - #endif /* wxMediaCtrl2_h */ diff --git a/src/slic3r/GUI/wxMediaCtrl2.mm b/src/slic3r/GUI/wxMediaCtrl2.mm deleted file mode 100644 index cc081a89fe..0000000000 --- a/src/slic3r/GUI/wxMediaCtrl2.mm +++ /dev/null @@ -1,181 +0,0 @@ -// -// wxMediaCtrl2.m -// OrcaSlicer -// -// Created by cmguo on 2021/12/7. -// - -#import "wxMediaCtrl2.h" -#import "wx/mediactrl.h" -#include - -#import -#import "BambuPlayer/BambuPlayer.h" -#import "../Utils/NetworkAgent.hpp" - -#include -#include - -wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); - -#define BAMBU_DYNAMIC - -void wxMediaCtrl2::bambu_log(void const * ctx, int level, char const * msg) -{ - if (level == 1) { - wxString msg2(msg); - if (msg2.EndsWith("]")) { - int n = msg2.find_last_of('['); - if (n != wxString::npos) { - long val = 0; - wxMediaCtrl2 * ctrl = (wxMediaCtrl2 *) ctx; - if (msg2.SubString(n + 1, msg2.Length() - 2).ToLong(&val)) - ctrl->m_error = (int) val; - } - } else if (strstr(msg, "stat_log")) { - wxMediaCtrl2 * ctrl = (wxMediaCtrl2 *) ctx; - wxCommandEvent evt(EVT_MEDIA_CTRL_STAT); - evt.SetEventObject(ctrl); - evt.SetString(strchr(msg, ' ') + 1); - wxPostEvent(ctrl, evt); - } - } else if (level < 0) { - wxMediaCtrl2 * ctrl = (wxMediaCtrl2 *) ctx; - ctrl->NotifyStopped(); - } - BOOST_LOG_TRIVIAL(info) << msg; -} - -wxMediaCtrl2::wxMediaCtrl2(wxWindow * parent) - : wxWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize) -{ - NSView * imageView = (NSView *) GetHandle(); - imageView.layer = [[CALayer alloc] init]; - CGColorRef color = CGColorCreateGenericRGB(0, 0, 0, 1.0f); - imageView.layer.backgroundColor = color; - CGColorRelease(color); - imageView.wantsLayer = YES; - create_player(); -} - -wxMediaCtrl2::~wxMediaCtrl2() -{ - BambuPlayer * player = (BambuPlayer *) m_player; - [player dealloc]; -} - -void wxMediaCtrl2::create_player() -{ - auto module = Slic3r::NetworkAgent::get_bambu_source_entry(); - if (!module) { - //not ready yet - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "Network plugin not ready currently!"; - return; - } - Class cls = (__bridge Class) dlsym(module, "OBJC_CLASS_$_BambuPlayer"); - if (cls == nullptr) { - m_error = -2; - return; - } - NSView * imageView = (NSView *) GetHandle(); - BambuPlayer * player = [cls alloc]; - [player initWithImageView: imageView]; - [player setLogger: bambu_log withContext: this]; - m_player = player; -} - -void wxMediaCtrl2::Load(wxURI url) -{ - if (!m_player) { - create_player(); - if (!m_player) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": create_player failed currently!"; - return; - } - } - - BambuPlayer * player = (BambuPlayer *) m_player; - if (player) { - [player close]; - m_error = 0; - m_error = [player open: url.BuildURI().ToUTF8()]; - } - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); -} - -void wxMediaCtrl2::Play() -{ - if (!m_player) { - create_player(); - if (!m_player) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": create_player failed currently!"; - return; - } - } - BambuPlayer * player2 = (BambuPlayer *) m_player; - [player2 play]; - if (m_state != wxMEDIASTATE_PLAYING) { - m_state = wxMEDIASTATE_PLAYING; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - } -} - -void wxMediaCtrl2::Stop() -{ - if (!m_player) { - create_player(); - if (!m_player) { - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": create_player failed currently!"; - return; - } - } - BambuPlayer * player2 = (BambuPlayer *) m_player; - [player2 close]; - NotifyStopped(); -} - -void wxMediaCtrl2::SetIdleImage(wxString const &image) -{ -} - -void wxMediaCtrl2::NotifyStopped() -{ - if (m_state != wxMEDIASTATE_STOPPED) { - m_state = wxMEDIASTATE_STOPPED; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - } -} - -wxMediaState wxMediaCtrl2::GetState() const -{ - return m_state; -} - -wxSize wxMediaCtrl2::GetVideoSize() const -{ - BambuPlayer * player2 = (BambuPlayer *) m_player; - if (player2) { - NSSize size = [player2 videoSize]; - if (size.width > 0) - const_cast(m_video_size) = {(int) size.width, (int) size.height}; - return {(int) size.width, (int) size.height}; - } else { - return {0, 0}; - } -} - -void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - if (sizeFlags & wxSIZE_USE_EXISTING) return; - wxMediaCtrl_OnSize(this, m_video_size, width, height); -} From bf40951a4f569cdd1caff497de1d06b606587c3e Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 21:52:31 +0800 Subject: [PATCH 067/164] fix: add static FFmpeg NOTFOUND guard; drop dead wxMediaCtrl2.h include --- src/slic3r/CMakeLists.txt | 3 +++ src/slic3r/GUI/MonitorBasePanel.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index afdee92145..fa09f5d712 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -910,6 +910,9 @@ if (APPLE) find_library(LIBAVCODEC_LIBRARY NAMES libavcodec.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) find_library(LIBSWSCALE_LIBRARY NAMES libswscale.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) find_library(LIBAVUTIL_LIBRARY NAMES libavutil.a PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + if (NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY) + message(FATAL_ERROR "Static FFmpeg (libavcodec.a/libswscale.a/libavutil.a) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps — FFMPEG builds static-only on macOS.") + endif () target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY}) target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include) else () diff --git a/src/slic3r/GUI/MonitorBasePanel.h b/src/slic3r/GUI/MonitorBasePanel.h index c5c76acec3..42424a7187 100644 --- a/src/slic3r/GUI/MonitorBasePanel.h +++ b/src/slic3r/GUI/MonitorBasePanel.h @@ -34,7 +34,6 @@ #include "Widgets/AxisCtrlButton.hpp" #include "Widgets/TextInput.hpp" #include "Widgets/StaticLine.hpp" -#include "wxMediaCtrl2.h" #include "MediaPlayCtrl.h" /////////////////////////////////////////////////////////////////////////// From dd910dcb85d879d0007c69593fc0e108ba559b3c Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 22:10:29 +0800 Subject: [PATCH 068/164] build: drop redundant --enable-shared in FFmpeg deps configure The literal --enable-shared was always overridden by ${_link_cmd} (--enable-static --disable-shared on Apple, --enable-shared elsewhere) and FFmpeg configure processes these flags in order, last one wins. Remove it and the stale comment documenting the workaround. Co-Authored-By: Claude --- deps/FFMPEG/FFMPEG.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/deps/FFMPEG/FFMPEG.cmake b/deps/FFMPEG/FFMPEG.cmake index 42e915ca82..60e856f41f 100644 --- a/deps/FFMPEG/FFMPEG.cmake +++ b/deps/FFMPEG/FFMPEG.cmake @@ -27,7 +27,6 @@ else () "--extra-ldflags=-mmacosx-version-min=${DEP_OSX_TARGET}" ) # Static FFmpeg: nothing to bundle into the .app, no rpath handling. - # Shared flags must come AFTER --enable-shared below so they win. set(_link_cmd --enable-static --disable-shared) if (IS_CROSS_COMPILE) set(_cross_cmd --enable-cross-compile) @@ -59,7 +58,6 @@ else () ${_arch_cmd} ${_cc_cmd} "--prefix=${DESTDIR}" - --enable-shared ${_link_cmd} ${_minos_cmd} --disable-doc From 7e3724b5f32c098288be779ad7ce05f9e7d67036 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 22:30:14 +0800 Subject: [PATCH 069/164] refactor: remove dead wxMediaCtrl2 player wxMediaCtrl2 was never instantiated on any platform (USE_WX_MEDIA_CTRL_2 is 0 everywhere); wxMediaCtrl3 replaced it. Delete wxMediaCtrl2.cpp/h, drop them from the Win/Linux source list and the gettext list.txt, and collapse the preprocessor-dead #if USE_WX_MEDIA_CTRL_2 gate in MediaPlayCtrl.h. Co-Authored-By: Claude --- localization/i18n/list.txt | 1 - src/slic3r/CMakeLists.txt | 2 - src/slic3r/GUI/MediaPlayCtrl.h | 7 - src/slic3r/GUI/wxMediaCtrl2.cpp | 649 -------------------------------- src/slic3r/GUI/wxMediaCtrl2.h | 75 ---- 5 files changed, 734 deletions(-) delete mode 100644 src/slic3r/GUI/wxMediaCtrl2.cpp delete mode 100644 src/slic3r/GUI/wxMediaCtrl2.h diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index 1614bc453b..5174679abf 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -193,7 +193,6 @@ src/slic3r/GUI/ObjColorDialog.cpp src/slic3r/GUI/SyncAmsInfoDialog.cpp src/slic3r/GUI/WipeTowerDialog.cpp src/slic3r/GUI/wxExtensions.cpp -src/slic3r/GUI/wxMediaCtrl2.cpp src/slic3r/GUI/WebUserLoginDialog.cpp src/slic3r/GUI/WebGuideDialog.cpp src/slic3r/GUI/KBShortcutsDialog.hpp diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index fa09f5d712..3a59504b6e 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -794,8 +794,6 @@ else () list(APPEND SLIC3R_GUI_SOURCES GUI/AVVideoDecoder.cpp GUI/AVVideoDecoder.hpp - GUI/wxMediaCtrl2.cpp - GUI/wxMediaCtrl2.h GUI/wxMediaCtrl3.cpp GUI/wxMediaCtrl3.h ) diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index 4908a782ca..0a01daefc9 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -8,14 +8,7 @@ #ifndef MediaPlayCtrl_h #define MediaPlayCtrl_h -#define USE_WX_MEDIA_CTRL_2 0 - -#if USE_WX_MEDIA_CTRL_2 -#include "wxMediaCtrl2.h" -#define wxMediaCtrl3 wxMediaCtrl2 -#else #include "wxMediaCtrl3.h" -#endif #include diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp deleted file mode 100644 index 7500de6626..0000000000 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ /dev/null @@ -1,649 +0,0 @@ -#include "wxMediaCtrl2.h" -#include "libslic3r/Time.hpp" -#include "I18N.hpp" -#include "GUI_App.hpp" -#include "libslic3r/Utils.hpp" -#include -#include -#include "LinuxDisplayBackend.hpp" -#include -#include -#ifdef __WIN32__ -#include -#include -#include -#include -#endif - -#ifdef __LINUX__ -#include "Printer/gstbambusrc.h" -#include // main gstreamer header -#endif - -#if defined(__LINUX__) && defined(__WXGTK__) -#include -#include - -namespace { -bool ensure_gstreamer_initialized_for_liveview() -{ - GError* error = nullptr; - if (!gst_init_check(nullptr, nullptr, &error)) { - BOOST_LOG_TRIVIAL(error) << "wxMediaCtrl2: gst_init_check failed before native Wayland liveview setup" - << (error ? std::string(": ") + error->message : std::string()); - if (error) - g_error_free(error); - return false; - } - - return true; -} - -bool is_gstreamer_feature_available(const char* feature) -{ - if (!ensure_gstreamer_initialized_for_liveview()) - return false; - - GstElementFactory* factory = gst_element_factory_find(feature); - if (!factory) - return false; - - gst_object_unref(factory); - return true; -} - -void set_gstreamer_feature_rank(const char* feature, guint rank) -{ - GstElementFactory* factory = gst_element_factory_find(feature); - if (!factory) - return; - - gst_plugin_feature_set_rank(GST_PLUGIN_FEATURE(factory), rank); - gst_object_unref(factory); -} - -void configure_wayland_gstreamer_liveview_path() -{ - static bool configured = false; - if (configured) - return; - configured = true; - - if (!ensure_gstreamer_initialized_for_liveview()) - return; - - // Prefer software decode for Bambu liveview on Wayland/NVIDIA, where - // zero-copy GL/DMABUF display paths can be fragile. Keep hardware - // decoders available as lower-ranked fallbacks for VAAPI/NVDEC/V4L2-only - // installations instead of passing preflight and then blocking autoplug. - set_gstreamer_feature_rank("avdec_h264", GST_RANK_PRIMARY + 300); - set_gstreamer_feature_rank("openh264dec", GST_RANK_PRIMARY + 100); - set_gstreamer_feature_rank("nvh264dec", GST_RANK_MARGINAL); - set_gstreamer_feature_rank("vaapih264dec", GST_RANK_MARGINAL); - set_gstreamer_feature_rank("vah264dec", GST_RANK_MARGINAL); - set_gstreamer_feature_rank("v4l2h264dec", GST_RANK_MARGINAL); -} -} - -#endif // defined(__LINUX__) && defined(__WXGTK__) - -#ifdef __LINUX__ -extern "C" int gst_bambu_last_error; - -class WXDLLIMPEXP_MEDIA - wxGStreamerMediaBackend : public wxMediaBackendCommonBase -{ -public: - GstElement *m_playbin; // GStreamer media element -}; -#endif - -wxMediaCtrl2::wxMediaCtrl2(wxWindow *parent) -{ -#if defined(__LINUX__) && defined(__WXGTK__) - m_native_wayland = Slic3r::GUI::is_running_on_wayland(); - if (m_native_wayland && is_gstreamer_feature_available("gtksink")) - configure_wayland_gstreamer_liveview_path(); - else if (m_native_wayland) { - m_gtk_sink_error = _L("Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer."); - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: native Wayland liveview disabled because GStreamer gtksink is unavailable"; - } -#endif -#ifdef __WIN32__ - auto hModExe = GetModuleHandle(NULL); - // BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: GetModuleHandle " << hModExe; - auto NvOptimusEnablement = (DWORD *) GetProcAddress(hModExe, "NvOptimusEnablement"); - auto AmdPowerXpressRequestHighPerformance = (int *) GetProcAddress(hModExe, "AmdPowerXpressRequestHighPerformance"); - if (NvOptimusEnablement) { - // BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: NvOptimusEnablement " << *NvOptimusEnablement; - *NvOptimusEnablement = 0; - } - if (AmdPowerXpressRequestHighPerformance) { - // BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: AmdPowerXpressRequestHighPerformance " << *AmdPowerXpressRequestHighPerformance; - *AmdPowerXpressRequestHighPerformance = 0; - } -#endif -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_native_wayland) - wxControl::Create(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize); - else -#endif - wxMediaCtrl::Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxMEDIACTRLPLAYERCONTROLS_NONE); -#ifdef __LINUX__ - gstbambusrc_register(); -#ifdef __WXGTK__ - if (m_native_wayland && m_gtk_sink_error.empty()) - m_use_gtk_sink = CreateGtkSinkPlayer(); - if (m_native_wayland && !m_use_gtk_sink && m_gtk_sink_error.empty()) - m_gtk_sink_error = _L("Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation."); -#endif - if (!m_use_gtk_sink && m_imp) { - auto playbin = reinterpret_cast(m_imp)->m_playbin; - g_object_set(G_OBJECT(playbin), - "audio-sink", nullptr, - nullptr); - } else if (!m_use_gtk_sink) { - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: wxMediaCtrl backend is unavailable"; - } - Bind(wxEVT_MEDIA_LOADED, [this](auto & e) { - m_loaded = true; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(0); - event.SetEventObject(this); - wxPostEvent(this, event); - }); -#endif -} - -wxMediaCtrl2::~wxMediaCtrl2() -{ -#if defined(__LINUX__) && defined(__WXGTK__) - DestroyGtkSinkPlayer(); -#endif -} - -#if defined(__LINUX__) && defined(__WXGTK__) -bool wxMediaCtrl2::CreateGtkSinkPlayer() -{ - GstElement *playbin = gst_element_factory_make("playbin", "orca-wayland-gtk-playbin"); - if (!playbin) - return false; - - GError *error = nullptr; - GstElement *video_sink = gst_parse_bin_from_description( - "videoconvert ! videoscale ! video/x-raw,format=BGRx ! gtksink name=orca_wayland_gtksink sync=false", - TRUE, - &error); - if (!video_sink) { - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: failed to create gtksink video bin" - << (error ? std::string(": ") + error->message : std::string()); - if (error) - g_error_free(error); - gst_object_unref(playbin); - return false; - } - - GstElement *gtk_sink = gst_bin_get_by_name(GST_BIN(video_sink), "orca_wayland_gtksink"); - if (!gtk_sink) { - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: failed to find gtksink in video bin"; - gst_object_unref(video_sink); - gst_object_unref(playbin); - return false; - } - - GtkWidget *gtk_widget = nullptr; - g_object_get(G_OBJECT(gtk_sink), "widget", >k_widget, nullptr); - if (!gtk_widget) { - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: gtksink did not expose a GtkWidget"; - gst_object_unref(gtk_sink); - gst_object_unref(video_sink); - gst_object_unref(playbin); - return false; - } - - gtk_widget_show(gtk_widget); - m_gtk_video_window = new wxNativeWindow(this, wxID_ANY, gtk_widget); - m_gtk_video_window->Show(); - g_object_unref(gtk_widget); - - g_object_set(G_OBJECT(playbin), - "video-sink", video_sink, - "audio-sink", nullptr, - nullptr); - gst_object_unref(video_sink); - - m_gtk_playbin = playbin; - m_gtk_sink = gtk_sink; - - GstBus *bus = gst_element_get_bus(playbin); - m_gtk_bus_watch_id = gst_bus_add_watch(bus, [](GstBus *, GstMessage *message, gpointer data) -> gboolean { - auto *self = static_cast(data); - if (!self || !self->m_gtk_playbin) - return G_SOURCE_REMOVE; - - switch (GST_MESSAGE_TYPE(message)) { - case GST_MESSAGE_ERROR: - { - GError *error = nullptr; - gchar *debug = nullptr; - gst_message_parse_error(message, &error, &debug); - BOOST_LOG_TRIVIAL(warning) << "wxMediaCtrl2: gtksink pipeline error" - << (error ? std::string(": ") + error->message : std::string()) - << (debug ? std::string(" debug: ") + debug : std::string()); - if (error) - g_error_free(error); - if (debug) - g_free(debug); - - self->m_error = gst_bambu_last_error ? gst_bambu_last_error : 2; - self->m_loaded = false; - self->m_gtk_state = wxMEDIASTATE_STOPPED; - self->PostGtkSinkStateEvent(self->GetId()); - break; - } - case GST_MESSAGE_EOS: - self->m_loaded = false; - self->m_gtk_state = wxMEDIASTATE_STOPPED; - self->PostGtkSinkStateEvent(self->GetId()); - break; - case GST_MESSAGE_STATE_CHANGED: - if (GST_MESSAGE_SRC(message) == GST_OBJECT(self->m_gtk_playbin)) { - GstState old_state; - GstState new_state; - GstState pending_state; - gst_message_parse_state_changed(message, &old_state, &new_state, &pending_state); - - if (new_state == GST_STATE_PLAYING) { - self->m_loaded = true; - self->m_gtk_state = wxMEDIASTATE_PLAYING; - self->PostGtkSinkStateEvent(); - } else if (new_state == GST_STATE_PAUSED && old_state < GST_STATE_PAUSED) { - // Treat only upward READY/NULL -> PAUSED as load completion. - // PLAYING -> PAUSED is a normal teardown step before NULL. - self->m_loaded = true; - self->m_gtk_state = wxMEDIASTATE_PAUSED; - self->PostGtkSinkStateEvent(); - } else if (new_state <= GST_STATE_READY && old_state >= GST_STATE_PAUSED) { - self->m_loaded = false; - self->m_gtk_state = wxMEDIASTATE_STOPPED; - self->PostGtkSinkStateEvent(); - } - } - break; - default: - break; - } - - return G_SOURCE_CONTINUE; - }, this); - gst_object_unref(bus); - - BOOST_LOG_TRIVIAL(info) << "wxMediaCtrl2: using GTK native Wayland video sink"; - return true; -} - -void wxMediaCtrl2::DestroyGtkSinkPlayer() -{ - if (m_gtk_bus_watch_id) { - g_source_remove(m_gtk_bus_watch_id); - m_gtk_bus_watch_id = 0; - } - - if (m_gtk_playbin) { - gst_element_set_state(m_gtk_playbin, GST_STATE_NULL); - } - - if (m_gtk_video_window) { - m_gtk_video_window->Destroy(); - m_gtk_video_window = nullptr; - } - - if (m_gtk_playbin) { - gst_object_unref(m_gtk_playbin); - m_gtk_playbin = nullptr; - } - - if (m_gtk_sink) { - gst_object_unref(m_gtk_sink); - m_gtk_sink = nullptr; - } - -} - -void wxMediaCtrl2::PostGtkSinkStateEvent(int id) -{ - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(id); - event.SetEventObject(this); - wxPostEvent(this, event); -} -#endif // defined(__LINUX__) && defined(__WXGTK__) - -#define CLSID_BAMBU_SOURCE L"{233E64FB-2041-4A6C-AFAB-FF9BCF83E7AA}" - -void wxMediaCtrl2::Load(wxURI url) -{ -#ifdef __WIN32__ - InvalidateBestSize(); - if (m_imp == nullptr) { - static bool notified = false; - if (!notified) CallAfter([] { - auto res = wxMessageBox(_L("Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?"), _L("Error"), wxOK | wxCANCEL); - if (res == wxOK) { - wxString url = IsWindows10OrGreater() - ? "ms-settings:optionalfeatures?activationSource=SMC-Article-14209" - : "https://support.microsoft.com/en-au/windows/get-windows-media-player-81718e0d-cfce-25b1-aee3-94596b658287"; - wxExecute("cmd /c start " + url, wxEXEC_HIDE_CONSOLE); - } - }); - m_error = 100; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - return; - } - { - wxRegKey key11(wxRegKey::HKCU, L"SOFTWARE\\Classes\\CLSID\\" CLSID_BAMBU_SOURCE L"\\InProcServer32"); - wxRegKey key12(wxRegKey::HKCR, L"CLSID\\" CLSID_BAMBU_SOURCE L"\\InProcServer32"); - wxString path = key11.Exists() ? key11.QueryDefaultValue() - : key12.Exists() ? key12.QueryDefaultValue() : wxString{}; - wxRegKey key2(wxRegKey::HKCR, "bambu"); - wxString clsid; - if (key2.Exists()) - key2.QueryRawValue("Source Filter", clsid); - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": clsid %1% path %2%") % clsid % path; - - std::string data_dir_str = Slic3r::data_dir(); - boost::filesystem::path data_dir_path(data_dir_str); - auto dll_path = data_dir_path / "plugins" / "BambuSource.dll"; - if (path.empty() || !wxFile::Exists(path) || clsid != CLSID_BAMBU_SOURCE) { - if (boost::filesystem::exists(dll_path)) { - CallAfter( - [dll_path] { - int res = wxMessageBox(_L("BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice"), _L("Error"), wxYES_NO); - if (res == wxYES) { - std::string regContent = R"(Windows Registry Editor Version 5.00 - [HKEY_CLASSES_ROOT\bambu] - "Source Filter"="{233E64FB-2041-4A6C-AFAB-FF9BCF83E7AA}" - )"; - - auto reg_path = (fs::temp_directory_path() / fs::unique_path()).replace_extension(".reg"); - std::ofstream temp_reg_file(reg_path.c_str()); - if (!temp_reg_file) { - return false; - } - temp_reg_file << regContent; - temp_reg_file.close(); - auto sei_params = L"/q /s " + reg_path.wstring(); - SHELLEXECUTEINFO sei{sizeof(sei), SEE_MASK_NOCLOSEPROCESS, NULL, L"open", - L"regedit", sei_params.c_str(),SW_HIDE,SW_HIDE}; - ::ShellExecuteEx(&sei); - - wstring quoted_dll_path = L"\"" + dll_path.wstring() + L"\""; - SHELLEXECUTEINFO info{sizeof(info), 0, NULL, L"runas", L"regsvr32", quoted_dll_path.c_str(), SW_HIDE }; - ::ShellExecuteEx(&info); - fs::remove(reg_path); - } - return true; - }); - } else { - CallAfter([] { - wxMessageBox(_L("Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help."), _L("Error"), wxOK); - }); - } - m_error = clsid != CLSID_BAMBU_SOURCE ? 101 : path.empty() ? 102 : 103; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - return; - } - if (path != dll_path) { - static bool notified = false; - if (!notified) CallAfter([dll_path] { - int res = wxMessageBox(_L("Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it."), _L("Warning"), wxYES_NO | wxICON_WARNING); - if (res == wxYES) { - auto path = dll_path.wstring(); - if (path.find(L' ') != std::wstring::npos) - path = L"\"" + path + L"\""; - SHELLEXECUTEINFO info{sizeof(info), 0, NULL, L"open", L"regsvr32", path.c_str(), SW_HIDE}; - ::ShellExecuteEx(&info); - } - }); - notified = true; - } - wxRegKey keyWmp(wxRegKey::HKCU, "SOFTWARE\\Microsoft\\MediaPlayer\\Player\\Extensions\\."); - keyWmp.Create(); - long permissions = 0; - if (keyWmp.HasValue("Permissions")) - keyWmp.QueryValue("Permissions", &permissions); - if ((permissions & 32) == 0) { - permissions |= 32; - keyWmp.SetValue("Permissions", permissions); - } - } - url = wxURI(url.BuildURI().append("&hwnd=").append(boost::lexical_cast(GetHandle())).append("&tid=").append( - boost::lexical_cast(GetCurrentThreadId()))); -#endif -#ifdef __WXGTK3__ - GstElementFactory *factory; - int hasplugins = 1; - - factory = gst_element_factory_find("h264parse"); - if (!factory) { - hasplugins = 0; - } else { - gst_object_unref(factory); - } - - factory = gst_element_factory_find("openh264dec"); - if (!factory) { - factory = gst_element_factory_find("avdec_h264"); - } - if (!factory) { - factory = gst_element_factory_find("vaapih264dec"); - } - if (!factory) { - factory = gst_element_factory_find("vah264dec"); - } - if (!factory) { - factory = gst_element_factory_find("nvh264dec"); - } - if (!factory) { - factory = gst_element_factory_find("v4l2h264dec"); - } - if (!factory) { - hasplugins = 0; - } else { - gst_object_unref(factory); - } - - if (!hasplugins) { - CallAfter([] { - wxMessageBox(_L("Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)"), _L("Error"), wxOK); - }); - m_error = 101; - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - return; - } - wxLog::EnableLogging(false); -#endif - m_error = 0; - m_loaded = false; -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_use_gtk_sink && m_gtk_playbin) { - const std::string uri = std::string(url.BuildURI().ToUTF8().data()); - gst_element_set_state(m_gtk_playbin, GST_STATE_NULL); - g_object_set(G_OBJECT(m_gtk_playbin), "uri", uri.c_str(), nullptr); - m_gtk_state = wxMEDIASTATE_STOPPED; - GstStateChangeReturn state = gst_element_set_state(m_gtk_playbin, GST_STATE_PAUSED); - if (state == GST_STATE_CHANGE_FAILURE) { - m_error = gst_bambu_last_error ? gst_bambu_last_error : 2; - PostGtkSinkStateEvent(GetId()); - } - return; - } - if (!m_imp) { - m_error = m_native_wayland && !m_gtk_sink_error.empty() ? 104 : 100; - m_loaded = false; - if (m_native_wayland && !m_gtk_sink_error.empty() && !m_gtk_sink_error_notified) { - m_gtk_sink_error_notified = true; - const wxString message = m_gtk_sink_error; - CallAfter([message] { - wxMessageBox(message, _L("Error"), wxOK); - }); - } - wxMediaEvent event(wxEVT_MEDIA_STATECHANGED); - event.SetId(GetId()); - event.SetEventObject(this); - wxPostEvent(this, event); - return; - } -#endif - wxMediaCtrl::Load(url); -} - -void wxMediaCtrl2::Play() -{ -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_use_gtk_sink && m_gtk_playbin) { - GstStateChangeReturn state = gst_element_set_state(m_gtk_playbin, GST_STATE_PLAYING); - if (state == GST_STATE_CHANGE_FAILURE) { - m_error = gst_bambu_last_error ? gst_bambu_last_error : 2; - m_gtk_state = wxMEDIASTATE_STOPPED; - PostGtkSinkStateEvent(GetId()); - } - return; - } - if (!m_imp) { - m_error = m_native_wayland && !m_gtk_sink_error.empty() ? 104 : 100; - if (m_native_wayland && !m_gtk_sink_error.empty() && !m_gtk_sink_error_notified) { - m_gtk_sink_error_notified = true; - const wxString message = m_gtk_sink_error; - CallAfter([message] { - wxMessageBox(message, _L("Error"), wxOK); - }); - } - PostGtkSinkStateEvent(GetId()); - return; - } -#endif - wxMediaCtrl::Play(); -} - -void wxMediaCtrl2::Stop() -{ -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_use_gtk_sink && m_gtk_playbin) { - gst_element_set_state(m_gtk_playbin, GST_STATE_NULL); - m_gtk_state = wxMEDIASTATE_STOPPED; - m_loaded = false; - PostGtkSinkStateEvent(0); - return; - } - if (!m_imp) - return; -#endif - wxMediaCtrl::Stop(); } - -void wxMediaCtrl2::SetIdleImage(wxString const &image) {} - -wxMediaState wxMediaCtrl2::GetState() -{ -#if defined(__LINUX__) && defined(__WXGTK__) - if (m_use_gtk_sink && m_gtk_playbin) - return m_gtk_state; - if (!m_imp) - return wxMEDIASTATE_STOPPED; -#endif - return wxMediaCtrl::GetState(); -} - -int wxMediaCtrl2::GetLastError() const -{ -#ifdef __LINUX__ -#ifdef __WXGTK__ - if (m_use_gtk_sink && m_error) - return m_error; -#endif - if (m_error) - return m_error; - return gst_bambu_last_error; -#else - return m_error; -#endif -} - -wxSize wxMediaCtrl2::GetVideoSize() const -{ -#ifdef __LINUX__ - // Gstreamer doesn't give us a VideoSize until we're playing, which - // confuses the MediaPlayCtrl into claiming that it is stuck - // "Loading...". Fake it out for now. - return m_loaded ? wxSize(1280, 720) : wxSize{}; -#else - wxSize size = m_imp ? m_imp->GetVideoSize() : wxSize(0, 0); - if (size.GetWidth() > 0) - const_cast(m_video_size) = size; - return size; -#endif -} - -wxSize wxMediaCtrl2::DoGetBestSize() const -{ - return {-1, -1}; -} - -void wxMediaCtrl2::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - if (sizeFlags & wxSIZE_USE_EXISTING) return; -#if defined(__LINUX__) && defined(__WXGTK__) - // Keep the native GStreamer video window filling the client area. - if (m_gtk_video_window) { - const wxSize client_size = GetClientSize(); - m_gtk_video_window->SetSize(0, 0, client_size.GetWidth(), client_size.GetHeight()); - } -#endif - wxMediaCtrl_OnSize(this, m_video_size, width, height); -} - -#ifdef __WIN32__ - -WXLRESULT wxMediaCtrl2::MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam) -{ - // The stream source sends WM_USER+1000 with a synchronous SendMessage from its own threads, - // so this runs re-entrantly on the UI thread at whatever message-retrieval point the player - // happens to be in - often nested inside an Orca log statement. Never BOOST_LOG_TRIVIAL here: - // boost::log is not re-entrant on one thread, and doing so corrupted its per-thread record - // state, crashing later in unrelated places (the player, the log filter, a plug-in heap free). - // Post the string out (as the stat branch does) and log it on a clean stack instead. - if (nMsg == WM_USER + 1000) { - wxString msg((wchar_t const *) lParam); - if (wParam == 1) { - if (msg.EndsWith("]")) { - int n = msg.find_last_of('['); - if (n != wxString::npos) { - long val = 0; - if (msg.SubString(n + 1, msg.Length() - 2).ToLong(&val)) - m_error = (int) val; - } - } else if (msg.Contains("stat_log")) { - wxCommandEvent evt(EVT_MEDIA_CTRL_STAT); - evt.SetEventObject(this); - evt.SetString(msg.Mid(msg.Find(' ') + 1)); - wxPostEvent(this, evt); - } - } - return 0; - } - return wxMediaCtrl::MSWWindowProc(nMsg, wParam, lParam); -} - -#endif diff --git a/src/slic3r/GUI/wxMediaCtrl2.h b/src/slic3r/GUI/wxMediaCtrl2.h deleted file mode 100644 index a29bf6dba6..0000000000 --- a/src/slic3r/GUI/wxMediaCtrl2.h +++ /dev/null @@ -1,75 +0,0 @@ -// -// wxMediaCtrl2.h -// libslic3r_gui -// -// Created by cmguo on 2021/12/7. -// - -#ifndef wxMediaCtrl2_h -#define wxMediaCtrl2_h - -#include "wx/uri.h" -#include "wx/mediactrl.h" - -wxDECLARE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); - -void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, int height); - -#if defined(__LINUX__) && defined(__WXGTK__) -typedef struct _GstElement GstElement; -#endif - -class wxMediaCtrl2 : public wxMediaCtrl -{ -public: - wxMediaCtrl2(wxWindow *parent); - ~wxMediaCtrl2(); - - void Load(wxURI url); - - void Play(); - - void Stop(); - - void SetIdleImage(wxString const & image); - - wxMediaState GetState(); - - int GetLastError() const; - - wxSize GetVideoSize() const; - -protected: - wxSize DoGetBestSize() const override; - - void DoSetSize(int x, int y, int width, int height, int sizeFlags) override; - -#ifdef __WIN32__ - WXLRESULT MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam) override; -#endif - -private: -#if defined(__LINUX__) && defined(__WXGTK__) - bool CreateGtkSinkPlayer(); - void DestroyGtkSinkPlayer(); - void PostGtkSinkStateEvent(int id = 0); - - bool m_native_wayland = false; - bool m_use_gtk_sink = false; - wxString m_gtk_sink_error; - bool m_gtk_sink_error_notified = false; - GstElement *m_gtk_playbin = nullptr; - GstElement *m_gtk_sink = nullptr; - unsigned int m_gtk_bus_watch_id = 0; - wxWindow *m_gtk_video_window = nullptr; - wxMediaState m_gtk_state = wxMEDIASTATE_STOPPED; -#endif - wxString m_idle_image; - int m_error = 0; - bool m_loaded = false; - wxSize m_video_size{16, 9}; -}; - -#endif /* wxMediaCtrl2_h */ From adcbdddc1215cf03cbac1823741abd7ebf9caa1f Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 22:48:33 +0800 Subject: [PATCH 070/164] refactor: remove dead GStreamer bambusrc plugin and its build dep gstbambusrc was the GStreamer source element for the old wxMediaCtrl2 Wayland player, its only consumer (deleted in the previous commit). The new FFmpeg player handles bambu:/// URIs through the Bambu C API instead. Drop the plugin and the gstreamer-1.0 / gstreamer-base-1.0 REQUIRED pkg-config dependencies that existed solely for it. Co-Authored-By: Claude --- src/slic3r/CMakeLists.txt | 11 - src/slic3r/GUI/Printer/gstbambusrc.c | 657 --------------------------- src/slic3r/GUI/Printer/gstbambusrc.h | 78 ---- 3 files changed, 746 deletions(-) delete mode 100644 src/slic3r/GUI/Printer/gstbambusrc.c delete mode 100644 src/slic3r/GUI/Printer/gstbambusrc.h diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 3a59504b6e..7d799da4a8 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -799,12 +799,6 @@ else () ) endif () -if (UNIX AND NOT APPLE) - list(APPEND SLIC3R_GUI_SOURCES - GUI/Printer/gstbambusrc.c - ) -endif () - set(ORCA_UPDATER_SIG_KEY_B64 "${ORCA_UPDATER_SIG_KEY}") string(STRIP "${ORCA_UPDATER_SIG_KEY_B64}" ORCA_UPDATER_SIG_KEY_B64) string(REPLACE "\n" "" ORCA_UPDATER_SIG_KEY_B64 "${ORCA_UPDATER_SIG_KEY_B64}") @@ -948,11 +942,6 @@ if (UNIX AND NOT APPLE) target_compile_definitions(libslic3r_gui PRIVATE wxHAVE_GDK_WAYLAND) endif () - # We add GStreamer for bambu:/// support. - pkg_check_modules(GSTREAMER REQUIRED gstreamer-1.0) - pkg_check_modules(GST_BASE REQUIRED gstreamer-base-1.0) - target_link_libraries(libslic3r_gui ${GSTREAMER_LIBRARIES} ${GST_BASE_LIBRARIES}) - target_include_directories(libslic3r_gui SYSTEM PRIVATE ${GSTREAMER_INCLUDE_DIRS} ${GST_BASE_INCLUDE_DIRS}) endif () # Add a definition so that we can tell we are compiling slic3r. diff --git a/src/slic3r/GUI/Printer/gstbambusrc.c b/src/slic3r/GUI/Printer/gstbambusrc.c deleted file mode 100644 index d3f4ab112a..0000000000 --- a/src/slic3r/GUI/Printer/gstbambusrc.c +++ /dev/null @@ -1,657 +0,0 @@ -/* bambusrc for gstreamer - * integration with proprietary Bambu Lab blob for getting raw h.264 video - * - * Copyright (C) 2023 Joshua Wise - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include "gstbambusrc.h" - -#include -#include -#ifndef EXTERNAL_GST_PLUGIN -#define BAMBU_DYNAMIC -#endif -#include "BambuTunnel.h" - -#ifdef BAMBU_DYNAMIC -// From PrinterFileSystem. -#ifdef __cplusplus -extern "C" -#else -extern -#endif -BambuLib *bambulib_get(); -BambuLib *_lib = NULL; -#define BAMBULIB(x) (_lib->x) - -#else -#define BAMBULIB(x) (x) -#endif - -GST_DEBUG_CATEGORY_STATIC (gst_bambusrc_debug); -#define GST_CAT_DEFAULT gst_bambusrc_debug - -static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS_ANY); - //GST_STATIC_CAPS("video/x-h264,framerate=0/1,parsed=(boolean)false,stream-format=(string)byte-stream")); - -enum -{ - PROP_0, - PROP_LOCATION, -}; - -static void gst_bambusrc_uri_handler_init (gpointer g_iface, - gpointer iface_data); -static void gst_bambusrc_finalize (GObject * gobject); -static void gst_bambusrc_dispose (GObject * gobject); - -static void gst_bambusrc_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_bambusrc_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static GstStateChangeReturn gst_bambusrc_change_state (GstElement * - element, GstStateChange transition); -static GstFlowReturn gst_bambusrc_create (GstPushSrc * psrc, - GstBuffer ** outbuf); -static gboolean gst_bambusrc_start (GstBaseSrc * bsrc); -static gboolean gst_bambusrc_stop (GstBaseSrc * bsrc); -static gboolean gst_bambusrc_is_seekable (GstBaseSrc * bsrc); -static gboolean gst_bambusrc_query (GstBaseSrc * bsrc, GstQuery * query); -static gboolean gst_bambusrc_unlock (GstBaseSrc * bsrc); -static gboolean gst_bambusrc_unlock_stop (GstBaseSrc * bsrc); -static gboolean gst_bambusrc_set_location (GstBambuSrc * src, - const gchar * uri, GError ** error); - -#define gst_bambusrc_parent_class parent_class -G_DEFINE_TYPE_WITH_CODE (GstBambuSrc, gst_bambusrc, GST_TYPE_PUSH_SRC, - G_IMPLEMENT_INTERFACE (GST_TYPE_URI_HANDLER, - gst_bambusrc_uri_handler_init)); - -static void -gst_bambusrc_class_init (GstBambuSrcClass * klass) -{ - GObjectClass *gobject_class; - GstElementClass *gstelement_class; - GstBaseSrcClass *gstbasesrc_class; - GstPushSrcClass *gstpushsrc_class; - - gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; - gstbasesrc_class = (GstBaseSrcClass *) klass; - gstpushsrc_class = (GstPushSrcClass *) klass; - - gobject_class->set_property = gst_bambusrc_set_property; - gobject_class->get_property = gst_bambusrc_get_property; - gobject_class->finalize = gst_bambusrc_finalize; - gobject_class->dispose = gst_bambusrc_dispose; - - g_object_class_install_property (gobject_class, - PROP_LOCATION, - g_param_spec_string ("location", "Location", - "URI to pass to Bambu Lab blobs", "", - (GParamFlags)(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); - - gst_element_class_add_static_pad_template (gstelement_class, &srctemplate); - - gst_element_class_set_static_metadata (gstelement_class, "Bambu Lab source", - "Source/Network", - "Receive data as a client over the network using the proprietary Bambu Lab blobs", - "Joshua Wise "); - gstelement_class->change_state = - GST_DEBUG_FUNCPTR (gst_bambusrc_change_state); - - gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_bambusrc_start); - gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_bambusrc_stop); - gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_bambusrc_unlock); - gstbasesrc_class->unlock_stop = - GST_DEBUG_FUNCPTR (gst_bambusrc_unlock_stop); - gstbasesrc_class->is_seekable = - GST_DEBUG_FUNCPTR (gst_bambusrc_is_seekable); - gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_bambusrc_query); - - gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_bambusrc_create); - - GST_DEBUG_CATEGORY_INIT (gst_bambusrc_debug, "bambusrc", 0, - "Bambu Lab src"); -} - -static void -gst_bambusrc_reset (GstBambuSrc * src) -{ - gst_caps_replace (&src->src_caps, NULL); - if (src->tnl) { - BAMBULIB(Bambu_Close)(src->tnl); - BAMBULIB(Bambu_Destroy)(src->tnl); - src->tnl = NULL; - } -} - -static void -gst_bambusrc_init (GstBambuSrc * src) -{ - src->location = NULL; - src->tnl = NULL; - - gst_base_src_set_automatic_eos (GST_BASE_SRC (src), FALSE); - gst_base_src_set_live(GST_BASE_SRC(src), TRUE); - - gst_bambusrc_reset (src); -} - -static void -gst_bambusrc_dispose (GObject * gobject) -{ - GstBambuSrc *src = GST_BAMBUSRC (gobject); - - GST_DEBUG_OBJECT (src, "dispose"); - - G_OBJECT_CLASS (parent_class)->dispose (gobject); -} - -static void -gst_bambusrc_finalize (GObject * gobject) -{ - GstBambuSrc *src = GST_BAMBUSRC (gobject); - - GST_DEBUG_OBJECT (src, "finalize"); - - g_free (src->location); - if (src->tnl) { - BAMBULIB(Bambu_Close)(src->tnl); - BAMBULIB(Bambu_Destroy)(src->tnl); - } - - G_OBJECT_CLASS (parent_class)->finalize (gobject); -} - -static void -gst_bambusrc_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstBambuSrc *src = GST_BAMBUSRC (object); - - switch (prop_id) { - case PROP_LOCATION: - { - const gchar *location; - - location = g_value_get_string (value); - - if (location == NULL) { - GST_WARNING ("location property cannot be NULL"); - goto done; - } - if (!gst_bambusrc_set_location (src, location, NULL)) { - GST_WARNING ("badly formatted location"); - goto done; - } - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -done: - return; -} - -static void -gst_bambusrc_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstBambuSrc *src = GST_BAMBUSRC (object); - - switch (prop_id) { - case PROP_LOCATION: - g_value_set_string (value, src->location); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -int gst_bambu_last_error = 0; - -static GstFlowReturn -gst_bambusrc_create (GstPushSrc * psrc, GstBuffer ** outbuf) -{ - GstBambuSrc *src; - - src = GST_BAMBUSRC (psrc); - - (void) src; - GST_DEBUG_OBJECT (src, "create()"); - - int rv; - Bambu_Sample sample; - - if (!src->tnl) { - return GST_FLOW_ERROR; - } - - while ((rv = BAMBULIB(Bambu_ReadSample)(src->tnl, &sample)) == Bambu_would_block) { - GST_DEBUG_OBJECT(src, "create would block"); - usleep(33333); /* 30Hz */ - } - - if (rv == Bambu_stream_end) { - return GST_FLOW_EOS; - } - - if (rv != Bambu_success) { - gst_bambu_last_error = rv; - return GST_FLOW_ERROR; - } - -#if GLIB_CHECK_VERSION(2,68,0) - gpointer sbuf = g_memdup2(sample.buffer, sample.size); -#else - gpointer sbuf = g_memdup(sample.buffer, sample.size); -#endif - *outbuf = gst_buffer_new_wrapped_full(0, sbuf, sample.size, 0, sample.size, sbuf, g_free); - - /* Synthesize monotonic timestamps at the announced frame rate, anchored - * to the first frame's arrival time. The X1C's RTSPS server emits - * unreliable decode timestamps (wildly non-monotonic jumps, or sometimes - * none at all); forwarding them directly froze the pipeline after a few - * seconds. Pacing on a synthesized clock — the same trick mpv uses when - * it reports "No video PTS! Making something up." — gives smooth - * playback regardless of network jitter, and only drops late frames if - * the printer can't keep up. A snap-back resets the anchor if real - * arrival drifts more than two frame periods from the synthesized - * timeline (e.g. announced framerate was wrong). - */ - GstClock *clock = GST_ELEMENT_CLOCK(psrc); - GstClockTime base_time = gst_element_get_base_time((GstElement *)psrc); - GstClockTime running_now = GST_CLOCK_TIME_NONE; - if (clock) { - GstClockTime now = gst_clock_get_time(clock); - if (now != GST_CLOCK_TIME_NONE && now >= base_time) - running_now = now - base_time; - } - - /* Adapt the period to actual inter-arrival time via EWMA. The announced - * frame_rate is unreliable on Bambu printers (X1C announces 30 but - * delivers ~28), so trusting it causes the synthesized timeline to drift - * relative to real time, which makes the sink consider frames late and - * skip pacing entirely. Measuring the real rate keeps PTS in step with - * arrival on average, so the sink can pace inside bursts while still - * tracking the printer's actual frame cadence. - */ - if (src->avg_period == 0) { - int fps = src->frame_rate > 0 ? src->frame_rate : 30; - src->avg_period = GST_SECOND / fps; - } - if (running_now != GST_CLOCK_TIME_NONE && src->last_arrival != 0) { - GstClockTimeDiff delta = GST_CLOCK_DIFF(src->last_arrival, running_now); - /* clamp to plausible video frame periods (5..200 ms) so a one-off - * burst-of-zero or long stall doesn't poison the average */ - if (delta > 5 * GST_MSECOND && delta < 200 * GST_MSECOND) { - src->avg_period = (src->avg_period * 15 + (GstClockTime)delta) / 16; - } - } - src->last_arrival = (running_now != GST_CLOCK_TIME_NONE) ? running_now : src->last_arrival; - GstClockTime period = src->avg_period; - - /* Lead time: schedule frames a few periods in the future of their - * arrival, so the sink has a small jitter buffer. Without this, frames - * arriving slightly later than expected land behind the running clock - * and the sink renders them immediately, producing visible stutter. - * 100ms is invisible for a live print-monitor view. - */ - const GstClockTime LEAD = 100 * GST_MSECOND; - - if (!src->sttime) { - src->sttime = (running_now != GST_CLOCK_TIME_NONE) ? running_now + LEAD : LEAD; - src->frame_count = 0; - } - - GstClockTime pts = src->sttime + src->frame_count * period; - - /* Safety net: with the lead applied, expected drift is roughly -LEAD - * (pts sits LEAD ns ahead of running_now). Re-anchor only if the - * synthesized timeline diverges from that expectation by several frame - * periods, which indicates a real disturbance (printer paused, stream - * resumed, large fps change) rather than ordinary jitter. - */ - if (running_now != GST_CLOCK_TIME_NONE) { - GstClockTimeDiff drift = GST_CLOCK_DIFF(pts, running_now); - GstClockTimeDiff expected = -(GstClockTimeDiff)LEAD; - GstClockTimeDiff slack = (GstClockTimeDiff)(4 * period); - if (drift > expected + slack || drift < expected - slack) { - GST_DEBUG_OBJECT(src, "ts drift %" G_GINT64_FORMAT " ns; re-anchoring", drift); - src->sttime = running_now + LEAD; - src->frame_count = 0; - pts = src->sttime; - } - } - - GST_BUFFER_PTS(*outbuf) = pts; - GST_BUFFER_DTS(*outbuf) = pts; - GST_BUFFER_DURATION(*outbuf) = period; - src->frame_count++; - GST_DEBUG_OBJECT(src, - "sttime:%lu, DTS:%lu, PTS: %lu~", - src->sttime, GST_BUFFER_DTS(*outbuf), GST_BUFFER_PTS(*outbuf)); - - return GST_FLOW_OK; -} - -static void _log(void *ctx, int lvl, const char *msg) { - GstBambuSrc *src = (GstBambuSrc *) ctx; - GST_DEBUG_OBJECT(src, "bambu: %s", msg); - BAMBULIB(Bambu_FreeLogMsg)(msg); -} - -static gboolean -gst_bambusrc_start (GstBaseSrc * bsrc) -{ - GstBambuSrc *src = GST_BAMBUSRC (bsrc); - - GST_DEBUG_OBJECT (src, "start(\"%s\")", src->location); - - if (src->tnl) { - BAMBULIB(Bambu_Close)(src->tnl); - BAMBULIB(Bambu_Destroy)(src->tnl); - src->tnl = NULL; - } - -#ifdef BAMBU_DYNAMIC - if (!_lib) { - _lib = bambulib_get(); - if (!_lib->Bambu_Open) { - return FALSE; - } - } -#endif - if (BAMBULIB(Bambu_Create)(&src->tnl, src->location) != Bambu_success) { - return FALSE; - } - - int rv = 0; - BAMBULIB(Bambu_SetLogger)(src->tnl, _log, (void *)src); - if ((rv = BAMBULIB(Bambu_Open)(src->tnl)) != Bambu_success) { - BAMBULIB(Bambu_Destroy)(src->tnl); - src->tnl = NULL; - gst_bambu_last_error = rv; - return FALSE; - } - - int n = 0; - while ((rv = BAMBULIB(Bambu_StartStream)(src->tnl, 1 /* video */)) == Bambu_would_block) { - usleep(100000); - } - if (rv != Bambu_success) { - BAMBULIB(Bambu_Close)(src->tnl); - BAMBULIB(Bambu_Destroy)(src->tnl); - src->tnl = NULL; - gst_bambu_last_error = rv; - return FALSE; - } - - src->video_type = AVC1; - n = BAMBULIB(Bambu_GetStreamCount)(src->tnl); - GST_INFO_OBJECT (src, "Bambu_GetStreamCount returned stream count=%d",n); - for (int i = 0; i < n; ++i) { - Bambu_StreamInfo info; - BAMBULIB(Bambu_GetStreamInfo)(src->tnl, i, &info); - - GST_INFO_OBJECT (src, "stream %d type=%d, sub_type=%d", i, info.type, info.sub_type); - if (info.type == VIDE) { - src->video_type = info.sub_type; - src->frame_rate = info.format.video.frame_rate; - GST_INFO_OBJECT (src, " width %d height=%d, frame_rate=%d", - info.format.video.width, info.format.video.height, info.format.video.frame_rate); - } - } - - src->sttime = 0; - src->frame_count = 0; - src->last_arrival = 0; - src->avg_period = 0; - return TRUE; -} - -static gboolean -gst_bambusrc_stop (GstBaseSrc * bsrc) -{ - GstBambuSrc *src; - - src = GST_BAMBUSRC (bsrc); - GST_DEBUG_OBJECT (src, "stop()"); - if (src->tnl) { - BAMBULIB(Bambu_Close)(src->tnl); - BAMBULIB(Bambu_Destroy)(src->tnl); - src->tnl = NULL; - } - - return TRUE; -} - -static GstStateChangeReturn -gst_bambusrc_change_state (GstElement * element, GstStateChange transition) -{ - GstStateChangeReturn ret; - GstBambuSrc *src; - - src = GST_BAMBUSRC (element); - - (void) src; - - switch (transition) { - case GST_STATE_CHANGE_READY_TO_NULL: - //gst_bambusrc_session_close (src); - break; - default: - break; - } - - ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); - - return ret; -} - -/* Interrupt a blocking request. */ -static gboolean -gst_bambusrc_unlock (GstBaseSrc * bsrc) -{ - GstBambuSrc *src; - - src = GST_BAMBUSRC (bsrc); - GST_DEBUG_OBJECT (src, "unlock()"); - - return TRUE; -} - -/* Interrupt interrupt. */ -static gboolean -gst_bambusrc_unlock_stop (GstBaseSrc * bsrc) -{ - GstBambuSrc *src; - - src = GST_BAMBUSRC (bsrc); - GST_DEBUG_OBJECT (src, "unlock_stop()"); - - return TRUE; -} - -static gboolean -gst_bambusrc_is_seekable (GstBaseSrc * bsrc) -{ - GstBambuSrc *src = GST_BAMBUSRC (bsrc); - - (void) src; - - return FALSE; -} - -static gboolean -gst_bambusrc_query (GstBaseSrc * bsrc, GstQuery * query) -{ - GstBambuSrc *src = GST_BAMBUSRC (bsrc); - gboolean ret; - GstSchedulingFlags flags; - gint minsize, maxsize, align; - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_URI: - gst_query_set_uri (query, src->location); - ret = TRUE; - break; - default: - ret = FALSE; - break; - } - - if (!ret) - ret = GST_BASE_SRC_CLASS (parent_class)->query (bsrc, query); - - switch (GST_QUERY_TYPE (query)) { - case GST_QUERY_SCHEDULING: - gst_query_parse_scheduling (query, &flags, &minsize, &maxsize, &align); - flags = (GstSchedulingFlags)((int)flags | (int)GST_SCHEDULING_FLAG_SEQUENTIAL); - gst_query_set_scheduling (query, flags, minsize, maxsize, align); - break; - default: - break; - } - - return ret; -} - -static gboolean -gst_bambusrc_set_location (GstBambuSrc * src, const gchar * uri, - GError ** error) -{ - if (src->location) { - g_free (src->location); - src->location = NULL; - } - - if (uri == NULL) - return FALSE; - - src->location = g_strdup (uri); - - return TRUE; -} - -static GstURIType -gst_bambusrc_uri_get_type (GType type) -{ - return GST_URI_SRC; -} - -static const gchar *const * -gst_bambusrc_uri_get_protocols (GType type) -{ - static const gchar *protocols[] = { "bambu", NULL }; - - return protocols; -} - -static gchar * -gst_bambusrc_uri_get_uri (GstURIHandler * handler) -{ - GstBambuSrc *src = GST_BAMBUSRC (handler); - - /* FIXME: make thread-safe */ - return g_strdup (src->location); -} - -static gboolean -gst_bambusrc_uri_set_uri (GstURIHandler * handler, const gchar * uri, - GError ** error) -{ - GstBambuSrc *src = GST_BAMBUSRC (handler); - - return gst_bambusrc_set_location (src, uri, error); -} - -static void -gst_bambusrc_uri_handler_init (gpointer g_iface, gpointer iface_data) -{ - GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; - - iface->get_type = gst_bambusrc_uri_get_type; - iface->get_protocols = gst_bambusrc_uri_get_protocols; - iface->get_uri = gst_bambusrc_uri_get_uri; - iface->set_uri = gst_bambusrc_uri_set_uri; -} - -static gboolean gstbambusrc_init(GstPlugin *plugin) -{ - return gst_element_register(plugin, "bambusrc", GST_RANK_PRIMARY, GST_TYPE_BAMBUSRC); -} - -#ifndef EXTERNAL_GST_PLUGIN - -// for use inside of Bambu Slicer -void gstbambusrc_register() -{ - static int did_register = 0; - if (did_register) - return; - did_register = 1; - - gst_plugin_register_static(GST_VERSION_MAJOR, GST_VERSION_MINOR, "bambusrc", "Bambu Lab source", gstbambusrc_init, "0.0.1", "GPL", "BambuStudio", "BambuStudio", "https://github.com/bambulab/BambuStudio"); -} - -#else - -#ifndef PACKAGE -#define PACKAGE "bambusrc" -#endif - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, bambusrc, "Bambu Lab source", gstbambusrc_init, "0.0.1", "GPL", "BambuStudio", "https://github.com/bambulab/BambuStudio") - -#endif diff --git a/src/slic3r/GUI/Printer/gstbambusrc.h b/src/slic3r/GUI/Printer/gstbambusrc.h deleted file mode 100644 index d5c022a40e..0000000000 --- a/src/slic3r/GUI/Printer/gstbambusrc.h +++ /dev/null @@ -1,78 +0,0 @@ -/* bambusrc for gstreamer - * integration with proprietary Bambu Lab blob for getting raw h.264 video - * - * Copyright (C) 2023 Joshua Wise - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * Alternatively, the contents of this file may be used under the - * GNU Lesser General Public License Version 2.1 (the "LGPL"), in - * which case the following provisions apply instead of the ones - * mentioned above: - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_BAMBUSRC_H__ -#define __GST_BAMBUSRC_H__ - -#include -#include -#include - -G_BEGIN_DECLS - -#define GST_TYPE_BAMBUSRC (gst_bambusrc_get_type()) -G_DECLARE_FINAL_TYPE (GstBambuSrc, gst_bambusrc, - GST, BAMBUSRC, GstPushSrc) - -typedef void *Bambu_Tunnel; - -struct _GstBambuSrc -{ - GstPushSrc element; - GstCaps *src_caps; - gchar *location; - Bambu_Tunnel tnl; - GstClockTime sttime; - int video_type; - int frame_rate; - guint64 frame_count; - GstClockTime last_arrival; - GstClockTime avg_period; -}; - -extern void gstbambusrc_register(); - -G_END_DECLS - -#endif /* __GST_BAMBUSRC_H__ */ From 9c7e6711c6130ccb8298c6552224ae0ff659bfeb Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Fri, 14 Aug 2026 23:06:16 +0800 Subject: [PATCH 071/164] build: move FFmpeg media player sources to the common GUI list wxMediaCtrl3 and AVVideoDecoder are platform-neutral C++ compiled on all three platforms, so list them once in the common SLIC3R_GUI_SOURCES instead of duplicating them in the APPLE and non-APPLE branches. The else() branch is now empty and drops out entirely. Co-Authored-By: Claude --- src/slic3r/CMakeLists.txt | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 7d799da4a8..718da3705b 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -38,6 +38,8 @@ set(SLIC3R_GUI_SOURCES GUI/AuxiliaryDataViewModel.hpp GUI/AuxiliaryDialog.cpp GUI/AuxiliaryDialog.hpp + GUI/AVVideoDecoder.cpp + GUI/AVVideoDecoder.hpp GUI/Auxiliary.hpp GUI/BackgroundSlicingProcess.cpp GUI/BackgroundSlicingProcess.hpp @@ -601,6 +603,8 @@ set(SLIC3R_GUI_SOURCES GUI/WipeTowerDialog.cpp GUI/wxExtensions.cpp GUI/wxExtensions.hpp + GUI/wxMediaCtrl3.cpp + GUI/wxMediaCtrl3.h plugin/PythonInterpreter.cpp plugin/PythonInterpreter.hpp plugin/PythonPluginBridge.cpp @@ -784,19 +788,8 @@ if (APPLE) GUI/DeepLinkHandlerMac.mm GUI/DeepLinkHandlerMac.h GUI/GUI_UtilsMac.mm - GUI/AVVideoDecoder.cpp - GUI/AVVideoDecoder.hpp - GUI/wxMediaCtrl3.cpp - GUI/wxMediaCtrl3.h ) FIND_LIBRARY(DISKARBITRATION_LIBRARY DiskArbitration) -else () - list(APPEND SLIC3R_GUI_SOURCES - GUI/AVVideoDecoder.cpp - GUI/AVVideoDecoder.hpp - GUI/wxMediaCtrl3.cpp - GUI/wxMediaCtrl3.h - ) endif () set(ORCA_UPDATER_SIG_KEY_B64 "${ORCA_UPDATER_SIG_KEY}") From 86a63e7e2f0077018f2c68fd0c4801035251d732 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sat, 15 Aug 2026 08:52:52 +0800 Subject: [PATCH 072/164] deps: disable FFmpeg VideoToolbox/AudioToolbox HW-accel on macOS The static libavcodec.a/avutil.a compiled the auto-detected videotoolbox/audiotoolbox objects, which reference VideoToolbox framework symbols (_VTDecompressionSession*). The app link line happened to satisfy them transitively, but the orca_stubgen module link (CI-only) failed with undefined symbols. The player decodes in software (swscale), so disable both HW-accel paths to keep the static libs self-contained. Co-Authored-By: Claude --- deps/FFMPEG/FFMPEG.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/deps/FFMPEG/FFMPEG.cmake b/deps/FFMPEG/FFMPEG.cmake index 60e856f41f..38e952bbdd 100644 --- a/deps/FFMPEG/FFMPEG.cmake +++ b/deps/FFMPEG/FFMPEG.cmake @@ -27,7 +27,10 @@ else () "--extra-ldflags=-mmacosx-version-min=${DEP_OSX_TARGET}" ) # Static FFmpeg: nothing to bundle into the .app, no rpath handling. - set(_link_cmd --enable-static --disable-shared) + # Disable the VideoToolbox/AudioToolbox HW-accel paths: the player decodes + # in software (swscale), and the auto-detected HW objects would drag in + # system frameworks that the static libs would then depend on. + set(_link_cmd --enable-static --disable-shared --disable-videotoolbox --disable-audiotoolbox) if (IS_CROSS_COMPILE) set(_cross_cmd --enable-cross-compile) set(_pic_cmd --enable-pic) From 83a00843a01fac0cbd2e083fd32549bf87ea4b50 Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Wed, 19 Aug 2026 14:13:56 +0800 Subject: [PATCH 073/164] fix: revoke plugin permissions on install/update --- src/slic3r/plugin/PluginManager.cpp | 26 ++++++++++++++++++++++++++ src/slic3r/plugin/PluginManager.hpp | 2 ++ 2 files changed, 28 insertions(+) diff --git a/src/slic3r/plugin/PluginManager.cpp b/src/slic3r/plugin/PluginManager.cpp index d84f629112..16acfe0eee 100644 --- a/src/slic3r/plugin/PluginManager.cpp +++ b/src/slic3r/plugin/PluginManager.cpp @@ -1145,6 +1145,26 @@ void PluginManager::mark_plugin_install_state_disabled(const std::string& plugin plugin->descriptor.enabled = false; } +void PluginManager::revoke_plugin_permissions(const std::string& plugin_key) +{ + std::lock_guard state_lock(m_install_state_mutex); + + PluginDescriptor descriptor; + if (!try_get_plugin_descriptor(plugin_key, descriptor) || descriptor.plugin_root.empty()) + return; + + const boost::filesystem::path root(descriptor.plugin_root); + PluginInstallState state; + if (!read_install_state(root, state)) { + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": Failed to read install state for " << plugin_key; + return; + } + + state.permissions = {}; + if (!write_install_state(root, state)) + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": Failed to revoke permissions for " << plugin_key; +} + // ── Callbacks ─────────────────────────────────────────────────────────────────────────────── void PluginManager::subscribe_on_load_callback(PluginLifecycleCompleteFn fn) @@ -1364,6 +1384,11 @@ bool PluginManager::install_plugin(const boost::filesystem::path& filepath, Plug return false; } + // Every successful install may have replaced executable plugin code. Revoke any permissions + // associated with the previous package so the newly installed version must request them again. + if (!plugin_descriptor.plugin_key.empty()) + revoke_plugin_permissions(plugin_descriptor.plugin_key); + if (!plugin_descriptor.plugin_key.empty()) clear_plugin_error(plugin_descriptor.plugin_key); @@ -1751,6 +1776,7 @@ bool PluginManager::update_cloud_plugin(const std::string& plugin_key, std::stri } clear_plugin_error(plugin_key); + return true; } diff --git a/src/slic3r/plugin/PluginManager.hpp b/src/slic3r/plugin/PluginManager.hpp index 26a02c09ec..f23c552e25 100644 --- a/src/slic3r/plugin/PluginManager.hpp +++ b/src/slic3r/plugin/PluginManager.hpp @@ -254,6 +254,8 @@ private: // Writes the sidecar for a loaded plugin (enabled=true plus the current per-capability flags). void write_loaded_plugin_install_state(const std::string& plugin_key); void mark_plugin_install_state_disabled(const std::string& plugin_key); + // Revoke permissions after a package replacement so the new package must request them again. + void revoke_plugin_permissions(const std::string& plugin_key); bool finalize_cloud_plugin_removal(const PluginDescriptor& plugin, bool keep_local, std::string& error); bool delete_installed_plugin_package(const PluginDescriptor& plugin, std::string& error); From 71563cc6c6eb396631d55ad2a4c38eddfaf1308c Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 21 Aug 2026 18:13:18 +0800 Subject: [PATCH 074/164] Add filament_id plan v4: dissolve the Qidi QD_* island --- filament_id_plan_v4.md | 224 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 filament_id_plan_v4.md diff --git a/filament_id_plan_v4.md b/filament_id_plan_v4.md new file mode 100644 index 0000000000..046a7cae1c --- /dev/null +++ b/filament_id_plan_v4.md @@ -0,0 +1,224 @@ +# filament_id plan v4: dissolve the Qidi `QD_*` island + +Supersedes §0.2 of `filament_id_plan_v3.md` (the "`QD_*` island — untouched, forever" +decision) and amends every v3 section that carved out `QD_*`. Everything else in v3 — +the mint rule, the succession ledger, the BBL island, checks 1–9 — stands as +implemented (v3.0–v3.2, all gates green at commit `f7c1b290fd`). + +Decision driver: the island contradicts the catalog architecture v3 built. Qidi presets +carry 204 `QD___` ids over 264 declarations (49 families, +measured 2026-08-21) — one commercial product carries up to *five* ids (one per printer +series: `QIDI PLA Rapido` = `QD_0_1_1` … `QD_4_1_1`), which is exactly the +fragmentation v3 exists to remove. The island was frozen because Qidi's filament box +composes these ids from device enums and requires exactly-matching presets +(`QidiPrinterAgent.cpp:146-152`). But v3.0 shipped the machinery that makes freezing +unnecessary: the succession ledger already translates retired ids on resolution miss. +`QD_*` stops being a *preset id space* and becomes a *device protocol namespace*, +translated once at the agent edge. + +## 0. The architecture change + +Two tiers, **one** frozen island: + +1. **BBL island — untouched, unchanged.** All v3 reasoning holds (device/RFID/cloud + contract is external and opaque). +2. **Everything else converges on OFL product ids — now including Qidi.** All 204 + `QD_*` ids re-mint from their family triples and gain **retired** ledger entries + (not cross-island hints: after dissolution there is no island to own them, and + check 4's "never again" is exactly the guard we want against upstream re-adding + them). The box keeps working because `QidiPrinterAgent` resolves its composed + `QD_*` id through `resolve_filament_id_succession()` on miss — the same mechanism + every other retired id already uses. + +Why retire rather than hint (the one real design choice here): hints exist for ids a +*foreign catalog* owns and may legitimately re-ship (`GF*`). Post-dissolution, nothing +may ever re-ship a `QD_*` id in the profile tree — the device composes them at +runtime, the tree translates them. Retired entries make CI enforce that permanently +(`--update-snapshot` refuses resurrections, check 4 refuses occurrences); hints would +permit re-shipping, which is now always a regression. The QD→family mapping is +strictly 1:1 (verified: no `QD_*` id is claimed by more than one family), so the +mode-rule successor is unambiguous for every entry. + +## 1. What the dissolution consists of + +Three independent work packages, ordered for bisectability: + +- **(A) Re-converge the drifted tree** — prerequisite, not Qidi-specific. The + 2026-07 main merge (`f3fa3a34bd`) brought upstream vendor updates in pre-v3 style: + `--check` currently exits with **243 errors** (123 unsanctioned new ids, 46 new + instantiated own-key presets, 31 override drifts, 18 reserved-space claims, 5 + hint-keys re-declared — Qidi re-added `GFB99`/`GFG99`/`GFL99`, Snapmaker re-added + `GFG96`/`GFU99` and even four *retired* ids incl. `OGFL99`, plus Snapmaker U1 + triple errors and a GreenGate3D rename). This is the standing WF-B maintenance + pass; the dissolution's gates cannot go green on a red base. +- **(B) C++ succession hook in the Qidi agent** — safe to land before any data + changes (pure miss-path: while `QD_*` presets still exist, the hook never fires). +- **(C) The dissolution proper** — tooling flip + Qidi data fixes + re-mint + + snapshot/ledger regeneration, one vendor worksheet in the v3.2 mold. + +## 2. Runtime translation (work package B) + +`QidiPrinterAgent.cpp:183-192` currently: compose `setting_id` → keep it if a visible +base preset declares it → else degrade to `filament_id_by_type(tray_type)` (i.e. every +QIDI-brand box slot silently becomes Generic once the ids re-mint). Insert the +succession walk between those two steps: + +```cpp +} else if (!setting_id.empty() && has_visible_base_preset(bundle->filaments, setting_id)) { + tray.tray_info_idx = setting_id; +} else { + // Retired QD_* protocol ids forward to their minted successors via the shipped ledger. + const std::string successor = setting_id.empty() ? std::string() + : resolve_filament_id_succession(setting_id); + if (!successor.empty() && has_visible_base_preset(bundle->filaments, successor)) + tray.tray_info_idx = successor; + else + tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); +} +``` + +`resolve_filament_id_succession` is `Preset.hpp:119` (loads once, cycle-guarded, +empty-safe) — no new includes needed beyond what the file already reaches through +`PresetBundle`. This one hook covers both composition paths: the numeric-series +`build_setting_id` lambda *and* the non-numeric fallback +`map_filament_type_to_setting_id` (`:325-342`), whose four hardcoded returns +(`QD_1_0_1`/`_11`/`_41`/`_50` = Generic PLA/ABS/PETG/TPU 95A) become ledger keys in +package C. Keep that function as-is but extend its comment: the returned ids are +retired ledger keys by design, and `scripts/tests/test_filament_id.py` parses the +initializer (see §4 tests) — the Moonraker treatment (`MoonrakerPrinterAgent.cpp: +619-627`) of replacing the table with name lookups was considered and not taken: the +table already routes through the same ledger as the composed ids, and two translation +mechanisms in one agent is worse than one. + +Tests (same commit): + +- `tests/libslic3r/test_filament_id_succession.cpp`: add a section asserting a + `QD_`-shaped key forwards like any other (`{"QD_2_1_11", "OFnew001"}` resolves to + `"OFnew001"`) — pins that the walk is prefix-agnostic. +- `scripts/tests/test_filament_id.py`: new test parsing the four `QD_` literals out of + `QidiPrinterAgent.cpp::map_filament_type_to_setting_id` (mirror the parser in + `scripts/test_moonraker_lane_data.py`) and asserting each is a ledger key whose + chain terminates at a live tree id. **Add it marked expected-fail/skipped until + package C lands, then flip it on** — it is the permanent code↔ledger lockstep guard. + +## 3. Tooling and validation flip (work package C, first commit) + +All in `scripts/assign_filament_ids.py`; every touched line measured 2026-08-21: + +- `is_island_declaration` (`:327-329`) → `return vendor == "BBL"`. This single change + pulls every `QD_*` declarer into the triple bookkeeping (`:385`) and thus into + checks 3 and 8, into `--remint`'s domain (`:1464`), and out of the hint-key + tolerances (`:877`, `:1100`). +- `reserved_space_owner` (`:596-604`): `QD_*` returns `(True, None)` — reserved, + ownerless, exactly like the P-hex/user-custom space. Consequences, all wanted: + check 6 refuses any future vendor claim; the `--update-snapshot` sanction gate + (`:938-963`) refuses new `QD_*` ids outright; the vanish path (`:994`) routes + `QD_*` to **retired** (owner `None` ≠ island), not released-with-hint. Update the + two message sites that render `owner is None` as "reserved for user-custom presets" + (`:628` docstring, `:958`, and check 6's copy) to name the space generically or + special-case `QD_*` ("Qidi device protocol; dissolved island — retired, never + declarable"). +- Check 1 (`:667-668`): delete the `vendor == "Qidi" and fid.startswith("QD_")` + exemption. +- Module docstring (`:27-45`): rewrite the `QD_*` bullet — reserved space stays + listed, but as "device protocol namespace, translated via the succession ledger; + dissolved as a catalog island in v4, may never be declared". +- `scripts/tests/test_filament_id.py`: update the three island assertions — + `reserved_space_owner("QD_X4_PLA")` → `(True, None)` (`:403`), + `is_island_declaration("Qidi", "QD_X4_PLA")` → `False` (`:413`), and the + reserved-space message case (`:570`). + +No changes to the ledger schema, the C++ checks, `--retire` (post-flip it accepts +`QD_*` olds automatically — they are non-island now), or the validator: check 3's +"non-BBL, non-`QD_*`" phrasing in v3 §3 was always implemented as "non-island", so the +flip *is* the spec change. + +## 4. Migration phases + +**v4.0 — re-converge the drifted tree (package A).** Per-vendor WF-B worksheets over +the 243 errors: Snapmaker U1 (triple divergence `Generic|Snapmaker|snapmaker`, empty +vendors, four resurrected retired ids — these force re-mints since retirement is +permanent), BBL/addnorth `GF_AN*` overrides (BBL island: grandfather via snapshot, +they are BBL-internal), Qidi/Snapmaker re-declared hint keys (re-mint those declarers, +the check's own prescription), GreenGate3D rename, then `--update-snapshot` (new +upstream `QD_*` ids sanction cleanly — the island is still intact in this phase) and +the full v3 §5 gate battery. Bump `version` in every touched +`resources/profiles/.json`. **Do not start v4.2 until `--check` exits 0.** + +**v4.1 — the agent hook (package B).** §2 as written; `libslic3r_tests` + +`scripts/tests/test_filament_id.py` green; behavior-neutral by construction (no `QD_*` +ledger entries exist yet). + +**v4.2 — the dissolution (package C).** One Qidi worksheet, v3.2 machinery: + +1. Tooling flip commit (§3). `--check` now reports the Qidi island as + non-conformant — expected, red only between commits of this phase. +2. Data fixes, before any re-mint (the v3 "W3 lands first" lesson — type/vendor are + key components): add `filament_vendor: ["QIDI"]` at each QIDI-brand family's + inheritance apex so all declarers resolve it (39 of 49 families currently resolve + none — check 8a would refuse the mint). Verify the six Generic families + (`Generic PLA/ABS/PETG/PC/TPU 95A/PLA Silk`) resolve triples identical to their + OFL counterparts (vendor `Generic`, OFL's `filament_type`) so they *converge onto + the OFL ids* by triple math — the whole point; any mismatch is a W3-style data fix + here, not a fork. No `inherits`/`compatible_printers` re-pointing anywhere: the + series intermediates (`Generic PLA@Q2-Series` etc., all `instantiation: false`) + simply keep declarations whose values become the OFL ids. +3. `python scripts/assign_filament_ids.py --remint Qidi` — rewrites all 264 + declarations in place to their family mints (same triple ⇒ same id across a + family's series intermediates and per-nozzle declarers; convergence with OFL ids + is legal by design, `want_id` already permits same-triple collisions `:1447`). +4. `--update-snapshot` — retires every vanished `QD_*` id with its mode-rule + successor. **Audit the ledger diff: all ~204 new entries must be `QD_*`→non-null.** + A null successor (possible only for a declared-only id with zero instantiated + claims) gets an explicit `--retire "QD_x=OFy"` with the family's minted id. +5. Un-skip the §2 lockstep test. Bump `resources/profiles/Qidi.json` version. Full + gate battery (§5). + +Known residue, accepted: `QIDI PC-ABS-FR` (series 1–2) vs `QIDI PC/ABS-FR` +(series 3–4) are two preset-name families for one product → two ids. Renames were +ruled out in v3 (`renamed_from` rejected for migrations); if upstream ever unifies the +name, content-addressing re-ids and the ledger absorbs it — self-healing, no action +now. + +**v4.3 — OFL consolidation (unchanged).** v3.3 stays optional and id-stable; QIDI-brand +families are vendor-unique and stay in the Qidi bundle. + +## 5. Gates (per phase, delta from v3 §5) + +Unchanged battery: `orca_extra_profile_check.py` exit 0, `assign_filament_ids.py +--check` exit 0, `scripts/tests/test_filament_id.py` all green, `libslic3r_tests` +green, validator `-l 2` tree-wide + `-f` tree-wide + `-v Qidi` exit 0, custom-preset +fixture archives (v4.2 touches no preset visibility, but they are cheap insurance — +run them for v4.0, which touches instantiation-adjacent upstream drift), flatten +config-equivalence. New for v4.2: equivalence diff may contain **only** `filament_id` +value changes (QD→OF) and the added `filament_vendor` keys on QIDI-brand families; +ledger diff audit per §4.4; the map-literal lockstep test. Manual release-checklist +item: Qidi box smoke test — slot holding a QIDI-brand material must surface the brand +preset (not Generic) on an updated client, via the memory-documented local Klipper +test rig. + +## 6. Accepted costs (explicit, new relative to v3) + +- **Every Qidi box slot resolves through the ledger miss-path forever** (one hash-map + walk per slot per status poll — negligible, and structurally identical to how + every retired id already resolves). The QD→OF translation table is maintained by + the retirement machinery, not by hand. +- **Older Orca clients** (pre-v4 profiles) paired with re-minted profile trees lose + QIDI-brand slot matching (they look up `QD_*` and fall back generic-by-type — the + degradation the hook removes for updated clients). Same one-time field-transition + shape v3 §6 already accepted for AMS/AFC ids. +- **Two ids for PC-ABS-FR** until upstream unifies the family name (§4 residue). + +## 7. Evidence + +Measured on this tree 2026-08-21 unless cited to v3: 204 distinct `QD_*` ids / 264 +declaring presets / 49 families, QD→family strictly 1:1, per-series id sets +(`QD_0..4_1_1` = `QIDI PLA Rapido` etc.); 39 families resolve no `filament_vendor`; +declarations live on `instantiation:false` series intermediates (Q2/Q2C/X5/X4) and +per-nozzle X-Plus-4 presets; composition + miss-fallback at +`QidiPrinterAgent.cpp:146-152, 183-192`, hardcoded fallback table `:325-342`; +succession helpers `Preset.hpp:109-119`; ledger = 575 retired + 194 hints, zero `QD_*` +entries; snapshot holds 160 of the 204 (the 44 newcomers are post-merge drift); +`--check` = 243 errors, categorized in §1(A); island exemption mechanics at +`assign_filament_ids.py:327-329, 385, 596-604, 667, 877, 994, 1464, 1514`; `--remint` +same-triple convergence guard `:1447-1453`; retirement-permanence gate `:965-976`. From 58d1a3b093e050c6ba176171dc48224b17a1984d Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 21 Aug 2026 18:13:18 +0800 Subject: [PATCH 075/164] filament_id v4.0: re-converge post-merge drift (Qidi/Snapmaker/re3D) The 2026-08 main merge brought upstream vendor updates in pre-v3 style; assign_filament_ids.py --check reported 243 errors. Re-converged per plan v4 SS1(A)/SS4: - Qidi X5: 12 brand presets had copied BBL catalog ids (GFB99/GFG99/GFL99); re-minted to their product triples (PolyLite PLA converges onto OF5CgdDq). - Snapmaker U1: fixed empty/lowercase/wrong filament_vendor on 5 bases (triple inputs, W3-style); re-minted 24 declarations, resurrecting no retired ids (11813638720/141703112701/1417031127011/OGFL99 all re-minted away; base2 duplicates converge onto their families' v3.2 ids). - re3D: rPETG had copied GFG01 (BBL space); re-minted to OFmCOW2Y. The GreenGate3D bundle was removed upstream with its product relocated here; retired OFSTCno1 -> OFmCOW2Y so shipped references keep resolving. - validator -f: resolved 34 AMS-match ambiguities using the v3 mechanisms: salt-1 ids on the 5 re3D root presets and Snapmaker PLA-CF @U1 0.4 (duplicate presets of one product; deletion forbidden), own minted ids for the 4 cross-family riders (Polymaker General/Silk/Tough PLA Family, Snapmaker PLA Full Spectrum). - Snapshot re-sanctioned (+92 ids incl. 44 new QD_4_* island ids and BBL addnorth GF_AN*); ledger +1 entry (OFSTCno1). Gates: --check 0; orca_extra_profile_check 0/0; 116 script tests OK; validator base + -f exit 0. Vendor versions bumped (Qidi, Snapmaker, re3D). --- resources/profiles/Qidi.json | 2 +- .../Qidi/filament/X5/Bambu ABS @X-Plus 5.json | 2 +- .../filament/X5/Bambu PETG @X-Plus 5.json | 2 +- .../Qidi/filament/X5/Bambu PLA @X-Plus 5.json | 2 +- .../filament/X5/Generic PLA+ @X-Plus 5.json | 2 +- .../filament/X5/HATCHBOX ABS @X-Plus 5.json | 2 +- .../filament/X5/HATCHBOX PETG @X-Plus 5.json | 2 +- .../filament/X5/HATCHBOX PLA @X-Plus 5.json | 2 +- .../filament/X5/Overture ABS @X-Plus 5.json | 2 +- .../filament/X5/Overture PLA @X-Plus 5.json | 2 +- .../filament/X5/PolyLite ABS @X-Plus 5.json | 2 +- .../filament/X5/PolyLite PLA @X-Plus 5.json | 2 +- .../X5/Polymaker PLA-HT @X-Plus 5.json | 2 +- resources/profiles/Snapmaker.json | 2 +- .../Polymaker General PLA Family @U1.json | 1 + .../filament/Polymaker PLA @U1 base.json | 4 +- .../Polymaker Silk PLA Family @U1.json | 1 + .../Polymaker Tough PLA Family @U1.json | 1 + .../filament/Snapmaker PETG HF @U1 base2.json | 4 +- .../Snapmaker PETG Translucent @U1 base.json | 2 +- .../Snapmaker PLA Basic @U1 base.json | 5 +- ...aker PLA Full Spectrum @U1 0.4 nozzle.json | 1 + .../filament/Snapmaker PLA Glow @U1 base.json | 2 +- .../Snapmaker PLA Matte @U1 base2.json | 5 +- .../Snapmaker PLA Silk @U1 0.2 nozzle.json | 2 +- .../Snapmaker PLA Silk @U1 0.6 nozzle.json | 2 +- .../Snapmaker PLA Silk @U1 0.8 nozzle.json | 2 +- .../filament/Snapmaker PLA Silk @U1.json | 2 +- .../Snapmaker PLA SnapSpeed @U1 base2.json | 4 +- .../Snapmaker PLA Translucent @U1 base.json | 2 +- .../Snapmaker PLA Wood @U1 0.4 nozzle.json | 2 +- .../Snapmaker PLA Wood @U1 0.6 nozzle.json | 2 +- .../Snapmaker PLA Wood @U1 0.8 nozzle.json | 2 +- .../Snapmaker PLA-CF @U1 0.4 nozzle.json | 2 +- .../Snapmaker PLA-CF @U1 0.6 nozzle.json | 2 +- .../Snapmaker PLA-CF @U1 0.8 nozzle.json | 2 +- .../Snapmaker TPU 90A @U1 0.6 nozzle.json | 2 +- .../Snapmaker TPU 90A @U1 0.8 nozzle.json | 2 +- .../filament/Snapmaker TPU 90A @U1.json | 2 +- .../Snapmaker TPU 95A HF @U1 0.6 nozzle.json | 2 +- .../Snapmaker TPU 95A HF @U1 0.8 nozzle.json | 2 +- .../filament/Snapmaker TPU 95A HF @U1.json | 2 +- resources/profiles/re3D.json | 2 +- resources/profiles/re3D/filament/re3D PC.json | 2 +- .../profiles/re3D/filament/re3D PETG.json | 2 +- .../profiles/re3D/filament/re3D PLA.json | 2 +- .../re3D/filament/re3D rPETG @0.8 nozzle.json | 2 +- .../filament/re3D rPETG @1.75 nozzle.json | 2 +- .../profiles/re3D/filament/re3D rPETG.json | 2 +- .../profiles/re3D/filament/re3D rPP.json | 2 +- resources/profiles/retired_filament_ids.json | 6 + scripts/filament_id_snapshot.json | 520 +++++++++++++++++- 52 files changed, 566 insertions(+), 68 deletions(-) diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index 08a2d6a230..ecceff5a8a 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.10", + "version": "02.04.00.11", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ diff --git a/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json index 1464576f61..0e0fdb08b0 100644 --- a/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Bambu ABS @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFhuaUQB", "name": "Bambu ABS@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json index 0a4d2ce22c..ef6ea57354 100644 --- a/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Bambu PETG @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFLYDngx", "name": "Bambu PETG@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json index 7660c8174d..ad90cb8a81 100644 --- a/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Bambu PLA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OF1dpPrW", "name": "Bambu PLA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json index e1d40b179f..72d7b6f9c6 100644 --- a/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic PLA+ @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFEWYR89", "name": "Generic PLA+@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json index 3f5987240c..323fcf3e90 100644 --- a/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX ABS @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFwLBAGf", "name": "HATCHBOX ABS@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json index 5f794e561c..6f0495c45b 100644 --- a/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PETG @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG99", + "filament_id": "OFIWMSGX", "name": "HATCHBOX PETG@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json index 094e540793..7ee05c27f7 100644 --- a/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/HATCHBOX PLA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFeelsSM", "name": "HATCHBOX PLA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json index ea12b78ead..82863e8d80 100644 --- a/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Overture ABS @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFK8XHPn", "name": "Overture ABS@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json index 571eb2bbeb..0dbb498feb 100644 --- a/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Overture PLA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFc3xdm9", "name": "Overture PLA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json index 48b6caa32b..1cf57f8ce3 100644 --- a/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/PolyLite ABS @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFB99", + "filament_id": "OFOvv91M", "name": "PolyLite ABS@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json index 5b37f7ae8a..4702c9ba1c 100644 --- a/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/PolyLite PLA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OF5CgdDq", "name": "PolyLite PLA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json index f3c54e81f1..233542bab1 100644 --- a/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Polymaker PLA-HT @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFL99", + "filament_id": "OFfYHK5z", "name": "Polymaker PLA-HT@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 9a6fab7942..65b1d12a3a 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.09", + "version": "02.04.00.10", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json index c706ba776d..0e743d7aee 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker General PLA Family @U1.json @@ -4,6 +4,7 @@ "inherits": "Polymaker PLA @U1 base", "from": "system", "setting_id": "thXfSaUkOAKJ50ey", + "filament_id": "OF44ERDr", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json b/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json index b27c48f720..ae420e8912 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Polymaker PLA @U1 base.json @@ -3,7 +3,7 @@ "name": "Polymaker PLA @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OGFL99", + "filament_id": "OFelDBgv", "instantiation": "false", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" @@ -48,7 +48,7 @@ "nil" ], "filament_vendor": [ - "Generic" + "Polymaker" ], "filament_scarf_seam_type": [ "none" diff --git a/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json index b6bd119022..990cc483f3 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker Silk PLA Family @U1.json @@ -4,6 +4,7 @@ "inherits": "Polymaker PLA @U1 base", "from": "system", "setting_id": "h8vIYpXbxFtHPV6e", + "filament_id": "OFH57ibH", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json b/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json index e5c2c7d7f6..1dad000fb2 100644 --- a/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json +++ b/resources/profiles/Snapmaker/filament/Polymaker Tough PLA Family @U1.json @@ -4,6 +4,7 @@ "inherits": "Polymaker PLA @U1 base", "from": "system", "setting_id": "d6CC81Es2hp46bto", + "filament_id": "OFgdaBOt", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json index 0ad75759a1..4f934b93a3 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG HF @U1 base2.json @@ -3,7 +3,7 @@ "name": "Snapmaker PETG HF @U1 base2", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "GFG96", + "filament_id": "OFL9aRjN", "instantiation": "false", "cool_plate_temp": [ "0" @@ -177,7 +177,7 @@ "nil" ], "filament_vendor": [ - "Generic" + "Snapmaker" ], "filament_prime_volume": [ "45" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json index eb18fb4838..6b51cd2535 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PETG Translucent @U1 base.json @@ -3,6 +3,6 @@ "name": "Snapmaker PETG Translucent @U1 base", "inherits": "fdm_filament_petg", "from": "system", - "filament_id": "PETG_TRANSLUCENT_001", + "filament_id": "OFW8lqnb", "instantiation": "false" } diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json index adf7624e1f..d6e7e209c6 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Basic @U1 base.json @@ -2,8 +2,11 @@ "type": "filament", "name": "Snapmaker PLA Basic @U1 base", "from": "system", - "filament_id": "1417031127011", + "filament_id": "OFhmxnYw", "instantiation": "false", + "filament_vendor": [ + "Snapmaker" + ], "filament_end_gcode": [ "" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json index 990e67a79e..219e8075e5 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Full Spectrum @U1 0.4 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "iybaFWrXKOsmXgMJ", + "filament_id": "OFOPU1xv", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json index ad3c1f4bbb..e69ca63254 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Glow @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Glow @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "SPGLOW001", + "filament_id": "OFfD87Gy", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json index 6c0dcf26fd..109dbc19e7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Matte @U1 base2.json @@ -2,8 +2,11 @@ "type": "filament", "name": "Snapmaker PLA Matte @U1 base2", "from": "system", - "filament_id": "141703112701", + "filament_id": "OFF9cgY5", "instantiation": "false", + "filament_vendor": [ + "Snapmaker" + ], "filament_end_gcode": [ "" ], diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json index 5eb860506c..e4fdb8016b 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "Q5xH6oGGlbXr14Pa", - "filament_id": "11813638720", + "filament_id": "OFWgFOjn", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.2 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json index 5df6ff5a3a..b144ce86dd 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "2pieDQoz9PiDCnU1", - "filament_id": "11813638720", + "filament_id": "OFWgFOjn", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.6 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json index 0758372ea0..aa92e97d18 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "f3H0JFUnds0mkKCN", - "filament_id": "11813638720", + "filament_id": "OFWgFOjn", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json index c68904ffd9..6b6030b919 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Silk @U1.json @@ -4,7 +4,7 @@ "inherits": "Snapmaker PLA Basic @U1 base", "from": "system", "setting_id": "9PkHSwtXFM0zPWth", - "filament_id": "11813638720", + "filament_id": "OFWgFOjn", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json index 84889e3d9b..41876b04bb 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA SnapSpeed @U1 base2.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker PLA SnapSpeed @U1 base2", "from": "system", - "filament_id": "141703112701", + "filament_id": "OFwhLMs4", "instantiation": "false", "activate_air_filtration": [ "0" @@ -195,7 +195,7 @@ "100" ], "filament_vendor": [ - "snapmaker" + "Snapmaker" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json index 4f4842ae1d..1ed79183c9 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Translucent @U1 base.json @@ -3,7 +3,7 @@ "name": "Snapmaker PLA Translucent @U1 base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "SPTR001", + "filament_id": "OFLTYJW0", "instantiation": "false", "filament_end_gcode": [ "" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json index 4768ac2783..283d5876b7 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "XvizDDHbds3bVrzi", - "filament_id": "GFL9922", + "filament_id": "OFdd8ZqJ", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json index 43d306ebae..09555457d5 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Kp77DCcitdmoyjqm", - "filament_id": "GFL9922", + "filament_id": "OFdd8ZqJ", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.6 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json index da788a35fb..4a5a04a5ee 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA Wood @U1 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "nBYnNiqwLo6nAsqi", - "filament_id": "GFL9922", + "filament_id": "OFdd8ZqJ", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json index b986a7244a..44aeab2a48 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "2INwruC3ZVkBTdUT", - "filament_id": "GFL98111", + "filament_id": "OFf52D4e", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json index dcb6392634..6f09ea5d6a 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "CKfdL85SvbOLzMuP", - "filament_id": "GFL98111", + "filament_id": "OFhQf8ou", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.6 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json index 1e6e961497..564e59e1a9 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pla", "from": "system", "setting_id": "fhhnfJm4dN9FXpWQ", - "filament_id": "GFL98111", + "filament_id": "OFhQf8ou", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json index 6ae8a5b675..afb529e983 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "uQCplebxmpBpzsnk", - "filament_id": "GFU99", + "filament_id": "OFY7jxcS", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json index 45f0f7a0e9..8cf3452469 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "w4Hpl2qNPmgNvaeM", - "filament_id": "GFU99", + "filament_id": "OFY7jxcS", "instantiation": "true", "filament_max_volumetric_speed": [ "3.5" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json index e89397849b..8f6ba9663f 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 90A @U1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "T4MmgICRrSzvmCZ5", - "filament_id": "GFU99", + "filament_id": "OFY7jxcS", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json index 1085c84e6f..b9619dcca5 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "Q2svXpkEqg0dCdq3", - "filament_id": "GFU99", + "filament_id": "OFXSvqOX", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.6 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json index bef4c7712f..4283ac2651 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "RjsE08h3l37cAkAs", - "filament_id": "GFU99", + "filament_id": "OFXSvqOX", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json index 5e0696d906..816b78ceb8 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A HF @U1.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "KwcwmV2UmZUgCBoz", - "filament_id": "GFU99", + "filament_id": "OFXSvqOX", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/re3D.json b/resources/profiles/re3D.json index 94cca3c2ef..9a00807c1a 100644 --- a/resources/profiles/re3D.json +++ b/resources/profiles/re3D.json @@ -1,7 +1,7 @@ { "name": "re3D", "url": "", - "version": "03.00.08", + "version": "03.00.09", "force_update": "0", "description": "re3D configurations", "machine_model_list": [ diff --git a/resources/profiles/re3D/filament/re3D PC.json b/resources/profiles/re3D/filament/re3D PC.json index d06438c3bd..dbd43758de 100644 --- a/resources/profiles/re3D/filament/re3D PC.json +++ b/resources/profiles/re3D/filament/re3D PC.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pc", - "filament_id": "OFU3QXL7", + "filament_id": "OFwbsgWj", "setting_id": "eSR00TZTotTvJs8l", "filament_settings_id": [ "re3D PC" diff --git a/resources/profiles/re3D/filament/re3D PETG.json b/resources/profiles/re3D/filament/re3D PETG.json index 8337cbf61a..273ef5165b 100644 --- a/resources/profiles/re3D/filament/re3D PETG.json +++ b/resources/profiles/re3D/filament/re3D PETG.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "OF3F63OE", + "filament_id": "OFX0etlv", "setting_id": "msXDK31R8KOvqNqK", "filament_settings_id": [ "re3D PETG" diff --git a/resources/profiles/re3D/filament/re3D PLA.json b/resources/profiles/re3D/filament/re3D PLA.json index 5e8bf16a63..7637049e80 100644 --- a/resources/profiles/re3D/filament/re3D PLA.json +++ b/resources/profiles/re3D/filament/re3D PLA.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", - "filament_id": "OFRyOsZj", + "filament_id": "OFDdEaoL", "setting_id": "nPpDwvFg7WQr7K3t", "filament_settings_id": [ "re3D PLA" diff --git a/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json index 0ac0d012f5..ffe4277113 100644 --- a/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG01", + "filament_id": "OFmCOW2Y", "setting_id": "WlELqPVnuL7DaTxs", "name": "re3D rPETG @0.8 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json b/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json index 8cd090fc06..888880055f 100644 --- a/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPETG @1.75 nozzle.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "GFG01", + "filament_id": "OFmCOW2Y", "setting_id": "sHzO2S3mmE6Iqs2O", "name": "re3D rPETG @1.75 nozzle", "from": "system", diff --git a/resources/profiles/re3D/filament/re3D rPETG.json b/resources/profiles/re3D/filament/re3D rPETG.json index fe19f12539..85f359d828 100644 --- a/resources/profiles/re3D/filament/re3D rPETG.json +++ b/resources/profiles/re3D/filament/re3D rPETG.json @@ -5,7 +5,7 @@ "renamed_from": "re3D Greengate rPETG", "instantiation": "true", "inherits": "fdm_filament_pet", - "filament_id": "GFG01", + "filament_id": "OFD8loeT", "setting_id": "6aESuJ2S2Kogd4Lq", "filament_settings_id": [ "re3D rPETG" diff --git a/resources/profiles/re3D/filament/re3D rPP.json b/resources/profiles/re3D/filament/re3D rPP.json index 057e88413b..c4d2d776a9 100644 --- a/resources/profiles/re3D/filament/re3D rPP.json +++ b/resources/profiles/re3D/filament/re3D rPP.json @@ -4,7 +4,7 @@ "from": "system", "instantiation": "true", "inherits": "fdm_filament_pp", - "filament_id": "OFfHGM1D", + "filament_id": "OFm8rqoY", "setting_id": "8PB62qm5Cd3SHLf4", "filament_settings_id": [ "re3D rPP" diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index fd99602923..241b4cbb9f 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -2328,6 +2328,12 @@ ], "successor": "OFhQfUQY" }, + "OFSTCno1": { + "claims": [ + "re3D/re3D Greengate rPETG" + ], + "successor": "OFmCOW2Y" + }, "OGFA00": { "claims": [ "OrcaFilamentLibrary/Bambu PLA Basic" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 4349592b25..c8ae5b34be 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -163,6 +163,33 @@ "Artillery/Artillery TPU", "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", "BBL/Generic SBS", + "BBL/addnorth ABS rABS", + "BBL/addnorth PA Adura", + "BBL/addnorth PA Adura FDA", + "BBL/addnorth PA-CF Adura X", + "BBL/addnorth PA6 Addlantis", + "BBL/addnorth PC BLend HT LCF", + "BBL/addnorth PETG Base", + "BBL/addnorth PETG ESD", + "BBL/addnorth PETG Economy", + "BBL/addnorth PETG Flame v0", + "BBL/addnorth PETG PRO Matte", + "BBL/addnorth PETG rPETG Matte", + "BBL/addnorth PETG-CF Rigid X", + "BBL/addnorth PLA E-PLA", + "BBL/addnorth PLA Economy", + "BBL/addnorth PLA HT-PLA PRO Matte", + "BBL/addnorth PLA Premium Silk", + "BBL/addnorth PLA Textura", + "BBL/addnorth PLA Wood", + "BBL/addnorth PLA X-PLA", + "BBL/addnorth PLA X-PLA High Speed", + "BBL/addnorth PLA rPLA RE-ADD", + "BBL/addnorth PLA-CF Carbon Fiber", + "BBL/addnorth PVDF Adamant S1", + "BBL/addnorth TPU EasyFlex", + "BBL/addnorth TPU Pro Matte 85A", + "BBL/addnorth TPU Pro Matte 95A", "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", "Chuanying/Chuanying Generic HIPS", "Chuanying/Chuanying Generic PVA", @@ -989,6 +1016,9 @@ "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", + "Snapmaker/Polymaker General PLA Family @U1", + "Snapmaker/Polymaker Silk PLA Family @U1", + "Snapmaker/Polymaker Tough PLA Family @U1", "Snapmaker/Snapmaker ABS Benchy @U1", "Snapmaker/Snapmaker Dual ABS Benchy", "Snapmaker/Snapmaker Dual TPE", @@ -997,7 +1027,12 @@ "Snapmaker/Snapmaker J1 TPE", "Snapmaker/Snapmaker J1 TPU High-Flow", "Snapmaker/Snapmaker PET @Dual", + "Snapmaker/Snapmaker PLA Full Spectrum @U1 0.4 nozzle", "Snapmaker/Snapmaker PLA Matte @U1", + "Snapmaker/Snapmaker PLA Silk @U1", + "Snapmaker/Snapmaker PLA Silk @U1 0.2 nozzle", + "Snapmaker/Snapmaker PLA Silk @U1 0.6 nozzle", + "Snapmaker/Snapmaker PLA Silk @U1 0.8 nozzle", "Snapmaker/Snapmaker TPE", "Snapmaker/Snapmaker TPE @U1", "Snapmaker/Snapmaker TPU High-Flow @U1", @@ -1216,6 +1251,9 @@ "GFA18": [ "BBL/Bambu PLA Lite" ], + "GFA19": [ + "BBL/Bambu PLA Pure" + ], "GFA50": [ "BBL/Bambu PLA-CF" ], @@ -1574,6 +1612,87 @@ "GFU99": [ "BBL/Generic TPU" ], + "GF_ANAD": [ + "BBL/addnorth PA Adura" + ], + "GF_ANAF": [ + "BBL/addnorth PA Adura FDA" + ], + "GF_ANAX": [ + "BBL/addnorth PA-CF Adura X" + ], + "GF_ANEF": [ + "BBL/addnorth TPU EasyFlex" + ], + "GF_ANEG": [ + "BBL/addnorth PETG ESD" + ], + "GF_ANEP": [ + "BBL/addnorth PLA E-PLA" + ], + "GF_ANGE": [ + "BBL/addnorth PETG Economy" + ], + "GF_ANHTP": [ + "BBL/addnorth PLA HT-PLA PRO Matte" + ], + "GF_ANLA": [ + "BBL/addnorth PA6 Addlantis" + ], + "GF_ANPBX": [ + "BBL/addnorth PC BLend HT LCF" + ], + "GF_ANPCF": [ + "BBL/addnorth PLA-CF Carbon Fiber" + ], + "GF_ANPE": [ + "BBL/addnorth PETG Base" + ], + "GF_ANPF": [ + "BBL/addnorth PETG Flame v0" + ], + "GF_ANPL": [ + "BBL/addnorth PLA Economy" + ], + "GF_ANPLW": [ + "BBL/addnorth PLA Wood" + ], + "GF_ANPM": [ + "BBL/addnorth PETG PRO Matte" + ], + "GF_ANPS": [ + "BBL/addnorth PLA Premium Silk" + ], + "GF_ANPV": [ + "BBL/addnorth PVDF Adamant S1" + ], + "GF_ANRA": [ + "BBL/addnorth ABS rABS" + ], + "GF_ANRM": [ + "BBL/addnorth PETG rPETG Matte" + ], + "GF_ANRPL": [ + "BBL/addnorth PLA rPLA RE-ADD" + ], + "GF_ANRX": [ + "BBL/addnorth PETG-CF Rigid X" + ], + "GF_ANTA": [ + "BBL/addnorth TPU Pro Matte 85A" + ], + "GF_ANTE": [ + "BBL/addnorth PLA Textura" + ], + "GF_ANTM": [ + "BBL/addnorth TPU Pro Matte 95A" + ], + "GF_ANXP": [ + "BBL/addnorth PLA X-PLA" + ], + "GF_ANXPH": [ + "BBL/addnorth PLA X-PLA High Speed" + ], "OF016CJw": [ "Sovol/Sovol SV08 ABS" ], @@ -1775,6 +1894,9 @@ "OF43Raws": [ "Snapmaker/PolyTerra J1 PLA" ], + "OF44ERDr": [ + "Snapmaker/Polymaker General PLA Family" + ], "OF44VYzK": [ "OrcaFilamentLibrary/FilAr PETG Azul Francia" ], @@ -2256,6 +2378,9 @@ "OFD6kN7F": [ "OrcaArena/OrcaArena Generic PLA" ], + "OFD8loeT": [ + "re3D/re3D rPETG" + ], "OFD9taow": [ "FlyingBear/FlyingBear PLA Hyper" ], @@ -2290,6 +2415,9 @@ "Sovol/Generic PLA", "Z-Bolt/Generic PLA" ], + "OFDdEaoL": [ + "re3D/re3D PLA" + ], "OFDe8uyM": [ "OrcaFilamentLibrary/Valment PLA" ], @@ -2486,6 +2614,9 @@ "OFH2nN08": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" ], + "OFH57ibH": [ + "Snapmaker/Polymaker Silk PLA Family" + ], "OFH5UH6P": [ "Flashforge/Flashforge ABS-GF" ], @@ -2715,6 +2846,9 @@ "OFKyCgaK": [ "Anycubic/Anycubic Generic PLA" ], + "OFL9aRjN": [ + "Snapmaker/Snapmaker PETG HF" + ], "OFLAXKqP": [ "WonderMaker/WonderMaker TPU 95A" ], @@ -2743,6 +2877,9 @@ "OrcaFilamentLibrary/Generic ASA", "RH3D/Generic ASA" ], + "OFLTYJW0": [ + "Snapmaker/Snapmaker PLA Translucent" + ], "OFLXvuMr": [ "Elegoo/Elegoo Rapid PETG", "OrcaFilamentLibrary/Elegoo Rapid PETG" @@ -2954,6 +3091,9 @@ "OFOKYhi6": [ "Prusa/Prusa Generic PETG HF" ], + "OFOPU1xv": [ + "Snapmaker/Snapmaker PLA Full Spectrum" + ], "OFObG16Q": [ "InfiMech/InfiMech PLA Basic" ], @@ -3188,9 +3328,6 @@ "OFSStjay": [ "FLSun/FLSun S1 PLA Silk" ], - "OFSTCno1": [ - "re3D/re3D Greengate rPETG" - ], "OFSa39yP": [ "Snapmaker/Snapmaker J1 PLA" ], @@ -3352,6 +3489,9 @@ "OFW5FqkL": [ "Qidi/QIDI PLA Rapido Silk" ], + "OFW8lqnb": [ + "Snapmaker/Snapmaker PETG Translucent" + ], "OFW9uIkE": [ "Tiertime/Tiertime Generic HIPS" ], @@ -3409,6 +3549,9 @@ "OFWzr7m0": [ "Anycubic/Anycubic Generic PETG" ], + "OFX0etlv": [ + "re3D/re3D PETG" + ], "OFX0ycRQ": [ "OrcaFilamentLibrary/Fiberon PA12-CF" ], @@ -3424,6 +3567,9 @@ "OFXJ9iom": [ "iQ/Grauts HPP4GF25 P1" ], + "OFXSvqOX": [ + "Snapmaker/Snapmaker TPU 95A HF" + ], "OFXTPuqV": [ "OrcaFilamentLibrary/Elas PETG Basic" ], @@ -3473,6 +3619,9 @@ "OFY3AB7j": [ "Snapmaker/Snapmaker J1 PLA Matte" ], + "OFY7jxcS": [ + "Snapmaker/Snapmaker TPU 90A" + ], "OFY9muEs": [ "Anycubic/Generic ABS", "Creality/Generic ABS", @@ -3738,6 +3887,9 @@ "OFdb8YNz": [ "OrcaFilamentLibrary/FilAr PLA Verde Manzana" ], + "OFdd8ZqJ": [ + "Snapmaker/Snapmaker PLA Wood" + ], "OFdkWDiy": [ "Cubicon/Cubicon PLAi21" ], @@ -3822,6 +3974,9 @@ "OFf0MkD5": [ "Qidi/QIDI PETG Translucent" ], + "OFf52D4e": [ + "Snapmaker/Snapmaker PLA-CF" + ], "OFf5awy4": [ "OrcaFilamentLibrary/Eolas Prints PLA Matte" ], @@ -3837,6 +3992,9 @@ "OFfBpSRI": [ "OrcaFilamentLibrary/Bambu ASA" ], + "OFfD87Gy": [ + "Snapmaker/Snapmaker PLA Glow" + ], "OFfHGM1D": [ "re3D/re3D rPP" ], @@ -3846,6 +4004,9 @@ "OFfSqS4R": [ "Creality/ENDER FAST PLA" ], + "OFfYHK5z": [ + "Qidi/Polymaker PLA-HT" + ], "OFfZ0lTS": [ "Qidi/Qidi Generic PETG-CF" ], @@ -3943,6 +4104,9 @@ "OFgcryz4": [ "Ratrig/RatRig BigNozzle ASA" ], + "OFgdaBOt": [ + "Snapmaker/Polymaker Tough PLA Family" + ], "OFgeM7nD": [ "Flashforge/Flashforge PA12-CF" ], @@ -4030,6 +4194,9 @@ "BBL/COEX PLA", "OrcaFilamentLibrary/COEX PLA" ], + "OFhmxnYw": [ + "Snapmaker/Snapmaker PLA Basic" + ], "OFhuaUQB": [ "OrcaFilamentLibrary/Bambu ABS", "Qidi/Bambu ABS" @@ -4272,6 +4439,12 @@ "OFm70lLt": [ "CoLiDo/CoLiDo PLA" ], + "OFm8rqoY": [ + "re3D/re3D rPP" + ], + "OFmCOW2Y": [ + "re3D/re3D rPETG" + ], "OFmFwUWM": [ "Prusa/Prusament ASA" ], @@ -4849,6 +5022,9 @@ "OFwaYjL6": [ "OrcaFilamentLibrary/Fiberon PA6-GF" ], + "OFwbsgWj": [ + "re3D/re3D PC" + ], "OFwhLMs4": [ "Snapmaker/Snapmaker PLA SnapSpeed" ], @@ -5496,20 +5672,146 @@ ], "QD_3_1_8": [ "Qidi/QIDI PLA Matte Basic" + ], + "QD_4_0_1": [ + "Qidi/Generic PLA" + ], + "QD_4_0_11": [ + "Qidi/Generic ABS" + ], + "QD_4_0_23": [ + "Qidi/Generic PC" + ], + "QD_4_0_4": [ + "Qidi/Generic PLA Silk" + ], + "QD_4_0_41": [ + "Qidi/Generic PETG" + ], + "QD_4_0_50": [ + "Qidi/Generic TPU 95A" + ], + "QD_4_1_1": [ + "Qidi/QIDI PLA Rapido" + ], + "QD_4_1_11": [ + "Qidi/QIDI ABS Rapido" + ], + "QD_4_1_12": [ + "Qidi/QIDI ABS-GF" + ], + "QD_4_1_13": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "QD_4_1_14": [ + "Qidi/QIDI ABS Odorless" + ], + "QD_4_1_15": [ + "Qidi/QIDI TPU-GF" + ], + "QD_4_1_18": [ + "Qidi/QIDI ASA" + ], + "QD_4_1_19": [ + "Qidi/QIDI ASA-Aero" + ], + "QD_4_1_2": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "QD_4_1_20": [ + "Qidi/QIDI ASA-CF" + ], + "QD_4_1_24": [ + "Qidi/QIDI UltraPA" + ], + "QD_4_1_25": [ + "Qidi/QIDI PA6-CF" + ], + "QD_4_1_26": [ + "Qidi/QIDI UltraPA-CF25" + ], + "QD_4_1_27": [ + "Qidi/QIDI PA12-CF" + ], + "QD_4_1_3": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "QD_4_1_30": [ + "Qidi/QIDI PAHT-CF" + ], + "QD_4_1_31": [ + "Qidi/QIDI PAHT-GF" + ], + "QD_4_1_32": [ + "Qidi/QIDI Support For PAHT" + ], + "QD_4_1_33": [ + "Qidi/QIDI Support For PET/PA" + ], + "QD_4_1_34": [ + "Qidi/QIDI PC/ABS-FR" + ], + "QD_4_1_36": [ + "Qidi/QIDI PEBA 95A" + ], + "QD_4_1_37": [ + "Qidi/QIDI PET-CF" + ], + "QD_4_1_38": [ + "Qidi/QIDI PET-GF" + ], + "QD_4_1_39": [ + "Qidi/QIDI PETG Basic" + ], + "QD_4_1_4": [ + "Qidi/QIDI PLA Silk" + ], + "QD_4_1_40": [ + "Qidi/QIDI PETG Tough" + ], + "QD_4_1_41": [ + "Qidi/QIDI PETG Rapido" + ], + "QD_4_1_42": [ + "Qidi/QIDI PETG-CF" + ], + "QD_4_1_43": [ + "Qidi/QIDI PETG-GF" + ], + "QD_4_1_44": [ + "Qidi/QIDI PPS-CF" + ], + "QD_4_1_45": [ + "Qidi/QIDI PETG Translucent" + ], + "QD_4_1_46": [ + "Qidi/QIDI PPS-GF" + ], + "QD_4_1_49": [ + "Qidi/QIDI TPU-Aero" + ], + "QD_4_1_5": [ + "Qidi/QIDI PLA-CF" + ], + "QD_4_1_50": [ + "Qidi/QIDI TPU 95A-HF" + ], + "QD_4_1_6": [ + "Qidi/QIDI WOOD Rapido" + ], + "QD_4_1_7": [ + "Qidi/QIDI PLA Basic" + ], + "QD_4_1_8": [ + "Qidi/QIDI PLA Matte Basic" ] }, "instantiated_with_id": [ - "Afinia/Afinia ABS", - "Afinia/Afinia ABS+", "Afinia/Afinia ABS+@HS", "Afinia/Afinia ABS@HS", - "Afinia/Afinia PLA", "Afinia/Afinia PLA@HS", - "Afinia/Afinia TPU", "Afinia/Afinia TPU@HS", - "Afinia/Afinia Value ABS", "Afinia/Afinia Value ABS@HS", - "Afinia/Afinia Value PLA", "Afinia/Afinia Value PLA@HS", "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle", "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle", @@ -5720,6 +6022,33 @@ "Artillery/Artillery TPU @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery TPU @Artillery M1 Pro 0.8 nozzle", "BBL/Generic SBS", + "BBL/addnorth ABS rABS", + "BBL/addnorth PA Adura", + "BBL/addnorth PA Adura FDA", + "BBL/addnorth PA-CF Adura X", + "BBL/addnorth PA6 Addlantis", + "BBL/addnorth PC BLend HT LCF", + "BBL/addnorth PETG Base", + "BBL/addnorth PETG ESD", + "BBL/addnorth PETG Economy", + "BBL/addnorth PETG Flame v0", + "BBL/addnorth PETG PRO Matte", + "BBL/addnorth PETG rPETG Matte", + "BBL/addnorth PETG-CF Rigid X", + "BBL/addnorth PLA E-PLA", + "BBL/addnorth PLA Economy", + "BBL/addnorth PLA HT-PLA PRO Matte", + "BBL/addnorth PLA Premium Silk", + "BBL/addnorth PLA Textura", + "BBL/addnorth PLA Wood", + "BBL/addnorth PLA X-PLA", + "BBL/addnorth PLA X-PLA High Speed", + "BBL/addnorth PLA rPLA RE-ADD", + "BBL/addnorth PLA-CF Carbon Fiber", + "BBL/addnorth PVDF Adamant S1", + "BBL/addnorth TPU EasyFlex", + "BBL/addnorth TPU Pro Matte 85A", + "BBL/addnorth TPU Pro Matte 95A", "Blocks/Blocks Generic ABS", "Blocks/Blocks Generic ASA", "Blocks/Blocks Generic ASA-CF", @@ -7881,6 +8210,9 @@ "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", + "Snapmaker/Polymaker General PLA Family @U1", + "Snapmaker/Polymaker Silk PLA Family @U1", + "Snapmaker/Polymaker Tough PLA Family @U1", "Snapmaker/Snapmaker ABS Benchy @U1", "Snapmaker/Snapmaker Dual ABS Benchy", "Snapmaker/Snapmaker Dual TPE", @@ -7889,9 +8221,26 @@ "Snapmaker/Snapmaker J1 TPE", "Snapmaker/Snapmaker J1 TPU High-Flow", "Snapmaker/Snapmaker PET @Dual", + "Snapmaker/Snapmaker PLA Full Spectrum @U1 0.4 nozzle", "Snapmaker/Snapmaker PLA Matte @U1", + "Snapmaker/Snapmaker PLA Silk @U1", + "Snapmaker/Snapmaker PLA Silk @U1 0.2 nozzle", + "Snapmaker/Snapmaker PLA Silk @U1 0.6 nozzle", + "Snapmaker/Snapmaker PLA Silk @U1 0.8 nozzle", + "Snapmaker/Snapmaker PLA Wood @U1 0.4 nozzle", + "Snapmaker/Snapmaker PLA Wood @U1 0.6 nozzle", + "Snapmaker/Snapmaker PLA Wood @U1 0.8 nozzle", + "Snapmaker/Snapmaker PLA-CF @U1 0.4 nozzle", + "Snapmaker/Snapmaker PLA-CF @U1 0.6 nozzle", + "Snapmaker/Snapmaker PLA-CF @U1 0.8 nozzle", "Snapmaker/Snapmaker TPE", "Snapmaker/Snapmaker TPE @U1", + "Snapmaker/Snapmaker TPU 90A @U1", + "Snapmaker/Snapmaker TPU 90A @U1 0.6 nozzle", + "Snapmaker/Snapmaker TPU 90A @U1 0.8 nozzle", + "Snapmaker/Snapmaker TPU 95A HF @U1", + "Snapmaker/Snapmaker TPU 95A HF @U1 0.6 nozzle", + "Snapmaker/Snapmaker TPU 95A HF @U1 0.8 nozzle", "Snapmaker/Snapmaker TPU High-Flow @U1", "Sovol/Generic PLA Silk @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", @@ -8070,9 +8419,6 @@ "iQ/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle", "iQ/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle", "iQ/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle", - "re3D/re3D Greengate rPETG", - "re3D/re3D Greengate rPETG @0.8 nozzle", - "re3D/re3D Greengate rPETG @1.75 nozzle", "re3D/re3D PC", "re3D/re3D PC @0.4 nozzle", "re3D/re3D PC @0.8 nozzle", @@ -8082,6 +8428,9 @@ "re3D/re3D PLA", "re3D/re3D PLA @0.4 nozzle", "re3D/re3D PLA @0.8 nozzle", + "re3D/re3D rPETG", + "re3D/re3D rPETG @0.8 nozzle", + "re3D/re3D rPETG @1.75 nozzle", "re3D/re3D rPP", "re3D/re3D rPP @0.8 nozzle", "re3D/re3D rPP @1.75 nozzle" @@ -8522,6 +8871,13 @@ "PolyTerra J1 PLA" ] ], + "OF44ERDr": [ + [ + "Polymaker", + "PLA", + "Polymaker General PLA Family" + ] + ], "OF44VYzK": [ [ "FilAr", @@ -9628,6 +9984,13 @@ "OrcaArena Generic PLA" ] ], + "OFD8loeT": [ + [ + "re3D", + "PETG", + "re3D rPETG" + ] + ], "OFD9taow": [ [ "FlyingBear", @@ -9684,6 +10047,13 @@ "Generic PLA" ] ], + "OFDdEaoL": [ + [ + "re3D", + "PLA", + "re3D PLA" + ] + ], "OFDe8uyM": [ [ "Valment", @@ -10132,6 +10502,13 @@ "Eolas Prints PLA INGEO 850" ] ], + "OFH57ibH": [ + [ + "Polymaker", + "PLA", + "Polymaker Silk PLA Family" + ] + ], "OFH5UH6P": [ [ "Generic", @@ -10657,6 +11034,13 @@ "Anycubic Generic PLA" ] ], + "OFL9aRjN": [ + [ + "Snapmaker", + "PETG", + "Snapmaker PETG HF" + ] + ], "OFLAXKqP": [ [ "WonderMaker", @@ -10713,6 +11097,13 @@ "Generic ASA" ] ], + "OFLTYJW0": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Translucent" + ] + ], "OFLXvuMr": [ [ "Elegoo", @@ -11175,6 +11566,13 @@ "Prusa Generic PETG HF" ] ], + "OFOPU1xv": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Full Spectrum" + ] + ], "OFObG16Q": [ [ "InfiMech", @@ -11693,13 +12091,6 @@ "FLSun S1 PLA Silk" ] ], - "OFSTCno1": [ - [ - "GreenGate3D", - "PETG", - "re3D Greengate rPETG" - ] - ], "OFSa39yP": [ [ "Snapmaker", @@ -12071,6 +12462,13 @@ "QIDI PLA Rapido Silk" ] ], + "OFW8lqnb": [ + [ + "Snapmaker", + "PETG", + "Snapmaker PETG Translucent" + ] + ], "OFW9uIkE": [ [ "Generic", @@ -12197,6 +12595,13 @@ "Anycubic Generic PETG" ] ], + "OFX0etlv": [ + [ + "re3D", + "PETG", + "re3D PETG" + ] + ], "OFX0ycRQ": [ [ "Polymaker", @@ -12232,6 +12637,13 @@ "Grauts HPP4GF25 P1" ] ], + "OFXSvqOX": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU 95A HF" + ] + ], "OFXTPuqV": [ [ "Elas", @@ -12337,6 +12749,13 @@ "Snapmaker J1 PLA Matte" ] ], + "OFY7jxcS": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU 90A" + ] + ], "OFY9muEs": [ [ "Generic", @@ -12904,6 +13323,13 @@ "FilAr PLA Verde Manzana" ] ], + "OFdd8ZqJ": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Wood" + ] + ], "OFdkWDiy": [ [ "Cubicon", @@ -13093,6 +13519,13 @@ "QIDI PETG Translucent" ] ], + "OFf52D4e": [ + [ + "Snapmaker", + "PLA-CF", + "Snapmaker PLA-CF" + ] + ], "OFf5awy4": [ [ "Eolas Prints", @@ -13128,6 +13561,13 @@ "Bambu ASA" ] ], + "OFfD87Gy": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Glow" + ] + ], "OFfHGM1D": [ [ "re3D", @@ -13149,6 +13589,13 @@ "ENDER FAST PLA" ] ], + "OFfYHK5z": [ + [ + "Polymaker", + "PLA", + "Polymaker PLA-HT" + ] + ], "OFfZ0lTS": [ [ "Generic", @@ -13345,6 +13792,13 @@ "RatRig BigNozzle ASA" ] ], + "OFgdaBOt": [ + [ + "Polymaker", + "PLA", + "Polymaker Tough PLA Family" + ] + ], "OFgeM7nD": [ [ "Flashforge", @@ -13534,6 +13988,13 @@ "COEX PLA" ] ], + "OFhmxnYw": [ + [ + "Snapmaker", + "PLA", + "Snapmaker PLA Basic" + ] + ], "OFhuaUQB": [ [ "Bambu Lab", @@ -14073,6 +14534,20 @@ "CoLiDo PLA" ] ], + "OFm8rqoY": [ + [ + "re3D", + "PP", + "re3D rPP" + ] + ], + "OFmCOW2Y": [ + [ + "re3D", + "PETG", + "re3D rPETG" + ] + ], "OFmFwUWM": [ [ "Prusa Polymers", @@ -15361,6 +15836,13 @@ "Fiberon PA6-GF" ] ], + "OFwbsgWj": [ + [ + "re3D", + "PC", + "re3D PC" + ] + ], "OFwhLMs4": [ [ "Snapmaker", From 1c405f8a2c1d174649e4af451195461b8398c07e Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 21 Aug 2026 18:34:20 +0800 Subject: [PATCH 076/164] filament_id v4.1: resolve retired QD_* ids in the Qidi box miss path QidiPrinterAgent composes QD___ setting ids from device enums and previously degraded any slot whose id matched no visible preset to generic-by-type. Plan v4.2 retires every QD_* preset id to the succession ledger, so insert the ledger walk between the direct match and the generic fallback: a composed QD_* id now forwards to its family's minted OF* successor exactly like every other retired id. Behavior-neutral until the ids are actually retired (the ledger holds no QD_* keys yet, and live QD_* presets still match directly). Also documents the code<->ledger lockstep on the hardcoded non-numeric- series fallback table (QD_1_0_1/_11/_41/_50) and adds a C++ test pinning that the succession walk is key-format agnostic. Gates: libslic3r_tests [filament_id] 14 assertions green; libslic3r_gui compiles. --- src/slic3r/Utils/QidiPrinterAgent.cpp | 12 +++++++++++- tests/libslic3r/test_filament_id_succession.cpp | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/slic3r/Utils/QidiPrinterAgent.cpp b/src/slic3r/Utils/QidiPrinterAgent.cpp index 6b05480194..22b8d37735 100644 --- a/src/slic3r/Utils/QidiPrinterAgent.cpp +++ b/src/slic3r/Utils/QidiPrinterAgent.cpp @@ -188,7 +188,13 @@ bool QidiPrinterAgent::fetch_slot_info(const std::string& base_url, } else if (!setting_id.empty() && has_visible_base_preset(bundle->filaments, setting_id)) { tray.tray_info_idx = setting_id; } else { - tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); + // Retired QD_* protocol ids forward to their minted successors via the shipped ledger. + const std::string successor = setting_id.empty() ? std::string() + : resolve_filament_id_succession(setting_id); + if (!successor.empty() && has_visible_base_preset(bundle->filaments, successor)) + tray.tray_info_idx = successor; + else + tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); } // Look up color from dictionary @@ -324,6 +330,10 @@ void QidiPrinterAgent::parse_filament_sections(const std::string& content, std:: std::string QidiPrinterAgent::map_filament_type_to_setting_id(const std::string& filament_type) { + // These QD_* protocol ids no longer appear on any preset: they are retired ledger keys + // that parse_box_status resolves through resolve_filament_id_succession(). Each literal + // must stay a ledger key whose chain ends at a live preset id — + // scripts/tests/test_filament_id.py parses this function and enforces that. const std::string upper = trim_and_upper(filament_type); if (upper == "PLA") { diff --git a/tests/libslic3r/test_filament_id_succession.cpp b/tests/libslic3r/test_filament_id_succession.cpp index 36268277f8..12fa82f9bb 100644 --- a/tests/libslic3r/test_filament_id_succession.cpp +++ b/tests/libslic3r/test_filament_id_succession.cpp @@ -34,6 +34,14 @@ TEST_CASE("filament_id succession follows forwarding chains", "[Preset][filament CHECK(follow_filament_id_succession("OFchainB", forwards) == "OFlive00"); CHECK(follow_filament_id_succession("OFchainC", forwards) == "OFlive00"); } + + // QidiPrinterAgent resolves device-composed QD_* protocol ids through this same walk; + // the map key format carries no OF assumption. + SECTION("device-protocol QD_* keys forward like any other id") { + const std::map qd = {{"QD_2_1_11", "OFnew001"}}; + CHECK(follow_filament_id_succession("QD_2_1_11", qd) == "OFnew001"); + CHECK(follow_filament_id_succession("QD_2_1_12", qd).empty()); + } } // Cycles are a ledger-validation error (script check 9) and never ship, but the client From 8d83414d095b317b5f8f3bb46e0f1edf2a9af69a Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 21 Aug 2026 18:34:20 +0800 Subject: [PATCH 077/164] filament_id v4.2a: dissolve the QD_* island in the tooling (plan v4 SS3) - is_island_declaration: only BBL remains an island; Qidi QD_* declarations now enter the triple bookkeeping (checks 3 and 8, --remint's domain). - reserved_space_owner: QD_* stays reserved but ownerless -- no vendor may declare it, --update-snapshot refuses new QD_* ids outright, and vanished QD_* ids take the retired-with-successor path instead of the island release-with-hint path. New reserved_space_desc() names the space in check 6 / sanction-gate messages. - Check 1 drops the vendor-Qidi QD_* format exemption; --add-hint now refuses QD_* keys (island space is GF* only); docstrings updated. - Snapshot regenerated: the 204 QD_* declarer triples are now recorded (declared triples 1113 -> 1317); ids/claims unchanged. - Tests updated for the flip; new (skipped until v4.2b) lockstep test asserting the QidiPrinterAgent fallback QD_* literals stay retired ledger keys chaining to live ids. Tree state is untouched: presets still declare their QD_* ids, all grandfathered by the snapshot. --check exit 0; 117 script tests OK. --- scripts/assign_filament_ids.py | 47 +- scripts/filament_id_snapshot.json | 1428 +++++++++++++++++++++++++++++ scripts/tests/test_filament_id.py | 34 +- 3 files changed, 1488 insertions(+), 21 deletions(-) diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 6f12554f14..c5e6aefe58 100644 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -26,7 +26,11 @@ Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan_v3.md): resolving. * Reserved id spaces that are never minted into or altered: - GF* Bambu AMS/RFID catalog (vendor BBL untouchable) - - QD_* Qidi device protocol + - QD_* Qidi device protocol (dissolved island, plan v4: + every shipped QD_* id is retired in the ledger and + the QidiPrinterAgent translates device-composed + QD_* ids through the succession walk; no preset + may ever declare one again) - P + 7 hex chars (case-insensitive) and the literal "null" user-custom presets (CreatePresetsDialog.cpp) - every already-shipped id, grandfathered via scripts/filament_id_snapshot.json @@ -40,7 +44,7 @@ Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan_v3.md): rule over the vanished id's old claims — and the runtime follows those chains (plus cross-island "hints" for ids Orca cannot retire, e.g. GF*) on resolution miss. A retired id may never be used again for anything. - Vanished ids in a FOREIGN island's space (GF*/QD_*) are released with a + Vanished ids in a FOREIGN island's space (GF*) are released with a hint instead of retired: the island's catalog owns them and may legitimately (re)ship them. @@ -325,8 +329,9 @@ def resolve_triple(name, filaments, ofl_filaments): def is_island_declaration(vendor, fid): - """Declarations frozen outside the OF mint domain: all of BBL, QD_* in Qidi.""" - return vendor == "BBL" or (vendor == "Qidi" and fid.startswith("QD_")) + """Declarations frozen outside the OF mint domain: all of BBL (the QD_* + island was dissolved by plan v4 — Qidi declarations mint like any other).""" + return vendor == "BBL" def analyze_tree(profiles_dir): @@ -598,12 +603,21 @@ def reserved_space_owner(fid): if fid.startswith("GF"): return True, "BBL" if fid.startswith("QD_"): - return True, "Qidi" + return True, None # dissolved Qidi device-protocol space: NO vendor may declare it if USER_CUSTOM_ID_RE.match(fid) or fid == "null": return True, None # user-custom space: no system vendor may own it return False, None +def reserved_space_desc(fid, owner): + """Human description of a reserved space for error messages.""" + if owner: + return f"owned by {owner}" + if fid.startswith("QD_"): + return "Qidi device protocol; dissolved island — ids are retired, never declarable" + return "reserved for user-custom presets" + + # --------------------------------------------------------------------------- # Checks (imported and called tree-wide by orca_extra_profile_check.py) # --------------------------------------------------------------------------- @@ -613,8 +627,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, """Validate filament_id state across every vendor. Returns the error count. 1. Format: every id occurring in the tree (declared or effective) must be in - the snapshot, or match ^OF[0-9A-Za-z]{6}$, or belong to vendor BBL, or be - a QD_* id within vendor Qidi. + the snapshot, or match ^OF[0-9A-Za-z]{6}$, or belong to vendor BBL. 2. Snapshot equality, both directions: the tree-derived id->families multimap AND the id->triples map of the declarers must equal the snapshot exactly (the snapshot diff is the maintainer gate). @@ -625,8 +638,8 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, 5. Alias hygiene: a vendor preset riding an OFL family must keep the OFL base name, claim printers via non-empty compatible_printers, and declare no filament_id key of its own. - 6. Reserved namespaces (GF*/QD_*/P-hex/"null") only for their owner vendors, - except claims grandfathered in the snapshot. + 6. Reserved namespaces (GF* for BBL; QD_*/P-hex/"null" for nobody) must not + be claimed by other vendors, except claims grandfathered in the snapshot. 7. Structure ratchet: (a) no NEW instantiated preset carries its own filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every instantiated filament resolves an effective id (a hard load error in C++). @@ -664,8 +677,6 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, continue if vendor == "BBL": continue - if vendor == "Qidi" and fid.startswith("QD_"): - continue print_error( f'filament_id "{fid}" ({vendor}) is neither grandfathered in the ' f'snapshot nor a minted "OF" id; new family ids must come from ' @@ -765,7 +776,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, continue if claim in snap_ids.get(fid, []): continue # grandfathered - space = f"owned by {owner}" if owner else "reserved for user-custom presets" + space = reserved_space_desc(fid, owner) print_error( f'filament_id "{fid}" of "{claim}" is in a reserved id space ' f"({space}) and must not be claimed by system presets of other vendors") @@ -861,7 +872,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if island is None: print_error( f'hint key "{key}" ({RETIRED_REL}) is not in an island id space ' - f"(GF*/QD_*); non-island ids are retired with a successor instead") + f"(GF*); non-island ids are retired with a successor instead") errors += 1 continue if key in retired: @@ -902,7 +913,7 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, Vanished ids gain a succession-ledger entry whose successor is picked by the mode rule over their old claims (None when the family died heirless); - vanished ids in a foreign island's space (GF*/QD_*) are released with a + vanished ids in a foreign island's space (GF*) are released with a hint instead — the island catalog owns them, so they must stay mintable there and must never be blocked by check 4. --forget-never-shipped lists ids to drop from lineage instead of retiring @@ -955,7 +966,7 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, refusals.append((fid, f"{vendor}/(declared only)", owner)) if refusals and not allow_shared_catalog: for fid, claim, owner in refusals: - space = f"owned by {owner}" if owner else "reserved for user-custom presets" + space = reserved_space_desc(fid, owner) print_error( f'refusing to sanction new claim "{claim}" on reserved-namespace id ' f'"{fid}" ({space}); pass --allow-shared-catalog only for ' @@ -977,7 +988,7 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # Retire ids that fully vanished from the tree (append-only ledger), with a # mode-rule successor so devices and user presets keep resolving. Vanished - # ids in a FOREIGN island's reserved space (GF*/QD_*) are never retired — + # ids in a FOREIGN island's reserved space (GF*) are never retired — # the island's catalog still owns them and may legitimately (re)ship them — # they are RELEASED, with a succession hint so they keep resolving on miss. claim_ids = claim_effective_ids(analysis) @@ -1073,7 +1084,7 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, def add_hints(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): """--add-hint "OLD=NEW": forward an island-space id to a live id. - OLD must sit in an island id space (GF*/QD_*), must not be retired, and — + OLD must sit in an island id space (GF*), must not be retired, and — when live in the tree — may be declared only by island vendors (Orca cannot retire it). An absent OLD is fine: island catalogs own ids Orca never shipped or has released. NEW must be live in the tree. All pairs validate @@ -1103,7 +1114,7 @@ def add_hints(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): errors += 1 elif island is None: print_error( - f'--add-hint: "{old}" is not in an island id space (GF*/QD_*); ' + f'--add-hint: "{old}" is not in an island id space (GF*); ' f"non-island ids are retired with a successor by --update-snapshot") errors += 1 elif outsiders: diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index c8ae5b34be..14d207b34f 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -16227,6 +16227,1434 @@ "ABS", "FLSun S1 ABS" ] + ], + "QD_0_1_1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "QD_0_1_15": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "QD_0_1_2": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "QD_0_1_20": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "QD_0_1_24": [ + [ + "QIDI", + "UltraPA", + "QIDI PA-Ultra" + ] + ], + "QD_0_1_26": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "QD_0_1_27": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "QD_0_1_3": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "QD_0_1_30": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "QD_0_1_31": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "QD_0_1_32": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "QD_0_1_33": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "QD_0_1_34": [ + [ + "QIDI", + "PC-ABS-FR", + "Qidi PC-ABS-FR" + ] + ], + "QD_0_1_36": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "QD_0_1_37": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "QD_0_1_38": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "QD_0_1_39": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "QD_0_1_4": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "QD_0_1_40": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "QD_0_1_41": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "QD_0_1_42": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "QD_0_1_43": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "QD_0_1_44": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "QD_0_1_45": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "QD_0_1_46": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "QD_0_1_49": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "QD_0_1_5": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "QD_0_1_50": [ + [ + "QIDI", + "TPU", + "Qidi TPU 95A-HF" + ] + ], + "QD_0_1_6": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "QD_0_1_7": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "QD_0_1_8": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] + ], + "QD_1_0_1": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "QD_1_0_11": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "QD_1_0_23": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "QD_1_0_4": [ + [ + "Generic", + "PLA", + "Generic PLA Silk" + ] + ], + "QD_1_0_41": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "QD_1_0_50": [ + [ + "Generic", + "TPU", + "Generic TPU 95A" + ] + ], + "QD_1_1_1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "QD_1_1_11": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], + "QD_1_1_12": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" + ] + ], + "QD_1_1_13": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "QD_1_1_14": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], + "QD_1_1_15": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "QD_1_1_18": [ + [ + "QIDI", + "ASA", + "QIDI ASA" + ] + ], + "QD_1_1_19": [ + [ + "QIDI", + "ASA-AERO", + "QIDI ASA-Aero" + ] + ], + "QD_1_1_2": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "QD_1_1_20": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "QD_1_1_24": [ + [ + "QIDI", + "UltraPA", + "QIDI UltraPA" + ] + ], + "QD_1_1_26": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "QD_1_1_27": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "QD_1_1_3": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "QD_1_1_30": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "QD_1_1_31": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "QD_1_1_32": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "QD_1_1_33": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "QD_1_1_34": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC-ABS-FR" + ] + ], + "QD_1_1_36": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "QD_1_1_37": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "QD_1_1_38": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "QD_1_1_39": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "QD_1_1_4": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "QD_1_1_40": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "QD_1_1_41": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "QD_1_1_42": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "QD_1_1_43": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "QD_1_1_44": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "QD_1_1_45": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "QD_1_1_46": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "QD_1_1_49": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "QD_1_1_5": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "QD_1_1_50": [ + [ + "QIDI", + "TPU", + "QIDI TPU 95A-HF" + ] + ], + "QD_1_1_6": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "QD_1_1_7": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "QD_1_1_8": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] + ], + "QD_2_0_1": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "QD_2_0_11": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "QD_2_0_23": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "QD_2_0_4": [ + [ + "Generic", + "PLA", + "Generic PLA Silk" + ] + ], + "QD_2_0_41": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "QD_2_0_50": [ + [ + "Generic", + "TPU", + "Generic TPU 95A" + ] + ], + "QD_2_1_1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "QD_2_1_11": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], + "QD_2_1_12": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" + ] + ], + "QD_2_1_13": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "QD_2_1_14": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], + "QD_2_1_15": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "QD_2_1_18": [ + [ + "QIDI", + "ASA", + "QIDI ASA" + ] + ], + "QD_2_1_19": [ + [ + "QIDI", + "ASA-AERO", + "QIDI ASA-Aero" + ] + ], + "QD_2_1_2": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "QD_2_1_20": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "QD_2_1_24": [ + [ + "QIDI", + "UltraPA", + "QIDI UltraPA" + ] + ], + "QD_2_1_26": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "QD_2_1_27": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "QD_2_1_3": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "QD_2_1_30": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "QD_2_1_31": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "QD_2_1_32": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "QD_2_1_33": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "QD_2_1_34": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC-ABS-FR" + ] + ], + "QD_2_1_36": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "QD_2_1_37": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "QD_2_1_38": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "QD_2_1_39": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "QD_2_1_4": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "QD_2_1_40": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "QD_2_1_41": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "QD_2_1_42": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "QD_2_1_43": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "QD_2_1_44": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "QD_2_1_45": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "QD_2_1_46": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "QD_2_1_49": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "QD_2_1_5": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "QD_2_1_50": [ + [ + "QIDI", + "TPU", + "QIDI TPU 95A-HF" + ] + ], + "QD_2_1_6": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "QD_2_1_7": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "QD_2_1_8": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] + ], + "QD_3_0_1": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "QD_3_0_11": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "QD_3_0_23": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "QD_3_0_4": [ + [ + "Generic", + "PLA", + "Generic PLA Silk" + ] + ], + "QD_3_0_41": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "QD_3_0_50": [ + [ + "Generic", + "TPU", + "Generic TPU 95A" + ] + ], + "QD_3_1_1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "QD_3_1_11": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], + "QD_3_1_12": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" + ] + ], + "QD_3_1_13": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "QD_3_1_14": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], + "QD_3_1_15": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "QD_3_1_18": [ + [ + "QIDI", + "ASA", + "QIDI ASA" + ] + ], + "QD_3_1_19": [ + [ + "QIDI", + "ASA-AERO", + "QIDI ASA-Aero" + ] + ], + "QD_3_1_2": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "QD_3_1_20": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "QD_3_1_24": [ + [ + "QIDI", + "UltraPA", + "QIDI UltraPA" + ] + ], + "QD_3_1_26": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "QD_3_1_27": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "QD_3_1_3": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "QD_3_1_30": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "QD_3_1_31": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "QD_3_1_32": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "QD_3_1_33": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "QD_3_1_34": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC/ABS-FR" + ] + ], + "QD_3_1_36": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "QD_3_1_37": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "QD_3_1_38": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "QD_3_1_39": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "QD_3_1_4": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Silk" + ] + ], + "QD_3_1_40": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "QD_3_1_41": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "QD_3_1_42": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "QD_3_1_43": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "QD_3_1_44": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "QD_3_1_45": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "QD_3_1_46": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "QD_3_1_49": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "QD_3_1_5": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "QD_3_1_50": [ + [ + "QIDI", + "TPU", + "QIDI TPU 95A-HF" + ] + ], + "QD_3_1_6": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "QD_3_1_7": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "QD_3_1_8": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] + ], + "QD_4_0_1": [ + [ + "Generic", + "PLA", + "Generic PLA" + ] + ], + "QD_4_0_11": [ + [ + "Generic", + "ABS", + "Generic ABS" + ] + ], + "QD_4_0_23": [ + [ + "Generic", + "PC", + "Generic PC" + ] + ], + "QD_4_0_4": [ + [ + "Generic", + "PLA", + "Generic PLA Silk" + ] + ], + "QD_4_0_41": [ + [ + "Generic", + "PETG", + "Generic PETG" + ] + ], + "QD_4_0_50": [ + [ + "Generic", + "TPU", + "Generic TPU 95A" + ] + ], + "QD_4_1_1": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido" + ] + ], + "QD_4_1_11": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido" + ] + ], + "QD_4_1_12": [ + [ + "QIDI", + "ABS-GF", + "QIDI ABS-GF" + ] + ], + "QD_4_1_13": [ + [ + "QIDI", + "ABS", + "QIDI ABS Rapido Metal" + ] + ], + "QD_4_1_14": [ + [ + "QIDI", + "ABS", + "QIDI ABS Odorless" + ] + ], + "QD_4_1_15": [ + [ + "QIDI", + "TPU-GF", + "QIDI TPU-GF" + ] + ], + "QD_4_1_18": [ + [ + "QIDI", + "ASA", + "QIDI ASA" + ] + ], + "QD_4_1_19": [ + [ + "QIDI", + "ASA-AERO", + "QIDI ASA-Aero" + ] + ], + "QD_4_1_2": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Matte" + ] + ], + "QD_4_1_20": [ + [ + "QIDI", + "ASA-CF", + "QIDI ASA-CF" + ] + ], + "QD_4_1_24": [ + [ + "QIDI", + "UltraPA", + "QIDI UltraPA" + ] + ], + "QD_4_1_25": [ + [ + "QIDI", + "PA6-CF", + "QIDI PA6-CF" + ] + ], + "QD_4_1_26": [ + [ + "QIDI", + "UltraPA-CF25", + "QIDI UltraPA-CF25" + ] + ], + "QD_4_1_27": [ + [ + "QIDI", + "PA12-CF", + "QIDI PA12-CF" + ] + ], + "QD_4_1_3": [ + [ + "QIDI", + "PLA", + "QIDI PLA Rapido Metal" + ] + ], + "QD_4_1_30": [ + [ + "QIDI", + "PAHT-CF", + "QIDI PAHT-CF" + ] + ], + "QD_4_1_31": [ + [ + "QIDI", + "PAHT-GF", + "QIDI PAHT-GF" + ] + ], + "QD_4_1_32": [ + [ + "QIDI", + "PAHT-S", + "QIDI Support For PAHT" + ] + ], + "QD_4_1_33": [ + [ + "QIDI", + "PA-S", + "QIDI Support For PET/PA" + ] + ], + "QD_4_1_34": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC/ABS-FR" + ] + ], + "QD_4_1_36": [ + [ + "QIDI", + "PEBA", + "QIDI PEBA 95A" + ] + ], + "QD_4_1_37": [ + [ + "QIDI", + "PET-CF", + "QIDI PET-CF" + ] + ], + "QD_4_1_38": [ + [ + "QIDI", + "PET-GF", + "QIDI PET-GF" + ] + ], + "QD_4_1_39": [ + [ + "QIDI", + "PETG", + "QIDI PETG Basic" + ] + ], + "QD_4_1_4": [ + [ + "QIDI", + "PLA", + "QIDI PLA Silk" + ] + ], + "QD_4_1_40": [ + [ + "QIDI", + "PETG", + "QIDI PETG Tough" + ] + ], + "QD_4_1_41": [ + [ + "QIDI", + "PETG", + "QIDI PETG Rapido" + ] + ], + "QD_4_1_42": [ + [ + "QIDI", + "PETG-CF", + "QIDI PETG-CF" + ] + ], + "QD_4_1_43": [ + [ + "QIDI", + "PETG-GF", + "QIDI PETG-GF" + ] + ], + "QD_4_1_44": [ + [ + "QIDI", + "PPS-CF", + "QIDI PPS-CF" + ] + ], + "QD_4_1_45": [ + [ + "QIDI", + "PETG", + "QIDI PETG Translucent" + ] + ], + "QD_4_1_46": [ + [ + "QIDI", + "PPS-GF", + "QIDI PPS-GF" + ] + ], + "QD_4_1_49": [ + [ + "QIDI", + "TPU-AERO", + "QIDI TPU-Aero" + ] + ], + "QD_4_1_5": [ + [ + "QIDI", + "PLA-CF", + "QIDI PLA-CF" + ] + ], + "QD_4_1_50": [ + [ + "QIDI", + "TPU", + "QIDI TPU 95A-HF" + ] + ], + "QD_4_1_6": [ + [ + "QIDI", + "PLA", + "QIDI WOOD Rapido" + ] + ], + "QD_4_1_7": [ + [ + "QIDI", + "PLA", + "QIDI PLA Basic" + ] + ], + "QD_4_1_8": [ + [ + "QIDI", + "PLA", + "QIDI PLA Matte Basic" + ] ] } } diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index cfba38866c..0918702017 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -8,6 +8,7 @@ import contextlib import io import json import os +import re import shutil import sys import tempfile @@ -400,7 +401,8 @@ class TestTripleResolution(unittest.TestCase): class TestReservedSpaces(unittest.TestCase): def test_owners(self): self.assertEqual(afi.reserved_space_owner("GFL99"), (True, "BBL")) - self.assertEqual(afi.reserved_space_owner("QD_X4_PLA"), (True, "Qidi")) + # dissolved island (plan v4): reserved, but no vendor may declare it + self.assertEqual(afi.reserved_space_owner("QD_X4_PLA"), (True, None)) self.assertEqual(afi.reserved_space_owner("P1234abc"), (True, None)) self.assertEqual(afi.reserved_space_owner("pAbCdEf1"), (True, None)) # case-insensitive self.assertEqual(afi.reserved_space_owner("null"), (True, None)) @@ -410,7 +412,8 @@ class TestReservedSpaces(unittest.TestCase): def test_island_declarations(self): self.assertTrue(afi.is_island_declaration("BBL", "GFL99")) self.assertTrue(afi.is_island_declaration("BBL", "OF5CgdDq")) - self.assertTrue(afi.is_island_declaration("Qidi", "QD_X4_PLA")) + # dissolved island (plan v4): Qidi declarations mint like any other + self.assertFalse(afi.is_island_declaration("Qidi", "QD_X4_PLA")) self.assertFalse(afi.is_island_declaration("Qidi", "OF5CgdDq")) self.assertFalse(afi.is_island_declaration("VendorA", "GFL99")) @@ -567,7 +570,7 @@ class TestChecks(SyntheticTreeCase): def test_check6_reserved_namespace_claims(self): for fid, marker in [("GFX99", "owned by BBL"), - ("QD_X_PLA", "owned by Qidi"), + ("QD_X_PLA", "dissolved island"), ("P1a2b3c4", "user-custom"), ("null", "user-custom")]: with self.subTest(fid=fid): @@ -1478,6 +1481,31 @@ class TestRealTree(unittest.TestCase): self.assertEqual(analysis["missing_effective"], []) self.assertEqual(analysis["read_errors"], []) + # Code<->ledger lockstep for the Qidi box (plan v4 SS2): the QD_* literals + # QidiPrinterAgent::map_filament_type_to_setting_id returns must stay + # retired ledger keys whose chains end at a live preset id, because the + # agent resolves them through resolve_filament_id_succession() at runtime. + @unittest.skip("enable with plan v4.2: QD_* ids are not retired yet") + def test_qidi_agent_fallback_ids_resolve_through_ledger(self): + cpp = os.path.join(REPO_ROOT, "src", "slic3r", "Utils", "QidiPrinterAgent.cpp") + with open(cpp, encoding="utf-8") as f: + src = f.read() + m = re.search( + r"map_filament_type_to_setting_id\(const std::string& filament_type\)" + r"\s*\{(.*?)\n\}", src, re.DOTALL) + self.assertIsNotNone(m, "map_filament_type_to_setting_id not found in QidiPrinterAgent.cpp") + qd_ids = re.findall(r'return "(QD_[0-9_]+)";', m.group(1)) + self.assertTrue(qd_ids, "no QD_* literals parsed from map_filament_type_to_setting_id") + ledger = afi.load_ledger(afi.RETIRED_PATH) + live = set(afi.analyze_tree(REAL_PROFILES)["ids"]) + for fid in qd_ids: + self.assertIn(fid, ledger["retired"], f'"{fid}" must be a retired ledger key') + status, node = afi.follow_succession( + fid, set(), ledger["retired"], ledger["hints"], live) + self.assertEqual( + status, "live", + f'"{fid}" succession must end at a live id (got {status} at "{node}")') + # --------------------------------------------------------------------------- # review-fix regressions From f23e5875d5474c7c0cbd7380b7d943ad47e9ad4a Mon Sep 17 00:00:00 2001 From: SoftFever Date: Fri, 21 Aug 2026 18:36:28 +0800 Subject: [PATCH 078/164] filament_id v4.2b: re-mint the Qidi QD_* island (plan v4 SS4) All 264 QD_* declarations re-derive from their family triples via --remint Qidi. Only 8 family ids are new: most QIDI-brand products already carried v3.2-minted ids on older printer series, so the QD-series declarations converge onto them (QD_0..4_1_1 -> OFKIQO2W "QIDI PLA Rapido"), and the six Generic families converge onto the shared generic ids (Generic PLA -> OFDSrzZ8 etc.) by triple math -- no inherits or compatible_printers changes anywhere. --update-snapshot retires all 204 QD_* ids with mode-rule successors. Audit: 204/204 non-null successors, every chain ends at a live id; the four ids hardcoded in QidiPrinterAgent's non-numeric-series fallback resolve to the OFL generics (QD_1_0_1 -> OFDSrzZ8, ...). The v4.1 agent hook translates device-composed QD_* ids through these entries at runtime, so box behavior is preserved on updated clients. Known accepted residue (plan v4 SS4): three case/spelling family splits keep distinct ids for one product line each -- QIDI PC-ABS-FR (series 1-2) vs QIDI PC/ABS-FR (series 3-4) vs Qidi PC-ABS-FR (X-Plus 4), and QIDI TPU 95A-HF vs Qidi TPU 95A-HF. Renames are ruled out; the ledger's per-series successors keep each device slot resolving to the right presets, and a future upstream name unification self-heals through content addressing. The code<->ledger lockstep test is now active (un-skipped). Gates: --check 0; orca_extra_profile_check 0/0; 117 script tests OK (0 skipped); validator base, -f tree-wide, -v Qidi all exit 0; libslic3r_tests green; Qidi profile diff is filament_id-value-only. Qidi.json version bumped. --- resources/profiles/Qidi.json | 2 +- .../Qidi/filament/Q2/Generic ABS @Q2.json | 2 +- .../Qidi/filament/Q2/Generic ABS @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic PC @Q2.json | 2 +- .../Qidi/filament/Q2/Generic PC @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic PETG @Q2.json | 2 +- .../Qidi/filament/Q2/Generic PETG @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic PLA @Q2.json | 2 +- .../Qidi/filament/Q2/Generic PLA @Q2C.json | 2 +- .../filament/Q2/Generic PLA Silk @Q2.json | 2 +- .../filament/Q2/Generic PLA Silk @Q2C.json | 2 +- .../Qidi/filament/Q2/Generic TPU 95A @Q2.json | 2 +- .../filament/Q2/Generic TPU 95A @Q2C.json | 2 +- .../filament/Q2/QIDI ABS Odorless @Q2.json | 2 +- .../filament/Q2/QIDI ABS Odorless @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI ABS Rapido @Q2.json | 2 +- .../filament/Q2/QIDI ABS Rapido @Q2C.json | 2 +- .../Q2/QIDI ABS Rapido Metal @Q2.json | 2 +- .../Q2/QIDI ABS Rapido Metal @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI ABS-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI ABS-GF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI ASA @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI ASA @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI ASA-Aero @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI ASA-Aero @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI ASA-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI ASA-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PA12-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PA12-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PAHT-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PAHT-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PAHT-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PAHT-GF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PC-ABS-FR @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PC-ABS-FR @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PEBA 95A @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PEBA 95A @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PET-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PET-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PET-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PET-GF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PETG Basic @Q2.json | 2 +- .../filament/Q2/QIDI PETG Basic @Q2C.json | 2 +- .../filament/Q2/QIDI PETG Rapido @Q2.json | 2 +- .../filament/Q2/QIDI PETG Rapido @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PETG Tough @Q2.json | 2 +- .../filament/Q2/QIDI PETG Tough @Q2C.json | 2 +- .../Q2/QIDI PETG Translucent @Q2.json | 2 +- .../Q2/QIDI PETG Translucent @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PETG-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PETG-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PETG-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PETG-GF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PLA Basic @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PLA Basic @Q2C.json | 2 +- .../filament/Q2/QIDI PLA Matte Basic @Q2.json | 2 +- .../Q2/QIDI PLA Matte Basic @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PLA Rapido @Q2.json | 2 +- .../filament/Q2/QIDI PLA Rapido @Q2C.json | 2 +- .../Q2/QIDI PLA Rapido Matte @Q2.json | 2 +- .../Q2/QIDI PLA Rapido Matte @Q2C.json | 2 +- .../Q2/QIDI PLA Rapido Metal @Q2.json | 2 +- .../Q2/QIDI PLA Rapido Metal @Q2C.json | 2 +- .../filament/Q2/QIDI PLA Rapido Silk @Q2.json | 2 +- .../Q2/QIDI PLA Rapido Silk @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PLA-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PLA-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PPS-CF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PPS-CF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI PPS-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI PPS-GF @Q2C.json | 2 +- .../Q2/QIDI Support For PAHT @Q2.json | 2 +- .../Q2/QIDI Support For PAHT @Q2C.json | 2 +- .../Q2/QIDI Support For PET-PA @Q2.json | 2 +- .../Q2/QIDI Support For PET-PA @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI TPU 95A-HF @Q2.json | 2 +- .../filament/Q2/QIDI TPU 95A-HF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI TPU-Aero @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI TPU-Aero @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI TPU-GF @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI TPU-GF @Q2C.json | 2 +- .../Qidi/filament/Q2/QIDI UltraPA @Q2.json | 2 +- .../Qidi/filament/Q2/QIDI UltraPA @Q2C.json | 2 +- .../filament/Q2/QIDI UltraPA-CF25 @Q2.json | 2 +- .../filament/Q2/QIDI UltraPA-CF25 @Q2C.json | 2 +- .../filament/Q2/QIDI WOOD Rapido @Q2.json | 2 +- .../filament/Q2/QIDI WOOD Rapido @Q2C.json | 2 +- .../profiles/Qidi/filament/QIDI ASA-CF.json | 2 +- ...DI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...DI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...IDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...IDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...IDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...IDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...IDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...IDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...IDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...IDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...IDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PEBA 95A.json | 2 +- ...QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... PETG Basic @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... PETG Basic @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... PETG Basic @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... PETG Basic @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...PETG Rapido @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...PETG Rapido @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...PETG Rapido @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...PETG Rapido @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... PETG Tough @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... PETG Tough @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... PETG Tough @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... PETG Tough @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...Translucent @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Translucent @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Translucent @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Translucent @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...IDI PETG-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...IDI PETG-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...IDI PETG-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...IDI PETG-GF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...IDI PETG-GF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...IDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...I PLA Basic @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...I PLA Basic @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...I PLA Basic @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...I PLA Basic @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...Matte Basic @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...Matte Basic @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Matte Basic @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...Matte Basic @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ... PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...apido Matte @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...apido Matte @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...apido Matte @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...apido Matte @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.2 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...apido Metal @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI PPS-GF.json | 2 +- ...rt For PAHT @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...rt For PAHT @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...rt For PAHT @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... For PET-PA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... For PET-PA @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ... For PET-PA @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...DI TPU-Aero @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...DI TPU-Aero @Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../profiles/Qidi/filament/QIDI TPU-GF.json | 2 +- ...ltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...ltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...ltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ...i PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ...i PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json | 2 +- ...i PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json | 2 +- ... TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../filament/X4/Generic ABS @X-Max 4.json | 2 +- .../Qidi/filament/X4/Generic PC @X-Max 4.json | 2 +- .../filament/X4/Generic PETG @X-Max 4.json | 2 +- .../filament/X4/Generic PLA @X-Max 4.json | 2 +- .../X4/Generic PLA Silk @X-Max 4.json | 2 +- .../filament/X4/Generic TPU 95A @X-Max 4.json | 2 +- .../X4/QIDI ABS Odorless @X-Max 4.json | 2 +- .../filament/X4/QIDI ABS Rapido @X-Max 4.json | 2 +- .../X4/QIDI ABS Rapido Metal @X-Max 4.json | 2 +- .../filament/X4/QIDI ABS-GF @X-Max 4.json | 2 +- .../Qidi/filament/X4/QIDI ASA @X-Max 4.json | 2 +- .../filament/X4/QIDI ASA-Aero @X-Max 4.json | 2 +- .../filament/X4/QIDI ASA-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PA12-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PAHT-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PAHT-GF @X-Max 4.json | 2 +- .../filament/X4/QIDI PC-ABS-FR @X-Max 4.json | 2 +- .../filament/X4/QIDI PEBA 95A @X-Max 4.json | 2 +- .../filament/X4/QIDI PET-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PET-GF @X-Max 4.json | 2 +- .../filament/X4/QIDI PETG Basic @X-Max 4.json | 2 +- .../X4/QIDI PETG Rapido @X-Max 4.json | 2 +- .../filament/X4/QIDI PETG Tough @X-Max 4.json | 2 +- .../X4/QIDI PETG Translucent @X-Max 4.json | 2 +- .../filament/X4/QIDI PETG-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PETG-GF @X-Max 4.json | 2 +- .../filament/X4/QIDI PLA Basic @X-Max 4.json | 2 +- .../X4/QIDI PLA Matte Basic @X-Max 4.json | 2 +- .../filament/X4/QIDI PLA Rapido @X-Max 4.json | 2 +- .../X4/QIDI PLA Rapido Matte @X-Max 4.json | 2 +- .../X4/QIDI PLA Rapido Metal @X-Max 4.json | 2 +- .../X4/QIDI PLA Rapido Silk @X-Max 4.json | 2 +- .../filament/X4/QIDI PLA-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PPS-CF @X-Max 4.json | 2 +- .../filament/X4/QIDI PPS-GF @X-Max 4.json | 2 +- .../X4/QIDI Support For PAHT @X-Max 4.json | 2 +- .../X4/QIDI Support For PET-PA @X-Max 4.json | 2 +- .../filament/X4/QIDI TPU 95A-HF @X-Max 4.json | 2 +- .../filament/X4/QIDI TPU-Aero @X-Max 4.json | 2 +- .../filament/X4/QIDI TPU-GF @X-Max 4.json | 2 +- .../filament/X4/QIDI UltraPA @X-Max 4.json | 2 +- .../X4/QIDI UltraPA-CF25 @X-Max 4.json | 2 +- .../X4/QIDI WOOD Rapido @X-Max 4.json | 2 +- .../filament/X5/Generic ABS @X-Plus 5.json | 2 +- .../filament/X5/Generic PC @X-Plus 5.json | 2 +- .../filament/X5/Generic PETG @X-Plus 5.json | 2 +- .../filament/X5/Generic PLA @X-Plus 5.json | 2 +- .../X5/Generic PLA Silk @X-Plus 5.json | 2 +- .../X5/Generic TPU 95A @X-Plus 5.json | 2 +- .../X5/QIDI ABS Odorless @X-Plus 5.json | 2 +- .../X5/QIDI ABS Rapido @X-Plus 5.json | 2 +- .../X5/QIDI ABS Rapido Metal @X-Plus 5.json | 2 +- .../filament/X5/QIDI ABS-GF @X-Plus 5.json | 2 +- .../Qidi/filament/X5/QIDI ASA @X-Plus 5.json | 2 +- .../filament/X5/QIDI ASA-Aero @X-Plus 5.json | 2 +- .../filament/X5/QIDI ASA-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PA12-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PA6-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PAHT-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PAHT-GF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PC-ABS-FR @X-Plus 5.json | 2 +- .../filament/X5/QIDI PEBA 95A @X-Plus 5.json | 2 +- .../filament/X5/QIDI PET-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PET-GF @X-Plus 5.json | 2 +- .../X5/QIDI PETG Basic @X-Plus 5.json | 2 +- .../X5/QIDI PETG Rapido @X-Plus 5.json | 2 +- .../X5/QIDI PETG Tough @X-Plus 5.json | 2 +- .../X5/QIDI PETG Translucent @X-Plus 5.json | 2 +- .../filament/X5/QIDI PETG-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PETG-GF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PLA Basic @X-Plus 5.json | 2 +- .../X5/QIDI PLA Matte Basic @X-Plus 5.json | 2 +- .../X5/QIDI PLA Rapido @X-Plus 5.json | 2 +- .../X5/QIDI PLA Rapido Matte @X-Plus 5.json | 2 +- .../X5/QIDI PLA Rapido Metal @X-Plus 5.json | 2 +- .../filament/X5/QIDI PLA Silk @X-Plus 5.json | 2 +- .../filament/X5/QIDI PLA-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PPS-CF @X-Plus 5.json | 2 +- .../filament/X5/QIDI PPS-GF @X-Plus 5.json | 2 +- .../X5/QIDI Support For PAHT @X-Plus 5.json | 2 +- .../X5/QIDI Support For PET-PA @X-Plus 5.json | 2 +- .../X5/QIDI TPU 95A-HF @X-Plus 5.json | 2 +- .../filament/X5/QIDI TPU-Aero @X-Plus 5.json | 2 +- .../filament/X5/QIDI TPU-GF @X-Plus 5.json | 2 +- .../filament/X5/QIDI UltraPA @X-Plus 5.json | 2 +- .../X5/QIDI UltraPA-CF25 @X-Plus 5.json | 2 +- .../X5/QIDI WOOD Rapido @X-Plus 5.json | 2 +- resources/profiles/retired_filament_ids.json | 1224 +++++++++ scripts/filament_id_snapshot.json | 2229 +---------------- scripts/tests/test_filament_id.py | 1 - 268 files changed, 1574 insertions(+), 2410 deletions(-) diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index ecceff5a8a..98f157c9a3 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.11", + "version": "02.04.00.12", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ diff --git a/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2.json index 9e42298338..1dc3825126 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2.json @@ -3,7 +3,7 @@ "name": "Generic ABS@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_11", + "filament_id": "OFY9muEs", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2C.json index 88edeb6155..c3641af840 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic ABS @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic ABS@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_11", + "filament_id": "OFY9muEs", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PC @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PC @Q2.json index 90d5f9150f..26abc6179b 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PC @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PC @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PC@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_23", + "filament_id": "OFLakOUI", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PC @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PC @Q2C.json index 55a834093d..148bc80d29 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PC @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PC @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PC@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_23", + "filament_id": "OFLakOUI", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2.json index 5a8d64615a..de56662460 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PETG@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_41", + "filament_id": "OFYPdQJh", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2C.json index 88c5c926ab..13dc11da37 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PETG @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PETG@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_41", + "filament_id": "OFYPdQJh", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2.json index 21ed221909..f8da1c0008 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PLA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_1", + "filament_id": "OFDSrzZ8", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2C.json index 82423a614d..b33774304d 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PLA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_1", + "filament_id": "OFDSrzZ8", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2.json index a24a0f4d6f..23d04a049a 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2.json @@ -3,7 +3,7 @@ "name": "Generic PLA Silk@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_4", + "filament_id": "OFesA6rF", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2C.json index 1254b1d53a..30588be03e 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic PLA Silk @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic PLA Silk@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_4", + "filament_id": "OFesA6rF", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2.json b/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2.json index 107d337155..189c740c72 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2.json @@ -3,7 +3,7 @@ "name": "Generic TPU 95A@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_0_50", + "filament_id": "OFjiXpyf", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2C.json b/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2C.json index 8e867a26f2..bfb84c16de 100644 --- a/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/Generic TPU 95A @Q2C.json @@ -3,7 +3,7 @@ "name": "Generic TPU 95A@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_0_50", + "filament_id": "OFjiXpyf", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2.json index 62dc85146b..19a568850c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Odorless@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_14", + "filament_id": "OFma5TXH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2C.json index be98105a39..2c2b667fd7 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Odorless @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Odorless@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_14", + "filament_id": "OFma5TXH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2.json index 9d7e3d0e7f..c5cb2aca78 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_11", + "filament_id": "OFT2jon4", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2C.json index da40111dc4..4e68e02cf5 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_11", + "filament_id": "OFT2jon4", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2.json index 46ccb9e691..e123946376 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido Metal@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_13", + "filament_id": "OFeCJqxx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2C.json index afd2b355cb..6589613879 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS Rapido Metal @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido Metal@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_13", + "filament_id": "OFeCJqxx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2.json index a20b7bb2c1..298e063e51 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ABS-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_12", + "filament_id": "OFt3HtlG", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2C.json index 5e6df7914d..36ec082dc3 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ABS-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ABS-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_12", + "filament_id": "OFt3HtlG", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2.json index 88e5d964e7..4a64191f92 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ASA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_18", + "filament_id": "OFTsHNQi", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2C.json index c68044bfaf..11cbffc08f 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ASA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_18", + "filament_id": "OFTsHNQi", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2.json index b449906758..c32a28c5ff 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-Aero@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_19", + "filament_id": "OFu1E4ur", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2C.json index 3c810517f6..30835ce25e 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA-Aero @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-Aero@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_19", + "filament_id": "OFu1E4ur", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2.json index 4d2165ffd1..44845f9c1c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_20", + "filament_id": "OF1W7c76", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2C.json index 99e1043b46..5f100e18e7 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI ASA-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_20", + "filament_id": "OF1W7c76", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2.json index c15cf5ca65..454bb935c1 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PA12-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_27", + "filament_id": "OFn6WpN7", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2C.json index 3dbd928222..ae7dce989c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PA12-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PA12-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_27", + "filament_id": "OFn6WpN7", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2.json index fe908219a5..86d433078a 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_30", + "filament_id": "OFKgmsqE", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2C.json index d76e92349e..d456e57eea 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_30", + "filament_id": "OFKgmsqE", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2.json index e694512bc7..2f4d499ddd 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_31", + "filament_id": "OFo15hcT", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2C.json index cb8c2640a3..c64465630c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PAHT-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_31", + "filament_id": "OFo15hcT", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2.json index d4639142de..67c1da6278 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PC-ABS-FR@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_34", + "filament_id": "OFFAWVf0", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2C.json index b0e25aa480..b5ccaf706c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PC-ABS-FR @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PC-ABS-FR@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_34", + "filament_id": "OFFAWVf0", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2.json index 9dd9600bf9..23717031de 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_36", + "filament_id": "OFhiJE7Y", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2C.json index e1c1441da1..ec065181d8 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PEBA 95A @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_36", + "filament_id": "OFhiJE7Y", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2.json index 211f90a3a6..e6c29cea5c 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PET-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_37", + "filament_id": "OFKfJTwL", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2C.json index 59f7315e29..62461cb73a 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PET-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PET-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_37", + "filament_id": "OFKfJTwL", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2.json index 85fc6f5847..424b78379d 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PET-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_38", + "filament_id": "OFhx4uOG", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2C.json index c7e66b7972..f178094458 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PET-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PET-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_38", + "filament_id": "OFhx4uOG", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2.json index ba87c9a3b7..58a0fd7dbf 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Basic@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_39", + "filament_id": "OFuJ49uH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2C.json index a08ec8af68..8cb18721e2 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Basic @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Basic@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_39", + "filament_id": "OFuJ49uH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2.json index 9815a8eb64..2e3d793089 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Rapido@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_41", + "filament_id": "OF4S3To3", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2C.json index 1c50f16b51..96a2ec23e6 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Rapido @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Rapido@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_41", + "filament_id": "OF4S3To3", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2.json index b8f8c4ec5f..ed639e45a3 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Tough@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_40", + "filament_id": "OFQ40XeN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2C.json index 3f272efaee..f3886ffbdd 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Tough @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Tough@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_40", + "filament_id": "OFQ40XeN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2.json index 64a56ca919..d996077b6e 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Translucent@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_45", + "filament_id": "OFf0MkD5", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2C.json index 6010799fff..31a8543037 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG Translucent @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Translucent@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_45", + "filament_id": "OFf0MkD5", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2.json index 475b8f2a78..8f424ae68d 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_42", + "filament_id": "OF4iWKrE", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2C.json index 4ba3a94c25..3b0175abd0 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_42", + "filament_id": "OF4iWKrE", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2.json index d510eb7fe8..cb45a7126e 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_43", + "filament_id": "OFdtPd9h", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2C.json index 353d2eb3ee..2b37be4655 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PETG-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_43", + "filament_id": "OFdtPd9h", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2.json index c2799f2f9e..9681191225 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Basic@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_7", + "filament_id": "OF4nQ62r", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2C.json index 4597470db3..7b5d0b42e9 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Basic @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Basic@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_7", + "filament_id": "OF4nQ62r", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2.json index 4a25bf91f3..86320677b5 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Matte Basic@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_8", + "filament_id": "OFughwKn", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2C.json index 824ff1d846..49a420c205 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Matte Basic @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Matte Basic@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_8", + "filament_id": "OFughwKn", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2.json index 3f57b73a1f..3e61216161 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_1", + "filament_id": "OFKIQO2W", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2C.json index d3afa29ba4..6bcc1465f8 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_1", + "filament_id": "OFKIQO2W", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2.json index e4432822ad..3b0813506f 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Matte@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_2", + "filament_id": "OF3IKafc", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2C.json index b8cf01a822..1fdd0cbfe0 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Matte @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Matte@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_2", + "filament_id": "OF3IKafc", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2.json index 9728e57f4c..b06fcf26cb 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Metal@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_3", + "filament_id": "OFANFm4x", "instantiation": "false", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2C.json index 2e3295cd86..ac5ef39d81 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Metal @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Metal@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_3", + "filament_id": "OFANFm4x", "instantiation": "false", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2.json index ae38a9189f..d74b31e3b6 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Silk@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_4", + "filament_id": "OFW5FqkL", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2C.json index 9d07d3375e..2cd6d5206b 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA Rapido Silk @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Silk@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_4", + "filament_id": "OFW5FqkL", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2.json index 4e1b88726e..68a6fe3591 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PLA-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_5", + "filament_id": "OFhWrAuP", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2C.json index 67832cba33..1547635255 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PLA-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PLA-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_5", + "filament_id": "OFhWrAuP", "instantiation": "false", "filament_adhesiveness_category": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2.json index dc4e1fd221..6f4ec50f8b 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-CF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_44", + "filament_id": "OFZOuWrO", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2C.json index 2f27693f04..b582d662f8 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PPS-CF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-CF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_44", + "filament_id": "OFZOuWrO", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2.json index f1de945749..7d0507a4d7 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_46", + "filament_id": "OFp57RRC", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2C.json index 3fda14c322..0412893632 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI PPS-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_46", + "filament_id": "OFp57RRC", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2.json index 7e12181e9d..36ef25367a 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PAHT@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2C.json index 1dfffa1bd7..1252ad814e 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI Support For PAHT @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PAHT@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2.json index 25dca621ad..16dba7f79a 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PET/PA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_33", + "filament_id": "OFqcL5UF", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2C.json index f126a37f8e..759e704f3f 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI Support For PET-PA @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PET/PA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_33", + "filament_id": "OFqcL5UF", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2.json index b31512f047..ca94f5a4d1 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI TPU 95A-HF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_50", + "filament_id": "OFR1XLMN", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2C.json index dd9b428fed..80bde58289 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU 95A-HF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI TPU 95A-HF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_50", + "filament_id": "OFR1XLMN", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2.json index 38a1c1883a..58c2776f6e 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-Aero@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_49", + "filament_id": "OFMDHOcT", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2C.json index 525aebb88f..580060e6fe 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU-Aero @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-Aero@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_49", + "filament_id": "OFMDHOcT", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2.json index 5e995b72be..c4a3c31413 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_15", + "filament_id": "OF9EHUKK", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2C.json index b17c65d3e7..887a0fa639 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI TPU-GF @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_15", + "filament_id": "OF9EHUKK", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2.json index 5b9881cb9f..27942a7e1d 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_24", + "filament_id": "OFWDe7YH", "instantiation": "false", "box_temperature_range_high": [ "55" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2C.json index 7f11a52b7c..925c18aa11 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_24", + "filament_id": "OFWDe7YH", "instantiation": "false", "box_temperature_range_high": [ "55" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2.json index 194fe42853..3c9c558f77 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA-CF25@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_26", + "filament_id": "OF9PELEb", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2C.json index 1593decfea..ebcabb0fa6 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI UltraPA-CF25 @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA-CF25@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_26", + "filament_id": "OF9PELEb", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2.json b/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2.json index 380d48bcb1..5b31143e00 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2.json @@ -3,7 +3,7 @@ "name": "QIDI WOOD Rapido@Q2-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_1_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2C.json b/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2C.json index 5a7882bd68..a4b1c223db 100644 --- a/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2C.json +++ b/resources/profiles/Qidi/filament/Q2/QIDI WOOD Rapido @Q2C.json @@ -3,7 +3,7 @@ "name": "QIDI WOOD Rapido@Q2C-Series", "inherits": "fdm_filament_q_common", "from": "system", - "filament_id": "QD_2_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/QIDI ASA-CF.json b/resources/profiles/Qidi/filament/QIDI ASA-CF.json index 9e1ac1c012..0b6906338b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-CF.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-CF.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "QD_0_1_20", + "filament_id": "OF1W7c76", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json index 56512094ca..1d8276e697 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "qdecbUennyPdmB0A", - "filament_id": "QD_0_1_24", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json index 3b0d9029c2..ebd5a74d26 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "oAp4leYdCEJY771O", - "filament_id": "QD_0_1_24", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json index 795c6dbbfc..7f36d5973b 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA-Ultra", "from": "system", "setting_id": "d5wSCLXU0dhvtbM5", - "filament_id": "QD_0_1_24", + "filament_id": "OFlN6DL1", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json index 14e508b501..271abf03e1 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "e8Lz1jXDuBS8tzvW", - "filament_id": "QD_0_1_27", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json index 8d024087cf..d82b9caf50 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "2DYXiTX67NfmBSCX", - "filament_id": "QD_0_1_27", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json index a9f43cdaee..d291f54a00 100644 --- a/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PA12-CF", "from": "system", "setting_id": "Kkj773eEVzhT6B7Q", - "filament_id": "QD_0_1_27", + "filament_id": "OFn6WpN7", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json index 66bf7ff727..f8945441a6 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "3HTNW0nsdZy151mm", - "filament_id": "QD_0_1_30", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json index 0e3da99aed..d403b161f2 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "t9VMvRmLwAT37YHm", - "filament_id": "QD_0_1_30", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json index 1c5730c874..ab786208f2 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-CF", "from": "system", "setting_id": "F30WpUvosUoiAKry", - "filament_id": "QD_0_1_30", + "filament_id": "OFKgmsqE", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json index 0d83c21079..e2c869d923 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "xHG5cy5GGfu88GoC", - "filament_id": "QD_0_1_31", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json index d90f8c3eec..fd0fe1f926 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "z1EQUUwgsLHYgeHG", - "filament_id": "QD_0_1_31", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json index 4d1b97b8fd..3a56d3c6fa 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PAHT-GF", "from": "system", "setting_id": "yTNCP86ycfXgy8zV", - "filament_id": "QD_0_1_31", + "filament_id": "OFo15hcT", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PEBA 95A.json b/resources/profiles/Qidi/filament/QIDI PEBA 95A.json index 4695bcf9ae..937ef89808 100644 --- a/resources/profiles/Qidi/filament/QIDI PEBA 95A.json +++ b/resources/profiles/Qidi/filament/QIDI PEBA 95A.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "qkErLCeMU5ufGB0k", - "filament_id": "QD_0_1_36", + "filament_id": "OFhiJE7Y", "instantiation": "true", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json index 5a9f9e7aa5..7ebb044048 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "3k9qy3LCbhnnRRad", - "filament_id": "QD_0_1_37", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json index a6477c90bb..fcaf24fe9a 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "xYAAeJcC83x4RoIl", - "filament_id": "QD_0_1_37", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json index 4670fe40bc..6fffac3277 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-CF", "from": "system", "setting_id": "JXE7r9nJqui21eJW", - "filament_id": "QD_0_1_37", + "filament_id": "OFKfJTwL", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json index e7131b8b4a..3614aa9ebc 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "zSjGCRFJPKjrnxXj", - "filament_id": "QD_0_1_38", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json index 62eaf75e85..71d711d7f3 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "qKGOeBEUrafs1H1C", - "filament_id": "QD_0_1_38", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json index 96112b4283..072689464e 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PET-GF", "from": "system", "setting_id": "S3VakjOmAENmBhoU", - "filament_id": "QD_0_1_38", + "filament_id": "OFhx4uOG", "instantiation": "true", "fan_cooling_layer_time": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle.json index dd6e20b2ed..900c3e1f7e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "SaZRrBNZwbPUxSRv", - "filament_id": "QD_0_1_39", + "filament_id": "OFuJ49uH", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle.json index 853d55b506..8e63d3f56a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "33Anr90IUQGC3jJZ", - "filament_id": "QD_0_1_39", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle.json index 8758f39eb5..2e8f4acbb4 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "l4LT5GPolnkeEEK6", - "filament_id": "QD_0_1_39", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle.json index 55db9aa126..741988239b 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Basic", "from": "system", "setting_id": "r6LnysrDaSyIserx", - "filament_id": "QD_0_1_39", + "filament_id": "OFuJ49uH", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle.json index a2098e7af1..c0b3eb3d2d 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "O2SmSJeOq2QkMawy", - "filament_id": "QD_0_1_41", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle.json index c2a930616a..4df839e4d4 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "UkzoaZIuBEwTCUYL", - "filament_id": "QD_0_1_41", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle.json index fc64677656..00b3f5abeb 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "wMG9FBNFTJR3mI2Y", - "filament_id": "QD_0_1_41", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle.json index da2dbce484..480da3bd6a 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Rapido", "from": "system", "setting_id": "WF4EIoqqebSQYJCL", - "filament_id": "QD_0_1_41", + "filament_id": "OF4S3To3", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json index 5a24596ad8..6aeaf4d124 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "Mu4RDxD4sVyJwRXc", - "filament_id": "QD_0_1_40", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json index 20e2ce8605..0058311761 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "FJryx96xxfATPqls", - "filament_id": "QD_0_1_40", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json index f0676efd80..1546b821fe 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "SmywHXjvv1Ju150F", - "filament_id": "QD_0_1_40", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json index a669d37ca3..e4d84406f2 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Tough", "from": "system", "setting_id": "BwMkyVGyL0Pmqp1w", - "filament_id": "QD_0_1_40", + "filament_id": "OFQ40XeN", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle.json index 5082d4d9f0..d1fc5490ca 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "6bASygXwTEKR4Twi", - "filament_id": "QD_0_1_45", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_max_volumetric_speed": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle.json index 22d8ffe823..a629cb862f 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "QL7Ob5qH7GBsl9ga", - "filament_id": "QD_0_1_45", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle.json index e1fbad24e9..d6cbc67505 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "wwodlWk71rHgZ323", - "filament_id": "QD_0_1_45", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle.json index 7ad9a35a0c..1ff04f026c 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG Translucent", "from": "system", "setting_id": "Nh88D1u7mMVGhqCU", - "filament_id": "QD_0_1_45", + "filament_id": "OFf0MkD5", "instantiation": "true", "filament_settings_id": [ "QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle.json index 42fe672412..76176b1597 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "OSLMQVT2l2Yert5l", - "filament_id": "QD_0_1_42", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle.json index a0b04d61be..fbeb10bf2e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "rpJAbHlG6bJhJoAs", - "filament_id": "QD_0_1_42", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle.json index 91265bb6b3..92fafc92ca 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-CF", "from": "system", "setting_id": "yyB4FvX6mflpfiZd", - "filament_id": "QD_0_1_42", + "filament_id": "OF4iWKrE", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle.json index b7f85630bd..73b3a23fab 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "I6Tg5JVz1Q0RigOW", - "filament_id": "QD_0_1_43", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle.json index 4b29595ea8..20d1de619e 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "RmitFKegDy89lNH4", - "filament_id": "QD_0_1_43", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json index a7a0295a94..a67ef4d5a4 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PETG-GF", "from": "system", "setting_id": "AoO0ihxQmsL2up4w", - "filament_id": "QD_0_1_43", + "filament_id": "OFdtPd9h", "instantiation": "true", "filament_settings_id": [ "QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle.json index e49360108e..34d98b4b1c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "AOa9WW2IN1VHGXGM", - "filament_id": "QD_0_1_7", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle.json index 951227fba2..3dbeaf452f 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "qdagUM7IIKyfHB2g", - "filament_id": "QD_0_1_7", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle.json index c7f30d1c03..183fe2cf8f 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "CwsM4SCrRAhAJVfN", - "filament_id": "QD_0_1_7", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle.json index a255f2e368..878f91711e 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Basic", "from": "system", "setting_id": "HE3KK8QRsGrgLnr5", - "filament_id": "QD_0_1_7", + "filament_id": "OF4nQ62r", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle.json index a6d7f3b66b..4074d5a1cd 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "8JEZpQeq7FEoUQQd", - "filament_id": "QD_0_1_8", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle.json index 90b3876c66..ae55810f39 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "6Z2ery99xHlP2ciV", - "filament_id": "QD_0_1_8", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle.json index 35d11757ce..bb1c7bd1d1 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "27eKOPtsQZIRwQYo", - "filament_id": "QD_0_1_8", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle.json index de7de4d803..59ffd6424f 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Matte Basic", "from": "system", "setting_id": "nf5VwfZ4gpGG5ufO", - "filament_id": "QD_0_1_8", + "filament_id": "OFughwKn", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json index 49115068c6..574c3f9f38 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "xaGFbFpbrZ9v3RKy", - "filament_id": "QD_0_1_1", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json index 1a17ca5b69..466ff357d7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "Vy1gTRsTAyLCcyTC", - "filament_id": "QD_0_1_1", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json index 03d69431af..35654f4798 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "Rt3UcmwI8R8fxKUa", - "filament_id": "QD_0_1_1", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json index e62b729ec9..ba7fd2b4b1 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido", "from": "system", "setting_id": "dWb415VG0AlqTWFD", - "filament_id": "QD_0_1_1", + "filament_id": "OFKIQO2W", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json index 28111c4f07..2c89680ccc 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "9YVeedSIviWv3n9F", - "filament_id": "QD_0_1_2", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json index dce300b652..5be44f4493 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "M7OXECFdZK4ZAoba", - "filament_id": "QD_0_1_2", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json index b95ff5f588..55b3b75f4c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "zXKa67Oj1qSsHlct", - "filament_id": "QD_0_1_2", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json index 14732dfba7..7f9c359004 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Matte", "from": "system", "setting_id": "iJ0geNRlmJkSPQfN", - "filament_id": "QD_0_1_2", + "filament_id": "OF3IKafc", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json index 0ac378e9e8..57af588669 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "PvK39S1OvklDcZiB", - "filament_id": "QD_0_1_3", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json index 171ae933d8..4063f51d06 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "9CsEnbzkLosi8Y4Y", - "filament_id": "QD_0_1_3", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json index 46940dd8b6..7966d19908 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "kQGl05whrHW2T43U", - "filament_id": "QD_0_1_3", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json index b007ae0bf6..8b0517b09b 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Metal", "from": "system", "setting_id": "m2ctHQXA57lyjj4Q", - "filament_id": "QD_0_1_3", + "filament_id": "OFANFm4x", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json index 0cb15c1cae..7e53839859 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "X0DxlkkldQnTUfLy", - "filament_id": "QD_0_1_4", + "filament_id": "OFW5FqkL", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json index bacf625ed2..4fa2ca7198 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PLA Rapido Silk", "from": "system", "setting_id": "McXMhVyp029M56kU", - "filament_id": "QD_0_1_4", + "filament_id": "OFW5FqkL", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json index 890f9d3f5a..85c8e28574 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "Uue4WvW1uAwK2o0Y", - "filament_id": "QD_0_1_5", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json index ed3f0d52ac..f77049928d 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "3SSQEk5a2vnHKG2g", - "filament_id": "QD_0_1_5", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json index 29df7c92ea..01650e5b11 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PLA-CF", "from": "system", "setting_id": "jlUhowcsrMLKZBHH", - "filament_id": "QD_0_1_5", + "filament_id": "OFhWrAuP", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json index 2060c98114..b0eba4d48b 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "HVN6Bfz9FENqgw14", - "filament_id": "QD_0_1_44", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json index 37cd2a368d..ebbadcecbc 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "T5f0IJeUy3XIzrVw", - "filament_id": "QD_0_1_44", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json index 2910fe2bd7..eccaa7c066 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI PPS-CF", "from": "system", "setting_id": "eXV1ZPiBolFIU4Ub", - "filament_id": "QD_0_1_44", + "filament_id": "OFZOuWrO", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Qidi/filament/QIDI PPS-GF.json b/resources/profiles/Qidi/filament/QIDI PPS-GF.json index 8688747e35..dcee07928b 100644 --- a/resources/profiles/Qidi/filament/QIDI PPS-GF.json +++ b/resources/profiles/Qidi/filament/QIDI PPS-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pa", "from": "system", "setting_id": "uoOOXPpTEGa9bqhx", - "filament_id": "QD_0_1_46", + "filament_id": "OFp57RRC", "instantiation": "true", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle.json index 7093e58d9e..ad53eb97eb 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PAHT", "from": "system", "setting_id": "aQUPvUd9uPbi7HEx", - "filament_id": "QD_0_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle.json index 2d85b489c1..c214764ce8 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PAHT", "from": "system", "setting_id": "2RpRJwkUVzHwU6Ts", - "filament_id": "QD_0_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle.json index 77b6a34209..3ecffe9c54 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PAHT", "from": "system", "setting_id": "Arig0uL9inQi0NKf", - "filament_id": "QD_0_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.4 nozzle.json index bd6310ae72..c5717ecee8 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PET/PA", "from": "system", "setting_id": "EzPLJJzV7W1GfAuZ", - "filament_id": "QD_0_1_33", + "filament_id": "OFqcL5UF", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.6 nozzle.json index 7899b0435f..4282ec8718 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PET/PA", "from": "system", "setting_id": "Nfu1o1YZL9zK1VNS", - "filament_id": "QD_0_1_33", + "filament_id": "OFqcL5UF", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.8 nozzle.json index 43ffafb5bb..3791f09e5a 100644 --- a/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI Support For PET-PA @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI Support For PET/PA", "from": "system", "setting_id": "xJQLw0SvSPItH0wa", - "filament_id": "QD_0_1_33", + "filament_id": "OFqcL5UF", "instantiation": "true", "filament_settings_id": [ "QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle.json index 18134da7e2..193a5d327f 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "6PFep2VmiWoOZLSn", - "filament_id": "QD_0_1_49", + "filament_id": "OFMDHOcT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle.json index fc9b28c722..9ee1ce187e 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI TPU-Aero", "from": "system", "setting_id": "cqXDJN6nwBX3xVB7", - "filament_id": "QD_0_1_49", + "filament_id": "OFMDHOcT", "instantiation": "true", "filament_settings_id": [ "QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI TPU-GF.json b/resources/profiles/Qidi/filament/QIDI TPU-GF.json index af3827eb77..3f2eef6661 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU-GF.json +++ b/resources/profiles/Qidi/filament/QIDI TPU-GF.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_tpu", "from": "system", "setting_id": "r8sdMolKGn3b52NX", - "filament_id": "QD_0_1_15", + "filament_id": "OF9EHUKK", "instantiation": "true", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json index 3871891090..fcaa74f9c7 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "5Two6xier5Pt2f8V", - "filament_id": "QD_0_1_26", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json index 31b300d45f..8c8bc9d4f7 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "H011um5zj6afHdTI", - "filament_id": "QD_0_1_26", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json index 8a2ce25ae4..fc03e055ef 100644 --- a/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI UltraPA-CF25", "from": "system", "setting_id": "26BECX2hYZ6JNFRq", - "filament_id": "QD_0_1_26", + "filament_id": "OF9PELEb", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json index ec46dd83ff..0bf0bc31f2 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "gfnllytSwMCbiB6b", - "filament_id": "QD_0_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json index 1e7359636c..260d987ec0 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "PLrMThf2TXZGtp7N", - "filament_id": "QD_0_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json index f184003ac0..d3fd897a93 100644 --- a/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "QIDI WOOD Rapido", "from": "system", "setting_id": "ErWlv0gKexLj8wjB", - "filament_id": "QD_0_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json index 6116b16149..458556f94c 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "WZuAmHHfdACv1F6k", - "filament_id": "QD_0_1_34", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json index 859df30d32..296581a97a 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "JCCjjewJVs13S08j", - "filament_id": "QD_0_1_34", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json index 63911a1567..ce939299ba 100644 --- a/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi PC-ABS-FR", "from": "system", "setting_id": "lWfYhsmJo1Q8FmM8", - "filament_id": "QD_0_1_34", + "filament_id": "OFjD3YTW", "instantiation": "true", "activate_chamber_temp_control": [ "0" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json index 469f190953..9cce69fc3b 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "MQ5o43Gclt9U65x6", - "filament_id": "QD_0_1_50", + "filament_id": "OFzAWsca", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json index e56f67abf2..3c1e2d5987 100644 --- a/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json @@ -4,7 +4,7 @@ "inherits": "Qidi TPU 95A-HF", "from": "system", "setting_id": "wNxGljiKmTzCPgzk", - "filament_id": "QD_0_1_50", + "filament_id": "OFzAWsca", "instantiation": "true", "fan_cooling_layer_time": [ "60" diff --git a/resources/profiles/Qidi/filament/X4/Generic ABS @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic ABS @X-Max 4.json index e01dbb5296..90cac58dbe 100644 --- a/resources/profiles/Qidi/filament/X4/Generic ABS @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic ABS @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic ABS@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_11", + "filament_id": "OFY9muEs", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Generic PC @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PC @X-Max 4.json index 655713b891..6d10f9e6a6 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PC @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PC @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PC@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_23", + "filament_id": "OFLakOUI", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/Generic PETG @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PETG @X-Max 4.json index e855840148..3c470bad37 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PETG @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PETG @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PETG@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_41", + "filament_id": "OFYPdQJh", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/Generic PLA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PLA @X-Max 4.json index a4ee80e67d..5ce7036913 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PLA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PLA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PLA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_1", + "filament_id": "OFDSrzZ8", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Generic PLA Silk @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic PLA Silk @X-Max 4.json index e83be7d908..afa2c0b90b 100644 --- a/resources/profiles/Qidi/filament/X4/Generic PLA Silk @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic PLA Silk @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic PLA Silk@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_4", + "filament_id": "OFesA6rF", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/Generic TPU 95A @X-Max 4.json b/resources/profiles/Qidi/filament/X4/Generic TPU 95A @X-Max 4.json index 10a520531d..4f96f760b2 100644 --- a/resources/profiles/Qidi/filament/X4/Generic TPU 95A @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/Generic TPU 95A @X-Max 4.json @@ -3,7 +3,7 @@ "name": "Generic TPU 95A@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_0_50", + "filament_id": "OFjiXpyf", "instantiation": "false", "filament_adhesiveness_category": [ "600" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ABS Odorless @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ABS Odorless @X-Max 4.json index 0b89883f41..ea38a66fe4 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ABS Odorless @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ABS Odorless @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Odorless@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_14", + "filament_id": "OFma5TXH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido @X-Max 4.json index 3ba45a14dc..89647b53d5 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_11", + "filament_id": "OFT2jon4", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido Metal @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido Metal @X-Max 4.json index 64dc667a44..beb4d8f07b 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido Metal @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ABS Rapido Metal @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ABS Rapido Metal@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_13", + "filament_id": "OFeCJqxx", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ABS-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ABS-GF @X-Max 4.json index 218e883448..e1ddebc083 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ABS-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ABS-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ABS-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_12", + "filament_id": "OFt3HtlG", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ASA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ASA @X-Max 4.json index c6937e0080..27a6187a1d 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ASA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ASA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ASA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_18", + "filament_id": "OFTsHNQi", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ASA-Aero @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ASA-Aero @X-Max 4.json index 3a66fdea86..8fc3684bfa 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ASA-Aero @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ASA-Aero @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-Aero@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_19", + "filament_id": "OFu1E4ur", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI ASA-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI ASA-CF @X-Max 4.json index 3cc72406a4..5da0ac2e10 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI ASA-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI ASA-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI ASA-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_20", + "filament_id": "OF1W7c76", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PA12-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PA12-CF @X-Max 4.json index e217915579..76a9afd45e 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PA12-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PA12-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PA12-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_27", + "filament_id": "OFn6WpN7", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PAHT-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PAHT-CF @X-Max 4.json index 83cd3e27cb..e195621413 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PAHT-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PAHT-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_30", + "filament_id": "OFKgmsqE", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PAHT-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PAHT-GF @X-Max 4.json index 8a35c7330b..ad1878ee8b 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PAHT-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PAHT-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PAHT-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_31", + "filament_id": "OFo15hcT", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PC-ABS-FR @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PC-ABS-FR @X-Max 4.json index 7bffaf11b5..a3e381a55c 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PC-ABS-FR @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PC-ABS-FR @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PC/ABS-FR@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_34", + "filament_id": "OFDIrhbu", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PEBA 95A @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PEBA 95A @X-Max 4.json index 4745e19ad2..a78fefa651 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PEBA 95A @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PEBA 95A @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PEBA 95A@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_36", + "filament_id": "OFhiJE7Y", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PET-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PET-CF @X-Max 4.json index 6322639eb3..6573bb507a 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PET-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PET-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PET-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_37", + "filament_id": "OFKfJTwL", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PET-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PET-GF @X-Max 4.json index f18e2de950..8ee271de38 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PET-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PET-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PET-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_38", + "filament_id": "OFhx4uOG", "instantiation": "false", "box_temperature_range_high": [ "50" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG Basic @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG Basic @X-Max 4.json index c7261208cc..5dc9cc4cda 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG Basic @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG Basic @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Basic@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_39", + "filament_id": "OFuJ49uH", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG Rapido @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG Rapido @X-Max 4.json index 3050d4abd6..1a888d7bc6 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG Rapido @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG Rapido @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Rapido@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_41", + "filament_id": "OF4S3To3", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG Tough @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG Tough @X-Max 4.json index 783925d2b5..885ff3c1c0 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG Tough @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG Tough @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Tough@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_40", + "filament_id": "OFQ40XeN", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG Translucent @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG Translucent @X-Max 4.json index 21477a006f..a5f0628a80 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG Translucent @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG Translucent @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG Translucent@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_45", + "filament_id": "OFf0MkD5", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG-CF @X-Max 4.json index f3aabb1ef5..4acccce76b 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_42", + "filament_id": "OF4iWKrE", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PETG-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PETG-GF @X-Max 4.json index 9b0379ea52..f1501c1e7e 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PETG-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PETG-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PETG-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_43", + "filament_id": "OFdtPd9h", "instantiation": "false", "box_temperature_range_high": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Basic @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Basic @X-Max 4.json index 2dd1d28dd4..1340cd0d03 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Basic @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Basic @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Basic@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_7", + "filament_id": "OF4nQ62r", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Matte Basic @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Matte Basic @X-Max 4.json index dd407427ce..d23f66eede 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Matte Basic @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Matte Basic @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Matte Basic@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_8", + "filament_id": "OFughwKn", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido @X-Max 4.json index 1e6ea5b8e0..b072ca8019 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_1", + "filament_id": "OFKIQO2W", "instantiation": "false", "cool_plate_temp_initial_layer": [ "45" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Matte @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Matte @X-Max 4.json index 95d0666c1d..9963e2418a 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Matte @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Matte @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Matte@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_2", + "filament_id": "OF3IKafc", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Metal @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Metal @X-Max 4.json index 0f848e6d5b..89e966f907 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Metal @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Metal @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Metal@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_3", + "filament_id": "OFANFm4x", "instantiation": "false", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Silk @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Silk @X-Max 4.json index d5f3d83679..64620cdff7 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Silk @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA Rapido Silk @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA Rapido Silk@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_4", + "filament_id": "OFW5FqkL", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PLA-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PLA-CF @X-Max 4.json index 7331ce75ad..f5a72549cf 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PLA-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PLA-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PLA-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_5", + "filament_id": "OFhWrAuP", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PPS-CF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PPS-CF @X-Max 4.json index c5500bb3c0..a560f6933d 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PPS-CF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PPS-CF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-CF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_44", + "filament_id": "OFZOuWrO", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI PPS-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI PPS-GF @X-Max 4.json index 318920501f..de93c9e149 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI PPS-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI PPS-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI PPS-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_46", + "filament_id": "OFp57RRC", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI Support For PAHT @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI Support For PAHT @X-Max 4.json index 2a1eddd8a2..161f9bd4c3 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI Support For PAHT @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI Support For PAHT @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PAHT@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_32", + "filament_id": "OFXn3Vd9", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI Support For PET-PA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI Support For PET-PA @X-Max 4.json index 64fbb1eb22..c437350e37 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI Support For PET-PA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI Support For PET-PA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI Support For PET/PA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_33", + "filament_id": "OFqcL5UF", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI TPU 95A-HF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI TPU 95A-HF @X-Max 4.json index fea6c771ac..9a1cafaf3c 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI TPU 95A-HF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI TPU 95A-HF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI TPU 95A-HF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_50", + "filament_id": "OFR1XLMN", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI TPU-Aero @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI TPU-Aero @X-Max 4.json index 7aeb542fec..a19ddd39ea 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI TPU-Aero @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI TPU-Aero @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-Aero@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_49", + "filament_id": "OFMDHOcT", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI TPU-GF @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI TPU-GF @X-Max 4.json index 25a934fd19..2739b9f1a0 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI TPU-GF @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI TPU-GF @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI TPU-GF@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_15", + "filament_id": "OF9EHUKK", "instantiation": "false", "fan_cooling_layer_time": [ "100" diff --git a/resources/profiles/Qidi/filament/X4/QIDI UltraPA @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI UltraPA @X-Max 4.json index 1194e6c03d..618b506251 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI UltraPA @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI UltraPA @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_24", + "filament_id": "OFWDe7YH", "instantiation": "false", "box_temperature_range_high": [ "55" diff --git a/resources/profiles/Qidi/filament/X4/QIDI UltraPA-CF25 @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI UltraPA-CF25 @X-Max 4.json index 21629d63c9..140dd98bdc 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI UltraPA-CF25 @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI UltraPA-CF25 @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI UltraPA-CF25@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_26", + "filament_id": "OF9PELEb", "instantiation": "false", "box_temperature_range_high": [ "65" diff --git a/resources/profiles/Qidi/filament/X4/QIDI WOOD Rapido @X-Max 4.json b/resources/profiles/Qidi/filament/X4/QIDI WOOD Rapido @X-Max 4.json index d62533d44e..a8824c9917 100644 --- a/resources/profiles/Qidi/filament/X4/QIDI WOOD Rapido @X-Max 4.json +++ b/resources/profiles/Qidi/filament/X4/QIDI WOOD Rapido @X-Max 4.json @@ -3,7 +3,7 @@ "name": "QIDI WOOD Rapido@X-Max 4-Series", "inherits": "fdm_filament_x4_common", "from": "system", - "filament_id": "QD_3_1_6", + "filament_id": "OFvdZ2bx", "instantiation": "false", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json index 4bb0cbe387..accf79987f 100644 --- a/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic ABS @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_11", + "filament_id": "OFY9muEs", "name": "Generic ABS@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json index 360f0ee803..79745adfce 100644 --- a/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic PC @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_23", + "filament_id": "OFLakOUI", "name": "Generic PC@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json index ab1b23bb60..0e65fe68f7 100644 --- a/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic PETG @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_41", + "filament_id": "OFYPdQJh", "name": "Generic PETG@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json index e3939b7796..3b7690cc38 100644 --- a/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic PLA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_1", + "filament_id": "OFDSrzZ8", "name": "Generic PLA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json index 1c0d325a37..afa64cc602 100644 --- a/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic PLA Silk @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_4", + "filament_id": "OFesA6rF", "name": "Generic PLA Silk@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json index d5f56d408b..b98a3a0a2f 100644 --- a/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/Generic TPU 95A @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_0_50", + "filament_id": "OFjiXpyf", "name": "Generic TPU 95A@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json index a2f14984a0..7a80b433df 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Odorless @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_14", + "filament_id": "OFma5TXH", "name": "QIDI ABS Odorless@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json index 0ecb9c656c..0afffa18f4 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_11", + "filament_id": "OFT2jon4", "name": "QIDI ABS Rapido@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json index f3603eda99..9614cab30f 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS Rapido Metal @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_13", + "filament_id": "OFeCJqxx", "name": "QIDI ABS Rapido Metal@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json index 2ab2fbfc84..5336842811 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ABS-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_12", + "filament_id": "OFt3HtlG", "name": "QIDI ABS-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json index 97127fe57b..b8fe444dd2 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_18", + "filament_id": "OFTsHNQi", "name": "QIDI ASA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json index 14423fd58c..73fb83834d 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-Aero @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_19", + "filament_id": "OFu1E4ur", "name": "QIDI ASA-Aero@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json index 9a8958c860..12606c993b 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI ASA-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_20", + "filament_id": "OF1W7c76", "name": "QIDI ASA-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json index 3464bed9a3..6abc420237 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PA12-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_27", + "filament_id": "OFn6WpN7", "name": "QIDI PA12-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json index 9b6a66f61b..1c70ef53a0 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PA6-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_25", + "filament_id": "OFZ3K2cL", "name": "QIDI PA6-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json index fcfccfe0f6..ca5591813d 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_30", + "filament_id": "OFKgmsqE", "name": "QIDI PAHT-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json index 3c0f1056ed..411ae26214 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PAHT-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_31", + "filament_id": "OFo15hcT", "name": "QIDI PAHT-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json index b6c6fb3b64..c7e407cd2e 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PC-ABS-FR @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_34", + "filament_id": "OFDIrhbu", "name": "QIDI PC/ABS-FR@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json index 43410eabe1..bf56f12203 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PEBA 95A @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_36", + "filament_id": "OFhiJE7Y", "name": "QIDI PEBA 95A@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json index 162cbec691..9163c3344e 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_37", + "filament_id": "OFKfJTwL", "name": "QIDI PET-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json index 84310856cc..83e68f579f 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PET-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_38", + "filament_id": "OFhx4uOG", "name": "QIDI PET-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json index 46810f49c3..7254fd50bb 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Basic @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_39", + "filament_id": "OFuJ49uH", "name": "QIDI PETG Basic@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json index fd506d8e74..01a3e6cabe 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Rapido @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_41", + "filament_id": "OF4S3To3", "name": "QIDI PETG Rapido@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json index 3e9f0a1cdf..ed1b218139 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Tough @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_40", + "filament_id": "OFQ40XeN", "name": "QIDI PETG Tough@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json index 62ea937028..94792b7a75 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG Translucent @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_45", + "filament_id": "OFf0MkD5", "name": "QIDI PETG Translucent@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json index fcddc636a8..19f7f473dd 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_42", + "filament_id": "OF4iWKrE", "name": "QIDI PETG-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json index fa65907d3d..3bed003091 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PETG-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_43", + "filament_id": "OFdtPd9h", "name": "QIDI PETG-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json index 0ee194dfb3..30e12990e3 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Basic @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_7", + "filament_id": "OF4nQ62r", "name": "QIDI PLA Basic@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json index 7796bf1faa..2843092024 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Matte Basic @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_8", + "filament_id": "OFughwKn", "name": "QIDI PLA Matte Basic@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json index 1aa1803258..6327908055 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_1", + "filament_id": "OFKIQO2W", "name": "QIDI PLA Rapido@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json index d8cbd06ea1..9e2380faea 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Matte @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_2", + "filament_id": "OF3IKafc", "name": "QIDI PLA Rapido Matte@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json index 404b7cd1e8..bc9f655538 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Rapido Metal @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_3", + "filament_id": "OFANFm4x", "name": "QIDI PLA Rapido Metal@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json index 57c0c3e1dc..2b6574b104 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA Silk @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_4", + "filament_id": "OF2TQpOO", "name": "QIDI PLA Silk@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json index 1c4d8c99e3..390b331556 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PLA-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_5", + "filament_id": "OFhWrAuP", "name": "QIDI PLA-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json index c6be7046f6..b482042819 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-CF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_44", + "filament_id": "OFZOuWrO", "name": "QIDI PPS-CF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json index 757d4dbf3d..615d895851 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI PPS-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_46", + "filament_id": "OFp57RRC", "name": "QIDI PPS-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json index ed1222daa9..63941c851b 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PAHT @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_32", + "filament_id": "OFXn3Vd9", "name": "QIDI Support For PAHT@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json index 346c3cc3eb..969fc2bccc 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI Support For PET-PA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_33", + "filament_id": "OFqcL5UF", "name": "QIDI Support For PET/PA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json index 4721ab171c..7b06c92253 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU 95A-HF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_50", + "filament_id": "OFR1XLMN", "name": "QIDI TPU 95A-HF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json index b6eee90916..4ede2d7d6e 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-Aero @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_49", + "filament_id": "OFMDHOcT", "name": "QIDI TPU-Aero@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json index b3f2f71866..90de30cb02 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI TPU-GF @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_15", + "filament_id": "OF9EHUKK", "name": "QIDI TPU-GF@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json index 9d86c06f95..75a89479e2 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_24", + "filament_id": "OFWDe7YH", "name": "QIDI UltraPA@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json index 73379541b3..2ea27efa4b 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI UltraPA-CF25 @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_26", + "filament_id": "OF9PELEb", "name": "QIDI UltraPA-CF25@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json index 30428c7422..efbe41d51d 100644 --- a/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json +++ b/resources/profiles/Qidi/filament/X5/QIDI WOOD Rapido @X-Plus 5.json @@ -1,6 +1,6 @@ { "type": "filament", - "filament_id": "QD_4_1_6", + "filament_id": "OFvdZ2bx", "name": "QIDI WOOD Rapido@X-Plus 5-Series", "from": "system", "instantiation": "false", diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index 241b4cbb9f..795fa4f768 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -3603,6 +3603,1230 @@ ], "successor": "OFWRITFw" }, + "QD_0_1_1": { + "claims": [ + "Qidi/QIDI PLA Rapido" + ], + "successor": "OFKIQO2W" + }, + "QD_0_1_15": { + "claims": [ + "Qidi/QIDI TPU-GF" + ], + "successor": "OF9EHUKK" + }, + "QD_0_1_2": { + "claims": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "successor": "OF3IKafc" + }, + "QD_0_1_20": { + "claims": [ + "Qidi/QIDI ASA-CF" + ], + "successor": "OF1W7c76" + }, + "QD_0_1_24": { + "claims": [ + "Qidi/QIDI PA-Ultra" + ], + "successor": "OFlN6DL1" + }, + "QD_0_1_26": { + "claims": [ + "Qidi/QIDI UltraPA-CF25" + ], + "successor": "OF9PELEb" + }, + "QD_0_1_27": { + "claims": [ + "Qidi/QIDI PA12-CF" + ], + "successor": "OFn6WpN7" + }, + "QD_0_1_3": { + "claims": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "successor": "OFANFm4x" + }, + "QD_0_1_30": { + "claims": [ + "Qidi/QIDI PAHT-CF" + ], + "successor": "OFKgmsqE" + }, + "QD_0_1_31": { + "claims": [ + "Qidi/QIDI PAHT-GF" + ], + "successor": "OFo15hcT" + }, + "QD_0_1_32": { + "claims": [ + "Qidi/QIDI Support For PAHT" + ], + "successor": "OFXn3Vd9" + }, + "QD_0_1_33": { + "claims": [ + "Qidi/QIDI Support For PET/PA" + ], + "successor": "OFqcL5UF" + }, + "QD_0_1_34": { + "claims": [ + "Qidi/Qidi PC-ABS-FR" + ], + "successor": "OFjD3YTW" + }, + "QD_0_1_36": { + "claims": [ + "Qidi/QIDI PEBA 95A" + ], + "successor": "OFhiJE7Y" + }, + "QD_0_1_37": { + "claims": [ + "Qidi/QIDI PET-CF" + ], + "successor": "OFKfJTwL" + }, + "QD_0_1_38": { + "claims": [ + "Qidi/QIDI PET-GF" + ], + "successor": "OFhx4uOG" + }, + "QD_0_1_39": { + "claims": [ + "Qidi/QIDI PETG Basic" + ], + "successor": "OFuJ49uH" + }, + "QD_0_1_4": { + "claims": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "successor": "OFW5FqkL" + }, + "QD_0_1_40": { + "claims": [ + "Qidi/QIDI PETG Tough" + ], + "successor": "OFQ40XeN" + }, + "QD_0_1_41": { + "claims": [ + "Qidi/QIDI PETG Rapido" + ], + "successor": "OF4S3To3" + }, + "QD_0_1_42": { + "claims": [ + "Qidi/QIDI PETG-CF" + ], + "successor": "OF4iWKrE" + }, + "QD_0_1_43": { + "claims": [ + "Qidi/QIDI PETG-GF" + ], + "successor": "OFdtPd9h" + }, + "QD_0_1_44": { + "claims": [ + "Qidi/QIDI PPS-CF" + ], + "successor": "OFZOuWrO" + }, + "QD_0_1_45": { + "claims": [ + "Qidi/QIDI PETG Translucent" + ], + "successor": "OFf0MkD5" + }, + "QD_0_1_46": { + "claims": [ + "Qidi/QIDI PPS-GF" + ], + "successor": "OFp57RRC" + }, + "QD_0_1_49": { + "claims": [ + "Qidi/QIDI TPU-Aero" + ], + "successor": "OFMDHOcT" + }, + "QD_0_1_5": { + "claims": [ + "Qidi/QIDI PLA-CF" + ], + "successor": "OFhWrAuP" + }, + "QD_0_1_50": { + "claims": [ + "Qidi/Qidi TPU 95A-HF" + ], + "successor": "OFzAWsca" + }, + "QD_0_1_6": { + "claims": [ + "Qidi/QIDI WOOD Rapido" + ], + "successor": "OFvdZ2bx" + }, + "QD_0_1_7": { + "claims": [ + "Qidi/QIDI PLA Basic" + ], + "successor": "OF4nQ62r" + }, + "QD_0_1_8": { + "claims": [ + "Qidi/QIDI PLA Matte Basic" + ], + "successor": "OFughwKn" + }, + "QD_1_0_1": { + "claims": [ + "Qidi/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "QD_1_0_11": { + "claims": [ + "Qidi/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "QD_1_0_23": { + "claims": [ + "Qidi/Generic PC" + ], + "successor": "OFLakOUI" + }, + "QD_1_0_4": { + "claims": [ + "Qidi/Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "QD_1_0_41": { + "claims": [ + "Qidi/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "QD_1_0_50": { + "claims": [ + "Qidi/Generic TPU 95A" + ], + "successor": "OFjiXpyf" + }, + "QD_1_1_1": { + "claims": [ + "Qidi/QIDI PLA Rapido" + ], + "successor": "OFKIQO2W" + }, + "QD_1_1_11": { + "claims": [ + "Qidi/QIDI ABS Rapido" + ], + "successor": "OFT2jon4" + }, + "QD_1_1_12": { + "claims": [ + "Qidi/QIDI ABS-GF" + ], + "successor": "OFt3HtlG" + }, + "QD_1_1_13": { + "claims": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "successor": "OFeCJqxx" + }, + "QD_1_1_14": { + "claims": [ + "Qidi/QIDI ABS Odorless" + ], + "successor": "OFma5TXH" + }, + "QD_1_1_15": { + "claims": [ + "Qidi/QIDI TPU-GF" + ], + "successor": "OF9EHUKK" + }, + "QD_1_1_18": { + "claims": [ + "Qidi/QIDI ASA" + ], + "successor": "OFTsHNQi" + }, + "QD_1_1_19": { + "claims": [ + "Qidi/QIDI ASA-Aero" + ], + "successor": "OFu1E4ur" + }, + "QD_1_1_2": { + "claims": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "successor": "OF3IKafc" + }, + "QD_1_1_20": { + "claims": [ + "Qidi/QIDI ASA-CF" + ], + "successor": "OF1W7c76" + }, + "QD_1_1_24": { + "claims": [ + "Qidi/QIDI UltraPA" + ], + "successor": "OFWDe7YH" + }, + "QD_1_1_26": { + "claims": [ + "Qidi/QIDI UltraPA-CF25" + ], + "successor": "OF9PELEb" + }, + "QD_1_1_27": { + "claims": [ + "Qidi/QIDI PA12-CF" + ], + "successor": "OFn6WpN7" + }, + "QD_1_1_3": { + "claims": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "successor": "OFANFm4x" + }, + "QD_1_1_30": { + "claims": [ + "Qidi/QIDI PAHT-CF" + ], + "successor": "OFKgmsqE" + }, + "QD_1_1_31": { + "claims": [ + "Qidi/QIDI PAHT-GF" + ], + "successor": "OFo15hcT" + }, + "QD_1_1_32": { + "claims": [ + "Qidi/QIDI Support For PAHT" + ], + "successor": "OFXn3Vd9" + }, + "QD_1_1_33": { + "claims": [ + "Qidi/QIDI Support For PET/PA" + ], + "successor": "OFqcL5UF" + }, + "QD_1_1_34": { + "claims": [ + "Qidi/QIDI PC-ABS-FR" + ], + "successor": "OFFAWVf0" + }, + "QD_1_1_36": { + "claims": [ + "Qidi/QIDI PEBA 95A" + ], + "successor": "OFhiJE7Y" + }, + "QD_1_1_37": { + "claims": [ + "Qidi/QIDI PET-CF" + ], + "successor": "OFKfJTwL" + }, + "QD_1_1_38": { + "claims": [ + "Qidi/QIDI PET-GF" + ], + "successor": "OFhx4uOG" + }, + "QD_1_1_39": { + "claims": [ + "Qidi/QIDI PETG Basic" + ], + "successor": "OFuJ49uH" + }, + "QD_1_1_4": { + "claims": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "successor": "OFW5FqkL" + }, + "QD_1_1_40": { + "claims": [ + "Qidi/QIDI PETG Tough" + ], + "successor": "OFQ40XeN" + }, + "QD_1_1_41": { + "claims": [ + "Qidi/QIDI PETG Rapido" + ], + "successor": "OF4S3To3" + }, + "QD_1_1_42": { + "claims": [ + "Qidi/QIDI PETG-CF" + ], + "successor": "OF4iWKrE" + }, + "QD_1_1_43": { + "claims": [ + "Qidi/QIDI PETG-GF" + ], + "successor": "OFdtPd9h" + }, + "QD_1_1_44": { + "claims": [ + "Qidi/QIDI PPS-CF" + ], + "successor": "OFZOuWrO" + }, + "QD_1_1_45": { + "claims": [ + "Qidi/QIDI PETG Translucent" + ], + "successor": "OFf0MkD5" + }, + "QD_1_1_46": { + "claims": [ + "Qidi/QIDI PPS-GF" + ], + "successor": "OFp57RRC" + }, + "QD_1_1_49": { + "claims": [ + "Qidi/QIDI TPU-Aero" + ], + "successor": "OFMDHOcT" + }, + "QD_1_1_5": { + "claims": [ + "Qidi/QIDI PLA-CF" + ], + "successor": "OFhWrAuP" + }, + "QD_1_1_50": { + "claims": [ + "Qidi/QIDI TPU 95A-HF" + ], + "successor": "OFR1XLMN" + }, + "QD_1_1_6": { + "claims": [ + "Qidi/QIDI WOOD Rapido" + ], + "successor": "OFvdZ2bx" + }, + "QD_1_1_7": { + "claims": [ + "Qidi/QIDI PLA Basic" + ], + "successor": "OF4nQ62r" + }, + "QD_1_1_8": { + "claims": [ + "Qidi/QIDI PLA Matte Basic" + ], + "successor": "OFughwKn" + }, + "QD_2_0_1": { + "claims": [ + "Qidi/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "QD_2_0_11": { + "claims": [ + "Qidi/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "QD_2_0_23": { + "claims": [ + "Qidi/Generic PC" + ], + "successor": "OFLakOUI" + }, + "QD_2_0_4": { + "claims": [ + "Qidi/Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "QD_2_0_41": { + "claims": [ + "Qidi/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "QD_2_0_50": { + "claims": [ + "Qidi/Generic TPU 95A" + ], + "successor": "OFjiXpyf" + }, + "QD_2_1_1": { + "claims": [ + "Qidi/QIDI PLA Rapido" + ], + "successor": "OFKIQO2W" + }, + "QD_2_1_11": { + "claims": [ + "Qidi/QIDI ABS Rapido" + ], + "successor": "OFT2jon4" + }, + "QD_2_1_12": { + "claims": [ + "Qidi/QIDI ABS-GF" + ], + "successor": "OFt3HtlG" + }, + "QD_2_1_13": { + "claims": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "successor": "OFeCJqxx" + }, + "QD_2_1_14": { + "claims": [ + "Qidi/QIDI ABS Odorless" + ], + "successor": "OFma5TXH" + }, + "QD_2_1_15": { + "claims": [ + "Qidi/QIDI TPU-GF" + ], + "successor": "OF9EHUKK" + }, + "QD_2_1_18": { + "claims": [ + "Qidi/QIDI ASA" + ], + "successor": "OFTsHNQi" + }, + "QD_2_1_19": { + "claims": [ + "Qidi/QIDI ASA-Aero" + ], + "successor": "OFu1E4ur" + }, + "QD_2_1_2": { + "claims": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "successor": "OF3IKafc" + }, + "QD_2_1_20": { + "claims": [ + "Qidi/QIDI ASA-CF" + ], + "successor": "OF1W7c76" + }, + "QD_2_1_24": { + "claims": [ + "Qidi/QIDI UltraPA" + ], + "successor": "OFWDe7YH" + }, + "QD_2_1_26": { + "claims": [ + "Qidi/QIDI UltraPA-CF25" + ], + "successor": "OF9PELEb" + }, + "QD_2_1_27": { + "claims": [ + "Qidi/QIDI PA12-CF" + ], + "successor": "OFn6WpN7" + }, + "QD_2_1_3": { + "claims": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "successor": "OFANFm4x" + }, + "QD_2_1_30": { + "claims": [ + "Qidi/QIDI PAHT-CF" + ], + "successor": "OFKgmsqE" + }, + "QD_2_1_31": { + "claims": [ + "Qidi/QIDI PAHT-GF" + ], + "successor": "OFo15hcT" + }, + "QD_2_1_32": { + "claims": [ + "Qidi/QIDI Support For PAHT" + ], + "successor": "OFXn3Vd9" + }, + "QD_2_1_33": { + "claims": [ + "Qidi/QIDI Support For PET/PA" + ], + "successor": "OFqcL5UF" + }, + "QD_2_1_34": { + "claims": [ + "Qidi/QIDI PC-ABS-FR" + ], + "successor": "OFFAWVf0" + }, + "QD_2_1_36": { + "claims": [ + "Qidi/QIDI PEBA 95A" + ], + "successor": "OFhiJE7Y" + }, + "QD_2_1_37": { + "claims": [ + "Qidi/QIDI PET-CF" + ], + "successor": "OFKfJTwL" + }, + "QD_2_1_38": { + "claims": [ + "Qidi/QIDI PET-GF" + ], + "successor": "OFhx4uOG" + }, + "QD_2_1_39": { + "claims": [ + "Qidi/QIDI PETG Basic" + ], + "successor": "OFuJ49uH" + }, + "QD_2_1_4": { + "claims": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "successor": "OFW5FqkL" + }, + "QD_2_1_40": { + "claims": [ + "Qidi/QIDI PETG Tough" + ], + "successor": "OFQ40XeN" + }, + "QD_2_1_41": { + "claims": [ + "Qidi/QIDI PETG Rapido" + ], + "successor": "OF4S3To3" + }, + "QD_2_1_42": { + "claims": [ + "Qidi/QIDI PETG-CF" + ], + "successor": "OF4iWKrE" + }, + "QD_2_1_43": { + "claims": [ + "Qidi/QIDI PETG-GF" + ], + "successor": "OFdtPd9h" + }, + "QD_2_1_44": { + "claims": [ + "Qidi/QIDI PPS-CF" + ], + "successor": "OFZOuWrO" + }, + "QD_2_1_45": { + "claims": [ + "Qidi/QIDI PETG Translucent" + ], + "successor": "OFf0MkD5" + }, + "QD_2_1_46": { + "claims": [ + "Qidi/QIDI PPS-GF" + ], + "successor": "OFp57RRC" + }, + "QD_2_1_49": { + "claims": [ + "Qidi/QIDI TPU-Aero" + ], + "successor": "OFMDHOcT" + }, + "QD_2_1_5": { + "claims": [ + "Qidi/QIDI PLA-CF" + ], + "successor": "OFhWrAuP" + }, + "QD_2_1_50": { + "claims": [ + "Qidi/QIDI TPU 95A-HF" + ], + "successor": "OFR1XLMN" + }, + "QD_2_1_6": { + "claims": [ + "Qidi/QIDI WOOD Rapido" + ], + "successor": "OFvdZ2bx" + }, + "QD_2_1_7": { + "claims": [ + "Qidi/QIDI PLA Basic" + ], + "successor": "OF4nQ62r" + }, + "QD_2_1_8": { + "claims": [ + "Qidi/QIDI PLA Matte Basic" + ], + "successor": "OFughwKn" + }, + "QD_3_0_1": { + "claims": [ + "Qidi/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "QD_3_0_11": { + "claims": [ + "Qidi/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "QD_3_0_23": { + "claims": [ + "Qidi/Generic PC" + ], + "successor": "OFLakOUI" + }, + "QD_3_0_4": { + "claims": [ + "Qidi/Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "QD_3_0_41": { + "claims": [ + "Qidi/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "QD_3_0_50": { + "claims": [ + "Qidi/Generic TPU 95A" + ], + "successor": "OFjiXpyf" + }, + "QD_3_1_1": { + "claims": [ + "Qidi/QIDI PLA Rapido" + ], + "successor": "OFKIQO2W" + }, + "QD_3_1_11": { + "claims": [ + "Qidi/QIDI ABS Rapido" + ], + "successor": "OFT2jon4" + }, + "QD_3_1_12": { + "claims": [ + "Qidi/QIDI ABS-GF" + ], + "successor": "OFt3HtlG" + }, + "QD_3_1_13": { + "claims": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "successor": "OFeCJqxx" + }, + "QD_3_1_14": { + "claims": [ + "Qidi/QIDI ABS Odorless" + ], + "successor": "OFma5TXH" + }, + "QD_3_1_15": { + "claims": [ + "Qidi/QIDI TPU-GF" + ], + "successor": "OF9EHUKK" + }, + "QD_3_1_18": { + "claims": [ + "Qidi/QIDI ASA" + ], + "successor": "OFTsHNQi" + }, + "QD_3_1_19": { + "claims": [ + "Qidi/QIDI ASA-Aero" + ], + "successor": "OFu1E4ur" + }, + "QD_3_1_2": { + "claims": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "successor": "OF3IKafc" + }, + "QD_3_1_20": { + "claims": [ + "Qidi/QIDI ASA-CF" + ], + "successor": "OF1W7c76" + }, + "QD_3_1_24": { + "claims": [ + "Qidi/QIDI UltraPA" + ], + "successor": "OFWDe7YH" + }, + "QD_3_1_26": { + "claims": [ + "Qidi/QIDI UltraPA-CF25" + ], + "successor": "OF9PELEb" + }, + "QD_3_1_27": { + "claims": [ + "Qidi/QIDI PA12-CF" + ], + "successor": "OFn6WpN7" + }, + "QD_3_1_3": { + "claims": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "successor": "OFANFm4x" + }, + "QD_3_1_30": { + "claims": [ + "Qidi/QIDI PAHT-CF" + ], + "successor": "OFKgmsqE" + }, + "QD_3_1_31": { + "claims": [ + "Qidi/QIDI PAHT-GF" + ], + "successor": "OFo15hcT" + }, + "QD_3_1_32": { + "claims": [ + "Qidi/QIDI Support For PAHT" + ], + "successor": "OFXn3Vd9" + }, + "QD_3_1_33": { + "claims": [ + "Qidi/QIDI Support For PET/PA" + ], + "successor": "OFqcL5UF" + }, + "QD_3_1_34": { + "claims": [ + "Qidi/QIDI PC/ABS-FR" + ], + "successor": "OFDIrhbu" + }, + "QD_3_1_36": { + "claims": [ + "Qidi/QIDI PEBA 95A" + ], + "successor": "OFhiJE7Y" + }, + "QD_3_1_37": { + "claims": [ + "Qidi/QIDI PET-CF" + ], + "successor": "OFKfJTwL" + }, + "QD_3_1_38": { + "claims": [ + "Qidi/QIDI PET-GF" + ], + "successor": "OFhx4uOG" + }, + "QD_3_1_39": { + "claims": [ + "Qidi/QIDI PETG Basic" + ], + "successor": "OFuJ49uH" + }, + "QD_3_1_4": { + "claims": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "successor": "OFW5FqkL" + }, + "QD_3_1_40": { + "claims": [ + "Qidi/QIDI PETG Tough" + ], + "successor": "OFQ40XeN" + }, + "QD_3_1_41": { + "claims": [ + "Qidi/QIDI PETG Rapido" + ], + "successor": "OF4S3To3" + }, + "QD_3_1_42": { + "claims": [ + "Qidi/QIDI PETG-CF" + ], + "successor": "OF4iWKrE" + }, + "QD_3_1_43": { + "claims": [ + "Qidi/QIDI PETG-GF" + ], + "successor": "OFdtPd9h" + }, + "QD_3_1_44": { + "claims": [ + "Qidi/QIDI PPS-CF" + ], + "successor": "OFZOuWrO" + }, + "QD_3_1_45": { + "claims": [ + "Qidi/QIDI PETG Translucent" + ], + "successor": "OFf0MkD5" + }, + "QD_3_1_46": { + "claims": [ + "Qidi/QIDI PPS-GF" + ], + "successor": "OFp57RRC" + }, + "QD_3_1_49": { + "claims": [ + "Qidi/QIDI TPU-Aero" + ], + "successor": "OFMDHOcT" + }, + "QD_3_1_5": { + "claims": [ + "Qidi/QIDI PLA-CF" + ], + "successor": "OFhWrAuP" + }, + "QD_3_1_50": { + "claims": [ + "Qidi/QIDI TPU 95A-HF" + ], + "successor": "OFR1XLMN" + }, + "QD_3_1_6": { + "claims": [ + "Qidi/QIDI WOOD Rapido" + ], + "successor": "OFvdZ2bx" + }, + "QD_3_1_7": { + "claims": [ + "Qidi/QIDI PLA Basic" + ], + "successor": "OF4nQ62r" + }, + "QD_3_1_8": { + "claims": [ + "Qidi/QIDI PLA Matte Basic" + ], + "successor": "OFughwKn" + }, + "QD_4_0_1": { + "claims": [ + "Qidi/Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "QD_4_0_11": { + "claims": [ + "Qidi/Generic ABS" + ], + "successor": "OFY9muEs" + }, + "QD_4_0_23": { + "claims": [ + "Qidi/Generic PC" + ], + "successor": "OFLakOUI" + }, + "QD_4_0_4": { + "claims": [ + "Qidi/Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "QD_4_0_41": { + "claims": [ + "Qidi/Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "QD_4_0_50": { + "claims": [ + "Qidi/Generic TPU 95A" + ], + "successor": "OFjiXpyf" + }, + "QD_4_1_1": { + "claims": [ + "Qidi/QIDI PLA Rapido" + ], + "successor": "OFKIQO2W" + }, + "QD_4_1_11": { + "claims": [ + "Qidi/QIDI ABS Rapido" + ], + "successor": "OFT2jon4" + }, + "QD_4_1_12": { + "claims": [ + "Qidi/QIDI ABS-GF" + ], + "successor": "OFt3HtlG" + }, + "QD_4_1_13": { + "claims": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "successor": "OFeCJqxx" + }, + "QD_4_1_14": { + "claims": [ + "Qidi/QIDI ABS Odorless" + ], + "successor": "OFma5TXH" + }, + "QD_4_1_15": { + "claims": [ + "Qidi/QIDI TPU-GF" + ], + "successor": "OF9EHUKK" + }, + "QD_4_1_18": { + "claims": [ + "Qidi/QIDI ASA" + ], + "successor": "OFTsHNQi" + }, + "QD_4_1_19": { + "claims": [ + "Qidi/QIDI ASA-Aero" + ], + "successor": "OFu1E4ur" + }, + "QD_4_1_2": { + "claims": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "successor": "OF3IKafc" + }, + "QD_4_1_20": { + "claims": [ + "Qidi/QIDI ASA-CF" + ], + "successor": "OF1W7c76" + }, + "QD_4_1_24": { + "claims": [ + "Qidi/QIDI UltraPA" + ], + "successor": "OFWDe7YH" + }, + "QD_4_1_25": { + "claims": [ + "Qidi/QIDI PA6-CF" + ], + "successor": "OFZ3K2cL" + }, + "QD_4_1_26": { + "claims": [ + "Qidi/QIDI UltraPA-CF25" + ], + "successor": "OF9PELEb" + }, + "QD_4_1_27": { + "claims": [ + "Qidi/QIDI PA12-CF" + ], + "successor": "OFn6WpN7" + }, + "QD_4_1_3": { + "claims": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "successor": "OFANFm4x" + }, + "QD_4_1_30": { + "claims": [ + "Qidi/QIDI PAHT-CF" + ], + "successor": "OFKgmsqE" + }, + "QD_4_1_31": { + "claims": [ + "Qidi/QIDI PAHT-GF" + ], + "successor": "OFo15hcT" + }, + "QD_4_1_32": { + "claims": [ + "Qidi/QIDI Support For PAHT" + ], + "successor": "OFXn3Vd9" + }, + "QD_4_1_33": { + "claims": [ + "Qidi/QIDI Support For PET/PA" + ], + "successor": "OFqcL5UF" + }, + "QD_4_1_34": { + "claims": [ + "Qidi/QIDI PC/ABS-FR" + ], + "successor": "OFDIrhbu" + }, + "QD_4_1_36": { + "claims": [ + "Qidi/QIDI PEBA 95A" + ], + "successor": "OFhiJE7Y" + }, + "QD_4_1_37": { + "claims": [ + "Qidi/QIDI PET-CF" + ], + "successor": "OFKfJTwL" + }, + "QD_4_1_38": { + "claims": [ + "Qidi/QIDI PET-GF" + ], + "successor": "OFhx4uOG" + }, + "QD_4_1_39": { + "claims": [ + "Qidi/QIDI PETG Basic" + ], + "successor": "OFuJ49uH" + }, + "QD_4_1_4": { + "claims": [ + "Qidi/QIDI PLA Silk" + ], + "successor": "OF2TQpOO" + }, + "QD_4_1_40": { + "claims": [ + "Qidi/QIDI PETG Tough" + ], + "successor": "OFQ40XeN" + }, + "QD_4_1_41": { + "claims": [ + "Qidi/QIDI PETG Rapido" + ], + "successor": "OF4S3To3" + }, + "QD_4_1_42": { + "claims": [ + "Qidi/QIDI PETG-CF" + ], + "successor": "OF4iWKrE" + }, + "QD_4_1_43": { + "claims": [ + "Qidi/QIDI PETG-GF" + ], + "successor": "OFdtPd9h" + }, + "QD_4_1_44": { + "claims": [ + "Qidi/QIDI PPS-CF" + ], + "successor": "OFZOuWrO" + }, + "QD_4_1_45": { + "claims": [ + "Qidi/QIDI PETG Translucent" + ], + "successor": "OFf0MkD5" + }, + "QD_4_1_46": { + "claims": [ + "Qidi/QIDI PPS-GF" + ], + "successor": "OFp57RRC" + }, + "QD_4_1_49": { + "claims": [ + "Qidi/QIDI TPU-Aero" + ], + "successor": "OFMDHOcT" + }, + "QD_4_1_5": { + "claims": [ + "Qidi/QIDI PLA-CF" + ], + "successor": "OFhWrAuP" + }, + "QD_4_1_50": { + "claims": [ + "Qidi/QIDI TPU 95A-HF" + ], + "successor": "OFR1XLMN" + }, + "QD_4_1_6": { + "claims": [ + "Qidi/QIDI WOOD Rapido" + ], + "successor": "OFvdZ2bx" + }, + "QD_4_1_7": { + "claims": [ + "Qidi/QIDI PLA Basic" + ], + "successor": "OF4nQ62r" + }, + "QD_4_1_8": { + "claims": [ + "Qidi/QIDI PLA Matte Basic" + ], + "successor": "OFughwKn" + }, "SMCFB001": { "claims": [ "SeeMeCNC/SeeMeCNC ABS" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 14d207b34f..5183acc069 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -889,87 +889,11 @@ "Qidi/QIDI ABS Rapido 0.2 nozzle", "Qidi/QIDI ABS Rapido 0.6 nozzle", "Qidi/QIDI ABS Rapido 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PETG Tough 0.2 nozzle", "Qidi/QIDI PETG Tough 0.6 nozzle", "Qidi/QIDI PETG Tough 0.8 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI PLA Rapido 0.2 nozzle", "Qidi/QIDI PLA Rapido 0.8 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @0.6 nozzle", "Qidi/QIDI PLA-CF @0.8 nozzle", "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", @@ -978,38 +902,10 @@ "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", "Snapmaker/PolyLite Dual PLA @0.2 nozzle", "Snapmaker/PolyLite J1 PLA", "Snapmaker/PolyLite J1 PLA @0.2 nozzle", @@ -1822,6 +1718,9 @@ "OF2RjrWH": [ "Flashforge/FusRock Generic PAHT-GF" ], + "OF2TQpOO": [ + "Qidi/QIDI PLA Silk" + ], "OF2VFe4J": [ "OrcaFilamentLibrary/Bambu PAHT-CF" ], @@ -2391,6 +2290,9 @@ "OFDGigEI": [ "OrcaFilamentLibrary/Bambu PLA Dynamic" ], + "OFDIrhbu": [ + "Qidi/QIDI PC/ABS-FR" + ], "OFDJU6R3": [ "Afinia/Afinia TPU" ], @@ -2411,6 +2313,7 @@ "Flashforge/Generic PLA", "LONGER/Generic PLA", "OrcaFilamentLibrary/Generic PLA", + "Qidi/Generic PLA", "RH3D/Generic PLA", "Sovol/Generic PLA", "Z-Bolt/Generic PLA" @@ -2520,6 +2423,9 @@ "OFF9cgY5": [ "Snapmaker/Snapmaker PLA Matte" ], + "OFFAWVf0": [ + "Qidi/QIDI PC-ABS-FR" + ], "OFFC0VqZ": [ "Ratrig/RatRig BigNozzle PCTG" ], @@ -2895,6 +2801,7 @@ "Custom/Generic PC", "Elegoo/Generic PC", "OrcaFilamentLibrary/Generic PC", + "Qidi/Generic PC", "Sovol/Generic PC" ], "OFLbXwoL": [ @@ -3246,6 +3153,9 @@ "OFR0gODA": [ "SeeMeCNC/SeeMeCNC ABS" ], + "OFR1XLMN": [ + "Qidi/QIDI TPU 95A-HF" + ], "OFRDLNM9": [ "Peopoly/Peopoly Generic PLA" ], @@ -3495,6 +3405,9 @@ "OFW9uIkE": [ "Tiertime/Tiertime Generic HIPS" ], + "OFWDe7YH": [ + "Qidi/QIDI UltraPA" + ], "OFWIr7ZE": [ "CoLiDo/CoLiDo Generic ABS" ], @@ -3629,6 +3542,7 @@ "Elegoo/Generic ABS", "Flashforge/Generic ABS", "OrcaFilamentLibrary/Generic ABS", + "Qidi/Generic ABS", "RH3D/Generic ABS", "Sovol/Generic ABS", "Z-Bolt/Generic ABS" @@ -3654,6 +3568,7 @@ "Flashforge/Generic PETG", "LONGER/Generic PETG", "OrcaFilamentLibrary/Generic PETG", + "Qidi/Generic PETG", "RH3D/Generic PETG", "Sovol/Generic PETG", "Z-Bolt/Generic PETG" @@ -3690,6 +3605,9 @@ "OFZ2LuAi": [ "Wanhao France/YUMI PLA Bowden" ], + "OFZ3K2cL": [ + "Qidi/QIDI PA6-CF" + ], "OFZ4QbfK": [ "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" ], @@ -3963,6 +3881,7 @@ "OFesA6rF": [ "Flashforge/Generic PLA Silk", "OrcaFilamentLibrary/Generic PLA Silk", + "Qidi/Generic PLA Silk", "Sovol/Generic PLA Silk" ], "OFetENFF": [ @@ -4299,6 +4218,9 @@ "OFjcwUEm": [ "Cubicon/Cubicon PLA" ], + "OFjiXpyf": [ + "Qidi/Generic TPU 95A" + ], "OFjkdnyN": [ "Snapmaker/Snapmaker Dual TPU" ], @@ -4889,6 +4811,9 @@ "OFu0fjPJ": [ "LH/LHS PC CF" ], + "OFu1E4ur": [ + "Qidi/QIDI ASA-Aero" + ], "OFu1evlr": [ "Creality/Generic PCTG", "OrcaFilamentLibrary/Generic PCTG" @@ -5192,618 +5117,6 @@ ], "OFzzmK2Q": [ "FLSun/FLSun S1 ABS" - ], - "QD_0_1_1": [ - "Qidi/QIDI PLA Rapido" - ], - "QD_0_1_15": [ - "Qidi/QIDI TPU-GF" - ], - "QD_0_1_2": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "QD_0_1_20": [ - "Qidi/QIDI ASA-CF" - ], - "QD_0_1_24": [ - "Qidi/QIDI PA-Ultra" - ], - "QD_0_1_26": [ - "Qidi/QIDI UltraPA-CF25" - ], - "QD_0_1_27": [ - "Qidi/QIDI PA12-CF" - ], - "QD_0_1_3": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "QD_0_1_30": [ - "Qidi/QIDI PAHT-CF" - ], - "QD_0_1_31": [ - "Qidi/QIDI PAHT-GF" - ], - "QD_0_1_32": [ - "Qidi/QIDI Support For PAHT" - ], - "QD_0_1_33": [ - "Qidi/QIDI Support For PET/PA" - ], - "QD_0_1_34": [ - "Qidi/Qidi PC-ABS-FR" - ], - "QD_0_1_36": [ - "Qidi/QIDI PEBA 95A" - ], - "QD_0_1_37": [ - "Qidi/QIDI PET-CF" - ], - "QD_0_1_38": [ - "Qidi/QIDI PET-GF" - ], - "QD_0_1_39": [ - "Qidi/QIDI PETG Basic" - ], - "QD_0_1_4": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "QD_0_1_40": [ - "Qidi/QIDI PETG Tough" - ], - "QD_0_1_41": [ - "Qidi/QIDI PETG Rapido" - ], - "QD_0_1_42": [ - "Qidi/QIDI PETG-CF" - ], - "QD_0_1_43": [ - "Qidi/QIDI PETG-GF" - ], - "QD_0_1_44": [ - "Qidi/QIDI PPS-CF" - ], - "QD_0_1_45": [ - "Qidi/QIDI PETG Translucent" - ], - "QD_0_1_46": [ - "Qidi/QIDI PPS-GF" - ], - "QD_0_1_49": [ - "Qidi/QIDI TPU-Aero" - ], - "QD_0_1_5": [ - "Qidi/QIDI PLA-CF" - ], - "QD_0_1_50": [ - "Qidi/Qidi TPU 95A-HF" - ], - "QD_0_1_6": [ - "Qidi/QIDI WOOD Rapido" - ], - "QD_0_1_7": [ - "Qidi/QIDI PLA Basic" - ], - "QD_0_1_8": [ - "Qidi/QIDI PLA Matte Basic" - ], - "QD_1_0_1": [ - "Qidi/Generic PLA" - ], - "QD_1_0_11": [ - "Qidi/Generic ABS" - ], - "QD_1_0_23": [ - "Qidi/Generic PC" - ], - "QD_1_0_4": [ - "Qidi/Generic PLA Silk" - ], - "QD_1_0_41": [ - "Qidi/Generic PETG" - ], - "QD_1_0_50": [ - "Qidi/Generic TPU 95A" - ], - "QD_1_1_1": [ - "Qidi/QIDI PLA Rapido" - ], - "QD_1_1_11": [ - "Qidi/QIDI ABS Rapido" - ], - "QD_1_1_12": [ - "Qidi/QIDI ABS-GF" - ], - "QD_1_1_13": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "QD_1_1_14": [ - "Qidi/QIDI ABS Odorless" - ], - "QD_1_1_15": [ - "Qidi/QIDI TPU-GF" - ], - "QD_1_1_18": [ - "Qidi/QIDI ASA" - ], - "QD_1_1_19": [ - "Qidi/QIDI ASA-Aero" - ], - "QD_1_1_2": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "QD_1_1_20": [ - "Qidi/QIDI ASA-CF" - ], - "QD_1_1_24": [ - "Qidi/QIDI UltraPA" - ], - "QD_1_1_26": [ - "Qidi/QIDI UltraPA-CF25" - ], - "QD_1_1_27": [ - "Qidi/QIDI PA12-CF" - ], - "QD_1_1_3": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "QD_1_1_30": [ - "Qidi/QIDI PAHT-CF" - ], - "QD_1_1_31": [ - "Qidi/QIDI PAHT-GF" - ], - "QD_1_1_32": [ - "Qidi/QIDI Support For PAHT" - ], - "QD_1_1_33": [ - "Qidi/QIDI Support For PET/PA" - ], - "QD_1_1_34": [ - "Qidi/QIDI PC-ABS-FR" - ], - "QD_1_1_36": [ - "Qidi/QIDI PEBA 95A" - ], - "QD_1_1_37": [ - "Qidi/QIDI PET-CF" - ], - "QD_1_1_38": [ - "Qidi/QIDI PET-GF" - ], - "QD_1_1_39": [ - "Qidi/QIDI PETG Basic" - ], - "QD_1_1_4": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "QD_1_1_40": [ - "Qidi/QIDI PETG Tough" - ], - "QD_1_1_41": [ - "Qidi/QIDI PETG Rapido" - ], - "QD_1_1_42": [ - "Qidi/QIDI PETG-CF" - ], - "QD_1_1_43": [ - "Qidi/QIDI PETG-GF" - ], - "QD_1_1_44": [ - "Qidi/QIDI PPS-CF" - ], - "QD_1_1_45": [ - "Qidi/QIDI PETG Translucent" - ], - "QD_1_1_46": [ - "Qidi/QIDI PPS-GF" - ], - "QD_1_1_49": [ - "Qidi/QIDI TPU-Aero" - ], - "QD_1_1_5": [ - "Qidi/QIDI PLA-CF" - ], - "QD_1_1_50": [ - "Qidi/QIDI TPU 95A-HF" - ], - "QD_1_1_6": [ - "Qidi/QIDI WOOD Rapido" - ], - "QD_1_1_7": [ - "Qidi/QIDI PLA Basic" - ], - "QD_1_1_8": [ - "Qidi/QIDI PLA Matte Basic" - ], - "QD_2_0_1": [ - "Qidi/Generic PLA" - ], - "QD_2_0_11": [ - "Qidi/Generic ABS" - ], - "QD_2_0_23": [ - "Qidi/Generic PC" - ], - "QD_2_0_4": [ - "Qidi/Generic PLA Silk" - ], - "QD_2_0_41": [ - "Qidi/Generic PETG" - ], - "QD_2_0_50": [ - "Qidi/Generic TPU 95A" - ], - "QD_2_1_1": [ - "Qidi/QIDI PLA Rapido" - ], - "QD_2_1_11": [ - "Qidi/QIDI ABS Rapido" - ], - "QD_2_1_12": [ - "Qidi/QIDI ABS-GF" - ], - "QD_2_1_13": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "QD_2_1_14": [ - "Qidi/QIDI ABS Odorless" - ], - "QD_2_1_15": [ - "Qidi/QIDI TPU-GF" - ], - "QD_2_1_18": [ - "Qidi/QIDI ASA" - ], - "QD_2_1_19": [ - "Qidi/QIDI ASA-Aero" - ], - "QD_2_1_2": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "QD_2_1_20": [ - "Qidi/QIDI ASA-CF" - ], - "QD_2_1_24": [ - "Qidi/QIDI UltraPA" - ], - "QD_2_1_26": [ - "Qidi/QIDI UltraPA-CF25" - ], - "QD_2_1_27": [ - "Qidi/QIDI PA12-CF" - ], - "QD_2_1_3": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "QD_2_1_30": [ - "Qidi/QIDI PAHT-CF" - ], - "QD_2_1_31": [ - "Qidi/QIDI PAHT-GF" - ], - "QD_2_1_32": [ - "Qidi/QIDI Support For PAHT" - ], - "QD_2_1_33": [ - "Qidi/QIDI Support For PET/PA" - ], - "QD_2_1_34": [ - "Qidi/QIDI PC-ABS-FR" - ], - "QD_2_1_36": [ - "Qidi/QIDI PEBA 95A" - ], - "QD_2_1_37": [ - "Qidi/QIDI PET-CF" - ], - "QD_2_1_38": [ - "Qidi/QIDI PET-GF" - ], - "QD_2_1_39": [ - "Qidi/QIDI PETG Basic" - ], - "QD_2_1_4": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "QD_2_1_40": [ - "Qidi/QIDI PETG Tough" - ], - "QD_2_1_41": [ - "Qidi/QIDI PETG Rapido" - ], - "QD_2_1_42": [ - "Qidi/QIDI PETG-CF" - ], - "QD_2_1_43": [ - "Qidi/QIDI PETG-GF" - ], - "QD_2_1_44": [ - "Qidi/QIDI PPS-CF" - ], - "QD_2_1_45": [ - "Qidi/QIDI PETG Translucent" - ], - "QD_2_1_46": [ - "Qidi/QIDI PPS-GF" - ], - "QD_2_1_49": [ - "Qidi/QIDI TPU-Aero" - ], - "QD_2_1_5": [ - "Qidi/QIDI PLA-CF" - ], - "QD_2_1_50": [ - "Qidi/QIDI TPU 95A-HF" - ], - "QD_2_1_6": [ - "Qidi/QIDI WOOD Rapido" - ], - "QD_2_1_7": [ - "Qidi/QIDI PLA Basic" - ], - "QD_2_1_8": [ - "Qidi/QIDI PLA Matte Basic" - ], - "QD_3_0_1": [ - "Qidi/Generic PLA" - ], - "QD_3_0_11": [ - "Qidi/Generic ABS" - ], - "QD_3_0_23": [ - "Qidi/Generic PC" - ], - "QD_3_0_4": [ - "Qidi/Generic PLA Silk" - ], - "QD_3_0_41": [ - "Qidi/Generic PETG" - ], - "QD_3_0_50": [ - "Qidi/Generic TPU 95A" - ], - "QD_3_1_1": [ - "Qidi/QIDI PLA Rapido" - ], - "QD_3_1_11": [ - "Qidi/QIDI ABS Rapido" - ], - "QD_3_1_12": [ - "Qidi/QIDI ABS-GF" - ], - "QD_3_1_13": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "QD_3_1_14": [ - "Qidi/QIDI ABS Odorless" - ], - "QD_3_1_15": [ - "Qidi/QIDI TPU-GF" - ], - "QD_3_1_18": [ - "Qidi/QIDI ASA" - ], - "QD_3_1_19": [ - "Qidi/QIDI ASA-Aero" - ], - "QD_3_1_2": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "QD_3_1_20": [ - "Qidi/QIDI ASA-CF" - ], - "QD_3_1_24": [ - "Qidi/QIDI UltraPA" - ], - "QD_3_1_26": [ - "Qidi/QIDI UltraPA-CF25" - ], - "QD_3_1_27": [ - "Qidi/QIDI PA12-CF" - ], - "QD_3_1_3": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "QD_3_1_30": [ - "Qidi/QIDI PAHT-CF" - ], - "QD_3_1_31": [ - "Qidi/QIDI PAHT-GF" - ], - "QD_3_1_32": [ - "Qidi/QIDI Support For PAHT" - ], - "QD_3_1_33": [ - "Qidi/QIDI Support For PET/PA" - ], - "QD_3_1_34": [ - "Qidi/QIDI PC/ABS-FR" - ], - "QD_3_1_36": [ - "Qidi/QIDI PEBA 95A" - ], - "QD_3_1_37": [ - "Qidi/QIDI PET-CF" - ], - "QD_3_1_38": [ - "Qidi/QIDI PET-GF" - ], - "QD_3_1_39": [ - "Qidi/QIDI PETG Basic" - ], - "QD_3_1_4": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "QD_3_1_40": [ - "Qidi/QIDI PETG Tough" - ], - "QD_3_1_41": [ - "Qidi/QIDI PETG Rapido" - ], - "QD_3_1_42": [ - "Qidi/QIDI PETG-CF" - ], - "QD_3_1_43": [ - "Qidi/QIDI PETG-GF" - ], - "QD_3_1_44": [ - "Qidi/QIDI PPS-CF" - ], - "QD_3_1_45": [ - "Qidi/QIDI PETG Translucent" - ], - "QD_3_1_46": [ - "Qidi/QIDI PPS-GF" - ], - "QD_3_1_49": [ - "Qidi/QIDI TPU-Aero" - ], - "QD_3_1_5": [ - "Qidi/QIDI PLA-CF" - ], - "QD_3_1_50": [ - "Qidi/QIDI TPU 95A-HF" - ], - "QD_3_1_6": [ - "Qidi/QIDI WOOD Rapido" - ], - "QD_3_1_7": [ - "Qidi/QIDI PLA Basic" - ], - "QD_3_1_8": [ - "Qidi/QIDI PLA Matte Basic" - ], - "QD_4_0_1": [ - "Qidi/Generic PLA" - ], - "QD_4_0_11": [ - "Qidi/Generic ABS" - ], - "QD_4_0_23": [ - "Qidi/Generic PC" - ], - "QD_4_0_4": [ - "Qidi/Generic PLA Silk" - ], - "QD_4_0_41": [ - "Qidi/Generic PETG" - ], - "QD_4_0_50": [ - "Qidi/Generic TPU 95A" - ], - "QD_4_1_1": [ - "Qidi/QIDI PLA Rapido" - ], - "QD_4_1_11": [ - "Qidi/QIDI ABS Rapido" - ], - "QD_4_1_12": [ - "Qidi/QIDI ABS-GF" - ], - "QD_4_1_13": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "QD_4_1_14": [ - "Qidi/QIDI ABS Odorless" - ], - "QD_4_1_15": [ - "Qidi/QIDI TPU-GF" - ], - "QD_4_1_18": [ - "Qidi/QIDI ASA" - ], - "QD_4_1_19": [ - "Qidi/QIDI ASA-Aero" - ], - "QD_4_1_2": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "QD_4_1_20": [ - "Qidi/QIDI ASA-CF" - ], - "QD_4_1_24": [ - "Qidi/QIDI UltraPA" - ], - "QD_4_1_25": [ - "Qidi/QIDI PA6-CF" - ], - "QD_4_1_26": [ - "Qidi/QIDI UltraPA-CF25" - ], - "QD_4_1_27": [ - "Qidi/QIDI PA12-CF" - ], - "QD_4_1_3": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "QD_4_1_30": [ - "Qidi/QIDI PAHT-CF" - ], - "QD_4_1_31": [ - "Qidi/QIDI PAHT-GF" - ], - "QD_4_1_32": [ - "Qidi/QIDI Support For PAHT" - ], - "QD_4_1_33": [ - "Qidi/QIDI Support For PET/PA" - ], - "QD_4_1_34": [ - "Qidi/QIDI PC/ABS-FR" - ], - "QD_4_1_36": [ - "Qidi/QIDI PEBA 95A" - ], - "QD_4_1_37": [ - "Qidi/QIDI PET-CF" - ], - "QD_4_1_38": [ - "Qidi/QIDI PET-GF" - ], - "QD_4_1_39": [ - "Qidi/QIDI PETG Basic" - ], - "QD_4_1_4": [ - "Qidi/QIDI PLA Silk" - ], - "QD_4_1_40": [ - "Qidi/QIDI PETG Tough" - ], - "QD_4_1_41": [ - "Qidi/QIDI PETG Rapido" - ], - "QD_4_1_42": [ - "Qidi/QIDI PETG-CF" - ], - "QD_4_1_43": [ - "Qidi/QIDI PETG-GF" - ], - "QD_4_1_44": [ - "Qidi/QIDI PPS-CF" - ], - "QD_4_1_45": [ - "Qidi/QIDI PETG Translucent" - ], - "QD_4_1_46": [ - "Qidi/QIDI PPS-GF" - ], - "QD_4_1_49": [ - "Qidi/QIDI TPU-Aero" - ], - "QD_4_1_5": [ - "Qidi/QIDI PLA-CF" - ], - "QD_4_1_50": [ - "Qidi/QIDI TPU 95A-HF" - ], - "QD_4_1_6": [ - "Qidi/QIDI WOOD Rapido" - ], - "QD_4_1_7": [ - "Qidi/QIDI PLA Basic" - ], - "QD_4_1_8": [ - "Qidi/QIDI PLA Matte Basic" ] }, "instantiated_with_id": [ @@ -8710,6 +8023,13 @@ "FusRock Generic PAHT-GF" ] ], + "OF2TQpOO": [ + [ + "QIDI", + "PLA", + "QIDI PLA Silk" + ] + ], "OF2VFe4J": [ [ "Bambu Lab", @@ -10012,6 +9332,13 @@ "Bambu PLA Dynamic" ] ], + "OFDIrhbu": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC/ABS-FR" + ] + ], "OFDJU6R3": [ [ "Afinia", @@ -10285,6 +9612,13 @@ "Snapmaker PLA Matte" ] ], + "OFFAWVf0": [ + [ + "QIDI", + "PC-ABS-FR", + "QIDI PC-ABS-FR" + ] + ], "OFFC0VqZ": [ [ "Generic", @@ -11909,6 +11243,13 @@ "SeeMeCNC ABS" ] ], + "OFR1XLMN": [ + [ + "QIDI", + "TPU", + "QIDI TPU 95A-HF" + ] + ], "OFRDLNM9": [ [ "Generic", @@ -12476,6 +11817,13 @@ "Tiertime Generic HIPS" ] ], + "OFWDe7YH": [ + [ + "QIDI", + "UltraPA", + "QIDI UltraPA" + ] + ], "OFWIr7ZE": [ [ "CoLiDo", @@ -12875,6 +12223,13 @@ "YUMI PLA Bowden" ] ], + "OFZ3K2cL": [ + [ + "QIDI", + "PA6-CF", + "QIDI PA6-CF" + ] + ], "OFZ4QbfK": [ [ "FilAr", @@ -14226,6 +13581,13 @@ "Cubicon PLA" ] ], + "OFjiXpyf": [ + [ + "Generic", + "TPU", + "Generic TPU 95A" + ] + ], "OFjkdnyN": [ [ "Snapmaker", @@ -15535,6 +14897,13 @@ "LHS PC CF" ] ], + "OFu1E4ur": [ + [ + "QIDI", + "ASA-AERO", + "QIDI ASA-Aero" + ] + ], "OFu1evlr": [ [ "Generic", @@ -16227,1434 +15596,6 @@ "ABS", "FLSun S1 ABS" ] - ], - "QD_0_1_1": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "QD_0_1_15": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "QD_0_1_2": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "QD_0_1_20": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "QD_0_1_24": [ - [ - "QIDI", - "UltraPA", - "QIDI PA-Ultra" - ] - ], - "QD_0_1_26": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "QD_0_1_27": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "QD_0_1_3": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "QD_0_1_30": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "QD_0_1_31": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "QD_0_1_32": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "QD_0_1_33": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "QD_0_1_34": [ - [ - "QIDI", - "PC-ABS-FR", - "Qidi PC-ABS-FR" - ] - ], - "QD_0_1_36": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "QD_0_1_37": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "QD_0_1_38": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "QD_0_1_39": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "QD_0_1_4": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Silk" - ] - ], - "QD_0_1_40": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "QD_0_1_41": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "QD_0_1_42": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "QD_0_1_43": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "QD_0_1_44": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "QD_0_1_45": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "QD_0_1_46": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "QD_0_1_49": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "QD_0_1_5": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "QD_0_1_50": [ - [ - "QIDI", - "TPU", - "Qidi TPU 95A-HF" - ] - ], - "QD_0_1_6": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "QD_0_1_7": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "QD_0_1_8": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "QD_1_0_1": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "QD_1_0_11": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "QD_1_0_23": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "QD_1_0_4": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "QD_1_0_41": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "QD_1_0_50": [ - [ - "Generic", - "TPU", - "Generic TPU 95A" - ] - ], - "QD_1_1_1": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "QD_1_1_11": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido" - ] - ], - "QD_1_1_12": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "QD_1_1_13": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido Metal" - ] - ], - "QD_1_1_14": [ - [ - "QIDI", - "ABS", - "QIDI ABS Odorless" - ] - ], - "QD_1_1_15": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "QD_1_1_18": [ - [ - "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "QD_1_1_19": [ - [ - "QIDI", - "ASA-AERO", - "QIDI ASA-Aero" - ] - ], - "QD_1_1_2": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "QD_1_1_20": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "QD_1_1_24": [ - [ - "QIDI", - "UltraPA", - "QIDI UltraPA" - ] - ], - "QD_1_1_26": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "QD_1_1_27": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "QD_1_1_3": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "QD_1_1_30": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "QD_1_1_31": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "QD_1_1_32": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "QD_1_1_33": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "QD_1_1_34": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC-ABS-FR" - ] - ], - "QD_1_1_36": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "QD_1_1_37": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "QD_1_1_38": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "QD_1_1_39": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "QD_1_1_4": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Silk" - ] - ], - "QD_1_1_40": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "QD_1_1_41": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "QD_1_1_42": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "QD_1_1_43": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "QD_1_1_44": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "QD_1_1_45": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "QD_1_1_46": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "QD_1_1_49": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "QD_1_1_5": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "QD_1_1_50": [ - [ - "QIDI", - "TPU", - "QIDI TPU 95A-HF" - ] - ], - "QD_1_1_6": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "QD_1_1_7": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "QD_1_1_8": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "QD_2_0_1": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "QD_2_0_11": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "QD_2_0_23": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "QD_2_0_4": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "QD_2_0_41": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "QD_2_0_50": [ - [ - "Generic", - "TPU", - "Generic TPU 95A" - ] - ], - "QD_2_1_1": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "QD_2_1_11": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido" - ] - ], - "QD_2_1_12": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "QD_2_1_13": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido Metal" - ] - ], - "QD_2_1_14": [ - [ - "QIDI", - "ABS", - "QIDI ABS Odorless" - ] - ], - "QD_2_1_15": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "QD_2_1_18": [ - [ - "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "QD_2_1_19": [ - [ - "QIDI", - "ASA-AERO", - "QIDI ASA-Aero" - ] - ], - "QD_2_1_2": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "QD_2_1_20": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "QD_2_1_24": [ - [ - "QIDI", - "UltraPA", - "QIDI UltraPA" - ] - ], - "QD_2_1_26": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "QD_2_1_27": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "QD_2_1_3": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "QD_2_1_30": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "QD_2_1_31": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "QD_2_1_32": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "QD_2_1_33": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "QD_2_1_34": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC-ABS-FR" - ] - ], - "QD_2_1_36": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "QD_2_1_37": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "QD_2_1_38": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "QD_2_1_39": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "QD_2_1_4": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Silk" - ] - ], - "QD_2_1_40": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "QD_2_1_41": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "QD_2_1_42": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "QD_2_1_43": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "QD_2_1_44": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "QD_2_1_45": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "QD_2_1_46": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "QD_2_1_49": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "QD_2_1_5": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "QD_2_1_50": [ - [ - "QIDI", - "TPU", - "QIDI TPU 95A-HF" - ] - ], - "QD_2_1_6": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "QD_2_1_7": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "QD_2_1_8": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "QD_3_0_1": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "QD_3_0_11": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "QD_3_0_23": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "QD_3_0_4": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "QD_3_0_41": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "QD_3_0_50": [ - [ - "Generic", - "TPU", - "Generic TPU 95A" - ] - ], - "QD_3_1_1": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "QD_3_1_11": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido" - ] - ], - "QD_3_1_12": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "QD_3_1_13": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido Metal" - ] - ], - "QD_3_1_14": [ - [ - "QIDI", - "ABS", - "QIDI ABS Odorless" - ] - ], - "QD_3_1_15": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "QD_3_1_18": [ - [ - "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "QD_3_1_19": [ - [ - "QIDI", - "ASA-AERO", - "QIDI ASA-Aero" - ] - ], - "QD_3_1_2": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "QD_3_1_20": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "QD_3_1_24": [ - [ - "QIDI", - "UltraPA", - "QIDI UltraPA" - ] - ], - "QD_3_1_26": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "QD_3_1_27": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "QD_3_1_3": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "QD_3_1_30": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "QD_3_1_31": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "QD_3_1_32": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "QD_3_1_33": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "QD_3_1_34": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC/ABS-FR" - ] - ], - "QD_3_1_36": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "QD_3_1_37": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "QD_3_1_38": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "QD_3_1_39": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "QD_3_1_4": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Silk" - ] - ], - "QD_3_1_40": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "QD_3_1_41": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "QD_3_1_42": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "QD_3_1_43": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "QD_3_1_44": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "QD_3_1_45": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "QD_3_1_46": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "QD_3_1_49": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "QD_3_1_5": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "QD_3_1_50": [ - [ - "QIDI", - "TPU", - "QIDI TPU 95A-HF" - ] - ], - "QD_3_1_6": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "QD_3_1_7": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "QD_3_1_8": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "QD_4_0_1": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "QD_4_0_11": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "QD_4_0_23": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "QD_4_0_4": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "QD_4_0_41": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "QD_4_0_50": [ - [ - "Generic", - "TPU", - "Generic TPU 95A" - ] - ], - "QD_4_1_1": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "QD_4_1_11": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido" - ] - ], - "QD_4_1_12": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "QD_4_1_13": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido Metal" - ] - ], - "QD_4_1_14": [ - [ - "QIDI", - "ABS", - "QIDI ABS Odorless" - ] - ], - "QD_4_1_15": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "QD_4_1_18": [ - [ - "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "QD_4_1_19": [ - [ - "QIDI", - "ASA-AERO", - "QIDI ASA-Aero" - ] - ], - "QD_4_1_2": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "QD_4_1_20": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "QD_4_1_24": [ - [ - "QIDI", - "UltraPA", - "QIDI UltraPA" - ] - ], - "QD_4_1_25": [ - [ - "QIDI", - "PA6-CF", - "QIDI PA6-CF" - ] - ], - "QD_4_1_26": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "QD_4_1_27": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "QD_4_1_3": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "QD_4_1_30": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "QD_4_1_31": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "QD_4_1_32": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "QD_4_1_33": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "QD_4_1_34": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC/ABS-FR" - ] - ], - "QD_4_1_36": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "QD_4_1_37": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "QD_4_1_38": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "QD_4_1_39": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "QD_4_1_4": [ - [ - "QIDI", - "PLA", - "QIDI PLA Silk" - ] - ], - "QD_4_1_40": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "QD_4_1_41": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "QD_4_1_42": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "QD_4_1_43": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "QD_4_1_44": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "QD_4_1_45": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "QD_4_1_46": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "QD_4_1_49": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "QD_4_1_5": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "QD_4_1_50": [ - [ - "QIDI", - "TPU", - "QIDI TPU 95A-HF" - ] - ], - "QD_4_1_6": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "QD_4_1_7": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "QD_4_1_8": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] ] } } diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 0918702017..41df9c582e 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -1485,7 +1485,6 @@ class TestRealTree(unittest.TestCase): # QidiPrinterAgent::map_filament_type_to_setting_id returns must stay # retired ledger keys whose chains end at a live preset id, because the # agent resolves them through resolve_filament_id_succession() at runtime. - @unittest.skip("enable with plan v4.2: QD_* ids are not retired yet") def test_qidi_agent_fallback_ids_resolve_through_ledger(self): cpp = os.path.join(REPO_ROOT, "src", "slic3r", "Utils", "QidiPrinterAgent.cpp") with open(cpp, encoding="utf-8") as f: From 575a8748325396c2018360a0216e1a70d55c2e0c Mon Sep 17 00:00:00 2001 From: raistlin7447 Date: Sun, 23 Aug 2026 19:37:35 -0500 Subject: [PATCH 079/164] fix: keep CRLF when patching CPython on Windows git apply inherits the caller's configuration, so under core.autocrlf=input it rewrites the patched PCbuild/find_python.bat to LF. cmd.exe cannot resolve goto labels in an LF batch file, so CPython's build fails with "The system cannot find the batch label specified - begin_search" and then "Cannot locate python.exe on PATH or as PYTHON variable". git init already runs in the extracted source, so setting core.autocrlf on the repository it creates is enough, without touching the shared PATCH_CMD. --- deps/python3/python3.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deps/python3/python3.cmake b/deps/python3/python3.cmake index e93045fe45..936d75f488 100644 --- a/deps/python3/python3.cmake +++ b/deps/python3/python3.cmake @@ -15,7 +15,12 @@ if(WIN32) # See https://github.com/python/cpython/issues/153438 # Patch from https://github.com/python/cpython/pull/153608 # This patch has not been merged to 3.12 yet so we need to apply it manually - set(_patch_cmd git init && ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/01-windows-nuget.patch) + # + # The config lands on the CPython repo git init just made, not OrcaSlicer. Without + # it the patched find_python.bat comes out LF and cmd.exe cannot find its goto labels. + set(_patch_cmd git init + && git config core.autocrlf false + && ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/01-windows-nuget.patch) if(MSVC_VERSION EQUAL 1800) set(_python_platform_toolset v120) From 1e392e4437eef5271275b2e842312de7db43f98a Mon Sep 17 00:00:00 2001 From: Ian Chua Date: Tue, 25 Aug 2026 14:38:51 +0800 Subject: [PATCH 080/164] fix: remove audit scope from plugin pages --- .../pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp index 3fb476c228..f6e13c981b 100644 --- a/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp +++ b/src/slic3r/plugin/pluginTypes/pages/PagesPluginCapabilityTrampoline.hpp @@ -16,7 +16,6 @@ public: std::string get_icon() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE, std::string, @@ -27,7 +26,6 @@ public: std::string get_ui() override { ORCA_PY_OVERRIDE_AUDITED( - ::Slic3r::PluginAuditManager::AuditMode::Loading, [] {}, PYBIND11_OVERRIDE_PURE, std::string, @@ -42,7 +40,7 @@ public: if (!gil) throw std::runtime_error("Python interpreter is shutting down"); - ORCA_PY_AUDIT_SCOPE(::Slic3r::PluginAuditManager::AuditMode::Loading); + ORCA_PY_AUDIT_SCOPE(); pybind11::function override = pybind11::get_override(static_cast(this), "on_message"); if (!override) From 05b3c9053ed5a576fbcf9919bbaacf222685dc75 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Sat, 29 Aug 2026 12:48:05 -0500 Subject: [PATCH 081/164] fix: Cyrillic and other non-Latin text shows as question marks or garbage (#15419) --- src/slic3r/GUI/ImGuiWrapper.cpp | 44 +++++++++++++++++++++++++-------- src/slic3r/GUI/Plater.cpp | 2 +- src/slic3r/GUI/Tab.cpp | 2 +- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index 5850161a3e..eeaadd0cbd 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -2482,6 +2482,19 @@ static const ImWchar ranges_keyboard_shortcuts[] = }; #endif // __APPLE__ +// Names drawn through the atlas come from file names and CAD data, not from the UI language. +// GetGlyphRangesDefault() already gives every language the CJK ideographs, which is why a +// Chinese file name renders under an English UI; these are the alphabetic scripts it omits. +// Codepoints the font lacks are skipped at build time, so only existing glyphs cost anything. +static const ImWchar ranges_language_independent[] = +{ + 0x0100, 0x024F, // Latin Extended-A and Extended-B + 0x0370, 0x03FF, // Greek and Coptic + 0x0400, 0x04FF, // Cyrillic + 0x1E00, 0x1EFF, // Latin Extended Additional (Vietnamese) + 0, +}; + std::vector ImGuiWrapper::load_svg(const std::string& bitmap_name, unsigned target_width, unsigned target_height, unsigned *outwidth, unsigned *outheight) { @@ -2792,6 +2805,7 @@ void ImGuiWrapper::init_font(bool compress) ImFontAtlas::GlyphRangesBuilder builder; builder.AddRanges(m_glyph_ranges); builder.AddRanges(ImGui::GetIO().Fonts->GetGlyphRangesDefault()); + builder.AddRanges(ranges_language_independent); #ifdef __APPLE__ if (m_font_cjk) // Apple keyboard shortcuts are only contained in the CJK fonts. @@ -2813,12 +2827,17 @@ void ImGuiWrapper::init_font(bool compress) // Orca: temp fix for Korean font auto font_name_regular = "HarmonyOS_Sans_SC_Regular.ttf"; auto font_name_bold = "HarmonyOS_Sans_SC_Bold.ttf"; + // The Korean and Thai fonts cover their own script and little else, so they need the + // default font merged in behind them to reach the full range. + bool needs_glyph_fallback = false; if(m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesKorean()) { font_name_regular = "NanumGothic-Regular.ttf"; font_name_bold = "NanumGothic-Bold.ttf"; + needs_glyph_fallback = true; } else if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { font_name_regular = "Sarabun-Medium.ttf"; font_name_bold = "Sarabun-SemiBold.ttf"; + needs_glyph_fallback = true; } default_font = io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/" + font_name_regular).c_str(), m_font_size, &cfg, ranges.Data); if (default_font == nullptr) { @@ -2828,11 +2847,12 @@ void ImGuiWrapper::init_font(bool compress) } } - if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { + // A merged font only supplies glyphs the font ahead of it lacks, so this fills the gaps + // without restyling anything the script font already covers. + if (needs_glyph_fallback) { ImFontConfig fallback_cfg = cfg; fallback_cfg.MergeMode = true; - static constexpr ImWchar celsius_range[] = { 0x2103, 0x2103, 0 }; - io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Regular.ttf").c_str(), m_font_size, &fallback_cfg, celsius_range); + io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Regular.ttf").c_str(), m_font_size, &fallback_cfg, ranges.Data); } bold_font = io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/" + font_name_bold).c_str(), m_font_size, &cfg, ranges.Data); @@ -2841,11 +2861,10 @@ void ImGuiWrapper::init_font(bool compress) if (bold_font == nullptr) { throw Slic3r::RuntimeError("ImGui: Could not load deafult font"); } } - if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { + if (needs_glyph_fallback) { ImFontConfig fallback_cfg = cfg; fallback_cfg.MergeMode = true; - static constexpr ImWchar celsius_range[] = { 0x2103, 0x2103, 0 }; - io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Bold.ttf").c_str(), m_font_size, &fallback_cfg, celsius_range); + io.Fonts->AddFontFromFileTTF((Slic3r::resources_dir() + "/fonts/HarmonyOS_Sans_SC_Bold.ttf").c_str(), m_font_size, &fallback_cfg, ranges.Data); } if (m_glyph_ranges == ImGui::GetIO().Fonts->GetGlyphRangesThai()) { @@ -2897,13 +2916,18 @@ void ImGuiWrapper::init_font(bool compress) glsafe(::glGetIntegerv(GL_MAX_TEXTURE_SIZE, &gl_max_tex_size)); constexpr int max_retries = 6; for (int attempt = 0; attempt < max_retries && io.Fonts->TexHeight > gl_max_tex_size; ++attempt) { - io.Fonts->TexDesiredWidth = (io.Fonts->TexDesiredWidth > 0 ? io.Fonts->TexDesiredWidth : io.Fonts->TexWidth) * 2; + const int width = io.Fonts->TexDesiredWidth > 0 ? io.Fonts->TexDesiredWidth : io.Fonts->TexWidth; + // Both dimensions share the same limit, so widening past it would only trade an + // illegal height for an illegal width. + if (width * 2 > gl_max_tex_size) + break; + io.Fonts->TexDesiredWidth = width * 2; io.Fonts->Build(); } if (io.Fonts->TexHeight > gl_max_tex_size) { - // Shouldn't really happen - BOOST_LOG_TRIVIAL(error) << "Font atlas height " << io.Fonts->TexHeight - << " still exceeds GL_MAX_TEXTURE_SIZE (" << gl_max_tex_size << ")" + // Needs both a very large glyph set and a small GL_MAX_TEXTURE_SIZE. + BOOST_LOG_TRIVIAL(error) << "Font atlas " << io.Fonts->TexWidth << "x" << io.Fonts->TexHeight + << " does not fit GL_MAX_TEXTURE_SIZE (" << gl_max_tex_size << ")" << " after " << max_retries << " attempts; rendering may be incomplete"; } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 13c0169131..2b1a558fe9 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -21635,7 +21635,7 @@ void Plater::show_object_info() auto mesh_errors = p->sidebar->obj_list()->get_mesh_errors_info(&info_manifold, &non_manifold_edges); if (non_manifold_edges > 0) { - info_manifold += into_u8("\n" + _L("Tips:") + "\n" + _L("Use \"Fix Model\" to repair the mesh.")); + info_manifold += "\n" + _L("Tips:") + "\n" + _L("Use \"Fix Model\" to repair the mesh."); } info_manifold = "" + info_manifold + ""; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index ef5ff29af1..0eb5c9281d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -7530,7 +7530,7 @@ void Tab::delete_preset() for (auto &preset2 : *m_presets) if (preset2.inherits() == current_preset.name) { ++count; - presets += "\n - " + preset2.name; + presets += "\n - " + from_u8(preset2.name); } if (count > 0) { msg = _L("Presets inherited by other presets cannot be deleted!"); From 600f0f20bd4b972fc3cdd1c689b7671889c960c0 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sun, 30 Aug 2026 11:19:06 +0800 Subject: [PATCH 082/164] Copy the decoded frame instead of aliasing the decoder's buffer wxImage with static_data set stores the pointer and never copies it, so the frame handed to wxMediaCtrl3 aliased AVVideoDecoder::bits_. That buffer is rewritten by the next sws_scale with the mutex released, reallocated by bits_.resize() when the window grows, and freed outright when the decoder leaves PlayThread's loop body at end of stream, all while the GUI thread may be painting from it. Windows is unaffected either way, since toWxBitmap already copies the bits into GDI. --- src/slic3r/GUI/AVVideoDecoder.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/AVVideoDecoder.cpp b/src/slic3r/GUI/AVVideoDecoder.cpp index 4c951fdb61..d7b8432bd3 100644 --- a/src/slic3r/GUI/AVVideoDecoder.cpp +++ b/src/slic3r/GUI/AVVideoDecoder.cpp @@ -115,7 +115,10 @@ bool AVVideoDecoder::toWxImage(wxImage &image, wxSize const &size2) if (result_h != size.GetHeight()) { return false; } - image = wxImage(size.GetWidth(), size.GetHeight(), bits_.data(), true); + // Copy: the frame outlives this decoder and is painted by the GUI thread while the + // next sws_scale is already overwriting bits_, so it must own its pixels. The Windows + // path below needs no equivalent, wxBitmap copies the bits into GDI. + image = wxImage(size.GetWidth(), size.GetHeight(), bits_.data(), true).Copy(); if (!image.IsOk()) { fprintf(stderr, "AVVideoDecoder: image not ok %dx%d\n", size.GetWidth(), size.GetHeight()); return false; From 8994ab9f98f8bf5ba4ab14a59d7a48e58997c997 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sun, 30 Aug 2026 20:56:12 +0800 Subject: [PATCH 083/164] make the script executable --- scripts/assign_filament_ids.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/assign_filament_ids.py diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py old mode 100644 new mode 100755 From 5add7a5062beba3c71201a2cdb80cd36ac8f8772 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Mon, 31 Aug 2026 16:25:59 +0800 Subject: [PATCH 084/164] Show Orca Filament Library filaments in AMS and calibration dialogs These dialogs treated a filament with no compatible_printers as compatible with nothing, while the rest of the app treats it as compatible with everything, so the entire Orca Filament Library was missing from the AMS material and calibration filament lists. They now resolve compatibility the same way the plater does, and a vendor profile still supersedes the library generic of the same name. --- src/libslic3r/PresetBundle.cpp | 37 ++++ src/libslic3r/PresetBundle.hpp | 7 + src/slic3r/GUI/AMSDryControl.cpp | 42 ++-- src/slic3r/GUI/AMSMaterialsSetting.cpp | 186 +++++++----------- src/slic3r/GUI/CaliHistoryDialog.cpp | 71 ++----- src/slic3r/GUI/ExtrusionCalibration.cpp | 60 +++--- .../libslic3r/test_preset_bundle_loading.cpp | 83 ++++++++ 7 files changed, 251 insertions(+), 235 deletions(-) diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 02c61b8181..c4895a5af7 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -4054,6 +4054,9 @@ std::vector> PresetBundle::get_extruder_filament return filament_infos; } +// ORCA TODO: currently, this function assumes the printer name follows the pattern of " ", e.g. +// printer_type: "Bambu Lab X2D", nozzle_diameter_str: "0.4 nozzle" => printer_name: "Bambu Lab X2D 0.4 nozzle". If the printer name does +// not follow this pattern, the function may not work correctly. std::set PresetBundle::get_printer_names_by_printer_type_and_nozzle(const std::string &printer_type, std::string nozzle_diameter_str, bool system_only) { std::set printer_names; @@ -4084,6 +4087,40 @@ std::set PresetBundle::get_printer_names_by_printer_type_and_nozzle return printer_names; } +std::vector PresetBundle::get_filament_presets_for_machine(const std::string &printer_type, + const std::string &nozzle_diameter_str, + bool include_user_presets) +{ + // Printer model plus nozzle diameter is expected to resolve to a single system printer preset; + // get_printer_names_by_printer_type_and_nozzle asserts as much in debug builds. + const std::set printer_names = get_printer_names_by_printer_type_and_nozzle(printer_type, nozzle_diameter_str); + const Preset *printer = printer_names.empty() ? nullptr : printers.find_preset(*printer_names.begin()); + if (printer == nullptr) + return {}; + + // Preset::is_visible is deliberately not consulted: it tracks what the Configuration Wizard + // installed, while the caller identifies a physically connected machine the user may never + // have installed - gating on it would empty the list for exactly those machines. + const PresetWithVendorProfile active_printer = printers.get_preset_with_vendor_profile(*printer); + // Loop invariant - the two argument is_compatible_with_printer() would rebuild it per preset. + DynamicPrintConfig printer_config; + printer_config.set_key_value("printer_preset", new ConfigOptionString(printer->name)); + if (const ConfigOption *opt = printer->config.option("nozzle_diameter")) + printer_config.set_key_value("num_extruders", new ConfigOptionInt((int) static_cast(opt)->values.size())); + + std::vector compatible; + for (Preset &preset : filaments) { + /* The situation where the preset is not offered is as follows: + 1. Not a root preset + 2. Not a system preset and the printer firmware does not support user presets */ + if (filaments.get_preset_base(preset) != &preset || (!preset.is_system && !include_user_presets)) + continue; + if (is_compatible_with_printer(filaments.get_preset_with_vendor_profile(preset), active_printer, &printer_config)) + compatible.push_back(&preset); + } + return compatible; +} + bool PresetBundle::check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray( const std::string &printer_type, std::string& nozzle_diameter_str, std::string &setting_id, std::string &tag_uid, std::string &nozzle_temp_min, std::string &nozzle_temp_max, std::string& preset_setting_id) { diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index 6e7e07b26e..b927c5ee6f 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -350,6 +350,13 @@ public: std::vector> get_extruder_filament_info() const; std::set get_printer_names_by_printer_type_and_nozzle(const std::string &printer_type, std::string nozzle_diameter_str, bool system_only = true); + // Orca: the root filament presets a connected machine can use, resolved with the rule the rest + // of the app applies (is_compatible_with_printer): an empty compatible_printers means every + // printer, minus the alias shadowing exclusions the Orca Filament Library records in + // Preset::m_excluded_from. + std::vector get_filament_presets_for_machine(const std::string &printer_type, + const std::string &nozzle_diameter_str, + bool include_user_presets); bool check_filament_temp_equation_by_printer_type_and_nozzle_for_mas_tray(const std::string &printer_type, std::string & nozzle_diameter_str, std::string & setting_id, diff --git a/src/slic3r/GUI/AMSDryControl.cpp b/src/slic3r/GUI/AMSDryControl.cpp index ddd3380975..dae84cda71 100644 --- a/src/slic3r/GUI/AMSDryControl.cpp +++ b/src/slic3r/GUI/AMSDryControl.cpp @@ -1594,39 +1594,21 @@ int AMSDryCtrWin::update_filament_list(DevAms* dev_ams, MachineObject* obj) } stream << std::fixed << std::setprecision(1) << obj->GetExtderSystem()->GetNozzleDiameter(extruder_id); std::string nozzle_diameter_str = stream.str(); - std::set printer_names = preset_bundle->get_printer_names_by_printer_type_and_nozzle( - DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str); - for (auto filament_it = filaments.begin(); filament_it != filaments.end(); ++filament_it) { - Preset& preset = *filament_it; - // Filter by system preset: root preset and (system preset or user preset is supported) - if (filaments.get_preset_base(*filament_it) != &preset || (!filament_it->is_system && !obj->is_support_user_preset)) { + for (Preset *filament_it : preset_bundle->get_filament_presets_for_machine( + DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str, obj->is_support_user_preset)) { + if (!filament_id_set.insert(filament_it->filament_id).second) + continue; + const std::string filament_alias = filaments.get_preset_alias(*filament_it, true); + if (filament_alias.empty()) + continue; + auto opt_info = preset_bundle->get_filament_by_filament_id(filament_it->filament_id); + if (!opt_info.has_value()) continue; - } - ConfigOption * printer_opt = filament_it->config.option("compatible_printers"); - ConfigOptionStrings *printer_strs = dynamic_cast(printer_opt); - if (!printer_strs) continue; - - for (auto printer_str : printer_strs->values) { - if (printer_names.find(printer_str) != printer_names.end()) { - if (filament_id_set.find(filament_it->filament_id) != filament_id_set.end()) { - continue; - } - - filament_id_set.insert(filament_it->filament_id); - auto filament_alias = filaments.get_preset_alias(*filament_it, true); - if (!filament_alias.empty()) { - auto opt_info = preset_bundle->get_filament_by_filament_id(filament_it->filament_id); - if (opt_info.has_value()) { - auto real_info = opt_info.value(); - real_info.filament_name = filament_alias; - m_tray_ids.push_back(std::move(real_info)); - m_trays_combo->Append(wxString::FromUTF8(filament_alias)); - } - } - } - } + opt_info->filament_name = filament_alias; + m_tray_ids.push_back(std::move(*opt_info)); + m_trays_combo->Append(wxString::FromUTF8(filament_alias)); } if (m_tray_ids.empty()) { diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 2e436e8462..a2adf3ea5b 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -932,7 +932,6 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi m_input_k_val->GetTextCtrl()->SetValue(k); m_input_n_val->GetTextCtrl()->SetValue(n); - int idx = 0; wxArrayString filament_items; wxString bambu_filament_name; wxString hint_filament_name; // the hint type to be selected @@ -940,6 +939,9 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi std::unordered_map query_filament_types; // std::set filament_id_set; + // The alias keyed map has to start empty: it is a member, so a stale alias left by an earlier + // popup (a different printer, a different nozzle) would resolve to that printer's filament_id. + map_filament_items.clear(); PresetBundle * preset_bundle = wxGetApp().preset_bundle; std::ostringstream stream; // Defensive: this dialog is opened only from StatusPanel (BBL-only) today, so the fallback fires @@ -952,83 +954,48 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi } stream << std::fixed << std::setprecision(1) << machine_diameter; std::string nozzle_diameter_str = stream.str(); - std::set printer_names = preset_bundle->get_printer_names_by_printer_type_and_nozzle(DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str); if (preset_bundle) { BOOST_LOG_TRIVIAL(trace) << "system_preset_bundle filament number=" << preset_bundle->filaments.size(); - for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) { - //filter by system preset - Preset& preset = *filament_it; - /*The situation where the user preset is not displayed is as follows: - 1. Not a root preset - 2. Not system preset and the printer firmware does not support user preset */ - if (preset_bundle->filaments.get_preset_base(*filament_it) != &preset || (!filament_it->is_system && !obj->is_support_user_preset)) { + for (Preset *filament_it : preset_bundle->get_filament_presets_for_machine( + DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str, obj->is_support_user_preset)) { + if (!filament_id_set.insert(filament_it->filament_id).second) + continue; + const std::string alias = preset_bundle->filaments.get_preset_alias(*filament_it, true); + if (alias.empty()) continue; - } - ConfigOption * printer_opt = filament_it->config.option("compatible_printers"); - ConfigOptionStrings *printer_strs = dynamic_cast(printer_opt); - for (auto printer_str : printer_strs->values) { - if (printer_names.find(printer_str) != printer_names.end()) { - if (filament_id_set.find(filament_it->filament_id) != filament_id_set.end()) { - continue; - } else { - filament_id_set.insert(filament_it->filament_id); - // name matched - if (filament_it->is_system) { - filament_items.push_back(filament_it->alias); - _collect_filament_info(filament_it->alias, preset, query_filament_vendors, query_filament_types); + filament_items.push_back(alias); + _collect_filament_info(alias, *filament_it, query_filament_vendors, query_filament_types); - FilamentInfos filament_infos; - filament_infos.filament_id = filament_it->filament_id; - filament_infos.setting_id = filament_it->setting_id; - map_filament_items[filament_it->alias] = filament_infos; - } else { - char target = '@'; - size_t pos = filament_it->name.find(target); - if (pos != std::string::npos) { - std::string user_preset_alias = filament_it->name.substr(0, pos - 1); - wxString wx_user_preset_alias = wxString(user_preset_alias.c_str(), wxConvUTF8); - user_preset_alias = wx_user_preset_alias.ToStdString(); + FilamentInfos filament_infos; + filament_infos.filament_id = filament_it->filament_id; + filament_infos.setting_id = filament_it->setting_id; + map_filament_items[alias] = filament_infos; - filament_items.push_back(user_preset_alias); - _collect_filament_info(user_preset_alias, preset, query_filament_vendors, query_filament_types); - - FilamentInfos filament_infos; - filament_infos.filament_id = filament_it->filament_id; - filament_infos.setting_id = filament_it->setting_id; - map_filament_items[user_preset_alias] = filament_infos; - } - } - - if (filament_it->filament_id == ams_filament_id) { - hint_filament_name = from_u8(filament_it->alias); - bambu_filament_name = from_u8(filament_it->alias); + if (filament_it->filament_id == ams_filament_id) { + hint_filament_name = from_u8(alias); + bambu_filament_name = from_u8(alias); - // update if nozzle_temperature_range is found - ConfigOption *opt_min = filament_it->config.option("nozzle_temperature_range_low"); - if (opt_min) { - ConfigOptionInts *opt_min_ints = dynamic_cast(opt_min); - if (opt_min_ints) { - wxString text_nozzle_temp_min = wxString::Format("%d", opt_min_ints->get_at(0)); - m_input_nozzle_min->GetTextCtrl()->SetValue(text_nozzle_temp_min); - } - } - ConfigOption *opt_max = filament_it->config.option("nozzle_temperature_range_high"); - if (opt_max) { - ConfigOptionInts *opt_max_ints = dynamic_cast(opt_max); - if (opt_max_ints) { - wxString text_nozzle_temp_max = wxString::Format("%d", opt_max_ints->get_at(0)); - m_input_nozzle_max->GetTextCtrl()->SetValue(text_nozzle_temp_max); - } - } - } - idx++; + // update if nozzle_temperature_range is found + ConfigOption *opt_min = filament_it->config.option("nozzle_temperature_range_low"); + if (opt_min) { + ConfigOptionInts *opt_min_ints = dynamic_cast(opt_min); + if (opt_min_ints) { + wxString text_nozzle_temp_min = wxString::Format("%d", opt_min_ints->get_at(0)); + m_input_nozzle_min->GetTextCtrl()->SetValue(text_nozzle_temp_min); + } + } + ConfigOption *opt_max = filament_it->config.option("nozzle_temperature_range_high"); + if (opt_max) { + ConfigOptionInts *opt_max_ints = dynamic_cast(opt_max); + if (opt_max_ints) { + wxString text_nozzle_temp_max = wxString::Format("%d", opt_max_ints->get_at(0)); + m_input_nozzle_max->GetTextCtrl()->SetValue(text_nozzle_temp_max); } } } - } } @@ -1251,56 +1218,47 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) stream << std::fixed << std::setprecision(1) << machine_diameter; } std::string nozzle_diameter_str = stream.str(); - std::set printer_names = preset_bundle->get_printer_names_by_printer_type_and_nozzle(DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), - nozzle_diameter_str); - for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { - if (!m_comboBox_filament->GetValue().IsEmpty()) { - auto filament_item = map_filament_items[m_comboBox_filament->GetValue().ToStdString()]; - std::string filament_id = filament_item.filament_id; - if (it->filament_id.compare(filament_id) == 0) { - ConfigOption * printer_opt = it->config.option("compatible_printers"); - ConfigOptionStrings *printer_strs = dynamic_cast(printer_opt); - bool has_compatible_printer = false; - for (auto printer_str : printer_strs->values) { - if (printer_names.find(printer_str) != printer_names.end()) { - has_compatible_printer = true; - break; - } + // Resolve the selection against the same list Popup() built the dropdown from, so the two + // halves of the dialog cannot disagree about which filaments this machine can use. + const std::string selected = m_comboBox_filament->GetValue().ToStdString(); + if (!selected.empty()) { + const std::string filament_id = map_filament_items[selected].filament_id; + for (Preset *it : preset_bundle->get_filament_presets_for_machine( + DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str, obj->is_support_user_preset)) { + if (it->filament_id != filament_id) + continue; + // ) if nozzle_temperature_range is found + ConfigOption* opt_min = it->config.option("nozzle_temperature_range_low"); + if (opt_min) { + ConfigOptionInts* opt_min_ints = dynamic_cast(opt_min); + if (opt_min_ints) { + wxString text_nozzle_temp_min = wxString::Format("%d", opt_min_ints->get_at(0)); + m_input_nozzle_min->GetTextCtrl()->SetValue(text_nozzle_temp_min); } - if (!it->is_system && !has_compatible_printer) continue; - // ) if nozzle_temperature_range is found - ConfigOption* opt_min = it->config.option("nozzle_temperature_range_low"); - if (opt_min) { - ConfigOptionInts* opt_min_ints = dynamic_cast(opt_min); - if (opt_min_ints) { - wxString text_nozzle_temp_min = wxString::Format("%d", opt_min_ints->get_at(0)); - m_input_nozzle_min->GetTextCtrl()->SetValue(text_nozzle_temp_min); - } - } - ConfigOption* opt_max = it->config.option("nozzle_temperature_range_high"); - if (opt_max) { - ConfigOptionInts* opt_max_ints = dynamic_cast(opt_max); - if (opt_max_ints) { - wxString text_nozzle_temp_max = wxString::Format("%d", opt_max_ints->get_at(0)); - m_input_nozzle_max->GetTextCtrl()->SetValue(text_nozzle_temp_max); - } - } - ConfigOption* opt_type = it->config.option("filament_type"); - bool found_filament_type = false; - if (opt_type) { - ConfigOptionStrings* opt_type_strs = dynamic_cast(opt_type); - if (opt_type_strs) { - found_filament_type = true; - //m_filament_type = opt_type_strs->get_at(0); - std::string display_filament_type; - m_filament_type = it->config.get_filament_type(display_filament_type); - } - } - if (!found_filament_type) - m_filament_type = ""; - - break; } + ConfigOption* opt_max = it->config.option("nozzle_temperature_range_high"); + if (opt_max) { + ConfigOptionInts* opt_max_ints = dynamic_cast(opt_max); + if (opt_max_ints) { + wxString text_nozzle_temp_max = wxString::Format("%d", opt_max_ints->get_at(0)); + m_input_nozzle_max->GetTextCtrl()->SetValue(text_nozzle_temp_max); + } + } + ConfigOption* opt_type = it->config.option("filament_type"); + bool found_filament_type = false; + if (opt_type) { + ConfigOptionStrings* opt_type_strs = dynamic_cast(opt_type); + if (opt_type_strs) { + found_filament_type = true; + //m_filament_type = opt_type_strs->get_at(0); + std::string display_filament_type; + m_filament_type = it->config.get_filament_type(display_filament_type); + } + } + if (!found_filament_type) + m_filament_type = ""; + + break; } } } diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 297a70018d..3668d76929 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -708,7 +708,6 @@ wxArrayString NewCalibrationHistoryDialog::get_all_filaments(const MachineObject wxArrayString filament_items; std::set filament_id_set; - std::set printer_names; std::ostringstream stream; // If the machine didn't report a nozzle diameter (0.0 = unknown), fall back to the currently // selected printer preset so the filament list isn't empty. @@ -720,67 +719,21 @@ wxArrayString NewCalibrationHistoryDialog::get_all_filaments(const MachineObject stream << std::fixed << std::setprecision(1) << machine_diameter; std::string nozzle_diameter_str = stream.str(); - for (auto printer_it = preset_bundle->printers.begin(); printer_it != preset_bundle->printers.end(); printer_it++) { - // filter by system preset - if (!printer_it->is_system) - continue; - // get printer_model - ConfigOption * printer_model_opt = printer_it->config.option("printer_model"); - ConfigOptionString *printer_model_str = dynamic_cast(printer_model_opt); - if (!printer_model_str) - continue; - - // use printer_model as printer type - if (printer_model_str->value != DevPrinterConfigUtil::get_printer_display_name(obj->printer_type)) - continue; - - if (printer_it->name.find(nozzle_diameter_str) != std::string::npos) - printer_names.insert(printer_it->name); - } - if (preset_bundle) { BOOST_LOG_TRIVIAL(trace) << "system_preset_bundle filament number=" << preset_bundle->filaments.size(); - for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) { - // filter by system preset - Preset &preset = *filament_it; - /*The situation where the user preset is not displayed is as follows: - 1. Not a root preset - 2. Not system preset and the printer firmware does not support user preset */ - if (preset_bundle->filaments.get_preset_base(*filament_it) != &preset || (!filament_it->is_system && ! obj->is_support_user_preset)) { continue; } + for (Preset *filament_it : preset_bundle->get_filament_presets_for_machine( + DevPrinterConfigUtil::get_printer_display_name(obj->printer_type), nozzle_diameter_str, obj->is_support_user_preset)) { + if (!filament_id_set.insert(filament_it->filament_id).second) + continue; + const std::string alias = preset_bundle->filaments.get_preset_alias(*filament_it, true); + if (alias.empty()) + continue; - ConfigOption * printer_opt = filament_it->config.option("compatible_printers"); - ConfigOptionStrings *printer_strs = dynamic_cast(printer_opt); - for (auto printer_str : printer_strs->values) { - if (printer_names.find(printer_str) != printer_names.end()) { - if (filament_id_set.find(filament_it->filament_id) != filament_id_set.end()) { - continue; - } else { - filament_id_set.insert(filament_it->filament_id); - // name matched - if (filament_it->is_system) { - filament_items.push_back(filament_it->alias); - FilamentInfos filament_infos; - filament_infos.filament_id = filament_it->filament_id; - filament_infos.setting_id = filament_it->setting_id; - map_filament_items[filament_it->alias] = filament_infos; - } else { - char target = '@'; - size_t pos = filament_it->name.find(target); - if (pos != std::string::npos) { - std::string user_preset_alias = filament_it->name.substr(0, pos - 1); - wxString wx_user_preset_alias = wxString(user_preset_alias.c_str(), wxConvUTF8); - user_preset_alias = wx_user_preset_alias.ToStdString(); - - filament_items.push_back(user_preset_alias); - FilamentInfos filament_infos; - filament_infos.filament_id = filament_it->filament_id; - filament_infos.setting_id = filament_it->setting_id; - map_filament_items[user_preset_alias] = filament_infos; - } - } - } - } - } + filament_items.push_back(alias); + FilamentInfos filament_infos; + filament_infos.filament_id = filament_it->filament_id; + filament_infos.setting_id = filament_it->setting_id; + map_filament_items[alias] = filament_infos; } } return filament_items; diff --git a/src/slic3r/GUI/ExtrusionCalibration.cpp b/src/slic3r/GUI/ExtrusionCalibration.cpp index cd7f5990a7..933e2ac211 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.cpp +++ b/src/slic3r/GUI/ExtrusionCalibration.cpp @@ -2,6 +2,7 @@ #include "GUI_App.hpp" #include "MsgDialog.hpp" #include "libslic3r/Preset.hpp" +#include #include "I18N.hpp" #include #include @@ -599,8 +600,10 @@ void ExtrusionCalibration::update_combobox_filaments() PresetBundle* preset_bundle = wxGetApp().preset_bundle; if (preset_bundle && obj) { BOOST_LOG_TRIVIAL(trace) << "system_preset_bundle filament number=" << preset_bundle->filaments.size(); - std::string printer_type = obj->printer_type; - std::set printer_preset_list; + double nozzle_value = 0.4; + m_comboBox_nozzle_dia->GetValue().ToDouble(&nozzle_value); + + std::vector printer_profiles; for (auto printer_it = preset_bundle->printers.begin(); printer_it != preset_bundle->printers.end(); printer_it++) { // only use system printer preset if (!printer_it->is_system) continue; @@ -610,49 +613,42 @@ void ExtrusionCalibration::update_combobox_filaments() ConfigOptionFloats* printer_nozzle_vals = nullptr; if (printer_nozzle_opt) printer_nozzle_vals = dynamic_cast(printer_nozzle_opt); - double nozzle_value = 0.4; - wxString nozzle_value_str = m_comboBox_nozzle_dia->GetValue(); - try { - nozzle_value_str.ToDouble(&nozzle_value); - } catch(...) { - ; - } if (!model_id.empty() && model_id.compare(obj->printer_type) == 0 && printer_nozzle_vals && abs(printer_nozzle_vals->get_at(0) - nozzle_value) < 1e-3) { - printer_preset_list.insert(printer_it->name); + printer_profiles.push_back(preset_bundle->printers.get_preset_with_vendor_profile(*printer_it)); BOOST_LOG_TRIVIAL(trace) << "extrusion_cali: printer_model = " << model_id; } else { BOOST_LOG_TRIVIAL(error) << "extrusion_cali: printer_model = " << model_id; } } + // Unlike the AMS dialogs this one offers every matching preset by full name rather than one + // root preset per alias, so it filters the collection itself instead of calling + // PresetBundle::get_filament_presets_for_machine(). for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) { - ConfigOption* printer_opt = filament_it->config.option("compatible_printers"); - ConfigOptionStrings* printer_strs = dynamic_cast(printer_opt); - for (auto printer_str : printer_strs->values) { - if (printer_preset_list.find(printer_str) != printer_preset_list.end()) { - user_filaments.push_back(&(*filament_it)); + const PresetWithVendorProfile filament = preset_bundle->filaments.get_preset_with_vendor_profile(*filament_it); + if (std::none_of(printer_profiles.begin(), printer_profiles.end(), + [&filament](const PresetWithVendorProfile &printer) { return is_compatible_with_printer(filament, printer); })) + continue; - // set default filament id - filament_index++; - if (filament_it->is_system - && !ams_filament_id.empty() - && filament_it->filament_id == ams_filament_id - ) { - curr_selection = filament_index; - } + user_filaments.push_back(&(*filament_it)); - if (filament_it->name == obj->extrusion_cali_filament_name && !obj->extrusion_cali_filament_name.empty()) - { - curr_selection = filament_index; - } - - wxString filament_name = wxString::FromUTF8(filament_it->name); - filament_items.Add(filament_name); - break; - } + // set default filament id + filament_index++; + if (filament_it->is_system + && !ams_filament_id.empty() + && filament_it->filament_id == ams_filament_id + ) { + curr_selection = filament_index; } + + if (filament_it->name == obj->extrusion_cali_filament_name && !obj->extrusion_cali_filament_name.empty()) + { + curr_selection = filament_index; + } + + filament_items.Add(wxString::FromUTF8(filament_it->name)); } m_comboBox_filament->Set(filament_items); m_comboBox_filament->SetSelection(curr_selection); diff --git a/tests/libslic3r/test_preset_bundle_loading.cpp b/tests/libslic3r/test_preset_bundle_loading.cpp index 55c18bfa9e..09f89eb9eb 100644 --- a/tests/libslic3r/test_preset_bundle_loading.cpp +++ b/tests/libslic3r/test_preset_bundle_loading.cpp @@ -1,5 +1,6 @@ #include +#include #include #include @@ -567,6 +568,88 @@ TEST_CASE("A printer specific filament supersedes the generic library filament w } +namespace { + +// One system printer plus the filament presets a machine facing dialog has to choose between: +// an Orca Filament Library generic with no compatible_printers, a same alias vendor filament +// that names the printer, a library filament with no vendor twin, and a vendor filament that +// belongs to a different printer. +struct MachineFilaments +{ + PresetBundle bundle; + VendorProfile library{PresetBundle::ORCA_FILAMENT_LIBRARY}; + VendorProfile vendor{"Vendor"}; + + MachineFilaments() + { + // VendorProfile's constructor takes an id; the library rule keys off the name. + library.name = PresetBundle::ORCA_FILAMENT_LIBRARY; + vendor.name = "Vendor"; + + Preset &printer = add_inmemory_preset(bundle.printers, "Printer A 0.4 nozzle"); + printer.is_system = true; + printer.vendor = &vendor; + printer.config.option("printer_model", true)->value = "Printer A"; + + add_filament(library, "Generic ABS @System", "Generic ABS", {}); + add_filament(vendor, "Generic ABS @Printer A", "Generic ABS", { "Printer A 0.4 nozzle" }); + add_filament(library, "FilAr ABS @System", "FilAr ABS", {}); + add_filament(vendor, "Vendor PLA @Printer B", "Vendor PLA", { "Printer B 0.4 nozzle" }); + + // update_library_profile_excluded_from() is protected and has its own test above; record + // the exclusion it derives from the same alias vendor filament. + Preset *shadowed = bundle.filaments.find_preset("Generic ABS @System"); + REQUIRE(shadowed != nullptr); + shadowed->m_excluded_from.insert("Printer A 0.4 nozzle"); + } + + void add_filament(const VendorProfile &owner, const std::string &name, const std::string &alias, + std::vector compatible_printers) + { + Preset &preset = add_inmemory_preset(bundle.filaments, name); + preset.is_system = true; + preset.alias = alias; + preset.vendor = &owner; + compatible_list(bundle.filaments, name, "compatible_printers") = std::move(compatible_printers); + } + + bool offers(const std::string &preset_name, bool include_user_presets = false) + { + const std::vector offered = + bundle.get_filament_presets_for_machine("Printer A", "0.4", include_user_presets); + return std::any_of(offered.begin(), offered.end(), + [&preset_name](const Preset *p) { return p->name == preset_name; }); + } +}; + +} // namespace + +TEST_CASE("Filaments offered for a machine follow the app's compatibility rule", "[Preset][Bundle]") +{ + MachineFilaments f; + + SECTION("a library filament with no compatible_printers is offered") { + CHECK(f.offers("FilAr ABS @System")); + } + + SECTION("a same alias vendor filament shadows the library generic") { + CHECK(f.offers("Generic ABS @Printer A")); + CHECK_FALSE(f.offers("Generic ABS @System")); + } + + SECTION("a filament naming a different printer is not offered") { + CHECK_FALSE(f.offers("Vendor PLA @Printer B")); + } + + SECTION("a user filament is offered only when the printer supports user presets") { + add_inmemory_preset(f.bundle.filaments, "My PLA"); + + CHECK_FALSE(f.offers("My PLA", /*include_user_presets=*/false)); + CHECK(f.offers("My PLA", /*include_user_presets=*/true)); + } +} + + namespace { const char *kMixedKeys[] = { From 4d67159ea2463dc662e00555b0203b9210c9e6bb Mon Sep 17 00:00:00 2001 From: raistlin7447 Date: Mon, 31 Aug 2026 08:20:26 -0500 Subject: [PATCH 085/164] fix: scope the CRLF override to the git apply invocation git config wrote core.autocrlf into the repository git init creates in the extracted CPython source. Nothing outside deps/build reads that repository, so the setting was already contained. -c applies the override to the one invocation instead, so no repository config is written at all. It cannot reuse PATCH_CMD, so the shared flags are spelled out here. --- deps/python3/python3.cmake | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/deps/python3/python3.cmake b/deps/python3/python3.cmake index 936d75f488..78eb6e72b2 100644 --- a/deps/python3/python3.cmake +++ b/deps/python3/python3.cmake @@ -16,11 +16,12 @@ if(WIN32) # Patch from https://github.com/python/cpython/pull/153608 # This patch has not been merged to 3.12 yet so we need to apply it manually # - # The config lands on the CPython repo git init just made, not OrcaSlicer. Without - # it the patched find_python.bat comes out LF and cmd.exe cannot find its goto labels. + # Without core.autocrlf=false the patched find_python.bat comes out LF and + # cmd.exe cannot find its goto labels. set(_patch_cmd git init - && git config core.autocrlf false - && ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/01-windows-nuget.patch) + && ${GIT_EXECUTABLE} -c core.autocrlf=false apply --verbose + --ignore-space-change --whitespace=fix + ${CMAKE_CURRENT_LIST_DIR}/01-windows-nuget.patch) if(MSVC_VERSION EQUAL 1800) set(_python_platform_toolset v120) From 36740ffdd8106834959830b58c15e4ed7cc55685 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Mon, 31 Aug 2026 08:55:42 -0500 Subject: [PATCH 086/164] build: clear 53 warnings - discarded values and i18n markers (#15421) build: clear 53 unused value warnings 49 of them are deliberate i18n markers. L(s) expands to s, so L("Main Extruder"); is a string literal as a statement and its value is discarded. The strings have to stay, because the real values come from printers/*.json at runtime and xgettext cannot scan those. Each block is now a static const char *const markers[], which uses the values rather than discarding them. Extraction is unchanged: the xgettext invocation from scripts/run_gettext.bat gives 76 msgids over the two marker files before and after, with identical msgid and msgctxt sets. The other 4 are statements with no effect. AMSItem.cpp:117 and :174 construct and drop a wxColour(255, 255, 255); AMS_TRAY_DEFAULT_COL is that colour, and the line above already assigns it. UpgradePanel.cpp:865 reads a member and drops it. wgtDeviceNozzleSelect.cpp:269 writes if (item; auto ptr = m_nozzle_rack.lock()), which puts the null check in the init-statement position where its value is discarded, so the check never runs, and sGetNozzlePosId then dereferences item. Nothing reaches that today, because the only sender of the event sets itself as the event object and the dynamic_cast always succeeds. The check now runs. --- src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp | 39 ++++++++++--------- .../GUI/DeviceTab/wgtDeviceNozzleSelect.cpp | 2 +- src/slic3r/GUI/UpgradePanel.cpp | 1 - src/slic3r/GUI/Widgets/AMSItem.cpp | 2 - src/slic3r/GUI/Widgets/FanControl.cpp | 18 ++++++--- 5 files changed, 35 insertions(+), 27 deletions(-) diff --git a/src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp b/src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp index b86d3cde98..25008cad29 100644 --- a/src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp +++ b/src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp @@ -16,24 +16,27 @@ namespace Slic3r // This block is never executed at runtime. static void _toolhead_translation_markers() { - // Dynamic toolhead display names from JSON config — xgettext cannot scan these - L("Main Extruder"); L("Main extruder"); L("main extruder"); - L("Auxiliary Extruder"); L("Auxiliary extruder"); L("auxiliary extruder"); - L("Left Extruder"); L("Left extruder"); L("left extruder"); - L("Right Extruder"); L("Right extruder"); L("right extruder"); - L("Main Nozzle"); L("Main nozzle"); L("main nozzle"); - L("Auxiliary Nozzle"); L("Auxiliary nozzle"); L("auxiliary nozzle"); - L("Left Nozzle"); L("Left nozzle"); L("left nozzle"); - L("Right Nozzle"); L("Right nozzle"); L("right nozzle"); - L("Main Hotend"); L("Main hotend"); L("main hotend"); - L("Auxiliary Hotend"); L("Auxiliary hotend"); L("auxiliary hotend"); - L("Left Hotend"); L("Left hotend"); L("left hotend"); - L("Right Hotend"); L("Right hotend"); L("right hotend"); - // standalone position words (short_name=true runtime results) - L("main"); L("auxiliary"); - L("Main"); L("Auxiliary"); - L("left"); L("right"); - L("Left"); L("Right"); + // Possible runtime values of tool_head_display_names, marked for extraction. + static const char *const markers[] = { + L("Main Extruder"), L("Main extruder"), L("main extruder"), + L("Auxiliary Extruder"), L("Auxiliary extruder"), L("auxiliary extruder"), + L("Left Extruder"), L("Left extruder"), L("left extruder"), + L("Right Extruder"), L("Right extruder"), L("right extruder"), + L("Main Nozzle"), L("Main nozzle"), L("main nozzle"), + L("Auxiliary Nozzle"), L("Auxiliary nozzle"), L("auxiliary nozzle"), + L("Left Nozzle"), L("Left nozzle"), L("left nozzle"), + L("Right Nozzle"), L("Right nozzle"), L("right nozzle"), + L("Main Hotend"), L("Main hotend"), L("main hotend"), + L("Auxiliary Hotend"), L("Auxiliary hotend"), L("auxiliary hotend"), + L("Left Hotend"), L("Left hotend"), L("left hotend"), + L("Right Hotend"), L("Right hotend"), L("right hotend"), + // standalone position words (short_name=true runtime results) + L("main"), L("auxiliary"), + L("Main"), L("Auxiliary"), + L("left"), L("right"), + L("Left"), L("Right"), + }; + (void) markers; } std::string DevPrinterConfigUtil::m_resource_file_path = ""; diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp index c383815f8c..4dc072d721 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp @@ -266,7 +266,7 @@ void wgtDeviceNozzleRackSelect::OnNozzleItemSelected(wxCommandEvent &evt) } auto *item = dynamic_cast(evt.GetEventObject()); - if (item; auto ptr = m_nozzle_rack.lock()) { + if (auto ptr = m_nozzle_rack.lock(); item && ptr) { int to_select_pos_id = sGetNozzlePosId(item, m_toolhead_nozzle_l, m_toolhead_nozzle_r); if (to_select_pos_id > -1 && to_select_pos_id != GetSelectedNozzlePosID()) { SetSelectedNozzle(ptr->GetNozzleSystem()->GetNozzleByPosId(to_select_pos_id)); diff --git a/src/slic3r/GUI/UpgradePanel.cpp b/src/slic3r/GUI/UpgradePanel.cpp index 96b9c1b481..d31fde8613 100644 --- a/src/slic3r/GUI/UpgradePanel.cpp +++ b/src/slic3r/GUI/UpgradePanel.cpp @@ -862,7 +862,6 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj) if (new_extra_ams_ver != obj->new_ver_list.end()) has_new_version = true; - extra_ams_it->second.sw_new_ver; if (has_new_version) { m_extra_ams_panel->m_ams_new_version_img->Show(); ver_text = new_extra_ams_ver->second.sw_ver; diff --git a/src/slic3r/GUI/Widgets/AMSItem.cpp b/src/slic3r/GUI/Widgets/AMSItem.cpp index f99e5f49fd..9d5ec9c1c1 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.cpp +++ b/src/slic3r/GUI/Widgets/AMSItem.cpp @@ -114,7 +114,6 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, DevAms *ams, bool remain_flag, info.ctype = 0; info.material_colour = AMS_TRAY_DEFAULT_COL; info.material_state = AMSCanType::AMS_CAN_TYPE_THIRDBRAND; - wxColour(255, 255, 255); } if (it->second->is_tray_info_ready() && obj->cali_version >= 0) { @@ -171,7 +170,6 @@ void AMSinfo::parse_ext_info(MachineObject* obj, DevAmsTray tray) { info.filament_id = ""; info.ctype = 0; info.material_colour = AMS_TRAY_DEFAULT_COL; - wxColour(255, 255, 255); } info.material_state = AMSCanType::AMS_CAN_TYPE_VIRTUAL; if (tray.is_tray_info_ready() && obj->cali_version >= 0) { diff --git a/src/slic3r/GUI/Widgets/FanControl.cpp b/src/slic3r/GUI/Widgets/FanControl.cpp index 057baca430..f10553814e 100644 --- a/src/slic3r/GUI/Widgets/FanControl.cpp +++ b/src/slic3r/GUI/Widgets/FanControl.cpp @@ -1014,8 +1014,12 @@ void FanControlPopupNew::init_names(MachineObject* obj) { if (obj) { const std::string& special_cooling_text = DevPrinterConfigUtil::get_fan_text(obj->printer_type, "special_cooling_text"); if (!special_cooling_text.empty()) { - L("Cooling mode is suitable for printing PLA/PETG/TPU materials."); //some potential text, add i18n flags - L("Cooling mode is suitable for printing PLA/PETG/TPU materials and filters the chamber air."); + // Possible runtime values of special_cooling_text, marked for extraction. + static const char *const markers[] = { + L("Cooling mode is suitable for printing PLA/PETG/TPU materials."), + L("Cooling mode is suitable for printing PLA/PETG/TPU materials and filters the chamber air."), + }; + (void) markers; label_text[AIR_DUCT::AIR_DUCT_COOLING_FILT] = _L(special_cooling_text); } } @@ -1028,9 +1032,13 @@ wxString FanControlPopupNew::get_fan_func_name(int mode, int submode, AIR_FUN fu const std::string& func_text = DevPrinterConfigUtil::get_fan_text(m_obj->printer_type, mode, (int)func, submode); if (!func_text.empty()) { - L_CONTEXT("Right(Aux)", "air_duct"); - L_CONTEXT("Right(Filter)", "air_duct"); - L_CONTEXT("Left(Aux)", "air_duct"); + // Possible runtime values of func_text, marked for extraction. + static const char *const markers[] = { + L_CONTEXT("Right(Aux)", "air_duct"), + L_CONTEXT("Right(Filter)", "air_duct"), + L_CONTEXT("Left(Aux)", "air_duct"), + }; + (void) markers; return _L_CONTEXT(func_text, "air_duct"); } } From fcf6f0a3a54ba28b31e814103eaaa35dea4a7394 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Mon, 31 Aug 2026 14:36:52 -0500 Subject: [PATCH 087/164] build: clear 54 warnings - dead private fields (#15423) build: clear 54 dead private fields 54 of the 161 -Wunused-private-field warnings, across 31 files. These are the ones needing no judgment. Each member is declared once and appears nowhere else in src/, counting the .mm and .c sources as well as .cpp and .hpp, so nothing writes them and nothing reads them. Every removal is a whole line, and no declaration shares a line with another member. The remaining 107 are left alone. Those members are mentioned elsewhere, usually assigned and never read, where the fix might be deleting the member or might be restoring a read that went missing. --- src/libslic3r/GCodeWriter.hpp | 1 - src/slic3r/GUI/AMSDryControl.hpp | 1 - src/slic3r/GUI/AboutDialog.hpp | 1 - src/slic3r/GUI/BBLTopbar.hpp | 1 - src/slic3r/GUI/CreatePresetsDialog.hpp | 2 -- src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp | 1 - src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h | 2 -- src/slic3r/GUI/GCodeViewer.hpp | 1 - src/slic3r/GUI/GLToolbar.hpp | 1 - src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp | 1 - src/slic3r/GUI/IMSlider.hpp | 5 ----- src/slic3r/GUI/MediaFilePanel.h | 1 - src/slic3r/GUI/Monitor.hpp | 4 ---- src/slic3r/GUI/MultiMachineManagerPage.hpp | 1 - src/slic3r/GUI/ObjColorDialog.hpp | 1 - src/slic3r/GUI/PartSkipDialog.hpp | 1 - src/slic3r/GUI/PhysicalPrinterDialog.hpp | 1 - src/slic3r/GUI/Project.hpp | 1 - src/slic3r/GUI/RecenterDialog.hpp | 2 -- src/slic3r/GUI/SelectMachinePop.hpp | 2 -- src/slic3r/GUI/SendMultiMachinePage.hpp | 1 - src/slic3r/GUI/SendToPrinter.hpp | 2 -- src/slic3r/GUI/SkipPartCanvas.hpp | 1 - src/slic3r/GUI/SyncAmsInfoDialog.hpp | 3 --- src/slic3r/GUI/Tab.hpp | 2 -- src/slic3r/GUI/ThermalPreconditioningDialog.hpp | 1 - src/slic3r/GUI/WebGuideDialog.hpp | 1 - src/slic3r/GUI/WebViewDialog.hpp | 4 ---- src/slic3r/GUI/Widgets/AMSItem.hpp | 6 ------ src/slic3r/GUI/Widgets/FanControl.hpp | 1 - src/slic3r/GUI/Widgets/MultiNozzleSync.hpp | 1 - 31 files changed, 54 deletions(-) diff --git a/src/libslic3r/GCodeWriter.hpp b/src/libslic3r/GCodeWriter.hpp index fcb63c3e96..8247ab757a 100644 --- a/src/libslic3r/GCodeWriter.hpp +++ b/src/libslic3r/GCodeWriter.hpp @@ -165,7 +165,6 @@ public: //BBS - unsigned int m_last_additional_fan_speed; int m_last_bed_temperature; bool m_last_bed_temperature_reached; double m_lifted; diff --git a/src/slic3r/GUI/AMSDryControl.hpp b/src/slic3r/GUI/AMSDryControl.hpp index a7500b5b03..46699650d6 100644 --- a/src/slic3r/GUI/AMSDryControl.hpp +++ b/src/slic3r/GUI/AMSDryControl.hpp @@ -55,7 +55,6 @@ private: Label* m_text_label; wxStaticBitmap* m_icon_bitmap; - int m_target_size; std::string m_icon_name; ScalableBitmap m_icon; }; diff --git a/src/slic3r/GUI/AboutDialog.hpp b/src/slic3r/GUI/AboutDialog.hpp index 8dc72d15a3..e96c74ba08 100644 --- a/src/slic3r/GUI/AboutDialog.hpp +++ b/src/slic3r/GUI/AboutDialog.hpp @@ -60,7 +60,6 @@ class AboutDialog : public DPIDialog wxHtmlWindow* m_html; wxStaticBitmap* m_logo; int m_copy_rights_btn_id { wxID_ANY }; - int m_copy_version_btn_id { wxID_ANY }; public: AboutDialog(); diff --git a/src/slic3r/GUI/BBLTopbar.hpp b/src/slic3r/GUI/BBLTopbar.hpp index 465126944b..e60a95f64f 100644 --- a/src/slic3r/GUI/BBLTopbar.hpp +++ b/src/slic3r/GUI/BBLTopbar.hpp @@ -93,7 +93,6 @@ private: CenteredTitle* m_title_ctrl { nullptr }; wxString m_titleText; - wxAuiToolBarItem* m_account_item; wxAuiToolBarItem* m_model_store_item; //wxAuiToolBarItem *m_publish_item; diff --git a/src/slic3r/GUI/CreatePresetsDialog.hpp b/src/slic3r/GUI/CreatePresetsDialog.hpp index 678f4d40fd..701779b1bf 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.hpp +++ b/src/slic3r/GUI/CreatePresetsDialog.hpp @@ -74,12 +74,10 @@ private: std::unordered_set m_system_filament_types_set; std::set m_visible_printers; CreateType m_create_type; - Button * m_button_create = nullptr; Button * m_button_cancel = nullptr; ComboBox * m_filament_vendor_combobox = nullptr; ::CheckBox * m_can_not_find_vendor_checkbox = nullptr; ComboBox * m_filament_type_combobox = nullptr; - ComboBox * m_exist_vendor_combobox = nullptr; ComboBox * m_filament_preset_combobox = nullptr; TextInput * m_filament_custom_vendor_input = nullptr; wxGridSizer * m_filament_presets_sizer = nullptr; diff --git a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp index 18dd3c4301..be8f957c94 100644 --- a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp +++ b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp @@ -199,7 +199,6 @@ private: void OnRefreshButton(wxCommandEvent& event); private: - int saveTimes{0}; wxBoxSizer* mainSizer{nullptr}; wxPanel* textPanel{nullptr}; wxBoxSizer* textSizer{nullptr}; diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h index 8275638831..06b950cd7e 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h @@ -122,7 +122,6 @@ private: private: int m_ext_nozzle_id = -1; int m_rack_nozzle_id = -1; - bool m_isRefreshFinish = false; bool findNozzleImage = false; NozzleStatus m_nozzle_status = NOZZLE_STATUS_DC; @@ -154,7 +153,6 @@ private: Label* m_diameter_label; Label* m_flowtype_label; Label* m_type_label; - ScalableButton* m_error_button{ nullptr }; Label* m_sn_label; Label* m_version_label; diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index a19f7bb9ae..5ba748775c 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -72,7 +72,6 @@ public: float m_model_z_offset{ 0.5f }; bool m_visible{ true }; bool m_is_dark = false; - bool m_fixed_screen_size{ false }; float m_scale_factor{ 1.0f }; #if ENABLE_ACTUAL_SPEED_DEBUG ActualSpeedImguiWidget m_actual_speed_imgui_widget; diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index 85413edc66..c4bc88045e 100644 --- a/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp @@ -327,7 +327,6 @@ private: GLTexture m_icons_texture; bool m_icons_texture_dirty; mutable GLTexture m_images_texture; - mutable bool m_images_texture_dirty; BackgroundTexture m_background_texture; GLTexture m_arrow_texture; Layout m_layout; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp index f42d327a0e..57a6cc1981 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp @@ -86,7 +86,6 @@ private: boost::thread m_thread; // Mutex and condition variable to synchronize m_thread with the UI thread. std::mutex m_mutex; - int m_generate_count; // This map holds all translated description texts, so they can be easily referenced during layout calculations // etc. When language changes, GUI is recreated and this class constructed again, so the change takes effect. diff --git a/src/slic3r/GUI/IMSlider.hpp b/src/slic3r/GUI/IMSlider.hpp index bd2399e990..45e4d6ccb8 100644 --- a/src/slic3r/GUI/IMSlider.hpp +++ b/src/slic3r/GUI/IMSlider.hpp @@ -176,7 +176,6 @@ private: // Use those values to disable selection of active extruders bool m_is_dark = false; - bool is_osx{false}; int m_min_value; int m_max_value; int m_lower_value; @@ -201,10 +200,6 @@ private: void *m_one_layer_on_hover_id; void *m_one_layer_off_id; void *m_one_layer_off_hover_id; - void* m_one_layer_on_light_id; - void* m_one_layer_on_hover_light_id; - void* m_one_layer_off_light_id; - void* m_one_layer_off_hover_light_id; void* m_one_layer_on_dark_id; void* m_one_layer_on_hover_dark_id; void* m_one_layer_off_dark_id; diff --git a/src/slic3r/GUI/MediaFilePanel.h b/src/slic3r/GUI/MediaFilePanel.h index 72fbc96a13..36696d2225 100644 --- a/src/slic3r/GUI/MediaFilePanel.h +++ b/src/slic3r/GUI/MediaFilePanel.h @@ -61,7 +61,6 @@ private: ::Button *m_button_year = nullptr; ::Button *m_button_month = nullptr; ::Button *m_button_all = nullptr; - ::Label *m_switch_label = nullptr; ::StaticBox * m_type_panel = nullptr; ::Button * m_button_video = nullptr; diff --git a/src/slic3r/GUI/Monitor.hpp b/src/slic3r/GUI/Monitor.hpp index fe115a351a..13688d6526 100644 --- a/src/slic3r/GUI/Monitor.hpp +++ b/src/slic3r/GUI/Monitor.hpp @@ -86,11 +86,8 @@ private: /* side tools */ SideTools* m_side_tools{nullptr}; - wxStaticBitmap* m_bitmap_printer_type; wxStaticBitmap* m_bitmap_arrow; - wxStaticText* m_staticText_printer_name; wxStaticBitmap* m_bitmap_wifi_signal; - wxBoxSizer * m_side_tools_sizer; SelectMachinePopup m_select_machine; /* images */ @@ -101,7 +98,6 @@ private: wxBitmap m_printer_img; wxBitmap m_arrow_img; - int last_wifi_signal = -1; int last_status; bool m_initialized { false }; bool update_flag{false}; diff --git a/src/slic3r/GUI/MultiMachineManagerPage.hpp b/src/slic3r/GUI/MultiMachineManagerPage.hpp index 7bb12ffc75..2576e36f12 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.hpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.hpp @@ -88,7 +88,6 @@ private: Button* m_task_name{ nullptr }; Button* m_status{ nullptr }; Button* m_action{ nullptr }; - Button* m_stop_all_botton{nullptr}; // tip when no device wxStaticText* m_tip_text{ nullptr }; diff --git a/src/slic3r/GUI/ObjColorDialog.hpp b/src/slic3r/GUI/ObjColorDialog.hpp index 1ad74cdccd..19ed1dcb24 100644 --- a/src/slic3r/GUI/ObjColorDialog.hpp +++ b/src/slic3r/GUI/ObjColorDialog.hpp @@ -79,7 +79,6 @@ private: std::vector m_row_col_boxsizer_list; std::vector m_result_icon_list; int m_last_cluster_num{-1}; - const int m_combox_width{50}; int m_combox_icon_width; int m_combox_icon_height; wxButton * m_image_button = nullptr; diff --git a/src/slic3r/GUI/PartSkipDialog.hpp b/src/slic3r/GUI/PartSkipDialog.hpp index 95eba9f24d..b95681dcde 100644 --- a/src/slic3r/GUI/PartSkipDialog.hpp +++ b/src/slic3r/GUI/PartSkipDialog.hpp @@ -128,7 +128,6 @@ private: bool is_drag_mode(); boost::shared_ptr m_file_sys; - bool m_file_sys_result{false}; std::string m_timestamp; std::string m_tmp_path; std::vector m_local_paths; diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.hpp b/src/slic3r/GUI/PhysicalPrinterDialog.hpp index 0ba2cad54f..c32da334be 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.hpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.hpp @@ -33,7 +33,6 @@ class PhysicalPrinterDialog : public DPIDialog Button* m_printhost_test_btn {nullptr}; Button* m_printhost_logout_btn {nullptr}; Button* m_printhost_cafile_browse_btn {nullptr}; - Button* m_printhost_client_cert_browse_btn {nullptr}; Button* m_printhost_port_browse_btn {nullptr}; RoundedRectangle* m_input_area {nullptr}; diff --git a/src/slic3r/GUI/Project.hpp b/src/slic3r/GUI/Project.hpp index a41f76ba7e..a590212cb7 100644 --- a/src/slic3r/GUI/Project.hpp +++ b/src/slic3r/GUI/Project.hpp @@ -63,7 +63,6 @@ class ProjectPanel : public wxPanel { private: std::atomic m_web_init_completed{false}; - bool m_reload_already = {false}; std::shared_ptr> m_reload_cancel_token{std::make_shared>(false)}; std::unique_ptr m_reload_task; diff --git a/src/slic3r/GUI/RecenterDialog.hpp b/src/slic3r/GUI/RecenterDialog.hpp index 1e48e7990b..cd7511d3f5 100644 --- a/src/slic3r/GUI/RecenterDialog.hpp +++ b/src/slic3r/GUI/RecenterDialog.hpp @@ -10,8 +10,6 @@ namespace Slic3r { namespace GUI { class RecenterDialog : public DPIDialog { private: - wxStaticText* m_staticText_hint; - wxStaticBitmap* m_bitmap_home; ScalableBitmap m_home_bmp; wxString hint1; wxString hint2; diff --git a/src/slic3r/GUI/SelectMachinePop.hpp b/src/slic3r/GUI/SelectMachinePop.hpp index 757cb08ed5..764ffd6af5 100644 --- a/src/slic3r/GUI/SelectMachinePop.hpp +++ b/src/slic3r/GUI/SelectMachinePop.hpp @@ -181,8 +181,6 @@ private: PinCodePanel* m_panel_direct_connection{nullptr}; wxWindow* m_placeholder_panel{nullptr}; HyperLink* m_hyperlink{nullptr}; // ORCA - Label* m_ping_code_text{nullptr}; - wxStaticBitmap* m_img_ping_code{nullptr}; wxBoxSizer * m_sizer_body{nullptr}; wxBoxSizer * m_sizer_my_devices{nullptr}; wxBoxSizer * m_sizer_other_devices{nullptr}; diff --git a/src/slic3r/GUI/SendMultiMachinePage.hpp b/src/slic3r/GUI/SendMultiMachinePage.hpp index a531e01262..7d77849bf3 100644 --- a/src/slic3r/GUI/SendMultiMachinePage.hpp +++ b/src/slic3r/GUI/SendMultiMachinePage.hpp @@ -149,7 +149,6 @@ private: ScalableBitmap* print_time{ nullptr }; wxStaticBitmap* weightimg{ nullptr }; ScalableBitmap* print_weight{ nullptr }; - wxBoxSizer* m_thumbnail_sizer{ nullptr }; ThumbnailPanel* m_thumbnail_panel{nullptr}; wxPanel* m_panel_image{ nullptr }; wxBoxSizer* m_image_sizer{ nullptr }; diff --git a/src/slic3r/GUI/SendToPrinter.hpp b/src/slic3r/GUI/SendToPrinter.hpp index 87948b28c3..93215c4e06 100644 --- a/src/slic3r/GUI/SendToPrinter.hpp +++ b/src/slic3r/GUI/SendToPrinter.hpp @@ -62,7 +62,6 @@ private: bool m_is_in_sending_mode{ false }; bool m_is_rename_mode{ false }; bool enable_prepare_mode{ true }; - bool m_need_adaptation_screen{ false }; bool m_export_3mf_cancel{ false }; bool m_is_canceled{ false }; bool m_tcp_try_connect{true}; @@ -81,7 +80,6 @@ private: wxStaticBitmap* m_staticbitmap{ nullptr }; ThumbnailPanel* m_thumbnailPanel{ nullptr }; ComboBox* m_comboBox_printer{ nullptr }; - ComboBox* m_comboBox_bed{ nullptr }; Button* m_rename_button{ nullptr }; Button* m_button_refresh{ nullptr }; Button* m_button_ensure{ nullptr }; diff --git a/src/slic3r/GUI/SkipPartCanvas.hpp b/src/slic3r/GUI/SkipPartCanvas.hpp index a9c8f1fec7..d70ad3718f 100644 --- a/src/slic3r/GUI/SkipPartCanvas.hpp +++ b/src/slic3r/GUI/SkipPartCanvas.hpp @@ -87,7 +87,6 @@ private: std::unordered_map < uint32_t, std::vector>> parts_triangles_; std::unordered_map < uint32_t, std::vector>> pick_parts_; std::unordered_map parts_state_; - bool gl_inited_{false}; int zoom_percent_{100}; wxPoint offset_{0,0}; wxPoint drag_start_offset_{0,0}; diff --git a/src/slic3r/GUI/SyncAmsInfoDialog.hpp b/src/slic3r/GUI/SyncAmsInfoDialog.hpp index 248ca4032c..b0868f8c58 100644 --- a/src/slic3r/GUI/SyncAmsInfoDialog.hpp +++ b/src/slic3r/GUI/SyncAmsInfoDialog.hpp @@ -307,8 +307,6 @@ private: // wxBoxSizer * m_plate_combox_sizer = nullptr; wxBoxSizer * m_mode_combox_sizer = nullptr; //wxStaticText * m_printer_title = nullptr; - wxStaticText * m_printer_device_name = nullptr; - wxStaticText * m_printer_is_map_title = nullptr; CapsuleButton * m_colormap_btn = nullptr; CapsuleButton * m_override_btn = nullptr; @@ -326,7 +324,6 @@ private: bool m_check_dirty_fialment = true; bool m_expand_more_settings = true; - bool m_image_is_top = false; const int LEFT_THUMBNAIL_SIZE_WIDTH = 100; const int RIGHT_THUMBNAIL_SIZE_WIDTH = 300; diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index c6041ba1ea..5069b76417 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -626,8 +626,6 @@ private: bool m_rebuild_kinematics_page = false; void update_input_shaper_menu(GCodeFlavor flavor); - ogStaticText* m_fff_print_host_upload_description_line {nullptr}; - ogStaticText* m_sla_print_host_upload_description_line {nullptr}; std::vector m_pages_fff; std::vector m_pages_sla; diff --git a/src/slic3r/GUI/ThermalPreconditioningDialog.hpp b/src/slic3r/GUI/ThermalPreconditioningDialog.hpp index d13a1d19f5..57cda90b18 100644 --- a/src/slic3r/GUI/ThermalPreconditioningDialog.hpp +++ b/src/slic3r/GUI/ThermalPreconditioningDialog.hpp @@ -31,7 +31,6 @@ private: wxStaticText *m_remaining_time_label; wxStaticText *m_explanation_label; wxButton *m_ok_button; - wxStaticBitmap *m_title_bitmap; DECLARE_EVENT_TABLE() }; diff --git a/src/slic3r/GUI/WebGuideDialog.hpp b/src/slic3r/GUI/WebGuideDialog.hpp index b9592d03fe..c4cfc8bf6d 100644 --- a/src/slic3r/GUI/WebGuideDialog.hpp +++ b/src/slic3r/GUI/WebGuideDialog.hpp @@ -112,7 +112,6 @@ private: AppConfig m_appconfig_new; wxWebView *m_browser; - wxButton * m_TestBtn; wxString m_SectionName; diff --git a/src/slic3r/GUI/WebViewDialog.hpp b/src/slic3r/GUI/WebViewDialog.hpp index 23b3c711a1..123025ef85 100644 --- a/src/slic3r/GUI/WebViewDialog.hpp +++ b/src/slic3r/GUI/WebViewDialog.hpp @@ -125,10 +125,6 @@ private: wxMenuItem* m_edit_undo; wxMenuItem* m_edit_redo; wxMenuItem* m_edit_mode; - wxMenuItem* m_scroll_line_up; - wxMenuItem* m_scroll_line_down; - wxMenuItem* m_scroll_page_up; - wxMenuItem* m_scroll_page_down; wxMenuItem* m_script_string; wxMenuItem* m_script_integer; wxMenuItem* m_script_double; diff --git a/src/slic3r/GUI/Widgets/AMSItem.hpp b/src/slic3r/GUI/Widgets/AMSItem.hpp index d7dc26a741..c43c71f580 100644 --- a/src/slic3r/GUI/Widgets/AMSItem.hpp +++ b/src/slic3r/GUI/Widgets/AMSItem.hpp @@ -684,7 +684,6 @@ public: private: int m_nozzle_num = {1}; - AMSRoadShowMode m_single_ext_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}; AMSRoadShowMode m_left_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}; AMSRoadShowMode m_right_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR}; bool m_selected = {false}; @@ -693,7 +692,6 @@ private: int m_right_road_length = {-1}; int m_passroad_width = {6}; double m_radius = {4}; - AMSPassRoadType m_pass_road_type = {AMSPassRoadType::AMS_ROAD_TYPE_NONE}; AMSPassRoadSTEP m_pass_road_left_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}; AMSPassRoadSTEP m_pass_road_right_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE}; @@ -866,11 +864,7 @@ private: AMSinfo m_info; wxBoxSizer * sizer_can = {nullptr}; wxGridSizer* sizer_can_extra = { nullptr }; - wxBoxSizer * sizer_humidity = { nullptr }; wxBoxSizer * sizer_item = { nullptr }; - wxBoxSizer * sizer_can_middle = {nullptr}; - wxBoxSizer * sizer_can_left = {nullptr}; - wxBoxSizer * sizer_can_right = {nullptr}; AMSExtImage* m_ext_image = { nullptr }; //the ext image upon the ext ams AMSExtText* m_ext_text = { nullptr }; //the ext text upon the ext ams }; diff --git a/src/slic3r/GUI/Widgets/FanControl.hpp b/src/slic3r/GUI/Widgets/FanControl.hpp index fc29d22000..b13ce19d41 100644 --- a/src/slic3r/GUI/Widgets/FanControl.hpp +++ b/src/slic3r/GUI/Widgets/FanControl.hpp @@ -109,7 +109,6 @@ public: void decrease_fan_speeds(); private: int m_current_speeds; - int m_target_speed; int m_min_speeds; int m_max_speeds; ScalableBitmap m_bitmap_add; diff --git a/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp b/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp index 3af524c2fc..3baea061dc 100644 --- a/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp +++ b/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp @@ -204,7 +204,6 @@ private: Label* m_caution; wxTimer* m_refresh_timer {nullptr}; - size_t m_rack_event_token; Button* m_cancel_btn; Button* m_confirm_btn; }; From ca903faa56bcfe429ef45806d962d6e15ec7c2d9 Mon Sep 17 00:00:00 2001 From: Leo Lobato Date: Mon, 31 Aug 2026 21:36:55 +0200 Subject: [PATCH 088/164] Fix uninitialized first_layer_time on CLI-sliced 3MF (#13429) PartPlate::store_to_3mf_structure read first_layer_time from the indirect cali_bboxes_data struct, which the GUI populates at Plater.cpp:10600 but the CLI never writes to. The result was uninitialized memory leaking into slice_info.config Read directly from get_slice_result()->initial_layer_time, which is populated by GCodeProcessor::finalize() in both code paths and matches the pattern already used a few lines above for gcode_prediction. Also default-initialize PlateBBoxData::first_layer_time to 0.0f as a defense against any other consumer reading it without an explicit write. --- src/libslic3r/GCode/ThumbnailData.hpp | 2 +- src/slic3r/GUI/PartPlate.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/GCode/ThumbnailData.hpp b/src/libslic3r/GCode/ThumbnailData.hpp index 82563d64f2..bc37ad40c4 100644 --- a/src/libslic3r/GCode/ThumbnailData.hpp +++ b/src/libslic3r/GCode/ThumbnailData.hpp @@ -78,7 +78,7 @@ struct PlateBBoxData int first_extruder = 0; float nozzle_diameter = 0.4; std::string bed_type; - float first_layer_time; + float first_layer_time = 0.0f; // version 1: use view type ColorPrint (filament color) // version 2: use view type FilamentId (filament id) int version = 2; diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 7bb3bec12b..59a857816e 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -6470,7 +6470,7 @@ int PartPlateList::store_to_3mf_structure(PlateDataPtrs& plate_data_list, bool w plate_data_item->filament_change_sequence = m_plate_list[i]->m_gcode_result->filament_change_sequence; plate_data_item->nozzle_change_sequence = m_plate_list[i]->m_gcode_result->nozzle_change_sequence; plate_data_item->optimal_assignment = m_plate_list[i]->m_gcode_result->optimal_assignment; - plate_data_item->first_layer_time = std::to_string(m_plate_list[i]->cali_bboxes_data.first_layer_time); + plate_data_item->first_layer_time = std::to_string(m_plate_list[i]->get_slice_result()->initial_layer_time); Print *print = nullptr; m_plate_list[i]->get_print((PrintBase **) &print, nullptr, nullptr); if (print) { From 5436e422b98ccde9148c8be4413935aef8c3b54e Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Mon, 31 Aug 2026 14:59:58 -0500 Subject: [PATCH 089/164] ci: build macOS with 3 parallel jobs instead of 1 (#15393) --- .github/workflows/build_deps.yml | 2 +- .github/workflows/build_orca.yml | 4 ++-- build_release_macos.sh | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index 4e01051073..f9e5c57c34 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -151,7 +151,7 @@ jobs: if [ -z "${{ vars.SELF_HOSTED }}" ]; then brew install automake texinfo libtool pkgconf yasm nasm fi - ./build_release_macos.sh -dx ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15 + ./build_release_macos.sh -dx ${{ !vars.SELF_HOSTED && '-j 3' || '' }} -a ${{ inputs.arch }} -t 10.15 (cd "${{ github.workspace }}/deps/build/${{ inputs.arch }}" && \ find . -mindepth 1 -maxdepth 1 ! -name 'OrcaSlicer_dep' -exec rm -rf {} +) diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index e8dcef0b05..c73524d6f0 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -145,7 +145,7 @@ jobs: env: ORCA_TESTS_BUILD_ONLY: ${{ inputs.arch == 'arm64' && '1' || '' }} run: | - ./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15 ${{ inputs.arch == 'arm64' && '-T' || '' }} + ./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-j 3' || '' }} -a ${{ inputs.arch }} -t 10.15 ${{ inputs.arch == 'arm64' && '-T' || '' }} - name: Pack unit tests mac if: runner.os == 'macOS' && !inputs.macos-combine-only && inputs.arch == 'arm64' @@ -204,7 +204,7 @@ jobs: if: runner.os == 'macOS' && inputs.macos-combine-only working-directory: ${{ github.workspace }} run: | - ./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15 + ./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-j 3' || '' }} -a universal -t 10.15 # Thanks to RaySajuuk, it's working now - name: Sign app and notary diff --git a/build_release_macos.sh b/build_release_macos.sh index 2fd7b26cd8..b1de5df2e4 100755 --- a/build_release_macos.sh +++ b/build_release_macos.sh @@ -4,7 +4,7 @@ set -e set -o pipefail SECONDS=0 -while getopts ":dpa:snt:xbc:i:1Tuh" opt; do +while getopts ":dpa:snt:xbc:i:j:Tuh" opt; do case "${opt}" in d ) export BUILD_TARGET="deps" @@ -38,8 +38,8 @@ while getopts ":dpa:snt:xbc:i:1Tuh" opt; do i ) export CMAKE_IGNORE_PREFIX_PATH="${CMAKE_IGNORE_PREFIX_PATH:+$CMAKE_IGNORE_PREFIX_PATH;}$OPTARG" ;; - 1 ) - export CMAKE_BUILD_PARALLEL_LEVEL=1 + j ) + export CMAKE_BUILD_PARALLEL_LEVEL="$OPTARG" ;; T ) export BUILD_TESTS="1" @@ -58,7 +58,7 @@ while getopts ":dpa:snt:xbc:i:1Tuh" opt; do echo " -b: Build without reconfiguring CMake" echo " -c: Set CMake build configuration, default is Release" echo " -i: Add a prefix to ignore during CMake dependency discovery (repeatable), defaults to /opt/local:/usr/local:/opt/homebrew" - echo " -1: Use single job for building" + echo " -j: Set the number of parallel build jobs (CMAKE_BUILD_PARALLEL_LEVEL)" echo " -T: Build and run tests (set ORCA_TESTS_BUILD_ONLY=1 to build without running)" exit 0 ;; From 9933cab59f7e266af2453ce82a0bbff4e23f23fa Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Mon, 31 Aug 2026 20:19:58 -0500 Subject: [PATCH 090/164] build: drop the pkg-config requirement from the Windows build (#15469) The FFmpeg camera view port made pkg-config a required build tool on Windows. Windows does not ship one, so every Windows developer has to install it before the build will configure: Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) Call Stack (most recent call first): CMakeLists.txt:480 (find_package) Nothing on Windows needs it. FFmpeg there is a prebuilt zip unpacked into the deps prefix, whose DLLs the top level CMakeLists already names by exact soname. The version is fixed before configure runs, so find_library against that prefix does the job, as on macOS. Also drops the CI step that installed pkg-config, gated on !SELF_HOSTED so it never ran on self-hosted runners, and re-comments the if(WIN32) block that #15234 uncommented only for that find_package. --- .github/workflows/build_orca.yml | 7 ------- CMakeLists.txt | 5 ++--- src/slic3r/CMakeLists.txt | 12 ++++++++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index c73524d6f0..a9efaa7561 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -385,13 +385,6 @@ jobs: dir "C:/Program Files (x86)/Windows Kits/10/Include" choco install nsis - - name: Install pkg-config - # FFmpeg is discovered via pkg-config (pkg_check_modules LIBAV in - # src/slic3r/CMakeLists.txt); the Windows runners don't ship it. - if: runner.os == 'Windows' && !vars.SELF_HOSTED - run: | - choco install pkgconfiglite -y - - name: Build slicer Win if: runner.os == 'Windows' working-directory: ${{ github.workspace }} diff --git a/CMakeLists.txt b/CMakeLists.txt index c912cdd08f..4f5ccbeb44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -476,8 +476,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # WIN10SDK_PATH is used to point CMake to the WIN10 SDK installation directory. # We pick it from environment if it is not defined in another way # ORCA: Removed Netfabb STL fixing service support in favor of CGAL. -if(WIN32) - find_package(PkgConfig REQUIRED) +# if(WIN32) # if(NOT DEFINED WIN10SDK_PATH) # if(DEFINED ENV{WIN10SDK_PATH}) # set(WIN10SDK_PATH "$ENV{WIN10SDK_PATH}") @@ -513,7 +512,7 @@ if(WIN32) # else() # message("Building without Win10 Netfabb STL fixing service support") # endif() -endif() +# endif() if (APPLE) message("OS X SDK Path: ${CMAKE_OSX_SYSROOT}") diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index e11b5153ae..140b1cec39 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -915,6 +915,18 @@ if (APPLE) endif () target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY}) target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include) +elseif (WIN32) + # Prebuilt shared FFmpeg from the deps install. Windows has no pkg-config, + # so resolve the import libraries out of the deps prefix directly; the DLLs + # are copied next to the executable by the top level CMakeLists. + find_library(LIBAVCODEC_LIBRARY NAMES avcodec PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBSWSCALE_LIBRARY NAMES swscale PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + find_library(LIBAVUTIL_LIBRARY NAMES avutil PATHS ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH) + if (NOT LIBAVCODEC_LIBRARY OR NOT LIBSWSCALE_LIBRARY OR NOT LIBAVUTIL_LIBRARY) + message(FATAL_ERROR "FFmpeg (avcodec/swscale/avutil) not found under ${CMAKE_PREFIX_PATH}/lib. Rebuild the deps.") + endif () + target_link_libraries(libslic3r_gui ${LIBAVCODEC_LIBRARY} ${LIBSWSCALE_LIBRARY} ${LIBAVUTIL_LIBRARY}) + target_include_directories(libslic3r_gui SYSTEM PRIVATE ${CMAKE_PREFIX_PATH}/include) else () pkg_check_modules(LIBAV REQUIRED IMPORTED_TARGET libavcodec From 261cc19c592a9aa721e345798a89a84681ffc5b3 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Mon, 31 Aug 2026 23:14:03 +0800 Subject: [PATCH 091/164] update doc update doc --- doc/developer-reference/filament_id.md | 211 ----- docs/HLSD/filament_id.md | 383 +++++++++ filament_id_plan.html | 1029 ------------------------ filament_id_plan.md | 397 --------- filament_id_plan_v2.md | 314 -------- filament_id_plan_v3.md | 213 ----- filament_id_plan_v4.md | 224 ------ 7 files changed, 383 insertions(+), 2388 deletions(-) delete mode 100644 doc/developer-reference/filament_id.md create mode 100644 docs/HLSD/filament_id.md delete mode 100644 filament_id_plan.html delete mode 100644 filament_id_plan.md delete mode 100644 filament_id_plan_v2.md delete mode 100644 filament_id_plan_v3.md delete mode 100644 filament_id_plan_v4.md diff --git a/doc/developer-reference/filament_id.md b/doc/developer-reference/filament_id.md deleted file mode 100644 index c17e4e44e4..0000000000 --- a/doc/developer-reference/filament_id.md +++ /dev/null @@ -1,211 +0,0 @@ -# Filament IDs (`filament_id`) - -`filament_id` identifies a **material family**: one commercial product line = one id, shared by -all of that material's per-printer / per-nozzle variants. Devices use it to match a physical -spool or tray to a filament preset. It is never per-color, per-printer, per-nozzle, or -per-preset (per-preset identity is `setting_id`). - -This page is the rule for authoring `filament_id` in system profiles -(`resources/profiles/**`). CI enforces everything below; the short version is: - -> [!IMPORTANT] -> **Never write a `filament_id` value by hand.** New families get their id from -> `python scripts/assign_filament_ids.py`; existing families already have one — inherit it. - -## Who consumes the id - -Every device integration funnels a tray material id (`tray_info_idx`) through the same -matching pipeline (`PresetBundle::sync_ams_list` and friends): - -| Ecosystem | Where the id comes from | -| --- | --- | -| Bambu AMS | device side (RFID / user tray setting) — the `GF*` catalog | -| Qidi box | built from device enums (`QD_*`); needs an exactly matching visible preset | -| Creality CFS | runtime brand/type scoring returns the current preset's id | -| Klipper (AFC / Happy Hare) | runtime lookup by filament type | -| Snapmaker | runtime color/vendor/type match | - -Tray-to-preset matching is printer-scoped, but **several consumers match globally by id alone, -first hit wins**: tray display names, `filament_is_support`, vitrification warnings, and -multi-nozzle filament grouping in the slicing pipeline. Two *different* materials sharing one -id feed wrong data to those consumers even when the presets live in different vendors — so -cross-material id sharing is never safe. Within one printer, duplicate ids silently break AMS -matching (first match wins, the tray-edit dialog hides the second preset); the profile -validator's `-f` check rejects this. - -## Do I need a new id? The one-question test - -> **Would a user consider this a different spool product than anything already in the tree?** - -Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or a -second selectable diameter → **new family, new id**. The same spool tuned for another printer -or nozzle → **join the existing family** (inherit its `@base`, write no id key). Tuning a -generic material → **join the OrcaFilamentLibrary family** (inherit `Generic X @System`, keep -the `Generic X` base name, write no id key). - -| Situation | id | -| --- | --- | -| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | -| Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | -| Color | never a new id | -| Second diameter selectable on the same printer (1.75 + 2.85) | sibling family, new id | -| "High-speed" tuned for a *different printer model* | same id (it is a printer variant) | -| "High-speed" selectable *alongside* the normal preset on one printer | new id (it is a product line) | - -## Structure rules - -1. **Only family roots carry the key.** Root presets (any preset *not* marked - `"instantiation": "true"`, typically ` @base` with `"instantiation": "false"`) - declare `filament_id`; instantiated variants inherit a root and never - write the key. A family may have several roots (e.g. per-series bases) — all of them must - declare the *identical* id. -2. **The family name is the base name**: the preset name with everything from the first - (optionally space-preceded) `@` stripped. `MyBrand PLA @Orca 3D Fuse1` and `MyBrand PLA@HS` - both belong to family `MyBrand PLA`. -3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — per printer - preset, at most one compatible instantiated preset per id. The C++ validator (`-f`) - enforces this. -4. **Generics belong to OrcaFilamentLibrary.** A vendor tuning a generic material inherits - `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library - preset on your printers), sets a non-empty `compatible_printers`, and writes no id key. - A vendor-*branded* filament never rides a generic family id. -5. **Ids follow the product identity.** The id is a pure function of the product triple - `(filament_vendor, filament_type, family name)` — correcting any of them re-mints the id - **by design**, and `--update-snapshot` records the old id in the shipped succession ledger - with its successor so device trays, calibration records, and user presets keep resolving - (`renamed_from` still gates preset-*name* compatibility as before). A shipped id is never - recycled for a different material: retired ids are blocked forever. - -## Minting — nobody invents ids - -New ids are deterministic, computed exactly like the `setting_id` precedent -(`scripts/assign_vendor_setting_ids.py`): - -```text -FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") - = c4d3ff49-4c32-5534-a3e3-00894157ab97 -filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, - "filament_product///") ) -``` - -`base62_6` is the low 6 base62 digits (alphabet `0-9A-Za-z`) of the UUID taken as a big-endian -integer, most-significant digit first — 8 chars total, within the AMS length limit. The triple -comes from the family root's *flattened* config: `` is the filament -**manufacturer** (`"Polymaker"`, or `"Generic"` for generics — never the printer brand), -`` the material type, `` the root's base name; the two config -values are inheritable list options and the first element counts. The key contains no bundle -name, so the same product mints the same id in every bundle — hoisting a family into -OrcaFilamentLibrary never changes its id. On the rare collision with any existing or retired -id, the minter salts the input (`…/1`, `…/2`, …) until free and the result is frozen in the -file. Example: `Polymaker/PLA/PolyLite PLA` mints `OF5CgdDq`. - -Workflow for a new family: - -```bash -# 1. Author the family with NO filament_id key anywhere. -python scripts/assign_filament_ids.py # 2. mint + insert ids into the family root(s) -python scripts/assign_filament_ids.py --update-snapshot # 3. record the new claims in the ledger -python scripts/assign_filament_ids.py --check # 4. verify — the same checks CI runs -# 5. Commit the profile edits together with scripts/filament_id_snapshot.json. -``` - -`--mint "filament_vendor/filament_type/family_name"` prints the id a triple would mint without -touching anything. The default run is idempotent and never rewrites a valid existing id. -Maintenance modes (normally only used by id migrations): `--remint VENDOR` re-derives a -vendor's declared ids from their triples (a declaration already equal to a salt iteration -of its own triple is conformant and left alone — deliberate salt splits keeping two -presets of one product apart for per-printer AMS matching survive), -`--drop-redundant-ids VENDOR` deletes declarations -that merely re-declare an inherited OFL id, `--add-hint "OLD=NEW"` records a cross-island -succession hint, and `--retire "OLD=NEW"` records succession for a shipped non-island id -that vanished while another declarer kept it alive (lineage the automatic claim vote can no -longer see). - -If you skip the tooling, CI fails and prints the remedy: the expected id for your family, and -the instruction to run `python scripts/assign_filament_ids.py --update-snapshot` and commit -the resulting diff. - -## Reserved namespaces — never mint or hand-write into - -| Space | Owner | Rule | -| --- | --- | --- | -| `GF*` | Bambu AMS/RFID catalog | BBL vendor only; byte-copies elsewhere only where the snapshot already sanctions them | -| `QD_*` | Qidi device protocol | frozen device contract; Qidi vendor only | -| `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | -| every already-shipped id | grandfather snapshot | frozen as-is; new claims need maintainer sign-off | -| every retired id | `resources/profiles/retired_filament_ids.json` | never used again, for anything | - -## The succession ledger - -`resources/profiles/retired_filament_ids.json` ships with the app. Each retired id maps to -`{"claims": [...], "successor": }` — successor chains are followed to the live end — -and a `hints` map carries the same forwarding for ids Orca cannot retire because another -island owns them (e.g. a `GF*` id whose material also exists as an OFL family). The client -consults the ledger **only on resolution miss** (AMS tray sync, tray-id type lookup, -calibration history, filament-id preset lookup): a live preset always wins first, so BBL -installs resolve `GF*` natively and behavior is unchanged wherever the raw id still exists. -This is what makes identity-driven re-mints (structure rule 5) safe: the old id keeps -resolving to the family's current preset instead of degrading to a `Generic ` fallback. -The file is append-only and maintained exclusively by `--update-snapshot` / `--add-hint` / -`--retire`. - -## How CI enforces this - -Profile CI (`check_profiles.yml` → `scripts/orca_extra_profile_check.py`) runs -`check_filament_ids()` tree-wide. Its ground truth is -**`scripts/filament_id_snapshot.json` — the sanctioned state**: the id state derived from the -tree must equal the snapshot exactly, in both directions. Any change to the id landscape -therefore surfaces as a diff to that file, and **that snapshot diff is what maintainers review -and gate in a PR**. Never edit the snapshot by hand — `--update-snapshot` regenerates it -deterministically (running it twice changes nothing). - -The checks, in brief: - -- **Format** — every id is either in the snapshot, `OF` + 6 base62 chars, BBL's, or Qidi `QD_*`. -- **Snapshot equality** — tree claims == snapshot claims **and** tree triples == snapshot - triples, both directions: any `filament_vendor`/`filament_type`/family-name change surfaces - as a snapshot diff. -- **Mint conformance** — a non-grandfathered `OF*` id must equal the mint (or a salt - iteration) of its declarer's product triple; the error prints the expected id. -- **Retired reuse** — any tree id present in `resources/profiles/retired_filament_ids.json` is an error. - Ids that fully vanish from the tree are appended there by `--update-snapshot`; the file is - **append-only**. -- **Alias hygiene** — any vendor preset riding an OFL family id must keep the library - preset's base name, a non-empty `compatible_printers`, and no own id key (structure rule 4); - the error names the rename as the cause. -- **Triple integrity** — every declarer outside the BBL/`QD_*` islands must resolve a - non-empty `filament_vendor` and `filament_type` (generics use `"Generic"`), and all - declarers of one family within a bundle must agree on the triple. -- **Succession integrity** — retired successor chains terminate at a live id (or null) with - no cycles; `hints` keys are live, island-owned ids. -- **Reserved namespaces** — `GF*` outside BBL, `QD_*` outside Qidi, `P<7-hex>` or `null` - anywhere, unless that exact claim is grandfathered in the snapshot. -- **Structure** — no `filament_id` key on instantiated presets; no declared-vs-inherited id - drift; every instantiated system filament must resolve an effective id through its - `inherits` chain (an id-less one is a hard load error in C++ that discards the whole vendor - bundle). - -Sharing a **reserved-catalog** id with a new family or vendor (e.g. shipping a Bambu-cataloged -product under another vendor with its authentic `GF*` id) is refused by `--update-snapshot` -unless you pass `--allow-shared-catalog` — and it still lands in the snapshot diff for -maintainer review. Any other new sharing of an existing id is caught by the mint-conformance -check instead. - -## FAQ - -- **A new color of an existing product?** Never a new id — colors are not families. -- **A second diameter (1.75 mm and 2.85 mm) of the same product?** A sibling family with its - own id: two diameters are separately selectable spool products. -- **A high-speed tune of an existing material for another printer model?** Same family: - inherit the family's root, write no id key. -- **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the - `Generic PLA` base name, set `compatible_printers`, write no id key. -- **I need to rename a family (or fix its `filament_vendor`/`filament_type`).** Add - `renamed_from` for the name, run `--remint ` then `--update-snapshot`: the id - re-derives from the corrected identity and the old id lands in the succession ledger - pointing at the new one. Commit the profile, snapshot, and ledger diffs together. -- **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then - `--update-snapshot`, and commit both diffs. Do not type an id by hand. - -For general profile authoring, see the profile development guide on the -[OrcaSlicer wiki](https://www.orcaslicer.com/wiki). diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md new file mode 100644 index 0000000000..0dfc5471b0 --- /dev/null +++ b/docs/HLSD/filament_id.md @@ -0,0 +1,383 @@ +# Filament IDs (`filament_id`) + +`filament_id` identifies a **material family**: one commercial product line = one id, shared by +all of that material's per-printer / per-nozzle variants, in every profile bundle that ships it. +Devices use it to match a physical spool or tray to a filament preset. It is never per-color, +per-printer, per-nozzle, or per-preset (per-preset identity is `setting_id`), and it is never +per-bundle either — PolyLite PLA carries the same id whether the preset lives in the +OrcaFilamentLibrary (OFL), Qidi, or Snapmaker bundle. + +**How it is generated:** an id is computed, never invented. `scripts/assign_filament_ids.py` +mints it as a deterministic hash of the product's identity — the triple +`(filament_vendor, filament_type, family name)`, where the family name is the preset name +with its `@...` variant suffix stripped — producing an 8-character `OF*` code that is the +same for that product in every bundle, in every PR, on every machine. For example, Polymaker's +PolyLite PLA presets (`PolyLite PLA @base`, `PolyLite PLA@Q2-Series`, …) resolve +`filament_vendor` `Polymaker`, `filament_type` `PLA`, and family name `PolyLite PLA`; hashing +`filament_product/Polymaker/PLA/PolyLite PLA` yields `OF5CgdDq`, and that is the id the +OrcaFilamentLibrary, OrcaArena, Qidi, and Snapmaker bundles all arrive at independently +(derivation details in the Minting section). + +**How it is used:** at runtime the id is the join key between hardware and profiles. +When a printer reports what a tray holds (Bambu AMS, Qidi box, Creality CFS, +Klipper, Snapmaker), OrcaSlicer matches the reported id against the filament presets +compatible with that printer to select the right profile; other features — tray display +names, support-material detection, vitrification warnings, multi-nozzle filament grouping — +look up material properties by id alone. When an id has been retired, a shipped succession +ledger forwards it to its successor so old trays and records keep resolving. + +This page is the rule for authoring `filament_id` in system profiles +(`resources/profiles/**`). CI enforces everything below; the short version is: + +> [!IMPORTANT] +> **Never write a `filament_id` value by hand.** New families get their id from +> `python scripts/assign_filament_ids.py`; existing families already have one — inherit it. + +## The design, in three pieces + +Because several consumers match **globally by id alone, first hit wins** (see the next +section), any two materials sharing one id feed wrong data somewhere — a wrong tray name, a +wrong support-material flag, a wrong nozzle grouping — and inside one printer a duplicated id +makes AMS spool matching a coin toss. Hand-written ids produce such collisions constantly, so +the system is built to make them impossible and to make identity corrections safe: + +1. **Deterministic minting.** An id is a pure hash of the product's identity — no registry to + maintain, no next-free-number ceremony, no way for two concurrent PRs to race for the same + number, and no way to get it wrong by hand, because you never write it by hand. +2. **A sanctioned snapshot.** The complete id landscape derived from the tree must equal + `scripts/filament_id_snapshot.json` exactly, so every change to ids, claims (which bundles + ship which id, and for which family), or product identity surfaces as a reviewable diff to + one file — the maintainer gate. +3. **A shipped succession ledger.** Ids live outside the tree too — on device trays, in + calibration records, in user presets, in project files. When an id is retired, the ledger + forwards it to its successor so none of those references degrade to a generic fallback. + +## Who consumes the id + +The canonical consumer is tray-to-preset matching: a device reports a tray material id +(`tray_info_idx`), and the shared matching pipeline (`PresetBundle::sync_ams_list` and +friends) resolves it to a preset. The matcher is printer-scoped and first-match-wins: +scanning only compatible family roots — system roots plus user-made custom filaments, which +are user roots carrying their own `P*` ids; a preset derived from another resolves through +its root and never matches directly — it picks the first one whose `filament_id` equals the +tray's and retries once through the succession ledger on a miss. Only then does it fall back +by filament type: a system `Generic ` preset (matched by name, then by type +similarity), else the slot's previous selection, else any compatible system generic or, +failing that, any compatible system preset, else the slot is skipped — every fallback +selection surfaces a user-visible notice. + +Today only the Bambu AMS integration follows this pattern end to end — the device itself +reports the id, and the pipeline does all the matching. The other device integrations still +synthesize a preset id client-side in their agents (by type, brand, or color lookups against +the loaded presets) before the pipeline runs; they are intended to converge on the same +pattern, with the device-reported tray material id flowing through the shared matcher. + +| Ecosystem | Where the tray id comes from today | +| --- | --- | +| Bambu AMS | the device itself (RFID / user tray setting) — the `GF*` catalog | +| Qidi box | composed at runtime as `QD___` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name — then translated through the succession ledger to the family's minted id (the `QD_*` values themselves no longer exist as preset ids — see the reserved-namespaces section) | +| Creality CFS | runtime brand/type scoring returns the winning preset's id | +| Klipper (AFC / Happy Hare) | runtime lookup by filament type | +| Snapmaker | runtime color/vendor/type match | + +Tray-to-preset matching is printer-scoped, but **several consumers match globally by id alone, +first hit wins**: tray display names, `filament_is_support`, vitrification warnings, and +multi-nozzle filament grouping in the slicing pipeline (`FilamentGroup::try_merge_filaments` +merges plate slots sharing one `(filament_id, color)` pair, with matching +extruder-printability, onto one nozzle group; the engine is implemented but no grouping path +calls it yet). +Two *different* materials sharing one id +feed wrong data to those consumers even when the presets live in different vendors — so +cross-material id sharing is never safe. Within one printer, duplicate ids break AMS matching: +the matcher picks whichever preset loads first (it now logs an "Ambiguous AMS filament match" +warning, but the pick is still arbitrary) and the tray-edit dialog, which lists one entry per +id, hides the second preset entirely. The profile validator's `-f` check +(`check_filament_subtypes` → `PresetBundle::check_duplicate_filament_subtypes`) rejects this +per printer, and CI runs it tree-wide. + +Two more consumer-side facts worth knowing: + +- The machine-facing dialogs (AMS tray edit, AMS dry control, calibration history, extrusion + calibration) offer the filaments a connected printer can use by the same compatibility rule + the plater uses (an empty `compatible_printers` means *every* printer). Alias shadowing + still applies: a vendor's same-name profile supersedes the library generic. That is what + puts Orca Filament Library materials in those lists — deduplicated to one entry per + `filament_id` in the AMS and calibration-history dialogs, while extrusion calibration + deliberately lists every matching preset by full name. +- The id is load-bearing at startup: an instantiated system filament (one marked + `"instantiation": "true"` — see the structure rules) that resolves **no** + `filament_id` anywhere in its `inherits` chain is a hard load error in the C++ loader + (`Can not find filament_id for `) that discards the entire vendor bundle (for the + OrcaFilamentLibrary itself the failure is messier: library presets loaded before the + failing one survive, and every vendor bundle whose filaments inherit from the library is + then discarded for want of a base). CI's structure check catches this before it ships. + +## Do I need a new id? The one-question test + +> **Would a user consider this a different spool product than anything already in the tree?** + +Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or a +second selectable diameter → **new family, new id**. The same spool tuned for another printer +or nozzle → **join the existing family** (inherit its `@base`, write no id key). Tuning a +generic material → **join the OrcaFilamentLibrary family** (inherit `Generic X @System`, keep +the `Generic X` base name, write no id key). + +| Situation | id | +| --- | --- | +| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | +| Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | +| Color | never a new id | +| Second diameter of the same product (1.75 + 2.85) | sibling family, new id | +| "High-speed" tuned for a *different printer model* | same id (it is a printer variant) | +| "High-speed" selectable *alongside* the normal preset on one printer | new id (it is a product line) | + +## Structure rules + +1. **Only family roots carry the key.** Root presets (any preset *not* marked + `"instantiation": "true"`, typically ` @base` with `"instantiation": "false"`) + declare `filament_id`; instantiated variants inherit a root and never write the key. + A family may have several roots — Qidi's PolyLite PLA has four per-series roots + (`PolyLite PLA@Q2-Series`, `@Q2C-Series`, `@X-Max 4-Series`, `@X-Plus 5-Series`) — and all + of them must declare the *identical* id. This is the authoring rule for new work; a large + grandfathered tail of older presets breaks it in two ways — keys written on instantiated + presets (frozen in the snapshot's `instantiated_with_id` list) and keys that override the + id the preset would inherit from its family (frozen in `id_overrides`) — and CI ratchets + so no new preset joins either tail. +2. **The family name is the base name**: the preset name with everything from the first + (optionally space-preceded) `@` stripped. `MyBrand PLA @Orca 3D Fuse1` and `MyBrand PLA@HS` + both belong to family `MyBrand PLA`. +3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — per printer, + at most one compatible instantiated preset per id, or AMS matching turns ambiguous. The + C++ validator's `-f` check enforces this. +4. **Generics belong to OrcaFilamentLibrary.** A vendor tuning a generic material inherits + `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library + preset on your printers), sets a non-empty `compatible_printers`, and writes no id key — + e.g. `Generic PLA @Sovol SV08 MAX` inherits `Generic PLA @System` and lists three Sovol + nozzles. A vendor-*branded* filament never rides a generic family id. +5. **Ids follow the product identity.** The id is a pure function of the product triple + `(filament_vendor, filament_type, family name)` — correcting any of them re-mints the id + **by design** (via `--remint `; the exact sequence is in the FAQ), and + `--update-snapshot` records the old id in the shipped succession ledger with its successor + so device trays, calibration records, and user presets keep resolving (`renamed_from` + still gates preset-*name* compatibility as before). A shipped id is never recycled for a + different material: retired ids are blocked forever. + +## Minting — nobody invents ids + +New ids are deterministic, computed exactly like the `setting_id` precedent +(`scripts/assign_vendor_setting_ids.py`): + +```text +FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") + = c4d3ff49-4c32-5534-a3e3-00894157ab97 +filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, + "filament_product///") ) +``` + +`base62_6` is the low 6 base62 digits (alphabet `0-9A-Za-z`) of the UUID taken as a big-endian +integer, most-significant digit first; with the `OF` prefix the full id is 8 chars, within the +AMS length limit. The triple comes from the family root's *flattened* config: +`` is the filament +**manufacturer** (`"Polymaker"`, or `"Generic"` for generics — never the printer brand), +`` the material type, `` the root's base name; the two config +values are inheritable list options and the first element counts. + +Content-addressing on that triple is what makes the whole system converge. The key contains no +bundle name, so the same product mints the same id in every bundle — hoisting a family into +OrcaFilamentLibrary never changes its id, and two vendors independently shipping the same +product arrive at the same id without coordinating. `Polymaker/PLA/PolyLite PLA` mints +`OF5CgdDq`, and that one id is declared by the OrcaFilamentLibrary, OrcaArena, Qidi, and +Snapmaker bundles alike; the OFL generic `Generic/PLA/Generic PLA` mints `OFDSrzZ8`, claimed +by ten bundles — most by independent declarations converging on the same mint, the rest +purely through inheritance from the OFL family. + +On the rare collision with any existing or retired id, the minter salts the input (`…/1`, +`…/2`, …) until free, and the result is frozen in the profile file. Salting is also used +deliberately: a *salt split* keeps two presets of one product on distinct ids where a single +id would be AMS-ambiguous on the same printer — the "selectable alongside" situation from the +table above, resolved without inventing a second family name. The tooling recognizes salt +iterations of a triple as conformant and preserves such splits across re-mints. + +Workflow for a new family: + +```bash +# 1. Author the family with NO filament_id key anywhere. +python scripts/assign_filament_ids.py # 2. mint + insert ids into the family root(s) +python scripts/assign_filament_ids.py --update-snapshot # 3. record the new claims in the snapshot +python scripts/assign_filament_ids.py --check # 4. verify — the same checks CI runs +# 5. Commit the profile edits together with scripts/filament_id_snapshot.json. +``` + +The default run is idempotent and never rewrites a valid existing id; it edits profile files +byte-preservingly (indentation, BOM, and line endings intact) and re-parses them to fail +loudly. `--mint "filament_vendor/filament_type/family_name"` prints the id a **new** mint of +that triple would get, without touching anything — note that for a triple whose id already +exists it prints the next *free* salt iteration, not the live id (asking for +`Polymaker/PLA/PolyLite PLA` today prints the salt-1 id, because `OF5CgdDq` is taken). + +Maintenance modes (`--remint` is also the step for identity fixes — see the FAQ; the rest are +normally only used by id migrations): + +- `--remint VENDOR` re-derives a vendor's declared ids from their triples. A declaration + already equal to a salt iteration of its own triple is conformant and left alone, so + deliberate salt splits survive; convergence onto an id another bundle already uses for the + *same* triple is legal by design — that is the point. +- `--drop-redundant-ids VENDOR` deletes declarations that merely re-declare an inherited + OrcaFilamentLibrary id. +- `--add-hint "OLD=NEW"` records a succession hint for an id a foreign catalog owns + (`GF*` only — see the ledger section). +- `--retire "OLD=NEW"` records succession for a shipped id that vanished while another + declarer kept it alive — lineage the automatic claim vote (see the succession-ledger + section) can no longer see. +- `--forget-never-shipped FILE` (with `--update-snapshot`) — given a JSON list of ids that + never shipped in any release, drops them from the lineage entirely (no retirement entry) + and splices succession chains that pointed through them. +- `--profiles DIR` points the tooling at a different profile tree (default + `resources/profiles`). + +If you skip the tooling, CI fails and prints the remedy: the expected id for your family and +the instruction to run `python scripts/assign_filament_ids.py`; once the id is minted, the +snapshot checks likewise point at `--update-snapshot` and tell you to commit the resulting +diff. + +## Reserved namespaces — never mint or hand-write into + +An **island** is a frozen id namespace exempt from the mint rule because an external catalog +or device contract owns it. + +| Space | Status | Rule | +| --- | --- | --- | +| `GF*` | Bambu AMS/RFID catalog — the one remaining *island* | BBL vendor only; a claim by anyone else is refused unless the snapshot sanctions that exact claim (via `--allow-shared-catalog` — see the CI section) | +| `QD_*` | Qidi device protocol — *dissolved island* | declarable by **nobody**, Qidi included; every shipped `QD_*` id is retired in the ledger with a live successor | +| `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | +| every already-shipped id | frozen in the snapshot (grandfathered) | frozen as-is; new claims need maintainer sign-off | +| every retired id | `resources/profiles/retired_filament_ids.json` | never used again, for anything | + +The two device namespaces, in detail: + +- **BBL (`GF*`).** Bambu's device/RFID/cloud catalog is external and opaque, so BBL + declarations are frozen as-is and never re-minted. BBL also carries several dozen + grandfathered legacy codes that are neither `GF*` nor `OF*` (the `BETA` family's `B*` ids, + plus `Generic SBS`'s legacy `BFLSBS99`) — frozen the same way, via the snapshot. +- **Qidi (`QD_*`) — dissolved.** `QD_*` is a device-*protocol* namespace, not a preset id + space: the Qidi box path composes `QD___` ids at runtime (slot + vendor and type indices reported by the device, the series digit inferred client-side + from the printer model/name), and the Qidi agent translates a composed id through the + succession ledger to the family's minted id. Qidi presets themselves carry ordinary minted + `OF*` ids (generics share the OFL ids), and all 204 `QD_*` ids that ever shipped sit in + the ledger as retired entries with live successors — which is also what makes CI refuse + any future `QD_*` occurrence permanently. The alternative — treating per-series protocol ids + as preset ids — would put one product under five ids (`QIDI PLA Rapido` would be `QD_0_1_1` + through `QD_4_1_1`), exactly the fragmentation the mint rule removes. + +## The succession ledger + +`resources/profiles/retired_filament_ids.json` ships with the app and has two maps: + +- **`retired`** — ids Orca owned and withdrew. Each maps to + `{"claims": [...], "successor": }`; successor chains are followed to the live end. + When `--update-snapshot` retires a vanished id, it picks the successor by an automatic + *claim vote*: every old claim whose family still exists votes for that family's current id, + most votes wins. Alongside the deliberate re-mints, this map carries the whole pre-rule + legacy — old ad-hoc vendor codes, Creality's and Snapmaker's numeric ids, and the 204 + `QD_*` protocol ids. +- **`hints`** — the same forwarding for ids Orca *cannot* retire because a foreign island owns + them and may legitimately keep shipping them. That means `GF*` only: e.g. + `GFL99 → OFDSrzZ8` forwards Bambu's Generic PLA catalog id to the OFL generic family on + installs where no live preset carries `GFL99`. + +The client consults the ledger **only on resolution miss** — AMS tray sync and the sync-AMS +dialog's filament listing, the sidebar AMS dropdown, tray-id type lookup, calibration +history, the global filament-id preset lookup, and the Qidi box path. A live preset always +wins first, so BBL installs resolve `GF*` natively and behavior is unchanged wherever the +raw id still exists. This on-miss rule is what makes +identity-driven re-mints (structure rule 5) safe: the old id keeps resolving to the family's +current preset instead of degrading to a `Generic ` fallback. The file is append-only in +its keys — entries are never removed and a retired id never returns — and maintained +exclusively by `--update-snapshot` / `--add-hint` / `--retire` (`--forget-never-shipped`, an +`--update-snapshot` mode, may rewrite an existing entry's successor when splicing chains). + +## How CI enforces this + +Profile CI (`check_profiles.yml`) runs `check_filament_ids()` tree-wide via +`scripts/orca_extra_profile_check.py`. Its ground truth is +**`scripts/filament_id_snapshot.json` — the sanctioned state**: the id state derived from the +tree must equal the snapshot exactly, in both directions. Any change to the id landscape +therefore surfaces as a diff to that file, and **that snapshot diff is what maintainers review +and gate in a PR**. Never edit the snapshot by hand — `--update-snapshot` regenerates it +deterministically (running it twice changes nothing). Besides the live `ids` and `triples` +maps, the snapshot carries grandfather lists (`instantiated_with_id`, `id_overrides`, +`alias_exceptions`, `triple_exceptions`) that freeze pre-existing structure debt while the +checks ratchet all new profiles to the clean rules. + +The checks, in brief: + +- **Format** — every id is either in the snapshot, `OF` + 6 base62 chars, or BBL's. +- **Snapshot equality** — tree claims == snapshot claims **and** tree triples == snapshot + triples, both directions: any `filament_vendor`/`filament_type`/family-name change surfaces + as a snapshot diff. +- **Mint conformance** — a non-grandfathered `OF*` id must equal the mint (or a low salt + iteration) of its declarer's product triple; the error prints the expected id to paste into + the family root. +- **Retired reuse** — any tree id present in the `retired` map of + `resources/profiles/retired_filament_ids.json` is an error, with no grandfathering (keys in + the same file's `hints` map may legitimately stay live — BBL still ships them). Ids that + fully vanish from the tree are appended to the `retired` map by `--update-snapshot`; ids + are only ever added there, never removed or reused. +- **Alias hygiene** — a vendor preset riding an OFL family id must keep the library preset's + base name (a rename re-exposes the library preset, since alias shadowing is name-based), + a non-empty `compatible_printers` (an empty one shadows nothing), and no own id key + (structure rule 4). +- **Triple integrity** — every declarer outside the BBL island must resolve a non-empty + `filament_vendor` and `filament_type` (generics use `"Generic"`), and all declarers of one + family within a bundle must agree on the triple. +- **Succession integrity** — retired successor chains terminate at a live id (or null) with + no cycles; `hints` keys stay in the island namespace (`GF*`), are never also retired, and + their chains end at a live tree id. +- **Reserved namespaces** — `GF*` outside BBL, `P<7-hex>` or `"null"` anywhere, unless that + exact claim is grandfathered in the snapshot; `QD_*` anywhere, with no exception (all are + retired). +- **Structure** — no `filament_id` key on newly instantiated presets; no new + declared-vs-inherited id drift; every instantiated system filament must resolve an + effective id through its `inherits` chain (recall: an id-less one is a hard load error in + C++ that discards the whole vendor bundle). + +Sharing a **reserved-catalog** id with a new family or vendor (e.g. shipping a Bambu-cataloged +product under another vendor with its authentic `GF*` id) is refused by `--update-snapshot` +unless you pass `--allow-shared-catalog` — and it still lands in the snapshot diff for +maintainer review. Any other new sharing via a *declared* id is caught by the mint-conformance +check; sharing through inheritance carries no declaration to check and surfaces only as a new +claim in the snapshot diff — which is exactly why that diff is the gate. + +Complementing the Python checks, CI also runs the C++ profile validator with `-f` +(`check_filament_subtypes`): it loads the bundle exactly as the app does and flags any printer +for which two or more compatible filament presets share one `filament_id` — the runtime-shaped +ambiguity check behind structure rule 3. + +## FAQ + +- **A new color of an existing product?** Never a new id — colors are not families. +- **A second diameter (1.75 mm and 2.85 mm) of the same product?** A sibling family with its + own id: two diameters are separately selectable spool products. +- **A high-speed tune of an existing material for another printer model?** Same family: + inherit the family's root, write no id key. +- **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the + `Generic PLA` base name, set `compatible_printers`, write no id key. +- **I need to fix a family's `filament_vendor` or `filament_type`.** Fix the config, run + `--remint ` then `--update-snapshot`: the id re-derives from the corrected identity + and the old id lands in the succession ledger pointing at the new one. Commit the profile, + snapshot, and ledger diffs together. +- **I need to rename a family.** Renames need one extra step, because the succession vote + follows family names (`renamed_from` gates preset-name compatibility but is not read by the + id tooling): rename the presets (adding `renamed_from`), run `--update-snapshot` once to + sanction the renamed claims on the old id, then `--remint `, then `--update-snapshot` + again — the old id now lands in the ledger pointing at the new one. Re-minting first would + retire the old id *heirless* (successor `null`), which cannot be repaired afterwards. +- **Can I reuse a `QD_*` id for a Qidi profile?** No — nobody can. The namespace is a + dissolved island: the device still composes those ids at runtime, and the succession ledger + translates them to the families' minted ids. Author Qidi filaments like any other vendor's. +- **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then + `--update-snapshot`, and commit both diffs. Do not type an id by hand. + +For general profile authoring, see the profile development guide on the +[OrcaSlicer wiki](https://www.orcaslicer.com/wiki). diff --git a/filament_id_plan.html b/filament_id_plan.html deleted file mode 100644 index 08f4a06b74..0000000000 --- a/filament_id_plan.html +++ /dev/null @@ -1,1029 +0,0 @@ - - - - - -filament_id — design & migration plan · OrcaSlicer - - - - - - -
- - -
-
DESIGN REVIEW resources/profiles · filament_id
-

One id, one material — on every printer, exactly once.

-

A filament_id names a material family: one commercial product line, shared by all of its - per-printer variants. Devices match spools by filament_id + printer compatibility. - That only works if, for any one printer, at most one compatible preset carries a given id. Bambu keeps this - invariant; the other 64 vendor bundles broke it 1,256 times.

- -
- id anatomy — Bambu's grammar - - - - GF - A - 00 - - - - - - - - - - - - prefix — Bambu's namespace - frozen: AMS RFID tags carry these bytes - family letter — A: Bambu PLA - B ABS/ASA · C PC · G PETG · L generic/3rd-party PLA - N PA · P PP/PE · S support · T PET/PPS · U TPU - tier number - 00–49 branded · 50–59 fiber-filled - 60–70 partners · 95–99 generic, desc. - - - - shared by every variant: - - - Bambu PLA Basic @BBL X1C - - Bambu PLA Basic @BBL P1P - - Bambu PLA Basic @BBL X1C 0.2 nozzle - - - -
- -
-
1,256
printer-level ambiguity errors (validator -f, tree-wide)
-
356
logical collision groups after de-duplication
-
30 / 65
vendor bundles affected / total
-
0
violations in BBL — cleaned in PR #14459, CI-gated
-
-

Every number in this document is reproducible: an independent loader-faithful audit re-derives the - validator's output exactly (1256 = 1256), and every code claim carries a file:line reference.

-
- - -
-
§0 overview
-

The plan in one screen

-

Two deliverables: a generation rule so ids can never become ambiguous again (goal 1), and a - migration that fixes the 356 existing collisions without breaking users (goal 2).

- -
- the whole plan - - - - - - - - - TODAY - 7+ ad-hoc id schemes - 356 collision groups - zero written rules - CI covers BBL only - - - RULE + TOOLING §3 §6 - deterministic OF* mint - id lives on @base only - CI ratchets + snapshot - no profile changes yet - - - MIGRATION §5 - fresh ids only, ever - OFL first, then per vendor - names never change - one reviewable PR each - - - DONE - invariant holds - tree-wide, - by construction - - - - - - - BBL profiles are never touched · Qidi QD_* device ids are never touched · no preset is renamed or deleted - -
- -
- Why migration is safe — verified in code: user presets re-derive filament_id from their parent on - every load Preset.cpp:1658-1682; 3mf projects resolve presets by name + config, not id - Preset.cpp:2490-2576; Klipper, Creality and Snapmaker derive tray ids at runtime from the - installed bundle. Fresh, never-reused ids on non-BBL system presets break nothing. -
-
- - -
-
§1 how matching works
-

Every ecosystem funnels through this one id

-

Not just Bambu. Five device ecosystems put a filament_id into the same pipeline; the slicer then - picks the single preset that matches the id and is compatible with the active printer.

- -
- runtime — device → preset - - - - - - - - - - BBL AMS - from device RFID — frozen - - Qidi box - QD_<series>_<v>_<t> — frozen - - Creality CFS - scored at runtime — safe - - Klipper AFC/HH - by filament type — safe - - Snapmaker - color/type match — safe - - - - - - - - - - - - tray_info_idx (MQTT / agent) - - filament_ams_list["filament_id"] - - find_if( f.is_compatible && base(f)==f && f.filament_id == id ) - - - - - - - - Plater.cpp:3440 - PresetBundle.cpp:3132/3233 - - - → the ONE matching preset - two matches? find_if silently returns whichever sorts first — no log, no warning; the AMS edit dialog even hides the second preset - -
- -

The invariant, drawn

-
- per printer × per id -
-
-

✓ Correct — Bambu PLA Basic, id GFA00

- - - - - -
printer presetcompatible presets with GFA00
X1C…@BBL X1C 1
X1C 0.2 nozzle…@BBL X1C 0.2 nozzle 1
P1P…@BBL P1P 1
-

Variants share the id; their compatible_printers are disjoint. Each printer sees the id exactly once.

-
-
-

✗ Broken — Qidi, id GFB99 (real case)

- - - -
printer presetcompatible presets with GFB99
X-Max 3 0.4 nozzleBambu ABS · HATCHBOX ABS · Overture ABS · PolyLite ABS · QIDI ABS Rapido · QIDI ABS-GF · QIDI ASA · ASA-Aero · PC-ABS-FR · Generic ABS … 16
-

Sixteen different materials answer to one id on one printer. A spool tagged “generic ABS” matches - whichever preset sorts first — and GFB99 was stamped into 317 Qidi files.

-
-
-
- -

Two consumers you can't see from the profiles

-

Most matching is printer-scoped, but several code paths match globally, by id alone — tray display name, - temperature_vitrification warnings, calibration history, and the multi-nozzle grouping key - FilamentGroup.cpp:513. So two different materials must never share an id even across - vendors: the first preset in the whole installed collection supplies the name, type and temperature data.

-
Two identity systems. The library (OFL) hides its global presets per printer by - alias (name before  @) — Preset.cpp:3684 — while devices match by - filament_id. When a vendor tunes Generic PLA but renames it - Flashforge PLA Basic, the alias no longer matches, shadowing fails, and both presets are - visible with the same id. The rule in §3 aligns the two systems: one family = one alias = one id.
-
- - -
-
§2 the landscape today
-

Seven schemes, zero rules, one epidemic

-

The only guidance that ever existed was “≤ 8 characters”, checked for BBL only. Every other - convention was one contributor's invention, merged without comment, then imitated.

- -
- who uses which id shape — 5,866 instantiated presets - - - GF<letter><NN> (Bambu classic, mass-copied) - 2,921 - free-form ("GFPLA Silk", "LHF_pla", 36-char names…) - 2,241 - GF<BRAND><NNN> (Bambu partner ids) - 395 - O-prefixed (OGF* — OrcaFilamentLibrary mirrors) - 211 - GF<x>##_## (Afinia/Tiertime suffix) + other GF-shaped - 43 + 55 - - -
- Bambu's space, used outside Bambu - invented, unowned - deliberate Orca convention -
-
- -

How it got here

-
- convention timeline - - - - - - - - - - 2025-01 - OrcaFilamentLibrary - created - - 2025-03 - OGF* prefix born - direct commit, no rationale - - 2025-05 - “≤ 8 chars” check - BBL-only · PR #9574 - - 2025-06 - _## suffix invented - PR #9739, imitated since - - 2025-11 - profile wiki removed - its example taught copy-paste - - 2026-06 - validator -f · BBL → 0 - PR #14459 - - now - this plan - - -
- -

Beyond the validator's reach

-

The -f check compares a printer only against its own vendor's filaments. Three further ledgers exist:

-
-
16
OFL-internal ids covering several materials — visible on every printer (e.g. OEPLAB00 = 14 Elegoo PLA products)
-
42
OFL×vendor same-id pairs — 32 already neutralized by alias shadowing, 10 live
-
67
ids meaning different materials in different vendors (GFU99 also covers a PEBA; Anycubic's GFL95 “Matte” ≠ Bambu's GFL95 “High Speed”)
-
-
- - -
-
§3 the rule
-

Nobody invents ids. Structure carries the rest.

-

Chosen by a 3-design → 2-judge → 3-attacker adversarial process. Deterministic minting won on - ambiguity-prevention, contributor simplicity and enforceability; every “breaks” finding from the attack pass is - folded in below.

- -

The one-question test

-
- decision — same id or new id? - - - - - - - - Would a user call this a different spool product - than anything already in the tree? - - - - - - - YES — polymer, sub-brand, - fiber-filled, 2nd diameter - NO — same spool, tuned for - another printer / nozzle - it's a GENERIC - material - - - NEW FAMILY - create «Family @base», not instantiated - write NO filament_id anywhere - run the mint script — or paste the id - that CI prints for you - - JOIN THE FAMILY - inherit the existing @base - never write the filament_id key - keep compatible_printers disjoint - from the other variants - - JOIN THE OFL FAMILY - inherit «Generic X @System» - KEEP the «Generic X» name/alias - (alias shadowing then hides the OFL - preset on your printers) · no id key - color → never a new id · “high-speed” for a different printer → same family - “high-speed” selectable alongside the normal preset on one printer → new family - second selectable diameter on the same printer → sibling family with its own id - -
- -

Minted ids — the setting_id precedent, applied to families

-
- id anatomy — the new namespace - - - OF - q3xT9k - - - - - - - - - OF — Orca Family namespace - disjoint from GF · QD_ · P· at two chars - base62_6( uuid5( NS, "filament_family/<Vendor>/<Family>" ) ) - e.g. filament_family/Elegoo/Elegoo PLA Matte → OFq3xT9k - same derivation as setting_id · 8 chars total (AMS limit) - - - same input → same id: - no “next number” races · a fork mints the id upstream expects · CI recomputes and verifies - renamed family? - the id does not change — immutable once shipped; renamed_from covers the name - - -
-

Author workflow is two lines: commit the family with no id anywhere; run - python scripts/assign_filament_ids.py (or read the id CI prints in its failure message and paste it). - A --mint "<Vendor>/<Family>" one-shot prints an id without touching the tree.

- -

Structure: the id lives in exactly one place

-
- family shape - - - Elegoo PLA Matte @base - instantiation:false · filament_id: "OFq3xT9k" ← only here - - - - - - …@Centauri Carbon - inherits @base · no id key - compat: {CC 0.4} - - …@CC 0.2 nozzle - inherits @base · no id key - compat: {CC 0.2} - - …@Neptune 4 - inherits @base · no id key - compat: {N4, N4 Pro} - - disjoint compatible_printers = the PR #14459 invariant, by construction - family identity is DECLARED — an optional "filament_family" key on the root overrides name derivation - multi-root families are legal (Qidi's per-series bases) — every root must declare the identical id - -
- -

Reserved namespaces — never mint or hand-write into

-
- the id space, partitioned - - - - - - - - - GF* - Bambu AMS / RFID — frozen - - QD_* - Qidi device — frozen - - P[0-9A-Fa-f]{7} · "null" - user-custom presets - - OGF* + legacy shapes - grandfathered, closed - - OF[0-9A-Za-z]{6} - open — minted only - - Byte-copies of authentic Bambu ids stay legal where the checked-in shared_catalog sanctions the family (BBL, OFL, Fiberon). - Everything already shipped and unambiguous is snapshot-frozen exactly as-is — the migration touches only colliding families. - -
-
Accepted trade-off: minted ids are opaque — OFq3xT9k doesn't say “PLA”. - The family name sits in the same file; in exchange there is no registry, no “next free number” ceremony, no PR races, - and forks mint the same id upstream expects. The mnemonic registry-grammar runner-up is preserved in §8 if you prefer it — - everything else in this plan works under either format.
-
- - -
-
§4 error taxonomy — goal 2
-

Eleven patterns explain all 356 groups

-

Classified group-by-group against the actual profile files, then independently spot-checked - (1 substantive disagreement in 14 samples, corrected). The task's two known patterns cover about half; the rest - are new findings.

- -
- what's actually wrong — classified groups - - - P1 copy_paste_id — different materials share an id verbatim - 167 - P2 wrong_inherits / id-less product line - ~87 - P3 generic_family_overlap — branded preset rides a generic id - 68 - P4 overclaim_compat — broader variant claims a dedicated printer - 24 - other — deliberate coexistence, hygiene, one true duplicate - 21 - - -

Fixes across all groups: 319 × mint a fresh id · 21 × trim compatible_printers · - 21 × split compat-or-id · 5 × re-point inherits · 1 × merge. Which preset keeps a contested id follows a - mechanical precedence: Bambu-catalog material → OFL generic family → historical first owner.

-
- -
-
P1copy_paste_id~167
-

The id came along when a profile was copied. Qidi stamped GFB99 into 317 files; - Peopoly put PLA-Silk's id on ABS.

-
fix — impostor families get minted ids on their roots; the owner keeps the id.
-
P2wrong_inherits / no root~87
-

A product line never got its own @base — every variant inherits another family's id. - Flashforge's umbrella collapses ~140 presets into one id.

-
fix — create per-family roots with minted ids; re-point inherits. Never delete the old - shadow files — convert them (they carry real config).
-
P3generic_family_overlap~68
-

A vendor-branded filament rides a generic family id via inheritance, colliding with the true generic - on the same printer.

-
fix — branded → minted id. True generic tunings instead join the OFL family with matching alias. - Sovol is the elegant case: just delete its wrong id lines and inherit OFL's.
-
P4overclaim_compat~24
-

Same material; the broad variant claims a printer that a dedicated variant covers — the BBL H2DP pattern - from PR #14459.

-
fix — trim the broader preset's compatible_printers. Ids untouched.
-
P5template-carried idin P1/P2
-

The id sits on a shared settings template (fdm_filament_*), so every family that inherits - the template collapses onto it (Prusa, Ginger Additive).

-
fix — move ids off templates onto family roots.
-
P6OFL-internal collision16 ids
-

One OFL id spans several materials — and OFL presets are visible on every printer. - OGFL06 = eSUN PLA-Marble and Fiberon PETG-ESD.

-
fix — fix OFL first: it's the base bundle every vendor resolves against.
-
P7alias-mismatch re-exposure10 live
-

A vendor tunes a generic but renames it; alias shadowing fails and the OFL preset resurfaces beside it - (Snapmaker PolyTerra J1 PLA).

-
fix — rename-to-alias where it's genuinely the same family, else mint.
-
P8per-variant ids~210 presets
-

The opposite failure: every nozzle variant has its own id (Prusa, SeeMeCNC, Afinia _##). - No ambiguity — but devices can't recognize the material across nozzles.

-
fix — grandfather (they're unambiguous); converge opportunistically; document as anti-pattern.
-
P9format violationshygiene
-

Ids with spaces ("GFPLA Silk"), 11-char ids, invented GF-shaped ids colliding with - Bambu's real allocations.

-
fix — disappears as a byproduct of re-minting; the unambiguous rest is snapshot-frozen.
-
P10cross-vendor semantic67 ids
-

Same id, different material, different vendors — feeds wrong name/type/temperature data to the globally-matching - consumers (§1).

-
fix — mostly eliminated by P1–P3 re-minting; benign same-material generic sharing is legalized - by the snapshot.
-
P11deliberate coexistence4
-

Snapmaker “Benchy” demo presets coexist on purpose (gated by compatible_prints, which the id check - can't see); one preset lists the same printer three times.

-
fix — mint ids for demo presets; de-duplicate list entries; add a lint.
-
-
- - -
-
§5 migration plan
-

Fresh ids only, family-atomic, names never change

-

The persistence analysis makes one strategy provably safe — and everything else forbidden.

- -

What survives an id change

- - - - - - - - - - -
surfacebehavior across releasesverdict
User presets that inherit a system presetfilament_id re-derived from the parent on every load Preset.cpp:1658-1682safe
Saved 3mf projectspresets resolve by name + config equality, never by id Preset.cpp:2490-2576safe
Klipper / Creality / Snapmaker synctray ids derived at runtime from the installed bundlesafe
User root custom presetscopied a system id at creation and persist it forever — AMS auto-match falls back to generic-by-typelow residue
Qidi QD_* idsencode the device protocol QidiPrinterAgent.cpp:146 — an exact-match contractfrozen
BBL GF* idslive on RFID tags and printer-side records; hardcoded k-values in C++frozen
Recycling an old id for a different materialstale ids in user roots / old 3mfs would silently match the wrong materialforbidden, forever
Renaming / deleting preset namesuser presets whose inherits no longer resolves are dropped at load Preset.cpp:1687-1691forbidden (use renamed_from if unavoidable)
- -

Phases

-
-
0
-

Tooling + snapshot — no profile changes

-

Land scripts/assign_filament_ids.py, the extended CI checks in ratchet mode, the validator OFL - cross-check and the runtime warning. Generate filament_id_snapshot.json (id→families multimap over main) - and an empty retired_ids.json; both are checked in and append-only.

-
-
1
-

OrcaFilamentLibrary first

-

OFL is the base bundle every vendor resolves against. Fix its 16 internal collisions and give - Generic PETG HF/PETG-CF/PP-CF/… @System their own family roots instead of collapsing into their - parent generic. Unambiguous ids stay byte-identical.

-
-
2
-

Per-vendor PRs, worst first — each widens the CI ratchet

-

Qidi → Flashforge → Elegoo → Prusa → Cubicon → Anycubic → InfiMech → Snapmaker → long tail (22 vendors, - mostly 1–8 one-line fixes). Each merged PR appends its vendor to the workflow's -f -v scope - (today: -v BBL -f); when all are in, drop -v and run tree-wide.

-
-
3
-

Delete the allowlists

-

Once tree-wide zero holds, the ratchet allowlists disappear and every check becomes a hard rule for anything - born after the snapshot.

-
-
- -
- where the work is — collision groups per vendor - - - Qidi97 - Flashforge69 - Elegoo37 - Prusa31 - Cubicon17 - Anycubic14 - InfiMech14 - Snapmaker11 - Artillery8 - Creality8 - FlyingBear8 - Sovol6 - 18 more40 total (Volumic 6 · Ratrig 5 · Chuanying 4 · Dremel 3 · 4×2 · 10×1) - - -

Vendor observations show these are systematic mistakes, not hundreds of independent bugs: Qidi is one - blanket-stamp in three profile generations; Elegoo is a single inherit-the-class-base habit; Sovol is fixed by deleting - six wrong lines.

-
- -

The migration script's contract (hardened by the adversarial pass)

- - - - - - - -
rulewhy
Re-mint everything — id literals in analysis notes are ignored; only group membership, fix category and keep-id precedence are consumed. Assert no emitted id matches ^(GF|QD_|P[0-9A-Fa-f]{7}$).~40% of classification notes suggested ids in the old invented-GF culture; CI would reject them.
Family-atomic — re-idding any preset re-ids every same-family sibling in the same commit, even outside the collision group.Otherwise a family splits across two ids (FlyingBear GFB99 @S1 vs @Ghost7) — worse than the bug being fixed.
Bounded diff — a vendor PR may only touch collision-group files + same-family siblings; every id that is unambiguous today stays byte-identical.Makes each PR mechanically auditable.
Config-equivalence gate — flattened effective config of every preset must be identical before/after, except the prescribed id/inherits/compat edits.Makes structural conversions provably behavior-neutral (Flashforge's id-less shadow files become named family roots carrying their config byte-for-byte).
No deletions, no renames — redundant twins are re-minted, not dropped; consolidation via renamed_from is a separate human-reviewed cleanup.Deleting a name silently drops users' derived presets at load.
-
- - -
-
§6 enforcement
-

Ratchets, not absolutes

-

The grandfathered landscape keeps today's benign sharing legal; the checks forbid anything new. - All checks import the same mint function — the setting_id precedent.

- - - - - - - - - - - -
#checkwhere
1Format — valid iff OF[0-9A-Za-z]{6} or in the snapshot or vendor==BBL or QD_* in Qidi. The legacy set is closed.orca_extra_profile_check.py
drop BBL-only gate :292, OFL skip :601
2Uniqueness ratchet — tree-wide id→families multimap; no id may gain a family claim not recorded in the snapshot (shared_catalog is the sanctioned exception).
3Structure ratchet — id key only on roots; every instantiated preset resolves an effective id (simulated loader walk); all family members resolve identically; no preset may override its inherited id (the Generic SBS drift class).
4Mint conformance — a new id must equal the mint (or a salt iteration); the failure message prints the expected value so hand-editors can paste it.
5Stability — an (id, family) pair on main may not change or vanish, following renamed_from chains, unless listed in a maintainer-gated migrations file. Retired ids go to an append-only ledger and are never redefined.
6Alias hygiene — a preset inheriting an OFL Generic * @System (no own id in its chain) must keep the OFL base name and non-empty compatible_printers; the error names the rename as the cause.
7OFL cross-check — extend check_duplicate_filament_subtypes to include OFL presets in every vendor's per-printer check, minus alias-excluded ones. m_excluded_from is already populated in validator context, so the 32 shadowed pairs won't false-positive and the 10 live ones are caught. Widen CI's -f per vendor.C++ validator
PresetBundle.cpp:5654 · :2302
8Runtime backstop — log a warning when the AMS-sync find_if sees 2+ compatible presets for one id. The only layer that can see side-loaded and forked bundles. One line.runtime
PresetBundle.cpp:3132/3233
- -

Plus: the rule document ships in-repo (doc/developer-reference/filament_id.md) so CI messages - have a stable link, and the profile-PR template gets one checkbox: “new materials: no filament_id key anywhere — - CI prints the minted id.”

-
- - -
-
§7 evidence
-

How this was verified

-

The analysis was run as a 52-agent pipeline over the real tree and real git history, with an - adversarial design phase — findings were attacked before being adopted.

- -
- methodology - - - - - - - - - 5 code analysts - runtime · persistence · loader - Bambu grammar · git history - - 38 classifiers - every collision group, read - from the actual profile files - - ground truth - audit script = validator - 1256 = 1256 · exact - - - 3 designs - deterministic mint - registry grammar - structure-only - - - 2 judges - both chose the mint - 58 / 50 / 56 - 60 / 54 / 56 - - - 3 attackers - 35 scenarios - authors · runtime · - migration mechanics - every “breaks” → - an amendment §3–§5 - spot-check: 1/14 - - - - - - - - - -

Amendments that came out of the attack pass: family identity declared on roots (not name-derived — - Afinia PLA@HS has no space before @); multi-root families legalized; checks 2–3 as - ratchets, not absolutes; the no-deletion rule; shadow-file conversion instead of deletion; classification id - literals quarantined; diameter siblings; case-insensitive reservation of the user id space.

-
- -
- Key discoveries that reshaped the design (with sources) -
-

· The “26 Flashforge presets with no id” were a false alarm — the loader resolves them through the OFL base-bundle - fallback to OGFL99/OGFG99 PresetBundle.cpp:4904-4909. The real bug is - ~10 different Flashforge PLA products sharing one id.

-

· A missing id can never ship: it's a hard load error that discards the whole vendor bundle - PresetBundle.cpp:5072, :5141.

-

· Qidi's QD_* ids are a device-protocol contract, discovered in - QidiPrinterAgent.cpp:146-152 — a second frozen namespace nobody had documented.

-

· User-custom ids occupy P + 7 hex CreatePresetsDialog.cpp:533, and - "null" is a sentinel — both reserved.

-

· OFL shadowing is keyed by alias, not id Preset.cpp:3684-3714, and is already active in - validator context PresetBundle.cpp:2302 — which is what makes check #7 precise.

-
-
-
- - -
-
§8 open decisions
-

Five calls that are yours to make

-

Everything else in the plan holds under any of these answers. marks the recommendation.

- -
-
D1id format
-
Opaque deterministic mint OFq3xT9k — no registry, no races, fork-friendly; judges 2/2.
-
Mnemonic registry grammar <NS><FAM><SEQ> — readable ids, but someone allocates numbers forever.
-
D2multi-vendor brands
-
shared_catalog list — sanction authentic Bambu ids for byte-matching families (Snapmaker's Fiberon), low churn.
-
Hoist those families into OFL — cleaner long-term, more restructuring now.
-
D3demo presets
-
Mint ids for Benchy-style presets — simple, keeps the validator strict.
-
Teach the validator compatible_prints gating — more machinery for 3 presets.
-
D4the 10 live OFL duplicates
-
Rename-to-alias where it's truly the same family (with renamed_from) — restores shadowing.
-
Mint vendor ids everywhere — safer mechanically, more ids in the world.
-
D5where the rule doc lives
-
In-repo doc/developer-reference/filament_id.md — CI messages need a stable link.
-
Wiki-only — discoverable, but drifts from the checks that enforce it.
-
- -
- Suggested first step: land phase 0 (tooling + snapshot, zero profile changes). It is entirely additive, - makes every later PR mechanically checkable, and turns the 356-group backlog into a shrinking allowlist that CI - reports on every profile PR. -
-
- -
- - - - diff --git a/filament_id_plan.md b/filament_id_plan.md deleted file mode 100644 index 7dc4b43d04..0000000000 --- a/filament_id_plan.md +++ /dev/null @@ -1,397 +0,0 @@ -# filament_id: generation rule + system-profile fix plan - -Follow-up to PR #14459 (commit `c2e91cb8`, validator `-f` / `check_duplicate_filament_subtypes`). -Goal 1: a filament_id generation rule for all vendors. Goal 2: an error-pattern taxonomy and a -migration plan that removes every ambiguous filament_id, without touching Bambu (BBL) profiles. - -All numbers below are reproducible: a loader-faithful audit script re-derives the validator's -output **exactly** (1256/1256 printer-level errors, 356 logical collision groups, 30 vendors). -Every code claim was verified against source with `file:line` references. - ---- - -## 0. Executive summary - -- `filament_id` is a **material-family id**: one id per commercial product line, shared by all - of that material's per-printer/per-nozzle variants. Matching is always `(filament_id + - printer compatibility)`; the invariant from PR #14459 is *per printer preset, at most one - compatible instantiated filament preset per id*. -- Every modern device ecosystem funnels through this id — not just Bambu AMS: Qidi box, - Creality CFS, Klipper AFC/Happy Hare, Snapmaker all emit/consume `tray_info_idx` - (see §1). Several consumers match **globally, without printer scoping**, so two *different - materials* sharing one id is unsafe even across vendors. -- **Proposed rule (§3):** deterministic, script-minted ids — `OF` + 6 base62 chars from - `uuid5(vendor + family)`, declared **only on family-root (`@base`) presets**; variants inherit. - Nobody ever invents an id by hand; CI prints the expected id when one is missing. Existing - unambiguous ids are grandfathered and frozen; `GF*` (Bambu), `QD_*` (Qidi device protocol), - and `P<7-hex>` (user custom presets) are reserved namespaces that must never be minted into. - This was selected by an adversarial design/judge process over a registry-grammar alternative - and a structure-only alternative, then stress-tested; amendments from that stress test are - folded in below. -- **Migration (§5):** fresh-never-reused ids only, family-atomic, names never changed. This is - provably safe: user presets re-derive `filament_id` from their parent on every load - (`Preset.cpp:1658-1682`), 3mf resolves presets by name+config (`Preset.cpp:2490-2576`), and - Klipper/Creality/Snapmaker derive tray ids at runtime. One PR per vendor; CI's `-f` scope - ratchets per vendor until tree-wide. - ---- - -## 1. How filament_id actually works (verified) - -### Consumers and scoping - -All device integrations converge on one pipeline: device/agent sets `tray_info_idx` → -`DevAmsTray.setting_id` → `Sidebar::build_filament_ams_list` (`Plater.cpp:3423-3493`) → -`PresetBundle::sync_ams_list` / `get_ams_cobox_infos` (`PresetBundle.cpp:3112-3308`) match it -against filament presets. - -| Ecosystem | Where the id comes from | Effect of changing a system id | -|---|---|---| -| BBL AMS | device-side (RFID / user tray setting), `DeviceManager.cpp:3823+` | breaks matching — **frozen by mandate** | -| Qidi box | built from device enums: `"QD_" + series + "_" + vendor + "_" + type_idx`, `QidiPrinterAgent.cpp:146-152`; needs an exactly-matching visible preset | breaks matching — **`QD_*` ids are a frozen device contract** | -| Creality CFS | runtime brand/type scoring returns current preset's id (`CrealityPrintAgent.cpp:46-118`) | invisible | -| Klipper (AFC / Happy Hare) | runtime `filament_id_by_type` (`MoonrakerPrinterAgent.cpp:808,936`) | invisible | -| Snapmaker | runtime color/vendor/type match (`SnapmakerPrinterAgent.cpp:22-64`) | invisible | - -Matching is printer-scoped (`is_compatible`) in the AMS sync paths and all printer agents — this -is what makes the per-printer invariant sufficient there. But several consumers match -**globally by id alone**, first match wins: - -- `get_filament_by_filament_id("")` — tray display name, `filament_is_support`, - `temperature_vitrification` warnings (`PresetBundle.cpp:690-733`; callers - `DevFilaBlackList.cpp:70`, `Plater.cpp:3453`, `SelectMachine.cpp:3560,4623`). The code - comment at `:695` states the assumption outright: an id maps to ONE material globally. -- `MachineObject::setting_id_to_type` (`DeviceManager.cpp:2538`), calibration-history name - lookup (`CaliHistoryDialog.cpp:62`), custom-filament cloud grouping (`Preset.cpp:2839`). -- The slicing pipeline itself: multi-nozzle filament grouping merges project filaments whose - `(filament_id, color)` match (`FilamentGroup.cpp:513-528` via `ToolOrdering.cpp:1164`). - -**Consequence:** within one printer, duplicate ids break AMS matching (silent first-wins, -`find_if` at `PresetBundle.cpp:3132/3233`; the AMS tray-edit dialog even *hides* the second -preset, `AMSMaterialsSetting.cpp:894-897`). Across vendors, the same id on *different -materials* feeds wrong name/type/vitrification data to the global consumers and can merge -different materials into one nozzle group. Same id on the *same* material (e.g. `GFL99` = -Generic PLA in 29 vendors) is comparatively benign — those attributes agree. - -### Identity machinery - -- **Effective id resolution** (`PresetBundle.cpp:4842-5080`): own `filament_id` key → vendor - `filament_id_maps[inherits]` (file order in the vendor index is load-bearing) → - OrcaFilamentLibrary base-bundle map. An instantiated system filament that resolves *no* id is - a hard load error that discards the whole vendor bundle (`:5072`, throw at `:5141-5147`) — - so "missing id" cannot ship; what looked like 26 id-less Flashforge presets actually resolve - to OFL's `OGFL99`/`OGFG99` through the base-bundle fallback. -- **Two family-identity systems exist**: `filament_id` (device matching) and `alias` (name - before `" @"`). OFL shadowing is keyed on **alias**: `update_library_profile_excluded_from` - (`Preset.cpp:3684-3714`) hides an OFL preset (empty `compatible_printers` = compatible with - everything, `Preset.cpp:837`) on printers claimed by a same-alias vendor preset. There is - **no id-based shadowing**. A vendor preset that tunes an OFL generic but renames it - re-exposes the OFL preset and creates a live duplicate. The rule below aligns the two - systems: one family = one alias = one id. -- **User-custom id space**: user-created filaments get `"P" + md5(name)[0:7]` (8 chars, - `CreatePresetsDialog.cpp:533`), or *reuse a system id* when the base name matches an existing - preset (`:510-528`). `"null"` is used as a sentinel. Root user presets persist their id - forever; inheriting user presets re-derive it on every load. - -## 2. The id landscape today - -**Bambu's grammar** (derived from all 1970 BBL instantiated presets; BBL is internally clean — -181 id definitions, 0 duplicates): - -- Classic `GF`: letter = family (A Bambu-PLA, B ABS/ASA, C PC, G PETG/PCTG, - L third-party+generic PLA, N PA/PPA, P PP/PE, R misc, S support, T PET/PPS, U TPU). - Numbers: 00-49 branded ascending, 50-59 fiber-filled, 60-70 partner block, **95-99 generic - tier descending** (99 = the family's plain generic). -- Brand partners `GF`: GFPM Polymaker, GFOT Overture, GFSNL SUNLU, GFNMK - Numakers. One id per product line; never per color, never per printer/nozzle/diameter. -- Structural rule: the id lives on the material's `@base`; every variant inherits it. -- Hardcoded in C++: `GFS00/GFS01` support check (`DeviceManager.cpp:4739`), per-family PA - defaults `GFU01/03/04` (`CalibUtils.cpp:54-75`) — `GF*` is Bambu's space, byte-frozen. - -**Everything else is ad-hoc, invented by individual contributors and imitated** (full history -in §7): OFL's `O`-prefix mirrors (`OGFA00`; introduced 2025-03-31, commit `8c4a65e3e1`), -Tiertime/Afinia `GFx##_##` per-printer-line suffixes, SeeMeCNC per-nozzle ids, LH `LHF_pla`, -LONGER 11-char pseudo-GF ids, Anycubic ids **with spaces** (`"GFPLA Silk"`), Prusa ids that are -entire preset names (36 chars), and mass copy-paste of `GFL99/GFB99/GFG99` onto everything -(Qidi alone stamped `GFB99` into **317 files** across all materials). The only guidance that -ever existed was "≤ 8 chars" — enforced for BBL only (`orca_extra_profile_check.py:292,320`), -and the (now removed) profile wiki's own examples *taught* id copy-pasting. - -**The damage, quantified** (audit reproduces validator 1256/1256): - -| Ledger | Count | -|---|---| -| Within-vendor logical collision groups (validator `-f`) | **356** across 30 vendors (1256 printer-level errors) | -| OFL×vendor same-id groups (validator blind spot) | 42 — of which **10 are live** (alias mismatch defeats shadowing); 32 already neutralized by alias shadowing | -| OFL-internal: one id, several materials, visible on every printer | **16 ids** (e.g. `OEPLAB00` = 14 distinct Elegoo PLA products; `OGFL06` = eSUN PLA-Marble *and* Fiberon PETG-ESD) | -| Cross-vendor semantic collisions (same id, different materials) | **67 ids** (e.g. `GFU99` also covers a PEBA; Anycubic minted `GFL95` "Matte" ≠ Bambu `GFL95` "High Speed") | - -Worst vendors by groups: Qidi 97, Flashforge 69, Elegoo 37, Prusa 31, Cubicon 17, -Anycubic 14, InfiMech 14, Snapmaker 11, Artillery 8, Creality 8, FlyingBear 8. - ---- - -## 3. The rule (proposal) - -Selected by a 3-design / 2-judge adversarial process (deterministic-mint won over -registry-grammar and structure-only on ambiguity-prevention, contributor simplicity, and -enforceability), then hardened by three adversarial review passes. This section is written as -the future authoring doc. - -### 3.1 The one-question test - -> **Would a user consider this a different spool product than anything already in the tree?** -> Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or -> a second selectable diameter → **new family, new id**. The same spool tuned for another -> printer or nozzle → **join the existing family** (inherit its `@base`, no id key). Tuning a -> generic material → **join the OFL family** (inherit the `Generic X @System` preset, keep the -> `Generic X` base name, add no id). - -Same id / new id at a glance: - -| Situation | id | -|---|---| -| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | -| Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | -| Color | never a new id | -| Second diameter selectable on the same printer (1.75 + 2.85) | sibling family, new id | -| "High-speed" tuned for a *different printer model* | same id (it's a printer variant) | -| "High-speed" selectable *alongside* the normal preset on one printer | new id (it's a product line) | - -### 3.2 Structure - -1. **One family = one root.** Each material family has root preset(s) (`instantiation:false`, - typically ` @base`) and only roots carry the `filament_id` key. Instantiated - variants inherit a root and never write `filament_id`. (A family MAY have several roots — - e.g. Qidi's per-series bases — but they must all declare the *identical* id.) -2. **Family identity is declared, not name-derived.** Default: the family name is the - instantiated presets' base name (name with `/\s?@.*$/` stripped — note *optional* space, - because `Afinia PLA@HS`-style names exist). When vendor naming makes that ambiguous, the - root declares an explicit `"filament_family"` key that overrides derivation; tooling errors - loudly when a root's derived family differs from its children's. -3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — that *is* the - PR #14459 invariant, enforced by the validator. -4. **Generics belong to OFL.** A vendor tuning `Generic PLA` inherits - `Generic PLA @System`, keeps the `Generic PLA` base name/alias (so alias shadowing excludes - the OFL preset on those printers, `Preset.cpp:3684`), sets non-empty `compatible_printers`, - and writes no id. A vendor-*branded* filament never rides a generic family id. -5. **Ids are immutable once shipped.** Renaming a family does not change its id (use - `renamed_from`). No id is ever recycled for a different material — stale ids live on in - user root presets and old 3mfs, and a recycled id would silently match the wrong material. - -### 3.3 Minting — nobody invents ids - -New family ids are computed, exactly like the `setting_id` precedent -(`scripts/assign_vendor_setting_ids.py` / `Slic3r::generate_preset_setting_id`): - -``` -filament_id = "OF" + base62_6( uuid5( NAMESPACE, "filament_family//" ) ) -``` - -8 chars total (satisfies the AMS length limit), same base62 derivation and a dedicated -namespace constant. On the astronomically rare collision with an existing id, the minter salts -the input (`.../1`, `/2`, …) until free; the result is simply frozen in the file. - -- **Script path:** author commits the family with *no id anywhere*; - `python scripts/assign_filament_ids.py` inserts the minted id into the root(s). Idempotent; - never rewrites a valid existing id. A `--mint "/"` one-shot prints the id - without touching the tree. -- **No-script path:** CI fails with the exact line to paste: - `family "MyBrand PLA" (vendor X) needs filament_id "OFq3xT9k" in "MyBrand PLA @base.json"`. - -**Reserved namespaces — never mint or hand-write into:** - -| Space | Owner | Status | -|---|---|---| -| `GF*` | Bambu AMS/RFID catalog | byte-copies of authentic Bambu ids only, and only where a checked-in `shared_catalog` list sanctions the family (BBL bundle; OFL mirrors; byte-matching families in other vendors, e.g. Snapmaker's Fiberon) | -| `QD_*` | Qidi device protocol | frozen; Qidi-only; exempt from family-shape checks | -| `P[0-9A-Fa-f]{7}`, `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp:533`) | never emitted for system presets (reserve case-insensitively) | -| everything already shipped | grandfather snapshot | frozen as-is (§5) | - -Trade-off accepted: minted ids are opaque (`OFq3xT9k` carries no "PLA" mnemonic — the family -name in the same file provides that). The judges preferred this over a Bambu-style extended -grammar because it removes the "who allocates the next number" ceremony, cannot race between -concurrent PRs, and needs no registry maintenance. If mnemonic ids are strongly preferred, the -runner-up design (`` + registry file) is documented in the workflow -records; everything else in this plan is unchanged under either format. - -### 3.4 What CI enforces (all vendors, ratcheted) - -Extend `scripts/orca_extra_profile_check.py` (it imports the same mint function; setting_id -precedent) and the C++ validator: - -1. **Format**: an id is valid iff `OF[0-9A-Za-z]{6}` **or** in the grandfather snapshot **or** - vendor==BBL **or** `QD_*` in Qidi. No whitespace/ASCII/length checks needed outside the - grandfather set — new ids are minted, and the grandfather set is closed. -2. **Uniqueness ratchet**: id→families multimap computed tree-wide; no id may acquire a family - claim not recorded in the snapshot (snapshot legalizes today's benign `GFL99`-style sharing; - new multi-claims are errors; `shared_catalog` entries are the sanctioned exception). -3. **Structure ratchet**: `filament_id` key only on roots; every instantiated filament must - resolve an effective id via the simulated loader walk; all members of one family resolve the - same id; **a preset may not declare an id different from its inherited effective id** (the - `Generic SBS` drift bug class). Pre-existing violations are snapshot-frozen; new ones error. -4. **Mint conformance**: an id new relative to the snapshot must equal the mint (or a salt - iteration); the error message prints the expected value. -5. **Stability**: an `(id, family)` pair on main may not change or vanish, *following - `renamed_from` chains* (so an honest rename passes), unless listed in a maintainer-gated - migrations file. Retired ids go to an append-only `retired_ids` ledger; a retired id may - never be defined again for any family. -6. **Alias hygiene for tuned generics**: a preset inheriting an OFL `Generic * @System` (with - no own id anywhere in its vendor chain) must keep the OFL base name and have non-empty - `compatible_printers` — error message names the rename as the cause. -7. **C++ validator**: extend `check_duplicate_filament_subtypes` (`PresetBundle.cpp:5654`) to - include OFL presets in every vendor's per-printer check, *minus* alias-excluded ones — - `m_excluded_from` is already populated in the validator context (`update_system_maps` at - `PresetBundle.cpp:2302`), so the 32 shadowed pairs won't false-positive and the 10 live ones - will be caught. Run `-f` per vendor in CI, widening as vendors are cleaned (§5). -8. **Runtime backstop** (one-line change): log a warning when the AMS-sync `find_if` - (`PresetBundle.cpp:3132/3233`) finds 2+ compatible presets for one id — the only layer that - can see side-loaded/forked bundles. - ---- - -## 4. Error-pattern taxonomy (goal 2) — with counts and fixes - -356 groups were classified by 37 agents reading the actual profiles, spot-checked -independently (1 substantive disagreement in 14 samples). Counts below fold the spot-check -corrections in. **Fix rule for all patterns: replacement id values are always freshly minted -`OF*`; the "which preset keeps the id" decision uses the precedence _Bambu-catalog material > -OFL generic family > family that historically introduced the id_.** - -| # | Pattern | Groups | Fix | -|---|---|---|---| -| P1 | `copy_paste_id` — different materials share an id verbatim (task's error 1). Qidi's `GFB99`×317-files epidemic; Anycubic's three id "eras"; Peopoly `GFSL99` on ABS | ~167 | impostor families get minted ids on their roots; owner keeps the id | -| P2 | `wrong_inherits` / id-less product lines — a variant inherits another family's root (PR #14459's Panchroma case) or a product line never got its own root (Prusa HF; Flashforge's ~140-preset `FFG01` umbrella) | ~87 | create per-family roots with minted ids; re-point `inherits`; **never** delete the id-less shadow/base files — convert them (they carry real config: Flashforge `fdm_filament_pla` differs materially from OFL's) | -| P3 | `generic_family_overlap` — vendor-*branded* preset rides a generic family id via inheritance (task's error 2, generalized). Includes the 10 live OFL duplicates | ~68 | branded presets get minted family ids; true generic tunings instead adopt the OFL family *with matching alias* (rule 3.2.4); Sovol is the elegant case — just **delete** its wrong own-id lines and let OFL ids flow through inheritance | -| P4 | `overclaim_compat` — same material, broader variant claims a printer that a dedicated variant covers (the BBL H2DP pattern fixed in #14459) | ~24 | trim `compatible_printers` of the broader preset (Dremel, Cubicon `@base`s that are also instantiated, Wanhao France Bowden/Direct) | -| P5 | template-carried id — id declared on a shared settings template (`fdm_filament_*`, `fdm_filament_common`) so every family inheriting it collapses (Prusa, Ginger Additive, Snapmaker TPU base) | inside P1/P2 counts | move ids off templates onto family roots | -| P6 | OFL-internal collisions — 16 ids spanning several materials, visible on every printer (Elegoo blocks, Elas `OGFA00`×3, `OGFL06` polymer mismatch, `Generic PETG HF/PETG-CF @System` missing own ids) | 16 ids | fix inside OFL first (it's the base bundle every vendor resolves against) | -| P7 | alias-mismatch re-exposure — vendor tunes a generic under a different name, OFL preset resurfaces (Snapmaker `PolyTerra J1 PLA` vs OFL `PolyTerra PLA`) | 10 live | rename-to-alias where it's genuinely the same family, else mint | -| P8 | per-variant ids — no ambiguity, but family semantics broken: every variant has its own id (Prusa name-ids, SeeMeCNC nozzle suffixes, Afinia/Tiertime `_##`, iQ) so device matching can't identify the material across nozzles | ~210 presets | grandfather (they're unambiguous); converge opportunistically; document as anti-pattern | -| P9 | format violations — spaces (`"GFPLA Silk"`), >8 chars (LONGER, SeeMeCNC, LH), GF-shaped inventions (Anycubic `GFL93-97`, CoLiDo `GFA99`) | in the above | fixed as a byproduct of re-minting; snapshot freezes the unambiguous rest | -| P10 | cross-vendor semantic collisions — 67 ids meaning different materials in different vendors (dangerous via the global unscoped consumers, §1) | 67 ids | mostly eliminated by P1-P3 re-minting; the remaining same-material generic sharing is legalized by the snapshot | -| P11 | deliberate coexistence & data hygiene — Snapmaker "Benchy" demo presets (gated by `compatible_prints`, which the id check can't see) and a self-collision from duplicate `compatible_printers` entries | 4 | give demo presets own minted ids; dedupe list entries; add a lint for duplicate array entries | - -New patterns beyond the two in the task (goal 2.3): P5-P11. - ---- - -## 5. Migration plan - -### Safety foundation (verified, §1/§7) - -Safe: fresh never-used ids, family-consistent; trims of `compatible_printers`; inherits -re-pointing; OFL id changes (children re-derive). Unsafe: touching `BBL`/`QD_*`; recycling or -swapping ids; splitting a family's id; **deleting or renaming preset names** (user presets -whose `inherits` no longer resolves are dropped at load, `Preset.cpp:1687-1691`) — if a name -must go, `renamed_from` coverage is mandatory. - -### Phases - -0. **Land the rule + tooling first** (no profile changes): `scripts/assign_filament_ids.py` - (mint + insert + `--mint`), the extended `orca_extra_profile_check.py` checks in - snapshot-ratchet mode, the C++ validator OFL cross-check, the runtime warning, the rule doc. - Generate `filament_id_snapshot.json` (id→families multimap over main) and empty - `retired_ids.json` — both checked in. -1. **OFL first** (it's the base bundle every vendor resolves against): fix the 16 internal - collisions (Elas/eSUN/DREMC copy-pastes get mints; `Generic PETG HF/PETG-CF/PP-CF/PP-GF/ - PE-CF/PLA Matte @System` get their own family roots+ids instead of collapsing into their - parent generic), keeping every current effective id that is unambiguous. -2. **Per-vendor PRs, worst-first**: Qidi → Flashforge → Elegoo → Prusa → Cubicon → Anycubic → - InfiMech → Snapmaker → the long tail (22 vendors, mostly 1-8 one-line fixes). Each PR flips - that vendor into CI's `-f` scope (`check_profiles.yml` currently `-v BBL -f`; append - vendors as they reach zero; when all are in, drop `-v` and run tree-wide). -3. **Delete the ratchet allowlists** once tree-wide zero holds; checks become hard rules for - everything born after the snapshot. - -### Migration-script contract (from the adversarial pass — important) - -- Consumes from the classification only: group membership, fix category, keep-id precedence, - inherits-repoint targets. **All replacement id values are recomputed via the mint** — id - literals in analysis notes (e.g. `GFA00_02`, `GFS98`, `GFG96`) are legacy-culture artifacts - and are ignored with a warning; assert no emitted id matches `^(GF|QD_|P[0-9A-Fa-f]{7}$)`. -- **Family-atomic**: re-idding any preset re-ids every same-family sibling in the same commit, - even siblings outside the collision group (FlyingBear `GFB99 @S1` vs `@Ghost7`); Prusa is - family-atomic per material (its HF/CF families span frozen `_N`-suffix ids — freeze what's - unambiguous, mint once per family for the colliding members). -- **Diff bound**: a vendor migration PR may only touch collision-group files + same-family - siblings of re-idded presets; every id that is per-printer-unambiguous today stays - byte-identical. -- **Config-equivalence gate**: dump every instantiated preset's flattened effective config on - main and on the PR head; the diff must be empty except `filament_id`/`inherits`/ - `compatible_printers` edits the plan prescribes (this is what makes the Flashforge - shadow-file conversions safe: each id-less `fdm_filament_*` shadow becomes a named vendor - family root carrying its config byte-for-byte, children re-pointed, then the shadow name - retired). -- **No deletions**: redundant presets (Flashforge's byte-identical `Generic X`/`Flashforge X` - twins) are re-minted, not dropped; consolidation with `renamed_from` is a separate, - human-reviewed cleanup. -- Expected user impact: none for inheriting user presets, 3mfs, Klipper/Creality/Snapmaker - sync. Residue: user *root* presets that copied an old system id keep it forever - (AMS auto-match falls back to generic-by-type — low severity, unavoidable from the repo). - -### Vendor-specific notes (from classification) - -- **Qidi (97)**: three profile generations. `QD_*` generics are correct and frozen; the fix is - the brand families (Bambu/HATCHBOX/Overture/PolyLite/Tinmorry/QIDI-brand) that all carry - `GFB99/GFG99/GFL99`. Multi-root families are the norm (`...@Q2-Series` / `@Q2C-Series` / - `@X-Max 4-Series` bases) — same mint lands in every series root of one family. -- **Flashforge (69)**: two umbrellas (`FFG01` ~140 presets; `GFB99/GFG99/GFL99` G3U-era) + - OFL-riding branded presets + shadow-file conversion (above). -- **Elegoo (37)**: single mistake — every commercial variant inherits the material-class - `@base` (`EB00`); mint one id per product line (Silk/Matte/PRO/Rapid/…), roots exist. -- **Prusa (31)**: HF product lines need their own roots; ids move off `fdm_filament_*` - templates; frozen name-shaped and `_N` ids stay. -- **Sovol (6)**: delete the wrong own-id lines; correct ids flow from OFL by inheritance. -- **Cubicon (17)**: `@base` presets are themselves instantiated + over-claiming; 9 file edits. - ---- - -## 6. Concrete work items (PR-sized) - -1. `scripts/assign_filament_ids.py` + mint function + tests (incl. the 14-group regression set - from the adversarial pass). *(new)* -2. `orca_extra_profile_check.py`: checks §3.4-1..6 in ratchet mode + snapshot/ledger files; - drop the BBL/OFL-only gate at `:292` and the OFL skip at `:601`. *(extend)* -3. C++ validator: OFL-aware `check_duplicate_filament_subtypes`; runtime ambiguity warning at - the two `find_if` sites. *(small)* -4. Rule documentation: `doc/developer-reference/filament_id.md` (recreate the path; wiki - cross-link) + profile-PR template checkbox ("new materials: no filament_id key anywhere; CI - prints the minted id"). *(new)* -5. OFL migration PR (phase 1). -6. Per-vendor migration PRs (phase 2), each widening CI `-f` scope. - -The audit tooling from this analysis (loader-faithful resolver; reproduces the validator -1256/1256) is in this session's scratchpad (`audit_filament_ids.py`) and is the natural seed -for items 1-2. - -## 7. Evidence & methodology - -- Validator ground truth: `OrcaSlicer_profile_validator -f` tree-wide → 1256 errors; audit - script reproduces exactly (356 logical groups after dedup by (vendor, id, preset-set)). -- Code analysis: 5 parallel agents over runtime consumers, persistence/migration surface, - loader semantics, Bambu grammar, and convention history — all claims carry `file:line`. -- Classification: 37 agents (one per vendor chunk) reading actual profile JSONs; 14-sample - independent re-derivation found 1 substantive error (a Flashforge group mislabeled - `missing_id`; corrected — the loader resolves those ids from OFL). -- Design: 3 independent designs → 2 judges (both chose the deterministic mint; scores 58/50/56 - and 60/54/56) → 3 adversarial attackers (35 scenarios; every `breaks` finding is folded into - §3.2-3.4/§5 as an amendment: declared families, multi-root support, ratchet-not-absolute - checks, no-deletion rule, shadow-file conversion, classification-id-literal quarantine, - diameter siblings, case-insensitive P-hex reservation, fork guidance). -- Key history: `OGF*` born 2025-03-31 (`8c4a65e3e1`, no PR); `_##` suffix born PR #9739; - 8-char check born PR #9574; wiki (with the id-copy-paste example) removed 2025-11-24 - (`f0d79b99eb`). - -## 8. Open decisions for maintainers - -1. **Id format**: opaque deterministic `OF*` mint (recommended, judges 2/2) vs mnemonic - registry grammar (runner-up). Everything else in the plan is format-agnostic. -2. **Multi-vendor brands** (Snapmaker ships Fiberon with authentic `GF*` ids): sanction via - `shared_catalog` (recommended, low churn) vs hoisting those families into OFL. -3. **Benchy-style demo presets**: mint ids per demo preset (recommended) vs teaching the - validator `compatible_prints` gating. -4. **Alias alignment**: fix the 10 live alias-mismatch OFL duplicates by rename-to-alias - (better long-term, needs `renamed_from`) vs minting vendor ids (safer, more ids). -5. **Where the rule doc lives**: in-repo `doc/` (recommended — CI messages need a stable link) - vs wiki-only. diff --git a/filament_id_plan_v2.md b/filament_id_plan_v2.md deleted file mode 100644 index b5bf0f1c65..0000000000 --- a/filament_id_plan_v2.md +++ /dev/null @@ -1,314 +0,0 @@ -# filament_id plan v2: the `get_filament_id` (P+md5) proposal, validated - -> **Status note:** the verdict in §0-§4 and §7-§8 stands. The work items in §5 are -> superseded by `filament_id_plan_v3.md` (OFL-as-catalog, content-addressed triple key, -> succession ledger): W1/W3 are carried into v3.0, W2/W5 carry unchanged, W4 is dropped. - -Follow-up to `filament_id_plan.md` (v1, implemented on `feature/filament_id`: deterministic -`OF*` mint + snapshot ledger + 30-vendor migration, tree-wide validator `-f` = 0). - -**Proposal under review:** mint system `filament_id`s with the scheme of -`static std::string get_filament_id(std::string vendor_typr_serial)` -(`src/slic3r/GUI/CreatePresetsDialog.cpp:487-552`) — Bambu's user-custom-filament id -allocator — so system ids are "compatible with Bambu AMS sync". - -Every claim below was verified in source (`file:line`), against upstream BambuStudio, or in -primary online sources (URLs in §8). Verdict first, evidence after. - ---- - -## 0. Executive summary — the verdict - -**Do not re-mint system ids as `P+md5(name)`. Keep the v1 `OF*` mint.** Three facts decide it: - -1. **The AMS/device path never validates id *shape*.** `tray_info_idx` is an opaque string - end-to-end: sent verbatim (`DeviceManager.cpp:1642`), parsed verbatim - (`DevFilaSystem.cpp:512-514`), and firmware persists arbitrary bytes — an A1 stored and - echoed a *corrupted* id `Pde2\xea58c` (bambulab/BambuStudio#5436). A P-shaped system id - is not "more acceptable" to the device than an `OF*` one. -2. **P-shape buys zero recognition.** The printer resolves tray ids only against its built-in - `GF*` catalog plus the *account's* cloud custom-filament cache (official Bambu wiki); ids - it cannot resolve round-trip as `?`. Orca can never upload system presets into that cache - (`Preset.cpp:2071` gates cloud upload on `is_user()`), so an Orca system `P` id shows `?` - exactly like an `OF` id. The public catalog id space is 100% `GF*` (ha-bambulab - `filaments.json`: 86/86 ids). -3. **P-shape is the one shape the codebase punishes.** The *only* id-shape dispatch in the - entire tree is `MachineObject::check_ams_filament_valid` + `update_filament_list` - (`DeviceManager.cpp:5335/5352/5395/5410`, gate `setting_id.size()==8 && [0]=='P'`), a - user-custom lifecycle reconciler that **remotely wipes an AMS tray** - (`command_ams_filament_settings(..., "", "", white, "", 0, 0)` at `:5345`) or rewrites its - temps (`:5361-5367`) when a P-shaped tray id drops out of the user-root preset list - (`:5219`, armed at `:5268`). Name-keyed minting makes system id == user-custom id *by - design* (same name → same id), so "user deletes their now-redundant custom after the - system preset ships" becomes a remote tray wipe. `GF*` (wrong length) and `OF*` (wrong - first char) are structurally immune. - -The proposal's *real* value lives in two places, and v2 captures both without the re-mint: - -- **The adopt step** (the function's first branch, `:509-511/:526-528`): same base name → - same id. In-app, this already gives Orca-local convergence today — a user custom named - like a system family adopts the system id *whatever its shape*. At authoring time, the - same semantics = the v1 `shared_catalog` mechanism; §5/W4 extends it (curated, optional) - to let byte-authentic Bambu-catalog families carry authentic `GF*` ids. -- **The hash step belongs to user space.** `P+md5(name)` is Bambu's allocator for *user* - presets; the community is already asking for it there (OrcaSlicer PR #13315, unique ids - for inherited user presets). §5/W5 endorses that lane. System profiles stay out of the - `P` namespace — and v2 adds client hardening (W1) because ten *already-shipped* system - P-hex ids (Cubicon `P510cf**`×8, Ginger `P510eff9`, Artillery `Pfcf9c4c`) sit inside the - wipe-gate's shape match today. - -Judge panel (3 independent lenses over 4 variants; §7): keep-`OF*` won 23/40 aggregate -(device-ecosystem 6, identity-semantics 8, migration-enforceability 9) vs full Bambu -emulation 11, hash-only name-keyed 12, vendor-scoped P-hash 12. The single dissent -(device-ecosystem, favoring adoption) is honored by W4; its own verdict on the shape was -"adopt the semantics, not the costume". - ---- - -## 1. What the proposed generator actually is (verified) - -`get_filament_id(vendor_typr_serial)` (`CreatePresetsDialog.cpp:487-552`), called with -`" "` (`:1128`, `PLA-AERO`→`"PLA Aero"`), and per-preset with the -display base name when cloning presets for a user-created printer -(`Preset.cpp:2785-2803` → `:2798-2800`): - -1. **Adopt:** scan a temp bundle of *every* vendor bundle on disk - (`PresetBundle::load_system_filaments_json`, `PresetBundle.cpp:2342-2391`) plus the - user's presets, then the live bundle (`Preset.cpp:2831-2842`); if any preset's base name - (`name.substr(0, first('@') - 1)`) equals the input and its id ≠ `"null"`, **return that - id** — which can be `GF*`, `QD_*`, `OF*`, or another user's P-hex. -2. **Mint:** `"P" + md5(input)[0:7]`, lowercase hex over the raw UTF-8 bytes (`:533`, - `:480`). -3. **Collide:** if the id is held by a *different* name, re-hash with a local wall-clock - salt (`md5(input + get_curr_time())`, `:547`) — non-deterministic by construction. - -Upstream parity: the function and its caller input construction are **byte-identical** in -BambuStudio master (`CreatePresetsDialog.cpp` L434-499 / L1061; diff empty, fetched -2026-07-03). So identical dialog inputs in BBS and Orca yield identical ids — the kernel of -the proposal's compatibility claim. - -Reproduction limits (why "exactly the approach" cannot be ported to system minting anyway): - -- The base-name parser truncates names lacking a space before `@` (`"Afinia PLA@HS"` → - `"Afinia PL"`); 48 shipped presets hit this, and the *clone* path parses differently - (`" @"` two-char, `Preset.cpp:2792`), so the app itself is internally inconsistent. -- 597 presets (361 whole families, e.g. all of Anker) contain no `@` and are invisible to - the adopt scan and its collision map (`:505-508`). -- The collision salt is wall-clock time — unreproducible across machines, so id values - cannot be CI-verified from names; a ledger would still be the sole source of truth. -- Shipped P-hex ids don't round-trip from names today: Cubicon `P510cfb0` ≠ - `P+md5("Cubicon ABS")` = `Pc624b68` (verified) — so even Bambu-lineage P ids are not - name-derivable in practice. - -## 2. What Bambu AMS sync actually consumes (verified) - -- Send: `command_ams_filament_settings` puts the preset's `filament_id` verbatim into - `tray_info_idx` (`DeviceManager.cpp:1642`); cloud vs LAN differ only in transport - (`:2502-2536`). No client- or firmware-side rejection path exists; the ack parse stores - whatever the printer echoes (`:3808-3860`). -- Resolve (slicer side): tray id → first compatible root preset with equal `filament_id` — - system *and* user roots, no shape filter (`PresetBundle.cpp:3151`, `:3252-3254`); misses - fall back by `"Generic "` name, then similarity, then keep-previous - (`:3157-3169`, `:3260-3305`). `setting_id_to_type` resolves against `is_system` presets - only (`DeviceManager.cpp:2538-2559`) — a system preset resolves *because it is system*, - never because of its id shape. -- Resolve (device side): built-in `GF*` catalog + the account's cloud custom cache; - custom-filament sync is **cloud-only** (not LAN), and an id the printer has no data for - displays `?` until opened once on the printer screen (official wiki, §8). Third-party - consumers see customs as "unknown" (ha-bambulab #466/#540). -- Since Jan 2025, AMS configuration is gated behind Bambu-signed clients on new firmware - (Developer Mode / older firmware exempt) — any AMS-sync benefit for Orca is conditional - on that regardless of id scheme (Bambu authorization blog, §8). -- Orca already ships non-`GF`/non-`P` shapes to Bambu trays in the field: OFL presets are - compatible with every printer (`PresetBundle.cpp:5681-5684`) and carry `OGF*`/`OFL*` ids - (e.g. `OFLSBS99`, hardcoded in `MoonrakerPrinterAgent.cpp:654`). The premise "the - ecosystem has only ever seen `GF*`/P-hex" is already false, with no observed rejection. - -**Cross-client reality check.** The name-keyed benefit ("a BBS-created custom named like an -Orca system preset lands on the same id, so Orca's sync matches the system preset") is -mechanically true but narrow: it needs byte-exact names (including the `PLA Aero` mapping -and single spacing), the unsalted hash path, cloud mode, and permissive firmware. The -symmetric case already works in Orca *without* any re-mint: an Orca user creating a custom -named like a system family **adopts the system id** via the in-app adopt branch, so local -custom ↔ system ↔ tray matching is shape-independent today. - -## 3. The disqualifying finding, in mechanism form - -`update_filament_list` (`DeviceManager.cpp:5208-5272`) snapshots `{filament_id → temps}` -over **user root presets only** (`preset.is_user() && preset.inherits() == ""`, `:5219`); -ids that vanish or change temps between snapshots are armed into `checked_filament` -(`:5268`). `check_ams_filament_valid` (`:5311-5445`) then, for every AMS/virtual tray whose -`setting_id` matches `size()==8 && [0]=='P'`: - -- id armed and **not** in the current user-root list → remotely **clears the tray** - (`:5335-5349`, `:5395-5408`); -- id armed and in the list with unequal temps → **rewrites tray temps from the user - preset**, ignoring same-id system presets (`:5352-5374`; `PresetBundle.cpp:3719` skips - non-user presets; unguarded `find()->second` at `:3717`). - -Failure scenario under the proposal: system `"PolyLite PLA"` ships with -`P+md5("PolyLite PLA")`. A user's same-named custom (BBS- or Orca-created — same id by -design) is on an AMS tray. The user deletes the now-redundant custom. Next status refresh: -the id is armed, absent from user roots → Orca wipes the tray, even though the system -preset still resolves that id perfectly. Runs continuously (`StatusPanel.cpp:3275-3277`). - -Two corollaries independent of the proposal (→ W1): - -- The ten shipped P-hex **system** ids (Cubicon/Ginger/Artillery) already pass the shape - gate; only the "id must transit a user root" arming condition protects them, and the - in-app adopt branch can create exactly that transit today. -- `assert(it->first.size() == 8 && it->first[0] == 'P')` (`:5252`) is violable today: a - user custom named `"Bambu PLA Basic"` adopts `GFA00` onto a user root and aborts debug - builds. - -## 4. Identity costs the re-mint would add (quantified, tree dry-run) - -- 1148 distinct family base names; **198** appear in 2+ vendors; **159** groups carry ≥2 - distinct ids today and would silently merge under name-keying (Generic PETG alone: 15 - ids today). 112 involve BBL; 82 are `GF↔OGF` mirror pairs. -- **4** cross-vendor groups share a name across materially different `filament_type` - (Generic PLA Silk, Generic PETG-CF, Generic PA6-CF, Generic PE-CF) — one merged id would - feed wrong type/name/vitrification to the global unscoped consumers - (`PresetBundle.cpp:690-733`; `DeviceManager.cpp:2538`; `FilamentGroup.cpp:513-519`) (→ W3). -- 33 deliberately-split families on the branch would re-merge (25 Elegoo-vs-OFL pairs, 7 - FlyingBear-vs-InfiMech "Other *" pairs, the salted Cubicon PC pair) — undoing v1 - decisions that the fixture gate forced. -- Renames become id migrations: name-keyed ids re-key on any marketing rename; the ledger - can freeze them, but then name-derivability — the scheme's selling point — dies family - by family. The `OF*` key (`vendor/family`) survives display-name churn. -- Entropy drops 35.7 → 28 bits (still 0 collisions at today's 1148 names; ~0.75 expected - at 20k). Re-mint surface: 391 unshipped ids across 1327 files, 13 hardcoded tests, the - reserved-namespace policy inversion, and a retired-ledger rebuild. - -## 5. Work items (delta from `feature/filament_id` HEAD) - -**W1 — client hardening (C++, small, ships with the migration PR train).** - a. Skip the tray-reset and temp-rewrite in `check_ams_filament_valid` when **any - `is_system` filament preset carries the tray's id** — no compatibility filter, - mirroring the semantics of the global consumers (`get_filament_by_filament_id`, - `setting_id_to_type`). This protects the ten shipped P-hex system ids and any BBS - custom colliding with them, while ids resolving only to user presets (or to nothing) - keep today's cleanup behavior. - b. Relax the debug assert `DeviceManager.cpp:5252` to a log (user roots legitimately - carry adopted `GF*`/`OF*` ids). - c. Guard `PresetBundle.cpp:3717` (`find()` unchecked before `->second`). - d. Regression-check that AMS sync never clears trays whose id it merely cannot resolve - (OrcaSlicer#4431 class): the keep-previous fallbacks at `PresetBundle.cpp:3163-3169`, - `:3296-3305` must cover the UI paths. - -**W2 — tooling + doc guardrails.** - a. Document `^OF[0-9A-Za-z]{6}$` as the system-mint namespace. **Do not add it to - `reserved_space_owner`** (`scripts/assign_filament_ids.py:394-402`): check 6 exempts - only snapshot-grandfathered claims and the `--update-snapshot` refusal gate - (`:596-621`) would then reject every *future* mint. The space is already enforced — - check 3 (mint conformance, `:488-509`) errors on any OF-shaped id that does not equal - its own family's mint (covered by `test_check3_of_id_must_match_mint`), and the - snapshot diff is the human gate. Add one doc paragraph + a test asserting a foreign - vendor claiming another family's OF id fails check 3. - b. `doc/developer-reference/filament_id.md`: add a "why not P-hex" section citing the - `DeviceManager.cpp:5335` gate and the account-cache resolution model — community - pressure toward `P+md5` exists (PR #13315) and will recur. - c. Document that user roots may legitimately hold adopted system ids (incl. what that - means for cloud upload, `Preset.cpp:1874-1876`), matching BBS behavior. - -**W3 — data hygiene: the 4 same-name-different-type groups.** Audit each (they confuse - name-based fallback matching and any future interop even under vendor-scoped ids): - verify whether the divergent `filament_type` is a data bug (e.g. OFL `Generic PETG-CF` - resolving `PETG`, OFL `Generic PE-CF` resolving `PE`, Flashforge `Generic PLA Silk` - mixing `SILK`+`PLA`, Creality-vs-Elegoo `Generic PA6-CF` as `PA-CF`/`PA6-CF`) or - intentional; fix by type alignment or rename with evidence, gated by - config-equivalence (only `filament_type` diffs as prescribed) + full validator suite. - -**W4 — optional, curated GF adoption (the proposal's adopt step, done safely).** Extend the - v1 `--allow-shared-catalog` mechanism into an explicit per-family adoption worksheet: a - family may carry a byte-authentic Bambu catalog id iff (i) it is verifiably the same - commercial product as the BBL family (vendor evidence + equal `filament_type`), (ii) - validator `-f` stays 0 tree-wide (alias shadowing covers BBL/OFL overlaps), (iii) the - fixture gate passes, (iv) the snapshot diff records the adoption. Candidates: the 13 - actionable BBL-overlapping families minted `OF*` in v1 (e.g. Qidi `Bambu ABS`→`GFB00`, - `PolyLite PLA`→`GFL00`, `Overture PLA`→`GFL04`, `PolyLite ABS`→`GFB60`; `OFLSBS99` is - shipped and frozen; the two type-hazard OFL families are excluded until W3 lands). - **Honest benefit statement:** these presets are compatible only with non-Bambu printers, - so no Bambu device resolves their ids today; the payoff is one-product-one-id coherence - for the global consumers, project portability, and readiness for W6. Recommended seed: - the four Qidi brand families; generics deferred. - -**W5 — user-preset lane (where the proposal's hash belongs).** Support unique ids for - inherited user presets (the PR #13315 pain: children share the parent's id, so AMS always - resolves the generic parent). `P + md5(preset name)` matching - `CreatePresetsDialog::get_filament_id` is correct *in user space*: adopt-first against - existing ids, then hash; ids frozen per preset after mint. Constraints: never emitted - into system profiles (W2a makes that mechanical); W1 must land first so shared-id - lifecycles can't wipe trays. - -**W6 — recorded future option:** SoftFever's "upload OrcaSlicer's filament database - (especially the filament ID) to the printer" (PR #12724 comment). If pursued, Orca ids - become first-class device-visible artifacts and the P-mimicry question is permanently - moot; the `OF*` scheme is the *better* citizen there (collision-free vendor-scoped ids, - no user-custom masquerade). - -Unchanged from v1: mint rule, snapshot/retired ledgers (no OF retirement — nothing is -re-minted), CI wiring, migration commits. `filament_id_plan.md` remains the implemented -baseline; this document records the v2 decision and its follow-on work. - -## 6. Gates (per work item) - -Same battery as v1, all local: `python scripts/orca_extra_profile_check.py` exit 0; -`assign_filament_ids.py --check` exit 0 (46+ unit tests green; new tests for W2a -reservation and, when implemented, W4 adoption sanctioning); validator `-l 2` exit 0, -`-f` tree-wide exit 0, `-r` BBL+Qidi exit 0; custom-preset fixture overlays (the W1/W4 -changes touch exactly the preset-visibility machinery the fixtures exist to protect); -config-equivalence: flattened effective configs differ only in prescribed keys -(`filament_id` for W4, `filament_type` for W3, none for W1/W2). W1 additionally needs a -manual AMS smoke test on a live Bambu printer (tray set/clear round-trip) — a release -checklist item, not CI (the workflows have no hardware runners). - -## 7. Scheme comparison (judge panel record) - -| Variant | Device lens | Identity lens | Migration lens | Σ | -|---|---|---|---|---| -| V1 full Bambu emulation (adopt incl. `GF*` + P+md5 + salt) | 7 | 2 | 2 | 11 | -| V2 hash-only name-keyed `P+md5(base name)` | 4 | 4 | 4 | 12 | -| V3 vendor-scoped P-hash (`P+md5(vendor/family)`) | 2 | 5 | 5 | 12 | -| **V4 keep `OF*` uuid5 vendor-scoped (chosen)** | 6 | 8 | 9 | **23** | - -All three judges answered the pivotal question the same way: the P-hex **shape** confers no -device/cloud benefit (resolution is by value against catalog + account cache; the path is -otherwise shape-agnostic) and is the only shape with a destructive client-side gate. V3 is -strictly dominated (all of the re-mint cost, none of the name-keyed benefit). V1's genuine -half — GF adoption — is captured by W4 at zero re-mint cost. - -## 8. Evidence index - -Code (this branch): `CreatePresetsDialog.cpp:487-552,1128,2798-2800` (generator + callers); -`DeviceManager.cpp:1642` (verbatim send), `:2538-2559` (system-only type resolve), -`:5208-5272` (user-root snapshot, `:5219`, `:5252` assert, `:5268` arming), `:5311-5445` -(P-shape gate + tray wipe `:5335/:5345`, temp rewrite `:5352-5374`, virtual tray -`:5395-5435`); `DevFilaSystem.cpp:512-524`; `PresetBundle.cpp:690-733,3116-3128,3151, -3252-3254,3709-3767,5674-5753`; `Preset.cpp:1874-1876,2071,2785-2842`; -`AMSMaterialsSetting.cpp:886,894-897`; `WebGuideDialog.cpp:67`; -`PresetComboBoxes.cpp:1952-1966`; `MoonrakerPrinterAgent.cpp:654`; -`scripts/assign_filament_ids.py:69,71-72,118-144,394-402,596-621`. - -Online (fetched 2026-07-03): BambuStudio master `CreatePresetsDialog.cpp` L434-499 -(byte-identical generator); wiki.bambulab.com `create-filament` (custom filaments AMS-able -from firmware 1.6.6; only dialog-created presets sync) and `custom-filament-issue` -(cloud-only sync; unknown ids show `?`); blog.bambulab.com authorization-control (Jan-2025 -AMS-config gating); bambulab/BambuStudio#5436 (firmware persists corrupted id); -OrcaSlicer #4431 (tray clobber to `?`), #3874 (cloud-only confirmation), PR #14459 -(the `-f` invariant), PR #14423 + PR #12724 + PR #13315 (maintainer statements / community -P+md5 pressure); greghesp/ha-bambulab `filaments.json` (86/86 `GF*`) + #466/#540. - -Method: 6 parallel evidence agents (generator semantics; AMS/device path; exhaustive -shape-dispatch sweep; upstream/online; tree-wide dry-run over 5892 presets / 1455 families; -branch change inventory) → 3-judge panel (device-ecosystem, identity-semantics, -migration-enforceability lenses). Dry-run artifacts: session scratchpad -`phex_dryrun_{summary,details,followup}.json`. - -## 9. Open decisions for maintainers - -1. **W4 scope**: none / 4 Qidi brand families (recommended) / + generic-tier re-adoption. -2. **W5 timing**: implement in-repo vs review upstream PR #13315 with the W1 hardening as a - prerequisite either way. -3. **W6**: pursue the filament-database-upload design (makes Orca ids device-visible and - ends the mimicry debate for good). diff --git a/filament_id_plan_v3.md b/filament_id_plan_v3.md deleted file mode 100644 index 14b547600f..0000000000 --- a/filament_id_plan_v3.md +++ /dev/null @@ -1,213 +0,0 @@ -# filament_id plan v3: OFL as the catalog, content-addressed product ids - -Supersedes §5 of `filament_id_plan_v2.md` (whose P+md5 verdict stands unchanged) and -revises the mint rule of `filament_id_plan.md` (v1, implemented on `feature/filament_id`). -Decision driver: v1's mint key scoped families to the *profile bundle* (printer brand), so -one commercial product tuned in N bundles carries N ids — e.g. PolyLite PLA ships in five -bundles (`BBL`, `OrcaFilamentLibrary`, `OrcaArena`, `Qidi`, `Snapmaker`), all with -`filament_vendor: "Polymaker"`, under up to five different ids (`GFL00`, `OFceJcLf`, …). -That contradicts what `filament_id` means: one id per commercial product line. - -## 0. The architecture - -Three tiers, two frozen islands: - -1. **BBL island — untouched.** Bambu profiles keep their `GF*` catalog ids byte-for-byte - (device/RFID/cloud contract). No convergence between GF and OFL ids is attempted: the - same product may permanently carry `GFL00` on the BBL side and an `OF*` id everywhere - else. This is a deliberate trade for simplicity; v2's curated-GF-adoption (old W4) is - dropped. -2. **`QD_*` island — untouched.** Qidi's box builds `QD___` from - device enums and requires exactly-matching presets (`QidiPrinterAgent.cpp:146-152`). - Qidi presets carrying `QD_*` are exempt from re-minting, forever. -3. **Everything else converges on OrcaFilamentLibrary.** OFL is the product catalog: a - material family's id is declared once, on its OFL family root. Vendor bundles carry - only per-printer *specializations* of OFL families — same base name, non-empty - `compatible_printers`, **no `filament_id` key** — which (a) alias-shadow the OFL preset - on the printers they claim (`Preset.cpp:3684-3714`: "Generic PLA @Qidi Q2 0.4mm nozzle" - hides "Generic PLA @System" on that machine) and (b) resolve the OFL family's id - through the loader's inherits/base-bundle walk (`PresetBundle.cpp:4842-5080`). Products - OFL does not (yet) carry mint their id in the vendor bundle **with the same rule**; - because the key is bundle-independent (§1), later hoisting the family into OFL never - changes its id. - -Convergence therefore happens by *single declaration point*, not by copying ids across -bundles — no adoption registry, no cross-bundle id claims to curate. - -## 1. The mint rule - -``` -triple = (filament_vendor, filament_type, family_name) # from the family ROOT's flattened config -key = "filament_product///" -id = "OF" + base62_6( uuid5( FILAMENT_ID_NAMESPACE, key ) ) # namespace unchanged: - # c4d3ff49-4c32-5534-a3e3-00894157ab97 -``` - -- **Triple resolution.** All three values come from the family root preset's *flattened - effective config* (`filament_vendor` and `filament_type` are inheritable list options — - take the first element; family_name = the root's base name, `\s?@.*` stripped once). - For own-key-layout families (no root), each declaring preset's flattened config is used - and CI requires all declarers of one family to agree on the triple. A root that resolves - an empty `filament_vendor` or `filament_type` is a CI error (generics use `"Generic"`). - Values enter the key verbatim (UTF-8, no case folding). -- **Bundle-independent by design.** The key contains no bundle name, so the same product - yields the same id whether minted in OFL or in a vendor bundle; migrating a family into - OFL (§0.3) is id-stable. Two bundles independently adding the same triple converge - automatically — and that is correct, because equal (vendor, type, name) *is* the - definition of "same product" here. The known look-alike hazards stay separated by the - type component: the 4 same-name-different-type groups (Flashforge `Generic PLA Silk` as - SILK, OFL `Generic PETG-CF` as PETG, `Generic PA6-CF`, `Generic PE-CF`) hash apart until - their type bugs are fixed (§5, W3) and converge automatically after — self-healing that - pure name-keying (rejected in v2) could not provide. -- **Format and salt unchanged from v1**: 8 chars, `OF` + 6 base62; deterministic `/1`, - `/2`… salt past any taken or retired id (the O+7 widening was evaluated and rejected: - 62⁶ expects 1.9×10⁻⁵ collisions at today's 1,455 families, and `^O.{7}$` would sweep 35 - legacy ids into the conformance gate vs. one today). -- **Content-addressed, deliberately.** If any triple component changes — a family rename, - a `filament_vendor` correction, a `filament_type` fix — the id changes with it. This - *replaces* v1's "ids are immutable once shipped" with "ids are derivable from the - product identity, and identity changes are migrations" — made safe by the succession - ledger (§2). `renamed_from` still gates preset-name compatibility as before. -- CLI: `--mint "Polymaker/PLA/PolyLite PLA"` prints without touching the tree; running - the script plain inserts missing ids; CI errors print the expected id. - -## 2. The succession ledger (the amendment that makes this safe) - -Shipped ids are referenced outside the tree: AFC/Klipper lane data, Bambu AMS trays -holding OFL-only materials, on-device PA-calibration records, user-root preset copies, -3mf `slice_info`. Retiring an id without a forwarding pointer downgrades all of those to -`Generic ` fallbacks. Therefore: - -- **Schema.** `scripts/retired_filament_ids.json` entries become objects: - `{"retired": {"OGFL99": {"claims": [...], "successor": "OFxxxxxx"}}}`. Append-only as - before; a successor may itself be retired later (chains allowed, cycle-checked, and - followed to the live end). A retired id may never be minted again (check 4 unchanged). - Cross-island *hint* entries are permitted for ids Orca cannot retire because another - island owns them (e.g. `GFL99 → `): consulted only when no live - preset matches, so BBL installs still resolve `GFL99` natively first. By the same - principle, an id in a foreign island's space (`GF*`/`QD_*`) that vanishes from the tree - is **released with a hint, never retired** — the island's catalog owns it and may - legitimately (re)ship it later, which check 4 must never block. (Implementation - amendment, v3.0: `--update-snapshot` routes such ids to `hints` automatically; hint - keys may be absent from the tree.) -- **Shipped and consulted at runtime.** The ledger ships in `resources/`; a small helper - (`resolve_filament_id_succession(id)`) follows the chain and is consulted **only on - resolution miss**, before the `Generic ` name fallback, in: - `PresetBundle::get_filament_by_filament_id` (covers `DevFilaBlackList`, `SelectMachine` - warnings, `Plater` tray configs in one place), the AMS sync match predicates - (`PresetBundle.cpp:3151`, `:3252-3254` miss paths at `:3157-3169`/`:3260-3305`), - `PresetComboBoxes::add_ams_filaments`, `MachineObject::setting_id_to_type` - (`DeviceManager.cpp:2545` miss branch), calibration-history name lookup - (`CaliHistoryDialog.cpp:62`), and the #14423 Moonraker lane matching when it lands. - With this in place the OFL re-mint is near-residue-free and every future - content-addressed rename stays safe. -- **Kill the hardcoded generic map.** `MoonrakerPrinterAgent::map_filament_type_to_generic_id` - (`MoonrakerPrinterAgent.cpp:608-658`) hardcodes 23 OFL ids (`OGFL99`… `OFLSBS99`). - Replace it with a runtime lookup of the OFL generic preset by name ("Generic PLA - @System" → its current id), removing the code↔profile lockstep permanently. (This also - releases `OFLSBS99`, v2's one frozen OF-shaped legacy id, for normal re-minting.) - -## 3. Validation rule changes - -- **Check 3 (mint conformance)** becomes a pure function of the root's triple: a non-BBL, - non-`QD_*` id must equal `mint(triple)` ± salt, or be snapshot-grandfathered (the - grandfather set shrinks to ≈ nothing for non-BBL once migration completes). -- **Check 5 (alias hygiene) generalizes and becomes load-bearing.** For *every* - OFL-carried family (not just `Generic * @System`): a vendor specialization must keep the - OFL base name (else the OFL preset un-shadows and creates a live per-printer duplicate — - v1's P7 pattern) and non-empty `compatible_printers`, and must not declare an id. The - C++ validator's OFL-aware `-f` (`PresetBundle.cpp:5674-5753`) already enforces the - runtime consequence; the script check names the rename as the cause. -- **New check 8 (triple integrity):** every id-declaring family resolves a complete, - family-consistent triple; roots missing `filament_vendor`/`filament_type` error. -- **New check 9 (succession integrity):** every retired entry's successor chain ends at a - live tree id (or a documented cross-island hint target); no cycles; retired ids absent - from the tree. -- Snapshot mechanism, reserved spaces (`GF*`→BBL, `QD_*`→Qidi, `P`-hex/`null`→user-custom; - v2's do-not-reserve-`OF*` note stands), and check 1/2/4/7 are unchanged. - -## 4. Migration phases - -**v3.0 — tooling + prerequisites (no profile changes).** New mint + triple resolver -(reuse the flatten machinery), succession schema migration + C++ lookup helper wired into -the §2 miss paths, Moonraker map → runtime lookup, checks 3/5/8/9, tests. Carry v2's W1 -client hardening (skip tray-wipe/temp-rewrite when a system preset holds the id; relax -the `DeviceManager.cpp:5252` assert; guard the `PresetBundle.cpp:3717` deref) — it ships -first regardless. **W3 type fixes land here**, *before* any re-mint: type is now a key -component, so minting before fixing OFL `Generic PETG-CF`/`Generic PE-CF` would re-id -those families twice. - -**v3.1 — OFL re-mint.** Every OFL-declared id re-derives from its triple (mirrors like -`OGFA00`, generics like `OGFL99`, blocks like `OEPLAB00` — all of it); each old shipped id -gains a succession entry pointing at its replacement; the 26 GF-shaped ids OFL declares -(measured at v3.0: only one of them, `GFOT001`, is also declared by BBL) are released to -the BBL island space with hints at the re-minted families — two-island purity. Snapshot -regenerated; full gate battery + fixture overlays (this phase touches preset-visibility -machinery only via ids, but the fixtures are cheap insurance). Implementation notes -(v3.1, executed): OFL generic ids relocate from the fdm_filament_* template bases onto -the product-named "Generic X @System" presets first, so their triples carry the product -name; `fdm_filament_pc` keeps a (transitional) declaration because 7 Prusa presets -inherit it directly — the v3.2 Prusa worksheet re-homes them and deletes it. - -**v3.2 — vendor bundles, worksheet-per-vendor (v1 machinery).** Three sub-cases: - (a) the **391 unshipped v1 `OF*` mints** re-derive under the triple key — no succession - entries (they never shipped; a documented one-time `--forget-never-shipped ` drops - them from the ledger lineage instead of retiring them, since the ledger's rationale — - ids live on in user presets and 3mfs — cannot apply to unreleased ids); - (b) **true generic tunings** riding copied legacy ids (`GFL99`-class) drop their own id - and re-point to the OFL generic family (the v1 Sovol pattern) — their old ids get - cross-island hints where BBL owns them, succession entries otherwise; - (c) remaining **shipped legacy ids** (numeric, name-shaped, pseudo-GF, the 57 - multi-vendor GF residue, the 10 P-hex — everything non-BBL/non-`QD_*`, ~800 ids) - re-mint with succession entries. Retiring the 10 P-hex system ids also removes the last - system ids from `check_ams_filament_valid`'s destructive P-gate. - -**v3.3 — ongoing consolidation (optional, per-vendor, id-stable).** Hoist vendor-unique -products into OFL where a family is genuinely multi-vendor material; thanks to the -bundle-independent key this never changes ids, so it can proceed opportunistically. - -## 5. Gates (every phase) - -`python scripts/orca_extra_profile_check.py` exit 0; `assign_filament_ids.py --check` -exit 0; unit tests green (existing 46 + new triple/succession/adoption tests); validator -`-l 2` exit 0, `-f` tree-wide exit 0, `-r` BBL+Qidi exit 0; custom-preset fixture -archives; config-equivalence — flattened effective configs differ only in `filament_id` -(re-mints), `inherits`/`compatible_printers` (re-points, as prescribed per worksheet), and -the W3 `filament_type` corrections. New for v3: a C++ test that a retired id resolves -through the succession chain in the sync miss path, and a Moonraker test that the generic -map lookup matches the shipped OFL presets. Manual AMS smoke test (tray set → old-id -resolve → clear) stays a release-checklist item. - -## 6. Accepted costs (explicit) - -- **GF ↔ OFL divergence is permanent** for products in both catalogs (PolyLite PLA ≠ - `GFL00` outside BBL). The forward-looking fix is PR #12724-style filament-database - upload, where Orca ids become first-class device artifacts. -- **Renames/type-fixes re-id families** (by design); the succession ledger absorbs the - device/user residue, but each one is still a ledger entry and a snapshot diff to review. -- **User roots** keep whatever id they copied at creation; with succession lookup in - `get_filament_by_filament_id` they now *resolve* instead of dangling — strictly better - than v1's accepted residue. -- **One-time field transition**: devices holding pre-v3 ids (AFC lanes, AMS trays, cali - records) resolve via succession on updated clients; *older* Orca versions and - BambuStudio never resolved OFL-only ids anyway (`?`/generic fallback — unchanged for - them). - -## 7. Open decisions - -1. Whether v3.2(b)'s cross-island hints (`GFL99` → OFL generic) are wanted at launch or - deferred (pure-miss-path feature; zero risk to BBL installs, small review surface). -2. v3.3 pacing: per-vendor PRs opportunistically vs. a dedicated consolidation train. -3. Whether to fold v2's W5 (P+md5 ids for inherited *user* presets, PR #13315) into v3.0's - C++ work or keep it a separate PR (recommended: separate; W1 is its only prerequisite). - -## 8. Evidence - -Carried from v2 §8 (all re-verified this session), plus: `filament_vendor` audit — 49 -distinct strings tree-wide, `"Polymaker"` byte-consistent across all five PolyLite-PLA -bundles; multi-vendor different-family GF residue = 57 ids; `MoonrakerPrinterAgent.cpp: -608-658` = 23 hardcoded OFL ids; mint examples verified live (`Qidi/PolyLite PLA` → -`OFceJcLf` under the v1 key — the fragmentation this plan removes; salt determinism -`OF8afiMO`). Alias shadowing and the OFL id fallback verified at `Preset.cpp:3684-3714` -and `PresetBundle.cpp:4842-5080` during the v1 audit; per-printer `-f` semantics at -`PresetBundle.cpp:5674-5753`. diff --git a/filament_id_plan_v4.md b/filament_id_plan_v4.md deleted file mode 100644 index 046a7cae1c..0000000000 --- a/filament_id_plan_v4.md +++ /dev/null @@ -1,224 +0,0 @@ -# filament_id plan v4: dissolve the Qidi `QD_*` island - -Supersedes §0.2 of `filament_id_plan_v3.md` (the "`QD_*` island — untouched, forever" -decision) and amends every v3 section that carved out `QD_*`. Everything else in v3 — -the mint rule, the succession ledger, the BBL island, checks 1–9 — stands as -implemented (v3.0–v3.2, all gates green at commit `f7c1b290fd`). - -Decision driver: the island contradicts the catalog architecture v3 built. Qidi presets -carry 204 `QD___` ids over 264 declarations (49 families, -measured 2026-08-21) — one commercial product carries up to *five* ids (one per printer -series: `QIDI PLA Rapido` = `QD_0_1_1` … `QD_4_1_1`), which is exactly the -fragmentation v3 exists to remove. The island was frozen because Qidi's filament box -composes these ids from device enums and requires exactly-matching presets -(`QidiPrinterAgent.cpp:146-152`). But v3.0 shipped the machinery that makes freezing -unnecessary: the succession ledger already translates retired ids on resolution miss. -`QD_*` stops being a *preset id space* and becomes a *device protocol namespace*, -translated once at the agent edge. - -## 0. The architecture change - -Two tiers, **one** frozen island: - -1. **BBL island — untouched, unchanged.** All v3 reasoning holds (device/RFID/cloud - contract is external and opaque). -2. **Everything else converges on OFL product ids — now including Qidi.** All 204 - `QD_*` ids re-mint from their family triples and gain **retired** ledger entries - (not cross-island hints: after dissolution there is no island to own them, and - check 4's "never again" is exactly the guard we want against upstream re-adding - them). The box keeps working because `QidiPrinterAgent` resolves its composed - `QD_*` id through `resolve_filament_id_succession()` on miss — the same mechanism - every other retired id already uses. - -Why retire rather than hint (the one real design choice here): hints exist for ids a -*foreign catalog* owns and may legitimately re-ship (`GF*`). Post-dissolution, nothing -may ever re-ship a `QD_*` id in the profile tree — the device composes them at -runtime, the tree translates them. Retired entries make CI enforce that permanently -(`--update-snapshot` refuses resurrections, check 4 refuses occurrences); hints would -permit re-shipping, which is now always a regression. The QD→family mapping is -strictly 1:1 (verified: no `QD_*` id is claimed by more than one family), so the -mode-rule successor is unambiguous for every entry. - -## 1. What the dissolution consists of - -Three independent work packages, ordered for bisectability: - -- **(A) Re-converge the drifted tree** — prerequisite, not Qidi-specific. The - 2026-07 main merge (`f3fa3a34bd`) brought upstream vendor updates in pre-v3 style: - `--check` currently exits with **243 errors** (123 unsanctioned new ids, 46 new - instantiated own-key presets, 31 override drifts, 18 reserved-space claims, 5 - hint-keys re-declared — Qidi re-added `GFB99`/`GFG99`/`GFL99`, Snapmaker re-added - `GFG96`/`GFU99` and even four *retired* ids incl. `OGFL99`, plus Snapmaker U1 - triple errors and a GreenGate3D rename). This is the standing WF-B maintenance - pass; the dissolution's gates cannot go green on a red base. -- **(B) C++ succession hook in the Qidi agent** — safe to land before any data - changes (pure miss-path: while `QD_*` presets still exist, the hook never fires). -- **(C) The dissolution proper** — tooling flip + Qidi data fixes + re-mint + - snapshot/ledger regeneration, one vendor worksheet in the v3.2 mold. - -## 2. Runtime translation (work package B) - -`QidiPrinterAgent.cpp:183-192` currently: compose `setting_id` → keep it if a visible -base preset declares it → else degrade to `filament_id_by_type(tray_type)` (i.e. every -QIDI-brand box slot silently becomes Generic once the ids re-mint). Insert the -succession walk between those two steps: - -```cpp -} else if (!setting_id.empty() && has_visible_base_preset(bundle->filaments, setting_id)) { - tray.tray_info_idx = setting_id; -} else { - // Retired QD_* protocol ids forward to their minted successors via the shipped ledger. - const std::string successor = setting_id.empty() ? std::string() - : resolve_filament_id_succession(setting_id); - if (!successor.empty() && has_visible_base_preset(bundle->filaments, successor)) - tray.tray_info_idx = successor; - else - tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); -} -``` - -`resolve_filament_id_succession` is `Preset.hpp:119` (loads once, cycle-guarded, -empty-safe) — no new includes needed beyond what the file already reaches through -`PresetBundle`. This one hook covers both composition paths: the numeric-series -`build_setting_id` lambda *and* the non-numeric fallback -`map_filament_type_to_setting_id` (`:325-342`), whose four hardcoded returns -(`QD_1_0_1`/`_11`/`_41`/`_50` = Generic PLA/ABS/PETG/TPU 95A) become ledger keys in -package C. Keep that function as-is but extend its comment: the returned ids are -retired ledger keys by design, and `scripts/tests/test_filament_id.py` parses the -initializer (see §4 tests) — the Moonraker treatment (`MoonrakerPrinterAgent.cpp: -619-627`) of replacing the table with name lookups was considered and not taken: the -table already routes through the same ledger as the composed ids, and two translation -mechanisms in one agent is worse than one. - -Tests (same commit): - -- `tests/libslic3r/test_filament_id_succession.cpp`: add a section asserting a - `QD_`-shaped key forwards like any other (`{"QD_2_1_11", "OFnew001"}` resolves to - `"OFnew001"`) — pins that the walk is prefix-agnostic. -- `scripts/tests/test_filament_id.py`: new test parsing the four `QD_` literals out of - `QidiPrinterAgent.cpp::map_filament_type_to_setting_id` (mirror the parser in - `scripts/test_moonraker_lane_data.py`) and asserting each is a ledger key whose - chain terminates at a live tree id. **Add it marked expected-fail/skipped until - package C lands, then flip it on** — it is the permanent code↔ledger lockstep guard. - -## 3. Tooling and validation flip (work package C, first commit) - -All in `scripts/assign_filament_ids.py`; every touched line measured 2026-08-21: - -- `is_island_declaration` (`:327-329`) → `return vendor == "BBL"`. This single change - pulls every `QD_*` declarer into the triple bookkeeping (`:385`) and thus into - checks 3 and 8, into `--remint`'s domain (`:1464`), and out of the hint-key - tolerances (`:877`, `:1100`). -- `reserved_space_owner` (`:596-604`): `QD_*` returns `(True, None)` — reserved, - ownerless, exactly like the P-hex/user-custom space. Consequences, all wanted: - check 6 refuses any future vendor claim; the `--update-snapshot` sanction gate - (`:938-963`) refuses new `QD_*` ids outright; the vanish path (`:994`) routes - `QD_*` to **retired** (owner `None` ≠ island), not released-with-hint. Update the - two message sites that render `owner is None` as "reserved for user-custom presets" - (`:628` docstring, `:958`, and check 6's copy) to name the space generically or - special-case `QD_*` ("Qidi device protocol; dissolved island — retired, never - declarable"). -- Check 1 (`:667-668`): delete the `vendor == "Qidi" and fid.startswith("QD_")` - exemption. -- Module docstring (`:27-45`): rewrite the `QD_*` bullet — reserved space stays - listed, but as "device protocol namespace, translated via the succession ledger; - dissolved as a catalog island in v4, may never be declared". -- `scripts/tests/test_filament_id.py`: update the three island assertions — - `reserved_space_owner("QD_X4_PLA")` → `(True, None)` (`:403`), - `is_island_declaration("Qidi", "QD_X4_PLA")` → `False` (`:413`), and the - reserved-space message case (`:570`). - -No changes to the ledger schema, the C++ checks, `--retire` (post-flip it accepts -`QD_*` olds automatically — they are non-island now), or the validator: check 3's -"non-BBL, non-`QD_*`" phrasing in v3 §3 was always implemented as "non-island", so the -flip *is* the spec change. - -## 4. Migration phases - -**v4.0 — re-converge the drifted tree (package A).** Per-vendor WF-B worksheets over -the 243 errors: Snapmaker U1 (triple divergence `Generic|Snapmaker|snapmaker`, empty -vendors, four resurrected retired ids — these force re-mints since retirement is -permanent), BBL/addnorth `GF_AN*` overrides (BBL island: grandfather via snapshot, -they are BBL-internal), Qidi/Snapmaker re-declared hint keys (re-mint those declarers, -the check's own prescription), GreenGate3D rename, then `--update-snapshot` (new -upstream `QD_*` ids sanction cleanly — the island is still intact in this phase) and -the full v3 §5 gate battery. Bump `version` in every touched -`resources/profiles/.json`. **Do not start v4.2 until `--check` exits 0.** - -**v4.1 — the agent hook (package B).** §2 as written; `libslic3r_tests` + -`scripts/tests/test_filament_id.py` green; behavior-neutral by construction (no `QD_*` -ledger entries exist yet). - -**v4.2 — the dissolution (package C).** One Qidi worksheet, v3.2 machinery: - -1. Tooling flip commit (§3). `--check` now reports the Qidi island as - non-conformant — expected, red only between commits of this phase. -2. Data fixes, before any re-mint (the v3 "W3 lands first" lesson — type/vendor are - key components): add `filament_vendor: ["QIDI"]` at each QIDI-brand family's - inheritance apex so all declarers resolve it (39 of 49 families currently resolve - none — check 8a would refuse the mint). Verify the six Generic families - (`Generic PLA/ABS/PETG/PC/TPU 95A/PLA Silk`) resolve triples identical to their - OFL counterparts (vendor `Generic`, OFL's `filament_type`) so they *converge onto - the OFL ids* by triple math — the whole point; any mismatch is a W3-style data fix - here, not a fork. No `inherits`/`compatible_printers` re-pointing anywhere: the - series intermediates (`Generic PLA@Q2-Series` etc., all `instantiation: false`) - simply keep declarations whose values become the OFL ids. -3. `python scripts/assign_filament_ids.py --remint Qidi` — rewrites all 264 - declarations in place to their family mints (same triple ⇒ same id across a - family's series intermediates and per-nozzle declarers; convergence with OFL ids - is legal by design, `want_id` already permits same-triple collisions `:1447`). -4. `--update-snapshot` — retires every vanished `QD_*` id with its mode-rule - successor. **Audit the ledger diff: all ~204 new entries must be `QD_*`→non-null.** - A null successor (possible only for a declared-only id with zero instantiated - claims) gets an explicit `--retire "QD_x=OFy"` with the family's minted id. -5. Un-skip the §2 lockstep test. Bump `resources/profiles/Qidi.json` version. Full - gate battery (§5). - -Known residue, accepted: `QIDI PC-ABS-FR` (series 1–2) vs `QIDI PC/ABS-FR` -(series 3–4) are two preset-name families for one product → two ids. Renames were -ruled out in v3 (`renamed_from` rejected for migrations); if upstream ever unifies the -name, content-addressing re-ids and the ledger absorbs it — self-healing, no action -now. - -**v4.3 — OFL consolidation (unchanged).** v3.3 stays optional and id-stable; QIDI-brand -families are vendor-unique and stay in the Qidi bundle. - -## 5. Gates (per phase, delta from v3 §5) - -Unchanged battery: `orca_extra_profile_check.py` exit 0, `assign_filament_ids.py ---check` exit 0, `scripts/tests/test_filament_id.py` all green, `libslic3r_tests` -green, validator `-l 2` tree-wide + `-f` tree-wide + `-v Qidi` exit 0, custom-preset -fixture archives (v4.2 touches no preset visibility, but they are cheap insurance — -run them for v4.0, which touches instantiation-adjacent upstream drift), flatten -config-equivalence. New for v4.2: equivalence diff may contain **only** `filament_id` -value changes (QD→OF) and the added `filament_vendor` keys on QIDI-brand families; -ledger diff audit per §4.4; the map-literal lockstep test. Manual release-checklist -item: Qidi box smoke test — slot holding a QIDI-brand material must surface the brand -preset (not Generic) on an updated client, via the memory-documented local Klipper -test rig. - -## 6. Accepted costs (explicit, new relative to v3) - -- **Every Qidi box slot resolves through the ledger miss-path forever** (one hash-map - walk per slot per status poll — negligible, and structurally identical to how - every retired id already resolves). The QD→OF translation table is maintained by - the retirement machinery, not by hand. -- **Older Orca clients** (pre-v4 profiles) paired with re-minted profile trees lose - QIDI-brand slot matching (they look up `QD_*` and fall back generic-by-type — the - degradation the hook removes for updated clients). Same one-time field-transition - shape v3 §6 already accepted for AMS/AFC ids. -- **Two ids for PC-ABS-FR** until upstream unifies the family name (§4 residue). - -## 7. Evidence - -Measured on this tree 2026-08-21 unless cited to v3: 204 distinct `QD_*` ids / 264 -declaring presets / 49 families, QD→family strictly 1:1, per-series id sets -(`QD_0..4_1_1` = `QIDI PLA Rapido` etc.); 39 families resolve no `filament_vendor`; -declarations live on `instantiation:false` series intermediates (Q2/Q2C/X5/X4) and -per-nozzle X-Plus-4 presets; composition + miss-fallback at -`QidiPrinterAgent.cpp:146-152, 183-192`, hardcoded fallback table `:325-342`; -succession helpers `Preset.hpp:109-119`; ledger = 575 retired + 194 hints, zero `QD_*` -entries; snapshot holds 160 of the 204 (the 44 newcomers are post-merge drift); -`--check` = 243 errors, categorized in §1(A); island exemption mechanics at -`assign_filament_ids.py:327-329, 385, 596-604, 667, 877, 994, 1464, 1514`; `--remint` -same-triple convergence guard `:1447-1453`; retirement-permanence gate `:965-976`. From 417a6d7c30068c2c3e8b48037b20015fb93c41c4 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 1 Sep 2026 11:41:53 +0800 Subject: [PATCH 092/164] add log --- src/slic3r/GUI/AMSMaterialsSetting.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index a2adf3ea5b..ed532e91a8 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -681,6 +681,19 @@ void AMSMaterialsSetting::on_select_ok(wxCommandEvent &event) } + // Orca: log the tray payload this dialog hands the printer, so the filament_id resolved from the + // dropdown selection can be checked against the tray_info_idx the AMS actually receives. A + // BBL-tagged (RFID) tray is read-only here, so nothing is published for it. + BOOST_LOG_TRIVIAL(info) << "ams_materials_setting: " << (m_is_third ? "sending" : "NOT sending (BBL RFID tray, read-only)") + << ", ams_id = " << ams_id << ", slot_id = " << slot_id + << ", selected = " << m_comboBox_filament->GetValue().ToStdString() + << ", tray_info_idx (filament_id) = " << ams_filament_id + << ", setting_id = " << ams_setting_id + << ", tray_type = " << m_filament_type + << ", tray_color = " << col_buf + << ", nozzle_temp_min = " << nozzle_temp_min_int + << ", nozzle_temp_max = " << nozzle_temp_max_int; + // set filament if (m_is_third) { obj->command_ams_filament_settings(ams_id, slot_id, ams_filament_id, ams_setting_id, std::string(col_buf), m_filament_type, nozzle_temp_min_int, nozzle_temp_max_int); From 6ec904074b1630b2571e493ea2829acbd27b6837 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 1 Sep 2026 16:24:33 +0800 Subject: [PATCH 093/164] Give generic filaments one name and one identity across every vendor --- resources/profiles/Anker.json | 170 +- .../Anker Generic PLA Silk 0.2 nozzle.json | 16 - .../Anker Generic PLA Silk 0.25 nozzle.json | 16 - .../filament/Anker Generic PLA Silk.json | 16 - .../Anker Generic PLA+ 0.2 nozzle.json | 16 - .../Anker Generic PLA+ 0.25 nozzle.json | 16 - .../Anker/filament/Anker Generic PLA+.json | 16 - .../Anker/filament/Anker Generic PLA-CF.json | 16 - .../Anker/filament/Anker Generic PLA.json | 16 - .../Anker/filament/Anker Generic PVA.json | 16 - .../Anker/filament/Anker Generic TPU.json | 16 - ...son => Generic ABS @Anker 0.2 nozzle.json} | 7 +- ...on => Generic ABS @Anker 0.25 nozzle.json} | 7 +- .../filament/Generic ABS @Anker base.json} | 4 +- ...neric ASA.json => Generic ABS @Anker.json} | 7 +- ...son => Generic ASA @Anker 0.2 nozzle.json} | 7 +- ...on => Generic ASA @Anker 0.25 nozzle.json} | 7 +- ...base.json => Generic ASA @Anker base.json} | 4 +- ...c PETG-CF.json => Generic ASA @Anker.json} | 7 +- ...json => Generic PA @Anker 0.2 nozzle.json} | 7 +- ...son => Generic PA @Anker 0.25 nozzle.json} | 7 +- .../filament/Generic PA @Anker base.json} | 4 +- ...Generic PC.json => Generic PA @Anker.json} | 7 +- ...se.json => Generic PA-CF @Anker base.json} | 4 +- ...eric PA.json => Generic PA-CF @Anker.json} | 7 +- ...json => Generic PC @Anker 0.2 nozzle.json} | 7 +- ...son => Generic PC @Anker 0.25 nozzle.json} | 7 +- ...@base.json => Generic PC @Anker base.json} | 4 +- ...eric PA-CF.json => Generic PC @Anker.json} | 7 +- ...on => Generic PETG @Anker 0.2 nozzle.json} | 7 +- ...n => Generic PETG @Anker 0.25 nozzle.json} | 7 +- ...ase.json => Generic PETG @Anker base.json} | 4 +- .../Anker/filament/Generic PETG @Anker.json | 17 + ....json => Generic PETG-CF @Anker base.json} | 4 +- .../filament/Generic PETG-CF @Anker.json | 17 + ...son => Generic PLA @Anker 0.2 nozzle.json} | 7 +- ...on => Generic PLA @Anker 0.25 nozzle.json} | 7 +- ...base.json => Generic PLA @Anker base.json} | 4 +- ...eric PETG.json => Generic PLA @Anker.json} | 7 +- .../Generic PLA Silk @Anker 0.2 nozzle.json | 17 + .../Generic PLA Silk @Anker 0.25 nozzle.json | 17 + ...json => Generic PLA Silk @Anker base.json} | 4 +- .../filament/Generic PLA Silk @Anker.json | 17 + .../Generic PLA+ @Anker 0.2 nozzle.json | 17 + .../Generic PLA+ @Anker 0.25 nozzle.json | 17 + ...ase.json => Generic PLA+ @Anker base.json} | 4 +- .../Anker/filament/Generic PLA+ @Anker.json | 17 + ...e.json => Generic PLA-CF @Anker base.json} | 4 +- .../Anker/filament/Generic PLA-CF @Anker.json | 17 + ...base.json => Generic PVA @Anker base.json} | 4 +- ...neric ABS.json => Generic PVA @Anker.json} | 7 +- ...base.json => Generic TPU @Anker base.json} | 4 +- .../Anker/filament/Generic TPU @Anker.json | 17 + .../Anker/machine/Anker M5 0.2 nozzle.json | 2 +- .../Anker/machine/Anker M5 0.25 nozzle.json | 2 +- .../Anker/machine/Anker M5 0.4 nozzle.json | 2 +- .../Anker/machine/Anker M5 0.6 nozzle.json | 2 +- .../Anker M5 All-Metal 0.2 nozzle.json | 2 +- .../Anker M5 All-Metal 0.25 nozzle.json | 2 +- .../Anker M5 All-Metal 0.4 nozzle.json | 2 +- .../Anker M5 All-Metal 0.6 nozzle.json | 2 +- .../machine/Anker M5 All-Metal Hot End.json | 2 +- .../profiles/Anker/machine/Anker M5.json | 2 +- .../Anker/machine/Anker M5C 0.2 nozzle.json | 2 +- .../Anker/machine/Anker M5C 0.25 nozzle.json | 2 +- .../Anker/machine/Anker M5C 0.4 nozzle.json | 2 +- .../Anker/machine/Anker M5C 0.6 nozzle.json | 2 +- .../profiles/Anker/machine/Anker M5C.json | 2 +- resources/profiles/Anycubic.json | 2468 +++++----- ...ubic ASA @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...bic PETG @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Max 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json | 2 +- ...PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json | 2 +- ... PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.2 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.6 nozzle.json | 2 +- ...ubic PLA @Anycubic Kobra 3 0.8 nozzle.json | 2 +- ...ic PLA @Anycubic Kobra Neo 0.4 nozzle.json | 2 +- ...PLA Glow @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...low @Anycubic Kobra S1 Max 0.4 nozzle.json | 678 +-- ...low @Anycubic Kobra S1 Max 0.6 nozzle.json | 702 +-- ...low @Anycubic Kobra S1 Max 0.8 nozzle.json | 702 +-- ...gh Speed @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...LA Matte @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...c PLA SE @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...PLA Slik @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...bic PLA+ @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...-CF @Anycubic Kobra S1 Max 0.4 nozzle.json | 672 +-- ...-CF @Anycubic Kobra S1 Max 0.6 nozzle.json | 702 +-- ...-CF @Anycubic Kobra S1 Max 0.8 nozzle.json | 702 +-- ...eric ABS @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ic ABS.json => Generic ABS @Anycubic.json} | 8 +- ...ic ASA.json => Generic ASA @Anycubic.json} | 7 +- ...eric PA.json => Generic PA @Anycubic.json} | 7 +- ...A-CF.json => Generic PA-CF @Anycubic.json} | 7 +- ...eric PC.json => Generic PC @Anycubic.json} | 7 +- ... PETG.json => Generic PETG @Anycubic.json} | 7 +- ...ic PLA.json => Generic PLA @Anycubic.json} | 7 +- ...-CF.json => Generic PLA-CF @Anycubic.json} | 7 +- ...ic PVA.json => Generic PVA @Anycubic.json} | 7 +- ...eric TPU @Anycubic Kobra 3 0.4 nozzle.json | 2 +- ...ic TPU.json => Generic TPU @Anycubic.json} | 8 +- .../Anycubic 4Max Pro 2 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic 4Max Pro 2.json | 2 +- .../Anycubic/machine/Anycubic 4Max Pro.json | 2 +- .../machine/Anycubic Chiron 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Chiron.json | 2 +- .../machine/Anycubic Kobra 0.4 nozzle.json | 2 +- .../machine/Anycubic Kobra 2 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Kobra 2.json | 2 +- .../Anycubic Kobra Max 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Kobra Max.json | 2 +- .../Anycubic Kobra Neo 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Kobra Neo.json | 2 +- .../Anycubic Kobra Plus 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Kobra Plus.json | 2 +- .../Anycubic/machine/Anycubic Kobra.json | 2 +- .../Anycubic/machine/Anycubic Predator.json | 2 +- .../machine/Anycubic Vyper 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic Vyper.json | 2 +- .../Anycubic i3 Mega S 0.4 nozzle.json | 2 +- .../Anycubic/machine/Anycubic i3 Mega S.json | 2 +- resources/profiles/Artillery.json | 26 +- ...lery ABS @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../Artillery/filament/Artillery ABS.json | 2 +- ...lery ASA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...llery PA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...ry PA-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...llery PC @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PET @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...ery PETG @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...TG Basic @Artillery M1 Pro 0.4 nozzle.json | 2 +- ... PETG-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../Artillery/filament/Artillery PETG.json | 2 +- ...LA Basic @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...A Basic+ @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../filament/Artillery PLA Basic.json | 2 +- ...LA Matte @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../filament/Artillery PLA Matte.json | 2 +- ...PLA Silk @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../filament/Artillery PLA Silk.json | 2 +- .../filament/Artillery PLA Tough.json | 2 +- ...y PLA-CF @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery PVA @Artillery M1 Pro 0.4 nozzle.json | 2 +- ...lery TPU @Artillery M1 Pro 0.4 nozzle.json | 2 +- .../Artillery/filament/Artillery TPU.json | 2 +- ...c ABS.json => Generic ABS @Artillery.json} | 7 +- ...c ASA.json => Generic ASA @Artillery.json} | 7 +- ...PETG.json => Generic PETG @Artillery.json} | 7 +- ...c PLA.json => Generic PLA @Artillery.json} | 7 +- ...CF.json => Generic PLA-CF @Artillery.json} | 7 +- ...c TPU.json => Generic TPU @Artillery.json} | 7 +- .../machine/Artillery Genius 0.4 nozzle.json | 2 +- .../Artillery Genius Pro 0.4 nozzle.json | 2 +- .../machine/Artillery Genius Pro.json | 2 +- .../Artillery/machine/Artillery Genius.json | 2 +- .../machine/Artillery Hornet 0.4 nozzle.json | 2 +- .../Artillery/machine/Artillery Hornet.json | 2 +- .../Artillery Sidewinder X1 0.4 nozzle.json | 2 +- .../machine/Artillery Sidewinder X1.json | 2 +- .../Artillery Sidewinder X2 0.4 nozzle.json | 2 +- .../machine/Artillery Sidewinder X2.json | 2 +- resources/profiles/Blocks.json | 46 +- ...eric ABS.json => Generic ABS @Blocks.json} | 7 +- ...eric ASA.json => Generic ASA @Blocks.json} | 7 +- ...SA-CF.json => Generic ASA-CF @Blocks.json} | 10 +- ...eneric PA.json => Generic PA @Blocks.json} | 7 +- ... PA-CF.json => Generic PA-CF @Blocks.json} | 7 +- ...eneric PC.json => Generic PC @Blocks.json} | 7 +- ...ic PETG.json => Generic PETG @Blocks.json} | 7 +- ...eric PLA.json => Generic PLA @Blocks.json} | 7 +- ...LA-CF.json => Generic PLA-CF @Blocks.json} | 7 +- ...eric PVA.json => Generic PVA @Blocks.json} | 7 +- ...eric TPU.json => Generic TPU @Blocks.json} | 7 +- .../Blocks/machine/BLOCKS Pro S100.json | 2 +- .../Blocks/machine/BLOCKS RD50 V2.json | 2 +- .../profiles/Blocks/machine/BLOCKS RF50.json | 2 +- .../Blocks/machine/fdm_klipper_common.json | 2 +- resources/profiles/CONSTRUCT3D.json | 14 +- ...G.json => Generic High Flow PETG @C1.json} | 7 +- ...eneric PETG.json => Generic PETG @C1.json} | 7 +- ... Generic PLA.json => Generic PLA @C1.json} | 7 +- .../CONSTRUCT3D/machine/Construct 1 XL.json | 2 +- .../CONSTRUCT3D/machine/Construct 1.json | 2 +- resources/profiles/Chuanying.json | 46 +- ...uanying ABS @Chuanying X1 0.25 Nozzle.json | 2 +- ...uanying ASA @Chuanying X1 0.25 Nozzle.json | 2 +- ...ying HS PLA @Chuanying X1 0.25 Nozzle.json | 2 +- ...anying PETG @Chuanying X1 0.25 Nozzle.json | 2 +- ...uanying PLA @Chuanying X1 0.25 Nozzle.json | 2 +- ...ng PLA-SILK @Chuanying X1 0.25 Nozzle.json | 2 +- ...c ABS.json => Generic ABS @Chuanying.json} | 7 +- ...c ASA.json => Generic ASA @Chuanying.json} | 7 +- ...HIPS.json => Generic HIPS @Chuanying.json} | 11 +- ...LA.json => Generic HS PLA @Chuanying.json} | 7 +- ...PETG.json => Generic PETG @Chuanying.json} | 7 +- ...json => Generic PETG-CF10 @Chuanying.json} | 7 +- ...c PLA.json => Generic PLA @Chuanying.json} | 7 +- ....json => Generic PLA-CF10 @Chuanying.json} | 7 +- ....json => Generic PLA-Silk @Chuanying.json} | 7 +- ...c PVA.json => Generic PVA @Chuanying.json} | 11 +- ...c TPU.json => Generic TPU @Chuanying.json} | 7 +- .../Chuanying/machine/Chuanying X1.json | 2 +- .../machine/fdm_chuanying_common.json | 2 +- .../Chuanying/machine/fdm_klipper_common.json | 2 +- .../Chuanying/machine/fdm_x1_common.json | 2 +- resources/profiles/Co Print.json | 18 +- ...ric ABS.json => Generic ABS @CoPrint.json} | 9 +- ...c PETG.json => Generic PETG @CoPrint.json} | 9 +- ...ric PLA.json => Generic PLA @CoPrint.json} | 10 +- ...ric TPU.json => Generic TPU @CoPrint.json} | 9 +- ...hromaSet 0.4 nozzle - Ender-3 V3 Plus.json | 2 +- ...int ChromaSet 0.4 nozzle - Ender-3 V3.json | 2 +- .../Co Print ChromaSet 0.4 nozzle fast.json | 2 +- .../Co Print ChromaSet 0.4 nozzle.json | 2 +- .../Co Print/machine/Co Print ChromaSet.json | 2 +- .../Co Print/machine/fdm_coprint_common.json | 2 +- resources/profiles/CoLiDo.json | 34 +- ....json => Generic ABS @CoLiDo DIY 4.0.json} | 9 +- ... X16.json => Generic ABS @CoLiDo X16.json} | 9 +- ...json => Generic PETG @CoLiDo DIY 4.0.json} | 9 +- ...X16.json => Generic PETG @CoLiDo X16.json} | 9 +- ....json => Generic PLA @CoLiDo DIY 4.0.json} | 9 +- ... X16.json => Generic PLA @CoLiDo X16.json} | 9 +- ....json => Generic TPU @CoLiDo DIY 4.0.json} | 9 +- ... X16.json => Generic TPU @CoLiDo X16.json} | 9 +- .../machine/CoLiDo 160 V2 0.4 nozzle.json | 2 +- .../CoLiDo/machine/CoLiDo 160 V2.json | 2 +- .../machine/CoLiDo DIY 4.0 0.4 nozzle.json | 2 +- .../CoLiDo/machine/CoLiDo DIY 4.0.json | 2 +- .../CoLiDo/machine/CoLiDo X16 0.4 nozzle.json | 2 +- .../profiles/CoLiDo/machine/CoLiDo X16.json | 2 +- resources/profiles/Comgrow.json | 14 +- .../Comgrow/filament/Comgrow T300 PLA.json | 2 +- ...ric ABS.json => Generic ABS @Comgrow.json} | 7 +- ...c PETG.json => Generic PETG @Comgrow.json} | 7 +- ...ric PLA.json => Generic PLA @Comgrow.json} | 7 +- .../Comgrow/machine/Comgrow T500.json | 2 +- .../Comgrow/machine/fdm_comgrow_common.json | 2 +- resources/profiles/Creality.json | 230 +- .../Creality Generic ASA-CF @Hi-all.json | 19 - .../Creality Generic PETG-CF @Hi-all.json | 19 - .../Creality Generic PLA @Hi-all.json | 2 +- .../Creality Generic PLA-CF @Hi-all.json | 15 - ... Generic ABS @Creality Ender-3V3-all.json} | 7 +- ...Generic ABS @Creality Ender-5Max-all.json} | 7 +- ...json => Generic ABS @Creality Hi-all.json} | 8 +- ...json => Generic ABS @Creality K1-all.json} | 11 +- ...json => Generic ABS @Creality K2-all.json} | 12 +- ...ic ABS.json => Generic ABS @Creality.json} | 7 +- ... Generic ASA @Creality Ender-3V3-all.json} | 7 +- ...Generic ASA @Creality Ender-5Max-all.json} | 7 +- ...json => Generic ASA @Creality Hi-all.json} | 7 +- ...json => Generic ASA @Creality K1-all.json} | 11 +- ...json => Generic ASA @Creality K2-all.json} | 10 +- ...ic ASA.json => Generic ASA @Creality.json} | 7 +- .../Generic ASA-CF @Creality Hi-all.json | 23 + ... Generic PA @Creality Ender-5Max-all.json} | 7 +- ...eneric PA-CF @Creality Ender-3V3-all.json} | 7 +- ...on => Generic PA-CF @Creality K1-all.json} | 8 +- ...on => Generic PA-CF @Creality K2-all.json} | 10 +- ...A-CF.json => Generic PA-CF @Creality.json} | 7 +- ....json => Generic PC @Creality K1-all.json} | 8 +- ...eric PC.json => Generic PC @Creality.json} | 4 +- ...Generic PETG @Creality Ender-3V3-all.json} | 7 +- ...eneric PETG @Creality Ender-5Max-all.json} | 7 +- ...son => Generic PETG @Creality Hi-all.json} | 8 +- ...son => Generic PETG @Creality K1-all.json} | 11 +- ...son => Generic PETG @Creality K2-all.json} | 12 +- ... PETG.json => Generic PETG @Creality.json} | 7 +- .../Generic PETG-CF @Creality Hi-all.json | 23 + ... Generic PLA @Creality Ender-3V3-all.json} | 7 +- ...Generic PLA @Creality Ender-5Max-all.json} | 7 +- ...json => Generic PLA @Creality K1-all.json} | 11 +- ...json => Generic PLA @Creality K2-all.json} | 12 +- ...ic PLA.json => Generic PLA @Creality.json} | 7 +- ...PLA.json => Generic PLA HF @Creality.json} | 7 +- ...A High Speed @Creality Ender-3V3-all.json} | 9 +- ...eric PLA High Speed @Creality Hi-all.json} | 7 +- ...eric PLA High Speed @Creality K1-all.json} | 9 +- ...eric PLA High Speed @Creality K2-all.json} | 9 +- ...ic PLA Matte @Creality Ender-3V3-all.json} | 9 +- ...> Generic PLA Matte @Creality Hi-all.json} | 7 +- ...> Generic PLA Matte @Creality K1-all.json} | 9 +- ...> Generic PLA Matte @Creality K2-all.json} | 9 +- ...ric PLA Silk @Creality Ender-3V3-all.json} | 9 +- ...=> Generic PLA Silk @Creality Hi-all.json} | 7 +- ...=> Generic PLA Silk @Creality K1-all.json} | 9 +- ...=> Generic PLA Silk @Creality K2-all.json} | 9 +- ...=> Generic PLA Wood @Creality Hi-all.json} | 7 +- .../Generic PLA-CF @Creality Hi-all.json | 16 + ...n => Generic PLA-CF @Creality K1-all.json} | 9 +- ...n => Generic PLA-CF @Creality K2-all.json} | 10 +- ...-CF.json => Generic PLA-CF @Creality.json} | 7 +- ...on => Generic Speed PLA @Creality HF.json} | 7 +- ... Generic TPU @Creality Ender-3V3-all.json} | 7 +- ...Generic TPU @Creality Ender-5Max-all.json} | 7 +- ...json => Generic TPU @Creality Hi-all.json} | 7 +- ...json => Generic TPU @Creality K1-all.json} | 11 +- ...json => Generic TPU @Creality K2-all.json} | 10 +- ...ic TPU.json => Generic TPU @Creality.json} | 7 +- .../Creality CR-10 Max 0.4 nozzle.json | 2 +- .../Creality/machine/Creality CR-10 Max.json | 2 +- .../machine/Creality CR-10 SE 0.2 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.4 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.6 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality CR-10 SE.json | 2 +- .../machine/Creality CR-10 V2 0.4 nozzle.json | 2 +- .../Creality/machine/Creality CR-10 V2.json | 2 +- .../machine/Creality CR-10 V3 0.4 nozzle.json | 2 +- .../machine/Creality CR-10 V3 0.6 nozzle.json | 2 +- .../Creality/machine/Creality CR-10 V3.json | 2 +- .../machine/Creality CR-6 Max 0.2 nozzle.json | 2 +- .../machine/Creality CR-6 Max 0.4 nozzle.json | 2 +- .../machine/Creality CR-6 Max 0.6 nozzle.json | 2 +- .../machine/Creality CR-6 Max 0.8 nozzle.json | 2 +- .../Creality/machine/Creality CR-6 Max.json | 2 +- .../machine/Creality CR-6 SE 0.2 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.4 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.6 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality CR-6 SE.json | 2 +- .../machine/Creality CR-M4 0.4 nozzle.json | 2 +- .../Creality/machine/Creality CR-M4.json | 2 +- .../machine/Creality Ender-3 0.2 nozzle.json | 2 +- .../machine/Creality Ender-3 0.4 nozzle.json | 2 +- .../machine/Creality Ender-3 0.6 nozzle.json | 2 +- .../machine/Creality Ender-3 0.8 nozzle.json | 2 +- .../Creality Ender-3 Pro 0.2 nozzle.json | 2 +- .../Creality Ender-3 Pro 0.4 nozzle.json | 2 +- .../Creality Ender-3 Pro 0.6 nozzle.json | 2 +- .../Creality Ender-3 Pro 0.8 nozzle.json | 2 +- .../machine/Creality Ender-3 Pro.json | 2 +- .../Creality Ender-3 S1 0.4 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.2 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.4 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.6 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.8 nozzle.json | 2 +- .../machine/Creality Ender-3 S1 Plus.json | 2 +- .../Creality Ender-3 S1 Pro 0.4 nozzle.json | 2 +- .../machine/Creality Ender-3 S1 Pro.json | 2 +- .../Creality/machine/Creality Ender-3 S1.json | 2 +- .../Creality Ender-3 V2 0.4 nozzle.json | 2 +- .../Creality Ender-3 V2 Neo 0.4 nozzle.json | 2 +- .../machine/Creality Ender-3 V2 Neo.json | 2 +- .../Creality/machine/Creality Ender-3 V2.json | 2 +- .../Creality Ender-3 V3 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 KE 0.2 nozzle.json | 2 +- .../Creality Ender-3 V3 KE 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 KE 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 KE 0.8 nozzle.json | 2 +- .../machine/Creality Ender-3 V3 KE.json | 2 +- .../Creality Ender-3 V3 Plus 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 Plus 0.6 nozzle.json | 2 +- .../machine/Creality Ender-3 V3 Plus.json | 2 +- .../Creality Ender-3 V3 SE 0.2 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.8 nozzle.json | 2 +- .../machine/Creality Ender-3 V3 SE.json | 2 +- .../Creality/machine/Creality Ender-3 V3.json | 2 +- .../Creality/machine/Creality Ender-3.json | 2 +- .../machine/Creality Ender-5 0.4 nozzle.json | 2 +- .../machine/Creality Ender-5 Max.json | 2 +- .../Creality Ender-5 Plus 0.4 nozzle.json | 2 +- .../machine/Creality Ender-5 Plus.json | 2 +- ...reality Ender-5 Pro (2019) 0.2 nozzle.json | 2 +- ...eality Ender-5 Pro (2019) 0.25 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 0.3 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 0.4 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 0.5 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 0.6 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 0.8 nozzle.json | 2 +- ...reality Ender-5 Pro (2019) 1.0 nozzle.json | 2 +- .../machine/Creality Ender-5 Pro (2019).json | 2 +- .../Creality Ender-5 S1 0.4 nozzle.json | 2 +- .../Creality/machine/Creality Ender-5 S1.json | 2 +- .../Creality/machine/Creality Ender-5.json | 2 +- .../machine/Creality Ender-5S 0.4 nozzle.json | 2 +- .../Creality/machine/Creality Ender-5S.json | 2 +- .../machine/Creality Ender-6 0.4 nozzle.json | 2 +- .../Creality/machine/Creality Ender-6.json | 2 +- .../Creality/machine/Creality Hi.json | 2 +- .../machine/Creality K1 (0.4 nozzle).json | 2 +- .../machine/Creality K1 (0.6 nozzle).json | 2 +- .../machine/Creality K1 (0.8 nozzle).json | 2 +- .../machine/Creality K1 Max (0.4 nozzle).json | 2 +- .../machine/Creality K1 Max (0.6 nozzle).json | 2 +- .../machine/Creality K1 Max (0.8 nozzle).json | 2 +- .../Creality/machine/Creality K1 Max.json | 2 +- .../Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- .../machine/Creality K1 Max_CFS-C.json | 2 +- .../machine/Creality K1 SE 0.4 nozzle.json | 2 +- .../machine/Creality K1 SE 0.6 nozzle.json | 2 +- .../machine/Creality K1 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K1 SE.json | 2 +- .../Creality K1 SE_CFS-C 0.4 nozzle.json | 2 +- .../machine/Creality K1 SE_CFS-C.json | 2 +- .../Creality/machine/Creality K1.json | 2 +- .../machine/Creality K1C 0.4 nozzle.json | 2 +- .../machine/Creality K1C 0.6 nozzle.json | 2 +- .../machine/Creality K1C 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K1C.json | 2 +- .../Creality K1C_CFS-C 0.4 nozzle.json | 2 +- .../Creality/machine/Creality K1C_CFS-C.json | 2 +- .../machine/Creality K1_CFS-C 0.4 nozzle.json | 2 +- .../Creality/machine/Creality K1_CFS-C.json | 2 +- .../machine/Creality K2 0.2 nozzle.json | 2 +- .../machine/Creality K2 0.4 nozzle.json | 2 +- .../machine/Creality K2 0.6 nozzle.json | 2 +- .../machine/Creality K2 0.8 nozzle.json | 2 +- .../machine/Creality K2 Plus 0.2 nozzle.json | 2 +- .../machine/Creality K2 Plus 0.4 nozzle.json | 2 +- .../machine/Creality K2 Plus 0.6 nozzle.json | 2 +- .../machine/Creality K2 Plus 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K2 Plus.json | 2 +- .../machine/Creality K2 Pro 0.2 nozzle.json | 2 +- .../machine/Creality K2 Pro 0.4 nozzle.json | 2 +- .../machine/Creality K2 Pro 0.6 nozzle.json | 2 +- .../machine/Creality K2 Pro 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K2 Pro.json | 2 +- .../machine/Creality K2 SE 0.4 nozzle.json | 2 +- .../Creality/machine/Creality K2 SE.json | 2 +- .../Creality/machine/Creality K2.json | 2 +- .../Creality Sermoon V1 0.4 nozzle.json | 2 +- .../Creality/machine/Creality Sermoon V1.json | 2 +- .../Creality/machine/fdm_creality_common.json | 2 +- resources/profiles/DeltaMaker.json | 14 +- ...ETG.json => Generic PETG @DeltaMaker.json} | 7 +- ... PLA.json => Generic PLA @DeltaMaker.json} | 7 +- ... TPU.json => Generic TPU @DeltaMaker.json} | 7 +- .../machine/DeltaMaker 2 0.35 nozzle.json | 2 +- .../DeltaMaker/machine/DeltaMaker 2.json | 2 +- .../machine/DeltaMaker 2T 0.5 nozzle.json | 2 +- .../DeltaMaker/machine/DeltaMaker 2T.json | 2 +- .../machine/DeltaMaker 2XT 0.5 nozzle.json | 2 +- .../DeltaMaker/machine/DeltaMaker 2XT.json | 2 +- .../machine/fdm_klipper_common.json | 2 +- resources/profiles/Dremel.json | 18 +- ...json => Generic PLA @Dremel 3D20 all.json} | 9 +- ...json => Generic PLA @Dremel 3D40 all.json} | 9 +- ...json => Generic PLA @Dremel 3D45 all.json} | 9 +- ...eric PLA.json => Generic PLA @Dremel.json} | 7 +- .../machine/Dremel 3D20 0.4 nozzle.json | 2 +- .../profiles/Dremel/machine/Dremel 3D20.json | 2 +- .../machine/Dremel 3D40 0.4 nozzle.json | 2 +- .../profiles/Dremel/machine/Dremel 3D40.json | 2 +- .../machine/Dremel 3D45 0.4 nozzle.json | 2 +- .../profiles/Dremel/machine/Dremel 3D45.json | 2 +- .../Dremel/machine/fdm_dremel_common.json | 2 +- resources/profiles/FLSun.json | 50 +- .../profiles/FLSun/filament/FLSun S1 ABS.json | 2 +- .../profiles/FLSun/filament/FLSun S1 ASA.json | 2 +- .../FLSun/filament/FLSun S1 PETG.json | 2 +- .../filament/FLSun S1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun S1 PLA Silk.json | 2 +- .../profiles/FLSun/filament/FLSun S1 TPU.json | 2 +- .../profiles/FLSun/filament/FLSun T1 ABS.json | 2 +- .../profiles/FLSun/filament/FLSun T1 ASA.json | 2 +- .../FLSun/filament/FLSun T1 PETG.json | 2 +- .../filament/FLSun T1 PLA High Speed.json | 2 +- .../FLSun/filament/FLSun T1 PLA Silk.json | 2 +- .../profiles/FLSun/filament/FLSun T1 TPU.json | 2 +- ...neric ABS.json => Generic ABS @FLSun.json} | 7 +- ...neric ASA.json => Generic ASA @FLSun.json} | 7 +- ...Generic PA.json => Generic PA @FLSun.json} | 7 +- ...c PA-CF.json => Generic PA-CF @FLSun.json} | 7 +- ...Generic PC.json => Generic PC @FLSun.json} | 7 +- ...ric PETG.json => Generic PETG @FLSun.json} | 7 +- ...eneric.json => Generic PLA @FLSun S1.json} | 9 +- ...eneric.json => Generic PLA @FLSun T1.json} | 9 +- ...neric PLA.json => Generic PLA @FLSun.json} | 7 +- ...PLA-CF.json => Generic PLA-CF @FLSun.json} | 7 +- ...neric PVA.json => Generic PVA @FLSun.json} | 7 +- ...neric TPU.json => Generic TPU @FLSun.json} | 7 +- .../FLSun/machine/FLSun Q5 0.4 nozzle.json | 2 +- .../profiles/FLSun/machine/FLSun Q5.json | 2 +- .../machine/FLSun QQ-S Pro 0.4 nozzle.json | 2 +- .../FLSun/machine/FLSun QQ-S Pro.json | 2 +- .../profiles/FLSun/machine/FLSun S1.json | 2 +- .../FLSun/machine/FLSun SR 0.4 nozzle.json | 2 +- .../profiles/FLSun/machine/FLSun SR.json | 2 +- .../profiles/FLSun/machine/FLSun T1.json | 2 +- .../profiles/FLSun/machine/FLSun V400.json | 2 +- resources/profiles/Flashforge.json | 190 +- .../FlashForge PC @FF G4 0.6 HF nozzle.json | 5 +- .../FlashForge PC @FF G4 0.6 nozzle.json | 5 +- .../FlashForge PC @FF G4 0.8 HF nozzle.json | 5 +- .../FlashForge PC @FF G4P 0.6 HF nozzle.json | 5 +- .../FlashForge PC @FF G4P 0.6 nozzle.json | 5 +- .../FlashForge PC @FF G4P 0.8 HF nozzle.json | 5 +- .../FlashForge PPS @FF G4 0.6 HF nozzle.json | 5 +- .../FlashForge PPS @FF G4 0.6 nozzle.json | 5 +- .../FlashForge PPS @FF G4 0.8 HF nozzle.json | 5 +- .../FlashForge PPS @FF G4P 0.6 HF nozzle.json | 5 +- .../FlashForge PPS @FF G4P 0.6 nozzle.json | 5 +- .../FlashForge PPS @FF G4P 0.8 HF nozzle.json | 5 +- .../FlashForge PPS-CF @FF G4 0.6 nozzle.json | 5 +- .../FlashForge PPS-CF @FF G4P 0.6 nozzle.json | 5 +- .../Flashforge ABS @FF AD5M 0.25 Nozzle.json | 2 +- ...shforge ABS Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge ABS Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge ABS Basic @FF AD5X.json | 2 +- ...hforge ABS Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge ABS Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge ABS Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge ABS Basic @FF G4 HF.json | 2 +- .../filament/Flashforge ABS Basic @FF G4.json | 2 +- ...forge ABS Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge ABS Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge ABS Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge ABS Basic @FF G4P HF.json | 2 +- .../Flashforge ABS Basic @FF G4P.json | 2 +- .../filament/Flashforge ABS Basic.json | 2 +- .../Flashforge ABS-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge ABS-CF @FF G4.json | 2 +- .../Flashforge ABS-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge ABS-CF @FF G4P.json | 2 +- .../Flashforge ASA @FF AD5M 0.25 Nozzle.json | 2 +- ...shforge ASA Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge ASA Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge ASA Basic @FF AD5X.json | 2 +- ...hforge ASA Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge ASA Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge ASA Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge ASA Basic @FF G4 HF.json | 2 +- .../filament/Flashforge ASA Basic @FF G4.json | 2 +- ...forge ASA Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge ASA Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge ASA Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge ASA Basic @FF G4P HF.json | 2 +- .../Flashforge ASA Basic @FF G4P.json | 2 +- .../filament/Flashforge ASA Basic.json | 2 +- .../filament/Flashforge ASA-CF @FF G4.json | 2 +- .../filament/Flashforge ASA-CF @FF G4P.json | 2 +- .../filament/Flashforge ASA-CF.json | 2 +- .../Flashforge HIPS @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HIPS @FF G4 0.6 nozzle.json | 2 +- .../Flashforge HIPS @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HIPS @FF G4 HF.json | 2 +- .../filament/Flashforge HIPS @FF G4.json | 2 +- ...Flashforge HIPS @FF G4P 0.6 HF nozzle.json | 2 +- .../Flashforge HIPS @FF G4P 0.6 nozzle.json | 2 +- ...Flashforge HIPS @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HIPS @FF G4P HF.json | 2 +- .../filament/Flashforge HIPS @FF G4P.json | 2 +- ...lashforge HS PETG @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge HS PETG @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge HS PETG @FF AD5X.json | 2 +- ...ashforge HS PETG @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4 0.6 nozzle.json | 2 +- ...ashforge HS PETG @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4 HF.json | 2 +- .../filament/Flashforge HS PETG @FF G4.json | 2 +- ...shforge HS PETG @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge HS PETG @FF G4P 0.6 nozzle.json | 2 +- ...shforge HS PETG @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge HS PETG @FF G4P HF.json | 2 +- .../filament/Flashforge HS PETG @FF G4P.json | 2 +- .../filament/Flashforge HS PETG.json | 2 +- ...lashforge HS PLA @FF AD5M 0.25 Nozzle.json | 2 +- ...Flashforge HS PLA @FF AD5X 0.6 nozzle.json | 2 +- ...Flashforge HS PLA @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge HS PLA @FF AD5X.json | 2 +- ...lashforge HS PLA @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4 0.6 nozzle.json | 2 +- ...lashforge HS PLA @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HS PLA @FF G4 HF.json | 2 +- .../filament/Flashforge HS PLA @FF G4.json | 2 +- ...ashforge HS PLA @FF G4P 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4P 0.6 nozzle.json | 2 +- ...ashforge HS PLA @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge HS PLA @FF G4P HF.json | 2 +- .../filament/Flashforge HS PLA @FF G4P.json | 2 +- ... HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge HS PLA Burnt Ti @FF G4 HF.json | 2 +- ...HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge HS PLA Burnt Ti @FF G4P HF.json | 2 +- ...orge HS PLA Burnt Ti@FF G4 0.6 nozzle.json | 2 +- ...e HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json | 2 +- ...rge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json | 2 +- ... HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge HS PLA.json | 2 +- .../Flashforge PA @FF G4 0.6 HF nozzle.json | 2 +- .../filament/Flashforge PA @FF G4 HF.json | 2 +- .../filament/Flashforge PA @FF G4.json | 2 +- .../Flashforge PA @FF G4P 0.6 HF nozzle.json | 2 +- .../filament/Flashforge PA @FF G4P HF.json | 2 +- .../filament/Flashforge PA @FF G4P.json | 2 +- .../filament/Flashforge PA-CF @FF G4.json | 2 +- .../filament/Flashforge PA-CF @FF G4P.json | 2 +- .../filament/Flashforge PA12-CF.json | 2 +- .../filament/Flashforge PA6-CF.json | 2 +- .../filament/Flashforge PA66-CF.json | 2 +- .../filament/Flashforge PAHT-CF @FF G4.json | 2 +- .../filament/Flashforge PAHT-CF @FF G4P.json | 2 +- .../filament/Flashforge PET-CF.json | 2 +- .../Flashforge PETG @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge PETG Basic.json | 2 +- ...ashforge PETG Pro @FF AD5X 0.6 nozzle.json | 2 +- ...ashforge PETG Pro @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PETG Pro @FF AD5X.json | 2 +- ...shforge PETG Pro @FF G4 0.6 HF nozzle.json | 2 +- ...Flashforge PETG Pro @FF G4 0.6 nozzle.json | 2 +- ...shforge PETG Pro @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PETG Pro @FF G4 HF.json | 2 +- .../filament/Flashforge PETG Pro @FF G4.json | 2 +- ...hforge PETG Pro @FF G4P 0.6 HF nozzle.json | 2 +- ...lashforge PETG Pro @FF G4P 0.6 nozzle.json | 2 +- ...hforge PETG Pro @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PETG Pro @FF G4P HF.json | 2 +- .../filament/Flashforge PETG Pro @FF G4P.json | 2 +- .../filament/Flashforge PETG Pro.json | 2 +- ... PETG Transparent @FF AD5X 0.6 nozzle.json | 2 +- ... PETG Transparent @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PETG Transparent @FF AD5X.json | 2 +- ...PETG Transparent @FF G4 0.6 HF nozzle.json | 2 +- ...ge PETG Transparent @FF G4 0.6 nozzle.json | 2 +- ...PETG Transparent @FF G4 0.8 HF nozzle.json | 2 +- ...Flashforge PETG Transparent @FF G4 HF.json | 2 +- .../Flashforge PETG Transparent @FF G4.json | 2 +- ...ETG Transparent @FF G4P 0.6 HF nozzle.json | 2 +- ...e PETG Transparent @FF G4P 0.6 nozzle.json | 2 +- ...ETG Transparent @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge PETG Transparent @FF G4P HF.json | 2 +- .../Flashforge PETG Transparent @FF G4P.json | 2 +- .../filament/Flashforge PETG Transparent.json | 2 +- ...lashforge PETG-CF @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge PETG-CF @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF AD5X.json | 2 +- .../Flashforge PETG-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF G4.json | 2 +- ...Flashforge PETG-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge PETG-CF @FF G4P.json | 2 +- .../filament/Flashforge PETG-CF.json | 2 +- .../Flashforge PLA @FF AD5M 0.25 Nozzle.json | 2 +- ...shforge PLA Basic @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Basic @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Basic @FF AD5X.json | 2 +- ...hforge PLA Basic @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Basic @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Basic @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Basic @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Basic @FF G4.json | 2 +- ...forge PLA Basic @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Basic @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Basic @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Basic @FF G4P HF.json | 2 +- .../Flashforge PLA Basic @FF G4P.json | 2 +- .../filament/Flashforge PLA Basic.json | 2 +- ...hforge PLA Buint Ti @FF G4 0.8 nozzle.json | 2 +- ...forge PLA Buint Ti @FF G4P 0.8 nozzle.json | 2 +- ... PLA Color Change @FF AD5X 0.6 nozzle.json | 2 +- ... PLA Color Change @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Color Change @FF AD5X.json | 2 +- ...PLA Color Change @FF G4 0.6 HF nozzle.json | 2 +- ...ge PLA Color Change @FF G4 0.6 nozzle.json | 2 +- ...PLA Color Change @FF G4 0.8 HF nozzle.json | 2 +- ...Flashforge PLA Color Change @FF G4 HF.json | 2 +- .../Flashforge PLA Color Change @FF G4.json | 2 +- ...LA Color Change @FF G4P 0.6 HF nozzle.json | 2 +- ...e PLA Color Change @FF G4P 0.6 nozzle.json | 2 +- ...LA Color Change @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge PLA Color Change @FF G4P HF.json | 2 +- .../Flashforge PLA Color Change @FF G4P.json | 2 +- .../filament/Flashforge PLA Color Change.json | 2 +- ...hforge PLA Galaxy @FF AD5X 0.6 nozzle.json | 2 +- ...hforge PLA Galaxy @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF AD5X.json | 2 +- ...forge PLA Galaxy @FF G4 0.6 HF nozzle.json | 2 +- ...ashforge PLA Galaxy @FF G4 0.6 nozzle.json | 2 +- ...forge PLA Galaxy @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF G4 HF.json | 2 +- .../Flashforge PLA Galaxy @FF G4.json | 2 +- ...orge PLA Galaxy @FF G4P 0.6 HF nozzle.json | 2 +- ...shforge PLA Galaxy @FF G4P 0.6 nozzle.json | 2 +- ...orge PLA Galaxy @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Galaxy @FF G4P HF.json | 2 +- .../Flashforge PLA Galaxy @FF G4P.json | 2 +- .../filament/Flashforge PLA Galaxy.json | 2 +- ...orge PLA Luminous @FF AD5X 0.6 nozzle.json | 2 +- ...orge PLA Luminous @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Luminous @FF AD5X.json | 2 +- ...rge PLA Luminous @FF G4 0.6 HF nozzle.json | 2 +- ...rge PLA Luminous @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Luminous @FF G4 HF.json | 2 +- .../Flashforge PLA Luminous @FF G4.json | 2 +- ...ge PLA Luminous @FF G4P 0.6 HF nozzle.json | 2 +- ...ge PLA Luminous @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Luminous @FF G4P HF.json | 2 +- .../Flashforge PLA Luminous @FF G4P.json | 2 +- .../filament/Flashforge PLA Luminous.json | 2 +- ...shforge PLA Matte @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Matte @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Matte @FF AD5X.json | 2 +- ...hforge PLA Matte @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Matte @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Matte @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Matte @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Matte @FF G4.json | 2 +- ...forge PLA Matte @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Matte @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Matte @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Matte @FF G4P HF.json | 2 +- .../Flashforge PLA Matte @FF G4P.json | 2 +- .../filament/Flashforge PLA Matte.json | 2 +- ...shforge PLA Metal @FF AD5X 0.6 nozzle.json | 2 +- ...shforge PLA Metal @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Metal @FF AD5X.json | 2 +- ...hforge PLA Metal @FF G4 0.6 HF nozzle.json | 2 +- ...lashforge PLA Metal @FF G4 0.6 nozzle.json | 2 +- ...hforge PLA Metal @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Metal @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Metal @FF G4.json | 2 +- ...forge PLA Metal @FF G4P 0.6 HF nozzle.json | 2 +- ...ashforge PLA Metal @FF G4P 0.6 nozzle.json | 2 +- ...forge PLA Metal @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Metal @FF G4P HF.json | 2 +- .../Flashforge PLA Metal @FF G4P.json | 2 +- .../filament/Flashforge PLA Metal.json | 2 +- ...lashforge PLA Pro @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge PLA Pro @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PLA Pro @FF AD5X.json | 2 +- ...ashforge PLA Pro @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4 0.6 nozzle.json | 2 +- ...ashforge PLA Pro @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Pro @FF G4.json | 2 +- ...shforge PLA Pro @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge PLA Pro @FF G4P 0.6 nozzle.json | 2 +- ...shforge PLA Pro @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Pro @FF G4P HF.json | 2 +- .../filament/Flashforge PLA Pro @FF G4P.json | 2 +- .../filament/Flashforge PLA Pro.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.6 nozzle.json | 2 +- ...ashforge PLA Silk @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Silk @FF AD5X.json | 2 +- ...shforge PLA Silk @FF G4 0.6 HF nozzle.json | 2 +- ...Flashforge PLA Silk @FF G4 0.6 nozzle.json | 2 +- ...shforge PLA Silk @FF G4 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Silk @FF G4 HF.json | 2 +- .../filament/Flashforge PLA Silk @FF G4.json | 2 +- ...hforge PLA Silk @FF G4P 0.6 HF nozzle.json | 2 +- ...lashforge PLA Silk @FF G4P 0.6 nozzle.json | 2 +- ...hforge PLA Silk @FF G4P 0.8 HF nozzle.json | 2 +- .../Flashforge PLA Silk @FF G4P HF.json | 2 +- .../filament/Flashforge PLA Silk @FF G4P.json | 2 +- .../filament/Flashforge PLA Silk.json | 2 +- ...forge PLA Sparkle @FF AD5X 0.6 nozzle.json | 2 +- ...forge PLA Sparkle @FF AD5X 0.8 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF AD5X.json | 2 +- ...orge PLA Sparkle @FF G4 0.6 HF nozzle.json | 2 +- ...shforge PLA Sparkle @FF G4 0.6 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF G4 HF.json | 2 +- .../Flashforge PLA Sparkle @FF G4.json | 2 +- ...rge PLA Sparkle @FF G4P 0.6 HF nozzle.json | 2 +- ...hforge PLA Sparkle @FF G4P 0.6 nozzle.json | 2 +- .../Flashforge PLA Sparkle @FF G4P HF.json | 2 +- .../Flashforge PLA Sparkle @FF G4P.json | 2 +- .../filament/Flashforge PLA Sparkle.json | 2 +- ...Flashforge PLA-CF @FF AD5X 0.6 nozzle.json | 2 +- ...Flashforge PLA-CF @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF AD5X.json | 2 +- .../Flashforge PLA-CF @FF G4 0.6 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF G4.json | 2 +- .../Flashforge PLA-CF @FF G4P 0.6 nozzle.json | 2 +- .../filament/Flashforge PLA-CF @FF G4P.json | 2 +- .../filament/Flashforge PLA-CF.json | 2 +- ...shforge PLA-SILK @FF AD5M 0.25 Nozzle.json | 2 +- .../filament/Flashforge PPA-CF.json | 2 +- .../filament/Flashforge PPA-GF.json | 2 +- .../filament/Flashforge PPS @FF G4.json | 2 +- .../filament/Flashforge PPS @FF G4P.json | 2 +- .../filament/Flashforge PPS-CF @FF G4.json | 2 +- .../filament/Flashforge PPS-CF @FF G4P.json | 2 +- .../filament/Flashforge PPS-CF.json | 2 +- ...ashforge TPU 65D @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge TPU 65D @FF G4 0.6 nozzle.json | 2 +- ...ashforge TPU 65D @FF G4 0.8 HF nozzle.json | 2 +- ...shforge TPU 65D @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge TPU 65D @FF G4P 0.6 nozzle.json | 2 +- ...shforge TPU 65D @FF G4P 0.8 HF nozzle.json | 2 +- ...lashforge TPU 95A @FF AD5X 0.6 nozzle.json | 2 +- ...lashforge TPU 95A @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF AD5X.json | 2 +- ...ashforge TPU 95A @FF G4 0.6 HF nozzle.json | 2 +- .../Flashforge TPU 95A @FF G4 0.6 nozzle.json | 2 +- ...ashforge TPU 95A @FF G4 0.8 HF nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF G4.json | 2 +- ...shforge TPU 95A @FF G4P 0.6 HF nozzle.json | 2 +- ...Flashforge TPU 95A @FF G4P 0.6 nozzle.json | 2 +- ...shforge TPU 95A @FF G4P 0.8 HF nozzle.json | 2 +- .../filament/Flashforge TPU 95A @FF G4P.json | 2 +- .../filament/Flashforge TPU 95A.json | 2 +- .../FusRock PAHT @FF G4 0.6 HF nozzle.json | 4 +- .../FusRock PAHT @FF G4 0.6 nozzle.json | 4 +- .../FusRock PAHT @FF G4 0.8 HF nozzle.json | 4 +- .../FusRock PAHT @FF G4P 0.6 HF nozzle.json | 4 +- .../FusRock PAHT @FF G4P 0.6 nozzle.json | 4 +- .../FusRock PAHT @FF G4P 0.8 HF nozzle.json | 4 +- .../filament/FusRock PAHT-CF @FF C5.json | 5 +- .../filament/FusRock PAHT-CF @FF C5P.json | 5 +- .../FusRock PAHT-CF @FF G4 0.6 nozzle.json | 4 +- .../filament/FusRock PAHT-CF @FF G4.json | 7 +- .../FusRock PAHT-CF @FF G4P 0.6 nozzle.json | 4 +- .../filament/FusRock PAHT-CF @FF G4P.json | 7 +- .../FusRock PET @FF G4P 0.8 HF nozzle.json | 4 +- .../FusRock PET-CF @FF G4 0.6 nozzle.json | 4 +- .../filament/FusRock PET-CF @FF G4.json | 7 +- .../FusRock PET-CF @FF G4P 0.6 nozzle.json | 4 +- .../filament/FusRock PET-CF @FF G4P.json | 7 +- .../filament/FusRock S-Multi @FF C5.json | 7 +- .../filament/FusRock S-Multi @FF C5P.json | 7 +- .../filament/FusRock S-PAHT @FF C5.json | 7 +- .../filament/FusRock S-PAHT @FF C5P.json | 7 +- ...exPA-CF25.json => FusRock NexPA-CF25.json} | 11 +- ...n => FusRock PAHT-CF @G3U 0.6 Nozzle.json} | 14 +- ...eric PAHT-CF.json => FusRock PAHT-CF.json} | 13 +- ...eric PAHT-GF.json => FusRock PAHT-GF.json} | 11 +- ...on => FusRock PET-CF @G3U 0.6 Nozzle.json} | 14 +- ...eneric PET-CF.json => FusRock PET-CF.json} | 13 +- ...eneric PET-GF.json => FusRock PET-GF.json} | 11 +- ...n => FusRock S-Multi @G3U 0.6 Nozzle.json} | 14 +- ...eric S-Multi.json => FusRock S-Multi.json} | 13 +- ...on => FusRock S-PAHT @G3U 0.6 Nozzle.json} | 14 +- ...eneric S-PAHT.json => FusRock S-PAHT.json} | 13 +- ... => Generic ABS @FF AD5M 0.25 Nozzle.json} | 12 +- .../filament/Generic ABS @Flashforge AD4.json | 2 +- ...neric ABS @Flashforge G3U 0.6 Nozzle.json} | 11 +- ....json => Generic ABS @Flashforge G3U.json} | 11 +- ... ABS.json => Generic ABS @Flashforge.json} | 7 +- ... => Generic ASA @FF AD5M 0.25 Nozzle.json} | 12 +- .../filament/Generic ASA @Flashforge AD4.json | 2 +- ...neric ASA @Flashforge G3U 0.6 Nozzle.json} | 11 +- ....json => Generic ASA @Flashforge G3U.json} | 11 +- ... ASA.json => Generic ASA @Flashforge.json} | 7 +- ...eric HIPS @Flashforge G3U 0.6 Nozzle.json} | 11 +- ...IPS.json => Generic HIPS @Flashforge.json} | 11 +- ... Generic HS PLA @FF AD5M 0.25 Nozzle.json} | 12 +- ...A.json => Generic HS PLA @Flashforge.json} | 7 +- .../Generic PET @FF G4 0.6 HF nozzle.json | 5 +- .../Generic PET @FF G4 0.6 nozzle.json | 5 +- .../Generic PET @FF G4 0.8 HF nozzle.json | 5 +- .../filament/Generic PET @FF G4.json | 2 +- .../Generic PET @FF G4P 0.6 HF nozzle.json | 5 +- .../Generic PET @FF G4P 0.6 nozzle.json | 5 +- .../Generic PET @FF G4P 0.8 HF nozzle.json | 5 +- .../filament/Generic PET @FF G4P.json | 2 +- ...=> Generic PETG @FF AD5M 0.25 Nozzle.json} | 12 +- .../Generic PETG @Flashforge AD4.json | 2 +- ...eric PETG @Flashforge G3U 0.6 Nozzle.json} | 11 +- ...eric PETG @Flashforge G3U 0.8 Nozzle.json} | 11 +- ...json => Generic PETG @Flashforge G3U.json} | 11 +- ...ETG.json => Generic PETG @Flashforge.json} | 7 +- ...c PETG-CF @Flashforge G3U 0.6 Nozzle.json} | 11 +- ...c PETG-CF @Flashforge G3U 0.8 Nozzle.json} | 11 +- ...n => Generic PETG-CF @Flashforge G3U.json} | 11 +- .../Generic PETG-CF10 @Flashforge AD4.json | 2 +- ...son => Generic PETG-CF10 @Flashforge.json} | 7 +- ... => Generic PLA @FF AD5M 0.25 Nozzle.json} | 10 +- .../filament/Generic PLA @Flashforge AD4.json | 2 +- ...neric PLA @Flashforge G3U 0.6 Nozzle.json} | 6 +- ...neric PLA @Flashforge G3U 0.8 Nozzle.json} | 6 +- ....json => Generic PLA @Flashforge G3U.json} | 11 +- ... PLA.json => Generic PLA @Flashforge.json} | 7 +- ...eneric PLA High Speed @Flashforge AD4.json | 2 +- .../Generic PLA Silk @Flashforge AD4.json | 2 +- ...ic PLA-CF @Flashforge G3U 0.6 Nozzle.json} | 11 +- ...ic PLA-CF @Flashforge G3U 0.8 Nozzle.json} | 11 +- ...on => Generic PLA-CF @Flashforge G3U.json} | 11 +- .../Generic PLA-CF10 @Flashforge AD4.json | 2 +- ...json => Generic PLA-CF10 @Flashforge.json} | 7 +- ...eneric PLA-SILK @FF AD5M 0.25 Nozzle.json} | 12 +- ...json => Generic PLA-Silk @Flashforge.json} | 7 +- ... PVA.json => Generic PVA @Flashforge.json} | 11 +- .../Generic TPU 85A @FF AD5X 0.6 nozzle.json | 2 +- .../Generic TPU 85A @FF AD5X 0.8 nozzle.json | 2 +- .../filament/Generic TPU 85A @FF AD5X.json | 2 +- .../filament/Generic TPU @Flashforge AD4.json | 2 +- ... TPU.json => Generic TPU @Flashforge.json} | 7 +- .../Polymaker CoPA @FF G4 0.6 HF nozzle.json | 7 +- .../Polymaker CoPA @FF G4 0.6 nozzle.json | 7 +- .../Polymaker CoPA @FF G4 0.8 HF nozzle.json | 7 +- .../Polymaker CoPA @FF G4P 0.6 HF nozzle.json | 7 +- .../Polymaker CoPA @FF G4P 0.6 nozzle.json | 7 +- .../Polymaker CoPA @FF G4P 0.8 HF nozzle.json | 7 +- ... Generic CoPA.json => Polymaker CoPA.json} | 11 +- ...aker Generic S1.json => Polymaker S1.json} | 11 +- .../SUNLU/SUNLU PLA Marble @base.json | 1 - .../machine/FlashForge AD5X 0.25 nozzle.json | 2 +- .../machine/Flashforge AD5X 0.4 nozzle.json | 2 +- .../machine/Flashforge AD5X 0.6 nozzle.json | 2 +- .../machine/Flashforge AD5X 0.8 nozzle.json | 2 +- .../Flashforge/machine/Flashforge AD5X.json | 2 +- .../machine/Flashforge Adventurer 5M Pro.json | 2 +- .../machine/Flashforge Adventurer 5M.json | 2 +- .../machine/Flashforge Artemis.json | 2 +- .../Flashforge Creator 5 0.4 nozzle.json | 2 +- .../Flashforge Creator 5 0.6 nozzle.json | 2 +- .../Flashforge Creator 5 0.8 nozzle.json | 2 +- .../Flashforge Creator 5 Pro 0.4 nozzle.json | 2 +- .../Flashforge Creator 5 Pro 0.6 nozzle.json | 2 +- .../Flashforge Creator 5 Pro 0.8 nozzle.json | 2 +- .../Flashforge Guider 2s 0.4 nozzle.json | 2 +- .../machine/Flashforge Guider 2s.json | 2 +- .../Flashforge Guider 3 Ultra 0.4 Nozzle.json | 2 +- .../Flashforge Guider 3 Ultra 0.6 Nozzle.json | 2 +- .../Flashforge Guider 3 Ultra 0.8 Nozzle.json | 2 +- .../machine/Flashforge Guider 3 Ultra.json | 2 +- .../Flashforge Guider4 0.25 nozzle.json | 2 +- .../Flashforge Guider4 0.4 HF nozzle.json | 2 +- .../Flashforge Guider4 0.4 nozzle.json | 2 +- .../Flashforge Guider4 0.6 HF nozzle.json | 2 +- .../Flashforge Guider4 0.6 nozzle.json | 2 +- .../Flashforge Guider4 0.8 HF nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.25 nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.4 HF nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.4 nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.6 HF nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.6 nozzle.json | 2 +- .../Flashforge Guider4 Pro 0.8 HF nozzle.json | 2 +- .../machine/Flashforge Guider4 Pro.json | 2 +- .../machine/Flashforge Guider4.json | 2 +- .../machine/fdm_adventurer5m_common.json | 2 +- .../machine/fdm_flashforge_common.json | 2 +- .../machine/fdm_klipper_common.json | 2 +- resources/profiles/FlyingBear.json | 26 +- ... ABS.json => Generic ABS @FlyingBear.json} | 10 +- ...CF.json => Generic PA-CF @FlyingBear.json} | 10 +- ...ic PC.json => Generic PC @FlyingBear.json} | 10 +- ...ETG.json => Generic PETG @FlyingBear.json} | 10 +- ... PLA.json => Generic PLA @FlyingBear.json} | 10 +- ... TPU.json => Generic TPU @FlyingBear.json} | 10 +- .../FlyingBear Ghost 6 0.4 nozzle.json | 2 +- .../machine/FlyingBear Ghost 6.json | 2 +- .../machine/FlyingBear Reborn3.json | 2 +- .../machine/Ghost7/FlyingBear Ghost7.json | 2 +- .../FlyingBear/machine/S1/FlyingBear S1.json | 2 +- .../machine/fdm_klipper_common.json | 2 +- .../machine/fdm_machine_common.json | 2 +- resources/profiles/Ginger Additive.json | 10 +- ...ic PETG.json => Generic PETG @Ginger.json} | 8 +- ...eric PLA.json => Generic PLA @Ginger.json} | 8 +- .../Ginger Additive/machine/Ginger G1.json | 2 +- .../machine/Ginger_G1_common.json | 3 +- resources/profiles/InfiMech.json | 26 +- ...ic ABS.json => Generic ABS @InfiMech.json} | 10 +- ...A-CF.json => Generic PA-CF @InfiMech.json} | 10 +- ...eric PC.json => Generic PC @InfiMech.json} | 10 +- ... PETG.json => Generic PETG @InfiMech.json} | 10 +- ...ic PLA.json => Generic PLA @InfiMech.json} | 10 +- ...ic TPU.json => Generic TPU @InfiMech.json} | 10 +- .../InfiMech TX Hardened Steel Nozzle.json | 2 +- .../machine/HSN/fdm_klipper_common.json | 2 +- .../machine/HSN/fdm_machine_common.json | 2 +- .../InfiMech/machine/InfiMech TX.json | 2 +- .../InfiMech/machine/fdm_klipper_common.json | 2 +- .../InfiMech/machine/fdm_machine_common.json | 2 +- resources/profiles/MagicMaker.json | 6 +- ...eneric PEEK.json => Generic PEEK @MM.json} | 7 +- .../MagicMaker/machine/MM BoneKing.json | 2 +- resources/profiles/OrcaArena.json | 110 +- .../Generic ABS @OrcaArena 0.2 nozzle.json | 15 + ....json => Generic ABS @OrcaArena base.json} | 4 +- ...c ASA.json => Generic ABS @OrcaArena.json} | 7 +- .../Generic ASA @OrcaArena 0.2 nozzle.json | 15 + ....json => Generic ASA @OrcaArena base.json} | 4 +- ...ic PC.json => Generic ASA @OrcaArena.json} | 7 +- ...ric PA.json => Generic PA @OrcaArena.json} | 7 +- ...-CF.json => Generic PA-CF @OrcaArena.json} | 7 +- .../Generic PC @OrcaArena 0.2 nozzle.json | 15 + ...e.json => Generic PC @OrcaArena base.json} | 4 +- ...ic ABS.json => Generic PC @OrcaArena.json} | 7 +- .../Generic PETG @OrcaArena 0.2 nozzle.json | 15 + ...json => Generic PETG @OrcaArena base.json} | 4 +- .../filament/Generic PETG @OrcaArena.json | 14 + .../filament/Generic PETG-CF @Arena X1C.json | 14 + ...n => Generic PETG-CF @OrcaArena base.json} | 6 +- ...=> Generic PLA @OrcaArena 0.2 nozzle.json} | 7 +- ....json => Generic PLA @OrcaArena base.json} | 4 +- ...a X1C.json => Generic PLA @OrcaArena.json} | 7 +- ... => Generic PLA Silk @OrcaArena base.json} | 4 +- ....json => Generic PLA Silk @OrcaArena.json} | 7 +- ...on => Generic PLA-CF @OrcaArena base.json} | 4 +- .../filament/Generic PLA-CF @OrcaArena.json | 14 + .../Generic PVA @OrcaArena 0.2 nozzle.json | 15 + ....json => Generic PVA @OrcaArena base.json} | 4 +- .../filament/Generic PVA @OrcaArena.json | 14 + ...c TPU.json => Generic TPU @OrcaArena.json} | 7 +- .../OrcaArena Generic ABS @0.2 nozzle.json | 14 - .../OrcaArena Generic ASA @0.2 nozzle.json | 14 - .../OrcaArena Generic PC @0.2 nozzle.json | 14 - .../OrcaArena Generic PETG @0.2 nozzle.json | 14 - .../filament/OrcaArena Generic PETG.json | 13 - .../filament/OrcaArena Generic PLA-CF.json | 13 - .../filament/OrcaArena Generic PLA.json | 13 - .../OrcaArena Generic PVA @0.2 nozzle.json | 14 - .../filament/OrcaArena Generic PVA.json | 13 - .../machine/Orca Arena X1 Carbon.json | 2 +- resources/profiles/OrcaFilamentLibrary.json | 2 +- .../filament/Generic PP-GF @base.json | 7 +- .../Polymaker/Panchroma PLA Satin @base.json | 1 - resources/profiles/Peopoly.json | 14 +- ...ric ABS.json => Generic ABS @Peopoly.json} | 7 +- ...c PETG.json => Generic PETG @Peopoly.json} | 7 +- ...ric PLA.json => Generic PLA @Peopoly.json} | 8 +- .../Peopoly/machine/Peopoly Magneto X.json | 2 +- .../Peopoly/machine/fdm_klipper_common.json | 2 +- resources/profiles/Prusa.json | 874 ++-- .../Generic ABS @Prusa CORE One 0.6.json | 13 + .../Generic ABS @Prusa CORE One 0.8.json | 16 + ...> Generic ABS @Prusa CORE One HF 0.4.json} | 9 +- ...> Generic ABS @Prusa CORE One HF 0.5.json} | 9 +- ...> Generic ABS @Prusa CORE One HF 0.6.json} | 9 +- ...> Generic ABS @Prusa CORE One HF 0.8.json} | 9 +- ....json => Generic ABS @Prusa CORE One.json} | 7 +- ...on => Generic ABS @Prusa MINIIS 0.25.json} | 7 +- ...son => Generic ABS @Prusa MINIIS 0.6.json} | 7 +- ...son => Generic ABS @Prusa MINIIS 0.8.json} | 7 +- ...IS.json => Generic ABS @Prusa MINIIS.json} | 7 +- ...son => Generic ABS @Prusa MK3.5 0.25.json} | 7 +- ...json => Generic ABS @Prusa MK3.5 0.6.json} | 7 +- ...json => Generic ABS @Prusa MK3.5 0.8.json} | 7 +- ...3.5.json => Generic ABS @Prusa MK3.5.json} | 7 +- ... @MK4.json => Generic ABS @Prusa MK4.json} | 7 +- .../filament/Generic ABS @Prusa MK4S 0.6.json | 13 + .../filament/Generic ABS @Prusa MK4S 0.8.json | 13 + ...son => Generic ABS @Prusa MK4S HF0.4.json} | 9 +- .../Generic ABS @Prusa MK4S HF0.5.json | 16 + .../Generic ABS @Prusa MK4S HF0.6.json | 16 + .../Generic ABS @Prusa MK4S HF0.8.json | 18 + ...MK4S.json => Generic ABS @Prusa MK4S.json} | 7 +- ... 5T.json => Generic ABS @Prusa XL 5T.json} | 7 +- ...BS @XL.json => Generic ABS @Prusa XL.json} | 7 +- .../filament/Generic ABS @Prusa base.json} | 4 +- ...neric ABS.json => Generic ABS @Prusa.json} | 7 +- ... => Generic ABS HF @Prusa MINIIS 0.6.json} | 7 +- ... => Generic ABS HF @Prusa MINIIS 0.8.json} | 7 +- ...json => Generic ABS HF @Prusa MINIIS.json} | 7 +- ...n => Generic ABS HF @Prusa MK3.5 0.6.json} | 7 +- ...n => Generic ABS HF @Prusa MK3.5 0.8.json} | 7 +- ....json => Generic ABS HF @Prusa MK3.5.json} | 7 +- ...e.json => Generic ABS HF @Prusa base.json} | 4 +- .../Generic ASA @Prusa CORE One 0.6.json | 19 + ...n => Generic ASA @Prusa CORE One 0.8.json} | 9 +- ...> Generic ASA @Prusa CORE One HF 0.4.json} | 9 +- ...> Generic ASA @Prusa CORE One HF 0.5.json} | 9 +- ...> Generic ASA @Prusa CORE One HF 0.6.json} | 9 +- ...> Generic ASA @Prusa CORE One HF 0.8.json} | 9 +- ....json => Generic ASA @Prusa CORE One.json} | 7 +- ...on => Generic ASA @Prusa MINIIS 0.25.json} | 7 +- ...son => Generic ASA @Prusa MINIIS 0.6.json} | 7 +- ...son => Generic ASA @Prusa MINIIS 0.8.json} | 7 +- ...IS.json => Generic ASA @Prusa MINIIS.json} | 7 +- ...son => Generic ASA @Prusa MK3.5 0.25.json} | 7 +- ...json => Generic ASA @Prusa MK3.5 0.6.json} | 7 +- ...json => Generic ASA @Prusa MK3.5 0.8.json} | 7 +- ...3.5.json => Generic ASA @Prusa MK3.5.json} | 7 +- ... @MK4.json => Generic ASA @Prusa MK4.json} | 7 +- .../filament/Generic ASA @Prusa MK4S 0.6.json | 15 + .../filament/Generic ASA @Prusa MK4S 0.8.json | 16 + ...son => Generic ASA @Prusa MK4S HF0.4.json} | 9 +- .../Generic ASA @Prusa MK4S HF0.5.json | 16 + .../Generic ASA @Prusa MK4S HF0.6.json | 18 + ...son => Generic ASA @Prusa MK4S HF0.8.json} | 9 +- ...MK4S.json => Generic ASA @Prusa MK4S.json} | 7 +- ...neric ASA.json => Generic ASA @Prusa.json} | 7 +- ... => Generic ASA HF @Prusa MINIIS 0.6.json} | 7 +- ... => Generic ASA HF @Prusa MINIIS 0.8.json} | 7 +- ...json => Generic ASA HF @Prusa MINIIS.json} | 7 +- ...n => Generic ASA HF @Prusa MK3.5 0.6.json} | 7 +- ...n => Generic ASA HF @Prusa MK3.5 0.8.json} | 7 +- ....json => Generic ASA HF @Prusa MK3.5.json} | 7 +- ...e.json => Generic ASA HF @Prusa base.json} | 4 +- ...5T.json => Generic FLEX @Prusa XL 5T.json} | 7 +- ...X @XL.json => Generic FLEX @Prusa XL.json} | 7 +- ...son => Generic PA @Prusa MINIIS 0.25.json} | 7 +- ...json => Generic PA @Prusa MINIIS 0.6.json} | 7 +- ...json => Generic PA @Prusa MINIIS 0.8.json} | 7 +- ...IIS.json => Generic PA @Prusa MINIIS.json} | 7 +- ...json => Generic PA @Prusa MK3.5 0.25.json} | 7 +- ....json => Generic PA @Prusa MK3.5 0.6.json} | 7 +- ....json => Generic PA @Prusa MK3.5 0.8.json} | 7 +- ...K3.5.json => Generic PA @Prusa MK3.5.json} | 7 +- .../filament/Generic PA @Prusa base.json} | 4 +- ...Generic PA.json => Generic PA @Prusa.json} | 7 +- ... => Generic PA-CF @Prusa MINIIS 0.25.json} | 7 +- ...n => Generic PA-CF @Prusa MINIIS 0.6.json} | 7 +- ...n => Generic PA-CF @Prusa MINIIS 0.8.json} | 7 +- ....json => Generic PA-CF @Prusa MINIIS.json} | 7 +- ...n => Generic PA-CF @Prusa MK3.5 0.25.json} | 7 +- ...on => Generic PA-CF @Prusa MK3.5 0.6.json} | 7 +- ...on => Generic PA-CF @Prusa MK3.5 0.8.json} | 7 +- ...5.json => Generic PA-CF @Prusa MK3.5.json} | 7 +- ...se.json => Generic PA-CF @Prusa base.json} | 4 +- ...c PA-CF.json => Generic PA-CF @Prusa.json} | 7 +- ...son => Generic PC @Prusa MINIIS 0.25.json} | 7 +- ...json => Generic PC @Prusa MINIIS 0.6.json} | 7 +- ...json => Generic PC @Prusa MINIIS 0.8.json} | 7 +- ...IIS.json => Generic PC @Prusa MINIIS.json} | 7 +- ...json => Generic PC @Prusa MK3.5 0.25.json} | 7 +- ....json => Generic PC @Prusa MK3.5 0.6.json} | 7 +- ....json => Generic PC @Prusa MK3.5 0.8.json} | 7 +- ...K3.5.json => Generic PC @Prusa MK3.5.json} | 7 +- ...Generic PC.json => Generic PC @Prusa.json} | 7 +- ...n => Generic PC HF @Prusa MINIIS 0.6.json} | 7 +- ...n => Generic PC HF @Prusa MINIIS 0.8.json} | 7 +- ....json => Generic PC HF @Prusa MINIIS.json} | 7 +- ...on => Generic PC HF @Prusa MK3.5 0.6.json} | 7 +- ...on => Generic PC HF @Prusa MK3.5 0.8.json} | 7 +- ...5.json => Generic PC HF @Prusa MK3.5.json} | 7 +- ...se.json => Generic PC HF @Prusa base.json} | 4 +- ... => Generic PETG @Prusa CORE One 0.6.json} | 9 +- ... => Generic PETG @Prusa CORE One 0.8.json} | 9 +- ... Generic PETG @Prusa CORE One HF 0.4.json} | 9 +- ... Generic PETG @Prusa CORE One HF 0.5.json} | 9 +- ... Generic PETG @Prusa CORE One HF 0.6.json} | 9 +- ... Generic PETG @Prusa CORE One HF 0.8.json} | 9 +- ...json => Generic PETG @Prusa CORE One.json} | 7 +- ...n => Generic PETG @Prusa MINIIS 0.25.json} | 7 +- ...on => Generic PETG @Prusa MINIIS 0.6.json} | 7 +- ...on => Generic PETG @Prusa MINIIS 0.8.json} | 7 +- ...S.json => Generic PETG @Prusa MINIIS.json} | 9 +- ...on => Generic PETG @Prusa MK3.5 0.25.json} | 7 +- ...son => Generic PETG @Prusa MK3.5 0.6.json} | 7 +- ...son => Generic PETG @Prusa MK3.5 0.8.json} | 7 +- ....5.json => Generic PETG @Prusa MK3.5.json} | 7 +- ...@MK4.json => Generic PETG @Prusa MK4.json} | 7 +- ...json => Generic PETG @Prusa MK4S 0.6.json} | 9 +- ...json => Generic PETG @Prusa MK4S 0.8.json} | 9 +- ...on => Generic PETG @Prusa MK4S HF0.4.json} | 9 +- .../Generic PETG @Prusa MK4S HF0.5.json | 16 + ...on => Generic PETG @Prusa MK4S HF0.6.json} | 9 +- ...on => Generic PETG @Prusa MK4S HF0.8.json} | 9 +- ...K4S.json => Generic PETG @Prusa MK4S.json} | 7 +- ...5T.json => Generic PETG @Prusa XL 5T.json} | 7 +- ...G @XL.json => Generic PETG @Prusa XL.json} | 7 +- ...ase.json => Generic PETG @Prusa base.json} | 4 +- ...ric PETG.json => Generic PETG @Prusa.json} | 7 +- ...=> Generic PETG HF @Prusa MINIIS 0.6.json} | 7 +- ...=> Generic PETG HF @Prusa MINIIS 0.8.json} | 7 +- ...son => Generic PETG HF @Prusa MINIIS.json} | 9 +- ... => Generic PETG HF @Prusa MK3.5 0.6.json} | 7 +- ... => Generic PETG HF @Prusa MK3.5 0.8.json} | 7 +- ...json => Generic PETG HF @Prusa MK3.5.json} | 7 +- ....json => Generic PETG HF @Prusa base.json} | 4 +- .../Generic PLA @Prusa CORE One 0.6.json | 19 + ...n => Generic PLA @Prusa CORE One 0.8.json} | 9 +- ...> Generic PLA @Prusa CORE One HF 0.4.json} | 9 +- ...> Generic PLA @Prusa CORE One HF 0.5.json} | 9 +- ...> Generic PLA @Prusa CORE One HF 0.6.json} | 9 +- ...> Generic PLA @Prusa CORE One HF 0.8.json} | 9 +- ....json => Generic PLA @Prusa CORE One.json} | 7 +- ...on => Generic PLA @Prusa MINIIS 0.25.json} | 7 +- ...son => Generic PLA @Prusa MINIIS 0.6.json} | 7 +- ...son => Generic PLA @Prusa MINIIS 0.8.json} | 7 +- ...IS.json => Generic PLA @Prusa MINIIS.json} | 7 +- ...son => Generic PLA @Prusa MK3.5 0.25.json} | 7 +- ...json => Generic PLA @Prusa MK3.5 0.6.json} | 7 +- ...json => Generic PLA @Prusa MK3.5 0.8.json} | 7 +- ...3.5.json => Generic PLA @Prusa MK3.5.json} | 7 +- ... @MK4.json => Generic PLA @Prusa MK4.json} | 7 +- ....json => Generic PLA @Prusa MK4S 0.6.json} | 9 +- ....json => Generic PLA @Prusa MK4S 0.8.json} | 9 +- ...son => Generic PLA @Prusa MK4S HF0.4.json} | 9 +- ...son => Generic PLA @Prusa MK4S HF0.5.json} | 9 +- ...son => Generic PLA @Prusa MK4S HF0.6.json} | 9 +- ...son => Generic PLA @Prusa MK4S HF0.8.json} | 9 +- ...MK4S.json => Generic PLA @Prusa MK4S.json} | 7 +- ... 5T.json => Generic PLA @Prusa XL 5T.json} | 7 +- ...LA @XL.json => Generic PLA @Prusa XL.json} | 7 +- ...base.json => Generic PLA @Prusa base.json} | 4 +- ...neric PLA.json => Generic PLA @Prusa.json} | 7 +- ... => Generic PLA HF @Prusa MINIIS 0.6.json} | 7 +- ... => Generic PLA HF @Prusa MINIIS 0.8.json} | 7 +- ...json => Generic PLA HF @Prusa MINIIS.json} | 7 +- ...n => Generic PLA HF @Prusa MK3.5 0.6.json} | 7 +- ...n => Generic PLA HF @Prusa MK3.5 0.8.json} | 7 +- ....json => Generic PLA HF @Prusa MK3.5.json} | 7 +- ...e.json => Generic PLA HF @Prusa base.json} | 4 +- ...Generic PLA Silk @Prusa CORE One 0.6.json} | 9 +- .../Generic PLA Silk @Prusa CORE One 0.8.json | 20 + ... => Generic PLA Silk @Prusa CORE One.json} | 7 +- ... => Generic PLA Silk @Prusa MK4S 0.6.json} | 9 +- ... => Generic PLA Silk @Prusa MK4S 0.8.json} | 9 +- ...json => Generic PLA Silk @Prusa MK4S.json} | 9 +- ...=> Generic PLA-CF @Prusa MINIIS 0.25.json} | 7 +- ... => Generic PLA-CF @Prusa MINIIS 0.6.json} | 7 +- ... => Generic PLA-CF @Prusa MINIIS 0.8.json} | 7 +- ...json => Generic PLA-CF @Prusa MINIIS.json} | 7 +- ... => Generic PLA-CF @Prusa MK3.5 0.25.json} | 7 +- ...n => Generic PLA-CF @Prusa MK3.5 0.6.json} | 7 +- ...n => Generic PLA-CF @Prusa MK3.5 0.8.json} | 7 +- ....json => Generic PLA-CF @Prusa MK3.5.json} | 7 +- ...e.json => Generic PLA-CF @Prusa base.json} | 4 +- ...PLA-CF.json => Generic PLA-CF @Prusa.json} | 7 +- ...on => Generic PVA @Prusa MINIIS 0.25.json} | 7 +- ...son => Generic PVA @Prusa MINIIS 0.6.json} | 7 +- ...son => Generic PVA @Prusa MINIIS 0.8.json} | 7 +- ...IS.json => Generic PVA @Prusa MINIIS.json} | 7 +- ...son => Generic PVA @Prusa MK3.5 0.25.json} | 7 +- ...json => Generic PVA @Prusa MK3.5 0.6.json} | 7 +- ...json => Generic PVA @Prusa MK3.5 0.8.json} | 7 +- ...3.5.json => Generic PVA @Prusa MK3.5.json} | 7 +- ...base.json => Generic PVA @Prusa base.json} | 4 +- ...neric PVA.json => Generic PVA @Prusa.json} | 7 +- ... => Generic PVA HF @Prusa MINIIS 0.6.json} | 7 +- ... => Generic PVA HF @Prusa MINIIS 0.8.json} | 7 +- ...json => Generic PVA HF @Prusa MINIIS.json} | 7 +- ...n => Generic PVA HF @Prusa MK3.5 0.6.json} | 7 +- ...n => Generic PVA HF @Prusa MK3.5 0.8.json} | 7 +- ....json => Generic PVA HF @Prusa MK3.5.json} | 7 +- ...e.json => Generic PVA HF @Prusa base.json} | 4 +- ...n => Generic TPU @Prusa CORE One 0.6.json} | 9 +- ...n => Generic TPU @Prusa CORE One 0.8.json} | 9 +- ....json => Generic TPU @Prusa CORE One.json} | 7 +- ...IS.json => Generic TPU @Prusa MINIIS.json} | 7 +- ...3.5.json => Generic TPU @Prusa MK3.5.json} | 7 +- ... @MK4.json => Generic TPU @Prusa MK4.json} | 7 +- .../filament/Generic TPU @Prusa MK4S 0.6.json | 17 + .../filament/Generic TPU @Prusa MK4S 0.8.json | 17 + ...MK4S.json => Generic TPU @Prusa MK4S.json} | 7 +- ...base.json => Generic TPU @Prusa base.json} | 4 +- ...neric TPU.json => Generic TPU @Prusa.json} | 7 +- ...json => Generic TPU HF @Prusa MINIIS.json} | 7 +- ....json => Generic TPU HF @Prusa MK3.5.json} | 7 +- ...e.json => Generic TPU HF @Prusa base.json} | 4 +- .../Prusa Generic ABS @CORE One 0.6.json | 12 - .../Prusa Generic ABS @CORE One 0.8.json | 15 - .../filament/Prusa Generic ABS @MK4S 0.6.json | 12 - .../filament/Prusa Generic ABS @MK4S 0.8.json | 12 - .../Prusa Generic ABS @MK4S HF0.5.json | 15 - .../Prusa Generic ABS @MK4S HF0.6.json | 15 - .../Prusa Generic ABS @MK4S HF0.8.json | 17 - .../Prusa Generic ASA @CORE One 0.6.json | 18 - .../filament/Prusa Generic ASA @MK4S 0.6.json | 14 - .../filament/Prusa Generic ASA @MK4S 0.8.json | 15 - .../Prusa Generic ASA @MK4S HF0.5.json | 15 - .../Prusa Generic ASA @MK4S HF0.6.json | 17 - .../Prusa Generic PETG @MK4S HF0.5.json | 15 - .../Prusa Generic PLA @CORE One 0.6.json | 18 - .../Prusa Generic PLA Silk @CORE One 0.8.json | 19 - .../filament/Prusa Generic TPU @MK4S 0.6.json | 16 - .../filament/Prusa Generic TPU @MK4S 0.8.json | 16 - .../Prusa/machine/Prusa CORE One HF.json | 2 +- .../Prusa/machine/Prusa CORE One L HF.json | 2 +- .../Prusa/machine/Prusa CORE One L.json | 2 +- .../Prusa/machine/Prusa CORE One.json | 2 +- .../Prusa/machine/Prusa MINI 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa MINI 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MINI 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MINI 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MINI.json | 2 +- .../machine/Prusa MINIIS 0.25 nozzle.json | 2 +- .../machine/Prusa MINIIS 0.4 nozzle.json | 2 +- .../machine/Prusa MINIIS 0.6 nozzle.json | 2 +- .../machine/Prusa MINIIS 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MINIIS.json | 2 +- .../machine/Prusa MK3.5 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3.5 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3.5 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3.5 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MK3.5.json | 2 +- .../Prusa/machine/Prusa MK3S 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3S 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3S 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MK3S 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MK3S.json | 2 +- .../Prusa/machine/Prusa MK4 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MK4.json | 2 +- .../Prusa/machine/Prusa MK4S 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4S 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4S 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MK4S HF.json | 2 +- .../machine/Prusa MK4S HF0.4 nozzle.json | 2 +- .../machine/Prusa MK4S HF0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa MK4S.json | 2 +- .../Prusa/machine/Prusa XL 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 0.3 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 0.5 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 0.8 nozzle.json | 2 +- .../machine/Prusa XL 5T 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.3 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.5 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa XL 5T.json | 2 +- .../profiles/Prusa/machine/Prusa XL.json | 2 +- .../machine/fdm_machine_common_mk4s.json | 2 +- resources/profiles/Qidi.json | 406 +- ... Generic ABS @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ... Generic ABS @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ... Generic ABS @Qidi Q1 Pro 0.6 nozzle.json} | 9 +- ... Generic ABS @Qidi Q1 Pro 0.8 nozzle.json} | 9 +- ...Generic ABS @Qidi X-Max 3 0.2 nozzle.json} | 9 +- ...eneric ABS @Qidi X-Plus 3 0.2 nozzle.json} | 9 +- ...eneric ABS @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...eneric ABS @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...eneric ABS @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...eneric ABS @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ...neric ABS @Qidi X-Smart 3 0.2 nozzle.json} | 9 +- ...eneric ABS.json => Generic ABS @Qidi.json} | 7 +- ... Generic ASA @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ... Generic ASA @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ... Generic ASA @Qidi Q1 Pro 0.6 nozzle.json} | 11 +- ... Generic ASA @Qidi Q1 Pro 0.8 nozzle.json} | 11 +- ...Generic ASA @Qidi X-Max 3 0.2 nozzle.json} | 9 +- ...eneric ASA @Qidi X-Plus 3 0.2 nozzle.json} | 9 +- ...eneric ASA @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...eneric ASA @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...eneric ASA @Qidi X-Plus 4 0.6 nozzle.json} | 11 +- ...eneric ASA @Qidi X-Plus 4 0.8 nozzle.json} | 11 +- ...neric ASA @Qidi X-Smart 3 0.2 nozzle.json} | 9 +- ...eneric ASA.json => Generic ASA @Qidi.json} | 7 +- ... Generic PA.json => Generic PA @Qidi.json} | 7 +- ...ic PA-CF.json => Generic PA-CF @Qidi.json} | 7 +- ....json => Generic PC @Qidi 0.2 nozzle.json} | 9 +- ....json => Generic PC @Qidi 0.8 nozzle.json} | 9 +- ...> Generic PC @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ...> Generic PC @Qidi Q1 Pro 0.4 nozzle.json} | 9 +- ...> Generic PC @Qidi Q1 Pro 0.6 nozzle.json} | 9 +- ...> Generic PC @Qidi Q1 Pro 0.8 nozzle.json} | 9 +- ...Generic PC @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...Generic PC @Qidi X-Plus 4 0.4 nozzle.json} | 9 +- ...Generic PC @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...Generic PC @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ... Generic PC.json => Generic PC @Qidi.json} | 7 +- ...Generic PETG @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ...Generic PETG @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ...Generic PETG @Qidi Q1 Pro 0.6 nozzle.json} | 9 +- ...Generic PETG @Qidi Q1 Pro 0.8 nozzle.json} | 9 +- ...eneric PETG @Qidi X-Max 3 0.2 nozzle.json} | 9 +- ...neric PETG @Qidi X-Plus 3 0.2 nozzle.json} | 9 +- ...neric PETG @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...neric PETG @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...neric PETG @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...neric PETG @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ...eric PETG @Qidi X-Smart 3 0.2 nozzle.json} | 9 +- ...eric PETG.json => Generic PETG @Qidi.json} | 7 +- ...ETG-CF.json => Generic PETG-CF @Qidi.json} | 7 +- ... Generic PLA @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ... Generic PLA @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ... Generic PLA @Qidi Q1 Pro 0.6 nozzle.json} | 9 +- ... Generic PLA @Qidi Q1 Pro 0.8 nozzle.json} | 9 +- ...Generic PLA @Qidi X-Max 3 0.2 nozzle.json} | 9 +- .../Generic PLA @Qidi X-Max 3 0.6 nozzle.json | 16 + .../Generic PLA @Qidi X-Max 3 0.8 nozzle.json | 16 + ...eneric PLA @Qidi X-Plus 3 0.2 nozzle.json} | 9 +- ...Generic PLA @Qidi X-Plus 3 0.6 nozzle.json | 16 + ...Generic PLA @Qidi X-Plus 3 0.8 nozzle.json | 16 + ...eneric PLA @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...eneric PLA @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...eneric PLA @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...eneric PLA @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ...neric PLA @Qidi X-Smart 3 0.2 nozzle.json} | 9 +- ...eneric PLA @Qidi X-Smart 3 0.6 nozzle.json | 16 + ...eneric PLA @Qidi X-Smart 3 0.8 nozzle.json | 16 + ...eneric PLA.json => Generic PLA @Qidi.json} | 7 +- ... High Speed @Qidi X-Plus 4 0.2 nozzle.json | 25 + ... High Speed @Qidi X-Plus 4 0.4 nozzle.json | 25 + ...High Speed @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...High Speed @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ...ric PLA Silk @Qidi Q1 Pro 0.4 nozzle.json} | 9 +- ...c PLA Silk @Qidi X-Plus 4 0.4 nozzle.json} | 9 +- ... Silk.json => Generic PLA Silk @Qidi.json} | 7 +- ...Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json} | 9 +- ...Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ...Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json} | 9 +- ...Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json} | 9 +- ...eneric PLA+ @Qidi X-Max 3 0.2 nozzle.json} | 9 +- ...Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json | 16 + ...Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json | 16 + ...neric PLA+ @Qidi X-Plus 3 0.2 nozzle.json} | 9 +- ...eneric PLA+ @Qidi X-Plus 3 0.6 nozzle.json | 16 + ...eneric PLA+ @Qidi X-Plus 3 0.8 nozzle.json | 16 + ...neric PLA+ @Qidi X-Plus 4 0.2 nozzle.json} | 9 +- ...neric PLA+ @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...neric PLA+ @Qidi X-Plus 4 0.6 nozzle.json} | 9 +- ...neric PLA+ @Qidi X-Plus 4 0.8 nozzle.json} | 9 +- ...eric PLA+ @Qidi X-Smart 3 0.2 nozzle.json} | 9 +- ...neric PLA+ @Qidi X-Smart 3 0.6 nozzle.json | 16 + ...neric PLA+ @Qidi X-Smart 3 0.8 nozzle.json | 16 + ...eric PLA+.json => Generic PLA+ @Qidi.json} | 7 +- ... PLA-CF.json => Generic PLA-CF @Qidi.json} | 7 +- ...eneric PVA.json => Generic PVA @Qidi.json} | 7 +- ...eric TPU 95A @Qidi Q1 Pro 0.8 nozzle.json} | 11 +- ...ic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json} | 11 +- ...PU 95A.json => Generic TPU 95A @Qidi.json} | 7 +- ... Generic TPU @Qidi Q1 Pro 0.4 nozzle.json} | 11 +- ...eneric TPU @Qidi X-Plus 4 0.4 nozzle.json} | 11 +- ...eneric TPU.json => Generic TPU @Qidi.json} | 7 +- .../QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json | 2 +- ... Generic PLA @Qidi X-Max 3 0.6 nozzle.json | 15 - ... Generic PLA @Qidi X-Max 3 0.8 nozzle.json | 15 - ...Generic PLA @Qidi X-Plus 3 0.6 nozzle.json | 15 - ...Generic PLA @Qidi X-Plus 3 0.8 nozzle.json | 15 - ...eneric PLA @Qidi X-Smart 3 0.6 nozzle.json | 15 - ...eneric PLA @Qidi X-Smart 3 0.8 nozzle.json | 15 - ... High Speed @Qidi X-Plus 4 0.2 nozzle.json | 24 - ... High Speed @Qidi X-Plus 4 0.4 nozzle.json | 24 - ...Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json | 15 - ...Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json | 15 - ...eneric PLA+ @Qidi X-Plus 3 0.6 nozzle.json | 15 - ...eneric PLA+ @Qidi X-Plus 3 0.8 nozzle.json | 15 - ...neric PLA+ @Qidi X-Smart 3 0.6 nozzle.json | 15 - ...neric PLA+ @Qidi X-Smart 3 0.8 nozzle.json | 15 - .../Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json | 2 +- .../Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json | 2 +- .../Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json | 2 +- .../Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi Q1 Pro.json | 2 +- .../machine/Qidi X-CF Pro 0.4 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi X-CF Pro.json | 2 +- .../Qidi/machine/Qidi X-Max 0.4 nozzle.json | 2 +- .../Qidi/machine/Qidi X-Max 3 0.2 nozzle.json | 2 +- .../Qidi/machine/Qidi X-Max 3 0.4 nozzle.json | 2 +- .../Qidi/machine/Qidi X-Max 3 0.6 nozzle.json | 2 +- .../Qidi/machine/Qidi X-Max 3 0.8 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi X-Max 3.json | 2 +- .../profiles/Qidi/machine/Qidi X-Max.json | 2 +- .../Qidi/machine/Qidi X-Plus 0.4 nozzle.json | 2 +- .../machine/Qidi X-Plus 3 0.2 nozzle.json | 2 +- .../machine/Qidi X-Plus 3 0.4 nozzle.json | 2 +- .../machine/Qidi X-Plus 3 0.6 nozzle.json | 2 +- .../machine/Qidi X-Plus 3 0.8 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi X-Plus 3.json | 2 +- .../machine/Qidi X-Plus 4 0.2 nozzle.json | 2 +- .../machine/Qidi X-Plus 4 0.4 nozzle.json | 2 +- .../machine/Qidi X-Plus 4 0.6 nozzle.json | 2 +- .../machine/Qidi X-Plus 4 0.8 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi X-Plus 4.json | 2 +- .../profiles/Qidi/machine/Qidi X-Plus.json | 2 +- .../machine/Qidi X-Smart 3 0.2 nozzle.json | 2 +- .../machine/Qidi X-Smart 3 0.4 nozzle.json | 2 +- .../machine/Qidi X-Smart 3 0.6 nozzle.json | 2 +- .../machine/Qidi X-Smart 3 0.8 nozzle.json | 2 +- .../profiles/Qidi/machine/Qidi X-Smart 3.json | 2 +- .../Qidi/machine/fdm_qidi_common.json | 2 +- resources/profiles/Ratrig.json | 46 +- ...eric ABS.json => Generic ABS @RatRig.json} | 7 +- ...eric ASA.json => Generic ASA @RatRig.json} | 7 +- ...eneric PA.json => Generic PA @RatRig.json} | 7 +- ... PA-CF.json => Generic PA-CF @RatRig.json} | 7 +- ...eneric PC.json => Generic PC @RatRig.json} | 7 +- ...ic PCTG.json => Generic PCTG @RatRig.json} | 10 +- ...ic PETG.json => Generic PETG @RatRig.json} | 7 +- ...eric PLA.json => Generic PLA @RatRig.json} | 7 +- ...LA-CF.json => Generic PLA-CF @RatRig.json} | 7 +- ...eric PVA.json => Generic PVA @RatRig.json} | 7 +- ...eric TPU.json => Generic TPU @RatRig.json} | 7 +- .../Ratrig/machine/RatRig V-Cast.json | 2 +- .../Ratrig/machine/RatRig V-Core 3 200.json | 2 +- .../Ratrig/machine/RatRig V-Core 3 300.json | 2 +- .../Ratrig/machine/RatRig V-Core 3 400.json | 2 +- .../Ratrig/machine/RatRig V-Core 3 500.json | 2 +- .../Ratrig/machine/RatRig V-Core 4 300.json | 2 +- .../Ratrig/machine/RatRig V-Core 4 400.json | 2 +- .../Ratrig/machine/RatRig V-Core 4 500.json | 2 +- .../machine/RatRig V-Core 4 HYBRID 300.json | 2 +- .../machine/RatRig V-Core 4 HYBRID 400.json | 2 +- .../machine/RatRig V-Core 4 HYBRID 500.json | 2 +- .../RatRig V-Core 4 IDEX 300 COPY MODE.json | 2 +- .../RatRig V-Core 4 IDEX 300 MIRROR MODE.json | 2 +- .../machine/RatRig V-Core 4 IDEX 300.json | 2 +- .../RatRig V-Core 4 IDEX 400 COPY MODE.json | 2 +- .../RatRig V-Core 4 IDEX 400 MIRROR MODE.json | 2 +- .../machine/RatRig V-Core 4 IDEX 400.json | 2 +- .../RatRig V-Core 4 IDEX 500 COPY MODE.json | 2 +- .../RatRig V-Core 4 IDEX 500 MIRROR MODE.json | 2 +- .../machine/RatRig V-Core 4 IDEX 500.json | 2 +- .../Ratrig/machine/RatRig V-Minion.json | 2 +- .../Ratrig/machine/fdm_klipper_common.json | 2 +- resources/profiles/SecKit.json | 42 +- ...eric ABS.json => Generic ABS @SecKit.json} | 7 +- ...eric ASA.json => Generic ASA @SecKit.json} | 7 +- ...eneric PA.json => Generic PA @SecKit.json} | 7 +- ... PA-CF.json => Generic PA-CF @SecKit.json} | 7 +- ...eneric PC.json => Generic PC @SecKit.json} | 7 +- ...ic PETG.json => Generic PETG @SecKit.json} | 7 +- ...eric PLA.json => Generic PLA @SecKit.json} | 7 +- ...LA-CF.json => Generic PLA-CF @SecKit.json} | 7 +- ...eric PVA.json => Generic PVA @SecKit.json} | 7 +- ...eric TPU.json => Generic TPU @SecKit.json} | 7 +- .../SecKit/machine/SecKit SK-Tank.json | 2 +- .../profiles/SecKit/machine/Seckit Go3.json | 2 +- .../SecKit/machine/fdm_klipper_common.json | 2 +- resources/profiles/Tiertime.json | 226 +- ....json => Generic ABS @Tiertime 300HS.json} | 7 +- ...ic ABS.json => Generic ABS @Tiertime.json} | 7 +- ....json => Generic ASA @Tiertime 300HS.json} | 7 +- ...ic ASA.json => Generic ASA @Tiertime.json} | 7 +- ...json => Generic BVOH @Tiertime 300HS.json} | 7 +- ... BVOH.json => Generic BVOH @Tiertime.json} | 7 +- ....json => Generic EVA @Tiertime 300HS.json} | 7 +- ...ic EVA.json => Generic EVA @Tiertime.json} | 7 +- ...json => Generic HIPS @Tiertime 300HS.json} | 7 +- ... HIPS.json => Generic HIPS @Tiertime.json} | 7 +- ...S.json => Generic PA @Tiertime 300HS.json} | 7 +- ...eric PA.json => Generic PA @Tiertime.json} | 7 +- ...son => Generic PA-CF @Tiertime 300HS.json} | 7 +- ...A-CF.json => Generic PA-CF @Tiertime.json} | 7 +- ...S.json => Generic PC @Tiertime 300HS.json} | 7 +- ...eric PC.json => Generic PC @Tiertime.json} | 7 +- ...json => Generic PCTG @Tiertime 300HS.json} | 7 +- ... PCTG.json => Generic PCTG @Tiertime.json} | 7 +- ...S.json => Generic PE @Tiertime 300HS.json} | 7 +- ...eric PE.json => Generic PE @Tiertime.json} | 7 +- ...son => Generic PE-CF @Tiertime 300HS.json} | 7 +- ...E-CF.json => Generic PE-CF @Tiertime.json} | 7 +- ...json => Generic PETG @Tiertime 300HS.json} | 7 +- ... PETG.json => Generic PETG @Tiertime.json} | 7 +- ...n => Generic PETG-CF @Tiertime 300HS.json} | 7 +- ...CF.json => Generic PETG-CF @Tiertime.json} | 7 +- ....json => Generic PHA @Tiertime 300HS.json} | 7 +- ...ic PHA.json => Generic PHA @Tiertime.json} | 7 +- ....json => Generic PLA @Tiertime 300HS.json} | 7 +- ...ic PLA.json => Generic PLA @Tiertime.json} | 7 +- ...neric PLA High Speed @Tiertime 300HS.json} | 7 +- ... => Generic PLA High Speed @Tiertime.json} | 7 +- ... => Generic PLA Silk @Tiertime 300HS.json} | 7 +- ...k.json => Generic PLA Silk @Tiertime.json} | 7 +- ...on => Generic PLA-CF @Tiertime 300HS.json} | 7 +- ...-CF.json => Generic PLA-CF @Tiertime.json} | 7 +- ...S.json => Generic PP @Tiertime 300HS.json} | 7 +- ...eric PP.json => Generic PP @Tiertime.json} | 7 +- ...son => Generic PP-CF @Tiertime 300HS.json} | 7 +- ...P-CF.json => Generic PP-CF @Tiertime.json} | 7 +- ...son => Generic PP-GF @Tiertime 300HS.json} | 7 +- ...P-GF.json => Generic PP-GF @Tiertime.json} | 7 +- ...on => Generic PPA-CF @Tiertime 300HS.json} | 7 +- ...-CF.json => Generic PPA-CF @Tiertime.json} | 7 +- ...on => Generic PPA-GF @Tiertime 300HS.json} | 7 +- ...-GF.json => Generic PPA-GF @Tiertime.json} | 7 +- ....json => Generic PPS @Tiertime 300HS.json} | 7 +- ...ic PPS.json => Generic PPS @Tiertime.json} | 7 +- ...on => Generic PPS-CF @Tiertime 300HS.json} | 7 +- ...-CF.json => Generic PPS-CF @Tiertime.json} | 7 +- ....json => Generic PVA @Tiertime 300HS.json} | 7 +- ...ic PVA.json => Generic PVA @Tiertime.json} | 7 +- ....json => Generic SBS @Tiertime 300HS.json} | 7 +- ...ic SBS.json => Generic SBS @Tiertime.json} | 7 +- ....json => Generic TPU @Tiertime 300HS.json} | 7 +- ...ic TPU.json => Generic TPU @Tiertime.json} | 7 +- resources/profiles/TwoTrees.json | 10 +- ...son => Generic 95A TPU @TwoTrees SK1.json} | 7 +- ...json => Generic HS PLA @TwoTrees SK1.json} | 7 +- .../TwoTrees/machine/TwoTrees SK1.json | 2 +- resources/profiles/Vzbot.json | 42 +- ...neric ABS.json => Generic ABS @Vzbot.json} | 7 +- ...neric ASA.json => Generic ASA @Vzbot.json} | 7 +- ...Generic PA.json => Generic PA @Vzbot.json} | 7 +- ...c PA-CF.json => Generic PA-CF @Vzbot.json} | 7 +- ...Generic PC.json => Generic PC @Vzbot.json} | 7 +- ...ric PETG.json => Generic PETG @Vzbot.json} | 7 +- ...neric PLA.json => Generic PLA @Vzbot.json} | 7 +- ...PLA-CF.json => Generic PLA-CF @Vzbot.json} | 7 +- ...neric PVA.json => Generic PVA @Vzbot.json} | 7 +- ...neric TPU.json => Generic TPU @Vzbot.json} | 7 +- .../profiles/Vzbot/machine/Vzbot 235 AWD.json | 2 +- .../profiles/Vzbot/machine/Vzbot 330 AWD.json | 2 +- .../Vzbot/machine/fdm_klipper_common.json | 2 +- resources/profiles/Wanhao France.json | 10 +- ...eric PETG.json => Generic PETG @Yumi.json} | 4 +- ...eneric PLA.json => Generic PLA @Yumi.json} | 4 +- .../Wanhao France/filament/YUMI PETG.json | 2 +- .../filament/YUMI PLA Bowden.json | 2 +- .../filament/YUMI PLA Direct Drive.json | 2 +- .../filament/Generic ABS @Z-Bolt Base.json | 1 - .../filament/Generic ABS HT @Z-Bolt Base.json | 1 - .../filament/Generic PA @Z-Bolt Base.json | 1 - .../filament/Generic PETG @Z-Bolt Base.json | 1 - .../filament/Generic PLA @Z-Bolt Base.json | 1 - resources/profiles/retired_filament_ids.json | 1570 +++++++ scripts/filament_id_snapshot.json | 4128 ++++------------- 1585 files changed, 11776 insertions(+), 11606 deletions(-) delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA Silk 0.2 nozzle.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA Silk 0.25 nozzle.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA Silk.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA+ 0.2 nozzle.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA+ 0.25 nozzle.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA+.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA-CF.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PLA.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic PVA.json delete mode 100644 resources/profiles/Anker/filament/Anker Generic TPU.json rename resources/profiles/Anker/filament/{Anker Generic ABS 0.2 nozzle.json => Generic ABS @Anker 0.2 nozzle.json} (58%) rename resources/profiles/Anker/filament/{Anker Generic PETG 0.25 nozzle.json => Generic ABS @Anker 0.25 nozzle.json} (58%) rename resources/profiles/{Prusa/filament/Prusa Generic ABS @base.json => Anker/filament/Generic ABS @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic ASA.json => Generic ABS @Anker.json} (65%) rename resources/profiles/Anker/filament/{Anker Generic PETG 0.2 nozzle.json => Generic ASA @Anker 0.2 nozzle.json} (58%) rename resources/profiles/Anker/filament/{Anker Generic ABS 0.25 nozzle.json => Generic ASA @Anker 0.25 nozzle.json} (58%) rename resources/profiles/Anker/filament/{Anker Generic ASA @base.json => Generic ASA @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic PETG-CF.json => Generic ASA @Anker.json} (65%) rename resources/profiles/Anker/filament/{Anker Generic PA 0.2 nozzle.json => Generic PA @Anker 0.2 nozzle.json} (55%) rename resources/profiles/Anker/filament/{Anker Generic PA 0.25 nozzle.json => Generic PA @Anker 0.25 nozzle.json} (55%) rename resources/profiles/{Prusa/filament/Prusa Generic PA @base.json => Anker/filament/Generic PA @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic PC.json => Generic PA @Anker.json} (60%) rename resources/profiles/Anker/filament/{Anker Generic PA-CF @base.json => Generic PA-CF @Anker base.json} (79%) rename resources/profiles/Anker/filament/{Anker Generic PA.json => Generic PA-CF @Anker.json} (59%) rename resources/profiles/Anker/filament/{Anker Generic PC 0.2 nozzle.json => Generic PC @Anker 0.2 nozzle.json} (55%) rename resources/profiles/Anker/filament/{Anker Generic PC 0.25 nozzle.json => Generic PC @Anker 0.25 nozzle.json} (55%) rename resources/profiles/Anker/filament/{Anker Generic PC @base.json => Generic PC @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic PA-CF.json => Generic PC @Anker.json} (60%) rename resources/profiles/Anker/filament/{Anker Generic PLA 0.2 nozzle.json => Generic PETG @Anker 0.2 nozzle.json} (57%) rename resources/profiles/Anker/filament/{Anker Generic ASA 0.25 nozzle.json => Generic PETG @Anker 0.25 nozzle.json} (57%) rename resources/profiles/Anker/filament/{Anker Generic PETG @base.json => Generic PETG @Anker base.json} (83%) create mode 100644 resources/profiles/Anker/filament/Generic PETG @Anker.json rename resources/profiles/Anker/filament/{Anker Generic PETG-CF @base.json => Generic PETG-CF @Anker base.json} (86%) create mode 100644 resources/profiles/Anker/filament/Generic PETG-CF @Anker.json rename resources/profiles/Anker/filament/{Anker Generic ASA 0.2 nozzle.json => Generic PLA @Anker 0.2 nozzle.json} (58%) rename resources/profiles/Anker/filament/{Anker Generic PLA 0.25 nozzle.json => Generic PLA @Anker 0.25 nozzle.json} (58%) rename resources/profiles/Anker/filament/{Anker Generic PLA @base.json => Generic PLA @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic PETG.json => Generic PLA @Anker.json} (65%) create mode 100644 resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.2 nozzle.json create mode 100644 resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.25 nozzle.json rename resources/profiles/Anker/filament/{Anker Generic PLA Silk @base.json => Generic PLA Silk @Anker base.json} (87%) create mode 100644 resources/profiles/Anker/filament/Generic PLA Silk @Anker.json create mode 100644 resources/profiles/Anker/filament/Generic PLA+ @Anker 0.2 nozzle.json create mode 100644 resources/profiles/Anker/filament/Generic PLA+ @Anker 0.25 nozzle.json rename resources/profiles/Anker/filament/{Anker Generic PLA+ @base.json => Generic PLA+ @Anker base.json} (82%) create mode 100644 resources/profiles/Anker/filament/Generic PLA+ @Anker.json rename resources/profiles/Anker/filament/{Anker Generic PLA-CF @base.json => Generic PLA-CF @Anker base.json} (88%) create mode 100644 resources/profiles/Anker/filament/Generic PLA-CF @Anker.json rename resources/profiles/Anker/filament/{Anker Generic PVA @base.json => Generic PVA @Anker base.json} (61%) rename resources/profiles/Anker/filament/{Anker Generic ABS.json => Generic PVA @Anker.json} (65%) rename resources/profiles/Anker/filament/{Anker Generic TPU @base.json => Generic TPU @Anker base.json} (81%) create mode 100644 resources/profiles/Anker/filament/Generic TPU @Anker.json rename resources/profiles/Anycubic/filament/{Anycubic Generic ABS.json => Generic ABS @Anycubic.json} (80%) rename resources/profiles/Anycubic/filament/{Anycubic Generic ASA.json => Generic ASA @Anycubic.json} (81%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PA.json => Generic PA @Anycubic.json} (80%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PA-CF.json => Generic PA-CF @Anycubic.json} (80%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PC.json => Generic PC @Anycubic.json} (79%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PETG.json => Generic PETG @Anycubic.json} (87%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PLA.json => Generic PLA @Anycubic.json} (84%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PLA-CF.json => Generic PLA-CF @Anycubic.json} (80%) rename resources/profiles/Anycubic/filament/{Anycubic Generic PVA.json => Generic PVA @Anycubic.json} (81%) rename resources/profiles/Anycubic/filament/{Anycubic Generic TPU.json => Generic TPU @Anycubic.json} (78%) rename resources/profiles/Artillery/filament/{Artillery Generic ABS.json => Generic ABS @Artillery.json} (74%) rename resources/profiles/Artillery/filament/{Artillery Generic ASA.json => Generic ASA @Artillery.json} (74%) rename resources/profiles/Artillery/filament/{Artillery Generic PETG.json => Generic PETG @Artillery.json} (84%) rename resources/profiles/Artillery/filament/{Artillery Generic PLA.json => Generic PLA @Artillery.json} (81%) rename resources/profiles/Artillery/filament/{Artillery Generic PLA-CF.json => Generic PLA-CF @Artillery.json} (81%) rename resources/profiles/Artillery/filament/{Artillery Generic TPU.json => Generic TPU @Artillery.json} (72%) rename resources/profiles/Blocks/filament/{Blocks Generic ABS.json => Generic ABS @Blocks.json} (90%) rename resources/profiles/Blocks/filament/{Blocks Generic ASA.json => Generic ASA @Blocks.json} (90%) rename resources/profiles/Blocks/filament/{Blocks Generic ASA-CF.json => Generic ASA-CF @Blocks.json} (88%) rename resources/profiles/Blocks/filament/{Blocks Generic PA.json => Generic PA @Blocks.json} (74%) rename resources/profiles/Blocks/filament/{Blocks Generic PA-CF.json => Generic PA-CF @Blocks.json} (91%) rename resources/profiles/Blocks/filament/{Blocks Generic PC.json => Generic PC @Blocks.json} (74%) rename resources/profiles/Blocks/filament/{Blocks Generic PETG.json => Generic PETG @Blocks.json} (91%) rename resources/profiles/Blocks/filament/{Blocks Generic PLA.json => Generic PLA @Blocks.json} (87%) rename resources/profiles/Blocks/filament/{Blocks Generic PLA-CF.json => Generic PLA-CF @Blocks.json} (76%) rename resources/profiles/Blocks/filament/{Blocks Generic PVA.json => Generic PVA @Blocks.json} (74%) rename resources/profiles/Blocks/filament/{Blocks Generic TPU.json => Generic TPU @Blocks.json} (89%) rename resources/profiles/CONSTRUCT3D/filament/{C1 Generic High Flow PETG.json => Generic High Flow PETG @C1.json} (84%) rename resources/profiles/CONSTRUCT3D/filament/{C1 Generic PETG.json => Generic PETG @C1.json} (83%) rename resources/profiles/CONSTRUCT3D/filament/{C1 Generic PLA.json => Generic PLA @C1.json} (75%) rename resources/profiles/Chuanying/filament/{Chuanying Generic ABS.json => Generic ABS @Chuanying.json} (85%) rename resources/profiles/Chuanying/filament/{Chuanying Generic ASA.json => Generic ASA @Chuanying.json} (95%) rename resources/profiles/Chuanying/filament/{Chuanying Generic HIPS.json => Generic HIPS @Chuanying.json} (94%) rename resources/profiles/Chuanying/filament/{Chuanying Generic HS PLA.json => Generic HS PLA @Chuanying.json} (96%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PETG.json => Generic PETG @Chuanying.json} (90%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PETG-CF10.json => Generic PETG-CF10 @Chuanying.json} (94%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PLA.json => Generic PLA @Chuanying.json} (87%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PLA-CF10.json => Generic PLA-CF10 @Chuanying.json} (96%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PLA-Silk.json => Generic PLA-Silk @Chuanying.json} (87%) rename resources/profiles/Chuanying/filament/{Chuanying Generic PVA.json => Generic PVA @Chuanying.json} (94%) rename resources/profiles/Chuanying/filament/{Chuanying Generic TPU.json => Generic TPU @Chuanying.json} (95%) rename resources/profiles/Co Print/filament/{CoPrint Generic ABS.json => Generic ABS @CoPrint.json} (86%) rename resources/profiles/Co Print/filament/{CoPrint Generic PETG.json => Generic PETG @CoPrint.json} (79%) rename resources/profiles/Co Print/filament/{CoPrint Generic PLA.json => Generic PLA @CoPrint.json} (68%) rename resources/profiles/Co Print/filament/{CoPrint Generic TPU.json => Generic TPU @CoPrint.json} (81%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic ABS @CoLiDo DIY 4.0.json => Generic ABS @CoLiDo DIY 4.0.json} (73%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic ABS @CoLiDo X16.json => Generic ABS @CoLiDo X16.json} (75%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic PETG @CoLiDo DIY 4.0.json => Generic PETG @CoLiDo DIY 4.0.json} (84%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic PETG @CoLiDo X16.json => Generic PETG @CoLiDo X16.json} (85%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic PLA @CoLiDo DIY 4.0.json => Generic PLA @CoLiDo DIY 4.0.json} (77%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic PLA @CoLiDo X16.json => Generic PLA @CoLiDo X16.json} (78%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic TPU @CoLiDo DIY 4.0.json => Generic TPU @CoLiDo DIY 4.0.json} (74%) rename resources/profiles/CoLiDo/filament/{CoLiDo Generic TPU @CoLiDo X16.json => Generic TPU @CoLiDo X16.json} (76%) rename resources/profiles/Comgrow/filament/{Comgrow Generic ABS.json => Generic ABS @Comgrow.json} (72%) rename resources/profiles/Comgrow/filament/{Comgrow Generic PETG.json => Generic PETG @Comgrow.json} (85%) rename resources/profiles/Comgrow/filament/{Comgrow Generic PLA.json => Generic PLA @Comgrow.json} (73%) delete mode 100644 resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json delete mode 100644 resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json delete mode 100644 resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json rename resources/profiles/Creality/filament/{Creality Generic ABS @Ender-3V3-all.json => Generic ABS @Creality Ender-3V3-all.json} (71%) rename resources/profiles/Creality/filament/{Creality Generic ABS @Ender-5Max-all.json => Generic ABS @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic ABS @Hi-all.json => Generic ABS @Creality Hi-all.json} (67%) rename resources/profiles/Creality/filament/{Creality Generic ABS @K1-all.json => Generic ABS @Creality K1-all.json} (53%) rename resources/profiles/Creality/filament/{Creality Generic ABS @K2-all.json => Generic ABS @Creality K2-all.json} (70%) rename resources/profiles/Creality/filament/{Creality Generic ABS.json => Generic ABS @Creality.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic ASA @Ender-3V3-all.json => Generic ASA @Creality Ender-3V3-all.json} (71%) rename resources/profiles/Creality/filament/{Creality Generic ASA @Ender-5Max-all.json => Generic ASA @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic ASA @Hi-all.json => Generic ASA @Creality Hi-all.json} (68%) rename resources/profiles/Creality/filament/{Creality Generic ASA @K1-all.json => Generic ASA @Creality K1-all.json} (53%) rename resources/profiles/Creality/filament/{Creality Generic ASA @K2-all.json => Generic ASA @Creality K2-all.json} (77%) rename resources/profiles/Creality/filament/{Creality Generic ASA.json => Generic ASA @Creality.json} (92%) create mode 100644 resources/profiles/Creality/filament/Generic ASA-CF @Creality Hi-all.json rename resources/profiles/Creality/filament/{Creality Generic PA @Ender-5Max-all.json => Generic PA @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic PA-CF @Ender-3V3-all.json => Generic PA-CF @Creality Ender-3V3-all.json} (53%) rename resources/profiles/Creality/filament/{Creality Generic PA-CF @K1-all.json => Generic PA-CF @Creality K1-all.json} (65%) rename resources/profiles/Creality/filament/{Creality Generic PA-CF @K2-all.json => Generic PA-CF @Creality K2-all.json} (75%) rename resources/profiles/Creality/filament/{Creality Generic PA-CF.json => Generic PA-CF @Creality.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic PC @K1-all.json => Generic PC @Creality K1-all.json} (69%) rename resources/profiles/Creality/filament/{Creality Generic PC.json => Generic PC @Creality.json} (75%) rename resources/profiles/Creality/filament/{Creality Generic PETG @Ender-3V3-all.json => Generic PETG @Creality Ender-3V3-all.json} (81%) rename resources/profiles/Creality/filament/{Creality Generic PETG @Ender-5Max-all.json => Generic PETG @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic PETG @Hi-all.json => Generic PETG @Creality Hi-all.json} (80%) rename resources/profiles/Creality/filament/{Creality Generic PETG @K1-all.json => Generic PETG @Creality K1-all.json} (75%) rename resources/profiles/Creality/filament/{Creality Generic PETG @K2-all.json => Generic PETG @Creality K2-all.json} (79%) rename resources/profiles/Creality/filament/{Creality Generic PETG.json => Generic PETG @Creality.json} (94%) create mode 100644 resources/profiles/Creality/filament/Generic PETG-CF @Creality Hi-all.json rename resources/profiles/Creality/filament/{Creality Generic PLA @Ender-3V3-all.json => Generic PLA @Creality Ender-3V3-all.json} (80%) rename resources/profiles/Creality/filament/{Creality Generic PLA @Ender-5Max-all.json => Generic PLA @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic PLA @K1-all.json => Generic PLA @Creality K1-all.json} (72%) rename resources/profiles/Creality/filament/{Creality Generic PLA @K2-all.json => Generic PLA @Creality K2-all.json} (78%) rename resources/profiles/Creality/filament/{Creality Generic PLA.json => Generic PLA @Creality.json} (94%) rename resources/profiles/Creality/filament/{Creality HF Generic PLA.json => Generic PLA HF @Creality.json} (81%) rename resources/profiles/Creality/filament/{Creality Generic PLA High Speed @Ender-3V3-all.json => Generic PLA High Speed @Creality Ender-3V3-all.json} (63%) rename resources/profiles/Creality/filament/{Creality Generic PLA High Speed @Hi-all.json => Generic PLA High Speed @Creality Hi-all.json} (57%) rename resources/profiles/Creality/filament/{Creality Generic PLA High Speed @K1-all.json => Generic PLA High Speed @Creality K1-all.json} (63%) rename resources/profiles/Creality/filament/{Creality Generic PLA High Speed @K2-all.json => Generic PLA High Speed @Creality K2-all.json} (66%) rename resources/profiles/Creality/filament/{Creality Generic PLA Matte @Ender-3V3-all.json => Generic PLA Matte @Creality Ender-3V3-all.json} (64%) rename resources/profiles/Creality/filament/{Creality Generic PLA Matte @Hi-all.json => Generic PLA Matte @Creality Hi-all.json} (55%) rename resources/profiles/Creality/filament/{Creality Generic PLA Matte @K1-all.json => Generic PLA Matte @Creality K1-all.json} (65%) rename resources/profiles/Creality/filament/{Creality Generic PLA Matte @K2-all.json => Generic PLA Matte @Creality K2-all.json} (67%) rename resources/profiles/Creality/filament/{Creality Generic PLA Silk @Ender-3V3-all.json => Generic PLA Silk @Creality Ender-3V3-all.json} (64%) rename resources/profiles/Creality/filament/{Creality Generic PLA Silk @Hi-all.json => Generic PLA Silk @Creality Hi-all.json} (59%) rename resources/profiles/Creality/filament/{Creality Generic PLA Silk @K1-all.json => Generic PLA Silk @Creality K1-all.json} (65%) rename resources/profiles/Creality/filament/{Creality Generic PLA Silk @K2-all.json => Generic PLA Silk @Creality K2-all.json} (68%) rename resources/profiles/Creality/filament/{Creality Generic PLA Wood @Hi-all.json => Generic PLA Wood @Creality Hi-all.json} (59%) create mode 100644 resources/profiles/Creality/filament/Generic PLA-CF @Creality Hi-all.json rename resources/profiles/Creality/filament/{Creality Generic PLA-CF @K1-all.json => Generic PLA-CF @Creality K1-all.json} (65%) rename resources/profiles/Creality/filament/{Creality Generic PLA-CF @K2-all.json => Generic PLA-CF @Creality K2-all.json} (70%) rename resources/profiles/Creality/filament/{Creality Generic PLA-CF.json => Generic PLA-CF @Creality.json} (92%) rename resources/profiles/Creality/filament/{Creality HF Generic Speed PLA.json => Generic Speed PLA @Creality HF.json} (79%) rename resources/profiles/Creality/filament/{Creality Generic TPU @Ender-3V3-all.json => Generic TPU @Creality Ender-3V3-all.json} (78%) rename resources/profiles/Creality/filament/{Creality Generic TPU @Ender-5Max-all.json => Generic TPU @Creality Ender-5Max-all.json} (93%) rename resources/profiles/Creality/filament/{Creality Generic TPU @Hi-all.json => Generic TPU @Creality Hi-all.json} (77%) rename resources/profiles/Creality/filament/{Creality Generic TPU @K1-all.json => Generic TPU @Creality K1-all.json} (69%) rename resources/profiles/Creality/filament/{Creality Generic TPU @K2-all.json => Generic TPU @Creality K2-all.json} (81%) rename resources/profiles/Creality/filament/{Creality Generic TPU.json => Generic TPU @Creality.json} (83%) rename resources/profiles/DeltaMaker/filament/{DeltaMaker Generic PETG.json => Generic PETG @DeltaMaker.json} (82%) rename resources/profiles/DeltaMaker/filament/{DeltaMaker Generic PLA.json => Generic PLA @DeltaMaker.json} (70%) rename resources/profiles/DeltaMaker/filament/{DeltaMaker Generic TPU.json => Generic TPU @DeltaMaker.json} (68%) rename resources/profiles/Dremel/filament/{Dremel Generic PLA @3D20 all.json => Generic PLA @Dremel 3D20 all.json} (66%) rename resources/profiles/Dremel/filament/{Dremel Generic PLA @3D40 all.json => Generic PLA @Dremel 3D40 all.json} (70%) rename resources/profiles/Dremel/filament/{Dremel Generic PLA @3D45 all.json => Generic PLA @Dremel 3D45 all.json} (74%) rename resources/profiles/Dremel/filament/{Dremel Generic PLA.json => Generic PLA @Dremel.json} (71%) rename resources/profiles/FLSun/filament/{FLSun Generic ABS.json => Generic ABS @FLSun.json} (71%) rename resources/profiles/FLSun/filament/{FLSun Generic ASA.json => Generic ASA @FLSun.json} (71%) rename resources/profiles/FLSun/filament/{FLSun Generic PA.json => Generic PA @FLSun.json} (74%) rename resources/profiles/FLSun/filament/{FLSun Generic PA-CF.json => Generic PA-CF @FLSun.json} (75%) rename resources/profiles/FLSun/filament/{FLSun Generic PC.json => Generic PC @FLSun.json} (71%) rename resources/profiles/FLSun/filament/{FLSun Generic PETG.json => Generic PETG @FLSun.json} (84%) rename resources/profiles/FLSun/filament/{FLSun S1 PLA Generic.json => Generic PLA @FLSun S1.json} (83%) rename resources/profiles/FLSun/filament/{FLSun T1 PLA Generic.json => Generic PLA @FLSun T1.json} (83%) rename resources/profiles/FLSun/filament/{FLSun Generic PLA.json => Generic PLA @FLSun.json} (73%) rename resources/profiles/FLSun/filament/{FLSun Generic PLA-CF.json => Generic PLA-CF @FLSun.json} (74%) rename resources/profiles/FLSun/filament/{FLSun Generic PVA.json => Generic PVA @FLSun.json} (75%) rename resources/profiles/FLSun/filament/{FLSun Generic TPU.json => Generic TPU @FLSun.json} (69%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic NexPA-CF25.json => FusRock NexPA-CF25.json} (94%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json => FusRock PAHT-CF @G3U 0.6 Nozzle.json} (78%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PAHT-CF.json => FusRock PAHT-CF.json} (94%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PAHT-GF.json => FusRock PAHT-GF.json} (72%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PET-CF @G3U 0.6 Nozzle.json => FusRock PET-CF @G3U 0.6 Nozzle.json} (78%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PET-CF.json => FusRock PET-CF.json} (94%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic PET-GF.json => FusRock PET-GF.json} (69%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic S-Multi @G3U 0.6 Nozzle.json => FusRock S-Multi @G3U 0.6 Nozzle.json} (77%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic S-Multi.json => FusRock S-Multi.json} (94%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic S-PAHT @G3U 0.6 Nozzle.json => FusRock S-PAHT @G3U 0.6 Nozzle.json} (77%) rename resources/profiles/Flashforge/filament/FusRock/{FusRock Generic S-PAHT.json => FusRock S-PAHT.json} (94%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json => Generic ABS @FF AD5M 0.25 Nozzle.json} (60%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ABS @G3U 0.6 Nozzle.json => Generic ABS @Flashforge G3U 0.6 Nozzle.json} (73%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ABS @G3U.json => Generic ABS @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ABS.json => Generic ABS @Flashforge.json} (88%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json => Generic ASA @FF AD5M 0.25 Nozzle.json} (64%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ASA @G3U 0.6 Nozzle.json => Generic ASA @Flashforge G3U 0.6 Nozzle.json} (76%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ASA @G3U.json => Generic ASA @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic ASA.json => Generic ASA @Flashforge.json} (95%) rename resources/profiles/Flashforge/filament/{Flashforge Generic HIPS @G3U 0.6 Nozzle.json => Generic HIPS @Flashforge G3U 0.6 Nozzle.json} (75%) rename resources/profiles/Flashforge/filament/{Flashforge Generic HIPS.json => Generic HIPS @Flashforge.json} (94%) rename resources/profiles/Flashforge/filament/{Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json => Generic HS PLA @FF AD5M 0.25 Nozzle.json} (71%) rename resources/profiles/Flashforge/filament/{Flashforge Generic HS PLA.json => Generic HS PLA @Flashforge.json} (96%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json => Generic PETG @FF AD5M 0.25 Nozzle.json} (58%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG @G3U 0.6 Nozzle.json => Generic PETG @Flashforge G3U 0.6 Nozzle.json} (72%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG @G3U 0.8 Nozzle.json => Generic PETG @Flashforge G3U 0.8 Nozzle.json} (73%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG @G3U.json => Generic PETG @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG.json => Generic PETG @Flashforge.json} (91%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json => Generic PETG-CF @Flashforge G3U 0.6 Nozzle.json} (74%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json => Generic PETG-CF @Flashforge G3U 0.8 Nozzle.json} (74%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG-CF @G3U.json => Generic PETG-CF @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PETG-CF10.json => Generic PETG-CF10 @Flashforge.json} (95%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA @FF AD5M 0.25 Nozzle.json => Generic PLA @FF AD5M 0.25 Nozzle.json} (73%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA @G3U 0.6 Nozzle.json => Generic PLA @Flashforge G3U 0.6 Nozzle.json} (84%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA @G3U 0.8 Nozzle.json => Generic PLA @Flashforge G3U 0.8 Nozzle.json} (86%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA @G3U.json => Generic PLA @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA.json => Generic PLA @Flashforge.json} (89%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json => Generic PLA-CF @Flashforge G3U 0.6 Nozzle.json} (73%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json => Generic PLA-CF @Flashforge G3U 0.8 Nozzle.json} (73%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-CF @G3U.json => Generic PLA-CF @Flashforge G3U.json} (93%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-CF10.json => Generic PLA-CF10 @Flashforge.json} (96%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json => Generic PLA-SILK @FF AD5M 0.25 Nozzle.json} (71%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PLA-Silk.json => Generic PLA-Silk @Flashforge.json} (89%) rename resources/profiles/Flashforge/filament/{Flashforge Generic PVA.json => Generic PVA @Flashforge.json} (94%) rename resources/profiles/Flashforge/filament/{Flashforge Generic TPU.json => Generic TPU @Flashforge.json} (95%) rename resources/profiles/Flashforge/filament/Polymaker/{Polymaker Generic CoPA.json => Polymaker CoPA.json} (95%) rename resources/profiles/Flashforge/filament/Polymaker/{Polymaker Generic S1.json => Polymaker S1.json} (95%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic ABS.json => Generic ABS @FlyingBear.json} (69%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic PA-CF.json => Generic PA-CF @FlyingBear.json} (72%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic PC.json => Generic PC @FlyingBear.json} (67%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic PETG.json => Generic PETG @FlyingBear.json} (80%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic PLA.json => Generic PLA @FlyingBear.json} (69%) rename resources/profiles/FlyingBear/filament/{FlyingBear Generic TPU.json => Generic TPU @FlyingBear.json} (66%) rename resources/profiles/Ginger Additive/filament/{Ginger Generic PETG.json => Generic PETG @Ginger.json} (92%) rename resources/profiles/Ginger Additive/filament/{Ginger Generic PLA.json => Generic PLA @Ginger.json} (92%) rename resources/profiles/InfiMech/filament/{InfiMech Generic ABS.json => Generic ABS @InfiMech.json} (67%) rename resources/profiles/InfiMech/filament/{InfiMech Generic PA-CF.json => Generic PA-CF @InfiMech.json} (70%) rename resources/profiles/InfiMech/filament/{InfiMech Generic PC.json => Generic PC @InfiMech.json} (64%) rename resources/profiles/InfiMech/filament/{InfiMech Generic PETG.json => Generic PETG @InfiMech.json} (80%) rename resources/profiles/InfiMech/filament/{InfiMech Generic PLA.json => Generic PLA @InfiMech.json} (67%) rename resources/profiles/InfiMech/filament/{InfiMech Generic TPU.json => Generic TPU @InfiMech.json} (64%) rename resources/profiles/MagicMaker/filament/{MM Generic PEEK.json => Generic PEEK @MM.json} (84%) create mode 100644 resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena 0.2 nozzle.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic ABS @base.json => Generic ABS @OrcaArena base.json} (73%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic ASA.json => Generic ABS @OrcaArena.json} (57%) create mode 100644 resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena 0.2 nozzle.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic ASA @base.json => Generic ASA @OrcaArena base.json} (73%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PC.json => Generic ASA @OrcaArena.json} (57%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PA.json => Generic PA @OrcaArena.json} (74%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PA-CF.json => Generic PA-CF @OrcaArena.json} (81%) create mode 100644 resources/profiles/OrcaArena/filament/Generic PC @OrcaArena 0.2 nozzle.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PC @base.json => Generic PC @OrcaArena base.json} (73%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic ABS.json => Generic PC @OrcaArena.json} (57%) create mode 100644 resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena 0.2 nozzle.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PETG @base.json => Generic PETG @OrcaArena base.json} (94%) create mode 100644 resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena.json create mode 100644 resources/profiles/OrcaArena/filament/Generic PETG-CF @Arena X1C.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PETG-CF @base.json => Generic PETG-CF @OrcaArena base.json} (92%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PLA @0.2 nozzle.json => Generic PLA @OrcaArena 0.2 nozzle.json} (69%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PLA @base.json => Generic PLA @OrcaArena base.json} (88%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PETG-CF @Arena X1C.json => Generic PLA @OrcaArena.json} (57%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PLA Silk @base.json => Generic PLA Silk @OrcaArena base.json} (88%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PLA Silk.json => Generic PLA Silk @OrcaArena.json} (63%) rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PLA-CF @base.json => Generic PLA-CF @OrcaArena base.json} (92%) create mode 100644 resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena.json create mode 100644 resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena 0.2 nozzle.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic PVA @base.json => Generic PVA @OrcaArena base.json} (79%) create mode 100644 resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena.json rename resources/profiles/OrcaArena/filament/{OrcaArena Generic TPU.json => Generic TPU @OrcaArena.json} (80%) delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @0.2 nozzle.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @0.2 nozzle.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PC @0.2 nozzle.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @0.2 nozzle.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PETG.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PLA.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @0.2 nozzle.json delete mode 100644 resources/profiles/OrcaArena/filament/OrcaArena Generic PVA.json rename resources/profiles/Peopoly/filament/{Peopoly Generic ABS.json => Generic ABS @Peopoly.json} (73%) rename resources/profiles/Peopoly/filament/{Peopoly Generic PETG.json => Generic PETG @Peopoly.json} (80%) rename resources/profiles/Peopoly/filament/{Peopoly Generic PLA.json => Generic PLA @Peopoly.json} (79%) create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic ABS @CORE One HF 0.4.json => Generic ABS @Prusa CORE One HF 0.4.json} (71%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @CORE One HF 0.5.json => Generic ABS @Prusa CORE One HF 0.5.json} (71%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @CORE One HF 0.6.json => Generic ABS @Prusa CORE One HF 0.6.json} (71%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @CORE One HF 0.8.json => Generic ABS @Prusa CORE One HF 0.8.json} (74%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @CORE One.json => Generic ABS @Prusa CORE One.json} (92%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MINIIS 0.25.json => Generic ABS @Prusa MINIIS 0.25.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MINIIS 0.6.json => Generic ABS @Prusa MINIIS 0.6.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MINIIS 0.8.json => Generic ABS @Prusa MINIIS 0.8.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MINIIS.json => Generic ABS @Prusa MINIIS.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK3.5 0.25.json => Generic ABS @Prusa MK3.5 0.25.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK3.5 0.6.json => Generic ABS @Prusa MK3.5 0.6.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK3.5 0.8.json => Generic ABS @Prusa MK3.5 0.8.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK3.5.json => Generic ABS @Prusa MK3.5.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK4.json => Generic ABS @Prusa MK4.json} (86%) create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK4S HF0.4.json => Generic ABS @Prusa MK4S HF0.4.json} (75%) create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.5.json create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic ABS @MK4S.json => Generic ABS @Prusa MK4S.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @XL 5T.json => Generic ABS @Prusa XL 5T.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS @XL.json => Generic ABS @Prusa XL.json} (90%) rename resources/profiles/{Anker/filament/Anker Generic ABS @base.json => Prusa/filament/Generic ABS @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS.json => Generic ABS @Prusa.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MINIIS 0.6.json => Generic ABS HF @Prusa MINIIS 0.6.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MINIIS 0.8.json => Generic ABS HF @Prusa MINIIS 0.8.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MINIIS.json => Generic ABS HF @Prusa MINIIS.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MK3.5 0.6.json => Generic ABS HF @Prusa MK3.5 0.6.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MK3.5 0.8.json => Generic ABS HF @Prusa MK3.5 0.8.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @MK3.5.json => Generic ABS HF @Prusa MK3.5.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ABS HF @base.json => Generic ABS HF @Prusa base.json} (60%) create mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One 0.8.json => Generic ASA @Prusa CORE One 0.8.json} (50%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One HF 0.4.json => Generic ASA @Prusa CORE One HF 0.4.json} (74%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One HF 0.5.json => Generic ASA @Prusa CORE One HF 0.5.json} (74%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One HF 0.6.json => Generic ASA @Prusa CORE One HF 0.6.json} (75%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One HF 0.8.json => Generic ASA @Prusa CORE One HF 0.8.json} (76%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @CORE One.json => Generic ASA @Prusa CORE One.json} (92%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MINIIS 0.25.json => Generic ASA @Prusa MINIIS 0.25.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MINIIS 0.6.json => Generic ASA @Prusa MINIIS 0.6.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MINIIS 0.8.json => Generic ASA @Prusa MINIIS 0.8.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MINIIS.json => Generic ASA @Prusa MINIIS.json} (80%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK3.5 0.25.json => Generic ASA @Prusa MK3.5 0.25.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK3.5 0.6.json => Generic ASA @Prusa MK3.5 0.6.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK3.5 0.8.json => Generic ASA @Prusa MK3.5 0.8.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK3.5.json => Generic ASA @Prusa MK3.5.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK4.json => Generic ASA @Prusa MK4.json} (86%) create mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK4S HF0.4.json => Generic ASA @Prusa MK4S HF0.4.json} (72%) create mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.5.json create mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.6.json rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK4S HF0.8.json => Generic ASA @Prusa MK4S HF0.8.json} (58%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA @MK4S.json => Generic ASA @Prusa MK4S.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA.json => Generic ASA @Prusa.json} (88%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MINIIS 0.6.json => Generic ASA HF @Prusa MINIIS 0.6.json} (76%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MINIIS 0.8.json => Generic ASA HF @Prusa MINIIS 0.8.json} (76%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MINIIS.json => Generic ASA HF @Prusa MINIIS.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MK3.5 0.6.json => Generic ASA HF @Prusa MK3.5 0.6.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MK3.5 0.8.json => Generic ASA HF @Prusa MK3.5 0.8.json} (77%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @MK3.5.json => Generic ASA HF @Prusa MK3.5.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic ASA HF @base.json => Generic ASA HF @Prusa base.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic FLEX @XL 5T.json => Generic FLEX @Prusa XL 5T.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic FLEX @XL.json => Generic FLEX @Prusa XL.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MINIIS 0.25.json => Generic PA @Prusa MINIIS 0.25.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MINIIS 0.6.json => Generic PA @Prusa MINIIS 0.6.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MINIIS 0.8.json => Generic PA @Prusa MINIIS 0.8.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MINIIS.json => Generic PA @Prusa MINIIS.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MK3.5 0.25.json => Generic PA @Prusa MK3.5 0.25.json} (69%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MK3.5 0.6.json => Generic PA @Prusa MK3.5 0.6.json} (69%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MK3.5 0.8.json => Generic PA @Prusa MK3.5 0.8.json} (69%) rename resources/profiles/Prusa/filament/{Prusa Generic PA @MK3.5.json => Generic PA @Prusa MK3.5.json} (70%) rename resources/profiles/{Anker/filament/Anker Generic PA @base.json => Prusa/filament/Generic PA @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic PA.json => Generic PA @Prusa.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MINIIS 0.25.json => Generic PA-CF @Prusa MINIIS 0.25.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MINIIS 0.6.json => Generic PA-CF @Prusa MINIIS 0.6.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MINIIS 0.8.json => Generic PA-CF @Prusa MINIIS 0.8.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MINIIS.json => Generic PA-CF @Prusa MINIIS.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MK3.5 0.25.json => Generic PA-CF @Prusa MK3.5 0.25.json} (69%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MK3.5 0.6.json => Generic PA-CF @Prusa MK3.5 0.6.json} (70%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MK3.5 0.8.json => Generic PA-CF @Prusa MK3.5 0.8.json} (70%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @MK3.5.json => Generic PA-CF @Prusa MK3.5.json} (71%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF @base.json => Generic PA-CF @Prusa base.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PA-CF.json => Generic PA-CF @Prusa.json} (79%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MINIIS 0.25.json => Generic PC @Prusa MINIIS 0.25.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MINIIS 0.6.json => Generic PC @Prusa MINIIS 0.6.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MINIIS 0.8.json => Generic PC @Prusa MINIIS 0.8.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MINIIS.json => Generic PC @Prusa MINIIS.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MK3.5 0.25.json => Generic PC @Prusa MK3.5 0.25.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MK3.5 0.6.json => Generic PC @Prusa MK3.5 0.6.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MK3.5 0.8.json => Generic PC @Prusa MK3.5 0.8.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PC @MK3.5.json => Generic PC @Prusa MK3.5.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PC.json => Generic PC @Prusa.json} (85%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MINIIS 0.6.json => Generic PC HF @Prusa MINIIS 0.6.json} (58%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MINIIS 0.8.json => Generic PC HF @Prusa MINIIS 0.8.json} (58%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MINIIS.json => Generic PC HF @Prusa MINIIS.json} (59%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MK3.5 0.6.json => Generic PC HF @Prusa MK3.5 0.6.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MK3.5 0.8.json => Generic PC HF @Prusa MK3.5 0.8.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @MK3.5.json => Generic PC HF @Prusa MK3.5.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PC HF @base.json => Generic PC HF @Prusa base.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One 0.6.json => Generic PETG @Prusa CORE One 0.6.json} (51%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One 0.8.json => Generic PETG @Prusa CORE One 0.8.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One HF 0.4.json => Generic PETG @Prusa CORE One HF 0.4.json} (74%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One HF 0.5.json => Generic PETG @Prusa CORE One HF 0.5.json} (75%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One HF 0.6.json => Generic PETG @Prusa CORE One HF 0.6.json} (73%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One HF 0.8.json => Generic PETG @Prusa CORE One HF 0.8.json} (78%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @CORE One.json => Generic PETG @Prusa CORE One.json} (92%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MINIIS 0.25.json => Generic PETG @Prusa MINIIS 0.25.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MINIIS 0.6.json => Generic PETG @Prusa MINIIS 0.6.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MINIIS 0.8.json => Generic PETG @Prusa MINIIS 0.8.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MINIIS.json => Generic PETG @Prusa MINIIS.json} (85%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK3.5 0.25.json => Generic PETG @Prusa MK3.5 0.25.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK3.5 0.6.json => Generic PETG @Prusa MK3.5 0.6.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK3.5 0.8.json => Generic PETG @Prusa MK3.5 0.8.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK3.5.json => Generic PETG @Prusa MK3.5.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4.json => Generic PETG @Prusa MK4.json} (89%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S 0.6.json => Generic PETG @Prusa MK4S 0.6.json} (54%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S 0.8.json => Generic PETG @Prusa MK4S 0.8.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S HF0.4.json => Generic PETG @Prusa MK4S HF0.4.json} (76%) create mode 100644 resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.5.json rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S HF0.6.json => Generic PETG @Prusa MK4S HF0.6.json} (59%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S HF0.8.json => Generic PETG @Prusa MK4S HF0.8.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MK4S.json => Generic PETG @Prusa MK4S.json} (92%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @XL 5T.json => Generic PETG @Prusa XL 5T.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @XL.json => Generic PETG @Prusa XL.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @base.json => Generic PETG @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG.json => Generic PETG @Prusa.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MINIIS 0.6.json => Generic PETG HF @Prusa MINIIS 0.6.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MINIIS 0.8.json => Generic PETG HF @Prusa MINIIS 0.8.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG @MINIIS.json => Generic PETG HF @Prusa MINIIS.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MK3.5 0.6.json => Generic PETG HF @Prusa MK3.5 0.6.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MK3.5 0.8.json => Generic PETG HF @Prusa MK3.5 0.8.json} (81%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @MK3.5.json => Generic PETG HF @Prusa MK3.5.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PETG HF @base.json => Generic PETG HF @Prusa base.json} (60%) create mode 100644 resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.6.json rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One 0.8.json => Generic PLA @Prusa CORE One 0.8.json} (51%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One HF 0.4.json => Generic PLA @Prusa CORE One HF 0.4.json} (73%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One HF 0.5.json => Generic PLA @Prusa CORE One HF 0.5.json} (74%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One HF 0.6.json => Generic PLA @Prusa CORE One HF 0.6.json} (75%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One HF 0.8.json => Generic PLA @Prusa CORE One HF 0.8.json} (75%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @CORE One.json => Generic PLA @Prusa CORE One.json} (92%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MINIIS 0.25.json => Generic PLA @Prusa MINIIS 0.25.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MINIIS 0.6.json => Generic PLA @Prusa MINIIS 0.6.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MINIIS 0.8.json => Generic PLA @Prusa MINIIS 0.8.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MINIIS.json => Generic PLA @Prusa MINIIS.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK3.5 0.25.json => Generic PLA @Prusa MK3.5 0.25.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK3.5 0.6.json => Generic PLA @Prusa MK3.5 0.6.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK3.5 0.8.json => Generic PLA @Prusa MK3.5 0.8.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK3.5.json => Generic PLA @Prusa MK3.5.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4.json => Generic PLA @Prusa MK4.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S 0.6.json => Generic PLA @Prusa MK4S 0.6.json} (50%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S 0.8.json => Generic PLA @Prusa MK4S 0.8.json} (57%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S HF0.4.json => Generic PLA @Prusa MK4S HF0.4.json} (75%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S HF0.5.json => Generic PLA @Prusa MK4S HF0.5.json} (50%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S HF0.6.json => Generic PLA @Prusa MK4S HF0.6.json} (53%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S HF0.8.json => Generic PLA @Prusa MK4S HF0.8.json} (55%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @MK4S.json => Generic PLA @Prusa MK4S.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @XL 5T.json => Generic PLA @Prusa XL 5T.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @XL.json => Generic PLA @Prusa XL.json} (90%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA @base.json => Generic PLA @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA.json => Generic PLA @Prusa.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MINIIS 0.6.json => Generic PLA HF @Prusa MINIIS 0.6.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MINIIS 0.8.json => Generic PLA HF @Prusa MINIIS 0.8.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MINIIS.json => Generic PLA HF @Prusa MINIIS.json} (62%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MK3.5 0.6.json => Generic PLA HF @Prusa MK3.5 0.6.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MK3.5 0.8.json => Generic PLA HF @Prusa MK3.5 0.8.json} (65%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @MK3.5.json => Generic PLA HF @Prusa MK3.5.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA HF @base.json => Generic PLA HF @Prusa base.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA Silk @CORE One 0.6.json => Generic PLA Silk @Prusa CORE One 0.6.json} (52%) create mode 100644 resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic PLA Silk @CORE One.json => Generic PLA Silk @Prusa CORE One.json} (91%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA Silk @MK4S 0.6.json => Generic PLA Silk @Prusa MK4S 0.6.json} (55%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA Silk @MK4S 0.8.json => Generic PLA Silk @Prusa MK4S 0.8.json} (54%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA Silk @MK4S.json => Generic PLA Silk @Prusa MK4S.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MINIIS 0.25.json => Generic PLA-CF @Prusa MINIIS 0.25.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MINIIS 0.6.json => Generic PLA-CF @Prusa MINIIS 0.6.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MINIIS 0.8.json => Generic PLA-CF @Prusa MINIIS 0.8.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MINIIS.json => Generic PLA-CF @Prusa MINIIS.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MK3.5 0.25.json => Generic PLA-CF @Prusa MK3.5 0.25.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MK3.5 0.6.json => Generic PLA-CF @Prusa MK3.5 0.6.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MK3.5 0.8.json => Generic PLA-CF @Prusa MK3.5 0.8.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @MK3.5.json => Generic PLA-CF @Prusa MK3.5.json} (68%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF @base.json => Generic PLA-CF @Prusa base.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PLA-CF.json => Generic PLA-CF @Prusa.json} (82%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MINIIS 0.25.json => Generic PVA @Prusa MINIIS 0.25.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MINIIS 0.6.json => Generic PVA @Prusa MINIIS 0.6.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MINIIS 0.8.json => Generic PVA @Prusa MINIIS 0.8.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MINIIS.json => Generic PVA @Prusa MINIIS.json} (66%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MK3.5 0.25.json => Generic PVA @Prusa MK3.5 0.25.json} (68%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MK3.5 0.6.json => Generic PVA @Prusa MK3.5 0.6.json} (68%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MK3.5 0.8.json => Generic PVA @Prusa MK3.5 0.8.json} (68%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MK3.5.json => Generic PVA @Prusa MK3.5.json} (69%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @base.json => Generic PVA @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA.json => Generic PVA @Prusa.json} (80%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MINIIS 0.6.json => Generic PVA HF @Prusa MINIIS 0.6.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MINIIS 0.8.json => Generic PVA HF @Prusa MINIIS 0.8.json} (63%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MINIIS.json => Generic PVA HF @Prusa MINIIS.json} (64%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MK3.5 0.6.json => Generic PVA HF @Prusa MK3.5 0.6.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @MK3.5 0.8.json => Generic PVA HF @Prusa MK3.5 0.8.json} (67%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA @MK3.5.json => Generic PVA HF @Prusa MK3.5.json} (68%) rename resources/profiles/Prusa/filament/{Prusa Generic PVA HF @base.json => Generic PVA HF @Prusa base.json} (60%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @CORE One 0.6.json => Generic TPU @Prusa CORE One 0.6.json} (51%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @CORE One 0.8.json => Generic TPU @Prusa CORE One 0.8.json} (51%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @CORE One.json => Generic TPU @Prusa CORE One.json} (90%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @MINIIS.json => Generic TPU @Prusa MINIIS.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @MK3.5.json => Generic TPU @Prusa MK3.5.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @MK4.json => Generic TPU @Prusa MK4.json} (62%) create mode 100644 resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.8.json rename resources/profiles/Prusa/filament/{Prusa Generic TPU @MK4S.json => Generic TPU @Prusa MK4S.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU @base.json => Generic TPU @Prusa base.json} (61%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU.json => Generic TPU @Prusa.json} (71%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU HF @MINIIS.json => Generic TPU HF @Prusa MINIIS.json} (86%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU HF @MK3.5.json => Generic TPU HF @Prusa MK3.5.json} (87%) rename resources/profiles/Prusa/filament/{Prusa Generic TPU HF @base.json => Generic TPU HF @Prusa base.json} (60%) delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json => Generic ABS @Qidi Q1 Pro 0.2 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json => Generic ABS @Qidi Q1 Pro 0.4 nozzle.json} (63%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json => Generic ABS @Qidi Q1 Pro 0.6 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json => Generic ABS @Qidi Q1 Pro 0.8 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json => Generic ABS @Qidi X-Max 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json => Generic ABS @Qidi X-Plus 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json => Generic ABS @Qidi X-Plus 4 0.2 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json => Generic ABS @Qidi X-Plus 4 0.4 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json => Generic ABS @Qidi X-Plus 4 0.6 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json => Generic ABS @Qidi X-Plus 4 0.8 nozzle.json} (62%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json => Generic ABS @Qidi X-Smart 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ABS.json => Generic ABS @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json => Generic ASA @Qidi Q1 Pro 0.2 nozzle.json} (60%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json => Generic ASA @Qidi Q1 Pro 0.4 nozzle.json} (68%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json => Generic ASA @Qidi Q1 Pro 0.6 nozzle.json} (68%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json => Generic ASA @Qidi Q1 Pro 0.8 nozzle.json} (68%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json => Generic ASA @Qidi X-Max 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json => Generic ASA @Qidi X-Plus 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json => Generic ASA @Qidi X-Plus 4 0.2 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json => Generic ASA @Qidi X-Plus 4 0.4 nozzle.json} (67%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json => Generic ASA @Qidi X-Plus 4 0.6 nozzle.json} (67%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json => Generic ASA @Qidi X-Plus 4 0.8 nozzle.json} (67%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json => Generic ASA @Qidi X-Smart 3 0.2 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic ASA.json => Generic ASA @Qidi.json} (87%) rename resources/profiles/Qidi/filament/{Qidi Generic PA.json => Generic PA @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic PA-CF.json => Generic PA-CF @Qidi.json} (90%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @0.2 nozzle.json => Generic PC @Qidi 0.2 nozzle.json} (56%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @0.8 nozzle.json => Generic PC @Qidi 0.8 nozzle.json} (51%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json => Generic PC @Qidi Q1 Pro 0.2 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json => Generic PC @Qidi Q1 Pro 0.4 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json => Generic PC @Qidi Q1 Pro 0.6 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json => Generic PC @Qidi Q1 Pro 0.8 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json => Generic PC @Qidi X-Plus 4 0.2 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json => Generic PC @Qidi X-Plus 4 0.4 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json => Generic PC @Qidi X-Plus 4 0.6 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json => Generic PC @Qidi X-Plus 4 0.8 nozzle.json} (50%) rename resources/profiles/Qidi/filament/{Qidi Generic PC.json => Generic PC @Qidi.json} (88%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json => Generic PETG @Qidi Q1 Pro 0.2 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json => Generic PETG @Qidi Q1 Pro 0.4 nozzle.json} (68%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json => Generic PETG @Qidi Q1 Pro 0.6 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json => Generic PETG @Qidi Q1 Pro 0.8 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json => Generic PETG @Qidi X-Max 3 0.2 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json => Generic PETG @Qidi X-Plus 3 0.2 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json => Generic PETG @Qidi X-Plus 4 0.2 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json => Generic PETG @Qidi X-Plus 4 0.4 nozzle.json} (68%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json => Generic PETG @Qidi X-Plus 4 0.6 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json => Generic PETG @Qidi X-Plus 4 0.8 nozzle.json} (71%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json => Generic PETG @Qidi X-Smart 3 0.2 nozzle.json} (70%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG.json => Generic PETG @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic PETG-CF.json => Generic PETG-CF @Qidi.json} (92%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json => Generic PLA @Qidi Q1 Pro 0.2 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json => Generic PLA @Qidi Q1 Pro 0.4 nozzle.json} (55%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json => Generic PLA @Qidi Q1 Pro 0.6 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json => Generic PLA @Qidi Q1 Pro 0.8 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json => Generic PLA @Qidi X-Max 3 0.2 nozzle.json} (56%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json => Generic PLA @Qidi X-Plus 3 0.2 nozzle.json} (56%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json => Generic PLA @Qidi X-Plus 4 0.2 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json => Generic PLA @Qidi X-Plus 4 0.4 nozzle.json} (54%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json => Generic PLA @Qidi X-Plus 4 0.6 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json => Generic PLA @Qidi X-Plus 4 0.8 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json => Generic PLA @Qidi X-Smart 3 0.2 nozzle.json} (56%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA.json => Generic PLA @Qidi.json} (81%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json => Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json} (51%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json => Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json} (51%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json => Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json} (60%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json => Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json} (60%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA Silk.json => Generic PLA Silk @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json => Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json} (55%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json => Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json} (51%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json => Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json} (55%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json => Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json} (55%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json => Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json} (56%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json => Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json} (56%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json => Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json} (59%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json => Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json} (51%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json => Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json} (56%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json => Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json} (56%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json => Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json} (55%) create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json create mode 100644 resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json rename resources/profiles/Qidi/filament/{Qidi Generic PLA+.json => Generic PLA+ @Qidi.json} (83%) rename resources/profiles/Qidi/filament/{Qidi Generic PLA-CF.json => Generic PLA-CF @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic PVA.json => Generic PVA @Qidi.json} (89%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json => Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json} (57%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json => Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json} (56%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU 95A.json => Generic TPU 95A @Qidi.json} (87%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json => Generic TPU @Qidi Q1 Pro 0.4 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json => Generic TPU @Qidi X-Plus 4 0.4 nozzle.json} (53%) rename resources/profiles/Qidi/filament/{Qidi Generic TPU.json => Generic TPU @Qidi.json} (87%) delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json delete mode 100644 resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json rename resources/profiles/Ratrig/filament/{RatRig Generic ABS.json => Generic ABS @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic ASA.json => Generic ASA @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic PA.json => Generic PA @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic PA-CF.json => Generic PA-CF @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic PC.json => Generic PC @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic PCTG.json => Generic PCTG @RatRig.json} (92%) rename resources/profiles/Ratrig/filament/{RatRig Generic PETG.json => Generic PETG @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig Generic PLA.json => Generic PLA @RatRig.json} (92%) rename resources/profiles/Ratrig/filament/{RatRig Generic PLA-CF.json => Generic PLA-CF @RatRig.json} (92%) rename resources/profiles/Ratrig/filament/{RatRig Generic PVA.json => Generic PVA @RatRig.json} (92%) rename resources/profiles/Ratrig/filament/{RatRig Generic TPU.json => Generic TPU @RatRig.json} (92%) rename resources/profiles/SecKit/filament/{SecKit Generic ABS.json => Generic ABS @SecKit.json} (83%) rename resources/profiles/SecKit/filament/{SecKit Generic ASA.json => Generic ASA @SecKit.json} (81%) rename resources/profiles/SecKit/filament/{SecKit Generic PA.json => Generic PA @SecKit.json} (81%) rename resources/profiles/SecKit/filament/{SecKit Generic PA-CF.json => Generic PA-CF @SecKit.json} (81%) rename resources/profiles/SecKit/filament/{SecKit Generic PC.json => Generic PC @SecKit.json} (80%) rename resources/profiles/SecKit/filament/{SecKit Generic PETG.json => Generic PETG @SecKit.json} (86%) rename resources/profiles/SecKit/filament/{SecKit Generic PLA.json => Generic PLA @SecKit.json} (79%) rename resources/profiles/SecKit/filament/{SecKit Generic PLA-CF.json => Generic PLA-CF @SecKit.json} (79%) rename resources/profiles/SecKit/filament/{SecKit Generic PVA.json => Generic PVA @SecKit.json} (77%) rename resources/profiles/SecKit/filament/{SecKit Generic TPU.json => Generic TPU @SecKit.json} (76%) rename resources/profiles/Tiertime/filament/{Tiertime Generic ABS@300HS.json => Generic ABS @Tiertime 300HS.json} (77%) rename resources/profiles/Tiertime/filament/{Tiertime Generic ABS.json => Generic ABS @Tiertime.json} (81%) rename resources/profiles/Tiertime/filament/{Tiertime Generic ASA@300HS.json => Generic ASA @Tiertime 300HS.json} (74%) rename resources/profiles/Tiertime/filament/{Tiertime Generic ASA.json => Generic ASA @Tiertime.json} (79%) rename resources/profiles/Tiertime/filament/{Tiertime Generic BVOH@300HS.json => Generic BVOH @Tiertime 300HS.json} (59%) rename resources/profiles/Tiertime/filament/{Tiertime Generic BVOH.json => Generic BVOH @Tiertime.json} (66%) rename resources/profiles/Tiertime/filament/{Tiertime Generic EVA@300HS.json => Generic EVA @Tiertime 300HS.json} (91%) rename resources/profiles/Tiertime/filament/{Tiertime Generic EVA.json => Generic EVA @Tiertime.json} (93%) rename resources/profiles/Tiertime/filament/{Tiertime Generic HIPS@300HS.json => Generic HIPS @Tiertime 300HS.json} (62%) rename resources/profiles/Tiertime/filament/{Tiertime Generic HIPS.json => Generic HIPS @Tiertime.json} (68%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PA@300HS.json => Generic PA @Tiertime 300HS.json} (82%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PA.json => Generic PA @Tiertime.json} (85%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PA-CF@300HS.json => Generic PA-CF @Tiertime 300HS.json} (75%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PA-CF.json => Generic PA-CF @Tiertime.json} (79%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PC@300HS.json => Generic PC @Tiertime 300HS.json} (67%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PC.json => Generic PC @Tiertime.json} (72%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PCTG@300HS.json => Generic PCTG @Tiertime 300HS.json} (89%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PCTG.json => Generic PCTG @Tiertime.json} (91%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PE@300HS.json => Generic PE @Tiertime 300HS.json} (87%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PE.json => Generic PE @Tiertime.json} (89%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PE-CF@300HS.json => Generic PE-CF @Tiertime 300HS.json} (86%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PE-CF.json => Generic PE-CF @Tiertime.json} (89%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PETG@300HS.json => Generic PETG @Tiertime 300HS.json} (88%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PETG.json => Generic PETG @Tiertime.json} (91%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PETG-CF@300HS.json => Generic PETG-CF @Tiertime 300HS.json} (89%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PETG-CF.json => Generic PETG-CF @Tiertime.json} (91%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PHA@300HS.json => Generic PHA @Tiertime 300HS.json} (60%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PHA.json => Generic PHA @Tiertime.json} (66%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA@300HS.json => Generic PLA @Tiertime 300HS.json} (82%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA.json => Generic PLA @Tiertime.json} (85%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA High Speed@300HS.json => Generic PLA High Speed @Tiertime 300HS.json} (65%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA High Speed.json => Generic PLA High Speed @Tiertime.json} (71%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA Silk@300HS.json => Generic PLA Silk @Tiertime 300HS.json} (82%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA Silk.json => Generic PLA Silk @Tiertime.json} (86%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA-CF@300HS.json => Generic PLA-CF @Tiertime 300HS.json} (88%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PLA-CF.json => Generic PLA-CF @Tiertime.json} (90%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP@300HS.json => Generic PP @Tiertime 300HS.json} (60%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP.json => Generic PP @Tiertime.json} (66%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP-CF@300HS.json => Generic PP-CF @Tiertime 300HS.json} (69%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP-CF.json => Generic PP-CF @Tiertime.json} (74%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP-GF@300HS.json => Generic PP-GF @Tiertime 300HS.json} (69%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PP-GF.json => Generic PP-GF @Tiertime.json} (74%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPA-CF@300HS.json => Generic PPA-CF @Tiertime 300HS.json} (69%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPA-CF.json => Generic PPA-CF @Tiertime.json} (74%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPA-GF@300HS.json => Generic PPA-GF @Tiertime 300HS.json} (65%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPA-GF.json => Generic PPA-GF @Tiertime.json} (70%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPS@300HS.json => Generic PPS @Tiertime 300HS.json} (60%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPS.json => Generic PPS @Tiertime.json} (66%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPS-CF@300HS.json => Generic PPS-CF @Tiertime 300HS.json} (74%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PPS-CF.json => Generic PPS-CF @Tiertime.json} (79%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PVA@300HS.json => Generic PVA @Tiertime 300HS.json} (70%) rename resources/profiles/Tiertime/filament/{Tiertime Generic PVA.json => Generic PVA @Tiertime.json} (75%) rename resources/profiles/Tiertime/filament/{Tiertime Generic SBS@300HS.json => Generic SBS @Tiertime 300HS.json} (82%) rename resources/profiles/Tiertime/filament/{Tiertime Generic SBS.json => Generic SBS @Tiertime.json} (85%) rename resources/profiles/Tiertime/filament/{Tiertime Generic TPU@300HS.json => Generic TPU @Tiertime 300HS.json} (81%) rename resources/profiles/Tiertime/filament/{Tiertime Generic TPU.json => Generic TPU @Tiertime.json} (84%) rename resources/profiles/TwoTrees/filament/{TwoTrees Generic 95A TPU @SK1.json => Generic 95A TPU @TwoTrees SK1.json} (74%) rename resources/profiles/TwoTrees/filament/{TwoTrees Generic HS PLA @SK1.json => Generic HS PLA @TwoTrees SK1.json} (83%) rename resources/profiles/Vzbot/filament/{Vzbot Generic ABS.json => Generic ABS @Vzbot.json} (75%) rename resources/profiles/Vzbot/filament/{Vzbot Generic ASA.json => Generic ASA @Vzbot.json} (75%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PA.json => Generic PA @Vzbot.json} (77%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PA-CF.json => Generic PA-CF @Vzbot.json} (77%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PC.json => Generic PC @Vzbot.json} (75%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PETG.json => Generic PETG @Vzbot.json} (85%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PLA.json => Generic PLA @Vzbot.json} (76%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PLA-CF.json => Generic PLA-CF @Vzbot.json} (77%) rename resources/profiles/Vzbot/filament/{Vzbot Generic PVA.json => Generic PVA @Vzbot.json} (78%) rename resources/profiles/Vzbot/filament/{Vzbot Generic TPU.json => Generic TPU @Vzbot.json} (73%) rename resources/profiles/Wanhao France/filament/{Yumi Generic PETG.json => Generic PETG @Yumi.json} (91%) rename resources/profiles/Wanhao France/filament/{Yumi Generic PLA.json => Generic PLA @Yumi.json} (81%) diff --git a/resources/profiles/Anker.json b/resources/profiles/Anker.json index 544d889b4f..098b1df003 100644 --- a/resources/profiles/Anker.json +++ b/resources/profiles/Anker.json @@ -1,6 +1,6 @@ { "name": "Anker", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Anker configurations", "machine_model_list": [ @@ -161,172 +161,172 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Anker Generic ABS @base", - "sub_path": "filament/Anker Generic ABS @base.json" + "name": "Generic ABS @Anker base", + "sub_path": "filament/Generic ABS @Anker base.json" }, { - "name": "Anker Generic ASA @base", - "sub_path": "filament/Anker Generic ASA @base.json" + "name": "Generic ASA @Anker base", + "sub_path": "filament/Generic ASA @Anker base.json" }, { - "name": "Anker Generic PA @base", - "sub_path": "filament/Anker Generic PA @base.json" + "name": "Generic PA @Anker base", + "sub_path": "filament/Generic PA @Anker base.json" }, { - "name": "Anker Generic PA-CF @base", - "sub_path": "filament/Anker Generic PA-CF @base.json" + "name": "Generic PA-CF @Anker base", + "sub_path": "filament/Generic PA-CF @Anker base.json" }, { - "name": "Anker Generic PC @base", - "sub_path": "filament/Anker Generic PC @base.json" + "name": "Generic PC @Anker base", + "sub_path": "filament/Generic PC @Anker base.json" }, { - "name": "Anker Generic PETG @base", - "sub_path": "filament/Anker Generic PETG @base.json" + "name": "Generic PETG @Anker base", + "sub_path": "filament/Generic PETG @Anker base.json" }, { - "name": "Anker Generic PETG-CF @base", - "sub_path": "filament/Anker Generic PETG-CF @base.json" + "name": "Generic PETG-CF @Anker base", + "sub_path": "filament/Generic PETG-CF @Anker base.json" }, { - "name": "Anker Generic PLA @base", - "sub_path": "filament/Anker Generic PLA @base.json" + "name": "Generic PLA @Anker base", + "sub_path": "filament/Generic PLA @Anker base.json" }, { - "name": "Anker Generic PLA Silk @base", - "sub_path": "filament/Anker Generic PLA Silk @base.json" + "name": "Generic PLA Silk @Anker base", + "sub_path": "filament/Generic PLA Silk @Anker base.json" }, { - "name": "Anker Generic PLA+ @base", - "sub_path": "filament/Anker Generic PLA+ @base.json" + "name": "Generic PLA+ @Anker base", + "sub_path": "filament/Generic PLA+ @Anker base.json" }, { - "name": "Anker Generic PLA-CF @base", - "sub_path": "filament/Anker Generic PLA-CF @base.json" + "name": "Generic PLA-CF @Anker base", + "sub_path": "filament/Generic PLA-CF @Anker base.json" }, { - "name": "Anker Generic PVA @base", - "sub_path": "filament/Anker Generic PVA @base.json" + "name": "Generic PVA @Anker base", + "sub_path": "filament/Generic PVA @Anker base.json" }, { - "name": "Anker Generic TPU @base", - "sub_path": "filament/Anker Generic TPU @base.json" + "name": "Generic TPU @Anker base", + "sub_path": "filament/Generic TPU @Anker base.json" }, { - "name": "Anker Generic ABS", - "sub_path": "filament/Anker Generic ABS.json" + "name": "Generic ABS @Anker", + "sub_path": "filament/Generic ABS @Anker.json" }, { - "name": "Anker Generic ABS 0.2 nozzle", - "sub_path": "filament/Anker Generic ABS 0.2 nozzle.json" + "name": "Generic ABS @Anker 0.2 nozzle", + "sub_path": "filament/Generic ABS @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic ABS 0.25 nozzle", - "sub_path": "filament/Anker Generic ABS 0.25 nozzle.json" + "name": "Generic ABS @Anker 0.25 nozzle", + "sub_path": "filament/Generic ABS @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic ASA", - "sub_path": "filament/Anker Generic ASA.json" + "name": "Generic ASA @Anker", + "sub_path": "filament/Generic ASA @Anker.json" }, { - "name": "Anker Generic ASA 0.2 nozzle", - "sub_path": "filament/Anker Generic ASA 0.2 nozzle.json" + "name": "Generic ASA @Anker 0.2 nozzle", + "sub_path": "filament/Generic ASA @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic ASA 0.25 nozzle", - "sub_path": "filament/Anker Generic ASA 0.25 nozzle.json" + "name": "Generic ASA @Anker 0.25 nozzle", + "sub_path": "filament/Generic ASA @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PA", - "sub_path": "filament/Anker Generic PA.json" + "name": "Generic PA @Anker", + "sub_path": "filament/Generic PA @Anker.json" }, { - "name": "Anker Generic PA 0.2 nozzle", - "sub_path": "filament/Anker Generic PA 0.2 nozzle.json" + "name": "Generic PA @Anker 0.2 nozzle", + "sub_path": "filament/Generic PA @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PA 0.25 nozzle", - "sub_path": "filament/Anker Generic PA 0.25 nozzle.json" + "name": "Generic PA @Anker 0.25 nozzle", + "sub_path": "filament/Generic PA @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PA-CF", - "sub_path": "filament/Anker Generic PA-CF.json" + "name": "Generic PA-CF @Anker", + "sub_path": "filament/Generic PA-CF @Anker.json" }, { - "name": "Anker Generic PC", - "sub_path": "filament/Anker Generic PC.json" + "name": "Generic PC @Anker", + "sub_path": "filament/Generic PC @Anker.json" }, { - "name": "Anker Generic PC 0.2 nozzle", - "sub_path": "filament/Anker Generic PC 0.2 nozzle.json" + "name": "Generic PC @Anker 0.2 nozzle", + "sub_path": "filament/Generic PC @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PC 0.25 nozzle", - "sub_path": "filament/Anker Generic PC 0.25 nozzle.json" + "name": "Generic PC @Anker 0.25 nozzle", + "sub_path": "filament/Generic PC @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PETG", - "sub_path": "filament/Anker Generic PETG.json" + "name": "Generic PETG @Anker", + "sub_path": "filament/Generic PETG @Anker.json" }, { - "name": "Anker Generic PETG 0.2 nozzle", - "sub_path": "filament/Anker Generic PETG 0.2 nozzle.json" + "name": "Generic PETG @Anker 0.2 nozzle", + "sub_path": "filament/Generic PETG @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PETG 0.25 nozzle", - "sub_path": "filament/Anker Generic PETG 0.25 nozzle.json" + "name": "Generic PETG @Anker 0.25 nozzle", + "sub_path": "filament/Generic PETG @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PETG-CF", - "sub_path": "filament/Anker Generic PETG-CF.json" + "name": "Generic PETG-CF @Anker", + "sub_path": "filament/Generic PETG-CF @Anker.json" }, { - "name": "Anker Generic PLA", - "sub_path": "filament/Anker Generic PLA.json" + "name": "Generic PLA @Anker", + "sub_path": "filament/Generic PLA @Anker.json" }, { - "name": "Anker Generic PLA 0.2 nozzle", - "sub_path": "filament/Anker Generic PLA 0.2 nozzle.json" + "name": "Generic PLA @Anker 0.2 nozzle", + "sub_path": "filament/Generic PLA @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PLA 0.25 nozzle", - "sub_path": "filament/Anker Generic PLA 0.25 nozzle.json" + "name": "Generic PLA @Anker 0.25 nozzle", + "sub_path": "filament/Generic PLA @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PLA Silk", - "sub_path": "filament/Anker Generic PLA Silk.json" + "name": "Generic PLA Silk @Anker", + "sub_path": "filament/Generic PLA Silk @Anker.json" }, { - "name": "Anker Generic PLA Silk 0.2 nozzle", - "sub_path": "filament/Anker Generic PLA Silk 0.2 nozzle.json" + "name": "Generic PLA Silk @Anker 0.2 nozzle", + "sub_path": "filament/Generic PLA Silk @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PLA Silk 0.25 nozzle", - "sub_path": "filament/Anker Generic PLA Silk 0.25 nozzle.json" + "name": "Generic PLA Silk @Anker 0.25 nozzle", + "sub_path": "filament/Generic PLA Silk @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PLA+", - "sub_path": "filament/Anker Generic PLA+.json" + "name": "Generic PLA+ @Anker", + "sub_path": "filament/Generic PLA+ @Anker.json" }, { - "name": "Anker Generic PLA+ 0.2 nozzle", - "sub_path": "filament/Anker Generic PLA+ 0.2 nozzle.json" + "name": "Generic PLA+ @Anker 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Anker 0.2 nozzle.json" }, { - "name": "Anker Generic PLA+ 0.25 nozzle", - "sub_path": "filament/Anker Generic PLA+ 0.25 nozzle.json" + "name": "Generic PLA+ @Anker 0.25 nozzle", + "sub_path": "filament/Generic PLA+ @Anker 0.25 nozzle.json" }, { - "name": "Anker Generic PLA-CF", - "sub_path": "filament/Anker Generic PLA-CF.json" + "name": "Generic PLA-CF @Anker", + "sub_path": "filament/Generic PLA-CF @Anker.json" }, { - "name": "Anker Generic PVA", - "sub_path": "filament/Anker Generic PVA.json" + "name": "Generic PVA @Anker", + "sub_path": "filament/Generic PVA @Anker.json" }, { - "name": "Anker Generic TPU", - "sub_path": "filament/Anker Generic TPU.json" + "name": "Generic TPU @Anker", + "sub_path": "filament/Generic TPU @Anker.json" } ], "machine_list": [ diff --git a/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.2 nozzle.json b/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.2 nozzle.json deleted file mode 100644 index 90c78475bd..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.2 nozzle.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA Silk 0.2 nozzle", - "inherits": "Anker Generic PLA Silk @base", - "from": "system", - "setting_id": "A1l6NiwRrasdV556", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "2" - ], - "compatible_printers": [ - "Anker M5 0.2 nozzle", - "Anker M5 All-Metal 0.2 nozzle", - "Anker M5C 0.2 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.25 nozzle.json b/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.25 nozzle.json deleted file mode 100644 index 45032d46c3..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA Silk 0.25 nozzle.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA Silk 0.25 nozzle", - "inherits": "Anker Generic PLA Silk @base", - "from": "system", - "setting_id": "yzHmKTOtA9JamlNf", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "3" - ], - "compatible_printers": [ - "Anker M5 0.25 nozzle", - "Anker M5 All-Metal 0.25 nozzle", - "Anker M5C 0.25 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA Silk.json b/resources/profiles/Anker/filament/Anker Generic PLA Silk.json deleted file mode 100644 index df8b1d7cdb..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA Silk.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA Silk", - "inherits": "Anker Generic PLA Silk @base", - "from": "system", - "setting_id": "BGttYO9m2rGcnrEG", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA+ 0.2 nozzle.json b/resources/profiles/Anker/filament/Anker Generic PLA+ 0.2 nozzle.json deleted file mode 100644 index 9923efcd6f..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA+ 0.2 nozzle.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA+ 0.2 nozzle", - "inherits": "Anker Generic PLA+ @base", - "from": "system", - "setting_id": "6IcMSjyxt0szdUuY", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "2" - ], - "compatible_printers": [ - "Anker M5 0.2 nozzle", - "Anker M5 All-Metal 0.2 nozzle", - "Anker M5C 0.2 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA+ 0.25 nozzle.json b/resources/profiles/Anker/filament/Anker Generic PLA+ 0.25 nozzle.json deleted file mode 100644 index 809b57ef69..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA+ 0.25 nozzle.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA+ 0.25 nozzle", - "inherits": "Anker Generic PLA+ @base", - "from": "system", - "setting_id": "a2Rf07ZUhpTPONN1", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "3" - ], - "compatible_printers": [ - "Anker M5 0.25 nozzle", - "Anker M5 All-Metal 0.25 nozzle", - "Anker M5C 0.25 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA+.json b/resources/profiles/Anker/filament/Anker Generic PLA+.json deleted file mode 100644 index 4c4ded7c11..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA+.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA+", - "inherits": "Anker Generic PLA+ @base", - "from": "system", - "setting_id": "0yQN44WNvLVjQu2b", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA-CF.json b/resources/profiles/Anker/filament/Anker Generic PLA-CF.json deleted file mode 100644 index 7a2d6d5e97..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA-CF.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA-CF", - "inherits": "Anker Generic PLA-CF @base", - "from": "system", - "setting_id": "diNUVM7UcHLnOr9J", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA.json b/resources/profiles/Anker/filament/Anker Generic PLA.json deleted file mode 100644 index 1c4b7bc5fb..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PLA.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PLA", - "inherits": "Anker Generic PLA @base", - "from": "system", - "setting_id": "qfKC91VAAFZSExhm", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic PVA.json b/resources/profiles/Anker/filament/Anker Generic PVA.json deleted file mode 100644 index 97039a12d6..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic PVA.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic PVA", - "inherits": "Anker Generic PVA @base", - "from": "system", - "setting_id": "GRtdOKUkQfZ5eDH4", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic TPU.json b/resources/profiles/Anker/filament/Anker Generic TPU.json deleted file mode 100644 index fb99d95f0d..0000000000 --- a/resources/profiles/Anker/filament/Anker Generic TPU.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Anker Generic TPU", - "inherits": "Anker Generic TPU @base", - "from": "system", - "setting_id": "YyTaPGGiEyAzmh9A", - "instantiation": "true", - "compatible_printers": [ - "Anker M5 0.4 nozzle", - "Anker M5 0.6 nozzle", - "Anker M5 All-Metal 0.4 nozzle", - "Anker M5 All-Metal 0.6 nozzle", - "Anker M5C 0.4 nozzle", - "Anker M5C 0.6 nozzle" - ] -} diff --git a/resources/profiles/Anker/filament/Anker Generic ABS 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic ABS @Anker 0.2 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic ABS 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic ABS @Anker 0.2 nozzle.json index aaa175bacd..c3e47c80a3 100644 --- a/resources/profiles/Anker/filament/Anker Generic ABS 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic ABS @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ABS 0.2 nozzle", - "inherits": "Anker Generic ABS @base", + "name": "Generic ABS @Anker 0.2 nozzle", + "inherits": "Generic ABS @Anker base", + "renamed_from": "Anker Generic ABS 0.2 nozzle", "from": "system", - "setting_id": "BD5ODYVM90Ig44C5", + "setting_id": "iOCt7x95XbWYMe5q", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic PETG 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic ABS @Anker 0.25 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic PETG 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic ABS @Anker 0.25 nozzle.json index 689836eae3..64fd62eb64 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic ABS @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PETG 0.25 nozzle", - "inherits": "Anker Generic PETG @base", + "name": "Generic ABS @Anker 0.25 nozzle", + "inherits": "Generic ABS @Anker base", + "renamed_from": "Anker Generic ABS 0.25 nozzle", "from": "system", - "setting_id": "UgKfPuleh1xnoJLT", + "setting_id": "7Q2pr70SpSjK7v7Y", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json b/resources/profiles/Anker/filament/Generic ABS @Anker base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @base.json rename to resources/profiles/Anker/filament/Generic ABS @Anker base.json index c64feecc6d..fe24d081e4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @base.json +++ b/resources/profiles/Anker/filament/Generic ABS @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic ABS @base", + "name": "Generic ABS @Anker base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OFvGc67v", + "filament_id": "OFY9muEs", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic ASA.json b/resources/profiles/Anker/filament/Generic ABS @Anker.json similarity index 65% rename from resources/profiles/Anker/filament/Anker Generic ASA.json rename to resources/profiles/Anker/filament/Generic ABS @Anker.json index 66041c0463..978bc00e31 100644 --- a/resources/profiles/Anker/filament/Anker Generic ASA.json +++ b/resources/profiles/Anker/filament/Generic ABS @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ASA", - "inherits": "Anker Generic ASA @base", + "name": "Generic ABS @Anker", + "inherits": "Generic ABS @Anker base", + "renamed_from": "Anker Generic ABS", "from": "system", - "setting_id": "QiFoBW5WuDUJGmFZ", + "setting_id": "x3IBYtgKBx6Mszzk", "instantiation": "true", "compatible_printers": [ "Anker M5 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic PETG 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic ASA @Anker 0.2 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic PETG 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic ASA @Anker 0.2 nozzle.json index 18686402e1..1a40e93730 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic ASA @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PETG 0.2 nozzle", - "inherits": "Anker Generic PETG @base", + "name": "Generic ASA @Anker 0.2 nozzle", + "inherits": "Generic ASA @Anker base", + "renamed_from": "Anker Generic ASA 0.2 nozzle", "from": "system", - "setting_id": "VItvDP6zmenWXwPO", + "setting_id": "lTR8QLbuttyVs5UW", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic ABS 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic ASA @Anker 0.25 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic ABS 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic ASA @Anker 0.25 nozzle.json index 76c10b1018..0b85eef27c 100644 --- a/resources/profiles/Anker/filament/Anker Generic ABS 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic ASA @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ABS 0.25 nozzle", - "inherits": "Anker Generic ABS @base", + "name": "Generic ASA @Anker 0.25 nozzle", + "inherits": "Generic ASA @Anker base", + "renamed_from": "Anker Generic ASA 0.25 nozzle", "from": "system", - "setting_id": "WS5wXckNuiQqSVwO", + "setting_id": "FU4BiMydEyo7zxq5", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Anker/filament/Anker Generic ASA @base.json b/resources/profiles/Anker/filament/Generic ASA @Anker base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic ASA @base.json rename to resources/profiles/Anker/filament/Generic ASA @Anker base.json index 585c1d0079..f2349d13ab 100644 --- a/resources/profiles/Anker/filament/Anker Generic ASA @base.json +++ b/resources/profiles/Anker/filament/Generic ASA @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic ASA @base", + "name": "Generic ASA @Anker base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OFRiyes1", + "filament_id": "OFLPAxz3", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PETG-CF.json b/resources/profiles/Anker/filament/Generic ASA @Anker.json similarity index 65% rename from resources/profiles/Anker/filament/Anker Generic PETG-CF.json rename to resources/profiles/Anker/filament/Generic ASA @Anker.json index 3f0dd59e94..53b84223df 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG-CF.json +++ b/resources/profiles/Anker/filament/Generic ASA @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PETG-CF", - "inherits": "Anker Generic PETG-CF @base", + "name": "Generic ASA @Anker", + "inherits": "Generic ASA @Anker base", + "renamed_from": "Anker Generic ASA", "from": "system", - "setting_id": "j8PLF6AZD0R0oVs8", + "setting_id": "aDADuxiEKt2dVKOJ", "instantiation": "true", "compatible_printers": [ "Anker M5 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic PA 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PA @Anker 0.2 nozzle.json similarity index 55% rename from resources/profiles/Anker/filament/Anker Generic PA 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic PA @Anker 0.2 nozzle.json index 3e7a0b85d1..6460721e2f 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PA @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PA 0.2 nozzle", - "inherits": "Anker Generic PA @base", + "name": "Generic PA @Anker 0.2 nozzle", + "inherits": "Generic PA @Anker base", + "renamed_from": "Anker Generic PA 0.2 nozzle", "from": "system", - "setting_id": "NZB26MSD9WbOeY2S", + "setting_id": "tYAT7xnNFD6gY84A", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic PA 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PA @Anker 0.25 nozzle.json similarity index 55% rename from resources/profiles/Anker/filament/Anker Generic PA 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic PA @Anker 0.25 nozzle.json index 8c0233d67e..ee2514e92c 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PA @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PA 0.25 nozzle", - "inherits": "Anker Generic PA @base", + "name": "Generic PA @Anker 0.25 nozzle", + "inherits": "Generic PA @Anker base", + "renamed_from": "Anker Generic PA 0.25 nozzle", "from": "system", - "setting_id": "Wj7oXTGUxo8lie1B", + "setting_id": "Zlv65wLA94PbevRG", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @base.json b/resources/profiles/Anker/filament/Generic PA @Anker base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic PA @base.json rename to resources/profiles/Anker/filament/Generic PA @Anker base.json index 08528488af..b4a45b1e66 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @base.json +++ b/resources/profiles/Anker/filament/Generic PA @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PA @base", + "name": "Generic PA @Anker base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OFIy3kLw", + "filament_id": "OFg8ndtj", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PC.json b/resources/profiles/Anker/filament/Generic PA @Anker.json similarity index 60% rename from resources/profiles/Anker/filament/Anker Generic PC.json rename to resources/profiles/Anker/filament/Generic PA @Anker.json index 3be5d34b71..e9acc2d7f6 100644 --- a/resources/profiles/Anker/filament/Anker Generic PC.json +++ b/resources/profiles/Anker/filament/Generic PA @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PC", - "inherits": "Anker Generic PC @base", + "name": "Generic PA @Anker", + "inherits": "Generic PA @Anker base", + "renamed_from": "Anker Generic PA", "from": "system", - "setting_id": "xY25QcIsR9pWai3n", + "setting_id": "sLWVtBxpAC53eUwo", "instantiation": "true", "compatible_printers": [ "Anker M5 All-Metal 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json b/resources/profiles/Anker/filament/Generic PA-CF @Anker base.json similarity index 79% rename from resources/profiles/Anker/filament/Anker Generic PA-CF @base.json rename to resources/profiles/Anker/filament/Generic PA-CF @Anker base.json index ef1343cd5a..fc0740ee53 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA-CF @base.json +++ b/resources/profiles/Anker/filament/Generic PA-CF @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PA-CF @base", + "name": "Generic PA-CF @Anker base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OF7uE5KB", + "filament_id": "OFQLcbps", "instantiation": "false", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Anker/filament/Anker Generic PA.json b/resources/profiles/Anker/filament/Generic PA-CF @Anker.json similarity index 59% rename from resources/profiles/Anker/filament/Anker Generic PA.json rename to resources/profiles/Anker/filament/Generic PA-CF @Anker.json index 43f3724ea9..6c3b2d1860 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA.json +++ b/resources/profiles/Anker/filament/Generic PA-CF @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PA", - "inherits": "Anker Generic PA @base", + "name": "Generic PA-CF @Anker", + "inherits": "Generic PA-CF @Anker base", + "renamed_from": "Anker Generic PA-CF", "from": "system", - "setting_id": "QbIiX554Yee6vb32", + "setting_id": "K4LcpR0zBp5klSpb", "instantiation": "true", "compatible_printers": [ "Anker M5 All-Metal 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic PC 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PC @Anker 0.2 nozzle.json similarity index 55% rename from resources/profiles/Anker/filament/Anker Generic PC 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic PC @Anker 0.2 nozzle.json index 87f09622b9..0126f9f893 100644 --- a/resources/profiles/Anker/filament/Anker Generic PC 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PC @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PC 0.2 nozzle", - "inherits": "Anker Generic PC @base", + "name": "Generic PC @Anker 0.2 nozzle", + "inherits": "Generic PC @Anker base", + "renamed_from": "Anker Generic PC 0.2 nozzle", "from": "system", - "setting_id": "GhIOAidtgDkzh9Aj", + "setting_id": "2sSOgctcnVh9bGbQ", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic PC 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PC @Anker 0.25 nozzle.json similarity index 55% rename from resources/profiles/Anker/filament/Anker Generic PC 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic PC @Anker 0.25 nozzle.json index 38794a6a44..50aca840aa 100644 --- a/resources/profiles/Anker/filament/Anker Generic PC 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PC @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PC 0.25 nozzle", - "inherits": "Anker Generic PC @base", + "name": "Generic PC @Anker 0.25 nozzle", + "inherits": "Generic PC @Anker base", + "renamed_from": "Anker Generic PC 0.25 nozzle", "from": "system", - "setting_id": "TQm9EPdenyGJMvgP", + "setting_id": "h7IRuq5uekjNw4vg", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Anker/filament/Anker Generic PC @base.json b/resources/profiles/Anker/filament/Generic PC @Anker base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic PC @base.json rename to resources/profiles/Anker/filament/Generic PC @Anker base.json index 85eb21469c..90ded72d2f 100644 --- a/resources/profiles/Anker/filament/Anker Generic PC @base.json +++ b/resources/profiles/Anker/filament/Generic PC @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic PC @base", + "name": "Generic PC @Anker base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OFGPJxnt", + "filament_id": "OFLakOUI", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PA-CF.json b/resources/profiles/Anker/filament/Generic PC @Anker.json similarity index 60% rename from resources/profiles/Anker/filament/Anker Generic PA-CF.json rename to resources/profiles/Anker/filament/Generic PC @Anker.json index b821bede88..5433518c5a 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA-CF.json +++ b/resources/profiles/Anker/filament/Generic PC @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PA-CF", - "inherits": "Anker Generic PA-CF @base", + "name": "Generic PC @Anker", + "inherits": "Generic PC @Anker base", + "renamed_from": "Anker Generic PC", "from": "system", - "setting_id": "qdsEps11ugFHJkn7", + "setting_id": "ffufXVvW95sunH1B", "instantiation": "true", "compatible_printers": [ "Anker M5 All-Metal 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic PLA 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PETG @Anker 0.2 nozzle.json similarity index 57% rename from resources/profiles/Anker/filament/Anker Generic PLA 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic PETG @Anker 0.2 nozzle.json index 6c31b3949c..2ff7eca4d1 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PETG @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PLA 0.2 nozzle", - "inherits": "Anker Generic PLA @base", + "name": "Generic PETG @Anker 0.2 nozzle", + "inherits": "Generic PETG @Anker base", + "renamed_from": "Anker Generic PETG 0.2 nozzle", "from": "system", - "setting_id": "j6QmCITPJoP7bWHq", + "setting_id": "67ZHuiXPyCP6Tdtr", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic ASA 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PETG @Anker 0.25 nozzle.json similarity index 57% rename from resources/profiles/Anker/filament/Anker Generic ASA 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic PETG @Anker 0.25 nozzle.json index fad3cb2a20..9f9ae2da35 100644 --- a/resources/profiles/Anker/filament/Anker Generic ASA 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PETG @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ASA 0.25 nozzle", - "inherits": "Anker Generic ASA @base", + "name": "Generic PETG @Anker 0.25 nozzle", + "inherits": "Generic PETG @Anker base", + "renamed_from": "Anker Generic PETG 0.25 nozzle", "from": "system", - "setting_id": "ErUUDTQ7h1wNHAKT", + "setting_id": "aLuRALDt0Otbd2So", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Anker/filament/Anker Generic PETG @base.json b/resources/profiles/Anker/filament/Generic PETG @Anker base.json similarity index 83% rename from resources/profiles/Anker/filament/Anker Generic PETG @base.json rename to resources/profiles/Anker/filament/Generic PETG @Anker base.json index 8bd93439b8..9a0ccc2fe4 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG @base.json +++ b/resources/profiles/Anker/filament/Generic PETG @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PETG @base", + "name": "Generic PETG @Anker base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFgvOmM2", + "filament_id": "OFYPdQJh", "instantiation": "false", "filament_type": [ "PETG" diff --git a/resources/profiles/Anker/filament/Generic PETG @Anker.json b/resources/profiles/Anker/filament/Generic PETG @Anker.json new file mode 100644 index 0000000000..cdb08f8671 --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PETG @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PETG @Anker", + "inherits": "Generic PETG @Anker base", + "renamed_from": "Anker Generic PETG", + "from": "system", + "setting_id": "hvV0rmnzRHJk9sMz", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json b/resources/profiles/Anker/filament/Generic PETG-CF @Anker base.json similarity index 86% rename from resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json rename to resources/profiles/Anker/filament/Generic PETG-CF @Anker base.json index c39b36f841..3c0f59949a 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG-CF @base.json +++ b/resources/profiles/Anker/filament/Generic PETG-CF @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PETG-CF @base", + "name": "Generic PETG-CF @Anker base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OF1daEUW", + "filament_id": "OFoYSJKi", "instantiation": "false", "filament_type": [ "PETG-CF" diff --git a/resources/profiles/Anker/filament/Generic PETG-CF @Anker.json b/resources/profiles/Anker/filament/Generic PETG-CF @Anker.json new file mode 100644 index 0000000000..e5a265c40f --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PETG-CF @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @Anker", + "inherits": "Generic PETG-CF @Anker base", + "renamed_from": "Anker Generic PETG-CF", + "from": "system", + "setting_id": "vCAuQeQLoXUk28ph", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic ASA 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PLA @Anker 0.2 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic ASA 0.2 nozzle.json rename to resources/profiles/Anker/filament/Generic PLA @Anker 0.2 nozzle.json index b13a09de2a..e8ffdb8c57 100644 --- a/resources/profiles/Anker/filament/Anker Generic ASA 0.2 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PLA @Anker 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ASA 0.2 nozzle", - "inherits": "Anker Generic ASA @base", + "name": "Generic PLA @Anker 0.2 nozzle", + "inherits": "Generic PLA @Anker base", + "renamed_from": "Anker Generic PLA 0.2 nozzle", "from": "system", - "setting_id": "G7pzEyyhPFDnae3R", + "setting_id": "rCvmCzPgi4KA6nmI", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/Anker/filament/Anker Generic PLA 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PLA @Anker 0.25 nozzle.json similarity index 58% rename from resources/profiles/Anker/filament/Anker Generic PLA 0.25 nozzle.json rename to resources/profiles/Anker/filament/Generic PLA @Anker 0.25 nozzle.json index d3775b07e2..5e4e3e0f0b 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA 0.25 nozzle.json +++ b/resources/profiles/Anker/filament/Generic PLA @Anker 0.25 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PLA 0.25 nozzle", - "inherits": "Anker Generic PLA @base", + "name": "Generic PLA @Anker 0.25 nozzle", + "inherits": "Generic PLA @Anker base", + "renamed_from": "Anker Generic PLA 0.25 nozzle", "from": "system", - "setting_id": "uKfcnPWdXxAGB5Ls", + "setting_id": "C0hNEbEueKrcYojS", "instantiation": "true", "filament_max_volumetric_speed": [ "3" diff --git a/resources/profiles/Anker/filament/Anker Generic PLA @base.json b/resources/profiles/Anker/filament/Generic PLA @Anker base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic PLA @base.json rename to resources/profiles/Anker/filament/Generic PLA @Anker base.json index bfe79d7ec5..d9cc2b2641 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA @base.json +++ b/resources/profiles/Anker/filament/Generic PLA @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic PLA @base", + "name": "Generic PLA @Anker base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFndmfJ1", + "filament_id": "OFDSrzZ8", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic PETG.json b/resources/profiles/Anker/filament/Generic PLA @Anker.json similarity index 65% rename from resources/profiles/Anker/filament/Anker Generic PETG.json rename to resources/profiles/Anker/filament/Generic PLA @Anker.json index ed70b54983..5049571bcb 100644 --- a/resources/profiles/Anker/filament/Anker Generic PETG.json +++ b/resources/profiles/Anker/filament/Generic PLA @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic PETG", - "inherits": "Anker Generic PETG @base", + "name": "Generic PLA @Anker", + "inherits": "Generic PLA @Anker base", + "renamed_from": "Anker Generic PLA", "from": "system", - "setting_id": "FMnK9qOMiqDcGqhd", + "setting_id": "GfVhcxRmt6mHSemI", "instantiation": "true", "compatible_printers": [ "Anker M5 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.2 nozzle.json new file mode 100644 index 0000000000..e28ab1c79a --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @Anker 0.2 nozzle", + "inherits": "Generic PLA Silk @Anker base", + "renamed_from": "Anker Generic PLA Silk 0.2 nozzle", + "from": "system", + "setting_id": "NWGiPWYmLVktDMJt", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Anker M5 0.2 nozzle", + "Anker M5 All-Metal 0.2 nozzle", + "Anker M5C 0.2 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.25 nozzle.json new file mode 100644 index 0000000000..2699cb1aea --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA Silk @Anker 0.25 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @Anker 0.25 nozzle", + "inherits": "Generic PLA Silk @Anker base", + "renamed_from": "Anker Generic PLA Silk 0.25 nozzle", + "from": "system", + "setting_id": "4thKBCnYgDtnAtF5", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3" + ], + "compatible_printers": [ + "Anker M5 0.25 nozzle", + "Anker M5 All-Metal 0.25 nozzle", + "Anker M5C 0.25 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json b/resources/profiles/Anker/filament/Generic PLA Silk @Anker base.json similarity index 87% rename from resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json rename to resources/profiles/Anker/filament/Generic PLA Silk @Anker base.json index aa3c69e034..2db35d21c1 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA Silk @base.json +++ b/resources/profiles/Anker/filament/Generic PLA Silk @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PLA Silk @base", + "name": "Generic PLA Silk @Anker base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFXyyfX6", + "filament_id": "OFesA6rF", "instantiation": "false", "filament_cost": [ "20" diff --git a/resources/profiles/Anker/filament/Generic PLA Silk @Anker.json b/resources/profiles/Anker/filament/Generic PLA Silk @Anker.json new file mode 100644 index 0000000000..9629ba4f0b --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA Silk @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @Anker", + "inherits": "Generic PLA Silk @Anker base", + "renamed_from": "Anker Generic PLA Silk", + "from": "system", + "setting_id": "URRIeNXIiIPjxbKL", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.2 nozzle.json b/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.2 nozzle.json new file mode 100644 index 0000000000..f32fb75a92 --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Anker 0.2 nozzle", + "inherits": "Generic PLA+ @Anker base", + "renamed_from": "Anker Generic PLA+ 0.2 nozzle", + "from": "system", + "setting_id": "5m3xLxdReqLlE2Jp", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Anker M5 0.2 nozzle", + "Anker M5 All-Metal 0.2 nozzle", + "Anker M5C 0.2 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.25 nozzle.json b/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.25 nozzle.json new file mode 100644 index 0000000000..291773e546 --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA+ @Anker 0.25 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Anker 0.25 nozzle", + "inherits": "Generic PLA+ @Anker base", + "renamed_from": "Anker Generic PLA+ 0.25 nozzle", + "from": "system", + "setting_id": "wwkWVDsg6SoeCS0F", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "3" + ], + "compatible_printers": [ + "Anker M5 0.25 nozzle", + "Anker M5 All-Metal 0.25 nozzle", + "Anker M5C 0.25 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json b/resources/profiles/Anker/filament/Generic PLA+ @Anker base.json similarity index 82% rename from resources/profiles/Anker/filament/Anker Generic PLA+ @base.json rename to resources/profiles/Anker/filament/Generic PLA+ @Anker base.json index 23906759c9..0ec8e81392 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA+ @base.json +++ b/resources/profiles/Anker/filament/Generic PLA+ @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PLA+ @base", + "name": "Generic PLA+ @Anker base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFIYTy8S", + "filament_id": "OFEWYR89", "instantiation": "false", "filament_cost": [ "25" diff --git a/resources/profiles/Anker/filament/Generic PLA+ @Anker.json b/resources/profiles/Anker/filament/Generic PLA+ @Anker.json new file mode 100644 index 0000000000..1381c839da --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA+ @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Anker", + "inherits": "Generic PLA+ @Anker base", + "renamed_from": "Anker Generic PLA+", + "from": "system", + "setting_id": "MDb4CH02FxbgPNjS", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json b/resources/profiles/Anker/filament/Generic PLA-CF @Anker base.json similarity index 88% rename from resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json rename to resources/profiles/Anker/filament/Generic PLA-CF @Anker base.json index cd7b72c3af..d1faf47a16 100644 --- a/resources/profiles/Anker/filament/Anker Generic PLA-CF @base.json +++ b/resources/profiles/Anker/filament/Generic PLA-CF @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic PLA-CF @base", + "name": "Generic PLA-CF @Anker base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFB0a3hT", + "filament_id": "OFWbdGsC", "instantiation": "false", "filament_type": [ "PLA-CF" diff --git a/resources/profiles/Anker/filament/Generic PLA-CF @Anker.json b/resources/profiles/Anker/filament/Generic PLA-CF @Anker.json new file mode 100644 index 0000000000..7be034702f --- /dev/null +++ b/resources/profiles/Anker/filament/Generic PLA-CF @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PLA-CF @Anker", + "inherits": "Generic PLA-CF @Anker base", + "renamed_from": "Anker Generic PLA-CF", + "from": "system", + "setting_id": "5AdjHUxRi8LCU4E9", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/filament/Anker Generic PVA @base.json b/resources/profiles/Anker/filament/Generic PVA @Anker base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic PVA @base.json rename to resources/profiles/Anker/filament/Generic PVA @Anker base.json index 68c9fce25b..d52cd9b729 100644 --- a/resources/profiles/Anker/filament/Anker Generic PVA @base.json +++ b/resources/profiles/Anker/filament/Generic PVA @Anker base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic PVA @base", + "name": "Generic PVA @Anker base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OFsCbVbN", + "filament_id": "OFDvXujf", "instantiation": "false" } diff --git a/resources/profiles/Anker/filament/Anker Generic ABS.json b/resources/profiles/Anker/filament/Generic PVA @Anker.json similarity index 65% rename from resources/profiles/Anker/filament/Anker Generic ABS.json rename to resources/profiles/Anker/filament/Generic PVA @Anker.json index 5588d39ff3..35a7dd456a 100644 --- a/resources/profiles/Anker/filament/Anker Generic ABS.json +++ b/resources/profiles/Anker/filament/Generic PVA @Anker.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Anker Generic ABS", - "inherits": "Anker Generic ABS @base", + "name": "Generic PVA @Anker", + "inherits": "Generic PVA @Anker base", + "renamed_from": "Anker Generic PVA", "from": "system", - "setting_id": "axEspGzFJnrnidm4", + "setting_id": "HXERDaP3AgzWtmiu", "instantiation": "true", "compatible_printers": [ "Anker M5 0.4 nozzle", diff --git a/resources/profiles/Anker/filament/Anker Generic TPU @base.json b/resources/profiles/Anker/filament/Generic TPU @Anker base.json similarity index 81% rename from resources/profiles/Anker/filament/Anker Generic TPU @base.json rename to resources/profiles/Anker/filament/Generic TPU @Anker base.json index 1399cfa459..233d7c8bc6 100644 --- a/resources/profiles/Anker/filament/Anker Generic TPU @base.json +++ b/resources/profiles/Anker/filament/Generic TPU @Anker base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Anker Generic TPU @base", + "name": "Generic TPU @Anker base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OF6tKa1Z", + "filament_id": "OFgbpcy9", "instantiation": "false", "filament_retraction_speed": "90", "filament_deretraction_speed": "50", diff --git a/resources/profiles/Anker/filament/Generic TPU @Anker.json b/resources/profiles/Anker/filament/Generic TPU @Anker.json new file mode 100644 index 0000000000..44204f1113 --- /dev/null +++ b/resources/profiles/Anker/filament/Generic TPU @Anker.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic TPU @Anker", + "inherits": "Generic TPU @Anker base", + "renamed_from": "Anker Generic TPU", + "from": "system", + "setting_id": "5YigkBBSP2RM1MbK", + "instantiation": "true", + "compatible_printers": [ + "Anker M5 0.4 nozzle", + "Anker M5 0.6 nozzle", + "Anker M5 All-Metal 0.4 nozzle", + "Anker M5 All-Metal 0.6 nozzle", + "Anker M5C 0.4 nozzle", + "Anker M5C 0.6 nozzle" + ] +} diff --git a/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json index e4543fa084..6389fba7bc 100644 --- a/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 0.2 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.2mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json index 88662e7bab..3feda012a3 100644 --- a/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 0.25 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.25mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json index 42810014ea..593cc53888 100644 --- a/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 0.4 nozzle.json @@ -13,7 +13,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.20mm Standard @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json index 11d8b3cf62..3e3dc25c62 100644 --- a/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 0.6 nozzle.json @@ -19,7 +19,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.30mm Standard 0.6 nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json index 0240748426..ba4083b2be 100644 --- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.2 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.2mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json index 8a5600df05..21201c4147 100644 --- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.25 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.25mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json index 6434e3c76b..948cc7a3b8 100644 --- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.4 nozzle.json @@ -13,7 +13,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.20mm Standard @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json index 4c5c7a82ef..2dcb107d93 100644 --- a/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5 All-Metal 0.6 nozzle.json @@ -19,7 +19,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.30mm Standard 0.6 nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5 All-Metal Hot End.json b/resources/profiles/Anker/machine/Anker M5 All-Metal Hot End.json index e6944177ad..7fade72381 100644 --- a/resources/profiles/Anker/machine/Anker M5 All-Metal Hot End.json +++ b/resources/profiles/Anker/machine/Anker M5 All-Metal Hot End.json @@ -7,5 +7,5 @@ "family": "Anker", "machine_tech": "FFF", "model_id": "V8111v2", - "default_materials": "Anker Generic PLA;Anker Generic PLA+;Anker Generic PLA Silk;Anker Generic TPU;Anker Generic PETG" + "default_materials": "Generic PLA @Anker;Generic PLA+ @Anker;Generic PLA Silk @Anker;Generic TPU @Anker;Generic PETG @Anker" } diff --git a/resources/profiles/Anker/machine/Anker M5.json b/resources/profiles/Anker/machine/Anker M5.json index 489151a669..5c9839d1ff 100644 --- a/resources/profiles/Anker/machine/Anker M5.json +++ b/resources/profiles/Anker/machine/Anker M5.json @@ -7,5 +7,5 @@ "family": "Anker", "machine_tech": "FFF", "model_id": "V8111", - "default_materials": "Anker Generic PLA;Anker Generic PLA+;Anker Generic PLA Silk;Anker Generic TPU;Anker Generic PETG" + "default_materials": "Generic PLA @Anker;Generic PLA+ @Anker;Generic PLA Silk @Anker;Generic TPU @Anker;Generic PETG @Anker" } diff --git a/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json index b88d21dae3..a5db1517a7 100644 --- a/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5C 0.2 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.2mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json index 7aec134ac4..fd5c40ea05 100644 --- a/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5C 0.25 nozzle.json @@ -16,7 +16,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.10mm Standard 0.25mm nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json index 573784f2f3..7dd6f8036b 100644 --- a/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5C 0.4 nozzle.json @@ -13,7 +13,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.20mm Standard @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json b/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json index d6d1212b63..5323967ae2 100644 --- a/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json +++ b/resources/profiles/Anker/machine/Anker M5C 0.6 nozzle.json @@ -19,7 +19,7 @@ "auxiliary_fan": "0", "bed_exclude_area": [], "default_filament_profile": [ - "Anker Generic PLA+" + "Generic PLA+ @Anker" ], "default_print_profile": "0.30mm Standard 0.6 nozzle @Anker", "extruder_clearance_height_to_lid": "250", diff --git a/resources/profiles/Anker/machine/Anker M5C.json b/resources/profiles/Anker/machine/Anker M5C.json index d709bfc4c3..cf539851e5 100644 --- a/resources/profiles/Anker/machine/Anker M5C.json +++ b/resources/profiles/Anker/machine/Anker M5C.json @@ -7,5 +7,5 @@ "family": "Anker", "machine_tech": "FFF", "model_id": "V81101C3", - "default_materials": "Anker Generic PLA;Anker Generic PLA+;Anker Generic PLA Silk;Anker Generic TPU;Anker Generic PETG" + "default_materials": "Generic PLA @Anker;Generic PLA+ @Anker;Generic PLA Silk @Anker;Generic TPU @Anker;Generic PETG @Anker" } diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json index d0a5ad0852..205fd359d8 100644 --- a/resources/profiles/Anycubic.json +++ b/resources/profiles/Anycubic.json @@ -1,1234 +1,1234 @@ -{ - "name": "Anycubic", - "version": "02.04.00.02", - "force_update": "0", - "description": "Anycubic configurations", - "machine_model_list": [ - { - "name": "Anycubic 4Max Pro", - "sub_path": "machine/Anycubic 4Max Pro.json" - }, - { - "name": "Anycubic 4Max Pro 2", - "sub_path": "machine/Anycubic 4Max Pro 2.json" - }, - { - "name": "Anycubic Chiron", - "sub_path": "machine/Anycubic Chiron.json" - }, - { - "name": "Anycubic Kobra", - "sub_path": "machine/Anycubic Kobra.json" - }, - { - "name": "Anycubic Kobra 2", - "sub_path": "machine/Anycubic Kobra 2.json" - }, - { - "name": "Anycubic Kobra 2 Max", - "sub_path": "machine/Anycubic Kobra 2 Max.json" - }, - { - "name": "Anycubic Kobra 2 Neo", - "sub_path": "machine/Anycubic Kobra 2 Neo.json" - }, - { - "name": "Anycubic Kobra 2 Plus", - "sub_path": "machine/Anycubic Kobra 2 Plus.json" - }, - { - "name": "Anycubic Kobra 2 Pro", - "sub_path": "machine/Anycubic Kobra 2 Pro.json" - }, - { - "name": "Anycubic Kobra 3", - "sub_path": "machine/Anycubic Kobra 3.json" - }, - { - "name": "Anycubic Kobra 3 Max", - "sub_path": "machine/Anycubic Kobra 3 Max.json" - }, - { - "name": "Anycubic Kobra Max", - "sub_path": "machine/Anycubic Kobra Max.json" - }, - { - "name": "Anycubic Kobra Neo", - "sub_path": "machine/Anycubic Kobra Neo.json" - }, - { - "name": "Anycubic Kobra Plus", - "sub_path": "machine/Anycubic Kobra Plus.json" - }, - { - "name": "Anycubic Kobra S1", - "sub_path": "machine/Anycubic Kobra S1.json" - }, - { - "name": "Anycubic Kobra S1 Max", - "sub_path": "machine/Anycubic Kobra S1 Max.json" - }, - { - "name": "Anycubic Kobra X", - "sub_path": "machine/Anycubic Kobra X.json" - }, - { - "name": "Anycubic Predator", - "sub_path": "machine/Anycubic Predator.json" - }, - { - "name": "Anycubic Vyper", - "sub_path": "machine/Anycubic Vyper.json" - }, - { - "name": "Anycubic i3 Mega S", - "sub_path": "machine/Anycubic i3 Mega S.json" - } - ], - "process_list": [ - { - "name": "fdm_process_common", - "sub_path": "process/fdm_process_common.json" - }, - { - "name": "0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.08mm Standard @Anycubic Kobra X", - "sub_path": "process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.10mm Detail @Anycubic Kobra 3 0.2 nozzle", - "sub_path": "process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json" - }, - { - "name": "0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "0.12mm Detail @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "0.12mm High Quality @Anycubic Kobra X", - "sub_path": "process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.12mm Standard @Anycubic Kobra X", - "sub_path": "process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.15mm Optimal @Anycubic 4MaxPro2", - "sub_path": "process/0.15mm Optimal @Anycubic 4MaxPro2.json" - }, - { - "name": "0.15mm Optimal @Anycubic Chiron", - "sub_path": "process/0.15mm Optimal @Anycubic Chiron.json" - }, - { - "name": "0.15mm Optimal @Anycubic Kobra", - "sub_path": "process/0.15mm Optimal @Anycubic Kobra.json" - }, - { - "name": "0.15mm Optimal @Anycubic Kobra2", - "sub_path": "process/0.15mm Optimal @Anycubic Kobra2.json" - }, - { - "name": "0.15mm Optimal @Anycubic KobraMax", - "sub_path": "process/0.15mm Optimal @Anycubic KobraMax.json" - }, - { - "name": "0.15mm Optimal @Anycubic KobraPlus", - "sub_path": "process/0.15mm Optimal @Anycubic KobraPlus.json" - }, - { - "name": "0.15mm Optimal @Anycubic Vyper", - "sub_path": "process/0.15mm Optimal @Anycubic Vyper.json" - }, - { - "name": "0.15mm Optimal @Anycubic i3MegaS", - "sub_path": "process/0.15mm Optimal @Anycubic i3MegaS.json" - }, - { - "name": "0.16mm High Quality @Anycubic Kobra X", - "sub_path": "process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle", - "sub_path": "process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json" - }, - { - "name": "0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "0.16mm Standard @Anycubic Kobra X", - "sub_path": "process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "0.20mm High Quality @Anycubic Kobra X", - "sub_path": "process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic 4MaxPro", - "sub_path": "process/0.20mm Standard @Anycubic 4MaxPro.json" - }, - { - "name": "0.20mm Standard @Anycubic 4MaxPro2", - "sub_path": "process/0.20mm Standard @Anycubic 4MaxPro2.json" - }, - { - "name": "0.20mm Standard @Anycubic Chiron", - "sub_path": "process/0.20mm Standard @Anycubic Chiron.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra", - "sub_path": "process/0.20mm Standard @Anycubic Kobra.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra X", - "sub_path": "process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra2", - "sub_path": "process/0.20mm Standard @Anycubic Kobra2.json" - }, - { - "name": "0.20mm Standard @Anycubic KobraMax", - "sub_path": "process/0.20mm Standard @Anycubic KobraMax.json" - }, - { - "name": "0.20mm Standard @Anycubic KobraPlus", - "sub_path": "process/0.20mm Standard @Anycubic KobraPlus.json" - }, - { - "name": "0.20mm Standard @Anycubic Predator", - "sub_path": "process/0.20mm Standard @Anycubic Predator.json" - }, - { - "name": "0.20mm Standard @Anycubic Vyper", - "sub_path": "process/0.20mm Standard @Anycubic Vyper.json" - }, - { - "name": "0.20mm Standard @Anycubic i3MegaS", - "sub_path": "process/0.20mm Standard @Anycubic i3MegaS.json" - }, - { - "name": "0.24mm Draft @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra X", - "sub_path": "process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle", - "sub_path": "process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json" - }, - { - "name": "0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "0.28mm Standard @Anycubic Kobra X", - "sub_path": "process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "0.30mm Draft @Anycubic 4MaxPro2", - "sub_path": "process/0.30mm Draft @Anycubic 4MaxPro2.json" - }, - { - "name": "0.30mm Draft @Anycubic Chiron", - "sub_path": "process/0.30mm Draft @Anycubic Chiron.json" - }, - { - "name": "0.30mm Draft @Anycubic Kobra", - "sub_path": "process/0.30mm Draft @Anycubic Kobra.json" - }, - { - "name": "0.30mm Draft @Anycubic Kobra2", - "sub_path": "process/0.30mm Draft @Anycubic Kobra2.json" - }, - { - "name": "0.30mm Draft @Anycubic KobraMax", - "sub_path": "process/0.30mm Draft @Anycubic KobraMax.json" - }, - { - "name": "0.30mm Draft @Anycubic KobraPlus", - "sub_path": "process/0.30mm Draft @Anycubic KobraPlus.json" - }, - { - "name": "0.30mm Draft @Anycubic Vyper", - "sub_path": "process/0.30mm Draft @Anycubic Vyper.json" - }, - { - "name": "0.30mm Draft @Anycubic i3MegaS", - "sub_path": "process/0.30mm Draft @Anycubic i3MegaS.json" - }, - { - "name": "0.30mm Standard @Anycubic Kobra 3 0.6 nozzle", - "sub_path": "process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json" - }, - { - "name": "0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "0.40mm Standard @Anycubic Kobra 3 0.8 nozzle", - "sub_path": "process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json" - }, - { - "name": "0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "0.08mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.08mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.12mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.12mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.16mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.16mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.16mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.16mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.20mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.20mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.20mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.20mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "0.28mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "process/0.28mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - - { - "name": "0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "process/0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "0.06mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "process/0.06mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "process/0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "process/0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "0.14mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "process/0.14mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - - { - "name": "0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "process/0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "0.18mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "process/0.18mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "0.36mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "process/0.36mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "0.42mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "process/0.42mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - - { - "name": "0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "process/0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "0.32mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "process/0.32mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "0.48mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "process/0.48mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "process/0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" - } - - ], - "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic Generic ABS", - "sub_path": "filament/Anycubic Generic ABS.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic Generic ASA", - "sub_path": "filament/Anycubic Generic ASA.json" - }, - { - "name": "Anycubic Generic PA", - "sub_path": "filament/Anycubic Generic PA.json" - }, - { - "name": "Anycubic Generic PA-CF", - "sub_path": "filament/Anycubic Generic PA-CF.json" - }, - { - "name": "Fiberon PA6-CF20 @Anycubic Kobra S1", - "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json" - }, - { - "name": "Anycubic Generic PC", - "sub_path": "filament/Anycubic Generic PC.json" - }, - { - "name": "Anycubic Generic PETG", - "sub_path": "filament/Anycubic Generic PETG.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Generic PETG @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic Generic PLA", - "sub_path": "filament/Anycubic Generic PLA.json" - }, - { - "name": "Anycubic Generic PLA-CF", - "sub_path": "filament/Anycubic Generic PLA-CF.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Panchroma PLA @Anycubic Kobra S1", - "sub_path": "filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json" - }, - { - "name": "Polymaker PLA Pro @Anycubic Kobra S1", - "sub_path": "filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json" - }, - { - "name": "Polymaker PLA Pro Metallic @Anycubic Kobra S1", - "sub_path": "filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json" - }, - { - "name": "Anycubic Generic PVA", - "sub_path": "filament/Anycubic Generic PVA.json" - }, - { - "name": "Anycubic PVA @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic Generic TPU", - "sub_path": "filament/Anycubic Generic TPU.json" - }, - { - "name": "Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle", - "sub_path": "filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle", - "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Generic ABS @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Generic TPU @Anycubic Kobra 3 0.4 nozzle", - "sub_path": "filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - - { - "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - - { - "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - - { - "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json" - } - - ], - "machine_list": [ - { - "name": "fdm_machine_common", - "sub_path": "machine/fdm_machine_common.json" - }, - { - "name": "Anycubic 4Max Pro 0.4 nozzle", - "sub_path": "machine/Anycubic 4Max Pro 0.4 nozzle.json" - }, - { - "name": "Anycubic 4Max Pro 2 0.4 nozzle", - "sub_path": "machine/Anycubic 4Max Pro 2 0.4 nozzle.json" - }, - { - "name": "Anycubic Chiron 0.4 nozzle", - "sub_path": "machine/Anycubic Chiron 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 2 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 2 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 2 Max 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 2 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 2 Neo 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 2 Neo 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 2 Plus 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 2 Plus 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 2 Pro 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 2 Pro 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 0.2 nozzle", - "sub_path": "machine/Anycubic Kobra 3 0.2 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 3 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 0.6 nozzle", - "sub_path": "machine/Anycubic Kobra 3 0.6 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 0.8 nozzle", - "sub_path": "machine/Anycubic Kobra 3 0.8 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 Max 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra 3 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 Max 0.6 nozzle", - "sub_path": "machine/Anycubic Kobra 3 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic Kobra 3 Max 0.8 nozzle", - "sub_path": "machine/Anycubic Kobra 3 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic Kobra Max 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra Max 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra Neo 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra Neo 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra Plus 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra Plus 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra S1 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra S1 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra S1 Max 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra S1 Max 0.4 nozzle.json" - }, - { - "name": "Anycubic Kobra S1 Max 0.25 nozzle", - "sub_path": "machine/Anycubic Kobra S1 Max 0.25 nozzle.json" - }, - { - "name": "Anycubic Kobra S1 Max 0.6 nozzle", - "sub_path": "machine/Anycubic Kobra S1 Max 0.6 nozzle.json" - }, - { - "name": "Anycubic Kobra S1 Max 0.8 nozzle", - "sub_path": "machine/Anycubic Kobra S1 Max 0.8 nozzle.json" - }, - { - "name": "Anycubic Kobra X 0.4 nozzle", - "sub_path": "machine/Anycubic Kobra X 0.4 nozzle.json" - }, - { - "name": "Anycubic Predator 0.4 nozzle", - "sub_path": "machine/Anycubic Predator 0.4 nozzle.json" - }, - { - "name": "Anycubic Vyper 0.4 nozzle", - "sub_path": "machine/Anycubic Vyper 0.4 nozzle.json" - }, - { - "name": "Anycubic i3 Mega S 0.4 nozzle", - "sub_path": "machine/Anycubic i3 Mega S 0.4 nozzle.json" - } - ] -} +{ + "name": "Anycubic", + "version": "02.04.00.03", + "force_update": "0", + "description": "Anycubic configurations", + "machine_model_list": [ + { + "name": "Anycubic 4Max Pro", + "sub_path": "machine/Anycubic 4Max Pro.json" + }, + { + "name": "Anycubic 4Max Pro 2", + "sub_path": "machine/Anycubic 4Max Pro 2.json" + }, + { + "name": "Anycubic Chiron", + "sub_path": "machine/Anycubic Chiron.json" + }, + { + "name": "Anycubic Kobra", + "sub_path": "machine/Anycubic Kobra.json" + }, + { + "name": "Anycubic Kobra 2", + "sub_path": "machine/Anycubic Kobra 2.json" + }, + { + "name": "Anycubic Kobra 2 Max", + "sub_path": "machine/Anycubic Kobra 2 Max.json" + }, + { + "name": "Anycubic Kobra 2 Neo", + "sub_path": "machine/Anycubic Kobra 2 Neo.json" + }, + { + "name": "Anycubic Kobra 2 Plus", + "sub_path": "machine/Anycubic Kobra 2 Plus.json" + }, + { + "name": "Anycubic Kobra 2 Pro", + "sub_path": "machine/Anycubic Kobra 2 Pro.json" + }, + { + "name": "Anycubic Kobra 3", + "sub_path": "machine/Anycubic Kobra 3.json" + }, + { + "name": "Anycubic Kobra 3 Max", + "sub_path": "machine/Anycubic Kobra 3 Max.json" + }, + { + "name": "Anycubic Kobra Max", + "sub_path": "machine/Anycubic Kobra Max.json" + }, + { + "name": "Anycubic Kobra Neo", + "sub_path": "machine/Anycubic Kobra Neo.json" + }, + { + "name": "Anycubic Kobra Plus", + "sub_path": "machine/Anycubic Kobra Plus.json" + }, + { + "name": "Anycubic Kobra S1", + "sub_path": "machine/Anycubic Kobra S1.json" + }, + { + "name": "Anycubic Kobra S1 Max", + "sub_path": "machine/Anycubic Kobra S1 Max.json" + }, + { + "name": "Anycubic Kobra X", + "sub_path": "machine/Anycubic Kobra X.json" + }, + { + "name": "Anycubic Predator", + "sub_path": "machine/Anycubic Predator.json" + }, + { + "name": "Anycubic Vyper", + "sub_path": "machine/Anycubic Vyper.json" + }, + { + "name": "Anycubic i3 Mega S", + "sub_path": "machine/Anycubic i3 Mega S.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.08mm HighDetail @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.08mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.08mm Standard @Anycubic Kobra X", + "sub_path": "process/0.08mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.10mm Detail @Anycubic Kobra 3 0.2 nozzle", + "sub_path": "process/0.10mm Detail @Anycubic Kobra 3 0.2 nozzle.json" + }, + { + "name": "0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "process/0.12mm Detail @Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "0.12mm Detail @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.12mm Detail @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "process/0.12mm Detail @Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "0.12mm High Quality @Anycubic Kobra X", + "sub_path": "process/0.12mm High Quality @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.12mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.12mm Standard @Anycubic Kobra X", + "sub_path": "process/0.12mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.15mm Optimal @Anycubic 4MaxPro2", + "sub_path": "process/0.15mm Optimal @Anycubic 4MaxPro2.json" + }, + { + "name": "0.15mm Optimal @Anycubic Chiron", + "sub_path": "process/0.15mm Optimal @Anycubic Chiron.json" + }, + { + "name": "0.15mm Optimal @Anycubic Kobra", + "sub_path": "process/0.15mm Optimal @Anycubic Kobra.json" + }, + { + "name": "0.15mm Optimal @Anycubic Kobra2", + "sub_path": "process/0.15mm Optimal @Anycubic Kobra2.json" + }, + { + "name": "0.15mm Optimal @Anycubic KobraMax", + "sub_path": "process/0.15mm Optimal @Anycubic KobraMax.json" + }, + { + "name": "0.15mm Optimal @Anycubic KobraPlus", + "sub_path": "process/0.15mm Optimal @Anycubic KobraPlus.json" + }, + { + "name": "0.15mm Optimal @Anycubic Vyper", + "sub_path": "process/0.15mm Optimal @Anycubic Vyper.json" + }, + { + "name": "0.15mm Optimal @Anycubic i3MegaS", + "sub_path": "process/0.15mm Optimal @Anycubic i3MegaS.json" + }, + { + "name": "0.16mm High Quality @Anycubic Kobra X", + "sub_path": "process/0.16mm High Quality @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Anycubic Kobra 2 Pro 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "process/0.16mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.16mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "process/0.16mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "0.16mm Standard @Anycubic Kobra X", + "sub_path": "process/0.16mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "process/0.18mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "0.20mm High Quality @Anycubic Kobra X", + "sub_path": "process/0.20mm High Quality @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic 4MaxPro", + "sub_path": "process/0.20mm Standard @Anycubic 4MaxPro.json" + }, + { + "name": "0.20mm Standard @Anycubic 4MaxPro2", + "sub_path": "process/0.20mm Standard @Anycubic 4MaxPro2.json" + }, + { + "name": "0.20mm Standard @Anycubic Chiron", + "sub_path": "process/0.20mm Standard @Anycubic Chiron.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra", + "sub_path": "process/0.20mm Standard @Anycubic Kobra.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Max 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Plus 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 2 Pro 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra X", + "sub_path": "process/0.20mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra2", + "sub_path": "process/0.20mm Standard @Anycubic Kobra2.json" + }, + { + "name": "0.20mm Standard @Anycubic KobraMax", + "sub_path": "process/0.20mm Standard @Anycubic KobraMax.json" + }, + { + "name": "0.20mm Standard @Anycubic KobraPlus", + "sub_path": "process/0.20mm Standard @Anycubic KobraPlus.json" + }, + { + "name": "0.20mm Standard @Anycubic Predator", + "sub_path": "process/0.20mm Standard @Anycubic Predator.json" + }, + { + "name": "0.20mm Standard @Anycubic Vyper", + "sub_path": "process/0.20mm Standard @Anycubic Vyper.json" + }, + { + "name": "0.20mm Standard @Anycubic i3MegaS", + "sub_path": "process/0.20mm Standard @Anycubic i3MegaS.json" + }, + { + "name": "0.24mm Draft @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.24mm Draft @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra X", + "sub_path": "process/0.24mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle", + "sub_path": "process/0.28mm Draft @Anycubic Kobra 2 Pro 0.4 nozzle.json" + }, + { + "name": "0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "process/0.28mm Standard @Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "process/0.28mm Standard @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "process/0.28mm Standard @Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "0.28mm Standard @Anycubic Kobra X", + "sub_path": "process/0.28mm Standard @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "process/0.28mm SuperDraft @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "0.30mm Draft @Anycubic 4MaxPro2", + "sub_path": "process/0.30mm Draft @Anycubic 4MaxPro2.json" + }, + { + "name": "0.30mm Draft @Anycubic Chiron", + "sub_path": "process/0.30mm Draft @Anycubic Chiron.json" + }, + { + "name": "0.30mm Draft @Anycubic Kobra", + "sub_path": "process/0.30mm Draft @Anycubic Kobra.json" + }, + { + "name": "0.30mm Draft @Anycubic Kobra2", + "sub_path": "process/0.30mm Draft @Anycubic Kobra2.json" + }, + { + "name": "0.30mm Draft @Anycubic KobraMax", + "sub_path": "process/0.30mm Draft @Anycubic KobraMax.json" + }, + { + "name": "0.30mm Draft @Anycubic KobraPlus", + "sub_path": "process/0.30mm Draft @Anycubic KobraPlus.json" + }, + { + "name": "0.30mm Draft @Anycubic Vyper", + "sub_path": "process/0.30mm Draft @Anycubic Vyper.json" + }, + { + "name": "0.30mm Draft @Anycubic i3MegaS", + "sub_path": "process/0.30mm Draft @Anycubic i3MegaS.json" + }, + { + "name": "0.30mm Standard @Anycubic Kobra 3 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Anycubic Kobra 3 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "0.40mm Standard @Anycubic Kobra 3 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "0.08mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.08mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.12mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.12mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.16mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.16mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.16mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.16mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.20mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.20mm High Quality @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "0.28mm Standard @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "process/0.28mm Standard @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + + { + "name": "0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "process/0.10mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "0.06mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "process/0.06mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "process/0.08mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "process/0.12mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "0.14mm Standard @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "process/0.14mm Standard @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + + { + "name": "0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "0.18mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "process/0.18mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "0.36mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "0.42mm Standard @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + + { + "name": "0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "0.24mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "0.32mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "process/0.56mm Standard @Anycubic Kobra S1 Max 0.8 nozzle.json" + } + + ], + "filament_list": [ + { + "name": "fdm_filament_common", + "sub_path": "filament/fdm_filament_common.json" + }, + { + "name": "fdm_filament_abs", + "sub_path": "filament/fdm_filament_abs.json" + }, + { + "name": "fdm_filament_asa", + "sub_path": "filament/fdm_filament_asa.json" + }, + { + "name": "fdm_filament_pa", + "sub_path": "filament/fdm_filament_pa.json" + }, + { + "name": "fdm_filament_pc", + "sub_path": "filament/fdm_filament_pc.json" + }, + { + "name": "fdm_filament_pet", + "sub_path": "filament/fdm_filament_pet.json" + }, + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "fdm_filament_pva", + "sub_path": "filament/fdm_filament_pva.json" + }, + { + "name": "fdm_filament_tpu", + "sub_path": "filament/fdm_filament_tpu.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic ABS @Anycubic", + "sub_path": "filament/Generic ABS @Anycubic.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic ASA @Anycubic", + "sub_path": "filament/Generic ASA @Anycubic.json" + }, + { + "name": "Generic PA @Anycubic", + "sub_path": "filament/Generic PA @Anycubic.json" + }, + { + "name": "Generic PA-CF @Anycubic", + "sub_path": "filament/Generic PA-CF @Anycubic.json" + }, + { + "name": "Fiberon PA6-CF20 @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Fiberon PA6-CF20 @Anycubic Kobra S1.json" + }, + { + "name": "Generic PC @Anycubic", + "sub_path": "filament/Generic PC @Anycubic.json" + }, + { + "name": "Generic PETG @Anycubic", + "sub_path": "filament/Generic PETG @Anycubic.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic PETG @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Generic PETG @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Generic PLA @Anycubic", + "sub_path": "filament/Generic PLA @Anycubic.json" + }, + { + "name": "Generic PLA-CF @Anycubic", + "sub_path": "filament/Generic PLA-CF @Anycubic.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Panchroma PLA @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Panchroma PLA @Anycubic Kobra S1.json" + }, + { + "name": "Polymaker PLA Pro @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Polymaker PLA Pro @Anycubic Kobra S1.json" + }, + { + "name": "Polymaker PLA Pro Metallic @Anycubic Kobra S1", + "sub_path": "filament/Polymaker/Polymaker PLA Pro Metallic @Anycubic Kobra S1.json" + }, + { + "name": "Generic PVA @Anycubic", + "sub_path": "filament/Generic PVA @Anycubic.json" + }, + { + "name": "Anycubic PVA @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic PVA @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic TPU @Anycubic", + "sub_path": "filament/Generic TPU @Anycubic.json" + }, + { + "name": "Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "filament/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic TPU @Anycubic Kobra S1 0.4 nozzle", + "sub_path": "filament/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle", + "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Generic ABS @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Generic TPU @Anycubic Kobra 3 0.4 nozzle", + "sub_path": "filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "filament/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + + { + "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + + { + "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + + { + "name": "Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "filament/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle.json" + } + + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "Anycubic 4Max Pro 0.4 nozzle", + "sub_path": "machine/Anycubic 4Max Pro 0.4 nozzle.json" + }, + { + "name": "Anycubic 4Max Pro 2 0.4 nozzle", + "sub_path": "machine/Anycubic 4Max Pro 2 0.4 nozzle.json" + }, + { + "name": "Anycubic Chiron 0.4 nozzle", + "sub_path": "machine/Anycubic Chiron 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 2 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 2 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 2 Max 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 2 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 2 Neo 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 2 Neo 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 2 Plus 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 2 Plus 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 2 Pro 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 2 Pro 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 0.2 nozzle", + "sub_path": "machine/Anycubic Kobra 3 0.2 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 3 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 0.6 nozzle", + "sub_path": "machine/Anycubic Kobra 3 0.6 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 0.8 nozzle", + "sub_path": "machine/Anycubic Kobra 3 0.8 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 Max 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra 3 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 Max 0.6 nozzle", + "sub_path": "machine/Anycubic Kobra 3 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic Kobra 3 Max 0.8 nozzle", + "sub_path": "machine/Anycubic Kobra 3 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic Kobra Max 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra Max 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra Neo 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra Neo 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra Plus 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra Plus 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra S1 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra S1 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra S1 Max 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra S1 Max 0.4 nozzle.json" + }, + { + "name": "Anycubic Kobra S1 Max 0.25 nozzle", + "sub_path": "machine/Anycubic Kobra S1 Max 0.25 nozzle.json" + }, + { + "name": "Anycubic Kobra S1 Max 0.6 nozzle", + "sub_path": "machine/Anycubic Kobra S1 Max 0.6 nozzle.json" + }, + { + "name": "Anycubic Kobra S1 Max 0.8 nozzle", + "sub_path": "machine/Anycubic Kobra S1 Max 0.8 nozzle.json" + }, + { + "name": "Anycubic Kobra X 0.4 nozzle", + "sub_path": "machine/Anycubic Kobra X 0.4 nozzle.json" + }, + { + "name": "Anycubic Predator 0.4 nozzle", + "sub_path": "machine/Anycubic Predator 0.4 nozzle.json" + }, + { + "name": "Anycubic Vyper 0.4 nozzle", + "sub_path": "machine/Anycubic Vyper 0.4 nozzle.json" + }, + { + "name": "Anycubic i3 Mega S 0.4 nozzle", + "sub_path": "machine/Anycubic i3 Mega S 0.4 nozzle.json" + } + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json index c726bbcca0..790d365ee5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic ASA", + "inherits": "Generic ASA @Anycubic", "from": "system", "setting_id": "U66DGcpZeZ24VfPe", "filament_id": "OF0yFLkY", diff --git a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json index d44a266643..213ee1ce70 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PETG", + "inherits": "Generic PETG @Anycubic", "from": "system", "setting_id": "qe2wYLf7CEMjmfxj", "filament_id": "OFo6n2pB", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json index 30589ac8d1..7faa84782c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "XIq1GeZdHqOl9Gtr", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json index 5b11a287e2..583473ed30 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "EaVdXQHAyocYUCez", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json index 8dd7f867ec..8e531b88a4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "UpC1Qut0kjYRD9po", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json index de37d66f03..01b3d45f23 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "ELCOJflyY3DfpPAH", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json index 6110cf1fe4..2898403b36 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "enkHPcq0yYHsRk7g", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json index 81f8dbb4dd..a4e34756ec 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "qw4uL96miCLTNE7b", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json index f03141136c..af7e374dc7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "KrlWgkC2kVdSRNUx", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json index 02b0a7f46b..5c8936316f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "gK0NhTnxz1VBNHbu", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json index f63d778029..80c120870e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "GblA3LvgCL63V7Qx", "filament_id": "OFmjN2bc", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json index ca56418084..9cb1eef59f 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "m7o0ek6sbOavVUpG", "filament_id": "OF5PtjTp", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json index d4805c6bde..968eba0ec4 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -1,339 +1,339 @@ -{ - "type": "filament", - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", - "inherits": "Anycubic Generic PLA", - "from": "system", - "setting_id": "NVrxrFGYkHRyzrFq", - "filament_id": "OF5PtjTp", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.4 nozzle" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "activate_air_filtration": [ - "1" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0,0,0\n0,0,0" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "85" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "0" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "30" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "fan_p2_speed_before_x_layers": [ - "50" - ], - "filament_adhesiveness_category": [ - "100" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode " - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "55" - ], - "hot_plate_temp_initial_layer": [ - "55" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "-1" - ], - "nozzle_temperature": [ - "190" - ], - "nozzle_temperature_BRASS": [ - "220" - ], - "nozzle_temperature_HS": [ - "220" - ], - "nozzle_temperature_initial_layer": [ - "210" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "220" - ], - "nozzle_temperature_initial_layer_HS": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.03" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "45" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "55" - ], - "textured_plate_temp_initial_layer": [ - "55" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", + "inherits": "Generic PLA @Anycubic", + "from": "system", + "setting_id": "NVrxrFGYkHRyzrFq", + "filament_id": "OF5PtjTp", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.4 nozzle" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "activate_air_filtration": [ + "1" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "85" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "30" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "fan_p2_speed_before_x_layers": [ + "50" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode " + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "-1" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_BRASS": [ + "220" + ], + "nozzle_temperature_HS": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "220" + ], + "nozzle_temperature_initial_layer_HS": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.03" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json index 16034c2b27..7d8be15657 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -1,351 +1,351 @@ -{ - "type": "filament", - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", - "inherits": "Anycubic Generic PLA", - "from": "system", - "setting_id": "swLSkqq7X3PhbRiQ", - "filament_id": "OF5PtjTp", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.6 nozzle" - ], - "filament_flow_ratio": [ - "0.97" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "60" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "5" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "5" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "filament_adhesiveness_category": [ - "100" - ], - "filament_change_length": [ - "10" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode\n" - ], - "filament_flush_temp": [ - "nil" - ], - "filament_flush_volumetric_speed": [ - "nil" - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_prime_volume": [ - "45" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_ramming_volumetric_speed": [ - "-1" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "1" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_BRASS": [ - "210" - ], - "nozzle_temperature_HS": [ - "210" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "220" - ], - "nozzle_temperature_initial_layer_HS": [ - "220" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.03" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "55" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "60" - ], - "textured_plate_temp_initial_layer": [ - "60" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", + "inherits": "Generic PLA @Anycubic", + "from": "system", + "setting_id": "swLSkqq7X3PhbRiQ", + "filament_id": "OF5PtjTp", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.6 nozzle" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "60" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "5" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "5" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ], + "filament_flush_temp": [ + "nil" + ], + "filament_flush_volumetric_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_prime_volume": [ + "45" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_BRASS": [ + "210" + ], + "nozzle_temperature_HS": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "220" + ], + "nozzle_temperature_initial_layer_HS": [ + "220" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.03" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "55" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json index 64832c85ab..26181302ec 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -1,351 +1,351 @@ -{ - "type": "filament", - "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", - "inherits": "Anycubic Generic PLA", - "from": "system", - "setting_id": "rsOyKXt6G37Ze51l", - "filament_id": "OF5PtjTp", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.8 nozzle" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "60" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "5" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "5" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "filament_adhesiveness_category": [ - "100" - ], - "filament_change_length": [ - "10" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode\n" - ], - "filament_flush_temp": [ - "nil" - ], - "filament_flush_volumetric_speed": [ - "nil" - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_prime_volume": [ - "45" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_ramming_volumetric_speed": [ - "-1" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "55" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_BRASS": [ - "210" - ], - "nozzle_temperature_HS": [ - "210" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "210" - ], - "nozzle_temperature_initial_layer_HS": [ - "210" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.03" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "45" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "55" - ], - "textured_plate_temp_initial_layer": [ - "60" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", + "inherits": "Generic PLA @Anycubic", + "from": "system", + "setting_id": "rsOyKXt6G37Ze51l", + "filament_id": "OF5PtjTp", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.8 nozzle" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "60" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "5" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "5" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ], + "filament_flush_temp": [ + "nil" + ], + "filament_flush_volumetric_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_prime_volume": [ + "45" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_BRASS": [ + "210" + ], + "nozzle_temperature_HS": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "210" + ], + "nozzle_temperature_initial_layer_HS": [ + "210" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.03" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json index 725a9d3f90..5b069135b3 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "Sio4qE22N2krNjx1", "filament_id": "OFjVOWfJ", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json index 2c25648b80..474deb3deb 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "kVOaVF3YyfGrXTdW", "filament_id": "OFIE3vOf", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json index 99b2c3672d..d7832ced4c 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "1EID0A7FceyLzja5", "filament_id": "OFCp3Bgo", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json index 8365eee514..0ea21e81ed 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "zAUNjIY9cGOO3Np5", "filament_id": "OFrGJ4tR", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json index 1733e1c10a..59fd701496 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic PLA", + "inherits": "Generic PLA @Anycubic", "from": "system", "setting_id": "1va1bLu3J0b5GQt3", "filament_id": "OFnmp6rt", diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json index 149b3da021..bbee6ae226 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle.json @@ -1,336 +1,336 @@ -{ - "type": "filament", - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "inherits": "Anycubic Generic PLA-CF", - "from": "system", - "setting_id": "Y9mFng36B2vAnP19", - "filament_id": "OFZ0mR5b", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA-CF" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.4 nozzle" - ], - "filament_flow_ratio": [ - "0.94" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0,0,0\n0,0,0" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "85" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "5" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "5" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "filament_adhesiveness_category": [ - "100" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "0" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode\n" - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_retract_before_wipe": [ - "0%" - ], - "filament_retract_lift_above": [ - "0" - ], - "filament_retract_lift_below": [ - "349" - ], - "filament_retract_lift_enforce": [ - "All Surfaces" - ], - "filament_retract_restart_extra": [ - "0" - ], - "filament_retract_when_changing_layer": [ - "1" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "0.4" - ], - "filament_retraction_minimum_travel": [ - "1" - ], - "filament_retraction_speed": [ - "40" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "1" - ], - "filament_wipe_distance": [ - "1" - ], - "filament_z_hop": [ - "0.4" - ], - "filament_z_hop_types": [ - "Auto Lift" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "55" - ], - "hot_plate_temp_initial_layer": [ - "55" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "-1" - ], - "nozzle_temperature": [ - "225" - ], - "nozzle_temperature_BRASS": [ - "230" - ], - "nozzle_temperature_HS": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "235" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "240" - ], - "nozzle_temperature_initial_layer_HS": [ - "240" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.03" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "4" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "45" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "55" - ], - "textured_plate_temp_initial_layer": [ - "55" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", + "inherits": "Generic PLA-CF @Anycubic", + "from": "system", + "setting_id": "Y9mFng36B2vAnP19", + "filament_id": "OFZ0mR5b", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA-CF" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.4 nozzle" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "85" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "5" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "5" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "0%" + ], + "filament_retract_lift_above": [ + "0" + ], + "filament_retract_lift_below": [ + "349" + ], + "filament_retract_lift_enforce": [ + "All Surfaces" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Auto Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "-1" + ], + "nozzle_temperature": [ + "225" + ], + "nozzle_temperature_BRASS": [ + "230" + ], + "nozzle_temperature_HS": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "240" + ], + "nozzle_temperature_initial_layer_HS": [ + "240" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.03" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "45" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json index 26753fc994..ab96e9fca8 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle.json @@ -1,351 +1,351 @@ -{ - "type": "filament", - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "inherits": "Anycubic Generic PLA-CF", - "from": "system", - "setting_id": "9XGVjrGzNa4Br8kB", - "filament_id": "OFZ0mR5b", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA-CF" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.6 nozzle" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "60" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "5" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "5" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "filament_adhesiveness_category": [ - "100" - ], - "filament_change_length": [ - "10" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode\n" - ], - "filament_flush_temp": [ - "nil" - ], - "filament_flush_volumetric_speed": [ - "nil" - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_prime_volume": [ - "45" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_ramming_volumetric_speed": [ - "-1" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "0.6" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "1" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_BRASS": [ - "230" - ], - "nozzle_temperature_HS": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "230" - ], - "nozzle_temperature_initial_layer_HS": [ - "230" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "nozzle_temperature_range_low": [ - "210" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.025" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "55" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "60" - ], - "textured_plate_temp_initial_layer": [ - "60" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", + "inherits": "Generic PLA-CF @Anycubic", + "from": "system", + "setting_id": "9XGVjrGzNa4Br8kB", + "filament_id": "OFZ0mR5b", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA-CF" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.6 nozzle" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "60" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "5" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "5" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "filament_adhesiveness_category": [ + "100" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ], + "filament_flush_temp": [ + "nil" + ], + "filament_flush_volumetric_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_prime_volume": [ + "45" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_BRASS": [ + "230" + ], + "nozzle_temperature_HS": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "230" + ], + "nozzle_temperature_initial_layer_HS": [ + "230" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.025" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "55" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json index ee21e1359e..b1db8876da 100644 --- a/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json +++ b/resources/profiles/Anycubic/filament/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle.json @@ -1,351 +1,351 @@ -{ - "type": "filament", - "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "inherits": "Anycubic Generic PLA-CF", - "from": "system", - "setting_id": "vPSse40nqlQ0xBnp", - "filament_id": "OFZ0mR5b", - "instantiation": "true", - "filament_settings_id": [ - "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle" - ], - "filament_vendor": [ - "Anycubic" - ], - "filament_type": [ - "PLA-CF" - ], - "compatible_printers": [ - "Anycubic Kobra S1 Max 0.8 nozzle" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "activate_air_filtration": [ - "0" - ], - "activate_chamber_temp_control": [ - "0" - ], - "adaptive_pressure_advance": [ - "0" - ], - "adaptive_pressure_advance_bridges": [ - "0" - ], - "adaptive_pressure_advance_model": [ - "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" - ], - "adaptive_pressure_advance_overhangs": [ - "0" - ], - "additional_cooling_fan_speed": [ - "60" - ], - "chamber_temperature": [ - "0" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "compatible_printers_condition": "", - "compatible_prints": [], - "compatible_prints_condition": "", - "complete_print_exhaust_fan_speed": [ - "5" - ], - "cool_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "default_filament_colour": [ - "" - ], - "dont_slow_down_outer_wall": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "5" - ], - "enable_overhang_bridge_fan": [ - "1" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "fan_cooling_layer_time": [ - "100" - ], - "fan_cooling_layer_time_BRASS": [ - "100" - ], - "fan_cooling_layer_time_HS": [ - "100" - ], - "fan_max_speed": [ - "100" - ], - "fan_max_speed_BRASS": [ - "100" - ], - "fan_max_speed_HS": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "fan_min_speed_BRASS": [ - "100" - ], - "fan_min_speed_HS": [ - "100" - ], - "filament_adhesiveness_category": [ - "0" - ], - "filament_change_length": [ - "10" - ], - "filament_cooling_final_speed": [ - "0" - ], - "filament_cooling_initial_speed": [ - "0" - ], - "filament_cooling_moves": [ - "0" - ], - "filament_cost": [ - "20" - ], - "filament_density": [ - "1.24" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_end_gcode": [ - "; filament end gcode\n" - ], - "filament_flush_temp": [ - "nil" - ], - "filament_flush_volumetric_speed": [ - "nil" - ], - "filament_is_support": [ - "0" - ], - "filament_loading_speed": [ - "0" - ], - "filament_loading_speed_start": [ - "0" - ], - "filament_long_retractions_when_cut": [ - "nil" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_flow": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "0" - ], - "filament_notes": [ - "" - ], - "filament_prime_volume": [ - "45" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_ramming_volumetric_speed": [ - "-1" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_lift_above": [ - "nil" - ], - "filament_retract_lift_below": [ - "nil" - ], - "filament_retract_lift_enforce": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_distances_when_cut": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_shrink": [ - "100%" - ], - "filament_shrinkage_compensation_z": [ - "100%" - ], - "filament_soluble": [ - "0" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_toolchange_delay": [ - "0" - ], - "filament_unloading_speed": [ - "0" - ], - "filament_unloading_speed_start": [ - "0" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_z_hop_types": [ - "nil" - ], - "full_fan_speed_layer": [ - "0" - ], - "hot_plate_temp": [ - "55" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "idle_temperature": [ - "0" - ], - "internal_bridge_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "220" - ], - "nozzle_temperature_BRASS": [ - "220" - ], - "nozzle_temperature_HS": [ - "230" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "nozzle_temperature_initial_layer_BRASS": [ - "220" - ], - "nozzle_temperature_initial_layer_HS": [ - "230" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "nozzle_temperature_range_low": [ - "210" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "pellet_flow_coefficient": [ - "0.4157" - ], - "pressure_advance": [ - "0.025" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "required_nozzle_HRC": [ - "3" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], - "slow_down_layer_time_BRASS": [ - "8" - ], - "slow_down_layer_time_HS": [ - "8" - ], - "slow_down_min_speed": [ - "20" - ], - "supertack_plate_temp": [ - "35" - ], - "supertack_plate_temp_initial_layer": [ - "35" - ], - "support_material_interface_fan_speed": [ - "-1" - ], - "temperature_vitrification": [ - "55" - ], - "textured_cool_plate_temp": [ - "40" - ], - "textured_cool_plate_temp_initial_layer": [ - "40" - ], - "textured_plate_temp": [ - "55" - ], - "textured_plate_temp_initial_layer": [ - "60" - ] -} +{ + "type": "filament", + "name": "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", + "inherits": "Generic PLA-CF @Anycubic", + "from": "system", + "setting_id": "vPSse40nqlQ0xBnp", + "filament_id": "OFZ0mR5b", + "instantiation": "true", + "filament_settings_id": [ + "Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle" + ], + "filament_vendor": [ + "Anycubic" + ], + "filament_type": [ + "PLA-CF" + ], + "compatible_printers": [ + "Anycubic Kobra S1 Max 0.8 nozzle" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0.042,0.72,5000\n0.044,1.44,5000\n0.045,2.16,5000\n0.045,2.88,5000\n0.045,3.58,5000\n0.044,4.3,5000\n0.045,5.02,5000\n0.043,5.73,5000\n0.045,6.45,5000\n0.041,7.17,5000\n0.039,7.89,5000\n0.038,8.61,5000\n0.036,9.33,5000\n0.033,10.05,5000\n0.032,10.77,5000\n0.034,11.49,5000\n0.033,12.21,5000" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "60" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers_condition": "", + "compatible_prints": [], + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "5" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "default_filament_colour": [ + "" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "5" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "1" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_cooling_layer_time_BRASS": [ + "100" + ], + "fan_cooling_layer_time_HS": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_max_speed_BRASS": [ + "100" + ], + "fan_max_speed_HS": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "fan_min_speed_BRASS": [ + "100" + ], + "fan_min_speed_HS": [ + "100" + ], + "filament_adhesiveness_category": [ + "0" + ], + "filament_change_length": [ + "10" + ], + "filament_cooling_final_speed": [ + "0" + ], + "filament_cooling_initial_speed": [ + "0" + ], + "filament_cooling_moves": [ + "0" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_end_gcode": [ + "; filament end gcode\n" + ], + "filament_flush_temp": [ + "nil" + ], + "filament_flush_volumetric_speed": [ + "nil" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "0" + ], + "filament_loading_speed_start": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "0" + ], + "filament_multitool_ramming_volume": [ + "0" + ], + "filament_notes": [ + "" + ], + "filament_prime_volume": [ + "45" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "0" + ], + "filament_stamping_loading_speed": [ + "0" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "0" + ], + "filament_unloading_speed_start": [ + "0" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "idle_temperature": [ + "0" + ], + "internal_bridge_fan_speed": [ + "100" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_BRASS": [ + "220" + ], + "nozzle_temperature_HS": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_initial_layer_BRASS": [ + "220" + ], + "nozzle_temperature_initial_layer_HS": [ + "230" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.025" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_layer_time_BRASS": [ + "8" + ], + "slow_down_layer_time_HS": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "55" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json index dcc4102b46..988340c1eb 100644 --- a/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic ABS @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic ABS", + "inherits": "Generic ABS @Anycubic", "from": "system", "setting_id": "W3GiC5YLzxbbjXLY", "filament_id": "OFY9muEs", diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic.json similarity index 80% rename from resources/profiles/Anycubic/filament/Anycubic Generic ABS.json rename to resources/profiles/Anycubic/filament/Generic ABS @Anycubic.json index d4495f172c..cc7334fa34 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic ABS.json +++ b/resources/profiles/Anycubic/filament/Generic ABS @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic ABS", + "name": "Generic ABS @Anycubic", "inherits": "fdm_filament_abs", + "renamed_from": "Anycubic Generic ABS", "from": "system", - "setting_id": "az6wmXeWSCKcUEsK", - "filament_id": "OF5Zk4e1", + "setting_id": "jKvjWU6rcHvWblWC", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.926" @@ -22,7 +23,6 @@ "Anycubic 4Max Pro 0.4 nozzle", "Anycubic 4Max Pro 2 0.4 nozzle", "Anycubic Kobra 2 0.4 nozzle", - "Anycubic Kobra 3 0.4 nozzle", "Anycubic Kobra 3 Max 0.4 nozzle" ] } diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json b/resources/profiles/Anycubic/filament/Generic ASA @Anycubic.json similarity index 81% rename from resources/profiles/Anycubic/filament/Anycubic Generic ASA.json rename to resources/profiles/Anycubic/filament/Generic ASA @Anycubic.json index d352fde30a..282f590739 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic ASA.json +++ b/resources/profiles/Anycubic/filament/Generic ASA @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic ASA", + "name": "Generic ASA @Anycubic", "inherits": "fdm_filament_asa", + "renamed_from": "Anycubic Generic ASA", "from": "system", - "setting_id": "qKcef8t7nj8nBjPu", - "filament_id": "OFI80Hct", + "setting_id": "o2Cr8cBtE4OKsTqm", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA.json b/resources/profiles/Anycubic/filament/Generic PA @Anycubic.json similarity index 80% rename from resources/profiles/Anycubic/filament/Anycubic Generic PA.json rename to resources/profiles/Anycubic/filament/Generic PA @Anycubic.json index 761cfb146b..da5d2424e2 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PA.json +++ b/resources/profiles/Anycubic/filament/Generic PA @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PA", + "name": "Generic PA @Anycubic", "inherits": "fdm_filament_pa", + "renamed_from": "Anycubic Generic PA", "from": "system", - "setting_id": "xzI6EgoKa3DFYyoZ", - "filament_id": "OFB1Tv1E", + "setting_id": "5MJsYpJIimshIDZm", + "filament_id": "OFg8ndtj", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json b/resources/profiles/Anycubic/filament/Generic PA-CF @Anycubic.json similarity index 80% rename from resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json rename to resources/profiles/Anycubic/filament/Generic PA-CF @Anycubic.json index 44984af3bf..a360cfea1a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PA-CF.json +++ b/resources/profiles/Anycubic/filament/Generic PA-CF @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PA-CF", + "name": "Generic PA-CF @Anycubic", "inherits": "fdm_filament_pa", + "renamed_from": "Anycubic Generic PA-CF", "from": "system", - "setting_id": "j2PXsJyI9YyoE8lc", - "filament_id": "OFPdhDlK", + "setting_id": "j1uioy0lCnm4AKrm", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PC.json b/resources/profiles/Anycubic/filament/Generic PC @Anycubic.json similarity index 79% rename from resources/profiles/Anycubic/filament/Anycubic Generic PC.json rename to resources/profiles/Anycubic/filament/Generic PC @Anycubic.json index 766455b1ad..e2da18b155 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PC.json +++ b/resources/profiles/Anycubic/filament/Generic PC @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PC", + "name": "Generic PC @Anycubic", "inherits": "fdm_filament_pc", + "renamed_from": "Anycubic Generic PC", "from": "system", - "setting_id": "3zgBtEkj1fQpDkxO", - "filament_id": "OFWY6vBh", + "setting_id": "3jP8aWkWw2dT2fNM", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic.json similarity index 87% rename from resources/profiles/Anycubic/filament/Anycubic Generic PETG.json rename to resources/profiles/Anycubic/filament/Generic PETG @Anycubic.json index 1ca3b27d9c..697caad9d7 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PETG.json +++ b/resources/profiles/Anycubic/filament/Generic PETG @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PETG", + "name": "Generic PETG @Anycubic", "inherits": "fdm_filament_pet", + "renamed_from": "Anycubic Generic PETG", "from": "system", - "setting_id": "CEd987NP90bPdkW7", - "filament_id": "OFWzr7m0", + "setting_id": "ddafY4oOvEc6L6Ej", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json b/resources/profiles/Anycubic/filament/Generic PLA @Anycubic.json similarity index 84% rename from resources/profiles/Anycubic/filament/Anycubic Generic PLA.json rename to resources/profiles/Anycubic/filament/Generic PLA @Anycubic.json index 76852ec8aa..e7fe864b7e 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PLA.json +++ b/resources/profiles/Anycubic/filament/Generic PLA @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PLA", + "name": "Generic PLA @Anycubic", "inherits": "fdm_filament_pla", + "renamed_from": "Anycubic Generic PLA", "from": "system", - "setting_id": "2MiX54GMiZjFzwBI", - "filament_id": "OFKyCgaK", + "setting_id": "qoYfeBQCSt15O9ye", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json b/resources/profiles/Anycubic/filament/Generic PLA-CF @Anycubic.json similarity index 80% rename from resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json rename to resources/profiles/Anycubic/filament/Generic PLA-CF @Anycubic.json index ff449f9c86..0f0bd4462a 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PLA-CF.json +++ b/resources/profiles/Anycubic/filament/Generic PLA-CF @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PLA-CF", + "name": "Generic PLA-CF @Anycubic", "inherits": "fdm_filament_pla", + "renamed_from": "Anycubic Generic PLA-CF", "from": "system", - "setting_id": "9gFgyEJelaCIVwAH", - "filament_id": "OFNcdCrm", + "setting_id": "mLENUT39vBcQiLpm", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json b/resources/profiles/Anycubic/filament/Generic PVA @Anycubic.json similarity index 81% rename from resources/profiles/Anycubic/filament/Anycubic Generic PVA.json rename to resources/profiles/Anycubic/filament/Generic PVA @Anycubic.json index f583d7776a..7f6603b6db 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic PVA.json +++ b/resources/profiles/Anycubic/filament/Generic PVA @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic PVA", + "name": "Generic PVA @Anycubic", "inherits": "fdm_filament_pva", + "renamed_from": "Anycubic Generic PVA", "from": "system", - "setting_id": "I1GMbOsMYktU7EbM", - "filament_id": "OFSGbf2I", + "setting_id": "ae5ljmDsW7uauLz8", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json index d701c6243d..369198b146 100644 --- a/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json +++ b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic Kobra 3 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic TPU @Anycubic Kobra 3 0.4 nozzle", - "inherits": "Anycubic Generic TPU", + "inherits": "Generic TPU @Anycubic", "from": "system", "setting_id": "kHB2rrxkyz4Clu3N", "filament_id": "OFgbpcy9", diff --git a/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic.json similarity index 78% rename from resources/profiles/Anycubic/filament/Anycubic Generic TPU.json rename to resources/profiles/Anycubic/filament/Generic TPU @Anycubic.json index 0cd40e9b50..d52428e4e5 100644 --- a/resources/profiles/Anycubic/filament/Anycubic Generic TPU.json +++ b/resources/profiles/Anycubic/filament/Generic TPU @Anycubic.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Anycubic Generic TPU", + "name": "Generic TPU @Anycubic", "inherits": "fdm_filament_tpu", + "renamed_from": "Anycubic Generic TPU", "from": "system", - "setting_id": "xrbLc7y1AInpumtv", - "filament_id": "OFGKLoUm", + "setting_id": "z0FSikhD8ZHv2UYt", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" @@ -19,7 +20,6 @@ "Anycubic 4Max Pro 0.4 nozzle", "Anycubic 4Max Pro 2 0.4 nozzle", "Anycubic Kobra 2 0.4 nozzle", - "Anycubic Kobra 3 0.4 nozzle", "Anycubic Kobra 3 Max 0.4 nozzle" ] } diff --git a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2 0.4 nozzle.json index 40b4613eb8..fde1113344 100644 --- a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2 0.4 nozzle.json @@ -104,7 +104,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "G21 ; metric values\nG90 ; absolute positioning\nM82 ; set extruder to absolute mode\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 X0 Y0 ; home X and Y\nG28 Z0 ; home Z\nG1 Z30 F{machine_max_speed_z[0]*60} ; move Z a bit down to not blow on the bed edge while heating\nG1 X10 F3900 ; let some space on x to prevent the filament cooling exhaust from beeing blocked by the servo motor\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM106 S80 ; turn on fan to prevent air nozzle melt while heating up\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nM107 ; start with the fan off\nG28 X0 ; goto X home again\nG92 E0 ; zero the extruded length\nG1 Z0.2 F360 ; move plattform upwards\n; extrude material next to the plattform (comment or remove following lines to disable)\nG1 F180 E20 ; extrude some material next to the plattform\nG92 E0 ; zero the extruded length\nG1 E-[retraction_length] F{retraction_speed[0]*60} ; do a filament retract\nG92 E0 ; zero the extruded length again\nG1 X5 F3900 ; move sideways to get rid of that string\nG1 E[retraction_length] F{retraction_speed[0]*60} ; do a filament deretract with retract parameters\nG92 E0 ; zero the extruded length again\n; draw intro line (comment or remove following lines to disable)\nG1 X30 E5 F700 ; draw intro line\nG92 E0 ; zero the extruded length\nG1 E-[retraction_length] F{retraction_speed[0]*60} ; do a filament retract\nG1 X40 Z2.0 ; move away from the introline\nG92 E0 ; zero the extruded length again\nG1 E[retraction_length] F{retraction_speed[0]*60} ; do a filament deretract with retract parameters\n; end of intro line code\nM117 Printing...\nG5", "machine_end_gcode": "M104 S0 ; turn off extruder heating\nM140 S0 ; turn off bed heating\nM107 ; turn off fans\nG91 ; relative positioning\nG0 Z+0.5 ; move Z up a tiny bit\nG90 ; absolute positioning\nG0 X135 Y105 F{machine_max_speed_x[0]*60} ; move extruder to center position\nG0 Z190.5 F{machine_max_speed_z[0]*60} ; lower the plattform to Z min\nM84 ; steppers off\nG90 ; absolute positioning\n", diff --git a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2.json b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2.json index e54851b41c..56f6c5332d 100644 --- a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2.json +++ b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro 2.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_4maxpro2_buildplate_model.stl", "bed_texture": "anycubic_4maxpro2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json index 95144dab59..54ee3a238d 100644 --- a/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json +++ b/resources/profiles/Anycubic/machine/Anycubic 4Max Pro.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_4maxpro_buildplate_model.stl", "bed_texture": "anycubic_4maxpro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Chiron 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Chiron 0.4 nozzle.json index d79bebdf71..9222ef6619 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Chiron 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Chiron 0.4 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "M104 S140;start the nozzle preheat and don't wait\nG21;metric values\nG90;absolute positioning\nM82;set extruder to absolute mode\nM107 ;start with the fan off\nG28;home all\nM190 S[bed_temperature_initial_layer_single]; set wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG1 Z15.0 F3600 ;move the platform down 15mm\nG92 E0;zero the extruded length\nG1 F200 E40;extrude 40mm of feed stock\nG92 E0;zero the extruded length again\nG1 F3600", "machine_end_gcode": "M104 S0;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91;relative positioning\nG1 E-4 F300;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+10 F3600 ;move Z up a bit\nG90;absolute positioning\nG1 X-10 F3000; get the head off the bed\nG1 F3000 Y400;kick the bed out\nM84;steppers off", diff --git a/resources/profiles/Anycubic/machine/Anycubic Chiron.json b/resources/profiles/Anycubic/machine/Anycubic Chiron.json index 2772464526..d7b1303de6 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Chiron.json +++ b/resources/profiles/Anycubic/machine/Anycubic Chiron.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_chiron_buildplate_model.stl", "bed_texture": "anycubic_chiron_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json index e32ed5b2fb..d529794295 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 0.4 nozzle.json @@ -104,7 +104,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F{travel_speed*60} ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1 X0{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F{travel_speed*60} ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F{travel_speed*60} ; park print head\nM84 ; disable motors", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 2 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 2 0.4 nozzle.json index cadcce6d5a..a804761c28 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 2 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 2 0.4 nozzle.json @@ -104,7 +104,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "G90 ;Use absolute coordinates\nM83 ;Extruder relative mode\nM104 S[first_layer_temperature] ;Set extruder temp\nM140 S[first_layer_bed_temperature] ;Set bed temp\nM190 S[first_layer_bed_temperature] ;Wait for bed temp\nM109 S[first_layer_temperature] ;Wait for extruder temp\nG28 ;Move X/Y/Z to min endstops\nG1 Z0.28 ;Lift nozzle a bit\nG92 E0 ;Specify current extruder position as zero\nG1 Y3 F1800 ;Move Y to purge point\nG1 X60 E25 F500 ;Extrude 25mm of filament in a 5cm line\nG92 E0 ;Zero the extruded length again\nG1 E-2 F500 ;Retract a little\nG1 X70 F4000 ;Quickly wipe away from the filament line\nM117", "machine_end_gcode": "M104 S0 ;Extruder off\nM140 S0 ;Heatbed off\nM107 ;Fan off\nG91 ;Relative positioning\nG1 E-5 F3000 ;Retract filament\nG1 Z+0.3 F3000 ;Lift print head\nG28 X0 F3000 ;Home X axis\nM84 ;Disable stepper motors", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra 2.json b/resources/profiles/Anycubic/machine/Anycubic Kobra 2.json index 545ea61e1d..9f2e29a0d9 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra 2.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra 2.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_kobra2_buildplate_model.stl", "bed_texture": "anycubic_kobra2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json index 58ce426f05..36033222d7 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json @@ -108,7 +108,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "M104 S140;start the nozzle preheat and don't wait\nG21;metric values\nG90;absolute positioning\nM82;set extruder to absolute mode\nM107;start with the fan off\nG28;home all\nM190 S[bed_temperature_initial_layer_single] ; set wait for bed temp\nM355 S1;turn on the case light\nM109 S[nozzle_temperature_initial_layer]; wait for extruder temp\nG1 Z15.0 F1000 ;move the nozzle up 15mm\nG92 E0;zero the extruded length\nG1 F100 E60;extrude 60mm of feed stock\nG92 E0;zero the extruded length again", "machine_end_gcode": "M104 S0;extruder heater off\nM140 S0;heated bed heater off (if you have it)\nG91;relative positioning\nG1 Z+10 F3600 ;move Z up a bit\nG90;absolute positioning\nG1 X10 F3000; get the head off the bed\nG1 F3000 Y400 ;kick the bed out\nM84;steppers off\nM355 S0;turn off the case light", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Max.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Max.json index fd3939620e..b4b0c4f17b 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Max.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Max.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_kobramax_buildplate_model.stl", "bed_texture": "anycubic_kobramax_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Neo 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Neo 0.4 nozzle.json index ab8a4a0e2b..41b6e7b3e1 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Neo 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Neo 0.4 nozzle.json @@ -14,7 +14,7 @@ ], "default_print_profile": "0.20mm Standard @Anycubic Kobra Neo 0.4 nozzle", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "disable_m73": "1", "gcode_flavor": "marlin2", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Neo.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Neo.json index 80effe6e8b..25a16805e1 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Neo.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Neo.json @@ -8,5 +8,5 @@ "bed_model": "Anycubic Kobra Neo_buildplate_model.stl", "bed_texture": "Anycubic Kobra Neo_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic PLA" + "default_materials": "Generic PLA @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Plus 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Plus 0.4 nozzle.json index 9b700b7a5f..1ab26d5c8c 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Plus 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Plus 0.4 nozzle.json @@ -108,7 +108,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "M104 S140;start the nozzle preheat and don't wait\nG21;metric values\nG90;absolute positioning\nM82;set extruder to absolute mode\nM107;start with the fan off\nG28;home all\nM190 S[bed_temperature_initial_layer_single] ; set wait for bed temp\nM355 S1;turn on the case light\nM109 S[nozzle_temperature_initial_layer]; wait for extruder temp\nG1 Z15.0 F1000 ;move the nozzle up 15mm\nG92 E0;zero the extruded length\nG1 F100 E60;extrude 60mm of feed stock\nG92 E0;zero the extruded length again", "machine_end_gcode": "M104 S0;extruder heater off\nM140 S0;heated bed heater off (if you have it)\nG91;relative positioning\nG1 Z+10 F3600 ;move Z up a bit\nG90;absolute positioning\nG1 X10 F3000; get the head off the bed\nG1 F3000 Y400 ;kick the bed out\nM84;steppers off\nM355 S0;turn off the case light", diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Plus.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Plus.json index 6a30264849..cf90e73021 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Plus.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Plus.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_kobraplus_buildplate_model.stl", "bed_texture": "anycubic_kobraplus_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra.json b/resources/profiles/Anycubic/machine/Anycubic Kobra.json index bbc1f460c3..6309b569e0 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_kobra_buildplate_model.stl", "bed_texture": "anycubic_kobra_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Predator.json b/resources/profiles/Anycubic/machine/Anycubic Predator.json index 4b6076ee89..a3b100c166 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Predator.json +++ b/resources/profiles/Anycubic/machine/Anycubic Predator.json @@ -8,5 +8,5 @@ "bed_model": "Anycubic Predator_buildplate_model.stl", "bed_texture": "Anycubic Predator_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json index 5bcd1fd942..03da852642 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Vyper 0.4 nozzle.json @@ -108,7 +108,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M601", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG0 Z0.2 F1800 ; move nozzle to print position\nG92 E0 ; specify current extruder position as zero\nG1 Y10 X180 E50 F1200 ; extrude a line in front of the printer\nG92 E0 ; specify current extruder position as zero\nG0 Z20 F6000 ; move head up\nG1 E-7 F2400 ; retract\nG04 S2 ; wait 2s\nG0 X0 F6000 ; wipe from oozed filament\nG1 E-1 F2400 ; undo some of the retraction to avoid oozing\nG1 F6000 ; set travel speed to move to start printing point\nM117", "machine_end_gcode": "G4 ; wait\nG92 E0\nG1{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} ; move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors", diff --git a/resources/profiles/Anycubic/machine/Anycubic Vyper.json b/resources/profiles/Anycubic/machine/Anycubic Vyper.json index 862af26c4a..75a16dbca5 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Vyper.json +++ b/resources/profiles/Anycubic/machine/Anycubic Vyper.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_vyper_buildplate_model.stl", "bed_texture": "anycubic_vyper_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json index 9d35099001..d3b14b475c 100644 --- a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S 0.4 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Anycubic Generic PLA" + "Generic PLA @Anycubic" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG28 ; home all\nG1 Y1.0 Z0.3 F{travel_speed*60} ; move print head up\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG92 E0.0\n; initial load\nG1 X205.0 E19 F1000\nG1 Y1.6\nG1 X5.0 E19 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X65.0 E9.0 F1000\nG1 X105.0 E12.5 F1000\nG92 E0.0", "machine_end_gcode": "G1 E-1.0 F2100 ; retract\nG92 E0.0\nG1 X0{if max_layer_z < printable_height} Z{z_offset+min(max_layer_z+30, printable_height)}{endif} E-34.0 F{travel_speed*60} ; move print head up & retract filament\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y105 F{travel_speed*60} ; park print head\nM84 ; disable motors", diff --git a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S.json b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S.json index 76192d1e21..a98cd9ac46 100644 --- a/resources/profiles/Anycubic/machine/Anycubic i3 Mega S.json +++ b/resources/profiles/Anycubic/machine/Anycubic i3 Mega S.json @@ -8,5 +8,5 @@ "bed_model": "anycubic_i3megas_buildplate_model.stl", "bed_texture": "anycubic_i3megas_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" + "default_materials": "Generic ABS @Anycubic;Generic PLA @Anycubic;Generic PLA-CF @Anycubic;Generic PETG @Anycubic;Generic TPU @Anycubic;Generic ASA @Anycubic;Generic PC @Anycubic;Generic PVA @Anycubic;Generic PA @Anycubic;Generic PA-CF @Anycubic" } diff --git a/resources/profiles/Artillery.json b/resources/profiles/Artillery.json index a610fdbaf6..66a3a05247 100644 --- a/resources/profiles/Artillery.json +++ b/resources/profiles/Artillery.json @@ -1,6 +1,6 @@ { "name": "Artillery", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Artillery configurations", "machine_model_list": [ @@ -389,28 +389,28 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Artillery Generic ABS", - "sub_path": "filament/Artillery Generic ABS.json" + "name": "Generic ABS @Artillery", + "sub_path": "filament/Generic ABS @Artillery.json" }, { - "name": "Artillery Generic ASA", - "sub_path": "filament/Artillery Generic ASA.json" + "name": "Generic ASA @Artillery", + "sub_path": "filament/Generic ASA @Artillery.json" }, { - "name": "Artillery Generic PETG", - "sub_path": "filament/Artillery Generic PETG.json" + "name": "Generic PETG @Artillery", + "sub_path": "filament/Generic PETG @Artillery.json" }, { - "name": "Artillery Generic PLA", - "sub_path": "filament/Artillery Generic PLA.json" + "name": "Generic PLA @Artillery", + "sub_path": "filament/Generic PLA @Artillery.json" }, { - "name": "Artillery Generic PLA-CF", - "sub_path": "filament/Artillery Generic PLA-CF.json" + "name": "Generic PLA-CF @Artillery", + "sub_path": "filament/Generic PLA-CF @Artillery.json" }, { - "name": "Artillery Generic TPU", - "sub_path": "filament/Artillery Generic TPU.json" + "name": "Generic TPU @Artillery", + "sub_path": "filament/Generic TPU @Artillery.json" }, { "name": "Artillery ABS", diff --git a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json index 1a3a7e4834..2c9940db39 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ABS @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery ABS @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "QGbNWGw8rqvq025W", "filament_id": "OFgXgt98", diff --git a/resources/profiles/Artillery/filament/Artillery ABS.json b/resources/profiles/Artillery/filament/Artillery ABS.json index 8ad00f3bde..006b37ca31 100644 --- a/resources/profiles/Artillery/filament/Artillery ABS.json +++ b/resources/profiles/Artillery/filament/Artillery ABS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery ABS", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "fsbfMiamVemzRxkG", "filament_id": "OFgXgt98", diff --git a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json index 634a2f46c8..3f353f3784 100644 --- a/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery ASA @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery ASA @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "eSwM3ZfSBWqR8Gcf", "filament_id": "OF5YVJXH", diff --git a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json index 2910031a1d..18c889b939 100644 --- a/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PA @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "lOsH1teHe8Pgzx2g", "filament_id": "OFMSvS8z", diff --git a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json index d12faf0b94..abef802ea7 100644 --- a/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "b4BKJMUxArvLuEOh", "filament_id": "OFtGC1ye", diff --git a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json index 8c726cb639..24fd12b55c 100644 --- a/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PC @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PC @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "WawbnfhWn4MT6Hz7", "filament_id": "OFfb10SK", diff --git a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json index 1c56ccb925..078786ed5f 100644 --- a/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PET @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PET @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "QeiSAakfMW7HyhJ7", "filament_id": "OFb5EEM3", diff --git a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json index cb62e565ee..9cc9fa81ac 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PETG @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "g7UIfJTOPzMQzfrH", "filament_id": "OFilnglt", diff --git a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json index 470b5e89f1..8ae5612c31 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "RTQvSwJBWnut5aBo", "filament_id": "OF8wE5l7", diff --git a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json index a917f9551b..8321236cb4 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "JvmeW29kHCp7HiA6", "filament_id": "OFOnSNt3", diff --git a/resources/profiles/Artillery/filament/Artillery PETG.json b/resources/profiles/Artillery/filament/Artillery PETG.json index 11bc5b0831..bb2227c04a 100644 --- a/resources/profiles/Artillery/filament/Artillery PETG.json +++ b/resources/profiles/Artillery/filament/Artillery PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PETG", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "1MyhYGMxJCmZnJRP", "filament_id": "OFilnglt", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json index 18c8c42d76..b892fd3101 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "zBUD1JyuZF9MOncA", "filament_id": "OFXk1emJ", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json index cb20dc9405..0544a27107 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "2VIrSoq3kufjHMXj", "filament_id": "OF4Nhggz", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Basic.json b/resources/profiles/Artillery/filament/Artillery PLA Basic.json index 5e777a701b..1a54f28da4 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Basic.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Basic.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Basic", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "DcGBMRjdcgLx6pWG", "filament_id": "OFXk1emJ", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json index 77fbb84757..cee07d65d7 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "9zqAIfywiv9zm77X", "filament_id": "OFAC7Wyu", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Matte.json b/resources/profiles/Artillery/filament/Artillery PLA Matte.json index 4ef84538fb..c74c1d0717 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Matte.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Matte.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Matte", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "kt8uKXpMqxrFrHaG", "filament_id": "OFAC7Wyu", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json index ed36227a9e..f0a8424a18 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "BWMjPUWXwumQoY5H", "filament_id": "OFLbXwoL", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Silk.json b/resources/profiles/Artillery/filament/Artillery PLA Silk.json index 897e98f45c..024d9b885f 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Silk.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Silk.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Silk", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "rd0U4uP6mM8S8lDg", "filament_id": "OFLbXwoL", diff --git a/resources/profiles/Artillery/filament/Artillery PLA Tough.json b/resources/profiles/Artillery/filament/Artillery PLA Tough.json index cce5b7fc0a..9fc7df83be 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA Tough.json +++ b/resources/profiles/Artillery/filament/Artillery PLA Tough.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA Tough", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "hLFvQXsyyUrguGEp", "filament_id": "OF0R5Wc7", diff --git a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json index 33aea1f4fc..10df36a947 100644 --- a/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "oT12s9CEV1CTD6eB", "filament_id": "OFAZllAN", diff --git a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json index 00b7642e7c..5fb34feb1f 100644 --- a/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery PVA @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery PVA @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "r2q4QIlfTUCIz43f", "filament_id": "OFkx5MEe", diff --git a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json index 09c0c766ad..730690bba2 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/filament/Artillery TPU @Artillery M1 Pro 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "p6vnCneuwtM0PzL7", "filament_id": "OFcJDtTx", diff --git a/resources/profiles/Artillery/filament/Artillery TPU.json b/resources/profiles/Artillery/filament/Artillery TPU.json index 5d71a93448..407051c138 100644 --- a/resources/profiles/Artillery/filament/Artillery TPU.json +++ b/resources/profiles/Artillery/filament/Artillery TPU.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Artillery TPU", - "inherits": "Artillery Generic PLA", + "inherits": "Generic PLA @Artillery", "from": "system", "setting_id": "IcV1jLJaS5rmdNOY", "filament_id": "OFcJDtTx", diff --git a/resources/profiles/Artillery/filament/Artillery Generic ABS.json b/resources/profiles/Artillery/filament/Generic ABS @Artillery.json similarity index 74% rename from resources/profiles/Artillery/filament/Artillery Generic ABS.json rename to resources/profiles/Artillery/filament/Generic ABS @Artillery.json index 6db4ca98bc..caf687b95e 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic ABS.json +++ b/resources/profiles/Artillery/filament/Generic ABS @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OFwMFLAm", - "setting_id": "C4oiu2SBLwfTEcXu", - "name": "Artillery Generic ABS", + "filament_id": "OFY9muEs", + "setting_id": "DNgTEZpEz8bJoobJ", + "name": "Generic ABS @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_abs", + "renamed_from": "Artillery Generic ABS", "filament_flow_ratio": [ "0.926" ], diff --git a/resources/profiles/Artillery/filament/Artillery Generic ASA.json b/resources/profiles/Artillery/filament/Generic ASA @Artillery.json similarity index 74% rename from resources/profiles/Artillery/filament/Artillery Generic ASA.json rename to resources/profiles/Artillery/filament/Generic ASA @Artillery.json index 5acf3d49f2..74ef4c775f 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic ASA.json +++ b/resources/profiles/Artillery/filament/Generic ASA @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OF6vKLaU", - "setting_id": "1gls4zCclgN68Hlc", - "name": "Artillery Generic ASA", + "filament_id": "OFLPAxz3", + "setting_id": "xWHuScm0fPJCqjVx", + "name": "Generic ASA @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_asa", + "renamed_from": "Artillery Generic ASA", "filament_flow_ratio": [ "0.93" ], diff --git a/resources/profiles/Artillery/filament/Artillery Generic PETG.json b/resources/profiles/Artillery/filament/Generic PETG @Artillery.json similarity index 84% rename from resources/profiles/Artillery/filament/Artillery Generic PETG.json rename to resources/profiles/Artillery/filament/Generic PETG @Artillery.json index d1bafe2688..aa354e517d 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PETG.json +++ b/resources/profiles/Artillery/filament/Generic PETG @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OFyK5Lt9", - "setting_id": "Ou4NR5DVvalg5kCe", - "name": "Artillery Generic PETG", + "filament_id": "OFYPdQJh", + "setting_id": "6wZKfV2XvuJSUSwl", + "name": "Generic PETG @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_pet", + "renamed_from": "Artillery Generic PETG", "reduce_fan_stop_start_freq": [ "1" ], diff --git a/resources/profiles/Artillery/filament/Artillery Generic PLA.json b/resources/profiles/Artillery/filament/Generic PLA @Artillery.json similarity index 81% rename from resources/profiles/Artillery/filament/Artillery Generic PLA.json rename to resources/profiles/Artillery/filament/Generic PLA @Artillery.json index 4133075578..d691a9b470 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PLA.json +++ b/resources/profiles/Artillery/filament/Generic PLA @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OFnfBvn5", - "setting_id": "Bpy4tAvspysDWosL", - "name": "Artillery Generic PLA", + "filament_id": "OFDSrzZ8", + "setting_id": "T0sW3uMBr94Y1X1G", + "name": "Generic PLA @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", + "renamed_from": "Artillery Generic PLA", "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json b/resources/profiles/Artillery/filament/Generic PLA-CF @Artillery.json similarity index 81% rename from resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json rename to resources/profiles/Artillery/filament/Generic PLA-CF @Artillery.json index 2324bd6ae2..08fd583e18 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic PLA-CF.json +++ b/resources/profiles/Artillery/filament/Generic PLA-CF @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OFUtGagr", - "setting_id": "h23GL00BFCliLh9N", - "name": "Artillery Generic PLA-CF", + "filament_id": "OFWbdGsC", + "setting_id": "Gxafdb0zYnf9kPwa", + "name": "Generic PLA-CF @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_pla", + "renamed_from": "Artillery Generic PLA-CF", "filament_flow_ratio": [ "0.95" ], diff --git a/resources/profiles/Artillery/filament/Artillery Generic TPU.json b/resources/profiles/Artillery/filament/Generic TPU @Artillery.json similarity index 72% rename from resources/profiles/Artillery/filament/Artillery Generic TPU.json rename to resources/profiles/Artillery/filament/Generic TPU @Artillery.json index 522cc0fbfb..f1270d0afb 100644 --- a/resources/profiles/Artillery/filament/Artillery Generic TPU.json +++ b/resources/profiles/Artillery/filament/Generic TPU @Artillery.json @@ -1,11 +1,12 @@ { "type": "filament", - "filament_id": "OFEE1Dld", - "setting_id": "u8YE6r4sGJ0jvqBn", - "name": "Artillery Generic TPU", + "filament_id": "OFgbpcy9", + "setting_id": "dWhysRiE5GrAGyME", + "name": "Generic TPU @Artillery", "from": "system", "instantiation": "true", "inherits": "fdm_filament_tpu", + "renamed_from": "Artillery Generic TPU", "filament_max_volumetric_speed": [ "3.2" ], diff --git a/resources/profiles/Artillery/machine/Artillery Genius 0.4 nozzle.json b/resources/profiles/Artillery/machine/Artillery Genius 0.4 nozzle.json index d9b85067a1..fec7ef73d3 100644 --- a/resources/profiles/Artillery/machine/Artillery Genius 0.4 nozzle.json +++ b/resources/profiles/Artillery/machine/Artillery Genius 0.4 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Artillery Generic PLA" + "Generic PLA @Artillery" ], "machine_start_gcode": "M83; extruder relative mode\nG28; home all axes\nM109 S[nozzle_temperature_initial_layer]; hotend temperature\nM140 S[bed_temperature_initial_layer_single]; heatbed temperature\nM190 S[bed_temperature_initial_layer_single]; wait for the bed to heat up\nM109 S[nozzle_temperature_initial_layer]; wait for the extruder to heat up\nG92 E0; reset extruder\nG1 X20 Y5 Z0.3 F5000.0; move to start-line position\nG1 Z0.3 F1000; print height\nG1 X200 Y5 F1500.0 E15; draw 1st line\nG1 X200 Y5.3 Z0.3 F5000.0; move to side a little\nG1 X5.3 Y5.3 Z0.3 F1500.0 E30; draw 2nd line\nG1 Z3 F3000; move z up little to prevent scratching of surface", "machine_end_gcode": "G91; Relative positionning\nG1 E-2 Z0.2 F2400; Retract and raise Z\nG1 X5 Y5 F3000; Wipe out\nG1 Z10; Raise Z more\nG90; Absolute positionning\nG1 X0 Y100; Present print\nM106 S0; Turn-off fan\nM104 S0; Turn-off hotend\nM140 S0; Turn-off bed\nM84 X Y E; Disable all steppers but Z", diff --git a/resources/profiles/Artillery/machine/Artillery Genius Pro 0.4 nozzle.json b/resources/profiles/Artillery/machine/Artillery Genius Pro 0.4 nozzle.json index 07beadf546..abac060832 100644 --- a/resources/profiles/Artillery/machine/Artillery Genius Pro 0.4 nozzle.json +++ b/resources/profiles/Artillery/machine/Artillery Genius Pro 0.4 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Artillery Generic PLA" + "Generic PLA @Artillery" ], "machine_start_gcode": "M83; extruder relative mode\nG28; home all axes\nG29 S12000; bed mesh leveling\nM104 S[nozzle_temperature_initial_layer]; set hotend temperature\nM140 S[bed_temperature_initial_layer_single]; set heatbed temperature\nG90; Absolute Positioning\nG1 Y0 F5000; Move to front\nG1 X0 F5000; Move to origin\nM190 S[bed_temperature_initial_layer_single]; wait for the bed to heat up\nM109 S[nozzle_temperature_initial_layer]; wait for the extruder to heat up\nG92 E0; reset extruder\nG1 X20 Y5 Z0.3 F5000.0; move to start-line position\nG1 Z0.3 F1000; print height\nG1 X200 Y5 F1500.0 E15; draw 1st line\nG1 X200 Y5.3 Z0.3 F5000.0; move to side a little\nG1 X5.3 Y5.3 Z0.3 F1500.0 E30; draw 2nd line\nG1 Z3 F3000; move z up little to prevent scratching of surface", "machine_end_gcode": "G91; Relative positionning\nG1 E-2 Z0.2 F2400; Retract and raise Z\nG1 X5 Y5 F3000; Wipe out\nG1 Z10; Raise Z more\nG90; Absolute positionning\nG1 X0 Y100; Present print\nM106 S0; Turn-off fan\nM104 S0; Turn-off hotend\nM140 S0; Turn-off bed\nM84 X Y E; Disable all steppers but Z", diff --git a/resources/profiles/Artillery/machine/Artillery Genius Pro.json b/resources/profiles/Artillery/machine/Artillery Genius Pro.json index 6af35f73a6..6581266380 100644 --- a/resources/profiles/Artillery/machine/Artillery Genius Pro.json +++ b/resources/profiles/Artillery/machine/Artillery Genius Pro.json @@ -8,5 +8,5 @@ "bed_model": "artillery_geniuspro_buildplate_model.stl", "bed_texture": "artillery_geniuspro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Artillery Generic ABS;Artillery Generic PLA;Artillery Generic PLA-CF;Artillery Generic PETG;Artillery Generic TPU;Artillery Generic ASA" + "default_materials": "Generic ABS @Artillery;Generic PLA @Artillery;Generic PLA-CF @Artillery;Generic PETG @Artillery;Generic TPU @Artillery;Generic ASA @Artillery" } diff --git a/resources/profiles/Artillery/machine/Artillery Genius.json b/resources/profiles/Artillery/machine/Artillery Genius.json index 31c021230b..27fe494d24 100644 --- a/resources/profiles/Artillery/machine/Artillery Genius.json +++ b/resources/profiles/Artillery/machine/Artillery Genius.json @@ -8,5 +8,5 @@ "bed_model": "artillery_genius_buildplate_model.stl", "bed_texture": "artillery_genius_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Artillery Generic ABS;Artillery Generic PLA;Artillery Generic PLA-CF;Artillery Generic PETG;Artillery Generic TPU;Artillery Generic ASA" + "default_materials": "Generic ABS @Artillery;Generic PLA @Artillery;Generic PLA-CF @Artillery;Generic PETG @Artillery;Generic TPU @Artillery;Generic ASA @Artillery" } diff --git a/resources/profiles/Artillery/machine/Artillery Hornet 0.4 nozzle.json b/resources/profiles/Artillery/machine/Artillery Hornet 0.4 nozzle.json index 4aa9f9d9a4..232b68d62e 100644 --- a/resources/profiles/Artillery/machine/Artillery Hornet 0.4 nozzle.json +++ b/resources/profiles/Artillery/machine/Artillery Hornet 0.4 nozzle.json @@ -108,7 +108,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Artillery Generic PLA" + "Generic PLA @Artillery" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing and auto bed leveling\nM140 S{hot_plate_temp_initial_layer[0]} ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S{nozzle_temperature_initial_layer[0]} ; set final nozzle temp\nM190 S{hot_plate_temp_initial_layer[0]} ; wait for bed temp to stabilize\nM109 S{nozzle_temperature_initial_layer[0]} ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.85} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < printable_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Artillery/machine/Artillery Hornet.json b/resources/profiles/Artillery/machine/Artillery Hornet.json index c0e680e039..79e48b3487 100644 --- a/resources/profiles/Artillery/machine/Artillery Hornet.json +++ b/resources/profiles/Artillery/machine/Artillery Hornet.json @@ -8,5 +8,5 @@ "bed_model": "artillery_hornet_buildplate_model.stl", "bed_texture": "artillery_hornet_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Artillery Generic ABS;Artillery Generic PLA;Artillery Generic PLA-CF;Artillery Generic PETG;Artillery Generic TPU;Artillery Generic ASA" + "default_materials": "Generic ABS @Artillery;Generic PLA @Artillery;Generic PLA-CF @Artillery;Generic PETG @Artillery;Generic TPU @Artillery;Generic ASA @Artillery" } diff --git a/resources/profiles/Artillery/machine/Artillery Sidewinder X1 0.4 nozzle.json b/resources/profiles/Artillery/machine/Artillery Sidewinder X1 0.4 nozzle.json index 81e96a2593..ab83e7d429 100644 --- a/resources/profiles/Artillery/machine/Artillery Sidewinder X1 0.4 nozzle.json +++ b/resources/profiles/Artillery/machine/Artillery Sidewinder X1 0.4 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Artillery Generic PLA" + "Generic PLA @Artillery" ], "machine_start_gcode": "; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[bed_temperature_initial_layer_single] ; wait for bed to heat up\nM104 S[nozzle_temperature_initial_layer] ; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[nozzle_temperature_initial_layer] ; wait for the nozzle to heat up\nM190 S[bed_temperature_initial_layer_single] ; wait for the bed to heat up\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}", "machine_end_gcode": "G4 ; wait\nG92 E0 ; prepare to retract\nG1 E-0.5 F3000; retract to avoid stringing\n\n; Anti-stringing end wiggle\nG91 ; use relative coordinates\nG1 X1 Y1 F1200\n\n; Raise nozzle and present bed\n{if layer_z < printable_height}G1 Z{z_offset+min(layer_z+120, printable_height)}{endif} ; Move print head up\nG90 ; use absolute coordinates\n\n; Reset print setting overrides\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Shut down printer\nM106 S0 ; turn-off fan\nM104 S0 ; turn-off hotend\nM140 S0 ; turn-off bed\nM150 P0 ; turn off led\nM85 S0 ; deactivate idle timeout\nM84 ; disable motors\n", diff --git a/resources/profiles/Artillery/machine/Artillery Sidewinder X1.json b/resources/profiles/Artillery/machine/Artillery Sidewinder X1.json index 5d5f13f511..195b01f873 100644 --- a/resources/profiles/Artillery/machine/Artillery Sidewinder X1.json +++ b/resources/profiles/Artillery/machine/Artillery Sidewinder X1.json @@ -8,5 +8,5 @@ "bed_model": "artillery_sidewinderx1_buildplate_model.stl", "bed_texture": "artillery_sidewinderx1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Artillery Generic ABS;Artillery Generic PLA;Artillery Generic PLA-CF;Artillery Generic PETG;Artillery Generic TPU;Artillery Generic ASA" + "default_materials": "Generic ABS @Artillery;Generic PLA @Artillery;Generic PLA-CF @Artillery;Generic PETG @Artillery;Generic TPU @Artillery;Generic ASA @Artillery" } diff --git a/resources/profiles/Artillery/machine/Artillery Sidewinder X2 0.4 nozzle.json b/resources/profiles/Artillery/machine/Artillery Sidewinder X2 0.4 nozzle.json index b3100851fb..416ddfb056 100644 --- a/resources/profiles/Artillery/machine/Artillery Sidewinder X2 0.4 nozzle.json +++ b/resources/profiles/Artillery/machine/Artillery Sidewinder X2 0.4 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Artillery Generic PLA" + "Generic PLA @Artillery" ], "machine_start_gcode": "; Initial setups\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM900 K0.12 ; K factor\nM900 W[line_width] H[layer_height] D[filament_diameter]\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Set the heating\nM190 S[bed_temperature_initial_layer_single] ; wait for bed to heat up\nM104 S[nozzle_temperature_initial_layer] ; start nozzle heating but don't wait\n\n; Home\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG28 ; home all axes\nG1 X3 Y3 F5000 ; move to corner of the bed to avoid ooze over centre\n\n; Wait for final heating\nM109 S[nozzle_temperature_initial_layer] ; wait for the nozzle to heat up\nM190 S[bed_temperature_initial_layer_single] ; wait for the bed to heat up\n\n;Auto bed Leveling\n@BEDLEVELVISUALIZER\nG29 ; ABL T\nM420 S1 Z3 ; reload and fade mesh bed leveling until it reach 3mm Z\n\n; Return to prime position, Prime line routine\nG92 E0 ; Reset Extruder\nG1 Z3 F3000 ; move z up little to prevent scratching of surface\nG1 X10 Y.5 Z0.25 F5000.0 ; Move to start position\nG1 X100 Y.5 Z0.25 F1500.0 E15 ; Draw the first line\nG1 X100 Y.2 Z0.25 F5000.0 ; Move to side a little\nG1 X10 Y.2 Z0.25 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nM221 S{if layer_height<0.075}100{else}95{endif}", "machine_end_gcode": "G4 ; wait\nG92 E0 ; prepare to retract\nG1 E-0.5 F3000; retract to avoid stringing\n\n; Anti-stringing end wiggle\nG91 ; use relative coordinates\nG1 X1 Y1 F1200\n\n; Raise nozzle and present bed\n{if layer_z < printable_height}G1 Z{z_offset+min(layer_z+120, printable_height)}{endif} ; Move print head up\nG90 ; use absolute coordinates\n\n; Reset print setting overrides\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extrusion rate to 100%\n\n; Shut down printer\nM106 S0 ; turn-off fan\nM104 S0 ; turn-off hotend\nM140 S0 ; turn-off bed\nM150 P0 ; turn off led\nM85 S0 ; deactivate idle timeout\nM84 ; disable motors\n", diff --git a/resources/profiles/Artillery/machine/Artillery Sidewinder X2.json b/resources/profiles/Artillery/machine/Artillery Sidewinder X2.json index 79922cfe8b..2009958308 100644 --- a/resources/profiles/Artillery/machine/Artillery Sidewinder X2.json +++ b/resources/profiles/Artillery/machine/Artillery Sidewinder X2.json @@ -8,5 +8,5 @@ "bed_model": "artillery_sidewinderx2_buildplate_model.stl", "bed_texture": "artillery_sidewinderx2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Artillery Generic ABS;Artillery Generic PLA;Artillery Generic PLA-CF;Artillery Generic PETG;Artillery Generic TPU;Artillery Generic ASA" + "default_materials": "Generic ABS @Artillery;Generic PLA @Artillery;Generic PLA-CF @Artillery;Generic PETG @Artillery;Generic TPU @Artillery;Generic ASA @Artillery" } diff --git a/resources/profiles/Blocks.json b/resources/profiles/Blocks.json index 269391c4c3..f8243c252d 100644 --- a/resources/profiles/Blocks.json +++ b/resources/profiles/Blocks.json @@ -1,6 +1,6 @@ { "name": "Blocks", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Blocks configurations", "machine_model_list": [ @@ -249,48 +249,48 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Blocks Generic ABS", - "sub_path": "filament/Blocks Generic ABS.json" + "name": "Generic ABS @Blocks", + "sub_path": "filament/Generic ABS @Blocks.json" }, { - "name": "Blocks Generic ASA", - "sub_path": "filament/Blocks Generic ASA.json" + "name": "Generic ASA @Blocks", + "sub_path": "filament/Generic ASA @Blocks.json" }, { - "name": "Blocks Generic ASA-CF", - "sub_path": "filament/Blocks Generic ASA-CF.json" + "name": "Generic ASA-CF @Blocks", + "sub_path": "filament/Generic ASA-CF @Blocks.json" }, { - "name": "Blocks Generic PA", - "sub_path": "filament/Blocks Generic PA.json" + "name": "Generic PA @Blocks", + "sub_path": "filament/Generic PA @Blocks.json" }, { - "name": "Blocks Generic PA-CF", - "sub_path": "filament/Blocks Generic PA-CF.json" + "name": "Generic PA-CF @Blocks", + "sub_path": "filament/Generic PA-CF @Blocks.json" }, { - "name": "Blocks Generic PC", - "sub_path": "filament/Blocks Generic PC.json" + "name": "Generic PC @Blocks", + "sub_path": "filament/Generic PC @Blocks.json" }, { - "name": "Blocks Generic PETG", - "sub_path": "filament/Blocks Generic PETG.json" + "name": "Generic PETG @Blocks", + "sub_path": "filament/Generic PETG @Blocks.json" }, { - "name": "Blocks Generic PLA", - "sub_path": "filament/Blocks Generic PLA.json" + "name": "Generic PLA @Blocks", + "sub_path": "filament/Generic PLA @Blocks.json" }, { - "name": "Blocks Generic PLA-CF", - "sub_path": "filament/Blocks Generic PLA-CF.json" + "name": "Generic PLA-CF @Blocks", + "sub_path": "filament/Generic PLA-CF @Blocks.json" }, { - "name": "Blocks Generic PVA", - "sub_path": "filament/Blocks Generic PVA.json" + "name": "Generic PVA @Blocks", + "sub_path": "filament/Generic PVA @Blocks.json" }, { - "name": "Blocks Generic TPU", - "sub_path": "filament/Blocks Generic TPU.json" + "name": "Generic TPU @Blocks", + "sub_path": "filament/Generic TPU @Blocks.json" } ], "machine_list": [ diff --git a/resources/profiles/Blocks/filament/Blocks Generic ABS.json b/resources/profiles/Blocks/filament/Generic ABS @Blocks.json similarity index 90% rename from resources/profiles/Blocks/filament/Blocks Generic ABS.json rename to resources/profiles/Blocks/filament/Generic ABS @Blocks.json index 122469f7f5..c3d09cfd18 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ABS.json +++ b/resources/profiles/Blocks/filament/Generic ABS @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic ABS", + "name": "Generic ABS @Blocks", "inherits": "fdm_filament_abs", + "renamed_from": "Blocks Generic ABS", "from": "system", - "setting_id": "QhLaLEkxhvIMa3Ik", - "filament_id": "OFma52eS", + "setting_id": "TL1Q1kA4t36GGObG", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic ASA.json b/resources/profiles/Blocks/filament/Generic ASA @Blocks.json similarity index 90% rename from resources/profiles/Blocks/filament/Blocks Generic ASA.json rename to resources/profiles/Blocks/filament/Generic ASA @Blocks.json index ed190d385b..0c1ee32085 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ASA.json +++ b/resources/profiles/Blocks/filament/Generic ASA @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic ASA", + "name": "Generic ASA @Blocks", "inherits": "fdm_filament_asa", + "renamed_from": "Blocks Generic ASA", "from": "system", - "setting_id": "DcgqA071S6MRVbKI", - "filament_id": "OFB9dx27", + "setting_id": "xP7cB4RHgbm4cYDD", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json b/resources/profiles/Blocks/filament/Generic ASA-CF @Blocks.json similarity index 88% rename from resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json rename to resources/profiles/Blocks/filament/Generic ASA-CF @Blocks.json index a7fa66375d..0d9f0aa862 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic ASA-CF.json +++ b/resources/profiles/Blocks/filament/Generic ASA-CF @Blocks.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "Blocks Generic ASA-CF", + "name": "Generic ASA-CF @Blocks", "inherits": "fdm_filament_asa", + "renamed_from": "Blocks Generic ASA-CF", "from": "system", - "setting_id": "FF6D7i492XTrb8AO", - "filament_id": "OFctbSkL", + "setting_id": "ju4ue7yJoz3ujny6", + "filament_id": "OF53eLVD", "instantiation": "true", + "filament_type": [ + "ASA-CF" + ], "filament_flow_ratio": [ "0.95" ], diff --git a/resources/profiles/Blocks/filament/Blocks Generic PA.json b/resources/profiles/Blocks/filament/Generic PA @Blocks.json similarity index 74% rename from resources/profiles/Blocks/filament/Blocks Generic PA.json rename to resources/profiles/Blocks/filament/Generic PA @Blocks.json index a25c3e2b13..e624226ded 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PA.json +++ b/resources/profiles/Blocks/filament/Generic PA @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PA", + "name": "Generic PA @Blocks", "inherits": "fdm_filament_pa", + "renamed_from": "Blocks Generic PA", "from": "system", - "setting_id": "3L5IYVTlkt8V0EiW", - "filament_id": "OFiUSDih", + "setting_id": "hL3p8gAeciwDkjNK", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json b/resources/profiles/Blocks/filament/Generic PA-CF @Blocks.json similarity index 91% rename from resources/profiles/Blocks/filament/Blocks Generic PA-CF.json rename to resources/profiles/Blocks/filament/Generic PA-CF @Blocks.json index b527976973..7ec957f6d1 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PA-CF.json +++ b/resources/profiles/Blocks/filament/Generic PA-CF @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PA-CF", + "name": "Generic PA-CF @Blocks", "inherits": "fdm_filament_pa", + "renamed_from": "Blocks Generic PA-CF", "from": "system", - "setting_id": "B254XDRQzysz7YUd", - "filament_id": "OF8bLDu7", + "setting_id": "T6SO0WRdnG6wcyG8", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PC.json b/resources/profiles/Blocks/filament/Generic PC @Blocks.json similarity index 74% rename from resources/profiles/Blocks/filament/Blocks Generic PC.json rename to resources/profiles/Blocks/filament/Generic PC @Blocks.json index 2a0500e435..7b5df77bc5 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PC.json +++ b/resources/profiles/Blocks/filament/Generic PC @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PC", + "name": "Generic PC @Blocks", "inherits": "fdm_filament_pc", + "renamed_from": "Blocks Generic PC", "from": "system", - "setting_id": "VUPeelf61TmTQrun", - "filament_id": "OFahE7HP", + "setting_id": "Xhs8PjtmwwVj0ksE", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PETG.json b/resources/profiles/Blocks/filament/Generic PETG @Blocks.json similarity index 91% rename from resources/profiles/Blocks/filament/Blocks Generic PETG.json rename to resources/profiles/Blocks/filament/Generic PETG @Blocks.json index 068fc32774..45a2a13e9b 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PETG.json +++ b/resources/profiles/Blocks/filament/Generic PETG @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PETG", + "name": "Generic PETG @Blocks", "inherits": "fdm_filament_petg", + "renamed_from": "Blocks Generic PETG", "from": "system", - "setting_id": "FKkbjL1V4ZEjXB0H", - "filament_id": "OFrgGex8", + "setting_id": "NgzPlYItKHbmGgv3", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PLA.json b/resources/profiles/Blocks/filament/Generic PLA @Blocks.json similarity index 87% rename from resources/profiles/Blocks/filament/Blocks Generic PLA.json rename to resources/profiles/Blocks/filament/Generic PLA @Blocks.json index f900b91225..3a5c942899 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PLA.json +++ b/resources/profiles/Blocks/filament/Generic PLA @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PLA", + "name": "Generic PLA @Blocks", "inherits": "fdm_filament_pla", + "renamed_from": "Blocks Generic PLA", "from": "system", - "setting_id": "N3wDUqmBETfelOoG", - "filament_id": "OFNYewRS", + "setting_id": "kjhuttx4T8OtTNmV", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json b/resources/profiles/Blocks/filament/Generic PLA-CF @Blocks.json similarity index 76% rename from resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json rename to resources/profiles/Blocks/filament/Generic PLA-CF @Blocks.json index af0f0c80b9..3a3ac5daba 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PLA-CF.json +++ b/resources/profiles/Blocks/filament/Generic PLA-CF @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PLA-CF", + "name": "Generic PLA-CF @Blocks", "inherits": "fdm_filament_pla", + "renamed_from": "Blocks Generic PLA-CF", "from": "system", - "setting_id": "RHKPeXZiv4E2p4lP", - "filament_id": "OFupq0tY", + "setting_id": "oKUqzwAWMrpiyGLf", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Blocks/filament/Blocks Generic PVA.json b/resources/profiles/Blocks/filament/Generic PVA @Blocks.json similarity index 74% rename from resources/profiles/Blocks/filament/Blocks Generic PVA.json rename to resources/profiles/Blocks/filament/Generic PVA @Blocks.json index 850a5cd246..5b6a3ad368 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic PVA.json +++ b/resources/profiles/Blocks/filament/Generic PVA @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic PVA", + "name": "Generic PVA @Blocks", "inherits": "fdm_filament_pva", + "renamed_from": "Blocks Generic PVA", "from": "system", - "setting_id": "J74KgdSzf503Tk9p", - "filament_id": "OFiorRtJ", + "setting_id": "tNw3oe7VovLkgUbB", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Blocks/filament/Blocks Generic TPU.json b/resources/profiles/Blocks/filament/Generic TPU @Blocks.json similarity index 89% rename from resources/profiles/Blocks/filament/Blocks Generic TPU.json rename to resources/profiles/Blocks/filament/Generic TPU @Blocks.json index e8e043b174..8b5873a745 100644 --- a/resources/profiles/Blocks/filament/Blocks Generic TPU.json +++ b/resources/profiles/Blocks/filament/Generic TPU @Blocks.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Blocks Generic TPU", + "name": "Generic TPU @Blocks", "inherits": "fdm_filament_tpu", + "renamed_from": "Blocks Generic TPU", "from": "system", - "setting_id": "xFRwN8ZEwEGlLFwo", - "filament_id": "OFMEbuBE", + "setting_id": "6iVYOCZo8ugs4JA0", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "4" diff --git a/resources/profiles/Blocks/machine/BLOCKS Pro S100.json b/resources/profiles/Blocks/machine/BLOCKS Pro S100.json index abd474d3f1..de9ea3756c 100644 --- a/resources/profiles/Blocks/machine/BLOCKS Pro S100.json +++ b/resources/profiles/Blocks/machine/BLOCKS Pro S100.json @@ -8,5 +8,5 @@ "bed_model": "PRO S100 HotBed model.stl", "bed_texture": "PRO S100 HotBed texture.svg", "hotend_model": "BLOCKS PrintCore.stl", - "default_materials": "Blocks Generic PLA;Blocks Generic PETG;Blocks Generic TPU" + "default_materials": "Generic PLA @Blocks;Generic PETG @Blocks;Generic TPU @Blocks" } diff --git a/resources/profiles/Blocks/machine/BLOCKS RD50 V2.json b/resources/profiles/Blocks/machine/BLOCKS RD50 V2.json index b3b82c876c..76dafd429e 100644 --- a/resources/profiles/Blocks/machine/BLOCKS RD50 V2.json +++ b/resources/profiles/Blocks/machine/BLOCKS RD50 V2.json @@ -8,5 +8,5 @@ "bed_model": "RD50 V2 HotBed model.stl", "bed_texture": "RD50 V2 HotBed texture.svg", "hotend_model": "BLOCKS PrintCore.stl", - "default_materials": "Blocks Generic PLA;Blocks Generic PETG;Blocks Generic TPU" + "default_materials": "Generic PLA @Blocks;Generic PETG @Blocks;Generic TPU @Blocks" } diff --git a/resources/profiles/Blocks/machine/BLOCKS RF50.json b/resources/profiles/Blocks/machine/BLOCKS RF50.json index acc4e95f63..14ae8bc5f4 100644 --- a/resources/profiles/Blocks/machine/BLOCKS RF50.json +++ b/resources/profiles/Blocks/machine/BLOCKS RF50.json @@ -8,5 +8,5 @@ "bed_model": "RF50 HotBed model.stl", "bed_texture": "RF50 HotBed texture.svg", "hotend_model": "BLOCKS PrintCore.stl", - "default_materials": "Blocks Generic PLA;Blocks Generic PETG;Blocks Generic TPU" + "default_materials": "Generic PLA @Blocks;Generic PETG @Blocks;Generic TPU @Blocks" } diff --git a/resources/profiles/Blocks/machine/fdm_klipper_common.json b/resources/profiles/Blocks/machine/fdm_klipper_common.json index 7415366d39..1756ac178a 100644 --- a/resources/profiles/Blocks/machine/fdm_klipper_common.json +++ b/resources/profiles/Blocks/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Blocks Generic PLA" + "Generic PLA @Blocks" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/CONSTRUCT3D.json b/resources/profiles/CONSTRUCT3D.json index ba2652f724..efc7c78972 100644 --- a/resources/profiles/CONSTRUCT3D.json +++ b/resources/profiles/CONSTRUCT3D.json @@ -1,6 +1,6 @@ { "name": "CONSTRUCT3D", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Construct3D configurations", "machine_model_list": [ @@ -65,16 +65,16 @@ "sub_path": "filament/fdm_filament_pla.json" }, { - "name": "C1 Generic High Flow PETG", - "sub_path": "filament/C1 Generic High Flow PETG.json" + "name": "Generic High Flow PETG @C1", + "sub_path": "filament/Generic High Flow PETG @C1.json" }, { - "name": "C1 Generic PETG", - "sub_path": "filament/C1 Generic PETG.json" + "name": "Generic PETG @C1", + "sub_path": "filament/Generic PETG @C1.json" }, { - "name": "C1 Generic PLA", - "sub_path": "filament/C1 Generic PLA.json" + "name": "Generic PLA @C1", + "sub_path": "filament/Generic PLA @C1.json" } ], "machine_list": [ diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json b/resources/profiles/CONSTRUCT3D/filament/Generic High Flow PETG @C1.json similarity index 84% rename from resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json rename to resources/profiles/CONSTRUCT3D/filament/Generic High Flow PETG @C1.json index 1a1f01b3d9..11a7df0903 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic High Flow PETG.json +++ b/resources/profiles/CONSTRUCT3D/filament/Generic High Flow PETG @C1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "C1 Generic High Flow PETG", + "name": "Generic High Flow PETG @C1", "inherits": "fdm_filament_pet", + "renamed_from": "C1 Generic High Flow PETG", "from": "system", - "setting_id": "3IxBZSWFfFGmKAQ7", - "filament_id": "OFZ4fTO8", + "setting_id": "STRDBlNRWBGfRctE", + "filament_id": "OFNjku08", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json b/resources/profiles/CONSTRUCT3D/filament/Generic PETG @C1.json similarity index 83% rename from resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json rename to resources/profiles/CONSTRUCT3D/filament/Generic PETG @C1.json index fc011cc9bc..dfb510e993 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PETG.json +++ b/resources/profiles/CONSTRUCT3D/filament/Generic PETG @C1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "C1 Generic PETG", + "name": "Generic PETG @C1", "inherits": "fdm_filament_pet", + "renamed_from": "C1 Generic PETG", "from": "system", - "setting_id": "jZBfhlf6VX5r3KHb", - "filament_id": "OFz3q5Xz", + "setting_id": "v0b4nWyzRw5z5EfK", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json b/resources/profiles/CONSTRUCT3D/filament/Generic PLA @C1.json similarity index 75% rename from resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json rename to resources/profiles/CONSTRUCT3D/filament/Generic PLA @C1.json index 4b2cd9bbea..4c8a90b1de 100644 --- a/resources/profiles/CONSTRUCT3D/filament/C1 Generic PLA.json +++ b/resources/profiles/CONSTRUCT3D/filament/Generic PLA @C1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "C1 Generic PLA", + "name": "Generic PLA @C1", "inherits": "fdm_filament_pla", + "renamed_from": "C1 Generic PLA", "from": "system", - "setting_id": "Uv3kcMO5qNwkrMPV", - "filament_id": "OF51XQar", + "setting_id": "mCKOBqN6Y92a9nHV", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/CONSTRUCT3D/machine/Construct 1 XL.json b/resources/profiles/CONSTRUCT3D/machine/Construct 1 XL.json index bee8ab1e73..7d6ad32ce1 100644 --- a/resources/profiles/CONSTRUCT3D/machine/Construct 1 XL.json +++ b/resources/profiles/CONSTRUCT3D/machine/Construct 1 XL.json @@ -6,5 +6,5 @@ "machine_tech": "FFF", "family": "CONSTRUCT3D", "bed_model": "construct_1_xl_buildplate_model.stl", - "default_materials": "C1 Generic PLA;C1 Generic PETG;C1 Generic High Flow PETG" + "default_materials": "Generic PLA @C1;Generic PETG @C1;Generic High Flow PETG @C1" } diff --git a/resources/profiles/CONSTRUCT3D/machine/Construct 1.json b/resources/profiles/CONSTRUCT3D/machine/Construct 1.json index 152a1e5bb2..4839166da6 100644 --- a/resources/profiles/CONSTRUCT3D/machine/Construct 1.json +++ b/resources/profiles/CONSTRUCT3D/machine/Construct 1.json @@ -6,5 +6,5 @@ "machine_tech": "FFF", "family": "CONSTRUCT3D", "bed_model": "construct_1_buildplate_model.stl", - "default_materials": "C1 Generic PLA;C1 Generic PETG;C1 Generic High Flow PETG" + "default_materials": "Generic PLA @C1;Generic PETG @C1;Generic High Flow PETG @C1" } diff --git a/resources/profiles/Chuanying.json b/resources/profiles/Chuanying.json index 19d5c9b7b5..746a31e334 100644 --- a/resources/profiles/Chuanying.json +++ b/resources/profiles/Chuanying.json @@ -1,7 +1,7 @@ { "name": "Chuanying", "url": "", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Chuanying configurations", "machine_model_list": [ @@ -46,36 +46,36 @@ ], "filament_list": [ { - "name": "Chuanying Generic ABS", - "sub_path": "filament/Chuanying Generic ABS.json" + "name": "Generic ABS @Chuanying", + "sub_path": "filament/Generic ABS @Chuanying.json" }, { - "name": "Chuanying Generic ASA", - "sub_path": "filament/Chuanying Generic ASA.json" + "name": "Generic ASA @Chuanying", + "sub_path": "filament/Generic ASA @Chuanying.json" }, { - "name": "Chuanying Generic HS PLA", - "sub_path": "filament/Chuanying Generic HS PLA.json" + "name": "Generic HS PLA @Chuanying", + "sub_path": "filament/Generic HS PLA @Chuanying.json" }, { - "name": "Chuanying Generic PETG", - "sub_path": "filament/Chuanying Generic PETG.json" + "name": "Generic PETG @Chuanying", + "sub_path": "filament/Generic PETG @Chuanying.json" }, { - "name": "Chuanying Generic PLA", - "sub_path": "filament/Chuanying Generic PLA.json" + "name": "Generic PLA @Chuanying", + "sub_path": "filament/Generic PLA @Chuanying.json" }, { - "name": "Chuanying Generic PLA-Silk", - "sub_path": "filament/Chuanying Generic PLA-Silk.json" + "name": "Generic PLA-Silk @Chuanying", + "sub_path": "filament/Generic PLA-Silk @Chuanying.json" }, { "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", "sub_path": "filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying Generic HIPS", - "sub_path": "filament/Chuanying Generic HIPS.json" + "name": "Generic HIPS @Chuanying", + "sub_path": "filament/Generic HIPS @Chuanying.json" }, { "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", @@ -90,8 +90,8 @@ "sub_path": "filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying Generic PVA", - "sub_path": "filament/Chuanying Generic PVA.json" + "name": "Generic PVA @Chuanying", + "sub_path": "filament/Generic PVA @Chuanying.json" }, { "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", @@ -102,16 +102,16 @@ "sub_path": "filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying Generic PETG-CF10", - "sub_path": "filament/Chuanying Generic PETG-CF10.json" + "name": "Generic PETG-CF10 @Chuanying", + "sub_path": "filament/Generic PETG-CF10 @Chuanying.json" }, { - "name": "Chuanying Generic PLA-CF10", - "sub_path": "filament/Chuanying Generic PLA-CF10.json" + "name": "Generic PLA-CF10 @Chuanying", + "sub_path": "filament/Generic PLA-CF10 @Chuanying.json" }, { - "name": "Chuanying Generic TPU", - "sub_path": "filament/Chuanying Generic TPU.json" + "name": "Generic TPU @Chuanying", + "sub_path": "filament/Generic TPU @Chuanying.json" } ], "machine_list": [ diff --git a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json index f6df5c7924..8a2a02e2f6 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic ABS", + "inherits": "Generic ABS @Chuanying", "from": "system", "setting_id": "VkCgo0e4KR24DX28", "filament_id": "OFs1sNLz", diff --git a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json index e7f023b4a2..018b418f50 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic ASA", + "inherits": "Generic ASA @Chuanying", "from": "system", "setting_id": "px1EPCDgOG8eE81V", "instantiation": "true", diff --git a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json index fb874cdb9f..2cf18e831f 100644 --- a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic HS PLA", + "inherits": "Generic HS PLA @Chuanying", "from": "system", "setting_id": "CAdli5S8JIFafvRG", "instantiation": "true", diff --git a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json index a1ca25e1a7..e41bc4221b 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying PETG @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic PETG", + "inherits": "Generic PETG @Chuanying", "from": "system", "setting_id": "9xxP8YWj4hnWQoVZ", "filament_id": "OFlXJxX1", diff --git a/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json index c8ba7cc5e6..7bdab64af6 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic PLA", + "inherits": "Generic PLA @Chuanying", "from": "system", "setting_id": "3WDFe1uKTOTiRtPE", "instantiation": "true", diff --git a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json index 4e3a0391dc..d04fcc6f38 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", - "inherits": "Chuanying Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Chuanying", "from": "system", "setting_id": "kph5feBjhPi0oo0G", "instantiation": "true", diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json b/resources/profiles/Chuanying/filament/Generic ABS @Chuanying.json similarity index 85% rename from resources/profiles/Chuanying/filament/Chuanying Generic ABS.json rename to resources/profiles/Chuanying/filament/Generic ABS @Chuanying.json index c98af61d3d..570cd814df 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic ABS.json +++ b/resources/profiles/Chuanying/filament/Generic ABS @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic ABS", + "name": "Generic ABS @Chuanying", "inherits": "fdm_filament_abs", + "renamed_from": "Chuanying Generic ABS", "from": "system", - "setting_id": "XslWGeEo1Okicu28", - "filament_id": "OFZPlCck", + "setting_id": "iOgVkaYF0sixbb9x", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json b/resources/profiles/Chuanying/filament/Generic ASA @Chuanying.json similarity index 95% rename from resources/profiles/Chuanying/filament/Chuanying Generic ASA.json rename to resources/profiles/Chuanying/filament/Generic ASA @Chuanying.json index 6c3dd293d6..f5cc9c8419 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic ASA.json +++ b/resources/profiles/Chuanying/filament/Generic ASA @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic ASA", + "name": "Generic ASA @Chuanying", "inherits": "fdm_filament_asa", + "renamed_from": "Chuanying Generic ASA", "from": "system", - "setting_id": "wBBQiy8JV2LrnIav", - "filament_id": "OFBIadjM", + "setting_id": "39OBrSE3RugtTPPR", + "filament_id": "OFLPAxz3", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json b/resources/profiles/Chuanying/filament/Generic HIPS @Chuanying.json similarity index 94% rename from resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json rename to resources/profiles/Chuanying/filament/Generic HIPS @Chuanying.json index f0dcbdaf77..4d8edd7298 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HIPS.json +++ b/resources/profiles/Chuanying/filament/Generic HIPS @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic HIPS", - "inherits": "Chuanying Generic ABS", + "name": "Generic HIPS @Chuanying", + "inherits": "Generic ABS @Chuanying", + "renamed_from": "Chuanying Generic HIPS", "from": "system", - "setting_id": "bBNozld07rP6mV3d", - "filament_id": "OFDeTsJw", + "setting_id": "TV3UktlnP0aTLsOZ", + "filament_id": "OFsFon5l", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "Chuanying Generic HIPS" + "Generic HIPS @Chuanying" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json b/resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying.json similarity index 96% rename from resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json rename to resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying.json index a5d4cab7eb..8b0529814e 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic HS PLA.json +++ b/resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic HS PLA", + "name": "Generic HS PLA @Chuanying", "inherits": "fdm_filament_pla", + "renamed_from": "Chuanying Generic HS PLA", "from": "system", - "setting_id": "YZT1Uv73b8ArVoX3", - "filament_id": "OFdXgp2K", + "setting_id": "uw7SQpFnhFiO8i1N", + "filament_id": "OFvxghTE", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json b/resources/profiles/Chuanying/filament/Generic PETG @Chuanying.json similarity index 90% rename from resources/profiles/Chuanying/filament/Chuanying Generic PETG.json rename to resources/profiles/Chuanying/filament/Generic PETG @Chuanying.json index c4dad7d095..ae84fb2982 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PETG.json +++ b/resources/profiles/Chuanying/filament/Generic PETG @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PETG", + "name": "Generic PETG @Chuanying", "inherits": "fdm_filament_pet", + "renamed_from": "Chuanying Generic PETG", "from": "system", - "setting_id": "judDupafROrSnVv8", - "filament_id": "OFfxFQf9", + "setting_id": "Mq3uwHDMub81SuRG", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json b/resources/profiles/Chuanying/filament/Generic PETG-CF10 @Chuanying.json similarity index 94% rename from resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json rename to resources/profiles/Chuanying/filament/Generic PETG-CF10 @Chuanying.json index 42865bb8af..85d42dad84 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PETG-CF10.json +++ b/resources/profiles/Chuanying/filament/Generic PETG-CF10 @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PETG-CF10", + "name": "Generic PETG-CF10 @Chuanying", "inherits": "fdm_filament_pet", + "renamed_from": "Chuanying Generic PETG-CF10", "from": "system", - "setting_id": "S2vCGI7sqN8FwodT", - "filament_id": "OFXXUHSG", + "setting_id": "Pr70SnbXDjOF9EvU", + "filament_id": "OFO5djrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json b/resources/profiles/Chuanying/filament/Generic PLA @Chuanying.json similarity index 87% rename from resources/profiles/Chuanying/filament/Chuanying Generic PLA.json rename to resources/profiles/Chuanying/filament/Generic PLA @Chuanying.json index bf0db17fb4..3fcf7cf873 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA.json +++ b/resources/profiles/Chuanying/filament/Generic PLA @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PLA", + "name": "Generic PLA @Chuanying", "inherits": "fdm_filament_pla", + "renamed_from": "Chuanying Generic PLA", "from": "system", - "setting_id": "nnyBm7dlrz3OsVQz", - "filament_id": "OF5vzBhb", + "setting_id": "PRk8NAihEzwi5Dqd", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json b/resources/profiles/Chuanying/filament/Generic PLA-CF10 @Chuanying.json similarity index 96% rename from resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json rename to resources/profiles/Chuanying/filament/Generic PLA-CF10 @Chuanying.json index cf2993ee62..c76c4de977 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-CF10.json +++ b/resources/profiles/Chuanying/filament/Generic PLA-CF10 @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PLA-CF10", + "name": "Generic PLA-CF10 @Chuanying", "inherits": "fdm_filament_pla", + "renamed_from": "Chuanying Generic PLA-CF10", "from": "system", - "setting_id": "EZA59VPwew1cpyUJ", - "filament_id": "OFFxZ7hZ", + "setting_id": "I4FjaXNkWl8Mr4ie", + "filament_id": "OFX2zcrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json b/resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying.json similarity index 87% rename from resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json rename to resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying.json index 90409c864e..0739646658 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PLA-Silk.json +++ b/resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PLA-Silk", + "name": "Generic PLA-Silk @Chuanying", "inherits": "fdm_filament_pla", + "renamed_from": "Chuanying Generic PLA-Silk", "from": "system", - "setting_id": "M9wzNVOPRQlayQH1", - "filament_id": "OFeK2vkS", + "setting_id": "tSCou6bWg8eY1TFn", + "filament_id": "OFi6PfUM", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json b/resources/profiles/Chuanying/filament/Generic PVA @Chuanying.json similarity index 94% rename from resources/profiles/Chuanying/filament/Chuanying Generic PVA.json rename to resources/profiles/Chuanying/filament/Generic PVA @Chuanying.json index 3e89ad7c6b..a38af95d65 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic PVA.json +++ b/resources/profiles/Chuanying/filament/Generic PVA @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic PVA", - "inherits": "Chuanying Generic PLA", + "name": "Generic PVA @Chuanying", + "inherits": "Generic PLA @Chuanying", + "renamed_from": "Chuanying Generic PVA", "from": "system", - "setting_id": "ePZFnkgBiyFuKvji", - "filament_id": "OFRusgEn", + "setting_id": "UTutnObeQqlZxe0B", + "filament_id": "OFDvXujf", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "Chuanying Generic PVA" + "Generic PVA @Chuanying" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json b/resources/profiles/Chuanying/filament/Generic TPU @Chuanying.json similarity index 95% rename from resources/profiles/Chuanying/filament/Chuanying Generic TPU.json rename to resources/profiles/Chuanying/filament/Generic TPU @Chuanying.json index 719fbec4d8..9bea6c388d 100644 --- a/resources/profiles/Chuanying/filament/Chuanying Generic TPU.json +++ b/resources/profiles/Chuanying/filament/Generic TPU @Chuanying.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Chuanying Generic TPU", + "name": "Generic TPU @Chuanying", "inherits": "fdm_filament_tpu", + "renamed_from": "Chuanying Generic TPU", "from": "system", - "setting_id": "HYciEf4160uMYGnH", - "filament_id": "OFYlZMmy", + "setting_id": "gYsq1HqkgyfmVpvz", + "filament_id": "OFgbpcy9", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Chuanying/machine/Chuanying X1.json b/resources/profiles/Chuanying/machine/Chuanying X1.json index c3debcfa76..9e9c3f015d 100644 --- a/resources/profiles/Chuanying/machine/Chuanying X1.json +++ b/resources/profiles/Chuanying/machine/Chuanying X1.json @@ -8,5 +8,5 @@ "bed_model": "chuanying_x1_buildplate_model.STL", "bed_texture": "chuanying_x1_buildplate_texture.svg", "hotend_model": "chuanying_x1_hotend.STL", - "default_materials": "Chuanying Generic PETG;Chuanying Generic PLA" + "default_materials": "Generic PETG @Chuanying;Generic PLA @Chuanying" } diff --git a/resources/profiles/Chuanying/machine/fdm_chuanying_common.json b/resources/profiles/Chuanying/machine/fdm_chuanying_common.json index 7e6cf041bd..41d7339cf0 100644 --- a/resources/profiles/Chuanying/machine/fdm_chuanying_common.json +++ b/resources/profiles/Chuanying/machine/fdm_chuanying_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Chuanying Generic PLA" + "Generic PLA @Chuanying" ], "default_print_profile": "0.20mm Standard @Chuanying X1", "bed_exclude_area": [ diff --git a/resources/profiles/Chuanying/machine/fdm_klipper_common.json b/resources/profiles/Chuanying/machine/fdm_klipper_common.json index fc879d8977..16fb20b900 100644 --- a/resources/profiles/Chuanying/machine/fdm_klipper_common.json +++ b/resources/profiles/Chuanying/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Chuanying Generic ABS" + "Generic ABS @Chuanying" ], "default_print_profile": "0.20mm Standard @Chuanying X1", "bed_exclude_area": [ diff --git a/resources/profiles/Chuanying/machine/fdm_x1_common.json b/resources/profiles/Chuanying/machine/fdm_x1_common.json index 0d2b163b3b..a32177b1d2 100644 --- a/resources/profiles/Chuanying/machine/fdm_x1_common.json +++ b/resources/profiles/Chuanying/machine/fdm_x1_common.json @@ -93,7 +93,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Chuanying Generic PLA" + "Generic PLA @Chuanying" ], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", diff --git a/resources/profiles/Co Print.json b/resources/profiles/Co Print.json index 8e7d9ec990..e6f9fe967c 100644 --- a/resources/profiles/Co Print.json +++ b/resources/profiles/Co Print.json @@ -1,6 +1,6 @@ { "name": "Co Print", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "CoPrint configurations", "machine_model_list": [ @@ -37,20 +37,20 @@ "sub_path": "filament/fdm_filament_pla.json" }, { - "name": "CoPrint Generic PLA", - "sub_path": "filament/CoPrint Generic PLA.json" + "name": "Generic PLA @CoPrint", + "sub_path": "filament/Generic PLA @CoPrint.json" }, { - "name": "CoPrint Generic ABS", - "sub_path": "filament/CoPrint Generic ABS.json" + "name": "Generic ABS @CoPrint", + "sub_path": "filament/Generic ABS @CoPrint.json" }, { - "name": "CoPrint Generic PETG", - "sub_path": "filament/CoPrint Generic PETG.json" + "name": "Generic PETG @CoPrint", + "sub_path": "filament/Generic PETG @CoPrint.json" }, { - "name": "CoPrint Generic TPU", - "sub_path": "filament/CoPrint Generic TPU.json" + "name": "Generic TPU @CoPrint", + "sub_path": "filament/Generic TPU @CoPrint.json" } ], "machine_list": [ diff --git a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json b/resources/profiles/Co Print/filament/Generic ABS @CoPrint.json similarity index 86% rename from resources/profiles/Co Print/filament/CoPrint Generic ABS.json rename to resources/profiles/Co Print/filament/Generic ABS @CoPrint.json index 9b8e5c7995..f047afc265 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic ABS.json +++ b/resources/profiles/Co Print/filament/Generic ABS @CoPrint.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoPrint Generic ABS", - "inherits": "CoPrint Generic PLA", + "name": "Generic ABS @CoPrint", + "inherits": "Generic PLA @CoPrint", + "renamed_from": "CoPrint Generic ABS", "from": "system", - "setting_id": "xW2rHuxT9o7MG8qB", - "filament_id": "OFU6fjbi", + "setting_id": "T6mJwfI7n1YDmDzv", + "filament_id": "OFY9muEs", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json b/resources/profiles/Co Print/filament/Generic PETG @CoPrint.json similarity index 79% rename from resources/profiles/Co Print/filament/CoPrint Generic PETG.json rename to resources/profiles/Co Print/filament/Generic PETG @CoPrint.json index 51dcfb2fff..dd2d03af04 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic PETG.json +++ b/resources/profiles/Co Print/filament/Generic PETG @CoPrint.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoPrint Generic PETG", - "inherits": "CoPrint Generic PLA", + "name": "Generic PETG @CoPrint", + "inherits": "Generic PLA @CoPrint", + "renamed_from": "CoPrint Generic PETG", "from": "system", - "setting_id": "k4m484S1samBGEVb", - "filament_id": "OFXuwtnq", + "setting_id": "99zIrGIXC9RUGDlM", + "filament_id": "OFYPdQJh", "instantiation": "true", "fan_max_speed": [ "90" diff --git a/resources/profiles/Co Print/filament/CoPrint Generic PLA.json b/resources/profiles/Co Print/filament/Generic PLA @CoPrint.json similarity index 68% rename from resources/profiles/Co Print/filament/CoPrint Generic PLA.json rename to resources/profiles/Co Print/filament/Generic PLA @CoPrint.json index 265f8ba442..2a8510b3ab 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic PLA.json +++ b/resources/profiles/Co Print/filament/Generic PLA @CoPrint.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "CoPrint Generic PLA", + "name": "Generic PLA @CoPrint", "inherits": "fdm_filament_pla", + "renamed_from": "CoPrint Generic PLA", "from": "system", - "setting_id": "Hv40GsmNozxOJ38T", - "filament_id": "OF6KELDx", + "setting_id": "9tNsM3FhIDgKJ05R", + "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_load_time": [ "9.75" ], diff --git a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json b/resources/profiles/Co Print/filament/Generic TPU @CoPrint.json similarity index 81% rename from resources/profiles/Co Print/filament/CoPrint Generic TPU.json rename to resources/profiles/Co Print/filament/Generic TPU @CoPrint.json index fc2fc69008..c25896fe55 100644 --- a/resources/profiles/Co Print/filament/CoPrint Generic TPU.json +++ b/resources/profiles/Co Print/filament/Generic TPU @CoPrint.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoPrint Generic TPU", - "inherits": "CoPrint Generic PLA", + "name": "Generic TPU @CoPrint", + "inherits": "Generic PLA @CoPrint", + "renamed_from": "CoPrint Generic TPU", "from": "system", - "setting_id": "2mWqeih012I5D2CK", - "filament_id": "OF7g2vYQ", + "setting_id": "0V6UoaCfNUIwYwah", + "filament_id": "OFgbpcy9", "instantiation": "true", "fan_max_speed": [ "80" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json index 355ba1eca8..f032c9bf6e 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json @@ -108,7 +108,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "CoPrint Generic PLA" + "Generic PLA @CoPrint" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json index 52fa36bc5d..a36e231d94 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json @@ -108,7 +108,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "CoPrint Generic PLA" + "Generic PLA @CoPrint" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json index 57f2e507c4..2d206c1734 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json @@ -108,7 +108,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "CoPrint Generic PLA" + "Generic PLA @CoPrint" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json index efa52a34f4..72116fcd70 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json @@ -108,7 +108,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "CoPrint Generic PLA" + "Generic PLA @CoPrint" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet.json b/resources/profiles/Co Print/machine/Co Print ChromaSet.json index 883ee91c93..5ce0287757 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "Co_Print_ChromaSet_buildplate_texture.svg", "hotend_model": "", - "default_materials": "CoPrint Generic PLA" + "default_materials": "Generic PLA @CoPrint" } diff --git a/resources/profiles/Co Print/machine/fdm_coprint_common.json b/resources/profiles/Co Print/machine/fdm_coprint_common.json index f7911c2a94..ecb6bd1ac2 100644 --- a/resources/profiles/Co Print/machine/fdm_coprint_common.json +++ b/resources/profiles/Co Print/machine/fdm_coprint_common.json @@ -100,7 +100,7 @@ "machine_start_gcode": "start_print EXTRUDER=[initial_extruder] EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "end_print", "default_filament_profile": [ - "CoPrint Generic PLA" + "Generic PLA @CoPrint" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/CoLiDo.json b/resources/profiles/CoLiDo.json index 972ffd396b..d0c395b348 100644 --- a/resources/profiles/CoLiDo.json +++ b/resources/profiles/CoLiDo.json @@ -1,6 +1,6 @@ { "name": "CoLiDo", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "CoLiDo configurations", "machine_model_list": [ @@ -189,32 +189,32 @@ "sub_path": "filament/CoLiDo ABS @CoLiDo SR1.json" }, { - "name": "CoLiDo Generic ABS @CoLiDo DIY 4.0", - "sub_path": "filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json" + "name": "Generic ABS @CoLiDo DIY 4.0", + "sub_path": "filament/Generic ABS @CoLiDo DIY 4.0.json" }, { - "name": "CoLiDo Generic ABS @CoLiDo X16", - "sub_path": "filament/CoLiDo Generic ABS @CoLiDo X16.json" + "name": "Generic ABS @CoLiDo X16", + "sub_path": "filament/Generic ABS @CoLiDo X16.json" }, { - "name": "CoLiDo Generic PETG @CoLiDo DIY 4.0", - "sub_path": "filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json" + "name": "Generic PETG @CoLiDo DIY 4.0", + "sub_path": "filament/Generic PETG @CoLiDo DIY 4.0.json" }, { - "name": "CoLiDo Generic PETG @CoLiDo X16", - "sub_path": "filament/CoLiDo Generic PETG @CoLiDo X16.json" + "name": "Generic PETG @CoLiDo X16", + "sub_path": "filament/Generic PETG @CoLiDo X16.json" }, { "name": "CoLiDo PETG @CoLiDo SR1", "sub_path": "filament/CoLiDo PETG @CoLiDo SR1.json" }, { - "name": "CoLiDo Generic PLA @CoLiDo DIY 4.0", - "sub_path": "filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json" + "name": "Generic PLA @CoLiDo DIY 4.0", + "sub_path": "filament/Generic PLA @CoLiDo DIY 4.0.json" }, { - "name": "CoLiDo Generic PLA @CoLiDo X16", - "sub_path": "filament/CoLiDo Generic PLA @CoLiDo X16.json" + "name": "Generic PLA @CoLiDo X16", + "sub_path": "filament/Generic PLA @CoLiDo X16.json" }, { "name": "CoLiDo PLA @CoLiDo SR1", @@ -229,12 +229,12 @@ "sub_path": "filament/CoLiDo PLA+ @CoLiDo DIY 4.0 V2.json" }, { - "name": "CoLiDo Generic TPU @CoLiDo DIY 4.0", - "sub_path": "filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json" + "name": "Generic TPU @CoLiDo DIY 4.0", + "sub_path": "filament/Generic TPU @CoLiDo DIY 4.0.json" }, { - "name": "CoLiDo Generic TPU @CoLiDo X16", - "sub_path": "filament/CoLiDo Generic TPU @CoLiDo X16.json" + "name": "Generic TPU @CoLiDo X16", + "sub_path": "filament/Generic TPU @CoLiDo X16.json" } ], "machine_list": [ diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo DIY 4.0.json similarity index 73% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json rename to resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo DIY 4.0.json index 84469a0d15..acb6033883 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo DIY 4.0.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic ABS @CoLiDo DIY 4.0", + "name": "Generic ABS @CoLiDo DIY 4.0", "inherits": "fdm_filament_abs", + "renamed_from": "CoLiDo Generic ABS @CoLiDo DIY 4.0;CoLiDo Generic ABS CoLiDo DIY 4.0", "from": "system", - "setting_id": "acWqrAFyi2SIkNwa", - "filament_id": "OFWIr7ZE", + "setting_id": "XLTLGUPGcCZnX5XA", + "filament_id": "OFY9muEs", "instantiation": "true", "fan_max_speed": [ "80" @@ -16,7 +17,7 @@ "16" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "100" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo X16.json similarity index 75% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json rename to resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo X16.json index 3ee0390bfd..aa567b7ba8 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic ABS @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/Generic ABS @CoLiDo X16.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic ABS @CoLiDo X16", + "name": "Generic ABS @CoLiDo X16", "inherits": "fdm_filament_abs", + "renamed_from": "CoLiDo Generic ABS @CoLiDo X16;CoLiDo Generic ABS CoLiDo X16", "from": "system", - "setting_id": "l44ioMidpUECbGYF", - "filament_id": "OFWIr7ZE", + "setting_id": "LE7jeYUNsBZEKQpJ", + "filament_id": "OFY9muEs", "instantiation": "true", "fan_max_speed": [ "20" @@ -16,7 +17,7 @@ "16" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "95" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo DIY 4.0.json similarity index 84% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json rename to resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo DIY 4.0.json index 1a3839374a..d70dd4d511 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo DIY 4.0.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic PETG @CoLiDo DIY 4.0", + "name": "Generic PETG @CoLiDo DIY 4.0", "inherits": "fdm_filament_pet", + "renamed_from": "CoLiDo Generic PETG @CoLiDo DIY 4.0;CoLiDo Generic PETG CoLiDo DIY 4.0", "from": "system", - "setting_id": "IBtIS8bwcIWhiCow", - "filament_id": "OF3wxlw9", + "setting_id": "FV2MjDSWlg3kolp3", + "filament_id": "OFYPdQJh", "instantiation": "true", "cool_plate_temp": [ "0" @@ -40,7 +41,7 @@ "; filament start gcode\n" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo X16.json similarity index 85% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json rename to resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo X16.json index 7b532e7dfa..5f68b5600b 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PETG @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/Generic PETG @CoLiDo X16.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic PETG @CoLiDo X16", + "name": "Generic PETG @CoLiDo X16", "inherits": "fdm_filament_pet", + "renamed_from": "CoLiDo Generic PETG @CoLiDo X16;CoLiDo Generic PETG CoLiDo X16", "from": "system", - "setting_id": "AovAvrEzGiZqFRpc", - "filament_id": "OF3wxlw9", + "setting_id": "eX4i0rDwO3rAlQ2y", + "filament_id": "OFYPdQJh", "instantiation": "true", "cool_plate_temp": [ "0" @@ -40,7 +41,7 @@ "; filament start gcode\n" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo DIY 4.0.json similarity index 77% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json rename to resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo DIY 4.0.json index bb5c3d8dc7..9bd8db3357 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo DIY 4.0.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic PLA @CoLiDo DIY 4.0", + "name": "Generic PLA @CoLiDo DIY 4.0", "inherits": "fdm_filament_pla", + "renamed_from": "CoLiDo Generic PLA @CoLiDo DIY 4.0;CoLiDo Generic PLA CoLiDo DIY 4.0", "from": "system", - "setting_id": "foEeUk6PK78QXleQ", - "filament_id": "OFeDfaCh", + "setting_id": "POF6nKughZF8OsBF", + "filament_id": "OFDSrzZ8", "instantiation": "true", "fan_cooling_layer_time": [ "80" @@ -22,7 +23,7 @@ "19.5" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "60" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo X16.json similarity index 78% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json rename to resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo X16.json index d0e36e8146..f437702111 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic PLA @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/Generic PLA @CoLiDo X16.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic PLA @CoLiDo X16", + "name": "Generic PLA @CoLiDo X16", "inherits": "fdm_filament_pla", + "renamed_from": "CoLiDo Generic PLA @CoLiDo X16;CoLiDo Generic PLA CoLiDo X16", "from": "system", - "setting_id": "HY8RFWOKRptC2YVt", - "filament_id": "OFeDfaCh", + "setting_id": "38SFNLJEVBeAVL3B", + "filament_id": "OFDSrzZ8", "instantiation": "true", "fan_cooling_layer_time": [ "80" @@ -22,7 +23,7 @@ "12" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "60" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo DIY 4.0.json similarity index 74% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json rename to resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo DIY 4.0.json index e4fd40ea60..0422f6b4c6 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo DIY 4.0.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic TPU @CoLiDo DIY 4.0", + "name": "Generic TPU @CoLiDo DIY 4.0", "inherits": "fdm_filament_tpu", + "renamed_from": "CoLiDo Generic TPU @CoLiDo DIY 4.0;CoLiDo Generic TPU CoLiDo DIY 4.0", "from": "system", - "setting_id": "ZgbaHhRSK8AW38MB", - "filament_id": "OFdlGycb", + "setting_id": "5tJNn6c6RXqJUT2z", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_density": [ "1.22" @@ -16,7 +17,7 @@ "; filament start gcode\n" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "45" diff --git a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json b/resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo X16.json similarity index 76% rename from resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json rename to resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo X16.json index 9fb7c570e9..ccf0d405b1 100644 --- a/resources/profiles/CoLiDo/filament/CoLiDo Generic TPU @CoLiDo X16.json +++ b/resources/profiles/CoLiDo/filament/Generic TPU @CoLiDo X16.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "CoLiDo Generic TPU @CoLiDo X16", + "name": "Generic TPU @CoLiDo X16", "inherits": "fdm_filament_tpu", + "renamed_from": "CoLiDo Generic TPU @CoLiDo X16;CoLiDo Generic TPU CoLiDo X16", "from": "system", - "setting_id": "f6yTiUiYYLckJBTQ", - "filament_id": "OFdlGycb", + "setting_id": "wylEuYSIKlzSVnoQ", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_density": [ "1.22" @@ -16,7 +17,7 @@ "; filament start gcode\n" ], "filament_vendor": [ - "CoLiDo" + "Generic" ], "hot_plate_temp": [ "40" diff --git a/resources/profiles/CoLiDo/machine/CoLiDo 160 V2 0.4 nozzle.json b/resources/profiles/CoLiDo/machine/CoLiDo 160 V2 0.4 nozzle.json index 65f2db78eb..8e9b4b34c5 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo 160 V2 0.4 nozzle.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo 160 V2 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "CoLiDo Generic PLA @CoLiDo X16" + "Generic PLA @CoLiDo X16" ], "default_print_profile": "0.20mm Standard @CoLiDo X16", "deretraction_speed": [ diff --git a/resources/profiles/CoLiDo/machine/CoLiDo 160 V2.json b/resources/profiles/CoLiDo/machine/CoLiDo 160 V2.json index 4c18236e07..6f6985d46e 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo 160 V2.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo 160 V2.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "", "hotend_model": "", - "default_materials": "CoLiDo Generic PLA @CoLiDo X16;CoLiDo Generic ABS @CoLiDo X16;CoLiDo Generic PETG @CoLiDo X16;CoLiDo Generic TPU @CoLiDo X16" + "default_materials": "Generic PLA @CoLiDo X16;Generic ABS @CoLiDo X16;Generic PETG @CoLiDo X16;Generic TPU @CoLiDo X16" } diff --git a/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0 0.4 nozzle.json b/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0 0.4 nozzle.json index d0e1a2abc6..bbecec1d48 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0 0.4 nozzle.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "CoLiDo Generic PLA @CoLiDo DIY 4.0" + "Generic PLA @CoLiDo DIY 4.0" ], "default_print_profile": "0.20mm Standard @CoLiDo DIY 4.0", "deretraction_speed": [ diff --git a/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0.json b/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0.json index f774672974..693937a8cb 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo DIY 4.0.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "", "hotend_model": "", - "default_materials": "CoLiDo Generic PLA @CoLiDo DIY 4.0;CoLiDo Generic ABS @CoLiDo DIY 4.0;CoLiDo Generic PETG @CoLiDo DIY 4.0;CoLiDo Generic TPU @CoLiDo DIY 4.0" + "default_materials": "Generic PLA @CoLiDo DIY 4.0;Generic ABS @CoLiDo DIY 4.0;Generic PETG @CoLiDo DIY 4.0;Generic TPU @CoLiDo DIY 4.0" } diff --git a/resources/profiles/CoLiDo/machine/CoLiDo X16 0.4 nozzle.json b/resources/profiles/CoLiDo/machine/CoLiDo X16 0.4 nozzle.json index cfdfd38571..228580eece 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo X16 0.4 nozzle.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo X16 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "CoLiDo Generic PLA @CoLiDo X16" + "Generic PLA @CoLiDo X16" ], "default_print_profile": "0.20mm Standard @CoLiDo X16", "deretraction_speed": [ diff --git a/resources/profiles/CoLiDo/machine/CoLiDo X16.json b/resources/profiles/CoLiDo/machine/CoLiDo X16.json index e95b6ea56b..e1633e083f 100644 --- a/resources/profiles/CoLiDo/machine/CoLiDo X16.json +++ b/resources/profiles/CoLiDo/machine/CoLiDo X16.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "", "hotend_model": "", - "default_materials": "CoLiDo Generic PLA @CoLiDo X16;CoLiDo Generic ABS @CoLiDo X16;CoLiDo Generic PETG @CoLiDo X16;CoLiDo Generic TPU @CoLiDo X16" + "default_materials": "Generic PLA @CoLiDo X16;Generic ABS @CoLiDo X16;Generic PETG @CoLiDo X16;Generic TPU @CoLiDo X16" } diff --git a/resources/profiles/Comgrow.json b/resources/profiles/Comgrow.json index da7d0e29f6..107ef2b3ba 100644 --- a/resources/profiles/Comgrow.json +++ b/resources/profiles/Comgrow.json @@ -1,6 +1,6 @@ { "name": "Comgrow", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Comgrow configurations", "machine_model_list": [ @@ -105,16 +105,16 @@ "sub_path": "filament/fdm_filament_pla.json" }, { - "name": "Comgrow Generic ABS", - "sub_path": "filament/Comgrow Generic ABS.json" + "name": "Generic ABS @Comgrow", + "sub_path": "filament/Generic ABS @Comgrow.json" }, { - "name": "Comgrow Generic PETG", - "sub_path": "filament/Comgrow Generic PETG.json" + "name": "Generic PETG @Comgrow", + "sub_path": "filament/Generic PETG @Comgrow.json" }, { - "name": "Comgrow Generic PLA", - "sub_path": "filament/Comgrow Generic PLA.json" + "name": "Generic PLA @Comgrow", + "sub_path": "filament/Generic PLA @Comgrow.json" }, { "name": "Comgrow T300 PLA", diff --git a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json index a88573aa26..965e2985ee 100644 --- a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json +++ b/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Comgrow T300 PLA", - "inherits": "Comgrow Generic PLA", + "inherits": "Generic PLA @Comgrow", "from": "system", "setting_id": "TnHaf2TSHVfuwbVg", "filament_id": "OFNWcJsM", diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json b/resources/profiles/Comgrow/filament/Generic ABS @Comgrow.json similarity index 72% rename from resources/profiles/Comgrow/filament/Comgrow Generic ABS.json rename to resources/profiles/Comgrow/filament/Generic ABS @Comgrow.json index 6a1ff9248e..0494418d88 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic ABS.json +++ b/resources/profiles/Comgrow/filament/Generic ABS @Comgrow.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Comgrow Generic ABS", + "name": "Generic ABS @Comgrow", "inherits": "fdm_filament_abs", + "renamed_from": "Comgrow Generic ABS", "from": "system", - "setting_id": "7xmGiJHgiD5KKTXt", - "filament_id": "OFsoQ12i", + "setting_id": "jprGDn9oZEZu4N97", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json b/resources/profiles/Comgrow/filament/Generic PETG @Comgrow.json similarity index 85% rename from resources/profiles/Comgrow/filament/Comgrow Generic PETG.json rename to resources/profiles/Comgrow/filament/Generic PETG @Comgrow.json index 44dad83ceb..12b29d0b1d 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic PETG.json +++ b/resources/profiles/Comgrow/filament/Generic PETG @Comgrow.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Comgrow Generic PETG", + "name": "Generic PETG @Comgrow", "inherits": "fdm_filament_pet", + "renamed_from": "Comgrow Generic PETG", "from": "system", - "setting_id": "FJjkU2RhAZD10Cw8", - "filament_id": "OF6Fpw1E", + "setting_id": "xi0S7KdXD7lwr3H8", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json b/resources/profiles/Comgrow/filament/Generic PLA @Comgrow.json similarity index 73% rename from resources/profiles/Comgrow/filament/Comgrow Generic PLA.json rename to resources/profiles/Comgrow/filament/Generic PLA @Comgrow.json index 4674b2b60a..21b8e19d42 100644 --- a/resources/profiles/Comgrow/filament/Comgrow Generic PLA.json +++ b/resources/profiles/Comgrow/filament/Generic PLA @Comgrow.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Comgrow Generic PLA", + "name": "Generic PLA @Comgrow", "inherits": "fdm_filament_pla", + "renamed_from": "Comgrow Generic PLA", "from": "system", - "setting_id": "sGAn6RP69saYSqcY", - "filament_id": "OFVKADz5", + "setting_id": "oxIMSlkJ8C40mJIv", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Comgrow/machine/Comgrow T500.json b/resources/profiles/Comgrow/machine/Comgrow T500.json index e7945de67a..6714a5a4b0 100644 --- a/resources/profiles/Comgrow/machine/Comgrow T500.json +++ b/resources/profiles/Comgrow/machine/Comgrow T500.json @@ -8,5 +8,5 @@ "bed_model": "comgrow_t500_buildplate_model.stl", "bed_texture": "comgrow_t500_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Comgrow Generic PLA;Comgrow Generic PETG;Comgrow Generic ABS" + "default_materials": "Generic PLA @Comgrow;Generic PETG @Comgrow;Generic ABS @Comgrow" } diff --git a/resources/profiles/Comgrow/machine/fdm_comgrow_common.json b/resources/profiles/Comgrow/machine/fdm_comgrow_common.json index b256b09306..ef8ce3ba93 100644 --- a/resources/profiles/Comgrow/machine/fdm_comgrow_common.json +++ b/resources/profiles/Comgrow/machine/fdm_comgrow_common.json @@ -131,7 +131,7 @@ "thumbnails_format": "PNG", "nozzle_type": "hardened_steel", "default_filament_profile": [ - "Comgrow Generic PETG" + "Generic PETG @Comgrow" ], "default_print_profile": "0.20mm Standard @Comgrow T500", "bed_exclude_area": [ diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 077ee827e5..29399dcade 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.76", + "version": "02.03.02.77", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ @@ -1633,28 +1633,28 @@ "sub_path": "filament/fdm_filament_common.json" }, { - "name": "Creality Generic ABS @Ender-5Max-all", - "sub_path": "filament/Creality Generic ABS @Ender-5Max-all.json" + "name": "Generic ABS @Creality Ender-5Max-all", + "sub_path": "filament/Generic ABS @Creality Ender-5Max-all.json" }, { - "name": "Creality Generic ASA @Ender-5Max-all", - "sub_path": "filament/Creality Generic ASA @Ender-5Max-all.json" + "name": "Generic ASA @Creality Ender-5Max-all", + "sub_path": "filament/Generic ASA @Creality Ender-5Max-all.json" }, { - "name": "Creality Generic PA @Ender-5Max-all", - "sub_path": "filament/Creality Generic PA @Ender-5Max-all.json" + "name": "Generic PA @Creality Ender-5Max-all", + "sub_path": "filament/Generic PA @Creality Ender-5Max-all.json" }, { - "name": "Creality Generic PETG @Ender-5Max-all", - "sub_path": "filament/Creality Generic PETG @Ender-5Max-all.json" + "name": "Generic PETG @Creality Ender-5Max-all", + "sub_path": "filament/Generic PETG @Creality Ender-5Max-all.json" }, { - "name": "Creality Generic PLA @Ender-5Max-all", - "sub_path": "filament/Creality Generic PLA @Ender-5Max-all.json" + "name": "Generic PLA @Creality Ender-5Max-all", + "sub_path": "filament/Generic PLA @Creality Ender-5Max-all.json" }, { - "name": "Creality Generic TPU @Ender-5Max-all", - "sub_path": "filament/Creality Generic TPU @Ender-5Max-all.json" + "name": "Generic TPU @Creality Ender-5Max-all", + "sub_path": "filament/Generic TPU @Creality Ender-5Max-all.json" }, { "name": "Creality Hyper ABS @Ender-5Max-all", @@ -1701,212 +1701,212 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Creality Generic ABS", - "sub_path": "filament/Creality Generic ABS.json" + "name": "Generic ABS @Creality", + "sub_path": "filament/Generic ABS @Creality.json" }, { - "name": "Creality Generic ASA", - "sub_path": "filament/Creality Generic ASA.json" + "name": "Generic ASA @Creality", + "sub_path": "filament/Generic ASA @Creality.json" }, { - "name": "Creality Generic PA-CF", - "sub_path": "filament/Creality Generic PA-CF.json" + "name": "Generic PA-CF @Creality", + "sub_path": "filament/Generic PA-CF @Creality.json" }, { - "name": "Creality Generic PC", - "sub_path": "filament/Creality Generic PC.json" + "name": "Generic PC @Creality", + "sub_path": "filament/Generic PC @Creality.json" }, { - "name": "Creality Generic PETG", - "sub_path": "filament/Creality Generic PETG.json" + "name": "Generic PETG @Creality", + "sub_path": "filament/Generic PETG @Creality.json" }, { - "name": "Creality Generic PLA", - "sub_path": "filament/Creality Generic PLA.json" + "name": "Generic PLA @Creality", + "sub_path": "filament/Generic PLA @Creality.json" }, { - "name": "Creality Generic PLA-CF", - "sub_path": "filament/Creality Generic PLA-CF.json" + "name": "Generic PLA-CF @Creality", + "sub_path": "filament/Generic PLA-CF @Creality.json" }, { - "name": "Creality HF Generic PLA", - "sub_path": "filament/Creality HF Generic PLA.json" + "name": "Generic PLA HF @Creality", + "sub_path": "filament/Generic PLA HF @Creality.json" }, { - "name": "Creality HF Generic Speed PLA", - "sub_path": "filament/Creality HF Generic Speed PLA.json" + "name": "Generic Speed PLA @Creality HF", + "sub_path": "filament/Generic Speed PLA @Creality HF.json" }, { - "name": "Creality Generic TPU", - "sub_path": "filament/Creality Generic TPU.json" + "name": "Generic TPU @Creality", + "sub_path": "filament/Generic TPU @Creality.json" }, { - "name": "Creality Generic ABS @Ender-3V3-all", - "sub_path": "filament/Creality Generic ABS @Ender-3V3-all.json" + "name": "Generic ABS @Creality Ender-3V3-all", + "sub_path": "filament/Generic ABS @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic ABS @Hi-all", - "sub_path": "filament/Creality Generic ABS @Hi-all.json" + "name": "Generic ABS @Creality Hi-all", + "sub_path": "filament/Generic ABS @Creality Hi-all.json" }, { - "name": "Creality Generic ABS @K1-all", - "sub_path": "filament/Creality Generic ABS @K1-all.json" + "name": "Generic ABS @Creality K1-all", + "sub_path": "filament/Generic ABS @Creality K1-all.json" }, { - "name": "Creality Generic ABS @K2-all", - "sub_path": "filament/Creality Generic ABS @K2-all.json" + "name": "Generic ABS @Creality K2-all", + "sub_path": "filament/Generic ABS @Creality K2-all.json" }, { - "name": "Creality Generic ASA @Ender-3V3-all", - "sub_path": "filament/Creality Generic ASA @Ender-3V3-all.json" + "name": "Generic ASA @Creality Ender-3V3-all", + "sub_path": "filament/Generic ASA @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic ASA @Hi-all", - "sub_path": "filament/Creality Generic ASA @Hi-all.json" + "name": "Generic ASA @Creality Hi-all", + "sub_path": "filament/Generic ASA @Creality Hi-all.json" }, { - "name": "Creality Generic ASA @K1-all", - "sub_path": "filament/Creality Generic ASA @K1-all.json" + "name": "Generic ASA @Creality K1-all", + "sub_path": "filament/Generic ASA @Creality K1-all.json" }, { - "name": "Creality Generic ASA @K2-all", - "sub_path": "filament/Creality Generic ASA @K2-all.json" + "name": "Generic ASA @Creality K2-all", + "sub_path": "filament/Generic ASA @Creality K2-all.json" }, { - "name": "Creality Generic PA-CF @Ender-3V3-all", - "sub_path": "filament/Creality Generic PA-CF @Ender-3V3-all.json" + "name": "Generic PA-CF @Creality Ender-3V3-all", + "sub_path": "filament/Generic PA-CF @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PA-CF @K1-all", - "sub_path": "filament/Creality Generic PA-CF @K1-all.json" + "name": "Generic PA-CF @Creality K1-all", + "sub_path": "filament/Generic PA-CF @Creality K1-all.json" }, { - "name": "Creality Generic PA-CF @K2-all", - "sub_path": "filament/Creality Generic PA-CF @K2-all.json" + "name": "Generic PA-CF @Creality K2-all", + "sub_path": "filament/Generic PA-CF @Creality K2-all.json" }, { - "name": "Creality Generic PC @K1-all", - "sub_path": "filament/Creality Generic PC @K1-all.json" + "name": "Generic PC @Creality K1-all", + "sub_path": "filament/Generic PC @Creality K1-all.json" }, { - "name": "Creality Generic PETG @Ender-3V3-all", - "sub_path": "filament/Creality Generic PETG @Ender-3V3-all.json" + "name": "Generic PETG @Creality Ender-3V3-all", + "sub_path": "filament/Generic PETG @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PETG @Hi-all", - "sub_path": "filament/Creality Generic PETG @Hi-all.json" + "name": "Generic PETG @Creality Hi-all", + "sub_path": "filament/Generic PETG @Creality Hi-all.json" }, { - "name": "Creality Generic PETG @K1-all", - "sub_path": "filament/Creality Generic PETG @K1-all.json" + "name": "Generic PETG @Creality K1-all", + "sub_path": "filament/Generic PETG @Creality K1-all.json" }, { - "name": "Creality Generic PETG @K2-all", - "sub_path": "filament/Creality Generic PETG @K2-all.json" + "name": "Generic PETG @Creality K2-all", + "sub_path": "filament/Generic PETG @Creality K2-all.json" }, { - "name": "Creality Generic PLA @Ender-3V3-all", - "sub_path": "filament/Creality Generic PLA @Ender-3V3-all.json" + "name": "Generic PLA @Creality Ender-3V3-all", + "sub_path": "filament/Generic PLA @Creality Ender-3V3-all.json" }, { "name": "Creality Generic PLA @Hi-all", "sub_path": "filament/Creality Generic PLA @Hi-all.json" }, { - "name": "Creality Generic PLA @K1-all", - "sub_path": "filament/Creality Generic PLA @K1-all.json" + "name": "Generic PLA @Creality K1-all", + "sub_path": "filament/Generic PLA @Creality K1-all.json" }, { - "name": "Creality Generic PLA @K2-all", - "sub_path": "filament/Creality Generic PLA @K2-all.json" + "name": "Generic PLA @Creality K2-all", + "sub_path": "filament/Generic PLA @Creality K2-all.json" }, { - "name": "Creality Generic PLA-CF @Hi-all", - "sub_path": "filament/Creality Generic PLA-CF @Hi-all.json" + "name": "Generic PLA-CF @Creality Hi-all", + "sub_path": "filament/Generic PLA-CF @Creality Hi-all.json" }, { - "name": "Creality Generic PLA-CF @K1-all", - "sub_path": "filament/Creality Generic PLA-CF @K1-all.json" + "name": "Generic PLA-CF @Creality K1-all", + "sub_path": "filament/Generic PLA-CF @Creality K1-all.json" }, { - "name": "Creality Generic PLA-CF @K2-all", - "sub_path": "filament/Creality Generic PLA-CF @K2-all.json" + "name": "Generic PLA-CF @Creality K2-all", + "sub_path": "filament/Generic PLA-CF @Creality K2-all.json" }, { - "name": "Creality Generic TPU @Ender-3V3-all", - "sub_path": "filament/Creality Generic TPU @Ender-3V3-all.json" + "name": "Generic TPU @Creality Ender-3V3-all", + "sub_path": "filament/Generic TPU @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic TPU @Hi-all", - "sub_path": "filament/Creality Generic TPU @Hi-all.json" + "name": "Generic TPU @Creality Hi-all", + "sub_path": "filament/Generic TPU @Creality Hi-all.json" }, { - "name": "Creality Generic TPU @K1-all", - "sub_path": "filament/Creality Generic TPU @K1-all.json" + "name": "Generic TPU @Creality K1-all", + "sub_path": "filament/Generic TPU @Creality K1-all.json" }, { - "name": "Creality Generic TPU @K2-all", - "sub_path": "filament/Creality Generic TPU @K2-all.json" + "name": "Generic TPU @Creality K2-all", + "sub_path": "filament/Generic TPU @Creality K2-all.json" }, { - "name": "Creality Generic ASA-CF @Hi-all", - "sub_path": "filament/Creality Generic ASA-CF @Hi-all.json" + "name": "Generic ASA-CF @Creality Hi-all", + "sub_path": "filament/Generic ASA-CF @Creality Hi-all.json" }, { - "name": "Creality Generic PETG-CF @Hi-all", - "sub_path": "filament/Creality Generic PETG-CF @Hi-all.json" + "name": "Generic PETG-CF @Creality Hi-all", + "sub_path": "filament/Generic PETG-CF @Creality Hi-all.json" }, { - "name": "Creality Generic PLA High Speed @Ender-3V3-all", - "sub_path": "filament/Creality Generic PLA High Speed @Ender-3V3-all.json" + "name": "Generic PLA High Speed @Creality Ender-3V3-all", + "sub_path": "filament/Generic PLA High Speed @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PLA Matte @Ender-3V3-all", - "sub_path": "filament/Creality Generic PLA Matte @Ender-3V3-all.json" + "name": "Generic PLA Matte @Creality Ender-3V3-all", + "sub_path": "filament/Generic PLA Matte @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PLA Silk @Ender-3V3-all", - "sub_path": "filament/Creality Generic PLA Silk @Ender-3V3-all.json" + "name": "Generic PLA Silk @Creality Ender-3V3-all", + "sub_path": "filament/Generic PLA Silk @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PLA High Speed @Hi-all", - "sub_path": "filament/Creality Generic PLA High Speed @Hi-all.json" + "name": "Generic PLA High Speed @Creality Hi-all", + "sub_path": "filament/Generic PLA High Speed @Creality Hi-all.json" }, { - "name": "Creality Generic PLA Matte @Hi-all", - "sub_path": "filament/Creality Generic PLA Matte @Hi-all.json" + "name": "Generic PLA Matte @Creality Hi-all", + "sub_path": "filament/Generic PLA Matte @Creality Hi-all.json" }, { - "name": "Creality Generic PLA Silk @Hi-all", - "sub_path": "filament/Creality Generic PLA Silk @Hi-all.json" + "name": "Generic PLA Silk @Creality Hi-all", + "sub_path": "filament/Generic PLA Silk @Creality Hi-all.json" }, { - "name": "Creality Generic PLA Wood @Hi-all", - "sub_path": "filament/Creality Generic PLA Wood @Hi-all.json" + "name": "Generic PLA Wood @Creality Hi-all", + "sub_path": "filament/Generic PLA Wood @Creality Hi-all.json" }, { - "name": "Creality Generic PLA High Speed @K1-all", - "sub_path": "filament/Creality Generic PLA High Speed @K1-all.json" + "name": "Generic PLA High Speed @Creality K1-all", + "sub_path": "filament/Generic PLA High Speed @Creality K1-all.json" }, { - "name": "Creality Generic PLA Matte @K1-all", - "sub_path": "filament/Creality Generic PLA Matte @K1-all.json" + "name": "Generic PLA Matte @Creality K1-all", + "sub_path": "filament/Generic PLA Matte @Creality K1-all.json" }, { - "name": "Creality Generic PLA Silk @K1-all", - "sub_path": "filament/Creality Generic PLA Silk @K1-all.json" + "name": "Generic PLA Silk @Creality K1-all", + "sub_path": "filament/Generic PLA Silk @Creality K1-all.json" }, { - "name": "Creality Generic PLA High Speed @K2-all", - "sub_path": "filament/Creality Generic PLA High Speed @K2-all.json" + "name": "Generic PLA High Speed @Creality K2-all", + "sub_path": "filament/Generic PLA High Speed @Creality K2-all.json" }, { - "name": "Creality Generic PLA Matte @K2-all", - "sub_path": "filament/Creality Generic PLA Matte @K2-all.json" + "name": "Generic PLA Matte @Creality K2-all", + "sub_path": "filament/Generic PLA Matte @Creality K2-all.json" }, { - "name": "Creality Generic PLA Silk @K2-all", - "sub_path": "filament/Creality Generic PLA Silk @K2-all.json" + "name": "Generic PLA Silk @Creality K2-all", + "sub_path": "filament/Generic PLA Silk @Creality K2-all.json" }, { "name": "fdm_filament_pp", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json deleted file mode 100644 index ff2a1eb68c..0000000000 --- a/resources/profiles/Creality/filament/Creality Generic ASA-CF @Hi-all.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "name": "Creality Generic ASA-CF @Hi-all", - "inherits": "Creality Generic ASA @Hi-all", - "from": "system", - "setting_id": "C7IB6HSJxW598zFA", - "filament_id": "OFLuczRG", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "9" - ], - "slow_down_layer_time": [ - "5" - ], - "compatible_printers": [ - "Creality Hi 0.4 nozzle", - "Creality Hi 0.6 nozzle" - ] -} diff --git a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json deleted file mode 100644 index d914f2eb4b..0000000000 --- a/resources/profiles/Creality/filament/Creality Generic PETG-CF @Hi-all.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "name": "Creality Generic PETG-CF @Hi-all", - "inherits": "Creality Generic PETG @Hi-all", - "from": "system", - "setting_id": "G4ZIJDNOpQvutOfs", - "filament_id": "OFqKmLJe", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "9" - ], - "filament_flow_ratio": [ - "0.95" - ], - "compatible_printers": [ - "Creality Hi 0.4 nozzle", - "Creality Hi 0.6 nozzle" - ] -} diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json index 3247f38500..63f51623a0 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Creality Generic PLA @Hi-all", - "inherits": "Creality Generic PLA", + "inherits": "Generic PLA @Creality", "from": "system", "setting_id": "3gf0CImK4nJwfXrB", "instantiation": "true", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json deleted file mode 100644 index 42eaf2c36c..0000000000 --- a/resources/profiles/Creality/filament/Creality Generic PLA-CF @Hi-all.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Creality Generic PLA-CF @Hi-all", - "inherits": "Creality Generic PLA-CF", - "from": "system", - "setting_id": "9nAovlPz0SEUcovr", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "18" - ], - "compatible_printers": [ - "Creality Hi 0.4 nozzle", - "Creality Hi 0.6 nozzle" - ] -} diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json similarity index 71% rename from resources/profiles/Creality/filament/Creality Generic ABS @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json index ef6884e069..fcd8548620 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ABS @Ender-3V3-all", - "inherits": "Creality Generic ABS", + "name": "Generic ABS @Creality Ender-3V3-all", + "inherits": "Generic ABS @Creality", + "renamed_from": "Creality Generic ABS @Ender-3V3-all;Creality Generic ABS Ender-3V3-all", "from": "system", - "setting_id": "Jvnq628y3IlGGHK6", + "setting_id": "RqMPGyaU3l17zFrA", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic ABS @Creality Ender-5Max-all.json index fb07f6a231..5a6f7a93c9 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic ABS @Ender-5Max-all", + "name": "Generic ABS @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic ABS @Ender-5Max-all;Creality Generic ABS Ender-5Max-all", "from": "system", - "setting_id": "mriWPwWZUKmr7ws0", - "filament_id": "OFYPdJ7t", + "setting_id": "qurtvw5OhkVfgpaC", + "filament_id": "OFY9muEs", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality Hi-all.json similarity index 67% rename from resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json rename to resources/profiles/Creality/filament/Generic ABS @Creality Hi-all.json index 10fe49d23e..aba8475a20 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality Hi-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ABS @Hi-all", - "inherits": "Creality Generic ABS", + "name": "Generic ABS @Creality Hi-all", + "inherits": "Generic ABS @Creality", + "renamed_from": "Creality Generic ABS @Hi-all;Creality Generic ABS Hi-all", "from": "system", - "setting_id": "mKgdNahVCaxQLMJE", + "setting_id": "W2NhLx7Lw4NxWJY6", "instantiation": "true", "filament_max_volumetric_speed": [ "9" @@ -15,7 +16,6 @@ "; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n" ], "compatible_printers": [ - "Creality Hi 0.4 nozzle", "Creality Hi 0.6 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @K1-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality K1-all.json similarity index 53% rename from resources/profiles/Creality/filament/Creality Generic ABS @K1-all.json rename to resources/profiles/Creality/filament/Generic ABS @Creality K1-all.json index 369b92c304..0ea7629f24 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @K1-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ABS @K1-all", - "inherits": "Creality Generic ABS", + "name": "Generic ABS @Creality K1-all", + "inherits": "Generic ABS @Creality", + "renamed_from": "Creality Generic ABS @K1-all;Creality Generic ABS K1-all", "from": "system", - "setting_id": "lbMWwEM2Rb9ylrkA", + "setting_id": "9hr2XywDT7lTehYd", "instantiation": "true", "filament_max_volumetric_speed": [ "14" @@ -15,9 +16,7 @@ "20" ], "compatible_printers": [ - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", - "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle" + "Creality K1C 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality K2-all.json similarity index 70% rename from resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json rename to resources/profiles/Creality/filament/Generic ABS @Creality K2-all.json index 15229ac4eb..4aab7d7d0d 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @K2-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ABS @K2-all", - "inherits": "Creality Generic ABS", + "name": "Generic ABS @Creality K2-all", + "inherits": "Generic ABS @Creality", + "renamed_from": "Creality Generic ABS @K2-all;Creality Generic ABS K2-all", "from": "system", - "setting_id": "jl0usGdbqac1xcGN", + "setting_id": "39krWtacUjDnf03V", "instantiation": "true", "filament_flow_ratio": [ "0.95" @@ -22,15 +23,10 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", - "Creality K2 Plus 0.6 nozzle", - "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic ABS.json b/resources/profiles/Creality/filament/Generic ABS @Creality.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic ABS.json rename to resources/profiles/Creality/filament/Generic ABS @Creality.json index 00bcd95e19..cb2c1a6f9c 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic ABS", + "name": "Generic ABS @Creality", "inherits": "fdm_filament_abs", + "renamed_from": "Creality Generic ABS", "from": "system", - "setting_id": "fv5g33ofjgyjVexC", - "filament_id": "OFYPdJ7t", + "setting_id": "My3UvJeg30wW7hLq", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json similarity index 71% rename from resources/profiles/Creality/filament/Creality Generic ASA @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json index 3da4bd0531..27ee572384 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ASA @Ender-3V3-all", - "inherits": "Creality Generic ASA", + "name": "Generic ASA @Creality Ender-3V3-all", + "inherits": "Generic ASA @Creality", + "renamed_from": "Creality Generic ASA @Ender-3V3-all;Creality Generic ASA Ender-3V3-all", "from": "system", - "setting_id": "3KXcINpeRKqx9Hhw", + "setting_id": "LXPKRyWzBzo9nU8k", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic ASA @Creality Ender-5Max-all.json index fa85c2a3ec..0fa424b522 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic ASA @Ender-5Max-all", + "name": "Generic ASA @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic ASA @Ender-5Max-all;Creality Generic ASA Ender-5Max-all", "from": "system", - "setting_id": "4muzPKAzy8FJKM5D", - "filament_id": "OFpAaY6w", + "setting_id": "7qyRWm8KXa1YUPpl", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality Hi-all.json similarity index 68% rename from resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json rename to resources/profiles/Creality/filament/Generic ASA @Creality Hi-all.json index aff57be93d..e706078d18 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality Hi-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ASA @Hi-all", - "inherits": "Creality Generic ASA", + "name": "Generic ASA @Creality Hi-all", + "inherits": "Generic ASA @Creality", + "renamed_from": "Creality Generic ASA @Hi-all;Creality Generic ASA Hi-all", "from": "system", - "setting_id": "DaPUW1rMtWyZLo3H", + "setting_id": "kcMcMJUiRgTRFe8P", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @K1-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality K1-all.json similarity index 53% rename from resources/profiles/Creality/filament/Creality Generic ASA @K1-all.json rename to resources/profiles/Creality/filament/Generic ASA @Creality K1-all.json index 2248ac6818..91feecf436 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @K1-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ASA @K1-all", - "inherits": "Creality Generic ASA", + "name": "Generic ASA @Creality K1-all", + "inherits": "Generic ASA @Creality", + "renamed_from": "Creality Generic ASA @K1-all;Creality Generic ASA K1-all", "from": "system", - "setting_id": "nq4sPDBNWLOnU5pD", + "setting_id": "GQVdb7ZBWA55Ld0m", "instantiation": "true", "filament_max_volumetric_speed": [ "12" @@ -15,9 +16,7 @@ "20" ], "compatible_printers": [ - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", - "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle" + "Creality K1C 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality K2-all.json similarity index 77% rename from resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json rename to resources/profiles/Creality/filament/Generic ASA @Creality K2-all.json index 5e1f0c9a18..510e1d7660 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic ASA @K2-all", - "inherits": "Creality Generic ASA", + "name": "Generic ASA @Creality K2-all", + "inherits": "Generic ASA @Creality", + "renamed_from": "Creality Generic ASA @K2-all;Creality Generic ASA K2-all", "from": "system", - "setting_id": "OAYGhucg52H8nPIF", + "setting_id": "XJKLmHYbW2ReKSKs", "instantiation": "true", "filament_flow_ratio": [ "0.95" @@ -22,15 +23,12 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic ASA.json b/resources/profiles/Creality/filament/Generic ASA @Creality.json similarity index 92% rename from resources/profiles/Creality/filament/Creality Generic ASA.json rename to resources/profiles/Creality/filament/Generic ASA @Creality.json index 53ca8f06df..0ef5d15433 100644 --- a/resources/profiles/Creality/filament/Creality Generic ASA.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic ASA", + "name": "Generic ASA @Creality", "inherits": "fdm_filament_asa", + "renamed_from": "Creality Generic ASA", "from": "system", - "setting_id": "jHgcISP1UXOPsGH0", - "filament_id": "OFpAaY6w", + "setting_id": "dCUxfG2JXDg56zTK", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Creality/filament/Generic ASA-CF @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic ASA-CF @Creality Hi-all.json new file mode 100644 index 0000000000..7a462cc250 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ASA-CF @Creality Hi-all.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Generic ASA-CF @Creality Hi-all", + "inherits": "Generic ASA @Creality Hi-all", + "renamed_from": "Creality Generic ASA-CF @Hi-all;Creality Generic ASA-CF Hi-all", + "from": "system", + "setting_id": "MwKV8Lh4XzvMUVYA", + "filament_id": "OF53eLVD", + "instantiation": "true", + "filament_type": [ + "ASA-CF" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic PA @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic PA @Creality Ender-5Max-all.json index 53b1a95c72..500722f1e9 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic PA @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PA @Ender-5Max-all", + "name": "Generic PA @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic PA @Ender-5Max-all;Creality Generic PA Ender-5Max-all", "from": "system", - "setting_id": "8caHexyoeQW9p1NF", - "filament_id": "OFMqYusc", + "setting_id": "ChQOX6JlKujFwFcB", + "filament_id": "OFg8ndtj", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json similarity index 53% rename from resources/profiles/Creality/filament/Creality Generic PA-CF @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json index f7990f9e99..a73077a6e9 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PA-CF @Ender-3V3-all", - "inherits": "Creality Generic PA-CF", + "name": "Generic PA-CF @Creality Ender-3V3-all", + "inherits": "Generic PA-CF @Creality", + "renamed_from": "Creality Generic PA-CF @Ender-3V3-all;Creality Generic PA-CF Ender-3V3-all", "from": "system", - "setting_id": "PxYQg8A9aHBV0wKU", + "setting_id": "L9lg0gKfwuz9xcs4", "instantiation": "true", "compatible_printers": [ "Creality Ender-3 V3 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF @K1-all.json b/resources/profiles/Creality/filament/Generic PA-CF @Creality K1-all.json similarity index 65% rename from resources/profiles/Creality/filament/Creality Generic PA-CF @K1-all.json rename to resources/profiles/Creality/filament/Generic PA-CF @Creality K1-all.json index 80ff499716..72519b07f2 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @Creality K1-all.json @@ -1,15 +1,15 @@ { "type": "filament", - "name": "Creality Generic PA-CF @K1-all", - "inherits": "Creality Generic PA-CF", + "name": "Generic PA-CF @Creality K1-all", + "inherits": "Generic PA-CF @Creality", + "renamed_from": "Creality Generic PA-CF @K1-all;Creality Generic PA-CF K1-all", "from": "system", - "setting_id": "3j6MMw59d8UigcH7", + "setting_id": "BkM0CVxYrvFPAbpQ", "instantiation": "true", "compatible_printers": [ "Creality K1 (0.4 nozzle)", "Creality K1 (0.6 nozzle)", "Creality K1 (0.8 nozzle)", - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle", "Creality K1 SE 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json b/resources/profiles/Creality/filament/Generic PA-CF @Creality K2-all.json similarity index 75% rename from resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json rename to resources/profiles/Creality/filament/Generic PA-CF @Creality K2-all.json index 04ace3d4f4..932c37b2a2 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PA-CF @K2-all", - "inherits": "Creality Generic PA-CF", + "name": "Generic PA-CF @Creality K2-all", + "inherits": "Generic PA-CF @Creality", + "renamed_from": "Creality Generic PA-CF @K2-all;Creality Generic PA-CF K2-all", "from": "system", - "setting_id": "08QXVyyDDpDPhOoJ", + "setting_id": "jCFh6dGbNQt7YHNB", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" @@ -23,9 +24,6 @@ "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", - "Creality K2 Plus 0.6 nozzle", - "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PA-CF.json b/resources/profiles/Creality/filament/Generic PA-CF @Creality.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic PA-CF.json rename to resources/profiles/Creality/filament/Generic PA-CF @Creality.json index c9aee7e056..964672343a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PA-CF.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PA-CF", + "name": "Generic PA-CF @Creality", "inherits": "fdm_filament_pa", + "renamed_from": "Creality Generic PA-CF", "from": "system", - "setting_id": "hBNsuwMzm7ZZn15D", - "filament_id": "OFUWRqwb", + "setting_id": "JDbda1VeHrPKR0NN", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Creality/filament/Creality Generic PC @K1-all.json b/resources/profiles/Creality/filament/Generic PC @Creality K1-all.json similarity index 69% rename from resources/profiles/Creality/filament/Creality Generic PC @K1-all.json rename to resources/profiles/Creality/filament/Generic PC @Creality K1-all.json index 9098360594..a73499e2e9 100644 --- a/resources/profiles/Creality/filament/Creality Generic PC @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PC @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PC @K1-all", - "inherits": "Creality Generic PC", + "name": "Generic PC @Creality K1-all", + "inherits": "Generic PC @Creality", + "renamed_from": "Creality Generic PC @K1-all;Creality Generic PC K1-all", "from": "system", - "setting_id": "NZ93pDkjFnCyAVZW", + "setting_id": "Jk9yNMEqu4M92edj", "instantiation": "true", "chamber_temperatures": [ "60" @@ -12,7 +13,6 @@ "Creality K1 (0.4 nozzle)", "Creality K1 (0.6 nozzle)", "Creality K1 (0.8 nozzle)", - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle", "Creality K1 SE 0.4 nozzle", diff --git a/resources/profiles/Creality/filament/Creality Generic PC.json b/resources/profiles/Creality/filament/Generic PC @Creality.json similarity index 75% rename from resources/profiles/Creality/filament/Creality Generic PC.json rename to resources/profiles/Creality/filament/Generic PC @Creality.json index 9297344a75..5212f6c052 100644 --- a/resources/profiles/Creality/filament/Creality Generic PC.json +++ b/resources/profiles/Creality/filament/Generic PC @Creality.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Creality Generic PC", + "name": "Generic PC @Creality", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OFe8UJXH", + "filament_id": "OFLakOUI", "instantiation": "false", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json similarity index 81% rename from resources/profiles/Creality/filament/Creality Generic PETG @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json index b1e47e12c9..9d2c3a5529 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PETG @Ender-3V3-all", - "inherits": "Creality Generic PETG", + "name": "Generic PETG @Creality Ender-3V3-all", + "inherits": "Generic PETG @Creality", + "renamed_from": "Creality Generic PETG @Ender-3V3-all;Creality Generic PETG Ender-3V3-all", "from": "system", - "setting_id": "VsfDu1bl3N1EaXrw", + "setting_id": "sX2aMXNynDp6VKSR", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic PETG @Creality Ender-5Max-all.json index 6aeba98a01..df6509395f 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PETG @Ender-5Max-all", + "name": "Generic PETG @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic PETG @Ender-5Max-all;Creality Generic PETG Ender-5Max-all", "from": "system", - "setting_id": "vRVsTatkrE46rzRB", - "filament_id": "OF4Mf5Gz", + "setting_id": "TFS4Fi1PuE7WgnPr", + "filament_id": "OFYPdQJh", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality Hi-all.json similarity index 80% rename from resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json rename to resources/profiles/Creality/filament/Generic PETG @Creality Hi-all.json index 6889cf3cf3..0092cf5d12 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality Hi-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PETG @Hi-all", - "inherits": "Creality Generic PETG", + "name": "Generic PETG @Creality Hi-all", + "inherits": "Generic PETG @Creality", + "renamed_from": "Creality Generic PETG @Hi-all;Creality Generic PETG Hi-all", "from": "system", - "setting_id": "ZGI0yhD4lB10uUOd", + "setting_id": "QcMkrViYBKh4oISG", "instantiation": "true", "filament_max_volumetric_speed": [ "9" @@ -45,7 +46,6 @@ "; filament start gcode\n{if (position[2] > first_layer_height) }\nM104 S[nozzle_temperature]\n{else}\nM104 S[first_layer_temperature]\n{endif}\n" ], "compatible_printers": [ - "Creality Hi 0.4 nozzle", "Creality Hi 0.6 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @K1-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality K1-all.json similarity index 75% rename from resources/profiles/Creality/filament/Creality Generic PETG @K1-all.json rename to resources/profiles/Creality/filament/Generic PETG @Creality K1-all.json index 67a901d8db..06fb485fd0 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PETG @K1-all", - "inherits": "Creality Generic PETG", + "name": "Generic PETG @Creality K1-all", + "inherits": "Generic PETG @Creality", + "renamed_from": "Creality Generic PETG @K1-all;Creality Generic PETG K1-all", "from": "system", - "setting_id": "zk1Typ98hZMZLn68", + "setting_id": "YEB1keha4rhCSmq8", "instantiation": "true", "filament_max_volumetric_speed": [ "9" @@ -48,9 +49,7 @@ "0" ], "compatible_printers": [ - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", - "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle" + "Creality K1C 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality K2-all.json similarity index 79% rename from resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json rename to resources/profiles/Creality/filament/Generic PETG @Creality K2-all.json index 55ab9051b4..87e82d3eb5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PETG @K2-all", - "inherits": "Creality Generic PETG", + "name": "Generic PETG @Creality K2-all", + "inherits": "Generic PETG @Creality", + "renamed_from": "Creality Generic PETG @K2-all;Creality Generic PETG K2-all", "from": "system", - "setting_id": "FhtlimihjuAe2pbs", + "setting_id": "IrbPRxkyhiUXaPEu", "instantiation": "true", "filament_max_volumetric_speed": [ "18" @@ -55,15 +56,10 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", - "Creality K2 Plus 0.6 nozzle", - "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic PETG.json b/resources/profiles/Creality/filament/Generic PETG @Creality.json similarity index 94% rename from resources/profiles/Creality/filament/Creality Generic PETG.json rename to resources/profiles/Creality/filament/Generic PETG @Creality.json index e09d44758c..7bd45cd910 100644 --- a/resources/profiles/Creality/filament/Creality Generic PETG.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PETG", + "name": "Generic PETG @Creality", "inherits": "fdm_filament_pet", + "renamed_from": "Creality Generic PETG", "from": "system", - "setting_id": "ixhOwyMvBCpI8nQs", - "filament_id": "OF4Mf5Gz", + "setting_id": "B8lWG3jJQ4ar4j70", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @Creality Hi-all.json new file mode 100644 index 0000000000..5049c12c57 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG-CF @Creality Hi-all.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @Creality Hi-all", + "inherits": "Generic PETG @Creality Hi-all", + "renamed_from": "Creality Generic PETG-CF @Hi-all;Creality Generic PETG-CF Hi-all", + "from": "system", + "setting_id": "dWEGZoSVFzj7e9m1", + "filament_id": "OFoYSJKi", + "instantiation": "true", + "filament_type": [ + "PETG-CF" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_flow_ratio": [ + "0.95" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json similarity index 80% rename from resources/profiles/Creality/filament/Creality Generic PLA @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json index 5e28b48844..4bc29d5df2 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA @Ender-3V3-all", - "inherits": "Creality Generic PLA", + "name": "Generic PLA @Creality Ender-3V3-all", + "inherits": "Generic PLA @Creality", + "renamed_from": "Creality Generic PLA @Ender-3V3-all;Creality Generic PLA Ender-3V3-all", "from": "system", - "setting_id": "d9awwT21ZLo1iXoh", + "setting_id": "uGq3aWYUI2sLJORU", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic PLA @Creality Ender-5Max-all.json index 8198b078e4..ff55c41e81 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA @Ender-5Max-all", + "name": "Generic PLA @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic PLA @Ender-5Max-all;Creality Generic PLA Ender-5Max-all", "from": "system", - "setting_id": "zQiwnlxGlX4pFOHR", - "filament_id": "OFACSw9O", + "setting_id": "xGTd14Qwc0JbI6kg", + "filament_id": "OFDSrzZ8", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @K1-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality K1-all.json similarity index 72% rename from resources/profiles/Creality/filament/Creality Generic PLA @K1-all.json rename to resources/profiles/Creality/filament/Generic PLA @Creality K1-all.json index d5ea668c68..ac6f727f02 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA @K1-all", - "inherits": "Creality Generic PLA", + "name": "Generic PLA @Creality K1-all", + "inherits": "Generic PLA @Creality", + "renamed_from": "Creality Generic PLA @K1-all;Creality Generic PLA K1-all", "from": "system", - "setting_id": "c5ArCv3qjuKjBwEQ", + "setting_id": "oO2HaneRPfqxNQsP", "instantiation": "true", "filament_max_volumetric_speed": [ "18" @@ -39,9 +40,7 @@ "0" ], "compatible_printers": [ - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", - "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle" + "Creality K1C 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality K2-all.json similarity index 78% rename from resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json rename to resources/profiles/Creality/filament/Generic PLA @Creality K2-all.json index 2c6000111f..bf98b76c5a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA @K2-all", - "inherits": "Creality Generic PLA", + "name": "Generic PLA @Creality K2-all", + "inherits": "Generic PLA @Creality", + "renamed_from": "Creality Generic PLA @K2-all;Creality Generic PLA K2-all", "from": "system", - "setting_id": "bnqvzgmJYbLraBWC", + "setting_id": "EC0PPocMp0c4O0dK", "instantiation": "true", "filament_flow_ratio": [ "0.95" @@ -49,15 +50,10 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", - "Creality K2 Plus 0.6 nozzle", - "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic PLA.json b/resources/profiles/Creality/filament/Generic PLA @Creality.json similarity index 94% rename from resources/profiles/Creality/filament/Creality Generic PLA.json rename to resources/profiles/Creality/filament/Generic PLA @Creality.json index fe82530a7c..f3d807d76b 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA", + "name": "Generic PLA @Creality", "inherits": "fdm_filament_pla", + "renamed_from": "Creality Generic PLA", "from": "system", - "setting_id": "rUYYpB3GkiNCVyfY", - "filament_id": "OFACSw9O", + "setting_id": "UNUCEjCpe1e4ICT9", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality HF Generic PLA.json b/resources/profiles/Creality/filament/Generic PLA HF @Creality.json similarity index 81% rename from resources/profiles/Creality/filament/Creality HF Generic PLA.json rename to resources/profiles/Creality/filament/Generic PLA HF @Creality.json index 7b2558d207..235e113a59 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic PLA.json +++ b/resources/profiles/Creality/filament/Generic PLA HF @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality HF Generic PLA", + "name": "Generic PLA HF @Creality", "inherits": "fdm_filament_pla", + "renamed_from": "Creality HF Generic PLA", "from": "system", - "setting_id": "p07b7w0HDxavGLdd", - "filament_id": "OFmhWhEf", + "setting_id": "YXqIFmq63jGbN8aZ", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Ender-3V3-all.json similarity index 63% rename from resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PLA High Speed @Creality Ender-3V3-all.json index 513d2bd088..21d1029a5d 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Ender-3V3-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA High Speed @Ender-3V3-all", - "inherits": "Creality Generic PLA @Ender-3V3-all", + "name": "Generic PLA High Speed @Creality Ender-3V3-all", + "inherits": "Generic PLA @Creality Ender-3V3-all", + "renamed_from": "Creality Generic PLA High Speed @Ender-3V3-all;Creality Generic PLA High Speed Ender-3V3-all", "from": "system", - "setting_id": "4F3dZWvsniH9QHtr", - "filament_id": "OFrO2zyn", + "setting_id": "MOH1B7U4Ipv8jw0s", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json similarity index 57% rename from resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json rename to resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json index 50305f2dd2..0e64943dd5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA High Speed @Hi-all", + "name": "Generic PLA High Speed @Creality Hi-all", "inherits": "Creality Generic PLA @Hi-all", + "renamed_from": "Creality Generic PLA High Speed @Hi-all;Creality Generic PLA High Speed Hi-all", "from": "system", - "setting_id": "KzaopZGQPw5OJFFD", - "filament_id": "OFrO2zyn", + "setting_id": "KJZ1ztg3jL2Cg4fi", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality K1-all.json similarity index 63% rename from resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json rename to resources/profiles/Creality/filament/Generic PLA High Speed @Creality K1-all.json index f5f509897a..c7b2bbb03a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality K1-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA High Speed @K1-all", - "inherits": "Creality Generic PLA @K1-all", + "name": "Generic PLA High Speed @Creality K1-all", + "inherits": "Generic PLA @Creality K1-all", + "renamed_from": "Creality Generic PLA High Speed @K1-all;Creality Generic PLA High Speed K1-all", "from": "system", - "setting_id": "ptxV78rC6wevH916", - "filament_id": "OFrO2zyn", + "setting_id": "5HgGIzGuma2z6vD8", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality K2-all.json similarity index 66% rename from resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json rename to resources/profiles/Creality/filament/Generic PLA High Speed @Creality K2-all.json index 8a0f79495f..9df651b17d 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA High Speed @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality K2-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA High Speed @K2-all", - "inherits": "Creality Generic PLA @K2-all", + "name": "Generic PLA High Speed @Creality K2-all", + "inherits": "Generic PLA @Creality K2-all", + "renamed_from": "Creality Generic PLA High Speed @K2-all;Creality Generic PLA High Speed K2-all", "from": "system", - "setting_id": "ozHstwkc3N5LGWLV", - "filament_id": "OFrO2zyn", + "setting_id": "Lxp4EwuEZKFHZXWR", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_max_volumetric_speed": [ "23" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Ender-3V3-all.json similarity index 64% rename from resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PLA Matte @Creality Ender-3V3-all.json index 3aa8f60c48..2e561af6b5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Ender-3V3-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Matte @Ender-3V3-all", - "inherits": "Creality Generic PLA @Ender-3V3-all", + "name": "Generic PLA Matte @Creality Ender-3V3-all", + "inherits": "Generic PLA @Creality Ender-3V3-all", + "renamed_from": "Creality Generic PLA Matte @Ender-3V3-all;Creality Generic PLA Matte Ender-3V3-all", "from": "system", - "setting_id": "xF1B593frol5PWVw", - "filament_id": "OFpSYJLI", + "setting_id": "JlvUB8GxzpAOlgkz", + "filament_id": "OFmY0l6t", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json similarity index 55% rename from resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json rename to resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json index 05b1d2afc7..c657630c40 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Matte @Hi-all", + "name": "Generic PLA Matte @Creality Hi-all", "inherits": "Creality Generic PLA @Hi-all", + "renamed_from": "Creality Generic PLA Matte @Hi-all;Creality Generic PLA Matte Hi-all", "from": "system", - "setting_id": "R7Jo7NhjsR1iU2Fd", - "filament_id": "OFpSYJLI", + "setting_id": "pFxJgjam0WAeSKqf", + "filament_id": "OFmY0l6t", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json b/resources/profiles/Creality/filament/Generic PLA Matte @Creality K1-all.json similarity index 65% rename from resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json rename to resources/profiles/Creality/filament/Generic PLA Matte @Creality K1-all.json index 3d3c0276dc..2a584450f8 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Matte @Creality K1-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Matte @K1-all", - "inherits": "Creality Generic PLA @K1-all", + "name": "Generic PLA Matte @Creality K1-all", + "inherits": "Generic PLA @Creality K1-all", + "renamed_from": "Creality Generic PLA Matte @K1-all;Creality Generic PLA Matte K1-all", "from": "system", - "setting_id": "3hreTG3DjcgmwZC2", - "filament_id": "OFpSYJLI", + "setting_id": "JJRpJQcHUhelwD02", + "filament_id": "OFmY0l6t", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json b/resources/profiles/Creality/filament/Generic PLA Matte @Creality K2-all.json similarity index 67% rename from resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json rename to resources/profiles/Creality/filament/Generic PLA Matte @Creality K2-all.json index d1723b25ba..27607938a5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Matte @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Matte @Creality K2-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Matte @K2-all", - "inherits": "Creality Generic PLA @K2-all", + "name": "Generic PLA Matte @Creality K2-all", + "inherits": "Generic PLA @Creality K2-all", + "renamed_from": "Creality Generic PLA Matte @K2-all;Creality Generic PLA Matte K2-all", "from": "system", - "setting_id": "fxZf5E6IHWWq3dsu", - "filament_id": "OFpSYJLI", + "setting_id": "VVcXNl0Y6B0mLlrb", + "filament_id": "OFmY0l6t", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Ender-3V3-all.json similarity index 64% rename from resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic PLA Silk @Creality Ender-3V3-all.json index 1942508586..1f528f79fb 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Ender-3V3-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Silk @Ender-3V3-all", - "inherits": "Creality Generic PLA @Ender-3V3-all", + "name": "Generic PLA Silk @Creality Ender-3V3-all", + "inherits": "Generic PLA @Creality Ender-3V3-all", + "renamed_from": "Creality Generic PLA Silk @Ender-3V3-all;Creality Generic PLA Silk Ender-3V3-all", "from": "system", - "setting_id": "uPFnSMh7WoXmMAoy", - "filament_id": "OFp8gtPH", + "setting_id": "vPrmBiuBCC8843Jb", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json similarity index 59% rename from resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json rename to resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json index c79ddb8933..bd41fff189 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Silk @Hi-all", + "name": "Generic PLA Silk @Creality Hi-all", "inherits": "Creality Generic PLA @Hi-all", + "renamed_from": "Creality Generic PLA Silk @Hi-all;Creality Generic PLA Silk Hi-all", "from": "system", - "setting_id": "RPDVqZcn8EZizd1U", - "filament_id": "OFp8gtPH", + "setting_id": "k1ofgUXqhHGSPDPY", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_flow_ratio": [ "0.97" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json b/resources/profiles/Creality/filament/Generic PLA Silk @Creality K1-all.json similarity index 65% rename from resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json rename to resources/profiles/Creality/filament/Generic PLA Silk @Creality K1-all.json index b9be0b8f93..4e8adb2b35 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Silk @Creality K1-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Silk @K1-all", - "inherits": "Creality Generic PLA @K1-all", + "name": "Generic PLA Silk @Creality K1-all", + "inherits": "Generic PLA @Creality K1-all", + "renamed_from": "Creality Generic PLA Silk @K1-all;Creality Generic PLA Silk K1-all", "from": "system", - "setting_id": "pxvc0ICvqc0M3wYV", - "filament_id": "OFp8gtPH", + "setting_id": "JcSq9nar8x5BjFss", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json b/resources/profiles/Creality/filament/Generic PLA Silk @Creality K2-all.json similarity index 68% rename from resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json rename to resources/profiles/Creality/filament/Generic PLA Silk @Creality K2-all.json index ed5b560d12..850ea2704b 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Silk @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Silk @Creality K2-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Silk @K2-all", - "inherits": "Creality Generic PLA @K2-all", + "name": "Generic PLA Silk @Creality K2-all", + "inherits": "Generic PLA @Creality K2-all", + "renamed_from": "Creality Generic PLA Silk @K2-all;Creality Generic PLA Silk K2-all", "from": "system", - "setting_id": "qS0Mlt24iz1k4P7n", - "filament_id": "OFp8gtPH", + "setting_id": "fRyhLWAQiCOaAxKA", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json similarity index 59% rename from resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json rename to resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json index 8381e376bb..b272cb185a 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA Wood @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA Wood @Hi-all", + "name": "Generic PLA Wood @Creality Hi-all", "inherits": "Creality Generic PLA @Hi-all", + "renamed_from": "Creality Generic PLA Wood @Hi-all;Creality Generic PLA Wood Hi-all", "from": "system", - "setting_id": "OEc7Bc7WG99tuO5D", - "filament_id": "OFNW4ZTC", + "setting_id": "PNqfF5ecYqqpobdh", + "filament_id": "OFIKZxPF", "instantiation": "true", "filament_flow_ratio": [ "0.88" diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Creality Hi-all.json new file mode 100644 index 0000000000..9bbc7a4433 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Creality Hi-all.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA-CF @Creality Hi-all", + "inherits": "Generic PLA-CF @Creality", + "renamed_from": "Creality Generic PLA-CF @Hi-all;Creality Generic PLA-CF Hi-all", + "from": "system", + "setting_id": "MH2pm9wTHLgX9fyq", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "18" + ], + "compatible_printers": [ + "Creality Hi 0.4 nozzle", + "Creality Hi 0.6 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF @K1-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Creality K1-all.json similarity index 65% rename from resources/profiles/Creality/filament/Creality Generic PLA-CF @K1-all.json rename to resources/profiles/Creality/filament/Generic PLA-CF @Creality K1-all.json index 7eca9d5dc0..2e3ed94cb7 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA-CF @K1-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA-CF @K1-all", - "inherits": "Creality Generic PLA-CF", + "name": "Generic PLA-CF @Creality K1-all", + "inherits": "Generic PLA-CF @Creality", + "renamed_from": "Creality Generic PLA-CF @K1-all;Creality Generic PLA-CF K1-all", "from": "system", - "setting_id": "zCnOLIfwhfZIDYLC", + "setting_id": "DoyvqW51z3o1vBSa", "instantiation": "true", "additional_cooling_fan_speed": [ "0" @@ -12,10 +13,8 @@ "Creality K1 (0.4 nozzle)", "Creality K1 (0.6 nozzle)", "Creality K1 (0.8 nozzle)", - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle", "Creality K1 Max (0.4 nozzle)", "Creality K1 Max (0.6 nozzle)", "Creality K1 Max (0.8 nozzle)" diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF @K2-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Creality K2-all.json similarity index 70% rename from resources/profiles/Creality/filament/Creality Generic PLA-CF @K2-all.json rename to resources/profiles/Creality/filament/Generic PLA-CF @Creality K2-all.json index 7b2b7212e8..4cc99c0ff5 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA-CF @K2-all.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA-CF @K2-all", - "inherits": "Creality Generic PLA-CF", + "name": "Generic PLA-CF @Creality K2-all", + "inherits": "Generic PLA-CF @Creality", + "renamed_from": "Creality Generic PLA-CF @K2-all;Creality Generic PLA-CF K2-all", "from": "system", - "setting_id": "wfZgLrH8dafxsNyZ", + "setting_id": "6KqkLBBYBA59h5TA", "instantiation": "true", "filament_max_volumetric_speed": [ "18" @@ -16,15 +17,12 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic PLA-CF.json b/resources/profiles/Creality/filament/Generic PLA-CF @Creality.json similarity index 92% rename from resources/profiles/Creality/filament/Creality Generic PLA-CF.json rename to resources/profiles/Creality/filament/Generic PLA-CF @Creality.json index 7c09aa8e4e..e35a839035 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA-CF.json +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic PLA-CF", + "name": "Generic PLA-CF @Creality", "inherits": "fdm_filament_pla", + "renamed_from": "Creality Generic PLA-CF", "from": "system", - "setting_id": "DCCWPQGMsvDOucwx", - "filament_id": "OFSDFYs4", + "setting_id": "Fn5Z3ccrrRYFkiwT", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json b/resources/profiles/Creality/filament/Generic Speed PLA @Creality HF.json similarity index 79% rename from resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json rename to resources/profiles/Creality/filament/Generic Speed PLA @Creality HF.json index 9090224d19..80e07cfff0 100644 --- a/resources/profiles/Creality/filament/Creality HF Generic Speed PLA.json +++ b/resources/profiles/Creality/filament/Generic Speed PLA @Creality HF.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality HF Generic Speed PLA", + "name": "Generic Speed PLA @Creality HF", "inherits": "fdm_filament_pla", + "renamed_from": "Creality HF Generic Speed PLA", "from": "system", - "setting_id": "Jp93uqYennsWVAKe", - "filament_id": "OFMIurFh", + "setting_id": "pklu1YSwmDOj6gRq", + "filament_id": "OFXmv5p0", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json similarity index 78% rename from resources/profiles/Creality/filament/Creality Generic TPU @Ender-3V3-all.json rename to resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json index 11b24086b2..89fa6b290b 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic TPU @Ender-3V3-all", - "inherits": "Creality Generic TPU", + "name": "Generic TPU @Creality Ender-3V3-all", + "inherits": "Generic TPU @Creality", + "renamed_from": "Creality Generic TPU @Ender-3V3-all;Creality Generic TPU Ender-3V3-all", "from": "system", - "setting_id": "0fDkYNB91MiqbAS0", + "setting_id": "ZufJdJseoFNQC66B", "instantiation": "true", "hot_plate_temp": [ "30" diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-5Max-all.json similarity index 93% rename from resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json rename to resources/profiles/Creality/filament/Generic TPU @Creality Ender-5Max-all.json index 2787b4e7ea..62f4916a99 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @Ender-5Max-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-5Max-all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic TPU @Ender-5Max-all", + "name": "Generic TPU @Creality Ender-5Max-all", "inherits": "fdm_filament_common", + "renamed_from": "Creality Generic TPU @Ender-5Max-all;Creality Generic TPU Ender-5Max-all", "from": "system", - "setting_id": "aaiFHjbveXabDAMr", - "filament_id": "OFhcrFw9", + "setting_id": "XqW2iYrRTVlXuCwD", + "filament_id": "OFgbpcy9", "instantiation": "true", "activate_air_filtration": "0", "activate_chamber_temp_control": "0", diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality Hi-all.json similarity index 77% rename from resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json rename to resources/profiles/Creality/filament/Generic TPU @Creality Hi-all.json index c3b5905d96..1a46bfc0b5 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality Hi-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic TPU @Hi-all", - "inherits": "Creality Generic TPU", + "name": "Generic TPU @Creality Hi-all", + "inherits": "Generic TPU @Creality", + "renamed_from": "Creality Generic TPU @Hi-all;Creality Generic TPU Hi-all", "from": "system", - "setting_id": "aF2isnhJKc3hoq8r", + "setting_id": "P42mcGCETNdcZchS", "instantiation": "true", "hot_plate_temp": [ "30" diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @K1-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality K1-all.json similarity index 69% rename from resources/profiles/Creality/filament/Creality Generic TPU @K1-all.json rename to resources/profiles/Creality/filament/Generic TPU @Creality K1-all.json index c8d4b63a69..d2cd19bb7c 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @K1-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality K1-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic TPU @K1-all", - "inherits": "Creality Generic TPU", + "name": "Generic TPU @Creality K1-all", + "inherits": "Generic TPU @Creality", + "renamed_from": "Creality Generic TPU @K1-all;Creality Generic TPU K1-all", "from": "system", - "setting_id": "isJCGG1B672xyX4l", + "setting_id": "7zTgnS8bIEkkhqtB", "instantiation": "true", "hot_plate_temp": [ "30" @@ -33,9 +34,7 @@ "0" ], "compatible_printers": [ - "Creality K1C 0.4 nozzle", "Creality K1C 0.6 nozzle", - "Creality K1C 0.8 nozzle", - "Creality K1 SE 0.4 nozzle" + "Creality K1C 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality K2-all.json similarity index 81% rename from resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json rename to resources/profiles/Creality/filament/Generic TPU @Creality K2-all.json index db2138db73..9a8896ea23 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU @K2-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality K2-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic TPU @K2-all", - "inherits": "Creality Generic TPU", + "name": "Generic TPU @Creality K2-all", + "inherits": "Generic TPU @Creality", + "renamed_from": "Creality Generic TPU @K2-all;Creality Generic TPU K2-all", "from": "system", - "setting_id": "60PiyJbkRFDzr7b5", + "setting_id": "C9PAmCIDhCAthMuK", "instantiation": "true", "hot_plate_temp": [ "40" @@ -37,15 +38,12 @@ ], "compatible_printers": [ "Creality K2 0.2 nozzle", - "Creality K2 0.4 nozzle", "Creality K2 0.6 nozzle", "Creality K2 0.8 nozzle", "Creality K2 Plus 0.2 nozzle", - "Creality K2 Plus 0.4 nozzle", "Creality K2 Plus 0.6 nozzle", "Creality K2 Plus 0.8 nozzle", "Creality K2 Pro 0.2 nozzle", - "Creality K2 Pro 0.4 nozzle", "Creality K2 Pro 0.6 nozzle", "Creality K2 Pro 0.8 nozzle" ] diff --git a/resources/profiles/Creality/filament/Creality Generic TPU.json b/resources/profiles/Creality/filament/Generic TPU @Creality.json similarity index 83% rename from resources/profiles/Creality/filament/Creality Generic TPU.json rename to resources/profiles/Creality/filament/Generic TPU @Creality.json index 13fc25d3a7..0277d14563 100644 --- a/resources/profiles/Creality/filament/Creality Generic TPU.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Creality Generic TPU", + "name": "Generic TPU @Creality", "inherits": "fdm_filament_tpu", + "renamed_from": "Creality Generic TPU", "from": "system", - "setting_id": "mKCynAMC7cjY03c0", - "filament_id": "OFhcrFw9", + "setting_id": "eCzlxPg3piTZEui4", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Creality/machine/Creality CR-10 Max 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 Max 0.4 nozzle.json index 73687d8be7..e9cadc9124 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 Max 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 Max 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-10 Max", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality CR10Max", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-10 Max.json b/resources/profiles/Creality/machine/Creality CR-10 Max.json index 5922576073..82a5d1d760 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 Max.json +++ b/resources/profiles/Creality/machine/Creality CR-10 Max.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10max_buildplate_model.stl", "bed_texture": "creality_cr10max_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json index 34ae5f05e3..9dc1ae8962 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json index 99ddf4e2e2..12805d5e86 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json index 32bec9dd85..60ae6d2db8 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json index 25d0d2a2df..1ae4e24163 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE.json b/resources/profiles/Creality/machine/Creality CR-10 SE.json index 6e57e38c0c..bd39ea5ff1 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10se_buildplate_model.stl", "bed_texture": "creality_cr10se_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality HF Generic PLA;Creality HF Generic Speed PLA;Creality Generic PETG;Creality Generic TPU;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PETG @Creality;Generic TPU @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json index af449cd705..7b70121bef 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json @@ -106,7 +106,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0\nG1 Y190 E15 F1500 ; intro line\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E15 F1200 ; intro line\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10 V2.json b/resources/profiles/Creality/machine/Creality CR-10 V2.json index a709fe2309..6098003c41 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V2.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V2.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10v2_buildplate_model.stl", "bed_texture": "creality_cr10v2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json index 10837d9271..6eee0b7357 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json @@ -109,7 +109,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG1 Z0.28 F240\nG92 E0\nG1 X2 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json index 6b518c35a5..8ec571442d 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG1 Z0.28 F240\nG92 E0\nG1 X2 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10 V3.json b/resources/profiles/Creality/machine/Creality CR-10 V3.json index 37cfe67f05..39958036b8 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V3.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V3.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10v3_buildplate_model.stl", "bed_texture": "creality_cr10v3_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json index 1a91139859..db3d5f8ac1 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.2 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 Max", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.2", "default_print_profile": "0.16mm Optimal @Creality CR-6 0.2", diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json index 0c8ce148a6..5f0d68af0c 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 Max", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality CR-6 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json index aeea306f78..eb2b0bfb2a 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.6 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 Max", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.6", "default_print_profile": "0.20mm Standard @Creality CR-6 0.6", diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json index 417eba9589..fc9adbc8b6 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 Max 0.8 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 Max", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.8", "default_print_profile": "0.32mm Standard @Creality CR-6 0.8", diff --git a/resources/profiles/Creality/machine/Creality CR-6 Max.json b/resources/profiles/Creality/machine/Creality CR-6 Max.json index aa1925da6e..af7f785051 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 Max.json +++ b/resources/profiles/Creality/machine/Creality CR-6 Max.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_CR_6_Max", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json index 757ee910bf..d738e8569c 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.2", "default_print_profile": "0.16mm Optimal @Creality CR-6 0.2", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json index 8c862ad0c1..8ad215b2f5 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality CR-6 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json index d5f40f373f..f5f19131b8 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.6", "default_print_profile": "0.20mm Standard @Creality CR-6 0.6", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json index a38fa30329..8afdf0d906 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.8", "default_print_profile": "0.32mm Standard @Creality CR-6 0.8", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE.json b/resources/profiles/Creality/machine/Creality CR-6 SE.json index 2d7026c31d..63fc2fc19b 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_CR_6_SE", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json index 165a332297..9d1de682c3 100644 --- a/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json @@ -9,7 +9,7 @@ "gcode_flavor": "marlin", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality CR-M4", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-M4.json b/resources/profiles/Creality/machine/Creality CR-M4.json index 0cb519eec9..d4df994d2c 100644 --- a/resources/profiles/Creality/machine/Creality CR-M4.json +++ b/resources/profiles/Creality/machine/Creality CR-M4.json @@ -8,5 +8,5 @@ "bed_model": "creality_crm4_buildplate_model.stl", "bed_texture": "creality_crm4_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json index 29762960b6..ce445321ed 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json index 59497d500b..7e6a63ab18 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json index a33329652b..5becaffc5d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json index d77ba1063f..03beab016f 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json index d6715bb636..d7305a3b9e 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.2 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.4 nozzle.json index ac1a04a609..a2bf0df0ad 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.4 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json index f0377efa29..66c1f038ba 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.6 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json index b8371d1770..f42b8f288d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro 0.8 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Pro.json b/resources/profiles/Creality/machine/Creality Ender-3 Pro.json index 982a2256bf..407f2d9833 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 Pro.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 Pro.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v2_buildplate_model.stl", "bed_texture": "creality_ender3v2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json index c8ee1f7a0f..72e1aeb855 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json @@ -106,7 +106,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json index 66d9161841..6f61fc3c0b 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling \nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json index a871bc6d03..08579e0a00 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json index 53d5923358..9b688aae93 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json index 29735d253d..73f2340b40 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus.json index 134df7200d..68badab1c3 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3s1plus_buildplate_model.stl", "bed_texture": "creality_ender3s1plus_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json index fa9f815d66..d7cbb9292d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json @@ -109,7 +109,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro.json index 2ce3d35e19..e47e3ab7ba 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3s1pro_buildplate_model.stl", "bed_texture": "creality_ender3s1pro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1.json b/resources/profiles/Creality/machine/Creality Ender-3 S1.json index aec61a4289..fb405f39f4 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3s1_buildplate_model.stl", "bed_texture": "creality_ender3s1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json index 2e7787e04e..47e5f72147 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-3 V2", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality Ender3V2", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json index e07ac17f02..7cddabe415 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality Ender-3 V2 Neo", "printer_structure": "i3", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality Ender3V2 Neo", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo.json b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo.json index 827ae40bc3..b22add48ea 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v2neo_buildplate_model.stl", "bed_texture": "creality_ender3v2neo_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS;Creality Generic ASA;Creality Generic PLA;Creality Generic PETG" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PLA @Creality;Generic PETG @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2.json b/resources/profiles/Creality/machine/Creality Ender-3 V2.json index 88665f5892..a5ef1d123d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v2_buildplate_model.stl", "bed_texture": "creality_ender3v2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json index 4bc5a8a963..de3c4286dc 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json @@ -126,7 +126,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json index 317b7b3499..75ceca6c79 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json @@ -126,7 +126,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.2 nozzle.json index 9b1fa97ba2..e27b0b3c54 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.2 nozzle.json @@ -117,7 +117,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan0_min VALUE=30 ;compensate for fan speed\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 ;revert accel_to_decel back to 2500\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set bed temp\nG28 X Y ;Home XY axes\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nG28 Z ;Home Z axis & load bed mesh\nBED_MESH_CALIBRATE PROBE_COUNT=5,5 ;Auto bed level\n\nM104 S[nozzle_temperature_initial_layer] ;Set nozzle temp\nG92 E0 ;Reset Extruder\nG1 X-2.0 Y20 Z0.3 F5000.0 ;Move to start position\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 Z0.2 ;Lower nozzle to printing height\nG1 Y145.0 F1500.0 E15 ;Draw the first line\nG1 X-1.7 F5000.0 ;Move to side a little\nG1 Y30 F1500.0 E15 ;Draw the second line\nG92 E0 ;Reset Extruder", "machine_end_gcode": "G92 E0 ;Reset Extruder\nG1 E-1.2 Z{max_layer_z + 0.5} F1800 ;Retract and raise Z\n{if max_layer_z < 50}\nG1 Z{max_layer_z + 25} F900 ;Raise Z more\n{endif}\n\nG1 X2 Y218 F3000 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json index a0a2f1fe1b..1607a8bd4e 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.4 nozzle.json @@ -117,7 +117,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan0_min VALUE=30 ;compensate for fan speed\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 ;revert accel_to_decel back to 2500\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set bed temp\nG28 X Y ;Home XY axes\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nG28 Z ;Home Z axis & load bed mesh\nBED_MESH_CALIBRATE PROBE_COUNT=5,5 ;Auto bed level\n\nM104 S[nozzle_temperature_initial_layer] ;Set nozzle temp\nG92 E0 ;Reset Extruder\nG1 X-2.0 Y20 Z0.3 F5000.0 ;Move to start position\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 Z0.2 ;Lower nozzle to printing height\nG1 Y145.0 F1500.0 E15 ;Draw the first line\nG1 X-1.7 F5000.0 ;Move to side a little\nG1 Y30 F1500.0 E15 ;Draw the second line\nG92 E0 ;Reset Extruder", "machine_end_gcode": "G92 E0 ;Reset Extruder\nG1 E-1.2 Z{max_layer_z + 0.5} F1800 ;Retract and raise Z\n{if max_layer_z < 50}\nG1 Z{max_layer_z + 25} F900 ;Raise Z more\n{endif}\n\nG1 X2 Y218 F3000 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.6 nozzle.json index 7141b3088f..cbc3d0cc58 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.6 nozzle.json @@ -117,7 +117,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan0_min VALUE=30 ;compensate for fan speed\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 ;revert accel_to_decel back to 2500\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set bed temp\nG28 X Y ;Home XY axes\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nG28 Z ;Home Z axis & load bed mesh\nBED_MESH_CALIBRATE PROBE_COUNT=5,5 ;Auto bed level\n\nM104 S[nozzle_temperature_initial_layer] ;Set nozzle temp\nG92 E0 ;Reset Extruder\nG1 X-2.0 Y20 Z0.3 F5000.0 ;Move to start position\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 Z0.2 ;Lower nozzle to printing height\nG1 Y145.0 F1500.0 E15 ;Draw the first line\nG1 X-1.7 F5000.0 ;Move to side a little\nG1 Y30 F1500.0 E15 ;Draw the second line\nG92 E0 ;Reset Extruder", "machine_end_gcode": "G92 E0 ;Reset Extruder\nG1 E-1.2 Z{max_layer_z + 0.5} F1800 ;Retract and raise Z\n{if max_layer_z < 50}\nG1 Z{max_layer_z + 25} F900 ;Raise Z more\n{endif}\n\nG1 X2 Y218 F3000 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.8 nozzle.json index da6689b46d..d4eadbf772 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE 0.8 nozzle.json @@ -117,7 +117,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan0_min VALUE=30 ;compensate for fan speed\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 ;revert accel_to_decel back to 2500\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set bed temp\nG28 X Y ;Home XY axes\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nG28 Z ;Home Z axis & load bed mesh\nBED_MESH_CALIBRATE PROBE_COUNT=5,5 ;Auto bed level\n\nM104 S[nozzle_temperature_initial_layer] ;Set nozzle temp\nG92 E0 ;Reset Extruder\nG1 X-2.0 Y20 Z0.3 F5000.0 ;Move to start position\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 Z0.2 ;Lower nozzle to printing height\nG1 Y145.0 F1500.0 E15 ;Draw the first line\nG1 X-1.7 F5000.0 ;Move to side a little\nG1 Y30 F1500.0 E15 ;Draw the second line\nG92 E0 ;Reset Extruder", "machine_end_gcode": "G92 E0 ;Reset Extruder\nG1 E-1.2 Z{max_layer_z + 0.5} F1800 ;Retract and raise Z\n{if max_layer_z < 50}\nG1 Z{max_layer_z + 25} F900 ;Raise Z more\n{endif}\n\nG1 X2 Y218 F3000 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE.json index 63ac65eec6..1911d1f0d0 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 KE.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 KE.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v3ke_buildplate_model.stl", "bed_texture": "creality_ender3v3ke_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS @Ender-3V3-all;Creality Generic ASA @Ender-3V3-all;Creality Generic PETG @Ender-3V3-all;Creality Generic PLA @Ender-3V3-all;Creality Generic PLA High Speed @Ender-3V3-all;Creality Generic PLA Matte @Ender-3V3-all;Creality Generic PLA Silk @Ender-3V3-all;Creality Generic TPU @Ender-3V3-all" + "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json index ac9f51f5cb..f9b91395ba 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json @@ -123,7 +123,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json index 52db2b831d..d0c4bee18a 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json @@ -123,7 +123,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json index b471a9ab08..919076763b 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v3plus_buildplate_model.stl", "bed_texture": "creality_ender3v3plus_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS @Ender-3V3-all;Creality Generic ASA @Ender-3V3-all;Creality Generic PETG @Ender-3V3-all;Creality Generic PLA @Ender-3V3-all;Creality Generic PLA High Speed @Ender-3V3-all;Creality Generic PLA Matte @Ender-3V3-all;Creality Generic PLA Silk @Ender-3V3-all;Creality Generic TPU @Ender-3V3-all" + "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json index e75a79ce23..dc04436c04 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json @@ -118,7 +118,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json index 59c207b62a..22df39dd1d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json @@ -118,7 +118,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json index 713e8e7332..881a46fc3a 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json @@ -118,7 +118,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json index b904c4b7f3..44e9b97afb 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json @@ -118,7 +118,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA @Ender-3V3-all" + "Generic PLA @Creality Ender-3V3-all" ], "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json index 2ceb56c108..71786a500d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v3se_buildplate_model.stl", "bed_texture": "creality_ender3v3se_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS @Ender-3V3-all;Creality Generic ASA @Ender-3V3-all;Creality Generic PETG @Ender-3V3-all;Creality Generic PLA @Ender-3V3-all;Creality Generic PLA High Speed @Ender-3V3-all;Creality Generic PLA Matte @Ender-3V3-all;Creality Generic PLA Silk @Ender-3V3-all;Creality Generic TPU @Ender-3V3-all" + "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3.json b/resources/profiles/Creality/machine/Creality Ender-3 V3.json index 74f5c275fc..5650e068aa 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v3_buildplate_model.stl", "bed_texture": "creality_ender3v3_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS @Ender-3V3-all;Creality Generic ASA @Ender-3V3-all;Creality Generic PETG @Ender-3V3-all;Creality Generic PLA @Ender-3V3-all;Creality Generic PLA High Speed @Ender-3V3-all;Creality Generic PLA Matte @Ender-3V3-all;Creality Generic PLA Silk @Ender-3V3-all;Creality Generic TPU @Ender-3V3-all" + "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3.json b/resources/profiles/Creality/machine/Creality Ender-3.json index 66a234e378..70bdb03d55 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3.json +++ b/resources/profiles/Creality/machine/Creality Ender-3.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v2_buildplate_model.stl", "bed_texture": "creality_ender3v2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 0.4 nozzle.json index c04de58097..44434bbf93 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 0.4 nozzle.json @@ -105,7 +105,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Max.json b/resources/profiles/Creality/machine/Creality Ender-5 Max.json index 8c5354fea2..9c10f97f05 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Max.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Max.json @@ -9,5 +9,5 @@ "bed_texture": "creality_ender5max_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Hyper PLA-CF @Ender-5Max-all;Creality Hyper PLA @Ender-5Max-all;Creality Hyper ABS @Ender-5Max-all;Creality Generic TPU @Ender-5Max-all;Creality Generic ASA @Ender-5Max-all;Creality Silk PLA @Ender-5Max-all;Creality Generic PLA @Ender-5Max-all;Creality Generic PETG @Ender-5Max-all;Creality Generic ABS @Ender-5Max-all;Creality Generic PA @Ender-5Max-all" + "default_materials": "Creality Hyper PLA-CF @Ender-5Max-all;Creality Hyper PLA @Ender-5Max-all;Creality Hyper ABS @Ender-5Max-all;Generic TPU @Creality Ender-5Max-all;Generic ASA @Creality Ender-5Max-all;Creality Silk PLA @Ender-5Max-all;Generic PLA @Creality Ender-5Max-all;Generic PETG @Creality Ender-5Max-all;Generic ABS @Creality Ender-5Max-all;Generic PA @Creality Ender-5Max-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Plus 0.4 nozzle.json index bcca726c1b..66fea8f254 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Plus 0.4 nozzle.json @@ -108,7 +108,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print bed down\nG1 X50 Y50 F{travel_speed*60} ; move print head out of the way\n{if max_layer_z < printable_height-10}G1 Z{z_offset+ printable_height-10} F600{endif} ; Move print bed close to the bottom\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Plus.json b/resources/profiles/Creality/machine/Creality Ender-5 Plus.json index 2950cdacf5..f672b4db0a 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Plus.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Plus.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender5plus_buildplate_model.stl", "bed_texture": "creality_ender5plus_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.2 nozzle.json index 285297c0df..435b89d3c9 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.2 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.2", "default_print_profile": "0.16mm Optimal @Creality Ender5Pro (2019) 0.2", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.25 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.25 nozzle.json index 375ad54f20..a2bffd1951 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.25 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.25 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.25", "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019) 0.25", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.3 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.3 nozzle.json index fc273af47e..62c133018f 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.3 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.3 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.3", "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019) 0.3", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.4 nozzle.json index 860e1dcc05..87e58181e4 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019)", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.5 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.5 nozzle.json index 47ad87824a..e46303cd0b 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.5 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.5 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.5", "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019) 0.5", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.6 nozzle.json index 11a71495b2..ca4875c1eb 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.6 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.6", "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019) 0.6", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.8 nozzle.json index 45332a9788..d3597d37af 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 0.8 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "0.8", "default_print_profile": "0.20mm Standard @Creality Ender5Pro (2019) 0.8", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 1.0 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 1.0 nozzle.json index 5d5230f5af..841bab4eab 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 1.0 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019) 1.0 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-5 Pro (2019)", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "printer_variant": "1.0", "default_print_profile": "0.28mm SuperDraft @Creality Ender5Pro (2019) 1.0", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019).json b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019).json index 1863dd03c6..e8185a0458 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019).json +++ b/resources/profiles/Creality/machine/Creality Ender-5 Pro (2019).json @@ -8,5 +8,5 @@ "bed_model": "creality_ender5pro_buildplate_model.stl", "bed_texture": "creality_ender5pro_buildplate_texture.svg", "hotend_model": "hotend.stl", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5 S1 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 S1 0.4 nozzle.json index 6ef5e99e94..58a98c2064 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 S1 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 S1 0.4 nozzle.json @@ -105,7 +105,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-5 S1.json b/resources/profiles/Creality/machine/Creality Ender-5 S1.json index 23ec29b299..8ef8baed2f 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5 S1.json +++ b/resources/profiles/Creality/machine/Creality Ender-5 S1.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender5s1_buildplate_model.stl", "bed_texture": "creality_ender5s1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5.json b/resources/profiles/Creality/machine/Creality Ender-5.json index f43c00b81b..72f2f30680 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5.json +++ b/resources/profiles/Creality/machine/Creality Ender-5.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender5_buildplate_model.stl", "bed_texture": "creality_ender5_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5S 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5S 0.4 nozzle.json index 5b9fbe6a66..c6068c5e24 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5S 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-5S 0.4 nozzle.json @@ -101,7 +101,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-5S.json b/resources/profiles/Creality/machine/Creality Ender-5S.json index ff1f2633fa..a3dfb27ff6 100644 --- a/resources/profiles/Creality/machine/Creality Ender-5S.json +++ b/resources/profiles/Creality/machine/Creality Ender-5S.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender5s_buildplate_model.stl", "bed_texture": "creality_ender5s_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-6 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-6 0.4 nozzle.json index 3e8b6f1216..d61f549c7f 100644 --- a/resources/profiles/Creality/machine/Creality Ender-6 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-6 0.4 nozzle.json @@ -105,7 +105,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print bed down\nG1 X50 Y50 F{travel_speed*60} ; move print head out of the way\n{if max_layer_z < printable_height-10}G1 Z{z_offset+ printable_height-10} F600{endif} ; Move print bed close to the bottom\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-6.json b/resources/profiles/Creality/machine/Creality Ender-6.json index f327bd97b0..9f3b5e2cc8 100644 --- a/resources/profiles/Creality/machine/Creality Ender-6.json +++ b/resources/profiles/Creality/machine/Creality Ender-6.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender6_buildplate_model.stl", "bed_texture": "creality_ender6_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Hi.json b/resources/profiles/Creality/machine/Creality Hi.json index c1b5173f32..107d587cc5 100644 --- a/resources/profiles/Creality/machine/Creality Hi.json +++ b/resources/profiles/Creality/machine/Creality Hi.json @@ -9,5 +9,5 @@ "bed_texture": "creality_hi_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "", - "default_materials": "Creality Generic ABS @Hi-all;Creality Generic ASA @Hi-all;Creality Generic ASA-CF @Hi-all;Creality Generic PETG @Hi-all;Creality Generic PETG-CF @Hi-all;Creality Generic PLA @Hi-all;Creality Generic PLA High Speed @Hi-all;Creality Generic PLA Matte @Hi-all;Creality Generic PLA Silk @Hi-all;Creality Generic PLA-CF @Hi-all;Creality Generic PLA Wood @Hi-all;Creality Generic TPU @Hi-all" + "default_materials": "Generic ABS @Creality Hi-all;Generic ASA @Creality Hi-all;Generic ASA-CF @Creality Hi-all;Generic PETG @Creality Hi-all;Generic PETG-CF @Creality Hi-all;Generic PLA @Creality Hi-all;Generic PLA High Speed @Creality Hi-all;Generic PLA Matte @Creality Hi-all;Generic PLA Silk @Creality Hi-all;Generic PLA-CF @Creality Hi-all;Generic PLA Wood @Creality Hi-all;Generic TPU @Creality Hi-all" } diff --git a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json index 4b1fad646b..4cde2d1f5e 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json @@ -121,7 +121,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json index 1a849f15d9..afaa516e7e 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json @@ -121,7 +121,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json index efc77b1623..417c088cb7 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json @@ -121,7 +121,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json index d41f4b8ec9..c3978a05eb 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json index 8c0f630a43..2ebe0a97c2 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json index 2593be039b..b59c1f54a4 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 Max.json b/resources/profiles/Creality/machine/Creality K1 Max.json index af8379ad83..3acfd1ec99 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max.json +++ b/resources/profiles/Creality/machine/Creality K1 Max.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1max_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Generic ABS;Creality Generic ASA;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG;Creality Generic PLA;Creality HF Generic PLA;Creality HF Generic Speed PLA;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json index 0ffbbb8fc2..992ae60a0f 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality HF Generic PLA" + "Generic PLA HF @Creality" ], "deretraction_speed": "40", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json index 426f93e8be..3016f2de6c 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1_Max_CFS_C", - "default_materials": "Creality Generic ABS;Creality Generic ASA;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG;Creality Generic PLA;Creality HF Generic PLA;Creality HF Generic Speed PLA;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json index fc50432dd0..95db217016 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json @@ -121,7 +121,7 @@ "manual_filament_change": "0", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json index 93a4641702..b78cf80658 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "deretraction_speed": "30", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json index aa98cb2b00..175ff1da66 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "deretraction_speed": "30", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1 SE.json b/resources/profiles/Creality/machine/Creality K1 SE.json index 82a8d97b63..9f6806ee46 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE.json +++ b/resources/profiles/Creality/machine/Creality K1 SE.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1se_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Generic ABS @K1-all;Creality Generic ASA @K1-all;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG @K1-all;Creality Generic PLA @K1-all;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU @K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" } diff --git a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json index 14077b6693..510e17ecf5 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json @@ -82,7 +82,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "deretraction_speed": "30", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C.json b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C.json index 7c41c72dff..835c133338 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1_SE_CFS_C", - "default_materials": "Creality Generic ABS @K1-all;Creality Generic ASA @K1-all;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG @K1-all;Creality Generic PLA @K1-all;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU @K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" } diff --git a/resources/profiles/Creality/machine/Creality K1.json b/resources/profiles/Creality/machine/Creality K1.json index 4892cfbaca..60cd9142f1 100644 --- a/resources/profiles/Creality/machine/Creality K1.json +++ b/resources/profiles/Creality/machine/Creality K1.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Generic ABS;Creality Generic ASA;Creality Generic PC @K1-all;Creality Generic PLA;Creality HF Generic PLA;Creality HF Generic Speed PLA;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PETG;Creality Generic TPU" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json index 87ccb311bf..5d8154c1f1 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json index b00db3d173..73328c69f4 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json index 069b665e5f..2c59727abf 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json @@ -122,7 +122,7 @@ "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1C.json b/resources/profiles/Creality/machine/Creality K1C.json index 7db363a7d7..4283aabfd4 100644 --- a/resources/profiles/Creality/machine/Creality K1C.json +++ b/resources/profiles/Creality/machine/Creality K1C.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1c_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Generic ABS @K1-all;Creality Generic ASA @K1-all;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG @K1-all;Creality Generic PLA @K1-all;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU @K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" } diff --git a/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json index 225b760c9c..b3221b0dd5 100644 --- a/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "deretraction_speed": "40", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1C_CFS-C.json b/resources/profiles/Creality/machine/Creality K1C_CFS-C.json index 9cf7839332..6e80f1fbd4 100644 --- a/resources/profiles/Creality/machine/Creality K1C_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1C_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1C_CFS_C", - "default_materials": "Creality Generic ABS @K1-all;Creality Generic ASA @K1-all;Creality Generic PA-CF @K1-all;Creality Generic PC @K1-all;Creality Generic PETG @K1-all;Creality Generic PLA @K1-all;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PLA-CF @K1-all;Creality Generic TPU @K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" } diff --git a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json index d4a7d9e913..04cb946b94 100644 --- a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K1-all" + "Generic PLA @Creality K1-all" ], "deretraction_speed": "40", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K1_CFS-C.json b/resources/profiles/Creality/machine/Creality K1_CFS-C.json index 268a48e994..d0d7124dd2 100644 --- a/resources/profiles/Creality/machine/Creality K1_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1_CFS_C", - "default_materials": "Creality Generic ABS;Creality Generic ASA;Creality Generic PC @K1-all;Creality Generic PLA;Creality HF Generic PLA;Creality HF Generic Speed PLA;Creality Generic PLA High Speed @K1-all;Creality Generic PLA Matte @K1-all;Creality Generic PLA Silk @K1-all;Creality Generic PETG;Creality Generic TPU" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K2 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality K2 0.2 nozzle.json index a0a342d406..c75b9d04f1 100644 --- a/resources/profiles/Creality/machine/Creality K2 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 0.2 nozzle.json @@ -122,7 +122,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "deretraction_speed": [ "40" diff --git a/resources/profiles/Creality/machine/Creality K2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K2 0.4 nozzle.json index c3d6488839..1c28315013 100644 --- a/resources/profiles/Creality/machine/Creality K2 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 0.4 nozzle.json @@ -118,7 +118,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "deretraction_speed": [ "40" diff --git a/resources/profiles/Creality/machine/Creality K2 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K2 0.6 nozzle.json index b17c6f479a..8eb0c83877 100644 --- a/resources/profiles/Creality/machine/Creality K2 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 0.6 nozzle.json @@ -120,7 +120,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "deretraction_speed": [ "30" diff --git a/resources/profiles/Creality/machine/Creality K2 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K2 0.8 nozzle.json index 9d13607569..1281d5934d 100644 --- a/resources/profiles/Creality/machine/Creality K2 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 0.8 nozzle.json @@ -120,7 +120,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "deretraction_speed": [ "30" diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json index 52e7d360e9..356e6f571a 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.2 nozzle.json @@ -136,7 +136,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json index 93472b4dea..e74b47a143 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.4 nozzle.json @@ -136,7 +136,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json index 3b9009eb0c..9faca356d9 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.6 nozzle.json @@ -136,7 +136,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json index 285613858f..df47686765 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus 0.8 nozzle.json @@ -136,7 +136,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Plus.json b/resources/profiles/Creality/machine/Creality K2 Plus.json index 68cde06cfe..d70e5e517a 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k2plus_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Creality Generic ABS @K2-all;Creality Generic ASA @K2-all;Creality Generic PETG @K2-all;Creality Generic PLA @K2-all;Creality Generic PLA High Speed @K2-all;Creality Generic PLA Matte @K2-all;Creality Generic PLA Silk @K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality K2 Pro 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Pro 0.2 nozzle.json index 08249a6136..c8c34d0b39 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro 0.2 nozzle.json @@ -136,7 +136,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Pro 0.4 nozzle.json index c9d74994d7..e55e947fac 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro 0.4 nozzle.json @@ -134,7 +134,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Pro 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Pro 0.6 nozzle.json index b364acf29f..9ca340c779 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro 0.6 nozzle.json @@ -134,7 +134,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Pro 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K2 Pro 0.8 nozzle.json index 207c059d24..4cadba6946 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro 0.8 nozzle.json @@ -134,7 +134,7 @@ "single_extruder_multi_material": "1", "manual_filament_change": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ", "machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600", diff --git a/resources/profiles/Creality/machine/Creality K2 Pro.json b/resources/profiles/Creality/machine/Creality K2 Pro.json index d50ec5384a..3df797399b 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k2pro_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "", - "default_materials": "Creality Generic ABS @K2-all;Creality Generic ASA @K2-all;Creality Generic PETG @K2-all;Creality Generic PLA @K2-all;Creality Generic PLA High Speed @K2-all;Creality Generic PLA Matte @K2-all;Creality Generic PLA Silk @K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality K2 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K2 SE 0.4 nozzle.json index ebe24f655f..4b0e4754fc 100644 --- a/resources/profiles/Creality/machine/Creality K2 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K2 SE 0.4 nozzle.json @@ -83,7 +83,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @K2-all" + "Generic PLA @Creality K2-all" ], "deretraction_speed": "30", "extruder_colour": "#FCE94F", diff --git a/resources/profiles/Creality/machine/Creality K2 SE.json b/resources/profiles/Creality/machine/Creality K2 SE.json index 701d32c06e..5b7ec27ea0 100644 --- a/resources/profiles/Creality/machine/Creality K2 SE.json +++ b/resources/profiles/Creality/machine/Creality K2 SE.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K2_SE", - "default_materials": "Creality Generic ABS @K2-all;Creality Generic ASA @K2-all;Creality Generic PETG @K2-all;Creality Generic PLA @K2-all;Creality Generic PLA High Speed @K2-all;Creality Generic PLA Matte @K2-all;Creality Generic PLA Silk @K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality K2.json b/resources/profiles/Creality/machine/Creality K2.json index 3baf9e4126..3ea29942b7 100644 --- a/resources/profiles/Creality/machine/Creality K2.json +++ b/resources/profiles/Creality/machine/Creality K2.json @@ -9,5 +9,5 @@ "default_bed_type": "Textured PEI Plate", "bed_texture": "creality_k2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Creality Generic ABS @K2-all;Creality Generic ASA @K2-all;Creality Generic PETG @K2-all;Creality Generic PLA @K2-all;Creality Generic PLA High Speed @K2-all;Creality Generic PLA Matte @K2-all;Creality Generic PLA Silk @K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json index a3a6bfbfb1..2d7f0a63d8 100644 --- a/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Sermoon V1", "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality Sermoon V1", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Sermoon V1.json b/resources/profiles/Creality/machine/Creality Sermoon V1.json index 1f7f26c390..7b14e8256e 100644 --- a/resources/profiles/Creality/machine/Creality Sermoon V1.json +++ b/resources/profiles/Creality/machine/Creality Sermoon V1.json @@ -11,5 +11,5 @@ "Spiral Lift" ], "hotend_model": "", - "default_materials": "Creality Generic PLA;Creality Generic PETG;Creality Generic ABS;Creality Generic TPU" + "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/fdm_creality_common.json b/resources/profiles/Creality/machine/fdm_creality_common.json index f3021ae1ed..1818e8b54b 100644 --- a/resources/profiles/Creality/machine/fdm_creality_common.json +++ b/resources/profiles/Creality/machine/fdm_creality_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Creality Generic PLA" + "Generic PLA @Creality" ], "default_print_profile": "0.20mm Standard @Creality", "bed_exclude_area": [ diff --git a/resources/profiles/DeltaMaker.json b/resources/profiles/DeltaMaker.json index c583fa9a16..c7209bdf2b 100755 --- a/resources/profiles/DeltaMaker.json +++ b/resources/profiles/DeltaMaker.json @@ -1,7 +1,7 @@ { "name": "DeltaMaker", "url": "", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "DeltaMaker configurations", "machine_model_list": [ @@ -58,20 +58,20 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "DeltaMaker Generic PETG", - "sub_path": "filament/DeltaMaker Generic PETG.json" + "name": "Generic PETG @DeltaMaker", + "sub_path": "filament/Generic PETG @DeltaMaker.json" }, { "name": "DeltaMaker Brand PLA", "sub_path": "filament/DeltaMaker Brand PLA.json" }, { - "name": "DeltaMaker Generic PLA", - "sub_path": "filament/DeltaMaker Generic PLA.json" + "name": "Generic PLA @DeltaMaker", + "sub_path": "filament/Generic PLA @DeltaMaker.json" }, { - "name": "DeltaMaker Generic TPU", - "sub_path": "filament/DeltaMaker Generic TPU.json" + "name": "Generic TPU @DeltaMaker", + "sub_path": "filament/Generic TPU @DeltaMaker.json" } ], "machine_list": [ diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json b/resources/profiles/DeltaMaker/filament/Generic PETG @DeltaMaker.json similarity index 82% rename from resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json rename to resources/profiles/DeltaMaker/filament/Generic PETG @DeltaMaker.json index 94a2707c85..a31ad9aec5 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PETG.json +++ b/resources/profiles/DeltaMaker/filament/Generic PETG @DeltaMaker.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "DeltaMaker Generic PETG", + "name": "Generic PETG @DeltaMaker", "inherits": "fdm_filament_pet", + "renamed_from": "DeltaMaker Generic PETG", "from": "system", - "setting_id": "qlQo6a93esZv2l9a", - "filament_id": "OF4oCRKe", + "setting_id": "XmKr3I3RjeI3hm6F", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json b/resources/profiles/DeltaMaker/filament/Generic PLA @DeltaMaker.json similarity index 70% rename from resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json rename to resources/profiles/DeltaMaker/filament/Generic PLA @DeltaMaker.json index 5a130f9040..2e2b626feb 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic PLA.json +++ b/resources/profiles/DeltaMaker/filament/Generic PLA @DeltaMaker.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "DeltaMaker Generic PLA", + "name": "Generic PLA @DeltaMaker", "inherits": "fdm_filament_pla", + "renamed_from": "DeltaMaker Generic PLA", "from": "system", - "setting_id": "gfxr3MiE4uI2Xxy7", - "filament_id": "OFifxPW1", + "setting_id": "ITJo0Cig9myqk1uB", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.987" diff --git a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json b/resources/profiles/DeltaMaker/filament/Generic TPU @DeltaMaker.json similarity index 68% rename from resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json rename to resources/profiles/DeltaMaker/filament/Generic TPU @DeltaMaker.json index 3d02e90708..edfc8a1cd2 100755 --- a/resources/profiles/DeltaMaker/filament/DeltaMaker Generic TPU.json +++ b/resources/profiles/DeltaMaker/filament/Generic TPU @DeltaMaker.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "DeltaMaker Generic TPU", + "name": "Generic TPU @DeltaMaker", "inherits": "fdm_filament_tpu", + "renamed_from": "DeltaMaker Generic TPU", "from": "system", - "setting_id": "2L1U33wC0LofrMWs", - "filament_id": "OFbt04e0", + "setting_id": "uWHBbbhFzvWq0qUP", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json index f28c54eedc..8e7f98c81d 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2 0.35 nozzle.json @@ -22,6 +22,6 @@ ], "default_filament_profile": [ "DeltaMaker Brand PLA", - "DeltaMaker Generic PLA" + "Generic PLA @DeltaMaker" ] } diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json index e7693bc7ce..7b57c1956b 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2.json @@ -7,5 +7,5 @@ "family": "DeltaMaker", "bed_model": "deltamaker_2_buildplate_model.stl", "bed_texture": "deltamaker_2_buildplate_texture.svg", - "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" + "default_materials": "DeltaMaker Brand PLA;Generic PLA @DeltaMaker" } diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json index 4f83ddb32e..2b622e3c68 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T 0.5 nozzle.json @@ -22,6 +22,6 @@ ], "default_filament_profile": [ "DeltaMaker Brand PLA", - "DeltaMaker Generic PLA" + "Generic PLA @DeltaMaker" ] } diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json index 37b989997b..88846595bf 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2T.json @@ -7,5 +7,5 @@ "family": "DeltaMaker", "bed_model": "deltamaker_2_buildplate_model.stl", "bed_texture": "deltamaker_2_buildplate_texture.svg", - "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" + "default_materials": "DeltaMaker Brand PLA;Generic PLA @DeltaMaker" } diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json index 5ce9d45438..1767cda770 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT 0.5 nozzle.json @@ -22,6 +22,6 @@ ], "default_filament_profile": [ "DeltaMaker Brand PLA", - "DeltaMaker Generic PLA" + "Generic PLA @DeltaMaker" ] } diff --git a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json index 9d10697dd8..0b3870e4ac 100755 --- a/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json +++ b/resources/profiles/DeltaMaker/machine/DeltaMaker 2XT.json @@ -7,5 +7,5 @@ "family": "DeltaMaker", "bed_model": "deltamaker_2_buildplate_model.stl", "bed_texture": "deltamaker_2_buildplate_texture.svg", - "default_materials": "DeltaMaker Brand PLA;DeltaMaker Generic PLA" + "default_materials": "DeltaMaker Brand PLA;Generic PLA @DeltaMaker" } diff --git a/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json index 1033551ca9..ecfe431ef6 100755 --- a/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json +++ b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "DeltaMaker Generic PLA" + "Generic PLA @DeltaMaker" ], "default_print_profile": "0.20mm Standard @DeltaMaker 2 0.35 nozzle", "bed_exclude_area": [ diff --git a/resources/profiles/Dremel.json b/resources/profiles/Dremel.json index c8462f0414..951763b563 100644 --- a/resources/profiles/Dremel.json +++ b/resources/profiles/Dremel.json @@ -1,6 +1,6 @@ { "name": "Dremel", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Dremel configurations", "machine_model_list": [ @@ -89,20 +89,20 @@ "sub_path": "filament/fdm_filament_pla.json" }, { - "name": "Dremel Generic PLA", - "sub_path": "filament/Dremel Generic PLA.json" + "name": "Generic PLA @Dremel", + "sub_path": "filament/Generic PLA @Dremel.json" }, { - "name": "Dremel Generic PLA @3D20 all", - "sub_path": "filament/Dremel Generic PLA @3D20 all.json" + "name": "Generic PLA @Dremel 3D20 all", + "sub_path": "filament/Generic PLA @Dremel 3D20 all.json" }, { - "name": "Dremel Generic PLA @3D40 all", - "sub_path": "filament/Dremel Generic PLA @3D40 all.json" + "name": "Generic PLA @Dremel 3D40 all", + "sub_path": "filament/Generic PLA @Dremel 3D40 all.json" }, { - "name": "Dremel Generic PLA @3D45 all", - "sub_path": "filament/Dremel Generic PLA @3D45 all.json" + "name": "Generic PLA @Dremel 3D45 all", + "sub_path": "filament/Generic PLA @Dremel 3D45 all.json" } ], "machine_list": [ diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json similarity index 66% rename from resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json rename to resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json index 90d7a3e8af..e38769a288 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D20 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Dremel Generic PLA @3D20 all", - "inherits": "Dremel Generic PLA", + "name": "Generic PLA @Dremel 3D20 all", + "inherits": "Generic PLA @Dremel", + "renamed_from": "Dremel Generic PLA @3D20 all;Dremel Generic PLA 3D20 all", "from": "system", - "setting_id": "weKWPiNIe3TmOXRn", - "filament_id": "OFD2JNS1", + "setting_id": "UggXEvCig0b6S8Vx", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json similarity index 70% rename from resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json rename to resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json index 3fbcaefaa1..4c7afbe819 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D40 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Dremel Generic PLA @3D40 all", - "inherits": "Dremel Generic PLA", + "name": "Generic PLA @Dremel 3D40 all", + "inherits": "Generic PLA @Dremel", + "renamed_from": "Dremel Generic PLA @3D40 all;Dremel Generic PLA 3D40 all", "from": "system", - "setting_id": "kZAEjhLS29WQeyf1", - "filament_id": "OFD2JNS1", + "setting_id": "VUOtsWfy46cvAyBT", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "9" diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json similarity index 74% rename from resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json rename to resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json index 0b0f6b155f..a40cebf06d 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA @3D45 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Dremel Generic PLA @3D45 all", - "inherits": "Dremel Generic PLA", + "name": "Generic PLA @Dremel 3D45 all", + "inherits": "Generic PLA @Dremel", + "renamed_from": "Dremel Generic PLA @3D45 all;Dremel Generic PLA 3D45 all", "from": "system", - "setting_id": "pIlkZjNrXnHJDszp", - "filament_id": "OFD2JNS1", + "setting_id": "qEeBb3Pix2iDT3SD", + "filament_id": "OFDSrzZ8", "instantiation": "true", "slow_down_min_speed": "10", "close_fan_the_first_x_layers": "3", diff --git a/resources/profiles/Dremel/filament/Dremel Generic PLA.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel.json similarity index 71% rename from resources/profiles/Dremel/filament/Dremel Generic PLA.json rename to resources/profiles/Dremel/filament/Generic PLA @Dremel.json index d46a8cebfa..9cf4e162f0 100644 --- a/resources/profiles/Dremel/filament/Dremel Generic PLA.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Dremel Generic PLA", + "name": "Generic PLA @Dremel", "inherits": "fdm_filament_pla", + "renamed_from": "Dremel Generic PLA", "from": "system", - "setting_id": "blJERdJqaaRmRdD4", - "filament_id": "OFaU2JxD", + "setting_id": "jYydSWbyE3JzoKnQ", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Dremel/machine/Dremel 3D20 0.4 nozzle.json b/resources/profiles/Dremel/machine/Dremel 3D20 0.4 nozzle.json index ea9490971a..02d513000c 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D20 0.4 nozzle.json +++ b/resources/profiles/Dremel/machine/Dremel 3D20 0.4 nozzle.json @@ -10,7 +10,7 @@ "printer_structure": "hbot", "gcode_flavor": "marlin", "default_filament_profile": [ - "Dremel Generic PLA @3D20 all" + "Generic PLA @Dremel 3D20 all" ], "default_print_profile": ".20mm Standard @Dremel 3D20 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Dremel/machine/Dremel 3D20.json b/resources/profiles/Dremel/machine/Dremel 3D20.json index ec37c0d8df..8aa43be862 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D20.json +++ b/resources/profiles/Dremel/machine/Dremel 3D20.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Dremel_3D20", - "default_materials": "Dremel Generic PLA @3D20 all" + "default_materials": "Generic PLA @Dremel 3D20 all" } diff --git a/resources/profiles/Dremel/machine/Dremel 3D40 0.4 nozzle.json b/resources/profiles/Dremel/machine/Dremel 3D40 0.4 nozzle.json index d37a785099..db8a20003a 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D40 0.4 nozzle.json +++ b/resources/profiles/Dremel/machine/Dremel 3D40 0.4 nozzle.json @@ -10,7 +10,7 @@ "printer_structure": "hbot", "gcode_flavor": "marlin", "default_filament_profile": [ - "Dremel Generic PLA @3D40 all" + "Generic PLA @Dremel 3D40 all" ], "default_print_profile": ".20mm Standard @Dremel 3D40 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Dremel/machine/Dremel 3D40.json b/resources/profiles/Dremel/machine/Dremel 3D40.json index 3e3a003f2a..0223ced4d8 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D40.json +++ b/resources/profiles/Dremel/machine/Dremel 3D40.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Dremel_3D40", - "default_materials": "Dremel Generic PLA @3D40 all" + "default_materials": "Generic PLA @Dremel 3D40 all" } diff --git a/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json b/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json index 8d6b26f34b..c8cf0666d0 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json +++ b/resources/profiles/Dremel/machine/Dremel 3D45 0.4 nozzle.json @@ -10,7 +10,7 @@ "printer_settings_id": "Dremel", "gcode_flavor": "marlin", "default_filament_profile": [ - "Dremel Generic PLA @3D45 all" + "Generic PLA @Dremel 3D45 all" ], "default_print_profile": ".20mm Standard @Dremel 3D45 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Dremel/machine/Dremel 3D45.json b/resources/profiles/Dremel/machine/Dremel 3D45.json index d32aac4977..f701b83188 100644 --- a/resources/profiles/Dremel/machine/Dremel 3D45.json +++ b/resources/profiles/Dremel/machine/Dremel 3D45.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Dremel_3D45", - "default_materials": "Dremel Generic PLA @3D45 all" + "default_materials": "Generic PLA @Dremel 3D45 all" } diff --git a/resources/profiles/Dremel/machine/fdm_dremel_common.json b/resources/profiles/Dremel/machine/fdm_dremel_common.json index 194559cdcf..6f7504f9fa 100644 --- a/resources/profiles/Dremel/machine/fdm_dremel_common.json +++ b/resources/profiles/Dremel/machine/fdm_dremel_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Dremel Generic PLA" + "Generic PLA @Dremel" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/FLSun.json b/resources/profiles/FLSun.json index 8e234dffca..364b3cf521 100644 --- a/resources/profiles/FLSun.json +++ b/resources/profiles/FLSun.json @@ -1,6 +1,6 @@ { "name": "FLSun", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "FLSun configurations", "machine_model_list": [ @@ -177,44 +177,44 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "FLSun Generic ABS", - "sub_path": "filament/FLSun Generic ABS.json" + "name": "Generic ABS @FLSun", + "sub_path": "filament/Generic ABS @FLSun.json" }, { - "name": "FLSun Generic ASA", - "sub_path": "filament/FLSun Generic ASA.json" + "name": "Generic ASA @FLSun", + "sub_path": "filament/Generic ASA @FLSun.json" }, { - "name": "FLSun Generic PA", - "sub_path": "filament/FLSun Generic PA.json" + "name": "Generic PA @FLSun", + "sub_path": "filament/Generic PA @FLSun.json" }, { - "name": "FLSun Generic PA-CF", - "sub_path": "filament/FLSun Generic PA-CF.json" + "name": "Generic PA-CF @FLSun", + "sub_path": "filament/Generic PA-CF @FLSun.json" }, { - "name": "FLSun Generic PC", - "sub_path": "filament/FLSun Generic PC.json" + "name": "Generic PC @FLSun", + "sub_path": "filament/Generic PC @FLSun.json" }, { - "name": "FLSun Generic PETG", - "sub_path": "filament/FLSun Generic PETG.json" + "name": "Generic PETG @FLSun", + "sub_path": "filament/Generic PETG @FLSun.json" }, { - "name": "FLSun Generic PLA", - "sub_path": "filament/FLSun Generic PLA.json" + "name": "Generic PLA @FLSun", + "sub_path": "filament/Generic PLA @FLSun.json" }, { - "name": "FLSun Generic PLA-CF", - "sub_path": "filament/FLSun Generic PLA-CF.json" + "name": "Generic PLA-CF @FLSun", + "sub_path": "filament/Generic PLA-CF @FLSun.json" }, { - "name": "FLSun Generic PVA", - "sub_path": "filament/FLSun Generic PVA.json" + "name": "Generic PVA @FLSun", + "sub_path": "filament/Generic PVA @FLSun.json" }, { - "name": "FLSun Generic TPU", - "sub_path": "filament/FLSun Generic TPU.json" + "name": "Generic TPU @FLSun", + "sub_path": "filament/Generic TPU @FLSun.json" }, { "name": "FLSun S1 ABS", @@ -241,8 +241,8 @@ "sub_path": "filament/FLSun T1 PETG.json" }, { - "name": "FLSun S1 PLA Generic", - "sub_path": "filament/FLSun S1 PLA Generic.json" + "name": "Generic PLA @FLSun S1", + "sub_path": "filament/Generic PLA @FLSun S1.json" }, { "name": "FLSun S1 PLA High Speed", @@ -253,8 +253,8 @@ "sub_path": "filament/FLSun S1 PLA Silk.json" }, { - "name": "FLSun T1 PLA Generic", - "sub_path": "filament/FLSun T1 PLA Generic.json" + "name": "Generic PLA @FLSun T1", + "sub_path": "filament/Generic PLA @FLSun T1.json" }, { "name": "FLSun T1 PLA High Speed", diff --git a/resources/profiles/FLSun/filament/FLSun S1 ABS.json b/resources/profiles/FLSun/filament/FLSun S1 ABS.json index f796202c3e..d097e75200 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ABS.json +++ b/resources/profiles/FLSun/filament/FLSun S1 ABS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 ABS", - "inherits": "FLSun Generic ABS", + "inherits": "Generic ABS @FLSun", "from": "system", "setting_id": "tvpZ28Oe4Al7hlgj", "filament_id": "OFzzmK2Q", diff --git a/resources/profiles/FLSun/filament/FLSun S1 ASA.json b/resources/profiles/FLSun/filament/FLSun S1 ASA.json index fed430ca63..79d37b5e30 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ASA.json +++ b/resources/profiles/FLSun/filament/FLSun S1 ASA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 ASA", - "inherits": "FLSun Generic ASA", + "inherits": "Generic ASA @FLSun", "from": "system", "setting_id": "C5oyaWw3YVEz0CgE", "filament_id": "OFIK0xFa", diff --git a/resources/profiles/FLSun/filament/FLSun S1 PETG.json b/resources/profiles/FLSun/filament/FLSun S1 PETG.json index cf6a506da0..33e14b08a1 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PETG.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 PETG", - "inherits": "FLSun Generic PETG", + "inherits": "Generic PETG @FLSun", "from": "system", "setting_id": "Ac6q0FtMFMLesFdU", "filament_id": "OF9z5LZ9", diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json index 8d9d662dda..f1cd779e91 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 PLA High Speed", - "inherits": "FLSun Generic PLA", + "inherits": "Generic PLA @FLSun", "from": "system", "setting_id": "v2clpNXXo8m6dV33", "filament_id": "OFoqrHTw", diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json index 70946da40c..2d4a65f157 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 PLA Silk", - "inherits": "FLSun Generic PLA", + "inherits": "Generic PLA @FLSun", "from": "system", "setting_id": "164Bn4YchxJAaLsa", "filament_id": "OFSStjay", diff --git a/resources/profiles/FLSun/filament/FLSun S1 TPU.json b/resources/profiles/FLSun/filament/FLSun S1 TPU.json index 0b3e6a00ee..1a495c4a0b 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 TPU.json +++ b/resources/profiles/FLSun/filament/FLSun S1 TPU.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun S1 TPU", - "inherits": "FLSun Generic TPU", + "inherits": "Generic TPU @FLSun", "from": "system", "setting_id": "yzPvNqIo7mfWAwNS", "filament_id": "OF6ooviO", diff --git a/resources/profiles/FLSun/filament/FLSun T1 ABS.json b/resources/profiles/FLSun/filament/FLSun T1 ABS.json index fe7c8c15c8..8514ed0ecd 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ABS.json +++ b/resources/profiles/FLSun/filament/FLSun T1 ABS.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 ABS", - "inherits": "FLSun Generic ABS", + "inherits": "Generic ABS @FLSun", "from": "system", "setting_id": "GP8VqRfidKOdj0ZJ", "filament_id": "OFV0KrAG", diff --git a/resources/profiles/FLSun/filament/FLSun T1 ASA.json b/resources/profiles/FLSun/filament/FLSun T1 ASA.json index 4633c41271..862fde6c6e 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ASA.json +++ b/resources/profiles/FLSun/filament/FLSun T1 ASA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 ASA", - "inherits": "FLSun Generic ASA", + "inherits": "Generic ASA @FLSun", "from": "system", "setting_id": "YmJbWfCQpNk9nxB7", "filament_id": "OFbjtPQy", diff --git a/resources/profiles/FLSun/filament/FLSun T1 PETG.json b/resources/profiles/FLSun/filament/FLSun T1 PETG.json index 869df6e538..5b2e6e471c 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PETG.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 PETG", - "inherits": "FLSun Generic PETG", + "inherits": "Generic PETG @FLSun", "from": "system", "setting_id": "A2aA7xcmqgz8ERyY", "filament_id": "OFJ80y1e", diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json index 2d612ce865..814aa5b47c 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 PLA High Speed", - "inherits": "FLSun Generic PLA", + "inherits": "Generic PLA @FLSun", "from": "system", "setting_id": "E4lpSLLlAxUW04ik", "filament_id": "OFQ9qnkd", diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json index e2a7bbeca2..f7b4b22751 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 PLA Silk", - "inherits": "FLSun Generic PLA", + "inherits": "Generic PLA @FLSun", "from": "system", "setting_id": "gElUb4GnCoEfVlEd", "filament_id": "OFuUJyRx", diff --git a/resources/profiles/FLSun/filament/FLSun T1 TPU.json b/resources/profiles/FLSun/filament/FLSun T1 TPU.json index 63813ae149..3b25d65229 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 TPU.json +++ b/resources/profiles/FLSun/filament/FLSun T1 TPU.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "FLSun T1 TPU", - "inherits": "FLSun Generic TPU", + "inherits": "Generic TPU @FLSun", "from": "system", "setting_id": "34Ux18VB4d6R6G40", "filament_id": "OFENzGSm", diff --git a/resources/profiles/FLSun/filament/FLSun Generic ABS.json b/resources/profiles/FLSun/filament/Generic ABS @FLSun.json similarity index 71% rename from resources/profiles/FLSun/filament/FLSun Generic ABS.json rename to resources/profiles/FLSun/filament/Generic ABS @FLSun.json index 848034b3e1..2daf007fe9 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic ABS.json +++ b/resources/profiles/FLSun/filament/Generic ABS @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic ABS", + "name": "Generic ABS @FLSun", "inherits": "fdm_filament_abs", + "renamed_from": "FLSun Generic ABS", "from": "system", - "setting_id": "2f9nYaR0PUMkGvDD", - "filament_id": "OFWof1Ap", + "setting_id": "1lPapSrZbKMLBx6k", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/FLSun/filament/FLSun Generic ASA.json b/resources/profiles/FLSun/filament/Generic ASA @FLSun.json similarity index 71% rename from resources/profiles/FLSun/filament/FLSun Generic ASA.json rename to resources/profiles/FLSun/filament/Generic ASA @FLSun.json index bbea739d1d..e86f82f441 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic ASA.json +++ b/resources/profiles/FLSun/filament/Generic ASA @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic ASA", + "name": "Generic ASA @FLSun", "inherits": "fdm_filament_asa", + "renamed_from": "FLSun Generic ASA", "from": "system", - "setting_id": "9GPCRihSQTBRxkm3", - "filament_id": "OFCcsYtf", + "setting_id": "22OH64Yfg5sdyEmz", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PA.json b/resources/profiles/FLSun/filament/Generic PA @FLSun.json similarity index 74% rename from resources/profiles/FLSun/filament/FLSun Generic PA.json rename to resources/profiles/FLSun/filament/Generic PA @FLSun.json index 8f9908acbc..49fe8c01fc 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PA.json +++ b/resources/profiles/FLSun/filament/Generic PA @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PA", + "name": "Generic PA @FLSun", "inherits": "fdm_filament_pa", + "renamed_from": "FLSun Generic PA", "from": "system", - "setting_id": "ek14AgskfJXeZ84u", - "filament_id": "OFeJjoKF", + "setting_id": "hlHGTLqHjaRfMkqC", + "filament_id": "OFg8ndtj", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json b/resources/profiles/FLSun/filament/Generic PA-CF @FLSun.json similarity index 75% rename from resources/profiles/FLSun/filament/FLSun Generic PA-CF.json rename to resources/profiles/FLSun/filament/Generic PA-CF @FLSun.json index 65f3c06b99..b6dc311dcf 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PA-CF.json +++ b/resources/profiles/FLSun/filament/Generic PA-CF @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PA-CF", + "name": "Generic PA-CF @FLSun", "inherits": "fdm_filament_pa", + "renamed_from": "FLSun Generic PA-CF", "from": "system", - "setting_id": "2JOA0YeYZHj0lFmA", - "filament_id": "OFHQUAoZ", + "setting_id": "xiLUY07SM81i1pPs", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PC.json b/resources/profiles/FLSun/filament/Generic PC @FLSun.json similarity index 71% rename from resources/profiles/FLSun/filament/FLSun Generic PC.json rename to resources/profiles/FLSun/filament/Generic PC @FLSun.json index 4a111e609f..e4d81857d3 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PC.json +++ b/resources/profiles/FLSun/filament/Generic PC @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PC", + "name": "Generic PC @FLSun", "inherits": "fdm_filament_pc", + "renamed_from": "FLSun Generic PC", "from": "system", - "setting_id": "wluYSRtaCqajFCYT", - "filament_id": "OFVqZ2H0", + "setting_id": "Ok08F2LxNjxor6ph", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PETG.json b/resources/profiles/FLSun/filament/Generic PETG @FLSun.json similarity index 84% rename from resources/profiles/FLSun/filament/FLSun Generic PETG.json rename to resources/profiles/FLSun/filament/Generic PETG @FLSun.json index f0cf97956e..84eaee1c7c 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PETG.json +++ b/resources/profiles/FLSun/filament/Generic PETG @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PETG", + "name": "Generic PETG @FLSun", "inherits": "fdm_filament_pet", + "renamed_from": "FLSun Generic PETG", "from": "system", - "setting_id": "FCjlzoLFYn3IVxxD", - "filament_id": "OFJJpaLS", + "setting_id": "pWuJLjWhYMutD92n", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json b/resources/profiles/FLSun/filament/Generic PLA @FLSun S1.json similarity index 83% rename from resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json rename to resources/profiles/FLSun/filament/Generic PLA @FLSun S1.json index 8115a9cec6..5674ba8c27 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Generic.json +++ b/resources/profiles/FLSun/filament/Generic PLA @FLSun S1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun S1 PLA Generic", - "inherits": "FLSun Generic PLA", + "name": "Generic PLA @FLSun S1", + "inherits": "Generic PLA @FLSun", + "renamed_from": "FLSun S1 PLA Generic", "from": "system", - "setting_id": "z0Y9rQVZairHqwbi", - "filament_id": "OFoDgVnY", + "setting_id": "4f9vGTYsHDbZoVjs", + "filament_id": "OFDSrzZ8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json b/resources/profiles/FLSun/filament/Generic PLA @FLSun T1.json similarity index 83% rename from resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json rename to resources/profiles/FLSun/filament/Generic PLA @FLSun T1.json index 16e048d536..93b9ac08d4 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Generic.json +++ b/resources/profiles/FLSun/filament/Generic PLA @FLSun T1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun T1 PLA Generic", - "inherits": "FLSun Generic PLA", + "name": "Generic PLA @FLSun T1", + "inherits": "Generic PLA @FLSun", + "renamed_from": "FLSun T1 PLA Generic", "from": "system", - "setting_id": "aUMHmlsPMYDicnPp", - "filament_id": "OFU0n0zW", + "setting_id": "5aJUZ6r6jtnvck19", + "filament_id": "OFDSrzZ8", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PLA.json b/resources/profiles/FLSun/filament/Generic PLA @FLSun.json similarity index 73% rename from resources/profiles/FLSun/filament/FLSun Generic PLA.json rename to resources/profiles/FLSun/filament/Generic PLA @FLSun.json index abc2303137..a4f8655ff9 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PLA.json +++ b/resources/profiles/FLSun/filament/Generic PLA @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PLA", + "name": "Generic PLA @FLSun", "inherits": "fdm_filament_pla", + "renamed_from": "FLSun Generic PLA", "from": "system", - "setting_id": "ltWBfkc84nszWS19", - "filament_id": "OFJSksUs", + "setting_id": "JcpwaJCVC9MoJrPB", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json b/resources/profiles/FLSun/filament/Generic PLA-CF @FLSun.json similarity index 74% rename from resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json rename to resources/profiles/FLSun/filament/Generic PLA-CF @FLSun.json index 3aefb8ea4a..87b301513e 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PLA-CF.json +++ b/resources/profiles/FLSun/filament/Generic PLA-CF @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PLA-CF", + "name": "Generic PLA-CF @FLSun", "inherits": "fdm_filament_pla", + "renamed_from": "FLSun Generic PLA-CF", "from": "system", - "setting_id": "FEdplifUKOSUA4XX", - "filament_id": "OFsF96Gt", + "setting_id": "teBJEScAMecyn3JU", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FLSun/filament/FLSun Generic PVA.json b/resources/profiles/FLSun/filament/Generic PVA @FLSun.json similarity index 75% rename from resources/profiles/FLSun/filament/FLSun Generic PVA.json rename to resources/profiles/FLSun/filament/Generic PVA @FLSun.json index 30defb2258..9279ece682 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic PVA.json +++ b/resources/profiles/FLSun/filament/Generic PVA @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic PVA", + "name": "Generic PVA @FLSun", "inherits": "fdm_filament_pva", + "renamed_from": "FLSun Generic PVA", "from": "system", - "setting_id": "IohayLPyRIsZJ0GY", - "filament_id": "OFtP1rqJ", + "setting_id": "hyVWJBubfQl497iO", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/FLSun/filament/FLSun Generic TPU.json b/resources/profiles/FLSun/filament/Generic TPU @FLSun.json similarity index 69% rename from resources/profiles/FLSun/filament/FLSun Generic TPU.json rename to resources/profiles/FLSun/filament/Generic TPU @FLSun.json index 63e0826eef..70d1b8c42a 100644 --- a/resources/profiles/FLSun/filament/FLSun Generic TPU.json +++ b/resources/profiles/FLSun/filament/Generic TPU @FLSun.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FLSun Generic TPU", + "name": "Generic TPU @FLSun", "inherits": "fdm_filament_tpu", + "renamed_from": "FLSun Generic TPU", "from": "system", - "setting_id": "hewisceC8FmSwzF4", - "filament_id": "OFMoLF46", + "setting_id": "gJ3UZr4n4K8DPdBz", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/FLSun/machine/FLSun Q5 0.4 nozzle.json b/resources/profiles/FLSun/machine/FLSun Q5 0.4 nozzle.json index 66fb95ccc6..3642cce4fb 100644 --- a/resources/profiles/FLSun/machine/FLSun Q5 0.4 nozzle.json +++ b/resources/profiles/FLSun/machine/FLSun Q5 0.4 nozzle.json @@ -180,7 +180,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M400 U1\n", "default_filament_profile": [ - "FLSun Generic PLA" + "Generic PLA @FLSun" ], "machine_start_gcode": ";STARTGCODE\nM117 Initializing\n; G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM107\nG28 ;Home\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\n\nG92 E0\nG1 X-98 Y0 Z0.2 F4000 ; move to arc start\nG3 X0 Y-98 I98 Z0.2 E40 F400 ; lay arc stripe 90deg\nG0 Z1 \nG92 E0.0\n", "machine_end_gcode": "M107\nM104 S0\nM140 S0\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\n;M84\nM18 S180 ;disable motors after 180s\n", diff --git a/resources/profiles/FLSun/machine/FLSun Q5.json b/resources/profiles/FLSun/machine/FLSun Q5.json index f7825cb4fa..001c4cb149 100644 --- a/resources/profiles/FLSun/machine/FLSun Q5.json +++ b/resources/profiles/FLSun/machine/FLSun Q5.json @@ -8,5 +8,5 @@ "bed_model": "flsun_q5_buildplate_model.stl", "bed_texture": "flsun_q5_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF" + "default_materials": "Generic ABS @FLSun;Generic PLA @FLSun;Generic PLA-CF @FLSun;Generic PETG @FLSun;Generic TPU @FLSun;Generic ASA @FLSun;Generic PC @FLSun;Generic PVA @FLSun;Generic PA @FLSun;Generic PA-CF @FLSun" } diff --git a/resources/profiles/FLSun/machine/FLSun QQ-S Pro 0.4 nozzle.json b/resources/profiles/FLSun/machine/FLSun QQ-S Pro 0.4 nozzle.json index ef1dd22c15..e2444d404c 100644 --- a/resources/profiles/FLSun/machine/FLSun QQ-S Pro 0.4 nozzle.json +++ b/resources/profiles/FLSun/machine/FLSun QQ-S Pro 0.4 nozzle.json @@ -180,7 +180,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M400 U1\n", "default_filament_profile": [ - "FLSun Generic PLA" + "Generic PLA @FLSun" ], "machine_start_gcode": ";STARTGCODE\nM117 Initializing\n; Set coordinate modes\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n; Reset speed and extrusion rates\nM200 D0 ; disable volumetric E\nM220 S100 ; reset speed\n; Set initial warmup temps\nM117 Nozzle preheat\nM104 S100 ; preheat extruder to no ooze temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed final temp\nM300 S40 P10 ; Bip\n; Home\nM117 Homing\nG28 ; home all with default mesh bed level\n; For ABL users put G29 for a leveling request\n; Final warmup routine\nM117 Final warmup\nM104 S[nozzle_temperature_initial_layer] ; set extruder final temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder final temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed final temp\nM300 S440 P200; 1st beep for printer ready and allow some time to clean nozzle\nM300 S0 P250; wait between dual beep\nM300 S440 P200; 2nd beep for printer ready\nG4 S10; wait to clean the nozzle\nM300 S440 P200; 3rd beep for ready to start printing\n; Prime line routine\nM117 Printing prime line\n;M900 K0; Disable Linear Advance (Marlin) for prime line\nG92 E0.0; reset extrusion distance\nG1 X-54.672 Y-95.203 Z0.3 F4000; go outside print area\nG92 E0.0; reset extrusion distance\nG1 E2 F1000 ; de-retract and push ooze\nG3 X38.904 Y-102.668 I54.672 J95.105 E20.999\nG3 X54.671 Y-95.203 I-38.815 J102.373 E5.45800\nG92 E0.0\nG1 E-5 F3000 ; retract 5mm\nG1 X52.931 Y-96.185 F1000 ; wipe\nG1 X50.985 Y-97.231 F1000 ; wipe\nG1 X49.018 Y-98.238 F1000 ; wipe\nG1 X0 Y-109.798 F1000\nG1 E4.8 F1500; de-retract\nG92 E0.0 ; reset extrusion distance\n; Final print adjustments\nM117 Preparing to print\n;M82 ; extruder absolute mode\nM221 S{if layer_height<0.075}100{else}95{endif}\nM300 S40 P10 ; chirp\nM117 Print [input_filename_base]; Display: Printing started...", "machine_end_gcode": "; printing object ENDGCODE\nG92 E0.0 ; prepare to retract\nG1 E-6 F3000; retract to avoid stringing\n; Anti-stringing end wiggle\n{if layer_z < max_print_height}G1 Z{min(layer_z+100, max_print_height)}{endif} F4000 ; Move print head up\nG1 X0 Y120 F3000 ; present print\n; Reset print setting overrides\nG92 E0\nM200 D0 ; disable volumetric e\nM220 S100 ; reset speed factor to 100%\nM221 S100 ; reset extruder factor to 100%\n;M900 K0 ; reset linear acceleration(Marlin)\n; Shut down printer\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM18 S180 ;disable motors after 180s\nM300 S40 P10 ; Bip\nM117 Print finish.", diff --git a/resources/profiles/FLSun/machine/FLSun QQ-S Pro.json b/resources/profiles/FLSun/machine/FLSun QQ-S Pro.json index 3b3cf86676..f360405471 100644 --- a/resources/profiles/FLSun/machine/FLSun QQ-S Pro.json +++ b/resources/profiles/FLSun/machine/FLSun QQ-S Pro.json @@ -8,5 +8,5 @@ "bed_model": "flsun_qqspro_buildplate_model.stl", "bed_texture": "flsun_qqspro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF" + "default_materials": "Generic ABS @FLSun;Generic PLA @FLSun;Generic PLA-CF @FLSun;Generic PETG @FLSun;Generic TPU @FLSun;Generic ASA @FLSun;Generic PC @FLSun;Generic PVA @FLSun;Generic PA @FLSun;Generic PA-CF @FLSun" } diff --git a/resources/profiles/FLSun/machine/FLSun S1.json b/resources/profiles/FLSun/machine/FLSun S1.json index 5b730f3c3b..597480c25f 100644 --- a/resources/profiles/FLSun/machine/FLSun S1.json +++ b/resources/profiles/FLSun/machine/FLSun S1.json @@ -8,5 +8,5 @@ "bed_model": "flsun_s1_buildplate_model.stl", "bed_texture": "FLSun_S1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun S1 PLA High Speed;FLSun S1 PLA Silk;FLSun S1 PLA Generic;FLSun S1 PETG;FLSun S1 ASA;FLSun S1 TPU;FLSun S1 ABS" + "default_materials": "FLSun S1 PLA High Speed;FLSun S1 PLA Silk;Generic PLA @FLSun S1;FLSun S1 PETG;FLSun S1 ASA;FLSun S1 TPU;FLSun S1 ABS" } diff --git a/resources/profiles/FLSun/machine/FLSun SR 0.4 nozzle.json b/resources/profiles/FLSun/machine/FLSun SR 0.4 nozzle.json index b6fac6caa7..78731a1481 100644 --- a/resources/profiles/FLSun/machine/FLSun SR 0.4 nozzle.json +++ b/resources/profiles/FLSun/machine/FLSun SR 0.4 nozzle.json @@ -13,7 +13,7 @@ ], "nozzle_type": "brass", "default_filament_profile": [ - "FLSun Generic PLA" + "Generic PLA @FLSun" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/FLSun/machine/FLSun SR.json b/resources/profiles/FLSun/machine/FLSun SR.json index 54e40302e2..6a26773ece 100644 --- a/resources/profiles/FLSun/machine/FLSun SR.json +++ b/resources/profiles/FLSun/machine/FLSun SR.json @@ -8,5 +8,5 @@ "bed_model": "flsun_SR_buildplate_model.stl", "bed_texture": "flsun_SR_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF" + "default_materials": "Generic ABS @FLSun;Generic PLA @FLSun;Generic PLA-CF @FLSun;Generic PETG @FLSun;Generic TPU @FLSun;Generic ASA @FLSun;Generic PC @FLSun;Generic PVA @FLSun;Generic PA @FLSun;Generic PA-CF @FLSun" } diff --git a/resources/profiles/FLSun/machine/FLSun T1.json b/resources/profiles/FLSun/machine/FLSun T1.json index 8fda638772..45a7a290b1 100644 --- a/resources/profiles/FLSun/machine/FLSun T1.json +++ b/resources/profiles/FLSun/machine/FLSun T1.json @@ -8,5 +8,5 @@ "bed_model": "flsun_T1_buildplate_model.stl", "bed_texture": "FLSun_T1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun T1 PLA High Speed;FLSun T1 PLA Silk;FLSun T1 PLA Generic;FLSun T1 PETG;FLSun T1 ASA;FLSun T1 TPU;FLSun T1 ABS" + "default_materials": "FLSun T1 PLA High Speed;FLSun T1 PLA Silk;Generic PLA @FLSun T1;FLSun T1 PETG;FLSun T1 ASA;FLSun T1 TPU;FLSun T1 ABS" } diff --git a/resources/profiles/FLSun/machine/FLSun V400.json b/resources/profiles/FLSun/machine/FLSun V400.json index 605e51e229..33fc9981ed 100644 --- a/resources/profiles/FLSun/machine/FLSun V400.json +++ b/resources/profiles/FLSun/machine/FLSun V400.json @@ -8,5 +8,5 @@ "bed_model": "flsun_v400_buildplate_model.stl", "bed_texture": "flsun_v400_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun Generic ABS;FLSun Generic PLA;FLSun Generic PLA-CF;FLSun Generic PETG;FLSun Generic TPU;FLSun Generic ASA;FLSun Generic PC;FLSun Generic PVA;FLSun Generic PA;FLSun Generic PA-CF" + "default_materials": "Generic ABS @FLSun;Generic PLA @FLSun;Generic PLA-CF @FLSun;Generic PETG @FLSun;Generic TPU @FLSun;Generic ASA @FLSun;Generic PC @FLSun;Generic PVA @FLSun;Generic PA @FLSun;Generic PA-CF @FLSun" } diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index 661d171771..63c09f65af 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.04.00.04", + "version": "02.04.00.05", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ @@ -550,20 +550,20 @@ "sub_path": "filament/Flashforge/Flashforge ABS @FF AD3.json" }, { - "name": "Flashforge Generic ABS", - "sub_path": "filament/Flashforge Generic ABS.json" + "name": "Generic ABS @Flashforge", + "sub_path": "filament/Generic ABS @Flashforge.json" }, { - "name": "Flashforge Generic ASA", - "sub_path": "filament/Flashforge Generic ASA.json" + "name": "Generic ASA @Flashforge", + "sub_path": "filament/Generic ASA @Flashforge.json" }, { - "name": "Flashforge Generic PETG", - "sub_path": "filament/Flashforge Generic PETG.json" + "name": "Generic PETG @Flashforge", + "sub_path": "filament/Generic PETG @Flashforge.json" }, { - "name": "Flashforge Generic PETG-CF10", - "sub_path": "filament/Flashforge Generic PETG-CF10.json" + "name": "Generic PETG-CF10 @Flashforge", + "sub_path": "filament/Generic PETG-CF10 @Flashforge.json" }, { "name": "Flashforge PETG", @@ -578,20 +578,20 @@ "sub_path": "filament/SUNLU/SUNLU PETG @base.json" }, { - "name": "Flashforge Generic HS PLA", - "sub_path": "filament/Flashforge Generic HS PLA.json" + "name": "Generic HS PLA @Flashforge", + "sub_path": "filament/Generic HS PLA @Flashforge.json" }, { - "name": "Flashforge Generic PLA", - "sub_path": "filament/Flashforge Generic PLA.json" + "name": "Generic PLA @Flashforge", + "sub_path": "filament/Generic PLA @Flashforge.json" }, { - "name": "Flashforge Generic PLA-CF10", - "sub_path": "filament/Flashforge Generic PLA-CF10.json" + "name": "Generic PLA-CF10 @Flashforge", + "sub_path": "filament/Generic PLA-CF10 @Flashforge.json" }, { - "name": "Flashforge Generic PLA-Silk", - "sub_path": "filament/Flashforge Generic PLA-Silk.json" + "name": "Generic PLA-Silk @Flashforge", + "sub_path": "filament/Generic PLA-Silk @Flashforge.json" }, { "name": "Flashforge PLA", @@ -622,8 +622,8 @@ "sub_path": "filament/SUNLU/SUNLU Wood PLA @base.json" }, { - "name": "Flashforge Generic TPU", - "sub_path": "filament/Flashforge Generic TPU.json" + "name": "Generic TPU @Flashforge", + "sub_path": "filament/Generic TPU @Flashforge.json" }, { "name": "Flashforge ABS @FF AD5M 0.25 Nozzle", @@ -690,28 +690,28 @@ "sub_path": "filament/Flashforge ASA-CF @FF G4P.json" }, { - "name": "Flashforge Generic ABS @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json" + "name": "Generic ABS @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic ABS @FF AD5M 0.25 Nozzle.json" }, { - "name": "Flashforge Generic ABS @G3U", - "sub_path": "filament/Flashforge Generic ABS @G3U.json" + "name": "Generic ABS @Flashforge G3U", + "sub_path": "filament/Generic ABS @Flashforge G3U.json" }, { - "name": "Flashforge Generic ABS @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json" + "name": "Generic ABS @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic ABS @Flashforge G3U 0.6 Nozzle.json" }, { - "name": "Flashforge Generic ASA @G3U", - "sub_path": "filament/Flashforge Generic ASA @G3U.json" + "name": "Generic ASA @Flashforge G3U", + "sub_path": "filament/Generic ASA @Flashforge G3U.json" }, { - "name": "Flashforge Generic HIPS", - "sub_path": "filament/Flashforge Generic HIPS.json" + "name": "Generic HIPS @Flashforge", + "sub_path": "filament/Generic HIPS @Flashforge.json" }, { - "name": "Flashforge Generic HIPS @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json" + "name": "Generic HIPS @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic HIPS @Flashforge G3U 0.6 Nozzle.json" }, { "name": "Generic ABS @Flashforge AD4", @@ -726,44 +726,44 @@ "sub_path": "filament/Flashforge ASA Basic.json" }, { - "name": "Flashforge Generic ASA @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json" + "name": "Generic ASA @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic ASA @FF AD5M 0.25 Nozzle.json" }, { - "name": "Flashforge Generic ASA @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json" + "name": "Generic ASA @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic ASA @Flashforge G3U 0.6 Nozzle.json" }, { "name": "Generic ASA @Flashforge AD4", "sub_path": "filament/Generic ASA @Flashforge AD4.json" }, { - "name": "Flashforge Generic PETG @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json" + "name": "Generic PETG @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic PETG @FF AD5M 0.25 Nozzle.json" }, { - "name": "Flashforge Generic PETG @G3U", - "sub_path": "filament/Flashforge Generic PETG @G3U.json" + "name": "Generic PETG @Flashforge G3U", + "sub_path": "filament/Generic PETG @Flashforge G3U.json" }, { - "name": "Flashforge Generic PETG @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json" + "name": "Generic PETG @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic PETG @Flashforge G3U 0.6 Nozzle.json" }, { - "name": "Flashforge Generic PETG @G3U 0.8 Nozzle", - "sub_path": "filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json" + "name": "Generic PETG @Flashforge G3U 0.8 Nozzle", + "sub_path": "filament/Generic PETG @Flashforge G3U 0.8 Nozzle.json" }, { - "name": "Flashforge Generic PETG-CF @G3U", - "sub_path": "filament/Flashforge Generic PETG-CF @G3U.json" + "name": "Generic PETG-CF @Flashforge G3U", + "sub_path": "filament/Generic PETG-CF @Flashforge G3U.json" }, { - "name": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json" + "name": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic PETG-CF @Flashforge G3U 0.6 Nozzle.json" }, { - "name": "Flashforge Generic PETG-CF @G3U 0.8 Nozzle", - "sub_path": "filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json" + "name": "Generic PETG-CF @Flashforge G3U 0.8 Nozzle", + "sub_path": "filament/Generic PETG-CF @Flashforge G3U 0.8 Nozzle.json" }, { "name": "Flashforge HS PETG", @@ -854,40 +854,40 @@ "sub_path": "filament/Flashforge PETG-CF @FF G4P.json" }, { - "name": "FusRock Generic NexPA-CF25", - "sub_path": "filament/FusRock/FusRock Generic NexPA-CF25.json" + "name": "FusRock NexPA-CF25", + "sub_path": "filament/FusRock/FusRock NexPA-CF25.json" }, { - "name": "FusRock Generic PAHT-CF", - "sub_path": "filament/FusRock/FusRock Generic PAHT-CF.json" + "name": "FusRock PAHT-CF", + "sub_path": "filament/FusRock/FusRock PAHT-CF.json" }, { - "name": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", - "sub_path": "filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json" + "name": "FusRock PAHT-CF @G3U 0.6 Nozzle", + "sub_path": "filament/FusRock/FusRock PAHT-CF @G3U 0.6 Nozzle.json" }, { - "name": "FusRock Generic PET-CF", - "sub_path": "filament/FusRock/FusRock Generic PET-CF.json" + "name": "FusRock PET-CF", + "sub_path": "filament/FusRock/FusRock PET-CF.json" }, { - "name": "FusRock Generic PET-CF @G3U 0.6 Nozzle", - "sub_path": "filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json" + "name": "FusRock PET-CF @G3U 0.6 Nozzle", + "sub_path": "filament/FusRock/FusRock PET-CF @G3U 0.6 Nozzle.json" }, { - "name": "FusRock Generic S-Multi", - "sub_path": "filament/FusRock/FusRock Generic S-Multi.json" + "name": "FusRock S-Multi", + "sub_path": "filament/FusRock/FusRock S-Multi.json" }, { - "name": "FusRock Generic S-Multi @G3U 0.6 Nozzle", - "sub_path": "filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json" + "name": "FusRock S-Multi @G3U 0.6 Nozzle", + "sub_path": "filament/FusRock/FusRock S-Multi @G3U 0.6 Nozzle.json" }, { - "name": "FusRock Generic S-PAHT", - "sub_path": "filament/FusRock/FusRock Generic S-PAHT.json" + "name": "FusRock S-PAHT", + "sub_path": "filament/FusRock/FusRock S-PAHT.json" }, { - "name": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", - "sub_path": "filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json" + "name": "FusRock S-PAHT @G3U 0.6 Nozzle", + "sub_path": "filament/FusRock/FusRock S-PAHT @G3U 0.6 Nozzle.json" }, { "name": "Generic PETG @Flashforge AD4", @@ -930,8 +930,8 @@ "sub_path": "filament/SUNLU/SUNLU PETG @FF AD5M 0.8 nozzle.json" }, { - "name": "Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json" + "name": "Generic HS PLA @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic HS PLA @FF AD5M 0.25 Nozzle.json" }, { "name": "Flashforge HIPS @FF G4", @@ -1038,36 +1038,36 @@ "sub_path": "filament/Generic PLA High Speed @Flashforge AD4.json" }, { - "name": "Flashforge Generic PLA @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic PLA @FF AD5M 0.25 Nozzle.json" + "name": "Generic PLA @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic PLA @FF AD5M 0.25 Nozzle.json" }, { - "name": "Flashforge Generic PLA @G3U", - "sub_path": "filament/Flashforge Generic PLA @G3U.json" + "name": "Generic PLA @Flashforge G3U", + "sub_path": "filament/Generic PLA @Flashforge G3U.json" }, { - "name": "Flashforge Generic PLA @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic PLA @G3U 0.6 Nozzle.json" + "name": "Generic PLA @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic PLA @Flashforge G3U 0.6 Nozzle.json" }, { - "name": "Flashforge Generic PLA @G3U 0.8 Nozzle", - "sub_path": "filament/Flashforge Generic PLA @G3U 0.8 Nozzle.json" + "name": "Generic PLA @Flashforge G3U 0.8 Nozzle", + "sub_path": "filament/Generic PLA @Flashforge G3U 0.8 Nozzle.json" }, { - "name": "Flashforge Generic PLA-CF @G3U", - "sub_path": "filament/Flashforge Generic PLA-CF @G3U.json" + "name": "Generic PLA-CF @Flashforge G3U", + "sub_path": "filament/Generic PLA-CF @Flashforge G3U.json" }, { - "name": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", - "sub_path": "filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json" + "name": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", + "sub_path": "filament/Generic PLA-CF @Flashforge G3U 0.6 Nozzle.json" }, { - "name": "Flashforge Generic PLA-CF @G3U 0.8 Nozzle", - "sub_path": "filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json" + "name": "Generic PLA-CF @Flashforge G3U 0.8 Nozzle", + "sub_path": "filament/Generic PLA-CF @Flashforge G3U 0.8 Nozzle.json" }, { - "name": "Flashforge Generic PVA", - "sub_path": "filament/Flashforge Generic PVA.json" + "name": "Generic PVA @Flashforge", + "sub_path": "filament/Generic PVA @Flashforge.json" }, { "name": "Flashforge HS PLA", @@ -1222,12 +1222,12 @@ "sub_path": "filament/Generic PLA @Flashforge AD4.json" }, { - "name": "Polymaker Generic CoPA", - "sub_path": "filament/Polymaker/Polymaker Generic CoPA.json" + "name": "Polymaker CoPA", + "sub_path": "filament/Polymaker/Polymaker CoPA.json" }, { - "name": "Polymaker Generic S1", - "sub_path": "filament/Polymaker/Polymaker Generic S1.json" + "name": "Polymaker S1", + "sub_path": "filament/Polymaker/Polymaker S1.json" }, { "name": "Flashforge PA-CF @FF G4", @@ -1290,8 +1290,8 @@ "sub_path": "filament/Generic PLA-CF10 @Flashforge AD4.json" }, { - "name": "Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "sub_path": "filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json" + "name": "Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "sub_path": "filament/Generic PLA-SILK @FF AD5M 0.25 Nozzle.json" }, { "name": "Flashforge PLA Silk", @@ -1866,8 +1866,8 @@ "sub_path": "filament/Flashforge PPS-CF.json" }, { - "name": "FusRock Generic PAHT-GF", - "sub_path": "filament/FusRock/FusRock Generic PAHT-GF.json" + "name": "FusRock PAHT-GF", + "sub_path": "filament/FusRock/FusRock PAHT-GF.json" }, { "name": "FusRock PAHT-CF @FF G4 0.6 nozzle", @@ -1894,8 +1894,8 @@ "sub_path": "filament/Flashforge PET-CF.json" }, { - "name": "FusRock Generic PET-GF", - "sub_path": "filament/FusRock/FusRock Generic PET-GF.json" + "name": "FusRock PET-GF", + "sub_path": "filament/FusRock/FusRock PET-GF.json" }, { "name": "FlashForge PPS @FF G4 0.6 HF nozzle", diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json index 76629e1a35..bd7ef806a7 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "M9HM8tihJzV4crs8", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json index e9a09ff347..1bbc7d1e11 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "08VjBSha6gjhJYgk", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json index 1572171a0b..9e7ebbdc89 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "JqgkmxnjlnQ3uw1u", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json index 5613453b3a..5e6b9ca06c 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4P 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "vvLLPvSeb5PYbT1R", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json index 13e5f089fd..74fb0b79e2 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "mPJMPfFCyfWdKzMO", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json index 35dc675173..81ee3e9c95 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PC @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HTgqTUTznOlfCRAd", "filament_id": "OFe6sfXS", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json index 2dfa04cea8..e8de847c00 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4 0.6 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "3w8fnDjkoFaJ6Nhw", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json index 2fbb2e4ceb..993a4dbf92 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "owHbDqY55rFtSegz", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json index 50e2e88ee4..ff65c08991 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4 0.8 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "eFK1zzT1JY9ZnEl9", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json index 667e3e9b01..0f6fa82220 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4P 0.6 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "E8CcstoHzax78ZJY", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json index 673304a79c..581d855fe0 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "xa22FD8bRVGsLiPJ", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json index dd2d7b107b..dee62ada5b 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "bZ9dbA8dIu9mjWyN", "filament_id": "OFUCpLaL", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json index 34d7bfb528..218d8add21 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS-CF @FF G4 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "4w0oK3F50O1DUqsu", "filament_id": "OFogbnCb", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json index 14a76bbdae..1213313096 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FlashForge PPS-CF @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "94vPnztRcpnbfAKx", "filament_id": "OFogbnCb", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json index cd32fec949..faa456baad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "filament_id": "OF5SJ3jz", "instantiation": "false", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json index dcf7ef2ea3..8ce05c7f1e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "fgEYZ1Mgyp1AvtwU", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json index c77a70a68c..b3f51e2b63 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "cIxbQMVdG5K85rJr", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json index 421b590ffd..7457627179 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF AD5X", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "9GXBeuCUrScJfmJB", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json index 9cb888633d..136856bf4a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "NttDJCrfB01uwMDl", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json index 37946c87cd..79ecbbdf9e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hJd6dG6OdEffEFC7", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json index 853695c79f..dcc92a46c8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8yFCuCnEuI3dUvQy", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json index 40d28d88ed..a824989281 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "np4fP5kghRlczOTT", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json index bfc919b8a4..050606e773 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "8o2maTFOXq0XR6Dm", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json index 108219a5e8..6055001320 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "vCsjC0UnKenzIR0O", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json index b477796207..c4295d0a31 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "xhxVdlmh5r7meoHo", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json index 85bd777649..30a2cdf399 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "6dlQN4Xhd6kGZ0Qn", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json index ae87f2228c..ea68716e21 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "r8WVFPozL8f5oLVJ", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json index 4486a2e487..95bc121e93 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic @FF G4P", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "xw0pZNmhw1K4tPQ1", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json index d14e7a563f..b4b539a756 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS Basic", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "m6QLC2UaS3fW298i", "filament_id": "OFShw1X8", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json index e5c075681b..95fab6bbc4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS-CF @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Nx3Px0Zu356IKShT", "filament_id": "OFi7Bf0F", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json index 9fd47a1c35..92ed5ff1cc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS-CF @FF G4", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "d4EGsmMeEDCOUBF2", "filament_id": "OFi7Bf0F", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json index 802dfebe5e..4e5016999f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS-CF @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9ziPFKsjESbw1pXL", "filament_id": "OFi7Bf0F", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json index 37f8d3d731..dceedb6fc5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ABS-CF @FF G4P", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "NzJJs6yrSik5xuyX", "filament_id": "OFi7Bf0F", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json index dd3efcaef3..1fe1013580 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic ASA", + "inherits": "Generic ASA @Flashforge", "from": "system", "filament_id": "OFtTYl9Q", "instantiation": "false", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json index 19b021358e..4cd916c615 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "vaOyXUcrJ97KE7ZW", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json index 1f0bc87211..c98dc7b59f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "iLWq5pJ3ox9EAM1Z", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json index 37be38511c..8b80a1d1c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF AD5X", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "i7PUPYxy0Z9weyyA", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json index 34a50c950e..012911ba4a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "w8O6oenp0NymzCqf", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json index 1abb8bb623..dc42f97981 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "thhmWRzNYLYJOeR2", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json index c75ee648aa..9cccf05b75 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "g5jiz6Q6or23BIo7", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json index fd012e0f33..2b405b1fb6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "7xmWlHHNMvXBKdYS", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json index d6f71b0a72..ae0e3d9222 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "r0B8KfZ1mNWMvGqE", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json index 82cbd340b7..01a5604125 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CBLZqLhkwf5XKO12", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json index ec26d6d236..48e7d01b94 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Df3anJxiRXLVO9hw", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json index 016a57fd14..6c8441ee9f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Nu4WvBWuEhazZfh5", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json index d24743172c..e30b784bfb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "hF0h4ye3hMDtEba1", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json index a523291c0e..ce18c5a69f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic @FF G4P", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "3isZCWr4CBjFtGDX", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json index 5fb5d976eb..613efc2502 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA Basic", - "inherits": "Flashforge Generic ASA", + "inherits": "Generic ASA @Flashforge", "from": "system", "setting_id": "SU6r879TbQMUFCij", "filament_id": "OFaBwRvT", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json index 3645546f16..fed88f120e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA-CF @FF G4", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "ap7X4nWKfFR53NT0", "filament_id": "OFq0TY7C", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json index f001e6d54c..ddd4c96ba2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA-CF @FF G4P", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "kZXg6odPm5iW79Qn", "filament_id": "OFq0TY7C", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json index af262a6497..9a37c4c7d1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge ASA-CF", - "inherits": "FusRock Generic PAHT-CF", + "inherits": "FusRock PAHT-CF", "from": "system", "setting_id": "CI5dvVrCNk2XTU82", "filament_id": "OFq0TY7C", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json index 0370e2b2ce..ae01f84a4b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "jUNUZhE0BJyB64fC", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json index 44753a6a08..6658adabab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "0qMEqo9YMDLSVafs", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json index 2a0a4d7898..4e2fd50066 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "ek749gIdUAPq6WxT", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json index 30704efe75..ed9d2cb9e4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "tEohTtyHofD6l6o3", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json index cd95f618c3..10127abb22 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "oLeLrIjFJzoZha3E", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json index a495959b82..f050371f1f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "HXGUlYY4X5IHhL3R", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json index 6e87c12697..02d5c02b8c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "g22Cv3zy3h5BhJYK", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json index 8c4e3c633a..a99c168faf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic ABS @G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "aDzBXuvN7IuSP5sa", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json index 3349b2ec63..436a4cba60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "CIj24REX7BA8zPHQ", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json index 8afa83e8f4..3b2a22ccbf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HIPS @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "yAGyGjF6uDrjfjLn", "filament_id": "OFaz8VoR", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json index 52d7d0ee40..081ede7bc4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "vOqAGzaYLz0XdRvC", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json index 84d7492956..8ea4960a88 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "KSuxZ3fpQz0khDSz", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json index fc78000e54..577b175cbe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF AD5X", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "o4B1kAToVny7jw0M", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json index 2bd44a8bb0..30ccd1a277 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "q9UbakUmZPzG3xU0", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json index 9bb1244b29..6e2c0ca19c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "IL18Lu0qHx1RVqKD", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json index a1ca0f6985..33696f6366 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "2FQib7fZjcwfCnm2", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json index f21520aa0b..2b3722dd0c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "CtwOm90WWD4S7U6j", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json index a76d35fb6d..83ebdfa2b1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "kvULpm0WhKiSPj8V", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json index 4bb3402cb1..cf4731f584 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CUU7knzm4cbe1giE", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json index a847ff25f3..78a554fec2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "gcYvL572cumWZdnl", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json index 84c3e94acc..b00acd32da 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "cx99AH0C575XxAj9", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json index 23a73b4ad5..613a806f5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "RrrKoR7MVD8IFQlq", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json index c331466dab..aa7bf4a40f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG @FF G4P", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "7VEPGuR16wNukAX2", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json index 5558ea98f9..8908833f96 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PETG", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "H9uwlPw6m6Nf7qH5", "filament_id": "OF5w29Kq", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json index dba18c4bed..d8dfd92fc6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF AD5M 0.25 nozzle", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "OmDped3weZ4uHAtY", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json index d10ef1e3e9..1f37c091d2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "oD592bif4ra0ADco", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json index f83591bf3c..a8cf1c5bdc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "ldhMY6F7v6nK8wwf", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json index 619b9e8767..ada09e1c19 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "5vzOmbjHbkJXrgYM", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json index e8200e41e2..42f009212d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hzxRPyH1fqarsMuN", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json index 0b46b5fa31..fcb55d2400 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "oJsLlIIpxwGSoJTv", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json index 5940d7d272..80c9e422d0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hJbNZ381ERkZ0KUB", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json index dddf486229..5072e86227 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "BqavrNpwhXDXcZ3r", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json index 598d3c6cab..25a9130d9d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "cgf4Qk4iHZh7zHN5", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json index 2282b67e93..a1e58886d3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "p31K69Srld6o4sQ2", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json index 137f78fcd6..7217ec8854 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "MwbYvnRIzlNmH81h", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json index 4506cf1d91..fcf7f8a8c7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "rKhHmkqXYD2xN4K9", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json index 45e42ed61c..c6d61c696b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "Dshsi3O7NvYYjXJt", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json index 1ee62a8bd4..a7fb05e8d6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "mfnL6QEevCmTmOL0", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json index 1731aafb85..117fe724a9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "AGLHrHKWye0YTtNK", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json index 986f32690e..806f9e4ed7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "px8qzmB2yFLoNl83", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json index fc20600185..fecd582701 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "mwuIEsBz5bXEV68w", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json index 17b706989a..4ae6a84762 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "TielygFT88owWg4J", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json index d4832e08ae..f391f26c3a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "It2NI6OFhNEUvulz", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json index bc73b031b3..a554fc2a59 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Qt3huWxoYpMEqEN6", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json index 5737b18c7d..f32d4697c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Y3XuavnnOMoHLGHA", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json index 5316d2b8b4..7eddf0b7b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "2HUxAWeolJIlxPs1", "filament_id": "OFmQkb3c", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json index fcba520ff6..120d8b317e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge HS PLA", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "vdaZBnDsmUC1fhDp", "filament_id": "OFnMv3W5", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json index b108289976..af9159b1b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "u7rolQaTQz9U6veH", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json index 44783f007a..14e5f098ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "qTGTwiliWj3dSo9y", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json index dba15949a2..2f7836790f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "wAkuJRTLWxGyBU0b", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json index d2d2a93575..dd3a5801f6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "dbs29hQSQl9zuWis", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json index ac63380352..dbbb88d9ee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "XGNPvS2ps7Xn2fpx", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json index e88fbf5126..6d34858446 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA @FF G4P", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "h33iEGZ7wPeBYKYQ", "filament_id": "OFgf4gZa", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json index b4a40e769a..d0589f6b1a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA-CF @FF G4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "C4DfYuQgDXIgK7mk", "filament_id": "OFuGRMNV", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json index e2ab91aa24..6225424dc7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA-CF @FF G4P", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "Yu7hL4izNsgDVqMT", "filament_id": "OFuGRMNV", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json index 8f1f04ffdc..3fe0018654 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA12-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA12-CF", - "inherits": "FusRock Generic PET-CF", + "inherits": "FusRock PET-CF", "from": "system", "setting_id": "1CevPV960sQWT3NF", "filament_id": "OFgeM7nD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json index 129ad8d648..8364fc4f3b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA6-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA6-CF", - "inherits": "FusRock Generic PET-CF", + "inherits": "FusRock PET-CF", "from": "system", "setting_id": "NGbZ8pQVTRKw28kp", "filament_id": "OFZtOQtl", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json index 6654b78212..f3c1a27c16 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA66-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PA66-CF", - "inherits": "FusRock Generic PET-CF", + "inherits": "FusRock PET-CF", "from": "system", "setting_id": "5pVoGBvbiUlrJSwR", "filament_id": "OFuV79ru", diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json index addb373157..19abc27d75 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PAHT-CF @FF G4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "ZlpBAM9uaS01sWAJ", "filament_id": "OFuFqYyG", diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json index 764d274e76..dff2e68ddd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PAHT-CF @FF G4P", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "9DaSYBA2OI7Jj5zS", "filament_id": "OFuFqYyG", diff --git a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json index f6899ad2e2..bc5485875b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PET-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PET-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PET-CF", - "inherits": "FusRock Generic PET-CF", + "inherits": "FusRock PET-CF", "from": "system", "setting_id": "vflpXTS9GwnODQDH", "filament_id": "OFrjacXf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json index 6c5928993d..978245b58c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "filament_id": "OFMpxamb", "instantiation": "false", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json index f3fed78ca0..0d325d1c1a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Basic", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "YLLJ4xZI704GReej", "filament_id": "OFEMfQsX", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json index 7009c5a076..d685b38547 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "dFZ1MmHjj1AAIaMm", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json index d092644658..1a279d0591 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ro3rt7IAJrA5aZD6", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json index 17626d81ba..4f839ae1b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF AD5X", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "cTxrnqzr2wVt4Nj7", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json index 9919a54140..5c41866971 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8x6yU2U8d5f67N73", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json index 30bbb96fab..df04115fd9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4W0nfaSSZdg2HQkh", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json index f66c490c96..00878236df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "AJcugKx4qHPJ3JAT", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json index cbebb6da3e..b73e951307 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "R0nZuLXEo5qA6Mt8", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json index 1a3ee02fed..ccb1dd2f50 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ql2BBBymzqEG7GKk", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json index 7d48ccda00..c4f944cfc2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "KU5tDHAKja1sCoHm", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json index a83ba63b92..93664c46e2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "sb6jD3UZmb0DNIsC", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json index ab7bd22340..da54d45f51 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4BB1wJLtsXus5eyY", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json index ac25f05323..b2f8087db9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "m7oJx47UMlFctMkX", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json index adc38f6d91..be118c9e69 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro @FF G4P", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "ozD2wU5UiORTtJsa", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json index 5940c47fe1..00fffab83a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Pro", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "IQfUoy7gTmVmBDL5", "filament_id": "OFPQfNAf", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json index 03bb077a25..fdc9c427d3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ht7wzk8l0b1kv5tZ", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json index d799a1dc69..bbe03ece1f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "NJFHpa5HFHIyHSWu", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json index 1a64752952..4e0de85100 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF AD5X", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "UaObrRNSTwitC6jr", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json index df04fca6df..5c9ccb693f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "K8WkJmFy2V1zhYQO", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json index 31169455a5..7676d966b1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LLK1hwKZhDU8SaGJ", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json index 776d9d1df4..63c046558f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LaUF2HJtBnpZF7Cd", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json index 1eda391a72..6adfb18f16 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "OUToXk8ddS1RPPUK", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json index df79bc8fdf..c8e5141713 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "ywff8rI39XKjcocY", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json index 6dc5df0088..4ede8cb506 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "kuCvwo6Phr6Ywhm4", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json index 2ed7597e91..74d4250de0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Z2E69w9AevYg15tl", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json index 22c2061b81..d345b35e9f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "RkQaxwTjhJK0A3zr", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json index 22b4912e99..3d6abe6ff3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "YBQTMes2S9iJjKDf", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json index 315afb5acc..bf76cf5bfa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent @FF G4P", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "lCngVWG3q0FWsnrG", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json index ac03de5fb2..450c5f33d7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG Transparent", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "3Gv6MJ3RRja5pbOM", "filament_id": "OFMyLYV8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json index 758901ff5a..d746b5348d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PETG-CF10", + "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "bcqYod61blJRzhK2", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json index 6eb1aba29f..1b5c706120 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PETG-CF10", + "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "CnFKOi7fFyS8QlKK", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json index 4143582646..0fbd657de5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF AD5X", - "inherits": "Flashforge Generic PETG-CF10", + "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "eKWJW36I5fVHwjWD", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json index 3d85ed39ac..c0145120d7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", + "inherits": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4EgMPzlVo1rTeQ1e", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json index f88e49c07a..fb095064f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF G4", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "K9ME1F4oJkPi8jRu", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json index cb8e888fb0..76d459de35 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", + "inherits": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9jCp0gTjB3Mt95Mj", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json index 3341e1dd03..14be746810 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF @FF G4P", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "d5OleuNNZBJK9vxH", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json index f8c30e4f18..c92b4aa162 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PETG-CF", - "inherits": "Flashforge Generic PETG-CF10", + "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "MpG61mwVUtJ7t602", "filament_id": "OFBK6zAi", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json index 5fe939a7b7..2db42a7b5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "instantiation": "false", "filament_vendor": [ diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json index e280847ff0..6248751055 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "gMmhMDqjmJfAYcbV", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json index a61f208b0f..d9041d25b7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "0OsrtqfIxrEJMwac", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json index 949a7ab6a0..110048dba4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "fuzWVrfZqekMETLK", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json index f7b96331ac..d0b03d8959 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "R54l7TcwsjdPHvNB", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json index b748b785aa..a898615cfc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "MELEwYupDkT2DPxL", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json index 0e01a20dcf..8a98aa4445 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "uGLvOoPAfksLO43M", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json index 58b72386e8..c9cb6c8711 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "gGpKvk3rnLuTjOwo", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json index f4c16daaf0..94fee218f2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Yopqnj4b5ZVwigGx", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json index 1af3c298cf..0714764c1c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "QEfQrqMwApuSMqih", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json index c42a17fc29..afa79d4382 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "BAPIn3eJAPGpscRJ", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json index 7a7344c225..1b7bd7a1dc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "44BmRNRb6vlPq8qe", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json index 36a89b5dba..8f77560323 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "ltJbhoAeAec9gxrS", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json index 3d13adcc0c..6cf9a832ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "GxdZiXdqns72ibQl", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json index 7640ec0834..8582b545c9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Basic", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "5XKGaHUjxHECbnHO", "filament_id": "OFIxitiU", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json index b58b98fdd8..2728623e2e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Buint Ti @FF G4 0.8 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "H8IStdO8zEfSLYVE", "filament_id": "OFQZeyZv", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json index 29dedf8f7a..538d1415f1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4wlkoKnU2bA7xhYO", "filament_id": "OFQZeyZv", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json index d0df8cd605..45e7ed6a32 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "TF6BeOl0patjpPaa", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json index 105291c048..ed65db080c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "nkYeEBo8NdkJulAP", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json index c8650a1a1c..70991dff2d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "yEDfsOsogfZbNBVX", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json index 99a720a226..9c64cff73b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "G2Et7kPHptMESzQ0", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json index 0fb2690255..f57fbdc47d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "zsOdmFGBSF9UySMN", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json index bceeaba05a..963bd8152d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "oxRMuvBMu9qdQWUQ", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json index 3887ded589..608ef77d24 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "5hwNJvvLtb75XBBg", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json index d0fba1bec2..78d56a62a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "mGj8VEyOnnogpkmF", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json index 29ada76335..9070fa4762 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "JDcRA6apekWLXPvH", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json index dc01f07d81..01b3800053 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "b5GJpvKYktP4vZpj", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json index 6dbe02b473..78aa762193 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "RjUpQV6iQxTircwj", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json index 0e2690d93c..0241ed5dba 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "9DEZ6SmFdgfluhsR", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json index a3696383cf..7d3aa644c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "girTMkusNTfY04rz", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json index 030d4d1ff4..75e3bc1a3f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Color Change", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "pCQ2qmeXUyJzP7kS", "filament_id": "OFkwIWwc", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json index 4928bc3891..d48f2944b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "y8TNaRebTrmFem10", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json index 2a7e7616ba..17a2bd1120 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "qju0AMvvq0B5Glny", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json index 97cd5bb9be..06e76b0a60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "o8gGBOEcNvlbZxGW", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json index d3cc825ed6..aa3a164d86 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "koEC7DteUoXHUd2z", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json index f684c8b47b..0517355c72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "D69fWcXioFcpoUjC", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json index 5cb479f1a4..2982fcfe42 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "rfiQUncdSExEaK0U", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json index 6018aad13d..ef995df080 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "WX8lK8efXIVcpjFf", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json index 8588d194f0..a301208f82 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Tzvo3oILQJc4SQko", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json index c4785481f0..9b00f47fc6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Y5gm20O4yCCDIoC0", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json index b2a142d9bd..c92d0c95c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "80vSQxnHfd5ZUy5h", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json index 0137ac7348..fc02069f65 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "UZi7T5VoasmXWyH5", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json index 96aa6babdf..c86fa47d2f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "6UlSb4fqHIMdMxkO", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json index bb1e1d9513..22b40f77bb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "H2Cr4B5VUaxyYsN0", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json index 99727f9217..ffff2b3523 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Galaxy", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "NJrc0UZ54Fq8MaqF", "filament_id": "OF5NQFKI", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json index 58ef1320d5..5898b4c1c2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "GdvXL8SrKrYHxSgZ", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json index a58b30c6fe..227d392df3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "SLYD2YcQTQgbSjIF", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json index 9f8bbf2127..0b7704be7b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "kOobFSlqEG9Qe0d1", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json index 6be800cba6..1dd346734f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "xPPSRmadqfqCtRF2", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json index 7b49141fd8..19db33c12b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "aWVXIk1xVa9URR1D", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json index 1063943964..85732db257 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "KhBF7hHHVPzqiAca", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json index 34929db7ab..4a47c2e41d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "sTplnj3gMAzwtLWE", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json index 2944c6ba8e..aab7e584c9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "vXPXOKD8vNJlujM1", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json index 883241624e..01c99d30bd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "purqxjmWiflDrnik", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json index 1daf6897b9..e11842c15a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "qraQ97uusigB63hv", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json index d8735d275c..049325af4d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Z1NCX8XMyIVlOlWn", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json index f1ab00b390..e8f02f10a0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Luminous", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "s620OFLTgFT4Ds2A", "filament_id": "OFMIma8C", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json index 1f7bd2b1da..9788577dc8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "BVmVfNCuy8HDhcEI", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json index 8b85ad1f7e..b044ecd47f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "WRMePGzDGdEGiqNv", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json index 4f7b782d7f..1cdea005e4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "thnbuaLDDlGrkrdY", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json index 0a5772910a..28809dc1c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8b9q1FfVljPmKoEt", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json index 7ac6952363..2a2ac35fa8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "o9dOrLgL6efF19O1", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json index 3154dfabc1..d3d9ac763a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "QoRmDvhoeGi6Z2xv", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json index ec55501821..2cc4d75091 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "dHyuoORAUGLtlGkJ", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json index 892a8d513c..bc2daed905 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "OgqVyIHfy3U8Dc6d", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json index c5338f91fa..fa2c6322ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "feXpVbDM5ON5mwg0", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json index 589fc96f12..8ae39f5623 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "XMnZQ1AxXPJqpqRX", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json index 8a2cc0815b..e8a01ae3e0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Ke0bRKPNKSsVMO1Y", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json index 14ee3d9ad6..55571d70e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "IRC2n4GaofxvvyTt", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json index c19e58a5df..75b6007012 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "RN4wdTL0qccM4huZ", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json index 989bed63b3..60488f6338 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Matte", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "ipMevDMORKqZYdvD", "filament_id": "OF1bQyX2", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json index 45b9d0d7d4..231e4cf895 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "uusF7Vz94HOwoQF0", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json index 3f595ba93f..92a867b768 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "sHZWzrZO8PP0QYZR", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json index 4dc8a9d226..22abaf206a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "bxwjEFI8HmNY8JI6", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json index 1c40ec5691..682889ba46 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "5xqdqoj2l50FegPF", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json index 035d431419..da2e664b20 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "R79SbWA9i2OAu2ee", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json index df92bc3004..56b51fbb39 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "zjIN4KzIOwI1VwOc", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json index 7828b38822..aa615d6c52 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "UxMNNil2KnWvAJ4q", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json index d9e6e0ec27..18240ff4ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "57i6iKrVYUS5UiBT", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json index 6b8014dff1..a8eea524f7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "IYPw8a9tkpuf95uH", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json index 84429816a4..eebeaeb9d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "I0bULoVAbtVfQoCy", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json index 057c05a51f..48206bc4e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "DbPo3ay2e4a002AB", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json index d9f64c3634..8d50a6ad0a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "uztv4hhm2O3T93zZ", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json index 9323d094ef..cd239560be 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "UFWWrhfgS7N36Y8W", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json index 3a28540dbf..368782f0fd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Metal", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "UD5i0ijsirfieUvb", "filament_id": "OFvVxvzZ", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json index 6a24a22501..b25c6b56ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "t9lPSFnwLDk0ARIp", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json index 14fcccf62b..d0a7d88e4f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "SBSlOEwZSvZHeX4r", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json index d26813d36c..f276a6e671 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "DbWTm2H71izMWmpx", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json index c7913ee0a9..e7b16bb162 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YcXuvz3qYHtVoWxv", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json index 8747bf9e8f..400fb84d2e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "prItyXNphhuPCAce", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json index 63b0c9a162..f044a481b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "83zDmjaAgxxIt7KU", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json index 1b1a3c059c..c40c210005 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "px3O28Olb9LExqfT", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json index 2d5f18b2c4..71ad06d85a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "QYgsCCHP3Khqrzh3", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json index 730a9ee7d9..aaab161802 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "1ro9wHPYhuMHNiYe", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json index 24afad6fd5..20ee4d7163 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4W4a7c9ugUVwvvmn", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json index c8dc7de4cb..804c28cfe1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CloRo3qxvzxHZuIP", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json index e677dfe51b..b0f9655605 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "QgUbP07tIXmFysEb", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json index 3edd253b70..50db881fc0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "6mvGOtkPZT6ROboo", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json index 880e0e1ff1..2924f05d13 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Pro", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "vI875WYbMyQeMwlh", "filament_id": "OFK74HJD", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json index a5bdb3ae12..c39e501f5c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "YH9IHXOFMKwcTLyA", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json index 6541cbefb5..58d57b30c2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "IfAieG0OAG807xlu", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json index a98c508f95..dc7fb68745 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF AD5X", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "N6J7QqQ7TIgM3MyW", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json index 4e99c711c1..0f6d8e0bbe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "2GZp8yjrY1OioFDi", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json index 1e92e0d029..284128710c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "U0XtCVUhIMnidhbR", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json index cb7dc03904..72d48ebb9b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8j9kaYy3ghkF81Cu", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json index 6eff5673c5..00ddedabc1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "E0LeJwSxaniDkB0b", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json index 3f6a7428ea..536a4ac8ac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "8rggqgJ9kg9yLE28", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json index 2cc8db6387..96cc519bb4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "uY4OWhIytHMz4rWq", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json index d77fc03f37..de21757695 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YSkkXd9EhhEHvGpf", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json index 9f890d3ae4..7a3f814c62 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "XlxXZj9Wi1D6IwCE", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json index 030ea7370f..2723288b7d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "IPyXBSnMCAikjI9V", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json index 16f980a35a..7837f5d704 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "f3gJsovSmDKoA7BP", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json index 7be8b80605..16a44d9bf2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Silk", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "vZb7BvbyVWkZv3rR", "filament_id": "OFLYDIb8", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json index 4c0cf846e9..96d39efa5d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "o8lsEnMIiHHorJhb", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json index 173557e7cd..ee4824a8dd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "oXlxQJY0K6Dnri7e", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json index 0bed0a94ad..06c4d3fb57 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF AD5X", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "XKpFulrvvrfE56va", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json index 94ef846a7e..296b827e39 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "yeh5cd0tAHtHzdoQ", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json index 1ce68966df..9dbe7d7af0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "q2Zi0YluaYpG3Ktf", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json index 6d95754110..1eafaf0b40 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4 HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "1qXV6AJqPpAwX1YK", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json index 70c9c99c7a..1d93c10b5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "YsyGGOGqUVkEqkIr", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json index 685625a28b..6459a6f8a8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "UVvd018dTbygqTgy", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json index e9714994cc..410394cbce 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "F0k8kkgWM5FkLAzo", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json index 964a187d38..7ecddf5859 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4P HF", - "inherits": "Flashforge Generic ABS @G3U", + "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "Oapl8InwbkwNSIDl", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json index 34a5114484..0554f047e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "NiB6Yb4b0auyn9KQ", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json index 659909085f..ca024d690b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA Sparkle", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "LYtdPgec1hBLhoQA", "filament_id": "OFec7Qiw", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json index 8367f7e01b..8bb0d6980f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "QRyISvTy06kCwxKo", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json index 60f17b2196..f63829709e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "rmnF24E3SuwzRscH", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json index f719c895cd..2939f9ee4e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF AD5X", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "BXPI5Pkp7a6pLrCh", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json index 3d493c1bf7..e441facb7d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", + "inherits": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9PgjgxU7pLl2Dfpe", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json index 011065f34f..f2b5662c13 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF G4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "RuNKzuIsw7F1ogmG", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json index ee56dde5d4..62dd7a9ee9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", + "inherits": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YPuMCHNGDWh0FpIB", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json index 3baeeccc60..7958393b2b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF @FF G4P", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "3uC056Y171ZjnQE6", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json index 85527a625a..5466774689 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-CF", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "JxNlb64lTODaaQhU", "filament_id": "OF2bZtyg", diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json index 67c45b439d..07744f726a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "filament_id": "OFGc282l", "instantiation": "false", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json index f05cbff817..51578f824a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPA-CF", - "inherits": "FusRock Generic PAHT-CF", + "inherits": "FusRock PAHT-CF", "from": "system", "setting_id": "MFItX51zZO0KYjdk", "filament_id": "OFLC1oRH", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json index 140f6c5dea..e6f3519e1e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPA-GF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPA-GF", - "inherits": "FusRock Generic PAHT-CF", + "inherits": "FusRock PAHT-CF", "from": "system", "setting_id": "KITjZXcyM4N8cVyu", "filament_id": "OF5BN24W", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json index b543ea7215..c8a1c2d800 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPS @FF G4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "6NjEQ6RJKUAOrSLw", "filament_id": "OFxMGIPt", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json index 10ebf9f302..76257267fe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPS @FF G4P", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "vFMKqNjQjlNxwvDI", "filament_id": "OFxMGIPt", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json index 0b1139bf47..e4ee9e483e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPS-CF @FF G4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "oSGlx5mtGh07BnOz", "filament_id": "OFTSXxzE", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json index e7fac74763..dce01c64a7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPS-CF @FF G4P", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "i5DllSvYjVPO04Su", "filament_id": "OFTSXxzE", diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json index 19630dac6a..ba10c3fadc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge PPS-CF", - "inherits": "FusRock Generic PAHT-CF", + "inherits": "FusRock PAHT-CF", "from": "system", "setting_id": "l3dYtVM52X0UMRix", "filament_id": "OFTSXxzE", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json index 4e2a345147..f3625e4bea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "f75oElm4zB0hukIj", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json index a90c599c43..c08ad7948b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "o4KYTpJF6KksX2mg", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json index 8c9d19de43..e0d6448c72 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "HUSkDZL6rCpz0lRk", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json index 43d235a9ba..a37ab23204 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8xgu0AnMuKbPWyVd", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json index 23e2cd0e23..a9ceca338a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Rgqt3MjxOye5EaFt", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json index 6d8d7ce10d..df74375b18 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 65D @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "PBFsW5qhVbQteYh5", "filament_id": "OFKpQTJI", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json index 952b10fa12..6eca69f2b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "TPbHmcFyPyjvoERv", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json index 626c5891bc..c0e5b624e4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "zLMgsyDmdoXHhqFv", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json index d084aa4b46..06a632a6c5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF AD5X", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "ThakVhjfpgnAlEVH", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json index 262c9c9e47..676484711e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "M0ozqaD3jSKoD6fm", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json index 649ef446ef..01fd9f2752 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "ob8IkvzNt9CWCzbk", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json index 8eb722c51f..9f72e9eaca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "NzxX1lyRJ7wLUihV", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json index 08a4033ee3..ecd3bbb764 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "4FIGiheSGvSJPw3s", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json index 9dc4916ba9..bcfe2516a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4P 0.6 HF nozzle", - "inherits": "Flashforge Generic PETG @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "1GNqSBaQitzhYSx7", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json index 8a0c8edacd..22373250ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4P 0.6 nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "eOhMygyxaccdov7o", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json index 1e35a008af..7d393a9b9d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4P 0.8 HF nozzle", - "inherits": "Flashforge Generic PLA @G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LxooKiOkRncktNLf", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json index bca2a33ba0..cdcee7c997 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A @FF G4P", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "HdoJfbQr0uwQ6Vwb", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json index 6352a73829..c3042b14b1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Flashforge TPU 95A", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "J4EaFhnpkLDcl5wH", "filament_id": "OFAf9pJF", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json index a9a3418254..8aadbbd478 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 HF nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "2JQjReK012FHpHIt", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json index 18df8ac124..08fd04115d 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "3SCkpXXK8VcQBMQn", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json index 0f1754ae6c..093175981e 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4 0.8 HF nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "dgpcOrf7282LTh1d", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json index d6a0d3bd5d..0fd54aa769 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 HF nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4P 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "e85SCr6SV9kQD2hm", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json index c6970afe6a..b3f46d40f3 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "eGXsHN5B9BZViVNe", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json index 70d29c3c5d..1b4848c0d8 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT @FF G4P 0.8 HF nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "8JSb4JqZ7zLi8uPI", - "filament_id": "OF42ZDpN", + "filament_id": "OF7pjCsO", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json index e7647aff3f..4b212a6283 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json @@ -4,8 +4,11 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "gZqAGVOlWR79n7hN", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json index a8dc9a771b..a9e1bce236 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json @@ -4,8 +4,11 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "nJF1lCOavNNh4yHs", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "activate_chamber_temp_control": [ "1" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json index 4bb5bfff69..5e18b7b64c 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT-CF @FF G4 0.6 nozzle", - "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "TZ0nKqxoIYk2mPh8", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index 4ae7d696a8..f8595f254b 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FusRock PAHT-CF @FF G4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "nH6pwFYsPyBzL1EB", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json index d359420582..adc2063edd 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PAHT-CF @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PAHT-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "yok12IOGZzGot5Ll", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 8ef405d524..8634877859 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FusRock PAHT-CF @FF G4P", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "wmWMf3MfmbfZx2o8", - "filament_id": "OFYtS9zg", + "filament_id": "OFKW5hEW", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json index 4befc54c32..c1d48bf1ff 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET @FF G4P 0.8 HF nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PET @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Xqb0GQluin2jUQyL", - "filament_id": "OFBC32Wb", + "filament_id": "OFKTGKJU", "instantiation": "true", "close_fan_the_first_x_layers": [ "3" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json index 0d57937da9..97aaccc69f 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PET-CF @FF G4 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "A8PDgw1jZE2m3bem", - "filament_id": "OFB8wSps", + "filament_id": "OFDu1qE7", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json index c9eb3cafd7..3e7c8023ad 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FusRock PET-CF @FF G4", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "Iy5lHY4ihEKPgJ5x", - "filament_id": "OFB8wSps", + "filament_id": "OFDu1qE7", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json index 7f07f612f6..c88a329872 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P 0.6 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", "name": "FusRock PET-CF @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Kdeg55RzLMYhqYMC", - "filament_id": "OFB8wSps", + "filament_id": "OFDu1qE7", "instantiation": "true", "complete_print_exhaust_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json index a3c7a4372e..d2e10d6c41 100644 --- a/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PET-CF @FF G4P.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "FusRock PET-CF @FF G4P", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "JXf7KCy4KY65xuzO", - "filament_id": "OFB8wSps", + "filament_id": "OFDu1qE7", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "additional_cooling_fan_speed": [ "0" ], diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json index dfdd46fb57..c5d429456d 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5.json @@ -4,8 +4,11 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "O3tz36NNMoagELL0", - "filament_id": "OFUScM0D", + "filament_id": "OF0AquDh", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -57,7 +60,7 @@ "; filament start gcode" ], "filament_type": [ - "S-Multi" + "PA" ], "nozzle_temperature": [ "280" diff --git a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json index d84fd5aeb0..bb1ccc7292 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-Multi @FF C5P.json @@ -4,8 +4,11 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "Gg9H6I32fOqoLSqE", - "filament_id": "OFUScM0D", + "filament_id": "OF0AquDh", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "activate_chamber_temp_control": [ "1" ], @@ -63,7 +66,7 @@ "; filament start gcode" ], "filament_type": [ - "S-Multi" + "PA" ], "nozzle_temperature": [ "280" diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json index 248fbb5ce1..b895fd4370 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5.json @@ -4,8 +4,11 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "pV5QERvRuROIZTOa", - "filament_id": "OF6WddJ1", + "filament_id": "OFCn83wF", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", "Flashforge Creator 5 0.6 nozzle", @@ -51,7 +54,7 @@ "; filament start gcode" ], "filament_type": [ - "S-PAHT" + "PAHT" ], "hot_plate_temp": [ "80" diff --git a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json index 538d1e5c0f..6845961090 100644 --- a/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock S-PAHT @FF C5P.json @@ -4,8 +4,11 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "0i7VkquM4n0uFaXH", - "filament_id": "OF6WddJ1", + "filament_id": "OFCn83wF", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "activate_chamber_temp_control": [ "1" ], @@ -57,7 +60,7 @@ "; filament start gcode" ], "filament_type": [ - "S-PAHT" + "PAHT" ], "hot_plate_temp": [ "80" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json b/resources/profiles/Flashforge/filament/FusRock/FusRock NexPA-CF25.json similarity index 94% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock NexPA-CF25.json index 088e4ac1b7..249060ab5c 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic NexPA-CF25.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock NexPA-CF25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FusRock Generic NexPA-CF25", - "inherits": "Flashforge Generic PETG", + "name": "FusRock NexPA-CF25", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic NexPA-CF25", "from": "system", - "setting_id": "TZDKsooodaGVkM4m", - "filament_id": "OFZ1hANN", + "setting_id": "sVoga8454H2oKuKI", + "filament_id": "OFjt8dDO", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "FusRock Generic NexPA-CF25" + "FusRock NexPA-CF25" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF @G3U 0.6 Nozzle.json similarity index 78% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF @G3U 0.6 Nozzle.json index ebd0a01ed4..b1112d508d 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF @G3U 0.6 Nozzle.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "FusRock PAHT-CF @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic PAHT-CF @G3U 0.6 Nozzle;FusRock Generic PAHT-CF G3U 0.6 Nozzle", "from": "system", - "setting_id": "NdNRNhmsHgHRnz1Z", - "filament_id": "OFPjOUtz", + "setting_id": "axB3SEA3AC7rmxiZ", + "filament_id": "OFKW5hEW", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" ], @@ -37,7 +41,7 @@ "5" ], "filament_settings_id": [ - "FusRock Generic PAHT-CF @G3U 0.6 Nozzle" + "FusRock PAHT-CF @G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF.json similarity index 94% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF.json index 5b959efeae..d47b7f865c 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-CF.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FusRock Generic PAHT-CF", - "inherits": "Flashforge Generic PETG", + "name": "FusRock PAHT-CF", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic PAHT-CF", "from": "system", - "setting_id": "fR7maJwWmteJ7bWY", - "filament_id": "OFPjOUtz", + "setting_id": "OGhhxVvR4O4VYuCK", + "filament_id": "OFKW5hEW", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "FusRock Generic PAHT-CF" + "FusRock PAHT-CF" ], "filament_shrink": [ "100%" @@ -180,7 +181,7 @@ "40" ], "filament_vendor": [ - "Generic" + "FusRock" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-GF.json similarity index 72% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-GF.json index c35726f024..0e29324831 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PAHT-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PAHT-GF.json @@ -1,16 +1,17 @@ { "type": "filament", - "name": "FusRock Generic PAHT-GF", - "inherits": "FusRock Generic PAHT-CF", + "name": "FusRock PAHT-GF", + "inherits": "FusRock PAHT-CF", + "renamed_from": "FusRock Generic PAHT-GF", "from": "system", - "setting_id": "gLG1R5gtdliSlnZJ", - "filament_id": "OF2RjrWH", + "setting_id": "yJJEULB0ra4GAS8Q", + "filament_id": "OFcVLpNA", "instantiation": "true", "filament_max_volumetric_speed": [ "15" ], "filament_settings_id": [ - "FusRock Generic PAHT-GF" + "FusRock PAHT-GF" ], "filament_type": [ "PAHT-GF" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF @G3U 0.6 Nozzle.json similarity index 78% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF @G3U 0.6 Nozzle.json index acb65a33dc..b82f7ef4a9 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF @G3U 0.6 Nozzle.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FusRock Generic PET-CF @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "FusRock PET-CF @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic PET-CF @G3U 0.6 Nozzle;FusRock Generic PET-CF G3U 0.6 Nozzle", "from": "system", - "setting_id": "AaGdNgYaIIZyZBiW", - "filament_id": "OFRujL0v", + "setting_id": "Gyw0XH6UtYQqtgx9", + "filament_id": "OFDu1qE7", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" ], @@ -37,7 +41,7 @@ "5" ], "filament_settings_id": [ - "FusRock Generic PET-CF @G3U 0.6 Nozzle" + "FusRock PET-CF @G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF.json similarity index 94% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF.json index a526ad1e0c..4dee20a476 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-CF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-CF.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FusRock Generic PET-CF", - "inherits": "Flashforge Generic PETG", + "name": "FusRock PET-CF", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic PET-CF", "from": "system", - "setting_id": "jJVDAlGTt1QJlbn8", - "filament_id": "OFRujL0v", + "setting_id": "nGtsrswmS2Fj4Uev", + "filament_id": "OFDu1qE7", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "FusRock Generic PET-CF" + "FusRock PET-CF" ], "filament_shrink": [ "100%" @@ -180,7 +181,7 @@ "40" ], "filament_vendor": [ - "Generic" + "FusRock" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-GF.json similarity index 69% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock PET-GF.json index e80c963649..6a224aded2 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic PET-GF.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock PET-GF.json @@ -1,16 +1,17 @@ { "type": "filament", - "name": "FusRock Generic PET-GF", - "inherits": "FusRock Generic PET-CF", + "name": "FusRock PET-GF", + "inherits": "FusRock PET-CF", + "renamed_from": "FusRock Generic PET-GF", "from": "system", - "setting_id": "IEpmsltdjoCu2txJ", - "filament_id": "OF4zzGwp", + "setting_id": "ZFIkUVZOklX8jUrT", + "filament_id": "OFzwA5Z9", "instantiation": "true", "filament_max_volumetric_speed": [ "15" ], "filament_settings_id": [ - "FusRock Generic PET-GF" + "FusRock PET-GF" ], "filament_type": [ "PET-GF" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi @G3U 0.6 Nozzle.json similarity index 77% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi @G3U 0.6 Nozzle.json index 963d3ab54d..80f5577529 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi @G3U 0.6 Nozzle.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FusRock Generic S-Multi @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "FusRock S-Multi @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic S-Multi @G3U 0.6 Nozzle;FusRock Generic S-Multi G3U 0.6 Nozzle", "from": "system", - "setting_id": "foH2sa61cDy12TzH", - "filament_id": "OF6rMr3U", + "setting_id": "HvimUHzfNcDRrUBq", + "filament_id": "OF0AquDh", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" ], @@ -31,7 +35,7 @@ "5" ], "filament_settings_id": [ - "FusRock Generic S-Multi @G3U 0.6 Nozzle" + "FusRock S-Multi @G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json b/resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi.json similarity index 94% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi.json index 9ebf2fcdad..895d10aa12 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-Multi.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock S-Multi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FusRock Generic S-Multi", - "inherits": "Flashforge Generic PETG", + "name": "FusRock S-Multi", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic S-Multi", "from": "system", - "setting_id": "gQLoSJ7xGEdOd8kr", - "filament_id": "OF6rMr3U", + "setting_id": "zAqGdmTsz4Z0qbaa", + "filament_id": "OF0AquDh", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "FusRock Generic S-Multi" + "FusRock S-Multi" ], "filament_shrink": [ "100%" @@ -179,7 +180,7 @@ "40" ], "filament_vendor": [ - "Generic" + "FusRock" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT @G3U 0.6 Nozzle.json similarity index 77% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT @G3U 0.6 Nozzle.json index b3b537bfb3..858da9c1bb 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT @G3U 0.6 Nozzle.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "FusRock S-PAHT @G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic S-PAHT @G3U 0.6 Nozzle;FusRock Generic S-PAHT G3U 0.6 Nozzle", "from": "system", - "setting_id": "6Z5vce5YKlCGox8v", - "filament_id": "OFCaJHAA", + "setting_id": "JUiz70mbp7RRSPia", + "filament_id": "OFCn83wF", "instantiation": "true", + "filament_vendor": [ + "FusRock" + ], "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" ], @@ -31,7 +35,7 @@ "5" ], "filament_settings_id": [ - "FusRock Generic S-PAHT @G3U 0.6 Nozzle" + "FusRock S-PAHT @G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json b/resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT.json similarity index 94% rename from resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json rename to resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT.json index 66c208d2d3..792b12c949 100644 --- a/resources/profiles/Flashforge/filament/FusRock/FusRock Generic S-PAHT.json +++ b/resources/profiles/Flashforge/filament/FusRock/FusRock S-PAHT.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "FusRock Generic S-PAHT", - "inherits": "Flashforge Generic PETG", + "name": "FusRock S-PAHT", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "FusRock Generic S-PAHT", "from": "system", - "setting_id": "kMYDFSwivzTjFo2L", - "filament_id": "OFCaJHAA", + "setting_id": "mBQzgKKsV8Qo3gAr", + "filament_id": "OFCn83wF", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "FusRock Generic S-PAHT" + "FusRock S-PAHT" ], "filament_shrink": [ "100%" @@ -179,7 +180,7 @@ "40" ], "filament_vendor": [ - "Generic" + "FusRock" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic ABS @FF AD5M 0.25 Nozzle.json similarity index 60% rename from resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic ABS @FF AD5M 0.25 Nozzle.json index b290e46444..cae13c67c1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @FF AD5M 0.25 Nozzle.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ABS @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge ABS @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic ABS", + "name": "Generic ABS @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge ABS @FF AD5M 0.25 Nozzle;Flashforge Generic ABS @FF AD5M 0.25 Nozzle", + "inherits": "Generic ABS @Flashforge", "from": "system", - "setting_id": "NWEY6ZxkUS8jqNU2", - "filament_id": "OFLDSqqi", + "setting_id": "1ourI1GmgyKWFsnl", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", @@ -13,7 +13,7 @@ "Flashforge AD5X 0.25 nozzle" ], "filament_settings_id": [ - "Flashforge Generic ABS @FF AD5M 0.25 Nozzle" + "Generic ABS @FF AD5M 0.25 Nozzle" ], "fan_max_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json index d4947b14fb..3af6c25d2b 100644 --- a/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic ABS @Flashforge AD4", - "inherits": "Flashforge Generic ABS", + "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "lS237JRDRMQgJFzd", "filament_id": "OFY9muEs", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U 0.6 Nozzle.json similarity index 73% rename from resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U 0.6 Nozzle.json index c49638eda5..0176ef471f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ABS @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic ABS", + "name": "Generic ABS @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge", + "renamed_from": "Flashforge Generic ABS @G3U 0.6 Nozzle;Flashforge Generic ABS G3U 0.6 Nozzle", "from": "system", - "setting_id": "OaXiy7DI5bOAiaYb", - "filament_id": "OFLDSqqi", + "setting_id": "tzuKCtXYbGw6WB2c", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -25,7 +26,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic ABS @G3U 0.6 Nozzle" + "Generic ABS @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json rename to resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U.json index 7e53c24675..8422875984 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ABS @G3U", - "inherits": "Flashforge Generic ABS", + "name": "Generic ABS @Flashforge G3U", + "inherits": "Generic ABS @Flashforge", + "renamed_from": "Flashforge Generic ABS @G3U;Flashforge Generic ABS G3U", "from": "system", - "setting_id": "Cfd7Q1nGwqxI5Ngh", - "filament_id": "OFLDSqqi", + "setting_id": "dxCNYDhcaJqAfDpR", + "filament_id": "OFY9muEs", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic ABS @G3U" + "Generic ABS @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge.json similarity index 88% rename from resources/profiles/Flashforge/filament/Flashforge Generic ABS.json rename to resources/profiles/Flashforge/filament/Generic ABS @Flashforge.json index e93a8a294d..a7cfc16967 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ABS.json +++ b/resources/profiles/Flashforge/filament/Generic ABS @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ABS", + "name": "Generic ABS @Flashforge", "inherits": "fdm_filament_abs", + "renamed_from": "Flashforge Generic ABS", "from": "system", - "setting_id": "uygAzLWRQiCIJ8jh", - "filament_id": "OFLDSqqi", + "setting_id": "CJXM3PoVEjf4kYnz", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic ASA @FF AD5M 0.25 Nozzle.json similarity index 64% rename from resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic ASA @FF AD5M 0.25 Nozzle.json index a661419618..863936bc35 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @FF AD5M 0.25 Nozzle.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ASA @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge ASA @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic ASA", + "name": "Generic ASA @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge ASA @FF AD5M 0.25 Nozzle;Flashforge Generic ASA @FF AD5M 0.25 Nozzle", + "inherits": "Generic ASA @Flashforge", "from": "system", - "setting_id": "spSRbidSN2yeZLhD", - "filament_id": "OFRPEs5o", + "setting_id": "aVpIQgRllsYZKRg0", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", @@ -13,7 +13,7 @@ "Flashforge AD5X 0.25 nozzle" ], "filament_settings_id": [ - "Flashforge Generic ASA @FF AD5M 0.25 Nozzle" + "Generic ASA @FF AD5M 0.25 Nozzle" ], "fan_max_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json index f823512bcf..42f9b00a60 100644 --- a/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge AD4.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Generic ASA @Flashforge AD4", "renamed_from": "Generic ASA @AD4", - "inherits": "Flashforge Generic ASA", + "inherits": "Generic ASA @Flashforge", "from": "system", "setting_id": "tq7YmJohYaNiPplE", "filament_id": "OFLPAxz3", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U 0.6 Nozzle.json similarity index 76% rename from resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U 0.6 Nozzle.json index dab6446048..3ecb1b1c67 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ASA @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic ASA", + "name": "Generic ASA @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic ASA @Flashforge", + "renamed_from": "Flashforge Generic ASA @G3U 0.6 Nozzle;Flashforge Generic ASA G3U 0.6 Nozzle", "from": "system", - "setting_id": "gVLGkoCoyrWL4DQr", - "filament_id": "OFRPEs5o", + "setting_id": "9wfcw1ifKVGOXx5G", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -31,7 +32,7 @@ "10" ], "filament_settings_id": [ - "Flashforge Generic ASA @G3U 0.6 Nozzle" + "Generic ASA @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json rename to resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U.json index e1f8b58fcf..20a3e61da2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ASA @G3U", - "inherits": "Flashforge Generic ABS", + "name": "Generic ASA @Flashforge G3U", + "inherits": "Generic ABS @Flashforge", + "renamed_from": "Flashforge Generic ASA @G3U;Flashforge Generic ASA G3U", "from": "system", - "setting_id": "c6IMgUyqOeS2HFWw", - "filament_id": "OFRPEs5o", + "setting_id": "N1vm5hhMHdSNvUwk", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic ASA @G3U" + "Generic ASA @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge.json similarity index 95% rename from resources/profiles/Flashforge/filament/Flashforge Generic ASA.json rename to resources/profiles/Flashforge/filament/Generic ASA @Flashforge.json index 0466c5af9a..b80ad322c3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic ASA.json +++ b/resources/profiles/Flashforge/filament/Generic ASA @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic ASA", + "name": "Generic ASA @Flashforge", "inherits": "fdm_filament_asa", + "renamed_from": "Flashforge Generic ASA", "from": "system", - "setting_id": "jMCunppmYOH5QIra", - "filament_id": "OFRPEs5o", + "setting_id": "tzs0HcyEZow99A2J", + "filament_id": "OFLPAxz3", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic HIPS @Flashforge G3U 0.6 Nozzle.json similarity index 75% rename from resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic HIPS @Flashforge G3U 0.6 Nozzle.json index c5097dca7c..84c43def44 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic HIPS @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic HIPS @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic ABS", + "name": "Generic HIPS @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic ABS @Flashforge", + "renamed_from": "Flashforge Generic HIPS @G3U 0.6 Nozzle;Flashforge Generic HIPS G3U 0.6 Nozzle", "from": "system", - "setting_id": "b3CFhGGnZLzpyAWa", - "filament_id": "OFYl0c8v", + "setting_id": "wsAmSziSQ4UEHucg", + "filament_id": "OFsFon5l", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -31,7 +32,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic HIPS @G3U 0.6 Nozzle" + "Generic HIPS @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json b/resources/profiles/Flashforge/filament/Generic HIPS @Flashforge.json similarity index 94% rename from resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json rename to resources/profiles/Flashforge/filament/Generic HIPS @Flashforge.json index 31dbe0e60f..3012161923 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HIPS.json +++ b/resources/profiles/Flashforge/filament/Generic HIPS @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic HIPS", - "inherits": "Flashforge Generic ABS", + "name": "Generic HIPS @Flashforge", + "inherits": "Generic ABS @Flashforge", + "renamed_from": "Flashforge Generic HIPS", "from": "system", - "setting_id": "n68nw5tzKZ0rq43O", - "filament_id": "OFYl0c8v", + "setting_id": "zMQa7Squ3p3jKYwB", + "filament_id": "OFsFon5l", "instantiation": "true", "activate_air_filtration": [ "0" @@ -153,7 +154,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic HIPS" + "Generic HIPS @Flashforge" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic HS PLA @FF AD5M 0.25 Nozzle.json similarity index 71% rename from resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic HS PLA @FF AD5M 0.25 Nozzle.json index 4b4a6224bd..558a420640 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic HS PLA @FF AD5M 0.25 Nozzle.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge HS PLA @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic HS PLA", + "name": "Generic HS PLA @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge HS PLA @FF AD5M 0.25 Nozzle;Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle", + "inherits": "Generic HS PLA @Flashforge", "from": "system", - "setting_id": "1cvcaoBFNbg2GucE", - "filament_id": "OFLrdHse", + "setting_id": "DWsED5ish5gru5mt", + "filament_id": "OFvxghTE", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", @@ -13,7 +13,7 @@ "Flashforge AD5X 0.25 nozzle" ], "filament_settings_id": [ - "Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle" + "Generic HS PLA @FF AD5M 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json b/resources/profiles/Flashforge/filament/Generic HS PLA @Flashforge.json similarity index 96% rename from resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json rename to resources/profiles/Flashforge/filament/Generic HS PLA @Flashforge.json index 48b701953d..b6b4f26221 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic HS PLA.json +++ b/resources/profiles/Flashforge/filament/Generic HS PLA @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic HS PLA", + "name": "Generic HS PLA @Flashforge", "inherits": "fdm_filament_pla", + "renamed_from": "Flashforge Generic HS PLA", "from": "system", - "setting_id": "foG37d7HZKgt6l43", - "filament_id": "OFLrdHse", + "setting_id": "GTqLzBcGP2Rmmc9X", + "filament_id": "OFvxghTE", "instantiation": "true", "bed_temperature_difference": [ "10" diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json index 906b5af508..366dd8ec5a 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4 0.6 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "cvJIaPzb0uJLipX1", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json index 83744365bd..7e4f3adacc 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "wguPruY9M7GcMt6q", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json index 0e279cd8cb..33a832c216 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4 0.8 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "EhobwmFIEg5Cs5Ki", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json index 77114b937f..82ddf2067c 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PET @FF G4", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "JvdxJyy7xCm3F0xH", "filament_id": "OF6MOPWx", diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json index 68d26b5ff5..6075390527 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4P 0.6 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "FtwGLcPMQqKw5uKW", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json index 9a6a079a2e..c26ba6d204 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "lrnsjoh8DtnTcT7g", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json index 222c3f3085..731a8b0a27 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Generic PET @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic PET-CF @G3U 0.6 Nozzle", + "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", "from": "system", "setting_id": "Th8rzyWoINHBwgcw", "filament_id": "OF6MOPWx", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json index 346c467bd6..f1d33a0d09 100644 --- a/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Generic PET @FF G4P.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PET @FF G4P", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "1Lyq9gOfcZ5hPIdW", "filament_id": "OF6MOPWx", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG @FF AD5M 0.25 Nozzle.json similarity index 58% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PETG @FF AD5M 0.25 Nozzle.json index 9d4acd8d24..0a54e7aeff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @FF AD5M 0.25 Nozzle.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge PETG @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge PETG @FF AD5M 0.25 Nozzle;Flashforge Generic PETG @FF AD5M 0.25 Nozzle", + "inherits": "Generic PETG @Flashforge", "from": "system", - "setting_id": "KerUxwPsSEKDO6jL", - "filament_id": "OFZHgTVI", + "setting_id": "RyssSqtvE99XGdpZ", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", @@ -13,7 +13,7 @@ "Flashforge AD5X 0.25 nozzle" ], "filament_settings_id": [ - "Flashforge Generic PETG @FF AD5M 0.25 Nozzle" + "Generic PETG @FF AD5M 0.25 Nozzle" ], "fan_max_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json index d18f7bc5c4..3308abfa38 100644 --- a/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PETG @Flashforge AD4", - "inherits": "Flashforge Generic PETG", + "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "6vtyYCWYY10OPMbz", "filament_id": "OFYPdQJh", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.6 Nozzle.json similarity index 72% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.6 Nozzle.json index 8b452d3759..77095049c2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG @G3U 0.6 Nozzle;Flashforge Generic PETG G3U 0.6 Nozzle", "from": "system", - "setting_id": "W7pWKQ2EWAB5viV1", - "filament_id": "OFZHgTVI", + "setting_id": "ptfqxSWRVMFXRqzD", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -25,7 +26,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PETG @G3U 0.6 Nozzle" + "Generic PETG @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.8 Nozzle.json similarity index 73% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.8 Nozzle.json index 288f028eac..f0ebbde186 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U 0.8 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG @G3U 0.8 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG @Flashforge G3U 0.8 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG @G3U 0.8 Nozzle;Flashforge Generic PETG G3U 0.8 Nozzle", "from": "system", - "setting_id": "eDQb2WfDsUTvj2Nf", - "filament_id": "OFZHgTVI", + "setting_id": "UhrHMgzzppLirT8M", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" @@ -28,7 +29,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PETG @G3U 0.8 Nozzle" + "Generic PETG @Flashforge G3U 0.8 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json rename to resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U.json index 85e54ec1a6..119b9e3349 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG @G3U", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG @Flashforge G3U", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG @G3U;Flashforge Generic PETG G3U", "from": "system", - "setting_id": "yo4uc7TxQbqnlRUY", - "filament_id": "OFZHgTVI", + "setting_id": "umrO2bL7ihLROx0B", + "filament_id": "OFYPdQJh", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic PETG @G3U" + "Generic PETG @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge.json similarity index 91% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG.json rename to resources/profiles/Flashforge/filament/Generic PETG @Flashforge.json index 916c392f08..b53946e06c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG.json +++ b/resources/profiles/Flashforge/filament/Generic PETG @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG", + "name": "Generic PETG @Flashforge", "inherits": "fdm_filament_pet", + "renamed_from": "Flashforge Generic PETG", "from": "system", - "setting_id": "YqiSgA018CdflfT9", - "filament_id": "OFZHgTVI", + "setting_id": "pd9YWgt8IGXdiiUV", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.6 Nozzle.json similarity index 74% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.6 Nozzle.json index 5e5c8ebf79..a44330253e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG-CF @G3U 0.6 Nozzle;Flashforge Generic PETG-CF G3U 0.6 Nozzle", "from": "system", - "setting_id": "u2OzNKIQIKUrOT9k", - "filament_id": "OFQC8Vna", + "setting_id": "xYtwo7Ddkfh5PLIz", + "filament_id": "OFoYSJKi", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -25,7 +26,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PETG-CF @G3U 0.6 Nozzle" + "Generic PETG-CF @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.8 Nozzle.json similarity index 74% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.8 Nozzle.json index 2a52b92e70..3f5f92e8bc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U 0.8 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG-CF @G3U 0.8 Nozzle", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG-CF @Flashforge G3U 0.8 Nozzle", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG-CF @G3U 0.8 Nozzle;Flashforge Generic PETG-CF G3U 0.8 Nozzle", "from": "system", - "setting_id": "7Qq8eY1kcFHTgzW3", - "filament_id": "OFQC8Vna", + "setting_id": "v3HCxK10mQARiRTZ", + "filament_id": "OFoYSJKi", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" @@ -28,7 +29,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PETG-CF @G3U 0.8 Nozzle" + "Generic PETG-CF @Flashforge G3U 0.8 Nozzle" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json rename to resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U.json index 3a6f44f5ff..d298fa5b12 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG-CF @G3U", - "inherits": "Flashforge Generic PETG", + "name": "Generic PETG-CF @Flashforge G3U", + "inherits": "Generic PETG @Flashforge", + "renamed_from": "Flashforge Generic PETG-CF @G3U;Flashforge Generic PETG-CF G3U", "from": "system", - "setting_id": "gLrecba33jDI9PeI", - "filament_id": "OFQC8Vna", + "setting_id": "XXoNSerT8aqG5dlL", + "filament_id": "OFoYSJKi", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic PETG-CF @G3U" + "Generic PETG-CF @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json index a405594914..bcf3f0926c 100644 --- a/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PETG-CF10 @Flashforge AD4", - "inherits": "Flashforge Generic PETG-CF10", + "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "fWM9WLGV9mUQOtHh", "filament_id": "OFO5djrM", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge.json similarity index 95% rename from resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json rename to resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge.json index c94cdfff56..ca45c4fe25 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PETG-CF10.json +++ b/resources/profiles/Flashforge/filament/Generic PETG-CF10 @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PETG-CF10", + "name": "Generic PETG-CF10 @Flashforge", "inherits": "fdm_filament_pet", + "renamed_from": "Flashforge Generic PETG-CF10", "from": "system", - "setting_id": "PlC4Ek7d09ytYZqJ", - "filament_id": "OFlNWVr5", + "setting_id": "0oCfWHsyqpBCbD62", + "filament_id": "OFO5djrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA @FF AD5M 0.25 Nozzle.json similarity index 73% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA @FF AD5M 0.25 Nozzle.json index 769d2f16d5..d0cf9d305f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @FF AD5M 0.25 Nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Flashforge Generic PLA @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge PLA @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge PLA @FF AD5M 0.25 Nozzle;Flashforge Generic PLA @FF AD5M 0.25 Nozzle", + "inherits": "Generic PLA @Flashforge", "from": "system", - "setting_id": "o1CHzasJ7x3CKjue", + "setting_id": "tPulq0o2HEsicj3g", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", @@ -12,7 +12,7 @@ "Flashforge AD5X 0.25 nozzle" ], "filament_settings_id": [ - "Flashforge Generic PLA @FF AD5M 0.25 Nozzle" + "Generic PLA @FF AD5M 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json index e8d34603f3..5de4a77e3c 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA @Flashforge AD4", - "inherits": "Flashforge Generic PLA", + "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "48NJ34G6Uo7VgzD4", "filament_id": "OFDSrzZ8", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.6 Nozzle.json similarity index 84% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.6 Nozzle.json index 72add60440..b0c0ce9597 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.6 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", - "name": "Flashforge Generic PLA @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge", "from": "system", "instantiation": "false", "compatible_printers": [ @@ -23,7 +23,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n\n\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.8 Nozzle.json similarity index 86% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.8 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.8 Nozzle.json index ccc07ccec3..49aa73c7eb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U 0.8 Nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", - "name": "Flashforge Generic PLA @G3U 0.8 Nozzle", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA @Flashforge G3U 0.8 Nozzle", + "inherits": "Generic PLA @Flashforge", "from": "system", "instantiation": "false", "compatible_printers": [ @@ -23,7 +23,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PLA @G3U 0.8 Nozzle" + "Generic PLA @Flashforge G3U 0.8 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n\n\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json rename to resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U.json index 9f2a18971a..48b66814ca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA @G3U", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA @Flashforge G3U", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Flashforge Generic PLA @G3U;Flashforge Generic PLA G3U", "from": "system", - "setting_id": "gjIdhPTLOr17mz5B", - "filament_id": "OFtTHNTj", + "setting_id": "8ZlELnZzCa3UsztB", + "filament_id": "OFDSrzZ8", "instantiation": "true", "activate_air_filtration": [ "0" @@ -154,7 +155,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic PLA @G3U" + "Generic PLA @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge.json similarity index 89% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA.json rename to resources/profiles/Flashforge/filament/Generic PLA @Flashforge.json index 8e2d4c90c3..2a7b642470 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA.json +++ b/resources/profiles/Flashforge/filament/Generic PLA @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA", + "name": "Generic PLA @Flashforge", "inherits": "fdm_filament_pla", + "renamed_from": "Flashforge Generic PLA", "from": "system", - "setting_id": "DwAgYHepesazDUjN", - "filament_id": "OFtTHNTj", + "setting_id": "keWbSonGBWos68ag", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json index 73ed3cbbaa..85741e007d 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA High Speed @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA High Speed @Flashforge AD4", - "inherits": "Flashforge Generic HS PLA", + "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "B4EWBUa9G36lZUd7", "filament_id": "OFmpMwxS", diff --git a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json index d10e6d527c..39a2a4cfe8 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA Silk @Flashforge AD4.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Generic PLA Silk @Flashforge AD4", "renamed_from": "PLA Silk @Flashforge AD4", - "inherits": "Flashforge Generic PLA-Silk", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "9FrKIXABj3yedXri", "filament_id": "OFesA6rF", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.6 Nozzle.json similarity index 73% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.6 Nozzle.json index ad76d07bac..af864f7f8e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.6 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Flashforge Generic PLA-CF @G3U 0.6 Nozzle;Flashforge Generic PLA-CF G3U 0.6 Nozzle", "from": "system", - "setting_id": "KR0LUSD7wd55oNI6", - "filament_id": "OFYlthXI", + "setting_id": "3vXm1hn43igE1xww", + "filament_id": "OFWbdGsC", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.6 Nozzle" @@ -28,7 +29,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PLA-CF @G3U 0.6 Nozzle" + "Generic PLA-CF @Flashforge G3U 0.6 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.8 Nozzle.json similarity index 73% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.8 Nozzle.json index d0f628a2bb..798dff9458 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U 0.8 Nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA-CF @G3U 0.8 Nozzle", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA-CF @Flashforge G3U 0.8 Nozzle", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Flashforge Generic PLA-CF @G3U 0.8 Nozzle;Flashforge Generic PLA-CF G3U 0.8 Nozzle", "from": "system", - "setting_id": "rQSFNxuuqUVzsSV2", - "filament_id": "OFYlthXI", + "setting_id": "f1rqvqunGS94fw7q", + "filament_id": "OFWbdGsC", "instantiation": "true", "compatible_printers": [ "Flashforge Guider 3 Ultra 0.8 Nozzle" @@ -28,7 +29,7 @@ "5" ], "filament_settings_id": [ - "Flashforge Generic PLA-CF @G3U 0.8 Nozzle" + "Generic PLA-CF @Flashforge G3U 0.8 Nozzle" ], "filament_start_gcode": [ "; filament start gcode\n" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U.json similarity index 93% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json rename to resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U.json index 9ef92ee7ee..7f79c0753e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF @G3U.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF @Flashforge G3U.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA-CF @G3U", - "inherits": "Flashforge Generic PLA", + "name": "Generic PLA-CF @Flashforge G3U", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Flashforge Generic PLA-CF @G3U;Flashforge Generic PLA-CF G3U", "from": "system", - "setting_id": "S1UTm2oMRoQ4yM4R", - "filament_id": "OFYlthXI", + "setting_id": "J2zu45Q3zu7Tor3W", + "filament_id": "OFWbdGsC", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic PLA-CF @G3U" + "Generic PLA-CF @Flashforge G3U" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json index 1867ff0281..c03c616a0e 100644 --- a/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA-CF10 @Flashforge AD4", - "inherits": "Flashforge Generic PLA-CF10", + "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "F8r0b3G228QEK53U", "filament_id": "OFX2zcrM", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge.json similarity index 96% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json rename to resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge.json index 9fe47dcd87..8b2e1efb14 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-CF10.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-CF10 @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA-CF10", + "name": "Generic PLA-CF10 @Flashforge", "inherits": "fdm_filament_pla", + "renamed_from": "Flashforge Generic PLA-CF10", "from": "system", - "setting_id": "qH3l3p0yvZHqHnwG", - "filament_id": "OFdEIwxy", + "setting_id": "cckB4CXjFwZKC0l0", + "filament_id": "OFX2zcrM", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA-SILK @FF AD5M 0.25 Nozzle.json similarity index 71% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json rename to resources/profiles/Flashforge/filament/Generic PLA-SILK @FF AD5M 0.25 Nozzle.json index a0317d1b97..c2e5210f3a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -1,18 +1,18 @@ { "type": "filament", - "name": "Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "renamed_from": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", - "inherits": "Flashforge Generic PLA-Silk", + "name": "Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "renamed_from": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle;Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "inherits": "Generic PLA-Silk @Flashforge", "from": "system", - "setting_id": "WOl0JsKxAQFo2WnW", - "filament_id": "OFrrMLDw", + "setting_id": "gsOqWqaxtcrTm9JE", + "filament_id": "OFkf1HHw", "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", "Flashforge Adventurer 5M Pro 0.25 Nozzle" ], "filament_settings_id": [ - "Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle" + "Generic PLA-SILK @FF AD5M 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json b/resources/profiles/Flashforge/filament/Generic PLA-Silk @Flashforge.json similarity index 89% rename from resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json rename to resources/profiles/Flashforge/filament/Generic PLA-Silk @Flashforge.json index e9ac388665..d8eabacaa0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PLA-Silk.json +++ b/resources/profiles/Flashforge/filament/Generic PLA-Silk @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PLA-Silk", + "name": "Generic PLA-Silk @Flashforge", "inherits": "fdm_filament_pla", + "renamed_from": "Flashforge Generic PLA-Silk", "from": "system", - "setting_id": "NryK9oIg8wMDKVHW", - "filament_id": "OFYvSO1W", + "setting_id": "TPRkxgDXxVhPC1ws", + "filament_id": "OFi6PfUM", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json b/resources/profiles/Flashforge/filament/Generic PVA @Flashforge.json similarity index 94% rename from resources/profiles/Flashforge/filament/Flashforge Generic PVA.json rename to resources/profiles/Flashforge/filament/Generic PVA @Flashforge.json index 52bc8adcb9..6c76493158 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic PVA.json +++ b/resources/profiles/Flashforge/filament/Generic PVA @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic PVA", - "inherits": "Flashforge Generic PLA", + "name": "Generic PVA @Flashforge", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Flashforge Generic PVA", "from": "system", - "setting_id": "NA0PhaTNDvEH38lF", - "filament_id": "OF1OZujR", + "setting_id": "yiCXuEb87vNMhytL", + "filament_id": "OFDvXujf", "instantiation": "true", "activate_air_filtration": [ "0" @@ -154,7 +155,7 @@ "nil" ], "filament_settings_id": [ - "Flashforge Generic PVA" + "Generic PVA @Flashforge" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json index b46926fe5e..320aa2ad8d 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.6 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic TPU 85A @FF AD5X 0.6 nozzle", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "WQyJHZpkl9Dz6Yo3", "filament_id": "OFulOdT2", diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json index 01b1fbe328..0731ca82a6 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X 0.8 nozzle.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic TPU 85A @FF AD5X 0.8 nozzle", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "qRqhbOYn5TMfccem", "filament_id": "OFulOdT2", diff --git a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json index f1d682cfca..a93bdb8c2e 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Generic TPU 85A @FF AD5X.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic TPU 85A @FF AD5X", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "LTZCFxkzkGCnUMAR", "filament_id": "OFulOdT2", diff --git a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json index 685e0dce0f..610777d347 100644 --- a/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json +++ b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge AD4.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic TPU @Flashforge AD4", - "inherits": "Flashforge Generic TPU", + "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "DW9Ck6xMK00Ry2iE", "filament_id": "OFgbpcy9", diff --git a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge.json similarity index 95% rename from resources/profiles/Flashforge/filament/Flashforge Generic TPU.json rename to resources/profiles/Flashforge/filament/Generic TPU @Flashforge.json index 4ffd4a3aee..45a6b2e6f9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge Generic TPU.json +++ b/resources/profiles/Flashforge/filament/Generic TPU @Flashforge.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Flashforge Generic TPU", + "name": "Generic TPU @Flashforge", "inherits": "fdm_filament_tpu", + "renamed_from": "Flashforge Generic TPU", "from": "system", - "setting_id": "zQEeIIKWSgsDqlpI", - "filament_id": "OFC20UMj", + "setting_id": "luh9xN4STlD0sTyt", + "filament_id": "OFgbpcy9", "instantiation": "true", "additional_cooling_fan_speed": [ "100" diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json index 5b9131d949..73d0c5de35 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "lALS0WwvUo5AYOq3", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json index e6267540fb..3f1f866e13 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "tgRrYwnp5nr1yr9w", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json index 9f844651fa..58a29d1466 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "yom6iIUUwU1MsZwF", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json index 5117416c0a..9d896b6896 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4P 0.6 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "ysj5nD1op08U8rUT", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json index 1d6ac1b4c2..153456f8da 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.6 nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4P 0.6 nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "HBtkC3BfEpBGEWc5", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json index f284af6a29..cd5d838b69 100644 --- a/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json @@ -1,11 +1,14 @@ { "type": "filament", "name": "Polymaker CoPA @FF G4P 0.8 HF nozzle", - "inherits": "FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", "from": "system", "setting_id": "zsW4MCpeL5qfzNfg", - "filament_id": "OFIieIka", + "filament_id": "OFQyyO0l", "instantiation": "true", + "filament_vendor": [ + "Polymaker" + ], "close_fan_the_first_x_layers": [ "2" ], diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker CoPA.json similarity index 95% rename from resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json rename to resources/profiles/Flashforge/filament/Polymaker/Polymaker CoPA.json index 352f419c5e..533af6688b 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic CoPA.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker CoPA.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Polymaker Generic CoPA", - "inherits": "Flashforge Generic PLA", + "name": "Polymaker CoPA", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Polymaker Generic CoPA", "from": "system", - "setting_id": "t6CWYU3ZSddIjwhS", - "filament_id": "OFwxpmHM", + "setting_id": "5Dt1APJ8qd5pzmzK", + "filament_id": "OFQyyO0l", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "Polymaker Generic CoPA" + "Polymaker CoPA" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json b/resources/profiles/Flashforge/filament/Polymaker/Polymaker S1.json similarity index 95% rename from resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json rename to resources/profiles/Flashforge/filament/Polymaker/Polymaker S1.json index d55ea01f1d..c7eb2fb58c 100644 --- a/resources/profiles/Flashforge/filament/Polymaker/Polymaker Generic S1.json +++ b/resources/profiles/Flashforge/filament/Polymaker/Polymaker S1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Polymaker Generic S1", - "inherits": "Flashforge Generic PLA", + "name": "Polymaker S1", + "inherits": "Generic PLA @Flashforge", + "renamed_from": "Polymaker Generic S1", "from": "system", - "setting_id": "NXQtHvtO4tyQ1ueu", - "filament_id": "OFfegVpA", + "setting_id": "auChFegT1xViXxGe", + "filament_id": "OFaDsTE0", "instantiation": "true", "activate_air_filtration": [ "0" @@ -152,7 +153,7 @@ "nil" ], "filament_settings_id": [ - "Polymaker Generic S1" + "Polymaker S1" ], "filament_shrink": [ "100%" diff --git a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json index 994468c54d..c74353803b 100644 --- a/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json +++ b/resources/profiles/Flashforge/filament/SUNLU/SUNLU PLA Marble @base.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "SUNLU PLA Marble @base", - "renamed_from": "SUNLU Marble PLA @base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "OFxUwUeW", diff --git a/resources/profiles/Flashforge/machine/FlashForge AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/machine/FlashForge AD5X 0.25 nozzle.json index ba5fc5f554..50a7d88ff5 100644 --- a/resources/profiles/Flashforge/machine/FlashForge AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/machine/FlashForge AD5X 0.25 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.12mm Standard @Flashforge AD5M 0.25 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.4 nozzle.json index 8db76b0cd5..9dcd0f86dd 100644 --- a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.6 nozzle.json index 4955930d7c..a88cbb9e80 100644 --- a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.6 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.30mm Standard @Flashforge AD5M Pro 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.8 nozzle.json index ef7b50bbdb..47ac21c2ec 100644 --- a/resources/profiles/Flashforge/machine/Flashforge AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge AD5X 0.8 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge AD5X.json b/resources/profiles/Flashforge/machine/Flashforge AD5X.json index 3ed31ba385..42cfac7967 100644 --- a/resources/profiles/Flashforge/machine/Flashforge AD5X.json +++ b/resources/profiles/Flashforge/machine/Flashforge AD5X.json @@ -9,5 +9,5 @@ "bed_texture": "flashforge_ad5x_buildplate_texture.svg", "hotend_model": "flashforge_adventurer_5m_series_hotend.STL", "url": "", - "default_materials": "Flashforge Generic ABS;Flashforge Generic PETG;Flashforge Generic PLA" + "default_materials": "Generic ABS @Flashforge;Generic PETG @Flashforge;Generic PLA @Flashforge" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M Pro.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M Pro.json index fbc164e0e0..476d036a95 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M Pro.json +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M Pro.json @@ -9,5 +9,5 @@ "bed_texture": "flashforge_adventurer5m_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "flashforge_adventurer_5m_series_hotend.STL", - "default_materials": "Flashforge Generic ABS;Flashforge Generic PETG;Flashforge Generic PLA" + "default_materials": "Generic ABS @Flashforge;Generic PETG @Flashforge;Generic PLA @Flashforge" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M.json index c0822d3d73..b69dc12126 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M.json +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer 5M.json @@ -9,5 +9,5 @@ "bed_texture": "flashforge_adventurer5m_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "flashforge_adventurer_5m_series_hotend.STL", - "default_materials": "Flashforge Generic ABS;Flashforge Generic PETG;Flashforge Generic PLA" + "default_materials": "Generic ABS @Flashforge;Generic PETG @Flashforge;Generic PLA @Flashforge" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Artemis.json b/resources/profiles/Flashforge/machine/Flashforge Artemis.json index 7bab45b82a..22e9963a24 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Artemis.json +++ b/resources/profiles/Flashforge/machine/Flashforge Artemis.json @@ -9,5 +9,5 @@ "bed_model": "flashforge_artemis_buildplate_model.stl", "bed_texture": "flashforge_artemis_buildplate_texture.svg", "hotend_model": "", - "default_filament_profile": "Flashforge Generic PETG; Flashforge Generic PLA" + "default_filament_profile": "Generic PETG @Flashforge; Generic PLA @Flashforge" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json index 59c227c431..5ffbd6a7fc 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.4 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json index 9af2bb705b..ce7727209f 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.6 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json index e25ed9f229..e747961d1e 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 0.8 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json index fb960b8d27..620fb3dec3 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.4 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json index b9343cf430..43c07989c6 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.6 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json index 7111452aa9..71d101c355 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Creator 5 Pro 0.8 nozzle.json @@ -24,7 +24,7 @@ "cooling_tube_retraction": "0", "default_bed_type": "", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 2s 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider 2s 0.4 nozzle.json index 4456789cce..54e03d72fe 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 2s 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 2s 0.4 nozzle.json @@ -117,7 +117,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "machine_start_gcode": "M118 X10 Y10 Z10\nM140 S[bed_temperature_initial_layer_single]; set initial bed temp\nM104 S[nozzle_temperature_initial_layer] T0; set initial extruder temp\nM107; disable cooling fan\nG90; set to absolute positioning\nG28; home axes\nM132 X Y A B; recall home offsets from EPROM\nG1 Z50.0 F420; adjust Z\nG161 X Y F3300\nM7; wait for bed to stabilize\nM6 T0; wait for extruder to stabilize\nM651 S255; start case fan\nG1 Z0.3 F3600; move down to purge\nG92 E0; zero extruders\nG1 X120 Y-125 E20 F2000; extrude a line of filament across the front edge of the bed\nG1 X130 Y-125 F180; wait for ooze\nG1 X140 Y-125 F5000; fast wipe\nG1 Z1 F100; lift\nG92 E0; zero extruders again\nG1 E-1.0000 F1800", "machine_end_gcode": "M104 S0 T0; cool down extruder\nM140 S0 T0; cool down bed\nG162 Z F1800\nG28 X Y; home axes\nM132 X Y A B; recall home offsets from EPROM\nM652; turn off rear fan\nG91; set to relative positioning\nM18; disable stepper motors", diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 2s.json b/resources/profiles/Flashforge/machine/Flashforge Guider 2s.json index 38c0f3c667..4c99585c03 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 2s.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 2s.json @@ -8,5 +8,5 @@ "bed_model": "flashforge_g2s_buildplate_model.stl", "bed_texture": "flashforge_g2s_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Flashforge Generic PVA;Flashforge Generic HIPS;Flashforge Generic PETG-CF @G3U;Flashforge Generic PETG @G3U;Flashforge Generic PLA-CF @G3U;Flashforge Generic PLA @G3U;Flashforge Generic ASA @G3U;Flashforge Generic ABS @G3U;FusRock Generic PET-CF;FusRock Generic PAHT-CF;FusRock Generic NexPA-CF25;FusRock Generic S-Multi;FusRock Generic S-PAHT;Polymaker Generic CoPA;Polymaker Generic S1" + "default_materials": "Generic PVA @Flashforge;Generic HIPS @Flashforge;Generic PETG-CF @Flashforge G3U;Generic PETG @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA @Flashforge G3U;Generic ASA @Flashforge G3U;Generic ABS @Flashforge G3U;FusRock PET-CF;FusRock PAHT-CF;FusRock NexPA-CF25;FusRock S-Multi;FusRock S-PAHT;Polymaker CoPA;Polymaker S1" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.4 Nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.4 Nozzle.json index b8388ba7c4..dcde8504e9 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.4 Nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.4 Nozzle.json @@ -18,7 +18,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U" + "Generic PLA @Flashforge G3U" ], "default_print_profile": "0.20mm Standard @Flashforge G3U 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.6 Nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.6 Nozzle.json index f2b89e3585..2736b59737 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.6 Nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.6 Nozzle.json @@ -12,7 +12,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.8 Nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.8 Nozzle.json index 1076239de4..684474af9d 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.8 Nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra 0.8 Nozzle.json @@ -12,7 +12,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.8 Nozzle" + "Generic PLA @Flashforge G3U 0.8 Nozzle" ], "default_print_profile": "0.40mm Standard @Flashforge G3U 0.8 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json index a3bc7d0b68..c95215a762 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json @@ -8,5 +8,5 @@ "bed_model": "flashforge_g3u_buildplate_model.stl", "bed_texture": "flashforge_g3u_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Flashforge Generic PVA;Flashforge Generic HIPS;Flashforge Generic PETG-CF @G3U;Flashforge Generic PETG @G3U;Flashforge Generic PLA-CF @G3U;Flashforge Generic PLA @G3U;Flashforge Generic ASA @G3U;Flashforge Generic ABS @G3U;FusRock Generic PET-CF;FusRock Generic PAHT-CF;FusRock Generic NexPA-CF25;FusRock Generic S-Multi;FusRock Generic S-PAHT;Polymaker Generic CoPA;Polymaker Generic S1" + "default_materials": "Generic PVA @Flashforge;Generic HIPS @Flashforge;Generic PETG-CF @Flashforge G3U;Generic PETG @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA @Flashforge G3U;Generic ASA @Flashforge G3U;Generic ABS @Flashforge G3U;FusRock PET-CF;FusRock PAHT-CF;FusRock NexPA-CF25;FusRock S-Multi;FusRock S-PAHT;Polymaker CoPA;Polymaker S1" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.25 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.25 nozzle.json index 2ee3538c7a..b7a7d5f6ba 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.25 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.12mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 HF nozzle.json index b20d6ce763..f13d0aa125 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U" + "Generic PLA @Flashforge G3U" ], "default_print_profile": "0.20mm Standard @Flashforge G3U 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 nozzle.json index 452673eb55..22148f62db 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 HF nozzle.json index 92bee1b7dc..4eb27093aa 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 nozzle.json index 3570045562..56a63623fd 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.6 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.8 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.8 HF nozzle.json index f61d3d7e77..64853e95fa 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 0.8 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.25 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.25 nozzle.json index 3eee06cb24..4fbf0d684e 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.25 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.25 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.12mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 HF nozzle.json index 35e7f5b067..9c0b57c05c 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U" + "Generic PLA @Flashforge G3U" ], "default_print_profile": "0.20mm Standard @Flashforge G3U 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 nozzle.json index e355db941c..58daabb444 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 HF nozzle.json index 5ea36cfca8..49756682ba 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 nozzle.json index 21ae8e77fa..8c1a60781b 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.6 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.8 HF nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.8 HF nozzle.json index 660d3c342b..1140b773e3 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro 0.8 HF nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Flashforge Generic PLA @G3U 0.6 Nozzle" + "Generic PLA @Flashforge G3U 0.6 Nozzle" ], "default_print_profile": "0.30mm Standard @Flashforge G3U 0.6 Nozzle", "deretraction_speed": [ diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro.json b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro.json index 14ce7cead3..4bcdc78d4a 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4 Pro.json @@ -8,5 +8,5 @@ "bed_model": "flashforge_g4pro_buildplate_model.stl", "bed_texture": "flashforge_g4pro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Flashforge Generic PVA;Flashforge Generic HIPS;Flashforge Generic PETG-CF @G3U;Flashforge Generic PETG @G3U;Flashforge Generic PLA-CF @G3U;Flashforge Generic PLA @G3U;Flashforge Generic ASA @G3U;Flashforge Generic ABS @G3U;FusRock Generic PET-CF;FusRock Generic PAHT-CF;FusRock Generic NexPA-CF25;FusRock Generic S-Multi;FusRock Generic S-PAHT;Polymaker Generic CoPA;Polymaker Generic S1" + "default_materials": "Generic PVA @Flashforge;Generic HIPS @Flashforge;Generic PETG-CF @Flashforge G3U;Generic PETG @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA @Flashforge G3U;Generic ASA @Flashforge G3U;Generic ABS @Flashforge G3U;FusRock PET-CF;FusRock PAHT-CF;FusRock NexPA-CF25;FusRock S-Multi;FusRock S-PAHT;Polymaker CoPA;Polymaker S1" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider4.json b/resources/profiles/Flashforge/machine/Flashforge Guider4.json index 7b5248e14b..0cd89727d1 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider4.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider4.json @@ -8,5 +8,5 @@ "bed_model": "flashforge_g4pro_buildplate_model.stl", "bed_texture": "flashforge_g4pro_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Flashforge Generic PVA;Flashforge Generic HIPS;Flashforge Generic PETG-CF @G3U;Flashforge Generic PETG @G3U;Flashforge Generic PLA-CF @G3U;Flashforge Generic PLA @G3U;Flashforge Generic ASA @G3U;Flashforge Generic ABS @G3U;FusRock Generic PET-CF;FusRock Generic PAHT-CF;FusRock Generic NexPA-CF25;FusRock Generic S-Multi;FusRock Generic S-PAHT;Polymaker Generic CoPA;Polymaker Generic S1" + "default_materials": "Generic PVA @Flashforge;Generic HIPS @Flashforge;Generic PETG-CF @Flashforge G3U;Generic PETG @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA @Flashforge G3U;Generic ASA @Flashforge G3U;Generic ABS @Flashforge G3U;FusRock PET-CF;FusRock PAHT-CF;FusRock NexPA-CF25;FusRock S-Multi;FusRock S-PAHT;Polymaker CoPA;Polymaker S1" } diff --git a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json index 6002dfb72e..2808e866e3 100644 --- a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json +++ b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json @@ -94,7 +94,7 @@ "machine_pause_gcode": "M25", "support_multi_bed_types": "1", "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", diff --git a/resources/profiles/Flashforge/machine/fdm_flashforge_common.json b/resources/profiles/Flashforge/machine/fdm_flashforge_common.json index ea865c4387..7e2e700885 100644 --- a/resources/profiles/Flashforge/machine/fdm_flashforge_common.json +++ b/resources/profiles/Flashforge/machine/fdm_flashforge_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Flashforge Generic PLA" + "Generic PLA @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M", "bed_exclude_area": [ diff --git a/resources/profiles/Flashforge/machine/fdm_klipper_common.json b/resources/profiles/Flashforge/machine/fdm_klipper_common.json index 237f4b54c7..3126f70c76 100644 --- a/resources/profiles/Flashforge/machine/fdm_klipper_common.json +++ b/resources/profiles/Flashforge/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Flashforge Generic ABS" + "Generic ABS @Flashforge" ], "default_print_profile": "0.20mm Standard @Flashforge AD5M", "bed_exclude_area": [ diff --git a/resources/profiles/FlyingBear.json b/resources/profiles/FlyingBear.json index d93bc00e57..5be5a8d4a3 100644 --- a/resources/profiles/FlyingBear.json +++ b/resources/profiles/FlyingBear.json @@ -1,6 +1,6 @@ { "name": "FlyingBear", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "1", "description": "FlyingBear configurations", "machine_model_list": [ @@ -245,32 +245,32 @@ "sub_path": "filament/S1/fdm_filament_tpu_other @S1.json" }, { - "name": "FlyingBear Generic ABS", - "sub_path": "filament/FlyingBear Generic ABS.json" + "name": "Generic ABS @FlyingBear", + "sub_path": "filament/Generic ABS @FlyingBear.json" }, { - "name": "FlyingBear Generic PA-CF", - "sub_path": "filament/FlyingBear Generic PA-CF.json" + "name": "Generic PA-CF @FlyingBear", + "sub_path": "filament/Generic PA-CF @FlyingBear.json" }, { - "name": "FlyingBear Generic PC", - "sub_path": "filament/FlyingBear Generic PC.json" + "name": "Generic PC @FlyingBear", + "sub_path": "filament/Generic PC @FlyingBear.json" }, { - "name": "FlyingBear Generic PETG", - "sub_path": "filament/FlyingBear Generic PETG.json" + "name": "Generic PETG @FlyingBear", + "sub_path": "filament/Generic PETG @FlyingBear.json" }, { - "name": "FlyingBear Generic PLA", - "sub_path": "filament/FlyingBear Generic PLA.json" + "name": "Generic PLA @FlyingBear", + "sub_path": "filament/Generic PLA @FlyingBear.json" }, { "name": "FlyingBear PLA Hyper", "sub_path": "filament/FlyingBear PLA Hyper.json" }, { - "name": "FlyingBear Generic TPU", - "sub_path": "filament/FlyingBear Generic TPU.json" + "name": "Generic TPU @FlyingBear", + "sub_path": "filament/Generic TPU @FlyingBear.json" }, { "name": "FlyingBear ABS @Ghost7", diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json b/resources/profiles/FlyingBear/filament/Generic ABS @FlyingBear.json similarity index 69% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json rename to resources/profiles/FlyingBear/filament/Generic ABS @FlyingBear.json index 1bccf6a208..b0de37a64b 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic ABS.json +++ b/resources/profiles/FlyingBear/filament/Generic ABS @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic ABS", + "name": "Generic ABS @FlyingBear", "inherits": "fdm_filament_abs", + "renamed_from": "FlyingBear Generic ABS", "from": "system", - "setting_id": "TDBNmmGSexhJjBVm", - "filament_id": "OFBtlI8M", + "setting_id": "2aW5bka7pvQhHGqF", + "filament_id": "OFY9muEs", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_flow_ratio": [ "0.94" ], diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json b/resources/profiles/FlyingBear/filament/Generic PA-CF @FlyingBear.json similarity index 72% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json rename to resources/profiles/FlyingBear/filament/Generic PA-CF @FlyingBear.json index 4ed339e5cc..37448910ed 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PA-CF.json +++ b/resources/profiles/FlyingBear/filament/Generic PA-CF @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic PA-CF", + "name": "Generic PA-CF @FlyingBear", "inherits": "fdm_filament_pa", + "renamed_from": "FlyingBear Generic PA-CF", "from": "system", - "setting_id": "lpa58hsu9IB697v8", - "filament_id": "OFjoIVZ6", + "setting_id": "5hw49IVGTMbie2Zr", + "filament_id": "OFQLcbps", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_type": [ "PA-CF" ], diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json b/resources/profiles/FlyingBear/filament/Generic PC @FlyingBear.json similarity index 67% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json rename to resources/profiles/FlyingBear/filament/Generic PC @FlyingBear.json index 6dd3af11ba..926494718b 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PC.json +++ b/resources/profiles/FlyingBear/filament/Generic PC @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic PC", + "name": "Generic PC @FlyingBear", "inherits": "fdm_filament_pc", + "renamed_from": "FlyingBear Generic PC", "from": "system", - "setting_id": "MkIN95sonzI0vNXT", - "filament_id": "OFxTMg1d", + "setting_id": "HU6kkNtEXGubYV0U", + "filament_id": "OFLakOUI", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_max_volumetric_speed": [ "12" ], diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json b/resources/profiles/FlyingBear/filament/Generic PETG @FlyingBear.json similarity index 80% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json rename to resources/profiles/FlyingBear/filament/Generic PETG @FlyingBear.json index b8a96a8154..77079afc33 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PETG.json +++ b/resources/profiles/FlyingBear/filament/Generic PETG @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic PETG", + "name": "Generic PETG @FlyingBear", "inherits": "fdm_filament_pet", + "renamed_from": "FlyingBear Generic PETG", "from": "system", - "setting_id": "id0y4kfJciWjOwh6", - "filament_id": "OFzXURfo", + "setting_id": "D5Zk6ykY8TX3gs0Z", + "filament_id": "OFYPdQJh", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "reduce_fan_stop_start_freq": [ "1" ], diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json b/resources/profiles/FlyingBear/filament/Generic PLA @FlyingBear.json similarity index 69% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json rename to resources/profiles/FlyingBear/filament/Generic PLA @FlyingBear.json index 87c72dc870..159f3da22b 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic PLA.json +++ b/resources/profiles/FlyingBear/filament/Generic PLA @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic PLA", + "name": "Generic PLA @FlyingBear", "inherits": "fdm_filament_pla", + "renamed_from": "FlyingBear Generic PLA", "from": "system", - "setting_id": "yCGisctQQwASw8kc", - "filament_id": "OFFZ0BBL", + "setting_id": "g7zPgD6P3bbwm5gv", + "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_flow_ratio": [ "0.94" ], diff --git a/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json b/resources/profiles/FlyingBear/filament/Generic TPU @FlyingBear.json similarity index 66% rename from resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json rename to resources/profiles/FlyingBear/filament/Generic TPU @FlyingBear.json index 5c97c06efb..c33b3757be 100644 --- a/resources/profiles/FlyingBear/filament/FlyingBear Generic TPU.json +++ b/resources/profiles/FlyingBear/filament/Generic TPU @FlyingBear.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "FlyingBear Generic TPU", + "name": "Generic TPU @FlyingBear", "inherits": "fdm_filament_tpu", + "renamed_from": "FlyingBear Generic TPU", "from": "system", - "setting_id": "84YwyW2C94NdN1zl", - "filament_id": "OFRzsaDK", + "setting_id": "Xdx2FIIQiqSz7DpN", + "filament_id": "OFgbpcy9", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_max_volumetric_speed": [ "3" ], diff --git a/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6 0.4 nozzle.json b/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6 0.4 nozzle.json index 633e17dd93..c5ac0140a5 100644 --- a/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6 0.4 nozzle.json +++ b/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6 0.4 nozzle.json @@ -122,7 +122,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "FlyingBear Generic PLA" + "Generic PLA @FlyingBear" ], "machine_start_gcode": "M220 S100 ;reset feedrate\nM221 S100 ;reset flowrate\nG21 ;set units to millimeters\nG90 ;use absolute coordinates\nM82 ;absolute extrusion mode\nM107 ;turn off colling fan\n\nM140 S[bed_temperature_initial_layer] ;set bed temperature continue without waiting\nM104 S[nozzle_temperature_initial_layer] ;set hotend temperature continue without waiting\n\nG28 ;home\nG1 Z2 F1500 ;raise z\nG92 E0 ;reset extruder\n\nM190 S[bed_temperature_initial_layer] ;wait for bed temperature\nM109 S[nozzle_temperature_initial_layer] ;wait for hotend temperature\n\nG1 X20 Y20 F5000 ;start position \nG1 Z0.28 F1500 ;lower z\nG1 E4 F500 ;prime the filament\n\nG1 X20 Y20.0 Z0.28 F3000.0 ;start position \nG1 X20 Y170.0 Z0.28 F1500.0 E12 ;1st line\nG1 X20.3 F1500\nG1 X20.3 Y20.0 Z0.28 F1500.0 E18 ;2nd line\n\nG92 E0 ;reset extruder\nG1 Z2 F1500 ;raise z\nG92 E0 ;reset extruder\n", "machine_end_gcode": "G91 ;use relative coordinates\nG1 E-4 F1500 ;retract the filament\nG1 X5 Y5 Z0.2 F5000 ;wipe\nG1 Z5 F1500 ;raise z\nG90 ;use absolute coordinates\nG1 X10 Y210 F5000 ;park print head\n\nM107 ;turn off fan\nM104 S0 ;turn off hotend\nM140 S0 ;turn off heatbed\nM84 ;disable motors", diff --git a/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6.json b/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6.json index 3b1968c724..18a5c27f14 100644 --- a/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6.json +++ b/resources/profiles/FlyingBear/machine/FlyingBear Ghost 6.json @@ -8,5 +8,5 @@ "bed_model": "FlyingBear Ghost 6-bed.stl", "bed_texture": "FlyingBear Ghost 6-texture.png", "hotend_model": "", - "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;FlyingBear Generic TPU" + "default_materials": "Generic ABS @FlyingBear;Generic PA-CF @FlyingBear;Generic PC @FlyingBear;Generic PETG @FlyingBear;Generic PLA @FlyingBear;Generic TPU @FlyingBear" } diff --git a/resources/profiles/FlyingBear/machine/FlyingBear Reborn3.json b/resources/profiles/FlyingBear/machine/FlyingBear Reborn3.json index e75b8d0697..43dd2de3d4 100644 --- a/resources/profiles/FlyingBear/machine/FlyingBear Reborn3.json +++ b/resources/profiles/FlyingBear/machine/FlyingBear Reborn3.json @@ -8,5 +8,5 @@ "bed_model": "FlyingBear Reborn3-bed.stl", "bed_texture": "FlyingBear Reborn3-texture.png", "hotend_model": "", - "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;FlyingBear Generic TPU" + "default_materials": "Generic ABS @FlyingBear;Generic PA-CF @FlyingBear;Generic PC @FlyingBear;Generic PETG @FlyingBear;Generic PLA @FlyingBear;Generic TPU @FlyingBear" } diff --git a/resources/profiles/FlyingBear/machine/Ghost7/FlyingBear Ghost7.json b/resources/profiles/FlyingBear/machine/Ghost7/FlyingBear Ghost7.json index 959a8f1193..795743dc1f 100644 --- a/resources/profiles/FlyingBear/machine/Ghost7/FlyingBear Ghost7.json +++ b/resources/profiles/FlyingBear/machine/Ghost7/FlyingBear Ghost7.json @@ -8,5 +8,5 @@ "bed_model": "FlyingBear Ghost7-bed.stl", "bed_texture": "FlyingBear Ghost7-texture.png", "hotend_model": "", - "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;FlyingBear Generic TPU" + "default_materials": "Generic ABS @FlyingBear;Generic PA-CF @FlyingBear;Generic PC @FlyingBear;Generic PETG @FlyingBear;Generic PLA @FlyingBear;Generic TPU @FlyingBear" } diff --git a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json index 2063aab681..53ca3accb9 100644 --- a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json +++ b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json @@ -8,5 +8,5 @@ "bed_model": "FlyingBear S1-bed.stl", "bed_texture": "FlyingBear S1-texture.png", "hotend_model": "", - "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;FlyingBear Generic TPU" + "default_materials": "Generic ABS @FlyingBear;Generic PA-CF @FlyingBear;Generic PC @FlyingBear;Generic PETG @FlyingBear;Generic PLA @FlyingBear;Generic TPU @FlyingBear" } diff --git a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json index 8053ff22d0..d9170b7fec 100644 --- a/resources/profiles/FlyingBear/machine/fdm_klipper_common.json +++ b/resources/profiles/FlyingBear/machine/fdm_klipper_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "FlyingBear Generic PLA" + "Generic PLA @FlyingBear" ], "default_print_profile": "0.20mm Standard @FlyingBear Reborn3", "deretraction_speed": [ diff --git a/resources/profiles/FlyingBear/machine/fdm_machine_common.json b/resources/profiles/FlyingBear/machine/fdm_machine_common.json index 28e9665346..9b3574e7de 100644 --- a/resources/profiles/FlyingBear/machine/fdm_machine_common.json +++ b/resources/profiles/FlyingBear/machine/fdm_machine_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "FlyingBear Generic PLA" + "Generic PLA @FlyingBear" ], "default_print_profile": "0.20mm Standard @FlyingBear Reborn3", "deretraction_speed": [ diff --git a/resources/profiles/Ginger Additive.json b/resources/profiles/Ginger Additive.json index ff4c3bec09..249c3e9906 100644 --- a/resources/profiles/Ginger Additive.json +++ b/resources/profiles/Ginger Additive.json @@ -1,6 +1,6 @@ { "name": "Ginger Additive", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "1", "description": "Ginger configuration", "machine_model_list": [ @@ -67,12 +67,12 @@ "sub_path": "filament/fdm_filament_common.json" }, { - "name": "Ginger Generic PETG", - "sub_path": "filament/Ginger Generic PETG.json" + "name": "Generic PETG @Ginger", + "sub_path": "filament/Generic PETG @Ginger.json" }, { - "name": "Ginger Generic PLA", - "sub_path": "filament/Ginger Generic PLA.json" + "name": "Generic PLA @Ginger", + "sub_path": "filament/Generic PLA @Ginger.json" } ] } diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json b/resources/profiles/Ginger Additive/filament/Generic PETG @Ginger.json similarity index 92% rename from resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json rename to resources/profiles/Ginger Additive/filament/Generic PETG @Ginger.json index 15266aab2b..b9e6ce122c 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json +++ b/resources/profiles/Ginger Additive/filament/Generic PETG @Ginger.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Ginger Generic PETG", - "renamed_from": "Ginger Generic rPETG", + "name": "Generic PETG @Ginger", + "renamed_from": "Ginger Generic rPETG;Ginger Generic PETG", "inherits": "fdm_filament_common", "from": "system", - "setting_id": "ue95N2e65rdp5K6c", - "filament_id": "OFsGqI4y", + "setting_id": "rogjLzHbtvooz2lw", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json b/resources/profiles/Ginger Additive/filament/Generic PLA @Ginger.json similarity index 92% rename from resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json rename to resources/profiles/Ginger Additive/filament/Generic PLA @Ginger.json index 55e699954a..61e91d1f1e 100644 --- a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json +++ b/resources/profiles/Ginger Additive/filament/Generic PLA @Ginger.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Ginger Generic PLA", - "renamed_from": "Ginger Generic rPLA", + "name": "Generic PLA @Ginger", + "renamed_from": "Ginger Generic rPLA;Ginger Generic PLA", "inherits": "fdm_filament_common", "from": "system", - "setting_id": "Z1scjKDBFoDaTa2C", - "filament_id": "OFlLmUeV", + "setting_id": "tu6pOYYSBlZCvmbH", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_vendor": [ "Generic" diff --git a/resources/profiles/Ginger Additive/machine/Ginger G1.json b/resources/profiles/Ginger Additive/machine/Ginger G1.json index 54756fd549..e379f536e4 100644 --- a/resources/profiles/Ginger Additive/machine/Ginger G1.json +++ b/resources/profiles/Ginger Additive/machine/Ginger G1.json @@ -8,5 +8,5 @@ "family": "Ginger", "bed_model": "Ginger_G1.stl", "bed_texture": "Ginger_One_texture.svg", - "default_materials": "Ginger Generic PETG;Ginger Generic PLA" + "default_materials": "Generic PETG @Ginger;Generic PLA @Ginger" } diff --git a/resources/profiles/Ginger Additive/machine/Ginger_G1_common.json b/resources/profiles/Ginger Additive/machine/Ginger_G1_common.json index 8b218915d1..a6fcccb284 100644 --- a/resources/profiles/Ginger Additive/machine/Ginger_G1_common.json +++ b/resources/profiles/Ginger Additive/machine/Ginger_G1_common.json @@ -1,13 +1,12 @@ { "type": "machine", "name": "Ginger_G1_common", - "renamed_from": "ginger_one_common", "inherits": "fdm_machine_common", "from": "system", "instantiation": "false", "printer_settings_id": "Ginger_G1_common", "default_filament_profile": [ - "Ginger Generic PLA" + "Generic PLA @Ginger" ], "default_print_profile": "1.50mm Standard @Ginger G1", "deretraction_speed": [ diff --git a/resources/profiles/InfiMech.json b/resources/profiles/InfiMech.json index 7ae4c46fb4..06d0629ffc 100644 --- a/resources/profiles/InfiMech.json +++ b/resources/profiles/InfiMech.json @@ -1,6 +1,6 @@ { "name": "InfiMech", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "1", "description": "InfiMech configurations", "machine_model_list": [ @@ -305,40 +305,40 @@ "sub_path": "filament/HSN/fdm_filament_tpu_other @HSN.json" }, { - "name": "InfiMech Generic ABS", - "sub_path": "filament/InfiMech Generic ABS.json" + "name": "Generic ABS @InfiMech", + "sub_path": "filament/Generic ABS @InfiMech.json" }, { "name": "Other ABS", "sub_path": "filament/Other ABS.json" }, { - "name": "InfiMech Generic PA-CF", - "sub_path": "filament/InfiMech Generic PA-CF.json" + "name": "Generic PA-CF @InfiMech", + "sub_path": "filament/Generic PA-CF @InfiMech.json" }, { "name": "Other PA-CF", "sub_path": "filament/Other PA-CF.json" }, { - "name": "InfiMech Generic PC", - "sub_path": "filament/InfiMech Generic PC.json" + "name": "Generic PC @InfiMech", + "sub_path": "filament/Generic PC @InfiMech.json" }, { "name": "Other PC", "sub_path": "filament/Other PC.json" }, { - "name": "InfiMech Generic PETG", - "sub_path": "filament/InfiMech Generic PETG.json" + "name": "Generic PETG @InfiMech", + "sub_path": "filament/Generic PETG @InfiMech.json" }, { "name": "Other PETG", "sub_path": "filament/Other PETG.json" }, { - "name": "InfiMech Generic PLA", - "sub_path": "filament/InfiMech Generic PLA.json" + "name": "Generic PLA @InfiMech", + "sub_path": "filament/Generic PLA @InfiMech.json" }, { "name": "InfiMech PLA Hyper", @@ -353,8 +353,8 @@ "sub_path": "filament/Other PLA.json" }, { - "name": "InfiMech Generic TPU", - "sub_path": "filament/InfiMech Generic TPU.json" + "name": "Generic TPU @InfiMech", + "sub_path": "filament/Generic TPU @InfiMech.json" }, { "name": "Other TPU", diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json b/resources/profiles/InfiMech/filament/Generic ABS @InfiMech.json similarity index 67% rename from resources/profiles/InfiMech/filament/InfiMech Generic ABS.json rename to resources/profiles/InfiMech/filament/Generic ABS @InfiMech.json index 2b2223aec5..80b479de75 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic ABS.json +++ b/resources/profiles/InfiMech/filament/Generic ABS @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic ABS", + "name": "Generic ABS @InfiMech", "inherits": "fdm_filament_abs", + "renamed_from": "InfiMech Generic ABS", "from": "system", - "setting_id": "gtJ2ZoV8fxqqOXuv", - "filament_id": "OFWbbuRY", + "setting_id": "HRLECASD9Ko4Xxof", + "filament_id": "OFY9muEs", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_flow_ratio": [ "0.94" ], diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json b/resources/profiles/InfiMech/filament/Generic PA-CF @InfiMech.json similarity index 70% rename from resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json rename to resources/profiles/InfiMech/filament/Generic PA-CF @InfiMech.json index cfd3b187ce..0c202c609c 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PA-CF.json +++ b/resources/profiles/InfiMech/filament/Generic PA-CF @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic PA-CF", + "name": "Generic PA-CF @InfiMech", "inherits": "fdm_filament_pa", + "renamed_from": "InfiMech Generic PA-CF", "from": "system", - "setting_id": "k2NSIB3vVUoXGW9F", - "filament_id": "OF6K467o", + "setting_id": "IRYJpvGGjpF4ofY1", + "filament_id": "OFQLcbps", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_type": [ "PA-CF" ], diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PC.json b/resources/profiles/InfiMech/filament/Generic PC @InfiMech.json similarity index 64% rename from resources/profiles/InfiMech/filament/InfiMech Generic PC.json rename to resources/profiles/InfiMech/filament/Generic PC @InfiMech.json index 11d0153e01..a37d5db2b7 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PC.json +++ b/resources/profiles/InfiMech/filament/Generic PC @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic PC", + "name": "Generic PC @InfiMech", "inherits": "fdm_filament_pc", + "renamed_from": "InfiMech Generic PC", "from": "system", - "setting_id": "emj9YLXtmKmeoYJa", - "filament_id": "OF6xLvYg", + "setting_id": "W0oujcCps06G6yNB", + "filament_id": "OFLakOUI", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_max_volumetric_speed": [ "12" ], diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json b/resources/profiles/InfiMech/filament/Generic PETG @InfiMech.json similarity index 80% rename from resources/profiles/InfiMech/filament/InfiMech Generic PETG.json rename to resources/profiles/InfiMech/filament/Generic PETG @InfiMech.json index 7b5f094764..55162d9852 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PETG.json +++ b/resources/profiles/InfiMech/filament/Generic PETG @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic PETG", + "name": "Generic PETG @InfiMech", "inherits": "fdm_filament_pet", + "renamed_from": "InfiMech Generic PETG", "from": "system", - "setting_id": "rhXq50q3u2YxNRcE", - "filament_id": "OFs2ReMr", + "setting_id": "sAi8oKez7NGKo1wy", + "filament_id": "OFYPdQJh", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "reduce_fan_stop_start_freq": [ "1" ], diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json b/resources/profiles/InfiMech/filament/Generic PLA @InfiMech.json similarity index 67% rename from resources/profiles/InfiMech/filament/InfiMech Generic PLA.json rename to resources/profiles/InfiMech/filament/Generic PLA @InfiMech.json index cdb8dc6563..4d2d7dc402 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic PLA.json +++ b/resources/profiles/InfiMech/filament/Generic PLA @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic PLA", + "name": "Generic PLA @InfiMech", "inherits": "fdm_filament_pla", + "renamed_from": "InfiMech Generic PLA", "from": "system", - "setting_id": "BHNIPk7Nbl7hXZY1", - "filament_id": "OFrQqCwL", + "setting_id": "tdnlzJyNB6zpQS8w", + "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_flow_ratio": [ "0.94" ], diff --git a/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json b/resources/profiles/InfiMech/filament/Generic TPU @InfiMech.json similarity index 64% rename from resources/profiles/InfiMech/filament/InfiMech Generic TPU.json rename to resources/profiles/InfiMech/filament/Generic TPU @InfiMech.json index be76c39b21..bc2b0c37a8 100644 --- a/resources/profiles/InfiMech/filament/InfiMech Generic TPU.json +++ b/resources/profiles/InfiMech/filament/Generic TPU @InfiMech.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "InfiMech Generic TPU", + "name": "Generic TPU @InfiMech", "inherits": "fdm_filament_tpu", + "renamed_from": "InfiMech Generic TPU", "from": "system", - "setting_id": "pHS9IcwvsPCnkpaO", - "filament_id": "OFc0xiCz", + "setting_id": "kK1S7YP8vgTJeFPO", + "filament_id": "OFgbpcy9", "instantiation": "true", + "filament_vendor": [ + "Generic" + ], "filament_max_volumetric_speed": [ "3" ], diff --git a/resources/profiles/InfiMech/machine/HSN/InfiMech TX Hardened Steel Nozzle.json b/resources/profiles/InfiMech/machine/HSN/InfiMech TX Hardened Steel Nozzle.json index fff3371aba..8b8fd4e586 100644 --- a/resources/profiles/InfiMech/machine/HSN/InfiMech TX Hardened Steel Nozzle.json +++ b/resources/profiles/InfiMech/machine/HSN/InfiMech TX Hardened Steel Nozzle.json @@ -8,5 +8,5 @@ "bed_model": "InfiMech TX-bed.stl", "bed_texture": "InfiMech TX-texture.svg", "hotend_model": "", - "default_materials": "InfiMech Generic ABS;InfiMech Generic PA-CF;InfiMech Generic PC;InfiMech Generic PETG;InfiMech Generic PLA;InfiMech Generic TPU" + "default_materials": "Generic ABS @InfiMech;Generic PA-CF @InfiMech;Generic PC @InfiMech;Generic PETG @InfiMech;Generic PLA @InfiMech;Generic TPU @InfiMech" } diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json index 68b3b30e45..a95fea09c0 100644 --- a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json +++ b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech Generic PLA" + "Generic PLA @InfiMech" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json index 570a6aaf2f..35501555bb 100644 --- a/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json +++ b/resources/profiles/InfiMech/machine/HSN/fdm_machine_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech Generic PLA" + "Generic PLA @InfiMech" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/InfiMech/machine/InfiMech TX.json b/resources/profiles/InfiMech/machine/InfiMech TX.json index abb93dfe09..c040efcfbb 100644 --- a/resources/profiles/InfiMech/machine/InfiMech TX.json +++ b/resources/profiles/InfiMech/machine/InfiMech TX.json @@ -8,5 +8,5 @@ "bed_model": "InfiMech TX-bed.stl", "bed_texture": "InfiMech TX-texture.svg", "hotend_model": "", - "default_materials": "InfiMech Generic ABS;InfiMech Generic PA-CF;InfiMech Generic PC;InfiMech Generic PETG;InfiMech Generic PLA;InfiMech Generic TPU" + "default_materials": "Generic ABS @InfiMech;Generic PA-CF @InfiMech;Generic PC @InfiMech;Generic PETG @InfiMech;Generic PLA @InfiMech;Generic TPU @InfiMech" } diff --git a/resources/profiles/InfiMech/machine/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/fdm_klipper_common.json index adcb60145f..bbcd27a966 100644 --- a/resources/profiles/InfiMech/machine/fdm_klipper_common.json +++ b/resources/profiles/InfiMech/machine/fdm_klipper_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech Generic PLA" + "Generic PLA @InfiMech" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/InfiMech/machine/fdm_machine_common.json b/resources/profiles/InfiMech/machine/fdm_machine_common.json index 2462c8f803..c329e930cb 100644 --- a/resources/profiles/InfiMech/machine/fdm_machine_common.json +++ b/resources/profiles/InfiMech/machine/fdm_machine_common.json @@ -14,7 +14,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech Generic PLA" + "Generic PLA @InfiMech" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/MagicMaker.json b/resources/profiles/MagicMaker.json index ede555b66c..cfb4c10ac2 100644 --- a/resources/profiles/MagicMaker.json +++ b/resources/profiles/MagicMaker.json @@ -1,6 +1,6 @@ { "name": "MagicMaker", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "MagicMaker configurations", "machine_model_list": [ @@ -141,8 +141,8 @@ "sub_path": "filament/fdm_filament_peek.json" }, { - "name": "MM Generic PEEK", - "sub_path": "filament/MM Generic PEEK.json" + "name": "Generic PEEK @MM", + "sub_path": "filament/Generic PEEK @MM.json" } ], "machine_list": [ diff --git a/resources/profiles/MagicMaker/filament/MM Generic PEEK.json b/resources/profiles/MagicMaker/filament/Generic PEEK @MM.json similarity index 84% rename from resources/profiles/MagicMaker/filament/MM Generic PEEK.json rename to resources/profiles/MagicMaker/filament/Generic PEEK @MM.json index cfa53426f6..6915058856 100644 --- a/resources/profiles/MagicMaker/filament/MM Generic PEEK.json +++ b/resources/profiles/MagicMaker/filament/Generic PEEK @MM.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "MM Generic PEEK", + "name": "Generic PEEK @MM", "inherits": "fdm_filament_peek", + "renamed_from": "MM Generic PEEK", "from": "system", - "setting_id": "iznBAOK0m6dO7SCh", - "filament_id": "OFgSPtDn", + "setting_id": "2xiVNAQTwBaiLjJn", + "filament_id": "OFz5oHgf", "instantiation": "true", "fan_max_speed": [ "40" diff --git a/resources/profiles/MagicMaker/machine/MM BoneKing.json b/resources/profiles/MagicMaker/machine/MM BoneKing.json index a7b80100be..ab257957a6 100644 --- a/resources/profiles/MagicMaker/machine/MM BoneKing.json +++ b/resources/profiles/MagicMaker/machine/MM BoneKing.json @@ -8,5 +8,5 @@ "bed_model": "310_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.svg", "hotend_model": "MM_hotend.stl", - "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System;Generic PC @System;Generic PA @System;MM Generic PEEK" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System;Generic PC @System;Generic PA @System;Generic PEEK @MM" } diff --git a/resources/profiles/OrcaArena.json b/resources/profiles/OrcaArena.json index c649cf3e6b..866b720b78 100644 --- a/resources/profiles/OrcaArena.json +++ b/resources/profiles/OrcaArena.json @@ -1,7 +1,7 @@ { "name": "Orca Arena Printer", "url": "", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Orca Arena configuration files", "machine_model_list": [ @@ -242,12 +242,12 @@ "sub_path": "filament/Arena ABS @base.json" }, { - "name": "OrcaArena Generic ABS @base", - "sub_path": "filament/OrcaArena Generic ABS @base.json" + "name": "Generic ABS @OrcaArena base", + "sub_path": "filament/Generic ABS @OrcaArena base.json" }, { - "name": "OrcaArena Generic ASA @base", - "sub_path": "filament/OrcaArena Generic ASA @base.json" + "name": "Generic ASA @OrcaArena base", + "sub_path": "filament/Generic ASA @OrcaArena base.json" }, { "name": "Arena PA-CF @base", @@ -262,20 +262,20 @@ "sub_path": "filament/Arena Support G @base.json" }, { - "name": "OrcaArena Generic PA", - "sub_path": "filament/OrcaArena Generic PA.json" + "name": "Generic PA @OrcaArena", + "sub_path": "filament/Generic PA @OrcaArena.json" }, { - "name": "OrcaArena Generic PA-CF", - "sub_path": "filament/OrcaArena Generic PA-CF.json" + "name": "Generic PA-CF @OrcaArena", + "sub_path": "filament/Generic PA-CF @OrcaArena.json" }, { "name": "Arena PC @base", "sub_path": "filament/Arena PC @base.json" }, { - "name": "OrcaArena Generic PC @base", - "sub_path": "filament/OrcaArena Generic PC @base.json" + "name": "Generic PC @OrcaArena base", + "sub_path": "filament/Generic PC @OrcaArena base.json" }, { "name": "Arena PET-CF @base", @@ -290,12 +290,12 @@ "sub_path": "filament/Arena PETG-CF @base.json" }, { - "name": "OrcaArena Generic PETG @base", - "sub_path": "filament/OrcaArena Generic PETG @base.json" + "name": "Generic PETG @OrcaArena base", + "sub_path": "filament/Generic PETG @OrcaArena base.json" }, { - "name": "OrcaArena Generic PETG-CF @base", - "sub_path": "filament/OrcaArena Generic PETG-CF @base.json" + "name": "Generic PETG-CF @OrcaArena base", + "sub_path": "filament/Generic PETG-CF @OrcaArena base.json" }, { "name": "Arena PLA Basic @base", @@ -338,16 +338,16 @@ "sub_path": "filament/Arena Support W @base.json" }, { - "name": "OrcaArena Generic PLA @base", - "sub_path": "filament/OrcaArena Generic PLA @base.json" + "name": "Generic PLA @OrcaArena base", + "sub_path": "filament/Generic PLA @OrcaArena base.json" }, { - "name": "OrcaArena Generic PLA Silk @base", - "sub_path": "filament/OrcaArena Generic PLA Silk @base.json" + "name": "Generic PLA Silk @OrcaArena base", + "sub_path": "filament/Generic PLA Silk @OrcaArena base.json" }, { - "name": "OrcaArena Generic PLA-CF @base", - "sub_path": "filament/OrcaArena Generic PLA-CF @base.json" + "name": "Generic PLA-CF @OrcaArena base", + "sub_path": "filament/Generic PLA-CF @OrcaArena base.json" }, { "name": "PolyLite PLA @base", @@ -358,16 +358,16 @@ "sub_path": "filament/PolyTerra PLA @base.json" }, { - "name": "OrcaArena Generic PVA @base", - "sub_path": "filament/OrcaArena Generic PVA @base.json" + "name": "Generic PVA @OrcaArena base", + "sub_path": "filament/Generic PVA @OrcaArena base.json" }, { "name": "Arena TPU 95A @base", "sub_path": "filament/Arena TPU 95A @base.json" }, { - "name": "OrcaArena Generic TPU", - "sub_path": "filament/OrcaArena Generic TPU.json" + "name": "Generic TPU @OrcaArena", + "sub_path": "filament/Generic TPU @OrcaArena.json" }, { "name": "Arena ABS @Arena X1C", @@ -382,20 +382,20 @@ "sub_path": "filament/Arena ABS @Arena X1C 0.8 nozzle.json" }, { - "name": "OrcaArena Generic ABS", - "sub_path": "filament/OrcaArena Generic ABS.json" + "name": "Generic ABS @OrcaArena", + "sub_path": "filament/Generic ABS @OrcaArena.json" }, { - "name": "OrcaArena Generic ABS @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic ABS @0.2 nozzle.json" + "name": "Generic ABS @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic ABS @OrcaArena 0.2 nozzle.json" }, { - "name": "OrcaArena Generic ASA", - "sub_path": "filament/OrcaArena Generic ASA.json" + "name": "Generic ASA @OrcaArena", + "sub_path": "filament/Generic ASA @OrcaArena.json" }, { - "name": "OrcaArena Generic ASA @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic ASA @0.2 nozzle.json" + "name": "Generic ASA @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic ASA @OrcaArena 0.2 nozzle.json" }, { "name": "Arena PA-CF @Arena X1C", @@ -426,12 +426,12 @@ "sub_path": "filament/Arena PC @Arena X1C 0.8 nozzle.json" }, { - "name": "OrcaArena Generic PC", - "sub_path": "filament/OrcaArena Generic PC.json" + "name": "Generic PC @OrcaArena", + "sub_path": "filament/Generic PC @OrcaArena.json" }, { - "name": "OrcaArena Generic PC @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic PC @0.2 nozzle.json" + "name": "Generic PC @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic PC @OrcaArena 0.2 nozzle.json" }, { "name": "Arena PET-CF @Arena X1C", @@ -454,16 +454,16 @@ "sub_path": "filament/Arena PETG-CF @Arena X1C.json" }, { - "name": "OrcaArena Generic PETG", - "sub_path": "filament/OrcaArena Generic PETG.json" + "name": "Generic PETG @OrcaArena", + "sub_path": "filament/Generic PETG @OrcaArena.json" }, { - "name": "OrcaArena Generic PETG @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic PETG @0.2 nozzle.json" + "name": "Generic PETG @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic PETG @OrcaArena 0.2 nozzle.json" }, { - "name": "OrcaArena Generic PETG-CF @Arena X1C", - "sub_path": "filament/OrcaArena Generic PETG-CF @Arena X1C.json" + "name": "Generic PETG-CF @Arena X1C", + "sub_path": "filament/Generic PETG-CF @Arena X1C.json" }, { "name": "Arena PLA Basic @Arena X1C", @@ -542,20 +542,20 @@ "sub_path": "filament/Arena Support W @Arena X1C 0.2 nozzle.json" }, { - "name": "OrcaArena Generic PLA", - "sub_path": "filament/OrcaArena Generic PLA.json" + "name": "Generic PLA @OrcaArena", + "sub_path": "filament/Generic PLA @OrcaArena.json" }, { - "name": "OrcaArena Generic PLA @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic PLA @0.2 nozzle.json" + "name": "Generic PLA @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic PLA @OrcaArena 0.2 nozzle.json" }, { - "name": "OrcaArena Generic PLA Silk", - "sub_path": "filament/OrcaArena Generic PLA Silk.json" + "name": "Generic PLA Silk @OrcaArena", + "sub_path": "filament/Generic PLA Silk @OrcaArena.json" }, { - "name": "OrcaArena Generic PLA-CF", - "sub_path": "filament/OrcaArena Generic PLA-CF.json" + "name": "Generic PLA-CF @OrcaArena", + "sub_path": "filament/Generic PLA-CF @OrcaArena.json" }, { "name": "PolyLite PLA @Arena X1C", @@ -566,12 +566,12 @@ "sub_path": "filament/PolyTerra PLA @Arena X1C.json" }, { - "name": "OrcaArena Generic PVA", - "sub_path": "filament/OrcaArena Generic PVA.json" + "name": "Generic PVA @OrcaArena", + "sub_path": "filament/Generic PVA @OrcaArena.json" }, { - "name": "OrcaArena Generic PVA @0.2 nozzle", - "sub_path": "filament/OrcaArena Generic PVA @0.2 nozzle.json" + "name": "Generic PVA @OrcaArena 0.2 nozzle", + "sub_path": "filament/Generic PVA @OrcaArena 0.2 nozzle.json" }, { "name": "Arena TPU 95A @Arena X1C", diff --git a/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena 0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena 0.2 nozzle.json new file mode 100644 index 0000000000..f98408fe0f --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic ABS @OrcaArena 0.2 nozzle", + "inherits": "Generic ABS @OrcaArena base", + "renamed_from": "OrcaArena Generic ABS @0.2 nozzle;OrcaArena Generic ABS 0.2 nozzle", + "from": "system", + "setting_id": "mzx0hG9Xe9fIrkrW", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Orca Arena X1 Carbon 0.2 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena base.json similarity index 73% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json rename to resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena base.json index 8a635421ee..f2cd5abbf4 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @base.json +++ b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic ABS @base", + "name": "Generic ABS @OrcaArena base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OFetENFF", + "filament_id": "OFY9muEs", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA.json b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena.json similarity index 57% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic ASA.json rename to resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena.json index d092b1f64d..2a505d7ca1 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA.json +++ b/resources/profiles/OrcaArena/filament/Generic ABS @OrcaArena.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic ASA", - "inherits": "OrcaArena Generic ASA @base", + "name": "Generic ABS @OrcaArena", + "inherits": "Generic ABS @OrcaArena base", + "renamed_from": "OrcaArena Generic ABS", "from": "system", - "setting_id": "8KdojTD3bygYDxwh", + "setting_id": "ftTPQmVmsaD0n1GF", "instantiation": "true", "compatible_printers": [ "Orca Arena X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena 0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena 0.2 nozzle.json new file mode 100644 index 0000000000..77bd051b4e --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic ASA @OrcaArena 0.2 nozzle", + "inherits": "Generic ASA @OrcaArena base", + "renamed_from": "OrcaArena Generic ASA @0.2 nozzle;OrcaArena Generic ASA 0.2 nozzle", + "from": "system", + "setting_id": "rtFj6gFceWHdzTmO", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Orca Arena X1 Carbon 0.2 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena base.json similarity index 73% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json rename to resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena base.json index 26032a7d85..772c708dd8 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @base.json +++ b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic ASA @base", + "name": "Generic ASA @OrcaArena base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OFmzftED", + "filament_id": "OFLPAxz3", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC.json b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena.json similarity index 57% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PC.json rename to resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena.json index 024e76e0bc..0ee8d6cc20 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC.json +++ b/resources/profiles/OrcaArena/filament/Generic ASA @OrcaArena.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic PC", - "inherits": "OrcaArena Generic PC @base", + "name": "Generic ASA @OrcaArena", + "inherits": "Generic ASA @OrcaArena base", + "renamed_from": "OrcaArena Generic ASA", "from": "system", - "setting_id": "WCiW1Yi88MEZIO2h", + "setting_id": "V2Z1rxHqIqIuwP5O", "instantiation": "true", "compatible_printers": [ "Orca Arena X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json b/resources/profiles/OrcaArena/filament/Generic PA @OrcaArena.json similarity index 74% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json rename to resources/profiles/OrcaArena/filament/Generic PA @OrcaArena.json index a95e022740..87b0a67ed8 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA.json +++ b/resources/profiles/OrcaArena/filament/Generic PA @OrcaArena.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "OrcaArena Generic PA", + "name": "Generic PA @OrcaArena", "inherits": "fdm_filament_pa", + "renamed_from": "OrcaArena Generic PA", "from": "system", - "setting_id": "IintLqJOecQcKmA8", - "filament_id": "OFmnJNqY", + "setting_id": "KScdeqdB3UR6uvxs", + "filament_id": "OFg8ndtj", "instantiation": "true", "required_nozzle_HRC": [ "3" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json b/resources/profiles/OrcaArena/filament/Generic PA-CF @OrcaArena.json similarity index 81% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json rename to resources/profiles/OrcaArena/filament/Generic PA-CF @OrcaArena.json index 2621b3cf05..2d928201b7 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PA-CF.json +++ b/resources/profiles/OrcaArena/filament/Generic PA-CF @OrcaArena.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "OrcaArena Generic PA-CF", + "name": "Generic PA-CF @OrcaArena", "inherits": "fdm_filament_pa", + "renamed_from": "OrcaArena Generic PA-CF", "from": "system", - "setting_id": "XHOpI9EFQmYoJ3Sy", - "filament_id": "OF4xhTuK", + "setting_id": "xANIesGhsXwbTn3J", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena 0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena 0.2 nozzle.json new file mode 100644 index 0000000000..ad15f49a69 --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic PC @OrcaArena 0.2 nozzle", + "inherits": "Generic PC @OrcaArena base", + "renamed_from": "OrcaArena Generic PC @0.2 nozzle;OrcaArena Generic PC 0.2 nozzle", + "from": "system", + "setting_id": "AEKvB4RVBo2zOkdg", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Orca Arena X1 Carbon 0.2 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena base.json similarity index 73% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json rename to resources/profiles/OrcaArena/filament/Generic PC @OrcaArena base.json index 97bdbe2df1..3ea8fd8bd4 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PC @base", + "name": "Generic PC @OrcaArena base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OFXhZ3uY", + "filament_id": "OFLakOUI", "instantiation": "false", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS.json b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena.json similarity index 57% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic ABS.json rename to resources/profiles/OrcaArena/filament/Generic PC @OrcaArena.json index 773f58289e..b4302c3c47 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS.json +++ b/resources/profiles/OrcaArena/filament/Generic PC @OrcaArena.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic ABS", - "inherits": "OrcaArena Generic ABS @base", + "name": "Generic PC @OrcaArena", + "inherits": "Generic PC @OrcaArena base", + "renamed_from": "OrcaArena Generic PC", "from": "system", - "setting_id": "5aN0QkAneu6yEWZh", + "setting_id": "He4O4h8oEFsySDIJ", "instantiation": "true", "compatible_printers": [ "Orca Arena X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena 0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena 0.2 nozzle.json new file mode 100644 index 0000000000..1be2988356 --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic PETG @OrcaArena 0.2 nozzle", + "inherits": "Generic PETG @OrcaArena base", + "renamed_from": "OrcaArena Generic PETG @0.2 nozzle;OrcaArena Generic PETG 0.2 nozzle", + "from": "system", + "setting_id": "ZstQ3h8DGCpRWQJN", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Orca Arena X1 Carbon 0.2 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena base.json similarity index 94% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json rename to resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena base.json index a68c25c24a..4ec26aae2b 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PETG @base", + "name": "Generic PETG @OrcaArena base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFgSEwOZ", + "filament_id": "OFYPdQJh", "instantiation": "false", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena.json b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena.json new file mode 100644 index 0000000000..ad3260fe1c --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PETG @OrcaArena.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PETG @OrcaArena", + "inherits": "Generic PETG @OrcaArena base", + "renamed_from": "OrcaArena Generic PETG", + "from": "system", + "setting_id": "3puaC0EwFLvEnGH2", + "instantiation": "true", + "compatible_printers": [ + "Orca Arena X1 Carbon 0.4 nozzle", + "Orca Arena X1 Carbon 0.6 nozzle", + "Orca Arena X1 Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/Generic PETG-CF @Arena X1C.json b/resources/profiles/OrcaArena/filament/Generic PETG-CF @Arena X1C.json new file mode 100644 index 0000000000..f8741a22a9 --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PETG-CF @Arena X1C.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @Arena X1C", + "inherits": "Generic PETG-CF @OrcaArena base", + "renamed_from": "OrcaArena Generic PETG-CF @Arena X1C;OrcaArena Generic PETG-CF Arena X1C", + "from": "system", + "setting_id": "MeIL8qLFZytjvYrF", + "instantiation": "true", + "compatible_printers": [ + "Orca Arena X1 Carbon 0.4 nozzle", + "Orca Arena X1 Carbon 0.6 nozzle", + "Orca Arena X1 Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json b/resources/profiles/OrcaArena/filament/Generic PETG-CF @OrcaArena base.json similarity index 92% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json rename to resources/profiles/OrcaArena/filament/Generic PETG-CF @OrcaArena base.json index ba3364a5c4..754407c32a 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PETG-CF @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PETG-CF @base", + "name": "Generic PETG-CF @OrcaArena base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFwpkvqf", + "filament_id": "OFoYSJKi", "instantiation": "false", "filament_flow_ratio": [ "0.95" @@ -45,7 +45,7 @@ "40" ], "filament_vendor": [ - "Orca Arena" + "Generic" ], "filament_type": [ "PETG-CF" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena 0.2 nozzle.json similarity index 69% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @0.2 nozzle.json rename to resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena 0.2 nozzle.json index 261cd931f6..074732db01 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @0.2 nozzle.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena 0.2 nozzle.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic PLA @0.2 nozzle", - "inherits": "OrcaArena Generic PLA @base", + "name": "Generic PLA @OrcaArena 0.2 nozzle", + "inherits": "Generic PLA @OrcaArena base", + "renamed_from": "OrcaArena Generic PLA @0.2 nozzle;OrcaArena Generic PLA 0.2 nozzle", "from": "system", - "setting_id": "V1TMYgbxBLgciFa2", + "setting_id": "HjJH9JT9x9sFtVES", "instantiation": "true", "filament_max_volumetric_speed": [ "2" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena base.json similarity index 88% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json rename to resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena base.json index ade5634118..cec0b9cd19 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PLA @base", + "name": "Generic PLA @OrcaArena base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFD6kN7F", + "filament_id": "OFDSrzZ8", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @Arena X1C.json b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena.json similarity index 57% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @Arena X1C.json rename to resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena.json index 0a6e9a9dbc..9018f24583 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG-CF @Arena X1C.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA @OrcaArena.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic PETG-CF @Arena X1C", - "inherits": "OrcaArena Generic PETG-CF @base", + "name": "Generic PLA @OrcaArena", + "inherits": "Generic PLA @OrcaArena base", + "renamed_from": "OrcaArena Generic PLA", "from": "system", - "setting_id": "2OI2L2q50nSxam2z", + "setting_id": "TfkkCc6rILxDiZhR", "instantiation": "true", "compatible_printers": [ "Orca Arena X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json b/resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena base.json similarity index 88% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json rename to resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena base.json index 9a0dc73322..f73d037385 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PLA Silk @base", + "name": "Generic PLA Silk @OrcaArena base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFbeeFkl", + "filament_id": "OFesA6rF", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk.json b/resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena.json similarity index 63% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk.json rename to resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena.json index 3b6b96bb72..6afb0e48a2 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA Silk.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA Silk @OrcaArena.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "OrcaArena Generic PLA Silk", - "inherits": "OrcaArena Generic PLA Silk @base", + "name": "Generic PLA Silk @OrcaArena", + "inherits": "Generic PLA Silk @OrcaArena base", + "renamed_from": "OrcaArena Generic PLA Silk", "from": "system", - "setting_id": "WRy8oYxZ542SX6jO", + "setting_id": "rvJjX9QsHM1O1CGD", "instantiation": "true", "filament_max_volumetric_speed": [ "7.5" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json b/resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena base.json similarity index 92% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json rename to resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena base.json index c73b9fc480..79a2b7ba88 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PLA-CF @base", + "name": "Generic PLA-CF @OrcaArena base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFx0ZzFV", + "filament_id": "OFWbdGsC", "instantiation": "false", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena.json b/resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena.json new file mode 100644 index 0000000000..ced9245904 --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PLA-CF @OrcaArena.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PLA-CF @OrcaArena", + "inherits": "Generic PLA-CF @OrcaArena base", + "renamed_from": "OrcaArena Generic PLA-CF", + "from": "system", + "setting_id": "vexlQFuvVzpsYT0Z", + "instantiation": "true", + "compatible_printers": [ + "Orca Arena X1 Carbon 0.4 nozzle", + "Orca Arena X1 Carbon 0.6 nozzle", + "Orca Arena X1 Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena 0.2 nozzle.json b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena 0.2 nozzle.json new file mode 100644 index 0000000000..417ef65683 --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic PVA @OrcaArena 0.2 nozzle", + "inherits": "Generic PVA @OrcaArena base", + "renamed_from": "OrcaArena Generic PVA @0.2 nozzle;OrcaArena Generic PVA 0.2 nozzle", + "from": "system", + "setting_id": "jX00tEZaqsJvpoBT", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "0.5" + ], + "compatible_printers": [ + "Orca Arena X1 Carbon 0.2 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena base.json similarity index 79% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json rename to resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena base.json index 53da039f09..f44bc7f46c 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @base.json +++ b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "OrcaArena Generic PVA @base", + "name": "Generic PVA @OrcaArena base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OFdLdGgJ", + "filament_id": "OFDvXujf", "instantiation": "false", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena.json b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena.json new file mode 100644 index 0000000000..bf9cbcda7a --- /dev/null +++ b/resources/profiles/OrcaArena/filament/Generic PVA @OrcaArena.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PVA @OrcaArena", + "inherits": "Generic PVA @OrcaArena base", + "renamed_from": "OrcaArena Generic PVA", + "from": "system", + "setting_id": "S9TMm0n7t54fKHoM", + "instantiation": "true", + "compatible_printers": [ + "Orca Arena X1 Carbon 0.4 nozzle", + "Orca Arena X1 Carbon 0.6 nozzle", + "Orca Arena X1 Carbon 0.8 nozzle" + ] +} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json b/resources/profiles/OrcaArena/filament/Generic TPU @OrcaArena.json similarity index 80% rename from resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json rename to resources/profiles/OrcaArena/filament/Generic TPU @OrcaArena.json index 8593c5c779..75fcc13a79 100644 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic TPU.json +++ b/resources/profiles/OrcaArena/filament/Generic TPU @OrcaArena.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "OrcaArena Generic TPU", + "name": "Generic TPU @OrcaArena", "inherits": "fdm_filament_tpu", + "renamed_from": "OrcaArena Generic TPU", "from": "system", - "setting_id": "uPHnZUr5Sb16uKZm", - "filament_id": "OFU5N9jI", + "setting_id": "GBRnBtqYf9H8pQKU", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @0.2 nozzle.json deleted file mode 100644 index 37062950e4..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ABS @0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic ABS @0.2 nozzle", - "inherits": "OrcaArena Generic ABS @base", - "from": "system", - "setting_id": "o9UpKuDWgaJT7sM5", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "2" - ], - "compatible_printers": [ - "Orca Arena X1 Carbon 0.2 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @0.2 nozzle.json deleted file mode 100644 index 2d3f9a5026..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic ASA @0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic ASA @0.2 nozzle", - "inherits": "OrcaArena Generic ASA @base", - "from": "system", - "setting_id": "rV2Uymwz7aoouqiN", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "2" - ], - "compatible_printers": [ - "Orca Arena X1 Carbon 0.2 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @0.2 nozzle.json deleted file mode 100644 index 0a26869776..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PC @0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PC @0.2 nozzle", - "inherits": "OrcaArena Generic PC @base", - "from": "system", - "setting_id": "THS8jolD0RsYaFzY", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "1" - ], - "compatible_printers": [ - "Orca Arena X1 Carbon 0.2 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @0.2 nozzle.json deleted file mode 100644 index 375031f137..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG @0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PETG @0.2 nozzle", - "inherits": "OrcaArena Generic PETG @base", - "from": "system", - "setting_id": "jcoeFJFmDil7U667", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "1" - ], - "compatible_printers": [ - "Orca Arena X1 Carbon 0.2 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG.json deleted file mode 100644 index 8771a7b609..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PETG.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PETG", - "inherits": "OrcaArena Generic PETG @base", - "from": "system", - "setting_id": "1hFOFT9YOdnKBw1d", - "instantiation": "true", - "compatible_printers": [ - "Orca Arena X1 Carbon 0.4 nozzle", - "Orca Arena X1 Carbon 0.6 nozzle", - "Orca Arena X1 Carbon 0.8 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF.json deleted file mode 100644 index 4a04e96360..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA-CF.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PLA-CF", - "inherits": "OrcaArena Generic PLA-CF @base", - "from": "system", - "setting_id": "qHV6B5JvmdtAQeNs", - "instantiation": "true", - "compatible_printers": [ - "Orca Arena X1 Carbon 0.4 nozzle", - "Orca Arena X1 Carbon 0.6 nozzle", - "Orca Arena X1 Carbon 0.8 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA.json deleted file mode 100644 index 2a3aef423c..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PLA.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PLA", - "inherits": "OrcaArena Generic PLA @base", - "from": "system", - "setting_id": "jGG0BiyRGgPDP8rB", - "instantiation": "true", - "compatible_printers": [ - "Orca Arena X1 Carbon 0.4 nozzle", - "Orca Arena X1 Carbon 0.6 nozzle", - "Orca Arena X1 Carbon 0.8 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @0.2 nozzle.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @0.2 nozzle.json deleted file mode 100644 index 8892aac57f..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA @0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PVA @0.2 nozzle", - "inherits": "OrcaArena Generic PVA @base", - "from": "system", - "setting_id": "N6p6wvNCjR4Lv0WC", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "0.5" - ], - "compatible_printers": [ - "Orca Arena X1 Carbon 0.2 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA.json b/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA.json deleted file mode 100644 index 42a68b5fee..0000000000 --- a/resources/profiles/OrcaArena/filament/OrcaArena Generic PVA.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "OrcaArena Generic PVA", - "inherits": "OrcaArena Generic PVA @base", - "from": "system", - "setting_id": "Qh5TOtrBfOFul0OC", - "instantiation": "true", - "compatible_printers": [ - "Orca Arena X1 Carbon 0.4 nozzle", - "Orca Arena X1 Carbon 0.6 nozzle", - "Orca Arena X1 Carbon 0.8 nozzle" - ] -} diff --git a/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json b/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json index 362496ba28..e375904da2 100644 --- a/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json +++ b/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "", "hotend_model": "", - "default_materials": "OrcaArena Generic PLA Silk;OrcaArena Generic PLA;Arena PLA Matte @Arena X1C;Arena PLA Basic @Arena X1C;Arena ABS @Arena X1C;Arena PC @Arena X1C;Arena Support W @Arena X1C;Arena TPU 95A @Arena X1C;PolyTerra PLA @Arena X1C;PolyLite PLA @Arena X1C;" + "default_materials": "Generic PLA Silk @OrcaArena;Generic PLA @OrcaArena;Arena PLA Matte @Arena X1C;Arena PLA Basic @Arena X1C;Arena ABS @Arena X1C;Arena PC @Arena X1C;Arena Support W @Arena X1C;Arena TPU 95A @Arena X1C;PolyTerra PLA @Arena X1C;PolyLite PLA @Arena X1C;" } diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index e7f658a844..2f9e6a7f02 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.04.00.04", + "version": "02.04.00.05", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json index 08a8158d91..958fbc75a6 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Generic PP-GF @base.json @@ -3,6 +3,9 @@ "name": "Generic PP-GF @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "OFNiSLfL", - "instantiation": "false" + "filament_id": "OFsijjtH", + "instantiation": "false", + "filament_type": [ + "PP-GF" + ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json index 52d96d24d1..ad1c0ef27e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Panchroma PLA Satin @base.json @@ -1,7 +1,6 @@ { "type": "filament", "name": "Panchroma PLA Satin @base", - "renamed_from": "Panchroma PLA Stain @base", "inherits": "fdm_filament_pla", "from": "system", "filament_id": "OFPkCJKE", diff --git a/resources/profiles/Peopoly.json b/resources/profiles/Peopoly.json index ca6b59fb2b..2a73d251f1 100644 --- a/resources/profiles/Peopoly.json +++ b/resources/profiles/Peopoly.json @@ -1,6 +1,6 @@ { "name": "Peopoly", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Peopoly configurations", "machine_model_list": [ @@ -105,8 +105,8 @@ "sub_path": "filament/fdm_filament_pla.json" }, { - "name": "Peopoly Generic ABS", - "sub_path": "filament/Peopoly Generic ABS.json" + "name": "Generic ABS @Peopoly", + "sub_path": "filament/Generic ABS @Peopoly.json" }, { "name": "Peopoly Lancer ABS-GF", @@ -117,16 +117,16 @@ "sub_path": "filament/Peopoly Lancer PET-CF.json" }, { - "name": "Peopoly Generic PETG", - "sub_path": "filament/Peopoly Generic PETG.json" + "name": "Generic PETG @Peopoly", + "sub_path": "filament/Generic PETG @Peopoly.json" }, { "name": "Peopoly Lancer PETG-C", "sub_path": "filament/Peopoly Lancer PETG-C.json" }, { - "name": "Peopoly Generic PLA", - "sub_path": "filament/Peopoly Generic PLA.json" + "name": "Generic PLA @Peopoly", + "sub_path": "filament/Generic PLA @Peopoly.json" }, { "name": "Peopoly Lancer PLA-C", diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json b/resources/profiles/Peopoly/filament/Generic ABS @Peopoly.json similarity index 73% rename from resources/profiles/Peopoly/filament/Peopoly Generic ABS.json rename to resources/profiles/Peopoly/filament/Generic ABS @Peopoly.json index ce0711b7e9..d9e2ae777c 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic ABS.json +++ b/resources/profiles/Peopoly/filament/Generic ABS @Peopoly.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Peopoly Generic ABS", + "name": "Generic ABS @Peopoly", "inherits": "fdm_filament_abs", + "renamed_from": "Peopoly Generic ABS", "from": "system", - "setting_id": "ICnZH4LkPD7c6Lmm", - "filament_id": "OFqOk9Ww", + "setting_id": "HLq9urLhPLW0du6x", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json b/resources/profiles/Peopoly/filament/Generic PETG @Peopoly.json similarity index 80% rename from resources/profiles/Peopoly/filament/Peopoly Generic PETG.json rename to resources/profiles/Peopoly/filament/Generic PETG @Peopoly.json index 2d0b34240a..fc4501866a 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic PETG.json +++ b/resources/profiles/Peopoly/filament/Generic PETG @Peopoly.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Peopoly Generic PETG", + "name": "Generic PETG @Peopoly", "inherits": "fdm_filament_petg", + "renamed_from": "Peopoly Generic PETG", "from": "system", - "setting_id": "7LVGx2lNqhBDdYiJ", - "filament_id": "OFIeCuXj", + "setting_id": "dgMXFTyLovrMR56j", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json b/resources/profiles/Peopoly/filament/Generic PLA @Peopoly.json similarity index 79% rename from resources/profiles/Peopoly/filament/Peopoly Generic PLA.json rename to resources/profiles/Peopoly/filament/Generic PLA @Peopoly.json index 3a24fb3bc7..42cc687493 100644 --- a/resources/profiles/Peopoly/filament/Peopoly Generic PLA.json +++ b/resources/profiles/Peopoly/filament/Generic PLA @Peopoly.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Peopoly Generic PLA", - "renamed_from": "Peopoly Generic PLA 0.8 nozzle", + "name": "Generic PLA @Peopoly", + "renamed_from": "Peopoly Generic PLA 0.8 nozzle;Peopoly Generic PLA", "inherits": "fdm_filament_pla", "from": "system", - "setting_id": "KNsVV4dvEWAAkzDE", - "filament_id": "OFRDLNM9", + "setting_id": "OVbRqCpU0SXiZmot", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Peopoly/machine/Peopoly Magneto X.json b/resources/profiles/Peopoly/machine/Peopoly Magneto X.json index 031c3b2484..02553f502d 100644 --- a/resources/profiles/Peopoly/machine/Peopoly Magneto X.json +++ b/resources/profiles/Peopoly/machine/Peopoly Magneto X.json @@ -8,5 +8,5 @@ "bed_model": "magnetox_model.stl", "bed_texture": "magnetox_model_texture.svg", "hotend_model": "", - "default_materials": "Peopoly Generic PLA" + "default_materials": "Generic PLA @Peopoly" } diff --git a/resources/profiles/Peopoly/machine/fdm_klipper_common.json b/resources/profiles/Peopoly/machine/fdm_klipper_common.json index f89d97d9a6..e9a5185767 100644 --- a/resources/profiles/Peopoly/machine/fdm_klipper_common.json +++ b/resources/profiles/Peopoly/machine/fdm_klipper_common.json @@ -127,7 +127,7 @@ "1" ], "default_filament_profile": [ - "Peopoly Generic PLA" + "Generic PLA @Peopoly" ], "default_print_profile": "fdm_process_peopoly_common_0_2", "bed_exclude_area": [ diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index 91e26a9fe9..ecbbe179e7 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -1,6 +1,6 @@ { "name": "Prusa", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Prusa configurations", "machine_model_list": [ @@ -1449,168 +1449,168 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Prusa Generic ABS @base", - "sub_path": "filament/Prusa Generic ABS @base.json" + "name": "Generic ABS @Prusa base", + "sub_path": "filament/Generic ABS @Prusa base.json" }, { - "name": "Prusa Generic ABS", - "sub_path": "filament/Prusa Generic ABS.json" + "name": "Generic ABS @Prusa", + "sub_path": "filament/Generic ABS @Prusa.json" }, { - "name": "Prusa Generic ABS @CORE One", - "sub_path": "filament/Prusa Generic ABS @CORE One.json" + "name": "Generic ABS @Prusa CORE One", + "sub_path": "filament/Generic ABS @Prusa CORE One.json" }, { - "name": "Prusa Generic ABS @MINIIS", - "sub_path": "filament/Prusa Generic ABS @MINIIS.json" + "name": "Generic ABS @Prusa MINIIS", + "sub_path": "filament/Generic ABS @Prusa MINIIS.json" }, { - "name": "Prusa Generic ABS @MINIIS 0.25", - "sub_path": "filament/Prusa Generic ABS @MINIIS 0.25.json" + "name": "Generic ABS @Prusa MINIIS 0.25", + "sub_path": "filament/Generic ABS @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic ABS @MINIIS 0.6", - "sub_path": "filament/Prusa Generic ABS @MINIIS 0.6.json" + "name": "Generic ABS @Prusa MINIIS 0.6", + "sub_path": "filament/Generic ABS @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic ABS @MINIIS 0.8", - "sub_path": "filament/Prusa Generic ABS @MINIIS 0.8.json" + "name": "Generic ABS @Prusa MINIIS 0.8", + "sub_path": "filament/Generic ABS @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic ABS @MK3.5", - "sub_path": "filament/Prusa Generic ABS @MK3.5.json" + "name": "Generic ABS @Prusa MK3.5", + "sub_path": "filament/Generic ABS @Prusa MK3.5.json" }, { - "name": "Prusa Generic ABS @MK3.5 0.25", - "sub_path": "filament/Prusa Generic ABS @MK3.5 0.25.json" + "name": "Generic ABS @Prusa MK3.5 0.25", + "sub_path": "filament/Generic ABS @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic ABS @MK3.5 0.6", - "sub_path": "filament/Prusa Generic ABS @MK3.5 0.6.json" + "name": "Generic ABS @Prusa MK3.5 0.6", + "sub_path": "filament/Generic ABS @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic ABS @MK3.5 0.8", - "sub_path": "filament/Prusa Generic ABS @MK3.5 0.8.json" + "name": "Generic ABS @Prusa MK3.5 0.8", + "sub_path": "filament/Generic ABS @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic ABS @MK4", - "sub_path": "filament/Prusa Generic ABS @MK4.json" + "name": "Generic ABS @Prusa MK4", + "sub_path": "filament/Generic ABS @Prusa MK4.json" }, { - "name": "Prusa Generic ABS @MK4S", - "sub_path": "filament/Prusa Generic ABS @MK4S.json" + "name": "Generic ABS @Prusa MK4S", + "sub_path": "filament/Generic ABS @Prusa MK4S.json" }, { - "name": "Prusa Generic ABS @XL", - "sub_path": "filament/Prusa Generic ABS @XL.json" + "name": "Generic ABS @Prusa XL", + "sub_path": "filament/Generic ABS @Prusa XL.json" }, { - "name": "Prusa Generic ABS @XL 5T", - "sub_path": "filament/Prusa Generic ABS @XL 5T.json" + "name": "Generic ABS @Prusa XL 5T", + "sub_path": "filament/Generic ABS @Prusa XL 5T.json" }, { - "name": "Prusa Generic ABS HF @base", - "sub_path": "filament/Prusa Generic ABS HF @base.json" + "name": "Generic ABS HF @Prusa base", + "sub_path": "filament/Generic ABS HF @Prusa base.json" }, { - "name": "Prusa Generic ABS HF @MINIIS", - "sub_path": "filament/Prusa Generic ABS HF @MINIIS.json" + "name": "Generic ABS HF @Prusa MINIIS", + "sub_path": "filament/Generic ABS HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic ABS HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic ABS HF @MINIIS 0.6.json" + "name": "Generic ABS HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic ABS HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic ABS HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic ABS HF @MINIIS 0.8.json" + "name": "Generic ABS HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic ABS HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic ABS HF @MK3.5", - "sub_path": "filament/Prusa Generic ABS HF @MK3.5.json" + "name": "Generic ABS HF @Prusa MK3.5", + "sub_path": "filament/Generic ABS HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic ABS HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic ABS HF @MK3.5 0.6.json" + "name": "Generic ABS HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic ABS HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic ABS HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic ABS HF @MK3.5 0.8.json" + "name": "Generic ABS HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic ABS HF @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic ASA", - "sub_path": "filament/Prusa Generic ASA.json" + "name": "Generic ASA @Prusa", + "sub_path": "filament/Generic ASA @Prusa.json" }, { - "name": "Prusa Generic ASA @CORE One", - "sub_path": "filament/Prusa Generic ASA @CORE One.json" + "name": "Generic ASA @Prusa CORE One", + "sub_path": "filament/Generic ASA @Prusa CORE One.json" }, { - "name": "Prusa Generic ASA @MINIIS", - "sub_path": "filament/Prusa Generic ASA @MINIIS.json" + "name": "Generic ASA @Prusa MINIIS", + "sub_path": "filament/Generic ASA @Prusa MINIIS.json" }, { - "name": "Prusa Generic ASA @MINIIS 0.25", - "sub_path": "filament/Prusa Generic ASA @MINIIS 0.25.json" + "name": "Generic ASA @Prusa MINIIS 0.25", + "sub_path": "filament/Generic ASA @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic ASA @MINIIS 0.6", - "sub_path": "filament/Prusa Generic ASA @MINIIS 0.6.json" + "name": "Generic ASA @Prusa MINIIS 0.6", + "sub_path": "filament/Generic ASA @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic ASA @MINIIS 0.8", - "sub_path": "filament/Prusa Generic ASA @MINIIS 0.8.json" + "name": "Generic ASA @Prusa MINIIS 0.8", + "sub_path": "filament/Generic ASA @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic ASA @MK3.5", - "sub_path": "filament/Prusa Generic ASA @MK3.5.json" + "name": "Generic ASA @Prusa MK3.5", + "sub_path": "filament/Generic ASA @Prusa MK3.5.json" }, { - "name": "Prusa Generic ASA @MK3.5 0.25", - "sub_path": "filament/Prusa Generic ASA @MK3.5 0.25.json" + "name": "Generic ASA @Prusa MK3.5 0.25", + "sub_path": "filament/Generic ASA @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic ASA @MK3.5 0.6", - "sub_path": "filament/Prusa Generic ASA @MK3.5 0.6.json" + "name": "Generic ASA @Prusa MK3.5 0.6", + "sub_path": "filament/Generic ASA @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic ASA @MK3.5 0.8", - "sub_path": "filament/Prusa Generic ASA @MK3.5 0.8.json" + "name": "Generic ASA @Prusa MK3.5 0.8", + "sub_path": "filament/Generic ASA @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic ASA @MK4", - "sub_path": "filament/Prusa Generic ASA @MK4.json" + "name": "Generic ASA @Prusa MK4", + "sub_path": "filament/Generic ASA @Prusa MK4.json" }, { - "name": "Prusa Generic ASA @MK4S", - "sub_path": "filament/Prusa Generic ASA @MK4S.json" + "name": "Generic ASA @Prusa MK4S", + "sub_path": "filament/Generic ASA @Prusa MK4S.json" }, { - "name": "Prusa Generic ASA HF @base", - "sub_path": "filament/Prusa Generic ASA HF @base.json" + "name": "Generic ASA HF @Prusa base", + "sub_path": "filament/Generic ASA HF @Prusa base.json" }, { - "name": "Prusa Generic ASA HF @MINIIS", - "sub_path": "filament/Prusa Generic ASA HF @MINIIS.json" + "name": "Generic ASA HF @Prusa MINIIS", + "sub_path": "filament/Generic ASA HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic ASA HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic ASA HF @MINIIS 0.6.json" + "name": "Generic ASA HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic ASA HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic ASA HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic ASA HF @MINIIS 0.8.json" + "name": "Generic ASA HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic ASA HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic ASA HF @MK3.5", - "sub_path": "filament/Prusa Generic ASA HF @MK3.5.json" + "name": "Generic ASA HF @Prusa MK3.5", + "sub_path": "filament/Generic ASA HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic ASA HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic ASA HF @MK3.5 0.6.json" + "name": "Generic ASA HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic ASA HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic ASA HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic ASA HF @MK3.5 0.8.json" + "name": "Generic ASA HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic ASA HF @Prusa MK3.5 0.8.json" }, { "name": "Prusament ASA @CORE One", @@ -1625,96 +1625,96 @@ "sub_path": "filament/Prusament ASA @XL 5T.json" }, { - "name": "Prusa Generic FLEX @XL", - "sub_path": "filament/Prusa Generic FLEX @XL.json" + "name": "Generic FLEX @Prusa XL", + "sub_path": "filament/Generic FLEX @Prusa XL.json" }, { - "name": "Prusa Generic FLEX @XL 5T", - "sub_path": "filament/Prusa Generic FLEX @XL 5T.json" + "name": "Generic FLEX @Prusa XL 5T", + "sub_path": "filament/Generic FLEX @Prusa XL 5T.json" }, { - "name": "Prusa Generic TPU @CORE One", - "sub_path": "filament/Prusa Generic TPU @CORE One.json" + "name": "Generic TPU @Prusa CORE One", + "sub_path": "filament/Generic TPU @Prusa CORE One.json" }, { - "name": "Prusa Generic PA @base", - "sub_path": "filament/Prusa Generic PA @base.json" + "name": "Generic PA @Prusa base", + "sub_path": "filament/Generic PA @Prusa base.json" }, { - "name": "Prusa Generic PA", - "sub_path": "filament/Prusa Generic PA.json" + "name": "Generic PA @Prusa", + "sub_path": "filament/Generic PA @Prusa.json" }, { - "name": "Prusa Generic PA @MINIIS", - "sub_path": "filament/Prusa Generic PA @MINIIS.json" + "name": "Generic PA @Prusa MINIIS", + "sub_path": "filament/Generic PA @Prusa MINIIS.json" }, { - "name": "Prusa Generic PA @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PA @MINIIS 0.25.json" + "name": "Generic PA @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PA @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PA @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PA @MINIIS 0.6.json" + "name": "Generic PA @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PA @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PA @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PA @MINIIS 0.8.json" + "name": "Generic PA @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PA @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PA @MK3.5", - "sub_path": "filament/Prusa Generic PA @MK3.5.json" + "name": "Generic PA @Prusa MK3.5", + "sub_path": "filament/Generic PA @Prusa MK3.5.json" }, { - "name": "Prusa Generic PA @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PA @MK3.5 0.25.json" + "name": "Generic PA @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PA @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PA @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PA @MK3.5 0.6.json" + "name": "Generic PA @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PA @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PA @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PA @MK3.5 0.8.json" + "name": "Generic PA @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PA @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PA-CF @base", - "sub_path": "filament/Prusa Generic PA-CF @base.json" + "name": "Generic PA-CF @Prusa base", + "sub_path": "filament/Generic PA-CF @Prusa base.json" }, { - "name": "Prusa Generic PA-CF", - "sub_path": "filament/Prusa Generic PA-CF.json" + "name": "Generic PA-CF @Prusa", + "sub_path": "filament/Generic PA-CF @Prusa.json" }, { - "name": "Prusa Generic PA-CF @MINIIS", - "sub_path": "filament/Prusa Generic PA-CF @MINIIS.json" + "name": "Generic PA-CF @Prusa MINIIS", + "sub_path": "filament/Generic PA-CF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PA-CF @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PA-CF @MINIIS 0.25.json" + "name": "Generic PA-CF @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PA-CF @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PA-CF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PA-CF @MINIIS 0.6.json" + "name": "Generic PA-CF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PA-CF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PA-CF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PA-CF @MINIIS 0.8.json" + "name": "Generic PA-CF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PA-CF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PA-CF @MK3.5", - "sub_path": "filament/Prusa Generic PA-CF @MK3.5.json" + "name": "Generic PA-CF @Prusa MK3.5", + "sub_path": "filament/Generic PA-CF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PA-CF @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PA-CF @MK3.5 0.25.json" + "name": "Generic PA-CF @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PA-CF @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PA-CF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PA-CF @MK3.5 0.6.json" + "name": "Generic PA-CF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PA-CF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PA-CF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PA-CF @MK3.5 0.8.json" + "name": "Generic PA-CF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PA-CF @Prusa MK3.5 0.8.json" }, { "name": "Prusament PA-CF @CORE One", @@ -1729,68 +1729,68 @@ "sub_path": "filament/Prusament PA-CF @XL 5T.json" }, { - "name": "Prusa Generic PC", - "sub_path": "filament/Prusa Generic PC.json" + "name": "Generic PC @Prusa", + "sub_path": "filament/Generic PC @Prusa.json" }, { - "name": "Prusa Generic PC @MINIIS", - "sub_path": "filament/Prusa Generic PC @MINIIS.json" + "name": "Generic PC @Prusa MINIIS", + "sub_path": "filament/Generic PC @Prusa MINIIS.json" }, { - "name": "Prusa Generic PC @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PC @MINIIS 0.25.json" + "name": "Generic PC @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PC @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PC @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PC @MINIIS 0.6.json" + "name": "Generic PC @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PC @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PC @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PC @MINIIS 0.8.json" + "name": "Generic PC @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PC @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PC @MK3.5", - "sub_path": "filament/Prusa Generic PC @MK3.5.json" + "name": "Generic PC @Prusa MK3.5", + "sub_path": "filament/Generic PC @Prusa MK3.5.json" }, { - "name": "Prusa Generic PC @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PC @MK3.5 0.25.json" + "name": "Generic PC @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PC @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PC @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PC @MK3.5 0.6.json" + "name": "Generic PC @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PC @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PC @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PC @MK3.5 0.8.json" + "name": "Generic PC @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PC @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PC HF @base", - "sub_path": "filament/Prusa Generic PC HF @base.json" + "name": "Generic PC HF @Prusa base", + "sub_path": "filament/Generic PC HF @Prusa base.json" }, { - "name": "Prusa Generic PC HF @MINIIS", - "sub_path": "filament/Prusa Generic PC HF @MINIIS.json" + "name": "Generic PC HF @Prusa MINIIS", + "sub_path": "filament/Generic PC HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PC HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PC HF @MINIIS 0.6.json" + "name": "Generic PC HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PC HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PC HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PC HF @MINIIS 0.8.json" + "name": "Generic PC HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PC HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PC HF @MK3.5", - "sub_path": "filament/Prusa Generic PC HF @MK3.5.json" + "name": "Generic PC HF @Prusa MK3.5", + "sub_path": "filament/Generic PC HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PC HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PC HF @MK3.5 0.6.json" + "name": "Generic PC HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PC HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PC HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PC HF @MK3.5 0.8.json" + "name": "Generic PC HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PC HF @Prusa MK3.5 0.8.json" }, { "name": "Prusament PC Blend @CORE One", @@ -1817,92 +1817,92 @@ "sub_path": "filament/Prusament PC-CF @XL 5T.json" }, { - "name": "Prusa Generic PETG @base", - "sub_path": "filament/Prusa Generic PETG @base.json" + "name": "Generic PETG @Prusa base", + "sub_path": "filament/Generic PETG @Prusa base.json" }, { - "name": "Prusa Generic PETG", - "sub_path": "filament/Prusa Generic PETG.json" + "name": "Generic PETG @Prusa", + "sub_path": "filament/Generic PETG @Prusa.json" }, { - "name": "Prusa Generic PETG @CORE One", - "sub_path": "filament/Prusa Generic PETG @CORE One.json" + "name": "Generic PETG @Prusa CORE One", + "sub_path": "filament/Generic PETG @Prusa CORE One.json" }, { - "name": "Prusa Generic PETG @MINIIS", - "sub_path": "filament/Prusa Generic PETG @MINIIS.json" + "name": "Generic PETG @Prusa MINIIS", + "sub_path": "filament/Generic PETG @Prusa MINIIS.json" }, { - "name": "Prusa Generic PETG @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PETG @MINIIS 0.25.json" + "name": "Generic PETG @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PETG @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PETG @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PETG @MINIIS 0.6.json" + "name": "Generic PETG @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PETG @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PETG @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PETG @MINIIS 0.8.json" + "name": "Generic PETG @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PETG @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PETG @MK3.5", - "sub_path": "filament/Prusa Generic PETG @MK3.5.json" + "name": "Generic PETG @Prusa MK3.5", + "sub_path": "filament/Generic PETG @Prusa MK3.5.json" }, { - "name": "Prusa Generic PETG @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PETG @MK3.5 0.25.json" + "name": "Generic PETG @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PETG @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PETG @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PETG @MK3.5 0.6.json" + "name": "Generic PETG @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PETG @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PETG @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PETG @MK3.5 0.8.json" + "name": "Generic PETG @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PETG @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PETG @MK4", - "sub_path": "filament/Prusa Generic PETG @MK4.json" + "name": "Generic PETG @Prusa MK4", + "sub_path": "filament/Generic PETG @Prusa MK4.json" }, { - "name": "Prusa Generic PETG @MK4S", - "sub_path": "filament/Prusa Generic PETG @MK4S.json" + "name": "Generic PETG @Prusa MK4S", + "sub_path": "filament/Generic PETG @Prusa MK4S.json" }, { - "name": "Prusa Generic PETG @XL", - "sub_path": "filament/Prusa Generic PETG @XL.json" + "name": "Generic PETG @Prusa XL", + "sub_path": "filament/Generic PETG @Prusa XL.json" }, { - "name": "Prusa Generic PETG @XL 5T", - "sub_path": "filament/Prusa Generic PETG @XL 5T.json" + "name": "Generic PETG @Prusa XL 5T", + "sub_path": "filament/Generic PETG @Prusa XL 5T.json" }, { - "name": "Prusa Generic PETG HF @base", - "sub_path": "filament/Prusa Generic PETG HF @base.json" + "name": "Generic PETG HF @Prusa base", + "sub_path": "filament/Generic PETG HF @Prusa base.json" }, { - "name": "Prusa Generic PETG HF @MINIIS", - "sub_path": "filament/Prusa Generic PETG HF @MINIIS.json" + "name": "Generic PETG HF @Prusa MINIIS", + "sub_path": "filament/Generic PETG HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PETG HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PETG HF @MINIIS 0.6.json" + "name": "Generic PETG HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PETG HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PETG HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PETG HF @MINIIS 0.8.json" + "name": "Generic PETG HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PETG HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PETG HF @MK3.5", - "sub_path": "filament/Prusa Generic PETG HF @MK3.5.json" + "name": "Generic PETG HF @Prusa MK3.5", + "sub_path": "filament/Generic PETG HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PETG HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PETG HF @MK3.5 0.6.json" + "name": "Generic PETG HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PETG HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PETG HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PETG HF @MK3.5 0.8.json" + "name": "Generic PETG HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PETG HF @Prusa MK3.5 0.8.json" }, { "name": "Prusament PETG @CORE One", @@ -1921,136 +1921,136 @@ "sub_path": "filament/Prusament PETG @XL 5T.json" }, { - "name": "Prusa Generic PLA @base", - "sub_path": "filament/Prusa Generic PLA @base.json" + "name": "Generic PLA @Prusa base", + "sub_path": "filament/Generic PLA @Prusa base.json" }, { - "name": "Prusa Generic PLA", - "sub_path": "filament/Prusa Generic PLA.json" + "name": "Generic PLA @Prusa", + "sub_path": "filament/Generic PLA @Prusa.json" }, { - "name": "Prusa Generic PLA @CORE One", - "sub_path": "filament/Prusa Generic PLA @CORE One.json" + "name": "Generic PLA @Prusa CORE One", + "sub_path": "filament/Generic PLA @Prusa CORE One.json" }, { - "name": "Prusa Generic PLA @MINIIS", - "sub_path": "filament/Prusa Generic PLA @MINIIS.json" + "name": "Generic PLA @Prusa MINIIS", + "sub_path": "filament/Generic PLA @Prusa MINIIS.json" }, { - "name": "Prusa Generic PLA @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PLA @MINIIS 0.25.json" + "name": "Generic PLA @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PLA @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PLA @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PLA @MINIIS 0.6.json" + "name": "Generic PLA @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PLA @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PLA @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PLA @MINIIS 0.8.json" + "name": "Generic PLA @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PLA @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PLA @MK3.5", - "sub_path": "filament/Prusa Generic PLA @MK3.5.json" + "name": "Generic PLA @Prusa MK3.5", + "sub_path": "filament/Generic PLA @Prusa MK3.5.json" }, { - "name": "Prusa Generic PLA @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PLA @MK3.5 0.25.json" + "name": "Generic PLA @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PLA @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PLA @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PLA @MK3.5 0.6.json" + "name": "Generic PLA @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PLA @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PLA @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PLA @MK3.5 0.8.json" + "name": "Generic PLA @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PLA @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PLA @MK4", - "sub_path": "filament/Prusa Generic PLA @MK4.json" + "name": "Generic PLA @Prusa MK4", + "sub_path": "filament/Generic PLA @Prusa MK4.json" }, { - "name": "Prusa Generic PLA @MK4S", - "sub_path": "filament/Prusa Generic PLA @MK4S.json" + "name": "Generic PLA @Prusa MK4S", + "sub_path": "filament/Generic PLA @Prusa MK4S.json" }, { - "name": "Prusa Generic PLA @XL", - "sub_path": "filament/Prusa Generic PLA @XL.json" + "name": "Generic PLA @Prusa XL", + "sub_path": "filament/Generic PLA @Prusa XL.json" }, { - "name": "Prusa Generic PLA @XL 5T", - "sub_path": "filament/Prusa Generic PLA @XL 5T.json" + "name": "Generic PLA @Prusa XL 5T", + "sub_path": "filament/Generic PLA @Prusa XL 5T.json" }, { - "name": "Prusa Generic PLA HF @base", - "sub_path": "filament/Prusa Generic PLA HF @base.json" + "name": "Generic PLA HF @Prusa base", + "sub_path": "filament/Generic PLA HF @Prusa base.json" }, { - "name": "Prusa Generic PLA HF @MINIIS", - "sub_path": "filament/Prusa Generic PLA HF @MINIIS.json" + "name": "Generic PLA HF @Prusa MINIIS", + "sub_path": "filament/Generic PLA HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PLA HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PLA HF @MINIIS 0.6.json" + "name": "Generic PLA HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PLA HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PLA HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PLA HF @MINIIS 0.8.json" + "name": "Generic PLA HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PLA HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PLA HF @MK3.5", - "sub_path": "filament/Prusa Generic PLA HF @MK3.5.json" + "name": "Generic PLA HF @Prusa MK3.5", + "sub_path": "filament/Generic PLA HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PLA HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PLA HF @MK3.5 0.6.json" + "name": "Generic PLA HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PLA HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PLA HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PLA HF @MK3.5 0.8.json" + "name": "Generic PLA HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PLA HF @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PLA Silk @CORE One", - "sub_path": "filament/Prusa Generic PLA Silk @CORE One.json" + "name": "Generic PLA Silk @Prusa CORE One", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One.json" }, { - "name": "Prusa Generic PLA-CF @base", - "sub_path": "filament/Prusa Generic PLA-CF @base.json" + "name": "Generic PLA-CF @Prusa base", + "sub_path": "filament/Generic PLA-CF @Prusa base.json" }, { - "name": "Prusa Generic PLA-CF", - "sub_path": "filament/Prusa Generic PLA-CF.json" + "name": "Generic PLA-CF @Prusa", + "sub_path": "filament/Generic PLA-CF @Prusa.json" }, { - "name": "Prusa Generic PLA-CF @MINIIS", - "sub_path": "filament/Prusa Generic PLA-CF @MINIIS.json" + "name": "Generic PLA-CF @Prusa MINIIS", + "sub_path": "filament/Generic PLA-CF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PLA-CF @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PLA-CF @MINIIS 0.25.json" + "name": "Generic PLA-CF @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PLA-CF @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PLA-CF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PLA-CF @MINIIS 0.6.json" + "name": "Generic PLA-CF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PLA-CF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PLA-CF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PLA-CF @MINIIS 0.8.json" + "name": "Generic PLA-CF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PLA-CF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PLA-CF @MK3.5", - "sub_path": "filament/Prusa Generic PLA-CF @MK3.5.json" + "name": "Generic PLA-CF @Prusa MK3.5", + "sub_path": "filament/Generic PLA-CF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PLA-CF @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PLA-CF @MK3.5 0.25.json" + "name": "Generic PLA-CF @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PLA-CF @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PLA-CF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PLA-CF @MK3.5 0.6.json" + "name": "Generic PLA-CF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PLA-CF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PLA-CF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PLA-CF @MK3.5 0.8.json" + "name": "Generic PLA-CF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PLA-CF @Prusa MK3.5 0.8.json" }, { "name": "Prusament PLA @CORE One", @@ -2085,72 +2085,72 @@ "sub_path": "filament/Prusament rPLA @XL 5T.json" }, { - "name": "Prusa Generic PVA @base", - "sub_path": "filament/Prusa Generic PVA @base.json" + "name": "Generic PVA @Prusa base", + "sub_path": "filament/Generic PVA @Prusa base.json" }, { - "name": "Prusa Generic PVA", - "sub_path": "filament/Prusa Generic PVA.json" + "name": "Generic PVA @Prusa", + "sub_path": "filament/Generic PVA @Prusa.json" }, { - "name": "Prusa Generic PVA @MINIIS", - "sub_path": "filament/Prusa Generic PVA @MINIIS.json" + "name": "Generic PVA @Prusa MINIIS", + "sub_path": "filament/Generic PVA @Prusa MINIIS.json" }, { - "name": "Prusa Generic PVA @MINIIS 0.25", - "sub_path": "filament/Prusa Generic PVA @MINIIS 0.25.json" + "name": "Generic PVA @Prusa MINIIS 0.25", + "sub_path": "filament/Generic PVA @Prusa MINIIS 0.25.json" }, { - "name": "Prusa Generic PVA @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PVA @MINIIS 0.6.json" + "name": "Generic PVA @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PVA @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PVA @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PVA @MINIIS 0.8.json" + "name": "Generic PVA @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PVA @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PVA @MK3.5", - "sub_path": "filament/Prusa Generic PVA @MK3.5.json" + "name": "Generic PVA @Prusa MK3.5", + "sub_path": "filament/Generic PVA @Prusa MK3.5.json" }, { - "name": "Prusa Generic PVA @MK3.5 0.25", - "sub_path": "filament/Prusa Generic PVA @MK3.5 0.25.json" + "name": "Generic PVA @Prusa MK3.5 0.25", + "sub_path": "filament/Generic PVA @Prusa MK3.5 0.25.json" }, { - "name": "Prusa Generic PVA @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PVA @MK3.5 0.6.json" + "name": "Generic PVA @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PVA @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PVA @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PVA @MK3.5 0.8.json" + "name": "Generic PVA @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PVA @Prusa MK3.5 0.8.json" }, { - "name": "Prusa Generic PVA HF @base", - "sub_path": "filament/Prusa Generic PVA HF @base.json" + "name": "Generic PVA HF @Prusa base", + "sub_path": "filament/Generic PVA HF @Prusa base.json" }, { - "name": "Prusa Generic PVA HF @MINIIS", - "sub_path": "filament/Prusa Generic PVA HF @MINIIS.json" + "name": "Generic PVA HF @Prusa MINIIS", + "sub_path": "filament/Generic PVA HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic PVA HF @MINIIS 0.6", - "sub_path": "filament/Prusa Generic PVA HF @MINIIS 0.6.json" + "name": "Generic PVA HF @Prusa MINIIS 0.6", + "sub_path": "filament/Generic PVA HF @Prusa MINIIS 0.6.json" }, { - "name": "Prusa Generic PVA HF @MINIIS 0.8", - "sub_path": "filament/Prusa Generic PVA HF @MINIIS 0.8.json" + "name": "Generic PVA HF @Prusa MINIIS 0.8", + "sub_path": "filament/Generic PVA HF @Prusa MINIIS 0.8.json" }, { - "name": "Prusa Generic PVA HF @MK3.5", - "sub_path": "filament/Prusa Generic PVA HF @MK3.5.json" + "name": "Generic PVA HF @Prusa MK3.5", + "sub_path": "filament/Generic PVA HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic PVA HF @MK3.5 0.6", - "sub_path": "filament/Prusa Generic PVA HF @MK3.5 0.6.json" + "name": "Generic PVA HF @Prusa MK3.5 0.6", + "sub_path": "filament/Generic PVA HF @Prusa MK3.5 0.6.json" }, { - "name": "Prusa Generic PVA HF @MK3.5 0.8", - "sub_path": "filament/Prusa Generic PVA HF @MK3.5 0.8.json" + "name": "Generic PVA HF @Prusa MK3.5 0.8", + "sub_path": "filament/Generic PVA HF @Prusa MK3.5 0.8.json" }, { "name": "Prusament PVB @CORE One", @@ -2165,112 +2165,112 @@ "sub_path": "filament/Prusament PVB @XL 5T.json" }, { - "name": "Prusa Generic TPU @base", - "sub_path": "filament/Prusa Generic TPU @base.json" + "name": "Generic TPU @Prusa base", + "sub_path": "filament/Generic TPU @Prusa base.json" }, { - "name": "Prusa Generic TPU", - "sub_path": "filament/Prusa Generic TPU.json" + "name": "Generic TPU @Prusa", + "sub_path": "filament/Generic TPU @Prusa.json" }, { - "name": "Prusa Generic TPU @MINIIS", - "sub_path": "filament/Prusa Generic TPU @MINIIS.json" + "name": "Generic TPU @Prusa MINIIS", + "sub_path": "filament/Generic TPU @Prusa MINIIS.json" }, { - "name": "Prusa Generic TPU @MK3.5", - "sub_path": "filament/Prusa Generic TPU @MK3.5.json" + "name": "Generic TPU @Prusa MK3.5", + "sub_path": "filament/Generic TPU @Prusa MK3.5.json" }, { - "name": "Prusa Generic TPU @MK4", - "sub_path": "filament/Prusa Generic TPU @MK4.json" + "name": "Generic TPU @Prusa MK4", + "sub_path": "filament/Generic TPU @Prusa MK4.json" }, { - "name": "Prusa Generic TPU @MK4S", - "sub_path": "filament/Prusa Generic TPU @MK4S.json" + "name": "Generic TPU @Prusa MK4S", + "sub_path": "filament/Generic TPU @Prusa MK4S.json" }, { - "name": "Prusa Generic TPU HF @base", - "sub_path": "filament/Prusa Generic TPU HF @base.json" + "name": "Generic TPU HF @Prusa base", + "sub_path": "filament/Generic TPU HF @Prusa base.json" }, { - "name": "Prusa Generic TPU HF @MINIIS", - "sub_path": "filament/Prusa Generic TPU HF @MINIIS.json" + "name": "Generic TPU HF @Prusa MINIIS", + "sub_path": "filament/Generic TPU HF @Prusa MINIIS.json" }, { - "name": "Prusa Generic TPU HF @MK3.5", - "sub_path": "filament/Prusa Generic TPU HF @MK3.5.json" + "name": "Generic TPU HF @Prusa MK3.5", + "sub_path": "filament/Generic TPU HF @Prusa MK3.5.json" }, { - "name": "Prusa Generic ABS @CORE One 0.6", - "sub_path": "filament/Prusa Generic ABS @CORE One 0.6.json" + "name": "Generic ABS @Prusa CORE One 0.6", + "sub_path": "filament/Generic ABS @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic ABS @CORE One 0.8", - "sub_path": "filament/Prusa Generic ABS @CORE One 0.8.json" + "name": "Generic ABS @Prusa CORE One 0.8", + "sub_path": "filament/Generic ABS @Prusa CORE One 0.8.json" }, { - "name": "Prusa Generic ABS @CORE One HF 0.4", - "sub_path": "filament/Prusa Generic ABS @CORE One HF 0.4.json" + "name": "Generic ABS @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.4.json" }, { - "name": "Prusa Generic ABS @CORE One HF 0.5", - "sub_path": "filament/Prusa Generic ABS @CORE One HF 0.5.json" + "name": "Generic ABS @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.5.json" }, { - "name": "Prusa Generic ABS @CORE One HF 0.6", - "sub_path": "filament/Prusa Generic ABS @CORE One HF 0.6.json" + "name": "Generic ABS @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.6.json" }, { - "name": "Prusa Generic ABS @CORE One HF 0.8", - "sub_path": "filament/Prusa Generic ABS @CORE One HF 0.8.json" + "name": "Generic ABS @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.8.json" }, { - "name": "Prusa Generic ABS @MK4S 0.6", - "sub_path": "filament/Prusa Generic ABS @MK4S 0.6.json" + "name": "Generic ABS @Prusa MK4S 0.6", + "sub_path": "filament/Generic ABS @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic ABS @MK4S 0.8", - "sub_path": "filament/Prusa Generic ABS @MK4S 0.8.json" + "name": "Generic ABS @Prusa MK4S 0.8", + "sub_path": "filament/Generic ABS @Prusa MK4S 0.8.json" }, { - "name": "Prusa Generic ABS @MK4S HF0.4", - "sub_path": "filament/Prusa Generic ABS @MK4S HF0.4.json" + "name": "Generic ABS @Prusa MK4S HF0.4", + "sub_path": "filament/Generic ABS @Prusa MK4S HF0.4.json" }, { - "name": "Prusa Generic ASA @CORE One 0.6", - "sub_path": "filament/Prusa Generic ASA @CORE One 0.6.json" + "name": "Generic ASA @Prusa CORE One 0.6", + "sub_path": "filament/Generic ASA @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic ASA @CORE One 0.8", - "sub_path": "filament/Prusa Generic ASA @CORE One 0.8.json" + "name": "Generic ASA @Prusa CORE One 0.8", + "sub_path": "filament/Generic ASA @Prusa CORE One 0.8.json" }, { - "name": "Prusa Generic ASA @CORE One HF 0.4", - "sub_path": "filament/Prusa Generic ASA @CORE One HF 0.4.json" + "name": "Generic ASA @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.4.json" }, { - "name": "Prusa Generic ASA @CORE One HF 0.5", - "sub_path": "filament/Prusa Generic ASA @CORE One HF 0.5.json" + "name": "Generic ASA @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.5.json" }, { - "name": "Prusa Generic ASA @CORE One HF 0.6", - "sub_path": "filament/Prusa Generic ASA @CORE One HF 0.6.json" + "name": "Generic ASA @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.6.json" }, { - "name": "Prusa Generic ASA @CORE One HF 0.8", - "sub_path": "filament/Prusa Generic ASA @CORE One HF 0.8.json" + "name": "Generic ASA @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.8.json" }, { - "name": "Prusa Generic ASA @MK4S 0.6", - "sub_path": "filament/Prusa Generic ASA @MK4S 0.6.json" + "name": "Generic ASA @Prusa MK4S 0.6", + "sub_path": "filament/Generic ASA @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic ASA @MK4S 0.8", - "sub_path": "filament/Prusa Generic ASA @MK4S 0.8.json" + "name": "Generic ASA @Prusa MK4S 0.8", + "sub_path": "filament/Generic ASA @Prusa MK4S 0.8.json" }, { - "name": "Prusa Generic ASA @MK4S HF0.4", - "sub_path": "filament/Prusa Generic ASA @MK4S HF0.4.json" + "name": "Generic ASA @Prusa MK4S HF0.4", + "sub_path": "filament/Generic ASA @Prusa MK4S HF0.4.json" }, { "name": "Prusament ASA @CORE One 0.6", @@ -2297,12 +2297,12 @@ "sub_path": "filament/Prusament ASA @CORE One HF 0.8.json" }, { - "name": "Prusa Generic TPU @CORE One 0.6", - "sub_path": "filament/Prusa Generic TPU @CORE One 0.6.json" + "name": "Generic TPU @Prusa CORE One 0.6", + "sub_path": "filament/Generic TPU @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic TPU @CORE One 0.8", - "sub_path": "filament/Prusa Generic TPU @CORE One 0.8.json" + "name": "Generic TPU @Prusa CORE One 0.8", + "sub_path": "filament/Generic TPU @Prusa CORE One 0.8.json" }, { "name": "Prusament PA-CF @CORE One 0.6", @@ -2345,40 +2345,40 @@ "sub_path": "filament/Prusament PC-CF @CORE One 0.8.json" }, { - "name": "Prusa Generic PETG @CORE One 0.6", - "sub_path": "filament/Prusa Generic PETG @CORE One 0.6.json" + "name": "Generic PETG @Prusa CORE One 0.6", + "sub_path": "filament/Generic PETG @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic PETG @CORE One 0.8", - "sub_path": "filament/Prusa Generic PETG @CORE One 0.8.json" + "name": "Generic PETG @Prusa CORE One 0.8", + "sub_path": "filament/Generic PETG @Prusa CORE One 0.8.json" }, { - "name": "Prusa Generic PETG @CORE One HF 0.4", - "sub_path": "filament/Prusa Generic PETG @CORE One HF 0.4.json" + "name": "Generic PETG @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.4.json" }, { - "name": "Prusa Generic PETG @CORE One HF 0.5", - "sub_path": "filament/Prusa Generic PETG @CORE One HF 0.5.json" + "name": "Generic PETG @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.5.json" }, { - "name": "Prusa Generic PETG @CORE One HF 0.6", - "sub_path": "filament/Prusa Generic PETG @CORE One HF 0.6.json" + "name": "Generic PETG @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.6.json" }, { - "name": "Prusa Generic PETG @CORE One HF 0.8", - "sub_path": "filament/Prusa Generic PETG @CORE One HF 0.8.json" + "name": "Generic PETG @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.8.json" }, { - "name": "Prusa Generic PETG @MK4S 0.6", - "sub_path": "filament/Prusa Generic PETG @MK4S 0.6.json" + "name": "Generic PETG @Prusa MK4S 0.6", + "sub_path": "filament/Generic PETG @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic PETG @MK4S 0.8", - "sub_path": "filament/Prusa Generic PETG @MK4S 0.8.json" + "name": "Generic PETG @Prusa MK4S 0.8", + "sub_path": "filament/Generic PETG @Prusa MK4S 0.8.json" }, { - "name": "Prusa Generic PETG @MK4S HF0.4", - "sub_path": "filament/Prusa Generic PETG @MK4S HF0.4.json" + "name": "Generic PETG @Prusa MK4S HF0.4", + "sub_path": "filament/Generic PETG @Prusa MK4S HF0.4.json" }, { "name": "Prusament PETG @CORE One 0.6", @@ -2405,52 +2405,52 @@ "sub_path": "filament/Prusament PETG @CORE One HF 0.8.json" }, { - "name": "Prusa Generic PLA @CORE One 0.6", - "sub_path": "filament/Prusa Generic PLA @CORE One 0.6.json" + "name": "Generic PLA @Prusa CORE One 0.6", + "sub_path": "filament/Generic PLA @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic PLA @CORE One 0.8", - "sub_path": "filament/Prusa Generic PLA @CORE One 0.8.json" + "name": "Generic PLA @Prusa CORE One 0.8", + "sub_path": "filament/Generic PLA @Prusa CORE One 0.8.json" }, { - "name": "Prusa Generic PLA @CORE One HF 0.4", - "sub_path": "filament/Prusa Generic PLA @CORE One HF 0.4.json" + "name": "Generic PLA @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.4.json" }, { - "name": "Prusa Generic PLA @CORE One HF 0.5", - "sub_path": "filament/Prusa Generic PLA @CORE One HF 0.5.json" + "name": "Generic PLA @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.5.json" }, { - "name": "Prusa Generic PLA @CORE One HF 0.6", - "sub_path": "filament/Prusa Generic PLA @CORE One HF 0.6.json" + "name": "Generic PLA @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.6.json" }, { - "name": "Prusa Generic PLA @CORE One HF 0.8", - "sub_path": "filament/Prusa Generic PLA @CORE One HF 0.8.json" + "name": "Generic PLA @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.8.json" }, { - "name": "Prusa Generic PLA @MK4S 0.6", - "sub_path": "filament/Prusa Generic PLA @MK4S 0.6.json" + "name": "Generic PLA @Prusa MK4S 0.6", + "sub_path": "filament/Generic PLA @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic PLA @MK4S 0.8", - "sub_path": "filament/Prusa Generic PLA @MK4S 0.8.json" + "name": "Generic PLA @Prusa MK4S 0.8", + "sub_path": "filament/Generic PLA @Prusa MK4S 0.8.json" }, { - "name": "Prusa Generic PLA @MK4S HF0.4", - "sub_path": "filament/Prusa Generic PLA @MK4S HF0.4.json" + "name": "Generic PLA @Prusa MK4S HF0.4", + "sub_path": "filament/Generic PLA @Prusa MK4S HF0.4.json" }, { - "name": "Prusa Generic PLA Silk @MK4S", - "sub_path": "filament/Prusa Generic PLA Silk @MK4S.json" + "name": "Generic PLA Silk @Prusa MK4S", + "sub_path": "filament/Generic PLA Silk @Prusa MK4S.json" }, { - "name": "Prusa Generic PLA Silk @CORE One 0.6", - "sub_path": "filament/Prusa Generic PLA Silk @CORE One 0.6.json" + "name": "Generic PLA Silk @Prusa CORE One 0.6", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.6.json" }, { - "name": "Prusa Generic PLA Silk @CORE One 0.8", - "sub_path": "filament/Prusa Generic PLA Silk @CORE One 0.8.json" + "name": "Generic PLA Silk @Prusa CORE One 0.8", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.8.json" }, { "name": "Prusament PLA @CORE One 0.6", @@ -2493,68 +2493,68 @@ "sub_path": "filament/Prusament PVB @CORE One 0.8.json" }, { - "name": "Prusa Generic TPU @MK4S 0.6", - "sub_path": "filament/Prusa Generic TPU @MK4S 0.6.json" + "name": "Generic TPU @Prusa MK4S 0.6", + "sub_path": "filament/Generic TPU @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic TPU @MK4S 0.8", - "sub_path": "filament/Prusa Generic TPU @MK4S 0.8.json" + "name": "Generic TPU @Prusa MK4S 0.8", + "sub_path": "filament/Generic TPU @Prusa MK4S 0.8.json" }, { - "name": "Prusa Generic ABS @MK4S HF0.5", - "sub_path": "filament/Prusa Generic ABS @MK4S HF0.5.json" + "name": "Generic ABS @Prusa MK4S HF0.5", + "sub_path": "filament/Generic ABS @Prusa MK4S HF0.5.json" }, { - "name": "Prusa Generic ABS @MK4S HF0.6", - "sub_path": "filament/Prusa Generic ABS @MK4S HF0.6.json" + "name": "Generic ABS @Prusa MK4S HF0.6", + "sub_path": "filament/Generic ABS @Prusa MK4S HF0.6.json" }, { - "name": "Prusa Generic ABS @MK4S HF0.8", - "sub_path": "filament/Prusa Generic ABS @MK4S HF0.8.json" + "name": "Generic ABS @Prusa MK4S HF0.8", + "sub_path": "filament/Generic ABS @Prusa MK4S HF0.8.json" }, { - "name": "Prusa Generic ASA @MK4S HF0.5", - "sub_path": "filament/Prusa Generic ASA @MK4S HF0.5.json" + "name": "Generic ASA @Prusa MK4S HF0.5", + "sub_path": "filament/Generic ASA @Prusa MK4S HF0.5.json" }, { - "name": "Prusa Generic ASA @MK4S HF0.6", - "sub_path": "filament/Prusa Generic ASA @MK4S HF0.6.json" + "name": "Generic ASA @Prusa MK4S HF0.6", + "sub_path": "filament/Generic ASA @Prusa MK4S HF0.6.json" }, { - "name": "Prusa Generic ASA @MK4S HF0.8", - "sub_path": "filament/Prusa Generic ASA @MK4S HF0.8.json" + "name": "Generic ASA @Prusa MK4S HF0.8", + "sub_path": "filament/Generic ASA @Prusa MK4S HF0.8.json" }, { - "name": "Prusa Generic PETG @MK4S HF0.5", - "sub_path": "filament/Prusa Generic PETG @MK4S HF0.5.json" + "name": "Generic PETG @Prusa MK4S HF0.5", + "sub_path": "filament/Generic PETG @Prusa MK4S HF0.5.json" }, { - "name": "Prusa Generic PETG @MK4S HF0.6", - "sub_path": "filament/Prusa Generic PETG @MK4S HF0.6.json" + "name": "Generic PETG @Prusa MK4S HF0.6", + "sub_path": "filament/Generic PETG @Prusa MK4S HF0.6.json" }, { - "name": "Prusa Generic PETG @MK4S HF0.8", - "sub_path": "filament/Prusa Generic PETG @MK4S HF0.8.json" + "name": "Generic PETG @Prusa MK4S HF0.8", + "sub_path": "filament/Generic PETG @Prusa MK4S HF0.8.json" }, { - "name": "Prusa Generic PLA @MK4S HF0.5", - "sub_path": "filament/Prusa Generic PLA @MK4S HF0.5.json" + "name": "Generic PLA @Prusa MK4S HF0.5", + "sub_path": "filament/Generic PLA @Prusa MK4S HF0.5.json" }, { - "name": "Prusa Generic PLA @MK4S HF0.6", - "sub_path": "filament/Prusa Generic PLA @MK4S HF0.6.json" + "name": "Generic PLA @Prusa MK4S HF0.6", + "sub_path": "filament/Generic PLA @Prusa MK4S HF0.6.json" }, { - "name": "Prusa Generic PLA @MK4S HF0.8", - "sub_path": "filament/Prusa Generic PLA @MK4S HF0.8.json" + "name": "Generic PLA @Prusa MK4S HF0.8", + "sub_path": "filament/Generic PLA @Prusa MK4S HF0.8.json" }, { - "name": "Prusa Generic PLA Silk @MK4S 0.6", - "sub_path": "filament/Prusa Generic PLA Silk @MK4S 0.6.json" + "name": "Generic PLA Silk @Prusa MK4S 0.6", + "sub_path": "filament/Generic PLA Silk @Prusa MK4S 0.6.json" }, { - "name": "Prusa Generic PLA Silk @MK4S 0.8", - "sub_path": "filament/Prusa Generic PLA Silk @MK4S 0.8.json" + "name": "Generic PLA Silk @Prusa MK4S 0.8", + "sub_path": "filament/Generic PLA Silk @Prusa MK4S 0.8.json" } ], "machine_list": [ diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json new file mode 100644 index 0000000000..8ba18e9dde --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa CORE One 0.6", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One 0.6;Prusa Generic ABS CORE One 0.6", + "from": "system", + "setting_id": "PYQhstNvKFJ7qsxe", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One 0.6 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.8.json new file mode 100644 index 0000000000..2981c2ef63 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.8.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa CORE One 0.8", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One 0.8;Prusa Generic ABS CORE One 0.8", + "from": "system", + "setting_id": "ExG49agessyLCVpW", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One 0.8 nozzle" + ], + "fan_cooling_layer_time": [ + "40" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.4.json similarity index 71% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.4.json index 84d2ed8ea6..f2e61055ab 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @CORE One HF 0.4", - "inherits": "Prusa Generic ABS @CORE One", + "name": "Generic ABS @Prusa CORE One HF 0.4", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One HF 0.4;Prusa Generic ABS CORE One HF 0.4", "from": "system", - "setting_id": "Sp0sbcvt0EqZ59NT", - "filament_id": "OFvGc67v", + "setting_id": "ASYz8yASE82tQDII", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.5.json similarity index 71% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.5.json index 568f8468e5..14782a747a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @CORE One HF 0.5", - "inherits": "Prusa Generic ABS @CORE One", + "name": "Generic ABS @Prusa CORE One HF 0.5", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One HF 0.5;Prusa Generic ABS CORE One HF 0.5", "from": "system", - "setting_id": "U1ih5tnkViqI3vya", - "filament_id": "OFvGc67v", + "setting_id": "mzZCm8XDmAR23YR6", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.6.json similarity index 71% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.6.json index debed7aed6..be46455a73 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @CORE One HF 0.6", - "inherits": "Prusa Generic ABS @CORE One", + "name": "Generic ABS @Prusa CORE One HF 0.6", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One HF 0.6;Prusa Generic ABS CORE One HF 0.6", "from": "system", - "setting_id": "MuqHvIoTlM1Pbs8j", - "filament_id": "OFvGc67v", + "setting_id": "gJhX2KBpk4wfXIj0", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.8.json similarity index 74% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.8.json index 66655ce8e8..f4d2954ad7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One HF 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @CORE One HF 0.8", - "inherits": "Prusa Generic ABS @CORE One", + "name": "Generic ABS @Prusa CORE One HF 0.8", + "inherits": "Generic ABS @Prusa CORE One", + "renamed_from": "Prusa Generic ABS @CORE One HF 0.8;Prusa Generic ABS CORE One HF 0.8", "from": "system", - "setting_id": "Wbpc2Ddzc3zPnQVr", - "filament_id": "OFvGc67v", + "setting_id": "JbGYSVdZTeFJXaVk", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json similarity index 92% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json index 784eb0ef4d..7339d20a7c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @CORE One", + "name": "Generic ABS @Prusa CORE One", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @CORE One;Prusa Generic ABS CORE One", "from": "system", - "setting_id": "NajoyXhNAiyJyaRq", - "filament_id": "OFvGc67v", + "setting_id": "0k31oXq1pLQsHvrj", + "filament_id": "OFY9muEs", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.25.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.25.json index ca834afe43..0fe673d854 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @MINIIS 0.25", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa MINIIS 0.25", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @MINIIS 0.25;Prusa Generic ABS MINIIS 0.25", "from": "system", - "setting_id": "NdGEi7BdP59bqz53", + "setting_id": "T7U23i3I3ALV2oEd", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.6.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.6.json index b4c5c636bf..3b9fa495e3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @MINIIS 0.6", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa MINIIS 0.6", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @MINIIS 0.6;Prusa Generic ABS MINIIS 0.6", "from": "system", - "setting_id": "f8RXAaEZ13jSgN9u", + "setting_id": "iZdNxczgKBs0zIiI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.8.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.8.json index 7b847c26b0..e9d5d7554b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @MINIIS 0.8", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa MINIIS 0.8", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @MINIIS 0.8;Prusa Generic ABS MINIIS 0.8", "from": "system", - "setting_id": "0QdQCdtcKqM9HhpD", + "setting_id": "f6fZt6LNgXSHjInj", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS.json index 35bf33de08..9f6569d6e9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @MINIIS", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa MINIIS", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @MINIIS;Prusa Generic ABS MINIIS", "from": "system", - "setting_id": "LmdcShjNmbZ8E5fo", + "setting_id": "ZqiVOVIYGAbB1SPk", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.25.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.25.json index aacddbfd2d..0a36c04f02 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK3.5 0.25", + "name": "Generic ABS @Prusa MK3.5 0.25", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @MK3.5 0.25;Prusa Generic ABS MK3.5 0.25", "from": "system", - "setting_id": "bQgom9OdLzHf862f", - "filament_id": "OFvGc67v", + "setting_id": "IjZS8VJrGg6fRiI2", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.6.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.6.json index 1b45ec65e7..04626e6ad8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK3.5 0.6", + "name": "Generic ABS @Prusa MK3.5 0.6", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @MK3.5 0.6;Prusa Generic ABS MK3.5 0.6", "from": "system", - "setting_id": "juio4SnE9x7bcYdO", - "filament_id": "OFvGc67v", + "setting_id": "iJ2u6LgWCZd2zaPJ", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.8.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.8.json index dfc5fbc984..4e65b7e329 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK3.5 0.8", + "name": "Generic ABS @Prusa MK3.5 0.8", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @MK3.5 0.8;Prusa Generic ABS MK3.5 0.8", "from": "system", - "setting_id": "dRt2nKkJ0saWba5s", - "filament_id": "OFvGc67v", + "setting_id": "m8neIe1dfWt5Klbq", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5.json index d0cc74cc63..075e055e72 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK3.5", + "name": "Generic ABS @Prusa MK3.5", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @MK3.5;Prusa Generic ABS MK3.5", "from": "system", - "setting_id": "etTLu2Uk95XriBxT", - "filament_id": "OFvGc67v", + "setting_id": "EEc6F9uzIkv6nFib", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4.json similarity index 86% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK4.json index 6b4f8d9fdf..9ab147b678 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK4", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa MK4", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @MK4;Prusa Generic ABS MK4", "from": "system", - "setting_id": "Yeqfgyq1l0b1tCaT", + "setting_id": "MVcRPldYJo5fnXh8", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json new file mode 100644 index 0000000000..7371c1f2f9 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa MK4S 0.6", + "inherits": "Generic ABS @Prusa MK4S", + "renamed_from": "Prusa Generic ABS @MK4S 0.6;Prusa Generic ABS MK4S 0.6", + "from": "system", + "setting_id": "aNRfxkoYTEG3NPV1", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json new file mode 100644 index 0000000000..bf0e8419cf --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa MK4S 0.8", + "inherits": "Generic ABS @Prusa MK4S", + "renamed_from": "Prusa Generic ABS @MK4S 0.8;Prusa Generic ABS MK4S 0.8", + "from": "system", + "setting_id": "sL7NL7GOf52fzxnj", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.4.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.4.json index ecd8ec0872..84aca85d1a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK4S HF0.4", - "inherits": "Prusa Generic ABS @MK4S", + "name": "Generic ABS @Prusa MK4S HF0.4", + "inherits": "Generic ABS @Prusa MK4S", + "renamed_from": "Prusa Generic ABS @MK4S HF0.4;Prusa Generic ABS MK4S HF0.4", "from": "system", - "setting_id": "8iqhyZkLiVCvZYLa", - "filament_id": "OFvGc67v", + "setting_id": "usm5Dycg7z1b1o1v", + "filament_id": "OFY9muEs", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.5.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.5.json new file mode 100644 index 0000000000..cb9f3ccebc --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.5.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa MK4S HF0.5", + "inherits": "Generic ABS @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ABS @MK4S HF0.5;Prusa Generic ABS MK4S HF0.5", + "from": "system", + "setting_id": "EdrmoUsReFVn5EWW", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_max_volumetric_speed": [ + "27" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.6.json new file mode 100644 index 0000000000..2327e2d1cc --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.6.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa MK4S HF0.6", + "inherits": "Generic ABS @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ABS @MK4S HF0.6;Prusa Generic ABS MK4S HF0.6", + "from": "system", + "setting_id": "lcxvk4AN6z8NGdKv", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "filament_max_volumetric_speed": [ + "34" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.8.json new file mode 100644 index 0000000000..81bf85e41c --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S HF0.8.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa MK4S HF0.8", + "inherits": "Generic ABS @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ABS @MK4S HF0.8;Prusa Generic ABS MK4S HF0.8", + "from": "system", + "setting_id": "VTSZGauVB9yGzOJD", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.8 nozzle" + ], + "fan_min_speed": "15", + "filament_max_volumetric_speed": [ + "36" + ], + "slow_down_layer_time": "25" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json index 37762490e5..c454e1d79b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS @MK4S", + "name": "Generic ABS @Prusa MK4S", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @MK4S;Prusa Generic ABS MK4S", "from": "system", - "setting_id": "mDDX6Hdt6Ee00Iqb", - "filament_id": "OFvGc67v", + "setting_id": "6xkFvOyWtTQNXYAm", + "filament_id": "OFY9muEs", "instantiation": "true", "close_fan_the_first_x_layers": "4", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json index 38559e4b26..7d53f66645 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL 5T.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @XL 5T", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa XL 5T", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @XL 5T;Prusa Generic ABS XL 5T", "from": "system", - "setting_id": "BVYagI9PtDtO1Jhu", + "setting_id": "XfavDzEzzrXDQVUC", "instantiation": "true", "nozzle_temperature_intial_layer": "255", "nozzle_temperature": "255", diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json similarity index 90% rename from resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json index e40a10cbeb..abf7986c12 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @XL.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS @XL", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa XL", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS @XL;Prusa Generic ABS XL", "from": "system", - "setting_id": "fN9NUlg8l5DWy4LN", + "setting_id": "HYHkGEjr6Kid2Xg2", "instantiation": "true", "nozzle_temperature_intial_layer": "255", "nozzle_temperature": "255", diff --git a/resources/profiles/Anker/filament/Anker Generic ABS @base.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic ABS @base.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa base.json index c4982fcfb4..265216328f 100644 --- a/resources/profiles/Anker/filament/Anker Generic ABS @base.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic ABS @base", + "name": "Generic ABS @Prusa base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OF3P0BQA", + "filament_id": "OFY9muEs", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic ABS.json rename to resources/profiles/Prusa/filament/Generic ABS @Prusa.json index 9fef1f871c..0c10f8f297 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS", - "inherits": "Prusa Generic ABS @base", + "name": "Generic ABS @Prusa", + "inherits": "Generic ABS @Prusa base", + "renamed_from": "Prusa Generic ABS", "from": "system", - "setting_id": "pqQMpMgbSN3XvTdK", + "setting_id": "RBSSZVt1NCAz4x3V", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json index f8959a77b2..071e689280 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MINIIS 0.6", - "inherits": "Prusa Generic ABS HF @base", + "name": "Generic ABS HF @Prusa MINIIS 0.6", + "inherits": "Generic ABS HF @Prusa base", + "renamed_from": "Prusa Generic ABS HF @MINIIS 0.6;Prusa Generic ABS HF MINIIS 0.6", "from": "system", - "setting_id": "86pFdkE3ly08xst7", + "setting_id": "L6copDR26trR0D8B", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json index 63c1207fd9..ca0b250240 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MINIIS 0.8", - "inherits": "Prusa Generic ABS HF @base", + "name": "Generic ABS HF @Prusa MINIIS 0.8", + "inherits": "Generic ABS HF @Prusa base", + "renamed_from": "Prusa Generic ABS HF @MINIIS 0.8;Prusa Generic ABS HF MINIIS 0.8", "from": "system", - "setting_id": "yn9imamHaXlFDsPr", + "setting_id": "oxiwspATW960u3eZ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json index 358aa57b6d..6acc1844e7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MINIIS", - "inherits": "Prusa Generic ABS HF @base", + "name": "Generic ABS HF @Prusa MINIIS", + "inherits": "Generic ABS HF @Prusa base", + "renamed_from": "Prusa Generic ABS HF @MINIIS;Prusa Generic ABS HF MINIIS", "from": "system", - "setting_id": "KFoCfgUW9k9Yglwj", + "setting_id": "KcRRWqB7hrovzBng", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.6.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.6.json index 10b456d822..5e446b1507 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MK3.5 0.6", + "name": "Generic ABS HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS HF @MK3.5 0.6;Prusa Generic ABS HF MK3.5 0.6", "from": "system", - "setting_id": "IF0vGesJrPxKZhhP", - "filament_id": "OFyeSq8A", + "setting_id": "ELwxwCcaOKeCUqoB", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.8.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.8.json index abd3a2fc9e..e5f48f3390 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MK3.5 0.8", + "name": "Generic ABS HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS HF @MK3.5 0.8;Prusa Generic ABS HF MK3.5 0.8", "from": "system", - "setting_id": "Bl3iXBs56hdXM9SE", - "filament_id": "OFyeSq8A", + "setting_id": "xWMzscdlR6llxFKQ", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5.json index 02c86e018b..9c1f224149 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @MK3.5", + "name": "Generic ABS HF @Prusa MK3.5", "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS HF @MK3.5;Prusa Generic ABS HF MK3.5", "from": "system", - "setting_id": "0luFxwjErjX80SXh", - "filament_id": "OFyeSq8A", + "setting_id": "n9Xu8L69l5rs6VZF", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json rename to resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json index a1745176f2..adeb00182e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS HF @base.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic ABS HF @base", + "name": "Generic ABS HF @Prusa base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "OFyeSq8A", + "filament_id": "OF55jHAJ", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json new file mode 100644 index 0000000000..0fa54a9d21 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Generic ASA @Prusa CORE One 0.6", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One 0.6;Prusa Generic ASA CORE One 0.6", + "from": "system", + "setting_id": "WJzGT568OrlSqxjt", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One 0.6 nozzle" + ], + "nozzle_temperature": [ + "255" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json similarity index 50% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json index c112241e63..db78ff7eeb 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One 0.8", - "inherits": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One 0.8", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One 0.8;Prusa Generic ASA CORE One 0.8", "from": "system", - "setting_id": "jwPZBZ4B116kCVu9", - "filament_id": "OFoJcr46", + "setting_id": "VtxVQIuWVkP6W3aN", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json similarity index 74% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json index 04bf35f2e7..18a1b68fb3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One HF 0.4", - "inherits": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One HF 0.4", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One HF 0.4;Prusa Generic ASA CORE One HF 0.4", "from": "system", - "setting_id": "3SHxmODIq9SCK4Kd", - "filament_id": "OFoJcr46", + "setting_id": "eKDfiVRE59itoppm", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json similarity index 74% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json index dfe8fec3fe..dd7c08b25f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One HF 0.5", - "inherits": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One HF 0.5", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One HF 0.5;Prusa Generic ASA CORE One HF 0.5", "from": "system", - "setting_id": "RBSMuMnrcTyregVJ", - "filament_id": "OFoJcr46", + "setting_id": "ZjHf5Vvtf4ESNnWb", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json index f74efb4310..7ca03b1c37 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One HF 0.6", - "inherits": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One HF 0.6", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One HF 0.6;Prusa Generic ASA CORE One HF 0.6", "from": "system", - "setting_id": "5ezNirZa3m7Oi1Ts", - "filament_id": "OFoJcr46", + "setting_id": "aRDgUgQJWdNDJx5c", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json similarity index 76% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json index 8d6bb1a685..7fe2a7d8bf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One HF 0.8", - "inherits": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One HF 0.8", + "inherits": "Generic ASA @Prusa CORE One", + "renamed_from": "Prusa Generic ASA @CORE One HF 0.8;Prusa Generic ASA CORE One HF 0.8", "from": "system", - "setting_id": "EtHBkeDF0LvudfBi", - "filament_id": "OFoJcr46", + "setting_id": "UQYl8pGvqg2D9zJX", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json similarity index 92% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json index e00a4d7ca8..84fe0fa3d9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @CORE One", + "name": "Generic ASA @Prusa CORE One", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @CORE One;Prusa Generic ASA CORE One", "from": "system", - "setting_id": "Pg9KDqFB63PFJo3Q", - "filament_id": "OFoJcr46", + "setting_id": "Q7fgojkHRZI0floy", + "filament_id": "OFLPAxz3", "instantiation": "true", "chamber_temperature": [ "40" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.25.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.25.json index 088221b03a..8aeaefd5c8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MINIIS 0.25", + "name": "Generic ASA @Prusa MINIIS 0.25", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MINIIS 0.25;Prusa Generic ASA MINIIS 0.25", "from": "system", - "setting_id": "oLhpDGV7BIMFqZZq", - "filament_id": "OFoJcr46", + "setting_id": "3k53bfrhLAnuxHQo", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.6.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.6.json index d11f2f2dd6..46cf4ee835 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MINIIS 0.6", + "name": "Generic ASA @Prusa MINIIS 0.6", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MINIIS 0.6;Prusa Generic ASA MINIIS 0.6", "from": "system", - "setting_id": "CN91PnsqqI5CTRhd", - "filament_id": "OFoJcr46", + "setting_id": "NMILNvvq88zkz2Lf", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.8.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.8.json index 2eae500425..2e96b0d886 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MINIIS 0.8", + "name": "Generic ASA @Prusa MINIIS 0.8", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MINIIS 0.8;Prusa Generic ASA MINIIS 0.8", "from": "system", - "setting_id": "Mg0Sh8QULakXYt0m", - "filament_id": "OFoJcr46", + "setting_id": "lnjqcRttOW0XRGe2", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS.json similarity index 80% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS.json index 2d969f15be..add2390249 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MINIIS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MINIIS", + "name": "Generic ASA @Prusa MINIIS", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MINIIS;Prusa Generic ASA MINIIS", "from": "system", - "setting_id": "StIz1ZclM5WV6MCC", - "filament_id": "OFoJcr46", + "setting_id": "53FptNgFYqTPZfkV", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.25.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.25.json index 5888bf67d4..ddf9c2d380 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK3.5 0.25", + "name": "Generic ASA @Prusa MK3.5 0.25", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK3.5 0.25;Prusa Generic ASA MK3.5 0.25", "from": "system", - "setting_id": "EVFkOOWqYWkUZRQG", - "filament_id": "OFoJcr46", + "setting_id": "zyUCfzPlsqRZiUvj", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.6.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.6.json index b467748041..0bcbf559e4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK3.5 0.6", + "name": "Generic ASA @Prusa MK3.5 0.6", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK3.5 0.6;Prusa Generic ASA MK3.5 0.6", "from": "system", - "setting_id": "LW2yi7y86rJ59LMi", - "filament_id": "OFoJcr46", + "setting_id": "AjpsLZCJaPLfpGdv", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.8.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.8.json index 7330692d37..2ca5decddd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK3.5 0.8", + "name": "Generic ASA @Prusa MK3.5 0.8", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK3.5 0.8;Prusa Generic ASA MK3.5 0.8", "from": "system", - "setting_id": "5iwLdW6pq5Y4Aziw", - "filament_id": "OFoJcr46", + "setting_id": "UwiRVbIWfsSjXcwV", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5.json index 4f1717860a..61eed484a1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK3.5", + "name": "Generic ASA @Prusa MK3.5", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK3.5;Prusa Generic ASA MK3.5", "from": "system", - "setting_id": "UaLDui75hljyKAkI", - "filament_id": "OFoJcr46", + "setting_id": "BA46zZsxlvH5bdbC", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4.json similarity index 86% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK4.json index f3d8a91378..bf6998903d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK4", + "name": "Generic ASA @Prusa MK4", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK4;Prusa Generic ASA MK4", "from": "system", - "setting_id": "ubNQKQ8Ex6khEWaI", - "filament_id": "OFoJcr46", + "setting_id": "3HdBZTnRTu6aKN1e", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.6.json new file mode 100644 index 0000000000..15d5cb17a8 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.6.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "name": "Generic ASA @Prusa MK4S 0.6", + "inherits": "Generic ASA @Prusa MK4S", + "renamed_from": "Prusa Generic ASA @MK4S 0.6;Prusa Generic ASA MK4S 0.6", + "from": "system", + "setting_id": "gtPmGmeYUKi7hwVI", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle" + ], + "nozzle_temperature": "255", + "slow_down_layer_time": "15" +} diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.8.json new file mode 100644 index 0000000000..5af8faecb8 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S 0.8.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ASA @Prusa MK4S 0.8", + "inherits": "Generic ASA @Prusa MK4S", + "renamed_from": "Prusa Generic ASA @MK4S 0.8;Prusa Generic ASA MK4S 0.8", + "from": "system", + "setting_id": "a0IXdYic1FVnKaJg", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle" + ], + "fan_max_speed": "15", + "fan_min_speed": "15", + "slow_down_layer_time": "18" +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.4.json similarity index 72% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.4.json index a9a784f496..033ca2b942 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK4S HF0.4", - "inherits": "Prusa Generic ASA @MK4S", + "name": "Generic ASA @Prusa MK4S HF0.4", + "inherits": "Generic ASA @Prusa MK4S", + "renamed_from": "Prusa Generic ASA @MK4S HF0.4;Prusa Generic ASA MK4S HF0.4", "from": "system", - "setting_id": "na3FnleO5uhDF7Yr", - "filament_id": "OFoJcr46", + "setting_id": "INXVBsLNAkRQUlPU", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.5.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.5.json new file mode 100644 index 0000000000..fe96876ce6 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.5.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ASA @Prusa MK4S HF0.5", + "inherits": "Generic ASA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ASA @MK4S HF0.5;Prusa Generic ASA MK4S HF0.5", + "from": "system", + "setting_id": "g7VYJJrBS9mmbJOi", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_max_volumetric_speed": [ + "27" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.6.json new file mode 100644 index 0000000000..56c2ff76e0 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.6.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "name": "Generic ASA @Prusa MK4S HF0.6", + "inherits": "Generic ASA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ASA @MK4S HF0.6;Prusa Generic ASA MK4S HF0.6", + "from": "system", + "setting_id": "yDj1rzyRIOYJM4Pp", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.6 nozzle" + ], + "fan_max_speed": "15", + "fan_min_speed": "15", + "filament_max_volumetric_speed": [ + "34" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.8.json similarity index 58% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.8.json index f0b377c8d1..be3eeb1fe4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S HF0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK4S HF0.8", - "inherits": "Prusa Generic ASA @MK4S HF0.4", + "name": "Generic ASA @Prusa MK4S HF0.8", + "inherits": "Generic ASA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic ASA @MK4S HF0.8;Prusa Generic ASA MK4S HF0.8", "from": "system", - "setting_id": "VDDgOXq5iphlyQ5U", - "filament_id": "OFoJcr46", + "setting_id": "HF59RnyQo2wt5act", + "filament_id": "OFLPAxz3", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S.json index 75c3dcc399..80ba2d523b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA @MK4S", + "name": "Generic ASA @Prusa MK4S", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @MK4S;Prusa Generic ASA MK4S", "from": "system", - "setting_id": "5BZ0OsiwFPYGCcBg", - "filament_id": "OFoJcr46", + "setting_id": "THc7WYsGi7nwc5wv", + "filament_id": "OFLPAxz3", "instantiation": "true", "close_fan_the_first_x_layers": "4", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa.json similarity index 88% rename from resources/profiles/Prusa/filament/Prusa Generic ASA.json rename to resources/profiles/Prusa/filament/Generic ASA @Prusa.json index 3bc0c0fd69..19d7553977 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA", + "name": "Generic ASA @Prusa", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA", "from": "system", - "setting_id": "i5Zm7qbFAtsgG4mF", - "filament_id": "OFoJcr46", + "setting_id": "Uff8hd9OkoS2Yly7", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.6.json similarity index 76% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.6.json index 1dda0e52e2..a8806ff0c6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MINIIS 0.6", - "inherits": "Prusa Generic ASA HF @base", + "name": "Generic ASA HF @Prusa MINIIS 0.6", + "inherits": "Generic ASA HF @Prusa base", + "renamed_from": "Prusa Generic ASA HF @MINIIS 0.6;Prusa Generic ASA HF MINIIS 0.6", "from": "system", - "setting_id": "uf2mhiPodkiOu8Ui", + "setting_id": "Xswtt3GpBabtxN4h", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.8.json similarity index 76% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.8.json index b3d9bad889..cceae0087a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MINIIS 0.8", - "inherits": "Prusa Generic ASA HF @base", + "name": "Generic ASA HF @Prusa MINIIS 0.8", + "inherits": "Generic ASA HF @Prusa base", + "renamed_from": "Prusa Generic ASA HF @MINIIS 0.8;Prusa Generic ASA HF MINIIS 0.8", "from": "system", - "setting_id": "GMfOVAhKgKoiGZH5", + "setting_id": "z13Q2CqpzsnazYwI", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS.json index 68ade52513..4a9bb2b877 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MINIIS", - "inherits": "Prusa Generic ASA HF @base", + "name": "Generic ASA HF @Prusa MINIIS", + "inherits": "Generic ASA HF @Prusa base", + "renamed_from": "Prusa Generic ASA HF @MINIIS;Prusa Generic ASA HF MINIIS", "from": "system", - "setting_id": "o8mGAPApXYWIvPhm", + "setting_id": "zzMFtHrjmImnj77f", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.6.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.6.json index 3a6e047baa..e62013867c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MK3.5 0.6", + "name": "Generic ASA HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA HF @MK3.5 0.6;Prusa Generic ASA HF MK3.5 0.6", "from": "system", - "setting_id": "TwgQePxtpUic69Yw", - "filament_id": "OFK4LdYI", + "setting_id": "lhsnnKDQp3U8enP3", + "filament_id": "OFzRtFM9", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.8.json similarity index 77% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.8.json index 9d2bce435d..74d0b8a4dc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MK3.5 0.8", + "name": "Generic ASA HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA HF @MK3.5 0.8;Prusa Generic ASA HF MK3.5 0.8", "from": "system", - "setting_id": "TC1QAhU8v7mruXHK", - "filament_id": "OFK4LdYI", + "setting_id": "Qb9bphdgmmLKHgnC", + "filament_id": "OFzRtFM9", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5.json index f0d0395d78..b5675c32a0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @MK3.5", + "name": "Generic ASA HF @Prusa MK3.5", "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA HF @MK3.5;Prusa Generic ASA HF MK3.5", "from": "system", - "setting_id": "1s3xgWuvTP6UvMG7", - "filament_id": "OFK4LdYI", + "setting_id": "C9YvhnKeHonpemK8", + "filament_id": "OFzRtFM9", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json rename to resources/profiles/Prusa/filament/Generic ASA HF @Prusa base.json index 6dc6096675..8b6262282d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA HF @base.json +++ b/resources/profiles/Prusa/filament/Generic ASA HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic ASA HF @base", + "name": "Generic ASA HF @Prusa base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "OFK4LdYI", + "filament_id": "OFzRtFM9", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json rename to resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json index dcf3793661..c0501006d2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL 5T.json +++ b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic FLEX @XL 5T", + "name": "Generic FLEX @Prusa XL 5T", "inherits": "fdm_filament_flex", + "renamed_from": "Prusa Generic FLEX @XL 5T;Prusa Generic FLEX XL 5T", "from": "system", - "setting_id": "PaXKTb31IFVovWiK", - "filament_id": "OFl2SXmv", + "setting_id": "ef8fSryRYselyr4G", + "filament_id": "OFbPuPKY", "instantiation": "true", "filament_loading_speed_start": "3", "filament_loading_speed": "28", diff --git a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json rename to resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json index 7231531ee2..ea56f3a8b5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic FLEX @XL.json +++ b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic FLEX @XL", + "name": "Generic FLEX @Prusa XL", "inherits": "fdm_filament_flex", + "renamed_from": "Prusa Generic FLEX @XL;Prusa Generic FLEX XL", "from": "system", - "setting_id": "b5AA45MlL14moY71", - "filament_id": "OFl2SXmv", + "setting_id": "qrFWrwgQSXgU7oCb", + "filament_id": "OFbPuPKY", "instantiation": "true", "filament_loading_speed_start": "3", "filament_loading_speed": "28", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.25.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.25.json index a74492d2aa..f887a7caca 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA @MINIIS 0.25", - "inherits": "Prusa Generic PA @base", + "name": "Generic PA @Prusa MINIIS 0.25", + "inherits": "Generic PA @Prusa base", + "renamed_from": "Prusa Generic PA @MINIIS 0.25;Prusa Generic PA MINIIS 0.25", "from": "system", - "setting_id": "tGSqS5YX8FXkVAKa", + "setting_id": "zONIDmAy6bC6rkBd", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.6.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.6.json index a28f3eedf0..fce5c4f837 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA @MINIIS 0.6", - "inherits": "Prusa Generic PA @base", + "name": "Generic PA @Prusa MINIIS 0.6", + "inherits": "Generic PA @Prusa base", + "renamed_from": "Prusa Generic PA @MINIIS 0.6;Prusa Generic PA MINIIS 0.6", "from": "system", - "setting_id": "u3ZeKEiAwme06ioU", + "setting_id": "Ib0bThHzZ0GXWgXv", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.8.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.8.json index cbf0faa16a..35c7df7919 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA @MINIIS 0.8", - "inherits": "Prusa Generic PA @base", + "name": "Generic PA @Prusa MINIIS 0.8", + "inherits": "Generic PA @Prusa base", + "renamed_from": "Prusa Generic PA @MINIIS 0.8;Prusa Generic PA MINIIS 0.8", "from": "system", - "setting_id": "nE90oPuU8lRFVBCl", + "setting_id": "WSCkyvdqYKalsLHg", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS.json index c8ff9bf5cb..67e59c92d9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA @MINIIS", - "inherits": "Prusa Generic PA @base", + "name": "Generic PA @Prusa MINIIS", + "inherits": "Generic PA @Prusa base", + "renamed_from": "Prusa Generic PA @MINIIS;Prusa Generic PA MINIIS", "from": "system", - "setting_id": "hda5VGcBTJOFu6B0", + "setting_id": "06VxUw37OfEzaSka", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.25.json similarity index 69% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.25.json index 1a2065a58d..eebbafe187 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA @MK3.5 0.25", + "name": "Generic PA @Prusa MK3.5 0.25", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA @MK3.5 0.25;Prusa Generic PA MK3.5 0.25", "from": "system", - "setting_id": "4LeqziiUcsZFvsqn", - "filament_id": "OFIy3kLw", + "setting_id": "htgSl4rIQ1smRBy4", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.6.json similarity index 69% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.6.json index 8e67d973c4..6405d18e56 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA @MK3.5 0.6", + "name": "Generic PA @Prusa MK3.5 0.6", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA @MK3.5 0.6;Prusa Generic PA MK3.5 0.6", "from": "system", - "setting_id": "FoUTZTxQNZRSUZqi", - "filament_id": "OFIy3kLw", + "setting_id": "LPzPJN0XdHVQDEsd", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.8.json similarity index 69% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.8.json index 8a026c1c90..d85d70d810 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA @MK3.5 0.8", + "name": "Generic PA @Prusa MK3.5 0.8", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA @MK3.5 0.8;Prusa Generic PA MK3.5 0.8", "from": "system", - "setting_id": "7Qe2dHRqSOhsuoPn", - "filament_id": "OFIy3kLw", + "setting_id": "WiO6dm6LbzJxOC9j", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5.json similarity index 70% rename from resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5.json index cdea8133e3..f3309fd275 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA @MK3.5", + "name": "Generic PA @Prusa MK3.5", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA @MK3.5;Prusa Generic PA MK3.5", "from": "system", - "setting_id": "HIOtwj2ImWrlXkld", - "filament_id": "OFIy3kLw", + "setting_id": "YfGmmjqpxHcDcRsk", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Anker/filament/Anker Generic PA @base.json b/resources/profiles/Prusa/filament/Generic PA @Prusa base.json similarity index 61% rename from resources/profiles/Anker/filament/Anker Generic PA @base.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa base.json index f95b038b25..c74dce0514 100644 --- a/resources/profiles/Anker/filament/Anker Generic PA @base.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Anker Generic PA @base", + "name": "Generic PA @Prusa base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OFMgJQCZ", + "filament_id": "OFg8ndtj", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA.json b/resources/profiles/Prusa/filament/Generic PA @Prusa.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic PA.json rename to resources/profiles/Prusa/filament/Generic PA @Prusa.json index b50c329fab..1ebaec2fe2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA", - "inherits": "Prusa Generic PA @base", + "name": "Generic PA @Prusa", + "inherits": "Generic PA @Prusa base", + "renamed_from": "Prusa Generic PA", "from": "system", - "setting_id": "lWO6oNoV0wjzRVja", + "setting_id": "zTnz1NYXoXxIHhRv", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.25.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.25.json index cc78a91ff9..85ae694018 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MINIIS 0.25", - "inherits": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa MINIIS 0.25", + "inherits": "Generic PA-CF @Prusa base", + "renamed_from": "Prusa Generic PA-CF @MINIIS 0.25;Prusa Generic PA-CF MINIIS 0.25", "from": "system", - "setting_id": "R9H0mIGTEh4rxRag", + "setting_id": "5OyMl43GFDPQHrx3", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.6.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.6.json index 9cca375d20..e986346eee 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MINIIS 0.6", - "inherits": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa MINIIS 0.6", + "inherits": "Generic PA-CF @Prusa base", + "renamed_from": "Prusa Generic PA-CF @MINIIS 0.6;Prusa Generic PA-CF MINIIS 0.6", "from": "system", - "setting_id": "qy8b2cQmrhmxfUfm", + "setting_id": "lvYPxwHzVnW29IKZ", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.8.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.8.json index 930599ddf8..1e3dd13b49 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MINIIS 0.8", - "inherits": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa MINIIS 0.8", + "inherits": "Generic PA-CF @Prusa base", + "renamed_from": "Prusa Generic PA-CF @MINIIS 0.8;Prusa Generic PA-CF MINIIS 0.8", "from": "system", - "setting_id": "PNdZVpjyekMxgAWx", + "setting_id": "LlGpiQAvrrd5bMCs", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS.json index 320eaaccd5..6c59be3227 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MINIIS", - "inherits": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa MINIIS", + "inherits": "Generic PA-CF @Prusa base", + "renamed_from": "Prusa Generic PA-CF @MINIIS;Prusa Generic PA-CF MINIIS", "from": "system", - "setting_id": "B2SFfVrYjPnN9rw3", + "setting_id": "AfQLoOulI6zwAZDg", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.25.json similarity index 69% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.25.json index 16fd70bc82..8f0622e2cc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MK3.5 0.25", + "name": "Generic PA-CF @Prusa MK3.5 0.25", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA-CF @MK3.5 0.25;Prusa Generic PA-CF MK3.5 0.25", "from": "system", - "setting_id": "BjLde5wICEYFSlu1", - "filament_id": "OFfznI0Q", + "setting_id": "15pNQLVuXkSI3zjU", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.6.json similarity index 70% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.6.json index 193dcfe35c..bb6fc654ad 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MK3.5 0.6", + "name": "Generic PA-CF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA-CF @MK3.5 0.6;Prusa Generic PA-CF MK3.5 0.6", "from": "system", - "setting_id": "XgIsgzltjlTU8ixC", - "filament_id": "OFfznI0Q", + "setting_id": "3ZKi2gcV6LgJwidS", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.8.json similarity index 70% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.8.json index 9cbde53ee4..2ad7d45932 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MK3.5 0.8", + "name": "Generic PA-CF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA-CF @MK3.5 0.8;Prusa Generic PA-CF MK3.5 0.8", "from": "system", - "setting_id": "b2fjpGuYwbeo7O9K", - "filament_id": "OFfznI0Q", + "setting_id": "Ilehw0Za73eW1Z9v", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5.json similarity index 71% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5.json index b13ab2ddb0..4150a3f625 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @MK3.5", + "name": "Generic PA-CF @Prusa MK3.5", "inherits": "fdm_filament_pa", + "renamed_from": "Prusa Generic PA-CF @MK3.5;Prusa Generic PA-CF MK3.5", "from": "system", - "setting_id": "ko8pHTrnZTzz6LyX", - "filament_id": "OFfznI0Q", + "setting_id": "yy2FgYPLARliAAmZ", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa base.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa base.json index 28733da65c..1e5c1936d4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF @base.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OFfznI0Q", + "filament_id": "OFQLcbps", "instantiation": "false", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa.json similarity index 79% rename from resources/profiles/Prusa/filament/Prusa Generic PA-CF.json rename to resources/profiles/Prusa/filament/Generic PA-CF @Prusa.json index ac15c94417..f60463913f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PA-CF.json +++ b/resources/profiles/Prusa/filament/Generic PA-CF @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PA-CF", - "inherits": "Prusa Generic PA-CF @base", + "name": "Generic PA-CF @Prusa", + "inherits": "Generic PA-CF @Prusa base", + "renamed_from": "Prusa Generic PA-CF", "from": "system", - "setting_id": "bptwthfCtglFSoMw", + "setting_id": "R2WthJ8gqw8xdajn", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.25.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.25.json index 37520ad405..4c50bdca0c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MINIIS 0.25", + "name": "Generic PC @Prusa MINIIS 0.25", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MINIIS 0.25;Prusa Generic PC MINIIS 0.25", "from": "system", - "setting_id": "P9dO2M6dPICX7rhQ", - "filament_id": "OF97ru74", + "setting_id": "v5LHPemQZ8fEQJrX", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.6.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.6.json index 2642930cc1..f6e67d5d5e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MINIIS 0.6", + "name": "Generic PC @Prusa MINIIS 0.6", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MINIIS 0.6;Prusa Generic PC MINIIS 0.6", "from": "system", - "setting_id": "uAzPBVsMr6eS1XXS", - "filament_id": "OF97ru74", + "setting_id": "MOLOCn9YKfvHMmOu", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.8.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.8.json index 2a3fe6485b..ecfa0c6fea 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MINIIS 0.8", + "name": "Generic PC @Prusa MINIIS 0.8", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MINIIS 0.8;Prusa Generic PC MINIIS 0.8", "from": "system", - "setting_id": "MZd6zhq1pvhDj6yz", - "filament_id": "OF97ru74", + "setting_id": "eJ9SwUbq1VyHBciM", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS.json index 4a3bb29282..088f2be363 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MINIIS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MINIIS", + "name": "Generic PC @Prusa MINIIS", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MINIIS;Prusa Generic PC MINIIS", "from": "system", - "setting_id": "H7HoG0RfPLMTnCEo", - "filament_id": "OF97ru74", + "setting_id": "2QWF3WdcbA7ArFgt", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "7" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.25.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.25.json index 8dfcd4ac73..dd823e700d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MK3.5 0.25", + "name": "Generic PC @Prusa MK3.5 0.25", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MK3.5 0.25;Prusa Generic PC MK3.5 0.25", "from": "system", - "setting_id": "365PSnHIwQoBabi7", - "filament_id": "OF97ru74", + "setting_id": "MWiCzFnPAeMCWxHz", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.6.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.6.json index b9ac2b8114..b33d32e71d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MK3.5 0.6", + "name": "Generic PC @Prusa MK3.5 0.6", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MK3.5 0.6;Prusa Generic PC MK3.5 0.6", "from": "system", - "setting_id": "zullllDHKByF2PMu", - "filament_id": "OF97ru74", + "setting_id": "KEgDSg0oQi1SQlst", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.8.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.8.json index 7edc6d5a05..a6fa27ed6d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MK3.5 0.8", + "name": "Generic PC @Prusa MK3.5 0.8", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MK3.5 0.8;Prusa Generic PC MK3.5 0.8", "from": "system", - "setting_id": "TTIxalWBM5b6YTJ0", - "filament_id": "OF97ru74", + "setting_id": "LHNmoFsylIuepyww", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5.json index d63eaee60b..1891e65703 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC @MK3.5", + "name": "Generic PC @Prusa MK3.5", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC @MK3.5;Prusa Generic PC MK3.5", "from": "system", - "setting_id": "2h9EbPiUgE3BIHVb", - "filament_id": "OF97ru74", + "setting_id": "awF5u8ojSKhvSYud", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC.json b/resources/profiles/Prusa/filament/Generic PC @Prusa.json similarity index 85% rename from resources/profiles/Prusa/filament/Prusa Generic PC.json rename to resources/profiles/Prusa/filament/Generic PC @Prusa.json index fed8a0bb7b..59b97e22e5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC", + "name": "Generic PC @Prusa", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC", "from": "system", - "setting_id": "51vavWbGjxnBwH7e", - "filament_id": "OF97ru74", + "setting_id": "UJ5KpqIb5mpcNXzl", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.6.json similarity index 58% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.6.json index e3d400892f..dbd6cb209f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MINIIS 0.6", - "inherits": "Prusa Generic PC HF @base", + "name": "Generic PC HF @Prusa MINIIS 0.6", + "inherits": "Generic PC HF @Prusa base", + "renamed_from": "Prusa Generic PC HF @MINIIS 0.6;Prusa Generic PC HF MINIIS 0.6", "from": "system", - "setting_id": "oj7iq8Bsz8lYyoG8", + "setting_id": "W3G94E0IQo6Kaq8G", "instantiation": "true", "filament_max_volumetric_speed": [ "35" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.8.json similarity index 58% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.8.json index 5965ff9d5d..53bc9b96bd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MINIIS 0.8", - "inherits": "Prusa Generic PC HF @base", + "name": "Generic PC HF @Prusa MINIIS 0.8", + "inherits": "Generic PC HF @Prusa base", + "renamed_from": "Prusa Generic PC HF @MINIIS 0.8;Prusa Generic PC HF MINIIS 0.8", "from": "system", - "setting_id": "SK8h5tE5di3YWaJp", + "setting_id": "Fjwchj1gB62f7CUF", "instantiation": "true", "filament_max_volumetric_speed": [ "29" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS.json similarity index 59% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS.json index b198ed3af4..4d0785504f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MINIIS", - "inherits": "Prusa Generic PC HF @base", + "name": "Generic PC HF @Prusa MINIIS", + "inherits": "Generic PC HF @Prusa base", + "renamed_from": "Prusa Generic PC HF @MINIIS;Prusa Generic PC HF MINIIS", "from": "system", - "setting_id": "onMXXnQNjbSimzbW", + "setting_id": "Wodqshgvx38zWaE2", "instantiation": "true", "filament_max_volumetric_speed": [ "24" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.6.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.6.json index 4b5d973cdd..cb2ad5f37c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MK3.5 0.6", + "name": "Generic PC HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC HF @MK3.5 0.6;Prusa Generic PC HF MK3.5 0.6", "from": "system", - "setting_id": "MAtF0WCx6uLte1Bq", - "filament_id": "OFq5QANf", + "setting_id": "Rm7U967jnpk74lPA", + "filament_id": "OFwwAQnA", "instantiation": "true", "filament_max_volumetric_speed": [ "30" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.8.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.8.json index b7729e451f..0f684bcca8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MK3.5 0.8", + "name": "Generic PC HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC HF @MK3.5 0.8;Prusa Generic PC HF MK3.5 0.8", "from": "system", - "setting_id": "Om8P3dn8wY6CbdQg", - "filament_id": "OFq5QANf", + "setting_id": "zFkWWW3PTBvuUWqs", + "filament_id": "OFwwAQnA", "instantiation": "true", "filament_max_volumetric_speed": [ "36" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5.json index 7fdec94c49..aa007446ce 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PC HF @MK3.5", + "name": "Generic PC HF @Prusa MK3.5", "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC HF @MK3.5;Prusa Generic PC HF MK3.5", "from": "system", - "setting_id": "uGi7QoODY99zHuCt", - "filament_id": "OFq5QANf", + "setting_id": "lvbcRP0xEru9jmms", + "filament_id": "OFwwAQnA", "instantiation": "true", "filament_max_volumetric_speed": [ "24" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json b/resources/profiles/Prusa/filament/Generic PC HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json rename to resources/profiles/Prusa/filament/Generic PC HF @Prusa base.json index ffce8990b7..131b45ea55 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PC HF @base.json +++ b/resources/profiles/Prusa/filament/Generic PC HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PC HF @base", + "name": "Generic PC HF @Prusa base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "OFq5QANf", + "filament_id": "OFwwAQnA", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.6.json similarity index 51% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.6.json index e776e17543..a2f899e88f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One 0.6", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One 0.6", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One 0.6;Prusa Generic PETG CORE One 0.6", "from": "system", - "setting_id": "plb6gY1isTp10Unr", - "filament_id": "OF1Id239", + "setting_id": "oPWpCDB3p6hQeY2F", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.8.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.8.json index a0b3bc4299..669cf219fc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One 0.8", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One 0.8", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One 0.8;Prusa Generic PETG CORE One 0.8", "from": "system", - "setting_id": "WISyN9WbqoZW5bBy", - "filament_id": "OF1Id239", + "setting_id": "OmaayFCLuRLadur0", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.4.json similarity index 74% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.4.json index d3354152df..6c9ff68c89 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One HF 0.4", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One HF 0.4", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One HF 0.4;Prusa Generic PETG CORE One HF 0.4", "from": "system", - "setting_id": "hMxEpxx9ERuIq28Z", - "filament_id": "OF1Id239", + "setting_id": "7oUyjvRHLH4bJyX0", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.5.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.5.json index 69c4158297..8784e403ab 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One HF 0.5", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One HF 0.5", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One HF 0.5;Prusa Generic PETG CORE One HF 0.5", "from": "system", - "setting_id": "HtW04UsVx5VpeLc9", - "filament_id": "OF1Id239", + "setting_id": "6HiIOGURZWwman1l", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.6.json similarity index 73% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.6.json index c50d2b1cd0..c0eb6a594f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One HF 0.6", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One HF 0.6", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One HF 0.6;Prusa Generic PETG CORE One HF 0.6", "from": "system", - "setting_id": "29TFTfss7xVear5j", - "filament_id": "OF1Id239", + "setting_id": "KKiug7A9NOQPe1m7", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.8.json similarity index 78% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.8.json index 91d6a29a9a..99748978bf 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One HF 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One HF 0.8", - "inherits": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One HF 0.8", + "inherits": "Generic PETG @Prusa CORE One", + "renamed_from": "Prusa Generic PETG @CORE One HF 0.8;Prusa Generic PETG CORE One HF 0.8", "from": "system", - "setting_id": "N91ct2U3Y3jOat0g", - "filament_id": "OF1Id239", + "setting_id": "vtiAC44hrmtap0Ou", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json similarity index 92% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json index fa5a8d2cd8..a086fb9336 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @CORE One", + "name": "Generic PETG @Prusa CORE One", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @CORE One;Prusa Generic PETG CORE One", "from": "system", - "setting_id": "VbFWb2QCAMxcrTAW", - "filament_id": "OF1Id239", + "setting_id": "W71PW5bpf7CV16D4", + "filament_id": "OFYPdQJh", "instantiation": "true", "chamber_temperature": [ "35" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.25.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.25.json index 1254f1aede..282048f6a3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @MINIIS 0.25", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa MINIIS 0.25", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @MINIIS 0.25;Prusa Generic PETG MINIIS 0.25", "from": "system", - "setting_id": "u4zA4rasW1vfwG1o", + "setting_id": "lKegAyiWytPNEXH0", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.6.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.6.json index 7e849e01af..40f6d0c685 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @MINIIS 0.6", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa MINIIS 0.6", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @MINIIS 0.6;Prusa Generic PETG MINIIS 0.6", "from": "system", - "setting_id": "QJQIAwmRSZW3hNI4", + "setting_id": "7QT1EXl4qKoNBuqz", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.8.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.8.json index 2a943198aa..a578482dc0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @MINIIS 0.8", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa MINIIS 0.8", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @MINIIS 0.8;Prusa Generic PETG MINIIS 0.8", "from": "system", - "setting_id": "nXFZVAKBc3hkxbRt", + "setting_id": "zl2HOUtcoIR2dFQH", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS.json similarity index 85% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS.json index dcb87593dc..5a135dfd2d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MINIIS", - "inherits": "Prusa Generic PETG HF @base", + "name": "Generic PETG @Prusa MINIIS", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @MINIIS;Prusa Generic PETG MINIIS", "from": "system", - "setting_id": "SHIhEzb8wJonmulf", + "setting_id": "COQ9qpnYRGAFRBoq", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -48,7 +49,7 @@ "85" ], "filament_max_volumetric_speed": [ - "24" + "9" ], "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.25.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.25.json index 940f308232..e338514096 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK3.5 0.25", + "name": "Generic PETG @Prusa MK3.5 0.25", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @MK3.5 0.25;Prusa Generic PETG MK3.5 0.25", "from": "system", - "setting_id": "g5YTLp0ZhzbpCD2h", - "filament_id": "OF1Id239", + "setting_id": "M0vmzxmP3IVIUTuv", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.6.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.6.json index f049544d2f..d57e0fdb3f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK3.5 0.6", + "name": "Generic PETG @Prusa MK3.5 0.6", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @MK3.5 0.6;Prusa Generic PETG MK3.5 0.6", "from": "system", - "setting_id": "6FATkctkE3RaWnWQ", - "filament_id": "OF1Id239", + "setting_id": "OvkhxGhjjRMjwb4C", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.8.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.8.json index ba45f70c00..59e45d94f6 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK3.5 0.8", + "name": "Generic PETG @Prusa MK3.5 0.8", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @MK3.5 0.8;Prusa Generic PETG MK3.5 0.8", "from": "system", - "setting_id": "ITT0YpAms3lzeSBk", - "filament_id": "OF1Id239", + "setting_id": "kZSlkCTdghAi8LFG", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5.json index e456955aae..7d63599c7a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK3.5", + "name": "Generic PETG @Prusa MK3.5", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @MK3.5;Prusa Generic PETG MK3.5", "from": "system", - "setting_id": "71gokqKp7e6fhhf4", - "filament_id": "OF1Id239", + "setting_id": "6PUbXHNUBfWjVvse", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4.json similarity index 89% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4.json index f4d8216caa..68f627daa4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa MK4", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @MK4;Prusa Generic PETG MK4", "from": "system", - "setting_id": "Xk2dCGMzSaT73Gq5", + "setting_id": "ieo6hcpwnV0j76eo", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.6.json similarity index 54% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.6.json index 9b59b93ccf..ddfbb665be 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S 0.6", - "inherits": "Prusa Generic PETG @MK4S", + "name": "Generic PETG @Prusa MK4S 0.6", + "inherits": "Generic PETG @Prusa MK4S", + "renamed_from": "Prusa Generic PETG @MK4S 0.6;Prusa Generic PETG MK4S 0.6", "from": "system", - "setting_id": "Pci5FyYkl7E87APR", - "filament_id": "OF1Id239", + "setting_id": "z5Ys1AU5ujQF9D5U", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.8.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.8.json index 8024185152..8e8fee1973 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S 0.8", - "inherits": "Prusa Generic PETG @MK4S", + "name": "Generic PETG @Prusa MK4S 0.8", + "inherits": "Generic PETG @Prusa MK4S", + "renamed_from": "Prusa Generic PETG @MK4S 0.8;Prusa Generic PETG MK4S 0.8", "from": "system", - "setting_id": "gBfDSTXrnY1HRyw7", - "filament_id": "OF1Id239", + "setting_id": "LKUzA7cbyYL6kxar", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.4.json similarity index 76% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.4.json index 4267889359..ebbdb73717 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S HF0.4", - "inherits": "Prusa Generic PETG @MK4S", + "name": "Generic PETG @Prusa MK4S HF0.4", + "inherits": "Generic PETG @Prusa MK4S", + "renamed_from": "Prusa Generic PETG @MK4S HF0.4;Prusa Generic PETG MK4S HF0.4", "from": "system", - "setting_id": "4pbIJVV1D2h5O3WZ", - "filament_id": "OF1Id239", + "setting_id": "lLapCyweW6Svj7cV", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.5.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.5.json new file mode 100644 index 0000000000..e424f13c82 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.5.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PETG @Prusa MK4S HF0.5", + "inherits": "Generic PETG @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PETG @MK4S HF0.5;Prusa Generic PETG MK4S HF0.5", + "from": "system", + "setting_id": "lu9twhsjDkBT1kyn", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S HF0.5 nozzle" + ], + "filament_max_volumetric_speed": [ + "29" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.6.json similarity index 59% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.6.json index 83a96f3a40..c0d46b3ca1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S HF0.6", - "inherits": "Prusa Generic PETG @MK4S HF0.4", + "name": "Generic PETG @Prusa MK4S HF0.6", + "inherits": "Generic PETG @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PETG @MK4S HF0.6;Prusa Generic PETG MK4S HF0.6", "from": "system", - "setting_id": "tv7OUJ7pSPHTkE89", - "filament_id": "OF1Id239", + "setting_id": "d7ocKzA4YSAit63Z", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.8.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.8.json index 85c388ab7d..237c3f116a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S HF0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S HF0.8", - "inherits": "Prusa Generic PETG @MK4S HF0.4", + "name": "Generic PETG @Prusa MK4S HF0.8", + "inherits": "Generic PETG @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PETG @MK4S HF0.8;Prusa Generic PETG MK4S HF0.8", "from": "system", - "setting_id": "wHfH0a2TgTYr9rWF", - "filament_id": "OF1Id239", + "setting_id": "HSBSswxwznxDClK5", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S.json similarity index 92% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S.json index ff70f3d63e..b7bbc6094e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG @MK4S", + "name": "Generic PETG @Prusa MK4S", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @MK4S;Prusa Generic PETG MK4S", "from": "system", - "setting_id": "IGfvc0jGdG6evRj8", - "filament_id": "OF1Id239", + "setting_id": "t3ZCKWVct5d69cb8", + "filament_id": "OFYPdQJh", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json index 4babb91e3f..9f70295142 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL 5T.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @XL 5T", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa XL 5T", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @XL 5T;Prusa Generic PETG XL 5T", "from": "system", - "setting_id": "FbtB9og6yXm2ZktD", + "setting_id": "DNJECSjW6zKYALxE", "instantiation": "true", "nozzle_temperature_intial_layer": "230", "nozzle_temperature": "240", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json index 793b97e290..0cdcbfc1c4 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @XL.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @XL", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa XL", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG @XL;Prusa Generic PETG XL", "from": "system", - "setting_id": "SQKcHBt6A4D8PwFZ", + "setting_id": "8vcNv4b4H7aYA01G", "instantiation": "true", "nozzle_temperature_intial_layer": "230", "nozzle_temperature": "240", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @base.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa base.json index 5ed73792e2..c5b0abf34f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @base.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OF1Id239", + "filament_id": "OFYPdQJh", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PETG.json rename to resources/profiles/Prusa/filament/Generic PETG @Prusa.json index db17c39162..6881507204 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG @Prusa", + "inherits": "Generic PETG @Prusa base", + "renamed_from": "Prusa Generic PETG", "from": "system", - "setting_id": "b55Rd5kKGP1A3BM2", + "setting_id": "Vwc0owmwoEYrLhuU", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json index da8b0f68e5..e8de400490 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MINIIS 0.6", - "inherits": "Prusa Generic PETG HF @base", + "name": "Generic PETG HF @Prusa MINIIS 0.6", + "inherits": "Generic PETG HF @Prusa base", + "renamed_from": "Prusa Generic PETG HF @MINIIS 0.6;Prusa Generic PETG HF MINIIS 0.6", "from": "system", - "setting_id": "tt7C6k90F51Q17NL", + "setting_id": "nF8YzRMvaT4D8LBD", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json index c8eb08ef87..adc5401268 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MINIIS 0.8", - "inherits": "Prusa Generic PETG HF @base", + "name": "Generic PETG HF @Prusa MINIIS 0.8", + "inherits": "Generic PETG HF @Prusa base", + "renamed_from": "Prusa Generic PETG HF @MINIIS 0.8;Prusa Generic PETG HF MINIIS 0.8", "from": "system", - "setting_id": "hivI3u5bpGKEJuPR", + "setting_id": "7itUjrAu9Oj9hxiU", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json index 49d8e83444..9148f5e849 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PETG @MINIIS", - "inherits": "Prusa Generic PETG @base", + "name": "Generic PETG HF @Prusa MINIIS", + "inherits": "Generic PETG HF @Prusa base", + "renamed_from": "Prusa Generic PETG HF @MINIIS;Prusa Generic PETG HF MINIIS", "from": "system", - "setting_id": "nXB864FJ4Dbz5oXc", + "setting_id": "dPNOryBcrviemefo", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -48,7 +49,7 @@ "85" ], "filament_max_volumetric_speed": [ - "9" + "24" ], "enable_pressure_advance": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.6.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.6.json index 63f9742402..71481537b1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MK3.5 0.6", + "name": "Generic PETG HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG HF @MK3.5 0.6;Prusa Generic PETG HF MK3.5 0.6", "from": "system", - "setting_id": "Hw54qxSSdBrcOr4r", - "filament_id": "OFOKYhi6", + "setting_id": "YqVidH7m1HXR3hHZ", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.8.json similarity index 81% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.8.json index e3401a666b..5dffe82d0b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MK3.5 0.8", + "name": "Generic PETG HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG HF @MK3.5 0.8;Prusa Generic PETG HF MK3.5 0.8", "from": "system", - "setting_id": "txhzOPQmzVqkcdnP", - "filament_id": "OFOKYhi6", + "setting_id": "vfR067tK5WsrE4pw", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5.json index 1f63b82d0b..e343519efd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @MK3.5", + "name": "Generic PETG HF @Prusa MK3.5", "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG HF @MK3.5;Prusa Generic PETG HF MK3.5", "from": "system", - "setting_id": "OjIQqC3uJdpcLqlG", - "filament_id": "OFOKYhi6", + "setting_id": "grvZIUU79fxDOa3O", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json rename to resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json index 002c80fe6d..c15595a97c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG HF @base.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PETG HF @base", + "name": "Generic PETG HF @Prusa base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFOKYhi6", + "filament_id": "OF7lOgYF", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.6.json new file mode 100644 index 0000000000..2e2f9275d4 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.6.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Generic PLA @Prusa CORE One 0.6", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One 0.6;Prusa Generic PLA CORE One 0.6", + "from": "system", + "setting_id": "IkmLxDwrdRkacHWw", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One 0.6 nozzle" + ], + "nozzle_temperature": [ + "210" + ], + "slow_down_layer_time": [ + "15" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.8.json similarity index 51% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.8.json index c710474420..cfe88119de 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One 0.8", - "inherits": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One 0.8", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One 0.8;Prusa Generic PLA CORE One 0.8", "from": "system", - "setting_id": "qlG6J2sXs80HpkCl", - "filament_id": "OFiCHnso", + "setting_id": "aBengWdqRXg9i2sx", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.4.json similarity index 73% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.4.json index 5a38ba93f3..c0969904c7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One HF 0.4", - "inherits": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One HF 0.4", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One HF 0.4;Prusa Generic PLA CORE One HF 0.4", "from": "system", - "setting_id": "KzpBU6cAAqm7z0Sg", - "filament_id": "OFiCHnso", + "setting_id": "vniEPaoyABoAfLFa", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.4 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.5.json similarity index 74% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.5.json index 1935f27062..5d6e9fcba2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One HF 0.5", - "inherits": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One HF 0.5", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One HF 0.5;Prusa Generic PLA CORE One HF 0.5", "from": "system", - "setting_id": "2G99enCGyOVjrOlt", - "filament_id": "OFiCHnso", + "setting_id": "NPEs4gtBlKWupYZX", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.6.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.6.json index b47613e7d1..6575aebf8d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One HF 0.6", - "inherits": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One HF 0.6", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One HF 0.6;Prusa Generic PLA CORE One HF 0.6", "from": "system", - "setting_id": "iNQhrPrIj4GphWxI", - "filament_id": "OFiCHnso", + "setting_id": "SnfULjrWGCiA7ljq", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.8.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.8.json index a3b5df42d8..64471ba72b 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One HF 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One HF 0.8", - "inherits": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One HF 0.8", + "inherits": "Generic PLA @Prusa CORE One", + "renamed_from": "Prusa Generic PLA @CORE One HF 0.8;Prusa Generic PLA CORE One HF 0.8", "from": "system", - "setting_id": "YIm5w8btcXZqnNFB", - "filament_id": "OFiCHnso", + "setting_id": "ZsIuxJUaBzoeWPDv", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa CORE One HF 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json similarity index 92% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json index 1f65998039..9bc9e086b0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @CORE One", + "name": "Generic PLA @Prusa CORE One", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @CORE One;Prusa Generic PLA CORE One", "from": "system", - "setting_id": "NDBqFGNNvKxlmo3V", - "filament_id": "OFiCHnso", + "setting_id": "r2i4c7DsYXYIMVCX", + "filament_id": "OFDSrzZ8", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.25.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.25.json index 73ce7b1606..3682a6fcb0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @MINIIS 0.25", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa MINIIS 0.25", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @MINIIS 0.25;Prusa Generic PLA MINIIS 0.25", "from": "system", - "setting_id": "GOomDjqbF1CGAy8O", + "setting_id": "t7jm6WSfRqsdSZfz", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.6.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.6.json index 437eeeb6b8..ae982f46bc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @MINIIS 0.6", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa MINIIS 0.6", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @MINIIS 0.6;Prusa Generic PLA MINIIS 0.6", "from": "system", - "setting_id": "rKRRhdLk0Heg3slz", + "setting_id": "hWk01xYl6gu41B4w", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.8.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.8.json index cd95805fb3..8a5897d741 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @MINIIS 0.8", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa MINIIS 0.8", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @MINIIS 0.8;Prusa Generic PLA MINIIS 0.8", "from": "system", - "setting_id": "XC2NBSQXjiKIXnTi", + "setting_id": "6A9NivZl5nMpNfsz", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS.json index 5f3c8f9bb4..cf2adda390 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @MINIIS", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa MINIIS", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @MINIIS;Prusa Generic PLA MINIIS", "from": "system", - "setting_id": "GUG6Ug0cZt0gs2Z2", + "setting_id": "3bPlO5U5udlu8eVv", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.25.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.25.json index ab3b9413ae..b3f84dc4e1 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK3.5 0.25", + "name": "Generic PLA @Prusa MK3.5 0.25", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @MK3.5 0.25;Prusa Generic PLA MK3.5 0.25", "from": "system", - "setting_id": "mQtIWbOJ2a4TMYxU", - "filament_id": "OFiCHnso", + "setting_id": "IJsZsvdG7N8uwobX", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.6.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.6.json index 9d239a47fd..49d75d5e31 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK3.5 0.6", + "name": "Generic PLA @Prusa MK3.5 0.6", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @MK3.5 0.6;Prusa Generic PLA MK3.5 0.6", "from": "system", - "setting_id": "lSbYoT83cp2tQjk3", - "filament_id": "OFiCHnso", + "setting_id": "YLx95teMRy5UQWKN", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.8.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.8.json index e77aa1edf0..6590e43c17 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK3.5 0.8", + "name": "Generic PLA @Prusa MK3.5 0.8", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @MK3.5 0.8;Prusa Generic PLA MK3.5 0.8", "from": "system", - "setting_id": "kZuzkEvYEluqlAfM", - "filament_id": "OFiCHnso", + "setting_id": "bZ42VSqIaJlri1VH", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5.json index d211b1fed2..058e05e99e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK3.5", + "name": "Generic PLA @Prusa MK3.5", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @MK3.5;Prusa Generic PLA MK3.5", "from": "system", - "setting_id": "ojwcK3bKU2Jyosws", - "filament_id": "OFiCHnso", + "setting_id": "5tDjTVPzE0lIEReK", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4.json index 22f8bb274c..e7cc5df0d8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa MK4", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @MK4;Prusa Generic PLA MK4", "from": "system", - "setting_id": "1aLBPgVpr7XZmmX6", + "setting_id": "cBqjSJcxcXvS8sY0", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.6.json similarity index 50% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.6.json index d6915f476d..bcc0847385 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S 0.6", - "inherits": "Prusa Generic PLA @MK4S", + "name": "Generic PLA @Prusa MK4S 0.6", + "inherits": "Generic PLA @Prusa MK4S", + "renamed_from": "Prusa Generic PLA @MK4S 0.6;Prusa Generic PLA MK4S 0.6", "from": "system", - "setting_id": "6pZohvVY1eUGi2k8", - "filament_id": "OFiCHnso", + "setting_id": "vLeTzdoXExkeNSdX", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.8.json similarity index 57% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.8.json index 07b15552df..e574ce49a5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S 0.8", - "inherits": "Prusa Generic PLA @MK4S", + "name": "Generic PLA @Prusa MK4S 0.8", + "inherits": "Generic PLA @Prusa MK4S", + "renamed_from": "Prusa Generic PLA @MK4S 0.8;Prusa Generic PLA MK4S 0.8", "from": "system", - "setting_id": "8z66T4ABcY8PLJMB", - "filament_id": "OFiCHnso", + "setting_id": "6fyFsevbPLYfgZRb", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.4.json similarity index 75% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.4.json index 39f7d1b020..10e37500a8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.4.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.4.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S HF0.4", - "inherits": "Prusa Generic PLA @MK4S", + "name": "Generic PLA @Prusa MK4S HF0.4", + "inherits": "Generic PLA @Prusa MK4S", + "renamed_from": "Prusa Generic PLA @MK4S HF0.4;Prusa Generic PLA MK4S HF0.4", "from": "system", - "setting_id": "LV8qQ1t2CmhHaRSA", - "filament_id": "OFiCHnso", + "setting_id": "BFvt90DhCobphEF9", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.4 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.5.json similarity index 50% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.5.json index 97235be213..ec1efb5aad 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.5.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S HF0.5", - "inherits": "Prusa Generic PLA @MK4S HF0.4", + "name": "Generic PLA @Prusa MK4S HF0.5", + "inherits": "Generic PLA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PLA @MK4S HF0.5;Prusa Generic PLA MK4S HF0.5", "from": "system", - "setting_id": "WH3bJGQGSliMx6ta", - "filament_id": "OFiCHnso", + "setting_id": "IDv2UUR8EH7AVUIA", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.5 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.6.json similarity index 53% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.6.json index a90a033338..8ce85314dd 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S HF0.6", - "inherits": "Prusa Generic PLA @MK4S HF0.4", + "name": "Generic PLA @Prusa MK4S HF0.6", + "inherits": "Generic PLA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PLA @MK4S HF0.6;Prusa Generic PLA MK4S HF0.6", "from": "system", - "setting_id": "du6Gy8TCxk5z7hPx", - "filament_id": "OFiCHnso", + "setting_id": "t7cAPFNPWmeHBeuD", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.6 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.8.json similarity index 55% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.8.json index 4d381eab0a..968bf56356 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S HF0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S HF0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S HF0.8", - "inherits": "Prusa Generic PLA @MK4S HF0.4", + "name": "Generic PLA @Prusa MK4S HF0.8", + "inherits": "Generic PLA @Prusa MK4S HF0.4", + "renamed_from": "Prusa Generic PLA @MK4S HF0.8;Prusa Generic PLA MK4S HF0.8", "from": "system", - "setting_id": "aLcAkl8Zt2D5lOTp", - "filament_id": "OFiCHnso", + "setting_id": "t1a58q4l6Xo6kKCC", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S HF0.8 nozzle" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S.json index 9d35c362fa..a847cf8334 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA @MK4S", + "name": "Generic PLA @Prusa MK4S", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @MK4S;Prusa Generic PLA MK4S", "from": "system", - "setting_id": "CqlMmArE8Llbji7t", - "filament_id": "OFiCHnso", + "setting_id": "lsjHMlvwZzImWgek", + "filament_id": "OFDSrzZ8", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json index 2d149b8b7b..6dbefec6be 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL 5T.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @XL 5T", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa XL 5T", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @XL 5T;Prusa Generic PLA XL 5T", "from": "system", - "setting_id": "orBUSq1sDBeMGMON", + "setting_id": "wDxtZLt5J2JODMBq", "instantiation": "true", "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "210", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json similarity index 90% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json index 3206f6f3c5..ff8f343b41 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @XL.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA @XL", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa XL", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA @XL;Prusa Generic PLA XL", "from": "system", - "setting_id": "tGG7egsphB0I1i6Z", + "setting_id": "27u5AiklUhmExsys", "instantiation": "true", "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "210", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic PLA @base.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa base.json index 4aaa66dd9e..7246d710ab 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @base.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFiCHnso", + "filament_id": "OFDSrzZ8", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic PLA.json rename to resources/profiles/Prusa/filament/Generic PLA @Prusa.json index a2f1521fec..83951fb4ab 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA", - "inherits": "Prusa Generic PLA @base", + "name": "Generic PLA @Prusa", + "inherits": "Generic PLA @Prusa base", + "renamed_from": "Prusa Generic PLA", "from": "system", - "setting_id": "pKHhR3Hx6AUoyIO3", + "setting_id": "SBviEhhXcdsIwj0y", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json index 6b9f364da7..56c2e823b0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MINIIS 0.6", - "inherits": "Prusa Generic PLA HF @base", + "name": "Generic PLA HF @Prusa MINIIS 0.6", + "inherits": "Generic PLA HF @Prusa base", + "renamed_from": "Prusa Generic PLA HF @MINIIS 0.6;Prusa Generic PLA HF MINIIS 0.6", "from": "system", - "setting_id": "A6tgkt5mCN7hFzoU", + "setting_id": "eqBN6ykUB4csEMCR", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json index b4a25d21a1..be0722c134 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MINIIS 0.8", - "inherits": "Prusa Generic PLA HF @base", + "name": "Generic PLA HF @Prusa MINIIS 0.8", + "inherits": "Generic PLA HF @Prusa base", + "renamed_from": "Prusa Generic PLA HF @MINIIS 0.8;Prusa Generic PLA HF MINIIS 0.8", "from": "system", - "setting_id": "3MSF1ZEw3D7bVhEI", + "setting_id": "FuCHQFBuP9yLUzT0", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json index 243b69a393..656c756e6d 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MINIIS", - "inherits": "Prusa Generic PLA HF @base", + "name": "Generic PLA HF @Prusa MINIIS", + "inherits": "Generic PLA HF @Prusa base", + "renamed_from": "Prusa Generic PLA HF @MINIIS;Prusa Generic PLA HF MINIIS", "from": "system", - "setting_id": "eVuV41lUXe9SEmeh", + "setting_id": "cQJUt7LR5hkKT0Za", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.6.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.6.json index a75d98c47f..41dce0b5ed 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MK3.5 0.6", + "name": "Generic PLA HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA HF @MK3.5 0.6;Prusa Generic PLA HF MK3.5 0.6", "from": "system", - "setting_id": "IHOsyOhMvOcpHGtG", - "filament_id": "OFl4ItvQ", + "setting_id": "5vgrugarZSgMZ6FT", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.8.json similarity index 65% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.8.json index c7f2c480be..b6af02d8fb 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MK3.5 0.8", + "name": "Generic PLA HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA HF @MK3.5 0.8;Prusa Generic PLA HF MK3.5 0.8", "from": "system", - "setting_id": "GYne0LPI8ooQJe08", - "filament_id": "OFl4ItvQ", + "setting_id": "CM3EYkpRcWwsw7KB", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5.json index c1366194ec..46ed4d0752 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @MK3.5", + "name": "Generic PLA HF @Prusa MK3.5", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA HF @MK3.5;Prusa Generic PLA HF MK3.5", "from": "system", - "setting_id": "Bq51JVrGGEktAqIh", - "filament_id": "OFl4ItvQ", + "setting_id": "4N82rUxi9Bbm2Cdd", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json rename to resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json index fffecfd0e1..aaf85ff4a7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA HF @base.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PLA HF @base", + "name": "Generic PLA HF @Prusa base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFl4ItvQ", + "filament_id": "OFZr862X", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json similarity index 52% rename from resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json index b974aa2fec..aeeba4d5ee 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA Silk @CORE One 0.6", - "inherits": "Prusa Generic PLA Silk @CORE One", + "name": "Generic PLA Silk @Prusa CORE One 0.6", + "inherits": "Generic PLA Silk @Prusa CORE One", + "renamed_from": "Prusa Generic PLA Silk @CORE One 0.6;Prusa Generic PLA Silk CORE One 0.6", "from": "system", - "setting_id": "QUaunbCOoBxA8fyJ", - "filament_id": "OFHFZ1Te", + "setting_id": "nBWqKjSKw2UEAmkv", + "filament_id": "OFesA6rF", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json new file mode 100644 index 0000000000..82e3840d37 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @Prusa CORE One 0.8", + "inherits": "Generic PLA Silk @Prusa CORE One", + "renamed_from": "Prusa Generic PLA Silk @CORE One 0.8;Prusa Generic PLA Silk CORE One 0.8", + "from": "system", + "setting_id": "a2KWbhOMQrFTkAZh", + "filament_id": "OFesA6rF", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One 0.8 nozzle", + "Prusa CORE One HF 0.8 nozzle" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "17" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json similarity index 91% rename from resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json rename to resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json index 1d39e71aaa..c11965fc72 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA Silk @CORE One", + "name": "Generic PLA Silk @Prusa CORE One", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA Silk @CORE One;Prusa Generic PLA Silk CORE One", "from": "system", - "setting_id": "CYztrVFVOPD3RHJx", - "filament_id": "OFHFZ1Te", + "setting_id": "F9lNHyhZwZi7aD74", + "filament_id": "OFesA6rF", "instantiation": "true", "chamber_temperature": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.6.json similarity index 55% rename from resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.6.json index 506f82f3ea..82413605dc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA Silk @MK4S 0.6", - "inherits": "Prusa Generic PLA Silk @MK4S", + "name": "Generic PLA Silk @Prusa MK4S 0.6", + "inherits": "Generic PLA Silk @Prusa MK4S", + "renamed_from": "Prusa Generic PLA Silk @MK4S 0.6;Prusa Generic PLA Silk MK4S 0.6", "from": "system", - "setting_id": "e1pUu3Y5pDr7LzNu", - "filament_id": "OFHFZ1Te", + "setting_id": "lWYrhnu1MUizrdOB", + "filament_id": "OFesA6rF", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.8.json similarity index 54% rename from resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.8.json index 6c57e0486e..e94cbdf57a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA Silk @MK4S 0.8", - "inherits": "Prusa Generic PLA Silk @MK4S", + "name": "Generic PLA Silk @Prusa MK4S 0.8", + "inherits": "Generic PLA Silk @Prusa MK4S", + "renamed_from": "Prusa Generic PLA Silk @MK4S 0.8;Prusa Generic PLA Silk MK4S 0.8", "from": "system", - "setting_id": "Yw5uZEeqmR9elIn6", - "filament_id": "OFHFZ1Te", + "setting_id": "cyBdMwJ5sAZcQ7wP", + "filament_id": "OFesA6rF", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json rename to resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S.json index 3585355a12..9a3830fd4a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA Silk @MK4S", - "inherits": "Prusa Generic PLA @MK4S", + "name": "Generic PLA Silk @Prusa MK4S", + "inherits": "Generic PLA @Prusa MK4S", + "renamed_from": "Prusa Generic PLA Silk @MK4S;Prusa Generic PLA Silk MK4S", "from": "system", - "setting_id": "ngtF8hwv8cSubcR1", - "filament_id": "OFHFZ1Te", + "setting_id": "9VQ1YVv9EZexIUoF", + "filament_id": "OFesA6rF", "instantiation": "true", "compatible_printers": [ "Prusa MK4S 0.25 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.25.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.25.json index 1e95879fdf..9432c36087 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MINIIS 0.25", - "inherits": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa MINIIS 0.25", + "inherits": "Generic PLA-CF @Prusa base", + "renamed_from": "Prusa Generic PLA-CF @MINIIS 0.25;Prusa Generic PLA-CF MINIIS 0.25", "from": "system", - "setting_id": "Sv0IcpOJBk95F94d", + "setting_id": "uQJghHEl91slhmEP", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.6.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.6.json index 3736da09d7..7900e25ab2 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MINIIS 0.6", - "inherits": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa MINIIS 0.6", + "inherits": "Generic PLA-CF @Prusa base", + "renamed_from": "Prusa Generic PLA-CF @MINIIS 0.6;Prusa Generic PLA-CF MINIIS 0.6", "from": "system", - "setting_id": "tKAu2YX7WADQuJqv", + "setting_id": "nZEIrx6XaOFsNyHS", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.8.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.8.json index 83c781352d..97db4345c8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MINIIS 0.8", - "inherits": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa MINIIS 0.8", + "inherits": "Generic PLA-CF @Prusa base", + "renamed_from": "Prusa Generic PLA-CF @MINIIS 0.8;Prusa Generic PLA-CF MINIIS 0.8", "from": "system", - "setting_id": "dHVVnfZSJ6xEgzdQ", + "setting_id": "A3VUqeRysd3c5Txq", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS.json index 4cb69a99ec..4c08a4b23c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MINIIS", - "inherits": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa MINIIS", + "inherits": "Generic PLA-CF @Prusa base", + "renamed_from": "Prusa Generic PLA-CF @MINIIS;Prusa Generic PLA-CF MINIIS", "from": "system", - "setting_id": "VESr5xWPvPIlhyKh", + "setting_id": "cNZereL1ltFYG5FZ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.25.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.25.json index 5a660705a7..436bf22209 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MK3.5 0.25", + "name": "Generic PLA-CF @Prusa MK3.5 0.25", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA-CF @MK3.5 0.25;Prusa Generic PLA-CF MK3.5 0.25", "from": "system", - "setting_id": "Pi3x8Wj5sdB7TDDK", - "filament_id": "OFQ7I5vC", + "setting_id": "eID2rl5MlHlkerrQ", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.6.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.6.json index 1b9b06f8f9..db1973c5c8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MK3.5 0.6", + "name": "Generic PLA-CF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA-CF @MK3.5 0.6;Prusa Generic PLA-CF MK3.5 0.6", "from": "system", - "setting_id": "vtxoJOj2lc1qxV3H", - "filament_id": "OFQ7I5vC", + "setting_id": "FGXPEP83zLoINOZy", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.8.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.8.json index 5f0619c66c..bfcbcf2dbc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MK3.5 0.8", + "name": "Generic PLA-CF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA-CF @MK3.5 0.8;Prusa Generic PLA-CF MK3.5 0.8", "from": "system", - "setting_id": "9gYj4jTP6y4UmR9s", - "filament_id": "OFQ7I5vC", + "setting_id": "TM5JPaNUTlZTiuCe", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5.json similarity index 68% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5.json index 9f8546a1ae..677bbc0d27 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @MK3.5", + "name": "Generic PLA-CF @Prusa MK3.5", "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA-CF @MK3.5;Prusa Generic PLA-CF MK3.5", "from": "system", - "setting_id": "yQASt4Ej55vgeZAN", - "filament_id": "OFQ7I5vC", + "setting_id": "3qImFrQCon7iUj4c", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa base.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa base.json index 98cb90bcac..552a9139c5 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF @base.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFQ7I5vC", + "filament_id": "OFWbdGsC", "instantiation": "false", "filament_type": [ "PLA-CF" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa.json similarity index 82% rename from resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json rename to resources/profiles/Prusa/filament/Generic PLA-CF @Prusa.json index d156be1004..c572b9f67c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA-CF.json +++ b/resources/profiles/Prusa/filament/Generic PLA-CF @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PLA-CF", - "inherits": "Prusa Generic PLA-CF @base", + "name": "Generic PLA-CF @Prusa", + "inherits": "Generic PLA-CF @Prusa base", + "renamed_from": "Prusa Generic PLA-CF", "from": "system", - "setting_id": "NqmFeHNZtfNefmvd", + "setting_id": "LIL5n1PzMoaNoJ84", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.25.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.25.json index 4357a8eb1f..f74228304a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.25.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA @MINIIS 0.25", - "inherits": "Prusa Generic PVA @base", + "name": "Generic PVA @Prusa MINIIS 0.25", + "inherits": "Generic PVA @Prusa base", + "renamed_from": "Prusa Generic PVA @MINIIS 0.25;Prusa Generic PVA MINIIS 0.25", "from": "system", - "setting_id": "B0Dmo1DvtrwBwM7U", + "setting_id": "2TecWVXOXcxW37EN", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.6.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.6.json index bd810e4933..f25c70a70c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MINIIS 0.6", - "inherits": "Prusa Generic PVA HF @base", + "name": "Generic PVA @Prusa MINIIS 0.6", + "inherits": "Generic PVA @Prusa base", + "renamed_from": "Prusa Generic PVA @MINIIS 0.6;Prusa Generic PVA MINIIS 0.6", "from": "system", - "setting_id": "4C7OAcG8LVPSTJsh", + "setting_id": "3UTClbjiwrQUCXsV", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.8.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.8.json index a2557cd576..90c4fc2256 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MINIIS 0.8", - "inherits": "Prusa Generic PVA HF @base", + "name": "Generic PVA @Prusa MINIIS 0.8", + "inherits": "Generic PVA @Prusa base", + "renamed_from": "Prusa Generic PVA @MINIIS 0.8;Prusa Generic PVA MINIIS 0.8", "from": "system", - "setting_id": "xj6xYUYJ0tAnfgao", + "setting_id": "RKxewqskgDD2DQTk", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS.json similarity index 66% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS.json index 467f0822bd..99014f18a3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MINIIS", - "inherits": "Prusa Generic PVA HF @base", + "name": "Generic PVA @Prusa MINIIS", + "inherits": "Generic PVA @Prusa base", + "renamed_from": "Prusa Generic PVA @MINIIS;Prusa Generic PVA MINIIS", "from": "system", - "setting_id": "9MNzR7N4A1k64jne", + "setting_id": "XfJmxNhCJiWTWB9i", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.25.json similarity index 68% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.25.json index b0febd6c30..a13990f6c7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.25.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.25.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA @MK3.5 0.25", + "name": "Generic PVA @Prusa MK3.5 0.25", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA @MK3.5 0.25;Prusa Generic PVA MK3.5 0.25", "from": "system", - "setting_id": "ciRHVEjYNqjT5EsD", - "filament_id": "OFcCzEkS", + "setting_id": "P9y77rdSQsCFcFwr", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.6.json similarity index 68% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.6.json index e6956d6b8f..8854a19282 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA @MK3.5 0.6", + "name": "Generic PVA @Prusa MK3.5 0.6", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA @MK3.5 0.6;Prusa Generic PVA MK3.5 0.6", "from": "system", - "setting_id": "G8TFM51vPvMbGSbX", - "filament_id": "OFcCzEkS", + "setting_id": "rvSzvHZL6FIiOQV1", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.8.json similarity index 68% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.8.json index af962c0fec..718845dc9a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA @MK3.5 0.8", + "name": "Generic PVA @Prusa MK3.5 0.8", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA @MK3.5 0.8;Prusa Generic PVA MK3.5 0.8", "from": "system", - "setting_id": "hueUgJutZ71scT6F", - "filament_id": "OFcCzEkS", + "setting_id": "E2sA3y3Cyp0UsQD4", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5.json similarity index 69% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5.json index 36d34b4946..6e1e1c9381 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MK3.5", + "name": "Generic PVA @Prusa MK3.5", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA @MK3.5;Prusa Generic PVA MK3.5", "from": "system", - "setting_id": "X2k0n055aaG1zc0u", - "filament_id": "OFoT8F7Y", + "setting_id": "UTyXSJox9HVdwfXR", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @base.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa base.json index 3da3125629..8f442bc5b0 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @base.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PVA @base", + "name": "Generic PVA @Prusa base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OFcCzEkS", + "filament_id": "OFDvXujf", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA.json b/resources/profiles/Prusa/filament/Generic PVA @Prusa.json similarity index 80% rename from resources/profiles/Prusa/filament/Prusa Generic PVA.json rename to resources/profiles/Prusa/filament/Generic PVA @Prusa.json index 260dfb5d01..3ad6ba8337 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA.json +++ b/resources/profiles/Prusa/filament/Generic PVA @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA", - "inherits": "Prusa Generic PVA @base", + "name": "Generic PVA @Prusa", + "inherits": "Generic PVA @Prusa base", + "renamed_from": "Prusa Generic PVA", "from": "system", - "setting_id": "yLrgUDS7cr4AkOed", + "setting_id": "uVzUlzHkXz6rH1ml", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json index 1a4d7c6aa5..f4e03d791f 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA @MINIIS 0.6", - "inherits": "Prusa Generic PVA @base", + "name": "Generic PVA HF @Prusa MINIIS 0.6", + "inherits": "Generic PVA HF @Prusa base", + "renamed_from": "Prusa Generic PVA HF @MINIIS 0.6;Prusa Generic PVA HF MINIIS 0.6", "from": "system", - "setting_id": "yGTFSZeo1sUdCpeO", + "setting_id": "qeWFOMhrKa1yezHw", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json index 7c3a77c52d..e8935f9172 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA @MINIIS 0.8", - "inherits": "Prusa Generic PVA @base", + "name": "Generic PVA HF @Prusa MINIIS 0.8", + "inherits": "Generic PVA HF @Prusa base", + "renamed_from": "Prusa Generic PVA HF @MINIIS 0.8;Prusa Generic PVA HF MINIIS 0.8", "from": "system", - "setting_id": "ISdXFzAcVUj3ZIfQ", + "setting_id": "h0RQ3XME0UFEeZVA", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json similarity index 64% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json index f6eecea619..a4a131da97 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic PVA @MINIIS", - "inherits": "Prusa Generic PVA @base", + "name": "Generic PVA HF @Prusa MINIIS", + "inherits": "Generic PVA HF @Prusa base", + "renamed_from": "Prusa Generic PVA HF @MINIIS;Prusa Generic PVA HF MINIIS", "from": "system", - "setting_id": "rhZNRY8BNI1TskG2", + "setting_id": "VZcvmjCAtivpMepD", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.6.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.6.json index 6c1843c3ba..1b78b6b0bc 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MK3.5 0.6", + "name": "Generic PVA HF @Prusa MK3.5 0.6", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA HF @MK3.5 0.6;Prusa Generic PVA HF MK3.5 0.6", "from": "system", - "setting_id": "NfhvtCbeYlQ3el2O", - "filament_id": "OFoT8F7Y", + "setting_id": "8R3yU9OjRFBIp1nU", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.8.json similarity index 67% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.8.json index 9271b3051d..94f635382e 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @MK3.5 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @MK3.5 0.8", + "name": "Generic PVA HF @Prusa MK3.5 0.8", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA HF @MK3.5 0.8;Prusa Generic PVA HF MK3.5 0.8", "from": "system", - "setting_id": "J5PBEm3LvfpztfXU", - "filament_id": "OFoT8F7Y", + "setting_id": "OOUVHHPIB95wqeTB", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5.json similarity index 68% rename from resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5.json index aee4bf78bc..c3749316e9 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic PVA @MK3.5", + "name": "Generic PVA HF @Prusa MK3.5", "inherits": "fdm_filament_pva", + "renamed_from": "Prusa Generic PVA HF @MK3.5;Prusa Generic PVA HF MK3.5", "from": "system", - "setting_id": "yaPlNuxryIpkxiOe", - "filament_id": "OFcCzEkS", + "setting_id": "gTh9PfBYkibWdknz", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json rename to resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json index 8a768f844a..bd599d74b3 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic PVA HF @base.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic PVA HF @base", + "name": "Generic PVA HF @Prusa base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "OFoT8F7Y", + "filament_id": "OFDwBwO5", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.6.json similarity index 51% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.6.json index 896518c23c..dc68ea318c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.6.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU @CORE One 0.6", - "inherits": "Prusa Generic TPU @CORE One", + "name": "Generic TPU @Prusa CORE One 0.6", + "inherits": "Generic TPU @Prusa CORE One", + "renamed_from": "Prusa Generic TPU @CORE One 0.6;Prusa Generic TPU CORE One 0.6", "from": "system", - "setting_id": "OulnL3bWrEpRJbgJ", - "filament_id": "OFbenYUK", + "setting_id": "VvvSk3OsXXxyerAX", + "filament_id": "OFgbpcy9", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.8.json similarity index 51% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.8.json index 8b270846d0..93b68e0afa 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One 0.8.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU @CORE One 0.8", - "inherits": "Prusa Generic TPU @CORE One", + "name": "Generic TPU @Prusa CORE One 0.8", + "inherits": "Generic TPU @Prusa CORE One", + "renamed_from": "Prusa Generic TPU @CORE One 0.8;Prusa Generic TPU CORE One 0.8", "from": "system", - "setting_id": "9fAhdX2hOAnUDn1I", - "filament_id": "OFbenYUK", + "setting_id": "LUUEXi6UUk0Zs5Pf", + "filament_id": "OFgbpcy9", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json similarity index 90% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json index 9b212dd17a..3717f8586a 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @CORE One.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU @CORE One", + "name": "Generic TPU @Prusa CORE One", "inherits": "fdm_filament_flex", + "renamed_from": "Prusa Generic TPU @CORE One;Prusa Generic TPU CORE One", "from": "system", - "setting_id": "VR2WfERGWPIWTRha", - "filament_id": "OFbenYUK", + "setting_id": "jsXqf9CeaXCvsrWM", + "filament_id": "OFgbpcy9", "instantiation": "true", "chamber_temperature": [ "30" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MINIIS.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa MINIIS.json index e6d596aa4e..85c60e64a8 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic TPU @MINIIS", - "inherits": "Prusa Generic TPU @base", + "name": "Generic TPU @Prusa MINIIS", + "inherits": "Generic TPU @Prusa base", + "renamed_from": "Prusa Generic TPU @MINIIS;Prusa Generic TPU MINIIS", "from": "system", - "setting_id": "TUqkAb8i9HpFdiCy", + "setting_id": "bOai5Ib1dggl5Qlc", "instantiation": "true", "filament_max_volumetric_speed": [ "1.35" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK3.5.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa MK3.5.json index b3b017de67..3e72481ea7 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU @MK3.5", + "name": "Generic TPU @Prusa MK3.5", "inherits": "fdm_filament_tpu", + "renamed_from": "Prusa Generic TPU @MK3.5;Prusa Generic TPU MK3.5", "from": "system", - "setting_id": "wfxLtrIAOgG7TKib", - "filament_id": "OFbenYUK", + "setting_id": "j6bDPJnwtsB16yBu", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "1.8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4.json similarity index 62% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa MK4.json index 11753a6232..52c7ebf182 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic TPU @MK4", - "inherits": "Prusa Generic TPU @base", + "name": "Generic TPU @Prusa MK4", + "inherits": "Generic TPU @Prusa base", + "renamed_from": "Prusa Generic TPU @MK4;Prusa Generic TPU MK4", "from": "system", - "setting_id": "9KjaEcwnQA8CsnVy", + "setting_id": "9wL3LAJZ7PyqBVEb", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.6.json new file mode 100644 index 0000000000..4b5399bd89 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.6.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic TPU @Prusa MK4S 0.6", + "inherits": "Generic TPU @Prusa MK4S", + "renamed_from": "Prusa Generic TPU @MK4S 0.6;Prusa Generic TPU MK4S 0.6", + "from": "system", + "setting_id": "XM427EDbbCgt2wNZ", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.6 nozzle", + "Prusa MK4S HF0.6 nozzle" + ], + "filament_max_volumetric_speed": [ + "6" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.8.json new file mode 100644 index 0000000000..3a663958f1 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S 0.8.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic TPU @Prusa MK4S 0.8", + "inherits": "Generic TPU @Prusa MK4S", + "renamed_from": "Prusa Generic TPU @MK4S 0.8;Prusa Generic TPU MK4S 0.8", + "from": "system", + "setting_id": "2UPIZFNertdlZ4o2", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "compatible_printers": [ + "Prusa MK4S 0.8 nozzle", + "Prusa MK4S HF0.8 nozzle" + ], + "filament_max_volumetric_speed": [ + "9" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S.json index 7f0ac852ee..75f1895c87 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa MK4S.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU @MK4S", + "name": "Generic TPU @Prusa MK4S", "inherits": "fdm_filament_tpu", + "renamed_from": "Prusa Generic TPU @MK4S;Prusa Generic TPU MK4S", "from": "system", - "setting_id": "JxNaZsG7Y2rQKATV", - "filament_id": "OFbenYUK", + "setting_id": "wdopbtHBnMKC2rhj", + "filament_id": "OFgbpcy9", "instantiation": "true", "close_fan_the_first_x_layers": "3", "compatible_printers": [ diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa base.json similarity index 61% rename from resources/profiles/Prusa/filament/Prusa Generic TPU @base.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa base.json index c0c1bccbb3..7b5668bfff 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @base.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic TPU @base", + "name": "Generic TPU @Prusa base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OFbenYUK", + "filament_id": "OFgbpcy9", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa.json similarity index 71% rename from resources/profiles/Prusa/filament/Prusa Generic TPU.json rename to resources/profiles/Prusa/filament/Generic TPU @Prusa.json index 5f1b953a7c..95048f947c 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic TPU", - "inherits": "Prusa Generic TPU @base", + "name": "Generic TPU @Prusa", + "inherits": "Generic TPU @Prusa base", + "renamed_from": "Prusa Generic TPU", "from": "system", - "setting_id": "l9s40Rloq4urv3Y0", + "setting_id": "bmtq13tfalfSTRrO", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json similarity index 86% rename from resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json rename to resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json index 2295816502..4c4ab81b42 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Prusa Generic TPU HF @MINIIS", - "inherits": "Prusa Generic TPU HF @base", + "name": "Generic TPU HF @Prusa MINIIS", + "inherits": "Generic TPU HF @Prusa base", + "renamed_from": "Prusa Generic TPU HF @MINIIS;Prusa Generic TPU HF MINIIS", "from": "system", - "setting_id": "a9fmPCI24EJoJ5OH", + "setting_id": "Jw1UjgrXtYG5rMDt", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MK3.5.json similarity index 87% rename from resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json rename to resources/profiles/Prusa/filament/Generic TPU HF @Prusa MK3.5.json index b2ac07402c..f958cac588 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @MK3.5.json +++ b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MK3.5.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusa Generic TPU HF @MK3.5", + "name": "Generic TPU HF @Prusa MK3.5", "inherits": "fdm_filament_tpu", + "renamed_from": "Prusa Generic TPU HF @MK3.5;Prusa Generic TPU HF MK3.5", "from": "system", - "setting_id": "Gfuy9ZSCpJw3Usa6", - "filament_id": "OFU3zwPc", + "setting_id": "W8pYAV5JMW70PKlw", + "filament_id": "OFnT7Qpb", "instantiation": "true", "filament_max_volumetric_speed": [ "8" diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json similarity index 60% rename from resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json rename to resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json index e08a83c0e6..47b1b82c77 100644 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU HF @base.json +++ b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json @@ -1,8 +1,8 @@ { "type": "filament", - "name": "Prusa Generic TPU HF @base", + "name": "Generic TPU HF @Prusa base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OFU3zwPc", + "filament_id": "OFnT7Qpb", "instantiation": "false" } diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json deleted file mode 100644 index ade8efad81..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.6.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @CORE One 0.6", - "inherits": "Prusa Generic ABS @CORE One", - "from": "system", - "setting_id": "AADElwBWs9fzeAKC", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.6 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json deleted file mode 100644 index c6c30a2c6b..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @CORE One 0.8.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @CORE One 0.8", - "inherits": "Prusa Generic ABS @CORE One", - "from": "system", - "setting_id": "QLaQiU2tF5ZFTVjP", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.8 nozzle" - ], - "fan_cooling_layer_time": [ - "40" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json deleted file mode 100644 index dd33eedfa7..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.6.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @MK4S 0.6", - "inherits": "Prusa Generic ABS @MK4S", - "from": "system", - "setting_id": "VVzzIN41B5ADTIeQ", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.6 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json deleted file mode 100644 index 66b27bd6c3..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S 0.8.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @MK4S 0.8", - "inherits": "Prusa Generic ABS @MK4S", - "from": "system", - "setting_id": "4705fRqWWP2GZOK8", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json deleted file mode 100644 index 74f774bd11..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.5.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @MK4S HF0.5", - "inherits": "Prusa Generic ABS @MK4S HF0.4", - "from": "system", - "setting_id": "bf8ANklVcC0xW1rT", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.5 nozzle" - ], - "filament_max_volumetric_speed": [ - "27" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json deleted file mode 100644 index 3c461880c7..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.6.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @MK4S HF0.6", - "inherits": "Prusa Generic ABS @MK4S HF0.4", - "from": "system", - "setting_id": "ZB9vO7AnRqMDCrOy", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.6 nozzle" - ], - "filament_max_volumetric_speed": [ - "34" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json deleted file mode 100644 index 4d2d4631d5..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ABS @MK4S HF0.8.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ABS @MK4S HF0.8", - "inherits": "Prusa Generic ABS @MK4S HF0.4", - "from": "system", - "setting_id": "7cx9gZh2vUCR0ELG", - "filament_id": "OFvGc67v", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.8 nozzle" - ], - "fan_min_speed": "15", - "filament_max_volumetric_speed": [ - "36" - ], - "slow_down_layer_time": "25" -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json deleted file mode 100644 index ce22974fd1..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @CORE One 0.6.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ASA @CORE One 0.6", - "inherits": "Prusa Generic ASA @CORE One", - "from": "system", - "setting_id": "GB4mI21wSfo3jfnQ", - "filament_id": "OFoJcr46", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.6 nozzle" - ], - "nozzle_temperature": [ - "255" - ], - "slow_down_layer_time": [ - "15" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json deleted file mode 100644 index cb1eb8f267..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.6.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ASA @MK4S 0.6", - "inherits": "Prusa Generic ASA @MK4S", - "from": "system", - "setting_id": "j5YvdepMw4z29kzr", - "filament_id": "OFoJcr46", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.6 nozzle" - ], - "nozzle_temperature": "255", - "slow_down_layer_time": "15" -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json deleted file mode 100644 index cbacb6e747..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S 0.8.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ASA @MK4S 0.8", - "inherits": "Prusa Generic ASA @MK4S", - "from": "system", - "setting_id": "FtVjP8q0MzM0vr2J", - "filament_id": "OFoJcr46", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.8 nozzle" - ], - "fan_max_speed": "15", - "fan_min_speed": "15", - "slow_down_layer_time": "18" -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json deleted file mode 100644 index 47055f18aa..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.5.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ASA @MK4S HF0.5", - "inherits": "Prusa Generic ASA @MK4S HF0.4", - "from": "system", - "setting_id": "meEXtenGq7N4dWf3", - "filament_id": "OFoJcr46", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.5 nozzle" - ], - "filament_max_volumetric_speed": [ - "27" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json b/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json deleted file mode 100644 index 414315ad65..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic ASA @MK4S HF0.6.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic ASA @MK4S HF0.6", - "inherits": "Prusa Generic ASA @MK4S HF0.4", - "from": "system", - "setting_id": "o0UhIK80Y28KX3AK", - "filament_id": "OFoJcr46", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.6 nozzle" - ], - "fan_max_speed": "15", - "fan_min_speed": "15", - "filament_max_volumetric_speed": [ - "34" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json b/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json deleted file mode 100644 index 6129d321b2..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic PETG @MK4S HF0.5.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic PETG @MK4S HF0.5", - "inherits": "Prusa Generic PETG @MK4S HF0.4", - "from": "system", - "setting_id": "vO26JgugJEsX5z6a", - "filament_id": "OF1Id239", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S HF0.5 nozzle" - ], - "filament_max_volumetric_speed": [ - "29" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json deleted file mode 100644 index a205ac7e71..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA @CORE One 0.6.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic PLA @CORE One 0.6", - "inherits": "Prusa Generic PLA @CORE One", - "from": "system", - "setting_id": "8kSIJx0dpaelcAos", - "filament_id": "OFiCHnso", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.6 nozzle" - ], - "nozzle_temperature": [ - "210" - ], - "slow_down_layer_time": [ - "15" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json deleted file mode 100644 index e877f0f0b4..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic PLA Silk @CORE One 0.8.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic PLA Silk @CORE One 0.8", - "inherits": "Prusa Generic PLA Silk @CORE One", - "from": "system", - "setting_id": "y2IZMYPduRS1mEFL", - "filament_id": "OFHFZ1Te", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.8 nozzle", - "Prusa CORE One HF 0.8 nozzle" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "17" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json deleted file mode 100644 index 2c0e48d6a5..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.6.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic TPU @MK4S 0.6", - "inherits": "Prusa Generic TPU @MK4S", - "from": "system", - "setting_id": "3zJSkjnxFgeAbkhY", - "filament_id": "OFbenYUK", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.6 nozzle", - "Prusa MK4S HF0.6 nozzle" - ], - "filament_max_volumetric_speed": [ - "6" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json b/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json deleted file mode 100644 index e78a2768d0..0000000000 --- a/resources/profiles/Prusa/filament/Prusa Generic TPU @MK4S 0.8.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Prusa Generic TPU @MK4S 0.8", - "inherits": "Prusa Generic TPU @MK4S", - "from": "system", - "setting_id": "tRRHfIUwFo1C8Q3B", - "filament_id": "OFbenYUK", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.8 nozzle", - "Prusa MK4S HF0.8 nozzle" - ], - "filament_max_volumetric_speed": [ - "9" - ] -} diff --git a/resources/profiles/Prusa/machine/Prusa CORE One HF.json b/resources/profiles/Prusa/machine/Prusa CORE One HF.json index cabd5b0cb4..027ef3e2d0 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One HF.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One HF.json @@ -3,7 +3,7 @@ "name": "Prusa CORE One HF", "bed_model": "coreone_bed.stl", "bed_texture": "coreone.svg", - "default_materials": "Prusa Generic ABS @CORE One;Prusa Generic ASA @CORE One;Prusa Generic PETG @CORE One;Prusa Generic PLA @CORE One;Prusa Generic PLA Silk @CORE One;Prusa Generic TPU @CORE One", + "default_materials": "Generic ABS @Prusa CORE One;Generic ASA @Prusa CORE One;Generic PETG @Prusa CORE One;Generic PLA @Prusa CORE One;Generic PLA Silk @Prusa CORE One;Generic TPU @Prusa CORE One", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa CORE One L HF.json b/resources/profiles/Prusa/machine/Prusa CORE One L HF.json index c176e5961b..57287f0380 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One L HF.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One L HF.json @@ -3,7 +3,7 @@ "name": "Prusa CORE One L HF", "bed_model": "coreonel_bed.stl", "bed_texture": "coreonel.svg", - "default_materials": "Prusa Generic PLA @CORE One", + "default_materials": "Generic PLA @Prusa CORE One", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa CORE One L.json b/resources/profiles/Prusa/machine/Prusa CORE One L.json index 4ba199b10f..87bc587830 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One L.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One L.json @@ -3,7 +3,7 @@ "name": "Prusa CORE One L", "bed_model": "coreonel_bed.stl", "bed_texture": "coreonel.svg", - "default_materials": "Prusa Generic ABS @CORE One;Prusa Generic ASA @CORE One;Prusa Generic PETG @CORE One;Prusa Generic PLA @CORE One;Prusa Generic PLA Silk @CORE One;Prusa Generic TPU @CORE One", + "default_materials": "Generic ABS @Prusa CORE One;Generic ASA @Prusa CORE One;Generic PETG @Prusa CORE One;Generic PLA @Prusa CORE One;Generic PLA Silk @Prusa CORE One;Generic TPU @Prusa CORE One", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa CORE One.json b/resources/profiles/Prusa/machine/Prusa CORE One.json index 7fbe05d11d..b9907aca2e 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One.json @@ -3,7 +3,7 @@ "name": "Prusa CORE One", "bed_model": "coreone_bed.stl", "bed_texture": "coreone.svg", - "default_materials": "Prusa Generic ABS @CORE One;Prusa Generic ASA @CORE One;Prusa Generic PETG @CORE One;Prusa Generic PLA @CORE One;Prusa Generic PLA Silk @CORE One;Prusa Generic TPU @CORE One", + "default_materials": "Generic ABS @Prusa CORE One;Generic ASA @Prusa CORE One;Generic PETG @Prusa CORE One;Generic PLA @Prusa CORE One;Generic PLA Silk @Prusa CORE One;Generic TPU @Prusa CORE One", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa MINI 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINI 0.25 nozzle.json index b5f9d8392b..dbfa34e816 100644 --- a/resources/profiles/Prusa/machine/Prusa MINI 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINI 0.25 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI", "printer_variant": "0.25", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Standard @MINI 0.25", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINI 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINI 0.4 nozzle.json index 488734582c..4bc7af6bab 100644 --- a/resources/profiles/Prusa/machine/Prusa MINI 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINI 0.4 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI", "printer_variant": "0.4", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Standard @MINI", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINI 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINI 0.6 nozzle.json index ea851b9dcf..6eed0480a6 100644 --- a/resources/profiles/Prusa/machine/Prusa MINI 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINI 0.6 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI", "printer_variant": "0.6", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Standard @MINI 0.6", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINI 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINI 0.8 nozzle.json index 30394e8eef..8168f195fa 100644 --- a/resources/profiles/Prusa/machine/Prusa MINI 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINI 0.8 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI", "printer_variant": "0.8", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Standard @MINI 0.8", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINI.json b/resources/profiles/Prusa/machine/Prusa MINI.json index 367b75a727..a7ce538229 100644 --- a/resources/profiles/Prusa/machine/Prusa MINI.json +++ b/resources/profiles/Prusa/machine/Prusa MINI.json @@ -8,5 +8,5 @@ "bed_model": "mini_bed.stl", "bed_texture": "mini.svg", "hotend_model": "", - "default_materials": "Prusa Generic ABS;Prusa Generic PLA;Prusa Generic PLA-CF;Prusa Generic PETG;Prusa Generic TPU;Prusa Generic ASA;Prusa Generic PC;Prusa Generic PVA;Prusa Generic PA;Prusa Generic PA-CF" + "default_materials": "Generic ABS @Prusa;Generic PLA @Prusa;Generic PLA-CF @Prusa;Generic PETG @Prusa;Generic TPU @Prusa;Generic ASA @Prusa;Generic PC @Prusa;Generic PVA @Prusa;Generic PA @Prusa;Generic PA-CF @Prusa" } diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json index c800a8a409..06b10cc244 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.25 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI IS", "printer_variant": "0.25", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS 0.25" + "Generic PLA @Prusa MINIIS 0.25" ], "default_print_profile": "0.12mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json index d2d6c18f39..18fe72ef3f 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI IS", "printer_variant": "0.4", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS" + "Generic PLA @Prusa MINIIS" ], "default_print_profile": "0.20mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json index c7ebd42263..7dc21fb981 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.6 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI IS", "printer_variant": "0.6", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS 0.6" + "Generic PLA @Prusa MINIIS 0.6" ], "default_print_profile": "0.25mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json index 0ae5a7bbbd..4ab6daa76d 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.8 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MINI IS", "printer_variant": "0.8", "default_filament_profile": [ - "Prusa Generic PLA @MINIIS 0.8" + "Generic PLA @Prusa MINIIS 0.8" ], "default_print_profile": "0.40mm Standard @MINIIS", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS.json b/resources/profiles/Prusa/machine/Prusa MINIIS.json index 123f0a3665..ae5282a129 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS.json @@ -8,5 +8,5 @@ "bed_model": "miniis_bed.stl", "bed_texture": "miniis.svg", "hotend_model": "", - "default_materials": "Prusa Generic PLA-CF @MINIIS;Prusa Generic PC @MINIIS;Prusa Generic PVA @MINIIS;Prusa Generic PA @MINIIS;Prusa Generic PA-CF @MINIIS;Prusa Generic ABS @MINIIS;Prusa Generic PLA @MINIIS;Prusa Generic PLA @MINIIS 0.6;Prusa Generic PLA @MINIIS 0.8;Prusa Generic PETG @MINIIS;Prusa Generic PETG @MINIIS 0.6;Prusa Generic PETG @MINIIS 0.8;Prusa Generic TPU @MINIIS;Prusa Generic ASA @MINIIS;" + "default_materials": "Generic PLA-CF @Prusa MINIIS;Generic PC @Prusa MINIIS;Generic PVA @Prusa MINIIS;Generic PA @Prusa MINIIS;Generic PA-CF @Prusa MINIIS;Generic ABS @Prusa MINIIS;Generic PLA @Prusa MINIIS;Generic PLA @Prusa MINIIS 0.6;Generic PLA @Prusa MINIIS 0.8;Generic PETG @Prusa MINIIS;Generic PETG @Prusa MINIIS 0.6;Generic PETG @Prusa MINIIS 0.8;Generic TPU @Prusa MINIIS;Generic ASA @Prusa MINIIS;" } diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3.5 0.25 nozzle.json index d2fefedc6f..77ca6aa9e3 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5 0.25 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MK3.5", "printer_variant": "0.25", "default_filament_profile": [ - "Prusa Generic PLA @MK3.5 0.25" + "Generic PLA @Prusa MK3.5 0.25" ], "default_print_profile": "0.12mm Standard @MK3.5", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json index 6d473ce765..ae7df2e583 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MK3.5", "printer_variant": "0.4", "default_filament_profile": [ - "Prusa Generic PLA @MK3.5" + "Generic PLA @Prusa MK3.5" ], "default_print_profile": "0.20mm Standard @MK3.5", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3.5 0.6 nozzle.json index 3631749c53..742b172254 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5 0.6 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MK3.5", "printer_variant": "0.6", "default_filament_profile": [ - "Prusa Generic PLA @MK3.5 0.6" + "Generic PLA @Prusa MK3.5 0.6" ], "default_print_profile": "0.25mm Standard @MK3.5", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3.5 0.8 nozzle.json index 1dd7d455d4..c67665fefa 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5 0.8 nozzle.json @@ -9,7 +9,7 @@ "printer_model": "Prusa MK3.5", "printer_variant": "0.8", "default_filament_profile": [ - "Prusa Generic PLA @MK3.5 0.8" + "Generic PLA @Prusa MK3.5 0.8" ], "default_print_profile": "0.40mm Standard @MK3.5", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5.json b/resources/profiles/Prusa/machine/Prusa MK3.5.json index 4438d3d478..2893862789 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5.json @@ -8,5 +8,5 @@ "bed_model": "mk3.5_bed.stl", "bed_texture": "mk3.5.svg", "hotend_model": "", - "default_materials": "Prusa Generic PLA-CF @MK3.5;Prusa Generic PC @MK3.5;Prusa Generic PVA @MK3.5;Prusa Generic PA @MK3.5;Prusa Generic PA-CF @MK3.5;Prusa Generic ABS @MK3.5;Prusa Generic PLA @MK3.5;Prusa Generic PLA @MK3.5 0.6;Prusa Generic PLA @MK3.5 0.8;Prusa Generic PETG @MK3.5;Prusa Generic PETG @MK3.5 0.6;Prusa Generic PETG @MK3.5 0.8;Prusa Generic TPU @MK3.5;Prusa Generic ASA @MK3.5;" + "default_materials": "Generic PLA-CF @Prusa MK3.5;Generic PC @Prusa MK3.5;Generic PVA @Prusa MK3.5;Generic PA @Prusa MK3.5;Generic PA-CF @Prusa MK3.5;Generic ABS @Prusa MK3.5;Generic PLA @Prusa MK3.5;Generic PLA @Prusa MK3.5 0.6;Generic PLA @Prusa MK3.5 0.8;Generic PETG @Prusa MK3.5;Generic PETG @Prusa MK3.5 0.6;Generic PETG @Prusa MK3.5 0.8;Generic TPU @Prusa MK3.5;Generic ASA @Prusa MK3.5;" } diff --git a/resources/profiles/Prusa/machine/Prusa MK3S 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3S 0.25 nozzle.json index 28333578ff..31fd34848a 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3S 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3S 0.25 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Prusa MK3S", "printer_variant": "0.25", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Speed @MK3S 0.25", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json index 5b86474541..036b901121 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3S 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Prusa MK3S", "printer_variant": "0.4", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.20mm Speed @MK3S 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3S 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3S 0.6 nozzle.json index d94d5a0306..c3be2666b8 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3S 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3S 0.6 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Prusa MK3S", "printer_variant": "0.6", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.30mm Quality @MK3S 0.6", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3S 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3S 0.8 nozzle.json index 92450e95fe..ac85e1db4c 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3S 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3S 0.8 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Prusa MK3S", "printer_variant": "0.8", "default_filament_profile": [ - "Prusa Generic PLA" + "Generic PLA @Prusa" ], "default_print_profile": "0.15mm Detail @MK3S 0.8", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK3S.json b/resources/profiles/Prusa/machine/Prusa MK3S.json index d5323b5f1f..ad27bb59f6 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3S.json +++ b/resources/profiles/Prusa/machine/Prusa MK3S.json @@ -8,5 +8,5 @@ "bed_model": "mk3_bed.stl", "bed_texture": "mk3.svg", "hotend_model": "", - "default_materials": "Prusa Generic ABS;Prusa Generic PLA;Prusa Generic PLA-CF;Prusa Generic PETG;Prusa Generic TPU;Prusa Generic ASA;Prusa Generic PC;Prusa Generic PVA;Prusa Generic PA;Prusa Generic PA-CF" + "default_materials": "Generic ABS @Prusa;Generic PLA @Prusa;Generic PLA-CF @Prusa;Generic PETG @Prusa;Generic TPU @Prusa;Generic ASA @Prusa;Generic PC @Prusa;Generic PVA @Prusa;Generic PA @Prusa;Generic PA-CF @Prusa" } diff --git a/resources/profiles/Prusa/machine/Prusa MK4 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 0.25 nozzle.json index 81b75a5098..ad8bdc7676 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4 0.25 nozzle.json @@ -8,7 +8,7 @@ "gcode_flavor": "marlin2", "printer_model": "Prusa MK4", "default_filament_profile": [ - "Prusa Generic PLA @MK4" + "Generic PLA @Prusa MK4" ], "default_print_profile": "0.08mm Standard @MK4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json index 89aa893547..417a953aaa 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json @@ -8,7 +8,7 @@ "gcode_flavor": "marlin2", "printer_model": "Prusa MK4", "default_filament_profile": [ - "Prusa Generic PLA @MK4" + "Generic PLA @Prusa MK4" ], "default_print_profile": "0.20mm Standard @MK4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK4 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 0.6 nozzle.json index f5991e42a9..af4b985d28 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4 0.6 nozzle.json @@ -8,7 +8,7 @@ "gcode_flavor": "marlin2", "printer_model": "Prusa MK4", "default_filament_profile": [ - "Prusa Generic PLA @MK4" + "Generic PLA @Prusa MK4" ], "default_print_profile": "0.32mm Standard @MK4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK4 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 0.8 nozzle.json index 91e64bdbb1..f6a151581c 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4 0.8 nozzle.json @@ -8,7 +8,7 @@ "gcode_flavor": "marlin2", "printer_model": "Prusa MK4", "default_filament_profile": [ - "Prusa Generic PLA @MK4" + "Generic PLA @Prusa MK4" ], "default_print_profile": "0.40mm Standard @MK4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa MK4.json b/resources/profiles/Prusa/machine/Prusa MK4.json index dc14d1477c..a5a01b2f2e 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4.json +++ b/resources/profiles/Prusa/machine/Prusa MK4.json @@ -8,5 +8,5 @@ "bed_model": "mk4_bed.stl", "bed_texture": "mk4is.svg", "hotend_model": "", - "default_materials": "Prusa Generic PLA-CF;Prusa Generic PC;Prusa Generic PVA;Prusa Generic PA;Prusa Generic PA-CF;Prusa Generic ABS @MK4;Prusa Generic PLA @MK4;Prusa Generic PETG @MK4;Prusa Generic TPU @MK4;Prusa Generic ASA @MK4;" + "default_materials": "Generic PLA-CF @Prusa;Generic PC @Prusa;Generic PVA @Prusa;Generic PA @Prusa;Generic PA-CF @Prusa;Generic ABS @Prusa MK4;Generic PLA @Prusa MK4;Generic PETG @Prusa MK4;Generic TPU @Prusa MK4;Generic ASA @Prusa MK4;" } diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json index e9824d1ed6..4f0a79173a 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "8tL4SMT6bHqG2Ql1", "instantiation": "true", - "default_filament_profile": "Prusa Generic PLA @MK4S", + "default_filament_profile": "Generic PLA @Prusa MK4S", "default_print_profile": "0.20mm SPEED @MK4S 0.4", "nozzle_diameter": [ "0.4" diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json index 0f454ca38f..22acff8dbe 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "m0ALiNI26ncFxsY2", "instantiation": "true", - "default_filament_profile": "Prusa Generic PLA @MK4S 0.6", + "default_filament_profile": "Generic PLA @Prusa MK4S 0.6", "default_print_profile": "0.25mm SPEED @MK4S 0.6", "max_layer_height": "0.40", "min_layer_height": "0.15", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json index d460517983..8799a148b4 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "rMzjWvSpqLsRK0gP", "instantiation": "true", - "default_filament_profile": "Prusa Generic PLA @MK4S 0.8", + "default_filament_profile": "Generic PLA @Prusa MK4S 0.8", "default_print_profile": "0.40mm QUALITY @MK4S 0.8", "deretraction_speed": "15", "max_layer_height": "0.6", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF.json b/resources/profiles/Prusa/machine/Prusa MK4S HF.json index b49fde2dde..088715b835 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S HF.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF.json @@ -3,7 +3,7 @@ "name": "Prusa MK4S HF", "bed_model": "mk4_bed.stl", "bed_texture": "mk4s.svg", - "default_materials": "Prusa Generic ABS @MK4S;Prusa Generic ASA @MK4S;Prusa Generic PETG @MK4S;Prusa Generic PLA @MK4S;Prusa Generic PLA Silk @MK4S;Prusa Generic TPU @MK4S", + "default_materials": "Generic ABS @Prusa MK4S;Generic ASA @Prusa MK4S;Generic PETG @Prusa MK4S;Generic PLA @Prusa MK4S;Generic PLA Silk @Prusa MK4S;Generic TPU @Prusa MK4S", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json index abc0f71d50..f417814bbd 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "zMYcZUEYGqFVXcPo", "instantiation": "true", - "default_filament_profile": "Prusa Generic PLA @MK4S HF0.4", + "default_filament_profile": "Generic PLA @Prusa MK4S HF0.4", "default_print_profile": "0.20mm SPEED @MK4S HF0.4", "machine_start_gcode": [ "M17 ; enable steppers\nM862.1 P[nozzle_diameter] ; nozzle check\nM862.3 P \"MK4S\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.1.3+7898\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 T0 S{((filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == \"PC\" or filament_type[0] == \"PA\") ? (first_layer_temperature[0] - 25) : (filament_type[0] == \"FLEX\") ? 210 : (filament_type[0]=~/.*PET.*/) ? 175 : 170)} ; set extruder temp for bed leveling\nM109 T0 R{((filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == \"PC\" or filament_type[0] == \"PA\") ? (first_layer_temperature[0] - 25) : (filament_type[0] == \"FLEX\") ? 210 : (filament_type[0]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\nM84 E ; turn off E motor\n\nG28 ; home all without mesh bed level\n\nG1 X42 Y-4 Z5 F4800\n\nM302 S160 ; lower cold extrusion limit to 160C\n\n{if filament_type[initial_tool]==\"FLEX\"}\nG1 E-4 F2400 ; retraction\n{else}\nG1 E-2 F2400 ; retraction\n{endif}\n\nM84 E ; turn off E motor\n\nG29 P9 X10 Y-4 W32 H4\n\n{if first_layer_bed_temperature[initial_tool]<=60}M106 S100{endif}\n\nG0 Z40 F10000\n\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nM107\n\n;\n; MBL\n;\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X0 Y0 W50 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\n\n; prepare for purge\nM104 S{first_layer_temperature[0]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[0]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[0] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X25 E4 F500 ; purge\nG0 X35 E4 F650 ; purge\nG0 X45 E4 F800 ; purge\nG0 X48 Z0.05 F8000 ; wipe, move close to the bed\nG0 X51 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; set flow to 100%" diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json index dd6cf098d4..37ea0e1f7c 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "UygX2hdbWqKzY6Nn", "instantiation": "true", - "default_filament_profile": "Prusa Generic PLA @MK4S HF0.8", + "default_filament_profile": "Generic PLA @Prusa MK4S HF0.8", "default_print_profile": "0.40mm STRUCTURAL @MK4S HF0.8", "deretraction_speed": "15", "max_layer_height": "0.6", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S.json b/resources/profiles/Prusa/machine/Prusa MK4S.json index 18f669594a..2f6bd3e45f 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S.json @@ -3,7 +3,7 @@ "name": "Prusa MK4S", "bed_model": "mk4_bed.stl", "bed_texture": "mk4s.svg", - "default_materials": "Prusa Generic ABS @MK4S;Prusa Generic ASA @MK4S;Prusa Generic PETG @MK4S;Prusa Generic PLA @MK4S;Prusa Generic PLA Silk @MK4S;Prusa Generic TPU @MK4S", + "default_materials": "Generic ABS @Prusa MK4S;Generic ASA @Prusa MK4S;Generic PETG @Prusa MK4S;Generic PLA @Prusa MK4S;Generic PLA Silk @Prusa MK4S;Generic TPU @Prusa MK4S", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json index 8a2ef4ecbb..e259346b94 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.25 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.15mm Speed @Prusa XL 0.25", "printer_variant": "0.25", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json index 7b6192e64c..afbd0b421c 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.3 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.20mm Speed @Prusa XL 0.3", "printer_variant": "0.3", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json index ae5add4f6a..20e8694545 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.20mm Speed @Prusa XL 0.4", "printer_variant": "0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json index 5d470138ca..d4dafc32a1 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.5 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.25mm Speed @Prusa XL 0.5", "printer_variant": "0.5", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json index 050b6b5106..4e43982b7d 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.6 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.32mm Speed @Prusa XL 0.6", "printer_variant": "0.6", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json index 3d64a2420d..2594b57060 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 0.8 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL", - "default_filament_profile": "Prusa Generic PLA @XL", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.40mm Quality @Prusa XL 0.8", "printer_variant": "0.8", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json index 42916b3a27..8a29e7dadf 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.15mm Speed @Prusa XL 5T 0.25", "printer_variant": "0.25", "max_layer_height": "0.15", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json index 7a07b277e2..d380fe5434 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.20mm Speed @Prusa XL 5T 0.3", "printer_variant": "0.3", "max_layer_height": "0.22", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json index 8642ac9ac7..3b29778f29 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.20mm Speed @Prusa XL 5T 0.4", "printer_variant": "0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json index fe51f7f4f8..e795d8f8b0 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.25mm Speed @Prusa XL 5T 0.5", "printer_variant": "0.5", "max_layer_height": "0.32", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json index 1492cf6a6d..76569ca735 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.32mm Speed @Prusa XL 5T 0.6", "printer_variant": "0.6", "max_layer_height": "0.4", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json index 14277e59fe..d72bfeccad 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Prusa Generic PLA @XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL 5T", "default_print_profile": "0.40mm Quality @Prusa XL 5T 0.8", "printer_variant": "0.8", "max_layer_height": "0.6", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T.json b/resources/profiles/Prusa/machine/Prusa XL 5T.json index 20dfce5046..02e93a78b5 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T.json @@ -8,5 +8,5 @@ "bed_model": "Prusa XL_bed.stl", "bed_texture": "Prusa XL.svg", "hotend_model": "", - "default_materials": "Prusa Generic PLA @XL 5T;Prusament PLA @XL 5T;Prusament rPLA @XL 5T;Prusa Generic PETG @XL 5T;Prusament PETG @XL 5T;Prusa Generic ABS @XL 5T;Prusament ASA @XL 5T;Prusament PC Blend @XL 5T;Prusament PC-CF @XL 5T;Prusament PVB @XL 5T;Prusament PA-CF @XL 5T;Prusa Generic FLEX @XL 5T" + "default_materials": "Generic PLA @Prusa XL 5T;Prusament PLA @XL 5T;Prusament rPLA @XL 5T;Generic PETG @Prusa XL 5T;Prusament PETG @XL 5T;Generic ABS @Prusa XL 5T;Prusament ASA @XL 5T;Prusament PC Blend @XL 5T;Prusament PC-CF @XL 5T;Prusament PVB @XL 5T;Prusament PA-CF @XL 5T;Generic FLEX @Prusa XL 5T" } diff --git a/resources/profiles/Prusa/machine/Prusa XL.json b/resources/profiles/Prusa/machine/Prusa XL.json index 9a7ba66066..17cc16e486 100644 --- a/resources/profiles/Prusa/machine/Prusa XL.json +++ b/resources/profiles/Prusa/machine/Prusa XL.json @@ -8,5 +8,5 @@ "bed_model": "Prusa XL_bed.stl", "bed_texture": "Prusa XL.svg", "hotend_model": "", - "default_materials": "Prusa Generic PLA @XL;Prusament PLA @XL;Prusament rPLA @XL;Prusa Generic PETG @XL;Prusament PETG @XL;Prusa Generic ABS @XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC-CF @XL;Prusament PVB @XL;Prusament PA-CF @XL;Prusa Generic FLEX @XL" + "default_materials": "Generic PLA @Prusa XL;Prusament PLA @XL;Prusament rPLA @XL;Generic PETG @Prusa XL;Prusament PETG @XL;Generic ABS @Prusa XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC-CF @XL;Prusament PVB @XL;Prusament PA-CF @XL;Generic FLEX @Prusa XL" } diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json index daec78bc4e..0cbde13d89 100644 --- a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json +++ b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json @@ -10,7 +10,7 @@ "change_filament_gcode": [ "" ], - "default_filament_profile": "Prusa Generic PLA @MK4S", + "default_filament_profile": "Generic PLA @Prusa MK4S", "default_print_profile": "0.20mm SPEED @MK4IS 0.4", "deretraction_speed": "25", "extruder_clearance_height_to_lid": "220", diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index 98f157c9a3..c3babbc4a5 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.12", + "version": "02.04.00.13", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ @@ -1753,8 +1753,8 @@ "sub_path": "filament/QIDI ABS-GF25.json" }, { - "name": "Qidi Generic ABS", - "sub_path": "filament/Qidi Generic ABS.json" + "name": "Generic ABS @Qidi", + "sub_path": "filament/Generic ABS @Qidi.json" }, { "name": "Qidi PC-ABS-FR", @@ -1769,8 +1769,8 @@ "sub_path": "filament/Qidi ASA-Aero.json" }, { - "name": "Qidi Generic ASA", - "sub_path": "filament/Qidi Generic ASA.json" + "name": "Generic ASA @Qidi", + "sub_path": "filament/Generic ASA @Qidi.json" }, { "name": "QIDI PA-Ultra", @@ -1817,16 +1817,16 @@ "sub_path": "filament/QIDI UltraPA-CF25.json" }, { - "name": "Qidi Generic PA", - "sub_path": "filament/Qidi Generic PA.json" + "name": "Generic PA @Qidi", + "sub_path": "filament/Generic PA @Qidi.json" }, { - "name": "Qidi Generic PA-CF", - "sub_path": "filament/Qidi Generic PA-CF.json" + "name": "Generic PA-CF @Qidi", + "sub_path": "filament/Generic PA-CF @Qidi.json" }, { - "name": "Qidi Generic PC", - "sub_path": "filament/Qidi Generic PC.json" + "name": "Generic PC @Qidi", + "sub_path": "filament/Generic PC @Qidi.json" }, { "name": "Bambu PETG", @@ -1861,12 +1861,12 @@ "sub_path": "filament/QIDI PETG-GF.json" }, { - "name": "Qidi Generic PETG", - "sub_path": "filament/Qidi Generic PETG.json" + "name": "Generic PETG @Qidi", + "sub_path": "filament/Generic PETG @Qidi.json" }, { - "name": "Qidi Generic PETG-CF", - "sub_path": "filament/Qidi Generic PETG-CF.json" + "name": "Generic PETG-CF @Qidi", + "sub_path": "filament/Generic PETG-CF @Qidi.json" }, { "name": "Tinmorry PETG-ECO", @@ -1917,28 +1917,28 @@ "sub_path": "filament/QIDI WOOD Rapido.json" }, { - "name": "Qidi Generic PLA", - "sub_path": "filament/Qidi Generic PLA.json" + "name": "Generic PLA @Qidi", + "sub_path": "filament/Generic PLA @Qidi.json" }, { - "name": "Qidi Generic PLA Silk", - "sub_path": "filament/Qidi Generic PLA Silk.json" + "name": "Generic PLA Silk @Qidi", + "sub_path": "filament/Generic PLA Silk @Qidi.json" }, { - "name": "Qidi Generic PLA+", - "sub_path": "filament/Qidi Generic PLA+.json" + "name": "Generic PLA+ @Qidi", + "sub_path": "filament/Generic PLA+ @Qidi.json" }, { - "name": "Qidi Generic PLA-CF", - "sub_path": "filament/Qidi Generic PLA-CF.json" + "name": "Generic PLA-CF @Qidi", + "sub_path": "filament/Generic PLA-CF @Qidi.json" }, { "name": "Qidi PLA-CF", "sub_path": "filament/Qidi PLA-CF.json" }, { - "name": "Qidi Generic PVA", - "sub_path": "filament/Qidi Generic PVA.json" + "name": "Generic PVA @Qidi", + "sub_path": "filament/Generic PVA @Qidi.json" }, { "name": "QIDI PEBA 95A", @@ -1953,12 +1953,12 @@ "sub_path": "filament/QIDI TPU-GF.json" }, { - "name": "Qidi Generic TPU", - "sub_path": "filament/Qidi Generic TPU.json" + "name": "Generic TPU @Qidi", + "sub_path": "filament/Generic TPU @Qidi.json" }, { - "name": "Qidi Generic TPU 95A", - "sub_path": "filament/Qidi Generic TPU 95A.json" + "name": "Generic TPU 95A @Qidi", + "sub_path": "filament/Generic TPU 95A @Qidi.json" }, { "name": "Qidi TPU 95A-HF", @@ -4553,48 +4553,48 @@ "sub_path": "filament/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic ABS @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic ABS @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic ABS @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic ABS @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic ABS @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic ABS @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json" + "name": "Generic ABS @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Max 3 0.2 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json" + "name": "Generic ABS @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 3 0.2 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json" + "name": "Generic ABS @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Smart 3 0.2 nozzle.json" }, { "name": "Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", @@ -4673,48 +4673,48 @@ "sub_path": "filament/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic ASA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic ASA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic ASA @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic ASA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic ASA @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic ASA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic ASA @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json" + "name": "Generic ASA @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Max 3 0.2 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json" + "name": "Generic ASA @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 3 0.2 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json" + "name": "Generic ASA @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Smart 3 0.2 nozzle.json" }, { "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", @@ -4981,44 +4981,44 @@ "sub_path": "filament/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PC @0.2 nozzle", - "sub_path": "filament/Qidi Generic PC @0.2 nozzle.json" + "name": "Generic PC @Qidi 0.2 nozzle", + "sub_path": "filament/Generic PC @Qidi 0.2 nozzle.json" }, { - "name": "Qidi Generic PC @0.8 nozzle", - "sub_path": "filament/Qidi Generic PC @0.8 nozzle.json" + "name": "Generic PC @Qidi 0.8 nozzle", + "sub_path": "filament/Generic PC @Qidi 0.8 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic PC @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic PC @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic PC @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PC @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic PC @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic PC @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic PC @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic PC @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic PC @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PC @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PC @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PC @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic PC @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PC @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic PC @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PC @Qidi X-Plus 4 0.8 nozzle.json" }, { "name": "Bambu PETG @0.2 nozzle", @@ -5333,48 +5333,48 @@ "sub_path": "filament/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic PETG @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic PETG @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic PETG @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic PETG @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic PETG @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json" + "name": "Generic PETG @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Max 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json" + "name": "Generic PETG @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json" + "name": "Generic PETG @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Smart 3 0.2 nozzle.json" }, { "name": "Bambu PLA @0.2 nozzle", @@ -5825,148 +5825,148 @@ "sub_path": "filament/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic PLA @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PLA @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic PLA @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic PLA @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json" + "name": "Generic PLA @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Max 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json" + "name": "Generic PLA @Qidi X-Max 3 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Max 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json" + "name": "Generic PLA @Qidi X-Max 3 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Max 3 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 3 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json" + "name": "Generic PLA @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Smart 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json" + "name": "Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Smart 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json" + "name": "Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Smart 3 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json" + "name": "Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json" + "name": "Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json" + "name": "Generic PLA+ @Qidi X-Max 3 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json" + "name": "Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json" + "name": "Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json" + "name": "Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json" + "name": "Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json" + "name": "Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "sub_path": "filament/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json" }, { "name": "QIDI PLA-CF @0.6 nozzle", @@ -6057,20 +6057,20 @@ "sub_path": "filament/QIDI TPU-GF @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "sub_path": "filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json" + "name": "Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic TPU @Qidi Q1 Pro 0.4 nozzle.json" }, { - "name": "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic TPU @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic TPU @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "sub_path": "filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json" + "name": "Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json" }, { - "name": "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json" }, { "name": "Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", @@ -6089,20 +6089,20 @@ "sub_path": "filament/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle.json" }, { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json" + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json" }, { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json" + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json" }, { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json" + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json" }, { - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "sub_path": "filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json" + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json" }, { "name": "fdm_filament_x5_common", diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.2 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.2 nozzle.json index b14283c761..2ca51212e7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle;Qidi Generic ABS Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "BNOS859dmAw7GIZp", - "filament_id": "OFv4VZCd", + "setting_id": "IQDYfIQsv6WlnA3z", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json similarity index 63% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json index 7dd600cc44..7c22168a8e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle;Qidi Generic ABS Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "XfuwzYZzTauK0ADk", - "filament_id": "OFv4VZCd", + "setting_id": "YS0ov4dEWAJhRRvk", + "filament_id": "OFY9muEs", "instantiation": "true", "fan_max_speed": [ "80" @@ -13,7 +14,7 @@ "10" ], "filament_settings_id": [ - "Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle" + "Generic ABS @Qidi Q1 Pro 0.4 nozzle" ], "nozzle_temperature": [ "250" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.6 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.6 nozzle.json index 0411a7a366..b16d7783b2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle;Qidi Generic ABS Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "ziWmRGMYOpjc7Hpo", - "filament_id": "OFv4VZCd", + "setting_id": "LQTfTgV2MBEm6DDD", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.8 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.8 nozzle.json index 39cca2e3bb..61f33e870a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle;Qidi Generic ABS Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "lLXYczQE4YfPiyDO", - "filament_id": "OFv4VZCd", + "setting_id": "ZWOlrWQQwvsDV8xa", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Max 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Max 3 0.2 nozzle.json index e24fd6df8f..fcb9b9f547 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Max 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Max 3 0.2 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle;Qidi Generic ABS Qidi X-Max 3 0.2 nozzle", "from": "system", - "setting_id": "o62pcRmFnj2mIXhf", - "filament_id": "OFv4VZCd", + "setting_id": "v7w2dLJ1MtUjvy1l", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 3 0.2 nozzle.json index 6b67afc3a6..c52716ea4b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Plus 3 0.2 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle;Qidi Generic ABS Qidi X-Plus 3 0.2 nozzle", "from": "system", - "setting_id": "UBWjZCCGQrpgmlpa", - "filament_id": "OFv4VZCd", + "setting_id": "vH2jlch11zfDBUPP", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json index f04c392d36..521521c0fe 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle;Qidi Generic ABS Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "qB4eDc7UuoKv5m2U", - "filament_id": "OFv4VZCd", + "setting_id": "0bwmAx9OQYm5MwVE", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json index 0ba51d1d97..b5bbbdbf47 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle;Qidi Generic ABS Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "N3Ca9PN8nDnvhmak", - "filament_id": "OFv4VZCd", + "setting_id": "Y3yAythmKXxr76Pg", + "filament_id": "OFY9muEs", "instantiation": "true", "fan_max_speed": [ "80" @@ -13,7 +14,7 @@ "10" ], "filament_settings_id": [ - "Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle" + "Generic ABS @Qidi X-Plus 4 0.4 nozzle" ], "pressure_advance": [ "0.03" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json index c614b1b214..27ef9809e8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle;Qidi Generic ABS Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "UkNcVB3bJZqLN3fu", - "filament_id": "OFv4VZCd", + "setting_id": "Bt8ySpZn6WFWC00A", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json similarity index 62% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json index 1a25e73239..3dcc3d5889 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle;Qidi Generic ABS Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "uK0zY0a6MpcFTZWr", - "filament_id": "OFv4VZCd", + "setting_id": "7j3bweJutseUaoZQ", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Smart 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi X-Smart 3 0.2 nozzle.json index fdfdb04794..7503ba737d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Smart 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", - "inherits": "Qidi Generic ABS", + "name": "Generic ABS @Qidi X-Smart 3 0.2 nozzle", + "inherits": "Generic ABS @Qidi", + "renamed_from": "Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle;Qidi Generic ABS Qidi X-Smart 3 0.2 nozzle", "from": "system", - "setting_id": "veNBpzcNYa6TAMry", - "filament_id": "OFv4VZCd", + "setting_id": "StJpaMQKORYm7i94", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ABS.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic ABS.json rename to resources/profiles/Qidi/filament/Generic ABS @Qidi.json index fd469656b7..76a01a3fa6 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ABS.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ABS", + "name": "Generic ABS @Qidi", "inherits": "fdm_filament_abs", + "renamed_from": "Qidi Generic ABS", "from": "system", - "setting_id": "wcv9ZpNwvZ0ZcWKw", - "filament_id": "OFv4VZCd", + "setting_id": "iO5utPsBKAo7cHop", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_type": [ "ABS" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.2 nozzle.json similarity index 60% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.2 nozzle.json index b1dc3929af..749dddc689 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle;Qidi Generic ASA Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "OLkg128vxsk27w03", - "filament_id": "OFsxlLdo", + "setting_id": "3LUibDTlv799Gy6r", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.4 nozzle.json similarity index 68% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.4 nozzle.json index c76c3b7bf4..f8ef61a4aa 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle;Qidi Generic ASA Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "pGOT3C5eREsHRylS", - "filament_id": "OFsxlLdo", + "setting_id": "EtjXhHzpmShNgIqj", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "16" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle" + "Generic ASA @Qidi Q1 Pro 0.4 nozzle" ], "nozzle_temperature": [ "270" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.6 nozzle.json similarity index 68% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.6 nozzle.json index b2e93f6042..cef5172ed5 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle;Qidi Generic ASA Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "QRlzPtO4mqLKcdws", - "filament_id": "OFsxlLdo", + "setting_id": "5hlUjx0YAFTR9TYr", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "13" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle" + "Generic ASA @Qidi Q1 Pro 0.6 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.8 nozzle.json similarity index 68% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.8 nozzle.json index e31053553a..93b389d444 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle;Qidi Generic ASA Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "vLLCDxhI2GR76M1p", - "filament_id": "OFsxlLdo", + "setting_id": "oArSgOFOlXLGkueW", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "13" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle" + "Generic ASA @Qidi Q1 Pro 0.8 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Max 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Max 3 0.2 nozzle.json index 67919c260e..38b0088adb 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Max 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Max 3 0.2 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle;Qidi Generic ASA Qidi X-Max 3 0.2 nozzle", "from": "system", - "setting_id": "6pY4I5kAFdSYPOte", - "filament_id": "OFsxlLdo", + "setting_id": "LfT1OaNir4KZevUP", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 3 0.2 nozzle.json index 8205a3e728..c0e92e8f7c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Plus 3 0.2 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle;Qidi Generic ASA Qidi X-Plus 3 0.2 nozzle", "from": "system", - "setting_id": "A85OmyjS63OgZa0V", - "filament_id": "OFsxlLdo", + "setting_id": "S2aFIcoyiIsZ5TR8", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json index f7d7fadfa0..1f7ec6918c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle;Qidi Generic ASA Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "1CBWjstSdMJLJWuv", - "filament_id": "OFsxlLdo", + "setting_id": "aYowi3jA3nUcr5e8", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json similarity index 67% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json index 0a0da5a68f..1a42a6d075 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle;Qidi Generic ASA Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "UIsup1TGWKg0Fq72", - "filament_id": "OFsxlLdo", + "setting_id": "Qaogxqa5Zw7i7n0a", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "16" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle" + "Generic ASA @Qidi X-Plus 4 0.4 nozzle" ], "nozzle_temperature": [ "270" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json similarity index 67% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json index bf2fbce6c2..6700a02c94 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle;Qidi Generic ASA Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "HQupWXd5yKceVrm4", - "filament_id": "OFsxlLdo", + "setting_id": "aP2WrJLkjpGFtt8I", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "13" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle" + "Generic ASA @Qidi X-Plus 4 0.6 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json similarity index 67% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json index 70f2dca93b..3a1c923505 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle;Qidi Generic ASA Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "R6FcpVRhnSp0i8bK", - "filament_id": "OFsxlLdo", + "setting_id": "mx6C1Q73i0B7gpag", + "filament_id": "OFLPAxz3", "instantiation": "true", "activate_chamber_temp_control": [ "0" @@ -19,7 +20,7 @@ "13" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle" + "Generic ASA @Qidi X-Plus 4 0.8 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Smart 3 0.2 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi X-Smart 3 0.2 nozzle.json index 8fa1b77e26..437ed6c7d8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Smart 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", - "inherits": "Qidi Generic ASA", + "name": "Generic ASA @Qidi X-Smart 3 0.2 nozzle", + "inherits": "Generic ASA @Qidi", + "renamed_from": "Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle;Qidi Generic ASA Qidi X-Smart 3 0.2 nozzle", "from": "system", - "setting_id": "sE2DGjOmcjRuuh0z", - "filament_id": "OFsxlLdo", + "setting_id": "6jbwOYmS2ypqTshH", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Qidi/filament/Qidi Generic ASA.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi.json similarity index 87% rename from resources/profiles/Qidi/filament/Qidi Generic ASA.json rename to resources/profiles/Qidi/filament/Generic ASA @Qidi.json index 5c955f6322..6057fbea4a 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic ASA.json +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic ASA", + "name": "Generic ASA @Qidi", "inherits": "fdm_filament_asa", + "renamed_from": "Qidi Generic ASA", "from": "system", - "setting_id": "WTOEo36YTIFcXDaI", - "filament_id": "OFsxlLdo", + "setting_id": "IO7E03K3t2sySCAM", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_type": [ "ASA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA.json b/resources/profiles/Qidi/filament/Generic PA @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic PA.json rename to resources/profiles/Qidi/filament/Generic PA @Qidi.json index 640faa445f..c27771e405 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA.json +++ b/resources/profiles/Qidi/filament/Generic PA @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PA", + "name": "Generic PA @Qidi", "inherits": "fdm_filament_pa", + "renamed_from": "Qidi Generic PA", "from": "system", - "setting_id": "S6S5nM9zZbNCyhya", - "filament_id": "OFQbqeN7", + "setting_id": "la9e4F5ns9eWv7Lg", + "filament_id": "OFg8ndtj", "instantiation": "true", "filament_type": [ "PA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json b/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json similarity index 90% rename from resources/profiles/Qidi/filament/Qidi Generic PA-CF.json rename to resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json index ee5c5b3206..bdf39e1630 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PA-CF.json +++ b/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PA-CF", + "name": "Generic PA-CF @Qidi", "inherits": "fdm_filament_pa", + "renamed_from": "Qidi Generic PA-CF", "from": "system", - "setting_id": "aOVEazsct9L3eD2u", - "filament_id": "OFPy0Ogq", + "setting_id": "qLuGt33iENH6QTjv", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi 0.2 nozzle.json index 80e7acafbe..8573598189 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @0.2 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi 0.2 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @0.2 nozzle;Qidi Generic PC 0.2 nozzle", "from": "system", - "setting_id": "i4Nt0riiDwptxOIe", - "filament_id": "OFK01afJ", + "setting_id": "Ei2Izb38mh4A4wgw", + "filament_id": "OFLakOUI", "instantiation": "true", "pressure_advance": [ "0.04" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi 0.8 nozzle.json similarity index 51% rename from resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi 0.8 nozzle.json index 774e1deed8..491f5917d3 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @0.8 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi 0.8 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @0.8 nozzle;Qidi Generic PC 0.8 nozzle", "from": "system", - "setting_id": "8mJysYABmQTBlWLw", - "filament_id": "OFK01afJ", + "setting_id": "marM5nqtpl08NP9b", + "filament_id": "OFLakOUI", "instantiation": "true", "pressure_advance": [ "0.008" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.2 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.2 nozzle.json index b869e3db14..fb85345598 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PC Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "be2KpgVjm4APQtrt", - "filament_id": "OFK01afJ", + "setting_id": "5sAcMTaVI41PCs3n", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.4 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.4 nozzle.json index edcb7070ad..b7057b6c2f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PC Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "9aGpKzNCjXDcfmqr", - "filament_id": "OFK01afJ", + "setting_id": "QmaeYzkbcmKJCJSv", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.6 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.6 nozzle.json index 4e018cf7e0..56a5a8e132 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PC Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "1BjBpSDoLs6nTHeo", - "filament_id": "OFK01afJ", + "setting_id": "heIlhCMIZ9MXeDHE", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.8 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.8 nozzle.json index 33ef6fa1b2..13f13ea759 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PC Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "8ptIGtXeMSwVqkVB", - "filament_id": "OFK01afJ", + "setting_id": "JlztE3hk1LB23o4h", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.2 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.2 nozzle.json index bb41002e5a..29c7c1658b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PC Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "IQCYG5yZFPsvTuHY", - "filament_id": "OFK01afJ", + "setting_id": "2eI2cXfCN6vlk6UV", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.4 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.4 nozzle.json index 1eb5bf3ae6..ba52effd22 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PC Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "TPbG7zlsPowdKEVw", - "filament_id": "OFK01afJ", + "setting_id": "kGhUT0TAXku3by9D", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.6 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.6 nozzle.json index ef7aadea0b..e3f9c180ba 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PC Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "mzsetSq0CzwqbGnP", - "filament_id": "OFK01afJ", + "setting_id": "HzAwEYvedOi3GRMY", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.8 nozzle.json similarity index 50% rename from resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.8 nozzle.json index 4cc95f36fe..e6c8d1586d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic PC", + "name": "Generic PC @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic PC @Qidi", + "renamed_from": "Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PC Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "wlnm88gEKcNzvx7W", - "filament_id": "OFK01afJ", + "setting_id": "iq1u1nPMi9GT31p9", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PC.json b/resources/profiles/Qidi/filament/Generic PC @Qidi.json similarity index 88% rename from resources/profiles/Qidi/filament/Qidi Generic PC.json rename to resources/profiles/Qidi/filament/Generic PC @Qidi.json index 8d17246464..c69f050f5c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PC.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PC", + "name": "Generic PC @Qidi", "inherits": "fdm_filament_pc", + "renamed_from": "Qidi Generic PC", "from": "system", - "setting_id": "wd4PrqXE2um46ueW", - "filament_id": "OFK01afJ", + "setting_id": "m1fBauBqqvKdIAAr", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_type": [ "PC" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.2 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.2 nozzle.json index 4dc4f79a35..02004cab28 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PETG Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "GfDMSO3DjLxfMnUc", - "filament_id": "OFKNAhls", + "setting_id": "D2QwO7VczuscejBF", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json similarity index 68% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json index 8cc579f330..10a2b2f080 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PETG Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "SzQLWO8poDxEU0ez", - "filament_id": "OFKNAhls", + "setting_id": "GeV4szn47hD1UedT", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -22,7 +23,7 @@ "10" ], "filament_settings_id": [ - "Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle" + "Generic PETG @Qidi Q1 Pro 0.4 nozzle" ], "overhang_fan_speed": [ "90" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.6 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.6 nozzle.json index f3006cef44..995b79eb68 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PETG Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "yyfoSMlQsvkmUGR5", - "filament_id": "OFKNAhls", + "setting_id": "hwVzOmBJL0wnhzVj", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.8 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.8 nozzle.json index 6ba08141b2..f1d1298d8d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PETG Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "ogHITGUcn1r2bHXc", - "filament_id": "OFKNAhls", + "setting_id": "QKyHd7rHutldls1y", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Max 3 0.2 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Max 3 0.2 nozzle.json index 6ca659d410..9eb15c7a9c 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Max 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Max 3 0.2 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle;Qidi Generic PETG Qidi X-Max 3 0.2 nozzle", "from": "system", - "setting_id": "CVyv3PHeZaSGmD6E", - "filament_id": "OFKNAhls", + "setting_id": "afJiGzHpK1vEgb0S", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 3 0.2 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 3 0.2 nozzle.json index f3a451fa22..7994ab710f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Plus 3 0.2 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle;Qidi Generic PETG Qidi X-Plus 3 0.2 nozzle", "from": "system", - "setting_id": "tNl6q6MadSoFZ3EH", - "filament_id": "OFKNAhls", + "setting_id": "grlFOKGDoAo075zz", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json index c30b0b9c48..f8de246245 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PETG Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "1xGw8fYiSf6YzBnk", - "filament_id": "OFKNAhls", + "setting_id": "hb1v0ytZ8KFm0KeO", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json similarity index 68% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json index 19eee209c1..0419f9669d 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PETG Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "MMSCic1l0b3e5qe3", - "filament_id": "OFKNAhls", + "setting_id": "V8YvTFXnlItPw97m", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -25,7 +26,7 @@ "10" ], "filament_settings_id": [ - "Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle" + "Generic PETG @Qidi X-Plus 4 0.4 nozzle" ], "overhang_fan_speed": [ "90" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json index 320522f3b2..f4a3448c63 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PETG Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "KD0ABMKuQunww07p", - "filament_id": "OFKNAhls", + "setting_id": "X9FiUfQBLABTKIKO", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json similarity index 71% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json index df1d833154..6bc15f85a2 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PETG Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "ZFkH9oLkRWDVovLu", - "filament_id": "OFKNAhls", + "setting_id": "5XdW6h65aMPX61o9", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Smart 3 0.2 nozzle.json similarity index 70% rename from resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi X-Smart 3 0.2 nozzle.json index 7a659abfe5..ac5c820791 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Smart 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", - "inherits": "Qidi Generic PETG", + "name": "Generic PETG @Qidi X-Smart 3 0.2 nozzle", + "inherits": "Generic PETG @Qidi", + "renamed_from": "Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle;Qidi Generic PETG Qidi X-Smart 3 0.2 nozzle", "from": "system", - "setting_id": "ixR5wIrehSmn8Inz", - "filament_id": "OFKNAhls", + "setting_id": "MynfKhfKlXwFaVOJ", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic PETG.json rename to resources/profiles/Qidi/filament/Generic PETG @Qidi.json index a46451b4b2..b4747dc9df 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG", + "name": "Generic PETG @Qidi", "inherits": "fdm_filament_pet", + "renamed_from": "Qidi Generic PETG", "from": "system", - "setting_id": "Yk3w834THlnAS3jr", - "filament_id": "OFKNAhls", + "setting_id": "zRfo4sbJ3auEJtiC", + "filament_id": "OFYPdQJh", "instantiation": "true", "filament_type": [ "PETG" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json b/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json similarity index 92% rename from resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json rename to resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json index 41a8a19505..fbe5386405 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PETG-CF.json +++ b/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PETG-CF", + "name": "Generic PETG-CF @Qidi", "inherits": "fdm_filament_pet", + "renamed_from": "Qidi Generic PETG-CF", "from": "system", - "setting_id": "kjmXKWCMonhYhy8U", - "filament_id": "OFfZ0lTS", + "setting_id": "1ehKRzcekplfoFdJ", + "filament_id": "OFoYSJKi", "instantiation": "true", "temperature_vitrification": [ "75" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json index c4ee570822..4c0c00e6ba 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PLA Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "6e0DHBzRkQvU0419", - "filament_id": "OFu79SUH", + "setting_id": "2TNFziuyxg2X4zgY", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.4 nozzle.json similarity index 55% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.4 nozzle.json index b8dc934bf9..5b49e8560e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.4 nozzle.json @@ -1,16 +1,17 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PLA Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "eCR3lbTRdkYcMZgl", - "filament_id": "OFu79SUH", + "setting_id": "PNCPMC8uMY9h5SZr", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "14" ], "filament_settings_id": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle" + "Generic PLA @Qidi Q1 Pro 0.4 nozzle" ], "full_fan_speed_layer": [ "3" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json index 9cb96bf501..442f46e559 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PLA Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "JSQupeTNYtzE8l6q", - "filament_id": "OFu79SUH", + "setting_id": "23t94qXoDPSdi7fS", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json index 88954db351..d915ed03a8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PLA Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "n4rp1Pooux07hwx1", - "filament_id": "OFu79SUH", + "setting_id": "aWIicFWyadhnYKfF", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.2 nozzle.json index 8784aa33ac..52ee24c470 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi X-Max 3 0.2 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle;Qidi Generic PLA Qidi X-Max 3 0.2 nozzle", "from": "system", - "setting_id": "P57Nm7E7KTnHMov0", - "filament_id": "OFu79SUH", + "setting_id": "VhP4JYzAah2X1Kr3", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.6 nozzle.json new file mode 100644 index 0000000000..76521556dd --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Max 3 0.6 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle;Qidi Generic PLA Qidi X-Max 3 0.6 nozzle", + "from": "system", + "setting_id": "uhzFvazl2rWd0YN3", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.8 nozzle.json new file mode 100644 index 0000000000..4246b7fc19 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Max 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Max 3 0.8 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle;Qidi Generic PLA Qidi X-Max 3 0.8 nozzle", + "from": "system", + "setting_id": "t7bkbAgWCK7ObiK4", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.2 nozzle.json index aed12c1545..7508b21dc3 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA @Qidi X-Plus 3 0.2 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle;Qidi Generic PLA Qidi X-Plus 3 0.2 nozzle", "from": "system", - "setting_id": "WwUGv09h9thWkzMf", - "filament_id": "OFsXOMoX", + "setting_id": "1iUDRQmhNsb4Tlag", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.6 nozzle.json new file mode 100644 index 0000000000..fcdcb48de7 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle;Qidi Generic PLA Qidi X-Plus 3 0.6 nozzle", + "from": "system", + "setting_id": "qbT3T9cRjqK7aO4M", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.8 nozzle.json new file mode 100644 index 0000000000..d42c838771 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle;Qidi Generic PLA Qidi X-Plus 3 0.8 nozzle", + "from": "system", + "setting_id": "dMVLTDJInWMo2fMP", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json index d59bd63cc0..8124fb26b0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PLA Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "M0JCDyI7icGyqs43", - "filament_id": "OFu79SUH", + "setting_id": "4OyCs9habQtGhoot", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json similarity index 54% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json index a940104863..90d822953f 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "tRztgu06hBi9IxSE", - "filament_id": "OFu79SUH", + "setting_id": "SU5XqpfPO5g87dfL", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_max_volumetric_speed": [ "14" @@ -13,7 +14,7 @@ "0.034" ], "filament_settings_id": [ - "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle" + "Generic PLA @Qidi X-Plus 4 0.4 nozzle" ], "full_fan_speed_layer": [ "3" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json index 1581dfb47e..2cc9b574c1 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PLA Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "8XzQCGoYi01mIjNY", - "filament_id": "OFu79SUH", + "setting_id": "7ALKguzkoK6KLHVv", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json index d39b789104..2f0ab0b4c7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PLA Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "hkeictJYR1KDX7kB", - "filament_id": "OFu79SUH", + "setting_id": "jzfMNZP4WaNcNixD", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.2 nozzle.json index a2359aff5e..c9af562ff6 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA @Qidi X-Smart 3 0.2 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle;Qidi Generic PLA Qidi X-Smart 3 0.2 nozzle", "from": "system", - "setting_id": "KTkq14RsduGBSdMZ", - "filament_id": "OFsXOMoX", + "setting_id": "gNbvzCkxedrQ7nQe", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.6 nozzle.json new file mode 100644 index 0000000000..497283dd4c --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle;Qidi Generic PLA Qidi X-Smart 3 0.6 nozzle", + "from": "system", + "setting_id": "t8uPl9peXZRJbdLj", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.8 nozzle.json new file mode 100644 index 0000000000..6b125ee3aa --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Smart 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "inherits": "Generic PLA @Qidi", + "renamed_from": "Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle;Qidi Generic PLA Qidi X-Smart 3 0.8 nozzle", + "from": "system", + "setting_id": "VsoBEmU35N8eW3CO", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi.json similarity index 81% rename from resources/profiles/Qidi/filament/Qidi Generic PLA.json rename to resources/profiles/Qidi/filament/Generic PLA @Qidi.json index dd060727ed..e3e1f6eb48 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA", + "name": "Generic PLA @Qidi", "inherits": "fdm_filament_pla", + "renamed_from": "Qidi Generic PLA", "from": "system", - "setting_id": "tmrmjsN8vDKGlNpX", - "filament_id": "OFu79SUH", + "setting_id": "illxClFj0LphvnHh", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..75f9a19364 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "renamed_from": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PLA High Speed Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "setting_id": "ktWvoEzkA0mJ0Q5T", + "filament_id": "OFmpMwxS", + "instantiation": "true", + "slow_down_layer_time": [ + "6" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "pressure_advance": [ + "0.034" + ], + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..7067954ef5 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "renamed_from": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA High Speed Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "setting_id": "lBa0yfqPsQgr4U3m", + "filament_id": "OFmpMwxS", + "instantiation": "true", + "slow_down_layer_time": [ + "6" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "pressure_advance": [ + "0.034" + ], + "nozzle_temperature": [ + "220" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json similarity index 51% rename from resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json index 73b241ea48..d4bd50b020 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "renamed_from": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PLA High Speed Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "VqVyXnU77CZCKsNy", - "filament_id": "OFS8JF3S", + "setting_id": "Ls5CQx5Yf8QuC4T3", + "filament_id": "OFmpMwxS", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json similarity index 51% rename from resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json index 47fe217eb7..dd77278778 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "name": "Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "renamed_from": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PLA High Speed Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "0504CZkoYLx6NMI0", - "filament_id": "OFS8JF3S", + "setting_id": "VyCsuptxJnVw1KqD", + "filament_id": "OFmpMwxS", "instantiation": "true", "slow_down_layer_time": [ "6" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json similarity index 60% rename from resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json index 9088564556..fbf48ad575 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic PLA Silk", + "name": "Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic PLA Silk @Qidi", + "renamed_from": "Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PLA Silk Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "lRRlOS4Xd1pGLIEq", - "filament_id": "OFy4ajVZ", + "setting_id": "VusYzaMdLpjravVc", + "filament_id": "OFesA6rF", "instantiation": "true", "enable_pressure_advance": "1", "pressure_advance": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json similarity index 60% rename from resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json index 19d91f0f9c..bbfd984880 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PLA Silk", + "name": "Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PLA Silk @Qidi", + "renamed_from": "Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA Silk Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "DaBZGfcdheWjNdgr", - "filament_id": "OFy4ajVZ", + "setting_id": "9GVORPqwLq0s3mlY", + "filament_id": "OFesA6rF", "instantiation": "true", "enable_pressure_advance": "1", "pressure_advance": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json rename to resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json index 8f195626d2..c9fed29f60 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA Silk.json +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA Silk", + "name": "Generic PLA Silk @Qidi", "inherits": "fdm_filament_pla", + "renamed_from": "Qidi Generic PLA Silk", "from": "system", - "setting_id": "OATeG6kIIRyViXbn", - "filament_id": "OFy4ajVZ", + "setting_id": "qmNmFB6yN23u389x", + "filament_id": "OFesA6rF", "instantiation": "true", "enable_pressure_advance": "1", "filament_type": [ diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json similarity index 55% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json index 5639be330a..e61e507c68 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PLA+ Qidi Q1 Pro 0.2 nozzle", "from": "system", - "setting_id": "dmKDk6Yb4zQFCWIe", - "filament_id": "OFsXOMoX", + "setting_id": "S5IihmYwqdoEXiOT", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json similarity index 51% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json index d78cdb3490..842010a166 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PLA+ Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "vwFHzxD2MrRieUIw", - "filament_id": "OFsXOMoX", + "setting_id": "iZYrNv7L15yrfAPR", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_settings_id": [ - "Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle" + "Generic PLA+ @Qidi Q1 Pro 0.4 nozzle" ], "full_fan_speed_layer": [ "3" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json similarity index 55% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json index cef91d9faa..1b48ab6b10 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PLA+ Qidi Q1 Pro 0.6 nozzle", "from": "system", - "setting_id": "wlXNWvECV8ylNVFF", - "filament_id": "OFsXOMoX", + "setting_id": "zDYfWdaJGDL64gzD", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json similarity index 55% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json index 9d0b6428cc..677620b7b7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PLA+ Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "gR4NZ8mgTNVxxjhh", - "filament_id": "OFsXOMoX", + "setting_id": "eAtbANg8BCzaurOY", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json index c21f2a31df..f3fa9ec4b4 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi X-Max 3 0.2 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle;Qidi Generic PLA+ Qidi X-Max 3 0.2 nozzle", "from": "system", - "setting_id": "wCdBhg6B4tQZw7dp", - "filament_id": "OFsXOMoX", + "setting_id": "ak1iDHwta1iV5CXw", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json new file mode 100644 index 0000000000..2e151c9e14 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle;Qidi Generic PLA+ Qidi X-Max 3 0.6 nozzle", + "from": "system", + "setting_id": "JwpYPwMfRZtymarF", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json new file mode 100644 index 0000000000..b829c40c1a --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle;Qidi Generic PLA+ Qidi X-Max 3 0.8 nozzle", + "from": "system", + "setting_id": "ZOuRUZf07g43ZV9u", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json index ca0eeb74ba..2a761a1946 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle;Qidi Generic PLA+ Qidi X-Plus 3 0.2 nozzle", "from": "system", - "setting_id": "JJmzlY5XOz9eGO8n", - "filament_id": "OFu79SUH", + "setting_id": "DujfIhzIsPDdHZlg", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json new file mode 100644 index 0000000000..657b16a6a4 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle;Qidi Generic PLA+ Qidi X-Plus 3 0.6 nozzle", + "from": "system", + "setting_id": "BA46FjbkAt4dhdfQ", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json new file mode 100644 index 0000000000..9455380809 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle;Qidi Generic PLA+ Qidi X-Plus 3 0.8 nozzle", + "from": "system", + "setting_id": "TEqTy5MhYC1CLkrr", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json similarity index 59% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json index 4e5928cf60..ecfb501bb0 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PLA+ Qidi X-Plus 4 0.2 nozzle", "from": "system", - "setting_id": "XUhGdonOGCUI34EH", - "filament_id": "OFsXOMoX", + "setting_id": "TO1cgOHqLFnimX9m", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json similarity index 51% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json index 53d4d543ae..c0ff54ee65 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle.json @@ -1,16 +1,17 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA+ Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "yvokLiCctDUmcDCR", - "filament_id": "OFsXOMoX", + "setting_id": "Dyf2Y7pDd4UWIIJ5", + "filament_id": "OFEWYR89", "instantiation": "true", "pressure_advance": [ "0.034" ], "filament_settings_id": [ - "Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle" + "Generic PLA+ @Qidi X-Plus 4 0.4 nozzle" ], "full_fan_speed_layer": [ "3" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json index 72afba15b9..5ddca086f7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PLA+ Qidi X-Plus 4 0.6 nozzle", "from": "system", - "setting_id": "gZxafcPwX1hqI7Dm", - "filament_id": "OFsXOMoX", + "setting_id": "ty1M4Mik83FlDWKj", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json index 4eced792ff..937e85aff4 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PLA+ Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "j6fJ7L02mVcZ01fO", - "filament_id": "OFsXOMoX", + "setting_id": "Wyo0NeD4dPzA365C", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json similarity index 55% rename from resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json index eeb8a443ef..a32c884550 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", - "inherits": "Qidi Generic PLA", + "name": "Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle;Qidi Generic PLA+ Qidi X-Smart 3 0.2 nozzle", "from": "system", - "setting_id": "4YnRWwYLWMODUHXq", - "filament_id": "OFu79SUH", + "setting_id": "lypNmywVe3qfhs2q", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json new file mode 100644 index 0000000000..fe84ef4f8c --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle;Qidi Generic PLA+ Qidi X-Smart 3 0.6 nozzle", + "from": "system", + "setting_id": "Hxpe6y8Xo37WmcQr", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json new file mode 100644 index 0000000000..59a6efb166 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "inherits": "Generic PLA+ @Qidi", + "renamed_from": "Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle;Qidi Generic PLA+ Qidi X-Smart 3 0.8 nozzle", + "from": "system", + "setting_id": "2jjI8l22cAXTuxMl", + "filament_id": "OFEWYR89", + "instantiation": "true", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi.json similarity index 83% rename from resources/profiles/Qidi/filament/Qidi Generic PLA+.json rename to resources/profiles/Qidi/filament/Generic PLA+ @Qidi.json index 9ed1642e89..2c1e136f6b 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+.json +++ b/resources/profiles/Qidi/filament/Generic PLA+ @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA+", + "name": "Generic PLA+ @Qidi", "inherits": "fdm_filament_pla", + "renamed_from": "Qidi Generic PLA+", "from": "system", - "setting_id": "LNjBixpjLg5i8P1d", - "filament_id": "OFsXOMoX", + "setting_id": "JhZ9hP9n1gBNGwBq", + "filament_id": "OFEWYR89", "instantiation": "true", "filament_type": [ "PLA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json b/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json rename to resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json index b3e70b1a47..1381442943 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA-CF.json +++ b/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PLA-CF", + "name": "Generic PLA-CF @Qidi", "inherits": "fdm_filament_pla", + "renamed_from": "Qidi Generic PLA-CF", "from": "system", - "setting_id": "bJKgxsU0tR1NDtoN", - "filament_id": "OFQTrLXB", + "setting_id": "XspRlBSqR3DsiFBM", + "filament_id": "OFWbdGsC", "instantiation": "true", "required_nozzle_HRC": [ "40" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PVA.json b/resources/profiles/Qidi/filament/Generic PVA @Qidi.json similarity index 89% rename from resources/profiles/Qidi/filament/Qidi Generic PVA.json rename to resources/profiles/Qidi/filament/Generic PVA @Qidi.json index 23d6c89d40..ffd25855a1 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic PVA.json +++ b/resources/profiles/Qidi/filament/Generic PVA @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic PVA", + "name": "Generic PVA @Qidi", "inherits": "fdm_filament_pva", + "renamed_from": "Qidi Generic PVA", "from": "system", - "setting_id": "8450opPMJm6GG5Cq", - "filament_id": "OFNZYgLA", + "setting_id": "dmGcoGkH9lvmgsJL", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_type": [ "PVA" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json similarity index 57% rename from resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json index 19b01dbf26..3fab5170d7 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "inherits": "Qidi Generic TPU 95A", + "name": "Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "inherits": "Generic TPU 95A @Qidi", + "renamed_from": "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle;Qidi Generic TPU 95A Qidi Q1 Pro 0.8 nozzle", "from": "system", - "setting_id": "0gGSrFIulk4gPLSp", - "filament_id": "OFWukXja", + "setting_id": "lwRnIxnWLYp1Hww4", + "filament_id": "OFjiXpyf", "instantiation": "true", "fan_cooling_layer_time": [ "60" @@ -13,7 +14,7 @@ "4" ], "filament_settings_id": [ - "Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle" + "Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle" ], "nozzle_temperature": [ "220" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json similarity index 56% rename from resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json rename to resources/profiles/Qidi/filament/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json index ee19db18a9..7e964fd0b8 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "inherits": "Qidi Generic TPU 95A", + "name": "Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "inherits": "Generic TPU 95A @Qidi", + "renamed_from": "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle;Qidi Generic TPU 95A Qidi X-Plus 4 0.8 nozzle", "from": "system", - "setting_id": "5fkE2aGkghsMdZ1W", - "filament_id": "OFWukXja", + "setting_id": "BPUUHxYPhHcPIWs9", + "filament_id": "OFjiXpyf", "instantiation": "true", "fan_cooling_layer_time": [ "60" @@ -13,7 +14,7 @@ "4" ], "filament_settings_id": [ - "Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle" + "Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle" ], "nozzle_temperature": [ "220" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi.json similarity index 87% rename from resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json rename to resources/profiles/Qidi/filament/Generic TPU 95A @Qidi.json index 04e75b3633..2c9602ee2e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU 95A.json +++ b/resources/profiles/Qidi/filament/Generic TPU 95A @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU 95A", + "name": "Generic TPU 95A @Qidi", "inherits": "fdm_filament_tpu", + "renamed_from": "Qidi Generic TPU 95A", "from": "system", - "setting_id": "JWZrlYnOOlGpTEg6", - "filament_id": "OFWukXja", + "setting_id": "nXjylLuhXqtlLGEv", + "filament_id": "OFjiXpyf", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic TPU @Qidi Q1 Pro 0.4 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic TPU @Qidi Q1 Pro 0.4 nozzle.json index f54208a542..93793f8d8e 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic TPU @Qidi Q1 Pro 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "inherits": "Qidi Generic TPU", + "name": "Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "inherits": "Generic TPU @Qidi", + "renamed_from": "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle;Qidi Generic TPU Qidi Q1 Pro 0.4 nozzle", "from": "system", - "setting_id": "s0MMbJlTt9Cbh8FQ", - "filament_id": "OFZsChIG", + "setting_id": "ToMKfKFZDCHyEHw9", + "filament_id": "OFgbpcy9", "instantiation": "true", "fan_cooling_layer_time": [ "60" @@ -13,7 +14,7 @@ "4" ], "filament_settings_id": [ - "Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle" + "Generic TPU @Qidi Q1 Pro 0.4 nozzle" ], "nozzle_temperature": [ "230" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic TPU @Qidi X-Plus 4 0.4 nozzle.json similarity index 53% rename from resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json rename to resources/profiles/Qidi/filament/Generic TPU @Qidi X-Plus 4 0.4 nozzle.json index 67d47da272..f1c8117c47 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic TPU @Qidi X-Plus 4 0.4 nozzle.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic TPU", + "name": "Generic TPU @Qidi X-Plus 4 0.4 nozzle", + "inherits": "Generic TPU @Qidi", + "renamed_from": "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle;Qidi Generic TPU Qidi X-Plus 4 0.4 nozzle", "from": "system", - "setting_id": "KqdGTkLW1x7oZpvj", - "filament_id": "OFZsChIG", + "setting_id": "AACIHxmLhuNAGo6d", + "filament_id": "OFgbpcy9", "instantiation": "true", "fan_cooling_layer_time": [ "60" @@ -13,7 +14,7 @@ "4" ], "filament_settings_id": [ - "Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle" + "Generic TPU @Qidi X-Plus 4 0.4 nozzle" ], "nozzle_temperature": [ "230" diff --git a/resources/profiles/Qidi/filament/Qidi Generic TPU.json b/resources/profiles/Qidi/filament/Generic TPU @Qidi.json similarity index 87% rename from resources/profiles/Qidi/filament/Qidi Generic TPU.json rename to resources/profiles/Qidi/filament/Generic TPU @Qidi.json index bf4d662d62..a525b49520 100644 --- a/resources/profiles/Qidi/filament/Qidi Generic TPU.json +++ b/resources/profiles/Qidi/filament/Generic TPU @Qidi.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Qidi Generic TPU", + "name": "Generic TPU @Qidi", "inherits": "fdm_filament_tpu", + "renamed_from": "Qidi Generic TPU", "from": "system", - "setting_id": "qvJXA6V5mxiOguUj", - "filament_id": "OFZsChIG", + "setting_id": "0jwJs0mTFs0904VK", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_type": [ "TPU" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json index e199e58998..fc2d6d8ba6 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -19,7 +19,7 @@ "16" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle" + "Generic ASA @Qidi Q1 Pro 0.4 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json index 39b0b7be70..f9dfff9d99 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -19,7 +19,7 @@ "16" ], "filament_settings_id": [ - "Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle" + "Generic ASA @Qidi X-Plus 4 0.4 nozzle" ], "nozzle_temperature": [ "255" diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json deleted file mode 100644 index c66a485d3b..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "DWfVtYimjZxqyDzM", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Max 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json deleted file mode 100644 index 004bd0cda5..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "ausfQ4SuKLMuruFb", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Max 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json deleted file mode 100644 index ea5c6e5f2a..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "EpYu1ME5tSsFYirK", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Plus 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json deleted file mode 100644 index 9b99d1a90f..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "wZ8U1Ga1bQXbd2nN", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Plus 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json deleted file mode 100644 index 683f582678..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "bKi57zeQX7mAw7kl", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Smart 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json deleted file mode 100644 index d4836a5f3d..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", - "inherits": "Qidi Generic PLA", - "from": "system", - "setting_id": "lscOLQTFf4Y3Ax1f", - "filament_id": "OFu79SUH", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Smart 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json deleted file mode 100644 index 2c20544437..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "from": "system", - "setting_id": "HaE0HFgjT8wysrVT", - "filament_id": "OFS8JF3S", - "instantiation": "true", - "slow_down_layer_time": [ - "6" - ], - "filament_max_volumetric_speed": [ - "2" - ], - "pressure_advance": [ - "0.034" - ], - "nozzle_temperature": [ - "220" - ], - "compatible_printers": [ - "Qidi X-Plus 4 0.2 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json deleted file mode 100644 index e4c16f3697..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "inherits": "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "from": "system", - "setting_id": "vxXEJP3C4k5Zjvsx", - "filament_id": "OFS8JF3S", - "instantiation": "true", - "slow_down_layer_time": [ - "6" - ], - "filament_max_volumetric_speed": [ - "18" - ], - "pressure_advance": [ - "0.034" - ], - "nozzle_temperature": [ - "220" - ], - "compatible_printers": [ - "Qidi X-Plus 4 0.4 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json deleted file mode 100644 index 29c72ccfe5..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "7Bxn8OUT1MJbNvxC", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Max 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json deleted file mode 100644 index b034072cbb..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "miQxMqjI3odS4V1O", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Max 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json deleted file mode 100644 index 4e3df63a29..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "oAIJyTMV5EnXTJDF", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Plus 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json deleted file mode 100644 index 4d1ec90cb1..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "Ya2viE6yXmdshs75", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Plus 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json deleted file mode 100644 index e2d3c6b536..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "xiomvJqo2HAwsxT0", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.016" - ], - "compatible_printers": [ - "Qidi X-Smart 3 0.6 nozzle" - ] -} diff --git a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json deleted file mode 100644 index f438b1f7c0..0000000000 --- a/resources/profiles/Qidi/filament/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "filament", - "name": "Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", - "inherits": "Qidi Generic PLA+", - "from": "system", - "setting_id": "3SemJWSvKeN7OXVy", - "filament_id": "OFsXOMoX", - "instantiation": "true", - "pressure_advance": [ - "0.008" - ], - "compatible_printers": [ - "Qidi X-Smart 3 0.8 nozzle" - ] -} diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json index 8b4274e094..a097f39bab 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle" + "Generic PLA @Qidi Q1 Pro 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi Q1 Pro 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json index a97a66730b..a085ce6cfe 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json @@ -82,6 +82,6 @@ "machine_start_gcode": "PRINT_START BED=[hot_plate_temp_initial_layer] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\n", "thumbnails_format": "PNG", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle" + "Generic PLA @Qidi Q1 Pro 0.4 nozzle" ] } diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json index 3e2e07d54f..fb2d73df60 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle" + "Generic PLA @Qidi Q1 Pro 0.6 nozzle" ], "default_print_profile": "0.30mm Standard @Qidi Q1 Pro 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json index 5dea524660..4d99e1a77d 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle" + "Generic PLA @Qidi Q1 Pro 0.8 nozzle" ], "default_print_profile": "0.40mm Standard @Qidi Q1 Pro 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro.json index d6102cf61f..ef9803cbd9 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro.json @@ -8,5 +8,5 @@ "bed_model": "qidi_Q1Pro_buildplate_model.stl", "bed_texture": "qidi_Q1Pro_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen3_hotend.stl", - "default_materials": "QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle;QIDI ASA @Qidi Q1 Pro 0.4 nozzle;QIDI ASA @Qidi Q1 Pro 0.2 nozzle;QIDI ASA @Qidi Q1 Pro 0.6 nozzle;QIDI ASA @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle;Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle;Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle;Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle;Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle" + "default_materials": "QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle;QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle;QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle;QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle;QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle;QIDI ASA @Qidi Q1 Pro 0.4 nozzle;QIDI ASA @Qidi Q1 Pro 0.2 nozzle;QIDI ASA @Qidi Q1 Pro 0.6 nozzle;QIDI ASA @Qidi Q1 Pro 0.8 nozzle;Generic PETG @Qidi Q1 Pro 0.4 nozzle;Generic PETG @Qidi Q1 Pro 0.2 nozzle;Generic PETG @Qidi Q1 Pro 0.6 nozzle;Generic PETG @Qidi Q1 Pro 0.8 nozzle;Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle;Generic PLA @Qidi Q1 Pro 0.4 nozzle;Generic PLA @Qidi Q1 Pro 0.2 nozzle;Generic PLA @Qidi Q1 Pro 0.6 nozzle;Generic PLA @Qidi Q1 Pro 0.8 nozzle" } diff --git a/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json index c82db4969e..a41e2b6a11 100644 --- a/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-CF Pro 0.4 nozzle.json @@ -98,7 +98,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "machine_start_gcode": "G28\nM140 S[hot_plate_temp_initial_layer]\nM190 S[hot_plate_temp_initial_layer]\nM109 S[nozzle_temperature_initial_layer]\nG92 E-19\nG0 Y5 Z0.3 F3600\nG1 X5 E0 F2400\n", "machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E0\nG1 E-3 F300\nG28\nM84\n", diff --git a/resources/profiles/Qidi/machine/Qidi X-CF Pro.json b/resources/profiles/Qidi/machine/Qidi X-CF Pro.json index b70c4bc480..7729b8612d 100644 --- a/resources/profiles/Qidi/machine/Qidi X-CF Pro.json +++ b/resources/profiles/Qidi/machine/Qidi X-CF Pro.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xcfpro_buildplate_model.stl", "bed_texture": "qidi_xcfpro_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen2_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU 95A" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Generic ASA @Qidi;Generic ABS @Qidi;Generic PA-CF @Qidi;Generic PA @Qidi;Generic PC @Qidi;Generic PETG-CF @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi;Generic PLA-CF @Qidi;Generic PVA @Qidi;Generic TPU 95A @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 0.4 nozzle.json index 76577d5f38..b1196c0e70 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 0.4 nozzle.json @@ -98,7 +98,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "machine_start_gcode": "G28\nG92 E0\nG0 X300 Y5 Z50 F3600\nM190 S[bed_temperature_initial_layer_single]\nM109 S[first_layer_temperature]\nG92 E-19\n", "machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E0\nG1 E-3 F300\nG28\nM84\n", diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json index d6b10d422d..84ae0879fe 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle" + "Generic PLA @Qidi X-Max 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XMax3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json index 655b4e32c8..d9ba740281 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json @@ -46,6 +46,6 @@ "change_filament_gcode": "", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ] } diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json index d0d5ac6e04..c10a1c0254 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.30mm Standard @Qidi XMax3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json index c8042e7e3a..4d04574c15 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.40mm Standard @Qidi XMax3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3.json b/resources/profiles/Qidi/machine/Qidi X-Max 3.json index 56fc955601..99888a8acf 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xmax3_buildplate_model.stl", "bed_texture": "qidi_xmax3_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen3_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Generic ASA @Qidi;Generic ABS @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Max.json b/resources/profiles/Qidi/machine/Qidi X-Max.json index ac917aa5b7..26b0ad47d7 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xmax_buildplate_model.stl", "bed_texture": "qidi_xmax_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen2_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU 95A" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Generic ASA @Qidi;Generic ABS @Qidi;Generic PA-CF @Qidi;Generic PA @Qidi;Generic PC @Qidi;Generic PETG-CF @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi;Generic PLA-CF @Qidi;Generic PVA @Qidi;Generic TPU 95A @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 0.4 nozzle.json index ed7f0c24a1..d4e1daee9e 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 0.4 nozzle.json @@ -98,7 +98,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "machine_start_gcode": "G28\nG92 E0\nG0 X270 Y5 Z50 F3600\nM190 S[bed_temperature_initial_layer_single]\nM109 S[first_layer_temperature]\nG92 E-16\n", "machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E0\nG1 E-3 F300\nG28\nM84\n", diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json index 382cd364fd..c6a98fc3de 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle" + "Generic PLA @Qidi X-Plus 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XPlus3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json index 03159944f0..5d39065f8c 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json @@ -42,6 +42,6 @@ "change_filament_gcode": "", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ] } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json index 5af64f9934..959f8013e8 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.30mm Standard @Qidi XPlus3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json index 43aa1a2a2b..93aa435c52 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.40mm Standard @Qidi XPlus3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3.json index 535fc25aef..84df7f37be 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xplus3_buildplate_model.stl", "bed_texture": "qidi_xplus3_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen3_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Generic ASA @Qidi;Generic ABS @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json index b16849ea80..fe66c4fc60 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 4", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle" + "Generic PLA @Qidi X-Plus 4 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XPlus4 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json index 82e9da78cb..a7d2f09195 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json @@ -97,7 +97,7 @@ "machine_start_gcode": "PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nT[initial_tool]\nG0 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0] - 12, first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\nSET_PRINT_STATS_INFO CURRENT_LAYER=1", "thumbnails_format": "PNG", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle" + "Generic PLA @Qidi X-Plus 4 0.4 nozzle" ], "printer_agent": "qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json index f33fbeb5dc..116c754002 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 4", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle" + "Generic PLA @Qidi X-Plus 4 0.6 nozzle" ], "default_print_profile": "0.30mm Standard @Qidi XPlus4 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json index e66c252d0f..d232221c5d 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 4", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle" + "Generic PLA @Qidi X-Plus 4 0.8 nozzle" ], "default_print_profile": "0.40mm Standard @Qidi XPlus4 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4.json index 82702cb7dc..ac34a73e34 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 4.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xplus4_buildplate_model.stl", "bed_texture": "qidi_xplus4_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen3_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PLA Rapido Matte;QIDI ASA;Qidi Generic PETG" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PLA Rapido Matte;QIDI ASA;Generic PETG @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus.json b/resources/profiles/Qidi/machine/Qidi X-Plus.json index 5aa0917d5e..bf30d976ac 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xplus_buildplate_model.stl", "bed_texture": "qidi_xplus_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen2_hotend.stl", - "default_materials": "Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU" + "default_materials": "Generic ASA @Qidi;Generic ABS @Qidi;Generic PA-CF @Qidi;Generic PA @Qidi;Generic PC @Qidi;Generic PETG-CF @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi;Generic PLA-CF @Qidi;Generic PVA @Qidi;Generic TPU @Qidi" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json index bd5d6b5bba..e3bc48c8ed 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle" + "Generic PLA @Qidi X-Smart 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XSmart3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json index d224dbf971..f76a264423 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json @@ -48,6 +48,6 @@ "change_filament_gcode": "", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ] } diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json index 255f4d67db..97e5afc5d2 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.30mm Standard @Qidi XSmart3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json index ef62543341..a3192db8a5 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.40mm Standard @Qidi XSmart3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3.json index 78cd91d3e4..75b3d2e252 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3.json @@ -8,5 +8,5 @@ "bed_model": "qidi_xsmart3_buildplate_model.stl", "bed_texture": "qidi_xsmart3_buildplate_texture.svg", "hotend_model": "qidi_xseries_gen3_hotend.stl", - "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA" + "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PLA Rapido Matte;QIDI PETG Tough;QIDI ASA;Generic ASA @Qidi;Generic ABS @Qidi;Generic PETG @Qidi;Generic PLA Silk @Qidi;Generic PLA @Qidi" } diff --git a/resources/profiles/Qidi/machine/fdm_qidi_common.json b/resources/profiles/Qidi/machine/fdm_qidi_common.json index 99149558f9..38b39c4591 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA @Qidi" ], "default_print_profile": "0.20mm Standard @QIDI", "bed_exclude_area": [ diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json index 969794f578..128926c992 100644 --- a/resources/profiles/Ratrig.json +++ b/resources/profiles/Ratrig.json @@ -1,6 +1,6 @@ { "name": "RatRig", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "RatRig configurations", "machine_model_list": [ @@ -317,8 +317,8 @@ "sub_path": "filament/RatRig BigNozzle ABS.json" }, { - "name": "RatRig Generic ABS", - "sub_path": "filament/RatRig Generic ABS.json" + "name": "Generic ABS @RatRig", + "sub_path": "filament/Generic ABS @RatRig.json" }, { "name": "RatRig PunkFil ABS", @@ -329,20 +329,20 @@ "sub_path": "filament/RatRig BigNozzle ASA.json" }, { - "name": "RatRig Generic ASA", - "sub_path": "filament/RatRig Generic ASA.json" + "name": "Generic ASA @RatRig", + "sub_path": "filament/Generic ASA @RatRig.json" }, { - "name": "RatRig Generic PA", - "sub_path": "filament/RatRig Generic PA.json" + "name": "Generic PA @RatRig", + "sub_path": "filament/Generic PA @RatRig.json" }, { - "name": "RatRig Generic PA-CF", - "sub_path": "filament/RatRig Generic PA-CF.json" + "name": "Generic PA-CF @RatRig", + "sub_path": "filament/Generic PA-CF @RatRig.json" }, { - "name": "RatRig Generic PC", - "sub_path": "filament/RatRig Generic PC.json" + "name": "Generic PC @RatRig", + "sub_path": "filament/Generic PC @RatRig.json" }, { "name": "RatRig BigNozzle PCTG", @@ -353,12 +353,12 @@ "sub_path": "filament/RatRig BigNozzle PETG.json" }, { - "name": "RatRig Generic PCTG", - "sub_path": "filament/RatRig Generic PCTG.json" + "name": "Generic PCTG @RatRig", + "sub_path": "filament/Generic PCTG @RatRig.json" }, { - "name": "RatRig Generic PETG", - "sub_path": "filament/RatRig Generic PETG.json" + "name": "Generic PETG @RatRig", + "sub_path": "filament/Generic PETG @RatRig.json" }, { "name": "RatRig PunkFil PETG", @@ -373,24 +373,24 @@ "sub_path": "filament/RatRig BigNozzle PLA.json" }, { - "name": "RatRig Generic PLA", - "sub_path": "filament/RatRig Generic PLA.json" + "name": "Generic PLA @RatRig", + "sub_path": "filament/Generic PLA @RatRig.json" }, { - "name": "RatRig Generic PLA-CF", - "sub_path": "filament/RatRig Generic PLA-CF.json" + "name": "Generic PLA-CF @RatRig", + "sub_path": "filament/Generic PLA-CF @RatRig.json" }, { - "name": "RatRig Generic PVA", - "sub_path": "filament/RatRig Generic PVA.json" + "name": "Generic PVA @RatRig", + "sub_path": "filament/Generic PVA @RatRig.json" }, { "name": "RatRig BigNozzle TPU", "sub_path": "filament/RatRig BigNozzle TPU.json" }, { - "name": "RatRig Generic TPU", - "sub_path": "filament/RatRig Generic TPU.json" + "name": "Generic TPU @RatRig", + "sub_path": "filament/Generic TPU @RatRig.json" } ], "machine_list": [ diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json b/resources/profiles/Ratrig/filament/Generic ABS @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic ABS.json rename to resources/profiles/Ratrig/filament/Generic ABS @RatRig.json index ed76ab9524..d45720cf60 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ABS.json +++ b/resources/profiles/Ratrig/filament/Generic ABS @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic ABS", + "name": "Generic ABS @RatRig", "inherits": "fdm_filament_abs", + "renamed_from": "RatRig Generic ABS", "from": "system", - "setting_id": "ovLAzbygn6JHqGk0", - "filament_id": "OFyFRojy", + "setting_id": "0BepsauXBs5bxPYO", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.980" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json b/resources/profiles/Ratrig/filament/Generic ASA @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic ASA.json rename to resources/profiles/Ratrig/filament/Generic ASA @RatRig.json index 6cc52605f5..9b70da5bab 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic ASA.json +++ b/resources/profiles/Ratrig/filament/Generic ASA @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic ASA", + "name": "Generic ASA @RatRig", "inherits": "fdm_filament_asa", + "renamed_from": "RatRig Generic ASA", "from": "system", - "setting_id": "pmxazFQdx5Oa7Pke", - "filament_id": "OF48L671", + "setting_id": "cogJbKPAXzyCQgvf", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA.json b/resources/profiles/Ratrig/filament/Generic PA @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic PA.json rename to resources/profiles/Ratrig/filament/Generic PA @RatRig.json index 17a29f6fe5..58d6757d78 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA.json +++ b/resources/profiles/Ratrig/filament/Generic PA @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PA", + "name": "Generic PA @RatRig", "inherits": "fdm_filament_pa", + "renamed_from": "RatRig Generic PA", "from": "system", - "setting_id": "fVGEV9t4w06LODgD", - "filament_id": "OFEZNNw1", + "setting_id": "5rpTzhFjS6Ar4Xy8", + "filament_id": "OFg8ndtj", "instantiation": "true", "nozzle_temperature_initial_layer": [ "270" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json b/resources/profiles/Ratrig/filament/Generic PA-CF @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json rename to resources/profiles/Ratrig/filament/Generic PA-CF @RatRig.json index 4fa73713e1..5b0ea38d75 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PA-CF.json +++ b/resources/profiles/Ratrig/filament/Generic PA-CF @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PA-CF", + "name": "Generic PA-CF @RatRig", "inherits": "fdm_filament_pa", + "renamed_from": "RatRig Generic PA-CF", "from": "system", - "setting_id": "ZRrsXKPk8pY4yrwd", - "filament_id": "OFNOxcYl", + "setting_id": "ps7duiwT8adNshEO", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PC.json b/resources/profiles/Ratrig/filament/Generic PC @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic PC.json rename to resources/profiles/Ratrig/filament/Generic PC @RatRig.json index 3eab266588..c6dc89cce5 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PC.json +++ b/resources/profiles/Ratrig/filament/Generic PC @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PC", + "name": "Generic PC @RatRig", "inherits": "fdm_filament_pc", + "renamed_from": "RatRig Generic PC", "from": "system", - "setting_id": "XQ5VEJXu5X0L3Lbn", - "filament_id": "OFdOWhCa", + "setting_id": "7x5VtUIevdAmBqqA", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json b/resources/profiles/Ratrig/filament/Generic PCTG @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig Generic PCTG.json rename to resources/profiles/Ratrig/filament/Generic PCTG @RatRig.json index 1bc6658211..d3e06685b5 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PCTG.json +++ b/resources/profiles/Ratrig/filament/Generic PCTG @RatRig.json @@ -1,11 +1,15 @@ { "type": "filament", - "name": "RatRig Generic PCTG", + "name": "Generic PCTG @RatRig", "inherits": "fdm_filament_pet", + "renamed_from": "RatRig Generic PCTG", "from": "system", - "setting_id": "SG4Gt87iS1ql3s8S", - "filament_id": "OFUrStd6", + "setting_id": "JMTUqdhoQzCb6ZxJ", + "filament_id": "OFu1evlr", "instantiation": "true", + "filament_type": [ + "PCTG" + ], "reduce_fan_stop_start_freq": [ "1" ], diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json b/resources/profiles/Ratrig/filament/Generic PETG @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig Generic PETG.json rename to resources/profiles/Ratrig/filament/Generic PETG @RatRig.json index ab649e81b3..b0182712b1 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PETG.json +++ b/resources/profiles/Ratrig/filament/Generic PETG @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PETG", + "name": "Generic PETG @RatRig", "inherits": "fdm_filament_pet", + "renamed_from": "RatRig Generic PETG", "from": "system", - "setting_id": "u6diBMbHW2nnKKTm", - "filament_id": "OFxg7n2G", + "setting_id": "6p3FfhhSIAOQGEzT", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json b/resources/profiles/Ratrig/filament/Generic PLA @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig Generic PLA.json rename to resources/profiles/Ratrig/filament/Generic PLA @RatRig.json index 1e99ec6398..b8a33f4da4 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA.json +++ b/resources/profiles/Ratrig/filament/Generic PLA @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PLA", + "name": "Generic PLA @RatRig", "inherits": "fdm_filament_pla", + "renamed_from": "RatRig Generic PLA", "from": "system", - "setting_id": "IY6qXVoQqhsKuMzP", - "filament_id": "OFd10YeG", + "setting_id": "BsQA6ChWHTDUSlii", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json b/resources/profiles/Ratrig/filament/Generic PLA-CF @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json rename to resources/profiles/Ratrig/filament/Generic PLA-CF @RatRig.json index e8278cb1ab..288c892f09 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PLA-CF.json +++ b/resources/profiles/Ratrig/filament/Generic PLA-CF @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PLA-CF", + "name": "Generic PLA-CF @RatRig", "inherits": "fdm_filament_pla", + "renamed_from": "RatRig Generic PLA-CF", "from": "system", - "setting_id": "Vwn22LQBChxWysmU", - "filament_id": "OFlx52rn", + "setting_id": "ai3I13fL5giqq5LW", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json b/resources/profiles/Ratrig/filament/Generic PVA @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig Generic PVA.json rename to resources/profiles/Ratrig/filament/Generic PVA @RatRig.json index 5035285a77..016b146181 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic PVA.json +++ b/resources/profiles/Ratrig/filament/Generic PVA @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic PVA", + "name": "Generic PVA @RatRig", "inherits": "fdm_filament_pva", + "renamed_from": "RatRig Generic PVA", "from": "system", - "setting_id": "9uJ3Rr6kn9jZZxPO", - "filament_id": "OFsxRSwr", + "setting_id": "y6DJYhqAmxMng8Kf", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json b/resources/profiles/Ratrig/filament/Generic TPU @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig Generic TPU.json rename to resources/profiles/Ratrig/filament/Generic TPU @RatRig.json index 8e69cce08f..e8ea6176b7 100644 --- a/resources/profiles/Ratrig/filament/RatRig Generic TPU.json +++ b/resources/profiles/Ratrig/filament/Generic TPU @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig Generic TPU", + "name": "Generic TPU @RatRig", "inherits": "fdm_filament_tpu", + "renamed_from": "RatRig Generic TPU", "from": "system", - "setting_id": "zWOn983v5s2ujssj", - "filament_id": "OFB09fpe", + "setting_id": "dAIGKmZctSRhP1Lu", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/Ratrig/machine/RatRig V-Cast.json b/resources/profiles/Ratrig/machine/RatRig V-Cast.json index d4d2d51ce4..259a8fff94 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Cast.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Cast.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcast-bed.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 3 200.json b/resources/profiles/Ratrig/machine/RatRig V-Core 3 200.json index 07e3e95a9c..1d0b05e4f5 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 3 200.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 3 200.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-200.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 3 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 3 300.json index 830b0bded9..a82c91482c 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 3 300.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 3 300.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 3 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 3 400.json index 5fb1292b86..97713f4417 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 3 400.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 3 400.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 3 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 3 500.json index 4bce2ed0fe..08b6b2e59a 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 3 500.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 3 500.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json index 09a867b6e9..3b43d60a23 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 300.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json index 7cc76b3323..71eb9724f9 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 400.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json index 1664aff7e3..47cd8fba2f 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 500.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json index 6d0e891a12..4731e90901 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 300.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json index 9aa253bdea..86963d7e73 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 400.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json index bafe6879cf..7b61ebe531 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 HYBRID 500.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 COPY MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 COPY MODE.json index 961e647009..f2831e5919 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 COPY MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 COPY MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300-clone-mode.stl", "bed_texture": "ratrig_logo_copy_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 MIRROR MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 MIRROR MODE.json index 5efa6aea9f..a14770104f 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 MIRROR MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300 MIRROR MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300-clone-mode.stl", "bed_texture": "ratrig_logo_mirror_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300.json index e2549c0416..1a477fb750 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 300.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-300.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 COPY MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 COPY MODE.json index a8710f8aaa..327c56d036 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 COPY MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 COPY MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400-clone-mode.stl", "bed_texture": "ratrig_logo_copy_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 MIRROR MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 MIRROR MODE.json index cb5eb6f526..2e72109e25 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 MIRROR MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400 MIRROR MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400-clone-mode.stl", "bed_texture": "ratrig_logo_mirror_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400.json index d3e08811f8..e6c7405f9a 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 400.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-400.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 COPY MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 COPY MODE.json index 3e56953833..bc27a53e94 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 COPY MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 COPY MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500-clone-mode.stl", "bed_texture": "ratrig_logo_copy_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 MIRROR MODE.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 MIRROR MODE.json index 336ed1ddd8..3518748830 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 MIRROR MODE.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500 MIRROR MODE.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500-clone-mode.stl", "bed_texture": "ratrig_logo_mirror_mode.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500.json b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500.json index 5766fb3953..59ff011a82 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Core 4 IDEX 500.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vcore-bed-500.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PCTG;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PCTG @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/RatRig V-Minion.json b/resources/profiles/Ratrig/machine/RatRig V-Minion.json index 974a3aaa59..4134cadbf2 100644 --- a/resources/profiles/Ratrig/machine/RatRig V-Minion.json +++ b/resources/profiles/Ratrig/machine/RatRig V-Minion.json @@ -8,5 +8,5 @@ "bed_model": "ratrig-vminion-bed.stl", "bed_texture": "ratrig_logo.svg", "hotend_model": "", - "default_materials": "RatRig Generic ABS;RatRig Generic PLA;RatRig Generic PLA-CF;RatRig Generic PETG;RatRig Generic TPU;RatRig Generic ASA;RatRig Generic PC;RatRig Generic PVA;RatRig Generic PA;RatRig Generic PA-CF" + "default_materials": "Generic ABS @RatRig;Generic PLA @RatRig;Generic PLA-CF @RatRig;Generic PETG @RatRig;Generic TPU @RatRig;Generic ASA @RatRig;Generic PC @RatRig;Generic PVA @RatRig;Generic PA @RatRig;Generic PA-CF @RatRig" } diff --git a/resources/profiles/Ratrig/machine/fdm_klipper_common.json b/resources/profiles/Ratrig/machine/fdm_klipper_common.json index 8915fc1d4a..28ad9ce02c 100644 --- a/resources/profiles/Ratrig/machine/fdm_klipper_common.json +++ b/resources/profiles/Ratrig/machine/fdm_klipper_common.json @@ -126,7 +126,7 @@ "1" ], "default_filament_profile": [ - "RatRig Generic ABS" + "Generic ABS @RatRig" ], "default_print_profile": "0.20mm Standard @RatRig", "bed_exclude_area": [ diff --git a/resources/profiles/SecKit.json b/resources/profiles/SecKit.json index 85d373fbc9..42ac381eb6 100644 --- a/resources/profiles/SecKit.json +++ b/resources/profiles/SecKit.json @@ -1,6 +1,6 @@ { "name": "SecKit", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "SecKit configurations", "machine_model_list": [ @@ -89,44 +89,44 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "SecKit Generic ABS", - "sub_path": "filament/SecKit Generic ABS.json" + "name": "Generic ABS @SecKit", + "sub_path": "filament/Generic ABS @SecKit.json" }, { - "name": "SecKit Generic ASA", - "sub_path": "filament/SecKit Generic ASA.json" + "name": "Generic ASA @SecKit", + "sub_path": "filament/Generic ASA @SecKit.json" }, { - "name": "SecKit Generic PA", - "sub_path": "filament/SecKit Generic PA.json" + "name": "Generic PA @SecKit", + "sub_path": "filament/Generic PA @SecKit.json" }, { - "name": "SecKit Generic PA-CF", - "sub_path": "filament/SecKit Generic PA-CF.json" + "name": "Generic PA-CF @SecKit", + "sub_path": "filament/Generic PA-CF @SecKit.json" }, { - "name": "SecKit Generic PC", - "sub_path": "filament/SecKit Generic PC.json" + "name": "Generic PC @SecKit", + "sub_path": "filament/Generic PC @SecKit.json" }, { - "name": "SecKit Generic PETG", - "sub_path": "filament/SecKit Generic PETG.json" + "name": "Generic PETG @SecKit", + "sub_path": "filament/Generic PETG @SecKit.json" }, { - "name": "SecKit Generic PLA", - "sub_path": "filament/SecKit Generic PLA.json" + "name": "Generic PLA @SecKit", + "sub_path": "filament/Generic PLA @SecKit.json" }, { - "name": "SecKit Generic PLA-CF", - "sub_path": "filament/SecKit Generic PLA-CF.json" + "name": "Generic PLA-CF @SecKit", + "sub_path": "filament/Generic PLA-CF @SecKit.json" }, { - "name": "SecKit Generic PVA", - "sub_path": "filament/SecKit Generic PVA.json" + "name": "Generic PVA @SecKit", + "sub_path": "filament/Generic PVA @SecKit.json" }, { - "name": "SecKit Generic TPU", - "sub_path": "filament/SecKit Generic TPU.json" + "name": "Generic TPU @SecKit", + "sub_path": "filament/Generic TPU @SecKit.json" } ], "machine_list": [ diff --git a/resources/profiles/SecKit/filament/SecKit Generic ABS.json b/resources/profiles/SecKit/filament/Generic ABS @SecKit.json similarity index 83% rename from resources/profiles/SecKit/filament/SecKit Generic ABS.json rename to resources/profiles/SecKit/filament/Generic ABS @SecKit.json index ed9be1c69a..cdd9ce2f62 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic ABS.json +++ b/resources/profiles/SecKit/filament/Generic ABS @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic ABS", + "name": "Generic ABS @SecKit", "inherits": "fdm_filament_abs", + "renamed_from": "SecKit Generic ABS", "from": "system", - "setting_id": "gUrHIkj9GExYWVjh", - "filament_id": "OFnh79eM", + "setting_id": "VSrXBQUNBQMwUc08", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.980" diff --git a/resources/profiles/SecKit/filament/SecKit Generic ASA.json b/resources/profiles/SecKit/filament/Generic ASA @SecKit.json similarity index 81% rename from resources/profiles/SecKit/filament/SecKit Generic ASA.json rename to resources/profiles/SecKit/filament/Generic ASA @SecKit.json index 6688efd51f..366b20172b 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic ASA.json +++ b/resources/profiles/SecKit/filament/Generic ASA @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic ASA", + "name": "Generic ASA @SecKit", "inherits": "fdm_filament_asa", + "renamed_from": "SecKit Generic ASA", "from": "system", - "setting_id": "UwVF6VlxRg0IW9hB", - "filament_id": "OFrh4bBH", + "setting_id": "usCYRq4VuLqXvb0T", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PA.json b/resources/profiles/SecKit/filament/Generic PA @SecKit.json similarity index 81% rename from resources/profiles/SecKit/filament/SecKit Generic PA.json rename to resources/profiles/SecKit/filament/Generic PA @SecKit.json index 38a275a6f2..7746d8628a 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PA.json +++ b/resources/profiles/SecKit/filament/Generic PA @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PA", + "name": "Generic PA @SecKit", "inherits": "fdm_filament_pa", + "renamed_from": "SecKit Generic PA", "from": "system", - "setting_id": "GlgeZsK719DDjaPo", - "filament_id": "OF8CXrvm", + "setting_id": "uAuptETLwGxTsthC", + "filament_id": "OFg8ndtj", "instantiation": "true", "nozzle_temperature_initial_layer": [ "270" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json b/resources/profiles/SecKit/filament/Generic PA-CF @SecKit.json similarity index 81% rename from resources/profiles/SecKit/filament/SecKit Generic PA-CF.json rename to resources/profiles/SecKit/filament/Generic PA-CF @SecKit.json index 46ad248815..52c0bae450 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PA-CF.json +++ b/resources/profiles/SecKit/filament/Generic PA-CF @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PA-CF", + "name": "Generic PA-CF @SecKit", "inherits": "fdm_filament_pa", + "renamed_from": "SecKit Generic PA-CF", "from": "system", - "setting_id": "0K4eQ2fbaasNdvsP", - "filament_id": "OFtsVp4v", + "setting_id": "P6G8DjjyfAFgGaj2", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PC.json b/resources/profiles/SecKit/filament/Generic PC @SecKit.json similarity index 80% rename from resources/profiles/SecKit/filament/SecKit Generic PC.json rename to resources/profiles/SecKit/filament/Generic PC @SecKit.json index 2244729859..689f3ea553 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PC.json +++ b/resources/profiles/SecKit/filament/Generic PC @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PC", + "name": "Generic PC @SecKit", "inherits": "fdm_filament_pc", + "renamed_from": "SecKit Generic PC", "from": "system", - "setting_id": "8DHToBaqE7g5VNvN", - "filament_id": "OF5E5KNA", + "setting_id": "PxmBHXsdhZGR9bYv", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "12" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PETG.json b/resources/profiles/SecKit/filament/Generic PETG @SecKit.json similarity index 86% rename from resources/profiles/SecKit/filament/SecKit Generic PETG.json rename to resources/profiles/SecKit/filament/Generic PETG @SecKit.json index 07af417aae..05c5c753c6 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PETG.json +++ b/resources/profiles/SecKit/filament/Generic PETG @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PETG", + "name": "Generic PETG @SecKit", "inherits": "fdm_filament_pet", + "renamed_from": "SecKit Generic PETG", "from": "system", - "setting_id": "mx45AbmzGkqYMSsW", - "filament_id": "OFqS8fzK", + "setting_id": "Qt4oXABB5Fukbz46", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PLA.json b/resources/profiles/SecKit/filament/Generic PLA @SecKit.json similarity index 79% rename from resources/profiles/SecKit/filament/SecKit Generic PLA.json rename to resources/profiles/SecKit/filament/Generic PLA @SecKit.json index 2c85460be0..b3cd1c2ffc 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PLA.json +++ b/resources/profiles/SecKit/filament/Generic PLA @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PLA", + "name": "Generic PLA @SecKit", "inherits": "fdm_filament_pla", + "renamed_from": "SecKit Generic PLA", "from": "system", - "setting_id": "7cpNIx6GWUp95tLN", - "filament_id": "OFETFWx7", + "setting_id": "uWvI4RDQiYLFN7pp", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json b/resources/profiles/SecKit/filament/Generic PLA-CF @SecKit.json similarity index 79% rename from resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json rename to resources/profiles/SecKit/filament/Generic PLA-CF @SecKit.json index 5ac681d9d7..507716caee 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PLA-CF.json +++ b/resources/profiles/SecKit/filament/Generic PLA-CF @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PLA-CF", + "name": "Generic PLA-CF @SecKit", "inherits": "fdm_filament_pla", + "renamed_from": "SecKit Generic PLA-CF", "from": "system", - "setting_id": "dPLE2CXMpmdtyiZK", - "filament_id": "OFF73Bvp", + "setting_id": "znagqvEsDcHYse9M", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/SecKit/filament/SecKit Generic PVA.json b/resources/profiles/SecKit/filament/Generic PVA @SecKit.json similarity index 77% rename from resources/profiles/SecKit/filament/SecKit Generic PVA.json rename to resources/profiles/SecKit/filament/Generic PVA @SecKit.json index 67312ed658..13f7d50673 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic PVA.json +++ b/resources/profiles/SecKit/filament/Generic PVA @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic PVA", + "name": "Generic PVA @SecKit", "inherits": "fdm_filament_pva", + "renamed_from": "SecKit Generic PVA", "from": "system", - "setting_id": "jiHEC4uCmPQLINlO", - "filament_id": "OFyySVby", + "setting_id": "DIUaGXpIF3fUfxqg", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/SecKit/filament/SecKit Generic TPU.json b/resources/profiles/SecKit/filament/Generic TPU @SecKit.json similarity index 76% rename from resources/profiles/SecKit/filament/SecKit Generic TPU.json rename to resources/profiles/SecKit/filament/Generic TPU @SecKit.json index dab7cf4bf5..96d9c38a60 100644 --- a/resources/profiles/SecKit/filament/SecKit Generic TPU.json +++ b/resources/profiles/SecKit/filament/Generic TPU @SecKit.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "SecKit Generic TPU", + "name": "Generic TPU @SecKit", "inherits": "fdm_filament_tpu", + "renamed_from": "SecKit Generic TPU", "from": "system", - "setting_id": "b5GGHwZlR5oOx4eH", - "filament_id": "OFoVZg32", + "setting_id": "agKm2K9w4ZOmZN8c", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/SecKit/machine/SecKit SK-Tank.json b/resources/profiles/SecKit/machine/SecKit SK-Tank.json index 88cd516037..171d979074 100644 --- a/resources/profiles/SecKit/machine/SecKit SK-Tank.json +++ b/resources/profiles/SecKit/machine/SecKit SK-Tank.json @@ -9,5 +9,5 @@ "bed_model": "SK-Tank_Bed.stl", "bed_texture": "seckit_logo.svg", "hotend_model": "hotend.stl", - "default_materials": "SecKit Generic ABS;SecKit Generic PLA;SecKit Generic PLA-CF;SecKit Generic PETG;SecKit Generic TPU;SecKit Generic ASA;SecKit Generic PC;SecKit Generic PVA;SecKit Generic PA;SecKit Generic PA-CF" + "default_materials": "Generic ABS @SecKit;Generic PLA @SecKit;Generic PLA-CF @SecKit;Generic PETG @SecKit;Generic TPU @SecKit;Generic ASA @SecKit;Generic PC @SecKit;Generic PVA @SecKit;Generic PA @SecKit;Generic PA-CF @SecKit" } diff --git a/resources/profiles/SecKit/machine/Seckit Go3.json b/resources/profiles/SecKit/machine/Seckit Go3.json index 9b5169b017..9882f8783e 100644 --- a/resources/profiles/SecKit/machine/Seckit Go3.json +++ b/resources/profiles/SecKit/machine/Seckit Go3.json @@ -9,5 +9,5 @@ "bed_model": "SK-Go3_Bed.stl", "bed_texture": "seckit_logo.svg", "hotend_model": "seckit-hotend.stl", - "default_materials": "SecKit Generic ABS;SecKit Generic PLA;SecKit Generic PLA-CF;SecKit Generic PETG;SecKit Generic TPU;SecKit Generic ASA;SecKit Generic PC;SecKit Generic PVA;SecKit Generic PA;SecKit Generic PA-CF" + "default_materials": "Generic ABS @SecKit;Generic PLA @SecKit;Generic PLA-CF @SecKit;Generic PETG @SecKit;Generic TPU @SecKit;Generic ASA @SecKit;Generic PC @SecKit;Generic PVA @SecKit;Generic PA @SecKit;Generic PA-CF @SecKit" } diff --git a/resources/profiles/SecKit/machine/fdm_klipper_common.json b/resources/profiles/SecKit/machine/fdm_klipper_common.json index 8b9cbf6efe..4bb08f7367 100644 --- a/resources/profiles/SecKit/machine/fdm_klipper_common.json +++ b/resources/profiles/SecKit/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "SecKit Generic PETG" + "Generic PETG @SecKit" ], "default_print_profile": "0.20mm Standard @SecKit", "bed_exclude_area": [ diff --git a/resources/profiles/Tiertime.json b/resources/profiles/Tiertime.json index 0742e8bce6..8134d621df 100644 --- a/resources/profiles/Tiertime.json +++ b/resources/profiles/Tiertime.json @@ -1,6 +1,6 @@ { "name": "Tiertime", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Tiertime configurations", "machine_model_list": [ @@ -369,12 +369,12 @@ "sub_path": "filament/Tiertime ABS@300HS.json" }, { - "name": "Tiertime Generic ABS", - "sub_path": "filament/Tiertime Generic ABS.json" + "name": "Generic ABS @Tiertime", + "sub_path": "filament/Generic ABS @Tiertime.json" }, { - "name": "Tiertime Generic ABS@300HS", - "sub_path": "filament/Tiertime Generic ABS@300HS.json" + "name": "Generic ABS @Tiertime 300HS", + "sub_path": "filament/Generic ABS @Tiertime 300HS.json" }, { "name": "Tiertime ASA", @@ -385,52 +385,52 @@ "sub_path": "filament/Tiertime ASA@300HS.json" }, { - "name": "Tiertime Generic ASA", - "sub_path": "filament/Tiertime Generic ASA.json" + "name": "Generic ASA @Tiertime", + "sub_path": "filament/Generic ASA @Tiertime.json" }, { - "name": "Tiertime Generic ASA@300HS", - "sub_path": "filament/Tiertime Generic ASA@300HS.json" + "name": "Generic ASA @Tiertime 300HS", + "sub_path": "filament/Generic ASA @Tiertime 300HS.json" }, { - "name": "Tiertime Generic BVOH", - "sub_path": "filament/Tiertime Generic BVOH.json" + "name": "Generic BVOH @Tiertime", + "sub_path": "filament/Generic BVOH @Tiertime.json" }, { - "name": "Tiertime Generic BVOH@300HS", - "sub_path": "filament/Tiertime Generic BVOH@300HS.json" + "name": "Generic BVOH @Tiertime 300HS", + "sub_path": "filament/Generic BVOH @Tiertime 300HS.json" }, { - "name": "Tiertime Generic EVA", - "sub_path": "filament/Tiertime Generic EVA.json" + "name": "Generic EVA @Tiertime", + "sub_path": "filament/Generic EVA @Tiertime.json" }, { - "name": "Tiertime Generic EVA@300HS", - "sub_path": "filament/Tiertime Generic EVA@300HS.json" + "name": "Generic EVA @Tiertime 300HS", + "sub_path": "filament/Generic EVA @Tiertime 300HS.json" }, { - "name": "Tiertime Generic HIPS", - "sub_path": "filament/Tiertime Generic HIPS.json" + "name": "Generic HIPS @Tiertime", + "sub_path": "filament/Generic HIPS @Tiertime.json" }, { - "name": "Tiertime Generic HIPS@300HS", - "sub_path": "filament/Tiertime Generic HIPS@300HS.json" + "name": "Generic HIPS @Tiertime 300HS", + "sub_path": "filament/Generic HIPS @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PA", - "sub_path": "filament/Tiertime Generic PA.json" + "name": "Generic PA @Tiertime", + "sub_path": "filament/Generic PA @Tiertime.json" }, { - "name": "Tiertime Generic PA-CF", - "sub_path": "filament/Tiertime Generic PA-CF.json" + "name": "Generic PA-CF @Tiertime", + "sub_path": "filament/Generic PA-CF @Tiertime.json" }, { - "name": "Tiertime Generic PA-CF@300HS", - "sub_path": "filament/Tiertime Generic PA-CF@300HS.json" + "name": "Generic PA-CF @Tiertime 300HS", + "sub_path": "filament/Generic PA-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PA@300HS", - "sub_path": "filament/Tiertime Generic PA@300HS.json" + "name": "Generic PA @Tiertime 300HS", + "sub_path": "filament/Generic PA @Tiertime 300HS.json" }, { "name": "Tiertime PA6-CF", @@ -441,12 +441,12 @@ "sub_path": "filament/Tiertime PA6-CF@300HS.json" }, { - "name": "Tiertime Generic PC", - "sub_path": "filament/Tiertime Generic PC.json" + "name": "Generic PC @Tiertime", + "sub_path": "filament/Generic PC @Tiertime.json" }, { - "name": "Tiertime Generic PC@300HS", - "sub_path": "filament/Tiertime Generic PC@300HS.json" + "name": "Generic PC @Tiertime 300HS", + "sub_path": "filament/Generic PC @Tiertime 300HS.json" }, { "name": "Tiertime PC", @@ -457,44 +457,44 @@ "sub_path": "filament/Tiertime PC@300HS.json" }, { - "name": "Tiertime Generic PCTG", - "sub_path": "filament/Tiertime Generic PCTG.json" + "name": "Generic PCTG @Tiertime", + "sub_path": "filament/Generic PCTG @Tiertime.json" }, { - "name": "Tiertime Generic PCTG@300HS", - "sub_path": "filament/Tiertime Generic PCTG@300HS.json" + "name": "Generic PCTG @Tiertime 300HS", + "sub_path": "filament/Generic PCTG @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PE", - "sub_path": "filament/Tiertime Generic PE.json" + "name": "Generic PE @Tiertime", + "sub_path": "filament/Generic PE @Tiertime.json" }, { - "name": "Tiertime Generic PE-CF", - "sub_path": "filament/Tiertime Generic PE-CF.json" + "name": "Generic PE-CF @Tiertime", + "sub_path": "filament/Generic PE-CF @Tiertime.json" }, { - "name": "Tiertime Generic PE-CF@300HS", - "sub_path": "filament/Tiertime Generic PE-CF@300HS.json" + "name": "Generic PE-CF @Tiertime 300HS", + "sub_path": "filament/Generic PE-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PE@300HS", - "sub_path": "filament/Tiertime Generic PE@300HS.json" + "name": "Generic PE @Tiertime 300HS", + "sub_path": "filament/Generic PE @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PETG", - "sub_path": "filament/Tiertime Generic PETG.json" + "name": "Generic PETG @Tiertime", + "sub_path": "filament/Generic PETG @Tiertime.json" }, { - "name": "Tiertime Generic PETG-CF", - "sub_path": "filament/Tiertime Generic PETG-CF.json" + "name": "Generic PETG-CF @Tiertime", + "sub_path": "filament/Generic PETG-CF @Tiertime.json" }, { - "name": "Tiertime Generic PETG-CF@300HS", - "sub_path": "filament/Tiertime Generic PETG-CF@300HS.json" + "name": "Generic PETG-CF @Tiertime 300HS", + "sub_path": "filament/Generic PETG-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PETG@300HS", - "sub_path": "filament/Tiertime Generic PETG@300HS.json" + "name": "Generic PETG @Tiertime 300HS", + "sub_path": "filament/Generic PETG @Tiertime 300HS.json" }, { "name": "Tiertime PET-CF", @@ -513,44 +513,44 @@ "sub_path": "filament/Tiertime PETG@300HS.json" }, { - "name": "Tiertime Generic PHA", - "sub_path": "filament/Tiertime Generic PHA.json" + "name": "Generic PHA @Tiertime", + "sub_path": "filament/Generic PHA @Tiertime.json" }, { - "name": "Tiertime Generic PHA@300HS", - "sub_path": "filament/Tiertime Generic PHA@300HS.json" + "name": "Generic PHA @Tiertime 300HS", + "sub_path": "filament/Generic PHA @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PLA", - "sub_path": "filament/Tiertime Generic PLA.json" + "name": "Generic PLA @Tiertime", + "sub_path": "filament/Generic PLA @Tiertime.json" }, { - "name": "Tiertime Generic PLA High Speed", - "sub_path": "filament/Tiertime Generic PLA High Speed.json" + "name": "Generic PLA High Speed @Tiertime", + "sub_path": "filament/Generic PLA High Speed @Tiertime.json" }, { - "name": "Tiertime Generic PLA High Speed@300HS", - "sub_path": "filament/Tiertime Generic PLA High Speed@300HS.json" + "name": "Generic PLA High Speed @Tiertime 300HS", + "sub_path": "filament/Generic PLA High Speed @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PLA Silk", - "sub_path": "filament/Tiertime Generic PLA Silk.json" + "name": "Generic PLA Silk @Tiertime", + "sub_path": "filament/Generic PLA Silk @Tiertime.json" }, { - "name": "Tiertime Generic PLA Silk@300HS", - "sub_path": "filament/Tiertime Generic PLA Silk@300HS.json" + "name": "Generic PLA Silk @Tiertime 300HS", + "sub_path": "filament/Generic PLA Silk @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PLA-CF", - "sub_path": "filament/Tiertime Generic PLA-CF.json" + "name": "Generic PLA-CF @Tiertime", + "sub_path": "filament/Generic PLA-CF @Tiertime.json" }, { - "name": "Tiertime Generic PLA-CF@300HS", - "sub_path": "filament/Tiertime Generic PLA-CF@300HS.json" + "name": "Generic PLA-CF @Tiertime 300HS", + "sub_path": "filament/Generic PLA-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PLA@300HS", - "sub_path": "filament/Tiertime Generic PLA@300HS.json" + "name": "Generic PLA @Tiertime 300HS", + "sub_path": "filament/Generic PLA @Tiertime 300HS.json" }, { "name": "Tiertime PLA", @@ -569,68 +569,68 @@ "sub_path": "filament/Tiertime PLA@300HS.json" }, { - "name": "Tiertime Generic PP", - "sub_path": "filament/Tiertime Generic PP.json" + "name": "Generic PP @Tiertime", + "sub_path": "filament/Generic PP @Tiertime.json" }, { - "name": "Tiertime Generic PP-CF", - "sub_path": "filament/Tiertime Generic PP-CF.json" + "name": "Generic PP-CF @Tiertime", + "sub_path": "filament/Generic PP-CF @Tiertime.json" }, { - "name": "Tiertime Generic PP-CF@300HS", - "sub_path": "filament/Tiertime Generic PP-CF@300HS.json" + "name": "Generic PP-CF @Tiertime 300HS", + "sub_path": "filament/Generic PP-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PP-GF", - "sub_path": "filament/Tiertime Generic PP-GF.json" + "name": "Generic PP-GF @Tiertime", + "sub_path": "filament/Generic PP-GF @Tiertime.json" }, { - "name": "Tiertime Generic PP-GF@300HS", - "sub_path": "filament/Tiertime Generic PP-GF@300HS.json" + "name": "Generic PP-GF @Tiertime 300HS", + "sub_path": "filament/Generic PP-GF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PP@300HS", - "sub_path": "filament/Tiertime Generic PP@300HS.json" + "name": "Generic PP @Tiertime 300HS", + "sub_path": "filament/Generic PP @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PPA-CF", - "sub_path": "filament/Tiertime Generic PPA-CF.json" + "name": "Generic PPA-CF @Tiertime", + "sub_path": "filament/Generic PPA-CF @Tiertime.json" }, { - "name": "Tiertime Generic PPA-CF@300HS", - "sub_path": "filament/Tiertime Generic PPA-CF@300HS.json" + "name": "Generic PPA-CF @Tiertime 300HS", + "sub_path": "filament/Generic PPA-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PPA-GF", - "sub_path": "filament/Tiertime Generic PPA-GF.json" + "name": "Generic PPA-GF @Tiertime", + "sub_path": "filament/Generic PPA-GF @Tiertime.json" }, { - "name": "Tiertime Generic PPA-GF@300HS", - "sub_path": "filament/Tiertime Generic PPA-GF@300HS.json" + "name": "Generic PPA-GF @Tiertime 300HS", + "sub_path": "filament/Generic PPA-GF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PPS", - "sub_path": "filament/Tiertime Generic PPS.json" + "name": "Generic PPS @Tiertime", + "sub_path": "filament/Generic PPS @Tiertime.json" }, { - "name": "Tiertime Generic PPS-CF", - "sub_path": "filament/Tiertime Generic PPS-CF.json" + "name": "Generic PPS-CF @Tiertime", + "sub_path": "filament/Generic PPS-CF @Tiertime.json" }, { - "name": "Tiertime Generic PPS-CF@300HS", - "sub_path": "filament/Tiertime Generic PPS-CF@300HS.json" + "name": "Generic PPS-CF @Tiertime 300HS", + "sub_path": "filament/Generic PPS-CF @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PPS@300HS", - "sub_path": "filament/Tiertime Generic PPS@300HS.json" + "name": "Generic PPS @Tiertime 300HS", + "sub_path": "filament/Generic PPS @Tiertime 300HS.json" }, { - "name": "Tiertime Generic PVA", - "sub_path": "filament/Tiertime Generic PVA.json" + "name": "Generic PVA @Tiertime", + "sub_path": "filament/Generic PVA @Tiertime.json" }, { - "name": "Tiertime Generic PVA@300HS", - "sub_path": "filament/Tiertime Generic PVA@300HS.json" + "name": "Generic PVA @Tiertime 300HS", + "sub_path": "filament/Generic PVA @Tiertime 300HS.json" }, { "name": "Tiertime PVA", @@ -641,20 +641,20 @@ "sub_path": "filament/Tiertime PVA@300HS.json" }, { - "name": "Tiertime Generic SBS", - "sub_path": "filament/Tiertime Generic SBS.json" + "name": "Generic SBS @Tiertime", + "sub_path": "filament/Generic SBS @Tiertime.json" }, { - "name": "Tiertime Generic SBS@300HS", - "sub_path": "filament/Tiertime Generic SBS@300HS.json" + "name": "Generic SBS @Tiertime 300HS", + "sub_path": "filament/Generic SBS @Tiertime 300HS.json" }, { - "name": "Tiertime Generic TPU", - "sub_path": "filament/Tiertime Generic TPU.json" + "name": "Generic TPU @Tiertime", + "sub_path": "filament/Generic TPU @Tiertime.json" }, { - "name": "Tiertime Generic TPU@300HS", - "sub_path": "filament/Tiertime Generic TPU@300HS.json" + "name": "Generic TPU @Tiertime 300HS", + "sub_path": "filament/Generic TPU @Tiertime 300HS.json" }, { "name": "Tiertime TPU 95A", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json b/resources/profiles/Tiertime/filament/Generic ABS @Tiertime 300HS.json similarity index 77% rename from resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json rename to resources/profiles/Tiertime/filament/Generic ABS @Tiertime 300HS.json index efd49d6b20..e9d7aca6fc 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ABS@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic ABS @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic ABS@300HS", + "name": "Generic ABS @Tiertime 300HS", "inherits": "fdm_filament_abs", + "renamed_from": "Tiertime Generic ABS@300HS;Tiertime Generic ABS300HS", "from": "system", - "setting_id": "tCw1f7MxFjxPr7Ci", - "filament_id": "OFNLXV8X", + "setting_id": "CDku986CRCZQpwu4", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json b/resources/profiles/Tiertime/filament/Generic ABS @Tiertime.json similarity index 81% rename from resources/profiles/Tiertime/filament/Tiertime Generic ABS.json rename to resources/profiles/Tiertime/filament/Generic ABS @Tiertime.json index 32cd14a523..7e8f606a6e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ABS.json +++ b/resources/profiles/Tiertime/filament/Generic ABS @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic ABS", + "name": "Generic ABS @Tiertime", "inherits": "fdm_filament_abs", + "renamed_from": "Tiertime Generic ABS", "from": "system", - "setting_id": "ImJ3Urgk3VVtwceI", - "filament_id": "OFNLXV8X", + "setting_id": "mDRlI9biZBn9sNlS", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json b/resources/profiles/Tiertime/filament/Generic ASA @Tiertime 300HS.json similarity index 74% rename from resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json rename to resources/profiles/Tiertime/filament/Generic ASA @Tiertime 300HS.json index 4962cc3046..adffa21725 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ASA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic ASA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic ASA@300HS", + "name": "Generic ASA @Tiertime 300HS", "inherits": "fdm_filament_asa", + "renamed_from": "Tiertime Generic ASA@300HS;Tiertime Generic ASA300HS", "from": "system", - "setting_id": "7C5PjCg1vmTQFXWO", - "filament_id": "OFUaVAdj", + "setting_id": "HLh2XxQuVOa86efy", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json b/resources/profiles/Tiertime/filament/Generic ASA @Tiertime.json similarity index 79% rename from resources/profiles/Tiertime/filament/Tiertime Generic ASA.json rename to resources/profiles/Tiertime/filament/Generic ASA @Tiertime.json index 614b3b3c19..1529e0f702 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic ASA.json +++ b/resources/profiles/Tiertime/filament/Generic ASA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic ASA", + "name": "Generic ASA @Tiertime", "inherits": "fdm_filament_asa", + "renamed_from": "Tiertime Generic ASA", "from": "system", - "setting_id": "T1AzUXSewNk5Bj3x", - "filament_id": "OFUaVAdj", + "setting_id": "kGrTR0sC37w9Qi3b", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json b/resources/profiles/Tiertime/filament/Generic BVOH @Tiertime 300HS.json similarity index 59% rename from resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json rename to resources/profiles/Tiertime/filament/Generic BVOH @Tiertime 300HS.json index 124749396e..9db52386cb 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic BVOH @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic BVOH@300HS", + "name": "Generic BVOH @Tiertime 300HS", "inherits": "fdm_filament_bvoh", + "renamed_from": "Tiertime Generic BVOH@300HS;Tiertime Generic BVOH300HS", "from": "system", - "setting_id": "xfFXVyGfmXiu508N", - "filament_id": "OFGDaEHO", + "setting_id": "aCtg07TUbh6I9XPo", + "filament_id": "OFo2UF2C", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json b/resources/profiles/Tiertime/filament/Generic BVOH @Tiertime.json similarity index 66% rename from resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json rename to resources/profiles/Tiertime/filament/Generic BVOH @Tiertime.json index 76918d2c91..fd6e2a529f 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic BVOH.json +++ b/resources/profiles/Tiertime/filament/Generic BVOH @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic BVOH", + "name": "Generic BVOH @Tiertime", "inherits": "fdm_filament_bvoh", + "renamed_from": "Tiertime Generic BVOH", "from": "system", - "setting_id": "dhrpnirMnet0hJZl", - "filament_id": "OFGDaEHO", + "setting_id": "b642QISGuDZ18fQ8", + "filament_id": "OFo2UF2C", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json b/resources/profiles/Tiertime/filament/Generic EVA @Tiertime 300HS.json similarity index 91% rename from resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json rename to resources/profiles/Tiertime/filament/Generic EVA @Tiertime 300HS.json index ff107a65fb..f066563e4c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic EVA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic EVA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic EVA@300HS", + "name": "Generic EVA @Tiertime 300HS", "inherits": "fdm_filament_eva", + "renamed_from": "Tiertime Generic EVA@300HS;Tiertime Generic EVA300HS", "from": "system", - "setting_id": "pXuh92Zf1zPiaDXg", - "filament_id": "OFrnJJEa", + "setting_id": "q5f3UKuj7KOtiNkH", + "filament_id": "OFCD8qiU", "instantiation": "true", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json b/resources/profiles/Tiertime/filament/Generic EVA @Tiertime.json similarity index 93% rename from resources/profiles/Tiertime/filament/Tiertime Generic EVA.json rename to resources/profiles/Tiertime/filament/Generic EVA @Tiertime.json index 6d9851fb73..ec49722cae 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic EVA.json +++ b/resources/profiles/Tiertime/filament/Generic EVA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic EVA", + "name": "Generic EVA @Tiertime", "inherits": "fdm_filament_eva", + "renamed_from": "Tiertime Generic EVA", "from": "system", - "setting_id": "ev5w69eBuTCYXB2d", - "filament_id": "OFrnJJEa", + "setting_id": "NTY4MeZtxt16HNAV", + "filament_id": "OFCD8qiU", "instantiation": "true", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json b/resources/profiles/Tiertime/filament/Generic HIPS @Tiertime 300HS.json similarity index 62% rename from resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json rename to resources/profiles/Tiertime/filament/Generic HIPS @Tiertime 300HS.json index 932b1e3239..8eaa300930 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic HIPS @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic HIPS@300HS", + "name": "Generic HIPS @Tiertime 300HS", "inherits": "fdm_filament_hips", + "renamed_from": "Tiertime Generic HIPS@300HS;Tiertime Generic HIPS300HS", "from": "system", - "setting_id": "9epHDviPNHRB5bPD", - "filament_id": "OFW9uIkE", + "setting_id": "ee157A7VEkDzMh61", + "filament_id": "OFsFon5l", "instantiation": "true", "filament_is_support": [ "1" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json b/resources/profiles/Tiertime/filament/Generic HIPS @Tiertime.json similarity index 68% rename from resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json rename to resources/profiles/Tiertime/filament/Generic HIPS @Tiertime.json index 54e9d60fbd..519e690ed6 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic HIPS.json +++ b/resources/profiles/Tiertime/filament/Generic HIPS @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic HIPS", + "name": "Generic HIPS @Tiertime", "inherits": "fdm_filament_hips", + "renamed_from": "Tiertime Generic HIPS", "from": "system", - "setting_id": "sFY2AyXFzAFuj6sv", - "filament_id": "OFW9uIkE", + "setting_id": "3Vm99hmTMTFPKNGk", + "filament_id": "OFsFon5l", "instantiation": "true", "filament_is_support": [ "1" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json b/resources/profiles/Tiertime/filament/Generic PA @Tiertime 300HS.json similarity index 82% rename from resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json rename to resources/profiles/Tiertime/filament/Generic PA @Tiertime 300HS.json index 7ef4871120..3c97aa11a7 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PA@300HS", + "name": "Generic PA @Tiertime 300HS", "inherits": "fdm_filament_pa", + "renamed_from": "Tiertime Generic PA@300HS;Tiertime Generic PA300HS", "from": "system", - "filament_id": "OFQswlnF", - "setting_id": "ERn1WYMiSjs6a82N", + "filament_id": "OFg8ndtj", + "setting_id": "yGD1puWjH2QFacXJ", "instantiation": "true", "chamber_temperatures": [ "60" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA.json b/resources/profiles/Tiertime/filament/Generic PA @Tiertime.json similarity index 85% rename from resources/profiles/Tiertime/filament/Tiertime Generic PA.json rename to resources/profiles/Tiertime/filament/Generic PA @Tiertime.json index 4f9e45d05e..1ff338b317 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA.json +++ b/resources/profiles/Tiertime/filament/Generic PA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PA", + "name": "Generic PA @Tiertime", "inherits": "fdm_filament_pa", + "renamed_from": "Tiertime Generic PA", "from": "system", - "filament_id": "OFQswlnF", - "setting_id": "DmP33sDwKcBDRmDK", + "filament_id": "OFg8ndtj", + "setting_id": "u37BwUzY2vt6zqjd", "instantiation": "true", "chamber_temperatures": [ "60" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime 300HS.json similarity index 75% rename from resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime 300HS.json index b49c63ab92..3feade702d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PA-CF@300HS", + "name": "Generic PA-CF @Tiertime 300HS", "inherits": "fdm_filament_pa", + "renamed_from": "Tiertime Generic PA-CF@300HS;Tiertime Generic PA-CF300HS", "from": "system", - "filament_id": "OFHa3RZT", - "setting_id": "nRxvUKo1YXE8daoX", + "filament_id": "OFQLcbps", + "setting_id": "nZprcLHiLIAKvqtu", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json b/resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime.json similarity index 79% rename from resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json rename to resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime.json index 22b8edb633..fe57cb7806 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PA-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PA-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PA-CF", + "name": "Generic PA-CF @Tiertime", "inherits": "fdm_filament_pa", + "renamed_from": "Tiertime Generic PA-CF", "from": "system", - "filament_id": "OFHa3RZT", - "setting_id": "DOWYicvaXaTMfzBU", + "filament_id": "OFQLcbps", + "setting_id": "1oq9XQtCUcV9wGYV", "instantiation": "true", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json b/resources/profiles/Tiertime/filament/Generic PC @Tiertime 300HS.json similarity index 67% rename from resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json rename to resources/profiles/Tiertime/filament/Generic PC @Tiertime 300HS.json index 86c506902c..591d1c9208 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PC@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PC @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PC@300HS", + "name": "Generic PC @Tiertime 300HS", "inherits": "fdm_filament_pc", + "renamed_from": "Tiertime Generic PC@300HS;Tiertime Generic PC300HS", "from": "system", - "setting_id": "i2ShskYbiq61UJ1B", - "filament_id": "OFN7aNHe", + "setting_id": "cqm5YuWHhzXdvE0M", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PC.json b/resources/profiles/Tiertime/filament/Generic PC @Tiertime.json similarity index 72% rename from resources/profiles/Tiertime/filament/Tiertime Generic PC.json rename to resources/profiles/Tiertime/filament/Generic PC @Tiertime.json index 264fe0fc03..8c36c18828 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PC.json +++ b/resources/profiles/Tiertime/filament/Generic PC @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PC", + "name": "Generic PC @Tiertime", "inherits": "fdm_filament_pc", + "renamed_from": "Tiertime Generic PC", "from": "system", - "setting_id": "5wzlA0sFj2xElixU", - "filament_id": "OFN7aNHe", + "setting_id": "ILOqHUkf5W9fcRic", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "16" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json b/resources/profiles/Tiertime/filament/Generic PCTG @Tiertime 300HS.json similarity index 89% rename from resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json rename to resources/profiles/Tiertime/filament/Generic PCTG @Tiertime 300HS.json index 86d034aa24..25eb1b1b76 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PCTG @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PCTG@300HS", + "name": "Generic PCTG @Tiertime 300HS", "inherits": "fdm_filament_pctg", + "renamed_from": "Tiertime Generic PCTG@300HS;Tiertime Generic PCTG300HS", "from": "system", - "setting_id": "2Qbbi90zWBoo9dBl", - "filament_id": "OFTKFAZ4", + "setting_id": "1VNFGuUO3KSO6Yfr", + "filament_id": "OFu1evlr", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json b/resources/profiles/Tiertime/filament/Generic PCTG @Tiertime.json similarity index 91% rename from resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json rename to resources/profiles/Tiertime/filament/Generic PCTG @Tiertime.json index 49c71cc115..4d091cde32 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PCTG.json +++ b/resources/profiles/Tiertime/filament/Generic PCTG @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PCTG", + "name": "Generic PCTG @Tiertime", "inherits": "fdm_filament_pctg", + "renamed_from": "Tiertime Generic PCTG", "from": "system", - "setting_id": "UDqS8gFlHvPIysFk", - "filament_id": "OFTKFAZ4", + "setting_id": "tJIMGMxg0hRSfL95", + "filament_id": "OFu1evlr", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json b/resources/profiles/Tiertime/filament/Generic PE @Tiertime 300HS.json similarity index 87% rename from resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json rename to resources/profiles/Tiertime/filament/Generic PE @Tiertime 300HS.json index 4e6aab9e87..a1fa9c5859 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PE @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PE@300HS", + "name": "Generic PE @Tiertime 300HS", "inherits": "fdm_filament_pe", + "renamed_from": "Tiertime Generic PE@300HS;Tiertime Generic PE300HS", "from": "system", - "setting_id": "ZbU3Ov0P5wtbudQ0", - "filament_id": "OFKuTr12", + "setting_id": "CO9KWZrfkTYBnB4X", + "filament_id": "OFPklMI1", "instantiation": "true", "filament_cost": [ "40.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE.json b/resources/profiles/Tiertime/filament/Generic PE @Tiertime.json similarity index 89% rename from resources/profiles/Tiertime/filament/Tiertime Generic PE.json rename to resources/profiles/Tiertime/filament/Generic PE @Tiertime.json index 0c9504212c..0684af67d8 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE.json +++ b/resources/profiles/Tiertime/filament/Generic PE @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PE", + "name": "Generic PE @Tiertime", "inherits": "fdm_filament_pe", + "renamed_from": "Tiertime Generic PE", "from": "system", - "setting_id": "bYC8MPsm3VIgwaSt", - "filament_id": "OFKuTr12", + "setting_id": "2U06Qrlxin8nLr9s", + "filament_id": "OFPklMI1", "instantiation": "true", "filament_cost": [ "40.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime 300HS.json similarity index 86% rename from resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime 300HS.json index 94686b9139..11a6680550 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PE-CF@300HS", + "name": "Generic PE-CF @Tiertime 300HS", "inherits": "fdm_filament_pe", + "renamed_from": "Tiertime Generic PE-CF@300HS;Tiertime Generic PE-CF300HS", "from": "system", - "setting_id": "5ChSjqNjRn8QArJP", - "filament_id": "OFkUaDnU", + "setting_id": "512vfRIxs8uwOBpP", + "filament_id": "OFd0Fv0k", "instantiation": "true", "filament_cost": [ "65.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json b/resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime.json similarity index 89% rename from resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json rename to resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime.json index dc20a657b0..ecc5a74d8c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PE-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PE-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PE-CF", + "name": "Generic PE-CF @Tiertime", "inherits": "fdm_filament_pe", + "renamed_from": "Tiertime Generic PE-CF", "from": "system", - "setting_id": "jzT1pay155tbaY9M", - "filament_id": "OFkUaDnU", + "setting_id": "QWIMNxCCZ9URxMjo", + "filament_id": "OFd0Fv0k", "instantiation": "true", "filament_cost": [ "65.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json b/resources/profiles/Tiertime/filament/Generic PETG @Tiertime 300HS.json similarity index 88% rename from resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json rename to resources/profiles/Tiertime/filament/Generic PETG @Tiertime 300HS.json index 56157be9e7..e65d53bc71 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PETG @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PETG@300HS", + "name": "Generic PETG @Tiertime 300HS", "inherits": "fdm_filament_pet", + "renamed_from": "Tiertime Generic PETG@300HS;Tiertime Generic PETG300HS", "from": "system", - "setting_id": "ZZmmVicb1p0wb5r1", - "filament_id": "OF1uR1t2", + "setting_id": "btlSAAZFdFgnfIqh", + "filament_id": "OFYPdQJh", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json b/resources/profiles/Tiertime/filament/Generic PETG @Tiertime.json similarity index 91% rename from resources/profiles/Tiertime/filament/Tiertime Generic PETG.json rename to resources/profiles/Tiertime/filament/Generic PETG @Tiertime.json index 6d15c90d59..cdf4a2ba88 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG.json +++ b/resources/profiles/Tiertime/filament/Generic PETG @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PETG", + "name": "Generic PETG @Tiertime", "inherits": "fdm_filament_pet", + "renamed_from": "Tiertime Generic PETG", "from": "system", - "setting_id": "UevLlG43knAdcET2", - "filament_id": "OF1uR1t2", + "setting_id": "JwdH78YQ3v5XxsIq", + "filament_id": "OFYPdQJh", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime 300HS.json similarity index 89% rename from resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime 300HS.json index ed4c4d9347..2193ee85fe 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PETG-CF@300HS", + "name": "Generic PETG-CF @Tiertime 300HS", "inherits": "fdm_filament_pet", + "renamed_from": "Tiertime Generic PETG-CF@300HS;Tiertime Generic PETG-CF300HS", "from": "system", - "setting_id": "jBUy8xUDg53e51kz", - "filament_id": "OFWadebJ", + "setting_id": "pnBek08LG30iqOmr", + "filament_id": "OFoYSJKi", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json b/resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime.json similarity index 91% rename from resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json rename to resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime.json index 32ab191cc2..42b67f2c6d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PETG-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PETG-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PETG-CF", + "name": "Generic PETG-CF @Tiertime", "inherits": "fdm_filament_pet", + "renamed_from": "Tiertime Generic PETG-CF", "from": "system", - "setting_id": "zA6nHgNkxBxGKw0w", - "filament_id": "OFWadebJ", + "setting_id": "97ZKNZS7uHaNzgLJ", + "filament_id": "OFoYSJKi", "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json b/resources/profiles/Tiertime/filament/Generic PHA @Tiertime 300HS.json similarity index 60% rename from resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json rename to resources/profiles/Tiertime/filament/Generic PHA @Tiertime 300HS.json index 7c2deb0b12..d7d10eedfc 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PHA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PHA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PHA@300HS", + "name": "Generic PHA @Tiertime 300HS", "inherits": "fdm_filament_pha", + "renamed_from": "Tiertime Generic PHA@300HS;Tiertime Generic PHA300HS", "from": "system", - "setting_id": "de5eveMr3bI3OCtF", - "filament_id": "OFxvKuYW", + "setting_id": "cdIDNHr9YR5p1gQx", + "filament_id": "OF74KeQR", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json b/resources/profiles/Tiertime/filament/Generic PHA @Tiertime.json similarity index 66% rename from resources/profiles/Tiertime/filament/Tiertime Generic PHA.json rename to resources/profiles/Tiertime/filament/Generic PHA @Tiertime.json index d924c5d28b..f0565e38a2 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PHA.json +++ b/resources/profiles/Tiertime/filament/Generic PHA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PHA", + "name": "Generic PHA @Tiertime", "inherits": "fdm_filament_pha", + "renamed_from": "Tiertime Generic PHA", "from": "system", - "setting_id": "tFuE7IEbeGEhCNnz", - "filament_id": "OFxvKuYW", + "setting_id": "GvzA9Y6mP5a767Qb", + "filament_id": "OF74KeQR", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json b/resources/profiles/Tiertime/filament/Generic PLA @Tiertime 300HS.json similarity index 82% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json rename to resources/profiles/Tiertime/filament/Generic PLA @Tiertime 300HS.json index 3fe56ea2e0..58c56fee5d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PLA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA@300HS", + "name": "Generic PLA @Tiertime 300HS", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA@300HS;Tiertime Generic PLA300HS", "from": "system", - "setting_id": "jTSVVOuHuQqETOpe", - "filament_id": "OFuSwKgm", + "setting_id": "VdXotPCaBzW0DswJ", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json b/resources/profiles/Tiertime/filament/Generic PLA @Tiertime.json similarity index 85% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA.json rename to resources/profiles/Tiertime/filament/Generic PLA @Tiertime.json index ea77ef41e3..5f8aaf4229 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA.json +++ b/resources/profiles/Tiertime/filament/Generic PLA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA", + "name": "Generic PLA @Tiertime", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA", "from": "system", - "setting_id": "q9W1goEbw6UUrNY3", - "filament_id": "OFuSwKgm", + "setting_id": "RuyaWPyP41WHbU7p", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json b/resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime 300HS.json similarity index 65% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json rename to resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime 300HS.json index 5814210aee..779cc6ca4e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA High Speed@300HS", + "name": "Generic PLA High Speed @Tiertime 300HS", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA High Speed@300HS;Tiertime Generic PLA High Speed300HS", "from": "system", - "setting_id": "e0vVCCT6Tw4061is", - "filament_id": "OFodPDxO", + "setting_id": "cDQTrE11kyvmtj6l", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json b/resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime.json similarity index 71% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json rename to resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime.json index bda1527d04..c88496b0e6 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA High Speed.json +++ b/resources/profiles/Tiertime/filament/Generic PLA High Speed @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA High Speed", + "name": "Generic PLA High Speed @Tiertime", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA High Speed", "from": "system", - "setting_id": "Ms3c6DePE0cjBeQ4", - "filament_id": "OFodPDxO", + "setting_id": "HFwoDRXx0L72uTKc", + "filament_id": "OFmpMwxS", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json b/resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime 300HS.json similarity index 82% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json rename to resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime 300HS.json index b4fafb3019..ba4745b50c 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA Silk@300HS", + "name": "Generic PLA Silk @Tiertime 300HS", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA Silk@300HS;Tiertime Generic PLA Silk300HS", "from": "system", - "setting_id": "yV358AeiALOn6xVr", - "filament_id": "OF0GIkJm", + "setting_id": "pXFxVcPY3aVixOKU", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json b/resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime.json similarity index 86% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json rename to resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime.json index 88b0e6a700..a2cbb3f4c4 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA Silk.json +++ b/resources/profiles/Tiertime/filament/Generic PLA Silk @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA Silk", + "name": "Generic PLA Silk @Tiertime", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA Silk", "from": "system", - "setting_id": "RgKM4PxtAasidTe5", - "filament_id": "OF0GIkJm", + "setting_id": "5R7nTGblzuEWfdog", + "filament_id": "OFesA6rF", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime 300HS.json similarity index 88% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime 300HS.json index 4cb7802847..d4ceebf2db 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA-CF@300HS", + "name": "Generic PLA-CF @Tiertime 300HS", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA-CF@300HS;Tiertime Generic PLA-CF300HS", "from": "system", - "setting_id": "3QSGv6pAz9ihFVuD", - "filament_id": "OFgVJhVt", + "setting_id": "CVks3a5cABQw38Ia", + "filament_id": "OFWbdGsC", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json b/resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime.json similarity index 90% rename from resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json rename to resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime.json index ff1c8b14ee..306ff427aa 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PLA-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PLA-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PLA-CF", + "name": "Generic PLA-CF @Tiertime", "inherits": "fdm_filament_pla", + "renamed_from": "Tiertime Generic PLA-CF", "from": "system", - "setting_id": "maM4lXic0F10faAb", - "filament_id": "OFgVJhVt", + "setting_id": "SSHFL8Wbk46BaTYF", + "filament_id": "OFWbdGsC", "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json b/resources/profiles/Tiertime/filament/Generic PP @Tiertime 300HS.json similarity index 60% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json rename to resources/profiles/Tiertime/filament/Generic PP @Tiertime 300HS.json index b908fe1011..b79c34b466 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PP @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP@300HS", + "name": "Generic PP @Tiertime 300HS", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP@300HS;Tiertime Generic PP300HS", "from": "system", - "setting_id": "lx9zoOh3ALDlLasf", - "filament_id": "OF3s929u", + "setting_id": "BmIuSlyYKMw76mqs", + "filament_id": "OF1UNk9P", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP.json b/resources/profiles/Tiertime/filament/Generic PP @Tiertime.json similarity index 66% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP.json rename to resources/profiles/Tiertime/filament/Generic PP @Tiertime.json index bef2a0ee16..0b7361dc78 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP.json +++ b/resources/profiles/Tiertime/filament/Generic PP @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP", + "name": "Generic PP @Tiertime", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP", "from": "system", - "setting_id": "3ZYx92CbNBiocyXx", - "filament_id": "OF3s929u", + "setting_id": "hbt3RXCxomod1cBQ", + "filament_id": "OF1UNk9P", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime 300HS.json similarity index 69% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime 300HS.json index 15c4591f98..e5a08307fa 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP-CF@300HS", + "name": "Generic PP-CF @Tiertime 300HS", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP-CF@300HS;Tiertime Generic PP-CF300HS", "from": "system", - "setting_id": "3TZu7e58qrjP4F4u", - "filament_id": "OFMTBcnz", + "setting_id": "u1Sqh9bCLFQvJxoS", + "filament_id": "OFXkm8q1", "instantiation": "true", "filament_cost": [ "77.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json b/resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime.json similarity index 74% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json rename to resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime.json index 22cd19292d..4c8abaa8ce 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PP-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP-CF", + "name": "Generic PP-CF @Tiertime", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP-CF", "from": "system", - "setting_id": "O5VvyfY5CV6IfMPQ", - "filament_id": "OFMTBcnz", + "setting_id": "2giqoHCbRKiAuTyB", + "filament_id": "OFXkm8q1", "instantiation": "true", "filament_cost": [ "77.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json b/resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime 300HS.json similarity index 69% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime 300HS.json index bac285fef0..820f415b25 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP-GF@300HS", + "name": "Generic PP-GF @Tiertime 300HS", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP-GF@300HS;Tiertime Generic PP-GF300HS", "from": "system", - "setting_id": "WKwUmsEhhYFyGAP5", - "filament_id": "OFkYkQGO", + "setting_id": "Aiw0kkL0EFLNZ0zB", + "filament_id": "OFsijjtH", "instantiation": "true", "filament_cost": [ "59.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json b/resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime.json similarity index 74% rename from resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json rename to resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime.json index 44557aed47..930f2d7870 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PP-GF.json +++ b/resources/profiles/Tiertime/filament/Generic PP-GF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PP-GF", + "name": "Generic PP-GF @Tiertime", "inherits": "fdm_filament_pp", + "renamed_from": "Tiertime Generic PP-GF", "from": "system", - "setting_id": "ZQnzXtnTMVMVMNaS", - "filament_id": "OFkYkQGO", + "setting_id": "HQaX19e4JViPTQn0", + "filament_id": "OFsijjtH", "instantiation": "true", "filament_cost": [ "59.99" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime 300HS.json similarity index 69% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime 300HS.json index 918b4cf1a8..6402b8a7c9 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPA-CF@300HS", + "name": "Generic PPA-CF @Tiertime 300HS", "inherits": "fdm_filament_ppa", + "renamed_from": "Tiertime Generic PPA-CF@300HS;Tiertime Generic PPA-CF300HS", "from": "system", - "setting_id": "wLH8aGr4ZNiHazwA", - "filament_id": "OFSPdsuW", + "setting_id": "yEjRoG6UAmEBAsTg", + "filament_id": "OF8tPByX", "instantiation": "true", "filament_type": [ "PPA-CF" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json b/resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime.json similarity index 74% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json rename to resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime.json index 924f324eb4..845cd1f1f3 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PPA-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPA-CF", + "name": "Generic PPA-CF @Tiertime", "inherits": "fdm_filament_ppa", + "renamed_from": "Tiertime Generic PPA-CF", "from": "system", - "setting_id": "2zYiuKYR7bESaCnd", - "filament_id": "OFSPdsuW", + "setting_id": "C3VjtPXIQ9CikaQH", + "filament_id": "OF8tPByX", "instantiation": "true", "filament_type": [ "PPA-CF" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json b/resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime 300HS.json similarity index 65% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime 300HS.json index dbc3c9ebf3..75a81d0aff 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPA-GF@300HS", + "name": "Generic PPA-GF @Tiertime 300HS", "inherits": "fdm_filament_ppa", + "renamed_from": "Tiertime Generic PPA-GF@300HS;Tiertime Generic PPA-GF300HS", "from": "system", - "setting_id": "1zAhSxsuv3wxgBtQ", - "filament_id": "OFptvi3F", + "setting_id": "9088HrpGRDIqqxTs", + "filament_id": "OF8Tlg47", "instantiation": "true", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json b/resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime.json similarity index 70% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json rename to resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime.json index e84a1c4bb9..7ec50bd2f4 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPA-GF.json +++ b/resources/profiles/Tiertime/filament/Generic PPA-GF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPA-GF", + "name": "Generic PPA-GF @Tiertime", "inherits": "fdm_filament_ppa", + "renamed_from": "Tiertime Generic PPA-GF", "from": "system", - "setting_id": "hYkZEmk1B8X9EcF8", - "filament_id": "OFptvi3F", + "setting_id": "jGP0en9vTFNmj5AJ", + "filament_id": "OF8Tlg47", "instantiation": "true", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json b/resources/profiles/Tiertime/filament/Generic PPS @Tiertime 300HS.json similarity index 60% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json rename to resources/profiles/Tiertime/filament/Generic PPS @Tiertime 300HS.json index 047117502e..bd804b9ffc 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PPS @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPS@300HS", + "name": "Generic PPS @Tiertime 300HS", "inherits": "fdm_filament_pps", + "renamed_from": "Tiertime Generic PPS@300HS;Tiertime Generic PPS300HS", "from": "system", - "setting_id": "5TZhbLxtLq6kSJJY", - "filament_id": "OFvPomQf", + "setting_id": "KIspUdArMQzvDtcX", + "filament_id": "OFq9svOz", "instantiation": "true", "compatible_printers": [ "Tiertime UP300 HS 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json b/resources/profiles/Tiertime/filament/Generic PPS @Tiertime.json similarity index 66% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPS.json rename to resources/profiles/Tiertime/filament/Generic PPS @Tiertime.json index 77fe993cdb..dbb381012e 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS.json +++ b/resources/profiles/Tiertime/filament/Generic PPS @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPS", + "name": "Generic PPS @Tiertime", "inherits": "fdm_filament_pps", + "renamed_from": "Tiertime Generic PPS", "from": "system", - "setting_id": "2L1eOtxSeCJxW3RV", - "filament_id": "OFvPomQf", + "setting_id": "NCTW11dGCzTxasjU", + "filament_id": "OFq9svOz", "instantiation": "true", "compatible_printers": [ "Tiertime UP400 Pro 0.4 nozzle", diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json b/resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime 300HS.json similarity index 74% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json rename to resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime 300HS.json index cd3e802975..f53a77c9c6 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPS-CF@300HS", + "name": "Generic PPS-CF @Tiertime 300HS", "inherits": "fdm_filament_pps", + "renamed_from": "Tiertime Generic PPS-CF@300HS;Tiertime Generic PPS-CF300HS", "from": "system", - "setting_id": "6UHEejfZvhQGA4vB", - "filament_id": "OFGzUNbm", + "setting_id": "E7mVBEFECdf1mhXE", + "filament_id": "OF6rdQ6M", "instantiation": "true", "fan_max_speed": [ "30" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json b/resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime.json similarity index 79% rename from resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json rename to resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime.json index 8a8485843c..3e4e15da7d 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PPS-CF.json +++ b/resources/profiles/Tiertime/filament/Generic PPS-CF @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PPS-CF", + "name": "Generic PPS-CF @Tiertime", "inherits": "fdm_filament_pps", + "renamed_from": "Tiertime Generic PPS-CF", "from": "system", - "setting_id": "E0gbADj0OHkGSOxt", - "filament_id": "OFGzUNbm", + "setting_id": "QUPOb7dBkg6bPul2", + "filament_id": "OF6rdQ6M", "instantiation": "true", "fan_max_speed": [ "30" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json b/resources/profiles/Tiertime/filament/Generic PVA @Tiertime 300HS.json similarity index 70% rename from resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json rename to resources/profiles/Tiertime/filament/Generic PVA @Tiertime 300HS.json index d1a5b62d7d..2efe590fb6 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PVA@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic PVA @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PVA@300HS", + "name": "Generic PVA @Tiertime 300HS", "inherits": "fdm_filament_pva", + "renamed_from": "Tiertime Generic PVA@300HS;Tiertime Generic PVA300HS", "from": "system", - "setting_id": "BQ6G75c9eLQQ7ULg", - "filament_id": "OFMZAoqa", + "setting_id": "E8fgXFvjTnIpqdrg", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json b/resources/profiles/Tiertime/filament/Generic PVA @Tiertime.json similarity index 75% rename from resources/profiles/Tiertime/filament/Tiertime Generic PVA.json rename to resources/profiles/Tiertime/filament/Generic PVA @Tiertime.json index db73f4b947..588648b8b0 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic PVA.json +++ b/resources/profiles/Tiertime/filament/Generic PVA @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic PVA", + "name": "Generic PVA @Tiertime", "inherits": "fdm_filament_pva", + "renamed_from": "Tiertime Generic PVA", "from": "system", - "setting_id": "bTkxwDd1TU8TUqVC", - "filament_id": "OFMZAoqa", + "setting_id": "6R2BduAh4ASmGbDd", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json b/resources/profiles/Tiertime/filament/Generic SBS @Tiertime 300HS.json similarity index 82% rename from resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json rename to resources/profiles/Tiertime/filament/Generic SBS @Tiertime 300HS.json index df8a4d7cbe..f3860b4e64 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic SBS @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic SBS@300HS", + "name": "Generic SBS @Tiertime 300HS", "inherits": "fdm_filament_sbs", + "renamed_from": "Tiertime Generic SBS@300HS;Tiertime Generic SBS300HS", "from": "system", - "setting_id": "neqjohDEPRiOa6ut", - "filament_id": "OFM87w9T", + "setting_id": "nS6aGQgepNoAjumo", + "filament_id": "OFhQfUQY", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json b/resources/profiles/Tiertime/filament/Generic SBS @Tiertime.json similarity index 85% rename from resources/profiles/Tiertime/filament/Tiertime Generic SBS.json rename to resources/profiles/Tiertime/filament/Generic SBS @Tiertime.json index ab91c462d0..7c4751aa34 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic SBS.json +++ b/resources/profiles/Tiertime/filament/Generic SBS @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic SBS", + "name": "Generic SBS @Tiertime", "inherits": "fdm_filament_sbs", + "renamed_from": "Tiertime Generic SBS", "from": "system", - "setting_id": "tHfCQJdD7qiIF4uT", - "filament_id": "OFM87w9T", + "setting_id": "nyv523sDXK9fDbtb", + "filament_id": "OFhQfUQY", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json b/resources/profiles/Tiertime/filament/Generic TPU @Tiertime 300HS.json similarity index 81% rename from resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json rename to resources/profiles/Tiertime/filament/Generic TPU @Tiertime 300HS.json index d1c8e5ba35..2d52d479d3 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic TPU@300HS.json +++ b/resources/profiles/Tiertime/filament/Generic TPU @Tiertime 300HS.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic TPU@300HS", + "name": "Generic TPU @Tiertime 300HS", "inherits": "fdm_filament_tpu", + "renamed_from": "Tiertime Generic TPU@300HS;Tiertime Generic TPU300HS", "from": "system", - "filament_id": "OFCVUEaV", - "setting_id": "wgOtq6REuUQmNe5R", + "filament_id": "OFgbpcy9", + "setting_id": "99UYNDy3zV3bChRG", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json b/resources/profiles/Tiertime/filament/Generic TPU @Tiertime.json similarity index 84% rename from resources/profiles/Tiertime/filament/Tiertime Generic TPU.json rename to resources/profiles/Tiertime/filament/Generic TPU @Tiertime.json index 0ecd0d9636..a32f1173dc 100644 --- a/resources/profiles/Tiertime/filament/Tiertime Generic TPU.json +++ b/resources/profiles/Tiertime/filament/Generic TPU @Tiertime.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Tiertime Generic TPU", + "name": "Generic TPU @Tiertime", "inherits": "fdm_filament_tpu", + "renamed_from": "Tiertime Generic TPU", "from": "system", - "filament_id": "OFCVUEaV", - "setting_id": "Viy3kUE0cTV2rMiC", + "filament_id": "OFgbpcy9", + "setting_id": "UCowa7X5TZwXBJWe", "instantiation": "true", "filament_max_volumetric_speed": [ "3.2" diff --git a/resources/profiles/TwoTrees.json b/resources/profiles/TwoTrees.json index 7484f27416..5c8349181f 100644 --- a/resources/profiles/TwoTrees.json +++ b/resources/profiles/TwoTrees.json @@ -1,6 +1,6 @@ { "name": "TwoTrees", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "1", "description": "TwoTrees configurations", "machine_model_list": [ @@ -81,12 +81,12 @@ ], "filament_list": [ { - "name": "TwoTrees Generic 95A TPU @SK1", - "sub_path": "filament/TwoTrees Generic 95A TPU @SK1.json" + "name": "Generic 95A TPU @TwoTrees SK1", + "sub_path": "filament/Generic 95A TPU @TwoTrees SK1.json" }, { - "name": "TwoTrees Generic HS PLA @SK1", - "sub_path": "filament/TwoTrees Generic HS PLA @SK1.json" + "name": "Generic HS PLA @TwoTrees SK1", + "sub_path": "filament/Generic HS PLA @TwoTrees SK1.json" } ], "machine_list": [ diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json b/resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json similarity index 74% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json rename to resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json index 72564df29b..46b9d1f100 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic 95A TPU @SK1.json +++ b/resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "TwoTrees Generic 95A TPU @SK1", + "name": "Generic 95A TPU @TwoTrees SK1", "inherits": "fdm_filament_tpu", + "renamed_from": "TwoTrees Generic 95A TPU @SK1;TwoTrees Generic 95A TPU SK1", "from": "system", - "setting_id": "YqQSUrG195dCz67L", - "filament_id": "OFdHsxB4", + "setting_id": "LR7ufBEnGhieNdB7", + "filament_id": "OF6MMR8P", "instantiation": "true", "compatible_printers": [ "TwoTrees SK1 0.4 nozzle" diff --git a/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json b/resources/profiles/TwoTrees/filament/Generic HS PLA @TwoTrees SK1.json similarity index 83% rename from resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json rename to resources/profiles/TwoTrees/filament/Generic HS PLA @TwoTrees SK1.json index 1a7cef302e..fd22e6417a 100644 --- a/resources/profiles/TwoTrees/filament/TwoTrees Generic HS PLA @SK1.json +++ b/resources/profiles/TwoTrees/filament/Generic HS PLA @TwoTrees SK1.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "TwoTrees Generic HS PLA @SK1", + "name": "Generic HS PLA @TwoTrees SK1", "inherits": "fdm_filament_pla", + "renamed_from": "TwoTrees Generic HS PLA @SK1;TwoTrees Generic HS PLA SK1", "from": "system", - "setting_id": "k7bLC5us9mGJzznW", - "filament_id": "OFBpcB0a", + "setting_id": "uRS2QA3xad1lBZJR", + "filament_id": "OFvxghTE", "instantiation": "true", "compatible_printers": [ "TwoTrees SK1 0.4 nozzle" diff --git a/resources/profiles/TwoTrees/machine/TwoTrees SK1.json b/resources/profiles/TwoTrees/machine/TwoTrees SK1.json index fd32c01dcf..964d47c813 100644 --- a/resources/profiles/TwoTrees/machine/TwoTrees SK1.json +++ b/resources/profiles/TwoTrees/machine/TwoTrees SK1.json @@ -8,5 +8,5 @@ "bed_model": "TwoTrees SK1_buildplate_model.stl", "bed_texture": "TwoTrees SK1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "TwoTrees Generic 95A TPU @SK1;TwoTrees Generic PETG @SK1;TwoTrees Generic HS PLA @SK1;TwoTrees Generic PLA @SK1;TwoTrees Generic PLA-CF @SK1;TwoTrees Generic PLA Matte @SK1;TwoTrees Generic PLA Silk @SK1" + "default_materials": "Generic 95A TPU @TwoTrees SK1;TwoTrees Generic PETG @SK1;Generic HS PLA @TwoTrees SK1;TwoTrees Generic PLA @SK1;TwoTrees Generic PLA-CF @SK1;TwoTrees Generic PLA Matte @SK1;TwoTrees Generic PLA Silk @SK1" } diff --git a/resources/profiles/Vzbot.json b/resources/profiles/Vzbot.json index 12ec13402b..bcefdaf26c 100644 --- a/resources/profiles/Vzbot.json +++ b/resources/profiles/Vzbot.json @@ -1,6 +1,6 @@ { "name": "Vzbot", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Vzbot configurations", "machine_model_list": [ @@ -149,44 +149,44 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Vzbot Generic ABS", - "sub_path": "filament/Vzbot Generic ABS.json" + "name": "Generic ABS @Vzbot", + "sub_path": "filament/Generic ABS @Vzbot.json" }, { - "name": "Vzbot Generic ASA", - "sub_path": "filament/Vzbot Generic ASA.json" + "name": "Generic ASA @Vzbot", + "sub_path": "filament/Generic ASA @Vzbot.json" }, { - "name": "Vzbot Generic PA", - "sub_path": "filament/Vzbot Generic PA.json" + "name": "Generic PA @Vzbot", + "sub_path": "filament/Generic PA @Vzbot.json" }, { - "name": "Vzbot Generic PA-CF", - "sub_path": "filament/Vzbot Generic PA-CF.json" + "name": "Generic PA-CF @Vzbot", + "sub_path": "filament/Generic PA-CF @Vzbot.json" }, { - "name": "Vzbot Generic PC", - "sub_path": "filament/Vzbot Generic PC.json" + "name": "Generic PC @Vzbot", + "sub_path": "filament/Generic PC @Vzbot.json" }, { - "name": "Vzbot Generic PETG", - "sub_path": "filament/Vzbot Generic PETG.json" + "name": "Generic PETG @Vzbot", + "sub_path": "filament/Generic PETG @Vzbot.json" }, { - "name": "Vzbot Generic PLA", - "sub_path": "filament/Vzbot Generic PLA.json" + "name": "Generic PLA @Vzbot", + "sub_path": "filament/Generic PLA @Vzbot.json" }, { - "name": "Vzbot Generic PLA-CF", - "sub_path": "filament/Vzbot Generic PLA-CF.json" + "name": "Generic PLA-CF @Vzbot", + "sub_path": "filament/Generic PLA-CF @Vzbot.json" }, { - "name": "Vzbot Generic PVA", - "sub_path": "filament/Vzbot Generic PVA.json" + "name": "Generic PVA @Vzbot", + "sub_path": "filament/Generic PVA @Vzbot.json" }, { - "name": "Vzbot Generic TPU", - "sub_path": "filament/Vzbot Generic TPU.json" + "name": "Generic TPU @Vzbot", + "sub_path": "filament/Generic TPU @Vzbot.json" } ], "machine_list": [ diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json b/resources/profiles/Vzbot/filament/Generic ABS @Vzbot.json similarity index 75% rename from resources/profiles/Vzbot/filament/Vzbot Generic ABS.json rename to resources/profiles/Vzbot/filament/Generic ABS @Vzbot.json index 0ab07b4387..bc59bdfea7 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic ABS.json +++ b/resources/profiles/Vzbot/filament/Generic ABS @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic ABS", + "name": "Generic ABS @Vzbot", "inherits": "fdm_filament_abs", + "renamed_from": "Vzbot Generic ABS", "from": "system", - "setting_id": "nRFPlbSKRMb0UpSI", - "filament_id": "OFLBUkwC", + "setting_id": "0gr3MwdhoGW44mbr", + "filament_id": "OFY9muEs", "instantiation": "true", "filament_flow_ratio": [ "0.926" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json b/resources/profiles/Vzbot/filament/Generic ASA @Vzbot.json similarity index 75% rename from resources/profiles/Vzbot/filament/Vzbot Generic ASA.json rename to resources/profiles/Vzbot/filament/Generic ASA @Vzbot.json index 69ba1b7b5b..9495f5cb1e 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic ASA.json +++ b/resources/profiles/Vzbot/filament/Generic ASA @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic ASA", + "name": "Generic ASA @Vzbot", "inherits": "fdm_filament_asa", + "renamed_from": "Vzbot Generic ASA", "from": "system", - "setting_id": "rP4Qul9OY7lUhPgO", - "filament_id": "OF4XAUnp", + "setting_id": "0MutZpaR9XVzUGGS", + "filament_id": "OFLPAxz3", "instantiation": "true", "filament_flow_ratio": [ "0.93" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PA.json b/resources/profiles/Vzbot/filament/Generic PA @Vzbot.json similarity index 77% rename from resources/profiles/Vzbot/filament/Vzbot Generic PA.json rename to resources/profiles/Vzbot/filament/Generic PA @Vzbot.json index 46184d8018..a5e39c829c 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PA.json +++ b/resources/profiles/Vzbot/filament/Generic PA @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PA", + "name": "Generic PA @Vzbot", "inherits": "fdm_filament_pa", + "renamed_from": "Vzbot Generic PA", "from": "system", - "setting_id": "4CBO5MnUk8Smhs3q", - "filament_id": "OF0zx94L", + "setting_id": "fwiU6RaIAOV38A9B", + "filament_id": "OFg8ndtj", "instantiation": "true", "nozzle_temperature_initial_layer": [ "280" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json b/resources/profiles/Vzbot/filament/Generic PA-CF @Vzbot.json similarity index 77% rename from resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json rename to resources/profiles/Vzbot/filament/Generic PA-CF @Vzbot.json index 75ca6d6b52..30a13910e0 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PA-CF.json +++ b/resources/profiles/Vzbot/filament/Generic PA-CF @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PA-CF", + "name": "Generic PA-CF @Vzbot", "inherits": "fdm_filament_pa", + "renamed_from": "Vzbot Generic PA-CF", "from": "system", - "setting_id": "AKO1twNgFO67N5GK", - "filament_id": "OFNn21yM", + "setting_id": "q8DtJmdJUN3KFV3E", + "filament_id": "OFQLcbps", "instantiation": "true", "filament_type": [ "PA-CF" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PC.json b/resources/profiles/Vzbot/filament/Generic PC @Vzbot.json similarity index 75% rename from resources/profiles/Vzbot/filament/Vzbot Generic PC.json rename to resources/profiles/Vzbot/filament/Generic PC @Vzbot.json index 9731fbbe07..e2fecd6301 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PC.json +++ b/resources/profiles/Vzbot/filament/Generic PC @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PC", + "name": "Generic PC @Vzbot", "inherits": "fdm_filament_pc", + "renamed_from": "Vzbot Generic PC", "from": "system", - "setting_id": "wUe99Mr4HqzSNxgO", - "filament_id": "OF9fOPpd", + "setting_id": "crcoB7BvhVnnHNaF", + "filament_id": "OFLakOUI", "instantiation": "true", "filament_max_volumetric_speed": [ "50" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json b/resources/profiles/Vzbot/filament/Generic PETG @Vzbot.json similarity index 85% rename from resources/profiles/Vzbot/filament/Vzbot Generic PETG.json rename to resources/profiles/Vzbot/filament/Generic PETG @Vzbot.json index 0f585fbb8c..bfb1f5af81 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PETG.json +++ b/resources/profiles/Vzbot/filament/Generic PETG @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PETG", + "name": "Generic PETG @Vzbot", "inherits": "fdm_filament_pet", + "renamed_from": "Vzbot Generic PETG", "from": "system", - "setting_id": "C8LMRvN350POVqC2", - "filament_id": "OFHUnLY2", + "setting_id": "NInr0jEJnziZ1poM", + "filament_id": "OFYPdQJh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json b/resources/profiles/Vzbot/filament/Generic PLA @Vzbot.json similarity index 76% rename from resources/profiles/Vzbot/filament/Vzbot Generic PLA.json rename to resources/profiles/Vzbot/filament/Generic PLA @Vzbot.json index b0e447e66c..ee77c2fd61 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PLA.json +++ b/resources/profiles/Vzbot/filament/Generic PLA @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PLA", + "name": "Generic PLA @Vzbot", "inherits": "fdm_filament_pla", + "renamed_from": "Vzbot Generic PLA", "from": "system", - "setting_id": "4JMiuJbl1gNrBipT", - "filament_id": "OF2mgDsI", + "setting_id": "Skn1ODpcSXd2NFcH", + "filament_id": "OFDSrzZ8", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json b/resources/profiles/Vzbot/filament/Generic PLA-CF @Vzbot.json similarity index 77% rename from resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json rename to resources/profiles/Vzbot/filament/Generic PLA-CF @Vzbot.json index 2b73cddba8..2fd8b03ee5 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PLA-CF.json +++ b/resources/profiles/Vzbot/filament/Generic PLA-CF @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PLA-CF", + "name": "Generic PLA-CF @Vzbot", "inherits": "fdm_filament_pla", + "renamed_from": "Vzbot Generic PLA-CF", "from": "system", - "setting_id": "nt1egZD1dQEVXp0v", - "filament_id": "OFYHzKyS", + "setting_id": "FETpZHhHj60hztGS", + "filament_id": "OFWbdGsC", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json b/resources/profiles/Vzbot/filament/Generic PVA @Vzbot.json similarity index 78% rename from resources/profiles/Vzbot/filament/Vzbot Generic PVA.json rename to resources/profiles/Vzbot/filament/Generic PVA @Vzbot.json index 23a748046e..f8b6793e74 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic PVA.json +++ b/resources/profiles/Vzbot/filament/Generic PVA @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic PVA", + "name": "Generic PVA @Vzbot", "inherits": "fdm_filament_pva", + "renamed_from": "Vzbot Generic PVA", "from": "system", - "setting_id": "DX4eZb2tlNVqeUrn", - "filament_id": "OFIda816", + "setting_id": "3xgrPw1nCEUaKQwQ", + "filament_id": "OFDvXujf", "instantiation": "true", "filament_flow_ratio": [ "0.95" diff --git a/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json b/resources/profiles/Vzbot/filament/Generic TPU @Vzbot.json similarity index 73% rename from resources/profiles/Vzbot/filament/Vzbot Generic TPU.json rename to resources/profiles/Vzbot/filament/Generic TPU @Vzbot.json index 60901cb86e..6ba3a3e9e4 100644 --- a/resources/profiles/Vzbot/filament/Vzbot Generic TPU.json +++ b/resources/profiles/Vzbot/filament/Generic TPU @Vzbot.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Vzbot Generic TPU", + "name": "Generic TPU @Vzbot", "inherits": "fdm_filament_tpu", + "renamed_from": "Vzbot Generic TPU", "from": "system", - "setting_id": "YlhTF1F3OA2qj6o2", - "filament_id": "OFGGyAgJ", + "setting_id": "eC3Pgdpbwi2amDbk", + "filament_id": "OFgbpcy9", "instantiation": "true", "filament_max_volumetric_speed": [ "50" diff --git a/resources/profiles/Vzbot/machine/Vzbot 235 AWD.json b/resources/profiles/Vzbot/machine/Vzbot 235 AWD.json index a29123add7..760c478b42 100644 --- a/resources/profiles/Vzbot/machine/Vzbot 235 AWD.json +++ b/resources/profiles/Vzbot/machine/Vzbot 235 AWD.json @@ -8,5 +8,5 @@ "bed_model": "Vz235SlicerBedModel-cnc.stl", "bed_texture": "VzBot_PS_bed_235.svg", "hotend_model": "Goliath.stl", - "default_materials": "Vzbot Generic ABS;Vzbot Generic PLA;Vzbot Generic PLA-CF;Vzbot Generic PETG;Vzbot Generic TPU;Vzbot Generic ASA;Vzbot Generic PC;Vzbot Generic PVA;Vzbot Generic PA;Vzbot Generic PA-CF" + "default_materials": "Generic ABS @Vzbot;Generic PLA @Vzbot;Generic PLA-CF @Vzbot;Generic PETG @Vzbot;Generic TPU @Vzbot;Generic ASA @Vzbot;Generic PC @Vzbot;Generic PVA @Vzbot;Generic PA @Vzbot;Generic PA-CF @Vzbot" } diff --git a/resources/profiles/Vzbot/machine/Vzbot 330 AWD.json b/resources/profiles/Vzbot/machine/Vzbot 330 AWD.json index 71561ce630..b30f6639fd 100644 --- a/resources/profiles/Vzbot/machine/Vzbot 330 AWD.json +++ b/resources/profiles/Vzbot/machine/Vzbot 330 AWD.json @@ -8,5 +8,5 @@ "bed_model": "Vz330SlicerBedModel-cnc.stl", "bed_texture": "VzBot_PS_bed_330.svg", "hotend_model": "Goliath.stl", - "default_materials": "Vzbot Generic ABS;Vzbot Generic PLA;Vzbot Generic PLA-CF;Vzbot Generic PETG;Vzbot Generic TPU;Vzbot Generic ASA;Vzbot Generic PC;Vzbot Generic PVA;Vzbot Generic PA;Vzbot Generic PA-CF" + "default_materials": "Generic ABS @Vzbot;Generic PLA @Vzbot;Generic PLA-CF @Vzbot;Generic PETG @Vzbot;Generic TPU @Vzbot;Generic ASA @Vzbot;Generic PC @Vzbot;Generic PVA @Vzbot;Generic PA @Vzbot;Generic PA-CF @Vzbot" } diff --git a/resources/profiles/Vzbot/machine/fdm_klipper_common.json b/resources/profiles/Vzbot/machine/fdm_klipper_common.json index 617015864c..97e546f272 100644 --- a/resources/profiles/Vzbot/machine/fdm_klipper_common.json +++ b/resources/profiles/Vzbot/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Vzbot Generic ABS" + "Generic ABS @Vzbot" ], "default_print_profile": "0.20mm Standard @Vzbot", "bed_exclude_area": [ diff --git a/resources/profiles/Wanhao France.json b/resources/profiles/Wanhao France.json index 92694fe476..ce18d5c5d0 100644 --- a/resources/profiles/Wanhao France.json +++ b/resources/profiles/Wanhao France.json @@ -1,6 +1,6 @@ { "name": "Wanhao France", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Wanhao France D12 configurations", "machine_model_list": [ @@ -177,12 +177,12 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Yumi Generic PETG", - "sub_path": "filament/Yumi Generic PETG.json" + "name": "Generic PETG @Yumi", + "sub_path": "filament/Generic PETG @Yumi.json" }, { - "name": "Yumi Generic PLA", - "sub_path": "filament/Yumi Generic PLA.json" + "name": "Generic PLA @Yumi", + "sub_path": "filament/Generic PLA @Yumi.json" }, { "name": "YUMI PETG", diff --git a/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json b/resources/profiles/Wanhao France/filament/Generic PETG @Yumi.json similarity index 91% rename from resources/profiles/Wanhao France/filament/Yumi Generic PETG.json rename to resources/profiles/Wanhao France/filament/Generic PETG @Yumi.json index af50f6f8b0..945df6cb10 100644 --- a/resources/profiles/Wanhao France/filament/Yumi Generic PETG.json +++ b/resources/profiles/Wanhao France/filament/Generic PETG @Yumi.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Yumi Generic PETG", + "name": "Generic PETG @Yumi", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "OFCu3jES", + "filament_id": "OFYPdQJh", "instantiation": "false", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json b/resources/profiles/Wanhao France/filament/Generic PLA @Yumi.json similarity index 81% rename from resources/profiles/Wanhao France/filament/Yumi Generic PLA.json rename to resources/profiles/Wanhao France/filament/Generic PLA @Yumi.json index 0ef9bfdad2..1bcd4923a8 100644 --- a/resources/profiles/Wanhao France/filament/Yumi Generic PLA.json +++ b/resources/profiles/Wanhao France/filament/Generic PLA @Yumi.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Yumi Generic PLA", + "name": "Generic PLA @Yumi", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "OFGLeiNL", + "filament_id": "OFDSrzZ8", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Wanhao France/filament/YUMI PETG.json b/resources/profiles/Wanhao France/filament/YUMI PETG.json index d315c359f5..9d1bf0288a 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PETG.json +++ b/resources/profiles/Wanhao France/filament/YUMI PETG.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "YUMI PETG", - "inherits": "Yumi Generic PETG", + "inherits": "Generic PETG @Yumi", "from": "system", "setting_id": "PFFm20QNgwqyuglH", "filament_id": "OF5NqBfC", diff --git a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json index 5655743ca6..6636fe680d 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json +++ b/resources/profiles/Wanhao France/filament/YUMI PLA Bowden.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "YUMI PLA Bowden", - "inherits": "Yumi Generic PLA", + "inherits": "Generic PLA @Yumi", "from": "system", "setting_id": "zQSSA2QZi27ESyQK", "filament_id": "OFZ2LuAi", diff --git a/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json b/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json index 52360e2d5b..050e003e77 100644 --- a/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json +++ b/resources/profiles/Wanhao France/filament/YUMI PLA Direct Drive.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "YUMI PLA Direct Drive", - "inherits": "Yumi Generic PLA", + "inherits": "Generic PLA @Yumi", "from": "system", "setting_id": "v2p0ooSxHnvVkn57", "filament_id": "OFJxSqO4", diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json index 609e9f6106..26374ba05c 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS @Z-Bolt Base.json @@ -2,7 +2,6 @@ "type": "filament", "name": "Generic ABS @Z-Bolt Base", "inherits": "fdm_filament_abs", - "renamed_from": "Z-Bolt ABS;Generic ABS @Z-Bolt", "from": "system", "filament_id": "OFY9muEs", "instantiation": "false", diff --git a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json index 0448f04bed..7bacdfde2e 100644 --- a/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic ABS HT @Z-Bolt Base.json @@ -2,7 +2,6 @@ "type": "filament", "name": "Generic ABS HT @Z-Bolt Base", "inherits": "Generic ABS @Z-Bolt Base", - "renamed_from": "Z-Bolt ABS HT;Generic ABS HT @Z-Bolt", "from": "system", "filament_id": "OFsP8PKH", "instantiation": "false", diff --git a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json index f593385ea7..07416a8d81 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PA @Z-Bolt Base.json @@ -2,7 +2,6 @@ "type": "filament", "name": "Generic PA @Z-Bolt Base", "inherits": "fdm_filament_pa", - "renamed_from": "Z-Bolt PA;Generic PA @Z-Bolt", "from": "system", "filament_id": "OFg8ndtj", "instantiation": "false", diff --git a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json index 4c8d8dc6a7..18f2530d8a 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PETG @Z-Bolt Base.json @@ -2,7 +2,6 @@ "type": "filament", "name": "Generic PETG @Z-Bolt Base", "inherits": "fdm_filament_pet", - "renamed_from": "Z-Bolt PETG;Generic PETG @Z-Bolt", "from": "system", "filament_id": "OFYPdQJh", "instantiation": "false", diff --git a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json index df2c3259e1..2b64f307ac 100644 --- a/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json +++ b/resources/profiles/Z-Bolt/filament/Generic PLA @Z-Bolt Base.json @@ -2,7 +2,6 @@ "type": "filament", "name": "Generic PLA @Z-Bolt Base", "inherits": "fdm_filament_pla", - "renamed_from": "Z-Bolt PLA;Generic PLA @Z-Bolt", "from": "system", "filament_id": "OFDSrzZ8", "instantiation": "false", diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index 795fa4f768..336f48ac15 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -2322,18 +2322,1588 @@ ], "successor": "OFmhJs5V" }, + "OF0GIkJm": { + "claims": [ + "Tiertime/Tiertime Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OF0zx94L": { + "claims": [ + "Vzbot/Vzbot Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OF1Id239": { + "claims": [ + "Prusa/Prusa Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF1OZujR": { + "claims": [ + "Flashforge/Flashforge Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OF1daEUW": { + "claims": [ + "Anker/Anker Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OF1uR1t2": { + "claims": [ + "Tiertime/Tiertime Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF2RjrWH": { + "claims": [ + "Flashforge/FusRock Generic PAHT-GF" + ], + "successor": "OFcVLpNA" + }, + "OF2mgDsI": { + "claims": [ + "Vzbot/Vzbot Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OF3P0BQA": { + "claims": [ + "Anker/Anker Generic ABS", + "Anker/Anker Generic ABS 0.2 nozzle", + "Anker/Anker Generic ABS 0.25 nozzle" + ], + "successor": "OFY9muEs" + }, + "OF3s929u": { + "claims": [ + "Tiertime/Tiertime Generic PP" + ], + "successor": "OF1UNk9P" + }, + "OF3wxlw9": { + "claims": [ + "CoLiDo/CoLiDo Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF42ZDpN": { + "claims": [ + "Flashforge/FusRock PAHT" + ], + "successor": "OF7pjCsO" + }, + "OF48L671": { + "claims": [ + "Ratrig/RatRig Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OF4Mf5Gz": { + "claims": [ + "Creality/Creality Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF4XAUnp": { + "claims": [ + "Vzbot/Vzbot Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OF4oCRKe": { + "claims": [ + "DeltaMaker/DeltaMaker Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF4xhTuK": { + "claims": [ + "OrcaArena/OrcaArena Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OF4zzGwp": { + "claims": [ + "Flashforge/FusRock Generic PET-GF" + ], + "successor": "OFzwA5Z9" + }, + "OF51XQar": { + "claims": [ + "CONSTRUCT3D/C1 Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OF5E5KNA": { + "claims": [ + "SecKit/SecKit Generic PC" + ], + "successor": "OFLakOUI" + }, + "OF5Zk4e1": { + "claims": [ + "Anycubic/Anycubic Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OF5vzBhb": { + "claims": [ + "Chuanying/Chuanying Generic PLA", + "Chuanying/Chuanying PLA" + ], + "successor": "OFDSrzZ8" + }, + "OF6Fpw1E": { + "claims": [ + "Comgrow/Comgrow Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OF6K467o": { + "claims": [ + "InfiMech/InfiMech Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OF6KELDx": { + "claims": [ + "Co Print/CoPrint Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OF6WddJ1": { + "claims": [ + "Flashforge/FusRock S-PAHT" + ], + "successor": "OFCn83wF" + }, + "OF6rMr3U": { + "claims": [ + "Flashforge/FusRock Generic S-Multi" + ], + "successor": "OF0AquDh" + }, + "OF6tKa1Z": { + "claims": [ + "Anker/Anker Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OF6vKLaU": { + "claims": [ + "Artillery/Artillery Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OF6xLvYg": { + "claims": [ + "InfiMech/InfiMech Generic PC" + ], + "successor": "OFLakOUI" + }, + "OF7g2vYQ": { + "claims": [ + "Co Print/CoPrint Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OF7uE5KB": { + "claims": [ + "Anker/Anker Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OF8CXrvm": { + "claims": [ + "SecKit/SecKit Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OF8bLDu7": { + "claims": [ + "Blocks/Blocks Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OF97ru74": { + "claims": [ + "Prusa/Prusa Generic PC" + ], + "successor": "OFLakOUI" + }, + "OF9fOPpd": { + "claims": [ + "Vzbot/Vzbot Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFACSw9O": { + "claims": [ + "Creality/Creality Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFB09fpe": { + "claims": [ + "Ratrig/RatRig Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFB0a3hT": { + "claims": [ + "Anker/Anker Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFB1Tv1E": { + "claims": [ + "Anycubic/Anycubic Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFB8wSps": { + "claims": [ + "Flashforge/FusRock PET-CF" + ], + "successor": "OFDu1qE7" + }, + "OFB9dx27": { + "claims": [ + "Blocks/Blocks Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFBC32Wb": { + "claims": [ + "Flashforge/FusRock PET" + ], + "successor": "OFKTGKJU" + }, + "OFBIadjM": { + "claims": [ + "Chuanying/Chuanying ASA", + "Chuanying/Chuanying Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFBpcB0a": { + "claims": [ + "TwoTrees/TwoTrees Generic HS PLA" + ], + "successor": "OFvxghTE" + }, + "OFBtlI8M": { + "claims": [ + "FlyingBear/FlyingBear Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFC20UMj": { + "claims": [ + "Flashforge/Flashforge Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFCVUEaV": { + "claims": [ + "Tiertime/Tiertime Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFCaJHAA": { + "claims": [ + "Flashforge/FusRock Generic S-PAHT" + ], + "successor": "OFCn83wF" + }, + "OFCcsYtf": { + "claims": [ + "FLSun/FLSun Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFCu3jES": { + "claims": [], + "successor": null + }, + "OFD2JNS1": { + "claims": [ + "Dremel/Dremel Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFD6kN7F": { + "claims": [ + "OrcaArena/OrcaArena Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFDeTsJw": { + "claims": [ + "Chuanying/Chuanying Generic HIPS" + ], + "successor": "OFsFon5l" + }, + "OFEE1Dld": { + "claims": [ + "Artillery/Artillery Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFETFWx7": { + "claims": [ + "SecKit/SecKit Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFEZNNw1": { + "claims": [ + "Ratrig/RatRig Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFF73Bvp": { + "claims": [ + "SecKit/SecKit Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFFZ0BBL": { + "claims": [ + "FlyingBear/FlyingBear Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFFxZ7hZ": { + "claims": [ + "Chuanying/Chuanying Generic PLA-CF10" + ], + "successor": "OFX2zcrM" + }, + "OFGDaEHO": { + "claims": [ + "Tiertime/Tiertime Generic BVOH" + ], + "successor": "OFo2UF2C" + }, + "OFGGyAgJ": { + "claims": [ + "Vzbot/Vzbot Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFGKLoUm": { + "claims": [ + "Anycubic/Anycubic Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFGLeiNL": { + "claims": [], + "successor": null + }, + "OFGPJxnt": { + "claims": [ + "Anker/Anker Generic PC", + "Anker/Anker Generic PC 0.2 nozzle", + "Anker/Anker Generic PC 0.25 nozzle" + ], + "successor": "OFLakOUI" + }, + "OFGzUNbm": { + "claims": [ + "Tiertime/Tiertime Generic PPS-CF" + ], + "successor": "OF6rdQ6M" + }, + "OFHFZ1Te": { + "claims": [ + "Prusa/Prusa Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OFHQUAoZ": { + "claims": [ + "FLSun/FLSun Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFHUnLY2": { + "claims": [ + "Vzbot/Vzbot Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFHa3RZT": { + "claims": [ + "Tiertime/Tiertime Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFI80Hct": { + "claims": [ + "Anycubic/Anycubic Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFIYTy8S": { + "claims": [ + "Anker/Anker Generic PLA+", + "Anker/Anker Generic PLA+ 0.2 nozzle", + "Anker/Anker Generic PLA+ 0.25 nozzle" + ], + "successor": "OFEWYR89" + }, + "OFIda816": { + "claims": [ + "Vzbot/Vzbot Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFIeCuXj": { + "claims": [ + "Peopoly/Peopoly Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFIieIka": { + "claims": [ + "Flashforge/Polymaker CoPA" + ], + "successor": "OFQyyO0l" + }, + "OFIy3kLw": { + "claims": [ + "Prusa/Prusa Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFJJpaLS": { + "claims": [ + "FLSun/FLSun Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFJSksUs": { + "claims": [ + "FLSun/FLSun Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFK01afJ": { + "claims": [ + "Qidi/Qidi Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFK4LdYI": { + "claims": [ + "Prusa/Prusa Generic ASA HF" + ], + "successor": "OFzRtFM9" + }, + "OFKNAhls": { + "claims": [ + "Qidi/Qidi Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFKuTr12": { + "claims": [ + "Tiertime/Tiertime Generic PE" + ], + "successor": "OFPklMI1" + }, + "OFKyCgaK": { + "claims": [ + "Anycubic/Anycubic Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFLBUkwC": { + "claims": [ + "Vzbot/Vzbot Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFLDSqqi": { + "claims": [ + "Flashforge/Flashforge Generic ABS" + ], + "successor": "OFY9muEs" + }, "OFLSBS99": { "claims": [ "OrcaFilamentLibrary/Generic SBS" ], "successor": "OFhQfUQY" }, + "OFLrdHse": { + "claims": [ + "Flashforge/Flashforge Generic HS PLA" + ], + "successor": "OFvxghTE" + }, + "OFLuczRG": { + "claims": [ + "Creality/Creality Generic ASA-CF" + ], + "successor": "OF53eLVD" + }, + "OFM87w9T": { + "claims": [ + "Tiertime/Tiertime Generic SBS" + ], + "successor": "OFhQfUQY" + }, + "OFMEbuBE": { + "claims": [ + "Blocks/Blocks Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFMIurFh": { + "claims": [ + "Creality/Creality HF Generic Speed PLA" + ], + "successor": "OFXmv5p0" + }, + "OFMTBcnz": { + "claims": [ + "Tiertime/Tiertime Generic PP-CF" + ], + "successor": "OFXkm8q1" + }, + "OFMZAoqa": { + "claims": [ + "Tiertime/Tiertime Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFMgJQCZ": { + "claims": [ + "Anker/Anker Generic PA", + "Anker/Anker Generic PA 0.2 nozzle", + "Anker/Anker Generic PA 0.25 nozzle" + ], + "successor": "OFg8ndtj" + }, + "OFMoLF46": { + "claims": [ + "FLSun/FLSun Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFMqYusc": { + "claims": [ + "Creality/Creality Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFN7aNHe": { + "claims": [ + "Tiertime/Tiertime Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFNLXV8X": { + "claims": [ + "Tiertime/Tiertime Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFNOxcYl": { + "claims": [ + "Ratrig/RatRig Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFNW4ZTC": { + "claims": [ + "Creality/Creality Generic PLA Wood" + ], + "successor": "OFIKZxPF" + }, + "OFNYewRS": { + "claims": [ + "Blocks/Blocks Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFNZYgLA": { + "claims": [ + "Qidi/Qidi Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFNcdCrm": { + "claims": [ + "Anycubic/Anycubic Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFNiSLfL": { + "claims": [ + "OrcaFilamentLibrary/Generic PP-GF" + ], + "successor": "OFsijjtH" + }, + "OFNn21yM": { + "claims": [ + "Vzbot/Vzbot Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFOKYhi6": { + "claims": [ + "Prusa/Prusa Generic PETG HF" + ], + "successor": "OF7lOgYF" + }, + "OFPdhDlK": { + "claims": [ + "Anycubic/Anycubic Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFPjOUtz": { + "claims": [ + "Flashforge/FusRock Generic PAHT-CF" + ], + "successor": "OFKW5hEW" + }, + "OFPy0Ogq": { + "claims": [ + "Qidi/Qidi Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFQ7I5vC": { + "claims": [ + "Prusa/Prusa Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFQC8Vna": { + "claims": [ + "Flashforge/Flashforge Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OFQTrLXB": { + "claims": [ + "Qidi/Qidi Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFQbqeN7": { + "claims": [ + "Qidi/Qidi Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFQswlnF": { + "claims": [ + "Tiertime/Tiertime Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFRDLNM9": { + "claims": [ + "Peopoly/Peopoly Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFRPEs5o": { + "claims": [ + "Flashforge/Flashforge Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFRiyes1": { + "claims": [ + "Anker/Anker Generic ASA", + "Anker/Anker Generic ASA 0.2 nozzle", + "Anker/Anker Generic ASA 0.25 nozzle" + ], + "successor": "OFLPAxz3" + }, + "OFRujL0v": { + "claims": [ + "Flashforge/FusRock Generic PET-CF" + ], + "successor": "OFDu1qE7" + }, + "OFRusgEn": { + "claims": [ + "Chuanying/Chuanying Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFRzsaDK": { + "claims": [ + "FlyingBear/FlyingBear Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFS8JF3S": { + "claims": [ + "Qidi/Qidi Generic PLA High Speed" + ], + "successor": "OFmpMwxS" + }, + "OFSDFYs4": { + "claims": [ + "Creality/Creality Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFSGbf2I": { + "claims": [ + "Anycubic/Anycubic Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFSPdsuW": { + "claims": [ + "Tiertime/Tiertime Generic PPA-CF" + ], + "successor": "OF8tPByX" + }, "OFSTCno1": { "claims": [ "re3D/re3D Greengate rPETG" ], "successor": "OFmCOW2Y" }, + "OFTKFAZ4": { + "claims": [ + "Tiertime/Tiertime Generic PCTG" + ], + "successor": "OFu1evlr" + }, + "OFU0n0zW": { + "claims": [ + "FLSun/FLSun T1 PLA Generic" + ], + "successor": "OFDSrzZ8" + }, + "OFU3zwPc": { + "claims": [ + "Prusa/Prusa Generic TPU HF" + ], + "successor": "OFnT7Qpb" + }, + "OFU5N9jI": { + "claims": [ + "OrcaArena/OrcaArena Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFU6fjbi": { + "claims": [ + "Co Print/CoPrint Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFUScM0D": { + "claims": [ + "Flashforge/FusRock S-Multi" + ], + "successor": "OF0AquDh" + }, + "OFUWRqwb": { + "claims": [ + "Creality/Creality Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFUaVAdj": { + "claims": [ + "Tiertime/Tiertime Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFUrStd6": { + "claims": [ + "Ratrig/RatRig Generic PCTG" + ], + "successor": "OFu1evlr" + }, + "OFUtGagr": { + "claims": [ + "Artillery/Artillery Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFVKADz5": { + "claims": [ + "Comgrow/Comgrow Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFVqZ2H0": { + "claims": [ + "FLSun/FLSun Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFW9uIkE": { + "claims": [ + "Tiertime/Tiertime Generic HIPS" + ], + "successor": "OFsFon5l" + }, + "OFWIr7ZE": { + "claims": [ + "CoLiDo/CoLiDo Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFWY6vBh": { + "claims": [ + "Anycubic/Anycubic Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFWadebJ": { + "claims": [ + "Tiertime/Tiertime Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OFWbbuRY": { + "claims": [ + "InfiMech/InfiMech Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFWof1Ap": { + "claims": [ + "FLSun/FLSun Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFWukXja": { + "claims": [ + "Qidi/Qidi Generic TPU 95A" + ], + "successor": "OFjiXpyf" + }, + "OFWzr7m0": { + "claims": [ + "Anycubic/Anycubic Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFXXUHSG": { + "claims": [ + "Chuanying/Chuanying Generic PETG-CF10" + ], + "successor": "OFO5djrM" + }, + "OFXhZ3uY": { + "claims": [ + "OrcaArena/OrcaArena Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFXuwtnq": { + "claims": [ + "Co Print/CoPrint Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFXyyfX6": { + "claims": [ + "Anker/Anker Generic PLA Silk", + "Anker/Anker Generic PLA Silk 0.2 nozzle", + "Anker/Anker Generic PLA Silk 0.25 nozzle" + ], + "successor": "OFesA6rF" + }, + "OFYHzKyS": { + "claims": [ + "Vzbot/Vzbot Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFYPdJ7t": { + "claims": [ + "Creality/Creality Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFYl0c8v": { + "claims": [ + "Flashforge/Flashforge Generic HIPS" + ], + "successor": "OFsFon5l" + }, + "OFYlZMmy": { + "claims": [ + "Chuanying/Chuanying Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFYlthXI": { + "claims": [ + "Flashforge/Flashforge Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFYtS9zg": { + "claims": [ + "Flashforge/FusRock PAHT-CF" + ], + "successor": "OFKW5hEW" + }, + "OFYvSO1W": { + "claims": [ + "Flashforge/Flashforge Generic PLA-Silk" + ], + "successor": "OFi6PfUM" + }, + "OFZ1hANN": { + "claims": [ + "Flashforge/FusRock Generic NexPA-CF25" + ], + "successor": "OFjt8dDO" + }, + "OFZ4fTO8": { + "claims": [ + "CONSTRUCT3D/C1 Generic High Flow PETG" + ], + "successor": "OFNjku08" + }, + "OFZHgTVI": { + "claims": [ + "Flashforge/Flashforge Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFZPlCck": { + "claims": [ + "Chuanying/Chuanying Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFZsChIG": { + "claims": [ + "Qidi/Qidi Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFa9X7yl": { + "claims": [ + "Flashforge/FusRock S-PAHT" + ], + "successor": "OFCn83wF" + }, + "OFaU2JxD": { + "claims": [ + "Dremel/Dremel Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFahE7HP": { + "claims": [ + "Blocks/Blocks Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFbeeFkl": { + "claims": [ + "OrcaArena/OrcaArena Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OFbenYUK": { + "claims": [ + "Prusa/Prusa Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFbt04e0": { + "claims": [ + "DeltaMaker/DeltaMaker Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFc0xiCz": { + "claims": [ + "InfiMech/InfiMech Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFcCzEkS": { + "claims": [ + "Prusa/Prusa Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFctbSkL": { + "claims": [ + "Blocks/Blocks Generic ASA-CF" + ], + "successor": "OF53eLVD" + }, + "OFd10YeG": { + "claims": [ + "Ratrig/RatRig Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFdEIwxy": { + "claims": [ + "Flashforge/Flashforge Generic PLA-CF10" + ], + "successor": "OFX2zcrM" + }, + "OFdHsxB4": { + "claims": [ + "TwoTrees/TwoTrees Generic 95A TPU" + ], + "successor": "OF6MMR8P" + }, + "OFdLdGgJ": { + "claims": [ + "OrcaArena/OrcaArena Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFdOWhCa": { + "claims": [ + "Ratrig/RatRig Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFdXgp2K": { + "claims": [ + "Chuanying/Chuanying Generic HS PLA", + "Chuanying/Chuanying HS PLA" + ], + "successor": "OFvxghTE" + }, + "OFdlGycb": { + "claims": [ + "CoLiDo/CoLiDo Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFe8UJXH": { + "claims": [ + "Creality/Creality Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFeDfaCh": { + "claims": [ + "CoLiDo/CoLiDo Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFeJjoKF": { + "claims": [ + "FLSun/FLSun Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFeK2vkS": { + "claims": [ + "Chuanying/Chuanying Generic PLA-Silk", + "Chuanying/Chuanying PLA-SILK" + ], + "successor": "OFi6PfUM" + }, + "OFetENFF": { + "claims": [ + "OrcaArena/OrcaArena Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFfZ0lTS": { + "claims": [ + "Qidi/Qidi Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OFfegVpA": { + "claims": [ + "Flashforge/Polymaker Generic S1" + ], + "successor": "OFaDsTE0" + }, + "OFfxFQf9": { + "claims": [ + "Chuanying/Chuanying Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFfznI0Q": { + "claims": [ + "Prusa/Prusa Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFgSEwOZ": { + "claims": [ + "OrcaArena/OrcaArena Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFgSPtDn": { + "claims": [ + "MagicMaker/MM Generic PEEK" + ], + "successor": "OFz5oHgf" + }, + "OFgVJhVt": { + "claims": [ + "Tiertime/Tiertime Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFgvOmM2": { + "claims": [ + "Anker/Anker Generic PETG", + "Anker/Anker Generic PETG 0.2 nozzle", + "Anker/Anker Generic PETG 0.25 nozzle" + ], + "successor": "OFYPdQJh" + }, + "OFhcrFw9": { + "claims": [ + "Creality/Creality Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFiCHnso": { + "claims": [ + "Prusa/Prusa Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFiUSDih": { + "claims": [ + "Blocks/Blocks Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFifxPW1": { + "claims": [ + "DeltaMaker/DeltaMaker Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFiorRtJ": { + "claims": [ + "Blocks/Blocks Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFixgF4N": { + "claims": [ + "Flashforge/FusRock S-Multi" + ], + "successor": "OF0AquDh" + }, + "OFjoIVZ6": { + "claims": [ + "FlyingBear/FlyingBear Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFkUaDnU": { + "claims": [ + "Tiertime/Tiertime Generic PE-CF" + ], + "successor": "OFd0Fv0k" + }, + "OFkYkQGO": { + "claims": [ + "Tiertime/Tiertime Generic PP-GF" + ], + "successor": "OFsijjtH" + }, + "OFl2SXmv": { + "claims": [ + "Prusa/Prusa Generic FLEX" + ], + "successor": "OFbPuPKY" + }, + "OFl4ItvQ": { + "claims": [ + "Prusa/Prusa Generic PLA HF" + ], + "successor": "OFZr862X" + }, + "OFlLmUeV": { + "claims": [ + "Ginger Additive/Ginger Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFlNWVr5": { + "claims": [ + "Flashforge/Flashforge Generic PETG-CF10" + ], + "successor": "OFO5djrM" + }, + "OFlx52rn": { + "claims": [ + "Ratrig/RatRig Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFma52eS": { + "claims": [ + "Blocks/Blocks Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFmhWhEf": { + "claims": [ + "Creality/Creality HF Generic PLA" + ], + "successor": "OFZr862X" + }, + "OFmnJNqY": { + "claims": [ + "OrcaArena/OrcaArena Generic PA" + ], + "successor": "OFg8ndtj" + }, + "OFmzftED": { + "claims": [ + "OrcaArena/OrcaArena Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFndmfJ1": { + "claims": [ + "Anker/Anker Generic PLA", + "Anker/Anker Generic PLA 0.2 nozzle", + "Anker/Anker Generic PLA 0.25 nozzle" + ], + "successor": "OFDSrzZ8" + }, + "OFnfBvn5": { + "claims": [ + "Artillery/Artillery Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFnh79eM": { + "claims": [ + "SecKit/SecKit Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFoDgVnY": { + "claims": [ + "FLSun/FLSun S1 PLA Generic" + ], + "successor": "OFDSrzZ8" + }, + "OFoJcr46": { + "claims": [ + "Prusa/Prusa Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFoT8F7Y": { + "claims": [ + "Prusa/Prusa Generic PVA HF" + ], + "successor": "OFDwBwO5" + }, + "OFoVZg32": { + "claims": [ + "SecKit/SecKit Generic TPU" + ], + "successor": "OFgbpcy9" + }, + "OFodPDxO": { + "claims": [ + "Tiertime/Tiertime Generic PLA High Speed" + ], + "successor": "OFmpMwxS" + }, + "OFp8gtPH": { + "claims": [ + "Creality/Creality Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OFpAaY6w": { + "claims": [ + "Creality/Creality Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFpSYJLI": { + "claims": [ + "Creality/Creality Generic PLA Matte" + ], + "successor": "OFmY0l6t" + }, + "OFptvi3F": { + "claims": [ + "Tiertime/Tiertime Generic PPA-GF" + ], + "successor": "OF8Tlg47" + }, + "OFq5QANf": { + "claims": [ + "Prusa/Prusa Generic PC HF" + ], + "successor": "OFwwAQnA" + }, + "OFqKmLJe": { + "claims": [ + "Creality/Creality Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OFqOk9Ww": { + "claims": [ + "Peopoly/Peopoly Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFqS8fzK": { + "claims": [ + "SecKit/SecKit Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFrO2zyn": { + "claims": [ + "Creality/Creality Generic PLA High Speed" + ], + "successor": "OFmpMwxS" + }, + "OFrQqCwL": { + "claims": [ + "InfiMech/InfiMech Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFrgGex8": { + "claims": [ + "Blocks/Blocks Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFrh4bBH": { + "claims": [ + "SecKit/SecKit Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFrnJJEa": { + "claims": [ + "Tiertime/Tiertime Generic EVA" + ], + "successor": "OFCD8qiU" + }, + "OFrrMLDw": { + "claims": [ + "Flashforge/Flashforge Generic PLA-SILK" + ], + "successor": "OFkf1HHw" + }, + "OFs2ReMr": { + "claims": [ + "InfiMech/InfiMech Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFsCbVbN": { + "claims": [ + "Anker/Anker Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFsF96Gt": { + "claims": [ + "FLSun/FLSun Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFsGqI4y": { + "claims": [ + "Ginger Additive/Ginger Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFsXOMoX": { + "claims": [ + "Qidi/Qidi Generic PLA+" + ], + "successor": "OFEWYR89" + }, + "OFsoQ12i": { + "claims": [ + "Comgrow/Comgrow Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFsxRSwr": { + "claims": [ + "Ratrig/RatRig Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFsxlLdo": { + "claims": [ + "Qidi/Qidi Generic ASA" + ], + "successor": "OFLPAxz3" + }, + "OFtP1rqJ": { + "claims": [ + "FLSun/FLSun Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFtTHNTj": { + "claims": [ + "Flashforge/Flashforge Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFtsVp4v": { + "claims": [ + "SecKit/SecKit Generic PA-CF" + ], + "successor": "OFQLcbps" + }, + "OFu79SUH": { + "claims": [ + "Qidi/Qidi Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFuSwKgm": { + "claims": [ + "Tiertime/Tiertime Generic PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFupq0tY": { + "claims": [ + "Blocks/Blocks Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFv4VZCd": { + "claims": [ + "Qidi/Qidi Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFvGc67v": { + "claims": [ + "Prusa/Prusa Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFvPomQf": { + "claims": [ + "Tiertime/Tiertime Generic PPS" + ], + "successor": "OFq9svOz" + }, + "OFwMFLAm": { + "claims": [ + "Artillery/Artillery Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFwpkvqf": { + "claims": [ + "OrcaArena/OrcaArena Generic PETG-CF" + ], + "successor": "OFoYSJKi" + }, + "OFwxpmHM": { + "claims": [ + "Flashforge/Polymaker Generic CoPA" + ], + "successor": "OFQyyO0l" + }, + "OFx0ZzFV": { + "claims": [ + "OrcaArena/OrcaArena Generic PLA-CF" + ], + "successor": "OFWbdGsC" + }, + "OFxTMg1d": { + "claims": [ + "FlyingBear/FlyingBear Generic PC" + ], + "successor": "OFLakOUI" + }, + "OFxg7n2G": { + "claims": [ + "Ratrig/RatRig Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFxvKuYW": { + "claims": [ + "Tiertime/Tiertime Generic PHA" + ], + "successor": "OF74KeQR" + }, + "OFy4ajVZ": { + "claims": [ + "Qidi/Qidi Generic PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OFyFRojy": { + "claims": [ + "Ratrig/RatRig Generic ABS" + ], + "successor": "OFY9muEs" + }, + "OFyK5Lt9": { + "claims": [ + "Artillery/Artillery Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFyeSq8A": { + "claims": [ + "Prusa/Prusa Generic ABS HF" + ], + "successor": "OF55jHAJ" + }, + "OFyySVby": { + "claims": [ + "SecKit/SecKit Generic PVA" + ], + "successor": "OFDvXujf" + }, + "OFz3q5Xz": { + "claims": [ + "CONSTRUCT3D/C1 Generic PETG" + ], + "successor": "OFYPdQJh" + }, + "OFzXURfo": { + "claims": [ + "FlyingBear/FlyingBear Generic PETG" + ], + "successor": "OFYPdQJh" + }, "OGFA00": { "claims": [ "OrcaFilamentLibrary/Bambu PLA Basic" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 5183acc069..e86eeab452 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -128,8 +128,6 @@ "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", "Artillery/Artillery ABS", "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", @@ -191,28 +189,28 @@ "BBL/addnorth TPU Pro Matte 85A", "BBL/addnorth TPU Pro Matte 95A", "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying Generic HIPS", - "Chuanying/Chuanying Generic PVA", "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", - "Co Print/CoPrint Generic ABS", - "Co Print/CoPrint Generic PETG", - "Co Print/CoPrint Generic TPU", + "Chuanying/Generic HIPS @Chuanying", + "Chuanying/Generic PVA @Chuanying", + "Co Print/Generic ABS @CoPrint", + "Co Print/Generic PETG @CoPrint", + "Co Print/Generic TPU @CoPrint", "Comgrow/Comgrow T300 PLA", - "Creality/Creality Generic ASA-CF @Hi-all", - "Creality/Creality Generic PETG-CF @Hi-all", - "Creality/Creality Generic PLA High Speed @Ender-3V3-all", - "Creality/Creality Generic PLA High Speed @Hi-all", - "Creality/Creality Generic PLA High Speed @K1-all", - "Creality/Creality Generic PLA High Speed @K2-all", - "Creality/Creality Generic PLA Matte @Ender-3V3-all", - "Creality/Creality Generic PLA Matte @Hi-all", - "Creality/Creality Generic PLA Matte @K1-all", - "Creality/Creality Generic PLA Matte @K2-all", - "Creality/Creality Generic PLA Silk @Ender-3V3-all", - "Creality/Creality Generic PLA Silk @Hi-all", - "Creality/Creality Generic PLA Silk @K1-all", - "Creality/Creality Generic PLA Silk @K2-all", - "Creality/Creality Generic PLA Wood @Hi-all", + "Creality/Generic ASA-CF @Creality Hi-all", + "Creality/Generic PETG-CF @Creality Hi-all", + "Creality/Generic PLA High Speed @Creality Ender-3V3-all", + "Creality/Generic PLA High Speed @Creality Hi-all", + "Creality/Generic PLA High Speed @Creality K1-all", + "Creality/Generic PLA High Speed @Creality K2-all", + "Creality/Generic PLA Matte @Creality Ender-3V3-all", + "Creality/Generic PLA Matte @Creality Hi-all", + "Creality/Generic PLA Matte @Creality K1-all", + "Creality/Generic PLA Matte @Creality K2-all", + "Creality/Generic PLA Silk @Creality Ender-3V3-all", + "Creality/Generic PLA Silk @Creality Hi-all", + "Creality/Generic PLA Silk @Creality K1-all", + "Creality/Generic PLA Silk @Creality K2-all", + "Creality/Generic PLA Wood @Creality Hi-all", "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", @@ -244,9 +242,6 @@ "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLAi21 @base", - "Dremel/Dremel Generic PLA @3D20 all", - "Dremel/Dremel Generic PLA @3D40 all", - "Dremel/Dremel Generic PLA @3D45 all", "Elegoo/Elegoo ASA-CF @base", "Elegoo/Elegoo PC-FR @base", "Elegoo/Elegoo PET-CF @base", @@ -281,14 +276,12 @@ "FLSun/FLSun S1 ABS", "FLSun/FLSun S1 ASA", "FLSun/FLSun S1 PETG", - "FLSun/FLSun S1 PLA Generic", "FLSun/FLSun S1 PLA High Speed", "FLSun/FLSun S1 PLA Silk", "FLSun/FLSun S1 TPU", "FLSun/FLSun T1 ABS", "FLSun/FLSun T1 ASA", "FLSun/FLSun T1 PETG", - "FLSun/FLSun T1 PLA Generic", "FLSun/FLSun T1 PLA High Speed", "FLSun/FLSun T1 PLA Silk", "FLSun/FLSun T1 TPU", @@ -361,17 +354,6 @@ "Flashforge/Flashforge ASA-CF @FF G4P", "Flashforge/Flashforge ASA-GF @FF C5", "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge Generic ASA @G3U", - "Flashforge/Flashforge Generic HIPS", - "Flashforge/Flashforge Generic HIPS @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PETG-CF @G3U", - "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PLA-CF @G3U", - "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic PVA", "Flashforge/Flashforge HIPS @FF C5", "Flashforge/Flashforge HIPS @FF C5P", "Flashforge/Flashforge HIPS @FF G4", @@ -729,40 +711,37 @@ "Flashforge/Flashforge TPU-90A @FF C5P", "Flashforge/Flashforge TPU-95A @FF C5", "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock Generic NexPA-CF25", - "Flashforge/FusRock Generic PAHT-CF", - "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic PAHT-GF", - "Flashforge/FusRock Generic PET-CF", - "Flashforge/FusRock Generic PET-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic PET-GF", - "Flashforge/FusRock Generic S-Multi", - "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic S-PAHT", - "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/FusRock NexPA-CF25", "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PAHT-CF", "Flashforge/FusRock PAHT-CF @FF C5", "Flashforge/FusRock PAHT-CF @FF C5P", "Flashforge/FusRock PAHT-CF @FF G4", - "Flashforge/FusRock PAHT-CF @FF G4 0.6 nozzle", "Flashforge/FusRock PAHT-CF @FF G4P", - "Flashforge/FusRock PAHT-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PAHT-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock PAHT-GF", "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PET-CF", "Flashforge/FusRock PET-CF @FF G4", - "Flashforge/FusRock PET-CF @FF G4 0.6 nozzle", "Flashforge/FusRock PET-CF @FF G4P", - "Flashforge/FusRock PET-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PET-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock PET-GF", + "Flashforge/FusRock S-Multi", "Flashforge/FusRock S-Multi @FF C5", "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-Multi @G3U 0.6 Nozzle", + "Flashforge/FusRock S-PAHT", "Flashforge/FusRock S-PAHT @FF C5", "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/Generic ABS @Flashforge AD4", - "Flashforge/Generic ASA @Flashforge AD4", + "Flashforge/FusRock S-PAHT @G3U 0.6 Nozzle", + "Flashforge/Generic ASA @Flashforge G3U", + "Flashforge/Generic HIPS @Flashforge", + "Flashforge/Generic HIPS @Flashforge G3U 0.6 Nozzle", "Flashforge/Generic PET @FF G4", "Flashforge/Generic PET @FF G4 0.6 HF nozzle", "Flashforge/Generic PET @FF G4 0.6 nozzle", @@ -771,30 +750,33 @@ "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", "Flashforge/Generic PET @FF G4P 0.6 nozzle", "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", - "Flashforge/Generic PETG @Flashforge AD4", - "Flashforge/Generic PETG-CF10 @Flashforge AD4", - "Flashforge/Generic PLA @Flashforge AD4", + "Flashforge/Generic PETG-CF @Flashforge G3U", + "Flashforge/Generic PETG-CF @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic PETG-CF @Flashforge G3U 0.8 Nozzle", "Flashforge/Generic PLA High Speed @Flashforge AD4", "Flashforge/Generic PLA Silk @Flashforge AD4", - "Flashforge/Generic PLA-CF10 @Flashforge AD4", + "Flashforge/Generic PLA-CF @Flashforge G3U", + "Flashforge/Generic PLA-CF @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic PLA-CF @Flashforge G3U 0.8 Nozzle", + "Flashforge/Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "Flashforge/Generic PVA @Flashforge", "Flashforge/Generic TPU 85A @FF AD5X", "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", - "Flashforge/Generic TPU @Flashforge AD4", "Flashforge/Generic TPU-64D @FF C5", "Flashforge/Generic TPU-64D @FF C5P", "Flashforge/Generic TPU-90A @FF C5", "Flashforge/Generic TPU-90A @FF C5P", "Flashforge/Generic TPU-95A @FF C5", "Flashforge/Generic TPU-95A @FF C5P", + "Flashforge/Polymaker CoPA", "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", - "Flashforge/Polymaker Generic CoPA", - "Flashforge/Polymaker Generic S1", + "Flashforge/Polymaker S1", "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", @@ -885,7 +867,11 @@ "OrcaFilamentLibrary/FilAr PLA-mate Violeta", "OrcaFilamentLibrary/PolyLite Dual PLA @base", "OrcaFilamentLibrary/PolyTerra Dual PLA @System", - "Prusa/Prusa Generic PLA Silk @MK4S", + "Prusa/Generic PLA Silk @Prusa MK4S", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", "Qidi/QIDI ABS Rapido 0.2 nozzle", "Qidi/QIDI ABS Rapido 0.6 nozzle", "Qidi/QIDI ABS Rapido 0.8 nozzle", @@ -902,10 +888,6 @@ "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", "Snapmaker/PolyLite Dual PLA @0.2 nozzle", "Snapmaker/PolyLite J1 PLA", "Snapmaker/PolyLite J1 PLA @0.2 nozzle", @@ -1595,12 +1577,12 @@ "OF02UAVh": [ "Creality/Soleyin Ultra PLA" ], + "OF0AquDh": [ + "Flashforge/FusRock S-Multi" + ], "OF0FfcAG": [ "Anycubic/Anycubic TPU for ACE" ], - "OF0GIkJm": [ - "Tiertime/Tiertime Generic PLA Silk" - ], "OF0NgY1y": [ "BBL/COEX NYLEX PA6-CF", "OrcaFilamentLibrary/COEX NYLEX PA6-CF" @@ -1655,29 +1637,21 @@ "OF0yFLkY": [ "Anycubic/Anycubic ASA" ], - "OF0zx94L": [ - "Vzbot/Vzbot Generic PA" - ], "OF112FvY": [ "Anycubic/Generic PETG Basic" ], - "OF1Id239": [ - "Prusa/Prusa Generic PETG" - ], "OF1N1qMK": [ "OrcaFilamentLibrary/Panchroma PLA UV Shift", "Snapmaker/Panchroma PLA UV Shift" ], - "OF1OZujR": [ - "Flashforge/Flashforge Generic PVA" - ], "OF1Pke8t": [ "BBL/Overture Easy PLA", "OrcaFilamentLibrary/Overture Easy PLA" ], "OF1UNk9P": [ "Creality/Generic PP", - "OrcaFilamentLibrary/Generic PP" + "OrcaFilamentLibrary/Generic PP", + "Tiertime/Generic PP" ], "OF1W7c76": [ "Qidi/QIDI ASA-CF" @@ -1688,9 +1662,6 @@ "OF1d7c3A": [ "Snapmaker/Snapmaker ASA" ], - "OF1daEUW": [ - "Anker/Anker Generic PETG-CF" - ], "OF1dpPrW": [ "Qidi/Bambu PLA" ], @@ -1698,9 +1669,6 @@ "Elegoo/Elegoo PLA PRO", "OrcaFilamentLibrary/Elegoo PLA PRO" ], - "OF1uR1t2": [ - "Tiertime/Tiertime Generic PETG" - ], "OF223rZv": [ "Anycubic/Anycubic ABS" ], @@ -1715,9 +1683,6 @@ "OrcaFilamentLibrary/SUNLU PETG", "Sovol/SUNLU PETG" ], - "OF2RjrWH": [ - "Flashforge/FusRock Generic PAHT-GF" - ], "OF2TQpOO": [ "Qidi/QIDI PLA Silk" ], @@ -1733,9 +1698,6 @@ "OF2hfMcG": [ "OrcaArena/Arena PLA-CF" ], - "OF2mgDsI": [ - "Vzbot/Vzbot Generic PLA" - ], "OF2pj5l5": [ "BBL/Overture Super PLA+", "OrcaFilamentLibrary/Overture Super PLA+" @@ -1754,11 +1716,6 @@ "OF3OMgrI": [ "Creality/CR-Silk" ], - "OF3P0BQA": [ - "Anker/Anker Generic ABS", - "Anker/Anker Generic ABS 0.2 nozzle", - "Anker/Anker Generic ABS 0.25 nozzle" - ], "OF3WQaKK": [ "Creality/CR-PETG" ], @@ -1775,21 +1732,12 @@ "OF3msXEa": [ "Snapmaker/Snapmaker Dual PETG-CF" ], - "OF3s929u": [ - "Tiertime/Tiertime Generic PP" - ], - "OF3wxlw9": [ - "CoLiDo/CoLiDo Generic PETG" - ], "OF3ydJTT": [ "InfiMech/InfiMech PLA Hyper" ], "OF41jaTh": [ "Flashforge/Flashforge TPU-90A" ], - "OF42ZDpN": [ - "Flashforge/FusRock PAHT" - ], "OF43Raws": [ "Snapmaker/PolyTerra J1 PLA" ], @@ -1799,16 +1747,10 @@ "OF44VYzK": [ "OrcaFilamentLibrary/FilAr PETG Azul Francia" ], - "OF48L671": [ - "Ratrig/RatRig Generic ASA" - ], "OF4APyxe": [ "Creality/Hyper PAHT-CF" ], "OF4KsW72": [], - "OF4Mf5Gz": [ - "Creality/Creality Generic PETG" - ], "OF4Nhggz": [ "Artillery/Artillery PLA Basic+" ], @@ -1819,9 +1761,6 @@ "OF4WB37S": [ "Snapmaker/Snapmaker PETG" ], - "OF4XAUnp": [ - "Vzbot/Vzbot Generic ASA" - ], "OF4f8vVp": [ "WonderMaker/WonderMaker PET-CF" ], @@ -1831,22 +1770,11 @@ "OF4nQ62r": [ "Qidi/QIDI PLA Basic" ], - "OF4oCRKe": [ - "DeltaMaker/DeltaMaker Generic PETG" - ], "OF4ulo9Y": [ "WonderMaker/WonderMaker PVA" ], - "OF4xhTuK": [ - "OrcaArena/OrcaArena Generic PA-CF" - ], - "OF4zzGwp": [ - "Flashforge/FusRock Generic PET-GF" - ], - "OF51XQar": [ - "CONSTRUCT3D/C1 Generic PLA" - ], "OF53eLVD": [ + "Blocks/Generic ASA-CF", "Creality/Generic ASA-CF", "Elegoo/Generic ASA-CF" ], @@ -1856,6 +1784,9 @@ "OF54SvEe": [ "Prusa/Prusament PA-CF" ], + "OF55jHAJ": [ + "Prusa/Generic ABS HF" + ], "OF5BN24W": [ "Flashforge/Flashforge PPA-GF" ], @@ -1865,9 +1796,6 @@ "Qidi/PolyLite PLA", "Snapmaker/PolyLite PLA" ], - "OF5E5KNA": [ - "SecKit/SecKit Generic PC" - ], "OF5NQFKI": [ "Flashforge/Flashforge PLA Galaxy" ], @@ -1886,9 +1814,6 @@ "OF5YVJXH": [ "Artillery/Artillery ASA" ], - "OF5Zk4e1": [ - "Anycubic/Anycubic Generic ABS" - ], "OF5c6nq3": [ "Flashforge/Generic TPU-64D" ], @@ -1912,10 +1837,6 @@ "OF5vgi2G": [ "OrcaFilamentLibrary/FilAr PLA-mate Azul" ], - "OF5vzBhb": [ - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying PLA" - ], "OF5w29Kq": [ "Flashforge/Flashforge HS PETG" ], @@ -1931,23 +1852,17 @@ "OF6ATsCF": [ "Snapmaker/Snapmaker Dual PLA-CF" ], - "OF6Fpw1E": [ - "Comgrow/Comgrow Generic PETG" - ], "OF6H51Xx": [ "Snapmaker/Polymaker PETG", "Sovol/Polymaker PETG" ], - "OF6K467o": [ - "InfiMech/InfiMech Generic PA-CF" - ], - "OF6KELDx": [ - "Co Print/CoPrint Generic PLA" - ], "OF6Ll8lK": [ "Elegoo/Elegoo PETG Translucent", "OrcaFilamentLibrary/Elegoo PETG Translucent" ], + "OF6MMR8P": [ + "TwoTrees/Generic 95A TPU" + ], "OF6MOPWx": [ "Creality/Generic PET", "Elegoo/Generic PET", @@ -1963,33 +1878,19 @@ "OF6VgL2U": [ "Phrozen/Phrozen PLA" ], - "OF6WddJ1": [ - "Flashforge/FusRock S-PAHT" - ], "OF6kj4jI": [ "iQ/Fiberthree PACF Pro P2" ], "OF6ooviO": [ "FLSun/FLSun S1 TPU" ], - "OF6rMr3U": [ - "Flashforge/FusRock Generic S-Multi" - ], "OF6rdQ6M": [ - "Creality/Generic PPS-CF" - ], - "OF6tKa1Z": [ - "Anker/Anker Generic TPU" + "Creality/Generic PPS-CF", + "Tiertime/Generic PPS-CF" ], "OF6ueBwd": [ "Flashforge/Flashforge PLA Pro" ], - "OF6vKLaU": [ - "Artillery/Artillery Generic ASA" - ], - "OF6xLvYg": [ - "InfiMech/InfiMech Generic PC" - ], "OF6zAVFj": [ "Sovol/Sovol Zero TPU" ], @@ -2000,7 +1901,8 @@ "Snapmaker/Snapmaker ABS" ], "OF74KeQR": [ - "OrcaFilamentLibrary/Generic PHA" + "OrcaFilamentLibrary/Generic PHA", + "Tiertime/Generic PHA" ], "OF79Fbo6": [ "Cubicon/Cubicon PC" @@ -2020,11 +1922,9 @@ "OF7c9fln": [ "Anycubic/Anycubic PLA Translucent" ], - "OF7g2vYQ": [ - "Co Print/CoPrint Generic TPU" - ], "OF7lOgYF": [ - "OrcaFilamentLibrary/Generic PETG HF" + "OrcaFilamentLibrary/Generic PETG HF", + "Prusa/Generic PETG HF" ], "OF7lwj52": [ "CoLiDo/CoLiDo PETG" @@ -2032,15 +1932,12 @@ "OF7nBAd3": [ "Eryone/Eryone Silk PLA" ], + "OF7pjCsO": [ + "Flashforge/FusRock PAHT" + ], "OF7tt7DO": [ "Cubicon/Cubicon PLA+" ], - "OF7uE5KB": [ - "Anker/Anker Generic PA-CF" - ], - "OF8CXrvm": [ - "SecKit/SecKit Generic PA" - ], "OF8GnyFU": [ "Creality/Hyper ABS" ], @@ -2051,14 +1948,12 @@ "Snapmaker/Snapmaker J1 PET" ], "OF8Tlg47": [ - "OrcaFilamentLibrary/Generic PPA-GF" + "OrcaFilamentLibrary/Generic PPA-GF", + "Tiertime/Generic PPA-GF" ], "OF8aFWfQ": [ "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" ], - "OF8bLDu7": [ - "Blocks/Blocks Generic PA-CF" - ], "OF8dCquh": [ "Snapmaker/Snapmaker J1 ABS Benchy" ], @@ -2075,14 +1970,12 @@ "Eryone/Eryone PETG" ], "OF8tPByX": [ - "OrcaFilamentLibrary/Generic PPA-CF" + "OrcaFilamentLibrary/Generic PPA-CF", + "Tiertime/Generic PPA-CF" ], "OF8wE5l7": [ "Artillery/Artillery PETG Basic" ], - "OF97ru74": [ - "Prusa/Prusa Generic PC" - ], "OF995YXg": [ "Flashforge/Flashforge TPU-64D" ], @@ -2109,9 +2002,6 @@ "OF9emAI9": [ "Ratrig/RatRig PunkFil PETG" ], - "OF9fOPpd": [ - "Vzbot/Vzbot Generic PC" - ], "OF9z5LZ9": [ "FLSun/FLSun S1 PETG" ], @@ -2121,9 +2011,6 @@ "OFAC7Wyu": [ "Artillery/Artillery PLA Matte" ], - "OFACSw9O": [ - "Creality/Creality Generic PLA" - ], "OFAIBCLJ": [ "Elegoo/Generic ABS-CF" ], @@ -2148,34 +2035,12 @@ "OFAt6ec0": [ "OrcaFilamentLibrary/FilAr PLA Marron Oxido" ], - "OFB09fpe": [ - "Ratrig/RatRig Generic TPU" - ], - "OFB0a3hT": [ - "Anker/Anker Generic PLA-CF" - ], - "OFB1Tv1E": [ - "Anycubic/Anycubic Generic PA" - ], "OFB5SmWk": [ "OrcaFilamentLibrary/Valment PLA Galaxy" ], - "OFB8wSps": [ - "Flashforge/FusRock PET-CF" - ], - "OFB9dx27": [ - "Blocks/Blocks Generic ASA" - ], "OFBBgw7B": [ "WonderMaker/WonderMaker PLA Wood" ], - "OFBC32Wb": [ - "Flashforge/FusRock PET" - ], - "OFBIadjM": [ - "Chuanying/Chuanying ASA", - "Chuanying/Chuanying Generic ASA" - ], "OFBJAdLw": [ "LH/LHS PCTG" ], @@ -2198,21 +2063,12 @@ "OFBoSWxb": [ "Snapmaker/PolyLite PLA Luminous" ], - "OFBpcB0a": [ - "TwoTrees/TwoTrees Generic HS PLA" - ], - "OFBtlI8M": [ - "FlyingBear/FlyingBear Generic ABS" - ], "OFBw6eEG": [ "OrcaFilamentLibrary/Overture Matte PLA" ], "OFC1PzXz": [ "Creality/Hyper Luminous" ], - "OFC20UMj": [ - "Flashforge/Flashforge Generic TPU" - ], "OFC5f4Ay": [ "RH3D/Generic PCCF" ], @@ -2221,7 +2077,8 @@ "Snapmaker/Panchroma PLA Starlight" ], "OFCD8qiU": [ - "OrcaFilamentLibrary/Generic EVA" + "OrcaFilamentLibrary/Generic EVA", + "Tiertime/Generic EVA" ], "OFCEA7Nt": [ "Sovol/Sovol SV06 Plus ACE ABS" @@ -2233,28 +2090,22 @@ "OFCJpR7a": [ "Creality/HP Ultra PLA" ], - "OFCVUEaV": [ - "Tiertime/Tiertime Generic TPU" - ], "OFCZsqXg": [ "Creality/Hyper PLA" ], - "OFCaJHAA": [ - "Flashforge/FusRock Generic S-PAHT" - ], "OFCccVrQ": [ "OrcaFilamentLibrary/PolyTerra Dual PLA", "Snapmaker/PolyTerra Dual PLA" ], - "OFCcsYtf": [ - "FLSun/FLSun Generic ASA" - ], "OFCidU7j": [ "OrcaFilamentLibrary/DREMC ABS-GF" ], "OFCjG251": [ "OrcaFilamentLibrary/FilAr PLA-mate Verde" ], + "OFCn83wF": [ + "Flashforge/FusRock S-PAHT" + ], "OFCnywiC": [ "Tiertime/Tiertime PET-CF" ], @@ -2264,19 +2115,12 @@ "OFCp3Bgo": [ "Anycubic/Anycubic PLA SE" ], - "OFCu3jES": [], "OFCuaCer": [ "Volumic/Désactivé" ], "OFD21ije": [ "Cubicon/Cubicon PA-CF" ], - "OFD2JNS1": [ - "Dremel/Dremel Generic PLA" - ], - "OFD6kN7F": [ - "OrcaArena/OrcaArena Generic PLA" - ], "OFD8loeT": [ "re3D/re3D rPETG" ], @@ -2307,15 +2151,39 @@ "InfiMech/Other PETG" ], "OFDSrzZ8": [ + "Anker/Generic PLA", + "Anycubic/Generic PLA", + "Artillery/Generic PLA", + "Blocks/Generic PLA", + "CONSTRUCT3D/Generic PLA", + "Chuanying/Chuanying PLA", + "Chuanying/Generic PLA", + "Co Print/Generic PLA", + "CoLiDo/Generic PLA", + "Comgrow/Generic PLA", + "Creality/Creality Generic PLA", "Creality/Generic PLA", "Custom/Generic PLA", + "DeltaMaker/Generic PLA", + "Dremel/Generic PLA", "Elegoo/Generic PLA", + "FLSun/Generic PLA", "Flashforge/Generic PLA", + "FlyingBear/Generic PLA", + "Ginger Additive/Generic PLA", + "InfiMech/Generic PLA", "LONGER/Generic PLA", + "OrcaArena/Generic PLA", "OrcaFilamentLibrary/Generic PLA", + "Peopoly/Generic PLA", + "Prusa/Generic PLA", "Qidi/Generic PLA", "RH3D/Generic PLA", + "Ratrig/Generic PLA", + "SecKit/Generic PLA", "Sovol/Generic PLA", + "Tiertime/Generic PLA", + "Vzbot/Generic PLA", "Z-Bolt/Generic PLA" ], "OFDdEaoL": [ @@ -2324,9 +2192,6 @@ "OFDe8uyM": [ "OrcaFilamentLibrary/Valment PLA" ], - "OFDeTsJw": [ - "Chuanying/Chuanying Generic HIPS" - ], "OFDgQaca": [ "FlyingBear/FlyingBear PETG" ], @@ -2336,14 +2201,33 @@ "OFDtop41": [ "Creality/Generic Support for PA" ], + "OFDu1qE7": [ + "Flashforge/FusRock PET-CF" + ], "OFDvXujf": [ + "Anker/Generic PVA", + "Anycubic/Generic PVA", + "Blocks/Generic PVA", + "Chuanying/Generic PVA", "Creality/Generic PVA", "Custom/Generic PVA", - "OrcaFilamentLibrary/Generic PVA" + "FLSun/Generic PVA", + "Flashforge/Generic PVA", + "OrcaArena/Generic PVA", + "OrcaFilamentLibrary/Generic PVA", + "Prusa/Generic PVA", + "Qidi/Generic PVA", + "Ratrig/Generic PVA", + "SecKit/Generic PVA", + "Tiertime/Generic PVA", + "Vzbot/Generic PVA" ], "OFDvqJ6n": [ "OrcaFilamentLibrary/Overture ABS Basic" ], + "OFDwBwO5": [ + "Prusa/Generic PVA HF" + ], "OFDxfPgH": [ "OrcaFilamentLibrary/Bambu PLA Sparkle" ], @@ -2351,9 +2235,6 @@ "BBL/COEX TPU 60A", "OrcaFilamentLibrary/COEX TPU 60A" ], - "OFEE1Dld": [ - "Artillery/Artillery Generic TPU" - ], "OFEGNJD4": [ "OrcaFilamentLibrary/Bambu PLA Silk" ], @@ -2366,18 +2247,13 @@ "OFEOnBj6": [ "Snapmaker/Snapmaker PLA Lite" ], - "OFETFWx7": [ - "SecKit/SecKit Generic PLA" - ], "OFEWYR89": [ + "Anker/Generic PLA+", "Qidi/Generic PLA+" ], "OFEZ449N": [ "OrcaFilamentLibrary/FilAr PLA-mate Uva" ], - "OFEZNNw1": [ - "Ratrig/RatRig Generic PA" - ], "OFEZpel7": [ "Volumic/PPS Carbone (Performance)" ], @@ -2413,9 +2289,6 @@ "OFF3cuzT": [ "Creality/Generic TPU 64D" ], - "OFF73Bvp": [ - "SecKit/SecKit Generic PLA-CF" - ], "OFF9OKoY": [ "OrcaFilamentLibrary/PolyLite PLA Pro", "Snapmaker/PolyLite PLA Pro" @@ -2438,9 +2311,6 @@ "OFFX1DRD": [ "FlyingBear/FlyingBear PC" ], - "OFFZ0BBL": [ - "FlyingBear/FlyingBear Generic PLA" - ], "OFFZ458u": [ "Snapmaker/Fiberon PA612-ESD" ], @@ -2457,9 +2327,6 @@ "OFFwJWea": [ "Anycubic/Anycubic PLA Silk" ], - "OFFxZ7hZ": [ - "Chuanying/Chuanying Generic PLA-CF10" - ], "OFG0kOKX": [ "Volumic/Volumic PETG Ultra" ], @@ -2469,25 +2336,10 @@ "OFG4do34": [ "Qidi/Qidi ASA-Aero" ], - "OFGDaEHO": [ - "Tiertime/Tiertime Generic BVOH" - ], - "OFGGyAgJ": [ - "Vzbot/Vzbot Generic TPU" - ], "OFGJ1nxs": [ "FlyingBear/Other PLA", "InfiMech/Other PLA" ], - "OFGKLoUm": [ - "Anycubic/Anycubic Generic TPU" - ], - "OFGLeiNL": [], - "OFGPJxnt": [ - "Anker/Anker Generic PC", - "Anker/Anker Generic PC 0.2 nozzle", - "Anker/Anker Generic PC 0.25 nozzle" - ], "OFGVwfK0": [ "OrcaFilamentLibrary/FilAr PLA-mate Gris" ], @@ -2514,9 +2366,6 @@ "OFGxC8gB": [ "Creality/CR-Wood" ], - "OFGzUNbm": [ - "Tiertime/Tiertime Generic PPS-CF" - ], "OFH2nN08": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" ], @@ -2535,24 +2384,12 @@ "OFHAccHz": [ "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" ], - "OFHFZ1Te": [ - "Prusa/Prusa Generic PLA Silk" - ], - "OFHQUAoZ": [ - "FLSun/FLSun Generic PA-CF" - ], "OFHTVfaU": [ "Sovol/Sovol Zero PETG" ], - "OFHUnLY2": [ - "Vzbot/Vzbot Generic PETG" - ], "OFHWSM21": [ "OrcaFilamentLibrary/Fiberon PET-CF" ], - "OFHa3RZT": [ - "Tiertime/Tiertime Generic PA-CF" - ], "OFHa48An": [ "OrcaFilamentLibrary/Bambu PET-CF" ], @@ -2576,9 +2413,6 @@ "OFI6WZpn": [ "OrcaArena/Arena Support W" ], - "OFI80Hct": [ - "Anycubic/Anycubic Generic ASA" - ], "OFIBXa0k": [ "OrcaFilamentLibrary/FilAr PLA-mate Rojo" ], @@ -2588,6 +2422,9 @@ "OFIK0xFa": [ "FLSun/FLSun S1 ASA" ], + "OFIKZxPF": [ + "Creality/Generic PLA Wood" + ], "OFIPjqHt": [ "OrcaArena/Arena Support G" ], @@ -2600,23 +2437,12 @@ "OFIWMSGX": [ "Qidi/HATCHBOX PETG" ], - "OFIYTy8S": [ - "Anker/Anker Generic PLA+", - "Anker/Anker Generic PLA+ 0.2 nozzle", - "Anker/Anker Generic PLA+ 0.25 nozzle" - ], "OFIZMQwM": [ "LH/LHS TPU" ], "OFIamQnD": [ "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" ], - "OFIda816": [ - "Vzbot/Vzbot Generic PVA" - ], - "OFIeCuXj": [ - "Peopoly/Peopoly Generic PETG" - ], "OFIegjmD": [ "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" ], @@ -2626,18 +2452,12 @@ "OFIgbDHq": [ "Anycubic/Anycubic PLA Luminous" ], - "OFIieIka": [ - "Flashforge/Polymaker CoPA" - ], "OFIxOuOu": [ "Snapmaker/PolyLite PLA Starlight" ], "OFIxitiU": [ "Flashforge/Flashforge PLA Basic" ], - "OFIy3kLw": [ - "Prusa/Prusa Generic PA" - ], "OFJ3HRsR": [ "OrcaArena/Arena ABS" ], @@ -2645,9 +2465,6 @@ "FLSun/FLSun T1 PETG" ], "OFJHBEGD": [], - "OFJJpaLS": [ - "FLSun/FLSun Generic PETG" - ], "OFJNeELv": [ "OrcaFilamentLibrary/FILL3D PA" ], @@ -2658,9 +2475,6 @@ "OFJQDUk3": [ "OrcaFilamentLibrary/FilAr PETG Cristal" ], - "OFJSksUs": [ - "FLSun/FLSun Generic PLA" - ], "OFJVFpJz": [ "Sovol/Sovol Zero PLA Silk" ], @@ -2691,12 +2505,6 @@ "OFJxSqO4": [ "Wanhao France/YUMI PLA Direct Drive" ], - "OFK01afJ": [ - "Qidi/Qidi Generic PC" - ], - "OFK4LdYI": [ - "Prusa/Prusa Generic ASA HF" - ], "OFK74HJD": [ "Flashforge/Flashforge PLA Pro" ], @@ -2709,8 +2517,8 @@ "OFKKajh6": [ "OrcaFilamentLibrary/FilAr PLA Gris Plata" ], - "OFKNAhls": [ - "Qidi/Qidi Generic PETG" + "OFKTGKJU": [ + "Flashforge/FusRock PET" ], "OFKTSiYF": [ "OrcaFilamentLibrary/FilAr PLA Blanco Calido" @@ -2718,6 +2526,9 @@ "OFKUEXPA": [ "Snapmaker/Snapmaker Dual ASA" ], + "OFKW5hEW": [ + "Flashforge/FusRock PAHT-CF" + ], "OFKWWgyp": [ "OrcaFilamentLibrary/FilAr PLA Carpincho" ], @@ -2746,27 +2557,15 @@ "OFKpQTJI": [ "Flashforge/Flashforge TPU 65D" ], - "OFKuTr12": [ - "Tiertime/Tiertime Generic PE" - ], - "OFKyCgaK": [ - "Anycubic/Anycubic Generic PLA" - ], "OFL9aRjN": [ "Snapmaker/Snapmaker PETG HF" ], "OFLAXKqP": [ "WonderMaker/WonderMaker TPU 95A" ], - "OFLBUkwC": [ - "Vzbot/Vzbot Generic ABS" - ], "OFLC1oRH": [ "Flashforge/Flashforge PPA-CF" ], - "OFLDSqqi": [ - "Flashforge/Flashforge Generic ABS" - ], "OFLJ8S6I": [ "Flashforge/SUNLU Wood PLA", "OrcaFilamentLibrary/SUNLU Wood PLA" @@ -2776,12 +2575,26 @@ "Tiertime/Tiertime TPU 95A" ], "OFLPAxz3": [ + "Anker/Generic ASA", + "Anycubic/Generic ASA", + "Artillery/Generic ASA", + "Blocks/Generic ASA", + "Chuanying/Chuanying ASA", + "Chuanying/Generic ASA", "Creality/Generic ASA", "Custom/Generic ASA", "Elegoo/Generic ASA", + "FLSun/Generic ASA", "Flashforge/Generic ASA", + "OrcaArena/Generic ASA", "OrcaFilamentLibrary/Generic ASA", - "RH3D/Generic ASA" + "Prusa/Generic ASA", + "Qidi/Generic ASA", + "RH3D/Generic ASA", + "Ratrig/Generic ASA", + "SecKit/Generic ASA", + "Tiertime/Generic ASA", + "Vzbot/Generic ASA" ], "OFLTYJW0": [ "Snapmaker/Snapmaker PLA Translucent" @@ -2797,12 +2610,24 @@ "Qidi/Bambu PETG" ], "OFLakOUI": [ + "Anker/Generic PC", + "Anycubic/Generic PC", + "Blocks/Generic PC", "Creality/Generic PC", "Custom/Generic PC", "Elegoo/Generic PC", + "FLSun/Generic PC", + "FlyingBear/Generic PC", + "InfiMech/Generic PC", + "OrcaArena/Generic PC", "OrcaFilamentLibrary/Generic PC", + "Prusa/Generic PC", "Qidi/Generic PC", - "Sovol/Generic PC" + "Ratrig/Generic PC", + "SecKit/Generic PC", + "Sovol/Generic PC", + "Tiertime/Generic PC", + "Vzbot/Generic PC" ], "OFLbXwoL": [ "Artillery/Artillery PLA Silk" @@ -2820,12 +2645,6 @@ "OFLgwqp2": [ "Creality/Hyper PETG-GF" ], - "OFLrdHse": [ - "Flashforge/Flashforge Generic HS PLA" - ], - "OFLuczRG": [ - "Creality/Creality Generic ASA-CF" - ], "OFLzx3J4": [ "Creality/Hyper Marble" ], @@ -2835,9 +2654,6 @@ "OFM4iJlv": [ "Creality/Generic PA12-CF" ], - "OFM87w9T": [ - "Tiertime/Tiertime Generic SBS" - ], "OFM91vZs": [ "BBL/Overture ASA", "OrcaFilamentLibrary/Overture ASA" @@ -2845,15 +2661,9 @@ "OFMDHOcT": [ "Qidi/QIDI TPU-Aero" ], - "OFMEbuBE": [ - "Blocks/Blocks Generic TPU" - ], "OFMIma8C": [ "Flashforge/Flashforge PLA Luminous" ], - "OFMIurFh": [ - "Creality/Creality HF Generic Speed PLA" - ], "OFMK5gVo": [ "WonderMaker/WonderMaker PLA Basic" ], @@ -2863,9 +2673,6 @@ "OFMSvS8z": [ "Artillery/Artillery PA" ], - "OFMTBcnz": [ - "Tiertime/Tiertime Generic PP-CF" - ], "OFMTK0UC": [ "OrcaFilamentLibrary/Bambu Support For PA/PET" ], @@ -2873,30 +2680,16 @@ "Flashforge/SUNLU PLA+", "OrcaFilamentLibrary/SUNLU PLA+" ], - "OFMZAoqa": [ - "Tiertime/Tiertime Generic PVA" - ], "OFMZvH0z": [ "BBL/Overture Rock PLA", "OrcaFilamentLibrary/Overture Rock PLA" ], - "OFMgJQCZ": [ - "Anker/Anker Generic PA", - "Anker/Anker Generic PA 0.2 nozzle", - "Anker/Anker Generic PA 0.25 nozzle" - ], "OFMjtqTC": [ "OrcaFilamentLibrary/Bambu PLA Wood" ], - "OFMoLF46": [ - "FLSun/FLSun Generic TPU" - ], "OFMpxamb": [ "Flashforge/Flashforge PETG" ], - "OFMqYusc": [ - "Creality/Creality Generic PA" - ], "OFMsDGbs": [ "Anycubic/Anycubic TPU" ], @@ -2906,9 +2699,6 @@ "OFMyLYV8": [ "Flashforge/Flashforge PETG Transparent" ], - "OFN7aNHe": [ - "Tiertime/Tiertime Generic PC" - ], "OFN9fefN": [ "Cubicon/Cubicon ABS-A100" ], @@ -2918,12 +2708,6 @@ "OFNGTH3w": [ "Tiertime/Tiertime PLA" ], - "OFNLXV8X": [ - "Tiertime/Tiertime Generic ABS" - ], - "OFNOxcYl": [ - "Ratrig/RatRig Generic PA-CF" - ], "OFNQKF0M": [ "Tiertime/Tiertime ABS" ], @@ -2933,9 +2717,6 @@ "OFNU9YIW": [ "OrcaFilamentLibrary/FilAr PETG Azul Boreal" ], - "OFNW4ZTC": [ - "Creality/Creality Generic PLA Wood" - ], "OFNWcJsM": [ "Comgrow/Comgrow T300 PLA" ], @@ -2945,30 +2726,18 @@ "OFNX8GI1": [ "Sovol/Sovol Zero ABS" ], - "OFNYewRS": [ - "Blocks/Blocks Generic PLA" - ], - "OFNZYgLA": [ - "Qidi/Qidi Generic PVA" - ], "OFNZjrLo": [ "Sovol/Sovol SV06 Plus ACE PLA" ], - "OFNcdCrm": [ - "Anycubic/Anycubic Generic PLA-CF" - ], "OFNemJM6": [ "OrcaFilamentLibrary/FilAr PLA Cobre" ], - "OFNiSLfL": [ - "OrcaFilamentLibrary/Generic PP-GF" + "OFNjku08": [ + "CONSTRUCT3D/Generic High Flow PETG" ], "OFNk8bxk": [ "OrcaFilamentLibrary/Bambu PA6-GF" ], - "OFNn21yM": [ - "Vzbot/Vzbot Generic PA-CF" - ], "OFNstOna": [ "Eryone/Eryone PETG-CF" ], @@ -2980,6 +2749,7 @@ "Snapmaker/Panchroma PLA Neon" ], "OFO5djrM": [ + "Chuanying/Generic PETG-CF10", "Flashforge/Generic PETG-CF10" ], "OFOABq7t": [ @@ -2995,9 +2765,6 @@ "OFOJPAAS": [ "iQ/VXL90 TiQ2 P2" ], - "OFOKYhi6": [ - "Prusa/Prusa Generic PETG HF" - ], "OFOPU1xv": [ "Snapmaker/Snapmaker PLA Full Spectrum" ], @@ -3051,19 +2818,14 @@ "OFPc4zVY": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" ], - "OFPdhDlK": [ - "Anycubic/Anycubic Generic PA-CF" - ], - "OFPjOUtz": [ - "Flashforge/FusRock Generic PAHT-CF" - ], "OFPkCJKE": [ "Creality/Panchroma PLA Satin", "OrcaFilamentLibrary/Panchroma PLA Satin", "Snapmaker/Panchroma PLA Satin" ], "OFPklMI1": [ - "OrcaFilamentLibrary/Generic PE" + "OrcaFilamentLibrary/Generic PE", + "Tiertime/Generic PE" ], "OFPoyiFs": [ "OrcaFilamentLibrary/Polymaker HT-PLA", @@ -3075,9 +2837,6 @@ "OFPryWt5": [ "Lulzbot/Lulzbot 2.85mm PLA" ], - "OFPy0Ogq": [ - "Qidi/Qidi Generic PA-CF" - ], "OFQ1KzO8": [ "Snapmaker/Snapmaker J1 PLA Silk" ], @@ -3090,15 +2849,9 @@ "OFQ40XeN": [ "Qidi/QIDI PETG Tough" ], - "OFQ7I5vC": [ - "Prusa/Prusa Generic PLA-CF" - ], "OFQ9qnkd": [ "FLSun/FLSun T1 PLA High Speed" ], - "OFQC8Vna": [ - "Flashforge/Flashforge Generic PETG-CF" - ], "OFQEGL7z": [ "FlyingBear/FlyingBear PA-CF" ], @@ -3109,9 +2862,22 @@ "OrcaFilamentLibrary/Bambu Support G" ], "OFQLcbps": [ + "Anker/Generic PA-CF", + "Anycubic/Generic PA-CF", + "Blocks/Generic PA-CF", "Creality/Generic PA-CF", "Custom/Generic PA-CF", - "OrcaFilamentLibrary/Generic PA-CF" + "FLSun/Generic PA-CF", + "FlyingBear/Generic PA-CF", + "InfiMech/Generic PA-CF", + "OrcaArena/Generic PA-CF", + "OrcaFilamentLibrary/Generic PA-CF", + "Prusa/Generic PA-CF", + "Qidi/Generic PA-CF", + "Ratrig/Generic PA-CF", + "SecKit/Generic PA-CF", + "Tiertime/Generic PA-CF", + "Vzbot/Generic PA-CF" ], "OFQMTRc8": [ "Snapmaker/Snapmaker J1 PETG" @@ -3119,9 +2885,6 @@ "OFQMsFfF": [ "Qidi/QIDI ABS-GF10" ], - "OFQTrLXB": [ - "Qidi/Qidi Generic PLA-CF" - ], "OFQWIKbV": [ "OrcaFilamentLibrary/FilAr PLA Titanio" ], @@ -3134,9 +2897,6 @@ "OFQbjX3s": [ "OrcaFilamentLibrary/FILL3D PETG" ], - "OFQbqeN7": [ - "Qidi/Qidi Generic PA" - ], "OFQdaVZS": [ "Creality/Generic PET-CF", "Elegoo/Generic PET-CF" @@ -3147,8 +2907,8 @@ "OFQiq4fb": [ "Flashforge/Flashforge PVA" ], - "OFQswlnF": [ - "Tiertime/Tiertime Generic PA" + "OFQyyO0l": [ + "Flashforge/Polymaker CoPA" ], "OFR0gODA": [ "SeeMeCNC/SeeMeCNC ABS" @@ -3156,15 +2916,9 @@ "OFR1XLMN": [ "Qidi/QIDI TPU 95A-HF" ], - "OFRDLNM9": [ - "Peopoly/Peopoly Generic PLA" - ], "OFRJ325z": [ "LH/LHS PETG" ], - "OFRPEs5o": [ - "Flashforge/Flashforge Generic ASA" - ], "OFRhBryT": [ "Cubicon/Cubicon PLAi21" ], @@ -3181,11 +2935,6 @@ "OrcaFilamentLibrary/Panchroma PLA Celestial", "Snapmaker/Panchroma PLA Celestial" ], - "OFRiyes1": [ - "Anker/Anker Generic ASA", - "Anker/Anker Generic ASA 0.2 nozzle", - "Anker/Anker Generic ASA 0.25 nozzle" - ], "OFRkjhxK": [ "Volumic/Volumic PVA-BVOH (Performance)" ], @@ -3198,43 +2947,22 @@ "OFRpAZ1P": [ "DeltaMaker/DeltaMaker Brand PLA" ], - "OFRujL0v": [ - "Flashforge/FusRock Generic PET-CF" - ], - "OFRusgEn": [ - "Chuanying/Chuanying Generic PVA" - ], "OFRyOsZj": [ "re3D/re3D PLA" ], "OFRzR5mi": [ "OrcaFilamentLibrary/eSUN ePLA-LW" ], - "OFRzsaDK": [ - "FlyingBear/FlyingBear Generic TPU" - ], "OFS2tn6G": [ "OrcaFilamentLibrary/Fiberon PA612-CF" ], "OFS4jbj3": [ "Eryone/Eryone PA" ], - "OFS8JF3S": [ - "Qidi/Qidi Generic PLA High Speed" - ], "OFS8lTQt": [ "OrcaFilamentLibrary/Panchroma PLA Silk", "Snapmaker/Panchroma PLA Silk" ], - "OFSDFYs4": [ - "Creality/Creality Generic PLA-CF" - ], - "OFSGbf2I": [ - "Anycubic/Anycubic Generic PVA" - ], - "OFSPdsuW": [ - "Tiertime/Tiertime Generic PPA-CF" - ], "OFSStjay": [ "FLSun/FLSun S1 PLA Silk" ], @@ -3254,9 +2982,6 @@ "OFTGHyNC": [ "OrcaFilamentLibrary/Bambu PLA Impact" ], - "OFTKFAZ4": [ - "Tiertime/Tiertime Generic PCTG" - ], "OFTOPcx0": [ "OrcaFilamentLibrary/Eolas Prints TPU Transition" ], @@ -3293,9 +3018,6 @@ "OFTvvox9": [ "Sovol/Sovol SV06 ACE PLA" ], - "OFU0n0zW": [ - "FLSun/FLSun T1 PLA Generic" - ], "OFU1zPxE": [ "Elegoo/Elegoo PLA Galaxy", "OrcaFilamentLibrary/Elegoo PLA Galaxy" @@ -3303,15 +3025,6 @@ "OFU3QXL7": [ "re3D/re3D PC" ], - "OFU3zwPc": [ - "Prusa/Prusa Generic TPU HF" - ], - "OFU5N9jI": [ - "OrcaArena/OrcaArena Generic TPU" - ], - "OFU6fjbi": [ - "Co Print/CoPrint Generic ABS" - ], "OFU7CKZt": [ "Volumic/Volumic ASA Ultra (Performance)" ], @@ -3327,33 +3040,18 @@ "OFUIfGoh": [ "Snapmaker/Snapmaker Dual PET" ], - "OFUScM0D": [ - "Flashforge/FusRock S-Multi" - ], - "OFUWRqwb": [ - "Creality/Creality Generic PA-CF" - ], "OFUYCqtB": [ "InfiMech/InfiMech PLA" ], "OFUaHEO9": [ "Anycubic/Anycubic PEBA 95A" ], - "OFUaVAdj": [ - "Tiertime/Tiertime Generic ASA" - ], "OFUanySo": [ "OrcaFilamentLibrary/Bambu PLA Silk+" ], "OFUmS5z5": [ "Creality/eSUN ASA+" ], - "OFUrStd6": [ - "Ratrig/RatRig Generic PCTG" - ], - "OFUtGagr": [ - "Artillery/Artillery Generic PLA-CF" - ], "OFUyDDNv": [ "Elegoo/Elegoo PC", "OrcaFilamentLibrary/Elegoo PC" @@ -3378,16 +3076,10 @@ "OFVHMFJX": [ "Qidi/QIDI PETG Tough 0.2 nozzle" ], - "OFVKADz5": [ - "Comgrow/Comgrow Generic PLA" - ], "OFVptRxp": [ "BBL/COEX TPE 30D", "OrcaFilamentLibrary/COEX TPE 30D" ], - "OFVqZ2H0": [ - "FLSun/FLSun Generic PC" - ], "OFVtIasg": [ "Eryone/Eryone ASA" ], @@ -3402,15 +3094,9 @@ "OFW8lqnb": [ "Snapmaker/Snapmaker PETG Translucent" ], - "OFW9uIkE": [ - "Tiertime/Tiertime Generic HIPS" - ], "OFWDe7YH": [ "Qidi/QIDI UltraPA" ], - "OFWIr7ZE": [ - "CoLiDo/CoLiDo Generic ABS" - ], "OFWRITFw": [ "Prusa/Prusament rPLA" ], @@ -3420,9 +3106,6 @@ "OFWTRJ1K": [ "OrcaFilamentLibrary/FilAr PLA Bronce" ], - "OFWY6vBh": [ - "Anycubic/Anycubic Generic PC" - ], "OFWYtgCa": [ "Elegoo/Elegoo PLA Wood", "OrcaFilamentLibrary/Elegoo PLA Wood" @@ -3430,19 +3113,26 @@ "OFWa0NiB": [ "Volumic/Volumic NYLON Ultra" ], - "OFWadebJ": [ - "Tiertime/Tiertime Generic PETG-CF" - ], "OFWao3Ic": [ "Creality/Ender-PLA" ], - "OFWbbuRY": [ - "InfiMech/InfiMech Generic ABS" - ], "OFWbdGsC": [ + "Anker/Generic PLA-CF", + "Anycubic/Generic PLA-CF", + "Artillery/Generic PLA-CF", + "Blocks/Generic PLA-CF", "Creality/Generic PLA-CF", "Custom/Generic PLA-CF", - "OrcaFilamentLibrary/Generic PLA-CF" + "FLSun/Generic PLA-CF", + "Flashforge/Generic PLA-CF", + "OrcaArena/Generic PLA-CF", + "OrcaFilamentLibrary/Generic PLA-CF", + "Prusa/Generic PLA-CF", + "Qidi/Generic PLA-CF", + "Ratrig/Generic PLA-CF", + "SecKit/Generic PLA-CF", + "Tiertime/Generic PLA-CF", + "Vzbot/Generic PLA-CF" ], "OFWgFOjn": [ "Snapmaker/Snapmaker PLA Silk" @@ -3450,18 +3140,9 @@ "OFWnSvGu": [ "Flashforge/Flashforge ASA-GF" ], - "OFWof1Ap": [ - "FLSun/FLSun Generic ABS" - ], - "OFWukXja": [ - "Qidi/Qidi Generic TPU 95A" - ], "OFWwF7K7": [ "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" ], - "OFWzr7m0": [ - "Anycubic/Anycubic Generic PETG" - ], "OFX0etlv": [ "re3D/re3D PETG" ], @@ -3469,6 +3150,7 @@ "OrcaFilamentLibrary/Fiberon PA12-CF" ], "OFX2zcrM": [ + "Chuanying/Generic PLA-CF10", "Flashforge/Generic PLA-CF10" ], "OFXCBZTA": [ @@ -3486,12 +3168,6 @@ "OFXTPuqV": [ "OrcaFilamentLibrary/Elas PETG Basic" ], - "OFXXUHSG": [ - "Chuanying/Chuanying Generic PETG-CF10" - ], - "OFXhZ3uY": [ - "OrcaArena/OrcaArena Generic PC" - ], "OFXi59OX": [ "Afinia/Afinia Value ABS" ], @@ -3500,7 +3176,11 @@ ], "OFXkm8q1": [ "Creality/Generic PP-CF", - "OrcaFilamentLibrary/Generic PP-CF" + "OrcaFilamentLibrary/Generic PP-CF", + "Tiertime/Generic PP-CF" + ], + "OFXmv5p0": [ + "Creality/Generic Speed PLA" ], "OFXn3Vd9": [ "Qidi/QIDI Support For PAHT" @@ -3511,14 +3191,6 @@ "OFXuGxvQ": [ "Volumic/Volumic PLA Ultra" ], - "OFXuwtnq": [ - "Co Print/CoPrint Generic PETG" - ], - "OFXyyfX6": [ - "Anker/Anker Generic PLA Silk", - "Anker/Anker Generic PLA Silk 0.2 nozzle", - "Anker/Anker Generic PLA Silk 0.25 nozzle" - ], "OFXz7Mwx": [ "Elegoo/Elegoo PLA Silk", "OrcaFilamentLibrary/Elegoo PLA Silk" @@ -3536,15 +3208,32 @@ "Snapmaker/Snapmaker TPU 90A" ], "OFY9muEs": [ + "Anker/Generic ABS", "Anycubic/Generic ABS", + "Artillery/Generic ABS", + "Blocks/Generic ABS", + "Chuanying/Generic ABS", + "Co Print/Generic ABS", + "CoLiDo/Generic ABS", + "Comgrow/Generic ABS", "Creality/Generic ABS", "Custom/Generic ABS", "Elegoo/Generic ABS", + "FLSun/Generic ABS", "Flashforge/Generic ABS", + "FlyingBear/Generic ABS", + "InfiMech/Generic ABS", + "OrcaArena/Generic ABS", "OrcaFilamentLibrary/Generic ABS", + "Peopoly/Generic ABS", + "Prusa/Generic ABS", "Qidi/Generic ABS", "RH3D/Generic ABS", + "Ratrig/Generic ABS", + "SecKit/Generic ABS", "Sovol/Generic ABS", + "Tiertime/Generic ABS", + "Vzbot/Generic ABS", "Z-Bolt/Generic ABS" ], "OFYEtXuk": [ @@ -3554,54 +3243,50 @@ "OrcaFilamentLibrary/PolyLite Dual PLA", "Snapmaker/PolyLite Dual PLA" ], - "OFYHzKyS": [ - "Vzbot/Vzbot Generic PLA-CF" - ], - "OFYPdJ7t": [ - "Creality/Creality Generic ABS" - ], "OFYPdQJh": [ + "Anker/Generic PETG", "Anycubic/Generic PETG", + "Artillery/Generic PETG", + "Blocks/Generic PETG", + "CONSTRUCT3D/Generic PETG", + "Chuanying/Generic PETG", + "Co Print/Generic PETG", + "CoLiDo/Generic PETG", + "Comgrow/Generic PETG", "Creality/Generic PETG", "Custom/Generic PETG", + "DeltaMaker/Generic PETG", "Elegoo/Generic PETG", + "FLSun/Generic PETG", "Flashforge/Generic PETG", + "FlyingBear/Generic PETG", + "Ginger Additive/Generic PETG", + "InfiMech/Generic PETG", "LONGER/Generic PETG", + "OrcaArena/Generic PETG", "OrcaFilamentLibrary/Generic PETG", + "Peopoly/Generic PETG", + "Prusa/Generic PETG", "Qidi/Generic PETG", "RH3D/Generic PETG", + "Ratrig/Generic PETG", + "SecKit/Generic PETG", "Sovol/Generic PETG", + "Tiertime/Generic PETG", + "Vzbot/Generic PETG", "Z-Bolt/Generic PETG" ], "OFYd5uS3": [], "OFYezc6s": [ "FlyingBear/FlyingBear TPU" ], - "OFYl0c8v": [ - "Flashforge/Flashforge Generic HIPS" - ], - "OFYlZMmy": [ - "Chuanying/Chuanying Generic TPU" - ], - "OFYlthXI": [ - "Flashforge/Flashforge Generic PLA-CF" - ], - "OFYtS9zg": [ - "Flashforge/FusRock PAHT-CF" - ], "OFYuowge": [ "FlyingBear/Other ABS", "InfiMech/Other ABS" ], - "OFYvSO1W": [ - "Flashforge/Flashforge Generic PLA-Silk" - ], "OFZ0mR5b": [ "Anycubic/Anycubic PLA-CF" ], - "OFZ1hANN": [ - "Flashforge/FusRock Generic NexPA-CF25" - ], "OFZ2LuAi": [ "Wanhao France/YUMI PLA Bowden" ], @@ -3611,26 +3296,18 @@ "OFZ4QbfK": [ "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" ], - "OFZ4fTO8": [ - "CONSTRUCT3D/C1 Generic High Flow PETG" - ], - "OFZHgTVI": [ - "Flashforge/Flashforge Generic PETG" - ], "OFZLtWYs": [ "Qidi/QIDI ABS-GF25" ], "OFZOuWrO": [ "Qidi/QIDI PPS-CF" ], - "OFZPlCck": [ - "Chuanying/Chuanying Generic ABS" - ], "OFZivHGL": [ "Snapmaker/Snapmaker Dual PLA" ], - "OFZsChIG": [ - "Qidi/Qidi Generic TPU" + "OFZr862X": [ + "Creality/Generic PLA HF", + "Prusa/Generic PLA HF" ], "OFZtOQtl": [ "Flashforge/Flashforge PA6-CF" @@ -3644,6 +3321,9 @@ "OFaDOaNt": [ "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" ], + "OFaDsTE0": [ + "Flashforge/Polymaker S1" + ], "OFaEesXQ": [ "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" ], @@ -3665,9 +3345,6 @@ "OFaRjiIm": [ "SeeMeCNC/SeeMeCNC PETG-CF" ], - "OFaU2JxD": [ - "Dremel/Dremel Generic PLA" - ], "OFaYz8iE": [ "OrcaFilamentLibrary/Elas PLA Pro" ], @@ -3680,9 +3357,6 @@ "OFafocjw": [ "Cubicon/Cubicon ABS" ], - "OFahE7HP": [ - "Blocks/Blocks Generic PC" - ], "OFausr3F": [ "OrcaFilamentLibrary/FilAr PLA-mate Rosa" ], @@ -3695,30 +3369,21 @@ "OFbP8zEO": [ "OrcaFilamentLibrary/Eolas Prints PLA Silk" ], + "OFbPuPKY": [ + "Prusa/Generic FLEX" + ], "OFbSChKb": [ "SeeMeCNC/SeeMeCNC PLA" ], "OFbSZBOi": [ "InfiMech/InfiMech TPU Basic" ], - "OFbeeFkl": [ - "OrcaArena/OrcaArena Generic PLA Silk" - ], - "OFbenYUK": [ - "Prusa/Prusa Generic TPU" - ], "OFbh7HcA": [ "Eryone/Eryone PP-CF" ], "OFbjtPQy": [ "FLSun/FLSun T1 ASA" ], - "OFbt04e0": [ - "DeltaMaker/DeltaMaker Generic TPU" - ], - "OFc0xiCz": [ - "InfiMech/InfiMech Generic TPU" - ], "OFc3xdm9": [ "OrcaFilamentLibrary/Overture PLA", "Qidi/Overture PLA" @@ -3729,9 +3394,6 @@ "OFcBJQcC": [ "Snapmaker/Snapmaker Dual TPU High-Flow" ], - "OFcCzEkS": [ - "Prusa/Prusa Generic PVA" - ], "OFcJ7AKd": [ "Sovol/Sovol SV08 PLA" ], @@ -3741,6 +3403,9 @@ "OFcKtw8W": [ "Volumic/PA6 CF20 (Performance)" ], + "OFcVLpNA": [ + "Flashforge/FusRock PAHT-GF" + ], "OFcdqaWI": [ "Sovol/Sovol Zero PC" ], @@ -3751,9 +3416,6 @@ "OFcogyWl": [ "WonderMaker/WonderMaker PLA Metal" ], - "OFctbSkL": [ - "Blocks/Blocks Generic ASA-CF" - ], "OFctg8r1": [ "CoLiDo/CoLiDo PLA+" ], @@ -3766,10 +3428,8 @@ "Snapmaker/Fiberon PETG-ESD" ], "OFd0Fv0k": [ - "OrcaFilamentLibrary/Generic PE-CF" - ], - "OFd10YeG": [ - "Ratrig/RatRig Generic PLA" + "OrcaFilamentLibrary/Generic PE-CF", + "Tiertime/Generic PE-CF" ], "OFd2vX0G": [ "BBL/COEX PLA PRIME", @@ -3782,26 +3442,10 @@ "OFdD5Wbu": [ "Snapmaker/Snapmaker J1 PLA-CF" ], - "OFdEIwxy": [ - "Flashforge/Flashforge Generic PLA-CF10" - ], - "OFdHsxB4": [ - "TwoTrees/TwoTrees Generic 95A TPU" - ], "OFdI4zMo": [], - "OFdLdGgJ": [ - "OrcaArena/OrcaArena Generic PVA" - ], - "OFdOWhCa": [ - "Ratrig/RatRig Generic PC" - ], "OFdXVjGZ": [ "Tiertime/Tiertime PC" ], - "OFdXgp2K": [ - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying HS PLA" - ], "OFdb8YNz": [ "OrcaFilamentLibrary/FilAr PLA Verde Manzana" ], @@ -3811,9 +3455,6 @@ "OFdkWDiy": [ "Cubicon/Cubicon PLAi21" ], - "OFdlGycb": [ - "CoLiDo/CoLiDo Generic TPU" - ], "OFdrYBmI": [ "Tiertime/Tiertime ASA" ], @@ -3832,9 +3473,6 @@ "OFe7Sx5B": [ "Sovol/Sovol SV06 ACE PETG" ], - "OFe8UJXH": [ - "Creality/Creality Generic PC" - ], "OFe8tuNb": [ "Tiertime/Tiertime PA6-CF" ], @@ -3847,19 +3485,9 @@ "OFeCJqxx": [ "Qidi/QIDI ABS Rapido Metal" ], - "OFeDfaCh": [ - "CoLiDo/CoLiDo Generic PLA" - ], "OFeIyhUx": [ "Anycubic/Anycubic PC-CF" ], - "OFeJjoKF": [ - "FLSun/FLSun Generic PA" - ], - "OFeK2vkS": [ - "Chuanying/Chuanying Generic PLA-Silk", - "Chuanying/Chuanying PLA-SILK" - ], "OFeTATC7": [ "Snapmaker/Snapmaker J1 Breakaway" ], @@ -3879,13 +3507,15 @@ "WonderMaker/WonderMaker PLA Matte" ], "OFesA6rF": [ + "Anker/Generic PLA Silk", + "Creality/Generic PLA Silk", "Flashforge/Generic PLA Silk", + "OrcaArena/Generic PLA Silk", "OrcaFilamentLibrary/Generic PLA Silk", + "Prusa/Generic PLA Silk", "Qidi/Generic PLA Silk", - "Sovol/Generic PLA Silk" - ], - "OFetENFF": [ - "OrcaArena/OrcaArena Generic ABS" + "Sovol/Generic PLA Silk", + "Tiertime/Generic PLA Silk" ], "OFexaZU2": [ "OrcaFilamentLibrary/FilAr PLA Manteca" @@ -3926,18 +3556,12 @@ "OFfYHK5z": [ "Qidi/Polymaker PLA-HT" ], - "OFfZ0lTS": [ - "Qidi/Qidi Generic PETG-CF" - ], "OFfZcoKr": [ "OrcaFilamentLibrary/FilAr PLA-mate Piel" ], "OFfb10SK": [ "Artillery/Artillery PC" ], - "OFfegVpA": [ - "Flashforge/Polymaker Generic S1" - ], "OFfmHUkQ": [ "Snapmaker/Snapmaker Dual Breakaway" ], @@ -3965,12 +3589,6 @@ "OFfuih8e": [ "Creality/Creality Silk PLA" ], - "OFfxFQf9": [ - "Chuanying/Chuanying Generic PETG" - ], - "OFfznI0Q": [ - "Prusa/Prusa Generic PA-CF" - ], "OFg3cWVt": [ "Snapmaker/Snapmaker Dual PLA Metal" ], @@ -3981,10 +3599,21 @@ "OrcaFilamentLibrary/FILL3D PPCF" ], "OFg8ndtj": [ + "Anker/Generic PA", + "Anycubic/Generic PA", + "Blocks/Generic PA", "Creality/Generic PA", "Custom/Generic PA", "Elegoo/Generic PA", + "FLSun/Generic PA", + "OrcaArena/Generic PA", "OrcaFilamentLibrary/Generic PA", + "Prusa/Generic PA", + "Qidi/Generic PA", + "Ratrig/Generic PA", + "SecKit/Generic PA", + "Tiertime/Generic PA", + "Vzbot/Generic PA", "Z-Bolt/Generic PA" ], "OFgHh8ly": [ @@ -3993,18 +3622,9 @@ "OFgMWJ8T": [ "OrcaFilamentLibrary/FilAr PLA Negro Azabache" ], - "OFgSEwOZ": [ - "OrcaArena/OrcaArena Generic PETG" - ], - "OFgSPtDn": [ - "MagicMaker/MM Generic PEEK" - ], "OFgSbX7E": [ "Volumic/Volumic PC (Performance)" ], - "OFgVJhVt": [ - "Tiertime/Tiertime Generic PLA-CF" - ], "OFgVQkqW": [ "Cubicon/Cubicon ABSk" ], @@ -4012,13 +3632,30 @@ "Artillery/Artillery ABS" ], "OFgbpcy9": [ + "Anker/Generic TPU", "Anycubic/Generic TPU", + "Artillery/Generic TPU", + "Blocks/Generic TPU", + "Chuanying/Generic TPU", + "Co Print/Generic TPU", + "CoLiDo/Generic TPU", "Creality/Generic TPU", "Custom/Generic TPU", + "DeltaMaker/Generic TPU", + "FLSun/Generic TPU", "Flashforge/Generic TPU", + "FlyingBear/Generic TPU", + "InfiMech/Generic TPU", + "OrcaArena/Generic TPU", "OrcaFilamentLibrary/Generic TPU", + "Prusa/Generic TPU", + "Qidi/Generic TPU", "RH3D/Generic TPU", - "Sovol/Generic TPU" + "Ratrig/Generic TPU", + "SecKit/Generic TPU", + "Sovol/Generic TPU", + "Tiertime/Generic TPU", + "Vzbot/Generic TPU" ], "OFgcryz4": [ "Ratrig/RatRig BigNozzle ASA" @@ -4044,11 +3681,6 @@ "OFgptDSf": [ "OrcaArena/Arena PLA Matte" ], - "OFgvOmM2": [ - "Anker/Anker Generic PETG", - "Anker/Anker Generic PETG 0.2 nozzle", - "Anker/Anker Generic PETG 0.25 nozzle" - ], "OFgyPlwU": [ "Snapmaker/Snapmaker TPU High-Flow" ], @@ -4072,7 +3704,8 @@ "Snapmaker/Snapmaker PLA-CF" ], "OFhQfUQY": [ - "OrcaFilamentLibrary/Generic SBS" + "OrcaFilamentLibrary/Generic SBS", + "Tiertime/Generic SBS" ], "OFhTPf6L": [ "Creality/Generic PA6-CF", @@ -4097,9 +3730,6 @@ "Elegoo/Elegoo PLA Sparkle", "OrcaFilamentLibrary/Elegoo PLA Sparkle" ], - "OFhcrFw9": [ - "Creality/Creality Generic TPU" - ], "OFhfd722": [ "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" ], @@ -4130,7 +3760,10 @@ "Creality/eSUN PLA-LW" ], "OFi6PfUM": [ - "Creality/Generic PLA-Silk" + "Chuanying/Chuanying PLA-SILK", + "Chuanying/Generic PLA-Silk", + "Creality/Generic PLA-Silk", + "Flashforge/Generic PLA-Silk" ], "OFi7Bf0F": [ "Flashforge/Flashforge ABS-CF" @@ -4138,24 +3771,15 @@ "OFi90KlM": [ "Volumic/Volumic NYLON Ultra (Performance)" ], - "OFiCHnso": [ - "Prusa/Prusa Generic PLA" - ], "OFiDpM1B": [ "OrcaFilamentLibrary/FilAr PLA-mate Bordo" ], "OFiEz2XI": [ "Cubicon/Cubicon PA-CF" ], - "OFiUSDih": [ - "Blocks/Blocks Generic PA" - ], "OFiWaoqD": [ "OrcaFilamentLibrary/DREMC PPA-CF" ], - "OFifxPW1": [ - "DeltaMaker/DeltaMaker Generic PLA" - ], "OFilAA3b": [ "Eryone/Eryone PLA-CF" ], @@ -4168,9 +3792,6 @@ "OFin64Qg": [ "Creality/Generic Support for PLA" ], - "OFiorRtJ": [ - "Blocks/Blocks Generic PVA" - ], "OFitS8al": [ "Snapmaker/PolyLite PLA Neon" ], @@ -4227,12 +3848,12 @@ "OFjoAe0R": [ "Qidi/Qidi PLA-CF" ], - "OFjoIVZ6": [ - "FlyingBear/FlyingBear Generic PA-CF" - ], "OFjorDcx": [ "OrcaFilamentLibrary/FDplast ABS" ], + "OFjt8dDO": [ + "Flashforge/FusRock NexPA-CF25" + ], "OFjt9en1": [ "OrcaFilamentLibrary/Generic CoPE" ], @@ -4258,14 +3879,11 @@ "OFkR8E2c": [ "Prusa/Prusament PETG" ], - "OFkUaDnU": [ - "Tiertime/Tiertime Generic PE-CF" - ], "OFkWaWRo": [ "Sovol/Sovol SV06 Plus ACE TPU" ], - "OFkYkQGO": [ - "Tiertime/Tiertime Generic PP-GF" + "OFkf1HHw": [ + "Flashforge/Generic PLA-SILK" ], "OFkhhUS0": [ "Elegoo/Elegoo Rapid PLA+", @@ -4296,12 +3914,6 @@ "OFkzr35f": [ "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" ], - "OFl2SXmv": [ - "Prusa/Prusa Generic FLEX" - ], - "OFl4ItvQ": [ - "Prusa/Prusa Generic PLA HF" - ], "OFl7nOAf": [ "Sovol/Sovol SV06 Plus ACE PETG" ], @@ -4311,15 +3923,9 @@ "OFlIsW6f": [ "Snapmaker/Snapmaker Dual PLA Matte" ], - "OFlLmUeV": [ - "Ginger Additive/Ginger Generic PLA" - ], "OFlN6DL1": [ "Qidi/QIDI PA-Ultra" ], - "OFlNWVr5": [ - "Flashforge/Flashforge Generic PETG-CF10" - ], "OFlP3KWq": [ "Elegoo/Elegoo PETG HF", "OrcaFilamentLibrary/Elegoo PETG HF" @@ -4348,9 +3954,6 @@ "OrcaFilamentLibrary/Polymaker HT-PLA-GF", "Snapmaker/Polymaker HT-PLA-GF" ], - "OFlx52rn": [ - "Ratrig/RatRig Generic PLA-CF" - ], "OFm06H6V": [ "Elegoo/Elegoo PLA Basic", "OrcaFilamentLibrary/Elegoo PLA Basic" @@ -4380,12 +3983,10 @@ "Flashforge/Flashforge HS PLA Burnt Ti" ], "OFmY0l6t": [ + "Creality/Generic PLA Matte", "Elegoo/Generic PLA Matte", "OrcaFilamentLibrary/Generic PLA Matte" ], - "OFma52eS": [ - "Blocks/Blocks Generic ABS" - ], "OFma5TXH": [ "Qidi/QIDI ABS Odorless" ], @@ -4402,29 +4003,23 @@ "Elegoo/Elegoo TPU 95A", "OrcaFilamentLibrary/Elegoo TPU 95A" ], - "OFmhWhEf": [ - "Creality/Creality HF Generic PLA" - ], "OFmjN2bc": [ "Anycubic/Anycubic PLA" ], "OFmn9NZL": [ "OrcaFilamentLibrary/FusRock ABS-GF" ], - "OFmnJNqY": [ - "OrcaArena/OrcaArena Generic PA" - ], "OFmpMwxS": [ + "Creality/Generic PLA High Speed", "Flashforge/Generic PLA High Speed", - "OrcaFilamentLibrary/Generic PLA High Speed" + "OrcaFilamentLibrary/Generic PLA High Speed", + "Qidi/Generic PLA High Speed", + "Tiertime/Generic PLA High Speed" ], "OFmveLWz": [ "Elegoo/Elegoo PETG-GF", "OrcaFilamentLibrary/Elegoo PETG-GF" ], - "OFmzftED": [ - "OrcaArena/OrcaArena Generic ASA" - ], "OFn1QaY3": [ "Elegoo/Elegoo PLA Translucent2", "OrcaFilamentLibrary/Elegoo PLA Translucent2" @@ -4447,6 +4042,9 @@ "OFnSeLHk": [ "CoLiDo/CoLiDo PLA Silk" ], + "OFnT7Qpb": [ + "Prusa/Generic TPU HF" + ], "OFnXrkhA": [ "InfiMech/InfiMech PA-CF" ], @@ -4459,26 +4057,15 @@ "OFncpm7O": [ "WonderMaker/WonderMaker PLA Silk" ], - "OFndmfJ1": [ - "Anker/Anker Generic PLA", - "Anker/Anker Generic PLA 0.2 nozzle", - "Anker/Anker Generic PLA 0.25 nozzle" - ], "OFneOFWe": [ "CoLiDo/CoLiDo ABS" ], "OFnejEt4": [ "OrcaFilamentLibrary/FilAr PETG Cian" ], - "OFnfBvn5": [ - "Artillery/Artillery Generic PLA" - ], "OFngcE81": [ "LH/LHS TPU Foamy 78A" ], - "OFnh79eM": [ - "SecKit/SecKit Generic ABS" - ], "OFniMuTN": [ "OrcaFilamentLibrary/Bambu PA6-CF" ], @@ -4491,7 +4078,8 @@ "OFo2UF2C": [ "Creality/Generic BVOH", "Flashforge/Generic BVOH", - "OrcaFilamentLibrary/Generic BVOH" + "OrcaFilamentLibrary/Generic BVOH", + "Tiertime/Generic BVOH" ], "OFo6n2pB": [ "Anycubic/Anycubic PETG" @@ -4499,25 +4087,18 @@ "OFoBTKmn": [ "Cubicon/Cubicon PETG" ], - "OFoDgVnY": [ - "FLSun/FLSun S1 PLA Generic" - ], - "OFoJcr46": [ - "Prusa/Prusa Generic ASA" - ], "OFoSknDB": [ "OrcaFilamentLibrary/FILL3D PLA Turbo" ], - "OFoT8F7Y": [ - "Prusa/Prusa Generic PVA HF" - ], - "OFoVZg32": [ - "SecKit/SecKit Generic TPU" - ], "OFoYSJKi": [ + "Anker/Generic PETG-CF", "Creality/Generic PETG-CF", "Elegoo/Generic PETG-CF", - "OrcaFilamentLibrary/Generic PETG-CF" + "Flashforge/Generic PETG-CF", + "OrcaArena/Generic PETG-CF", + "OrcaFilamentLibrary/Generic PETG-CF", + "Qidi/Generic PETG-CF", + "Tiertime/Generic PETG-CF" ], "OFobDOW5": [ "Elegoo/Elegoo ASA", @@ -4527,9 +4108,6 @@ "BBL/AliZ PETG", "OrcaFilamentLibrary/AliZ PETG" ], - "OFodPDxO": [ - "Tiertime/Tiertime Generic PLA High Speed" - ], "OFogbnCb": [ "Flashforge/FlashForge PPS-CF" ], @@ -4551,15 +4129,9 @@ "OFp57RRC": [ "Qidi/QIDI PPS-GF" ], - "OFp8gtPH": [ - "Creality/Creality Generic PLA Silk" - ], "OFp9wdmf": [ "Eryone/Eryone PA-CF" ], - "OFpAaY6w": [ - "Creality/Creality Generic ASA" - ], "OFpBV2Ma": [ "Qidi/Tinmorry PETG-ECO" ], @@ -4576,16 +4148,10 @@ "OFpPJSHE": [ "Peopoly/Peopoly Lancer PETG-C" ], - "OFpSYJLI": [ - "Creality/Creality Generic PLA Matte" - ], "OFpW4gdi": [ "Flashforge/SUNLU PLA Matte", "OrcaFilamentLibrary/SUNLU PLA Matte" ], - "OFptvi3F": [ - "Tiertime/Tiertime Generic PPA-GF" - ], "OFpu74Qe": [ "Snapmaker/Snapmaker PLA Eco" ], @@ -4595,14 +4161,12 @@ "OFq0TY7C": [ "Flashforge/Flashforge ASA-CF" ], - "OFq5QANf": [ - "Prusa/Prusa Generic PC HF" - ], "OFq8gfS4": [ "OrcaFilamentLibrary/FilAr PETG Negro Azabache" ], "OFq9svOz": [ - "Creality/Generic PPS" + "Creality/Generic PPS", + "Tiertime/Generic PPS" ], "OFqGRZyH": [ "OrcaFilamentLibrary/Numakers PLA+" @@ -4611,15 +4175,6 @@ "Creality/eSUN PLA+", "OrcaFilamentLibrary/eSUN PLA+" ], - "OFqKmLJe": [ - "Creality/Creality Generic PETG-CF" - ], - "OFqOk9Ww": [ - "Peopoly/Peopoly Generic ABS" - ], - "OFqS8fzK": [ - "SecKit/SecKit Generic PETG" - ], "OFqcL5UF": [ "Qidi/QIDI Support For PET/PA" ], @@ -4645,41 +4200,23 @@ "OFrM4hdm": [ "Creality/CR-PLA Carbon" ], - "OFrO2zyn": [ - "Creality/Creality Generic PLA High Speed" - ], "OFrOh600": [ "Creality/Panchroma PLA Matte", "OrcaFilamentLibrary/Panchroma PLA Matte", "Snapmaker/Panchroma PLA Matte" ], - "OFrQqCwL": [ - "InfiMech/InfiMech Generic PLA" - ], "OFrdZ0cK": [ "Creality/eSUN PETG+HS" ], - "OFrgGex8": [ - "Blocks/Blocks Generic PETG" - ], - "OFrh4bBH": [ - "SecKit/SecKit Generic ASA" - ], "OFrjacXf": [ "Flashforge/Flashforge PET-CF" ], - "OFrnJJEa": [ - "Tiertime/Tiertime Generic EVA" - ], "OFrnkURQ": [ "Flashforge/Flashforge PLA Metal" ], "OFrr67nG": [ "OrcaArena/Arena PC" ], - "OFrrMLDw": [ - "Flashforge/Flashforge Generic PLA-SILK" - ], "OFryjl35": [ "Elegoo/Elegoo ASA-CF", "OrcaFilamentLibrary/Elegoo ASA-CF" @@ -4687,34 +4224,25 @@ "OFs1sNLz": [ "Chuanying/Chuanying ABS" ], - "OFs2ReMr": [ - "InfiMech/InfiMech Generic PETG" - ], "OFsB2lxm": [ "Elegoo/Elegoo PLA Matte", "OrcaFilamentLibrary/Elegoo PLA Matte" ], - "OFsCbVbN": [ - "Anker/Anker Generic PVA" - ], "OFsD974q": [ "Volumic/Volumic PETG Ultra (Performance)" ], "OFsDXRpS": [ "OrcaFilamentLibrary/FilAr PLA Piel" ], - "OFsF96Gt": [ - "FLSun/FLSun Generic PLA-CF" - ], "OFsFo7ms": [ "Volumic/Volumic PP Ultra" ], "OFsFon5l": [ + "Chuanying/Generic HIPS", "Creality/Generic HIPS", - "OrcaFilamentLibrary/Generic HIPS" - ], - "OFsGqI4y": [ - "Ginger Additive/Ginger Generic PETG" + "Flashforge/Generic HIPS", + "OrcaFilamentLibrary/Generic HIPS", + "Tiertime/Generic HIPS" ], "OFsHSVZc": [ "OrcaFilamentLibrary/Bambu Support W" @@ -4730,24 +4258,16 @@ "OrcaFilamentLibrary/Panchroma PLA", "Snapmaker/Panchroma PLA" ], - "OFsXOMoX": [ - "Qidi/Qidi Generic PLA+" - ], "OFsXQXbs": [ "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" ], - "OFsoQ12i": [ - "Comgrow/Comgrow Generic ABS" + "OFsijjtH": [ + "OrcaFilamentLibrary/Generic PP-GF", + "Tiertime/Generic PP-GF" ], "OFsoykbm": [ "OrcaFilamentLibrary/DREMC PA6-CF" ], - "OFsxRSwr": [ - "Ratrig/RatRig Generic PVA" - ], - "OFsxlLdo": [ - "Qidi/Qidi Generic ASA" - ], "OFt0JbR7": [ "Snapmaker/Snapmaker J1 PLA Metal" ], @@ -4773,15 +4293,9 @@ "OrcaArena/Arena PAHT-CF" ], "OFtOoWIj": [], - "OFtP1rqJ": [ - "FLSun/FLSun Generic PVA" - ], "OFtRn8X8": [ "OrcaFilamentLibrary/FDplast SBS" ], - "OFtTHNTj": [ - "Flashforge/Flashforge Generic PLA" - ], "OFtTYl9Q": [], "OFtefokm": [ "OrcaFilamentLibrary/FilAr PLA-mate Blanco" @@ -4796,9 +4310,6 @@ "OFtr8eZw": [ "OrcaFilamentLibrary/FDplast PLA" ], - "OFtsVp4v": [ - "SecKit/SecKit Generic PA-CF" - ], "OFtudokz": [ "OrcaFilamentLibrary/Eolas Prints PLA Premium" ], @@ -4816,10 +4327,9 @@ ], "OFu1evlr": [ "Creality/Generic PCTG", - "OrcaFilamentLibrary/Generic PCTG" - ], - "OFu79SUH": [ - "Qidi/Qidi Generic PLA" + "OrcaFilamentLibrary/Generic PCTG", + "Ratrig/Generic PCTG", + "Tiertime/Generic PCTG" ], "OFuFqYyG": [ "Flashforge/Flashforge PAHT-CF" @@ -4833,9 +4343,6 @@ "OFuO0cAP": [ "OrcaArena/Arena PETG-CF" ], - "OFuSwKgm": [ - "Tiertime/Tiertime Generic PLA" - ], "OFuUJyRx": [ "FLSun/FLSun T1 PLA Silk" ], @@ -4865,9 +4372,6 @@ "OFulOdT2": [ "Flashforge/Generic TPU 85A" ], - "OFupq0tY": [ - "Blocks/Blocks Generic PLA-CF" - ], "OFurdQxc": [ "OrcaFilamentLibrary/FilAr PETG Magenta" ], @@ -4877,15 +4381,9 @@ "OFuxH0Uz": [ "Volumic/Volumic FLEX93 Ultra" ], - "OFv4VZCd": [ - "Qidi/Qidi Generic ABS" - ], "OFvDbkFq": [ "Prusa/Prusament PC Blend" ], - "OFvGc67v": [ - "Prusa/Prusa Generic ABS" - ], "OFvKUnLh": [ "OrcaFilamentLibrary/Bambu TPU 95A HF" ], @@ -4895,9 +4393,6 @@ "OFvPPMxL": [ "OrcaFilamentLibrary/FilAr PLA Verde FilAr" ], - "OFvPomQf": [ - "Tiertime/Tiertime Generic PPS" - ], "OFvTVZc3": [ "BBL/COEX PETG", "OrcaFilamentLibrary/COEX PETG" @@ -4921,6 +4416,12 @@ "OFvxIS9g": [ "Snapmaker/Fiberon PA12-CF10" ], + "OFvxghTE": [ + "Chuanying/Chuanying HS PLA", + "Chuanying/Generic HS PLA", + "Flashforge/Generic HS PLA", + "TwoTrees/Generic HS PLA" + ], "OFvyB0Bz": [ "Snapmaker/PolyLite PLA Galaxy" ], @@ -4931,9 +4432,6 @@ "OFwLBAGf": [ "Qidi/HATCHBOX ABS" ], - "OFwMFLAm": [ - "Artillery/Artillery Generic ABS" - ], "OFwPrlCM": [ "OrcaFilamentLibrary/Bambu PETG Translucent" ], @@ -4953,22 +4451,16 @@ "OFwhLMs4": [ "Snapmaker/Snapmaker PLA SnapSpeed" ], - "OFwpkvqf": [ - "OrcaArena/OrcaArena Generic PETG-CF" - ], "OFwu7IAG": [ "BBL/COEX PCTG PRIME", "OrcaFilamentLibrary/COEX PCTG PRIME" ], - "OFwxpmHM": [ - "Flashforge/Polymaker Generic CoPA" + "OFwwAQnA": [ + "Prusa/Generic PC HF" ], "OFwyt1xt": [ "Eryone/Eryone ASA-CF" ], - "OFx0ZzFV": [ - "OrcaArena/OrcaArena Generic PLA-CF" - ], "OFx8Lmsd": [ "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" ], @@ -4988,9 +4480,6 @@ "Elegoo/Elegoo ABS", "OrcaFilamentLibrary/Elegoo ABS" ], - "OFxTMg1d": [ - "FlyingBear/FlyingBear Generic PC" - ], "OFxUwUeW": [ "Flashforge/SUNLU PLA Marble", "OrcaFilamentLibrary/SUNLU PLA Marble" @@ -5001,12 +4490,6 @@ "OFxe4rXr": [ "Snapmaker/PolyTerra PLA Marble" ], - "OFxg7n2G": [ - "Ratrig/RatRig Generic PETG" - ], - "OFxvKuYW": [ - "Tiertime/Tiertime Generic PHA" - ], "OFy02QHU": [ "Snapmaker/PolyLite PLA Translucent" ], @@ -5019,27 +4502,18 @@ "OFy48TOp": [ "Flashforge/Generic TPU-95A" ], - "OFy4ajVZ": [ - "Qidi/Qidi Generic PLA Silk" - ], "OFy8tYJE": [ "Cubicon/Cubicon ABS-A100" ], "OFyCToOV": [ "Sovol/Sovol SV08 TPU" ], - "OFyFRojy": [ - "Ratrig/RatRig Generic ABS" - ], "OFyFyLIp": [ "SeeMeCNC/SeeMeCNC TPU" ], "OFyHgT60": [ "OrcaArena/Arena PLA Sparkle" ], - "OFyK5Lt9": [ - "Artillery/Artillery Generic PETG" - ], "OFyLWVF3": [ "Creality/Generic PETG-GF" ], @@ -5059,9 +4533,6 @@ "OFybzvQN": [ "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" ], - "OFyeSq8A": [ - "Prusa/Prusa Generic ABS HF" - ], "OFyhjiNs": [ "Snapmaker/Snapmaker PVA" ], @@ -5087,11 +4558,8 @@ "BBL/AliZ PLA", "OrcaFilamentLibrary/AliZ PLA" ], - "OFyySVby": [ - "SecKit/SecKit Generic PVA" - ], - "OFz3q5Xz": [ - "CONSTRUCT3D/C1 Generic PETG" + "OFz5oHgf": [ + "MagicMaker/Generic PEEK" ], "OFzAWsca": [ "Qidi/Qidi TPU 95A-HF" @@ -5099,12 +4567,12 @@ "OFzB4uOs": [ "Sovol/Sovol Zero PLA Basic HS Nozzle" ], + "OFzRtFM9": [ + "Prusa/Generic ASA HF" + ], "OFzS7zt4": [ "Anycubic/Anycubic PA" ], - "OFzXURfo": [ - "FlyingBear/FlyingBear Generic PETG" - ], "OFzY7N3Z": [ "Artillery/Artillery PLA" ], @@ -5112,6 +4580,9 @@ "OFztQ7rO": [ "LH/LHS ABS" ], + "OFzwA5Z9": [ + "Flashforge/FusRock PET-GF" + ], "OFzyIxba": [ "OrcaFilamentLibrary/Bambu PVA" ], @@ -5144,16 +4615,6 @@ "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic ASA @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic Generic ABS", - "Anycubic/Anycubic Generic ASA", - "Anycubic/Anycubic Generic PA", - "Anycubic/Anycubic Generic PA-CF", - "Anycubic/Anycubic Generic PC", - "Anycubic/Anycubic Generic PETG", - "Anycubic/Anycubic Generic PLA", - "Anycubic/Anycubic Generic PLA-CF", - "Anycubic/Anycubic Generic PVA", - "Anycubic/Anycubic Generic TPU", "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", @@ -5265,10 +4726,20 @@ "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle", "Anycubic/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle", "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", + "Anycubic/Generic ABS @Anycubic", "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", + "Anycubic/Generic ASA @Anycubic", + "Anycubic/Generic PA @Anycubic", + "Anycubic/Generic PA-CF @Anycubic", + "Anycubic/Generic PC @Anycubic", + "Anycubic/Generic PETG @Anycubic", "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", + "Anycubic/Generic PLA @Anycubic", + "Anycubic/Generic PLA-CF @Anycubic", + "Anycubic/Generic PVA @Anycubic", + "Anycubic/Generic TPU @Anycubic", "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", "Anycubic/Panchroma PLA @Anycubic Kobra S1", "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", @@ -5282,12 +4753,6 @@ "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery ASA @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery Generic ABS", - "Artillery/Artillery Generic ASA", - "Artillery/Artillery Generic PETG", - "Artillery/Artillery Generic PLA", - "Artillery/Artillery Generic PLA-CF", - "Artillery/Artillery Generic TPU", "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", @@ -5334,6 +4799,12 @@ "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery TPU @Artillery M1 Pro 0.6 nozzle", "Artillery/Artillery TPU @Artillery M1 Pro 0.8 nozzle", + "Artillery/Generic ABS @Artillery", + "Artillery/Generic ASA @Artillery", + "Artillery/Generic PETG @Artillery", + "Artillery/Generic PLA @Artillery", + "Artillery/Generic PLA-CF @Artillery", + "Artillery/Generic TPU @Artillery", "BBL/Generic SBS", "BBL/addnorth ABS rABS", "BBL/addnorth PA Adura", @@ -5362,54 +4833,54 @@ "BBL/addnorth TPU EasyFlex", "BBL/addnorth TPU Pro Matte 85A", "BBL/addnorth TPU Pro Matte 95A", - "Blocks/Blocks Generic ABS", - "Blocks/Blocks Generic ASA", - "Blocks/Blocks Generic ASA-CF", - "Blocks/Blocks Generic PA", - "Blocks/Blocks Generic PA-CF", - "Blocks/Blocks Generic PC", - "Blocks/Blocks Generic PETG", - "Blocks/Blocks Generic PLA", - "Blocks/Blocks Generic PLA-CF", - "Blocks/Blocks Generic PVA", - "Blocks/Blocks Generic TPU", - "CONSTRUCT3D/C1 Generic High Flow PETG", - "CONSTRUCT3D/C1 Generic PETG", - "CONSTRUCT3D/C1 Generic PLA", + "Blocks/Generic ABS @Blocks", + "Blocks/Generic ASA @Blocks", + "Blocks/Generic ASA-CF @Blocks", + "Blocks/Generic PA @Blocks", + "Blocks/Generic PA-CF @Blocks", + "Blocks/Generic PC @Blocks", + "Blocks/Generic PETG @Blocks", + "Blocks/Generic PLA @Blocks", + "Blocks/Generic PLA-CF @Blocks", + "Blocks/Generic PVA @Blocks", + "Blocks/Generic TPU @Blocks", + "CONSTRUCT3D/Generic High Flow PETG @C1", + "CONSTRUCT3D/Generic PETG @C1", + "CONSTRUCT3D/Generic PLA @C1", "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying Generic ABS", - "Chuanying/Chuanying Generic ASA", - "Chuanying/Chuanying Generic HIPS", - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying Generic PETG", - "Chuanying/Chuanying Generic PETG-CF10", - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying Generic PLA-CF10", - "Chuanying/Chuanying Generic PLA-Silk", - "Chuanying/Chuanying Generic PVA", - "Chuanying/Chuanying Generic TPU", "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", - "Co Print/CoPrint Generic ABS", - "Co Print/CoPrint Generic PETG", - "Co Print/CoPrint Generic PLA", - "Co Print/CoPrint Generic TPU", + "Chuanying/Generic ABS @Chuanying", + "Chuanying/Generic ASA @Chuanying", + "Chuanying/Generic HIPS @Chuanying", + "Chuanying/Generic HS PLA @Chuanying", + "Chuanying/Generic PETG @Chuanying", + "Chuanying/Generic PETG-CF10 @Chuanying", + "Chuanying/Generic PLA @Chuanying", + "Chuanying/Generic PLA-CF10 @Chuanying", + "Chuanying/Generic PLA-Silk @Chuanying", + "Chuanying/Generic PVA @Chuanying", + "Chuanying/Generic TPU @Chuanying", + "Co Print/Generic ABS @CoPrint", + "Co Print/Generic PETG @CoPrint", + "Co Print/Generic PLA @CoPrint", + "Co Print/Generic TPU @CoPrint", "CoLiDo/CoLiDo ABS @CoLiDo SR1", - "CoLiDo/CoLiDo Generic ABS @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic ABS @CoLiDo X16", - "CoLiDo/CoLiDo Generic PETG @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PETG @CoLiDo X16", - "CoLiDo/CoLiDo Generic PLA @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic PLA @CoLiDo X16", - "CoLiDo/CoLiDo Generic TPU @CoLiDo DIY 4.0", - "CoLiDo/CoLiDo Generic TPU @CoLiDo X16", "CoLiDo/CoLiDo PETG @CoLiDo SR1", "CoLiDo/CoLiDo PLA @CoLiDo SR1", "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", - "Comgrow/Comgrow Generic ABS", - "Comgrow/Comgrow Generic PETG", - "Comgrow/Comgrow Generic PLA", + "CoLiDo/Generic ABS @CoLiDo DIY 4.0", + "CoLiDo/Generic ABS @CoLiDo X16", + "CoLiDo/Generic PETG @CoLiDo DIY 4.0", + "CoLiDo/Generic PETG @CoLiDo X16", + "CoLiDo/Generic PLA @CoLiDo DIY 4.0", + "CoLiDo/Generic PLA @CoLiDo X16", + "CoLiDo/Generic TPU @CoLiDo DIY 4.0", + "CoLiDo/Generic TPU @CoLiDo X16", "Comgrow/Comgrow T300 PLA", + "Comgrow/Generic ABS @Comgrow", + "Comgrow/Generic PETG @Comgrow", + "Comgrow/Generic PLA @Comgrow", "Creality/CR-ABS @Ender-3 V4-all", "Creality/CR-ABS @Hi-all", "Creality/CR-ABS @K1 Max_CFS-C-all", @@ -5501,36 +4972,6 @@ "Creality/CR-Wood @K1C_CFS-C-all", "Creality/CR-Wood @K1_CFS-C-all", "Creality/CR-Wood @K2 Plus-all", - "Creality/Creality Generic ABS", - "Creality/Creality Generic ABS @Ender-5Max-all", - "Creality/Creality Generic ASA", - "Creality/Creality Generic ASA @Ender-5Max-all", - "Creality/Creality Generic ASA-CF @Hi-all", - "Creality/Creality Generic PA @Ender-5Max-all", - "Creality/Creality Generic PA-CF", - "Creality/Creality Generic PETG", - "Creality/Creality Generic PETG @Ender-5Max-all", - "Creality/Creality Generic PETG-CF @Hi-all", - "Creality/Creality Generic PLA", - "Creality/Creality Generic PLA @Ender-5Max-all", - "Creality/Creality Generic PLA High Speed @Ender-3V3-all", - "Creality/Creality Generic PLA High Speed @Hi-all", - "Creality/Creality Generic PLA High Speed @K1-all", - "Creality/Creality Generic PLA High Speed @K2-all", - "Creality/Creality Generic PLA Matte @Ender-3V3-all", - "Creality/Creality Generic PLA Matte @Hi-all", - "Creality/Creality Generic PLA Matte @K1-all", - "Creality/Creality Generic PLA Matte @K2-all", - "Creality/Creality Generic PLA Silk @Ender-3V3-all", - "Creality/Creality Generic PLA Silk @Hi-all", - "Creality/Creality Generic PLA Silk @K1-all", - "Creality/Creality Generic PLA Silk @K2-all", - "Creality/Creality Generic PLA Wood @Hi-all", - "Creality/Creality Generic PLA-CF", - "Creality/Creality Generic TPU", - "Creality/Creality Generic TPU @Ender-5Max-all", - "Creality/Creality HF Generic PLA", - "Creality/Creality HF Generic Speed PLA", "Creality/Creality Hyper ABS @Ender-5Max-all", "Creality/Creality Hyper PLA @Ender-5Max-all", "Creality/Creality Hyper PLA-CF @Ender-5Max-all", @@ -5558,6 +4999,8 @@ "Creality/Ender-PLA @K2 Pro-all", "Creality/Ender-PLA @K2-all", "Creality/Ender-PLA @SPARKX i7-all", + "Creality/Generic ABS @Creality", + "Creality/Generic ABS @Creality Ender-5Max-all", "Creality/Generic ABS @Ender-3 V4-all", "Creality/Generic ABS @Hi-all", "Creality/Generic ABS @K1 Max_CFS-C-all", @@ -5570,6 +5013,8 @@ "Creality/Generic ABS @K2 Pro-all", "Creality/Generic ABS @K2 SE-all", "Creality/Generic ABS @K2-all", + "Creality/Generic ASA @Creality", + "Creality/Generic ASA @Creality Ender-5Max-all", "Creality/Generic ASA @K1 Max_CFS-C-all", "Creality/Generic ASA @K1 SE-all", "Creality/Generic ASA @K1 SE_CFS-C-all", @@ -5580,6 +5025,7 @@ "Creality/Generic ASA @K2 Pro-all", "Creality/Generic ASA @K2 SE-all", "Creality/Generic ASA @K2-all", + "Creality/Generic ASA-CF @Creality Hi-all", "Creality/Generic ASA-CF @K2 Plus-all", "Creality/Generic BVOH @Hi-all", "Creality/Generic BVOH @K1 Max_CFS-C-all", @@ -5594,6 +5040,7 @@ "Creality/Generic HIPS @K1C_CFS-C-all", "Creality/Generic HIPS @K1_CFS-C-all", "Creality/Generic HIPS @K2 Plus-all", + "Creality/Generic PA @Creality Ender-5Max-all", "Creality/Generic PA @K1 Max_CFS-C-all", "Creality/Generic PA @K1C-all", "Creality/Generic PA @K1C_CFS-C-all", @@ -5601,6 +5048,7 @@ "Creality/Generic PA @K2 Plus-all", "Creality/Generic PA @K2 Pro-all", "Creality/Generic PA @K2-all", + "Creality/Generic PA-CF @Creality", "Creality/Generic PA-CF @K1 Max_CFS-C-all", "Creality/Generic PA-CF @K1C-all", "Creality/Generic PA-CF @K1C_CFS-C-all", @@ -5643,6 +5091,8 @@ "Creality/Generic PET-CF @K1_CFS-C-all", "Creality/Generic PET-CF @K2 Plus-all", "Creality/Generic PET-CF @K2 Pro-all", + "Creality/Generic PETG @Creality", + "Creality/Generic PETG @Creality Ender-5Max-all", "Creality/Generic PETG @Ender-3 V4-all", "Creality/Generic PETG @Hi-all", "Creality/Generic PETG @K1 Max_CFS-C-all", @@ -5656,6 +5106,7 @@ "Creality/Generic PETG @K2 SE-all", "Creality/Generic PETG @K2-all", "Creality/Generic PETG @SPARKX i7-all", + "Creality/Generic PETG-CF @Creality Hi-all", "Creality/Generic PETG-CF @K1 Max_CFS-C-all", "Creality/Generic PETG-CF @K1C-all", "Creality/Generic PETG-CF @K1C_CFS-C-all", @@ -5667,6 +5118,8 @@ "Creality/Generic PETG-GF @K2 Plus-all", "Creality/Generic PETG-GF @K2 Pro-all", "Creality/Generic PETG-GF @K2-all", + "Creality/Generic PLA @Creality", + "Creality/Generic PLA @Creality Ender-5Max-all", "Creality/Generic PLA @Ender-3 V4-all", "Creality/Generic PLA @Hi-all", "Creality/Generic PLA @K1 Max_CFS-C-all", @@ -5680,6 +5133,21 @@ "Creality/Generic PLA @K2 SE-all", "Creality/Generic PLA @K2-all", "Creality/Generic PLA @SPARKX i7-all", + "Creality/Generic PLA HF @Creality", + "Creality/Generic PLA High Speed @Creality Ender-3V3-all", + "Creality/Generic PLA High Speed @Creality Hi-all", + "Creality/Generic PLA High Speed @Creality K1-all", + "Creality/Generic PLA High Speed @Creality K2-all", + "Creality/Generic PLA Matte @Creality Ender-3V3-all", + "Creality/Generic PLA Matte @Creality Hi-all", + "Creality/Generic PLA Matte @Creality K1-all", + "Creality/Generic PLA Matte @Creality K2-all", + "Creality/Generic PLA Silk @Creality Ender-3V3-all", + "Creality/Generic PLA Silk @Creality Hi-all", + "Creality/Generic PLA Silk @Creality K1-all", + "Creality/Generic PLA Silk @Creality K2-all", + "Creality/Generic PLA Wood @Creality Hi-all", + "Creality/Generic PLA-CF @Creality", "Creality/Generic PLA-CF @Ender-3 V4-all", "Creality/Generic PLA-CF @K1 Max_CFS-C-all", "Creality/Generic PLA-CF @K1 SE-all", @@ -5731,10 +5199,13 @@ "Creality/Generic PVA @K2 Plus-all", "Creality/Generic PVA @K2 Pro-all", "Creality/Generic PVA @K2-all", + "Creality/Generic Speed PLA @Creality HF", "Creality/Generic Support for PA @K2 Plus-all", "Creality/Generic Support for PLA @K2 Plus-all", "Creality/Generic TPU 64D @K2 Plus-all", "Creality/Generic TPU 64D @SPARKX i7-all", + "Creality/Generic TPU @Creality", + "Creality/Generic TPU @Creality Ender-5Max-all", "Creality/Generic TPU @Ender-3 V4-all", "Creality/Generic TPU @K1 Max_CFS-C-all", "Creality/Generic TPU @K1 SE-all", @@ -5958,13 +5429,13 @@ "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", "Cubicon/Cubicon PLAi21 @base", "DeltaMaker/DeltaMaker Brand PLA", - "DeltaMaker/DeltaMaker Generic PETG", - "DeltaMaker/DeltaMaker Generic PLA", - "DeltaMaker/DeltaMaker Generic TPU", - "Dremel/Dremel Generic PLA", - "Dremel/Dremel Generic PLA @3D20 all", - "Dremel/Dremel Generic PLA @3D40 all", - "Dremel/Dremel Generic PLA @3D45 all", + "DeltaMaker/Generic PETG @DeltaMaker", + "DeltaMaker/Generic PLA @DeltaMaker", + "DeltaMaker/Generic TPU @DeltaMaker", + "Dremel/Generic PLA @Dremel", + "Dremel/Generic PLA @Dremel 3D20 all", + "Dremel/Generic PLA @Dremel 3D40 all", + "Dremel/Generic PLA @Dremel 3D45 all", "Elegoo/Generic ABS-CF @Elegoo Centauri", "Elegoo/Generic ASA-CF @Elegoo Centauri", "Elegoo/Generic PA6-CF @Elegoo", @@ -5988,30 +5459,30 @@ "Eryone/Eryone PP-CF", "Eryone/Eryone Silk PLA", "Eryone/Eryone TPU", - "FLSun/FLSun Generic ABS", - "FLSun/FLSun Generic ASA", - "FLSun/FLSun Generic PA", - "FLSun/FLSun Generic PA-CF", - "FLSun/FLSun Generic PC", - "FLSun/FLSun Generic PETG", - "FLSun/FLSun Generic PLA", - "FLSun/FLSun Generic PLA-CF", - "FLSun/FLSun Generic PVA", - "FLSun/FLSun Generic TPU", "FLSun/FLSun S1 ABS", "FLSun/FLSun S1 ASA", "FLSun/FLSun S1 PETG", - "FLSun/FLSun S1 PLA Generic", "FLSun/FLSun S1 PLA High Speed", "FLSun/FLSun S1 PLA Silk", "FLSun/FLSun S1 TPU", "FLSun/FLSun T1 ABS", "FLSun/FLSun T1 ASA", "FLSun/FLSun T1 PETG", - "FLSun/FLSun T1 PLA Generic", "FLSun/FLSun T1 PLA High Speed", "FLSun/FLSun T1 PLA Silk", "FLSun/FLSun T1 TPU", + "FLSun/Generic ABS @FLSun", + "FLSun/Generic ASA @FLSun", + "FLSun/Generic PA @FLSun", + "FLSun/Generic PA-CF @FLSun", + "FLSun/Generic PC @FLSun", + "FLSun/Generic PETG @FLSun", + "FLSun/Generic PLA @FLSun", + "FLSun/Generic PLA @FLSun S1", + "FLSun/Generic PLA @FLSun T1", + "FLSun/Generic PLA-CF @FLSun", + "FLSun/Generic PVA @FLSun", + "FLSun/Generic TPU @FLSun", "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", "Flashforge/FlashForge PC @FF G4 0.6 nozzle", "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", @@ -6080,37 +5551,6 @@ "Flashforge/Flashforge ASA-CF @FF G4P", "Flashforge/Flashforge ASA-GF @FF C5", "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge Generic ABS", - "Flashforge/Flashforge Generic ABS @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic ABS @G3U", - "Flashforge/Flashforge Generic ABS @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic ASA", - "Flashforge/Flashforge Generic ASA @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic ASA @G3U", - "Flashforge/Flashforge Generic ASA @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic HIPS", - "Flashforge/Flashforge Generic HIPS @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic HS PLA", - "Flashforge/Flashforge Generic HS PLA @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic PETG", - "Flashforge/Flashforge Generic PETG @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic PETG @G3U", - "Flashforge/Flashforge Generic PETG @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PETG @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PETG-CF @G3U", - "Flashforge/Flashforge Generic PETG-CF @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PETG-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PETG-CF10", - "Flashforge/Flashforge Generic PLA", - "Flashforge/Flashforge Generic PLA @G3U", - "Flashforge/Flashforge Generic PLA-CF @G3U", - "Flashforge/Flashforge Generic PLA-CF @G3U 0.6 Nozzle", - "Flashforge/Flashforge Generic PLA-CF @G3U 0.8 Nozzle", - "Flashforge/Flashforge Generic PLA-CF10", - "Flashforge/Flashforge Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge Generic PLA-Silk", - "Flashforge/Flashforge Generic PVA", - "Flashforge/Flashforge Generic TPU", "Flashforge/Flashforge HIPS @FF C5", "Flashforge/Flashforge HIPS @FF C5P", "Flashforge/Flashforge HIPS @FF G4", @@ -6468,40 +5908,52 @@ "Flashforge/Flashforge TPU-90A @FF C5P", "Flashforge/Flashforge TPU-95A @FF C5", "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock Generic NexPA-CF25", - "Flashforge/FusRock Generic PAHT-CF", - "Flashforge/FusRock Generic PAHT-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic PAHT-GF", - "Flashforge/FusRock Generic PET-CF", - "Flashforge/FusRock Generic PET-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic PET-GF", - "Flashforge/FusRock Generic S-Multi", - "Flashforge/FusRock Generic S-Multi @G3U 0.6 Nozzle", - "Flashforge/FusRock Generic S-PAHT", - "Flashforge/FusRock Generic S-PAHT @G3U 0.6 Nozzle", + "Flashforge/FusRock NexPA-CF25", "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PAHT-CF", "Flashforge/FusRock PAHT-CF @FF C5", "Flashforge/FusRock PAHT-CF @FF C5P", "Flashforge/FusRock PAHT-CF @FF G4", "Flashforge/FusRock PAHT-CF @FF G4 0.6 nozzle", "Flashforge/FusRock PAHT-CF @FF G4P", "Flashforge/FusRock PAHT-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PAHT-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock PAHT-GF", "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", + "Flashforge/FusRock PET-CF", "Flashforge/FusRock PET-CF @FF G4", "Flashforge/FusRock PET-CF @FF G4 0.6 nozzle", "Flashforge/FusRock PET-CF @FF G4P", "Flashforge/FusRock PET-CF @FF G4P 0.6 nozzle", + "Flashforge/FusRock PET-CF @G3U 0.6 Nozzle", + "Flashforge/FusRock PET-GF", + "Flashforge/FusRock S-Multi", "Flashforge/FusRock S-Multi @FF C5", "Flashforge/FusRock S-Multi @FF C5P", + "Flashforge/FusRock S-Multi @G3U 0.6 Nozzle", + "Flashforge/FusRock S-PAHT", "Flashforge/FusRock S-PAHT @FF C5", "Flashforge/FusRock S-PAHT @FF C5P", + "Flashforge/FusRock S-PAHT @G3U 0.6 Nozzle", + "Flashforge/Generic ABS @FF AD5M 0.25 Nozzle", + "Flashforge/Generic ABS @Flashforge", "Flashforge/Generic ABS @Flashforge AD4", + "Flashforge/Generic ABS @Flashforge G3U", + "Flashforge/Generic ABS @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic ASA @FF AD5M 0.25 Nozzle", + "Flashforge/Generic ASA @Flashforge", "Flashforge/Generic ASA @Flashforge AD4", + "Flashforge/Generic ASA @Flashforge G3U", + "Flashforge/Generic ASA @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic HIPS @Flashforge", + "Flashforge/Generic HIPS @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic HS PLA @FF AD5M 0.25 Nozzle", + "Flashforge/Generic HS PLA @Flashforge", "Flashforge/Generic PET @FF G4", "Flashforge/Generic PET @FF G4 0.6 HF nozzle", "Flashforge/Generic PET @FF G4 0.6 nozzle", @@ -6510,16 +5962,35 @@ "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", "Flashforge/Generic PET @FF G4P 0.6 nozzle", "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", + "Flashforge/Generic PETG @FF AD5M 0.25 Nozzle", + "Flashforge/Generic PETG @Flashforge", "Flashforge/Generic PETG @Flashforge AD4", "Flashforge/Generic PETG @Flashforge Artemis", + "Flashforge/Generic PETG @Flashforge G3U", + "Flashforge/Generic PETG @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic PETG @Flashforge G3U 0.8 Nozzle", + "Flashforge/Generic PETG-CF @Flashforge G3U", + "Flashforge/Generic PETG-CF @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic PETG-CF @Flashforge G3U 0.8 Nozzle", + "Flashforge/Generic PETG-CF10 @Flashforge", "Flashforge/Generic PETG-CF10 @Flashforge AD4", + "Flashforge/Generic PLA @Flashforge", "Flashforge/Generic PLA @Flashforge AD4", + "Flashforge/Generic PLA @Flashforge G3U", "Flashforge/Generic PLA High Speed @Flashforge AD4", "Flashforge/Generic PLA Silk @Flashforge AD4", + "Flashforge/Generic PLA-CF @Flashforge G3U", + "Flashforge/Generic PLA-CF @Flashforge G3U 0.6 Nozzle", + "Flashforge/Generic PLA-CF @Flashforge G3U 0.8 Nozzle", + "Flashforge/Generic PLA-CF10 @Flashforge", "Flashforge/Generic PLA-CF10 @Flashforge AD4", + "Flashforge/Generic PLA-SILK @FF AD5M 0.25 Nozzle", + "Flashforge/Generic PLA-Silk @Flashforge", + "Flashforge/Generic PVA @Flashforge", "Flashforge/Generic TPU 85A @FF AD5X", "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", + "Flashforge/Generic TPU @Flashforge", "Flashforge/Generic TPU @Flashforge AD4", "Flashforge/Generic TPU-64D @FF C5", "Flashforge/Generic TPU-64D @FF C5P", @@ -6527,22 +5998,16 @@ "Flashforge/Generic TPU-90A @FF C5P", "Flashforge/Generic TPU-95A @FF C5", "Flashforge/Generic TPU-95A @FF C5P", + "Flashforge/Polymaker CoPA", "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", - "Flashforge/Polymaker Generic CoPA", - "Flashforge/Polymaker Generic S1", + "Flashforge/Polymaker S1", "FlyingBear/FlyingBear ABS @Ghost7", "FlyingBear/FlyingBear ABS @S1", - "FlyingBear/FlyingBear Generic ABS", - "FlyingBear/FlyingBear Generic PA-CF", - "FlyingBear/FlyingBear Generic PC", - "FlyingBear/FlyingBear Generic PETG", - "FlyingBear/FlyingBear Generic PLA", - "FlyingBear/FlyingBear Generic TPU", "FlyingBear/FlyingBear PA-CF @Ghost7", "FlyingBear/FlyingBear PA-CF @S1", "FlyingBear/FlyingBear PC @Ghost7", @@ -6556,6 +6021,12 @@ "FlyingBear/FlyingBear PLA Hyper @S1", "FlyingBear/FlyingBear TPU @S1", "FlyingBear/FlyingBear TPU Basic @Ghost7", + "FlyingBear/Generic ABS @FlyingBear", + "FlyingBear/Generic PA-CF @FlyingBear", + "FlyingBear/Generic PC @FlyingBear", + "FlyingBear/Generic PETG @FlyingBear", + "FlyingBear/Generic PLA @FlyingBear", + "FlyingBear/Generic TPU @FlyingBear", "FlyingBear/Other ABS @S1", "FlyingBear/Other PA-CF @S1", "FlyingBear/Other PC @S1", @@ -6563,17 +6034,17 @@ "FlyingBear/Other PLA @S1", "FlyingBear/Other PLA Hyper @S1", "FlyingBear/Other TPU @S1", - "Ginger Additive/Ginger Generic PETG", - "Ginger Additive/Ginger Generic PLA", + "Ginger Additive/Generic PETG @Ginger", + "Ginger Additive/Generic PLA @Ginger", + "InfiMech/Generic ABS @InfiMech", + "InfiMech/Generic PA-CF @InfiMech", + "InfiMech/Generic PC @InfiMech", + "InfiMech/Generic PETG @InfiMech", + "InfiMech/Generic PLA @InfiMech", + "InfiMech/Generic TPU @InfiMech", "InfiMech/InfiMech ABS @EX", "InfiMech/InfiMech ABS @EX+APS", "InfiMech/InfiMech ABS @HSN", - "InfiMech/InfiMech Generic ABS", - "InfiMech/InfiMech Generic PA-CF", - "InfiMech/InfiMech Generic PC", - "InfiMech/InfiMech Generic PETG", - "InfiMech/InfiMech Generic PLA", - "InfiMech/InfiMech Generic TPU", "InfiMech/InfiMech PA-CF @EX", "InfiMech/InfiMech PA-CF @EX+APS", "InfiMech/InfiMech PA-CF @HSN", @@ -6622,10 +6093,10 @@ "Lulzbot/Lulzbot 2.85mm ABS", "Lulzbot/Lulzbot 2.85mm PETG", "Lulzbot/Lulzbot 2.85mm PLA", - "MagicMaker/MM Generic PEEK", - "OrcaArena/OrcaArena Generic PA", - "OrcaArena/OrcaArena Generic PA-CF", - "OrcaArena/OrcaArena Generic TPU", + "MagicMaker/Generic PEEK @MM", + "OrcaArena/Generic PA @OrcaArena", + "OrcaArena/Generic PA-CF @OrcaArena", + "OrcaArena/Generic TPU @OrcaArena", "OrcaFilamentLibrary/Eolas Prints ABS @System", "OrcaFilamentLibrary/Eolas Prints ASA @System", "OrcaFilamentLibrary/Eolas Prints PETG @System", @@ -6730,151 +6201,151 @@ "OrcaFilamentLibrary/PolyLite PLA @System", "OrcaFilamentLibrary/PolyTerra Dual PLA @System", "OrcaFilamentLibrary/eSUN ePLA-LW @System", - "Peopoly/Peopoly Generic ABS", - "Peopoly/Peopoly Generic PETG", - "Peopoly/Peopoly Generic PLA", + "Peopoly/Generic ABS @Peopoly", + "Peopoly/Generic PETG @Peopoly", + "Peopoly/Generic PLA @Peopoly", "Peopoly/Peopoly Lancer ABS-GF", "Peopoly/Peopoly Lancer PET-CF", "Peopoly/Peopoly Lancer PETG-C", "Peopoly/Peopoly Lancer PLA-C", "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", - "Prusa/Prusa Generic ABS @CORE One", - "Prusa/Prusa Generic ABS @CORE One 0.6", - "Prusa/Prusa Generic ABS @CORE One 0.8", - "Prusa/Prusa Generic ABS @CORE One HF 0.4", - "Prusa/Prusa Generic ABS @CORE One HF 0.5", - "Prusa/Prusa Generic ABS @CORE One HF 0.6", - "Prusa/Prusa Generic ABS @CORE One HF 0.8", - "Prusa/Prusa Generic ABS @MK3.5", - "Prusa/Prusa Generic ABS @MK3.5 0.25", - "Prusa/Prusa Generic ABS @MK3.5 0.6", - "Prusa/Prusa Generic ABS @MK3.5 0.8", - "Prusa/Prusa Generic ABS @MK4S", - "Prusa/Prusa Generic ABS @MK4S 0.6", - "Prusa/Prusa Generic ABS @MK4S 0.8", - "Prusa/Prusa Generic ABS @MK4S HF0.4", - "Prusa/Prusa Generic ABS @MK4S HF0.5", - "Prusa/Prusa Generic ABS @MK4S HF0.6", - "Prusa/Prusa Generic ABS @MK4S HF0.8", - "Prusa/Prusa Generic ABS HF @MK3.5", - "Prusa/Prusa Generic ABS HF @MK3.5 0.6", - "Prusa/Prusa Generic ABS HF @MK3.5 0.8", - "Prusa/Prusa Generic ASA", - "Prusa/Prusa Generic ASA @CORE One", - "Prusa/Prusa Generic ASA @CORE One 0.6", - "Prusa/Prusa Generic ASA @CORE One 0.8", - "Prusa/Prusa Generic ASA @CORE One HF 0.4", - "Prusa/Prusa Generic ASA @CORE One HF 0.5", - "Prusa/Prusa Generic ASA @CORE One HF 0.6", - "Prusa/Prusa Generic ASA @CORE One HF 0.8", - "Prusa/Prusa Generic ASA @MINIIS", - "Prusa/Prusa Generic ASA @MINIIS 0.25", - "Prusa/Prusa Generic ASA @MINIIS 0.6", - "Prusa/Prusa Generic ASA @MINIIS 0.8", - "Prusa/Prusa Generic ASA @MK3.5", - "Prusa/Prusa Generic ASA @MK3.5 0.25", - "Prusa/Prusa Generic ASA @MK3.5 0.6", - "Prusa/Prusa Generic ASA @MK3.5 0.8", - "Prusa/Prusa Generic ASA @MK4", - "Prusa/Prusa Generic ASA @MK4S", - "Prusa/Prusa Generic ASA @MK4S 0.6", - "Prusa/Prusa Generic ASA @MK4S 0.8", - "Prusa/Prusa Generic ASA @MK4S HF0.4", - "Prusa/Prusa Generic ASA @MK4S HF0.5", - "Prusa/Prusa Generic ASA @MK4S HF0.6", - "Prusa/Prusa Generic ASA @MK4S HF0.8", - "Prusa/Prusa Generic ASA HF @MK3.5", - "Prusa/Prusa Generic ASA HF @MK3.5 0.6", - "Prusa/Prusa Generic ASA HF @MK3.5 0.8", - "Prusa/Prusa Generic FLEX @XL", - "Prusa/Prusa Generic FLEX @XL 5T", - "Prusa/Prusa Generic PA @MK3.5", - "Prusa/Prusa Generic PA @MK3.5 0.25", - "Prusa/Prusa Generic PA @MK3.5 0.6", - "Prusa/Prusa Generic PA @MK3.5 0.8", - "Prusa/Prusa Generic PA-CF @MK3.5", - "Prusa/Prusa Generic PA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PC", - "Prusa/Prusa Generic PC @MINIIS", - "Prusa/Prusa Generic PC @MINIIS 0.25", - "Prusa/Prusa Generic PC @MINIIS 0.6", - "Prusa/Prusa Generic PC @MINIIS 0.8", - "Prusa/Prusa Generic PC @MK3.5", - "Prusa/Prusa Generic PC @MK3.5 0.25", - "Prusa/Prusa Generic PC @MK3.5 0.6", - "Prusa/Prusa Generic PC @MK3.5 0.8", - "Prusa/Prusa Generic PC HF @MK3.5", - "Prusa/Prusa Generic PC HF @MK3.5 0.6", - "Prusa/Prusa Generic PC HF @MK3.5 0.8", - "Prusa/Prusa Generic PETG @CORE One", - "Prusa/Prusa Generic PETG @CORE One 0.6", - "Prusa/Prusa Generic PETG @CORE One 0.8", - "Prusa/Prusa Generic PETG @CORE One HF 0.4", - "Prusa/Prusa Generic PETG @CORE One HF 0.5", - "Prusa/Prusa Generic PETG @CORE One HF 0.6", - "Prusa/Prusa Generic PETG @CORE One HF 0.8", - "Prusa/Prusa Generic PETG @MK3.5", - "Prusa/Prusa Generic PETG @MK3.5 0.25", - "Prusa/Prusa Generic PETG @MK3.5 0.6", - "Prusa/Prusa Generic PETG @MK3.5 0.8", - "Prusa/Prusa Generic PETG @MK4S", - "Prusa/Prusa Generic PETG @MK4S 0.6", - "Prusa/Prusa Generic PETG @MK4S 0.8", - "Prusa/Prusa Generic PETG @MK4S HF0.4", - "Prusa/Prusa Generic PETG @MK4S HF0.5", - "Prusa/Prusa Generic PETG @MK4S HF0.6", - "Prusa/Prusa Generic PETG @MK4S HF0.8", - "Prusa/Prusa Generic PETG HF @MK3.5", - "Prusa/Prusa Generic PETG HF @MK3.5 0.6", - "Prusa/Prusa Generic PETG HF @MK3.5 0.8", - "Prusa/Prusa Generic PLA @CORE One", - "Prusa/Prusa Generic PLA @CORE One 0.6", - "Prusa/Prusa Generic PLA @CORE One 0.8", - "Prusa/Prusa Generic PLA @CORE One HF 0.4", - "Prusa/Prusa Generic PLA @CORE One HF 0.5", - "Prusa/Prusa Generic PLA @CORE One HF 0.6", - "Prusa/Prusa Generic PLA @CORE One HF 0.8", - "Prusa/Prusa Generic PLA @MK3.5", - "Prusa/Prusa Generic PLA @MK3.5 0.25", - "Prusa/Prusa Generic PLA @MK3.5 0.6", - "Prusa/Prusa Generic PLA @MK3.5 0.8", - "Prusa/Prusa Generic PLA @MK4S", - "Prusa/Prusa Generic PLA @MK4S 0.6", - "Prusa/Prusa Generic PLA @MK4S 0.8", - "Prusa/Prusa Generic PLA @MK4S HF0.4", - "Prusa/Prusa Generic PLA @MK4S HF0.5", - "Prusa/Prusa Generic PLA @MK4S HF0.6", - "Prusa/Prusa Generic PLA @MK4S HF0.8", - "Prusa/Prusa Generic PLA HF @MK3.5", - "Prusa/Prusa Generic PLA HF @MK3.5 0.6", - "Prusa/Prusa Generic PLA HF @MK3.5 0.8", - "Prusa/Prusa Generic PLA Silk @CORE One", - "Prusa/Prusa Generic PLA Silk @CORE One 0.6", - "Prusa/Prusa Generic PLA Silk @CORE One 0.8", - "Prusa/Prusa Generic PLA Silk @MK4S", - "Prusa/Prusa Generic PLA Silk @MK4S 0.6", - "Prusa/Prusa Generic PLA Silk @MK4S 0.8", - "Prusa/Prusa Generic PLA-CF @MK3.5", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.25", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.6", - "Prusa/Prusa Generic PLA-CF @MK3.5 0.8", - "Prusa/Prusa Generic PVA @MK3.5", - "Prusa/Prusa Generic PVA @MK3.5 0.25", - "Prusa/Prusa Generic PVA @MK3.5 0.6", - "Prusa/Prusa Generic PVA @MK3.5 0.8", - "Prusa/Prusa Generic PVA HF @MK3.5", - "Prusa/Prusa Generic PVA HF @MK3.5 0.6", - "Prusa/Prusa Generic PVA HF @MK3.5 0.8", - "Prusa/Prusa Generic TPU @CORE One", - "Prusa/Prusa Generic TPU @CORE One 0.6", - "Prusa/Prusa Generic TPU @CORE One 0.8", - "Prusa/Prusa Generic TPU @MK3.5", - "Prusa/Prusa Generic TPU @MK4S", - "Prusa/Prusa Generic TPU @MK4S 0.6", - "Prusa/Prusa Generic TPU @MK4S 0.8", - "Prusa/Prusa Generic TPU HF @MK3.5", + "Prusa/Generic ABS @Prusa CORE One", + "Prusa/Generic ABS @Prusa CORE One 0.6", + "Prusa/Generic ABS @Prusa CORE One 0.8", + "Prusa/Generic ABS @Prusa CORE One HF 0.4", + "Prusa/Generic ABS @Prusa CORE One HF 0.5", + "Prusa/Generic ABS @Prusa CORE One HF 0.6", + "Prusa/Generic ABS @Prusa CORE One HF 0.8", + "Prusa/Generic ABS @Prusa MK3.5", + "Prusa/Generic ABS @Prusa MK3.5 0.25", + "Prusa/Generic ABS @Prusa MK3.5 0.6", + "Prusa/Generic ABS @Prusa MK3.5 0.8", + "Prusa/Generic ABS @Prusa MK4S", + "Prusa/Generic ABS @Prusa MK4S 0.6", + "Prusa/Generic ABS @Prusa MK4S 0.8", + "Prusa/Generic ABS @Prusa MK4S HF0.4", + "Prusa/Generic ABS @Prusa MK4S HF0.5", + "Prusa/Generic ABS @Prusa MK4S HF0.6", + "Prusa/Generic ABS @Prusa MK4S HF0.8", + "Prusa/Generic ABS HF @Prusa MK3.5", + "Prusa/Generic ABS HF @Prusa MK3.5 0.6", + "Prusa/Generic ABS HF @Prusa MK3.5 0.8", + "Prusa/Generic ASA @Prusa", + "Prusa/Generic ASA @Prusa CORE One", + "Prusa/Generic ASA @Prusa CORE One 0.6", + "Prusa/Generic ASA @Prusa CORE One 0.8", + "Prusa/Generic ASA @Prusa CORE One HF 0.4", + "Prusa/Generic ASA @Prusa CORE One HF 0.5", + "Prusa/Generic ASA @Prusa CORE One HF 0.6", + "Prusa/Generic ASA @Prusa CORE One HF 0.8", + "Prusa/Generic ASA @Prusa MINIIS", + "Prusa/Generic ASA @Prusa MINIIS 0.25", + "Prusa/Generic ASA @Prusa MINIIS 0.6", + "Prusa/Generic ASA @Prusa MINIIS 0.8", + "Prusa/Generic ASA @Prusa MK3.5", + "Prusa/Generic ASA @Prusa MK3.5 0.25", + "Prusa/Generic ASA @Prusa MK3.5 0.6", + "Prusa/Generic ASA @Prusa MK3.5 0.8", + "Prusa/Generic ASA @Prusa MK4", + "Prusa/Generic ASA @Prusa MK4S", + "Prusa/Generic ASA @Prusa MK4S 0.6", + "Prusa/Generic ASA @Prusa MK4S 0.8", + "Prusa/Generic ASA @Prusa MK4S HF0.4", + "Prusa/Generic ASA @Prusa MK4S HF0.5", + "Prusa/Generic ASA @Prusa MK4S HF0.6", + "Prusa/Generic ASA @Prusa MK4S HF0.8", + "Prusa/Generic ASA HF @Prusa MK3.5", + "Prusa/Generic ASA HF @Prusa MK3.5 0.6", + "Prusa/Generic ASA HF @Prusa MK3.5 0.8", + "Prusa/Generic FLEX @Prusa XL", + "Prusa/Generic FLEX @Prusa XL 5T", + "Prusa/Generic PA @Prusa MK3.5", + "Prusa/Generic PA @Prusa MK3.5 0.25", + "Prusa/Generic PA @Prusa MK3.5 0.6", + "Prusa/Generic PA @Prusa MK3.5 0.8", + "Prusa/Generic PA-CF @Prusa MK3.5", + "Prusa/Generic PA-CF @Prusa MK3.5 0.25", + "Prusa/Generic PA-CF @Prusa MK3.5 0.6", + "Prusa/Generic PA-CF @Prusa MK3.5 0.8", + "Prusa/Generic PC @Prusa", + "Prusa/Generic PC @Prusa MINIIS", + "Prusa/Generic PC @Prusa MINIIS 0.25", + "Prusa/Generic PC @Prusa MINIIS 0.6", + "Prusa/Generic PC @Prusa MINIIS 0.8", + "Prusa/Generic PC @Prusa MK3.5", + "Prusa/Generic PC @Prusa MK3.5 0.25", + "Prusa/Generic PC @Prusa MK3.5 0.6", + "Prusa/Generic PC @Prusa MK3.5 0.8", + "Prusa/Generic PC HF @Prusa MK3.5", + "Prusa/Generic PC HF @Prusa MK3.5 0.6", + "Prusa/Generic PC HF @Prusa MK3.5 0.8", + "Prusa/Generic PETG @Prusa CORE One", + "Prusa/Generic PETG @Prusa CORE One 0.6", + "Prusa/Generic PETG @Prusa CORE One 0.8", + "Prusa/Generic PETG @Prusa CORE One HF 0.4", + "Prusa/Generic PETG @Prusa CORE One HF 0.5", + "Prusa/Generic PETG @Prusa CORE One HF 0.6", + "Prusa/Generic PETG @Prusa CORE One HF 0.8", + "Prusa/Generic PETG @Prusa MK3.5", + "Prusa/Generic PETG @Prusa MK3.5 0.25", + "Prusa/Generic PETG @Prusa MK3.5 0.6", + "Prusa/Generic PETG @Prusa MK3.5 0.8", + "Prusa/Generic PETG @Prusa MK4S", + "Prusa/Generic PETG @Prusa MK4S 0.6", + "Prusa/Generic PETG @Prusa MK4S 0.8", + "Prusa/Generic PETG @Prusa MK4S HF0.4", + "Prusa/Generic PETG @Prusa MK4S HF0.5", + "Prusa/Generic PETG @Prusa MK4S HF0.6", + "Prusa/Generic PETG @Prusa MK4S HF0.8", + "Prusa/Generic PETG HF @Prusa MK3.5", + "Prusa/Generic PETG HF @Prusa MK3.5 0.6", + "Prusa/Generic PETG HF @Prusa MK3.5 0.8", + "Prusa/Generic PLA @Prusa CORE One", + "Prusa/Generic PLA @Prusa CORE One 0.6", + "Prusa/Generic PLA @Prusa CORE One 0.8", + "Prusa/Generic PLA @Prusa CORE One HF 0.4", + "Prusa/Generic PLA @Prusa CORE One HF 0.5", + "Prusa/Generic PLA @Prusa CORE One HF 0.6", + "Prusa/Generic PLA @Prusa CORE One HF 0.8", + "Prusa/Generic PLA @Prusa MK3.5", + "Prusa/Generic PLA @Prusa MK3.5 0.25", + "Prusa/Generic PLA @Prusa MK3.5 0.6", + "Prusa/Generic PLA @Prusa MK3.5 0.8", + "Prusa/Generic PLA @Prusa MK4S", + "Prusa/Generic PLA @Prusa MK4S 0.6", + "Prusa/Generic PLA @Prusa MK4S 0.8", + "Prusa/Generic PLA @Prusa MK4S HF0.4", + "Prusa/Generic PLA @Prusa MK4S HF0.5", + "Prusa/Generic PLA @Prusa MK4S HF0.6", + "Prusa/Generic PLA @Prusa MK4S HF0.8", + "Prusa/Generic PLA HF @Prusa MK3.5", + "Prusa/Generic PLA HF @Prusa MK3.5 0.6", + "Prusa/Generic PLA HF @Prusa MK3.5 0.8", + "Prusa/Generic PLA Silk @Prusa CORE One", + "Prusa/Generic PLA Silk @Prusa CORE One 0.6", + "Prusa/Generic PLA Silk @Prusa CORE One 0.8", + "Prusa/Generic PLA Silk @Prusa MK4S", + "Prusa/Generic PLA Silk @Prusa MK4S 0.6", + "Prusa/Generic PLA Silk @Prusa MK4S 0.8", + "Prusa/Generic PLA-CF @Prusa MK3.5", + "Prusa/Generic PLA-CF @Prusa MK3.5 0.25", + "Prusa/Generic PLA-CF @Prusa MK3.5 0.6", + "Prusa/Generic PLA-CF @Prusa MK3.5 0.8", + "Prusa/Generic PVA @Prusa MK3.5", + "Prusa/Generic PVA @Prusa MK3.5 0.25", + "Prusa/Generic PVA @Prusa MK3.5 0.6", + "Prusa/Generic PVA @Prusa MK3.5 0.8", + "Prusa/Generic PVA HF @Prusa MK3.5", + "Prusa/Generic PVA HF @Prusa MK3.5 0.6", + "Prusa/Generic PVA HF @Prusa MK3.5 0.8", + "Prusa/Generic TPU @Prusa CORE One", + "Prusa/Generic TPU @Prusa CORE One 0.6", + "Prusa/Generic TPU @Prusa CORE One 0.8", + "Prusa/Generic TPU @Prusa MK3.5", + "Prusa/Generic TPU @Prusa MK4S", + "Prusa/Generic TPU @Prusa MK4S 0.6", + "Prusa/Generic TPU @Prusa MK4S 0.8", + "Prusa/Generic TPU HF @Prusa MK3.5", "Prusa/Prusament ASA @CORE One", "Prusa/Prusament ASA @CORE One 0.6", "Prusa/Prusament ASA @CORE One 0.8", @@ -6961,6 +6432,107 @@ "Qidi/Bambu PLA @Qidi X-Plus 4 0.4 nozzle", "Qidi/Bambu PLA @Qidi X-Plus 4 0.6 nozzle", "Qidi/Bambu PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic ABS @Qidi", + "Qidi/Generic ABS @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic ABS @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic ABS @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic ABS @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic ABS @Qidi X-Max 3 0.2 nozzle", + "Qidi/Generic ABS @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic ABS @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Generic ASA @Qidi", + "Qidi/Generic ASA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic ASA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic ASA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic ASA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic ASA @Qidi X-Max 3 0.2 nozzle", + "Qidi/Generic ASA @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic ASA @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Generic PA @Qidi", + "Qidi/Generic PA-CF @Qidi", + "Qidi/Generic PC @Qidi", + "Qidi/Generic PC @Qidi 0.2 nozzle", + "Qidi/Generic PC @Qidi 0.8 nozzle", + "Qidi/Generic PC @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic PC @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic PC @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic PC @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic PC @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PC @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PC @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PC @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic PETG @Qidi", + "Qidi/Generic PETG @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic PETG @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic PETG @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic PETG @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic PETG @Qidi X-Max 3 0.2 nozzle", + "Qidi/Generic PETG @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic PETG @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Generic PETG-CF @Qidi", + "Qidi/Generic PLA @Qidi", + "Qidi/Generic PLA @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic PLA @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic PLA @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic PLA @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic PLA @Qidi X-Max 3 0.2 nozzle", + "Qidi/Generic PLA @Qidi X-Max 3 0.6 nozzle", + "Qidi/Generic PLA @Qidi X-Max 3 0.8 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 3 0.6 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 3 0.8 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic PLA @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Generic PLA @Qidi X-Smart 3 0.6 nozzle", + "Qidi/Generic PLA @Qidi X-Smart 3 0.8 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic PLA Silk @Qidi", + "Qidi/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PLA+ @Qidi", + "Qidi/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", + "Qidi/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", + "Qidi/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic PLA+ @Qidi X-Max 3 0.2 nozzle", + "Qidi/Generic PLA+ @Qidi X-Max 3 0.6 nozzle", + "Qidi/Generic PLA+ @Qidi X-Max 3 0.8 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", + "Qidi/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", + "Qidi/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", + "Qidi/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", + "Qidi/Generic PLA-CF @Qidi", + "Qidi/Generic PVA @Qidi", + "Qidi/Generic TPU 95A @Qidi", + "Qidi/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", + "Qidi/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", + "Qidi/Generic TPU @Qidi", + "Qidi/Generic TPU @Qidi Q1 Pro 0.4 nozzle", + "Qidi/Generic TPU @Qidi X-Plus 4 0.4 nozzle", "Qidi/HATCHBOX ABS @Qidi", "Qidi/HATCHBOX ABS @Qidi 0.2 nozzle", "Qidi/HATCHBOX ABS @Qidi 0.6 nozzle", @@ -7360,107 +6932,6 @@ "Qidi/Qidi ASA-Aero", "Qidi/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle", "Qidi/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic ABS", - "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Max 3 0.2 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic ABS @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Qidi Generic ASA", - "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic ASA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Max 3 0.2 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic ASA @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Qidi Generic PA", - "Qidi/Qidi Generic PA-CF", - "Qidi/Qidi Generic PC", - "Qidi/Qidi Generic PC @0.2 nozzle", - "Qidi/Qidi Generic PC @0.8 nozzle", - "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic PC @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PC @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PETG", - "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Max 3 0.2 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PETG @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Qidi Generic PETG-CF", - "Qidi/Qidi Generic PLA", - "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.6 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Max 3 0.8 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.6 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 3 0.8 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.6 nozzle", - "Qidi/Qidi Generic PLA @Qidi X-Smart 3 0.8 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PLA Silk", - "Qidi/Qidi Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PLA+", - "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.2 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.6 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Max 3 0.8 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", - "Qidi/Qidi Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", - "Qidi/Qidi Generic PLA-CF", - "Qidi/Qidi Generic PVA", - "Qidi/Qidi Generic TPU", - "Qidi/Qidi Generic TPU 95A", - "Qidi/Qidi Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi Generic TPU @Qidi X-Plus 4 0.4 nozzle", "Qidi/Qidi PC-ABS-FR", "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle", @@ -7481,36 +6952,36 @@ "RH3D/Generic PETG @E3NG v1.2S", "RH3D/Generic PLA @E3NG v1.2S", "RH3D/Generic TPU @E3NG v1.2S", + "Ratrig/Generic ABS @RatRig", + "Ratrig/Generic ASA @RatRig", + "Ratrig/Generic PA @RatRig", + "Ratrig/Generic PA-CF @RatRig", + "Ratrig/Generic PC @RatRig", + "Ratrig/Generic PCTG @RatRig", + "Ratrig/Generic PETG @RatRig", + "Ratrig/Generic PLA @RatRig", + "Ratrig/Generic PLA-CF @RatRig", + "Ratrig/Generic PVA @RatRig", + "Ratrig/Generic TPU @RatRig", "Ratrig/RatRig BigNozzle ABS", "Ratrig/RatRig BigNozzle ASA", "Ratrig/RatRig BigNozzle PCTG", "Ratrig/RatRig BigNozzle PETG", "Ratrig/RatRig BigNozzle PLA", "Ratrig/RatRig BigNozzle TPU", - "Ratrig/RatRig Generic ABS", - "Ratrig/RatRig Generic ASA", - "Ratrig/RatRig Generic PA", - "Ratrig/RatRig Generic PA-CF", - "Ratrig/RatRig Generic PC", - "Ratrig/RatRig Generic PCTG", - "Ratrig/RatRig Generic PETG", - "Ratrig/RatRig Generic PLA", - "Ratrig/RatRig Generic PLA-CF", - "Ratrig/RatRig Generic PVA", - "Ratrig/RatRig Generic TPU", "Ratrig/RatRig PunkFil ABS", "Ratrig/RatRig PunkFil PETG", "Ratrig/RatRig PunkFil PETG CF", - "SecKit/SecKit Generic ABS", - "SecKit/SecKit Generic ASA", - "SecKit/SecKit Generic PA", - "SecKit/SecKit Generic PA-CF", - "SecKit/SecKit Generic PC", - "SecKit/SecKit Generic PETG", - "SecKit/SecKit Generic PLA", - "SecKit/SecKit Generic PLA-CF", - "SecKit/SecKit Generic PVA", - "SecKit/SecKit Generic TPU", + "SecKit/Generic ABS @SecKit", + "SecKit/Generic ASA @SecKit", + "SecKit/Generic PA @SecKit", + "SecKit/Generic PA-CF @SecKit", + "SecKit/Generic PC @SecKit", + "SecKit/Generic PETG @SecKit", + "SecKit/Generic PLA @SecKit", + "SecKit/Generic PLA-CF @SecKit", + "SecKit/Generic PVA @SecKit", + "SecKit/Generic TPU @SecKit", "SeeMeCNC/SeeMeCNC ABS", "SeeMeCNC/SeeMeCNC PA-CF", "SeeMeCNC/SeeMeCNC PETG", @@ -7581,66 +7052,66 @@ "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", "Sovol/Sovol Zero TPU", + "Tiertime/Generic ABS @Tiertime", + "Tiertime/Generic ABS @Tiertime 300HS", + "Tiertime/Generic ASA @Tiertime", + "Tiertime/Generic ASA @Tiertime 300HS", + "Tiertime/Generic BVOH @Tiertime", + "Tiertime/Generic BVOH @Tiertime 300HS", + "Tiertime/Generic EVA @Tiertime", + "Tiertime/Generic EVA @Tiertime 300HS", + "Tiertime/Generic HIPS @Tiertime", + "Tiertime/Generic HIPS @Tiertime 300HS", + "Tiertime/Generic PA @Tiertime", + "Tiertime/Generic PA @Tiertime 300HS", + "Tiertime/Generic PA-CF @Tiertime", + "Tiertime/Generic PA-CF @Tiertime 300HS", + "Tiertime/Generic PC @Tiertime", + "Tiertime/Generic PC @Tiertime 300HS", + "Tiertime/Generic PCTG @Tiertime", + "Tiertime/Generic PCTG @Tiertime 300HS", + "Tiertime/Generic PE @Tiertime", + "Tiertime/Generic PE @Tiertime 300HS", + "Tiertime/Generic PE-CF @Tiertime", + "Tiertime/Generic PE-CF @Tiertime 300HS", + "Tiertime/Generic PETG @Tiertime", + "Tiertime/Generic PETG @Tiertime 300HS", + "Tiertime/Generic PETG-CF @Tiertime", + "Tiertime/Generic PETG-CF @Tiertime 300HS", + "Tiertime/Generic PHA @Tiertime", + "Tiertime/Generic PHA @Tiertime 300HS", + "Tiertime/Generic PLA @Tiertime", + "Tiertime/Generic PLA @Tiertime 300HS", + "Tiertime/Generic PLA High Speed @Tiertime", + "Tiertime/Generic PLA High Speed @Tiertime 300HS", + "Tiertime/Generic PLA Silk @Tiertime", + "Tiertime/Generic PLA Silk @Tiertime 300HS", + "Tiertime/Generic PLA-CF @Tiertime", + "Tiertime/Generic PLA-CF @Tiertime 300HS", + "Tiertime/Generic PP @Tiertime", + "Tiertime/Generic PP @Tiertime 300HS", + "Tiertime/Generic PP-CF @Tiertime", + "Tiertime/Generic PP-CF @Tiertime 300HS", + "Tiertime/Generic PP-GF @Tiertime", + "Tiertime/Generic PP-GF @Tiertime 300HS", + "Tiertime/Generic PPA-CF @Tiertime", + "Tiertime/Generic PPA-CF @Tiertime 300HS", + "Tiertime/Generic PPA-GF @Tiertime", + "Tiertime/Generic PPA-GF @Tiertime 300HS", + "Tiertime/Generic PPS @Tiertime", + "Tiertime/Generic PPS @Tiertime 300HS", + "Tiertime/Generic PPS-CF @Tiertime", + "Tiertime/Generic PPS-CF @Tiertime 300HS", + "Tiertime/Generic PVA @Tiertime", + "Tiertime/Generic PVA @Tiertime 300HS", + "Tiertime/Generic SBS @Tiertime", + "Tiertime/Generic SBS @Tiertime 300HS", + "Tiertime/Generic TPU @Tiertime", + "Tiertime/Generic TPU @Tiertime 300HS", "Tiertime/Tiertime ABS", "Tiertime/Tiertime ABS@300HS", "Tiertime/Tiertime ASA", "Tiertime/Tiertime ASA@300HS", - "Tiertime/Tiertime Generic ABS", - "Tiertime/Tiertime Generic ABS@300HS", - "Tiertime/Tiertime Generic ASA", - "Tiertime/Tiertime Generic ASA@300HS", - "Tiertime/Tiertime Generic BVOH", - "Tiertime/Tiertime Generic BVOH@300HS", - "Tiertime/Tiertime Generic EVA", - "Tiertime/Tiertime Generic EVA@300HS", - "Tiertime/Tiertime Generic HIPS", - "Tiertime/Tiertime Generic HIPS@300HS", - "Tiertime/Tiertime Generic PA", - "Tiertime/Tiertime Generic PA-CF", - "Tiertime/Tiertime Generic PA-CF@300HS", - "Tiertime/Tiertime Generic PA@300HS", - "Tiertime/Tiertime Generic PC", - "Tiertime/Tiertime Generic PC@300HS", - "Tiertime/Tiertime Generic PCTG", - "Tiertime/Tiertime Generic PCTG@300HS", - "Tiertime/Tiertime Generic PE", - "Tiertime/Tiertime Generic PE-CF", - "Tiertime/Tiertime Generic PE-CF@300HS", - "Tiertime/Tiertime Generic PE@300HS", - "Tiertime/Tiertime Generic PETG", - "Tiertime/Tiertime Generic PETG-CF", - "Tiertime/Tiertime Generic PETG-CF@300HS", - "Tiertime/Tiertime Generic PETG@300HS", - "Tiertime/Tiertime Generic PHA", - "Tiertime/Tiertime Generic PHA@300HS", - "Tiertime/Tiertime Generic PLA", - "Tiertime/Tiertime Generic PLA High Speed", - "Tiertime/Tiertime Generic PLA High Speed@300HS", - "Tiertime/Tiertime Generic PLA Silk", - "Tiertime/Tiertime Generic PLA Silk@300HS", - "Tiertime/Tiertime Generic PLA-CF", - "Tiertime/Tiertime Generic PLA-CF@300HS", - "Tiertime/Tiertime Generic PLA@300HS", - "Tiertime/Tiertime Generic PP", - "Tiertime/Tiertime Generic PP-CF", - "Tiertime/Tiertime Generic PP-CF@300HS", - "Tiertime/Tiertime Generic PP-GF", - "Tiertime/Tiertime Generic PP-GF@300HS", - "Tiertime/Tiertime Generic PP@300HS", - "Tiertime/Tiertime Generic PPA-CF", - "Tiertime/Tiertime Generic PPA-CF@300HS", - "Tiertime/Tiertime Generic PPA-GF", - "Tiertime/Tiertime Generic PPA-GF@300HS", - "Tiertime/Tiertime Generic PPS", - "Tiertime/Tiertime Generic PPS-CF", - "Tiertime/Tiertime Generic PPS-CF@300HS", - "Tiertime/Tiertime Generic PPS@300HS", - "Tiertime/Tiertime Generic PVA", - "Tiertime/Tiertime Generic PVA@300HS", - "Tiertime/Tiertime Generic SBS", - "Tiertime/Tiertime Generic SBS@300HS", - "Tiertime/Tiertime Generic TPU", - "Tiertime/Tiertime Generic TPU@300HS", "Tiertime/Tiertime PA6-CF", "Tiertime/Tiertime PA6-CF@300HS", "Tiertime/Tiertime PC", @@ -7657,8 +7128,8 @@ "Tiertime/Tiertime PVA@300HS", "Tiertime/Tiertime TPU 95A", "Tiertime/Tiertime TPU 95A@300HS", - "TwoTrees/TwoTrees Generic 95A TPU @SK1", - "TwoTrees/TwoTrees Generic HS PLA @SK1", + "TwoTrees/Generic 95A TPU @TwoTrees SK1", + "TwoTrees/Generic HS PLA @TwoTrees SK1", "Volumic/Désactivé", "Volumic/PA6 CF20 (Performance)", "Volumic/PETG ESD (Performance)", @@ -7686,16 +7157,16 @@ "Volumic/Volumic PVA-BVOH (Performance)", "Volumic/Volumic UNIVERSAL Ultra", "Volumic/Volumic UNIVERSAL Ultra (Performance)", - "Vzbot/Vzbot Generic ABS", - "Vzbot/Vzbot Generic ASA", - "Vzbot/Vzbot Generic PA", - "Vzbot/Vzbot Generic PA-CF", - "Vzbot/Vzbot Generic PC", - "Vzbot/Vzbot Generic PETG", - "Vzbot/Vzbot Generic PLA", - "Vzbot/Vzbot Generic PLA-CF", - "Vzbot/Vzbot Generic PVA", - "Vzbot/Vzbot Generic TPU", + "Vzbot/Generic ABS @Vzbot", + "Vzbot/Generic ASA @Vzbot", + "Vzbot/Generic PA @Vzbot", + "Vzbot/Generic PA-CF @Vzbot", + "Vzbot/Generic PC @Vzbot", + "Vzbot/Generic PETG @Vzbot", + "Vzbot/Generic PLA @Vzbot", + "Vzbot/Generic PLA-CF @Vzbot", + "Vzbot/Generic PVA @Vzbot", + "Vzbot/Generic TPU @Vzbot", "Wanhao France/YUMI PETG", "Wanhao France/YUMI PLA Bowden", "Wanhao France/YUMI PLA Direct Drive", @@ -7764,6 +7235,13 @@ "Soleyin Ultra PLA" ] ], + "OF0AquDh": [ + [ + "FusRock", + "PA", + "FusRock S-Multi" + ] + ], "OF0FfcAG": [ [ "Anycubic", @@ -7771,13 +7249,6 @@ "Anycubic TPU for ACE" ] ], - "OF0GIkJm": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA Silk" - ] - ], "OF0NgY1y": [ [ "COEX 3D", @@ -7890,13 +7361,6 @@ "Anycubic ASA" ] ], - "OF0zx94L": [ - [ - "Generic", - "PA", - "Vzbot Generic PA" - ] - ], "OF112FvY": [ [ "Generic", @@ -7904,13 +7368,6 @@ "Generic PETG Basic" ] ], - "OF1Id239": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG" - ] - ], "OF1N1qMK": [ [ "Polymaker", @@ -7918,13 +7375,6 @@ "Panchroma PLA UV Shift" ] ], - "OF1OZujR": [ - [ - "Generic", - "PVA", - "Flashforge Generic PVA" - ] - ], "OF1Pke8t": [ [ "Overture", @@ -7960,13 +7410,6 @@ "Snapmaker ASA" ] ], - "OF1daEUW": [ - [ - "Generic", - "PETG-CF", - "Anker Generic PETG-CF" - ] - ], "OF1dpPrW": [ [ "Bambu Lab", @@ -7981,13 +7424,6 @@ "Elegoo PLA PRO" ] ], - "OF1uR1t2": [ - [ - "Generic", - "PETG", - "Tiertime Generic PETG" - ] - ], "OF223rZv": [ [ "Anycubic", @@ -8016,13 +7452,6 @@ "SUNLU PETG" ] ], - "OF2RjrWH": [ - [ - "Generic", - "PAHT-GF", - "FusRock Generic PAHT-GF" - ] - ], "OF2TQpOO": [ [ "QIDI", @@ -8058,13 +7487,6 @@ "Arena PLA-CF" ] ], - "OF2mgDsI": [ - [ - "Generic", - "PLA", - "Vzbot Generic PLA" - ] - ], "OF2pj5l5": [ [ "Overture", @@ -8107,13 +7529,6 @@ "CR-Silk" ] ], - "OF3P0BQA": [ - [ - "Generic", - "ABS", - "Anker Generic ABS" - ] - ], "OF3WQaKK": [ [ "Creality", @@ -8149,20 +7564,6 @@ "Snapmaker Dual PETG-CF" ] ], - "OF3s929u": [ - [ - "Generic", - "PP", - "Tiertime Generic PP" - ] - ], - "OF3wxlw9": [ - [ - "CoLiDo", - "PETG", - "CoLiDo Generic PETG" - ] - ], "OF3ydJTT": [ [ "InfiMech", @@ -8177,13 +7578,6 @@ "Flashforge TPU-90A" ] ], - "OF42ZDpN": [ - [ - "Generic", - "PAHT", - "FusRock PAHT" - ] - ], "OF43Raws": [ [ "Polymaker", @@ -8205,13 +7599,6 @@ "FilAr PETG Azul Francia" ] ], - "OF48L671": [ - [ - "Generic", - "ASA", - "RatRig Generic ASA" - ] - ], "OF4APyxe": [ [ "Creality", @@ -8226,13 +7613,6 @@ "FilAr PLA" ] ], - "OF4Mf5Gz": [ - [ - "Generic", - "PETG", - "Creality Generic PETG" - ] - ], "OF4Nhggz": [ [ "Artillery", @@ -8261,13 +7641,6 @@ "Snapmaker PETG" ] ], - "OF4XAUnp": [ - [ - "Generic", - "ASA", - "Vzbot Generic ASA" - ] - ], "OF4f8vVp": [ [ "WonderMaker", @@ -8289,13 +7662,6 @@ "QIDI PLA Basic" ] ], - "OF4oCRKe": [ - [ - "Generic", - "PETG", - "DeltaMaker Generic PETG" - ] - ], "OF4ulo9Y": [ [ "WonderMaker", @@ -8303,27 +7669,6 @@ "WonderMaker PVA" ] ], - "OF4xhTuK": [ - [ - "Generic", - "PA-CF", - "OrcaArena Generic PA-CF" - ] - ], - "OF4zzGwp": [ - [ - "Generic", - "PET-GF", - "FusRock Generic PET-GF" - ] - ], - "OF51XQar": [ - [ - "Generic", - "PLA", - "C1 Generic PLA" - ] - ], "OF53eLVD": [ [ "Generic", @@ -8345,6 +7690,13 @@ "Prusament PA-CF" ] ], + "OF55jHAJ": [ + [ + "Generic", + "ABS", + "Generic ABS HF" + ] + ], "OF5BN24W": [ [ "Flashforge", @@ -8359,13 +7711,6 @@ "PolyLite PLA" ] ], - "OF5E5KNA": [ - [ - "Generic", - "PC", - "SecKit Generic PC" - ] - ], "OF5NQFKI": [ [ "Generic", @@ -8408,13 +7753,6 @@ "Artillery ASA" ] ], - "OF5Zk4e1": [ - [ - "Generic", - "ABS", - "Anycubic Generic ABS" - ] - ], "OF5c6nq3": [ [ "Generic", @@ -8471,13 +7809,6 @@ "FilAr PLA-mate Azul" ] ], - "OF5vzBhb": [ - [ - "Generic", - "PLA", - "Chuanying Generic PLA" - ] - ], "OF5w29Kq": [ [ "Generic", @@ -8513,13 +7844,6 @@ "Snapmaker Dual PLA-CF" ] ], - "OF6Fpw1E": [ - [ - "Generic", - "PETG", - "Comgrow Generic PETG" - ] - ], "OF6H51Xx": [ [ "Polymaker", @@ -8527,20 +7851,6 @@ "Polymaker PETG" ] ], - "OF6K467o": [ - [ - "InfiMech", - "PA-CF", - "InfiMech Generic PA-CF" - ] - ], - "OF6KELDx": [ - [ - "Co Print", - "PLA", - "CoPrint Generic PLA" - ] - ], "OF6Ll8lK": [ [ "Elegoo", @@ -8548,6 +7858,13 @@ "Elegoo PETG Translucent" ] ], + "OF6MMR8P": [ + [ + "Generic", + "TPU", + "Generic 95A TPU" + ] + ], "OF6MOPWx": [ [ "Generic", @@ -8576,13 +7893,6 @@ "Phrozen PLA" ] ], - "OF6WddJ1": [ - [ - "Generic", - "S-PAHT", - "FusRock S-PAHT" - ] - ], "OF6kj4jI": [ [ "iQ Materials", @@ -8597,13 +7907,6 @@ "FLSun S1 TPU" ] ], - "OF6rMr3U": [ - [ - "Generic", - "PA", - "FusRock Generic S-Multi" - ] - ], "OF6rdQ6M": [ [ "Generic", @@ -8611,13 +7914,6 @@ "Generic PPS-CF" ] ], - "OF6tKa1Z": [ - [ - "Generic", - "TPU", - "Anker Generic TPU" - ] - ], "OF6ueBwd": [ [ "Generic", @@ -8625,20 +7921,6 @@ "Flashforge PLA Pro" ] ], - "OF6vKLaU": [ - [ - "Generic", - "ASA", - "Artillery Generic ASA" - ] - ], - "OF6xLvYg": [ - [ - "InfiMech", - "PC", - "InfiMech Generic PC" - ] - ], "OF6zAVFj": [ [ "Generic", @@ -8709,13 +7991,6 @@ "Anycubic PLA Translucent" ] ], - "OF7g2vYQ": [ - [ - "Co Print", - "TPU", - "CoPrint Generic TPU" - ] - ], "OF7lOgYF": [ [ "Generic", @@ -8737,6 +8012,13 @@ "Eryone Silk PLA" ] ], + "OF7pjCsO": [ + [ + "FusRock", + "PAHT", + "FusRock PAHT" + ] + ], "OF7tt7DO": [ [ "Cubicon", @@ -8744,20 +8026,6 @@ "Cubicon PLA+" ] ], - "OF7uE5KB": [ - [ - "Generic", - "PA-CF", - "Anker Generic PA-CF" - ] - ], - "OF8CXrvm": [ - [ - "Generic", - "PA", - "SecKit Generic PA" - ] - ], "OF8GnyFU": [ [ "Creality", @@ -8793,13 +8061,6 @@ "FilAr PLA Amarillo Lirio" ] ], - "OF8bLDu7": [ - [ - "Generic", - "PA-CF", - "Blocks Generic PA-CF" - ] - ], "OF8dCquh": [ [ "Snapmaker", @@ -8849,13 +8110,6 @@ "Artillery PETG Basic" ] ], - "OF97ru74": [ - [ - "Generic", - "PC", - "Prusa Generic PC" - ] - ], "OF995YXg": [ [ "Generic", @@ -8919,13 +8173,6 @@ "RatRig PunkFil PETG" ] ], - "OF9fOPpd": [ - [ - "Generic", - "PC", - "Vzbot Generic PC" - ] - ], "OF9z5LZ9": [ [ "Generic", @@ -8947,13 +8194,6 @@ "Artillery PLA Matte" ] ], - "OFACSw9O": [ - [ - "Generic", - "PLA", - "Creality Generic PLA" - ] - ], "OFAIBCLJ": [ [ "Generic", @@ -9010,27 +8250,6 @@ "FilAr PLA Marron Oxido" ] ], - "OFB09fpe": [ - [ - "Generic", - "TPU", - "RatRig Generic TPU" - ] - ], - "OFB0a3hT": [ - [ - "Generic", - "PLA-CF", - "Anker Generic PLA-CF" - ] - ], - "OFB1Tv1E": [ - [ - "Generic", - "PA", - "Anycubic Generic PA" - ] - ], "OFB5SmWk": [ [ "Valment", @@ -9038,20 +8257,6 @@ "Valment PLA Galaxy" ] ], - "OFB8wSps": [ - [ - "Generic", - "PET-CF", - "FusRock PET-CF" - ] - ], - "OFB9dx27": [ - [ - "Generic", - "ASA", - "Blocks Generic ASA" - ] - ], "OFBBgw7B": [ [ "WonderMaker", @@ -9059,20 +8264,6 @@ "WonderMaker PLA Wood" ] ], - "OFBC32Wb": [ - [ - "Generic", - "PET", - "FusRock PET" - ] - ], - "OFBIadjM": [ - [ - "Generic", - "ASA", - "Chuanying Generic ASA" - ] - ], "OFBJAdLw": [ [ "LH Stinger", @@ -9122,20 +8313,6 @@ "PolyLite PLA Luminous" ] ], - "OFBpcB0a": [ - [ - "Generic", - "PLA", - "TwoTrees Generic HS PLA" - ] - ], - "OFBtlI8M": [ - [ - "FlyingBear", - "ABS", - "FlyingBear Generic ABS" - ] - ], "OFBw6eEG": [ [ "Overture", @@ -9150,13 +8327,6 @@ "Hyper Luminous" ] ], - "OFC20UMj": [ - [ - "Generic", - "TPU", - "Flashforge Generic TPU" - ] - ], "OFC5f4Ay": [ [ "Generic", @@ -9199,13 +8369,6 @@ "HP Ultra PLA" ] ], - "OFCVUEaV": [ - [ - "Generic", - "TPU", - "Tiertime Generic TPU" - ] - ], "OFCZsqXg": [ [ "Creality", @@ -9213,13 +8376,6 @@ "Hyper PLA" ] ], - "OFCaJHAA": [ - [ - "Generic", - "PAHT", - "FusRock Generic S-PAHT" - ] - ], "OFCccVrQ": [ [ "Polymaker", @@ -9227,13 +8383,6 @@ "PolyTerra Dual PLA" ] ], - "OFCcsYtf": [ - [ - "Generic", - "ASA", - "FLSun Generic ASA" - ] - ], "OFCidU7j": [ [ "DREMC", @@ -9248,6 +8397,13 @@ "FilAr PLA-mate Verde" ] ], + "OFCn83wF": [ + [ + "FusRock", + "PAHT", + "FusRock S-PAHT" + ] + ], "OFCnywiC": [ [ "Tiertime", @@ -9269,13 +8425,6 @@ "Anycubic PLA SE" ] ], - "OFCu3jES": [ - [ - "Generic", - "PETG", - "Yumi Generic PETG" - ] - ], "OFCuaCer": [ [ "Volumic", @@ -9290,20 +8439,6 @@ "Cubicon PA-CF" ] ], - "OFD2JNS1": [ - [ - "Generic", - "PLA", - "Dremel Generic PLA" - ] - ], - "OFD6kN7F": [ - [ - "Generic", - "PLA", - "OrcaArena Generic PLA" - ] - ], "OFD8loeT": [ [ "re3D", @@ -9388,13 +8523,6 @@ "Valment PLA" ] ], - "OFDeTsJw": [ - [ - "Generic", - "HIPS", - "Chuanying Generic HIPS" - ] - ], "OFDgQaca": [ [ "FlyingBear", @@ -9416,6 +8544,13 @@ "Generic Support for PA" ] ], + "OFDu1qE7": [ + [ + "FusRock", + "PET-CF", + "FusRock PET-CF" + ] + ], "OFDvXujf": [ [ "Generic", @@ -9430,6 +8565,13 @@ "Overture ABS Basic" ] ], + "OFDwBwO5": [ + [ + "Generic", + "PVA", + "Generic PVA HF" + ] + ], "OFDxfPgH": [ [ "Bambu Lab", @@ -9444,13 +8586,6 @@ "COEX TPU 60A" ] ], - "OFEE1Dld": [ - [ - "Generic", - "TPU", - "Artillery Generic TPU" - ] - ], "OFEGNJD4": [ [ "Bambu Lab", @@ -9479,13 +8614,6 @@ "Snapmaker PLA Lite" ] ], - "OFETFWx7": [ - [ - "Generic", - "PLA", - "SecKit Generic PLA" - ] - ], "OFEWYR89": [ [ "Generic", @@ -9500,13 +8628,6 @@ "FilAr PLA-mate Uva" ] ], - "OFEZNNw1": [ - [ - "Generic", - "PA", - "RatRig Generic PA" - ] - ], "OFEZpel7": [ [ "Volumic", @@ -9591,13 +8712,6 @@ "Generic TPU 64D" ] ], - "OFF73Bvp": [ - [ - "Generic", - "PLA-CF", - "SecKit Generic PLA-CF" - ] - ], "OFF9OKoY": [ [ "Polymaker", @@ -9647,13 +8761,6 @@ "FlyingBear PC" ] ], - "OFFZ0BBL": [ - [ - "FlyingBear", - "PLA", - "FlyingBear Generic PLA" - ] - ], "OFFZ458u": [ [ "Polymaker", @@ -9689,13 +8796,6 @@ "Anycubic PLA Silk" ] ], - "OFFxZ7hZ": [ - [ - "Generic", - "PLA-CF", - "Chuanying Generic PLA-CF10" - ] - ], "OFG0kOKX": [ [ "Volumic", @@ -9717,20 +8817,6 @@ "Qidi ASA-Aero" ] ], - "OFGDaEHO": [ - [ - "Generic", - "BVOH", - "Tiertime Generic BVOH" - ] - ], - "OFGGyAgJ": [ - [ - "Generic", - "TPU", - "Vzbot Generic TPU" - ] - ], "OFGJ1nxs": [ [ "Other", @@ -9738,27 +8824,6 @@ "Other PLA" ] ], - "OFGKLoUm": [ - [ - "Generic", - "TPU", - "Anycubic Generic TPU" - ] - ], - "OFGLeiNL": [ - [ - "Generic", - "PLA", - "Yumi Generic PLA" - ] - ], - "OFGPJxnt": [ - [ - "Generic", - "PC", - "Anker Generic PC" - ] - ], "OFGVwfK0": [ [ "FilAr", @@ -9822,13 +8887,6 @@ "CR-Wood" ] ], - "OFGzUNbm": [ - [ - "Generic", - "PPS-CF", - "Tiertime Generic PPS-CF" - ] - ], "OFH2nN08": [ [ "Eolas Prints", @@ -9871,20 +8929,6 @@ "FilAr PLA Blanco Antartida" ] ], - "OFHFZ1Te": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA Silk" - ] - ], - "OFHQUAoZ": [ - [ - "Generic", - "PA-CF", - "FLSun Generic PA-CF" - ] - ], "OFHTVfaU": [ [ "Generic", @@ -9892,13 +8936,6 @@ "Sovol Zero PETG" ] ], - "OFHUnLY2": [ - [ - "Generic", - "PETG", - "Vzbot Generic PETG" - ] - ], "OFHWSM21": [ [ "Polymaker", @@ -9906,13 +8943,6 @@ "Fiberon PET-CF" ] ], - "OFHa3RZT": [ - [ - "Generic", - "PA-CF", - "Tiertime Generic PA-CF" - ] - ], "OFHa48An": [ [ "Bambu Lab", @@ -9962,13 +8992,6 @@ "Arena Support W" ] ], - "OFI80Hct": [ - [ - "Generic", - "ASA", - "Anycubic Generic ASA" - ] - ], "OFIBXa0k": [ [ "FilAr", @@ -9990,6 +9013,13 @@ "FLSun S1 ASA" ] ], + "OFIKZxPF": [ + [ + "Generic", + "PLA", + "Generic PLA Wood" + ] + ], "OFIPjqHt": [ [ "Orca Arena", @@ -10018,13 +9048,6 @@ "HATCHBOX PETG" ] ], - "OFIYTy8S": [ - [ - "Generic", - "PLA", - "Anker Generic PLA+" - ] - ], "OFIZMQwM": [ [ "LH Stinger", @@ -10039,20 +9062,6 @@ "FilAr PLA Gris Ceniza" ] ], - "OFIda816": [ - [ - "Generic", - "PVA", - "Vzbot Generic PVA" - ] - ], - "OFIeCuXj": [ - [ - "Generic", - "PETG", - "Peopoly Generic PETG" - ] - ], "OFIegjmD": [ [ "Eolas Prints", @@ -10074,13 +9083,6 @@ "Anycubic PLA Luminous" ] ], - "OFIieIka": [ - [ - "Generic", - "PA", - "Polymaker CoPA" - ] - ], "OFIxOuOu": [ [ "Polymaker", @@ -10095,13 +9097,6 @@ "Flashforge PLA Basic" ] ], - "OFIy3kLw": [ - [ - "Generic", - "PA", - "Prusa Generic PA" - ] - ], "OFJ3HRsR": [ [ "Orca Arena", @@ -10123,13 +9118,6 @@ "DREMC PLA+ HS" ] ], - "OFJJpaLS": [ - [ - "Generic", - "PETG", - "FLSun Generic PETG" - ] - ], "OFJNeELv": [ [ "FILL3D", @@ -10151,13 +9139,6 @@ "FilAr PETG Cristal" ] ], - "OFJSksUs": [ - [ - "Generic", - "PLA", - "FLSun Generic PLA" - ] - ], "OFJVFpJz": [ [ "Generic", @@ -10228,20 +9209,6 @@ "YUMI PLA Direct Drive" ] ], - "OFK01afJ": [ - [ - "Generic", - "PC", - "Qidi Generic PC" - ] - ], - "OFK4LdYI": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA HF" - ] - ], "OFK74HJD": [ [ "Generic", @@ -10270,11 +9237,11 @@ "FilAr PLA Gris Plata" ] ], - "OFKNAhls": [ + "OFKTGKJU": [ [ - "Generic", - "PETG", - "Qidi Generic PETG" + "FusRock", + "PET", + "FusRock PET" ] ], "OFKTSiYF": [ @@ -10291,6 +9258,13 @@ "Snapmaker Dual ASA" ] ], + "OFKW5hEW": [ + [ + "FusRock", + "PAHT-CF", + "FusRock PAHT-CF" + ] + ], "OFKWWgyp": [ [ "FilAr", @@ -10354,20 +9328,6 @@ "Flashforge TPU 65D" ] ], - "OFKuTr12": [ - [ - "Generic", - "PE", - "Tiertime Generic PE" - ] - ], - "OFKyCgaK": [ - [ - "Generic", - "PLA", - "Anycubic Generic PLA" - ] - ], "OFL9aRjN": [ [ "Snapmaker", @@ -10382,13 +9342,6 @@ "WonderMaker TPU 95A" ] ], - "OFLBUkwC": [ - [ - "Generic", - "ABS", - "Vzbot Generic ABS" - ] - ], "OFLC1oRH": [ [ "Flashforge", @@ -10396,13 +9349,6 @@ "Flashforge PPA-CF" ] ], - "OFLDSqqi": [ - [ - "Generic", - "ABS", - "Flashforge Generic ABS" - ] - ], "OFLJ8S6I": [ [ "SUNLU", @@ -10501,20 +9447,6 @@ "Hyper PETG-GF" ] ], - "OFLrdHse": [ - [ - "Generic", - "PLA", - "Flashforge Generic HS PLA" - ] - ], - "OFLuczRG": [ - [ - "Generic", - "ASA", - "Creality Generic ASA-CF" - ] - ], "OFLzx3J4": [ [ "Creality", @@ -10536,13 +9468,6 @@ "Generic PA12-CF" ] ], - "OFM87w9T": [ - [ - "Generic", - "SBS", - "Tiertime Generic SBS" - ] - ], "OFM91vZs": [ [ "Overture", @@ -10557,13 +9482,6 @@ "QIDI TPU-Aero" ] ], - "OFMEbuBE": [ - [ - "Generic", - "TPU", - "Blocks Generic TPU" - ] - ], "OFMIma8C": [ [ "Generic", @@ -10571,13 +9489,6 @@ "Flashforge PLA Luminous" ] ], - "OFMIurFh": [ - [ - "Generic", - "PLA", - "Creality HF Generic Speed PLA" - ] - ], "OFMK5gVo": [ [ "WonderMaker", @@ -10599,13 +9510,6 @@ "Artillery PA" ] ], - "OFMTBcnz": [ - [ - "Generic", - "PP-CF", - "Tiertime Generic PP-CF" - ] - ], "OFMTK0UC": [ [ "Bambu Lab", @@ -10620,13 +9524,6 @@ "SUNLU PLA+" ] ], - "OFMZAoqa": [ - [ - "Generic", - "PVA", - "Tiertime Generic PVA" - ] - ], "OFMZvH0z": [ [ "Overture", @@ -10634,13 +9531,6 @@ "Overture Rock PLA" ] ], - "OFMgJQCZ": [ - [ - "Generic", - "PA", - "Anker Generic PA" - ] - ], "OFMjtqTC": [ [ "Bambu Lab", @@ -10648,13 +9538,6 @@ "Bambu PLA Wood" ] ], - "OFMoLF46": [ - [ - "Generic", - "TPU", - "FLSun Generic TPU" - ] - ], "OFMpxamb": [ [ "Flashforge", @@ -10662,13 +9545,6 @@ "Flashforge PETG" ] ], - "OFMqYusc": [ - [ - "Generic", - "PA", - "Creality Generic PA" - ] - ], "OFMsDGbs": [ [ "Anycubic", @@ -10690,13 +9566,6 @@ "Flashforge PETG Transparent" ] ], - "OFN7aNHe": [ - [ - "Generic", - "PC", - "Tiertime Generic PC" - ] - ], "OFN9fefN": [ [ "Cubicon", @@ -10718,20 +9587,6 @@ "Tiertime PLA" ] ], - "OFNLXV8X": [ - [ - "Generic", - "ABS", - "Tiertime Generic ABS" - ] - ], - "OFNOxcYl": [ - [ - "Generic", - "PA-CF", - "RatRig Generic PA-CF" - ] - ], "OFNQKF0M": [ [ "Tiertime", @@ -10753,13 +9608,6 @@ "FilAr PETG Azul Boreal" ] ], - "OFNW4ZTC": [ - [ - "Generic", - "PLA", - "Creality Generic PLA Wood" - ] - ], "OFNWcJsM": [ [ "Generic", @@ -10781,20 +9629,6 @@ "Sovol Zero ABS" ] ], - "OFNYewRS": [ - [ - "Generic", - "PLA", - "Blocks Generic PLA" - ] - ], - "OFNZYgLA": [ - [ - "Generic", - "PVA", - "Qidi Generic PVA" - ] - ], "OFNZjrLo": [ [ "Generic", @@ -10802,13 +9636,6 @@ "Sovol SV06 Plus ACE PLA" ] ], - "OFNcdCrm": [ - [ - "Generic", - "PLA-CF", - "Anycubic Generic PLA-CF" - ] - ], "OFNemJM6": [ [ "FilAr", @@ -10816,11 +9643,11 @@ "FilAr PLA Cobre" ] ], - "OFNiSLfL": [ + "OFNjku08": [ [ "Generic", - "PP", - "Generic PP-GF" + "PETG", + "Generic High Flow PETG" ] ], "OFNk8bxk": [ @@ -10830,13 +9657,6 @@ "Bambu PA6-GF" ] ], - "OFNn21yM": [ - [ - "Generic", - "PA-CF", - "Vzbot Generic PA-CF" - ] - ], "OFNstOna": [ [ "Eryone", @@ -10893,13 +9713,6 @@ "VXL90 TiQ2 P2" ] ], - "OFOKYhi6": [ - [ - "Generic", - "PETG", - "Prusa Generic PETG HF" - ] - ], "OFOPU1xv": [ [ "Snapmaker", @@ -11019,20 +9832,6 @@ "Eolas Prints PLA INGEO 870" ] ], - "OFPdhDlK": [ - [ - "Generic", - "PA-CF", - "Anycubic Generic PA-CF" - ] - ], - "OFPjOUtz": [ - [ - "Generic", - "PAHT-CF", - "FusRock Generic PAHT-CF" - ] - ], "OFPkCJKE": [ [ "Polymaker", @@ -11068,13 +9867,6 @@ "Lulzbot 2.85mm PLA" ] ], - "OFPy0Ogq": [ - [ - "Generic", - "PA-CF", - "Qidi Generic PA-CF" - ] - ], "OFQ1KzO8": [ [ "Snapmaker", @@ -11103,13 +9895,6 @@ "QIDI PETG Tough" ] ], - "OFQ7I5vC": [ - [ - "Generic", - "PLA-CF", - "Prusa Generic PLA-CF" - ] - ], "OFQ9qnkd": [ [ "Generic", @@ -11117,13 +9902,6 @@ "FLSun T1 PLA High Speed" ] ], - "OFQC8Vna": [ - [ - "Generic", - "PETG-CF", - "Flashforge Generic PETG-CF" - ] - ], "OFQEGL7z": [ [ "FlyingBear", @@ -11166,13 +9944,6 @@ "QIDI ABS-GF10" ] ], - "OFQTrLXB": [ - [ - "Generic", - "PLA-CF", - "Qidi Generic PLA-CF" - ] - ], "OFQWIKbV": [ [ "FilAr", @@ -11201,13 +9972,6 @@ "FILL3D PETG" ] ], - "OFQbqeN7": [ - [ - "Generic", - "PA", - "Qidi Generic PA" - ] - ], "OFQdaVZS": [ [ "Generic", @@ -11229,11 +9993,11 @@ "Flashforge PVA" ] ], - "OFQswlnF": [ + "OFQyyO0l": [ [ - "Generic", + "Polymaker", "PA", - "Tiertime Generic PA" + "Polymaker CoPA" ] ], "OFR0gODA": [ @@ -11250,13 +10014,6 @@ "QIDI TPU 95A-HF" ] ], - "OFRDLNM9": [ - [ - "Generic", - "PLA", - "Peopoly Generic PLA" - ] - ], "OFRJ325z": [ [ "LH Stinger", @@ -11264,13 +10021,6 @@ "LHS PETG" ] ], - "OFRPEs5o": [ - [ - "Generic", - "ASA", - "Flashforge Generic ASA" - ] - ], "OFRhBryT": [ [ "Cubicon", @@ -11306,13 +10056,6 @@ "Panchroma PLA Celestial" ] ], - "OFRiyes1": [ - [ - "Generic", - "ASA", - "Anker Generic ASA" - ] - ], "OFRkjhxK": [ [ "Volumic", @@ -11341,20 +10084,6 @@ "DeltaMaker Brand PLA" ] ], - "OFRujL0v": [ - [ - "Generic", - "PET-CF", - "FusRock Generic PET-CF" - ] - ], - "OFRusgEn": [ - [ - "Generic", - "PVA", - "Chuanying Generic PVA" - ] - ], "OFRyOsZj": [ [ "re3D", @@ -11369,13 +10098,6 @@ "eSUN ePLA-LW" ] ], - "OFRzsaDK": [ - [ - "FlyingBear", - "TPU", - "FlyingBear Generic TPU" - ] - ], "OFS2tn6G": [ [ "Polymaker", @@ -11390,13 +10112,6 @@ "Eryone PA" ] ], - "OFS8JF3S": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA High Speed" - ] - ], "OFS8lTQt": [ [ "Polymaker", @@ -11404,27 +10119,6 @@ "Panchroma PLA Silk" ] ], - "OFSDFYs4": [ - [ - "Generic", - "PLA-CF", - "Creality Generic PLA-CF" - ] - ], - "OFSGbf2I": [ - [ - "Generic", - "PVA", - "Anycubic Generic PVA" - ] - ], - "OFSPdsuW": [ - [ - "Generic", - "PPA-CF", - "Tiertime Generic PPA-CF" - ] - ], "OFSStjay": [ [ "Generic", @@ -11474,13 +10168,6 @@ "Bambu PLA Impact" ] ], - "OFTKFAZ4": [ - [ - "Generic", - "PCTG", - "Tiertime Generic PCTG" - ] - ], "OFTOPcx0": [ [ "Eolas Prints", @@ -11565,13 +10252,6 @@ "Sovol SV06 ACE PLA" ] ], - "OFU0n0zW": [ - [ - "Generic", - "PLA", - "FLSun T1 PLA Generic" - ] - ], "OFU1zPxE": [ [ "Elegoo", @@ -11586,27 +10266,6 @@ "re3D PC" ] ], - "OFU3zwPc": [ - [ - "Generic", - "TPU", - "Prusa Generic TPU HF" - ] - ], - "OFU5N9jI": [ - [ - "Generic", - "TPU", - "OrcaArena Generic TPU" - ] - ], - "OFU6fjbi": [ - [ - "Co Print", - "ABS", - "CoPrint Generic ABS" - ] - ], "OFU7CKZt": [ [ "Volumic", @@ -11642,20 +10301,6 @@ "Snapmaker Dual PET" ] ], - "OFUScM0D": [ - [ - "Generic", - "S-Multi", - "FusRock S-Multi" - ] - ], - "OFUWRqwb": [ - [ - "Generic", - "PA-CF", - "Creality Generic PA-CF" - ] - ], "OFUYCqtB": [ [ "InfiMech", @@ -11670,13 +10315,6 @@ "Anycubic PEBA 95A" ] ], - "OFUaVAdj": [ - [ - "Generic", - "ASA", - "Tiertime Generic ASA" - ] - ], "OFUanySo": [ [ "Bambu Lab", @@ -11691,20 +10329,6 @@ "eSUN ASA+" ] ], - "OFUrStd6": [ - [ - "Generic", - "PETG", - "RatRig Generic PCTG" - ] - ], - "OFUtGagr": [ - [ - "Generic", - "PLA-CF", - "Artillery Generic PLA-CF" - ] - ], "OFUyDDNv": [ [ "Elegoo", @@ -11761,13 +10385,6 @@ "QIDI PETG Tough 0.2 nozzle" ] ], - "OFVKADz5": [ - [ - "Generic", - "PLA", - "Comgrow Generic PLA" - ] - ], "OFVptRxp": [ [ "COEX 3D", @@ -11775,13 +10392,6 @@ "COEX TPE 30D" ] ], - "OFVqZ2H0": [ - [ - "Generic", - "PC", - "FLSun Generic PC" - ] - ], "OFVtIasg": [ [ "Eryone", @@ -11810,13 +10420,6 @@ "Snapmaker PETG Translucent" ] ], - "OFW9uIkE": [ - [ - "Generic", - "HIPS", - "Tiertime Generic HIPS" - ] - ], "OFWDe7YH": [ [ "QIDI", @@ -11824,13 +10427,6 @@ "QIDI UltraPA" ] ], - "OFWIr7ZE": [ - [ - "CoLiDo", - "ABS", - "CoLiDo Generic ABS" - ] - ], "OFWRITFw": [ [ "Prusa Polymers", @@ -11852,13 +10448,6 @@ "FilAr PLA Bronce" ] ], - "OFWY6vBh": [ - [ - "Generic", - "PC", - "Anycubic Generic PC" - ] - ], "OFWYtgCa": [ [ "Elegoo", @@ -11873,13 +10462,6 @@ "Volumic NYLON Ultra" ] ], - "OFWadebJ": [ - [ - "Generic", - "PETG-CF", - "Tiertime Generic PETG-CF" - ] - ], "OFWao3Ic": [ [ "Creality", @@ -11887,13 +10469,6 @@ "Ender-PLA" ] ], - "OFWbbuRY": [ - [ - "InfiMech", - "ABS", - "InfiMech Generic ABS" - ] - ], "OFWbdGsC": [ [ "Generic", @@ -11915,20 +10490,6 @@ "Flashforge ASA-GF" ] ], - "OFWof1Ap": [ - [ - "Generic", - "ABS", - "FLSun Generic ABS" - ] - ], - "OFWukXja": [ - [ - "Generic", - "TPU", - "Qidi Generic TPU 95A" - ] - ], "OFWwF7K7": [ [ "FilAr", @@ -11936,13 +10497,6 @@ "FilAr PLA Cafe con Leche" ] ], - "OFWzr7m0": [ - [ - "Generic", - "PETG", - "Anycubic Generic PETG" - ] - ], "OFX0etlv": [ [ "re3D", @@ -11999,20 +10553,6 @@ "Elas PETG Basic" ] ], - "OFXXUHSG": [ - [ - "Generic", - "PETG-CF", - "Chuanying Generic PETG-CF10" - ] - ], - "OFXhZ3uY": [ - [ - "Generic", - "PC", - "OrcaArena Generic PC" - ] - ], "OFXi59OX": [ [ "Afinia", @@ -12034,6 +10574,13 @@ "Generic PP-CF" ] ], + "OFXmv5p0": [ + [ + "Generic", + "PLA", + "Generic Speed PLA" + ] + ], "OFXn3Vd9": [ [ "QIDI", @@ -12055,20 +10602,6 @@ "Volumic PLA Ultra" ] ], - "OFXuwtnq": [ - [ - "Co Print", - "PETG", - "CoPrint Generic PETG" - ] - ], - "OFXyyfX6": [ - [ - "Generic", - "PLA", - "Anker Generic PLA Silk" - ] - ], "OFXz7Mwx": [ [ "Elegoo", @@ -12125,20 +10658,6 @@ "PolyLite Dual PLA" ] ], - "OFYHzKyS": [ - [ - "Generic", - "PLA-CF", - "Vzbot Generic PLA-CF" - ] - ], - "OFYPdJ7t": [ - [ - "Generic", - "ABS", - "Creality Generic ABS" - ] - ], "OFYPdQJh": [ [ "Generic", @@ -12160,34 +10679,6 @@ "FlyingBear TPU" ] ], - "OFYl0c8v": [ - [ - "Generic", - "HIPS", - "Flashforge Generic HIPS" - ] - ], - "OFYlZMmy": [ - [ - "Generic", - "TPU", - "Chuanying Generic TPU" - ] - ], - "OFYlthXI": [ - [ - "Generic", - "PLA-CF", - "Flashforge Generic PLA-CF" - ] - ], - "OFYtS9zg": [ - [ - "Generic", - "PAHT-CF", - "FusRock PAHT-CF" - ] - ], "OFYuowge": [ [ "Other", @@ -12195,13 +10686,6 @@ "Other ABS" ] ], - "OFYvSO1W": [ - [ - "Generic", - "PLA", - "Flashforge Generic PLA-Silk" - ] - ], "OFZ0mR5b": [ [ "Anycubic", @@ -12209,13 +10693,6 @@ "Anycubic PLA-CF" ] ], - "OFZ1hANN": [ - [ - "FusRock", - "PA-CF", - "FusRock Generic NexPA-CF25" - ] - ], "OFZ2LuAi": [ [ "Yumi", @@ -12237,20 +10714,6 @@ "FilAr PLA Rosa Flamenco" ] ], - "OFZ4fTO8": [ - [ - "Generic", - "PETG", - "C1 Generic High Flow PETG" - ] - ], - "OFZHgTVI": [ - [ - "Generic", - "PETG", - "Flashforge Generic PETG" - ] - ], "OFZLtWYs": [ [ "QIDI", @@ -12265,13 +10728,6 @@ "QIDI PPS-CF" ] ], - "OFZPlCck": [ - [ - "Generic", - "ABS", - "Chuanying Generic ABS" - ] - ], "OFZivHGL": [ [ "Snapmaker", @@ -12279,11 +10735,11 @@ "Snapmaker Dual PLA" ] ], - "OFZsChIG": [ + "OFZr862X": [ [ "Generic", - "TPU", - "Qidi Generic TPU" + "PLA", + "Generic PLA HF" ] ], "OFZtOQtl": [ @@ -12314,6 +10770,13 @@ "FilAr PLA Celeste Cielo" ] ], + "OFaDsTE0": [ + [ + "Polymaker", + "PA", + "Polymaker S1" + ] + ], "OFaEesXQ": [ [ "FilAr", @@ -12363,13 +10826,6 @@ "SeeMeCNC PETG-CF" ] ], - "OFaU2JxD": [ - [ - "Generic", - "PLA", - "Dremel Generic PLA" - ] - ], "OFaYz8iE": [ [ "Elas", @@ -12398,13 +10854,6 @@ "Cubicon ABS" ] ], - "OFahE7HP": [ - [ - "Generic", - "PC", - "Blocks Generic PC" - ] - ], "OFausr3F": [ [ "FilAr", @@ -12433,6 +10882,13 @@ "Eolas Prints PLA Silk" ] ], + "OFbPuPKY": [ + [ + "Generic", + "FLEX", + "Generic FLEX" + ] + ], "OFbSChKb": [ [ "SeeMeCNC", @@ -12447,20 +10903,6 @@ "InfiMech TPU Basic" ] ], - "OFbeeFkl": [ - [ - "Generic", - "PLA", - "OrcaArena Generic PLA Silk" - ] - ], - "OFbenYUK": [ - [ - "Generic", - "TPU", - "Prusa Generic TPU" - ] - ], "OFbh7HcA": [ [ "Eryone", @@ -12475,20 +10917,6 @@ "FLSun T1 ASA" ] ], - "OFbt04e0": [ - [ - "Generic", - "TPU", - "DeltaMaker Generic TPU" - ] - ], - "OFc0xiCz": [ - [ - "InfiMech", - "TPU", - "InfiMech Generic TPU" - ] - ], "OFc3xdm9": [ [ "Overture", @@ -12510,13 +10938,6 @@ "Snapmaker Dual TPU High-Flow" ] ], - "OFcCzEkS": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA" - ] - ], "OFcJ7AKd": [ [ "Generic", @@ -12538,6 +10959,13 @@ "PA6 CF20 (Performance)" ] ], + "OFcVLpNA": [ + [ + "FusRock", + "PAHT-GF", + "FusRock PAHT-GF" + ] + ], "OFcdqaWI": [ [ "Generic", @@ -12559,13 +10987,6 @@ "WonderMaker PLA Metal" ] ], - "OFctbSkL": [ - [ - "Generic", - "ASA", - "Blocks Generic ASA-CF" - ] - ], "OFctg8r1": [ [ "CoLiDo", @@ -12594,13 +11015,6 @@ "Generic PE-CF" ] ], - "OFd10YeG": [ - [ - "Generic", - "PLA", - "RatRig Generic PLA" - ] - ], "OFd2vX0G": [ [ "COEX 3D", @@ -12622,20 +11036,6 @@ "Snapmaker J1 PLA-CF" ] ], - "OFdEIwxy": [ - [ - "Generic", - "PLA-CF", - "Flashforge Generic PLA-CF10" - ] - ], - "OFdHsxB4": [ - [ - "Generic", - "TPU", - "TwoTrees Generic 95A TPU" - ] - ], "OFdI4zMo": [ [ "DREMC", @@ -12643,20 +11043,6 @@ "DREMC ASA CF" ] ], - "OFdLdGgJ": [ - [ - "Generic", - "PVA", - "OrcaArena Generic PVA" - ] - ], - "OFdOWhCa": [ - [ - "Generic", - "PC", - "RatRig Generic PC" - ] - ], "OFdXVjGZ": [ [ "Tiertime", @@ -12664,13 +11050,6 @@ "Tiertime PC" ] ], - "OFdXgp2K": [ - [ - "Generic", - "PLA", - "Chuanying Generic HS PLA" - ] - ], "OFdb8YNz": [ [ "FilAr", @@ -12692,13 +11071,6 @@ "Cubicon PLAi21" ] ], - "OFdlGycb": [ - [ - "CoLiDo", - "TPU", - "CoLiDo Generic TPU" - ] - ], "OFdrYBmI": [ [ "Tiertime", @@ -12741,13 +11113,6 @@ "Sovol SV06 ACE PETG" ] ], - "OFe8UJXH": [ - [ - "Generic", - "PC", - "Creality Generic PC" - ] - ], "OFe8tuNb": [ [ "Tiertime", @@ -12776,13 +11141,6 @@ "QIDI ABS Rapido Metal" ] ], - "OFeDfaCh": [ - [ - "CoLiDo", - "PLA", - "CoLiDo Generic PLA" - ] - ], "OFeIyhUx": [ [ "Anycubic", @@ -12790,20 +11148,6 @@ "Anycubic PC-CF" ] ], - "OFeJjoKF": [ - [ - "Generic", - "PA", - "FLSun Generic PA" - ] - ], - "OFeK2vkS": [ - [ - "Generic", - "PLA", - "Chuanying Generic PLA-Silk" - ] - ], "OFeTATC7": [ [ "Snapmaker", @@ -12853,13 +11197,6 @@ "Generic PLA Silk" ] ], - "OFetENFF": [ - [ - "Generic", - "ABS", - "OrcaArena Generic ABS" - ] - ], "OFexaZU2": [ [ "FilAr", @@ -12951,13 +11288,6 @@ "Polymaker PLA-HT" ] ], - "OFfZ0lTS": [ - [ - "Generic", - "PETG-CF", - "Qidi Generic PETG-CF" - ] - ], "OFfZcoKr": [ [ "FilAr", @@ -12972,13 +11302,6 @@ "Artillery PC" ] ], - "OFfegVpA": [ - [ - "Polymaker", - "PA", - "Polymaker Generic S1" - ] - ], "OFfmHUkQ": [ [ "Snapmaker", @@ -13035,20 +11358,6 @@ "Creality Silk PLA" ] ], - "OFfxFQf9": [ - [ - "Generic", - "PETG", - "Chuanying Generic PETG" - ] - ], - "OFfznI0Q": [ - [ - "Generic", - "PA-CF", - "Prusa Generic PA-CF" - ] - ], "OFg3cWVt": [ [ "Snapmaker", @@ -13091,20 +11400,6 @@ "FilAr PLA Negro Azabache" ] ], - "OFgSEwOZ": [ - [ - "Generic", - "PETG", - "OrcaArena Generic PETG" - ] - ], - "OFgSPtDn": [ - [ - "Generic", - "PEEK", - "MM Generic PEEK" - ] - ], "OFgSbX7E": [ [ "Volumic", @@ -13112,13 +11407,6 @@ "Volumic PC (Performance)" ] ], - "OFgVJhVt": [ - [ - "Generic", - "PLA-CF", - "Tiertime Generic PLA-CF" - ] - ], "OFgVQkqW": [ [ "Cubicon", @@ -13196,13 +11484,6 @@ "Arena PLA Matte" ] ], - "OFgvOmM2": [ - [ - "Generic", - "PETG", - "Anker Generic PETG" - ] - ], "OFgyPlwU": [ [ "Snapmaker", @@ -13308,13 +11589,6 @@ "Elegoo PLA Sparkle" ] ], - "OFhcrFw9": [ - [ - "Generic", - "TPU", - "Creality Generic TPU" - ] - ], "OFhfd722": [ [ "Eolas Prints", @@ -13399,13 +11673,6 @@ "Volumic NYLON Ultra (Performance)" ] ], - "OFiCHnso": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA" - ] - ], "OFiDpM1B": [ [ "FilAr", @@ -13420,13 +11687,6 @@ "Cubicon PA-CF" ] ], - "OFiUSDih": [ - [ - "Generic", - "PA", - "Blocks Generic PA" - ] - ], "OFiWaoqD": [ [ "DREMC", @@ -13434,13 +11694,6 @@ "DREMC PPA-CF" ] ], - "OFifxPW1": [ - [ - "Generic", - "PLA", - "DeltaMaker Generic PLA" - ] - ], "OFilAA3b": [ [ "Eryone", @@ -13469,13 +11722,6 @@ "Generic Support for PLA" ] ], - "OFiorRtJ": [ - [ - "Generic", - "PVA", - "Blocks Generic PVA" - ] - ], "OFitS8al": [ [ "Polymaker", @@ -13602,13 +11848,6 @@ "Qidi PLA-CF" ] ], - "OFjoIVZ6": [ - [ - "FlyingBear", - "PA-CF", - "FlyingBear Generic PA-CF" - ] - ], "OFjorDcx": [ [ "FDplast", @@ -13616,6 +11855,13 @@ "FDplast ABS" ] ], + "OFjt8dDO": [ + [ + "FusRock", + "PA-CF", + "FusRock NexPA-CF25" + ] + ], "OFjt9en1": [ [ "Generic", @@ -13672,13 +11918,6 @@ "Prusament PETG" ] ], - "OFkUaDnU": [ - [ - "Generic", - "PE-CF", - "Tiertime Generic PE-CF" - ] - ], "OFkWaWRo": [ [ "Generic", @@ -13686,11 +11925,11 @@ "Sovol SV06 Plus ACE TPU" ] ], - "OFkYkQGO": [ + "OFkf1HHw": [ [ "Generic", - "PP-GF", - "Tiertime Generic PP-GF" + "PLA", + "Generic PLA-SILK" ] ], "OFkhhUS0": [ @@ -13756,20 +11995,6 @@ "Eolas Prints PLA Antibacterial" ] ], - "OFl2SXmv": [ - [ - "Generic", - "FLEX", - "Prusa Generic FLEX" - ] - ], - "OFl4ItvQ": [ - [ - "Generic", - "PLA", - "Prusa Generic PLA HF" - ] - ], "OFl7nOAf": [ [ "Generic", @@ -13791,13 +12016,6 @@ "Snapmaker Dual PLA Matte" ] ], - "OFlLmUeV": [ - [ - "Generic", - "PLA", - "Ginger Generic PLA" - ] - ], "OFlN6DL1": [ [ "QIDI", @@ -13805,13 +12023,6 @@ "QIDI PA-Ultra" ] ], - "OFlNWVr5": [ - [ - "Generic", - "PETG-CF", - "Flashforge Generic PETG-CF10" - ] - ], "OFlP3KWq": [ [ "Elegoo", @@ -13868,13 +12079,6 @@ "Polymaker HT-PLA-GF" ] ], - "OFlx52rn": [ - [ - "Generic", - "PLA-CF", - "RatRig Generic PLA-CF" - ] - ], "OFm06H6V": [ [ "Elegoo", @@ -13945,13 +12149,6 @@ "Generic PLA Matte" ] ], - "OFma52eS": [ - [ - "Generic", - "ABS", - "Blocks Generic ABS" - ] - ], "OFma5TXH": [ [ "QIDI", @@ -13987,13 +12184,6 @@ "Elegoo TPU" ] ], - "OFmhWhEf": [ - [ - "Generic", - "PLA", - "Creality HF Generic PLA" - ] - ], "OFmjN2bc": [ [ "Anycubic", @@ -14008,13 +12198,6 @@ "FusRock ABS-GF" ] ], - "OFmnJNqY": [ - [ - "Generic", - "PA", - "OrcaArena Generic PA" - ] - ], "OFmpMwxS": [ [ "Generic", @@ -14029,13 +12212,6 @@ "Elegoo PETG-GF" ] ], - "OFmzftED": [ - [ - "Generic", - "ASA", - "OrcaArena Generic ASA" - ] - ], "OFn1QaY3": [ [ "Elegoo", @@ -14085,6 +12261,13 @@ "CoLiDo PLA Silk" ] ], + "OFnT7Qpb": [ + [ + "Generic", + "TPU", + "Generic TPU HF" + ] + ], "OFnXrkhA": [ [ "InfiMech", @@ -14113,13 +12296,6 @@ "WonderMaker PLA Silk" ] ], - "OFndmfJ1": [ - [ - "Generic", - "PLA", - "Anker Generic PLA" - ] - ], "OFneOFWe": [ [ "CoLiDo", @@ -14134,13 +12310,6 @@ "FilAr PETG Cian" ] ], - "OFnfBvn5": [ - [ - "Generic", - "PLA", - "Artillery Generic PLA" - ] - ], "OFngcE81": [ [ "LH Stinger", @@ -14148,13 +12317,6 @@ "LHS TPU Foamy 78A" ] ], - "OFnh79eM": [ - [ - "Generic", - "ABS", - "SecKit Generic ABS" - ] - ], "OFniMuTN": [ [ "Bambu Lab", @@ -14197,20 +12359,6 @@ "Cubicon PETG" ] ], - "OFoDgVnY": [ - [ - "Generic", - "PLA", - "FLSun S1 PLA Generic" - ] - ], - "OFoJcr46": [ - [ - "Generic", - "ASA", - "Prusa Generic ASA" - ] - ], "OFoSknDB": [ [ "FILL3D", @@ -14218,20 +12366,6 @@ "FILL3D PLA Turbo" ] ], - "OFoT8F7Y": [ - [ - "Generic", - "PVA", - "Prusa Generic PVA HF" - ] - ], - "OFoVZg32": [ - [ - "Generic", - "TPU", - "SecKit Generic TPU" - ] - ], "OFoYSJKi": [ [ "Generic", @@ -14253,13 +12387,6 @@ "AliZ PETG" ] ], - "OFodPDxO": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA High Speed" - ] - ], "OFogbnCb": [ [ "Generic", @@ -14309,13 +12436,6 @@ "QIDI PPS-GF" ] ], - "OFp8gtPH": [ - [ - "Generic", - "PLA", - "Creality Generic PLA Silk" - ] - ], "OFp9wdmf": [ [ "Eryone", @@ -14323,13 +12443,6 @@ "Eryone PA-CF" ] ], - "OFpAaY6w": [ - [ - "Generic", - "ASA", - "Creality Generic ASA" - ] - ], "OFpBV2Ma": [ [ "Generic", @@ -14365,13 +12478,6 @@ "Peopoly Lancer PETG-C" ] ], - "OFpSYJLI": [ - [ - "Generic", - "PLA", - "Creality Generic PLA Matte" - ] - ], "OFpW4gdi": [ [ "SUNLU", @@ -14379,13 +12485,6 @@ "SUNLU PLA Matte" ] ], - "OFptvi3F": [ - [ - "Generic", - "PPA-GF", - "Tiertime Generic PPA-GF" - ] - ], "OFpu74Qe": [ [ "Snapmaker", @@ -14407,13 +12506,6 @@ "Flashforge ASA-CF" ] ], - "OFq5QANf": [ - [ - "Generic", - "PC", - "Prusa Generic PC HF" - ] - ], "OFq8gfS4": [ [ "FilAr", @@ -14442,27 +12534,6 @@ "eSUN PLA+" ] ], - "OFqKmLJe": [ - [ - "Generic", - "PETG", - "Creality Generic PETG-CF" - ] - ], - "OFqOk9Ww": [ - [ - "Generic", - "ABS", - "Peopoly Generic ABS" - ] - ], - "OFqS8fzK": [ - [ - "Generic", - "PETG", - "SecKit Generic PETG" - ] - ], "OFqcL5UF": [ [ "QIDI", @@ -14519,13 +12590,6 @@ "CR-PLA Carbon" ] ], - "OFrO2zyn": [ - [ - "Generic", - "PLA", - "Creality Generic PLA High Speed" - ] - ], "OFrOh600": [ [ "Polymaker", @@ -14533,13 +12597,6 @@ "Panchroma PLA Matte" ] ], - "OFrQqCwL": [ - [ - "InfiMech", - "PLA", - "InfiMech Generic PLA" - ] - ], "OFrdZ0cK": [ [ "eSUN", @@ -14547,20 +12604,6 @@ "eSUN PETG+HS" ] ], - "OFrgGex8": [ - [ - "Generic", - "PETG", - "Blocks Generic PETG" - ] - ], - "OFrh4bBH": [ - [ - "Generic", - "ASA", - "SecKit Generic ASA" - ] - ], "OFrjacXf": [ [ "Flashforge", @@ -14568,13 +12611,6 @@ "Flashforge PET-CF" ] ], - "OFrnJJEa": [ - [ - "Generic", - "EVA", - "Tiertime Generic EVA" - ] - ], "OFrnkURQ": [ [ "Generic", @@ -14589,13 +12625,6 @@ "Arena PC" ] ], - "OFrrMLDw": [ - [ - "Generic", - "PLA", - "Flashforge Generic PLA-SILK" - ] - ], "OFryjl35": [ [ "Elegoo", @@ -14610,13 +12639,6 @@ "Chuanying ABS" ] ], - "OFs2ReMr": [ - [ - "InfiMech", - "PETG", - "InfiMech Generic PETG" - ] - ], "OFsB2lxm": [ [ "Elegoo", @@ -14624,13 +12646,6 @@ "Elegoo PLA Matte" ] ], - "OFsCbVbN": [ - [ - "Generic", - "PVA", - "Anker Generic PVA" - ] - ], "OFsD974q": [ [ "Volumic", @@ -14645,13 +12660,6 @@ "FilAr PLA Piel" ] ], - "OFsF96Gt": [ - [ - "Generic", - "PLA-CF", - "FLSun Generic PLA-CF" - ] - ], "OFsFo7ms": [ [ "Volumic", @@ -14666,13 +12674,6 @@ "Generic HIPS" ] ], - "OFsGqI4y": [ - [ - "Generic", - "PETG", - "Ginger Generic PETG" - ] - ], "OFsHSVZc": [ [ "Bambu Lab", @@ -14701,13 +12702,6 @@ "Panchroma PLA" ] ], - "OFsXOMoX": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA+" - ] - ], "OFsXQXbs": [ [ "FilAr", @@ -14715,11 +12709,11 @@ "FilAr PETG Blanco Antartida" ] ], - "OFsoQ12i": [ + "OFsijjtH": [ [ "Generic", - "ABS", - "Comgrow Generic ABS" + "PP-GF", + "Generic PP-GF" ] ], "OFsoykbm": [ @@ -14729,20 +12723,6 @@ "DREMC PA6-CF" ] ], - "OFsxRSwr": [ - [ - "Generic", - "PVA", - "RatRig Generic PVA" - ] - ], - "OFsxlLdo": [ - [ - "Generic", - "ASA", - "Qidi Generic ASA" - ] - ], "OFt0JbR7": [ [ "Snapmaker", @@ -14806,13 +12786,6 @@ "FilAr PLA-mate" ] ], - "OFtP1rqJ": [ - [ - "Generic", - "PVA", - "FLSun Generic PVA" - ] - ], "OFtRn8X8": [ [ "FDplast", @@ -14820,13 +12793,6 @@ "FDplast SBS" ] ], - "OFtTHNTj": [ - [ - "Generic", - "PLA", - "Flashforge Generic PLA" - ] - ], "OFtTYl9Q": [ [ "Generic", @@ -14862,13 +12828,6 @@ "FDplast PLA" ] ], - "OFtsVp4v": [ - [ - "Generic", - "PA-CF", - "SecKit Generic PA-CF" - ] - ], "OFtudokz": [ [ "Eolas Prints", @@ -14911,13 +12870,6 @@ "Generic PCTG" ] ], - "OFu79SUH": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA" - ] - ], "OFuFqYyG": [ [ "Generic", @@ -14946,13 +12898,6 @@ "Arena PETG-CF" ] ], - "OFuSwKgm": [ - [ - "Generic", - "PLA", - "Tiertime Generic PLA" - ] - ], "OFuUJyRx": [ [ "Generic", @@ -15016,13 +12961,6 @@ "Generic TPU 85A" ] ], - "OFupq0tY": [ - [ - "Generic", - "PLA-CF", - "Blocks Generic PLA-CF" - ] - ], "OFurdQxc": [ [ "FilAr", @@ -15044,13 +12982,6 @@ "Volumic FLEX93 Ultra" ] ], - "OFv4VZCd": [ - [ - "Generic", - "ABS", - "Qidi Generic ABS" - ] - ], "OFvDbkFq": [ [ "Prusa Polymers", @@ -15058,13 +12989,6 @@ "Prusament PC Blend" ] ], - "OFvGc67v": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS" - ] - ], "OFvKUnLh": [ [ "Bambu Lab", @@ -15086,13 +13010,6 @@ "FilAr PLA Verde FilAr" ] ], - "OFvPomQf": [ - [ - "Generic", - "PPS", - "Tiertime Generic PPS" - ] - ], "OFvTVZc3": [ [ "COEX 3D", @@ -15142,6 +13059,13 @@ "Fiberon PA12-CF10" ] ], + "OFvxghTE": [ + [ + "Generic", + "PLA", + "Generic HS PLA" + ] + ], "OFvyB0Bz": [ [ "Polymaker", @@ -15170,13 +13094,6 @@ "HATCHBOX ABS" ] ], - "OFwMFLAm": [ - [ - "Generic", - "ABS", - "Artillery Generic ABS" - ] - ], "OFwPrlCM": [ [ "Bambu Lab", @@ -15219,13 +13136,6 @@ "Snapmaker PLA SnapSpeed" ] ], - "OFwpkvqf": [ - [ - "Orca Arena", - "PETG-CF", - "OrcaArena Generic PETG-CF" - ] - ], "OFwu7IAG": [ [ "COEX 3D", @@ -15233,11 +13143,11 @@ "COEX PCTG PRIME" ] ], - "OFwxpmHM": [ + "OFwwAQnA": [ [ - "Polymaker", - "PA", - "Polymaker Generic CoPA" + "Generic", + "PC", + "Generic PC HF" ] ], "OFwyt1xt": [ @@ -15247,13 +13157,6 @@ "Eryone ASA-CF" ] ], - "OFx0ZzFV": [ - [ - "Generic", - "PLA-CF", - "OrcaArena Generic PLA-CF" - ] - ], "OFx8Lmsd": [ [ "Eolas Prints", @@ -15296,13 +13199,6 @@ "Elegoo ABS" ] ], - "OFxTMg1d": [ - [ - "FlyingBear", - "PC", - "FlyingBear Generic PC" - ] - ], "OFxUwUeW": [ [ "SUNLU", @@ -15324,20 +13220,6 @@ "PolyTerra PLA Marble" ] ], - "OFxg7n2G": [ - [ - "Generic", - "PETG", - "RatRig Generic PETG" - ] - ], - "OFxvKuYW": [ - [ - "Generic", - "PHA", - "Tiertime Generic PHA" - ] - ], "OFy02QHU": [ [ "Polymaker", @@ -15366,13 +13248,6 @@ "Generic TPU-95A" ] ], - "OFy4ajVZ": [ - [ - "Generic", - "PLA", - "Qidi Generic PLA Silk" - ] - ], "OFy8tYJE": [ [ "Cubicon", @@ -15387,13 +13262,6 @@ "Sovol SV08 TPU" ] ], - "OFyFRojy": [ - [ - "Generic", - "ABS", - "RatRig Generic ABS" - ] - ], "OFyFyLIp": [ [ "SeeMeCNC", @@ -15408,13 +13276,6 @@ "Arena PLA Sparkle" ] ], - "OFyK5Lt9": [ - [ - "Generic", - "PETG", - "Artillery Generic PETG" - ] - ], "OFyLWVF3": [ [ "Generic", @@ -15457,13 +13318,6 @@ "FilAr PETG Gris Ceniza" ] ], - "OFyeSq8A": [ - [ - "Generic", - "ABS", - "Prusa Generic ABS HF" - ] - ], "OFyhjiNs": [ [ "Snapmaker", @@ -15520,18 +13374,11 @@ "AliZ PLA" ] ], - "OFyySVby": [ + "OFz5oHgf": [ [ "Generic", - "PVA", - "SecKit Generic PVA" - ] - ], - "OFz3q5Xz": [ - [ - "Generic", - "PETG", - "C1 Generic PETG" + "PEEK", + "Generic PEEK" ] ], "OFzAWsca": [ @@ -15548,6 +13395,13 @@ "Sovol Zero PLA Basic HS Nozzle" ] ], + "OFzRtFM9": [ + [ + "Generic", + "ASA", + "Generic ASA HF" + ] + ], "OFzS7zt4": [ [ "Anycubic", @@ -15555,13 +13409,6 @@ "Anycubic PA" ] ], - "OFzXURfo": [ - [ - "FlyingBear", - "PETG", - "FlyingBear Generic PETG" - ] - ], "OFzY7N3Z": [ [ "Artillery", @@ -15583,6 +13430,13 @@ "LHS ABS" ] ], + "OFzwA5Z9": [ + [ + "FusRock", + "PET-GF", + "FusRock PET-GF" + ] + ], "OFzyIxba": [ [ "Bambu Lab", From ab21af6b08d7a44918b75c169191fb3534394a62 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 1 Sep 2026 17:44:12 +0800 Subject: [PATCH 094/164] fix filament names --- resources/profiles/Chuanying.json | 26 +- ...eneric ABS @Chuanying X1 0.25 Nozzle.json} | 8 +- ...eneric ASA @Chuanying X1 0.25 Nozzle.json} | 7 +- ...ric HS PLA @Chuanying X1 0.25 Nozzle.json} | 7 +- ...neric PETG @Chuanying X1 0.25 Nozzle.json} | 8 +- ...eneric PLA @Chuanying X1 0.25 Nozzle.json} | 7 +- ...c PLA-Silk @Chuanying X1 0.25 Nozzle.json} | 7 +- resources/profiles/Comgrow.json | 6 +- ...LA.json => Generic PLA @Comgrow T300.json} | 6 +- .../Comgrow/machine/Comgrow T300.json | 2 +- resources/profiles/FLSun.json | 50 +- ...S1 ABS.json => Generic ABS @FLSun S1.json} | 6 +- ...T1 ABS.json => Generic ABS @FLSun T1.json} | 6 +- ...S1 ASA.json => Generic ASA @FLSun S1.json} | 6 +- ...T1 ASA.json => Generic ASA @FLSun T1.json} | 6 +- ... PETG.json => Generic PETG @FLSun S1.json} | 6 +- ... PETG.json => Generic PETG @FLSun T1.json} | 6 +- ... => Generic PLA High Speed @FLSun S1.json} | 11 +- ... => Generic PLA High Speed @FLSun T1.json} | 11 +- ...k.json => Generic PLA Silk @FLSun S1.json} | 11 +- ...k.json => Generic PLA Silk @FLSun T1.json} | 11 +- ...S1 TPU.json => Generic TPU @FLSun S1.json} | 6 +- ...T1 TPU.json => Generic TPU @FLSun T1.json} | 6 +- .../profiles/FLSun/machine/FLSun S1.json | 2 +- .../profiles/FLSun/machine/FLSun T1.json | 2 +- resources/profiles/Lulzbot.json | 14 +- ...5mm ABS.json => Generic ABS @Lulzbot.json} | 6 +- ...m PETG.json => Generic PETG @Lulzbot.json} | 6 +- ...5mm PLA.json => Generic PLA @Lulzbot.json} | 6 +- .../Lulzbot Taz 4 or 5 0.5 nozzle.json | 2 +- .../Lulzbot/machine/Lulzbot Taz 4 or 5.json | 2 +- .../machine/Lulzbot Taz 6 0.5 nozzle.json | 2 +- .../Lulzbot/machine/Lulzbot Taz 6.json | 2 +- .../Lulzbot Taz Pro Dual 0.5 nozzle.json | 2 +- .../Lulzbot/machine/Lulzbot Taz Pro Dual.json | 2 +- resources/profiles/Phrozen.json | 6 +- ...Generic PLA @Phrozen Arco 0.4 nozzle.json} | 10 +- .../machine/Phrozen Arco 0.4 nozzle.json | 2 +- .../Phrozen/machine/Phrozen Arco.json | 2 +- resources/profiles/Qidi.json | 2 +- .../Qidi/filament/Tinmorry PETG-ECO.json | 4 +- resources/profiles/Snapmaker.json | 2 +- .../filament/Snapmaker TPU 95A @U1 base.json | 4 +- .../filament/Snapmaker TPU 95A @U1.json | 2 +- resources/profiles/Sovol.json | 82 +-- ....json => Generic ABS @Sovol SV06 ACE.json} | 6 +- ... => Generic ABS @Sovol SV06 Plus ACE.json} | 6 +- ... ABS.json => Generic ABS @Sovol SV08.json} | 6 +- ... ABS.json => Generic ABS @Sovol Zero.json} | 6 +- ...ro PC.json => Generic PC @Sovol Zero.json} | 6 +- ...json => Generic PETG @Sovol SV06 ACE.json} | 6 +- ...=> Generic PETG @Sovol SV06 Plus ACE.json} | 6 +- ...ETG.json => Generic PETG @Sovol SV08.json} | 6 +- ...ETG.json => Generic PETG @Sovol Zero.json} | 6 +- ....json => Generic PLA @Sovol SV06 ACE.json} | 6 +- ... => Generic PLA @Sovol SV06 Plus ACE.json} | 6 +- ... PLA.json => Generic PLA @Sovol SV07.json} | 6 +- ...> Generic PLA @Sovol SV08 0.2 nozzle.json} | 6 +- ... PLA.json => Generic PLA @Sovol SV08.json} | 6 +- ...asic.json => Generic PLA @Sovol Zero.json} | 6 +- ...json => Generic PLA Silk @Sovol Zero.json} | 14 +- ....json => Generic TPU @Sovol SV06 ACE.json} | 6 +- ... => Generic TPU @Sovol SV06 Plus ACE.json} | 6 +- ... TPU.json => Generic TPU @Sovol SV08.json} | 6 +- ... TPU.json => Generic TPU @Sovol Zero.json} | 6 +- .../machine/Sovol SV06 ACE 0.2 nozzle.json | 2 +- .../machine/Sovol SV06 ACE 0.4 nozzle.json | 2 +- .../machine/Sovol SV06 ACE 0.6 nozzle.json | 2 +- .../machine/Sovol SV06 ACE 0.8 nozzle.json | 2 +- .../Sovol/machine/Sovol SV06 ACE.json | 2 +- .../Sovol SV06 Plus ACE 0.4 nozzle.json | 2 +- .../Sovol/machine/Sovol SV06 Plus ACE.json | 2 +- .../profiles/Sovol/machine/Sovol SV07.json | 2 +- .../Sovol/machine/Sovol SV08 0.2 nozzle.json | 2 +- .../Sovol/machine/Sovol SV08 0.4 nozzle.json | 2 +- .../Sovol/machine/Sovol SV08 0.6 nozzle.json | 2 +- .../Sovol/machine/Sovol SV08 0.8 nozzle.json | 2 +- .../profiles/Sovol/machine/Sovol SV08.json | 2 +- .../Sovol/machine/Sovol Zero 0.4 nozzle.json | 2 +- .../profiles/Sovol/machine/Sovol Zero.json | 2 +- resources/profiles/retired_filament_ids.json | 240 ++++++++ scripts/assign_filament_ids.py | 19 +- scripts/filament_id_snapshot.json | 532 +----------------- 83 files changed, 570 insertions(+), 769 deletions(-) rename resources/profiles/Chuanying/filament/{Chuanying ABS @Chuanying X1 0.25 Nozzle.json => Generic ABS @Chuanying X1 0.25 Nozzle.json} (62%) rename resources/profiles/Chuanying/filament/{Chuanying ASA @Chuanying X1 0.25 Nozzle.json => Generic ASA @Chuanying X1 0.25 Nozzle.json} (67%) rename resources/profiles/Chuanying/filament/{Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json => Generic HS PLA @Chuanying X1 0.25 Nozzle.json} (74%) rename resources/profiles/Chuanying/filament/{Chuanying PETG @Chuanying X1 0.25 Nozzle.json => Generic PETG @Chuanying X1 0.25 Nozzle.json} (60%) rename resources/profiles/Chuanying/filament/{Chuanying PLA @Chuanying X1 0.25 Nozzle.json => Generic PLA @Chuanying X1 0.25 Nozzle.json} (74%) rename resources/profiles/Chuanying/filament/{Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json => Generic PLA-Silk @Chuanying X1 0.25 Nozzle.json} (75%) rename resources/profiles/Comgrow/filament/{Comgrow T300 PLA.json => Generic PLA @Comgrow T300.json} (86%) rename resources/profiles/FLSun/filament/{FLSun S1 ABS.json => Generic ABS @FLSun S1.json} (91%) rename resources/profiles/FLSun/filament/{FLSun T1 ABS.json => Generic ABS @FLSun T1.json} (91%) rename resources/profiles/FLSun/filament/{FLSun S1 ASA.json => Generic ASA @FLSun S1.json} (91%) rename resources/profiles/FLSun/filament/{FLSun T1 ASA.json => Generic ASA @FLSun T1.json} (91%) rename resources/profiles/FLSun/filament/{FLSun S1 PETG.json => Generic PETG @FLSun S1.json} (90%) rename resources/profiles/FLSun/filament/{FLSun T1 PETG.json => Generic PETG @FLSun T1.json} (90%) rename resources/profiles/FLSun/filament/{FLSun S1 PLA High Speed.json => Generic PLA High Speed @FLSun S1.json} (79%) rename resources/profiles/FLSun/filament/{FLSun T1 PLA High Speed.json => Generic PLA High Speed @FLSun T1.json} (79%) rename resources/profiles/FLSun/filament/{FLSun S1 PLA Silk.json => Generic PLA Silk @FLSun S1.json} (81%) rename resources/profiles/FLSun/filament/{FLSun T1 PLA Silk.json => Generic PLA Silk @FLSun T1.json} (81%) rename resources/profiles/FLSun/filament/{FLSun S1 TPU.json => Generic TPU @FLSun S1.json} (91%) rename resources/profiles/FLSun/filament/{FLSun T1 TPU.json => Generic TPU @FLSun T1.json} (91%) rename resources/profiles/Lulzbot/filament/{Lulzbot 2.85mm ABS.json => Generic ABS @Lulzbot.json} (74%) rename resources/profiles/Lulzbot/filament/{Lulzbot 2.85mm PETG.json => Generic PETG @Lulzbot.json} (74%) rename resources/profiles/Lulzbot/filament/{Lulzbot 2.85mm PLA.json => Generic PLA @Lulzbot.json} (74%) rename resources/profiles/Phrozen/filament/{Phrozen PLA @Phrozen Arco 0.4 nozzle.json => Generic PLA @Phrozen Arco 0.4 nozzle.json} (94%) rename resources/profiles/Sovol/filament/{Sovol SV06 ACE ABS.json => Generic ABS @Sovol SV06 ACE.json} (87%) rename resources/profiles/Sovol/filament/{Sovol SV06 Plus ACE ABS.json => Generic ABS @Sovol SV06 Plus ACE.json} (84%) rename resources/profiles/Sovol/filament/{Sovol SV08 ABS.json => Generic ABS @Sovol SV08.json} (91%) rename resources/profiles/Sovol/filament/{Sovol Zero ABS.json => Generic ABS @Sovol Zero.json} (90%) rename resources/profiles/Sovol/filament/{Sovol Zero PC.json => Generic PC @Sovol Zero.json} (90%) rename resources/profiles/Sovol/filament/{Sovol SV06 ACE PETG.json => Generic PETG @Sovol SV06 ACE.json} (87%) rename resources/profiles/Sovol/filament/{Sovol SV06 Plus ACE PETG.json => Generic PETG @Sovol SV06 Plus ACE.json} (84%) rename resources/profiles/Sovol/filament/{Sovol SV08 PETG.json => Generic PETG @Sovol SV08.json} (90%) rename resources/profiles/Sovol/filament/{Sovol Zero PETG.json => Generic PETG @Sovol Zero.json} (91%) rename resources/profiles/Sovol/filament/{Sovol SV06 ACE PLA.json => Generic PLA @Sovol SV06 ACE.json} (87%) rename resources/profiles/Sovol/filament/{Sovol SV06 Plus ACE PLA.json => Generic PLA @Sovol SV06 Plus ACE.json} (85%) rename resources/profiles/Sovol/filament/{Sovol SV07 PLA.json => Generic PLA @Sovol SV07.json} (87%) rename resources/profiles/Sovol/filament/{Sovol SV08 PLA @SV08 0.2 nozzle.json => Generic PLA @Sovol SV08 0.2 nozzle.json} (84%) rename resources/profiles/Sovol/filament/{Sovol SV08 PLA.json => Generic PLA @Sovol SV08.json} (89%) rename resources/profiles/Sovol/filament/{Sovol Zero PLA Basic.json => Generic PLA @Sovol Zero.json} (90%) rename resources/profiles/Sovol/filament/{Sovol Zero PLA Silk.json => Generic PLA Silk @Sovol Zero.json} (80%) rename resources/profiles/Sovol/filament/{Sovol SV06 ACE TPU.json => Generic TPU @Sovol SV06 ACE.json} (87%) rename resources/profiles/Sovol/filament/{Sovol SV06 Plus ACE TPU.json => Generic TPU @Sovol SV06 Plus ACE.json} (85%) rename resources/profiles/Sovol/filament/{Sovol SV08 TPU.json => Generic TPU @Sovol SV08.json} (90%) rename resources/profiles/Sovol/filament/{Sovol Zero TPU.json => Generic TPU @Sovol Zero.json} (90%) diff --git a/resources/profiles/Chuanying.json b/resources/profiles/Chuanying.json index 746a31e334..d994843f60 100644 --- a/resources/profiles/Chuanying.json +++ b/resources/profiles/Chuanying.json @@ -1,7 +1,7 @@ { "name": "Chuanying", "url": "", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Chuanying configurations", "machine_model_list": [ @@ -70,36 +70,36 @@ "sub_path": "filament/Generic PLA-Silk @Chuanying.json" }, { - "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json" + "name": "Generic ABS @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic ABS @Chuanying X1 0.25 Nozzle.json" }, { "name": "Generic HIPS @Chuanying", "sub_path": "filament/Generic HIPS @Chuanying.json" }, { - "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json" + "name": "Generic ASA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic ASA @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json" + "name": "Generic HS PLA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic HS PLA @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying PETG @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json" + "name": "Generic PETG @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic PETG @Chuanying X1 0.25 Nozzle.json" }, { "name": "Generic PVA @Chuanying", "sub_path": "filament/Generic PVA @Chuanying.json" }, { - "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json" + "name": "Generic PLA @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic PLA @Chuanying X1 0.25 Nozzle.json" }, { - "name": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", - "sub_path": "filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json" + "name": "Generic PLA-Silk @Chuanying X1 0.25 Nozzle", + "sub_path": "filament/Generic PLA-Silk @Chuanying X1 0.25 Nozzle.json" }, { "name": "Generic PETG-CF10 @Chuanying", diff --git a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic ABS @Chuanying X1 0.25 Nozzle.json similarity index 62% rename from resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic ABS @Chuanying X1 0.25 Nozzle.json index 8a2a02e2f6..f54d17ef0d 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ABS @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic ABS @Chuanying X1 0.25 Nozzle.json @@ -1,16 +1,16 @@ { "type": "filament", - "name": "Chuanying ABS @Chuanying X1 0.25 Nozzle", + "name": "Generic ABS @Chuanying X1 0.25 Nozzle", "inherits": "Generic ABS @Chuanying", + "renamed_from": "Chuanying ABS @Chuanying X1 0.25 Nozzle;Chuanying ABS Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "VkCgo0e4KR24DX28", - "filament_id": "OFs1sNLz", + "setting_id": "uHqfv6eUDzoxEkEj", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying ABS @Chuanying X1 0.25 Nozzle" + "Generic ABS @Chuanying X1 0.25 Nozzle" ], "fan_max_speed": [ "50" diff --git a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic ASA @Chuanying X1 0.25 Nozzle.json similarity index 67% rename from resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic ASA @Chuanying X1 0.25 Nozzle.json index 018b418f50..690f31669a 100644 --- a/resources/profiles/Chuanying/filament/Chuanying ASA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic ASA @Chuanying X1 0.25 Nozzle.json @@ -1,15 +1,16 @@ { "type": "filament", - "name": "Chuanying ASA @Chuanying X1 0.25 Nozzle", + "name": "Generic ASA @Chuanying X1 0.25 Nozzle", "inherits": "Generic ASA @Chuanying", + "renamed_from": "Chuanying ASA @Chuanying X1 0.25 Nozzle;Chuanying ASA Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "px1EPCDgOG8eE81V", + "setting_id": "bVxY01TC9sAM9KQW", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying ASA @Chuanying X1 0.25 Nozzle" + "Generic ASA @Chuanying X1 0.25 Nozzle" ], "fan_max_speed": [ "50" diff --git a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying X1 0.25 Nozzle.json similarity index 74% rename from resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying X1 0.25 Nozzle.json index 2cf18e831f..339fae8619 100644 --- a/resources/profiles/Chuanying/filament/Chuanying HS PLA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic HS PLA @Chuanying X1 0.25 Nozzle.json @@ -1,15 +1,16 @@ { "type": "filament", - "name": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle", + "name": "Generic HS PLA @Chuanying X1 0.25 Nozzle", "inherits": "Generic HS PLA @Chuanying", + "renamed_from": "Chuanying HS PLA @Chuanying X1 0.25 Nozzle;Chuanying HS PLA Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "CAdli5S8JIFafvRG", + "setting_id": "gdW1LIVf6BecAtpa", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying HS PLA @Chuanying X1 0.25 Nozzle" + "Generic HS PLA @Chuanying X1 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic PETG @Chuanying X1 0.25 Nozzle.json similarity index 60% rename from resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic PETG @Chuanying X1 0.25 Nozzle.json index e41bc4221b..88eaf57c01 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PETG @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic PETG @Chuanying X1 0.25 Nozzle.json @@ -1,16 +1,16 @@ { "type": "filament", - "name": "Chuanying PETG @Chuanying X1 0.25 Nozzle", + "name": "Generic PETG @Chuanying X1 0.25 Nozzle", "inherits": "Generic PETG @Chuanying", + "renamed_from": "Chuanying PETG @Chuanying X1 0.25 Nozzle;Chuanying PETG Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "9xxP8YWj4hnWQoVZ", - "filament_id": "OFlXJxX1", + "setting_id": "YQ0HAxEDmMQgqNGY", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying PETG @Chuanying X1 0.25 Nozzle" + "Generic PETG @Chuanying X1 0.25 Nozzle" ], "fan_max_speed": [ "80" diff --git a/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic PLA @Chuanying X1 0.25 Nozzle.json similarity index 74% rename from resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic PLA @Chuanying X1 0.25 Nozzle.json index 7bdab64af6..cea064f9da 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PLA @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic PLA @Chuanying X1 0.25 Nozzle.json @@ -1,15 +1,16 @@ { "type": "filament", - "name": "Chuanying PLA @Chuanying X1 0.25 Nozzle", + "name": "Generic PLA @Chuanying X1 0.25 Nozzle", "inherits": "Generic PLA @Chuanying", + "renamed_from": "Chuanying PLA @Chuanying X1 0.25 Nozzle;Chuanying PLA Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "3WDFe1uKTOTiRtPE", + "setting_id": "XsPEVGHYiyAX4YXy", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying PLA @Chuanying X1 0.25 Nozzle" + "Generic PLA @Chuanying X1 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json b/resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying X1 0.25 Nozzle.json similarity index 75% rename from resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json rename to resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying X1 0.25 Nozzle.json index d04fcc6f38..66d057cbf1 100644 --- a/resources/profiles/Chuanying/filament/Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle.json +++ b/resources/profiles/Chuanying/filament/Generic PLA-Silk @Chuanying X1 0.25 Nozzle.json @@ -1,15 +1,16 @@ { "type": "filament", - "name": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle", + "name": "Generic PLA-Silk @Chuanying X1 0.25 Nozzle", "inherits": "Generic PLA-Silk @Chuanying", + "renamed_from": "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle;Chuanying PLA-SILK Chuanying X1 0.25 Nozzle", "from": "system", - "setting_id": "kph5feBjhPi0oo0G", + "setting_id": "XaGDKARkuGTTabMN", "instantiation": "true", "compatible_printers": [ "Chuanying X1 0.25 Nozzle" ], "filament_settings_id": [ - "Chuanying PLA-SILK @Chuanying X1 0.25 Nozzle" + "Generic PLA-Silk @Chuanying X1 0.25 Nozzle" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Comgrow.json b/resources/profiles/Comgrow.json index 107ef2b3ba..e3eb237518 100644 --- a/resources/profiles/Comgrow.json +++ b/resources/profiles/Comgrow.json @@ -1,6 +1,6 @@ { "name": "Comgrow", - "version": "02.04.00.04", + "version": "02.04.00.05", "force_update": "0", "description": "Comgrow configurations", "machine_model_list": [ @@ -117,8 +117,8 @@ "sub_path": "filament/Generic PLA @Comgrow.json" }, { - "name": "Comgrow T300 PLA", - "sub_path": "filament/Comgrow T300 PLA.json" + "name": "Generic PLA @Comgrow T300", + "sub_path": "filament/Generic PLA @Comgrow T300.json" } ], "machine_list": [ diff --git a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json b/resources/profiles/Comgrow/filament/Generic PLA @Comgrow T300.json similarity index 86% rename from resources/profiles/Comgrow/filament/Comgrow T300 PLA.json rename to resources/profiles/Comgrow/filament/Generic PLA @Comgrow T300.json index 965e2985ee..bde24b8ba0 100644 --- a/resources/profiles/Comgrow/filament/Comgrow T300 PLA.json +++ b/resources/profiles/Comgrow/filament/Generic PLA @Comgrow T300.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Comgrow T300 PLA", + "name": "Generic PLA @Comgrow T300", "inherits": "Generic PLA @Comgrow", + "renamed_from": "Comgrow T300 PLA", "from": "system", - "setting_id": "TnHaf2TSHVfuwbVg", - "filament_id": "OFNWcJsM", + "setting_id": "3N6gPGkzpE9CvkVz", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Comgrow/machine/Comgrow T300.json b/resources/profiles/Comgrow/machine/Comgrow T300.json index 41c94aa193..558c4338b6 100644 --- a/resources/profiles/Comgrow/machine/Comgrow T300.json +++ b/resources/profiles/Comgrow/machine/Comgrow T300.json @@ -8,5 +8,5 @@ "bed_model": "comgrow_t300_buildplate_model.stl", "bed_texture": "comgrow_t300_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Comgrow T300 PLA" + "default_materials": "Generic PLA @Comgrow T300" } diff --git a/resources/profiles/FLSun.json b/resources/profiles/FLSun.json index 364b3cf521..67ce8c2583 100644 --- a/resources/profiles/FLSun.json +++ b/resources/profiles/FLSun.json @@ -1,6 +1,6 @@ { "name": "FLSun", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "FLSun configurations", "machine_model_list": [ @@ -217,60 +217,60 @@ "sub_path": "filament/Generic TPU @FLSun.json" }, { - "name": "FLSun S1 ABS", - "sub_path": "filament/FLSun S1 ABS.json" + "name": "Generic ABS @FLSun S1", + "sub_path": "filament/Generic ABS @FLSun S1.json" }, { - "name": "FLSun T1 ABS", - "sub_path": "filament/FLSun T1 ABS.json" + "name": "Generic ABS @FLSun T1", + "sub_path": "filament/Generic ABS @FLSun T1.json" }, { - "name": "FLSun S1 ASA", - "sub_path": "filament/FLSun S1 ASA.json" + "name": "Generic ASA @FLSun S1", + "sub_path": "filament/Generic ASA @FLSun S1.json" }, { - "name": "FLSun T1 ASA", - "sub_path": "filament/FLSun T1 ASA.json" + "name": "Generic ASA @FLSun T1", + "sub_path": "filament/Generic ASA @FLSun T1.json" }, { - "name": "FLSun S1 PETG", - "sub_path": "filament/FLSun S1 PETG.json" + "name": "Generic PETG @FLSun S1", + "sub_path": "filament/Generic PETG @FLSun S1.json" }, { - "name": "FLSun T1 PETG", - "sub_path": "filament/FLSun T1 PETG.json" + "name": "Generic PETG @FLSun T1", + "sub_path": "filament/Generic PETG @FLSun T1.json" }, { "name": "Generic PLA @FLSun S1", "sub_path": "filament/Generic PLA @FLSun S1.json" }, { - "name": "FLSun S1 PLA High Speed", - "sub_path": "filament/FLSun S1 PLA High Speed.json" + "name": "Generic PLA High Speed @FLSun S1", + "sub_path": "filament/Generic PLA High Speed @FLSun S1.json" }, { - "name": "FLSun S1 PLA Silk", - "sub_path": "filament/FLSun S1 PLA Silk.json" + "name": "Generic PLA Silk @FLSun S1", + "sub_path": "filament/Generic PLA Silk @FLSun S1.json" }, { "name": "Generic PLA @FLSun T1", "sub_path": "filament/Generic PLA @FLSun T1.json" }, { - "name": "FLSun T1 PLA High Speed", - "sub_path": "filament/FLSun T1 PLA High Speed.json" + "name": "Generic PLA High Speed @FLSun T1", + "sub_path": "filament/Generic PLA High Speed @FLSun T1.json" }, { - "name": "FLSun T1 PLA Silk", - "sub_path": "filament/FLSun T1 PLA Silk.json" + "name": "Generic PLA Silk @FLSun T1", + "sub_path": "filament/Generic PLA Silk @FLSun T1.json" }, { - "name": "FLSun S1 TPU", - "sub_path": "filament/FLSun S1 TPU.json" + "name": "Generic TPU @FLSun S1", + "sub_path": "filament/Generic TPU @FLSun S1.json" }, { - "name": "FLSun T1 TPU", - "sub_path": "filament/FLSun T1 TPU.json" + "name": "Generic TPU @FLSun T1", + "sub_path": "filament/Generic TPU @FLSun T1.json" } ], "machine_list": [ diff --git a/resources/profiles/FLSun/filament/FLSun S1 ABS.json b/resources/profiles/FLSun/filament/Generic ABS @FLSun S1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun S1 ABS.json rename to resources/profiles/FLSun/filament/Generic ABS @FLSun S1.json index d097e75200..3a57d47404 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ABS.json +++ b/resources/profiles/FLSun/filament/Generic ABS @FLSun S1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun S1 ABS", + "name": "Generic ABS @FLSun S1", "inherits": "Generic ABS @FLSun", + "renamed_from": "FLSun S1 ABS", "from": "system", - "setting_id": "tvpZ28Oe4Al7hlgj", - "filament_id": "OFzzmK2Q", + "setting_id": "a7U3u888FlJ6CSFb", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun T1 ABS.json b/resources/profiles/FLSun/filament/Generic ABS @FLSun T1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun T1 ABS.json rename to resources/profiles/FLSun/filament/Generic ABS @FLSun T1.json index 8514ed0ecd..36c684cdc6 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ABS.json +++ b/resources/profiles/FLSun/filament/Generic ABS @FLSun T1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun T1 ABS", + "name": "Generic ABS @FLSun T1", "inherits": "Generic ABS @FLSun", + "renamed_from": "FLSun T1 ABS", "from": "system", - "setting_id": "GP8VqRfidKOdj0ZJ", - "filament_id": "OFV0KrAG", + "setting_id": "j185WWfVulPxWJvQ", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun S1 ASA.json b/resources/profiles/FLSun/filament/Generic ASA @FLSun S1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun S1 ASA.json rename to resources/profiles/FLSun/filament/Generic ASA @FLSun S1.json index 79d37b5e30..d605ac5519 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 ASA.json +++ b/resources/profiles/FLSun/filament/Generic ASA @FLSun S1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun S1 ASA", + "name": "Generic ASA @FLSun S1", "inherits": "Generic ASA @FLSun", + "renamed_from": "FLSun S1 ASA", "from": "system", - "setting_id": "C5oyaWw3YVEz0CgE", - "filament_id": "OFIK0xFa", + "setting_id": "qJeJII6CgHuaC4Iz", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun T1 ASA.json b/resources/profiles/FLSun/filament/Generic ASA @FLSun T1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun T1 ASA.json rename to resources/profiles/FLSun/filament/Generic ASA @FLSun T1.json index 862fde6c6e..c27f9e34dd 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 ASA.json +++ b/resources/profiles/FLSun/filament/Generic ASA @FLSun T1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun T1 ASA", + "name": "Generic ASA @FLSun T1", "inherits": "Generic ASA @FLSun", + "renamed_from": "FLSun T1 ASA", "from": "system", - "setting_id": "YmJbWfCQpNk9nxB7", - "filament_id": "OFbjtPQy", + "setting_id": "kj4PPnvuvvGDrDwA", "instantiation": "true", "fan_max_speed": [ "50" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PETG.json b/resources/profiles/FLSun/filament/Generic PETG @FLSun S1.json similarity index 90% rename from resources/profiles/FLSun/filament/FLSun S1 PETG.json rename to resources/profiles/FLSun/filament/Generic PETG @FLSun S1.json index 33e14b08a1..02506525dd 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PETG.json +++ b/resources/profiles/FLSun/filament/Generic PETG @FLSun S1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun S1 PETG", + "name": "Generic PETG @FLSun S1", "inherits": "Generic PETG @FLSun", + "renamed_from": "FLSun S1 PETG", "from": "system", - "setting_id": "Ac6q0FtMFMLesFdU", - "filament_id": "OF9z5LZ9", + "setting_id": "LxDenrdsmz0QjMDE", "instantiation": "true", "fan_max_speed": [ "60" diff --git a/resources/profiles/FLSun/filament/FLSun T1 PETG.json b/resources/profiles/FLSun/filament/Generic PETG @FLSun T1.json similarity index 90% rename from resources/profiles/FLSun/filament/FLSun T1 PETG.json rename to resources/profiles/FLSun/filament/Generic PETG @FLSun T1.json index 5b2e6e471c..64651bea1d 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PETG.json +++ b/resources/profiles/FLSun/filament/Generic PETG @FLSun T1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun T1 PETG", + "name": "Generic PETG @FLSun T1", "inherits": "Generic PETG @FLSun", + "renamed_from": "FLSun T1 PETG", "from": "system", - "setting_id": "A2aA7xcmqgz8ERyY", - "filament_id": "OFJ80y1e", + "setting_id": "n9wpUe32lTtq2iSS", "instantiation": "true", "fan_max_speed": [ "60" diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json b/resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun S1.json similarity index 79% rename from resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json rename to resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun S1.json index f1cd779e91..af00b2272d 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun S1.json @@ -1,11 +1,14 @@ { "type": "filament", - "name": "FLSun S1 PLA High Speed", - "inherits": "Generic PLA @FLSun", + "name": "Generic PLA High Speed @FLSun S1", + "inherits": "Generic PLA High Speed @System", + "renamed_from": "FLSun S1 PLA High Speed", "from": "system", - "setting_id": "v2clpNXXo8m6dV33", - "filament_id": "OFoqrHTw", + "setting_id": "ONz6C8a3AMGWxqdK", "instantiation": "true", + "filament_multitool_ramming_flow": [ + "10" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json b/resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun T1.json similarity index 79% rename from resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json rename to resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun T1.json index 814aa5b47c..7468aadd31 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA High Speed.json +++ b/resources/profiles/FLSun/filament/Generic PLA High Speed @FLSun T1.json @@ -1,11 +1,14 @@ { "type": "filament", - "name": "FLSun T1 PLA High Speed", - "inherits": "Generic PLA @FLSun", + "name": "Generic PLA High Speed @FLSun T1", + "inherits": "Generic PLA High Speed @System", + "renamed_from": "FLSun T1 PLA High Speed", "from": "system", - "setting_id": "E4lpSLLlAxUW04ik", - "filament_id": "OFQ9qnkd", + "setting_id": "en1l0jgFX97t6qUi", "instantiation": "true", + "filament_multitool_ramming_flow": [ + "10" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json b/resources/profiles/FLSun/filament/Generic PLA Silk @FLSun S1.json similarity index 81% rename from resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json rename to resources/profiles/FLSun/filament/Generic PLA Silk @FLSun S1.json index 2d4a65f157..0ec0d28da4 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/Generic PLA Silk @FLSun S1.json @@ -1,11 +1,14 @@ { "type": "filament", - "name": "FLSun S1 PLA Silk", - "inherits": "Generic PLA @FLSun", + "name": "Generic PLA Silk @FLSun S1", + "inherits": "Generic PLA Silk @System", + "renamed_from": "FLSun S1 PLA Silk", "from": "system", - "setting_id": "164Bn4YchxJAaLsa", - "filament_id": "OFSStjay", + "setting_id": "NTJw0fbcn3JoOr0R", "instantiation": "true", + "filament_retraction_length": [ + "nil" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json b/resources/profiles/FLSun/filament/Generic PLA Silk @FLSun T1.json similarity index 81% rename from resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json rename to resources/profiles/FLSun/filament/Generic PLA Silk @FLSun T1.json index f7b4b22751..891697aa01 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 PLA Silk.json +++ b/resources/profiles/FLSun/filament/Generic PLA Silk @FLSun T1.json @@ -1,11 +1,14 @@ { "type": "filament", - "name": "FLSun T1 PLA Silk", - "inherits": "Generic PLA @FLSun", + "name": "Generic PLA Silk @FLSun T1", + "inherits": "Generic PLA Silk @System", + "renamed_from": "FLSun T1 PLA Silk", "from": "system", - "setting_id": "gElUb4GnCoEfVlEd", - "filament_id": "OFuUJyRx", + "setting_id": "y2p7TTGI8XWIeiQY", "instantiation": "true", + "filament_retraction_length": [ + "nil" + ], "activate_air_filtration": [ "1" ], diff --git a/resources/profiles/FLSun/filament/FLSun S1 TPU.json b/resources/profiles/FLSun/filament/Generic TPU @FLSun S1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun S1 TPU.json rename to resources/profiles/FLSun/filament/Generic TPU @FLSun S1.json index 1a495c4a0b..76e27d9be3 100644 --- a/resources/profiles/FLSun/filament/FLSun S1 TPU.json +++ b/resources/profiles/FLSun/filament/Generic TPU @FLSun S1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun S1 TPU", + "name": "Generic TPU @FLSun S1", "inherits": "Generic TPU @FLSun", + "renamed_from": "FLSun S1 TPU", "from": "system", - "setting_id": "yzPvNqIo7mfWAwNS", - "filament_id": "OF6ooviO", + "setting_id": "xDnQih17nXmGPoPc", "instantiation": "true", "fan_max_speed": [ "100" diff --git a/resources/profiles/FLSun/filament/FLSun T1 TPU.json b/resources/profiles/FLSun/filament/Generic TPU @FLSun T1.json similarity index 91% rename from resources/profiles/FLSun/filament/FLSun T1 TPU.json rename to resources/profiles/FLSun/filament/Generic TPU @FLSun T1.json index 3b25d65229..25f60f10e1 100644 --- a/resources/profiles/FLSun/filament/FLSun T1 TPU.json +++ b/resources/profiles/FLSun/filament/Generic TPU @FLSun T1.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "FLSun T1 TPU", + "name": "Generic TPU @FLSun T1", "inherits": "Generic TPU @FLSun", + "renamed_from": "FLSun T1 TPU", "from": "system", - "setting_id": "34Ux18VB4d6R6G40", - "filament_id": "OFENzGSm", + "setting_id": "TEakmydLXxrHti3G", "instantiation": "true", "fan_max_speed": [ "100" diff --git a/resources/profiles/FLSun/machine/FLSun S1.json b/resources/profiles/FLSun/machine/FLSun S1.json index 597480c25f..eac676cd09 100644 --- a/resources/profiles/FLSun/machine/FLSun S1.json +++ b/resources/profiles/FLSun/machine/FLSun S1.json @@ -8,5 +8,5 @@ "bed_model": "flsun_s1_buildplate_model.stl", "bed_texture": "FLSun_S1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun S1 PLA High Speed;FLSun S1 PLA Silk;Generic PLA @FLSun S1;FLSun S1 PETG;FLSun S1 ASA;FLSun S1 TPU;FLSun S1 ABS" + "default_materials": "Generic PLA High Speed @FLSun S1;Generic PLA Silk @FLSun S1;Generic PLA @FLSun S1;Generic PETG @FLSun S1;Generic ASA @FLSun S1;Generic TPU @FLSun S1;Generic ABS @FLSun S1" } diff --git a/resources/profiles/FLSun/machine/FLSun T1.json b/resources/profiles/FLSun/machine/FLSun T1.json index 45a7a290b1..25a788a60e 100644 --- a/resources/profiles/FLSun/machine/FLSun T1.json +++ b/resources/profiles/FLSun/machine/FLSun T1.json @@ -8,5 +8,5 @@ "bed_model": "flsun_T1_buildplate_model.stl", "bed_texture": "FLSun_T1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "FLSun T1 PLA High Speed;FLSun T1 PLA Silk;Generic PLA @FLSun T1;FLSun T1 PETG;FLSun T1 ASA;FLSun T1 TPU;FLSun T1 ABS" + "default_materials": "Generic PLA High Speed @FLSun T1;Generic PLA Silk @FLSun T1;Generic PLA @FLSun T1;Generic PETG @FLSun T1;Generic ASA @FLSun T1;Generic TPU @FLSun T1;Generic ABS @FLSun T1" } diff --git a/resources/profiles/Lulzbot.json b/resources/profiles/Lulzbot.json index 31836580f0..1d8e31dc93 100644 --- a/resources/profiles/Lulzbot.json +++ b/resources/profiles/Lulzbot.json @@ -1,7 +1,7 @@ { "name": "Lulzbot", "url": "https://ohai.lulzbot.com/group/taz-6/", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Lulzbot configurations", "machine_model_list": [ @@ -62,16 +62,16 @@ ], "filament_list": [ { - "name": "Lulzbot 2.85mm ABS", - "sub_path": "filament/Lulzbot 2.85mm ABS.json" + "name": "Generic ABS @Lulzbot", + "sub_path": "filament/Generic ABS @Lulzbot.json" }, { - "name": "Lulzbot 2.85mm PETG", - "sub_path": "filament/Lulzbot 2.85mm PETG.json" + "name": "Generic PETG @Lulzbot", + "sub_path": "filament/Generic PETG @Lulzbot.json" }, { - "name": "Lulzbot 2.85mm PLA", - "sub_path": "filament/Lulzbot 2.85mm PLA.json" + "name": "Generic PLA @Lulzbot", + "sub_path": "filament/Generic PLA @Lulzbot.json" } ], "machine_list": [ diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json b/resources/profiles/Lulzbot/filament/Generic ABS @Lulzbot.json similarity index 74% rename from resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json rename to resources/profiles/Lulzbot/filament/Generic ABS @Lulzbot.json index 002c664cc2..95d8a2274c 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm ABS.json +++ b/resources/profiles/Lulzbot/filament/Generic ABS @Lulzbot.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Lulzbot 2.85mm ABS", + "name": "Generic ABS @Lulzbot", "inherits": "Generic ABS @System", + "renamed_from": "Lulzbot 2.85mm ABS", "from": "system", - "setting_id": "XwsWBVH2xIwyRMm4", - "filament_id": "OF6O67Xk", + "setting_id": "Mtn4Fh3Lp6KlAxjo", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json b/resources/profiles/Lulzbot/filament/Generic PETG @Lulzbot.json similarity index 74% rename from resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json rename to resources/profiles/Lulzbot/filament/Generic PETG @Lulzbot.json index 343900a1ce..825df8bdc8 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PETG.json +++ b/resources/profiles/Lulzbot/filament/Generic PETG @Lulzbot.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Lulzbot 2.85mm PETG", + "name": "Generic PETG @Lulzbot", "inherits": "Generic PETG @System", + "renamed_from": "Lulzbot 2.85mm PETG", "from": "system", - "setting_id": "7aS9fdn94lEOU1gJ", - "filament_id": "OF8eQjjt", + "setting_id": "dqj6O9NIPAaq8wWz", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json b/resources/profiles/Lulzbot/filament/Generic PLA @Lulzbot.json similarity index 74% rename from resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json rename to resources/profiles/Lulzbot/filament/Generic PLA @Lulzbot.json index 89e0681b45..d08d72ee53 100644 --- a/resources/profiles/Lulzbot/filament/Lulzbot 2.85mm PLA.json +++ b/resources/profiles/Lulzbot/filament/Generic PLA @Lulzbot.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Lulzbot 2.85mm PLA", + "name": "Generic PLA @Lulzbot", "inherits": "Generic PLA @System", + "renamed_from": "Lulzbot 2.85mm PLA", "from": "system", - "setting_id": "1pyzsOWeVPCxWlqQ", - "filament_id": "OFPryWt5", + "setting_id": "3evRjso1wNxd9nV3", "instantiation": "true", "filament_diameter": [ "2.85" diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5 0.5 nozzle.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5 0.5 nozzle.json index cc1224b635..5fe1dc64e7 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5 0.5 nozzle.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5 0.5 nozzle.json @@ -104,7 +104,7 @@ ], "single_extruder_multi_material": "1", "default_filament_profile": [ - "Lulzbot 2.85mm PLA" + "Generic PLA @Lulzbot" ], "machine_start_gcode": ";This G-Code has been generated specifically for the Lulzbot Taz 4 and 5 - translated from CuraLE 4.13.10 by Wrathernaut\nM73 P0; clear GLCD progress bar\nM75; start GLCD timer\nM140 S{bed_temperature_initial_layer[0]}; start bed heating up\nG90; absolute positioning\nM107; disable fans\nM82; set extruder to absolute mode\nG28 X0 Y0; home X and Y\nG28 Z0; home Z\nG1 Z15.0 F175; move extruder up\nM117 Heating...; progress indicator message on LCD\nM109 R{nozzle_temperature_initial_layer[0]}; wait for extruder to reach printing temp\nM190 R{bed_temperature_initial_layer[0]}; wait for bed to reach printing temp\nG92 E0; set extruder position to 0\nG1 F200 E0; prime the nozzle with filament\nG92 E0; re-set extruder position to 0\nG1 F175; set travel speed\nM203 X192 Y208 Z3; set limits on travel speed\nM117 TAZ Printing...; progress indicator message on LCD\n;Start G-Code End", "machine_end_gcode": ";End G-Code Begin\nM400; wait for moves to finish\nM140 S0; disable hotend\nM104 S0; disable bed heater\nM107; disable fans\nG91; relative positioning\nG1 E-1 F300; filament retraction to release pressure\nG1 Z0.5 E-5 X-20 Y-20 F3000; lift up and retract even more filament\nM77;stopGLCD timer\nG90;absolute positioning\nG1 X0 Y250;move to cooling position\nM84;disable steppers\nM117 Print Complete.;print complete message", diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5.json index c00c1cc2e3..f7b77690b4 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz 4 or 5.json @@ -8,5 +8,5 @@ "bed_model": "taz_4_or_5_build_plate.stl", "bed_texture": "lulzbot_logo.svg", "hotend_model": "", - "default_materials": "Lulzbot 2.85mm ABS;Lulzbot 2.85mm PETG;Lulzbot 2.85mm PLA" + "default_materials": "Generic ABS @Lulzbot;Generic PETG @Lulzbot;Generic PLA @Lulzbot" } diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz 6 0.5 nozzle.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz 6 0.5 nozzle.json index 4a7aa978fb..23a74064b6 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz 6 0.5 nozzle.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz 6 0.5 nozzle.json @@ -100,7 +100,7 @@ ], "single_extruder_multi_material": "1", "default_filament_profile": [ - "Lulzbot 2.85mm PLA" + "Generic PLA @Lulzbot" ], "machine_start_gcode": ";This G-Code has been translated from LulzBot's CuraLE (v4.13.10) startup GCODE for Taz 6 Single Extruder by Wrathernaut\nM73 P0; clear GLCD progress bar\nM75; start GLCD timer\nM107; disable fans\nM420 S; disable leveling matrix\nG90; absolute positioning\nM82; set extruder to absolute mode\nG92 E0; set extruder position to 0\nM140 S{bed_temperature_initial_layer[0]}; start bed heating up (w)\nG28 XY; home X and Y\nG1 X-19 Y258 F1000; move to safe homing position\nM109 {if filament_type[0] == \"PLA\"}R180\n{elsif filament_type[0] == \"ABS\"}R190\n{elsif filament_type[0] == \"ABS-GF\"}R190\n{elsif filament_type[0] == \"ASA\"}R190\n{elsif filament_type[0] == \"ASA-Aero\"}R190\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R220\n{elsif filament_type[0] == \"PA-CF\"}R220\n{elsif filament_type[0] == \"PA-GF\"}R220\n{elsif filament_type[0] == \"PA6-CF\"}R220\n{elsif filament_type[0] == \"PA11-CF\"}R220\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R220\n{elsif filament_type[0] == \"PC-CF\"}R220\n{elsif filament_type[0] == \"PCTG\"}R180\n{elsif filament_type[0] == \"PE\"}R190\n{elsif filament_type[0] == \"PE-CF\"}R190\n{elsif filament_type[0] == \"PET-CF\"}R190\n{elsif filament_type[0] == \"PETG\"}R190\n{elsif filament_type[0] == \"PETG-CF10\"}R190\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R180\n{elsif filament_type[0] == \"PVB\"}R180\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R180\n{elsif filament_type[0] == \"FLEX\"}R180\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R170\n{elsif filament_type[0] == \"NYLON\"}R220\n{else}R190; unknown filament type soften temp before homing Z{endif}\nG28 Z; home Z\nG1 E-15 F100; retract filament\nM109 {if filament_type[0] == \"PLA\"}R180\n{elsif filament_type[0] == \"ABS\"}R190\n{elsif filament_type[0] == \"ABS-GF\"}R190\n{elsif filament_type[0] == \"ASA\"}R190\n{elsif filament_type[0] == \"ASA-Aero\"}R190\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R220\n{elsif filament_type[0] == \"PA-CF\"}R220\n{elsif filament_type[0] == \"PA-GF\"}R220\n{elsif filament_type[0] == \"PA6-CF\"}R220\n{elsif filament_type[0] == \"PA11-CF\"}R220\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R220\n{elsif filament_type[0] == \"PC-CF\"}R220\n{elsif filament_type[0] == \"PCTG\"}R190\n{elsif filament_type[0] == \"PE\"}R190\n{elsif filament_type[0] == \"PE-CF\"}R190\n{elsif filament_type[0] == \"PET-CF\"}R190\n{elsif filament_type[0] == \"PETG\"}R190\n{elsif filament_type[0] == \"PETG-CF10\"}R190\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R180\n{elsif filament_type[0] == \"PVB\"}R180\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R180\n{elsif filament_type[0] == \"FLEX\"}R180\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R180\n{elsif filament_type[0] == \"NYLON\"}R220\n{else}R170; unknown filament type wipe temp{endif}\n;M206 X0 Y0 Z0; uncomment to adjust wipe position (+X ~ nozzle moves left)(+Y ~ nozzle moves forward)(+Z ~ nozzle moves down)\nG12; wiping sequence\nM206 X0 Y0 Z0; reseting stock nozzle position ### CAUTION: changing this line can affect print quality ###\nG1 Z10 F5000; raise nozzle after wipe\nM109 {if filament_type[0] == \"PLA\"}R160\n{elsif filament_type[0] == \"ABS\"}R170\n{elsif filament_type[0] == \"ABS-GF\"}R170\n{elsif filament_type[0] == \"ASA\"}R170\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R200\n{elsif filament_type[0] == \"PA-CF\"}R200\n{elsif filament_type[0] == \"PA-GF\"}R170\n{elsif filament_type[0] == \"PA6-CF\"}R170\n{elsif filament_type[0] == \"PA11-CF\"}R200\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R200\n{elsif filament_type[0] == \"PC-CF\"}R200\n{elsif filament_type[0] == \"PCTG\"}R180\n{elsif filament_type[0] == \"PE\"}R180\n{elsif filament_type[0] == \"PE-CF\"}R180\n{elsif filament_type[0] == \"PET-CF\"}R170\n{elsif filament_type[0] == \"PETG\"}R170\n{elsif filament_type[0] == \"PETG-CF10\"}R170\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R160\n{elsif filament_type[0] == \"PVB\"}R160\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R160\n{elsif filament_type[0] == \"FLEX\"}R160\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R160\n{elsif filament_type[0] == \"NYLON\"}R200\n{else}R170; unknown filament type probe temp{endif}\nG1 X-10 Y293 F4000; move above first probe point\nM204 S100; set probing acceleration\nG29; start auto-leveling sequence\nM420 S1; enable leveling matrix\nM204 S500; restore standard acceleration\nG1 X0 Y0 Z15 F5000; move up off last probe point\nG4 S1; pause\nM400; wait for moves to finish\nM117 Heating...; progress indicator message on LCD\nM109 R{nozzle_temperature_initial_layer[0]}; wait for extruder to reach printing temp (w)\nM190 R{bed_temperature_initial_layer[0]}; wait for bed to reach printing temp\nG1 Z2 E0 F75; prime tiny bit of filament into the nozzle\nM117 TAZ 6 Printing...; progress indicator message on LCD\n;Start G-Code End", "machine_end_gcode": ";End G-Code Begin\nM400; wait for moves to finish\nM140 S0; start bed cooling\nM104 S0; disable hotend\nM107; disable fans\nG91; relative positioning\nG1 E-1 F300; filament retraction to release pressure\nG1 Z20 E-5 X-20 Y-20 F3000; lift up and retract even more filament\nG1 E6; re-prime extruder\nG90; absolute positioning\nG1 Y280 F3000; present finished print\nM77; stop GLCD timer\nM84; disable steppers\nG90; absolute positioning\nM117 Print Complete.; print complete message\n;End G-Code End", diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz 6.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz 6.json index fdf3c0b056..46772a73b0 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz 6.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz 6.json @@ -8,5 +8,5 @@ "bed_model": "taz_6_build_plate.stl", "bed_texture": "lulzbot_logo.svg", "hotend_model": "", - "default_materials": "Lulzbot 2.85mm ABS;Lulzbot 2.85mm PETG;Lulzbot 2.85mm PLA" + "default_materials": "Generic ABS @Lulzbot;Generic PETG @Lulzbot;Generic PLA @Lulzbot" } diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual 0.5 nozzle.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual 0.5 nozzle.json index dccf5c21a9..ad04dec32a 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual 0.5 nozzle.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual 0.5 nozzle.json @@ -15,7 +15,7 @@ ], "printer_settings_id": "LulzbotPro-Dual", "default_filament_profile": [ - "Lulzbot 2.85mm PLA" + "Generic PLA @Lulzbot" ], "machine_start_gcode": ";This G-Code has been translated from Cura startup from CuraLE 4.13.10 to OrcaSlicer by Wrathernaut\nT0\nM82; absolute extrusion mode\nM73 P0; clear GLCD progress bar\nM75; start GLCD timer\nM107; disable fans\nG90; absolute positioning\nM420 S0; disable previous leveling matrix\nM140 S{bed_temperature_initial_layer[initial_tool]}; begin bed temping up (w)\nM104 {if filament_type[initial_tool] == \"PLA\"}S180\n{elsif filament_type[initial_tool] == \"ABS\"}S190\n{elsif filament_type[initial_tool] == \"ABS-GF\"}S190\n{elsif filament_type[initial_tool] == \"ASA\"}S190\n{elsif filament_type[initial_tool] == \"ASA-Aero\"}S190\n{elsif filament_type[initial_tool] == \"BVOH\"}S170\n{elsif filament_type[initial_tool] == \"EVA\"}S170\n{elsif filament_type[initial_tool] == \"PA\"}R220\n{elsif filament_type[initial_tool] == \"PA-CF\"}R220\n{elsif filament_type[initial_tool] == \"PA-GF\"}R220\n{elsif filament_type[initial_tool] == \"PA6-CF\"}R220\n{elsif filament_type[initial_tool] == \"PA11-CF\"}R220\n{elsif filament_type[initial_tool] == \"ASA-Aero\"}S170\n{elsif filament_type[initial_tool] == \"PC\"}R220\n{elsif filament_type[initial_tool] == \"PC-CF\"}R220\n{elsif filament_type[initial_tool] == \"PCTG\"}S180\n{elsif filament_type[initial_tool] == \"PE\"}S190\n{elsif filament_type[initial_tool] == \"PE-CF\"}S190\n{elsif filament_type[initial_tool] == \"PET-CF\"}S190\n{elsif filament_type[initial_tool] == \"PETG\"}S190\n{elsif filament_type[initial_tool] == \"PETG-CF10\"}S190\n{elsif filament_type[initial_tool] == \"PHA\"}S180\n{elsif filament_type[initial_tool] == \"PLA-AERO\"}S180\n{elsif filament_type[initial_tool] == \"PLA-CF\"}S180\n{elsif filament_type[initial_tool] == \"PP\"}S180\n{elsif filament_type[initial_tool] == \"PP-CF\"}S180\n{elsif filament_type[initial_tool] == \"PP-GF\"}S180\n{elsif filament_type[initial_tool] == \"PPS\"}S180\n{elsif filament_type[initial_tool] == \"PPS-CF\"}S180\n{elsif filament_type[initial_tool] == \"PVA\"}S180\n{elsif filament_type[initial_tool] == \"PVB\"}S180\n{elsif filament_type[initial_tool] == \"SBS\"}S180\n{elsif filament_type[initial_tool] == \"TPU\"}S180\n{elsif filament_type[initial_tool] == \"FLEX\"}S180\n{elsif filament_type[initial_tool] == \"PET\"}S170\n{elsif filament_type[initial_tool] == \"HIPS\"}S170\n{elsif filament_type[initial_tool] == \"NYLON\"}R220\n{else}S190; unknown filament type soften temp before homing Z\n{endif}G28; home\nG0 X50 Y25 Z10 F2000\nM117 Heating...\nM109 {if filament_type[0] == \"PLA\"}R180\n{elsif filament_type[0] == \"ABS\"}R190\n{elsif filament_type[0] == \"ABS-GF\"}R190\n{elsif filament_type[0] == \"ASA\"}R190\n{elsif filament_type[0] == \"ASA-Aero\"}R190\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R220\n{elsif filament_type[0] == \"PA-CF\"}R220\n{elsif filament_type[0] == \"PA-GF\"}R220\n{elsif filament_type[0] == \"PA6-CF\"}R220\n{elsif filament_type[0] == \"PA11-CF\"}R220\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R220\n{elsif filament_type[0] == \"PC-CF\"}R220\n{elsif filament_type[0] == \"PCTG\"}R180\n{elsif filament_type[0] == \"PE\"}R190\n{elsif filament_type[0] == \"PE-CF\"}R190\n{elsif filament_type[0] == \"PET-CF\"}R190\n{elsif filament_type[0] == \"PETG\"}R190\n{elsif filament_type[0] == \"PETG-CF10\"}R190\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R180\n{elsif filament_type[0] == \"PVB\"}R180\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R180\n{elsif filament_type[0] == \"FLEX\"}R180\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R170\n{elsif filament_type[0] == \"NYLON\"}R220\n{else}R190; unknown filament type soften temp before homing Z{endif}\nM82; set extruder to absolute mode\nG92 E0; set extruder to zero\nG1 E-7 F100; retract 7mm of filament on first extruder\nM106; turn on fans to speed cooling\nM117 Wiping...\nM109 {if filament_type[0] == \"PLA\"}R180\n{elsif filament_type[0] == \"ABS\"}R190\n{elsif filament_type[0] == \"ABS-GF\"}R190\n{elsif filament_type[0] == \"ASA\"}R190\n{elsif filament_type[0] == \"ASA-Aero\"}R190\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R220\n{elsif filament_type[0] == \"PA-CF\"}R220\n{elsif filament_type[0] == \"PA-GF\"}R220\n{elsif filament_type[0] == \"PA6-CF\"}R220\n{elsif filament_type[0] == \"PA11-CF\"}R220\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R220\n{elsif filament_type[0] == \"PC-CF\"}R220\n{elsif filament_type[0] == \"PCTG\"}R190\n{elsif filament_type[0] == \"PE\"}R190\n{elsif filament_type[0] == \"PE-CF\"}R190\n{elsif filament_type[0] == \"PET-CF\"}R190\n{elsif filament_type[0] == \"PETG\"}R190\n{elsif filament_type[0] == \"PETG-CF10\"}R190\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R180\n{elsif filament_type[0] == \"PVB\"}R180\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R180\n{elsif filament_type[0] == \"FLEX\"}R180\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R180\n{elsif filament_type[0] == \"NYLON\"}R220\n{else}R170; unknown filament type wipe temp{endif}\nM109 {if filament_type[0] == \"PLA\"}R160\n{elsif filament_type[0] == \"ABS\"}R170\n{elsif filament_type[0] == \"ABS-GF\"}R170\n{elsif filament_type[0] == \"ASA\"}R170\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"BVOH\"}R170\n{elsif filament_type[0] == \"EVA\"}R170\n{elsif filament_type[0] == \"PA\"}R200\n{elsif filament_type[0] == \"PA-CF\"}R200\n{elsif filament_type[0] == \"PA-GF\"}R170\n{elsif filament_type[0] == \"PA6-CF\"}R170\n{elsif filament_type[0] == \"PA11-CF\"}R200\n{elsif filament_type[0] == \"ASA-Aero\"}R170\n{elsif filament_type[0] == \"PC\"}R200\n{elsif filament_type[0] == \"PC-CF\"}R200\n{elsif filament_type[0] == \"PCTG\"}R180\n{elsif filament_type[0] == \"PE\"}R180\n{elsif filament_type[0] == \"PE-CF\"}R180\n{elsif filament_type[0] == \"PET-CF\"}R170\n{elsif filament_type[0] == \"PETG\"}R170\n{elsif filament_type[0] == \"PETG-CF10\"}R170\n{elsif filament_type[0] == \"PHA\"}R180\n{elsif filament_type[0] == \"PLA-AERO\"}R180\n{elsif filament_type[0] == \"PLA-CF\"}R180\n{elsif filament_type[0] == \"PP\"}R180\n{elsif filament_type[0] == \"PP-CF\"}R180\n{elsif filament_type[0] == \"PP-GF\"}R180\n{elsif filament_type[0] == \"PPS\"}R180\n{elsif filament_type[0] == \"PPS-CF\"}R180\n{elsif filament_type[0] == \"PVA\"}R160\n{elsif filament_type[0] == \"PVB\"}R160\n{elsif filament_type[0] == \"SBS\"}R180\n{elsif filament_type[0] == \"TPU\"}R160\n{elsif filament_type[0] == \"FLEX\"}R160\n{elsif filament_type[0] == \"PET\"}R170\n{elsif filament_type[0] == \"HIPS\"}R160\n{elsif filament_type[0] == \"NYLON\"}R200\n{else}R170; unknown filament type probe temp{endif}; cool to probe temp\nG12; wipe sequence\nM107; turn off fan\nG29; probe sequence (for auto-leveling)\nM420 S1; enable leveling matrix\nT{initial_tool}; ensure we're using the first extruder\nM104 S{first_layer_temperature[initial_tool]}; set extruder temp\nG0 X5 Y15 Z10 F5000; move to start location\nM400; clear buffer\nM117 Heating...\nM109 R{first_layer_temperature[initial_tool]}; set extruder temp and waitnM190 R{bed_temperature_initial_layer[initial_tool]}; get bed temping up during first layer\nG1 Z2 E0 F75; raise head and 0 extruder\nM82; set to absolute mode\nM400; clear buffer\nM300 T; play sound at start of first layer\nM117 Printing ...\n;Start G-Code End", "machine_end_gcode": "M400; wait for moves to finish\nM140 S0; start cooling bed\nM107; fans off\nG91 ; relative positioning\nG1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z25 E-1 X20 Y20 F2000; move Z up a bit and retract filament even more\nM104 S{nozzle_temperature[0]} T0 ; T0 to print temp\nM104 S{nozzle_temperature[1]} T1 ; T1 to print temp\nG90 ; absolute positioning\nG0 X285 Y-30 F3000; move to cooling position\nG91 ; relative positioning\nM117 Purging for next print;progress indicator message\nT0\nM109 S{nozzle_temperature[0]}; wait for temp\nG92 E0; set extruder position to purge amount\nG1 E15 F75; purge\nM400; wait for purge\nM104 S0 ; T0 hotend off\nT1\nM109 S{nozzle_temperature[1]}; wait for temp\nG92 E0; set extruder position to purge amount\nG1 E15 F75; purge\nM400; wait for purge\nM104 S0 ; T1 hotend off\nT0\nM117 Cooling, please wait;progress indicator message\nM190 S0; cool off bed\nG0 Y280 F3000 ; present finished print\nM77; stop GLCD timer\nM18 X Y E; turn off x y and e axis\nG90 ; absolute positioning\nM117 Print complete; progress indicator message" diff --git a/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual.json b/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual.json index b5157e0925..ca7afe7d9f 100644 --- a/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual.json +++ b/resources/profiles/Lulzbot/machine/Lulzbot Taz Pro Dual.json @@ -8,5 +8,5 @@ "bed_model": "taz_pro_dual_build_plate.stl", "bed_texture": "Taz_Pro_Dual_printbed.svg", "hotend_model": "", - "default_materials": "Lulzbot 2.85mm ABS;Lulzbot 2.85mm PETG;Lulzbot 2.85mm PLA" + "default_materials": "Generic ABS @Lulzbot;Generic PETG @Lulzbot;Generic PLA @Lulzbot" } diff --git a/resources/profiles/Phrozen.json b/resources/profiles/Phrozen.json index bd4e6f1081..0c711816c1 100644 --- a/resources/profiles/Phrozen.json +++ b/resources/profiles/Phrozen.json @@ -1,6 +1,6 @@ { "name": "Phrozen", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Phrozen configurations", "machine_model_list": [ @@ -57,8 +57,8 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "Phrozen PLA @Phrozen Arco 0.4 nozzle", - "sub_path": "filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json" + "name": "Generic PLA @Phrozen Arco 0.4 nozzle", + "sub_path": "filament/Generic PLA @Phrozen Arco 0.4 nozzle.json" } ], "machine_list": [ diff --git a/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json b/resources/profiles/Phrozen/filament/Generic PLA @Phrozen Arco 0.4 nozzle.json similarity index 94% rename from resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json rename to resources/profiles/Phrozen/filament/Generic PLA @Phrozen Arco 0.4 nozzle.json index 8ca51614b6..d909765bad 100644 --- a/resources/profiles/Phrozen/filament/Phrozen PLA @Phrozen Arco 0.4 nozzle.json +++ b/resources/profiles/Phrozen/filament/Generic PLA @Phrozen Arco 0.4 nozzle.json @@ -1,13 +1,13 @@ { "type": "filament", - "name": "Phrozen PLA @Phrozen Arco 0.4 nozzle", - "inherits": "fdm_filament_pla", + "name": "Generic PLA @Phrozen Arco 0.4 nozzle", + "inherits": "Generic PLA @System", + "renamed_from": "Phrozen PLA @Phrozen Arco 0.4 nozzle;Phrozen PLA Phrozen Arco 0.4 nozzle", "from": "system", - "setting_id": "Cc3ULDFzvoHwh8bV", - "filament_id": "OF6VgL2U", + "setting_id": "xTeHmDOY48Bik10J", "instantiation": "true", "filament_settings_id": [ - "Phrozen PLA @Phrozen Arco 0.4 nozzle" + "Generic PLA @Phrozen Arco 0.4 nozzle" ], "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Phrozen/machine/Phrozen Arco 0.4 nozzle.json b/resources/profiles/Phrozen/machine/Phrozen Arco 0.4 nozzle.json index 051f62fa6c..c34d188507 100644 --- a/resources/profiles/Phrozen/machine/Phrozen Arco 0.4 nozzle.json +++ b/resources/profiles/Phrozen/machine/Phrozen Arco 0.4 nozzle.json @@ -14,7 +14,7 @@ ], "default_print_profile": "0.20mm Standard @Phrozen Arco 0.4 nozzle", "default_filament_profile": [ - "Phrozen PLA @Phrozen Arco 0.4 nozzle" + "Generic PLA @Phrozen Arco 0.4 nozzle" ], "disable_m73": "1", "gcode_flavor": "klipper", diff --git a/resources/profiles/Phrozen/machine/Phrozen Arco.json b/resources/profiles/Phrozen/machine/Phrozen Arco.json index 648b014ebd..be6c15bfe7 100644 --- a/resources/profiles/Phrozen/machine/Phrozen Arco.json +++ b/resources/profiles/Phrozen/machine/Phrozen Arco.json @@ -8,5 +8,5 @@ "bed_model": "Phrozen Arco_buildplate_model.stl", "bed_texture": "Phrozen Arco_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Phrozen PLA @Phrozen Arco 0.4 nozzle" + "default_materials": "Generic PLA @Phrozen Arco 0.4 nozzle" } diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index c3babbc4a5..a831bb268c 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.13", + "version": "02.04.00.14", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ diff --git a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json index 83ec8a1025..ce29e0a165 100644 --- a/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json +++ b/resources/profiles/Qidi/filament/Tinmorry PETG-ECO.json @@ -4,7 +4,7 @@ "inherits": "fdm_filament_pet", "from": "system", "setting_id": "uVa250OrqClMz41k", - "filament_id": "OFpBV2Ma", + "filament_id": "OFYE7YZw", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" @@ -52,7 +52,7 @@ "235" ], "filament_vendor": [ - "Generic" + "Tinmorry" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 65b1d12a3a..50aaad2715 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.10", + "version": "02.04.00.11", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json index 9dce5b1e84..d61e2adb1b 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1 base.json @@ -2,7 +2,7 @@ "type": "filament", "name": "Snapmaker TPU 95A @U1 base", "from": "system", - "filament_id": "OFKo87c6", + "filament_id": "OFvmwTZE", "instantiation": "false", "overhang_fan_threshold": [ "95%" @@ -47,7 +47,7 @@ "0" ], "filament_vendor": [ - "Generic" + "Snapmaker" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1.json index 9cc40e8552..59b125ff72 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker TPU 95A @U1.json @@ -195,7 +195,7 @@ "100" ], "filament_vendor": [ - "Generic" + "Snapmaker" ], "filament_wipe": [ "nil" diff --git a/resources/profiles/Sovol.json b/resources/profiles/Sovol.json index 770ca55c95..a38645abc2 100644 --- a/resources/profiles/Sovol.json +++ b/resources/profiles/Sovol.json @@ -1,7 +1,7 @@ { "name": "Sovol", "url": "", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Sovol configurations", "machine_model_list": [ @@ -234,96 +234,96 @@ "sub_path": "filament/SUNLU PETG @Sovol SV08 MAX.json" }, { - "name": "Sovol SV06 ACE ABS", - "sub_path": "filament/Sovol SV06 ACE ABS.json" + "name": "Generic ABS @Sovol SV06 ACE", + "sub_path": "filament/Generic ABS @Sovol SV06 ACE.json" }, { - "name": "Sovol SV06 ACE PETG", - "sub_path": "filament/Sovol SV06 ACE PETG.json" + "name": "Generic PETG @Sovol SV06 ACE", + "sub_path": "filament/Generic PETG @Sovol SV06 ACE.json" }, { - "name": "Sovol SV06 ACE PLA", - "sub_path": "filament/Sovol SV06 ACE PLA.json" + "name": "Generic PLA @Sovol SV06 ACE", + "sub_path": "filament/Generic PLA @Sovol SV06 ACE.json" }, { - "name": "Sovol SV06 ACE TPU", - "sub_path": "filament/Sovol SV06 ACE TPU.json" + "name": "Generic TPU @Sovol SV06 ACE", + "sub_path": "filament/Generic TPU @Sovol SV06 ACE.json" }, { - "name": "Sovol SV06 Plus ACE ABS", - "sub_path": "filament/Sovol SV06 Plus ACE ABS.json" + "name": "Generic ABS @Sovol SV06 Plus ACE", + "sub_path": "filament/Generic ABS @Sovol SV06 Plus ACE.json" }, { - "name": "Sovol SV06 Plus ACE PETG", - "sub_path": "filament/Sovol SV06 Plus ACE PETG.json" + "name": "Generic PETG @Sovol SV06 Plus ACE", + "sub_path": "filament/Generic PETG @Sovol SV06 Plus ACE.json" }, { - "name": "Sovol SV06 Plus ACE PLA", - "sub_path": "filament/Sovol SV06 Plus ACE PLA.json" + "name": "Generic PLA @Sovol SV06 Plus ACE", + "sub_path": "filament/Generic PLA @Sovol SV06 Plus ACE.json" }, { - "name": "Sovol SV06 Plus ACE TPU", - "sub_path": "filament/Sovol SV06 Plus ACE TPU.json" + "name": "Generic TPU @Sovol SV06 Plus ACE", + "sub_path": "filament/Generic TPU @Sovol SV06 Plus ACE.json" }, { - "name": "Sovol SV07 PLA", - "sub_path": "filament/Sovol SV07 PLA.json" + "name": "Generic PLA @Sovol SV07", + "sub_path": "filament/Generic PLA @Sovol SV07.json" }, { - "name": "Sovol SV08 ABS", - "sub_path": "filament/Sovol SV08 ABS.json" + "name": "Generic ABS @Sovol SV08", + "sub_path": "filament/Generic ABS @Sovol SV08.json" }, { - "name": "Sovol SV08 PETG", - "sub_path": "filament/Sovol SV08 PETG.json" + "name": "Generic PETG @Sovol SV08", + "sub_path": "filament/Generic PETG @Sovol SV08.json" }, { - "name": "Sovol SV08 PLA", - "sub_path": "filament/Sovol SV08 PLA.json" + "name": "Generic PLA @Sovol SV08", + "sub_path": "filament/Generic PLA @Sovol SV08.json" }, { - "name": "Sovol SV08 PLA @SV08 0.2 nozzle", - "sub_path": "filament/Sovol SV08 PLA @SV08 0.2 nozzle.json" + "name": "Generic PLA @Sovol SV08 0.2 nozzle", + "sub_path": "filament/Generic PLA @Sovol SV08 0.2 nozzle.json" }, { - "name": "Sovol SV08 TPU", - "sub_path": "filament/Sovol SV08 TPU.json" + "name": "Generic TPU @Sovol SV08", + "sub_path": "filament/Generic TPU @Sovol SV08.json" }, { - "name": "Sovol Zero ABS", - "sub_path": "filament/Sovol Zero ABS.json" + "name": "Generic ABS @Sovol Zero", + "sub_path": "filament/Generic ABS @Sovol Zero.json" }, { - "name": "Sovol Zero PC", - "sub_path": "filament/Sovol Zero PC.json" + "name": "Generic PC @Sovol Zero", + "sub_path": "filament/Generic PC @Sovol Zero.json" }, { - "name": "Sovol Zero PETG", - "sub_path": "filament/Sovol Zero PETG.json" + "name": "Generic PETG @Sovol Zero", + "sub_path": "filament/Generic PETG @Sovol Zero.json" }, { "name": "Sovol Zero PETG HS Nozzle", "sub_path": "filament/Sovol Zero PETG HS Nozzle.json" }, { - "name": "Sovol Zero PLA Basic", - "sub_path": "filament/Sovol Zero PLA Basic.json" + "name": "Generic PLA @Sovol Zero", + "sub_path": "filament/Generic PLA @Sovol Zero.json" }, { "name": "Sovol Zero PLA Basic HS Nozzle", "sub_path": "filament/Sovol Zero PLA Basic HS Nozzle.json" }, { - "name": "Sovol Zero PLA Silk", - "sub_path": "filament/Sovol Zero PLA Silk.json" + "name": "Generic PLA Silk @Sovol Zero", + "sub_path": "filament/Generic PLA Silk @Sovol Zero.json" }, { "name": "Sovol Zero PLA Silk HS Nozzle", "sub_path": "filament/Sovol Zero PLA Silk HS Nozzle.json" }, { - "name": "Sovol Zero TPU", - "sub_path": "filament/Sovol Zero TPU.json" + "name": "Generic TPU @Sovol Zero", + "sub_path": "filament/Generic TPU @Sovol Zero.json" } ], "machine_list": [ diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 ACE.json similarity index 87% rename from resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json rename to resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 ACE.json index 025dee3fe5..49b26d498a 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE ABS.json +++ b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 ACE ABS", + "name": "Generic ABS @Sovol SV06 ACE", "inherits": "Generic ABS @System", + "renamed_from": "Sovol SV06 ACE ABS", "from": "system", - "setting_id": "okqqqm0P8ehlQuDY", - "filament_id": "OF67EdL5", + "setting_id": "exjBdPPCgk53gipu", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 Plus ACE.json similarity index 84% rename from resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json rename to resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 Plus ACE.json index e38812d1a4..905ee2bda0 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE ABS.json +++ b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV06 Plus ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 Plus ACE ABS", + "name": "Generic ABS @Sovol SV06 Plus ACE", "inherits": "Generic ABS @System", + "renamed_from": "Sovol SV06 Plus ACE ABS", "from": "system", - "setting_id": "Me1iSJmocW35ClmN", - "filament_id": "OFCEA7Nt", + "setting_id": "sg9HXvKEoKD4pw7v", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08.json similarity index 91% rename from resources/profiles/Sovol/filament/Sovol SV08 ABS.json rename to resources/profiles/Sovol/filament/Generic ABS @Sovol SV08.json index f29c3f274d..e690ee88e5 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 ABS.json +++ b/resources/profiles/Sovol/filament/Generic ABS @Sovol SV08.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV08 ABS", + "name": "Generic ABS @Sovol SV08", "inherits": "Generic ABS @System", + "renamed_from": "Sovol SV08 ABS", "from": "system", - "setting_id": "nq4vvrWqKjWKELEz", - "filament_id": "OF016CJw", + "setting_id": "aZx3ePr3Id1jPJG9", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero ABS.json b/resources/profiles/Sovol/filament/Generic ABS @Sovol Zero.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol Zero ABS.json rename to resources/profiles/Sovol/filament/Generic ABS @Sovol Zero.json index 8ae60c192f..3b737e2a18 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero ABS.json +++ b/resources/profiles/Sovol/filament/Generic ABS @Sovol Zero.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol Zero ABS", + "name": "Generic ABS @Sovol Zero", "inherits": "Generic ABS @System", + "renamed_from": "Sovol Zero ABS", "from": "system", - "setting_id": "9pI7op6U4azpfNfb", - "filament_id": "OFNX8GI1", + "setting_id": "g6sSyyIFYJUzlXsp", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PC.json b/resources/profiles/Sovol/filament/Generic PC @Sovol Zero.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol Zero PC.json rename to resources/profiles/Sovol/filament/Generic PC @Sovol Zero.json index 87d4b2c924..dd0eb60594 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PC.json +++ b/resources/profiles/Sovol/filament/Generic PC @Sovol Zero.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol Zero PC", + "name": "Generic PC @Sovol Zero", "inherits": "Generic PC @System", + "renamed_from": "Sovol Zero PC", "from": "system", - "setting_id": "vuuZXnlrMgUKtSI0", - "filament_id": "OFcdqaWI", + "setting_id": "yRKCiPMN6fxibcyg", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 ACE.json similarity index 87% rename from resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json rename to resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 ACE.json index 41066fb061..acb2c90316 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PETG.json +++ b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 ACE PETG", + "name": "Generic PETG @Sovol SV06 ACE", "inherits": "Generic PETG @System", + "renamed_from": "Sovol SV06 ACE PETG", "from": "system", - "setting_id": "5mtng0PM8CMglpD7", - "filament_id": "OFe7Sx5B", + "setting_id": "p8fGWNVkT6n5Dv9P", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 Plus ACE.json similarity index 84% rename from resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json rename to resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 Plus ACE.json index 4b1ab35b1c..5c2dfeff98 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PETG.json +++ b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV06 Plus ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 Plus ACE PETG", + "name": "Generic PETG @Sovol SV06 Plus ACE", "inherits": "Generic PETG @System", + "renamed_from": "Sovol SV06 Plus ACE PETG", "from": "system", - "setting_id": "ZrAm6Nm4FI7p4PgC", - "filament_id": "OFl7nOAf", + "setting_id": "I7IzLMYw7iDUUJwc", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol SV08 PETG.json rename to resources/profiles/Sovol/filament/Generic PETG @Sovol SV08.json index 54718800a9..c637897b10 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PETG.json +++ b/resources/profiles/Sovol/filament/Generic PETG @Sovol SV08.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV08 PETG", + "name": "Generic PETG @Sovol SV08", "inherits": "Generic PETG @System", + "renamed_from": "Sovol SV08 PETG", "from": "system", - "setting_id": "CWd7KULbXvJeTTEy", - "filament_id": "OFRi7v0b", + "setting_id": "7vDZKIKJW5fy1EGG", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PETG.json b/resources/profiles/Sovol/filament/Generic PETG @Sovol Zero.json similarity index 91% rename from resources/profiles/Sovol/filament/Sovol Zero PETG.json rename to resources/profiles/Sovol/filament/Generic PETG @Sovol Zero.json index 37f603579b..a223521d25 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PETG.json +++ b/resources/profiles/Sovol/filament/Generic PETG @Sovol Zero.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol Zero PETG", + "name": "Generic PETG @Sovol Zero", "inherits": "Generic PETG @System", + "renamed_from": "Sovol Zero PETG", "from": "system", - "setting_id": "75OJvkXlmbcaHQfW", - "filament_id": "OFHTVfaU", + "setting_id": "i4OW2eAtXOKdtVNj", "instantiation": "true", "filament_flow_ratio": [ "1.0348" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 ACE.json similarity index 87% rename from resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 ACE.json index b3780567d1..de9e7cde47 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE PLA.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 ACE PLA", + "name": "Generic PLA @Sovol SV06 ACE", "inherits": "Generic PLA @System", + "renamed_from": "Sovol SV06 ACE PLA", "from": "system", - "setting_id": "kgtcANsbfwSbdgOh", - "filament_id": "OFTvvox9", + "setting_id": "UEEwpetmmxpxM4vV", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 Plus ACE.json similarity index 85% rename from resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 Plus ACE.json index a0a3190eaf..8dcb4a6d2d 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE PLA.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV06 Plus ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 Plus ACE PLA", + "name": "Generic PLA @Sovol SV06 Plus ACE", "inherits": "Generic PLA @System", + "renamed_from": "Sovol SV06 Plus ACE PLA", "from": "system", - "setting_id": "YEEOGJYm4Z8W4vGV", - "filament_id": "OFNZjrLo", + "setting_id": "yzv5Kwe3OivHxNUI", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV07 PLA.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV07.json similarity index 87% rename from resources/profiles/Sovol/filament/Sovol SV07 PLA.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol SV07.json index b1b13b7e79..42210ef9c0 100644 --- a/resources/profiles/Sovol/filament/Sovol SV07 PLA.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV07.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV07 PLA", + "name": "Generic PLA @Sovol SV07", "inherits": "Generic PLA @System", + "renamed_from": "Sovol SV07 PLA", "from": "system", - "setting_id": "IHicmU5gzVf6G4F1", - "filament_id": "OFaFNP2U", + "setting_id": "sNGno8XCSsgmwjvH", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 0.2 nozzle.json similarity index 84% rename from resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 0.2 nozzle.json index dda11511e0..be23b183ab 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA @SV08 0.2 nozzle.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08 0.2 nozzle.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV08 PLA @SV08 0.2 nozzle", + "name": "Generic PLA @Sovol SV08 0.2 nozzle", "inherits": "Generic PLA @System", + "renamed_from": "Sovol SV08 PLA @SV08 0.2 nozzle;Sovol SV08 PLA SV08 0.2 nozzle", "from": "system", - "setting_id": "qmnuve3FgzrXgjPA", - "filament_id": "OFcJ7AKd", + "setting_id": "W7oQNGWqiPMUlzhw", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08.json similarity index 89% rename from resources/profiles/Sovol/filament/Sovol SV08 PLA.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol SV08.json index 9e76203099..c124edee31 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 PLA.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol SV08.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV08 PLA", + "name": "Generic PLA @Sovol SV08", "inherits": "Generic PLA @System", + "renamed_from": "Sovol SV08 PLA", "from": "system", - "setting_id": "nnU0222BS0F1c5ki", - "filament_id": "OFcJ7AKd", + "setting_id": "4fSYcvbFXNRHnlEw", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json b/resources/profiles/Sovol/filament/Generic PLA @Sovol Zero.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json rename to resources/profiles/Sovol/filament/Generic PLA @Sovol Zero.json index 990a2b3edb..131867f6b8 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Basic.json +++ b/resources/profiles/Sovol/filament/Generic PLA @Sovol Zero.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol Zero PLA Basic", + "name": "Generic PLA @Sovol Zero", "inherits": "Generic PLA @System", + "renamed_from": "Sovol Zero PLA Basic", "from": "system", - "setting_id": "ZVvOaMwZ7noevsYf", - "filament_id": "OF7VJMYM", + "setting_id": "NNDerIjh7qtuh1I3", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol Zero.json similarity index 80% rename from resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json rename to resources/profiles/Sovol/filament/Generic PLA Silk @Sovol Zero.json index 24fab028e8..5b46a92d64 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero PLA Silk.json +++ b/resources/profiles/Sovol/filament/Generic PLA Silk @Sovol Zero.json @@ -1,11 +1,17 @@ { "type": "filament", - "name": "Sovol Zero PLA Silk", - "inherits": "Generic PLA @System", + "name": "Generic PLA Silk @Sovol Zero", + "inherits": "Generic PLA Silk @System", + "renamed_from": "Sovol Zero PLA Silk", "from": "system", - "setting_id": "QowhGzqSwGQoAp1a", - "filament_id": "OFJVFpJz", + "setting_id": "Se2yKerHRStYtWf5", "instantiation": "true", + "filament_multitool_ramming_flow": [ + "20" + ], + "filament_retraction_length": [ + "nil" + ], "filament_flow_ratio": [ "0.98" ], diff --git a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 ACE.json similarity index 87% rename from resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json rename to resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 ACE.json index 861b80c567..ba653af37d 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 ACE TPU.json +++ b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 ACE TPU", + "name": "Generic TPU @Sovol SV06 ACE", "inherits": "Generic TPU @System", + "renamed_from": "Sovol SV06 ACE TPU", "from": "system", - "setting_id": "ERN0ozxmPhIMze0i", - "filament_id": "OFJfv07m", + "setting_id": "jBAo7stLaaQxKFsp", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 Plus ACE.json similarity index 85% rename from resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json rename to resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 Plus ACE.json index fbacdaf2da..9c9490b863 100644 --- a/resources/profiles/Sovol/filament/Sovol SV06 Plus ACE TPU.json +++ b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV06 Plus ACE.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV06 Plus ACE TPU", + "name": "Generic TPU @Sovol SV06 Plus ACE", "inherits": "Generic TPU @System", + "renamed_from": "Sovol SV06 Plus ACE TPU", "from": "system", - "setting_id": "oNucKLcIdxwBPpUN", - "filament_id": "OFkWaWRo", + "setting_id": "MUXz0JSHdT66Mti1", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol SV08 TPU.json rename to resources/profiles/Sovol/filament/Generic TPU @Sovol SV08.json index 404675d8f4..bf412d77d8 100644 --- a/resources/profiles/Sovol/filament/Sovol SV08 TPU.json +++ b/resources/profiles/Sovol/filament/Generic TPU @Sovol SV08.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol SV08 TPU", + "name": "Generic TPU @Sovol SV08", "inherits": "Generic TPU @System", + "renamed_from": "Sovol SV08 TPU", "from": "system", - "setting_id": "tpBbCQhcSJsBesnG", - "filament_id": "OFyCToOV", + "setting_id": "vFPYMoNvgjn1aSKA", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/filament/Sovol Zero TPU.json b/resources/profiles/Sovol/filament/Generic TPU @Sovol Zero.json similarity index 90% rename from resources/profiles/Sovol/filament/Sovol Zero TPU.json rename to resources/profiles/Sovol/filament/Generic TPU @Sovol Zero.json index bd4596b303..8c7c18c523 100644 --- a/resources/profiles/Sovol/filament/Sovol Zero TPU.json +++ b/resources/profiles/Sovol/filament/Generic TPU @Sovol Zero.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Sovol Zero TPU", + "name": "Generic TPU @Sovol Zero", "inherits": "Generic TPU @System", + "renamed_from": "Sovol Zero TPU", "from": "system", - "setting_id": "iZHXx0RyRO096L0z", - "filament_id": "OF6zAVFj", + "setting_id": "MlY6WQ41FE8zDPSV", "instantiation": "true", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json index 45030c23ac..329a91b001 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.2 nozzle.json @@ -126,6 +126,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV06 ACE PLA" + "Generic PLA @Sovol SV06 ACE" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json index 9128747e51..c9f054af98 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.4 nozzle.json @@ -126,6 +126,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV06 ACE PLA" + "Generic PLA @Sovol SV06 ACE" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json index a1433ec914..e7bc84ee1a 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.6 nozzle.json @@ -126,6 +126,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV06 ACE PLA" + "Generic PLA @Sovol SV06 ACE" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json index 5415c845e2..6c555ef1d5 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE 0.8 nozzle.json @@ -126,6 +126,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV06 ACE PLA" + "Generic PLA @Sovol SV06 ACE" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 ACE.json b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json index fe28ebc823..e3e0067e60 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 ACE.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 ACE.json @@ -8,5 +8,5 @@ "bed_model": "sovol_sv06_ace_buildplate_model.stl", "bed_texture": "sovol_sv06_ace_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Sovol SV06 ACE PLA" + "default_materials": "Generic PLA @Sovol SV06 ACE" } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json index 440ff3c88f..5624a3c07f 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE 0.4 nozzle.json @@ -124,6 +124,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV06 Plus ACE PLA" + "Generic PLA @Sovol SV06 Plus ACE" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json index 8ec61bab90..5b034f4359 100644 --- a/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json +++ b/resources/profiles/Sovol/machine/Sovol SV06 Plus ACE.json @@ -8,5 +8,5 @@ "bed_model": "sovol_sv06plus_ace_buildplate_model.stl", "bed_texture": "sovol_sv06plus_ace_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Sovol SV06 Plus ACE PLA" + "default_materials": "Generic PLA @Sovol SV06 Plus ACE" } diff --git a/resources/profiles/Sovol/machine/Sovol SV07.json b/resources/profiles/Sovol/machine/Sovol SV07.json index 2ac60556da..bd63f8d407 100644 --- a/resources/profiles/Sovol/machine/Sovol SV07.json +++ b/resources/profiles/Sovol/machine/Sovol SV07.json @@ -8,5 +8,5 @@ "bed_model": "sovol_sv07_buildplate_model.stl", "bed_texture": "sovol_sv07_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Sovol SV07 PLA" + "default_materials": "Generic PLA @Sovol SV07" } diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json index c81d26c959..441616c542 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.2 nozzle.json @@ -108,6 +108,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV08 PLA @SV08 0.2 nozzle" + "Generic PLA @Sovol SV08 0.2 nozzle" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json index 5aa5e4f14b..7defca131b 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.4 nozzle.json @@ -102,6 +102,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV08 PLA" + "Generic PLA @Sovol SV08" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json index 2825fb9a83..d49594b4af 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.6 nozzle.json @@ -108,6 +108,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV08 PLA" + "Generic PLA @Sovol SV08" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json b/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json index 6510857d6f..576ca16076 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol SV08 0.8 nozzle.json @@ -108,6 +108,6 @@ "machine_end_gcode": "END_PRINT\n", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Sovol SV08 PLA" + "Generic PLA @Sovol SV08" ] } diff --git a/resources/profiles/Sovol/machine/Sovol SV08.json b/resources/profiles/Sovol/machine/Sovol SV08.json index 2d861f5ef4..c6cee44624 100644 --- a/resources/profiles/Sovol/machine/Sovol SV08.json +++ b/resources/profiles/Sovol/machine/Sovol SV08.json @@ -8,5 +8,5 @@ "bed_model": "sovol_sv08_buildplate_model.stl", "bed_texture": "sovol_sv08_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Sovol SV08 PLA;Sovol SV08 PLA @SV08 0.2 nozzle;Sovol SV08 ABS;Sovol SV08 PETG;Sovol SV08 TPU" + "default_materials": "Generic PLA @Sovol SV08;Generic PLA @Sovol SV08 0.2 nozzle;Generic ABS @Sovol SV08;Generic PETG @Sovol SV08;Generic TPU @Sovol SV08" } diff --git a/resources/profiles/Sovol/machine/Sovol Zero 0.4 nozzle.json b/resources/profiles/Sovol/machine/Sovol Zero 0.4 nozzle.json index f4ae49b7cb..a5699a9eed 100644 --- a/resources/profiles/Sovol/machine/Sovol Zero 0.4 nozzle.json +++ b/resources/profiles/Sovol/machine/Sovol Zero 0.4 nozzle.json @@ -107,6 +107,6 @@ "machine_start_gcode": "M140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\nG28\nSTART_PRINT\nG28\nG90\nG1 X0 Y0 F12000\nG1 Z0.300 F600\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nM109 S[nozzle_temperature_initial_layer];wait for extruder temp\n{if first_layer_print_min[1] - 6 > print_bed_min[1]}\nG90\nM83\nG1 E-0.5 F600\nG1 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4} Y{first_layer_print_min[1] - 5} F12000\nG0 Z0.3 F600 ;Move to start position\nG1 E0.200 F600\n{if first_layer_print_max[0] - first_layer_print_min[0] > 50}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*1} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*2} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*3} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*4} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*5} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*6} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*7} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*8} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*9} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*10} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n{else}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 2} E{(first_layer_print_max[0] - first_layer_print_min[0]) / 2 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0])} E{(first_layer_print_max[0] - first_layer_print_min[0]) / 2 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n{endif}\nG1 E-0.300 F600\nG0 Z1 F600\nG1 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4} Y{first_layer_print_min[1] - 4} F12000\nG0 Z0.3 F600 ;Move to start position\nG1 E0.200 F600\n{if first_layer_print_max[0] - first_layer_print_min[0] > 50}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*1} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*2} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*3} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*4} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*5} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*6} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*7} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*8} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*9} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 4 + 5*10} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n{else}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0]) / 2} E{(first_layer_print_max[0] - first_layer_print_min[0]) / 2 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X{first_layer_print_min[0] + (first_layer_print_max[0] - first_layer_print_min[0])} E{(first_layer_print_max[0] - first_layer_print_min[0]) / 2 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n{endif}\nG1 E-0.300 F600\nG0 Z5 F600\nM400\n{else}\nG90\nM83\nG1 E-0.300 Z3 F600\nG1 X{print_bed_max[1] / 3} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 Z0.3 F600\nG1 E0.300 F600\nG1 X{print_bed_max[1] / 3 + 5*1} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*2} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*3} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*4} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*5} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*6} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*7} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*8} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*9} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*10} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3} Y1 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*1} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*2} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*3} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*4} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*5} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*6} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*7} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*8} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X{print_bed_max[1] / 3 + 5*9} E{5 * 0.2} F{outer_wall_volumetric_speed/(24/20) * 60}\nG1 X{print_bed_max[1] / 3 + 5*10} E{5 * 0.2} F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 E-0.300 Z3 F600\nM400\n{endif}\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\n\n", "machine_end_gcode": "END_PRINT\n", "default_filament_profile": [ - "Sovol Zero PLA Basic" + "Generic PLA @Sovol Zero" ] } diff --git a/resources/profiles/Sovol/machine/Sovol Zero.json b/resources/profiles/Sovol/machine/Sovol Zero.json index c1ccc64b84..6f99e8f8d0 100644 --- a/resources/profiles/Sovol/machine/Sovol Zero.json +++ b/resources/profiles/Sovol/machine/Sovol Zero.json @@ -8,5 +8,5 @@ "bed_model": "sovol_zero_buildplate_model.stl", "bed_texture": "sovol_zero_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Sovol Zero PLA Basic;Sovol Zero PLA Basic HS Nozzle;Sovol Zero PLA Silk;Sovol Zero PLA Silk HS Nozzle;Sovol Zero ABS;Sovol Zero PETG;Sovol Zero PETG HS Nozzle;Sovol Zero TPU;Sovol Zero PC" + "default_materials": "Generic PLA @Sovol Zero;Sovol Zero PLA Basic HS Nozzle;Generic PLA Silk @Sovol Zero;Sovol Zero PLA Silk HS Nozzle;Generic ABS @Sovol Zero;Generic PETG @Sovol Zero;Sovol Zero PETG HS Nozzle;Generic TPU @Sovol Zero;Generic PC @Sovol Zero" } diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index 336f48ac15..b41888a840 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -2322,6 +2322,12 @@ ], "successor": "OFmhJs5V" }, + "OF016CJw": { + "claims": [ + "Sovol/Sovol SV08 ABS" + ], + "successor": "OFY9muEs" + }, "OF0GIkJm": { "claims": [ "Tiertime/Tiertime Generic PLA Silk" @@ -2457,6 +2463,12 @@ ], "successor": "OFDSrzZ8" }, + "OF67EdL5": { + "claims": [ + "Sovol/Sovol SV06 ACE ABS" + ], + "successor": "OFY9muEs" + }, "OF6Fpw1E": { "claims": [ "Comgrow/Comgrow Generic PETG" @@ -2475,12 +2487,30 @@ ], "successor": "OFDSrzZ8" }, + "OF6O67Xk": { + "claims": [ + "Lulzbot/Lulzbot 2.85mm ABS" + ], + "successor": "OFY9muEs" + }, + "OF6VgL2U": { + "claims": [ + "Phrozen/Phrozen PLA" + ], + "successor": "OFDSrzZ8" + }, "OF6WddJ1": { "claims": [ "Flashforge/FusRock S-PAHT" ], "successor": "OFCn83wF" }, + "OF6ooviO": { + "claims": [ + "FLSun/FLSun S1 TPU" + ], + "successor": "OFgbpcy9" + }, "OF6rMr3U": { "claims": [ "Flashforge/FusRock Generic S-Multi" @@ -2505,6 +2535,18 @@ ], "successor": "OFLakOUI" }, + "OF6zAVFj": { + "claims": [ + "Sovol/Sovol Zero TPU" + ], + "successor": "OFgbpcy9" + }, + "OF7VJMYM": { + "claims": [ + "Sovol/Sovol Zero PLA Basic" + ], + "successor": "OFDSrzZ8" + }, "OF7g2vYQ": { "claims": [ "Co Print/CoPrint Generic TPU" @@ -2529,6 +2571,12 @@ ], "successor": "OFQLcbps" }, + "OF8eQjjt": { + "claims": [ + "Lulzbot/Lulzbot 2.85mm PETG" + ], + "successor": "OFYPdQJh" + }, "OF97ru74": { "claims": [ "Prusa/Prusa Generic PC" @@ -2541,6 +2589,12 @@ ], "successor": "OFLakOUI" }, + "OF9z5LZ9": { + "claims": [ + "FLSun/FLSun S1 PETG" + ], + "successor": "OFYPdQJh" + }, "OFACSw9O": { "claims": [ "Creality/Creality Generic PLA" @@ -2608,6 +2662,12 @@ ], "successor": "OFgbpcy9" }, + "OFCEA7Nt": { + "claims": [ + "Sovol/Sovol SV06 Plus ACE ABS" + ], + "successor": "OFY9muEs" + }, "OFCVUEaV": { "claims": [ "Tiertime/Tiertime Generic TPU" @@ -2654,6 +2714,12 @@ ], "successor": "OFgbpcy9" }, + "OFENzGSm": { + "claims": [ + "FLSun/FLSun T1 TPU" + ], + "successor": "OFgbpcy9" + }, "OFETFWx7": { "claims": [ "SecKit/SecKit Generic PLA" @@ -2732,6 +2798,12 @@ ], "successor": "OFQLcbps" }, + "OFHTVfaU": { + "claims": [ + "Sovol/Sovol Zero PETG" + ], + "successor": "OFYPdQJh" + }, "OFHUnLY2": { "claims": [ "Vzbot/Vzbot Generic PETG" @@ -2750,6 +2822,12 @@ ], "successor": "OFLPAxz3" }, + "OFIK0xFa": { + "claims": [ + "FLSun/FLSun S1 ASA" + ], + "successor": "OFLPAxz3" + }, "OFIYTy8S": { "claims": [ "Anker/Anker Generic PLA+", @@ -2782,6 +2860,12 @@ ], "successor": "OFg8ndtj" }, + "OFJ80y1e": { + "claims": [ + "FLSun/FLSun T1 PETG" + ], + "successor": "OFYPdQJh" + }, "OFJJpaLS": { "claims": [ "FLSun/FLSun Generic PETG" @@ -2794,6 +2878,18 @@ ], "successor": "OFDSrzZ8" }, + "OFJVFpJz": { + "claims": [ + "Sovol/Sovol Zero PLA Silk" + ], + "successor": "OFesA6rF" + }, + "OFJfv07m": { + "claims": [ + "Sovol/Sovol SV06 ACE TPU" + ], + "successor": "OFgbpcy9" + }, "OFK01afJ": { "claims": [ "Qidi/Qidi Generic PC" @@ -2812,6 +2908,12 @@ ], "successor": "OFYPdQJh" }, + "OFKo87c6": { + "claims": [ + "Snapmaker/Snapmaker TPU 95A" + ], + "successor": "OFvmwTZE" + }, "OFKuTr12": { "claims": [ "Tiertime/Tiertime Generic PE" @@ -2928,6 +3030,18 @@ ], "successor": "OFIKZxPF" }, + "OFNWcJsM": { + "claims": [ + "Comgrow/Comgrow T300 PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFNX8GI1": { + "claims": [ + "Sovol/Sovol Zero ABS" + ], + "successor": "OFY9muEs" + }, "OFNYewRS": { "claims": [ "Blocks/Blocks Generic PLA" @@ -2940,6 +3054,12 @@ ], "successor": "OFDvXujf" }, + "OFNZjrLo": { + "claims": [ + "Sovol/Sovol SV06 Plus ACE PLA" + ], + "successor": "OFDSrzZ8" + }, "OFNcdCrm": { "claims": [ "Anycubic/Anycubic Generic PLA-CF" @@ -2976,6 +3096,12 @@ ], "successor": "OFKW5hEW" }, + "OFPryWt5": { + "claims": [ + "Lulzbot/Lulzbot 2.85mm PLA" + ], + "successor": "OFDSrzZ8" + }, "OFPy0Ogq": { "claims": [ "Qidi/Qidi Generic PA-CF" @@ -2988,6 +3114,12 @@ ], "successor": "OFWbdGsC" }, + "OFQ9qnkd": { + "claims": [ + "FLSun/FLSun T1 PLA High Speed" + ], + "successor": "OFmpMwxS" + }, "OFQC8Vna": { "claims": [ "Flashforge/Flashforge Generic PETG-CF" @@ -3024,6 +3156,12 @@ ], "successor": "OFLPAxz3" }, + "OFRi7v0b": { + "claims": [ + "Sovol/Sovol SV08 PETG" + ], + "successor": "OFYPdQJh" + }, "OFRiyes1": { "claims": [ "Anker/Anker Generic ASA", @@ -3074,6 +3212,12 @@ ], "successor": "OF8tPByX" }, + "OFSStjay": { + "claims": [ + "FLSun/FLSun S1 PLA Silk" + ], + "successor": "OFesA6rF" + }, "OFSTCno1": { "claims": [ "re3D/re3D Greengate rPETG" @@ -3086,6 +3230,12 @@ ], "successor": "OFu1evlr" }, + "OFTvvox9": { + "claims": [ + "Sovol/Sovol SV06 ACE PLA" + ], + "successor": "OFDSrzZ8" + }, "OFU0n0zW": { "claims": [ "FLSun/FLSun T1 PLA Generic" @@ -3140,6 +3290,12 @@ ], "successor": "OFWbdGsC" }, + "OFV0KrAG": { + "claims": [ + "FLSun/FLSun T1 ABS" + ], + "successor": "OFY9muEs" + }, "OFVKADz5": { "claims": [ "Comgrow/Comgrow Generic PLA" @@ -3304,6 +3460,12 @@ ], "successor": "OFCn83wF" }, + "OFaFNP2U": { + "claims": [ + "Sovol/Sovol SV07 PLA" + ], + "successor": "OFDSrzZ8" + }, "OFaU2JxD": { "claims": [ "Dremel/Dremel Generic PLA" @@ -3328,6 +3490,12 @@ ], "successor": "OFgbpcy9" }, + "OFbjtPQy": { + "claims": [ + "FLSun/FLSun T1 ASA" + ], + "successor": "OFLPAxz3" + }, "OFbt04e0": { "claims": [ "DeltaMaker/DeltaMaker Generic TPU" @@ -3346,6 +3514,18 @@ ], "successor": "OFDvXujf" }, + "OFcJ7AKd": { + "claims": [ + "Sovol/Sovol SV08 PLA" + ], + "successor": "OFDSrzZ8" + }, + "OFcdqaWI": { + "claims": [ + "Sovol/Sovol Zero PC" + ], + "successor": "OFLakOUI" + }, "OFctbSkL": { "claims": [ "Blocks/Blocks Generic ASA-CF" @@ -3395,6 +3575,12 @@ ], "successor": "OFgbpcy9" }, + "OFe7Sx5B": { + "claims": [ + "Sovol/Sovol SV06 ACE PETG" + ], + "successor": "OFYPdQJh" + }, "OFe8UJXH": { "claims": [ "Creality/Creality Generic PC" @@ -3524,6 +3710,12 @@ ], "successor": "OFd0Fv0k" }, + "OFkWaWRo": { + "claims": [ + "Sovol/Sovol SV06 Plus ACE TPU" + ], + "successor": "OFgbpcy9" + }, "OFkYkQGO": { "claims": [ "Tiertime/Tiertime Generic PP-GF" @@ -3542,6 +3734,12 @@ ], "successor": "OFZr862X" }, + "OFl7nOAf": { + "claims": [ + "Sovol/Sovol SV06 Plus ACE PETG" + ], + "successor": "OFYPdQJh" + }, "OFlLmUeV": { "claims": [ "Ginger Additive/Ginger Generic PLA" @@ -3554,6 +3752,12 @@ ], "successor": "OFO5djrM" }, + "OFlXJxX1": { + "claims": [ + "Chuanying/Chuanying PETG" + ], + "successor": "OFYPdQJh" + }, "OFlx52rn": { "claims": [ "Ratrig/RatRig Generic PLA-CF" @@ -3634,6 +3838,12 @@ ], "successor": "OFmpMwxS" }, + "OFoqrHTw": { + "claims": [ + "FLSun/FLSun S1 PLA High Speed" + ], + "successor": "OFmpMwxS" + }, "OFp8gtPH": { "claims": [ "Creality/Creality Generic PLA Silk" @@ -3646,6 +3856,12 @@ ], "successor": "OFLPAxz3" }, + "OFpBV2Ma": { + "claims": [ + "Qidi/Tinmorry PETG-ECO" + ], + "successor": "OFYE7YZw" + }, "OFpSYJLI": { "claims": [ "Creality/Creality Generic PLA Matte" @@ -3718,6 +3934,12 @@ ], "successor": "OFkf1HHw" }, + "OFs1sNLz": { + "claims": [ + "Chuanying/Chuanying ABS" + ], + "successor": "OFY9muEs" + }, "OFs2ReMr": { "claims": [ "InfiMech/InfiMech Generic PETG" @@ -3796,6 +4018,12 @@ ], "successor": "OFDSrzZ8" }, + "OFuUJyRx": { + "claims": [ + "FLSun/FLSun T1 PLA Silk" + ], + "successor": "OFesA6rF" + }, "OFupq0tY": { "claims": [ "Blocks/Blocks Generic PLA-CF" @@ -3868,6 +4096,12 @@ ], "successor": "OFesA6rF" }, + "OFyCToOV": { + "claims": [ + "Sovol/Sovol SV08 TPU" + ], + "successor": "OFgbpcy9" + }, "OFyFRojy": { "claims": [ "Ratrig/RatRig Generic ABS" @@ -3904,6 +4138,12 @@ ], "successor": "OFYPdQJh" }, + "OFzzmK2Q": { + "claims": [ + "FLSun/FLSun S1 ABS" + ], + "successor": "OFY9muEs" + }, "OGFA00": { "claims": [ "OrcaFilamentLibrary/Bambu PLA Basic" diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index c5e6aefe58..34ff667ed0 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -234,6 +234,7 @@ def load_vendor_filaments(profiles_dir, vendor): "compatible_printers": data.get("compatible_printers") or [], "filament_vendor": data.get("filament_vendor"), "filament_type": data.get("filament_type"), + "renamed_from": data.get("renamed_from"), } return presets, errors @@ -378,6 +379,7 @@ def analyze_tree(profiles_dir): triples = {} # fid -> set of triples of its non-island declarers declarer_triples = [] # (vendor, rec, fid, triple) per non-island declarer family_triples = {} # (vendor, family) -> {triple: [declarer names]} + renamed_claims = {} # "Vendor/OldFamily" -> set of ids the rename now carries for vendor, filaments in vendors.items(): occurring = vendor_ids.setdefault(vendor, set()) @@ -411,6 +413,13 @@ def analyze_tree(profiles_dir): continue occurring.add(eff) ids.setdefault(eff, set()).add(f"{vendor}/{base_name(rec['name'])}") + # A renamed preset keeps voting under the names it used to have, so + # the id its old family carried retires to the id the rename minted. + renamed = rec.get("renamed_from") + for old in (renamed if isinstance(renamed, str) else "").split(";"): + if old.strip(): + renamed_claims.setdefault( + f"{vendor}/{base_name(old.strip())}", set()).add(eff) if rec.get("filament_id"): instantiated_with_id.append(f"{vendor}/{rec['name']}") if vendor != OFL and rec["ofl_entry"] and eff in ofl_declared: @@ -459,6 +468,7 @@ def analyze_tree(profiles_dir): "vendors": vendors, "read_errors": read_errors, "ids": {fid: sorted(claims) for fid, claims in ids.items()}, + "renamed_claims": {claim: sorted(fids) for claim, fids in renamed_claims.items()}, "vendor_ids": vendor_ids, "declared_ids": declared_ids, "instantiated_with_id": sorted(instantiated_with_id), @@ -529,11 +539,18 @@ def write_ledger(path, obj): def claim_effective_ids(analysis): - """Reverse of analysis["ids"]: claim "Vendor/Family" -> set of effective ids.""" + """Reverse of analysis["ids"]: claim "Vendor/Family" -> set of effective ids. + + A preset's "renamed_from" names count as claims of that preset too, so an id + whose family was renamed still finds a successor in the claim vote. + """ claim_ids = {} for fid, claims in analysis["ids"].items(): for claim in claims: claim_ids.setdefault(claim, set()).add(fid) + for claim, fids in analysis.get("renamed_claims", {}).items(): + if claim not in claim_ids: + claim_ids[claim] = set(fids) return claim_ids diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index e86eeab452..b3e38041f3 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -71,38 +71,15 @@ "Flashforge/Generic TPU-90A @FF C5P", "Flashforge/Generic TPU-95A @FF C5", "Flashforge/Generic TPU-95A @FF C5P", - "Lulzbot/Lulzbot 2.85mm ABS", - "Lulzbot/Lulzbot 2.85mm PETG", - "Lulzbot/Lulzbot 2.85mm PLA", "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", "Snapmaker/PolyTerra J1 PLA", "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", "Sovol/Generic PLA Silk @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol SV06 ACE ABS", - "Sovol/Sovol SV06 ACE PETG", - "Sovol/Sovol SV06 ACE PLA", - "Sovol/Sovol SV06 ACE TPU", - "Sovol/Sovol SV06 Plus ACE ABS", - "Sovol/Sovol SV06 Plus ACE PETG", - "Sovol/Sovol SV06 Plus ACE PLA", - "Sovol/Sovol SV06 Plus ACE TPU", - "Sovol/Sovol SV07 PLA", - "Sovol/Sovol SV08 ABS", - "Sovol/Sovol SV08 PETG", - "Sovol/Sovol SV08 PLA", - "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", - "Sovol/Sovol SV08 TPU", - "Sovol/Sovol Zero ABS", - "Sovol/Sovol Zero PC", - "Sovol/Sovol Zero PETG", "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic", "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk", - "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Sovol/Sovol Zero TPU" + "Sovol/Sovol Zero PLA Silk HS Nozzle" ], "id_overrides": [ "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", @@ -188,14 +165,11 @@ "BBL/addnorth TPU EasyFlex", "BBL/addnorth TPU Pro Matte 85A", "BBL/addnorth TPU Pro Matte 95A", - "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", "Chuanying/Generic HIPS @Chuanying", "Chuanying/Generic PVA @Chuanying", "Co Print/Generic ABS @CoPrint", "Co Print/Generic PETG @CoPrint", "Co Print/Generic TPU @CoPrint", - "Comgrow/Comgrow T300 PLA", "Creality/Generic ASA-CF @Creality Hi-all", "Creality/Generic PETG-CF @Creality Hi-all", "Creality/Generic PLA High Speed @Creality Ender-3V3-all", @@ -273,18 +247,6 @@ "Elegoo/Generic PETG PRO @Elegoo", "Elegoo/Generic PETG-CF @Elegoo Centauri", "Elegoo/Generic PLA Matte @Elegoo", - "FLSun/FLSun S1 ABS", - "FLSun/FLSun S1 ASA", - "FLSun/FLSun S1 PETG", - "FLSun/FLSun S1 PLA High Speed", - "FLSun/FLSun S1 PLA Silk", - "FLSun/FLSun S1 TPU", - "FLSun/FLSun T1 ABS", - "FLSun/FLSun T1 ASA", - "FLSun/FLSun T1 PETG", - "FLSun/FLSun T1 PLA High Speed", - "FLSun/FLSun T1 PLA Silk", - "FLSun/FLSun T1 TPU", "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", "Flashforge/FlashForge PC @FF G4 0.6 nozzle", "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", @@ -777,9 +739,6 @@ "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", "Flashforge/Polymaker S1", - "Lulzbot/Lulzbot 2.85mm ABS", - "Lulzbot/Lulzbot 2.85mm PETG", - "Lulzbot/Lulzbot 2.85mm PLA", "OrcaFilamentLibrary/AliZ PETG-CF @base", "OrcaFilamentLibrary/AliZ PETG-Metal @base", "OrcaFilamentLibrary/Elegoo ASA-CF @base", @@ -917,29 +876,9 @@ "Sovol/Generic PLA Silk @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol SV06 ACE ABS", - "Sovol/Sovol SV06 ACE PETG", - "Sovol/Sovol SV06 ACE PLA", - "Sovol/Sovol SV06 ACE TPU", - "Sovol/Sovol SV06 Plus ACE ABS", - "Sovol/Sovol SV06 Plus ACE PETG", - "Sovol/Sovol SV06 Plus ACE PLA", - "Sovol/Sovol SV06 Plus ACE TPU", - "Sovol/Sovol SV07 PLA", - "Sovol/Sovol SV08 ABS", - "Sovol/Sovol SV08 PETG", - "Sovol/Sovol SV08 PLA", - "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", - "Sovol/Sovol SV08 TPU", - "Sovol/Sovol Zero ABS", - "Sovol/Sovol Zero PC", - "Sovol/Sovol Zero PETG", "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic", "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Sovol/Sovol Zero TPU", "Wanhao France/YUMI PETG", "Wanhao France/YUMI PLA Bowden", "Wanhao France/YUMI PLA Direct Drive", @@ -1571,9 +1510,6 @@ "GF_ANXPH": [ "BBL/addnorth PLA X-PLA High Speed" ], - "OF016CJw": [ - "Sovol/Sovol SV08 ABS" - ], "OF02UAVh": [ "Creality/Soleyin Ultra PLA" ], @@ -1846,9 +1782,6 @@ "OF66KUAN": [ "Creality/PolySonic PLA" ], - "OF67EdL5": [ - "Sovol/Sovol SV06 ACE ABS" - ], "OF6ATsCF": [ "Snapmaker/Snapmaker Dual PLA-CF" ], @@ -1868,22 +1801,13 @@ "Elegoo/Generic PET", "Flashforge/Generic PET" ], - "OF6O67Xk": [ - "Lulzbot/Lulzbot 2.85mm ABS" - ], "OF6TuVAg": [ "Snapmaker/Snapmaker Breakaway Support For PLA", "Snapmaker/Snapmaker J1 PVA" ], - "OF6VgL2U": [ - "Phrozen/Phrozen PLA" - ], "OF6kj4jI": [ "iQ/Fiberthree PACF Pro P2" ], - "OF6ooviO": [ - "FLSun/FLSun S1 TPU" - ], "OF6rdQ6M": [ "Creality/Generic PPS-CF", "Tiertime/Generic PPS-CF" @@ -1891,9 +1815,6 @@ "OF6ueBwd": [ "Flashforge/Flashforge PLA Pro" ], - "OF6zAVFj": [ - "Sovol/Sovol Zero TPU" - ], "OF70zbGS": [ "Creality/Hyper L-W PLA" ], @@ -1916,9 +1837,6 @@ "OF7SliVn": [ "Snapmaker/PolyLite J1 PLA" ], - "OF7VJMYM": [ - "Sovol/Sovol Zero PLA Basic" - ], "OF7c9fln": [ "Anycubic/Anycubic PLA Translucent" ], @@ -1957,9 +1875,6 @@ "OF8dCquh": [ "Snapmaker/Snapmaker J1 ABS Benchy" ], - "OF8eQjjt": [ - "Lulzbot/Lulzbot 2.85mm PETG" - ], "OF8eaY7j": [ "Creality/Generic PA612-CF" ], @@ -2002,9 +1917,6 @@ "OF9emAI9": [ "Ratrig/RatRig PunkFil PETG" ], - "OF9z5LZ9": [ - "FLSun/FLSun S1 PETG" - ], "OFA026vt": [ "OrcaArena/Arena PA-CF" ], @@ -2080,9 +1992,6 @@ "OrcaFilamentLibrary/Generic EVA", "Tiertime/Generic EVA" ], - "OFCEA7Nt": [ - "Sovol/Sovol SV06 Plus ACE ABS" - ], "OFCIUsWh": [ "OrcaFilamentLibrary/Panchroma PLA Translucent", "Snapmaker/Panchroma PLA Translucent" @@ -2156,7 +2065,6 @@ "Artillery/Generic PLA", "Blocks/Generic PLA", "CONSTRUCT3D/Generic PLA", - "Chuanying/Chuanying PLA", "Chuanying/Generic PLA", "Co Print/Generic PLA", "CoLiDo/Generic PLA", @@ -2173,9 +2081,11 @@ "Ginger Additive/Generic PLA", "InfiMech/Generic PLA", "LONGER/Generic PLA", + "Lulzbot/Generic PLA", "OrcaArena/Generic PLA", "OrcaFilamentLibrary/Generic PLA", "Peopoly/Generic PLA", + "Phrozen/Generic PLA", "Prusa/Generic PLA", "Qidi/Generic PLA", "RH3D/Generic PLA", @@ -2241,9 +2151,6 @@ "OFEMfQsX": [ "Flashforge/Flashforge PETG Basic" ], - "OFENzGSm": [ - "FLSun/FLSun T1 TPU" - ], "OFEOnBj6": [ "Snapmaker/Snapmaker PLA Lite" ], @@ -2384,9 +2291,6 @@ "OFHAccHz": [ "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" ], - "OFHTVfaU": [ - "Sovol/Sovol Zero PETG" - ], "OFHWSM21": [ "OrcaFilamentLibrary/Fiberon PET-CF" ], @@ -2419,9 +2323,6 @@ "OFIE3vOf": [ "Anycubic/Anycubic PLA Matte" ], - "OFIK0xFa": [ - "FLSun/FLSun S1 ASA" - ], "OFIKZxPF": [ "Creality/Generic PLA Wood" ], @@ -2461,9 +2362,6 @@ "OFJ3HRsR": [ "OrcaArena/Arena ABS" ], - "OFJ80y1e": [ - "FLSun/FLSun T1 PETG" - ], "OFJHBEGD": [], "OFJNeELv": [ "OrcaFilamentLibrary/FILL3D PA" @@ -2475,18 +2373,12 @@ "OFJQDUk3": [ "OrcaFilamentLibrary/FilAr PETG Cristal" ], - "OFJVFpJz": [ - "Sovol/Sovol Zero PLA Silk" - ], "OFJWKoYG": [ "iQ/Material4Print ABS Natur P1" ], "OFJYpVAQ": [ "Flashforge/Generic TPU-90A" ], - "OFJfv07m": [ - "Sovol/Sovol SV06 ACE TPU" - ], "OFJgijky": [ "Snapmaker/PolyLite CosPLA" ], @@ -2551,9 +2443,6 @@ "OrcaFilamentLibrary/Panchroma PLA Marble", "Snapmaker/Panchroma PLA Marble" ], - "OFKo87c6": [ - "Snapmaker/Snapmaker TPU 95A" - ], "OFKpQTJI": [ "Flashforge/Flashforge TPU 65D" ], @@ -2579,7 +2468,6 @@ "Anycubic/Generic ASA", "Artillery/Generic ASA", "Blocks/Generic ASA", - "Chuanying/Chuanying ASA", "Chuanying/Generic ASA", "Creality/Generic ASA", "Custom/Generic ASA", @@ -2717,18 +2605,9 @@ "OFNU9YIW": [ "OrcaFilamentLibrary/FilAr PETG Azul Boreal" ], - "OFNWcJsM": [ - "Comgrow/Comgrow T300 PLA" - ], "OFNWnx2c": [ "Flashforge/Flashforge TPU-95A" ], - "OFNX8GI1": [ - "Sovol/Sovol Zero ABS" - ], - "OFNZjrLo": [ - "Sovol/Sovol SV06 Plus ACE PLA" - ], "OFNemJM6": [ "OrcaFilamentLibrary/FilAr PLA Cobre" ], @@ -2834,9 +2713,6 @@ "OFPqX3x2": [ "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" ], - "OFPryWt5": [ - "Lulzbot/Lulzbot 2.85mm PLA" - ], "OFQ1KzO8": [ "Snapmaker/Snapmaker J1 PLA Silk" ], @@ -2849,9 +2725,6 @@ "OFQ40XeN": [ "Qidi/QIDI PETG Tough" ], - "OFQ9qnkd": [ - "FLSun/FLSun T1 PLA High Speed" - ], "OFQEGL7z": [ "FlyingBear/FlyingBear PA-CF" ], @@ -2925,9 +2798,6 @@ "OFRhCTUg": [ "Anycubic/Anycubic PET-CF" ], - "OFRi7v0b": [ - "Sovol/Sovol SV08 PETG" - ], "OFRiFnfQ": [ "OrcaFilamentLibrary/Eolas Prints PETG Transition" ], @@ -2963,9 +2833,6 @@ "OrcaFilamentLibrary/Panchroma PLA Silk", "Snapmaker/Panchroma PLA Silk" ], - "OFSStjay": [ - "FLSun/FLSun S1 PLA Silk" - ], "OFSa39yP": [ "Snapmaker/Snapmaker J1 PLA" ], @@ -3015,9 +2882,6 @@ "OFTsHNQi": [ "Qidi/QIDI ASA" ], - "OFTvvox9": [ - "Sovol/Sovol SV06 ACE PLA" - ], "OFU1zPxE": [ "Elegoo/Elegoo PLA Galaxy", "OrcaFilamentLibrary/Elegoo PLA Galaxy" @@ -3056,9 +2920,6 @@ "Elegoo/Elegoo PC", "OrcaFilamentLibrary/Elegoo PC" ], - "OFV0KrAG": [ - "FLSun/FLSun T1 ABS" - ], "OFV5Q7j2": [ "Snapmaker/Snapmaker J1 TPE" ], @@ -3223,6 +3084,7 @@ "Flashforge/Generic ABS", "FlyingBear/Generic ABS", "InfiMech/Generic ABS", + "Lulzbot/Generic ABS", "OrcaArena/Generic ABS", "OrcaFilamentLibrary/Generic ABS", "Peopoly/Generic ABS", @@ -3236,6 +3098,9 @@ "Vzbot/Generic ABS", "Z-Bolt/Generic ABS" ], + "OFYE7YZw": [ + "Qidi/Tinmorry PETG-ECO" + ], "OFYEtXuk": [ "Snapmaker/Snapmaker J1 PA-CF" ], @@ -3263,6 +3128,7 @@ "Ginger Additive/Generic PETG", "InfiMech/Generic PETG", "LONGER/Generic PETG", + "Lulzbot/Generic PETG", "OrcaArena/Generic PETG", "OrcaFilamentLibrary/Generic PETG", "Peopoly/Generic PETG", @@ -3330,9 +3196,6 @@ "OFaEuvNF": [ "Anycubic/Anycubic PAHT-CF" ], - "OFaFNP2U": [ - "Sovol/Sovol SV07 PLA" - ], "OFaHjk1V": [ "Volumic/Volumic PC" ], @@ -3381,9 +3244,6 @@ "OFbh7HcA": [ "Eryone/Eryone PP-CF" ], - "OFbjtPQy": [ - "FLSun/FLSun T1 ASA" - ], "OFc3xdm9": [ "OrcaFilamentLibrary/Overture PLA", "Qidi/Overture PLA" @@ -3394,9 +3254,6 @@ "OFcBJQcC": [ "Snapmaker/Snapmaker Dual TPU High-Flow" ], - "OFcJ7AKd": [ - "Sovol/Sovol SV08 PLA" - ], "OFcJDtTx": [ "Artillery/Artillery TPU" ], @@ -3406,9 +3263,6 @@ "OFcVLpNA": [ "Flashforge/FusRock PAHT-GF" ], - "OFcdqaWI": [ - "Sovol/Sovol Zero PC" - ], "OFcfQk4h": [ "BBL/Overture Air PLA", "OrcaFilamentLibrary/Overture Air PLA" @@ -3470,9 +3324,6 @@ "OFe6sfXS": [ "Flashforge/FlashForge PC" ], - "OFe7Sx5B": [ - "Sovol/Sovol SV06 ACE PETG" - ], "OFe8tuNb": [ "Tiertime/Tiertime PA6-CF" ], @@ -3509,6 +3360,7 @@ "OFesA6rF": [ "Anker/Generic PLA Silk", "Creality/Generic PLA Silk", + "FLSun/Generic PLA Silk", "Flashforge/Generic PLA Silk", "OrcaArena/Generic PLA Silk", "OrcaFilamentLibrary/Generic PLA Silk", @@ -3760,7 +3612,6 @@ "Creality/eSUN PLA-LW" ], "OFi6PfUM": [ - "Chuanying/Chuanying PLA-SILK", "Chuanying/Generic PLA-Silk", "Creality/Generic PLA-Silk", "Flashforge/Generic PLA-Silk" @@ -3879,9 +3730,6 @@ "OFkR8E2c": [ "Prusa/Prusament PETG" ], - "OFkWaWRo": [ - "Sovol/Sovol SV06 Plus ACE TPU" - ], "OFkf1HHw": [ "Flashforge/Generic PLA-SILK" ], @@ -3914,9 +3762,6 @@ "OFkzr35f": [ "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" ], - "OFl7nOAf": [ - "Sovol/Sovol SV06 Plus ACE PETG" - ], "OFlBoEfL": [ "Snapmaker/Snapmaker J1 TPU High-Flow" ], @@ -3933,9 +3778,6 @@ "OFlSNkhc": [ "OrcaFilamentLibrary/Eolas Prints ASA" ], - "OFlXJxX1": [ - "Chuanying/Chuanying PETG" - ], "OFllmFhT": [ "Elegoo/Generic PETG PRO" ], @@ -4011,6 +3853,7 @@ ], "OFmpMwxS": [ "Creality/Generic PLA High Speed", + "FLSun/Generic PLA High Speed", "Flashforge/Generic PLA High Speed", "OrcaFilamentLibrary/Generic PLA High Speed", "Qidi/Generic PLA High Speed", @@ -4114,9 +3957,6 @@ "OFoiVqVM": [ "OrcaFilamentLibrary/Bambu PLA Basic" ], - "OFoqrHTw": [ - "FLSun/FLSun S1 PLA High Speed" - ], "OForhBi4": [ "Cubicon/Cubicon ABSk" ], @@ -4132,9 +3972,6 @@ "OFp9wdmf": [ "Eryone/Eryone PA-CF" ], - "OFpBV2Ma": [ - "Qidi/Tinmorry PETG-ECO" - ], "OFpBlrvY": [ "OrcaFilamentLibrary/Valment PLA Silk" ], @@ -4221,9 +4058,6 @@ "Elegoo/Elegoo ASA-CF", "OrcaFilamentLibrary/Elegoo ASA-CF" ], - "OFs1sNLz": [ - "Chuanying/Chuanying ABS" - ], "OFsB2lxm": [ "Elegoo/Elegoo PLA Matte", "OrcaFilamentLibrary/Elegoo PLA Matte" @@ -4343,9 +4177,6 @@ "OFuO0cAP": [ "OrcaArena/Arena PETG-CF" ], - "OFuUJyRx": [ - "FLSun/FLSun T1 PLA Silk" - ], "OFuUuIhR": [ "Elegoo/Elegoo PETG-CF", "OrcaFilamentLibrary/Elegoo PETG-CF" @@ -4410,6 +4241,9 @@ "Elegoo/Elegoo PLA", "OrcaFilamentLibrary/Elegoo PLA" ], + "OFvmwTZE": [ + "Snapmaker/Snapmaker TPU 95A" + ], "OFvrXuV7": [ "OrcaFilamentLibrary/PolyLite ASA" ], @@ -4417,7 +4251,6 @@ "Snapmaker/Fiberon PA12-CF10" ], "OFvxghTE": [ - "Chuanying/Chuanying HS PLA", "Chuanying/Generic HS PLA", "Flashforge/Generic HS PLA", "TwoTrees/Generic HS PLA" @@ -4505,9 +4338,6 @@ "OFy8tYJE": [ "Cubicon/Cubicon ABS-A100" ], - "OFyCToOV": [ - "Sovol/Sovol SV08 TPU" - ], "OFyFyLIp": [ "SeeMeCNC/SeeMeCNC TPU" ], @@ -4585,9 +4415,6 @@ ], "OFzyIxba": [ "OrcaFilamentLibrary/Bambu PVA" - ], - "OFzzmK2Q": [ - "FLSun/FLSun S1 ABS" ] }, "instantiated_with_id": [ @@ -4847,8 +4674,6 @@ "CONSTRUCT3D/Generic High Flow PETG @C1", "CONSTRUCT3D/Generic PETG @C1", "CONSTRUCT3D/Generic PLA @C1", - "Chuanying/Chuanying ABS @Chuanying X1 0.25 Nozzle", - "Chuanying/Chuanying PETG @Chuanying X1 0.25 Nozzle", "Chuanying/Generic ABS @Chuanying", "Chuanying/Generic ASA @Chuanying", "Chuanying/Generic HIPS @Chuanying", @@ -4877,7 +4702,6 @@ "CoLiDo/Generic PLA @CoLiDo X16", "CoLiDo/Generic TPU @CoLiDo DIY 4.0", "CoLiDo/Generic TPU @CoLiDo X16", - "Comgrow/Comgrow T300 PLA", "Comgrow/Generic ABS @Comgrow", "Comgrow/Generic PETG @Comgrow", "Comgrow/Generic PLA @Comgrow", @@ -5459,18 +5283,6 @@ "Eryone/Eryone PP-CF", "Eryone/Eryone Silk PLA", "Eryone/Eryone TPU", - "FLSun/FLSun S1 ABS", - "FLSun/FLSun S1 ASA", - "FLSun/FLSun S1 PETG", - "FLSun/FLSun S1 PLA High Speed", - "FLSun/FLSun S1 PLA Silk", - "FLSun/FLSun S1 TPU", - "FLSun/FLSun T1 ABS", - "FLSun/FLSun T1 ASA", - "FLSun/FLSun T1 PETG", - "FLSun/FLSun T1 PLA High Speed", - "FLSun/FLSun T1 PLA Silk", - "FLSun/FLSun T1 TPU", "FLSun/Generic ABS @FLSun", "FLSun/Generic ASA @FLSun", "FLSun/Generic PA @FLSun", @@ -6090,9 +5902,6 @@ "LONGER/Generic PETG @LONGER LK10 Plus", "LONGER/Generic PLA @LONGER LK10", "LONGER/Generic PLA @LONGER LK10 Plus", - "Lulzbot/Lulzbot 2.85mm ABS", - "Lulzbot/Lulzbot 2.85mm PETG", - "Lulzbot/Lulzbot 2.85mm PLA", "MagicMaker/Generic PEEK @MM", "OrcaArena/Generic PA @OrcaArena", "OrcaArena/Generic PA-CF @OrcaArena", @@ -6208,7 +6017,6 @@ "Peopoly/Peopoly Lancer PET-CF", "Peopoly/Peopoly Lancer PETG-C", "Peopoly/Peopoly Lancer PLA-C", - "Phrozen/Phrozen PLA @Phrozen Arco 0.4 nozzle", "Prusa/Generic ABS @Prusa CORE One", "Prusa/Generic ABS @Prusa CORE One 0.6", "Prusa/Generic ABS @Prusa CORE One 0.8", @@ -7029,29 +6837,9 @@ "Sovol/Generic PLA Silk @Sovol SV08 MAX", "Sovol/Polymaker PETG @Sovol SV08 MAX", "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol SV06 ACE ABS", - "Sovol/Sovol SV06 ACE PETG", - "Sovol/Sovol SV06 ACE PLA", - "Sovol/Sovol SV06 ACE TPU", - "Sovol/Sovol SV06 Plus ACE ABS", - "Sovol/Sovol SV06 Plus ACE PETG", - "Sovol/Sovol SV06 Plus ACE PLA", - "Sovol/Sovol SV06 Plus ACE TPU", - "Sovol/Sovol SV07 PLA", - "Sovol/Sovol SV08 ABS", - "Sovol/Sovol SV08 PETG", - "Sovol/Sovol SV08 PLA", - "Sovol/Sovol SV08 PLA @SV08 0.2 nozzle", - "Sovol/Sovol SV08 TPU", - "Sovol/Sovol Zero ABS", - "Sovol/Sovol Zero PC", - "Sovol/Sovol Zero PETG", "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic", "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk", "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Sovol/Sovol Zero TPU", "Tiertime/Generic ABS @Tiertime", "Tiertime/Generic ABS @Tiertime 300HS", "Tiertime/Generic ASA @Tiertime", @@ -7221,13 +7009,6 @@ ], "triple_exceptions": [], "triples": { - "OF016CJw": [ - [ - "Generic", - "ABS", - "Sovol SV08 ABS" - ] - ], "OF02UAVh": [ [ "Creality", @@ -7830,13 +7611,6 @@ "PolySonic PLA" ] ], - "OF67EdL5": [ - [ - "Generic", - "ABS", - "Sovol SV06 ACE ABS" - ] - ], "OF6ATsCF": [ [ "Snapmaker", @@ -7872,13 +7646,6 @@ "Generic PET" ] ], - "OF6O67Xk": [ - [ - "Generic", - "ABS", - "Lulzbot 2.85mm ABS" - ] - ], "OF6TuVAg": [ [ "Snapmaker", @@ -7886,13 +7653,6 @@ "Snapmaker J1 PVA" ] ], - "OF6VgL2U": [ - [ - "Generic", - "PLA", - "Phrozen PLA" - ] - ], "OF6kj4jI": [ [ "iQ Materials", @@ -7900,13 +7660,6 @@ "Fiberthree PACF Pro P2" ] ], - "OF6ooviO": [ - [ - "Generic", - "TPU", - "FLSun S1 TPU" - ] - ], "OF6rdQ6M": [ [ "Generic", @@ -7921,13 +7674,6 @@ "Flashforge PLA Pro" ] ], - "OF6zAVFj": [ - [ - "Generic", - "TPU", - "Sovol Zero TPU" - ] - ], "OF70zbGS": [ [ "Creality", @@ -7977,13 +7723,6 @@ "PolyLite J1 PLA" ] ], - "OF7VJMYM": [ - [ - "Generic", - "PLA", - "Sovol Zero PLA Basic" - ] - ], "OF7c9fln": [ [ "Anycubic", @@ -8068,13 +7807,6 @@ "Snapmaker J1 ABS Benchy" ] ], - "OF8eQjjt": [ - [ - "Generic", - "PETG", - "Lulzbot 2.85mm PETG" - ] - ], "OF8eaY7j": [ [ "Generic", @@ -8173,13 +7905,6 @@ "RatRig PunkFil PETG" ] ], - "OF9z5LZ9": [ - [ - "Generic", - "PETG", - "FLSun S1 PETG" - ] - ], "OFA026vt": [ [ "Orca Arena", @@ -8348,13 +8073,6 @@ "Generic EVA" ] ], - "OFCEA7Nt": [ - [ - "Generic", - "ABS", - "Sovol SV06 Plus ACE ABS" - ] - ], "OFCIUsWh": [ [ "Polymaker", @@ -8600,13 +8318,6 @@ "Flashforge PETG Basic" ] ], - "OFENzGSm": [ - [ - "Generic", - "TPU", - "FLSun T1 TPU" - ] - ], "OFEOnBj6": [ [ "Snapmaker", @@ -8929,13 +8640,6 @@ "FilAr PLA Blanco Antartida" ] ], - "OFHTVfaU": [ - [ - "Generic", - "PETG", - "Sovol Zero PETG" - ] - ], "OFHWSM21": [ [ "Polymaker", @@ -9006,13 +8710,6 @@ "Anycubic PLA Matte" ] ], - "OFIK0xFa": [ - [ - "Generic", - "ASA", - "FLSun S1 ASA" - ] - ], "OFIKZxPF": [ [ "Generic", @@ -9104,13 +8801,6 @@ "Arena ABS" ] ], - "OFJ80y1e": [ - [ - "Generic", - "PETG", - "FLSun T1 PETG" - ] - ], "OFJHBEGD": [ [ "DREMC", @@ -9139,13 +8829,6 @@ "FilAr PETG Cristal" ] ], - "OFJVFpJz": [ - [ - "Generic", - "PLA", - "Sovol Zero PLA Silk" - ] - ], "OFJWKoYG": [ [ "iQ Materials", @@ -9160,13 +8843,6 @@ "Generic TPU-90A" ] ], - "OFJfv07m": [ - [ - "Generic", - "TPU", - "Sovol SV06 ACE TPU" - ] - ], "OFJgijky": [ [ "Polymaker", @@ -9314,13 +8990,6 @@ "Panchroma PLA Marble" ] ], - "OFKo87c6": [ - [ - "Generic", - "TPU", - "Snapmaker TPU 95A" - ] - ], "OFKpQTJI": [ [ "Generic", @@ -9608,13 +9277,6 @@ "FilAr PETG Azul Boreal" ] ], - "OFNWcJsM": [ - [ - "Generic", - "PLA", - "Comgrow T300 PLA" - ] - ], "OFNWnx2c": [ [ "Generic", @@ -9622,20 +9284,6 @@ "Flashforge TPU-95A" ] ], - "OFNX8GI1": [ - [ - "Generic", - "ABS", - "Sovol Zero ABS" - ] - ], - "OFNZjrLo": [ - [ - "Generic", - "PLA", - "Sovol SV06 Plus ACE PLA" - ] - ], "OFNemJM6": [ [ "FilAr", @@ -9860,13 +9508,6 @@ "FilAr PLA Rosa Amaranto" ] ], - "OFPryWt5": [ - [ - "Generic", - "PLA", - "Lulzbot 2.85mm PLA" - ] - ], "OFQ1KzO8": [ [ "Snapmaker", @@ -9895,13 +9536,6 @@ "QIDI PETG Tough" ] ], - "OFQ9qnkd": [ - [ - "Generic", - "PLA", - "FLSun T1 PLA High Speed" - ] - ], "OFQEGL7z": [ [ "FlyingBear", @@ -10035,13 +9669,6 @@ "Anycubic PET-CF" ] ], - "OFRi7v0b": [ - [ - "Generic", - "PETG", - "Sovol SV08 PETG" - ] - ], "OFRiFnfQ": [ [ "Eolas Prints", @@ -10119,13 +9746,6 @@ "Panchroma PLA Silk" ] ], - "OFSStjay": [ - [ - "Generic", - "PLA", - "FLSun S1 PLA Silk" - ] - ], "OFSa39yP": [ [ "Snapmaker", @@ -10245,13 +9865,6 @@ "QIDI ASA" ] ], - "OFTvvox9": [ - [ - "Generic", - "PLA", - "Sovol SV06 ACE PLA" - ] - ], "OFU1zPxE": [ [ "Elegoo", @@ -10336,13 +9949,6 @@ "Elegoo PC" ] ], - "OFV0KrAG": [ - [ - "Generic", - "ABS", - "FLSun T1 ABS" - ] - ], "OFV5Q7j2": [ [ "Snapmaker", @@ -10644,6 +10250,13 @@ "Generic ABS" ] ], + "OFYE7YZw": [ + [ + "Tinmorry", + "PETG", + "Tinmorry PETG-ECO" + ] + ], "OFYEtXuk": [ [ "Snapmaker", @@ -10791,13 +10404,6 @@ "Anycubic PAHT-CF" ] ], - "OFaFNP2U": [ - [ - "Generic", - "PLA", - "Sovol SV07 PLA" - ] - ], "OFaHjk1V": [ [ "Volumic", @@ -10910,13 +10516,6 @@ "Eryone PP-CF" ] ], - "OFbjtPQy": [ - [ - "Generic", - "ASA", - "FLSun T1 ASA" - ] - ], "OFc3xdm9": [ [ "Overture", @@ -10938,13 +10537,6 @@ "Snapmaker Dual TPU High-Flow" ] ], - "OFcJ7AKd": [ - [ - "Generic", - "PLA", - "Sovol SV08 PLA" - ] - ], "OFcJDtTx": [ [ "Artillery", @@ -10966,13 +10558,6 @@ "FusRock PAHT-GF" ] ], - "OFcdqaWI": [ - [ - "Generic", - "PC", - "Sovol Zero PC" - ] - ], "OFcfQk4h": [ [ "Overture", @@ -11106,13 +10691,6 @@ "FlashForge PC" ] ], - "OFe7Sx5B": [ - [ - "Generic", - "PETG", - "Sovol SV06 ACE PETG" - ] - ], "OFe8tuNb": [ [ "Tiertime", @@ -11918,13 +11496,6 @@ "Prusament PETG" ] ], - "OFkWaWRo": [ - [ - "Generic", - "TPU", - "Sovol SV06 Plus ACE TPU" - ] - ], "OFkf1HHw": [ [ "Generic", @@ -11995,13 +11566,6 @@ "Eolas Prints PLA Antibacterial" ] ], - "OFl7nOAf": [ - [ - "Generic", - "PETG", - "Sovol SV06 Plus ACE PETG" - ] - ], "OFlBoEfL": [ [ "Snapmaker", @@ -12037,13 +11601,6 @@ "Eolas Prints ASA" ] ], - "OFlXJxX1": [ - [ - "Generic", - "PETG", - "Chuanying PETG" - ] - ], "OFllmFhT": [ [ "Generic", @@ -12401,13 +11958,6 @@ "Bambu PLA Basic" ] ], - "OFoqrHTw": [ - [ - "Generic", - "PLA", - "FLSun S1 PLA High Speed" - ] - ], "OForhBi4": [ [ "Cubicon", @@ -12443,13 +11993,6 @@ "Eryone PA-CF" ] ], - "OFpBV2Ma": [ - [ - "Generic", - "PETG", - "Tinmorry PETG-ECO" - ] - ], "OFpBlrvY": [ [ "Valment", @@ -12632,13 +12175,6 @@ "Elegoo ASA-CF" ] ], - "OFs1sNLz": [ - [ - "Generic", - "ABS", - "Chuanying ABS" - ] - ], "OFsB2lxm": [ [ "Elegoo", @@ -12898,13 +12434,6 @@ "Arena PETG-CF" ] ], - "OFuUJyRx": [ - [ - "Generic", - "PLA", - "FLSun T1 PLA Silk" - ] - ], "OFuUuIhR": [ [ "Elegoo", @@ -13045,6 +12574,13 @@ "Elegoo PLA" ] ], + "OFvmwTZE": [ + [ + "Snapmaker", + "TPU", + "Snapmaker TPU 95A" + ] + ], "OFvrXuV7": [ [ "Polymaker", @@ -13255,13 +12791,6 @@ "Cubicon ABS-A100" ] ], - "OFyCToOV": [ - [ - "Generic", - "TPU", - "Sovol SV08 TPU" - ] - ], "OFyFyLIp": [ [ "SeeMeCNC", @@ -13443,13 +12972,6 @@ "PVA", "Bambu PVA" ] - ], - "OFzzmK2Q": [ - [ - "Generic", - "ABS", - "FLSun S1 ABS" - ] ] } } From bee0df825ea6fcf3a96ead493354406acb07e371 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 1 Sep 2026 18:36:44 +0800 Subject: [PATCH 095/164] fix filament_vendor --- resources/profiles/Flashforge.json | 106 +- ...hforge ABS Basic @FF AD5M 0.25 nozzle.json | 4 +- ...hforge ABS Basic @FF AD5X 0.25 nozzle.json | 4 +- ...shforge ABS Basic @FF AD5X 0.6 nozzle.json | 5 +- ...shforge ABS Basic @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge ABS Basic @FF AD5X.json | 5 +- .../filament/Flashforge ABS Basic @FF C5.json | 5 +- .../Flashforge ABS Basic @FF C5P.json | 5 +- ...ashforge ABS Basic @FF G4 0.25 nozzle.json | 4 +- ...hforge ABS Basic @FF G4 0.6 HF nozzle.json | 5 +- ...lashforge ABS Basic @FF G4 0.6 nozzle.json | 5 +- ...hforge ABS Basic @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge ABS Basic @FF G4 HF.json | 5 +- .../filament/Flashforge ABS Basic @FF G4.json | 5 +- ...shforge ABS Basic @FF G4P 0.25 nozzle.json | 4 +- ...forge ABS Basic @FF G4P 0.6 HF nozzle.json | 5 +- ...ashforge ABS Basic @FF G4P 0.6 nozzle.json | 5 +- ...forge ABS Basic @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge ABS Basic @FF G4P HF.json | 5 +- .../Flashforge ABS Basic @FF G4P.json | 5 +- .../filament/Flashforge ABS Basic.json | 5 +- .../Flashforge ABS-CF @FF G4 0.6 nozzle.json | 5 +- .../filament/Flashforge ABS-CF @FF G4.json | 5 +- .../Flashforge ABS-CF @FF G4P 0.6 nozzle.json | 5 +- .../filament/Flashforge ABS-CF @FF G4P.json | 5 +- .../filament/Flashforge ABS-GF @FF C5.json | 5 +- .../filament/Flashforge ABS-GF @FF C5P.json | 5 +- .../Flashforge ASA @FF AD5M 0.25 Nozzle.json | 5 +- ...hforge ASA Basic @FF AD5M 0.25 nozzle.json | 5 +- ...hforge ASA Basic @FF AD5X 0.25 nozzle.json | 5 +- ...shforge ASA Basic @FF AD5X 0.6 nozzle.json | 5 +- ...shforge ASA Basic @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge ASA Basic @FF AD5X.json | 5 +- .../filament/Flashforge ASA Basic @FF C5.json | 5 +- .../Flashforge ASA Basic @FF C5P.json | 5 +- ...ashforge ASA Basic @FF G4 0.25 nozzle.json | 4 +- ...hforge ASA Basic @FF G4 0.6 HF nozzle.json | 5 +- ...lashforge ASA Basic @FF G4 0.6 nozzle.json | 5 +- ...hforge ASA Basic @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge ASA Basic @FF G4 HF.json | 5 +- .../filament/Flashforge ASA Basic @FF G4.json | 5 +- ...shforge ASA Basic @FF G4P 0.25 nozzle.json | 4 +- ...forge ASA Basic @FF G4P 0.6 HF nozzle.json | 5 +- ...ashforge ASA Basic @FF G4P 0.6 nozzle.json | 5 +- ...forge ASA Basic @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge ASA Basic @FF G4P HF.json | 5 +- .../Flashforge ASA Basic @FF G4P.json | 5 +- .../filament/Flashforge ASA Basic.json | 5 +- .../filament/Flashforge ASA-GF @FF C5.json | 5 +- .../filament/Flashforge ASA-GF @FF C5P.json | 5 +- .../filament/Flashforge HIPS @FF C5.json | 5 +- .../filament/Flashforge HIPS @FF C5P.json | 5 +- .../Flashforge HIPS @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge HIPS @FF G4 0.6 nozzle.json | 5 +- .../Flashforge HIPS @FF G4 0.8 HF nozzle.json | 5 +- .../filament/Flashforge HIPS @FF G4 HF.json | 5 +- .../filament/Flashforge HIPS @FF G4.json | 5 +- ...Flashforge HIPS @FF G4P 0.6 HF nozzle.json | 5 +- .../Flashforge HIPS @FF G4P 0.6 nozzle.json | 5 +- ...Flashforge HIPS @FF G4P 0.8 HF nozzle.json | 5 +- .../filament/Flashforge HIPS @FF G4P HF.json | 5 +- .../filament/Flashforge HIPS @FF G4P.json | 5 +- ...ashforge HS PETG @FF AD5M 0.25 nozzle.json | 4 +- ...ashforge HS PETG @FF AD5X 0.25 nozzle.json | 4 +- ...lashforge HS PETG @FF AD5X 0.6 nozzle.json | 5 +- ...lashforge HS PETG @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge HS PETG @FF AD5X.json | 5 +- .../filament/Flashforge HS PETG @FF C5.json | 5 +- .../filament/Flashforge HS PETG @FF C5P.json | 5 +- ...Flashforge HS PETG @FF G4 0.25 nozzle.json | 4 +- ...ashforge HS PETG @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge HS PETG @FF G4 0.6 nozzle.json | 5 +- ...ashforge HS PETG @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge HS PETG @FF G4 HF.json | 5 +- .../filament/Flashforge HS PETG @FF G4.json | 5 +- ...lashforge HS PETG @FF G4P 0.25 nozzle.json | 4 +- ...shforge HS PETG @FF G4P 0.6 HF nozzle.json | 5 +- ...Flashforge HS PETG @FF G4P 0.6 nozzle.json | 5 +- ...shforge HS PETG @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge HS PETG @FF G4P HF.json | 5 +- .../filament/Flashforge HS PETG @FF G4P.json | 5 +- .../filament/Flashforge HS PETG.json | 5 +- ...lashforge HS PLA @FF AD5M 0.25 Nozzle.json | 5 +- ...lashforge HS PLA @FF AD5X 0.25 nozzle.json | 4 +- ...Flashforge HS PLA @FF AD5X 0.6 nozzle.json | 5 +- ...Flashforge HS PLA @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge HS PLA @FF AD5X.json | 5 +- .../filament/Flashforge HS PLA @FF C5.json | 5 +- .../filament/Flashforge HS PLA @FF C5P.json | 5 +- .../Flashforge HS PLA @FF G4 0.25 nozzle.json | 4 +- ...lashforge HS PLA @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge HS PLA @FF G4 0.6 nozzle.json | 5 +- ...lashforge HS PLA @FF G4 0.8 HF nozzle.json | 5 +- .../filament/Flashforge HS PLA @FF G4 HF.json | 5 +- .../filament/Flashforge HS PLA @FF G4.json | 5 +- ...Flashforge HS PLA @FF G4P 0.25 nozzle.json | 4 +- ...ashforge HS PLA @FF G4P 0.6 HF nozzle.json | 5 +- .../Flashforge HS PLA @FF G4P 0.6 nozzle.json | 5 +- ...ashforge HS PLA @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge HS PLA @FF G4P HF.json | 5 +- .../filament/Flashforge HS PLA @FF G4P.json | 5 +- ... HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge HS PLA Burnt Ti @FF G4 HF.json | 5 +- ...HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json | 5 +- ...Flashforge HS PLA Burnt Ti @FF G4P HF.json | 5 +- ...orge HS PLA Burnt Ti@FF G4 0.6 nozzle.json | 5 +- ...e HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json | 6 +- ...rge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json | 5 +- ... HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json | 6 +- .../filament/Flashforge HS PLA.json | 5 +- .../Flashforge PA @FF G4 0.6 HF nozzle.json | 5 +- .../filament/Flashforge PA @FF G4 HF.json | 5 +- .../filament/Flashforge PA @FF G4.json | 5 +- .../Flashforge PA @FF G4P 0.6 HF nozzle.json | 5 +- .../filament/Flashforge PA @FF G4P HF.json | 5 +- .../filament/Flashforge PA @FF G4P.json | 5 +- .../filament/Flashforge PA-CF @FF C5.json | 5 +- .../filament/Flashforge PA-CF @FF C5P.json | 5 +- .../filament/Flashforge PA-CF @FF G4.json | 5 +- .../filament/Flashforge PA-CF @FF G4P.json | 5 +- .../filament/Flashforge PAHT-CF @FF C5.json | 83 -- .../filament/Flashforge PAHT-CF @FF C5P.json | 89 -- .../filament/Flashforge PAHT-CF @FF G4.json | 108 -- .../filament/Flashforge PAHT-CF @FF G4P.json | 108 -- ...> Flashforge PC @FF G4 0.6 HF nozzle.json} | 11 +- ...n => Flashforge PC @FF G4 0.6 nozzle.json} | 11 +- ...> Flashforge PC @FF G4 0.8 HF nozzle.json} | 11 +- ... Flashforge PC @FF G4P 0.6 HF nozzle.json} | 11 +- ... => Flashforge PC @FF G4P 0.6 nozzle.json} | 11 +- ... Flashforge PC @FF G4P 0.8 HF nozzle.json} | 11 +- ...forge PETG Basic @FF AD5M 0.25 nozzle.json | 4 +- .../filament/Flashforge PETG Basic.json | 5 +- ...shforge PETG Pro @FF AD5M 0.25 nozzle.json | 4 +- ...shforge PETG Pro @FF AD5X 0.25 nozzle.json | 4 +- ...ashforge PETG Pro @FF AD5X 0.6 nozzle.json | 5 +- ...ashforge PETG Pro @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PETG Pro @FF AD5X.json | 5 +- .../filament/Flashforge PETG Pro @FF C5.json | 5 +- .../filament/Flashforge PETG Pro @FF C5P.json | 5 +- ...lashforge PETG Pro @FF G4 0.25 nozzle.json | 4 +- ...shforge PETG Pro @FF G4 0.6 HF nozzle.json | 5 +- ...Flashforge PETG Pro @FF G4 0.6 nozzle.json | 5 +- ...shforge PETG Pro @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PETG Pro @FF G4 HF.json | 5 +- .../filament/Flashforge PETG Pro @FF G4.json | 5 +- ...ashforge PETG Pro @FF G4P 0.25 nozzle.json | 4 +- ...hforge PETG Pro @FF G4P 0.6 HF nozzle.json | 5 +- ...lashforge PETG Pro @FF G4P 0.6 nozzle.json | 5 +- ...hforge PETG Pro @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PETG Pro @FF G4P HF.json | 5 +- .../filament/Flashforge PETG Pro @FF G4P.json | 5 +- .../filament/Flashforge PETG Pro.json | 5 +- ...PETG Transparent @FF AD5M 0.25 nozzle.json | 4 +- ...PETG Transparent @FF AD5X 0.25 nozzle.json | 4 +- ... PETG Transparent @FF AD5X 0.6 nozzle.json | 5 +- ... PETG Transparent @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PETG Transparent @FF AD5X.json | 5 +- .../Flashforge PETG Transparent @FF C5.json | 5 +- .../Flashforge PETG Transparent @FF C5P.json | 5 +- ...e PETG Transparent @FF G4 0.25 nozzle.json | 4 +- ...PETG Transparent @FF G4 0.6 HF nozzle.json | 5 +- ...ge PETG Transparent @FF G4 0.6 nozzle.json | 5 +- ...PETG Transparent @FF G4 0.8 HF nozzle.json | 5 +- ...Flashforge PETG Transparent @FF G4 HF.json | 5 +- .../Flashforge PETG Transparent @FF G4.json | 5 +- ... PETG Transparent @FF G4P 0.25 nozzle.json | 4 +- ...ETG Transparent @FF G4P 0.6 HF nozzle.json | 5 +- ...e PETG Transparent @FF G4P 0.6 nozzle.json | 5 +- ...ETG Transparent @FF G4P 0.8 HF nozzle.json | 5 +- ...lashforge PETG Transparent @FF G4P HF.json | 5 +- .../Flashforge PETG Transparent @FF G4P.json | 5 +- .../filament/Flashforge PETG Transparent.json | 5 +- ...lashforge PETG-CF @FF AD5X 0.6 nozzle.json | 5 +- ...lashforge PETG-CF @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge PETG-CF @FF AD5X.json | 5 +- .../filament/Flashforge PETG-CF @FF C5.json | 5 +- .../filament/Flashforge PETG-CF @FF C5P.json | 5 +- .../Flashforge PETG-CF @FF G4 0.6 nozzle.json | 5 +- .../filament/Flashforge PETG-CF @FF G4.json | 5 +- ...Flashforge PETG-CF @FF G4P 0.6 nozzle.json | 5 +- .../filament/Flashforge PETG-CF @FF G4P.json | 5 +- .../filament/Flashforge PETG-CF.json | 5 +- ...hforge PLA Basic @FF AD5M 0.25 nozzle.json | 4 +- ...hforge PLA Basic @FF AD5X 0.25 nozzle.json | 4 +- ...shforge PLA Basic @FF AD5X 0.6 nozzle.json | 5 +- ...shforge PLA Basic @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Basic @FF AD5X.json | 5 +- .../filament/Flashforge PLA Basic @FF C5.json | 5 +- .../Flashforge PLA Basic @FF C5P.json | 5 +- ...ashforge PLA Basic @FF G4 0.25 nozzle.json | 4 +- ...hforge PLA Basic @FF G4 0.6 HF nozzle.json | 5 +- ...lashforge PLA Basic @FF G4 0.6 nozzle.json | 5 +- ...hforge PLA Basic @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Basic @FF G4 HF.json | 5 +- .../filament/Flashforge PLA Basic @FF G4.json | 5 +- ...shforge PLA Basic @FF G4P 0.25 nozzle.json | 4 +- ...forge PLA Basic @FF G4P 0.6 HF nozzle.json | 5 +- ...ashforge PLA Basic @FF G4P 0.6 nozzle.json | 5 +- ...forge PLA Basic @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Basic @FF G4P HF.json | 5 +- .../Flashforge PLA Basic @FF G4P.json | 5 +- .../filament/Flashforge PLA Basic.json | 5 +- ...hforge PLA Buint Ti @FF G4 0.8 nozzle.json | 93 -- ...forge PLA Buint Ti @FF G4P 0.8 nozzle.json | 93 -- ...PLA Color Change @FF AD5M 0.25 nozzle.json | 4 +- ...PLA Color Change @FF AD5X 0.25 nozzle.json | 4 +- ... PLA Color Change @FF AD5X 0.6 nozzle.json | 5 +- ... PLA Color Change @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Color Change @FF AD5X.json | 5 +- .../Flashforge PLA Color Change @FF C5.json | 5 +- .../Flashforge PLA Color Change @FF C5P.json | 5 +- ...e PLA Color Change @FF G4 0.25 nozzle.json | 4 +- ...PLA Color Change @FF G4 0.6 HF nozzle.json | 5 +- ...ge PLA Color Change @FF G4 0.6 nozzle.json | 5 +- ...PLA Color Change @FF G4 0.8 HF nozzle.json | 5 +- ...Flashforge PLA Color Change @FF G4 HF.json | 5 +- .../Flashforge PLA Color Change @FF G4.json | 5 +- ... PLA Color Change @FF G4P 0.25 nozzle.json | 4 +- ...LA Color Change @FF G4P 0.6 HF nozzle.json | 5 +- ...e PLA Color Change @FF G4P 0.6 nozzle.json | 5 +- ...LA Color Change @FF G4P 0.8 HF nozzle.json | 5 +- ...lashforge PLA Color Change @FF G4P HF.json | 5 +- .../Flashforge PLA Color Change @FF G4P.json | 5 +- .../filament/Flashforge PLA Color Change.json | 5 +- ...forge PLA Galaxy @FF AD5M 0.25 nozzle.json | 4 +- ...forge PLA Galaxy @FF AD5X 0.25 nozzle.json | 4 +- ...hforge PLA Galaxy @FF AD5X 0.6 nozzle.json | 5 +- ...hforge PLA Galaxy @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Galaxy @FF AD5X.json | 5 +- .../Flashforge PLA Galaxy @FF C5.json | 5 +- .../Flashforge PLA Galaxy @FF C5P.json | 5 +- ...shforge PLA Galaxy @FF G4 0.25 nozzle.json | 4 +- ...forge PLA Galaxy @FF G4 0.6 HF nozzle.json | 5 +- ...ashforge PLA Galaxy @FF G4 0.6 nozzle.json | 5 +- ...forge PLA Galaxy @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Galaxy @FF G4 HF.json | 5 +- .../Flashforge PLA Galaxy @FF G4.json | 5 +- ...hforge PLA Galaxy @FF G4P 0.25 nozzle.json | 4 +- ...orge PLA Galaxy @FF G4P 0.6 HF nozzle.json | 5 +- ...shforge PLA Galaxy @FF G4P 0.6 nozzle.json | 5 +- ...orge PLA Galaxy @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Galaxy @FF G4P HF.json | 5 +- .../Flashforge PLA Galaxy @FF G4P.json | 5 +- .../filament/Flashforge PLA Galaxy.json | 5 +- ...rge PLA Luminous @FF AD5M 0.25 nozzle.json | 4 +- ...rge PLA Luminous @FF AD5X 0.25 nozzle.json | 4 +- ...orge PLA Luminous @FF AD5X 0.6 nozzle.json | 5 +- ...orge PLA Luminous @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Luminous @FF AD5X.json | 5 +- .../Flashforge PLA Luminous @FF C5.json | 5 +- .../Flashforge PLA Luminous @FF C5P.json | 5 +- ...forge PLA Luminous @FF G4 0.25 nozzle.json | 4 +- ...rge PLA Luminous @FF G4 0.6 HF nozzle.json | 5 +- ...rge PLA Luminous @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Luminous @FF G4 HF.json | 5 +- .../Flashforge PLA Luminous @FF G4.json | 5 +- ...orge PLA Luminous @FF G4P 0.25 nozzle.json | 4 +- ...ge PLA Luminous @FF G4P 0.6 HF nozzle.json | 5 +- ...ge PLA Luminous @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Luminous @FF G4P HF.json | 5 +- .../Flashforge PLA Luminous @FF G4P.json | 5 +- .../filament/Flashforge PLA Luminous.json | 5 +- ...hforge PLA Matte @FF AD5M 0.25 nozzle.json | 4 +- ...hforge PLA Matte @FF AD5X 0.25 nozzle.json | 4 +- ...shforge PLA Matte @FF AD5X 0.6 nozzle.json | 5 +- ...shforge PLA Matte @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Matte @FF AD5X.json | 5 +- ....json => Flashforge PLA Matte @FF C5.json} | 12 +- ...json => Flashforge PLA Matte @FF C5P.json} | 12 +- ...ashforge PLA Matte @FF G4 0.25 nozzle.json | 4 +- ...hforge PLA Matte @FF G4 0.6 HF nozzle.json | 5 +- ...lashforge PLA Matte @FF G4 0.6 nozzle.json | 5 +- ...hforge PLA Matte @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Matte @FF G4 HF.json | 5 +- .../filament/Flashforge PLA Matte @FF G4.json | 5 +- ...shforge PLA Matte @FF G4P 0.25 nozzle.json | 4 +- ...forge PLA Matte @FF G4P 0.6 HF nozzle.json | 5 +- ...ashforge PLA Matte @FF G4P 0.6 nozzle.json | 5 +- ...forge PLA Matte @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Matte @FF G4P HF.json | 5 +- .../Flashforge PLA Matte @FF G4P.json | 5 +- .../filament/Flashforge PLA Matte.json | 5 +- ...hforge PLA Metal @FF AD5M 0.25 nozzle.json | 4 +- ...hforge PLA Metal @FF AD5X 0.25 nozzle.json | 4 +- ...shforge PLA Metal @FF AD5X 0.6 nozzle.json | 5 +- ...shforge PLA Metal @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Metal @FF AD5X.json | 5 +- ....json => Flashforge PLA Metal @FF C5.json} | 12 +- ...json => Flashforge PLA Metal @FF C5P.json} | 12 +- ...ashforge PLA Metal @FF G4 0.25 nozzle.json | 4 +- ...hforge PLA Metal @FF G4 0.6 HF nozzle.json | 5 +- ...lashforge PLA Metal @FF G4 0.6 nozzle.json | 5 +- ...hforge PLA Metal @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Metal @FF G4 HF.json | 5 +- .../filament/Flashforge PLA Metal @FF G4.json | 5 +- ...shforge PLA Metal @FF G4P 0.25 nozzle.json | 4 +- ...forge PLA Metal @FF G4P 0.6 HF nozzle.json | 5 +- ...ashforge PLA Metal @FF G4P 0.6 nozzle.json | 5 +- ...forge PLA Metal @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Metal @FF G4P HF.json | 5 +- .../Flashforge PLA Metal @FF G4P.json | 5 +- .../filament/Flashforge PLA Metal.json | 5 +- ...ashforge PLA Pro @FF AD5M 0.25 nozzle.json | 4 +- ...ashforge PLA Pro @FF AD5X 0.25 nozzle.json | 4 +- ...lashforge PLA Pro @FF AD5X 0.6 nozzle.json | 5 +- ...lashforge PLA Pro @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge PLA Pro @FF AD5X.json | 5 +- ...C5.json => Flashforge PLA Pro @FF C5.json} | 12 +- ...P.json => Flashforge PLA Pro @FF C5P.json} | 12 +- ...Flashforge PLA Pro @FF G4 0.25 nozzle.json | 4 +- ...ashforge PLA Pro @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge PLA Pro @FF G4 0.6 nozzle.json | 5 +- ...ashforge PLA Pro @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Pro @FF G4 HF.json | 5 +- .../filament/Flashforge PLA Pro @FF G4.json | 5 +- ...lashforge PLA Pro @FF G4P 0.25 nozzle.json | 4 +- ...shforge PLA Pro @FF G4P 0.6 HF nozzle.json | 5 +- ...Flashforge PLA Pro @FF G4P 0.6 nozzle.json | 5 +- ...shforge PLA Pro @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Pro @FF G4P HF.json | 5 +- .../filament/Flashforge PLA Pro @FF G4P.json | 5 +- .../filament/Flashforge PLA Pro.json | 5 +- ...shforge PLA Silk @FF AD5M 0.25 nozzle.json | 5 +- ...shforge PLA Silk @FF AD5X 0.25 nozzle.json | 4 +- ...ashforge PLA Silk @FF AD5X 0.6 nozzle.json | 5 +- ...ashforge PLA Silk @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Silk @FF AD5X.json | 5 +- .../filament/Flashforge PLA Silk @FF C5.json | 5 +- .../filament/Flashforge PLA Silk @FF C5P.json | 5 +- ...lashforge PLA Silk @FF G4 0.25 nozzle.json | 4 +- ...shforge PLA Silk @FF G4 0.6 HF nozzle.json | 5 +- ...Flashforge PLA Silk @FF G4 0.6 nozzle.json | 5 +- ...shforge PLA Silk @FF G4 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Silk @FF G4 HF.json | 5 +- .../filament/Flashforge PLA Silk @FF G4.json | 5 +- ...ashforge PLA Silk @FF G4P 0.25 nozzle.json | 4 +- ...hforge PLA Silk @FF G4P 0.6 HF nozzle.json | 5 +- ...lashforge PLA Silk @FF G4P 0.6 nozzle.json | 5 +- ...hforge PLA Silk @FF G4P 0.8 HF nozzle.json | 5 +- .../Flashforge PLA Silk @FF G4P HF.json | 5 +- .../filament/Flashforge PLA Silk @FF G4P.json | 5 +- .../filament/Flashforge PLA Silk.json | 5 +- ...orge PLA Sparkle @FF AD5M 0.25 nozzle.json | 4 +- ...orge PLA Sparkle @FF AD5X 0.25 nozzle.json | 4 +- ...forge PLA Sparkle @FF AD5X 0.6 nozzle.json | 5 +- ...forge PLA Sparkle @FF AD5X 0.8 nozzle.json | 5 +- .../Flashforge PLA Sparkle @FF AD5X.json | 5 +- ...hforge PLA Sparkle @FF G4 0.25 nozzle.json | 4 +- ...orge PLA Sparkle @FF G4 0.6 HF nozzle.json | 5 +- ...shforge PLA Sparkle @FF G4 0.6 nozzle.json | 5 +- .../Flashforge PLA Sparkle @FF G4 HF.json | 5 +- .../Flashforge PLA Sparkle @FF G4.json | 5 +- ...forge PLA Sparkle @FF G4P 0.25 nozzle.json | 4 +- ...rge PLA Sparkle @FF G4P 0.6 HF nozzle.json | 5 +- ...hforge PLA Sparkle @FF G4P 0.6 nozzle.json | 5 +- .../Flashforge PLA Sparkle @FF G4P HF.json | 5 +- .../Flashforge PLA Sparkle @FF G4P.json | 5 +- .../filament/Flashforge PLA Sparkle.json | 5 +- ...Flashforge PLA-CF @FF AD5X 0.6 nozzle.json | 5 +- ...Flashforge PLA-CF @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge PLA-CF @FF AD5X.json | 5 +- .../filament/Flashforge PLA-CF @FF C5.json | 5 +- .../filament/Flashforge PLA-CF @FF C5P.json | 5 +- .../Flashforge PLA-CF @FF G4 0.6 nozzle.json | 5 +- .../filament/Flashforge PLA-CF @FF G4.json | 5 +- .../Flashforge PLA-CF @FF G4P 0.6 nozzle.json | 5 +- .../filament/Flashforge PLA-CF @FF G4P.json | 5 +- .../filament/Flashforge PLA-CF.json | 5 +- ...shforge PLA-SILK @FF AD5M 0.25 Nozzle.json | 5 +- ... Flashforge PPS @FF G4 0.6 HF nozzle.json} | 11 +- ... => Flashforge PPS @FF G4 0.6 nozzle.json} | 11 +- ... Flashforge PPS @FF G4 0.8 HF nozzle.json} | 11 +- .../filament/Flashforge PPS @FF G4.json | 5 +- ...Flashforge PPS @FF G4P 0.6 HF nozzle.json} | 11 +- ...=> Flashforge PPS @FF G4P 0.6 nozzle.json} | 11 +- ...Flashforge PPS @FF G4P 0.8 HF nozzle.json} | 11 +- .../filament/Flashforge PPS @FF G4P.json | 5 +- ... Flashforge PPS-CF @FF G4 0.6 nozzle.json} | 11 +- ...Flashforge PPS-CF @FF G4P 0.6 nozzle.json} | 11 +- .../filament/Flashforge PVA @FF C5.json | 5 +- .../filament/Flashforge PVA @FF C5P.json | 5 +- ...ashforge TPU 65D @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge TPU 65D @FF G4 0.6 nozzle.json | 5 +- ...ashforge TPU 65D @FF G4 0.8 HF nozzle.json | 5 +- ...shforge TPU 65D @FF G4P 0.6 HF nozzle.json | 5 +- ...Flashforge TPU 65D @FF G4P 0.6 nozzle.json | 5 +- ...shforge TPU 65D @FF G4P 0.8 HF nozzle.json | 5 +- ...lashforge TPU 95A @FF AD5X 0.6 nozzle.json | 5 +- ...lashforge TPU 95A @FF AD5X 0.8 nozzle.json | 5 +- .../filament/Flashforge TPU 95A @FF AD5X.json | 5 +- ...ashforge TPU 95A @FF G4 0.6 HF nozzle.json | 5 +- .../Flashforge TPU 95A @FF G4 0.6 nozzle.json | 5 +- ...ashforge TPU 95A @FF G4 0.8 HF nozzle.json | 5 +- .../filament/Flashforge TPU 95A @FF G4.json | 5 +- ...shforge TPU 95A @FF G4P 0.6 HF nozzle.json | 5 +- ...Flashforge TPU 95A @FF G4P 0.6 nozzle.json | 5 +- ...shforge TPU 95A @FF G4P 0.8 HF nozzle.json | 5 +- .../filament/Flashforge TPU 95A @FF G4P.json | 5 +- .../filament/Flashforge TPU 95A.json | 5 +- .../filament/Flashforge TPU-64D @FF C5.json | 5 +- .../filament/Flashforge TPU-64D @FF C5P.json | 5 +- .../filament/Flashforge TPU-90A @FF C5.json | 5 +- .../filament/Flashforge TPU-90A @FF C5P.json | 5 +- .../filament/Flashforge TPU-95A @FF C5.json | 5 +- .../filament/Flashforge TPU-95A @FF C5P.json | 5 +- .../filament/FusRock PAHT-CF @FF C5.json | 1 + .../filament/FusRock PAHT-CF @FF C5P.json | 1 + .../filament/FusRock PAHT-CF @FF G4.json | 1 + .../filament/FusRock PAHT-CF @FF G4P.json | 1 + resources/profiles/Ratrig.json | 26 +- ...son => Generic ABS BigNozzle @RatRig.json} | 7 +- ...son => Generic ASA BigNozzle @RatRig.json} | 7 +- ...on => Generic PCTG BigNozzle @RatRig.json} | 7 +- ...on => Generic PETG BigNozzle @RatRig.json} | 7 +- ...son => Generic PLA BigNozzle @RatRig.json} | 7 +- ...son => Generic TPU BigNozzle @RatRig.json} | 7 +- resources/profiles/retired_filament_ids.json | 276 +++++ scripts/filament_id_snapshot.json | 946 ++++++++---------- 418 files changed, 2321 insertions(+), 1714 deletions(-) delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4 0.6 HF nozzle.json => Flashforge PC @FF G4 0.6 HF nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4 0.6 nozzle.json => Flashforge PC @FF G4 0.6 nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4 0.8 HF nozzle.json => Flashforge PC @FF G4 0.8 HF nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4P 0.6 HF nozzle.json => Flashforge PC @FF G4P 0.6 HF nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4P 0.6 nozzle.json => Flashforge PC @FF G4P 0.6 nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PC @FF G4P 0.8 HF nozzle.json => Flashforge PC @FF G4P 0.8 HF nozzle.json} (85%) delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json delete mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json rename resources/profiles/Flashforge/filament/{Flashforge PLA Pro @FF C5.json => Flashforge PLA Matte @FF C5.json} (82%) rename resources/profiles/Flashforge/filament/{Flashforge PLA Matte @FF C5P.json => Flashforge PLA Matte @FF C5P.json} (80%) rename resources/profiles/Flashforge/filament/{Flashforge PLA Metal @FF C5.json => Flashforge PLA Metal @FF C5.json} (81%) rename resources/profiles/Flashforge/filament/{Flashforge PLA Metal @FF C5P.json => Flashforge PLA Metal @FF C5P.json} (80%) rename resources/profiles/Flashforge/filament/{Flashforge PLA Matte @FF C5.json => Flashforge PLA Pro @FF C5.json} (82%) rename resources/profiles/Flashforge/filament/{Flashforge PLA Pro @FF C5P.json => Flashforge PLA Pro @FF C5P.json} (81%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4 0.6 HF nozzle.json => Flashforge PPS @FF G4 0.6 HF nozzle.json} (86%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4 0.6 nozzle.json => Flashforge PPS @FF G4 0.6 nozzle.json} (87%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4 0.8 HF nozzle.json => Flashforge PPS @FF G4 0.8 HF nozzle.json} (86%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4P 0.6 HF nozzle.json => Flashforge PPS @FF G4P 0.6 HF nozzle.json} (86%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4P 0.6 nozzle.json => Flashforge PPS @FF G4P 0.6 nozzle.json} (87%) rename resources/profiles/Flashforge/filament/{FlashForge PPS @FF G4P 0.8 HF nozzle.json => Flashforge PPS @FF G4P 0.8 HF nozzle.json} (86%) rename resources/profiles/Flashforge/filament/{FlashForge PPS-CF @FF G4 0.6 nozzle.json => Flashforge PPS-CF @FF G4 0.6 nozzle.json} (85%) rename resources/profiles/Flashforge/filament/{FlashForge PPS-CF @FF G4P 0.6 nozzle.json => Flashforge PPS-CF @FF G4P 0.6 nozzle.json} (85%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle ABS.json => Generic ABS BigNozzle @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle ASA.json => Generic ASA BigNozzle @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle PCTG.json => Generic PCTG BigNozzle @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle PETG.json => Generic PETG BigNozzle @RatRig.json} (93%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle PLA.json => Generic PLA BigNozzle @RatRig.json} (92%) rename resources/profiles/Ratrig/filament/{RatRig BigNozzle TPU.json => Generic TPU BigNozzle @RatRig.json} (92%) diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index 63c09f65af..11b86ecc8d 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.04.00.05", + "version": "02.04.00.06", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ @@ -1237,14 +1237,6 @@ "name": "Flashforge PA-CF @FF G4P", "sub_path": "filament/Flashforge PA-CF @FF G4P.json" }, - { - "name": "Flashforge PAHT-CF @FF G4", - "sub_path": "filament/Flashforge PAHT-CF @FF G4.json" - }, - { - "name": "Flashforge PAHT-CF @FF G4P", - "sub_path": "filament/Flashforge PAHT-CF @FF G4P.json" - }, { "name": "Flashforge PLA-CF", "sub_path": "filament/Flashforge PLA-CF.json" @@ -1898,36 +1890,36 @@ "sub_path": "filament/FusRock/FusRock PET-GF.json" }, { - "name": "FlashForge PPS @FF G4 0.6 HF nozzle", - "sub_path": "filament/FlashForge PPS @FF G4 0.6 HF nozzle.json" + "name": "Flashforge PPS @FF G4 0.6 HF nozzle", + "sub_path": "filament/Flashforge PPS @FF G4 0.6 HF nozzle.json" }, { - "name": "FlashForge PPS @FF G4 0.6 nozzle", - "sub_path": "filament/FlashForge PPS @FF G4 0.6 nozzle.json" + "name": "Flashforge PPS @FF G4 0.6 nozzle", + "sub_path": "filament/Flashforge PPS @FF G4 0.6 nozzle.json" }, { - "name": "FlashForge PPS @FF G4 0.8 HF nozzle", - "sub_path": "filament/FlashForge PPS @FF G4 0.8 HF nozzle.json" + "name": "Flashforge PPS @FF G4 0.8 HF nozzle", + "sub_path": "filament/Flashforge PPS @FF G4 0.8 HF nozzle.json" }, { - "name": "FlashForge PPS @FF G4P 0.6 HF nozzle", - "sub_path": "filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json" + "name": "Flashforge PPS @FF G4P 0.6 HF nozzle", + "sub_path": "filament/Flashforge PPS @FF G4P 0.6 HF nozzle.json" }, { - "name": "FlashForge PPS @FF G4P 0.6 nozzle", - "sub_path": "filament/FlashForge PPS @FF G4P 0.6 nozzle.json" + "name": "Flashforge PPS @FF G4P 0.6 nozzle", + "sub_path": "filament/Flashforge PPS @FF G4P 0.6 nozzle.json" }, { - "name": "FlashForge PPS @FF G4P 0.8 HF nozzle", - "sub_path": "filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json" + "name": "Flashforge PPS @FF G4P 0.8 HF nozzle", + "sub_path": "filament/Flashforge PPS @FF G4P 0.8 HF nozzle.json" }, { - "name": "FlashForge PPS-CF @FF G4 0.6 nozzle", - "sub_path": "filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json" + "name": "Flashforge PPS-CF @FF G4 0.6 nozzle", + "sub_path": "filament/Flashforge PPS-CF @FF G4 0.6 nozzle.json" }, { - "name": "FlashForge PPS-CF @FF G4P 0.6 nozzle", - "sub_path": "filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json" + "name": "Flashforge PPS-CF @FF G4P 0.6 nozzle", + "sub_path": "filament/Flashforge PPS-CF @FF G4P 0.6 nozzle.json" }, { "name": "FusRock PET @FF G4P 0.8 HF nozzle", @@ -1966,28 +1958,28 @@ "sub_path": "filament/Generic PET @FF G4P 0.8 HF nozzle.json" }, { - "name": "FlashForge PC @FF G4 0.6 HF nozzle", - "sub_path": "filament/FlashForge PC @FF G4 0.6 HF nozzle.json" + "name": "Flashforge PC @FF G4 0.6 HF nozzle", + "sub_path": "filament/Flashforge PC @FF G4 0.6 HF nozzle.json" }, { - "name": "FlashForge PC @FF G4 0.6 nozzle", - "sub_path": "filament/FlashForge PC @FF G4 0.6 nozzle.json" + "name": "Flashforge PC @FF G4 0.6 nozzle", + "sub_path": "filament/Flashforge PC @FF G4 0.6 nozzle.json" }, { - "name": "FlashForge PC @FF G4 0.8 HF nozzle", - "sub_path": "filament/FlashForge PC @FF G4 0.8 HF nozzle.json" + "name": "Flashforge PC @FF G4 0.8 HF nozzle", + "sub_path": "filament/Flashforge PC @FF G4 0.8 HF nozzle.json" }, { - "name": "FlashForge PC @FF G4P 0.6 HF nozzle", - "sub_path": "filament/FlashForge PC @FF G4P 0.6 HF nozzle.json" + "name": "Flashforge PC @FF G4P 0.6 HF nozzle", + "sub_path": "filament/Flashforge PC @FF G4P 0.6 HF nozzle.json" }, { - "name": "FlashForge PC @FF G4P 0.6 nozzle", - "sub_path": "filament/FlashForge PC @FF G4P 0.6 nozzle.json" + "name": "Flashforge PC @FF G4P 0.6 nozzle", + "sub_path": "filament/Flashforge PC @FF G4P 0.6 nozzle.json" }, { - "name": "FlashForge PC @FF G4P 0.8 HF nozzle", - "sub_path": "filament/FlashForge PC @FF G4P 0.8 HF nozzle.json" + "name": "Flashforge PC @FF G4P 0.8 HF nozzle", + "sub_path": "filament/Flashforge PC @FF G4P 0.8 HF nozzle.json" }, { "name": "FusRock PAHT @FF G4 0.6 HF nozzle", @@ -2117,14 +2109,6 @@ "name": "Flashforge PLA Basic @FF G4P 0.8 HF nozzle", "sub_path": "filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json" }, - { - "name": "Flashforge PLA Buint Ti @FF G4 0.8 nozzle", - "sub_path": "filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json" - }, - { - "name": "Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", - "sub_path": "filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json" - }, { "name": "Flashforge PLA Color Change @FF G4 0.6 HF nozzle", "sub_path": "filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json" @@ -2569,14 +2553,6 @@ "name": "Flashforge PA-CF @FF C5P", "sub_path": "filament/Flashforge PA-CF @FF C5P.json" }, - { - "name": "Flashforge PAHT-CF @FF C5", - "sub_path": "filament/Flashforge PAHT-CF @FF C5.json" - }, - { - "name": "Flashforge PAHT-CF @FF C5P", - "sub_path": "filament/Flashforge PAHT-CF @FF C5P.json" - }, { "name": "Flashforge PET-CF @FF C5", "sub_path": "filament/Flashforge PET-CF @FF C5.json" @@ -2610,28 +2586,28 @@ "sub_path": "filament/Flashforge PETG-CF @FF C5P.json" }, { - "name": "Flashforge PLA Matte @FF C5", - "sub_path": "filament/Flashforge PLA Matte @FF C5.json" + "name": "Flashforge PLA Matte @FF C5", + "sub_path": "filament/Flashforge PLA Matte @FF C5.json" }, { - "name": "Flashforge PLA Matte @FF C5P", - "sub_path": "filament/Flashforge PLA Matte @FF C5P.json" + "name": "Flashforge PLA Matte @FF C5P", + "sub_path": "filament/Flashforge PLA Matte @FF C5P.json" }, { - "name": "Flashforge PLA Metal @FF C5", - "sub_path": "filament/Flashforge PLA Metal @FF C5.json" + "name": "Flashforge PLA Metal @FF C5", + "sub_path": "filament/Flashforge PLA Metal @FF C5.json" }, { - "name": "Flashforge PLA Metal @FF C5P", - "sub_path": "filament/Flashforge PLA Metal @FF C5P.json" + "name": "Flashforge PLA Metal @FF C5P", + "sub_path": "filament/Flashforge PLA Metal @FF C5P.json" }, { - "name": "Flashforge PLA Pro @FF C5", - "sub_path": "filament/Flashforge PLA Pro @FF C5.json" + "name": "Flashforge PLA Pro @FF C5", + "sub_path": "filament/Flashforge PLA Pro @FF C5.json" }, { - "name": "Flashforge PLA Pro @FF C5P", - "sub_path": "filament/Flashforge PLA Pro @FF C5P.json" + "name": "Flashforge PLA Pro @FF C5P", + "sub_path": "filament/Flashforge PLA Pro @FF C5P.json" }, { "name": "Flashforge PLA Basic @FF C5", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json index 836cd00898..93b640c5f2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SuEfcE6AYK8N1FI4", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge ABS Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json index 39cbd2de77..6245bcf02c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gmkc6fRLMI73Iut8", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json index 8ce05c7f1e..7ba9ffc527 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "fgEYZ1Mgyp1AvtwU", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json index b3f51e2b63..d797114137 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "cIxbQMVdG5K85rJr", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json index 7457627179..82e08e3f49 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "9GXBeuCUrScJfmJB", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json index 0e39fc998e..5e5ce18eea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ds0GgE1jssl4IbF3", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json index 4394ed643a..9ea370b14b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UTWbwTYuXYbBx3uw", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json index ec7afd1806..6be9c9ac5a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "CuckX5MsN69806ow", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json index 136856bf4a..c38639dd89 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "NttDJCrfB01uwMDl", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json index 79ecbbdf9e..9709d11e22 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hJd6dG6OdEffEFC7", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json index dcc92a46c8..2f3d072baf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8yFCuCnEuI3dUvQy", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json index a824989281..a6badb7396 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "np4fP5kghRlczOTT", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json index 050606e773..c70351a9b1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "8o2maTFOXq0XR6Dm", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json index dea33f9ccb..ebacfbe35c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "MBo02hFXn0ebDRdb", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json index 6055001320..d6be224ddc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "vCsjC0UnKenzIR0O", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json index c4295d0a31..9ff2f3f54a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "xhxVdlmh5r7meoHo", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json index 30a2cdf399..d2c5c73541 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "6dlQN4Xhd6kGZ0Qn", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json index ea68716e21..c4b58df04c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "r8WVFPozL8f5oLVJ", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json index 95bc121e93..ebf003f20d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "xw0pZNmhw1K4tPQ1", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json index b4b539a756..8be3cb0913 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "m6QLC2UaS3fW298i", - "filament_id": "OFShw1X8", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge ABS Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json index 95fab6bbc4..398f80f8a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Nx3Px0Zu356IKShT", - "filament_id": "OFi7Bf0F", + "filament_id": "OFYTIMbj", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json index 92ed5ff1cc..3fd0dc97ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "d4EGsmMeEDCOUBF2", - "filament_id": "OFi7Bf0F", + "filament_id": "OFYTIMbj", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json index 4e5016999f..043e0ea208 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9ziPFKsjESbw1pXL", - "filament_id": "OFi7Bf0F", + "filament_id": "OFYTIMbj", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json index dceedb6fc5..77148bf480 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-CF @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "NzJJs6yrSik5xuyX", - "filament_id": "OFi7Bf0F", + "filament_id": "OFYTIMbj", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json index dd285b07f6..8cb591fa47 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UinlbuXNbad2kN0s", - "filament_id": "OFH5UH6P", + "filament_id": "OFojbdhR", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json index 0244b1fa25..3fefbd7a96 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ABS-GF @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "ycgiXY41kqNgslE3", - "filament_id": "OFH5UH6P", + "filament_id": "OFojbdhR", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json index 1fe1013580..f7d1332ec2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,10 @@ "name": "Flashforge ASA @FF AD5M 0.25 Nozzle", "inherits": "Generic ASA @Flashforge", "from": "system", - "filament_id": "OFtTYl9Q", + "filament_id": "OFJS560n", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "false", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json index 665b49d497..0f99d476fc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5M 0.25 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "kjS4k8nrIdNNNoWw", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json index 42c9955886..9a3aac8573 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.25 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Flashforge ASA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "Y647IFVkk5JIXzte", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json index 4cd916c615..7a199389af 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "vaOyXUcrJ97KE7ZW", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json index c98dc7b59f..3c2e7173bf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "iLWq5pJ3ox9EAM1Z", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json index 8b80a1d1c3..68f66a1f6b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "i7PUPYxy0Z9weyyA", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json index 48e7c83322..5aec1c1d8b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "UUSDyOetXSOuBIUd", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json index 886c3cf0c1..18ae2c78f1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "2r0kwhklE24Hp94O", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json index 52420cb125..051b069550 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XWta5jJFsCxBdEPd", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json index 012911ba4a..66ae12c06c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "w8O6oenp0NymzCqf", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json index dc42f97981..166d3a01ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "thhmWRzNYLYJOeR2", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json index 9cccf05b75..54e47a5e64 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "g5jiz6Q6or23BIo7", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json index 2b405b1fb6..01db10d49d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "7xmWlHHNMvXBKdYS", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json index ae0e3d9222..9cdc87b1e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "r0B8KfZ1mNWMvGqE", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json index 7a8035000c..f989622957 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge ABS @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "quOwRRLcNfOy0sYf", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json index 01a5604125..d8801abca8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CBLZqLhkwf5XKO12", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json index 48e7d01b94..1cc08eabb3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Df3anJxiRXLVO9hw", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json index 6c8441ee9f..30787c9de1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Nu4WvBWuEhazZfh5", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json index e30b784bfb..5b73e31a49 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "hF0h4ye3hMDtEba1", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json index ce18c5a69f..05223314f5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge", "from": "system", "setting_id": "3isZCWr4CBjFtGDX", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json index 613efc2502..2500eacd3f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic.json @@ -4,7 +4,10 @@ "inherits": "Generic ASA @Flashforge", "from": "system", "setting_id": "SU6r879TbQMUFCij", - "filament_id": "OFaBwRvT", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge ASA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json index e1bb924d28..de98bbdf41 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "941E5MaAyFY3iv4V", - "filament_id": "OFWnSvGu", + "filament_id": "OFrZDhVt", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json index 0f1d63ca96..0bff2a9e2c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge ASA-GF @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @System", "from": "system", "setting_id": "RdmsxyUGUX8Ot4oj", - "filament_id": "OFWnSvGu", + "filament_id": "OFrZDhVt", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json index 798fbc6583..608d143031 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "ckwc7U0Q2eKHmCxY", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json index 4abf262f2f..14a3d39616 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic HIPS @System", "from": "system", "setting_id": "AEQYrT7e4Q5J2G6C", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json index ae01f84a4b..bb2f4387b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "jUNUZhE0BJyB64fC", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json index 6658adabab..597e24ade7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "0qMEqo9YMDLSVafs", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json index 4e2fd50066..5b17792267 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "ek749gIdUAPq6WxT", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json index ed9d2cb9e4..b79fa3d0d2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "tEohTtyHofD6l6o3", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json index 10127abb22..96b5849040 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "oLeLrIjFJzoZha3E", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json index f050371f1f..cb385fd395 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "HXGUlYY4X5IHhL3R", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json index 02d5c02b8c..a32508d8b0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "g22Cv3zy3h5BhJYK", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json index a99c168faf..b2958e0032 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "aDzBXuvN7IuSP5sa", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json index 436a4cba60..bbbaebe8b8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "CIj24REX7BA8zPHQ", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "complete_print_exhaust_fan_speed": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json index 3b2a22ccbf..bc52c94e5b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HIPS @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "yAGyGjF6uDrjfjLn", - "filament_id": "OFaz8VoR", + "filament_id": "OFvaLVML", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json index 5f34ca9901..b9eb0a335b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "1NFhtEvvvgZiHcto", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge HS PETG @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json index a6229f92d8..fb96e1e846 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "eNOkWn5PT8rDpA0g", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json index 081ede7bc4..c1dd59623c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "vOqAGzaYLz0XdRvC", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json index 8ea4960a88..21198590ac 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "KSuxZ3fpQz0khDSz", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json index 577b175cbe..23703621f3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "o4B1kAToVny7jw0M", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json index 3e26d15964..a48606e3c0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "kpRved5M3NktqIYn", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json index 4cab6d97ae..9ceca02a50 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG HF @System", "from": "system", "setting_id": "ypxgjHl9uIMyZIce", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json index 21e54e38b4..5b64fa0f61 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "uXGuyvVxfdQW22vu", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json index 30ccd1a277..28565a5c3b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "q9UbakUmZPzG3xU0", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json index 6e2c0ca19c..592b3fe094 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "IL18Lu0qHx1RVqKD", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json index 33696f6366..e4b953f089 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "2FQib7fZjcwfCnm2", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json index 2b3722dd0c..955235b442 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "CtwOm90WWD4S7U6j", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json index 83ebdfa2b1..5a47b94941 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "kvULpm0WhKiSPj8V", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json index b161612d91..9875a638ff 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bFVYSPkynBBapFjq", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json index cf4731f584..26df92ae7b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CUU7knzm4cbe1giE", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json index 78a554fec2..b936141d13 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "gcYvL572cumWZdnl", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json index b00acd32da..f53c9c41e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "cx99AH0C575XxAj9", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json index 613a806f5a..82a8dc096a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "RrrKoR7MVD8IFQlq", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json index aa7bf4a40f..ff09b6e445 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "7VEPGuR16wNukAX2", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json index 8908833f96..3ee8ed9e42 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PETG.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "H9uwlPw6m6Nf7qH5", - "filament_id": "OF5w29Kq", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge HS PETG" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json index d8dfd92fc6..d511cdafe6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5M 0.25 Nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "OmDped3weZ4uHAtY", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json index 12e9fe913f..c7060c9f4e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "bfPaqPGaR5zpTsLk", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json index 1f37c091d2..082b03f19b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "oD592bif4ra0ADco", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json index a8cf1c5bdc..6571d871b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "ldhMY6F7v6nK8wwf", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json index ada09e1c19..a5b788402d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "5vzOmbjHbkJXrgYM", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json index 0d5e671f95..85c0b17327 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xSJk7LFpYKmckPQh", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json index 9aa4efc2e4..667e4045b9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xdFZUsj1cNLXdvT6", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json index 43f1bbf068..15551e3faa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "JCQtuv8Abfz4jVRV", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json index 42f009212d..ba4f6bc6d9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hzxRPyH1fqarsMuN", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json index fcb55d2400..4e69e17253 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "oJsLlIIpxwGSoJTv", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json index 80c9e422d0..ad8f07ef26 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "hJbNZ381ERkZ0KUB", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json index 5072e86227..f202e50f11 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "BqavrNpwhXDXcZ3r", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json index 25a9130d9d..7472f78b02 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "cgf4Qk4iHZh7zHN5", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json index 8e228a364e..3d97511a29 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jFUS6233aq4XPgrn", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json index a1e58886d3..2bc30165fc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "p31K69Srld6o4sQ2", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json index 7217ec8854..b5308a0f8c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "MwbYvnRIzlNmH81h", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json index fcf7f8a8c7..2c2ee97348 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "rKhHmkqXYD2xN4K9", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json index c6d61c696b..88184f5a92 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "Dshsi3O7NvYYjXJt", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json index a7fb05e8d6..cd59be156d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "mfnL6QEevCmTmOL0", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json index 117fe724a9..3281932fe8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "AGLHrHKWye0YTtNK", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json index 806f9e4ed7..f5de82a8bb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "px8qzmB2yFLoNl83", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json index fecd582701..da6fd90d98 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "mwuIEsBz5bXEV68w", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json index 4ae6a84762..bb2d6256b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "TielygFT88owWg4J", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json index f391f26c3a..149406f025 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "It2NI6OFhNEUvulz", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json index a554fc2a59..d06a93931d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json @@ -2,9 +2,13 @@ "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", + "renamed_from": "Flashforge PLA Buint Ti @FF G4 0.8 nozzle;Flashforge PLA Buint Ti FF G4 0.8 nozzle", "from": "system", "setting_id": "Qt3huWxoYpMEqEN6", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json index f32d4697c0..6fb09f1458 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Y3XuavnnOMoHLGHA", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json index 7eddf0b7b5..13d1358b71 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json @@ -2,9 +2,13 @@ "type": "filament", "name": "Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", + "renamed_from": "Flashforge PLA Buint Ti @FF G4P 0.8 nozzle;Flashforge PLA Buint Ti FF G4P 0.8 nozzle", "from": "system", "setting_id": "2HUxAWeolJIlxPs1", - "filament_id": "OFmQkb3c", + "filament_id": "OF8O09RG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json index 120d8b317e..8002ac7ba9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "vdaZBnDsmUC1fhDp", - "filament_id": "OFnMv3W5", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge HS PLA" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json index af9159b1b6..f5d60553e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "u7rolQaTQz9U6veH", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json index 14e5f098ab..8b10616a83 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "qTGTwiliWj3dSo9y", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json index 2f7836790f..ec1ded13ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "wAkuJRTLWxGyBU0b", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json index dd3a5801f6..bc05757132 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "dbs29hQSQl9zuWis", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json index dbbb88d9ee..1e5eb664ec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "XGNPvS2ps7Xn2fpx", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json index 6d34858446..21ee8da2a6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "h33iEGZ7wPeBYKYQ", - "filament_id": "OFgf4gZa", + "filament_id": "OFEvEfw5", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json index 687017cdba..2b4f6fc95a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "e58C9MdOWikIbbVR", - "filament_id": "OFuGRMNV", + "filament_id": "OFGxuI0n", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json index 4159a24737..b75438e584 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PA-CF @System", "from": "system", "setting_id": "RX2Tg8KpwQpCbkLI", - "filament_id": "OFuGRMNV", + "filament_id": "OFGxuI0n", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json index d0589f6b1a..3379bd5c39 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "C4DfYuQgDXIgK7mk", - "filament_id": "OFuGRMNV", + "filament_id": "OFGxuI0n", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json index 6225424dc7..07653a9002 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PA-CF @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "Yu7hL4izNsgDVqMT", - "filament_id": "OFuGRMNV", + "filament_id": "OFGxuI0n", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json deleted file mode 100644 index 0491362ddf..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PAHT-CF @FF C5", - "inherits": "Generic PA-CF @System", - "from": "system", - "setting_id": "8ZR8o3MKYxXLd70k", - "filament_id": "OFuFqYyG", - "instantiation": "true", - "compatible_printers": [ - "Flashforge Creator 5 0.4 nozzle", - "Flashforge Creator 5 0.6 nozzle", - "Flashforge Creator 5 0.8 nozzle" - ], - "complete_print_exhaust_fan_speed": [ - "40" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "80" - ], - "eng_plate_temp_initial_layer": [ - "80" - ], - "fan_cooling_layer_time": [ - "5" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "10" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "7" - ], - "filament_settings_id": [ - "Flashforge PAHT-CF @FF C5" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_type": [ - "PAHT-CF" - ], - "hot_plate_temp": [ - "80" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "nozzle_temperature": [ - "310" - ], - "nozzle_temperature_initial_layer": [ - "310" - ], - "nozzle_temperature_range_high": [ - "320" - ], - "nozzle_temperature_range_low": [ - "300" - ], - "textured_cool_plate_temp": [ - "0" - ], - "textured_cool_plate_temp_initial_layer": [ - "0" - ], - "textured_plate_temp": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ] -} diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json deleted file mode 100644 index 1c142f11b5..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF C5P.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PAHT-CF @FF C5P", - "inherits": "Generic PA-CF @System", - "from": "system", - "setting_id": "FSfGFl7FCutxXN2l", - "filament_id": "OFuFqYyG", - "instantiation": "true", - "activate_chamber_temp_control": [ - "1" - ], - "chamber_temperature": [ - "60" - ], - "compatible_printers": [ - "Flashforge Creator 5 Pro 0.4 nozzle", - "Flashforge Creator 5 Pro 0.6 nozzle", - "Flashforge Creator 5 Pro 0.8 nozzle" - ], - "complete_print_exhaust_fan_speed": [ - "40" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "enable_pressure_advance": [ - "1" - ], - "eng_plate_temp": [ - "80" - ], - "eng_plate_temp_initial_layer": [ - "80" - ], - "fan_cooling_layer_time": [ - "5" - ], - "fan_max_speed": [ - "40" - ], - "fan_min_speed": [ - "10" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "7" - ], - "filament_settings_id": [ - "Flashforge PAHT-CF @FF C5P" - ], - "filament_start_gcode": [ - "; filament start gcode" - ], - "filament_type": [ - "PAHT-CF" - ], - "hot_plate_temp": [ - "80" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "nozzle_temperature": [ - "310" - ], - "nozzle_temperature_initial_layer": [ - "310" - ], - "nozzle_temperature_range_high": [ - "320" - ], - "nozzle_temperature_range_low": [ - "300" - ], - "textured_cool_plate_temp": [ - "0" - ], - "textured_cool_plate_temp_initial_layer": [ - "0" - ], - "textured_plate_temp": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ] -} diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json deleted file mode 100644 index 19abc27d75..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PAHT-CF @FF G4", - "inherits": "Generic PLA-CF10 @Flashforge", - "from": "system", - "setting_id": "ZlpBAM9uaS01sWAJ", - "filament_id": "OFuFqYyG", - "instantiation": "true", - "activate_chamber_temp_control": [ - "1" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "chamber_temperature": [ - "60" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "complete_print_exhaust_fan_speed": [ - "50" - ], - "cool_plate_temp": [ - "0" - ], - "cool_plate_temp_initial_layer": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "eng_plate_temp": [ - "100" - ], - "eng_plate_temp_initial_layer": [ - "100" - ], - "fan_cooling_layer_time": [ - "5" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "30" - ], - "filament_density": [ - "1.06" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_settings_id": [ - "Flashforge PAHT-CF @FF G4" - ], - "filament_start_gcode": [ - "; filament start gcode\n;right_extruder_material:PA-CF\n" - ], - "filament_type": [ - "PAHT-CF" - ], - "compatible_printers": [ - "Flashforge Guider4 0.4 nozzle" - ], - "hot_plate_temp": [ - "100" - ], - "hot_plate_temp_initial_layer": [ - "100" - ], - "nozzle_temperature": [ - "290" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "overhang_fan_speed": [ - "60" - ], - "pressure_advance": [ - "0.02" - ], - "slow_down_layer_time": [ - "2" - ], - "support_material_interface_fan_speed": [ - "60" - ], - "temperature_vitrification": [ - "180" - ], - "textured_plate_temp": [ - "100" - ], - "textured_plate_temp_initial_layer": [ - "100" - ] -} diff --git a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json deleted file mode 100644 index dff2e68ddd..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PAHT-CF @FF G4P.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PAHT-CF @FF G4P", - "inherits": "Generic PLA-CF10 @Flashforge", - "from": "system", - "setting_id": "9DaSYBA2OI7Jj5zS", - "filament_id": "OFuFqYyG", - "instantiation": "true", - "activate_chamber_temp_control": [ - "1" - ], - "additional_cooling_fan_speed": [ - "0" - ], - "chamber_temperature": [ - "60" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "complete_print_exhaust_fan_speed": [ - "50" - ], - "cool_plate_temp": [ - "0" - ], - "cool_plate_temp_initial_layer": [ - "0" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "eng_plate_temp": [ - "100" - ], - "eng_plate_temp_initial_layer": [ - "100" - ], - "fan_cooling_layer_time": [ - "5" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "30" - ], - "filament_density": [ - "1.06" - ], - "filament_flow_ratio": [ - "0.95" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_settings_id": [ - "Flashforge PAHT-CF @FF G4P" - ], - "filament_start_gcode": [ - "; filament start gcode\n;right_extruder_material:PA-CF\n" - ], - "filament_type": [ - "PAHT-CF" - ], - "compatible_printers": [ - "Flashforge Guider4 Pro 0.4 nozzle" - ], - "hot_plate_temp": [ - "100" - ], - "hot_plate_temp_initial_layer": [ - "100" - ], - "nozzle_temperature": [ - "290" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "overhang_fan_speed": [ - "60" - ], - "pressure_advance": [ - "0.02" - ], - "slow_down_layer_time": [ - "2" - ], - "support_material_interface_fan_speed": [ - "60" - ], - "temperature_vitrification": [ - "180" - ], - "textured_plate_temp": [ - "100" - ], - "textured_plate_temp_initial_layer": [ - "100" - ] -} diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 HF nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 HF nozzle.json index bd7ef806a7..e88cbb31c3 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4 0.6 HF nozzle", + "name": "Flashforge PC @FF G4 0.6 HF nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4 0.6 HF nozzle;FlashForge PC FF G4 0.6 HF nozzle", "from": "system", - "setting_id": "M9HM8tihJzV4crs8", - "filament_id": "OFe6sfXS", + "setting_id": "Tj504IYSj6mUDR6E", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4 0.6 HF nozzle" + "Flashforge PC @FF G4 0.6 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 nozzle.json index 1bbc7d1e11..6b1decef09 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4 0.6 nozzle", + "name": "Flashforge PC @FF G4 0.6 nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4 0.6 nozzle;FlashForge PC FF G4 0.6 nozzle", "from": "system", - "setting_id": "08VjBSha6gjhJYgk", - "filament_id": "OFe6sfXS", + "setting_id": "VfhBf8676qCWatKP", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4 0.6 nozzle" + "Flashforge PC @FF G4 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.8 HF nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.8 HF nozzle.json index 9e7ebbdc89..e1740fb30d 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4 0.8 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4 0.8 HF nozzle", + "name": "Flashforge PC @FF G4 0.8 HF nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4 0.8 HF nozzle;FlashForge PC FF G4 0.8 HF nozzle", "from": "system", - "setting_id": "JqgkmxnjlnQ3uw1u", - "filament_id": "OFe6sfXS", + "setting_id": "ILBm9zXX5U4Oh82h", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4 0.8 HF nozzle" + "Flashforge PC @FF G4 0.8 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 HF nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 HF nozzle.json index 5e6b9ca06c..11ec475184 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4P 0.6 HF nozzle", + "name": "Flashforge PC @FF G4P 0.6 HF nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4P 0.6 HF nozzle;FlashForge PC FF G4P 0.6 HF nozzle", "from": "system", - "setting_id": "vvLLPvSeb5PYbT1R", - "filament_id": "OFe6sfXS", + "setting_id": "Kj6KWBfSuFALX2sd", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4P 0.6 HF nozzle" + "Flashforge PC @FF G4P 0.6 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 nozzle.json index 74fb0b79e2..38ca36a685 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4P 0.6 nozzle", + "name": "Flashforge PC @FF G4P 0.6 nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4P 0.6 nozzle;FlashForge PC FF G4P 0.6 nozzle", "from": "system", - "setting_id": "mPJMPfFCyfWdKzMO", - "filament_id": "OFe6sfXS", + "setting_id": "XjAM4PMXLCBwdgQf", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4P 0.6 nozzle" + "Flashforge PC @FF G4P 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.8 HF nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.8 HF nozzle.json index 81ee3e9c95..dfdda7bfe2 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PC @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PC @FF G4P 0.8 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PC @FF G4P 0.8 HF nozzle", + "name": "Flashforge PC @FF G4P 0.8 HF nozzle", "inherits": "FusRock S-PAHT @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PC @FF G4P 0.8 HF nozzle;FlashForge PC FF G4P 0.8 HF nozzle", "from": "system", - "setting_id": "HTgqTUTznOlfCRAd", - "filament_id": "OFe6sfXS", + "setting_id": "icAIkgRCZAjz6apM", + "filament_id": "OFWXCbVF", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "3" @@ -43,7 +44,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PC @FF G4P 0.8 HF nozzle" + "Flashforge PC @FF G4P 0.8 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PC" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json index 6ea60b3214..5dc78f3cdb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xOZQvdZa1YCcnjor", - "filament_id": "OFEMfQsX", + "filament_id": "OFYYeMyQ", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PETG Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json index 0d325d1c1a..3d5c4f4b0c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "YLLJ4xZI704GReej", - "filament_id": "OFEMfQsX", + "filament_id": "OFYYeMyQ", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json index a351fd284a..614ac50225 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8EUg1hTLfsyDPbnG", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PETG Pro @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json index 153daf20e9..0ab5b18b04 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "UKhV8A2DBc1xyNWc", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json index d685b38547..e15f011f1f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "dFZ1MmHjj1AAIaMm", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json index 1a279d0591..a3d431030f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ro3rt7IAJrA5aZD6", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json index 4f839ae1b5..7cc361d89d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "cTxrnqzr2wVt4Nj7", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json index bbf62043f7..0a1b47b916 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "QA1KD03F0zj2zsVi", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json index fae56d5e11..69cb6ee5e8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "EU8Q0XLjED23MNer", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json index a22994d00b..fcb6cbcaad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "XFSgx95whLw5FD08", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json index 5c41866971..746eb1cc61 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8x6yU2U8d5f67N73", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json index df04115fd9..ecafe03349 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4W0nfaSSZdg2HQkh", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json index 00878236df..94b757887a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "AJcugKx4qHPJ3JAT", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json index b73e951307..d1c404cd19 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "R0nZuLXEo5qA6Mt8", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json index ccb1dd2f50..8c1de1d947 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ql2BBBymzqEG7GKk", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json index 295b0a313e..387adc60c7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "8Jc4eedkknqNB87s", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json index c4f944cfc2..60bb0ae243 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "KU5tDHAKja1sCoHm", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json index 93664c46e2..24ed205273 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "sb6jD3UZmb0DNIsC", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json index da54d45f51..d993d05592 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4BB1wJLtsXus5eyY", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json index b2f8087db9..1385ac8454 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "m7oJx47UMlFctMkX", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json index be118c9e69..1bd2c4cdbf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "ozD2wU5UiORTtJsa", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json index 00fffab83a..df9948d863 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "IQfUoy7gTmVmBDL5", - "filament_id": "OFPQfNAf", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json index b43b82c176..b1352eecc1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "W59yTyPnVv4LYiah", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PETG Transparent @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json index 54596db508..697cd7b714 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "NRY4fsPNtnqs0kyH", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json index fdc9c427d3..2d29ad79b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "Ht7wzk8l0b1kv5tZ", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json index bbe03ece1f..f1b7a3b4ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "NJFHpa5HFHIyHSWu", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json index 4e0de85100..252e51750d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "UaObrRNSTwitC6jr", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "close_fan_the_first_x_layers": [ "2" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json index 08e0076cb0..ed8c6fd0bb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "TtXy042wtT6nF3WB", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json index 4d40f2fbcb..b6395b0325 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @System", "from": "system", "setting_id": "66OWHhGyuaFISu6v", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json index 60bc613ad6..3f0f32fc0a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "p5c6XJ1VD8cn2Meh", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json index 5c9ccb693f..2ab27e8567 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "K8WkJmFy2V1zhYQO", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json index 7676d966b1..b3c10e9970 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LLK1hwKZhDU8SaGJ", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json index 63c046558f..8c29f5a466 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LaUF2HJtBnpZF7Cd", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json index 6adfb18f16..2736fea042 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "OUToXk8ddS1RPPUK", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json index c8e5141713..d907e48ab5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "ywff8rI39XKjcocY", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json index 347a845f06..61db117e30 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PETG @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "C0VV5Uzsl4icRgKa", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json index 4ede8cb506..0dfa3dfee2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "kuCvwo6Phr6Ywhm4", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json index 74d4250de0..91c49b1c85 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Z2E69w9AevYg15tl", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json index d345b35e9f..0ac80ad83a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "RkQaxwTjhJK0A3zr", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json index 3d6abe6ff3..bc6fbecdb4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "YBQTMes2S9iJjKDf", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json index bf76cf5bfa..0213d9e14b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "lCngVWG3q0FWsnrG", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json index 450c5f33d7..7502aa35b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "3Gv6MJ3RRja5pbOM", - "filament_id": "OFMyLYV8", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "60" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json index d746b5348d..a516f371a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "bcqYod61blJRzhK2", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json index 1b5c706120..7a51f2615a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "CnFKOi7fFyS8QlKK", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json index 0fbd657de5..e401baa389 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "eKWJW36I5fVHwjWD", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json index 16c5cce80d..52901dd534 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "RXRERfs2oQKewpPS", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json index 2be54257d3..dda9226bcd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF @System", "from": "system", "setting_id": "8Ns75F5n2fdQ8sDk", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "compatible_printers": [ "Flashforge Creator 5 Pro 0.4 nozzle", diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json index c0145120d7..71c68991d0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4EgMPzlVo1rTeQ1e", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json index fb095064f7..b0b2ec7360 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "K9ME1F4oJkPi8jRu", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json index 76d459de35..668e1af37a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9jCp0gTjB3Mt95Mj", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json index 14be746810..a0200ebe49 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge", "from": "system", "setting_id": "d5OleuNNZBJK9vxH", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json index c92b4aa162..57b297768c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG-CF10 @Flashforge", "from": "system", "setting_id": "MpG61mwVUtJ7t602", - "filament_id": "OFBK6zAi", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PETG-CF" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json index 65741b1860..9a4844d6ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "3fuVuyVcn8U0bRJQ", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Basic @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json index 64d564cfca..1a56e9f162 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "FrRRUl5OT773uCju", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json index 6248751055..7c929b1363 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "gMmhMDqjmJfAYcbV", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json index d9041d25b7..7f66423bbe 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "0OsrtqfIxrEJMwac", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json index 110048dba4..f698b05b32 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "fuzWVrfZqekMETLK", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json index 8963823c97..6893946556 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "FmUnckQofjunAtwr", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json index 6fc821a49a..9a7c7080a0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "Q0RsVOPLuMByur9c", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json index 6969ef6263..bd42e42f74 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "QXJgY8OPyaoYUI1D", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json index d0b03d8959..4ed8203529 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "R54l7TcwsjdPHvNB", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json index a898615cfc..731b59748d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "MELEwYupDkT2DPxL", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json index 8a98aa4445..24eb70b646 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "uGLvOoPAfksLO43M", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json index c9cb6c8711..b9ab2a97ec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "gGpKvk3rnLuTjOwo", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json index 94fee218f2..2d81ff10df 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Yopqnj4b5ZVwigGx", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json index dcbfee57e3..eedd218625 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "GrwiA2dArUGV9x2g", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json index 0714764c1c..9c6d20e0e0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "QEfQrqMwApuSMqih", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json index afa79d4382..1285b05257 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "BAPIn3eJAPGpscRJ", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json index 1b7bd7a1dc..784f6dfd17 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "44BmRNRb6vlPq8qe", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json index 8f77560323..4fdcf94869 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "ltJbhoAeAec9gxrS", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json index 6cf9a832ff..57305d4cc5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "GxdZiXdqns72ibQl", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json index 8582b545c9..12a8f6cd79 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "5XKGaHUjxHECbnHO", - "filament_id": "OFIxitiU", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Basic" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json deleted file mode 100644 index 2728623e2e..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4 0.8 nozzle.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PLA Buint Ti @FF G4 0.8 nozzle", - "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", - "from": "system", - "setting_id": "H8IStdO8zEfSLYVE", - "filament_id": "OFQZeyZv", - "instantiation": "true", - "activate_air_filtration": [ - "1" - ], - "additional_cooling_fan_speed": [ - "40" - ], - "complete_print_exhaust_fan_speed": [ - "40" - ], - "cool_plate_temp": [ - "40" - ], - "cool_plate_temp_initial_layer": [ - "40" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "eng_plate_temp": [ - "50" - ], - "eng_plate_temp_initial_layer": [ - "50" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "30" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_settings_id": [ - "Flashforge PLA Buint Ti @FF G4 0.8 nozzle" - ], - "filament_start_gcode": [ - "; filament start gcode\n;right_extruder_material:PLA\n\n" - ], - "compatible_printers": [ - "Flashforge Guider4 0.8 HF nozzle" - ], - "hot_plate_temp": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "50" - ], - "nozzle_temperature": [ - "200" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_threshold": [ - "25%" - ], - "pressure_advance": [ - "0.025" - ], - "slow_down_layer_time": [ - "9" - ], - "slow_down_min_speed": [ - "20" - ], - "temperature_vitrification": [ - "45" - ], - "textured_plate_temp": [ - "50" - ], - "textured_plate_temp_initial_layer": [ - "50" - ] -} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json deleted file mode 100644 index 538d1415f1..0000000000 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "type": "filament", - "name": "Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", - "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", - "from": "system", - "setting_id": "4wlkoKnU2bA7xhYO", - "filament_id": "OFQZeyZv", - "instantiation": "true", - "activate_air_filtration": [ - "1" - ], - "additional_cooling_fan_speed": [ - "40" - ], - "complete_print_exhaust_fan_speed": [ - "40" - ], - "cool_plate_temp": [ - "40" - ], - "cool_plate_temp_initial_layer": [ - "40" - ], - "during_print_exhaust_fan_speed": [ - "40" - ], - "eng_plate_temp": [ - "50" - ], - "eng_plate_temp_initial_layer": [ - "50" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_flow_ratio": [ - "0.96" - ], - "filament_max_volumetric_speed": [ - "30" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_settings_id": [ - "Flashforge PLA Buint Ti @FF G4P 0.8 nozzle" - ], - "filament_start_gcode": [ - "; filament start gcode\n;right_extruder_material:PLA\n\n" - ], - "compatible_printers": [ - "Flashforge Guider4 Pro 0.8 HF nozzle" - ], - "hot_plate_temp": [ - "50" - ], - "hot_plate_temp_initial_layer": [ - "50" - ], - "nozzle_temperature": [ - "200" - ], - "nozzle_temperature_initial_layer": [ - "205" - ], - "nozzle_temperature_range_high": [ - "240" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "overhang_fan_threshold": [ - "25%" - ], - "pressure_advance": [ - "0.025" - ], - "slow_down_layer_time": [ - "9" - ], - "slow_down_min_speed": [ - "20" - ], - "temperature_vitrification": [ - "45" - ], - "textured_plate_temp": [ - "50" - ], - "textured_plate_temp_initial_layer": [ - "50" - ] -} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json index 6cf9156ada..6947f2afbf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "KXy0WyQp06VC2ICh", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Color Change @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json index d5e1624903..9e644f1006 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "9cGw7tXD8YJHEi1H", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json index 45e7ed6a32..4f5eca6889 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "TF6BeOl0patjpPaa", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json index ed65db080c..950effa7cd 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "nkYeEBo8NdkJulAP", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json index 70991dff2d..bf6dfb230f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "yEDfsOsogfZbNBVX", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json index 2fc09d1cc1..23bfa9be0c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "xZmQdh487UMtvBRu", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json index 707eb4e042..6f5e1afb0e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "rc00SOyIg30uE3Da", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json index 5a35f8d82f..a465a78ea6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k1OiugasUs7baG1f", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json index 9c64cff73b..31a99ea10e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "G2Et7kPHptMESzQ0", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json index f57fbdc47d..07fe12f973 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "zsOdmFGBSF9UySMN", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json index 963bd8152d..3a778e5472 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "oxRMuvBMu9qdQWUQ", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json index 608ef77d24..8657a4010e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "5hwNJvvLtb75XBBg", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json index 78d56a62a5..c185b26f3d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "mGj8VEyOnnogpkmF", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json index 2542e59765..0709fa3e08 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "HXVX4mDeUSfW2RgL", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json index 9070fa4762..9742b8aefc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "JDcRA6apekWLXPvH", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json index 01b3800053..4d3681736e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "b5GJpvKYktP4vZpj", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json index 78aa762193..6eb75a8f52 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "RjUpQV6iQxTircwj", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json index 0241ed5dba..26609fd995 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "9DEZ6SmFdgfluhsR", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json index 7d3aa644c0..e660d0f569 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "girTMkusNTfY04rz", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json index 75e3bc1a3f..29f68b0f62 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "pCQ2qmeXUyJzP7kS", - "filament_id": "OFkwIWwc", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Color Change" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json index aa9433b6a2..b0f7d6bf89 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "a1jTbQsflD7SDFih", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Galaxy @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json index 979f2a51fd..df9cc2d3e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zyCRsy0mHRgyuQqt", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json index d48f2944b6..d66bf2b24c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "y8TNaRebTrmFem10", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json index 17a2bd1120..65dffd3601 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "qju0AMvvq0B5Glny", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json index 06e76b0a60..1067b50067 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "o8gGBOEcNvlbZxGW", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json index 929002ffac..2ce8486cb0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "0RkkIcIUFgwOFTBY", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json index 487f05b211..373a81bcdc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "9qVabnSl8xfKSIYX", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json index 0d81c49ca3..e44bbe16e5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DL7lxDI35YErCTWX", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json index aa3a164d86..efb7dad130 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "koEC7DteUoXHUd2z", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json index 0517355c72..64b442938c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "D69fWcXioFcpoUjC", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json index 2982fcfe42..d20dc55d41 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "rfiQUncdSExEaK0U", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json index ef995df080..346dfad0a0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "WX8lK8efXIVcpjFf", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json index a301208f82..3b999c0734 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Tzvo3oILQJc4SQko", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json index 7491d8dc7c..b29877be60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZQYrljZtu3es26hB", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json index 9b00f47fc6..1b8e75eb32 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Y5gm20O4yCCDIoC0", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json index c92d0c95c3..d39114697f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "80vSQxnHfd5ZUy5h", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json index fc02069f65..185440fba4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "UZi7T5VoasmXWyH5", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json index c86fa47d2f..ec0581df11 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "6UlSb4fqHIMdMxkO", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json index 22b40f77bb..c1818186cb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "H2Cr4B5VUaxyYsN0", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json index ffff2b3523..785e26ace5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "NJrc0UZ54Fq8MaqF", - "filament_id": "OF5NQFKI", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Galaxy" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json index ec022f475c..5702843039 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "k8iibCO2EnlTSRyi", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Luminous @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json index a6bc399396..44a6f663ef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "pACct3L7duMh3hfx", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json index 5898b4c1c2..3e106a6eda 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "GdvXL8SrKrYHxSgZ", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json index 227d392df3..446137267f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "SLYD2YcQTQgbSjIF", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json index 0b7704be7b..d605b1e444 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "kOobFSlqEG9Qe0d1", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json index bb19b242a7..5efeada6af 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "4sE1LTVVuRglRbpD", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json index f370433f16..485a3b51a2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @System", "from": "system", "setting_id": "jEUZyaEIBf2eXXeh", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json index 9e865d710f..3019fb194c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "qZ6kKjRCMfe4Ql3F", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json index 1dd346734f..0b58399215 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "xPPSRmadqfqCtRF2", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json index 19db33c12b..792049300a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "aWVXIk1xVa9URR1D", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json index 85732db257..a218752f68 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "KhBF7hHHVPzqiAca", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json index 4a47c2e41d..615e05d2e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "sTplnj3gMAzwtLWE", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json index 3f409afcef..cc630d58ab 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "zJFUJKDJRYi1pRL7", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json index aab7e584c9..65e6995584 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "vXPXOKD8vNJlujM1", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json index 01c99d30bd..7704d5f2b8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "purqxjmWiflDrnik", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json index e11842c15a..b9f94e604e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "qraQ97uusigB63hv", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json index 049325af4d..5ce6582146 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "Z1NCX8XMyIVlOlWn", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json index e8f02f10a0..46151a4496 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "s620OFLTgFT4Ds2A", - "filament_id": "OFMIma8C", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Luminous" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json index d9c3ffe33a..30c0a43a1e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DcbISTLvKNMZRzKx", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Matte @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json index 790c30cef0..98964015a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4fwlIrzy6O2EsyBZ", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json index 9788577dc8..2774450e57 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "BVmVfNCuy8HDhcEI", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json index b044ecd47f..f03dc70fd1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "WRMePGzDGdEGiqNv", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json index 1cdea005e4..f009759cad 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "thnbuaLDDlGrkrdY", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json similarity index 82% rename from resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json index 5aa386d441..230a723624 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Pro @FF C5", + "name": "Flashforge PLA Matte @FF C5", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Matte @FF C5;Flashforge PLA Matte FF C5", "from": "system", - "setting_id": "47Q7YXoJ7rD7Vu21", - "filament_id": "OF6ueBwd", + "setting_id": "ct3nO6w9j58gqDI0", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" @@ -45,7 +49,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Pro @FF C5" + "Flashforge PLA Matte @FF C5" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json similarity index 80% rename from resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json index 657898f301..0d7543cc09 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5P.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Matte @FF C5P", + "name": "Flashforge PLA Matte @FF C5P", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Matte @FF C5P;Flashforge PLA Matte FF C5P", "from": "system", - "setting_id": "FpLoe6QrPXnrH019", - "filament_id": "OFH6Pjxe", + "setting_id": "Bn2BaG7f1tkvlyYI", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" @@ -48,7 +52,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Matte @FF C5P" + "Flashforge PLA Matte @FF C5P" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json index 548d627fa2..4898587111 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "cnPwhLyBq6JL8gEA", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json index 28809dc1c0..2ff2a07363 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8b9q1FfVljPmKoEt", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json index 2a2ac35fa8..f49e19c292 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "o9dOrLgL6efF19O1", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json index d3d9ac763a..98e44f21f4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "QoRmDvhoeGi6Z2xv", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json index 2cc4d75091..7eda7a4b62 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "dHyuoORAUGLtlGkJ", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json index bc2daed905..698511967d 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "OgqVyIHfy3U8Dc6d", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json index 2716d0f9fa..c9a63d60cb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "g1gnICJ3u6hpGazQ", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json index fa2c6322ea..c868aa0137 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "feXpVbDM5ON5mwg0", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json index 8ae39f5623..fc205bb684 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "XMnZQ1AxXPJqpqRX", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json index e8a01ae3e0..42dc4c9c15 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Ke0bRKPNKSsVMO1Y", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json index 55571d70e5..1d76131870 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "IRC2n4GaofxvvyTt", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json index 75b6007012..63d6f372e3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "RN4wdTL0qccM4huZ", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json index 60488f6338..781357b1a1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "ipMevDMORKqZYdvD", - "filament_id": "OF1bQyX2", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_max_volumetric_speed": [ "22" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json index a788ef51f7..1adef03eef 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vwwb5nfO63U1ErCn", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Metal @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json index b6a2c35983..e786ecd378 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ekq4MRPyzlYxRhbX", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json index 231e4cf895..27caf06739 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "uusF7Vz94HOwoQF0", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json index 92a867b768..4f01562a04 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "sHZWzrZO8PP0QYZR", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json index 22abaf206a..f85391cb2b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "bxwjEFI8HmNY8JI6", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json similarity index 81% rename from resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json index e41c16e0cb..d382637556 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Metal @FF C5", + "name": "Flashforge PLA Metal @FF C5", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Metal @FF C5;Flashforge PLA Metal FF C5", "from": "system", - "setting_id": "YFbZ472BRNga6OpQ", - "filament_id": "OFrnkURQ", + "setting_id": "AdjRSTc9RZG6mJ1e", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" @@ -45,7 +49,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Metal @FF C5" + "Flashforge PLA Metal @FF C5" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json similarity index 80% rename from resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json index fb5ba4bbf6..965b6fe595 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF C5P.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Metal @FF C5P", + "name": "Flashforge PLA Metal @FF C5P", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Metal @FF C5P;Flashforge PLA Metal FF C5P", "from": "system", - "setting_id": "AtVxriSKOrFZzUun", - "filament_id": "OFrnkURQ", + "setting_id": "k0AQO2dGbk0qvxzO", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" @@ -48,7 +52,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Metal @FF C5P" + "Flashforge PLA Metal @FF C5P" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json index 5f0dc7ac33..bf884cf46e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "VvMaIJwFk4Q6KX4p", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json index 682889ba46..8fcf56e6b6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "5xqdqoj2l50FegPF", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json index da2e664b20..352adaa681 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "R79SbWA9i2OAu2ee", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json index 56b51fbb39..8d78236629 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "zjIN4KzIOwI1VwOc", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json index aa615d6c52..aaabcaac60 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "UxMNNil2KnWvAJ4q", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json index 18240ff4ab..b1035a4629 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "57i6iKrVYUS5UiBT", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json index 712410e542..d7697ccb8e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "vVKalJViJuBvlHkK", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json index a8eea524f7..bf06971c23 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "IYPw8a9tkpuf95uH", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json index eebeaeb9d4..7d85d6e56f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "I0bULoVAbtVfQoCy", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json index 48206bc4e6..9c6e1b92b0 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "DbPo3ay2e4a002AB", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json index 8d50a6ad0a..a79ce03a5b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "uztv4hhm2O3T93zZ", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json index cd239560be..82bf12c247 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "UFWWrhfgS7N36Y8W", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json index 368782f0fd..90d419bfa5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "UD5i0ijsirfieUvb", - "filament_id": "OFvVxvzZ", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Metal" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json index 15a01f350a..c956e6a5ec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "DIMoIGOGedN17WbO", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Pro @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json index 9d4fb9f9a8..eda5f5745f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "SC5LJcecBaEG5by3", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json index b25c6b56ab..d56ed06c1e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "t9lPSFnwLDk0ARIp", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json index d0a7d88e4f..423b8743a7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "SBSlOEwZSvZHeX4r", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json index f276a6e671..0ab1f650f2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "DbWTm2H71izMWmpx", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json similarity index 82% rename from resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json index 15b12ed8f9..e02f21dbd3 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Matte @FF C5", + "name": "Flashforge PLA Pro @FF C5", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Pro @FF C5;Flashforge PLA Pro FF C5", "from": "system", - "setting_id": "UQF0kAaXnZgJGK4o", - "filament_id": "OFH6Pjxe", + "setting_id": "30eBjTZFg6vDZkc0", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" @@ -45,7 +49,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Matte @FF C5" + "Flashforge PLA Pro @FF C5" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json similarity index 81% rename from resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json rename to resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json index 025ddbf305..fedd74b2c5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF C5P.json @@ -1,10 +1,14 @@ { "type": "filament", - "name": "Flashforge PLA Pro @FF C5P", + "name": "Flashforge PLA Pro @FF C5P", "inherits": "Generic PLA @System", + "renamed_from": "Flashforge PLA Pro @FF C5P;Flashforge PLA Pro FF C5P", "from": "system", - "setting_id": "v7vYsiPVka4c1CUW", - "filament_id": "OF6ueBwd", + "setting_id": "xOvxorpWP37CQCfi", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" @@ -48,7 +52,7 @@ "18" ], "filament_settings_id": [ - "Flashforge PLA Pro @FF C5P" + "Flashforge PLA Pro @FF C5P" ], "filament_start_gcode": [ "; filament start gcode" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json index 174584294f..a2ea5e43ee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ZENqqRqvEOeloAgs", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json index e7b16bb162..f3dd8e04cf 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YcXuvz3qYHtVoWxv", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json index 400fb84d2e..7dc8528606 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "prItyXNphhuPCAce", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json index f044a481b4..57e815ab25 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "83zDmjaAgxxIt7KU", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json index c40c210005..35bce9d866 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "px3O28Olb9LExqfT", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json index 71ad06d85a..b04f49d81b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "QYgsCCHP3Khqrzh3", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json index 6f675b36db..4e1e4c5ac7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "wV01bqvZ6MRaEibZ", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json index aaab161802..07b82edf7f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "1ro9wHPYhuMHNiYe", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json index 20ee4d7163..433318fc86 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "4W4a7c9ugUVwvvmn", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json index 804c28cfe1..87031ba66b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "CloRo3qxvzxHZuIP", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json index b0f9655605..281a34a2c5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "QgUbP07tIXmFysEb", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json index 50db881fc0..8d29d1823c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "6mvGOtkPZT6ROboo", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json index 2924f05d13..e70b87f9a9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "vI875WYbMyQeMwlh", - "filament_id": "OFK74HJD", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Pro" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json index 13d04ff82c..b232f00632 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "gxl3i7jTwkzrKxF4", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json index c3ece049cf..1a604e9250 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "mx6NWRkqyo2U12XQ", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json index c39e501f5c..3bbc1afcb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "YH9IHXOFMKwcTLyA", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json index 58d57b30c2..36a3c15a4f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "IfAieG0OAG807xlu", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json index dc7fb68745..ce5ecdb2aa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "N6J7QqQ7TIgM3MyW", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "50" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json index 3e65220aa5..de9c9be46a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "OIsfpi49wEoF0ekO", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json index 5943d800f7..f82bc5efc4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "xxeZ6VPjRFevxDnK", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json index 1db32c1b42..84ee8494b5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "x5m17Z5UpqpTtwgF", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json index 0f6d8e0bbe..ec7a71f35f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "2GZp8yjrY1OioFDi", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json index 284128710c..36090afaf7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "U0XtCVUhIMnidhbR", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json index 72d48ebb9b..558015cb87 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8j9kaYy3ghkF81Cu", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json index 00ddedabc1..c37e0f6341 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "E0LeJwSxaniDkB0b", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json index 536a4ac8ac..b7f4f619ec 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "8rggqgJ9kg9yLE28", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json index f8dbc1a5db..7e2cbef575 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "hnWRLUwnfXiwnqBM", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json index 96cc519bb4..047cdcf879 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "uY4OWhIytHMz4rWq", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json index de21757695..b5f36b7483 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YSkkXd9EhhEHvGpf", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json index 7a3f814c62..a41d10e40a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "XlxXZj9Wi1D6IwCE", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json index 2723288b7d..e95f7ad1de 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "IPyXBSnMCAikjI9V", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json index 7837f5d704..df4894cdb1 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "f3gJsovSmDKoA7BP", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json index 16a44d9bf2..15239129d4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-Silk @Flashforge", "from": "system", "setting_id": "vZb7BvbyVWkZv3rR", - "filament_id": "OFLYDIb8", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Silk" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json index b9621303fe..c6e10f3502 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "ojYsAanAPqYhgFoe", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "filament_settings_id": [ "Flashforge PLA Sparkle @FF AD5M 0.25 nozzle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json index e1df09f3fb..e90f5c1545 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "xVYaNvQwM2chTkPe", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "complete_print_exhaust_fan_speed": [ "80" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json index 96d39efa5d..3786cf7abb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "o8lsEnMIiHHorJhb", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json index ee4824a8dd..c7fb93bca2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "oXlxQJY0K6Dnri7e", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json index 06c4d3fb57..b6802db1b4 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "XKpFulrvvrfE56va", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json index b0d52bf934..3d35049e4e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "jmVmKMUCcowszvVp", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json index 296b827e39..5cf32f2c38 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "yeh5cd0tAHtHzdoQ", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json index 9dbe7d7af0..27380eb9e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "q2Zi0YluaYpG3Ktf", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json index 1eafaf0b40..42df4a0ea9 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4 HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "1qXV6AJqPpAwX1YK", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json index 1d93c10b5a..7a11476c06 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "YsyGGOGqUVkEqkIr", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json index b333c92f94..013e84740b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json @@ -4,10 +4,10 @@ "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", "from": "system", "setting_id": "4L3Zm1YIxs8J8dp9", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json index 6459a6f8a8..4a975e6f20 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "UVvd018dTbygqTgy", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json index 410394cbce..0781dd641f 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "F0k8kkgWM5FkLAzo", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json index 7ecddf5859..9b4065c982 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P HF.json @@ -4,7 +4,10 @@ "inherits": "Generic ABS @Flashforge G3U", "from": "system", "setting_id": "Oapl8InwbkwNSIDl", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json index 0554f047e6..35ccf42632 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "NiB6Yb4b0auyn9KQ", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json index ca024d690b..4be3dba6ea 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge", "from": "system", "setting_id": "LYtdPgec1hBLhoQA", - "filament_id": "OFec7Qiw", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA Sparkle" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json index 8bb0d6980f..245e401283 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "QRyISvTy06kCwxKo", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json index f63829709e..f456d8c7db 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "rmnF24E3SuwzRscH", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json index 2939f9ee4e..a39646f621 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "BXPI5Pkp7a6pLrCh", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json index b2b8bcf477..a1b271569e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "rBm25DRY1PAkEJ4r", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json index f5e734c62b..189dba715a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF @System", "from": "system", "setting_id": "xReo12oteZ4ECNJN", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json index e441facb7d..292cf5972c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "9PgjgxU7pLl2Dfpe", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json index f2b5662c13..0faba78623 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "RuNKzuIsw7F1ogmG", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json index 62dd7a9ee9..77a590f1d6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "YPuMCHNGDWh0FpIB", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json index 7958393b2b..3bd2e72000 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic HS PLA @Flashforge", "from": "system", "setting_id": "3uC056Y171ZjnQE6", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json index 5466774689..10f87a860a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "JxNlb64lTODaaQhU", - "filament_id": "OF2bZtyg", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge PLA-CF" diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json index 07744f726a..4242f0f8a5 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json @@ -3,7 +3,10 @@ "name": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "inherits": "Generic PLA-Silk @Flashforge", "from": "system", - "filament_id": "OFGc282l", + "filament_id": "OFV8Mxqx", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "false", "compatible_printers": [ "Flashforge Adventurer 5M 0.25 Nozzle", diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 HF nozzle.json similarity index 86% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 HF nozzle.json index e8de847c00..3df5398f11 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4 0.6 HF nozzle", + "name": "Flashforge PPS @FF G4 0.6 HF nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4 0.6 HF nozzle;FlashForge PPS FF G4 0.6 HF nozzle", "from": "system", - "setting_id": "3w8fnDjkoFaJ6Nhw", - "filament_id": "OFUCpLaL", + "setting_id": "5x1ye2DAm3GvzmZJ", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4 0.6 HF nozzle" + "Flashforge PPS @FF G4 0.6 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 nozzle.json similarity index 87% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 nozzle.json index 993a4dbf92..1de4d51745 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4 0.6 nozzle", + "name": "Flashforge PPS @FF G4 0.6 nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4 0.6 nozzle;FlashForge PPS FF G4 0.6 nozzle", "from": "system", - "setting_id": "owHbDqY55rFtSegz", - "filament_id": "OFUCpLaL", + "setting_id": "yZoLC24CeKEyvkgA", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4 0.6 nozzle" + "Flashforge PPS @FF G4 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.8 HF nozzle.json similarity index 86% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.8 HF nozzle.json index ff65c08991..e8014ddfec 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4 0.8 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4 0.8 HF nozzle", + "name": "Flashforge PPS @FF G4 0.8 HF nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4 0.8 HF nozzle;FlashForge PPS FF G4 0.8 HF nozzle", "from": "system", - "setting_id": "eFK1zzT1JY9ZnEl9", - "filament_id": "OFUCpLaL", + "setting_id": "EsrSpDB3Kx35qb76", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4 0.8 HF nozzle" + "Flashforge PPS @FF G4 0.8 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json index c8a1c2d800..fd2f854067 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "6NjEQ6RJKUAOrSLw", - "filament_id": "OFxMGIPt", + "filament_id": "OFlgMgNM", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 HF nozzle.json similarity index 86% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 HF nozzle.json index 0f6fa82220..f731181d65 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4P 0.6 HF nozzle", + "name": "Flashforge PPS @FF G4P 0.6 HF nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4P 0.6 HF nozzle;FlashForge PPS FF G4P 0.6 HF nozzle", "from": "system", - "setting_id": "E8CcstoHzax78ZJY", - "filament_id": "OFUCpLaL", + "setting_id": "Uu82gm86ESeidnRT", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4P 0.6 HF nozzle" + "Flashforge PPS @FF G4P 0.6 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 nozzle.json similarity index 87% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 nozzle.json index 581d855fe0..3eab34befc 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4P 0.6 nozzle", + "name": "Flashforge PPS @FF G4P 0.6 nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4P 0.6 nozzle;FlashForge PPS FF G4P 0.6 nozzle", "from": "system", - "setting_id": "xa22FD8bRVGsLiPJ", - "filament_id": "OFUCpLaL", + "setting_id": "G6pIMZA5RC15kJoC", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4P 0.6 nozzle" + "Flashforge PPS @FF G4P 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.8 HF nozzle.json similarity index 86% rename from resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.8 HF nozzle.json index dee62ada5b..a2662d8cc9 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P 0.8 HF nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS @FF G4P 0.8 HF nozzle", + "name": "Flashforge PPS @FF G4P 0.8 HF nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS @FF G4P 0.8 HF nozzle;FlashForge PPS FF G4P 0.8 HF nozzle", "from": "system", - "setting_id": "bZ9dbA8dIu9mjWyN", - "filament_id": "OFUCpLaL", + "setting_id": "SsK15iSJxrQWI5wy", + "filament_id": "OFlgMgNM", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "activate_chamber_temp_control": [ "1" @@ -61,7 +62,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS @FF G4P 0.8 HF nozzle" + "Flashforge PPS @FF G4P 0.8 HF nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json index 76257267fe..b841f62e6c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA-CF10 @Flashforge", "from": "system", "setting_id": "vFMKqNjQjlNxwvDI", - "filament_id": "OFxMGIPt", + "filament_id": "OFlgMgNM", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_chamber_temp_control": [ "1" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4 0.6 nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4 0.6 nozzle.json index 218d8add21..b33fcb95c9 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS-CF @FF G4 0.6 nozzle", + "name": "Flashforge PPS-CF @FF G4 0.6 nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS-CF @FF G4 0.6 nozzle;FlashForge PPS-CF FF G4 0.6 nozzle", "from": "system", - "setting_id": "4w0oK3F50O1DUqsu", - "filament_id": "OFogbnCb", + "setting_id": "mMTi9QaW5xVch3an", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "2" @@ -49,7 +50,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS-CF @FF G4 0.6 nozzle" + "Flashforge PPS-CF @FF G4 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P 0.6 nozzle.json similarity index 85% rename from resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json rename to resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P 0.6 nozzle.json index 1213313096..48edb216c5 100644 --- a/resources/profiles/Flashforge/filament/FlashForge PPS-CF @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge PPS-CF @FF G4P 0.6 nozzle.json @@ -1,13 +1,14 @@ { "type": "filament", - "name": "FlashForge PPS-CF @FF G4P 0.6 nozzle", + "name": "Flashforge PPS-CF @FF G4P 0.6 nozzle", "inherits": "FusRock PET-CF @G3U 0.6 Nozzle", + "renamed_from": "FlashForge PPS-CF @FF G4P 0.6 nozzle;FlashForge PPS-CF FF G4P 0.6 nozzle", "from": "system", - "setting_id": "94vPnztRcpnbfAKx", - "filament_id": "OFogbnCb", + "setting_id": "dSI79hoaa9jLGvhz", + "filament_id": "OFTSXxzE", "instantiation": "true", "filament_vendor": [ - "Generic" + "Flashforge" ], "close_fan_the_first_x_layers": [ "2" @@ -49,7 +50,7 @@ "15" ], "filament_settings_id": [ - "FlashForge PPS-CF @FF G4P 0.6 nozzle" + "Flashforge PPS-CF @FF G4P 0.6 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n;right_extruder_material:PPS" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json index 4f3cc891e3..90d94b9c29 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "rSYGG2ni41NDVw6l", - "filament_id": "OFQiq4fb", + "filament_id": "OFaaddbQ", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json index 206933a8fe..03fdb6117e 100644 --- a/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge PVA @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic PVA @System", "from": "system", "setting_id": "nwgbMjLRJLtJ04ri", - "filament_id": "OFQiq4fb", + "filament_id": "OFaaddbQ", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json index f3625e4bea..1514862e44 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "f75oElm4zB0hukIj", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json index c08ad7948b..d6fda96505 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "o4KYTpJF6KksX2mg", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json index e0d6448c72..27d6515ccb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "HUSkDZL6rCpz0lRk", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json index a37ab23204..7db519170a 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "8xgu0AnMuKbPWyVd", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json index a9ceca338a..2123c33993 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "Rgqt3MjxOye5EaFt", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json index df74375b18..a5ce644702 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 65D @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "PBFsW5qhVbQteYh5", - "filament_id": "OFKpQTJI", + "filament_id": "OFSDfduA", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json index 6eca69f2b4..897054d8ee 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "TPbHmcFyPyjvoERv", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json index c0e5b624e4..adb4820faa 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "zLMgsyDmdoXHhqFv", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "45" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json index 06a632a6c5..5c5f690cd2 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF AD5X.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "ThakVhjfpgnAlEVH", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "cool_plate_temp": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json index 676484711e..b67887cc8b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "M0ozqaD3jSKoD6fm", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json index 01fd9f2752..ae6049673b 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "ob8IkvzNt9CWCzbk", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json index 9f72e9eaca..37bef9c3f6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "NzxX1lyRJ7wLUihV", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json index ecd3bbb764..c5b24e9e04 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "4FIGiheSGvSJPw3s", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json index bcfe2516a2..23cd8d6326 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PETG @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "1GNqSBaQitzhYSx7", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json index 22373250ff..eb2a423bca 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.6 nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "eOhMygyxaccdov7o", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json index 7d393a9b9d..f4b91222e7 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P 0.8 HF nozzle.json @@ -4,7 +4,10 @@ "inherits": "Generic PLA @Flashforge G3U 0.6 Nozzle", "from": "system", "setting_id": "LxooKiOkRncktNLf", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json index cdcee7c997..9e675ccd52 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF G4P.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "HdoJfbQr0uwQ6Vwb", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json index c3042b14b1..aa2f6251dc 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @Flashforge", "from": "system", "setting_id": "J4EaFhnpkLDcl5wH", - "filament_id": "OFAf9pJF", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "filament_settings_id": [ "Flashforge TPU 95A" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json index 1daa3b0189..5a4e304862 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "fd5bACFa33J7aTdp", - "filament_id": "OF995YXg", + "filament_id": "OF8GtyKJ", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json index 3145267db2..428afe7f1c 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-64D @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "hrcELA2qEMkZ6Wvj", - "filament_id": "OF995YXg", + "filament_id": "OF8GtyKJ", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json index 96c3798a71..407e92aed8 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "Lis7BZ3lMkoX5KQt", - "filament_id": "OF41jaTh", + "filament_id": "OFwlZ7gH", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json index 18e401489e..611724b460 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-90A @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "xY03Hiidu5YNSUyZ", - "filament_id": "OF41jaTh", + "filament_id": "OFwlZ7gH", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json index 3fee2a98b2..0c27bb94c6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "AHu6wNV3zcPBusOF", - "filament_id": "OFNWnx2c", + "filament_id": "OFx0WlzS", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "additional_cooling_fan_speed": [ "40" diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json index d7625a7d8d..e3b05721e6 100644 --- a/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json +++ b/resources/profiles/Flashforge/filament/Flashforge TPU-95A @FF C5P.json @@ -4,7 +4,10 @@ "inherits": "Generic TPU @System", "from": "system", "setting_id": "8MBRqfLIRdhxk1dF", - "filament_id": "OFNWnx2c", + "filament_id": "OFx0WlzS", + "filament_vendor": [ + "Flashforge" + ], "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json index 4b212a6283..5ad0cca8f6 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5.json @@ -2,6 +2,7 @@ "type": "filament", "name": "FusRock PAHT-CF @FF C5", "inherits": "Generic PA-CF @System", + "renamed_from": "Flashforge PAHT-CF @FF C5;Flashforge PAHT-CF FF C5", "from": "system", "setting_id": "gZqAGVOlWR79n7hN", "filament_id": "OFKW5hEW", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json index a9e1bce236..b23f871add 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF C5P.json @@ -2,6 +2,7 @@ "type": "filament", "name": "FusRock PAHT-CF @FF C5P", "inherits": "Generic PA-CF @System", + "renamed_from": "Flashforge PAHT-CF @FF C5P;Flashforge PAHT-CF FF C5P", "from": "system", "setting_id": "nJF1lCOavNNh4yHs", "filament_id": "OFKW5hEW", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index f8595f254b..22ea704736 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -2,6 +2,7 @@ "type": "filament", "name": "FusRock PAHT-CF @FF G4", "inherits": "Generic PLA-CF10 @Flashforge", + "renamed_from": "Flashforge PAHT-CF @FF G4;Flashforge PAHT-CF FF G4", "from": "system", "setting_id": "nH6pwFYsPyBzL1EB", "filament_id": "OFKW5hEW", diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 8634877859..5156df9505 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -2,6 +2,7 @@ "type": "filament", "name": "FusRock PAHT-CF @FF G4P", "inherits": "Generic PLA-CF10 @Flashforge", + "renamed_from": "Flashforge PAHT-CF @FF G4P;Flashforge PAHT-CF FF G4P", "from": "system", "setting_id": "wmWMf3MfmbfZx2o8", "filament_id": "OFKW5hEW", diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json index 128926c992..710554df5a 100644 --- a/resources/profiles/Ratrig.json +++ b/resources/profiles/Ratrig.json @@ -1,6 +1,6 @@ { "name": "RatRig", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "RatRig configurations", "machine_model_list": [ @@ -313,8 +313,8 @@ "sub_path": "filament/fdm_filament_tpu.json" }, { - "name": "RatRig BigNozzle ABS", - "sub_path": "filament/RatRig BigNozzle ABS.json" + "name": "Generic ABS BigNozzle @RatRig", + "sub_path": "filament/Generic ABS BigNozzle @RatRig.json" }, { "name": "Generic ABS @RatRig", @@ -325,8 +325,8 @@ "sub_path": "filament/RatRig PunkFil ABS.json" }, { - "name": "RatRig BigNozzle ASA", - "sub_path": "filament/RatRig BigNozzle ASA.json" + "name": "Generic ASA BigNozzle @RatRig", + "sub_path": "filament/Generic ASA BigNozzle @RatRig.json" }, { "name": "Generic ASA @RatRig", @@ -345,12 +345,12 @@ "sub_path": "filament/Generic PC @RatRig.json" }, { - "name": "RatRig BigNozzle PCTG", - "sub_path": "filament/RatRig BigNozzle PCTG.json" + "name": "Generic PCTG BigNozzle @RatRig", + "sub_path": "filament/Generic PCTG BigNozzle @RatRig.json" }, { - "name": "RatRig BigNozzle PETG", - "sub_path": "filament/RatRig BigNozzle PETG.json" + "name": "Generic PETG BigNozzle @RatRig", + "sub_path": "filament/Generic PETG BigNozzle @RatRig.json" }, { "name": "Generic PCTG @RatRig", @@ -369,8 +369,8 @@ "sub_path": "filament/RatRig PunkFil PETG CF.json" }, { - "name": "RatRig BigNozzle PLA", - "sub_path": "filament/RatRig BigNozzle PLA.json" + "name": "Generic PLA BigNozzle @RatRig", + "sub_path": "filament/Generic PLA BigNozzle @RatRig.json" }, { "name": "Generic PLA @RatRig", @@ -385,8 +385,8 @@ "sub_path": "filament/Generic PVA @RatRig.json" }, { - "name": "RatRig BigNozzle TPU", - "sub_path": "filament/RatRig BigNozzle TPU.json" + "name": "Generic TPU BigNozzle @RatRig", + "sub_path": "filament/Generic TPU BigNozzle @RatRig.json" }, { "name": "Generic TPU @RatRig", diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json b/resources/profiles/Ratrig/filament/Generic ABS BigNozzle @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json rename to resources/profiles/Ratrig/filament/Generic ABS BigNozzle @RatRig.json index 698d14aba2..3d071c779a 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ABS.json +++ b/resources/profiles/Ratrig/filament/Generic ABS BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle ABS", + "name": "Generic ABS BigNozzle @RatRig", "inherits": "fdm_filament_abs", + "renamed_from": "RatRig BigNozzle ABS", "from": "system", - "setting_id": "oE39mwr3PCpeBxZN", - "filament_id": "OFtplX8o", + "setting_id": "4GJ4GHOuApWBbQoS", + "filament_id": "OFnyHfcv", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json b/resources/profiles/Ratrig/filament/Generic ASA BigNozzle @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json rename to resources/profiles/Ratrig/filament/Generic ASA BigNozzle @RatRig.json index c16d3c7869..f6f85f78e7 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle ASA.json +++ b/resources/profiles/Ratrig/filament/Generic ASA BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle ASA", + "name": "Generic ASA BigNozzle @RatRig", "inherits": "fdm_filament_asa", + "renamed_from": "RatRig BigNozzle ASA", "from": "system", - "setting_id": "GGkbwdd79jAXnwuf", - "filament_id": "OFgcryz4", + "setting_id": "n2V9gkhbqWJzsQBK", + "filament_id": "OF4GM5qX", "instantiation": "true", "filament_flow_ratio": [ "0.92" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json b/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json rename to resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json index ce0edbd3b0..0592709a82 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PCTG.json +++ b/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle PCTG", + "name": "Generic PCTG BigNozzle @RatRig", "inherits": "fdm_filament_pet", + "renamed_from": "RatRig BigNozzle PCTG", "from": "system", - "setting_id": "uCKZhFAPvEa2wKnA", - "filament_id": "OFFC0VqZ", + "setting_id": "HPaol79uY9NdhasQ", + "filament_id": "OFYfAcLY", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json b/resources/profiles/Ratrig/filament/Generic PETG BigNozzle @RatRig.json similarity index 93% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json rename to resources/profiles/Ratrig/filament/Generic PETG BigNozzle @RatRig.json index 1595d776b2..213f41628c 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PETG.json +++ b/resources/profiles/Ratrig/filament/Generic PETG BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle PETG", + "name": "Generic PETG BigNozzle @RatRig", "inherits": "fdm_filament_pet", + "renamed_from": "RatRig BigNozzle PETG", "from": "system", - "setting_id": "bf3YMNVRSE1i1E8N", - "filament_id": "OFmexHIS", + "setting_id": "pRM6IVX5T3y6Ywj4", + "filament_id": "OFvD0Qqt", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json b/resources/profiles/Ratrig/filament/Generic PLA BigNozzle @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json rename to resources/profiles/Ratrig/filament/Generic PLA BigNozzle @RatRig.json index 75be42804b..08d546aafc 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle PLA.json +++ b/resources/profiles/Ratrig/filament/Generic PLA BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle PLA", + "name": "Generic PLA BigNozzle @RatRig", "inherits": "fdm_filament_pla", + "renamed_from": "RatRig BigNozzle PLA", "from": "system", - "setting_id": "dyG3zLuhX2qe8XJP", - "filament_id": "OFiuJSmy", + "setting_id": "WEI4QiKyANQOK7dG", + "filament_id": "OFqFRiLb", "instantiation": "true", "filament_flow_ratio": [ "0.94" diff --git a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json b/resources/profiles/Ratrig/filament/Generic TPU BigNozzle @RatRig.json similarity index 92% rename from resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json rename to resources/profiles/Ratrig/filament/Generic TPU BigNozzle @RatRig.json index c220b6dc58..4714f57d5a 100644 --- a/resources/profiles/Ratrig/filament/RatRig BigNozzle TPU.json +++ b/resources/profiles/Ratrig/filament/Generic TPU BigNozzle @RatRig.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "RatRig BigNozzle TPU", + "name": "Generic TPU BigNozzle @RatRig", "inherits": "fdm_filament_tpu", + "renamed_from": "RatRig BigNozzle TPU", "from": "system", - "setting_id": "wLJ3X05Jnz1EqeOI", - "filament_id": "OFsNJjpc", + "setting_id": "9UWg2cO61XFdlWxo", + "filament_id": "OF5tX6va", "instantiation": "true", "filament_max_volumetric_speed": [ "5" diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index b41888a840..0fb50e0560 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -2352,6 +2352,12 @@ ], "successor": "OFDvXujf" }, + "OF1bQyX2": { + "claims": [ + "Flashforge/Flashforge PLA Matte" + ], + "successor": "OF6qAuyi" + }, "OF1daEUW": { "claims": [ "Anker/Anker Generic PETG-CF" @@ -2370,6 +2376,12 @@ ], "successor": "OFcVLpNA" }, + "OF2bZtyg": { + "claims": [ + "Flashforge/Flashforge PLA-CF" + ], + "successor": "OF9cAwMK" + }, "OF2mgDsI": { "claims": [ "Vzbot/Vzbot Generic PLA" @@ -2396,6 +2408,12 @@ ], "successor": "OFYPdQJh" }, + "OF41jaTh": { + "claims": [ + "Flashforge/Flashforge TPU-90A" + ], + "successor": "OFwlZ7gH" + }, "OF42ZDpN": { "claims": [ "Flashforge/FusRock PAHT" @@ -2450,6 +2468,12 @@ ], "successor": "OFLakOUI" }, + "OF5NQFKI": { + "claims": [ + "Flashforge/Flashforge PLA Galaxy" + ], + "successor": "OFJJ0Ar3" + }, "OF5Zk4e1": { "claims": [ "Anycubic/Anycubic Generic ABS" @@ -2463,6 +2487,12 @@ ], "successor": "OFDSrzZ8" }, + "OF5w29Kq": { + "claims": [ + "Flashforge/Flashforge HS PETG" + ], + "successor": "OFDxxTpW" + }, "OF67EdL5": { "claims": [ "Sovol/Sovol SV06 ACE ABS" @@ -2523,6 +2553,12 @@ ], "successor": "OFgbpcy9" }, + "OF6ueBwd": { + "claims": [ + "Flashforge/Flashforge PLA Pro" + ], + "successor": "OFm4SivL" + }, "OF6vKLaU": { "claims": [ "Artillery/Artillery Generic ASA" @@ -2583,6 +2619,12 @@ ], "successor": "OFLakOUI" }, + "OF995YXg": { + "claims": [ + "Flashforge/Flashforge TPU-64D" + ], + "successor": "OF8GtyKJ" + }, "OF9fOPpd": { "claims": [ "Vzbot/Vzbot Generic PC" @@ -2601,6 +2643,12 @@ ], "successor": "OFDSrzZ8" }, + "OFAf9pJF": { + "claims": [ + "Flashforge/Flashforge TPU 95A" + ], + "successor": "OFSqIcJC" + }, "OFB09fpe": { "claims": [ "Ratrig/RatRig Generic TPU" @@ -2644,6 +2692,12 @@ ], "successor": "OFLPAxz3" }, + "OFBK6zAi": { + "claims": [ + "Flashforge/Flashforge PETG-CF" + ], + "successor": "OFuFEtKX" + }, "OFBpcB0a": { "claims": [ "TwoTrees/TwoTrees Generic HS PLA" @@ -2714,6 +2768,12 @@ ], "successor": "OFgbpcy9" }, + "OFEMfQsX": { + "claims": [ + "Flashforge/Flashforge PETG Basic" + ], + "successor": "OFYYeMyQ" + }, "OFENzGSm": { "claims": [ "FLSun/FLSun T1 TPU" @@ -2738,6 +2798,12 @@ ], "successor": "OFWbdGsC" }, + "OFFC0VqZ": { + "claims": [ + "Ratrig/RatRig BigNozzle PCTG" + ], + "successor": "OFYfAcLY" + }, "OFFZ0BBL": { "claims": [ "FlyingBear/FlyingBear Generic PLA" @@ -2786,6 +2852,18 @@ ], "successor": "OF6rdQ6M" }, + "OFH5UH6P": { + "claims": [ + "Flashforge/Flashforge ABS-GF" + ], + "successor": "OFojbdhR" + }, + "OFH6Pjxe": { + "claims": [ + "Flashforge/Flashforge PLA Matte" + ], + "successor": "OF6qAuyi" + }, "OFHFZ1Te": { "claims": [ "Prusa/Prusa Generic PLA Silk" @@ -2854,6 +2932,12 @@ ], "successor": "OFQyyO0l" }, + "OFIxitiU": { + "claims": [ + "Flashforge/Flashforge PLA Basic" + ], + "successor": "OFJ3F2jm" + }, "OFIy3kLw": { "claims": [ "Prusa/Prusa Generic PA" @@ -2902,6 +2986,12 @@ ], "successor": "OFzRtFM9" }, + "OFK74HJD": { + "claims": [ + "Flashforge/Flashforge PLA Pro" + ], + "successor": "OFm4SivL" + }, "OFKNAhls": { "claims": [ "Qidi/Qidi Generic PETG" @@ -2914,6 +3004,12 @@ ], "successor": "OFvmwTZE" }, + "OFKpQTJI": { + "claims": [ + "Flashforge/Flashforge TPU 65D" + ], + "successor": "OFSDfduA" + }, "OFKuTr12": { "claims": [ "Tiertime/Tiertime Generic PE" @@ -2944,6 +3040,12 @@ ], "successor": "OFhQfUQY" }, + "OFLYDIb8": { + "claims": [ + "Flashforge/Flashforge PLA Silk" + ], + "successor": "OFgjgN35" + }, "OFLrdHse": { "claims": [ "Flashforge/Flashforge Generic HS PLA" @@ -2968,6 +3070,12 @@ ], "successor": "OFgbpcy9" }, + "OFMIma8C": { + "claims": [ + "Flashforge/Flashforge PLA Luminous" + ], + "successor": "OFdqkWtz" + }, "OFMIurFh": { "claims": [ "Creality/Creality HF Generic Speed PLA" @@ -3006,6 +3114,12 @@ ], "successor": "OFg8ndtj" }, + "OFMyLYV8": { + "claims": [ + "Flashforge/Flashforge PETG Transparent" + ], + "successor": "OFwjMiKL" + }, "OFN7aNHe": { "claims": [ "Tiertime/Tiertime Generic PC" @@ -3036,6 +3150,12 @@ ], "successor": "OFDSrzZ8" }, + "OFNWnx2c": { + "claims": [ + "Flashforge/Flashforge TPU-95A" + ], + "successor": "OFx0WlzS" + }, "OFNX8GI1": { "claims": [ "Sovol/Sovol Zero ABS" @@ -3084,6 +3204,12 @@ ], "successor": "OF7lOgYF" }, + "OFPQfNAf": { + "claims": [ + "Flashforge/Flashforge PETG Pro" + ], + "successor": "OFXiArjA" + }, "OFPdhDlK": { "claims": [ "Anycubic/Anycubic Generic PA-CF" @@ -3132,12 +3258,24 @@ ], "successor": "OFWbdGsC" }, + "OFQZeyZv": { + "claims": [ + "Flashforge/Flashforge PLA Buint Ti" + ], + "successor": "OF8O09RG" + }, "OFQbqeN7": { "claims": [ "Qidi/Qidi Generic PA" ], "successor": "OFg8ndtj" }, + "OFQiq4fb": { + "claims": [ + "Flashforge/Flashforge PVA" + ], + "successor": "OFaaddbQ" + }, "OFQswlnF": { "claims": [ "Tiertime/Tiertime Generic PA" @@ -3224,6 +3362,12 @@ ], "successor": "OFmCOW2Y" }, + "OFShw1X8": { + "claims": [ + "Flashforge/Flashforge ABS Basic" + ], + "successor": "OFibWuBd" + }, "OFTKFAZ4": { "claims": [ "Tiertime/Tiertime Generic PCTG" @@ -3260,6 +3404,12 @@ ], "successor": "OFY9muEs" }, + "OFUCpLaL": { + "claims": [ + "Flashforge/FlashForge PPS" + ], + "successor": "OFlgMgNM" + }, "OFUScM0D": { "claims": [ "Flashforge/FusRock S-Multi" @@ -3338,6 +3488,12 @@ ], "successor": "OFY9muEs" }, + "OFWnSvGu": { + "claims": [ + "Flashforge/Flashforge ASA-GF" + ], + "successor": "OFrZDhVt" + }, "OFWof1Ap": { "claims": [ "FLSun/FLSun Generic ABS" @@ -3460,6 +3616,12 @@ ], "successor": "OFCn83wF" }, + "OFaBwRvT": { + "claims": [ + "Flashforge/Flashforge ASA Basic" + ], + "successor": "OFFFg2Pf" + }, "OFaFNP2U": { "claims": [ "Sovol/Sovol SV07 PLA" @@ -3478,6 +3640,12 @@ ], "successor": "OFLakOUI" }, + "OFaz8VoR": { + "claims": [ + "Flashforge/Flashforge HIPS" + ], + "successor": "OFvaLVML" + }, "OFbeeFkl": { "claims": [ "OrcaArena/OrcaArena Generic PLA Silk" @@ -3575,6 +3743,12 @@ ], "successor": "OFgbpcy9" }, + "OFe6sfXS": { + "claims": [ + "Flashforge/FlashForge PC" + ], + "successor": "OFWXCbVF" + }, "OFe7Sx5B": { "claims": [ "Sovol/Sovol SV06 ACE PETG" @@ -3606,6 +3780,12 @@ ], "successor": "OFi6PfUM" }, + "OFec7Qiw": { + "claims": [ + "Flashforge/Flashforge PLA Sparkle" + ], + "successor": "OFV5c8hG" + }, "OFetENFF": { "claims": [ "OrcaArena/OrcaArena Generic ABS" @@ -3654,6 +3834,18 @@ ], "successor": "OFWbdGsC" }, + "OFgcryz4": { + "claims": [ + "Ratrig/RatRig BigNozzle ASA" + ], + "successor": "OF4GM5qX" + }, + "OFgf4gZa": { + "claims": [ + "Flashforge/Flashforge PA" + ], + "successor": "OFEvEfw5" + }, "OFgvOmM2": { "claims": [ "Anker/Anker Generic PETG", @@ -3668,6 +3860,12 @@ ], "successor": "OFgbpcy9" }, + "OFi7Bf0F": { + "claims": [ + "Flashforge/Flashforge ABS-CF" + ], + "successor": "OFYTIMbj" + }, "OFiCHnso": { "claims": [ "Prusa/Prusa Generic PLA" @@ -3692,6 +3890,12 @@ ], "successor": "OFDvXujf" }, + "OFiuJSmy": { + "claims": [ + "Ratrig/RatRig BigNozzle PLA" + ], + "successor": "OFqFRiLb" + }, "OFixgF4N": { "claims": [ "Flashforge/FusRock S-Multi" @@ -3722,6 +3926,12 @@ ], "successor": "OFsijjtH" }, + "OFkwIWwc": { + "claims": [ + "Flashforge/Flashforge PLA Color Change" + ], + "successor": "OFMkAW6r" + }, "OFl2SXmv": { "claims": [ "Prusa/Prusa Generic FLEX" @@ -3764,12 +3974,24 @@ ], "successor": "OFWbdGsC" }, + "OFmQkb3c": { + "claims": [ + "Flashforge/Flashforge HS PLA Burnt Ti" + ], + "successor": "OF8O09RG" + }, "OFma52eS": { "claims": [ "Blocks/Blocks Generic ABS" ], "successor": "OFY9muEs" }, + "OFmexHIS": { + "claims": [ + "Ratrig/RatRig BigNozzle PETG" + ], + "successor": "OFvD0Qqt" + }, "OFmhWhEf": { "claims": [ "Creality/Creality HF Generic PLA" @@ -3788,6 +4010,12 @@ ], "successor": "OFLPAxz3" }, + "OFnMv3W5": { + "claims": [ + "Flashforge/Flashforge HS PLA" + ], + "successor": "OFIK2H3G" + }, "OFndmfJ1": { "claims": [ "Anker/Anker Generic PLA", @@ -3838,6 +4066,12 @@ ], "successor": "OFmpMwxS" }, + "OFogbnCb": { + "claims": [ + "Flashforge/FlashForge PPS-CF" + ], + "successor": "OFTSXxzE" + }, "OFoqrHTw": { "claims": [ "FLSun/FLSun S1 PLA High Speed" @@ -3928,6 +4162,12 @@ ], "successor": "OFCD8qiU" }, + "OFrnkURQ": { + "claims": [ + "Flashforge/Flashforge PLA Metal" + ], + "successor": "OFAebKg8" + }, "OFrrMLDw": { "claims": [ "Flashforge/Flashforge Generic PLA-SILK" @@ -3964,6 +4204,12 @@ ], "successor": "OFYPdQJh" }, + "OFsNJjpc": { + "claims": [ + "Ratrig/RatRig BigNozzle TPU" + ], + "successor": "OF5tX6va" + }, "OFsXOMoX": { "claims": [ "Qidi/Qidi Generic PLA+" @@ -4000,6 +4246,12 @@ ], "successor": "OFDSrzZ8" }, + "OFtplX8o": { + "claims": [ + "Ratrig/RatRig BigNozzle ABS" + ], + "successor": "OFnyHfcv" + }, "OFtsVp4v": { "claims": [ "SecKit/SecKit Generic PA-CF" @@ -4012,6 +4264,18 @@ ], "successor": "OFDSrzZ8" }, + "OFuFqYyG": { + "claims": [ + "Flashforge/Flashforge PAHT-CF" + ], + "successor": "OFKW5hEW" + }, + "OFuGRMNV": { + "claims": [ + "Flashforge/Flashforge PA-CF" + ], + "successor": "OFGxuI0n" + }, "OFuSwKgm": { "claims": [ "Tiertime/Tiertime Generic PLA" @@ -4048,6 +4312,12 @@ ], "successor": "OFq9svOz" }, + "OFvVxvzZ": { + "claims": [ + "Flashforge/Flashforge PLA Metal" + ], + "successor": "OFAebKg8" + }, "OFwMFLAm": { "claims": [ "Artillery/Artillery Generic ABS" @@ -4072,6 +4342,12 @@ ], "successor": "OFWbdGsC" }, + "OFxMGIPt": { + "claims": [ + "Flashforge/Flashforge PPS" + ], + "successor": "OFlgMgNM" + }, "OFxTMg1d": { "claims": [ "FlyingBear/FlyingBear Generic PC" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index b3e38041f3..5eedb85a5e 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -19,8 +19,6 @@ "Flashforge/Flashforge HS PLA @FF C5P", "Flashforge/Flashforge PA-CF @FF C5", "Flashforge/Flashforge PA-CF @FF C5P", - "Flashforge/Flashforge PAHT-CF @FF C5", - "Flashforge/Flashforge PAHT-CF @FF C5P", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", "Flashforge/Flashforge PETG Pro @FF C5", @@ -29,12 +27,6 @@ "Flashforge/Flashforge PETG Transparent @FF C5P", "Flashforge/Flashforge PETG-CF @FF C5", "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Basic @FF C5", "Flashforge/Flashforge PLA Basic @FF C5P", "Flashforge/Flashforge PLA Color Change @FF C5", @@ -43,6 +35,12 @@ "Flashforge/Flashforge PLA Galaxy @FF C5P", "Flashforge/Flashforge PLA Luminous @FF C5", "Flashforge/Flashforge PLA Luminous @FF C5P", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Silk @FF C5", "Flashforge/Flashforge PLA Silk @FF C5P", "Flashforge/Flashforge PLA-CF @FF C5", @@ -247,20 +245,6 @@ "Elegoo/Generic PETG PRO @Elegoo", "Elegoo/Generic PETG-CF @Elegoo Centauri", "Elegoo/Generic PLA Matte @Elegoo", - "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", - "Flashforge/FlashForge PC @FF G4 0.6 nozzle", - "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", - "Flashforge/FlashForge PC @FF G4P 0.6 HF nozzle", - "Flashforge/FlashForge PC @FF G4P 0.6 nozzle", - "Flashforge/FlashForge PC @FF G4P 0.8 HF nozzle", - "Flashforge/FlashForge PPS @FF G4 0.6 HF nozzle", - "Flashforge/FlashForge PPS @FF G4 0.6 nozzle", - "Flashforge/FlashForge PPS @FF G4 0.8 HF nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.6 HF nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.6 nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.8 HF nozzle", - "Flashforge/FlashForge PPS-CF @FF G4 0.6 nozzle", - "Flashforge/FlashForge PPS-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge ABS @FF AD5M 0.25 Nozzle", "Flashforge/Flashforge ABS Basic", "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", @@ -389,10 +373,12 @@ "Flashforge/Flashforge PA12-CF", "Flashforge/Flashforge PA6-CF", "Flashforge/Flashforge PA66-CF", - "Flashforge/Flashforge PAHT-CF @FF C5", - "Flashforge/Flashforge PAHT-CF @FF C5P", - "Flashforge/Flashforge PAHT-CF @FF G4", - "Flashforge/Flashforge PAHT-CF @FF G4P", + "Flashforge/Flashforge PC @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PC @FF G4 0.6 nozzle", + "Flashforge/Flashforge PC @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PC @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PC @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PC @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PET-CF", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", @@ -449,12 +435,6 @@ "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", "Flashforge/Flashforge PETG-CF @FF G4P", "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Basic", "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PLA Basic @FF AD5X", @@ -475,8 +455,6 @@ "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PLA Basic @FF G4P HF", - "Flashforge/Flashforge PLA Buint Ti @FF G4 0.8 nozzle", - "Flashforge/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", "Flashforge/Flashforge PLA Color Change", "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PLA Color Change @FF AD5X", @@ -541,6 +519,8 @@ "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", "Flashforge/Flashforge PLA Matte @FF G4", "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", @@ -559,6 +539,8 @@ "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", "Flashforge/Flashforge PLA Metal @FF G4", "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", @@ -577,6 +559,8 @@ "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Pro @FF G4", "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", @@ -641,12 +625,20 @@ "Flashforge/Flashforge PPA-CF @FF C5P", "Flashforge/Flashforge PPA-GF", "Flashforge/Flashforge PPS @FF G4", + "Flashforge/Flashforge PPS @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PPS @FF G4 0.6 nozzle", + "Flashforge/Flashforge PPS @FF G4 0.8 HF nozzle", "Flashforge/Flashforge PPS @FF G4P", + "Flashforge/Flashforge PPS @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PPS @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PPS @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PPS-CF", "Flashforge/Flashforge PPS-CF @FF C5", "Flashforge/Flashforge PPS-CF @FF C5P", "Flashforge/Flashforge PPS-CF @FF G4", + "Flashforge/Flashforge PPS-CF @FF G4 0.6 nozzle", "Flashforge/Flashforge PPS-CF @FF G4P", + "Flashforge/Flashforge PPS-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge PVA @FF C5", "Flashforge/Flashforge PVA @FF C5P", "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", @@ -1592,9 +1584,6 @@ "OF1W7c76": [ "Qidi/QIDI ASA-CF" ], - "OF1bQyX2": [ - "Flashforge/Flashforge PLA Matte" - ], "OF1d7c3A": [ "Snapmaker/Snapmaker ASA" ], @@ -1628,9 +1617,6 @@ "OF2Z1nT5": [ "OrcaFilamentLibrary/FilAr PETG Azul Imperial" ], - "OF2bZtyg": [ - "Flashforge/Flashforge PLA-CF" - ], "OF2hfMcG": [ "OrcaArena/Arena PLA-CF" ], @@ -1671,9 +1657,6 @@ "OF3ydJTT": [ "InfiMech/InfiMech PLA Hyper" ], - "OF41jaTh": [ - "Flashforge/Flashforge TPU-90A" - ], "OF43Raws": [ "Snapmaker/PolyTerra J1 PLA" ], @@ -1686,6 +1669,9 @@ "OF4APyxe": [ "Creality/Hyper PAHT-CF" ], + "OF4GM5qX": [ + "Ratrig/Generic ASA BigNozzle" + ], "OF4KsW72": [], "OF4Nhggz": [ "Artillery/Artillery PLA Basic+" @@ -1732,9 +1718,6 @@ "Qidi/PolyLite PLA", "Snapmaker/PolyLite PLA" ], - "OF5NQFKI": [ - "Flashforge/Flashforge PLA Galaxy" - ], "OF5NqBfC": [ "Wanhao France/YUMI PETG" ], @@ -1767,15 +1750,15 @@ "Snapmaker/Polymaker PLA Pro" ], "OF5rnhjh": [], + "OF5tX6va": [ + "Ratrig/Generic TPU BigNozzle" + ], "OF5umxxT": [ "Snapmaker/PolyLite PLA Glow" ], "OF5vgi2G": [ "OrcaFilamentLibrary/FilAr PLA-mate Azul" ], - "OF5w29Kq": [ - "Flashforge/Flashforge HS PETG" - ], "OF65InrS": [ "Snapmaker/Snapmaker TPU" ], @@ -1808,13 +1791,13 @@ "OF6kj4jI": [ "iQ/Fiberthree PACF Pro P2" ], + "OF6qAuyi": [ + "Flashforge/Flashforge PLA Matte" + ], "OF6rdQ6M": [ "Creality/Generic PPS-CF", "Tiertime/Generic PPS-CF" ], - "OF6ueBwd": [ - "Flashforge/Flashforge PLA Pro" - ], "OF70zbGS": [ "Creality/Hyper L-W PLA" ], @@ -1859,12 +1842,18 @@ "OF8GnyFU": [ "Creality/Hyper ABS" ], + "OF8GtyKJ": [ + "Flashforge/Flashforge TPU-64D" + ], "OF8Hx3Pi": [ "Cubicon/Cubicon PETG" ], "OF8Jl6NT": [ "Snapmaker/Snapmaker J1 PET" ], + "OF8O09RG": [ + "Flashforge/Flashforge HS PLA Burnt Ti" + ], "OF8Tlg47": [ "OrcaFilamentLibrary/Generic PPA-GF", "Tiertime/Generic PPA-GF" @@ -1891,9 +1880,6 @@ "OF8wE5l7": [ "Artillery/Artillery PETG Basic" ], - "OF995YXg": [ - "Flashforge/Flashforge TPU-64D" - ], "OF99UMPq": [ "BBL/COEX ABS", "OrcaFilamentLibrary/COEX ABS" @@ -1914,6 +1900,9 @@ "OF9UJOGF": [ "Anycubic/Anycubic PETG-CF" ], + "OF9cAwMK": [ + "Flashforge/Flashforge PLA-CF" + ], "OF9emAI9": [ "Ratrig/RatRig PunkFil PETG" ], @@ -1938,8 +1927,8 @@ "OFAZllAN": [ "Artillery/Artillery PLA-CF" ], - "OFAf9pJF": [ - "Flashforge/Flashforge TPU 95A" + "OFAebKg8": [ + "Flashforge/Flashforge PLA Metal" ], "OFAnyRUI": [ "OrcaFilamentLibrary/Bambu Support For PLA" @@ -1956,9 +1945,6 @@ "OFBJAdLw": [ "LH/LHS PCTG" ], - "OFBK6zAi": [ - "Flashforge/Flashforge PETG-CF" - ], "OFBLktDy": [ "Creality/Soleyin Basic PETG" ], @@ -2141,6 +2127,9 @@ "OFDxfPgH": [ "OrcaFilamentLibrary/Bambu PLA Sparkle" ], + "OFDxxTpW": [ + "Flashforge/Flashforge HS PETG" + ], "OFE0NFRh": [ "BBL/COEX TPU 60A", "OrcaFilamentLibrary/COEX TPU 60A" @@ -2148,9 +2137,6 @@ "OFEGNJD4": [ "OrcaFilamentLibrary/Bambu PLA Silk" ], - "OFEMfQsX": [ - "Flashforge/Flashforge PETG Basic" - ], "OFEOnBj6": [ "Snapmaker/Snapmaker PLA Lite" ], @@ -2190,6 +2176,9 @@ "OFEswT5W": [ "OrcaFilamentLibrary/Bambu PLA-CF" ], + "OFEvEfw5": [ + "Flashforge/Flashforge PA" + ], "OFEwRwmL": [ "Cubicon/Cubicon PLA" ], @@ -2206,8 +2195,8 @@ "OFFAWVf0": [ "Qidi/QIDI PC-ABS-FR" ], - "OFFC0VqZ": [ - "Ratrig/RatRig BigNozzle PCTG" + "OFFFg2Pf": [ + "Flashforge/Flashforge ASA Basic" ], "OFFNYwWR": [ "OrcaFilamentLibrary/Bambu PA-CF" @@ -2250,7 +2239,6 @@ "OFGVwfK0": [ "OrcaFilamentLibrary/FilAr PLA-mate Gris" ], - "OFGc282l": [], "OFGcLA5R": [ "OrcaFilamentLibrary/FilAr PLA-mate Beige" ], @@ -2273,18 +2261,15 @@ "OFGxC8gB": [ "Creality/CR-Wood" ], + "OFGxuI0n": [ + "Flashforge/Flashforge PA-CF" + ], "OFH2nN08": [ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" ], "OFH57ibH": [ "Snapmaker/Polymaker Silk PLA Family" ], - "OFH5UH6P": [ - "Flashforge/Flashforge ABS-GF" - ], - "OFH6Pjxe": [ - "Flashforge/Flashforge PLA Matte" - ], "OFH7b12v": [ "Creality/Generic PAHT-CF" ], @@ -2323,6 +2308,9 @@ "OFIE3vOf": [ "Anycubic/Anycubic PLA Matte" ], + "OFIK2H3G": [ + "Flashforge/Flashforge HS PLA" + ], "OFIKZxPF": [ "Creality/Generic PLA Wood" ], @@ -2356,13 +2344,16 @@ "OFIxOuOu": [ "Snapmaker/PolyLite PLA Starlight" ], - "OFIxitiU": [ + "OFJ3F2jm": [ "Flashforge/Flashforge PLA Basic" ], "OFJ3HRsR": [ "OrcaArena/Arena ABS" ], "OFJHBEGD": [], + "OFJJ0Ar3": [ + "Flashforge/Flashforge PLA Galaxy" + ], "OFJNeELv": [ "OrcaFilamentLibrary/FILL3D PA" ], @@ -2373,6 +2364,7 @@ "OFJQDUk3": [ "OrcaFilamentLibrary/FilAr PETG Cristal" ], + "OFJS560n": [], "OFJWKoYG": [ "iQ/Material4Print ABS Natur P1" ], @@ -2397,9 +2389,6 @@ "OFJxSqO4": [ "Wanhao France/YUMI PLA Direct Drive" ], - "OFK74HJD": [ - "Flashforge/Flashforge PLA Pro" - ], "OFK8XHPn": [ "Qidi/Overture ABS" ], @@ -2443,9 +2432,6 @@ "OrcaFilamentLibrary/Panchroma PLA Marble", "Snapmaker/Panchroma PLA Marble" ], - "OFKpQTJI": [ - "Flashforge/Flashforge TPU 65D" - ], "OFL9aRjN": [ "Snapmaker/Snapmaker PETG HF" ], @@ -2491,9 +2477,6 @@ "Elegoo/Elegoo Rapid PETG", "OrcaFilamentLibrary/Elegoo Rapid PETG" ], - "OFLYDIb8": [ - "Flashforge/Flashforge PLA Silk" - ], "OFLYDngx": [ "Qidi/Bambu PETG" ], @@ -2549,9 +2532,6 @@ "OFMDHOcT": [ "Qidi/QIDI TPU-Aero" ], - "OFMIma8C": [ - "Flashforge/Flashforge PLA Luminous" - ], "OFMK5gVo": [ "WonderMaker/WonderMaker PLA Basic" ], @@ -2575,6 +2555,9 @@ "OFMjtqTC": [ "OrcaFilamentLibrary/Bambu PLA Wood" ], + "OFMkAW6r": [ + "Flashforge/Flashforge PLA Color Change" + ], "OFMpxamb": [ "Flashforge/Flashforge PETG" ], @@ -2584,9 +2567,6 @@ "OFMuXBmO": [ "OrcaFilamentLibrary/Elas PLA Basic" ], - "OFMyLYV8": [ - "Flashforge/Flashforge PETG Transparent" - ], "OFN9fefN": [ "Cubicon/Cubicon ABS-A100" ], @@ -2605,9 +2585,6 @@ "OFNU9YIW": [ "OrcaFilamentLibrary/FilAr PETG Azul Boreal" ], - "OFNWnx2c": [ - "Flashforge/Flashforge TPU-95A" - ], "OFNemJM6": [ "OrcaFilamentLibrary/FilAr PLA Cobre" ], @@ -2682,9 +2659,6 @@ "OFPHLnoe": [ "Creality/HP-ASA" ], - "OFPQfNAf": [ - "Flashforge/Flashforge PETG Pro" - ], "OFPWPlSC": [ "OrcaFilamentLibrary/FILL3D PP" ], @@ -2764,9 +2738,6 @@ "OFQYaiGg": [ "Snapmaker/Snapmaker PET" ], - "OFQZeyZv": [ - "Flashforge/Flashforge PLA Buint Ti" - ], "OFQbjX3s": [ "OrcaFilamentLibrary/FILL3D PETG" ], @@ -2777,9 +2748,6 @@ "OFQe7sAx": [ "Anycubic/Anycubic PA6-CF" ], - "OFQiq4fb": [ - "Flashforge/Flashforge PVA" - ], "OFQyyO0l": [ "Flashforge/Polymaker CoPA" ], @@ -2833,14 +2801,17 @@ "OrcaFilamentLibrary/Panchroma PLA Silk", "Snapmaker/Panchroma PLA Silk" ], + "OFSDfduA": [ + "Flashforge/Flashforge TPU 65D" + ], "OFSa39yP": [ "Snapmaker/Snapmaker J1 PLA" ], "OFSbGfsz": [ "OrcaArena/Arena PLA Basic" ], - "OFShw1X8": [ - "Flashforge/Flashforge ABS Basic" + "OFSqIcJC": [ + "Flashforge/Flashforge TPU 95A" ], "OFSwbBWS": [], "OFT2jon4": [ @@ -2892,9 +2863,6 @@ "OFU7CKZt": [ "Volumic/Volumic ASA Ultra (Performance)" ], - "OFUCpLaL": [ - "Flashforge/FlashForge PPS" - ], "OFUF7oA4": [ "Creality/Hyper PC" ], @@ -2923,6 +2891,9 @@ "OFV5Q7j2": [ "Snapmaker/Snapmaker J1 TPE" ], + "OFV5c8hG": [ + "Flashforge/Flashforge PLA Sparkle" + ], "OFV5tNw6": [ "Elegoo/Elegoo PET-CF", "OrcaFilamentLibrary/Elegoo PET-CF" @@ -2930,6 +2901,7 @@ "OFV5wEMe": [ "Afinia/Afinia ABS" ], + "OFV8Mxqx": [], "OFVBlUFH": [], "OFVCkX5w": [ "OrcaFilamentLibrary/Bambu TPU 95A" @@ -2967,6 +2939,9 @@ "OFWTRJ1K": [ "OrcaFilamentLibrary/FilAr PLA Bronce" ], + "OFWXCbVF": [ + "Flashforge/Flashforge PC" + ], "OFWYtgCa": [ "Elegoo/Elegoo PLA Wood", "OrcaFilamentLibrary/Elegoo PLA Wood" @@ -2998,9 +2973,6 @@ "OFWgFOjn": [ "Snapmaker/Snapmaker PLA Silk" ], - "OFWnSvGu": [ - "Flashforge/Flashforge ASA-GF" - ], "OFWwF7K7": [ "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" ], @@ -3032,6 +3004,9 @@ "OFXi59OX": [ "Afinia/Afinia Value ABS" ], + "OFXiArjA": [ + "Flashforge/Flashforge PETG Pro" + ], "OFXk1emJ": [ "Artillery/Artillery PLA Basic" ], @@ -3142,10 +3117,19 @@ "Vzbot/Generic PETG", "Z-Bolt/Generic PETG" ], + "OFYTIMbj": [ + "Flashforge/Flashforge ABS-CF" + ], + "OFYYeMyQ": [ + "Flashforge/Flashforge PETG Basic" + ], "OFYd5uS3": [], "OFYezc6s": [ "FlyingBear/FlyingBear TPU" ], + "OFYfAcLY": [ + "Ratrig/Generic PCTG BigNozzle" + ], "OFYuowge": [ "FlyingBear/Other ABS", "InfiMech/Other ABS" @@ -3181,9 +3165,6 @@ "OFZtkHRq": [ "Anycubic/Anycubic PC" ], - "OFaBwRvT": [ - "Flashforge/Flashforge ASA Basic" - ], "OFaDOaNt": [ "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" ], @@ -3211,6 +3192,9 @@ "OFaYz8iE": [ "OrcaFilamentLibrary/Elas PLA Pro" ], + "OFaaddbQ": [ + "Flashforge/Flashforge PVA" + ], "OFaeIx7W": [ "iQ/Polymaker PETG Polymax black P1" ], @@ -3223,9 +3207,6 @@ "OFausr3F": [ "OrcaFilamentLibrary/FilAr PLA-mate Rosa" ], - "OFaz8VoR": [ - "Flashforge/Flashforge HIPS" - ], "OFb5EEM3": [ "Artillery/Artillery PET" ], @@ -3309,6 +3290,9 @@ "OFdkWDiy": [ "Cubicon/Cubicon PLAi21" ], + "OFdqkWtz": [ + "Flashforge/Flashforge PLA Luminous" + ], "OFdrYBmI": [ "Tiertime/Tiertime ASA" ], @@ -3321,9 +3305,6 @@ "OFe61n6v": [ "Ratrig/RatRig PunkFil PETG CF" ], - "OFe6sfXS": [ - "Flashforge/FlashForge PC" - ], "OFe8tuNb": [ "Tiertime/Tiertime PA6-CF" ], @@ -3345,9 +3326,6 @@ "OFeVzkSU": [ "Snapmaker/Fiberon PPS-GF20" ], - "OFec7Qiw": [ - "Flashforge/Flashforge PLA Sparkle" - ], "OFeelsSM": [ "Qidi/HATCHBOX PLA" ], @@ -3509,17 +3487,14 @@ "Tiertime/Generic TPU", "Vzbot/Generic TPU" ], - "OFgcryz4": [ - "Ratrig/RatRig BigNozzle ASA" - ], "OFgdaBOt": [ "Snapmaker/Polymaker Tough PLA Family" ], "OFgeM7nD": [ "Flashforge/Flashforge PA12-CF" ], - "OFgf4gZa": [ - "Flashforge/Flashforge PA" + "OFgjgN35": [ + "Flashforge/Flashforge PLA Silk" ], "OFglhKLM": [ "Qidi/QIDI PLA Rapido 0.8 nozzle" @@ -3616,9 +3591,6 @@ "Creality/Generic PLA-Silk", "Flashforge/Generic PLA-Silk" ], - "OFi7Bf0F": [ - "Flashforge/Flashforge ABS-CF" - ], "OFi90KlM": [ "Volumic/Volumic NYLON Ultra (Performance)" ], @@ -3631,6 +3603,9 @@ "OFiWaoqD": [ "OrcaFilamentLibrary/DREMC PPA-CF" ], + "OFibWuBd": [ + "Flashforge/Flashforge ABS Basic" + ], "OFilAA3b": [ "Eryone/Eryone PLA-CF" ], @@ -3646,9 +3621,6 @@ "OFitS8al": [ "Snapmaker/PolyLite PLA Neon" ], - "OFiuJSmy": [ - "Ratrig/RatRig BigNozzle PLA" - ], "OFiwEbze": [ "Volumic/PETG ESD (Performance)" ], @@ -3753,9 +3725,6 @@ "OFks6esg": [ "Creality/EN-PLA+" ], - "OFkwIWwc": [ - "Flashforge/Flashforge PLA Color Change" - ], "OFkx5MEe": [ "Artillery/Artillery PVA" ], @@ -3778,6 +3747,9 @@ "OFlSNkhc": [ "OrcaFilamentLibrary/Eolas Prints ASA" ], + "OFlgMgNM": [ + "Flashforge/Flashforge PPS" + ], "OFllmFhT": [ "Elegoo/Generic PETG PRO" ], @@ -3800,6 +3772,9 @@ "Elegoo/Elegoo PLA Basic", "OrcaFilamentLibrary/Elegoo PLA Basic" ], + "OFm4SivL": [ + "Flashforge/Flashforge PLA Pro" + ], "OFm4ysMO": [ "FlyingBear/FlyingBear ABS" ], @@ -3821,9 +3796,6 @@ "OFmKU2Ha": [ "Eryone/Eryone PLA" ], - "OFmQkb3c": [ - "Flashforge/Flashforge HS PLA Burnt Ti" - ], "OFmY0l6t": [ "Creality/Generic PLA Matte", "Elegoo/Generic PLA Matte", @@ -3835,9 +3807,6 @@ "OFmaeU4a": [ "OrcaFilamentLibrary/FilAr PLA-mate Naranja" ], - "OFmexHIS": [ - "Ratrig/RatRig BigNozzle PETG" - ], "OFmfizbq": [ "OrcaArena/Arena PLA Silk" ], @@ -3876,9 +3845,6 @@ "OFnHc3D6": [ "Creality/eSUN PLA-CF" ], - "OFnMv3W5": [ - "Flashforge/Flashforge HS PLA" - ], "OFnO4wnf": [ "Prusa/Prusament PLA" ], @@ -3915,6 +3881,9 @@ "OFnmp6rt": [ "Anycubic/Anycubic PLA+" ], + "OFnyHfcv": [ + "Ratrig/Generic ABS BigNozzle" + ], "OFo15hcT": [ "Qidi/QIDI PAHT-GF" ], @@ -3951,12 +3920,12 @@ "BBL/AliZ PETG", "OrcaFilamentLibrary/AliZ PETG" ], - "OFogbnCb": [ - "Flashforge/FlashForge PPS-CF" - ], "OFoiVqVM": [ "OrcaFilamentLibrary/Bambu PLA Basic" ], + "OFojbdhR": [ + "Flashforge/Flashforge ABS-GF" + ], "OForhBi4": [ "Cubicon/Cubicon ABSk" ], @@ -4005,6 +3974,9 @@ "Creality/Generic PPS", "Tiertime/Generic PPS" ], + "OFqFRiLb": [ + "Ratrig/Generic PLA BigNozzle" + ], "OFqGRZyH": [ "OrcaFilamentLibrary/Numakers PLA+" ], @@ -4042,15 +4014,15 @@ "OrcaFilamentLibrary/Panchroma PLA Matte", "Snapmaker/Panchroma PLA Matte" ], + "OFrZDhVt": [ + "Flashforge/Flashforge ASA-GF" + ], "OFrdZ0cK": [ "Creality/eSUN PETG+HS" ], "OFrjacXf": [ "Flashforge/Flashforge PET-CF" ], - "OFrnkURQ": [ - "Flashforge/Flashforge PLA Metal" - ], "OFrr67nG": [ "OrcaArena/Arena PC" ], @@ -4081,9 +4053,6 @@ "OFsHSVZc": [ "OrcaFilamentLibrary/Bambu Support W" ], - "OFsNJjpc": [ - "Ratrig/RatRig BigNozzle TPU" - ], "OFsP8PKH": [ "Z-Bolt/Generic ABS HT" ], @@ -4130,7 +4099,6 @@ "OFtRn8X8": [ "OrcaFilamentLibrary/FDplast SBS" ], - "OFtTYl9Q": [], "OFtefokm": [ "OrcaFilamentLibrary/FilAr PLA-mate Blanco" ], @@ -4138,9 +4106,6 @@ "BBL/COEX ASA PRIME", "OrcaFilamentLibrary/COEX ASA PRIME" ], - "OFtplX8o": [ - "Ratrig/RatRig BigNozzle ABS" - ], "OFtr8eZw": [ "OrcaFilamentLibrary/FDplast PLA" ], @@ -4165,11 +4130,8 @@ "Ratrig/Generic PCTG", "Tiertime/Generic PCTG" ], - "OFuFqYyG": [ - "Flashforge/Flashforge PAHT-CF" - ], - "OFuGRMNV": [ - "Flashforge/Flashforge PA-CF" + "OFuFEtKX": [ + "Flashforge/Flashforge PETG-CF" ], "OFuJ49uH": [ "Qidi/QIDI PETG Basic" @@ -4212,6 +4174,9 @@ "OFuxH0Uz": [ "Volumic/Volumic FLEX93 Ultra" ], + "OFvD0Qqt": [ + "Ratrig/Generic PETG BigNozzle" + ], "OFvDbkFq": [ "Prusa/Prusament PC Blend" ], @@ -4228,12 +4193,12 @@ "BBL/COEX PETG", "OrcaFilamentLibrary/COEX PETG" ], - "OFvVxvzZ": [ - "Flashforge/Flashforge PLA Metal" - ], "OFvVy7yo": [ "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" ], + "OFvaLVML": [ + "Flashforge/Flashforge HIPS" + ], "OFvdZ2bx": [ "Qidi/QIDI WOOD Rapido" ], @@ -4284,6 +4249,12 @@ "OFwhLMs4": [ "Snapmaker/Snapmaker PLA SnapSpeed" ], + "OFwjMiKL": [ + "Flashforge/Flashforge PETG Transparent" + ], + "OFwlZ7gH": [ + "Flashforge/Flashforge TPU-90A" + ], "OFwu7IAG": [ "BBL/COEX PCTG PRIME", "OrcaFilamentLibrary/COEX PCTG PRIME" @@ -4294,6 +4265,9 @@ "OFwyt1xt": [ "Eryone/Eryone ASA-CF" ], + "OFx0WlzS": [ + "Flashforge/Flashforge TPU-95A" + ], "OFx8Lmsd": [ "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" ], @@ -4306,9 +4280,6 @@ "OFxJRuVF": [ "Anycubic/Anycubic PC-GF" ], - "OFxMGIPt": [ - "Flashforge/Flashforge PPS" - ], "OFxOHhZw": [ "Elegoo/Elegoo ABS", "OrcaFilamentLibrary/Elegoo ABS" @@ -5295,20 +5266,6 @@ "FLSun/Generic PLA-CF @FLSun", "FLSun/Generic PVA @FLSun", "FLSun/Generic TPU @FLSun", - "Flashforge/FlashForge PC @FF G4 0.6 HF nozzle", - "Flashforge/FlashForge PC @FF G4 0.6 nozzle", - "Flashforge/FlashForge PC @FF G4 0.8 HF nozzle", - "Flashforge/FlashForge PC @FF G4P 0.6 HF nozzle", - "Flashforge/FlashForge PC @FF G4P 0.6 nozzle", - "Flashforge/FlashForge PC @FF G4P 0.8 HF nozzle", - "Flashforge/FlashForge PPS @FF G4 0.6 HF nozzle", - "Flashforge/FlashForge PPS @FF G4 0.6 nozzle", - "Flashforge/FlashForge PPS @FF G4 0.8 HF nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.6 HF nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.6 nozzle", - "Flashforge/FlashForge PPS @FF G4P 0.8 HF nozzle", - "Flashforge/FlashForge PPS-CF @FF G4 0.6 nozzle", - "Flashforge/FlashForge PPS-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge ABS", "Flashforge/Flashforge ABS Basic", "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", @@ -5436,10 +5393,12 @@ "Flashforge/Flashforge PA12-CF", "Flashforge/Flashforge PA6-CF", "Flashforge/Flashforge PA66-CF", - "Flashforge/Flashforge PAHT-CF @FF C5", - "Flashforge/Flashforge PAHT-CF @FF C5P", - "Flashforge/Flashforge PAHT-CF @FF G4", - "Flashforge/Flashforge PAHT-CF @FF G4P", + "Flashforge/Flashforge PC @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PC @FF G4 0.6 nozzle", + "Flashforge/Flashforge PC @FF G4 0.8 HF nozzle", + "Flashforge/Flashforge PC @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PC @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PC @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PET-CF", "Flashforge/Flashforge PET-CF @FF C5", "Flashforge/Flashforge PET-CF @FF C5P", @@ -5497,12 +5456,6 @@ "Flashforge/Flashforge PETG-CF @FF G4P", "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge PLA", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Basic", "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PLA Basic @FF AD5X", @@ -5523,8 +5476,6 @@ "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PLA Basic @FF G4P HF", - "Flashforge/Flashforge PLA Buint Ti @FF G4 0.8 nozzle", - "Flashforge/Flashforge PLA Buint Ti @FF G4P 0.8 nozzle", "Flashforge/Flashforge PLA Color Change", "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", "Flashforge/Flashforge PLA Color Change @FF AD5X", @@ -5589,6 +5540,8 @@ "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Matte @FF C5", + "Flashforge/Flashforge PLA Matte @FF C5P", "Flashforge/Flashforge PLA Matte @FF G4", "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", @@ -5607,6 +5560,8 @@ "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Metal @FF C5", + "Flashforge/Flashforge PLA Metal @FF C5P", "Flashforge/Flashforge PLA Metal @FF G4", "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", @@ -5625,6 +5580,8 @@ "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", + "Flashforge/Flashforge PLA Pro @FF C5", + "Flashforge/Flashforge PLA Pro @FF C5P", "Flashforge/Flashforge PLA Pro @FF G4", "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", @@ -5688,12 +5645,20 @@ "Flashforge/Flashforge PPA-CF @FF C5P", "Flashforge/Flashforge PPA-GF", "Flashforge/Flashforge PPS @FF G4", + "Flashforge/Flashforge PPS @FF G4 0.6 HF nozzle", + "Flashforge/Flashforge PPS @FF G4 0.6 nozzle", + "Flashforge/Flashforge PPS @FF G4 0.8 HF nozzle", "Flashforge/Flashforge PPS @FF G4P", + "Flashforge/Flashforge PPS @FF G4P 0.6 HF nozzle", + "Flashforge/Flashforge PPS @FF G4P 0.6 nozzle", + "Flashforge/Flashforge PPS @FF G4P 0.8 HF nozzle", "Flashforge/Flashforge PPS-CF", "Flashforge/Flashforge PPS-CF @FF C5", "Flashforge/Flashforge PPS-CF @FF C5P", "Flashforge/Flashforge PPS-CF @FF G4", + "Flashforge/Flashforge PPS-CF @FF G4 0.6 nozzle", "Flashforge/Flashforge PPS-CF @FF G4P", + "Flashforge/Flashforge PPS-CF @FF G4P 0.6 nozzle", "Flashforge/Flashforge PVA @FF C5", "Flashforge/Flashforge PVA @FF C5P", "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", @@ -6761,22 +6726,22 @@ "RH3D/Generic PLA @E3NG v1.2S", "RH3D/Generic TPU @E3NG v1.2S", "Ratrig/Generic ABS @RatRig", + "Ratrig/Generic ABS BigNozzle @RatRig", "Ratrig/Generic ASA @RatRig", + "Ratrig/Generic ASA BigNozzle @RatRig", "Ratrig/Generic PA @RatRig", "Ratrig/Generic PA-CF @RatRig", "Ratrig/Generic PC @RatRig", "Ratrig/Generic PCTG @RatRig", + "Ratrig/Generic PCTG BigNozzle @RatRig", "Ratrig/Generic PETG @RatRig", + "Ratrig/Generic PETG BigNozzle @RatRig", "Ratrig/Generic PLA @RatRig", + "Ratrig/Generic PLA BigNozzle @RatRig", "Ratrig/Generic PLA-CF @RatRig", "Ratrig/Generic PVA @RatRig", "Ratrig/Generic TPU @RatRig", - "Ratrig/RatRig BigNozzle ABS", - "Ratrig/RatRig BigNozzle ASA", - "Ratrig/RatRig BigNozzle PCTG", - "Ratrig/RatRig BigNozzle PETG", - "Ratrig/RatRig BigNozzle PLA", - "Ratrig/RatRig BigNozzle TPU", + "Ratrig/Generic TPU BigNozzle @RatRig", "Ratrig/RatRig PunkFil ABS", "Ratrig/RatRig PunkFil PETG", "Ratrig/RatRig PunkFil PETG CF", @@ -7177,13 +7142,6 @@ "QIDI ASA-CF" ] ], - "OF1bQyX2": [ - [ - "Generic", - "PLA", - "Flashforge PLA Matte" - ] - ], "OF1d7c3A": [ [ "Snapmaker", @@ -7254,13 +7212,6 @@ "FilAr PETG Azul Imperial" ] ], - "OF2bZtyg": [ - [ - "Generic", - "PLA-CF", - "Flashforge PLA-CF" - ] - ], "OF2hfMcG": [ [ "Orca Arena", @@ -7352,13 +7303,6 @@ "InfiMech PLA Hyper" ] ], - "OF41jaTh": [ - [ - "Generic", - "TPU-90A", - "Flashforge TPU-90A" - ] - ], "OF43Raws": [ [ "Polymaker", @@ -7387,6 +7331,13 @@ "Hyper PAHT-CF" ] ], + "OF4GM5qX": [ + [ + "Generic", + "ASA", + "Generic ASA BigNozzle" + ] + ], "OF4KsW72": [ [ "FilAr", @@ -7492,13 +7443,6 @@ "PolyLite PLA" ] ], - "OF5NQFKI": [ - [ - "Generic", - "PLA", - "Flashforge PLA Galaxy" - ] - ], "OF5NqBfC": [ [ "Yumi", @@ -7576,6 +7520,13 @@ "FilAr PETG" ] ], + "OF5tX6va": [ + [ + "Generic", + "TPU", + "Generic TPU BigNozzle" + ] + ], "OF5umxxT": [ [ "Polymaker", @@ -7590,13 +7541,6 @@ "FilAr PLA-mate Azul" ] ], - "OF5w29Kq": [ - [ - "Generic", - "PETG", - "Flashforge HS PETG" - ] - ], "OF65InrS": [ [ "Snapmaker", @@ -7660,6 +7604,13 @@ "Fiberthree PACF Pro P2" ] ], + "OF6qAuyi": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Matte" + ] + ], "OF6rdQ6M": [ [ "Generic", @@ -7667,13 +7618,6 @@ "Generic PPS-CF" ] ], - "OF6ueBwd": [ - [ - "Generic", - "PLA", - "Flashforge PLA Pro" - ] - ], "OF70zbGS": [ [ "Creality", @@ -7772,6 +7716,13 @@ "Hyper ABS" ] ], + "OF8GtyKJ": [ + [ + "Flashforge", + "TPU-64D", + "Flashforge TPU-64D" + ] + ], "OF8Hx3Pi": [ [ "Cubicon", @@ -7786,6 +7737,13 @@ "Snapmaker J1 PET" ] ], + "OF8O09RG": [ + [ + "Flashforge", + "PLA", + "Flashforge HS PLA Burnt Ti" + ] + ], "OF8Tlg47": [ [ "Generic", @@ -7842,13 +7800,6 @@ "Artillery PETG Basic" ] ], - "OF995YXg": [ - [ - "Generic", - "TPU-64D", - "Flashforge TPU-64D" - ] - ], "OF99UMPq": [ [ "COEX 3D", @@ -7898,6 +7849,13 @@ "Anycubic PETG-CF" ] ], + "OF9cAwMK": [ + [ + "Flashforge", + "PLA-CF", + "Flashforge PLA-CF" + ] + ], "OF9emAI9": [ [ "RatRig", @@ -7954,11 +7912,11 @@ "Artillery PLA-CF" ] ], - "OFAf9pJF": [ + "OFAebKg8": [ [ - "Generic", - "TPU", - "Flashforge TPU 95A" + "Flashforge", + "PLA", + "Flashforge PLA Metal" ] ], "OFAnyRUI": [ @@ -7996,13 +7954,6 @@ "LHS PCTG" ] ], - "OFBK6zAi": [ - [ - "Generic", - "PETG-CF", - "Flashforge PETG-CF" - ] - ], "OFBLktDy": [ [ "Creality", @@ -8297,6 +8248,13 @@ "Bambu PLA Sparkle" ] ], + "OFDxxTpW": [ + [ + "Flashforge", + "PETG", + "Flashforge HS PETG" + ] + ], "OFE0NFRh": [ [ "COEX 3D", @@ -8311,13 +8269,6 @@ "Bambu PLA Silk" ] ], - "OFEMfQsX": [ - [ - "Generic", - "PETG", - "Flashforge PETG Basic" - ] - ], "OFEOnBj6": [ [ "Snapmaker", @@ -8409,6 +8360,13 @@ "Bambu PLA-CF" ] ], + "OFEvEfw5": [ + [ + "Flashforge", + "PA", + "Flashforge PA" + ] + ], "OFEwRwmL": [ [ "Cubicon", @@ -8444,11 +8402,11 @@ "QIDI PC-ABS-FR" ] ], - "OFFC0VqZ": [ + "OFFFg2Pf": [ [ - "Generic", - "PETG", - "RatRig BigNozzle PCTG" + "Flashforge", + "ASA", + "Flashforge ASA Basic" ] ], "OFFNYwWR": [ @@ -8542,13 +8500,6 @@ "FilAr PLA-mate Gris" ] ], - "OFGc282l": [ - [ - "Generic", - "PLA", - "Flashforge PLA-SILK" - ] - ], "OFGcLA5R": [ [ "FilAr", @@ -8598,6 +8549,13 @@ "CR-Wood" ] ], + "OFGxuI0n": [ + [ + "Flashforge", + "PA-CF", + "Flashforge PA-CF" + ] + ], "OFH2nN08": [ [ "Eolas Prints", @@ -8612,20 +8570,6 @@ "Polymaker Silk PLA Family" ] ], - "OFH5UH6P": [ - [ - "Generic", - "ABS-GF", - "Flashforge ABS-GF" - ] - ], - "OFH6Pjxe": [ - [ - "Generic", - "PLA", - "Flashforge PLA Matte" - ] - ], "OFH7b12v": [ [ "Generic", @@ -8710,6 +8654,13 @@ "Anycubic PLA Matte" ] ], + "OFIK2H3G": [ + [ + "Flashforge", + "PLA", + "Flashforge HS PLA" + ] + ], "OFIKZxPF": [ [ "Generic", @@ -8787,9 +8738,9 @@ "PolyLite PLA Starlight" ] ], - "OFIxitiU": [ + "OFJ3F2jm": [ [ - "Generic", + "Flashforge", "PLA", "Flashforge PLA Basic" ] @@ -8808,6 +8759,13 @@ "DREMC PLA+ HS" ] ], + "OFJJ0Ar3": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Galaxy" + ] + ], "OFJNeELv": [ [ "FILL3D", @@ -8829,6 +8787,13 @@ "FilAr PETG Cristal" ] ], + "OFJS560n": [ + [ + "Flashforge", + "ASA", + "Flashforge ASA" + ] + ], "OFJWKoYG": [ [ "iQ Materials", @@ -8885,13 +8850,6 @@ "YUMI PLA Direct Drive" ] ], - "OFK74HJD": [ - [ - "Generic", - "PLA", - "Flashforge PLA Pro" - ] - ], "OFK8XHPn": [ [ "Overture", @@ -8990,13 +8948,6 @@ "Panchroma PLA Marble" ] ], - "OFKpQTJI": [ - [ - "Generic", - "TPU", - "Flashforge TPU 65D" - ] - ], "OFL9aRjN": [ [ "Snapmaker", @@ -9060,13 +9011,6 @@ "Elegoo Rapid PETG" ] ], - "OFLYDIb8": [ - [ - "Generic", - "PLA", - "Flashforge PLA Silk" - ] - ], "OFLYDngx": [ [ "Bambu Lab", @@ -9151,13 +9095,6 @@ "QIDI TPU-Aero" ] ], - "OFMIma8C": [ - [ - "Generic", - "PLA", - "Flashforge PLA Luminous" - ] - ], "OFMK5gVo": [ [ "WonderMaker", @@ -9207,6 +9144,13 @@ "Bambu PLA Wood" ] ], + "OFMkAW6r": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Color Change" + ] + ], "OFMpxamb": [ [ "Flashforge", @@ -9228,13 +9172,6 @@ "Elas PLA Basic" ] ], - "OFMyLYV8": [ - [ - "Generic", - "PETG", - "Flashforge PETG Transparent" - ] - ], "OFN9fefN": [ [ "Cubicon", @@ -9277,13 +9214,6 @@ "FilAr PETG Azul Boreal" ] ], - "OFNWnx2c": [ - [ - "Generic", - "TPU-95A", - "Flashforge TPU-95A" - ] - ], "OFNemJM6": [ [ "FilAr", @@ -9445,13 +9375,6 @@ "HP-ASA" ] ], - "OFPQfNAf": [ - [ - "Generic", - "PETG", - "Flashforge PETG Pro" - ] - ], "OFPWPlSC": [ [ "FILL3D", @@ -9592,13 +9515,6 @@ "Snapmaker PET" ] ], - "OFQZeyZv": [ - [ - "Generic", - "PLA", - "Flashforge PLA Buint Ti" - ] - ], "OFQbjX3s": [ [ "FILL3D", @@ -9620,13 +9536,6 @@ "Anycubic PA6-CF" ] ], - "OFQiq4fb": [ - [ - "Generic", - "PVA", - "Flashforge PVA" - ] - ], "OFQyyO0l": [ [ "Polymaker", @@ -9746,6 +9655,13 @@ "Panchroma PLA Silk" ] ], + "OFSDfduA": [ + [ + "Flashforge", + "TPU", + "Flashforge TPU 65D" + ] + ], "OFSa39yP": [ [ "Snapmaker", @@ -9760,11 +9676,11 @@ "Arena PLA Basic" ] ], - "OFShw1X8": [ + "OFSqIcJC": [ [ - "Generic", - "ABS", - "Flashforge ABS Basic" + "Flashforge", + "TPU", + "Flashforge TPU 95A" ] ], "OFSwbBWS": [ @@ -9886,13 +9802,6 @@ "Volumic ASA Ultra (Performance)" ] ], - "OFUCpLaL": [ - [ - "Generic", - "PPS", - "FlashForge PPS" - ] - ], "OFUF7oA4": [ [ "Creality", @@ -9956,6 +9865,13 @@ "Snapmaker J1 TPE" ] ], + "OFV5c8hG": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Sparkle" + ] + ], "OFV5tNw6": [ [ "Elegoo", @@ -9970,6 +9886,13 @@ "Afinia ABS" ] ], + "OFV8Mxqx": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA-SILK" + ] + ], "OFVBlUFH": [ [ "DREMC", @@ -10054,6 +9977,13 @@ "FilAr PLA Bronce" ] ], + "OFWXCbVF": [ + [ + "Flashforge", + "PC", + "Flashforge PC" + ] + ], "OFWYtgCa": [ [ "Elegoo", @@ -10089,13 +10019,6 @@ "Snapmaker PLA Silk" ] ], - "OFWnSvGu": [ - [ - "Generic", - "ASA-GF", - "Flashforge ASA-GF" - ] - ], "OFWwF7K7": [ [ "FilAr", @@ -10166,6 +10089,13 @@ "Afinia Value ABS" ] ], + "OFXiArjA": [ + [ + "Flashforge", + "PETG", + "Flashforge PETG Pro" + ] + ], "OFXk1emJ": [ [ "Artillery", @@ -10278,6 +10208,20 @@ "Generic PETG" ] ], + "OFYTIMbj": [ + [ + "Flashforge", + "ABS-CF", + "Flashforge ABS-CF" + ] + ], + "OFYYeMyQ": [ + [ + "Flashforge", + "PETG", + "Flashforge PETG Basic" + ] + ], "OFYd5uS3": [ [ "DREMC", @@ -10292,6 +10236,13 @@ "FlyingBear TPU" ] ], + "OFYfAcLY": [ + [ + "Generic", + "PETG", + "Generic PCTG BigNozzle" + ] + ], "OFYuowge": [ [ "Other", @@ -10369,13 +10320,6 @@ "Anycubic PC" ] ], - "OFaBwRvT": [ - [ - "Generic", - "ASA", - "Flashforge ASA Basic" - ] - ], "OFaDOaNt": [ [ "FilAr", @@ -10439,6 +10383,13 @@ "Elas PLA Pro" ] ], + "OFaaddbQ": [ + [ + "Flashforge", + "PVA", + "Flashforge PVA" + ] + ], "OFaeIx7W": [ [ "iQ Materials", @@ -10467,13 +10418,6 @@ "FilAr PLA-mate Rosa" ] ], - "OFaz8VoR": [ - [ - "Generic", - "HIPS", - "Flashforge HIPS" - ] - ], "OFb5EEM3": [ [ "Artillery", @@ -10656,6 +10600,13 @@ "Cubicon PLAi21" ] ], + "OFdqkWtz": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Luminous" + ] + ], "OFdrYBmI": [ [ "Tiertime", @@ -10684,13 +10635,6 @@ "RatRig PunkFil PETG CF" ] ], - "OFe6sfXS": [ - [ - "Generic", - "PC", - "FlashForge PC" - ] - ], "OFe8tuNb": [ [ "Tiertime", @@ -10740,13 +10684,6 @@ "Fiberon PPS-GF20" ] ], - "OFec7Qiw": [ - [ - "Generic", - "PLA", - "Flashforge PLA Sparkle" - ] - ], "OFeelsSM": [ [ "HATCHBOX", @@ -11006,13 +10943,6 @@ "Generic TPU" ] ], - "OFgcryz4": [ - [ - "Generic", - "ASA", - "RatRig BigNozzle ASA" - ] - ], "OFgdaBOt": [ [ "Polymaker", @@ -11027,11 +10957,11 @@ "Flashforge PA12-CF" ] ], - "OFgf4gZa": [ + "OFgjgN35": [ [ - "Generic", - "PA", - "Flashforge PA" + "Flashforge", + "PLA", + "Flashforge PLA Silk" ] ], "OFglhKLM": [ @@ -11237,13 +11167,6 @@ "Generic PLA-Silk" ] ], - "OFi7Bf0F": [ - [ - "Generic", - "ABS-CF", - "Flashforge ABS-CF" - ] - ], "OFi90KlM": [ [ "Volumic", @@ -11272,6 +11195,13 @@ "DREMC PPA-CF" ] ], + "OFibWuBd": [ + [ + "Flashforge", + "ABS", + "Flashforge ABS Basic" + ] + ], "OFilAA3b": [ [ "Eryone", @@ -11307,13 +11237,6 @@ "PolyLite PLA Neon" ] ], - "OFiuJSmy": [ - [ - "Generic", - "PLA", - "RatRig BigNozzle PLA" - ] - ], "OFiwEbze": [ [ "Volumic", @@ -11545,13 +11468,6 @@ "EN-PLA+" ] ], - "OFkwIWwc": [ - [ - "Generic", - "PLA", - "Flashforge PLA Color Change" - ] - ], "OFkx5MEe": [ [ "Artillery", @@ -11601,6 +11517,13 @@ "Eolas Prints ASA" ] ], + "OFlgMgNM": [ + [ + "Flashforge", + "PPS", + "Flashforge PPS" + ] + ], "OFllmFhT": [ [ "Generic", @@ -11643,6 +11566,13 @@ "Elegoo PLA Basic" ] ], + "OFm4SivL": [ + [ + "Flashforge", + "PLA", + "Flashforge PLA Pro" + ] + ], "OFm4ysMO": [ [ "FlyingBear", @@ -11692,13 +11622,6 @@ "Eryone PLA" ] ], - "OFmQkb3c": [ - [ - "Generic", - "PLA", - "Flashforge HS PLA Burnt Ti" - ] - ], "OFmY0l6t": [ [ "Generic", @@ -11720,13 +11643,6 @@ "FilAr PLA-mate Naranja" ] ], - "OFmexHIS": [ - [ - "Generic", - "PETG", - "RatRig BigNozzle PETG" - ] - ], "OFmfizbq": [ [ "Orca Arena", @@ -11797,13 +11713,6 @@ "eSUN PLA-CF" ] ], - "OFnMv3W5": [ - [ - "Generic", - "PLA", - "Flashforge HS PLA" - ] - ], "OFnO4wnf": [ [ "Prusa Polymers", @@ -11888,6 +11797,13 @@ "Anycubic PLA+" ] ], + "OFnyHfcv": [ + [ + "Generic", + "ABS", + "Generic ABS BigNozzle" + ] + ], "OFo15hcT": [ [ "QIDI", @@ -11944,13 +11860,6 @@ "AliZ PETG" ] ], - "OFogbnCb": [ - [ - "Generic", - "PPS-CF", - "FlashForge PPS-CF" - ] - ], "OFoiVqVM": [ [ "Bambu Lab", @@ -11958,6 +11867,13 @@ "Bambu PLA Basic" ] ], + "OFojbdhR": [ + [ + "Flashforge", + "ABS-GF", + "Flashforge ABS-GF" + ] + ], "OForhBi4": [ [ "Cubicon", @@ -12063,6 +11979,13 @@ "Generic PPS" ] ], + "OFqFRiLb": [ + [ + "Generic", + "PLA", + "Generic PLA BigNozzle" + ] + ], "OFqGRZyH": [ [ "Numakers", @@ -12140,6 +12063,13 @@ "Panchroma PLA Matte" ] ], + "OFrZDhVt": [ + [ + "Flashforge", + "ASA-GF", + "Flashforge ASA-GF" + ] + ], "OFrdZ0cK": [ [ "eSUN", @@ -12154,13 +12084,6 @@ "Flashforge PET-CF" ] ], - "OFrnkURQ": [ - [ - "Generic", - "PLA", - "Flashforge PLA Metal" - ] - ], "OFrr67nG": [ [ "Orca Arena", @@ -12217,13 +12140,6 @@ "Bambu Support W" ] ], - "OFsNJjpc": [ - [ - "Generic", - "TPU", - "RatRig BigNozzle TPU" - ] - ], "OFsP8PKH": [ [ "Generic", @@ -12329,13 +12245,6 @@ "FDplast SBS" ] ], - "OFtTYl9Q": [ - [ - "Generic", - "ASA", - "Flashforge ASA" - ] - ], "OFtefokm": [ [ "FilAr", @@ -12350,13 +12259,6 @@ "COEX ASA PRIME" ] ], - "OFtplX8o": [ - [ - "Generic", - "ABS", - "RatRig BigNozzle ABS" - ] - ], "OFtr8eZw": [ [ "FDplast", @@ -12406,18 +12308,11 @@ "Generic PCTG" ] ], - "OFuFqYyG": [ + "OFuFEtKX": [ [ - "Generic", - "PAHT-CF", - "Flashforge PAHT-CF" - ] - ], - "OFuGRMNV": [ - [ - "Generic", - "PA-CF", - "Flashforge PA-CF" + "Flashforge", + "PETG-CF", + "Flashforge PETG-CF" ] ], "OFuJ49uH": [ @@ -12511,6 +12406,13 @@ "Volumic FLEX93 Ultra" ] ], + "OFvD0Qqt": [ + [ + "Generic", + "PETG", + "Generic PETG BigNozzle" + ] + ], "OFvDbkFq": [ [ "Prusa Polymers", @@ -12546,13 +12448,6 @@ "COEX PETG" ] ], - "OFvVxvzZ": [ - [ - "Generic", - "PLA", - "Flashforge PLA Metal" - ] - ], "OFvVy7yo": [ [ "Eolas Prints", @@ -12560,6 +12455,13 @@ "Eolas Prints TPU D60 UV Resistant" ] ], + "OFvaLVML": [ + [ + "Flashforge", + "HIPS", + "Flashforge HIPS" + ] + ], "OFvdZ2bx": [ [ "QIDI", @@ -12672,6 +12574,20 @@ "Snapmaker PLA SnapSpeed" ] ], + "OFwjMiKL": [ + [ + "Flashforge", + "PETG", + "Flashforge PETG Transparent" + ] + ], + "OFwlZ7gH": [ + [ + "Flashforge", + "TPU-90A", + "Flashforge TPU-90A" + ] + ], "OFwu7IAG": [ [ "COEX 3D", @@ -12693,6 +12609,13 @@ "Eryone ASA-CF" ] ], + "OFx0WlzS": [ + [ + "Flashforge", + "TPU-95A", + "Flashforge TPU-95A" + ] + ], "OFx8Lmsd": [ [ "Eolas Prints", @@ -12721,13 +12644,6 @@ "Anycubic PC-GF" ] ], - "OFxMGIPt": [ - [ - "Generic", - "PPS", - "Flashforge PPS" - ] - ], "OFxOHhZw": [ [ "Elegoo", From 7eaff76cecd1412182efbd0106dcbc41f4e8de43 Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Tue, 1 Sep 2026 08:30:45 -0500 Subject: [PATCH 096/164] build: use clang-cl for Windows CI builds (faster slicing and faster builds) (#15428) * ci: build the Windows x64 dependencies and slicer with clang-cl Passes -l -x from the Windows jobs, using the clang-cl and Ninja options added in #15373. Ninja runs each dependency's build step as a plain command, so the jobs set up a VC environment for OpenSSL's nmake. arm64 stays on MSVC for now. The deps cache key gains the compiler, so windows-x64 becomes windows-x64-clang and windows-arm64 becomes windows-arm64-msvc. * deps: select OpenSSL's ARM64 target from DEPS_ARCH CMAKE_GENERATOR_PLATFORM is only set by -A, which Ninja never receives, so the Ninja build selected the x64 target on ARM64. DEPS_ARCH is derived from CMAKE_SYSTEM_PROCESSOR and is already independent of the generator. * ci: build the Windows ARM64 dependencies and slicer with clang-cl Three dependencies need handling first. libpng and OpenCV each build an ARM SIMD path that does not compile with clang-cl, so those paths are off; PNG already had the same opt-out for Apple ARM. OCCT is built with cl, since clang-cl cannot emit one of its large generated files and there is no option to turn that off. All three are gated to Windows ARM64 with clang. --- .github/workflows/build_all.yml | 5 +++-- .github/workflows/build_check_cache.yml | 13 +++++++++---- .github/workflows/build_deps.yml | 20 ++++++++++++++++++-- .github/workflows/build_orca.yml | 17 ++++++++++++++++- deps/OCCT/OCCT.cmake | 8 ++++++++ deps/OpenCV/OpenCV.cmake | 8 ++++++++ deps/OpenSSL/OpenSSL.cmake | 2 +- deps/PNG/PNG.cmake | 4 ++++ 8 files changed, 67 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3de2a9184b..fe4f10e81b 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -81,14 +81,15 @@ jobs: # SELF_HOSTED skips arm64 (the self-hosted Windows server is x64-only). matrix: include: ${{ fromJSON(vars.SELF_HOSTED - && '[{"arch":"x64","os":"orca-win-server"}]' - || '[{"arch":"x64","os":"windows-latest"},{"arch":"arm64","os":"windows-11-arm"}]') }} + && '[{"arch":"x64","os":"orca-win-server","compiler":"clang"}]' + || '[{"arch":"x64","os":"windows-latest","compiler":"clang"},{"arch":"arm64","os":"windows-11-arm","compiler":"clang"}]') }} # Don't run scheduled builds on forks: if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} uses: ./.github/workflows/build_check_cache.yml with: os: ${{ matrix.os }} arch: ${{ matrix.arch }} + compiler: ${{ matrix.compiler }} build-deps-only: ${{ inputs.build-deps-only || false }} force-build: ${{ github.event_name == 'schedule' }} secrets: inherit diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml index b5c5b28b95..91ea51ac60 100644 --- a/.github/workflows/build_check_cache.yml +++ b/.github/workflows/build_check_cache.yml @@ -9,6 +9,10 @@ on: arch: required: false type: string + compiler: + required: false + type: string + default: msvc build-deps-only: required: false type: boolean @@ -33,10 +37,10 @@ jobs: - name: set outputs id: set_outputs env: - # Keep macOS/Windows cache keys architecture-specific. amd64 Linux passes - # no arch (key stays 'linux-clang', preserving the existing cache); - # aarch64 gets its own 'linux-clang-aarch64' key. - cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && format('windows-{0}', inputs.arch) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }} + # Anything that changes how the tree is built belongs in the key, or a job + # restores one it cannot use. Linux amd64 passes no arch deliberately, so + # 'linux-clang' keeps the cache it already has. + cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && format('windows-{0}-{1}', inputs.arch, inputs.compiler) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }} # ARM64 builds use the build-arm64 tree (see build_release_vs.bat); x64/other use build. dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }} output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} @@ -62,6 +66,7 @@ jobs: valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }} os: ${{ inputs.os }} arch: ${{ inputs.arch }} + compiler: ${{ inputs.compiler }} build-deps-only: ${{ inputs.build-deps-only }} force-build: ${{ inputs.force-build }} secrets: inherit diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index f9e5c57c34..f7082a8a06 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -16,6 +16,10 @@ on: arch: required: false type: string + compiler: + required: false + type: string + default: msvc build-deps-only: required: false type: boolean @@ -135,11 +139,22 @@ jobs: choco install strawberryperl } $arch = "${{ inputs.arch }}" + # -l selects clang-cl and -x Ninja; together they build the deps with clang. + $clang = "${{ inputs.compiler }}" -eq "clang" + $flags = if ($clang) { "-l", "-x" } else { @() } + if ($clang) { + # OpenSSL builds with nmake, which needs a VC environment. + $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" + $vs = & $vswhere -latest -property installationPath + $devArch = if ($arch -eq "arm64") { "arm64" } else { "amd64" } + Import-Module "$vs\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" + Enter-VsDevShell -VsInstallPath $vs -SkipAutomaticLocation -DevCmdArguments "-arch=$devArch" + } if ($arch -eq "arm64") { - .\build_release_vs.bat deps arm64 + .\build_release_vs.bat deps arm64 @flags .\build_release_vs.bat pack arm64 } else { - .\build_release_vs.bat deps + .\build_release_vs.bat deps @flags .\build_release_vs.bat pack } shell: pwsh @@ -204,4 +219,5 @@ jobs: cache-path: ${{ inputs.cache-path }} os: ${{ inputs.os }} arch: ${{ inputs.arch }} + compiler: ${{ inputs.compiler }} secrets: inherit diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index a9efaa7561..8e1e28db13 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -13,6 +13,10 @@ on: arch: required: false type: string + compiler: + required: false + type: string + default: msvc macos-combine-only: required: false type: boolean @@ -395,7 +399,18 @@ jobs: # "tests" builds the unit tests too; the unit_tests_windows_* jobs run them. run: | $arch = "${{ inputs.arch }}" - if ($arch -eq "arm64") { .\build_release_vs.bat slicer arm64 tests } else { .\build_release_vs.bat slicer tests } + # -l selects clang-cl and -x Ninja; together they build the slicer with clang. + $clang = "${{ inputs.compiler }}" -eq "clang" + $flags = if ($clang) { "-l", "-x" } else { @() } + if ($clang) { + # Build against the same VC toolchain and SDK as the dependencies. + $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" + $vs = & $vswhere -latest -property installationPath + $devArch = if ($arch -eq "arm64") { "arm64" } else { "amd64" } + Import-Module "$vs\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" + Enter-VsDevShell -VsInstallPath $vs -SkipAutomaticLocation -DevCmdArguments "-arch=$devArch" + } + if ($arch -eq "arm64") { .\build_release_vs.bat slicer arm64 @flags tests } else { .\build_release_vs.bat slicer @flags tests } shell: pwsh - name: Build system preset cache (Windows) diff --git a/deps/OCCT/OCCT.cmake b/deps/OCCT/OCCT.cmake index b4cd9facd2..62bfcf8e76 100644 --- a/deps/OCCT/OCCT.cmake +++ b/deps/OCCT/OCCT.cmake @@ -1,3 +1,10 @@ +# clang-cl cannot emit IGESAppli_GeneralModule.cxx on ARM64 +# (llvm/llvm-project#62081). cl and clang-cl share an ABI. +set(_occt_compiler_args "") +if ("${DEPS_ARCH}" STREQUAL "arm64" AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) + set(_occt_compiler_args -DCMAKE_C_COMPILER:STRING=cl -DCMAKE_CXX_COMPILER:STRING=cl) +endif () + if(WIN32) set(library_build_type "Shared") else() @@ -31,6 +38,7 @@ orcaslicer_add_cmake_project(OCCT -DBUILD_MODULE_ModelingAlgorithms=OFF -DBUILD_MODULE_ModelingData=OFF -DBUILD_MODULE_Visualization=OFF + ${_occt_compiler_args} ) # add_dependencies(dep_OCCT ${FREETYPE_PKG}) diff --git a/deps/OpenCV/OpenCV.cmake b/deps/OpenCV/OpenCV.cmake index d8c7cbac3b..0290b3f47a 100644 --- a/deps/OpenCV/OpenCV.cmake +++ b/deps/OpenCV/OpenCV.cmake @@ -10,6 +10,13 @@ else () set(_options "") endif () +# carotene is OpenCV's ARM NEON HAL. It uses M_PI without _USE_MATH_DEFINES +# and does not compile with clang-cl. +set(_disable_carotene "") +if ("${DEPS_ARCH}" STREQUAL "arm64" AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) + set(_disable_carotene "-DWITH_CAROTENE=OFF") +endif () + if (IN_GIT_REPO) set(OpenCV_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OpenCV-prefix/src/dep_OpenCV) endif () @@ -83,5 +90,6 @@ orcaslicer_add_cmake_project(OpenCV -DWITH_PROTOBUF=OFF -DWITH_WIN32UI=OFF -DHAVE_WIN32UI=FALSE + ${_disable_carotene} ) diff --git a/deps/OpenSSL/OpenSSL.cmake b/deps/OpenSSL/OpenSSL.cmake index ddeb680052..2fb4b51757 100644 --- a/deps/OpenSSL/OpenSSL.cmake +++ b/deps/OpenSSL/OpenSSL.cmake @@ -6,7 +6,7 @@ if(DEFINED OPENSSL_ARCH) set(_cross_arch ${OPENSSL_ARCH}) else() if(WIN32) - if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "ARM64") + if("${DEPS_ARCH}" STREQUAL "arm64") set(_cross_arch "VC-WIN64-ARM") else() set(_cross_arch "VC-WIN64A") diff --git a/deps/PNG/PNG.cmake b/deps/PNG/PNG.cmake index 332fdfe274..a73e96a0c9 100644 --- a/deps/PNG/PNG.cmake +++ b/deps/PNG/PNG.cmake @@ -1,6 +1,10 @@ if (APPLE) # Only disable NEON extension for Apple ARM builds, leave it enabled for Raspberry PI. set(_disable_neon_extension "-DPNG_ARM_NEON=off") +elseif ("${DEPS_ARCH}" STREQUAL "arm64" AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) + # libpng's CMake ignores PNG_ARM_NEON on Windows ARM64 and skips the NEON + # sources, but pngpriv.h enables NEON anyway. + set(_disable_neon_extension "-DCMAKE_C_FLAGS=/DWIN32 /D_WINDOWS /DPNG_ARM_NEON_OPT=0") else () set(_disable_neon_extension "") endif () From afa806da182ae5570d2cc3859993ce30b56a532a Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 1 Sep 2026 23:45:55 +0800 Subject: [PATCH 097/164] Update Dremel and Ratrig filament profiles; remove deprecated entries and adjust versioning --- resources/profiles/Dremel.json | 6 +- .../Generic PLA @Dremel 3D20 all.json | 5 +- .../Generic PLA @Dremel 3D40 all.json | 5 +- .../Generic PLA @Dremel 3D45 all.json | 11 +- .../Dremel/filament/Generic PLA @Dremel.json | 24 --- .../Dremel/machine/fdm_dremel_common.json | 3 - resources/profiles/Ratrig.json | 38 +---- .../Generic PCTG BigNozzle @RatRig.json | 4 +- .../Ratrig/filament/fdm_filament_abs.json | 88 ----------- .../Ratrig/filament/fdm_filament_asa.json | 88 ----------- .../Ratrig/filament/fdm_filament_common.json | 141 ------------------ .../Ratrig/filament/fdm_filament_pa.json | 85 ----------- .../Ratrig/filament/fdm_filament_pc.json | 88 ----------- .../Ratrig/filament/fdm_filament_pet.json | 82 ---------- .../Ratrig/filament/fdm_filament_pla.json | 94 ------------ .../Ratrig/filament/fdm_filament_pva.json | 100 ------------- .../Ratrig/filament/fdm_filament_tpu.json | 88 ----------- resources/profiles/retired_filament_ids.json | 6 + scripts/filament_id_snapshot.json | 21 ++- 19 files changed, 38 insertions(+), 939 deletions(-) delete mode 100644 resources/profiles/Dremel/filament/Generic PLA @Dremel.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_abs.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_asa.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_common.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_pa.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_pc.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_pet.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_pla.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_pva.json delete mode 100644 resources/profiles/Ratrig/filament/fdm_filament_tpu.json diff --git a/resources/profiles/Dremel.json b/resources/profiles/Dremel.json index 951763b563..3d804f6a1b 100644 --- a/resources/profiles/Dremel.json +++ b/resources/profiles/Dremel.json @@ -1,6 +1,6 @@ { "name": "Dremel", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Dremel configurations", "machine_model_list": [ @@ -88,10 +88,6 @@ "name": "fdm_filament_pla", "sub_path": "filament/fdm_filament_pla.json" }, - { - "name": "Generic PLA @Dremel", - "sub_path": "filament/Generic PLA @Dremel.json" - }, { "name": "Generic PLA @Dremel 3D20 all", "sub_path": "filament/Generic PLA @Dremel 3D20 all.json" diff --git a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json index e38769a288..2dbcc6184e 100644 --- a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D20 all.json @@ -1,12 +1,15 @@ { "type": "filament", "name": "Generic PLA @Dremel 3D20 all", - "inherits": "Generic PLA @Dremel", + "inherits": "fdm_filament_pla", "renamed_from": "Dremel Generic PLA @3D20 all;Dremel Generic PLA 3D20 all", "from": "system", "setting_id": "UggXEvCig0b6S8Vx", "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_flow_ratio": [ + "0.98" + ], "filament_max_volumetric_speed": [ "9" ], diff --git a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json index 4c7afbe819..03704ce5e9 100644 --- a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D40 all.json @@ -1,12 +1,15 @@ { "type": "filament", "name": "Generic PLA @Dremel 3D40 all", - "inherits": "Generic PLA @Dremel", + "inherits": "fdm_filament_pla", "renamed_from": "Dremel Generic PLA @3D40 all;Dremel Generic PLA 3D40 all", "from": "system", "setting_id": "VUOtsWfy46cvAyBT", "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_flow_ratio": [ + "0.98" + ], "filament_max_volumetric_speed": [ "9" ], diff --git a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json index a40cebf06d..78f747e0f9 100644 --- a/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json +++ b/resources/profiles/Dremel/filament/Generic PLA @Dremel 3D45 all.json @@ -1,12 +1,21 @@ { "type": "filament", "name": "Generic PLA @Dremel 3D45 all", - "inherits": "Generic PLA @Dremel", + "inherits": "fdm_filament_pla", "renamed_from": "Dremel Generic PLA @3D45 all;Dremel Generic PLA 3D45 all", "from": "system", "setting_id": "qEeBb3Pix2iDT3SD", "filament_id": "OFDSrzZ8", "instantiation": "true", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "slow_down_layer_time": [ + "8" + ], "slow_down_min_speed": "10", "close_fan_the_first_x_layers": "3", "filament_loading_speed_start": "3", diff --git a/resources/profiles/Dremel/filament/Generic PLA @Dremel.json b/resources/profiles/Dremel/filament/Generic PLA @Dremel.json deleted file mode 100644 index 9cf4e162f0..0000000000 --- a/resources/profiles/Dremel/filament/Generic PLA @Dremel.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "name": "Generic PLA @Dremel", - "inherits": "fdm_filament_pla", - "renamed_from": "Dremel Generic PLA", - "from": "system", - "setting_id": "jYydSWbyE3JzoKnQ", - "filament_id": "OFDSrzZ8", - "instantiation": "true", - "filament_flow_ratio": [ - "0.98" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "8" - ], - "compatible_printers": [ - "Dremel 3D45 0.4 nozzle", - "Dremel 3D40 0.4 nozzle", - "Dremel 3D20 0.4 nozzle" - ] -} diff --git a/resources/profiles/Dremel/machine/fdm_dremel_common.json b/resources/profiles/Dremel/machine/fdm_dremel_common.json index 6f7504f9fa..0dae7eb9ea 100644 --- a/resources/profiles/Dremel/machine/fdm_dremel_common.json +++ b/resources/profiles/Dremel/machine/fdm_dremel_common.json @@ -123,9 +123,6 @@ "wipe": [ "1" ], - "default_filament_profile": [ - "Generic PLA @Dremel" - ], "bed_exclude_area": [ "0x0" ], diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json index 710554df5a..a2b792ebdd 100644 --- a/resources/profiles/Ratrig.json +++ b/resources/profiles/Ratrig.json @@ -1,6 +1,6 @@ { "name": "RatRig", - "version": "02.04.00.04", + "version": "02.04.00.05", "force_update": "0", "description": "RatRig configurations", "machine_model_list": [ @@ -276,42 +276,6 @@ } ], "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, { "name": "Generic ABS BigNozzle @RatRig", "sub_path": "filament/Generic ABS BigNozzle @RatRig.json" diff --git a/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json b/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json index 0592709a82..2e47eb6765 100644 --- a/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json +++ b/resources/profiles/Ratrig/filament/Generic PCTG BigNozzle @RatRig.json @@ -1,11 +1,11 @@ { "type": "filament", "name": "Generic PCTG BigNozzle @RatRig", - "inherits": "fdm_filament_pet", + "inherits": "fdm_filament_pctg", "renamed_from": "RatRig BigNozzle PCTG", "from": "system", "setting_id": "HPaol79uY9NdhasQ", - "filament_id": "OFYfAcLY", + "filament_id": "OFXW4CDh", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Ratrig/filament/fdm_filament_abs.json b/resources/profiles/Ratrig/filament/fdm_filament_abs.json deleted file mode 100644 index 6232c6bf6d..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_abs.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_abs", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "105" - ], - "eng_plate_temp": [ - "105" - ], - "hot_plate_temp": [ - "105" - ], - "textured_plate_temp": [ - "105" - ], - "cool_plate_temp_initial_layer": [ - "105" - ], - "eng_plate_temp_initial_layer": [ - "105" - ], - "hot_plate_temp_initial_layer": [ - "105" - ], - "textured_plate_temp_initial_layer": [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ABS" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_asa.json b/resources/profiles/Ratrig/filament/fdm_filament_asa.json deleted file mode 100644 index 0b3ca804e8..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_asa.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_asa", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "105" - ], - "eng_plate_temp": [ - "105" - ], - "hot_plate_temp": [ - "105" - ], - "textured_plate_temp": [ - "105" - ], - "cool_plate_temp_initial_layer": [ - "105" - ], - "eng_plate_temp_initial_layer": [ - "105" - ], - "hot_plate_temp_initial_layer": [ - "105" - ], - "textured_plate_temp_initial_layer": [ - "105" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "35" - ], - "filament_max_volumetric_speed": [ - "28.6" - ], - "filament_type": [ - "ASA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "80" - ], - "nozzle_temperature": [ - "260" - ], - "temperature_vitrification": [ - "110" - ], - "nozzle_temperature_range_low": [ - "240" - ], - "nozzle_temperature_range_high": [ - "270" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "3" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_common.json b/resources/profiles/Ratrig/filament/fdm_filament_common.json deleted file mode 100644 index ab5b8305a6..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_common.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "60" - ], - "eng_plate_temp": [ - "60" - ], - "hot_plate_temp": [ - "60" - ], - "textured_plate_temp": [ - "60" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "textured_plate_temp_initial_layer": [ - "60" - ], - "overhang_fan_threshold": [ - "95%" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_end_gcode": [ - "; filament end gcode \n" - ], - "filament_flow_ratio": [ - "1" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_cooling_layer_time": [ - "60" - ], - "filament_cost": [ - "0" - ], - "filament_density": [ - "0" - ], - "filament_deretraction_speed": [ - "nil" - ], - "filament_diameter": [ - "1.75" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_retraction_minimum_travel": [ - "nil" - ], - "filament_retract_before_wipe": [ - "nil" - ], - "filament_retract_when_changing_layer": [ - "nil" - ], - "filament_retraction_length": [ - "nil" - ], - "filament_z_hop": [ - "nil" - ], - "filament_retract_restart_extra": [ - "nil" - ], - "filament_retraction_speed": [ - "nil" - ], - "filament_settings_id": [ - "" - ], - "filament_soluble": [ - "0" - ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], - "filament_wipe": [ - "nil" - ], - "filament_wipe_distance": [ - "nil" - ], - "bed_type": [ - "Cool Plate" - ], - "nozzle_temperature_initial_layer": [ - "200" - ], - "full_fan_speed_layer": [ - "0" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "35" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "8" - ], - "filament_start_gcode": [ - "; Filament gcode\n" - ], - "nozzle_temperature": [ - "200" - ], - "temperature_vitrification": [ - "100" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_pa.json b/resources/profiles/Ratrig/filament/fdm_filament_pa.json deleted file mode 100644 index 8b67678f9b..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_pa.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pa", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "0" - ], - "eng_plate_temp": [ - "100" - ], - "hot_plate_temp": [ - "100" - ], - "textured_plate_temp": [ - "100" - ], - "cool_plate_temp_initial_layer": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "100" - ], - "hot_plate_temp_initial_layer": [ - "100" - ], - "textured_plate_temp_initial_layer": [ - "100" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "4" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PA" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "290" - ], - "reduce_fan_stop_start_freq": [ - "0" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "0" - ], - "overhang_fan_speed": [ - "30" - ], - "nozzle_temperature": [ - "290" - ], - "temperature_vitrification": [ - "108" - ], - "nozzle_temperature_range_low": [ - "270" - ], - "nozzle_temperature_range_high": [ - "300" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_pc.json b/resources/profiles/Ratrig/filament/fdm_filament_pc.json deleted file mode 100644 index ec102017fc..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_pc.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pc", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "0" - ], - "eng_plate_temp": [ - "110" - ], - "hot_plate_temp": [ - "110" - ], - "textured_plate_temp": [ - "110" - ], - "cool_plate_temp_initial_layer": [ - "0" - ], - "eng_plate_temp_initial_layer": [ - "110" - ], - "hot_plate_temp_initial_layer": [ - "110" - ], - "textured_plate_temp_initial_layer": [ - "110" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "30" - ], - "filament_max_volumetric_speed": [ - "23.2" - ], - "filament_type": [ - "PC" - ], - "filament_density": [ - "1.04" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "270" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "60" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_threshold": [ - "25%" - ], - "overhang_fan_speed": [ - "60" - ], - "nozzle_temperature": [ - "280" - ], - "temperature_vitrification": [ - "140" - ], - "nozzle_temperature_range_low": [ - "260" - ], - "nozzle_temperature_range_high": [ - "280" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "2" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_pet.json b/resources/profiles/Ratrig/filament/fdm_filament_pet.json deleted file mode 100644 index d056aa4e88..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_pet.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pet", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "60" - ], - "eng_plate_temp": [ - "0" - ], - "hot_plate_temp": [ - "80" - ], - "textured_plate_temp": [ - "80" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "hot_plate_temp_initial_layer": [ - "80" - ], - "textured_plate_temp_initial_layer": [ - "80" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "fan_cooling_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "25" - ], - "filament_type": [ - "PETG" - ], - "filament_density": [ - "1.27" - ], - "filament_cost": [ - "30" - ], - "nozzle_temperature_initial_layer": [ - "255" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "100" - ], - "nozzle_temperature": [ - "255" - ], - "temperature_vitrification": [ - "80" - ], - "nozzle_temperature_range_low": [ - "220" - ], - "nozzle_temperature_range_high": [ - "260" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_pla.json b/resources/profiles/Ratrig/filament/fdm_filament_pla.json deleted file mode 100644 index ef1a11694d..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_pla.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pla", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_type": [ - "PLA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "cool_plate_temp": [ - "60" - ], - "eng_plate_temp": [ - "60" - ], - "hot_plate_temp": [ - "60" - ], - "textured_plate_temp": [ - "60" - ], - "cool_plate_temp_initial_layer": [ - "60" - ], - "eng_plate_temp_initial_layer": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], - "textured_plate_temp_initial_layer": [ - "60" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "230" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_pva.json b/resources/profiles/Ratrig/filament/fdm_filament_pva.json deleted file mode 100644 index 860cba12e1..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_pva.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_pva", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "35" - ], - "eng_plate_temp": [ - "0" - ], - "hot_plate_temp": [ - "45" - ], - "textured_plate_temp": [ - "45" - ], - "cool_plate_temp_initial_layer": [ - "35" - ], - "eng_plate_temp_initial_layer": [ - "0" - ], - "hot_plate_temp_initial_layer": [ - "45" - ], - "textured_plate_temp_initial_layer": [ - "45" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_soluble": [ - "1" - ], - "filament_is_support": [ - "1" - ], - "filament_type": [ - "PVA" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "nozzle_temperature_initial_layer": [ - "220" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "overhang_fan_threshold": [ - "50%" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "220" - ], - "temperature_vitrification": [ - "50" - ], - "nozzle_temperature_range_low": [ - "190" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "slow_down_min_speed": [ - "10" - ], - "slow_down_layer_time": [ - "4" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/Ratrig/filament/fdm_filament_tpu.json b/resources/profiles/Ratrig/filament/fdm_filament_tpu.json deleted file mode 100644 index d781fc067d..0000000000 --- a/resources/profiles/Ratrig/filament/fdm_filament_tpu.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "type": "filament", - "name": "fdm_filament_tpu", - "inherits": "fdm_filament_common", - "from": "system", - "instantiation": "false", - "cool_plate_temp": [ - "30" - ], - "eng_plate_temp": [ - "30" - ], - "hot_plate_temp": [ - "35" - ], - "textured_plate_temp": [ - "35" - ], - "cool_plate_temp_initial_layer": [ - "30" - ], - "eng_plate_temp_initial_layer": [ - "30" - ], - "hot_plate_temp_initial_layer": [ - "35" - ], - "textured_plate_temp_initial_layer": [ - "35" - ], - "fan_cooling_layer_time": [ - "100" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "filament_type": [ - "TPU" - ], - "filament_density": [ - "1.24" - ], - "filament_cost": [ - "20" - ], - "filament_retraction_length": [ - "0.4" - ], - "nozzle_temperature_initial_layer": [ - "240" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_for_layer_cooling": [ - "1" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "additional_cooling_fan_speed": [ - "70" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "nozzle_temperature": [ - "240" - ], - "temperature_vitrification": [ - "60" - ], - "nozzle_temperature_range_low": [ - "200" - ], - "nozzle_temperature_range_high": [ - "250" - ], - "filament_start_gcode": [ - "; filament start gcode\n" - ] -} diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json index 0fb50e0560..7f5dda5901 100644 --- a/resources/profiles/retired_filament_ids.json +++ b/resources/profiles/retired_filament_ids.json @@ -3550,6 +3550,12 @@ ], "successor": "OFY9muEs" }, + "OFYfAcLY": { + "claims": [ + "Ratrig/Generic PCTG BigNozzle" + ], + "successor": "OFXW4CDh" + }, "OFYl0c8v": { "claims": [ "Flashforge/Flashforge Generic HIPS" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 5eedb85a5e..c9966fc8d6 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -3001,6 +3001,9 @@ "OFXTPuqV": [ "OrcaFilamentLibrary/Elas PETG Basic" ], + "OFXW4CDh": [ + "Ratrig/Generic PCTG BigNozzle" + ], "OFXi59OX": [ "Afinia/Afinia Value ABS" ], @@ -3127,9 +3130,6 @@ "OFYezc6s": [ "FlyingBear/FlyingBear TPU" ], - "OFYfAcLY": [ - "Ratrig/Generic PCTG BigNozzle" - ], "OFYuowge": [ "FlyingBear/Other ABS", "InfiMech/Other ABS" @@ -5227,7 +5227,6 @@ "DeltaMaker/Generic PETG @DeltaMaker", "DeltaMaker/Generic PLA @DeltaMaker", "DeltaMaker/Generic TPU @DeltaMaker", - "Dremel/Generic PLA @Dremel", "Dremel/Generic PLA @Dremel 3D20 all", "Dremel/Generic PLA @Dremel 3D40 all", "Dremel/Generic PLA @Dremel 3D45 all", @@ -10082,6 +10081,13 @@ "Elas PETG Basic" ] ], + "OFXW4CDh": [ + [ + "Generic", + "PCTG", + "Generic PCTG BigNozzle" + ] + ], "OFXi59OX": [ [ "Afinia", @@ -10236,13 +10242,6 @@ "FlyingBear TPU" ] ], - "OFYfAcLY": [ - [ - "Generic", - "PETG", - "Generic PCTG BigNozzle" - ] - ], "OFYuowge": [ [ "Other", From 96e85b1db56ae9932ea0df47f94485bb16148fd4 Mon Sep 17 00:00:00 2001 From: "Mikhail f. Shiryaev" Date: Tue, 1 Sep 2026 19:21:38 +0200 Subject: [PATCH 098/164] Fix build with disabled precompiled headers (#15484) Fix broken build with disabled PCH --- src/libslic3r/Format/OBJ.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp index e066925a98..10abe8e4de 100644 --- a/src/libslic3r/Format/OBJ.cpp +++ b/src/libslic3r/Format/OBJ.cpp @@ -10,6 +10,7 @@ #include #include +#include #ifdef _WIN32 #define DIR_SEPARATOR '\\' From ec06c8788d2cc5b9efb21a7a6fa45b531418570a Mon Sep 17 00:00:00 2001 From: ndrwrbgs <10776890+ndrwrbgs@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:55:16 -0500 Subject: [PATCH 099/164] Minor display text fixes (#15454) * Minor display text fixes * Update in translations --------- Co-authored-by: Ian Bassi --- localization/i18n/OrcaSlicer.pot | 6 +++--- localization/i18n/ca/OrcaSlicer_ca.po | 6 +++--- localization/i18n/cs/OrcaSlicer_cs.po | 6 +++--- localization/i18n/de/OrcaSlicer_de.po | 6 +++--- localization/i18n/en/OrcaSlicer_en.po | 6 +++--- localization/i18n/es/OrcaSlicer_es.po | 6 +++--- localization/i18n/eu/OrcaSlicer_eu.po | 6 +++--- localization/i18n/fr/OrcaSlicer_fr.po | 6 +++--- localization/i18n/hu/OrcaSlicer_hu.po | 6 +++--- localization/i18n/it/OrcaSlicer_it.po | 6 +++--- localization/i18n/ja/OrcaSlicer_ja.po | 6 +++--- localization/i18n/ko/OrcaSlicer_ko.po | 6 +++--- localization/i18n/lt/OrcaSlicer_lt.po | 6 +++--- localization/i18n/nl/OrcaSlicer_nl.po | 6 +++--- localization/i18n/pl/OrcaSlicer_pl.po | 6 +++--- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 6 +++--- localization/i18n/ru/OrcaSlicer_ru.po | 6 +++--- localization/i18n/sv/OrcaSlicer_sv.po | 6 +++--- localization/i18n/th/OrcaSlicer_th.po | 6 +++--- localization/i18n/tr/OrcaSlicer_tr.po | 6 +++--- localization/i18n/uk/OrcaSlicer_uk.po | 6 +++--- localization/i18n/vi/OrcaSlicer_vi.po | 6 +++--- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 6 +++--- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 6 +++--- src/slic3r/GUI/ConfigManipulation.cpp | 6 +++--- 25 files changed, 75 insertions(+), 75 deletions(-) diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 6ec0ecd9cf..b183df098b 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -4497,7 +4497,7 @@ msgid "" "The value will be reset to 0." msgstr "" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "" msgid "" @@ -4528,13 +4528,13 @@ msgid "" msgstr "" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index b7eb022c0d..d78487b947 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -4893,7 +4893,7 @@ msgstr "" "\n" "El valor es restablirà a 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "La paret addicional alternativa no funciona bé quan assegurar el gruix de la closca vertical està establert a Tot." msgid "" @@ -4939,7 +4939,7 @@ msgstr "" "NO - Mantenir l'alçada de la capa de suport independent" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height ha de ser més petit que layer_height.\n" @@ -4947,7 +4947,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "La profunditat de bloqueig ha de ser menor que la profunditat de la pell.\n" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index b521a8073b..7eeb1072c0 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -4851,7 +4851,7 @@ msgstr "" "\n" "Hodnota bude nastavena na 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Střídavá přídavná stěna nefunguje správně, pokud je zajištění tloušťky svislé stěny nastaveno na Vše." msgid "" @@ -4897,7 +4897,7 @@ msgstr "" "NE – Ponechat nezávislou výšku podpůrné vrstvy" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height musí být menší než layer_height.\n" @@ -4905,7 +4905,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Hloubka zamčení musí být menší než hloubka krycí vrstvy.\n" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 436966457a..92143b907b 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -4757,7 +4757,7 @@ msgstr "" "\n" "Der Wert wird auf 0 zurückgesetzt." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Der alternative zusätzliche Wandmodus funktioniert nicht gut, wenn die vertikale Wanddicke auf Alle eingestellt ist." msgid "" @@ -4803,7 +4803,7 @@ msgstr "" "NEIN - unabhängige Stütz-Schichthöhen beibehalten" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height muss kleiner als layer_height sein.\n" @@ -4811,7 +4811,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Die Verriegelungstiefe sollte kleiner als die Hauttiefe sein.\n" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 88fb455959..eb0a7d774c 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -4493,7 +4493,7 @@ msgid "" "The value will be reset to 0." msgstr "" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "" msgid "" @@ -4524,13 +4524,13 @@ msgid "" msgstr "" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 9c5127e50a..23294fddbd 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -4629,7 +4629,7 @@ msgstr "" "\n" "El valor se restablecerá a 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Perímetro adicional alternado no funciona bien cuando \"Garantizar el grosor vertical de las cubiertas\" se establece en Todos." msgid "" @@ -4675,7 +4675,7 @@ msgstr "" "NO - Mantener la altura de capa de soportes independiente" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height debe ser menor que layer_height.\n" @@ -4683,7 +4683,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "La profundidad de bloqueo debe ser menor que la profundidad de piel.\n" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index 03e6d6685d..a5a49e8325 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -4670,7 +4670,7 @@ msgstr "" "\n" "Balioa 0ra berrezarriko da." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Horma gehigarri txandakatuak ez du ondo funtzionatzen \"Bermatu oskolaren lodiera bertikala\" Guztiak gisa ezarrita dagoenean." msgid "" @@ -4716,7 +4716,7 @@ msgstr "" "NO - 'Euskarrien Geruza-Altuera Independentea' mantendu" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height txigiagoa izan behar da layer_height baino.\n" @@ -4724,7 +4724,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Blokeo-sakonera gainazalaren sakonera baino txikiagoa izan behar da.\n" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index fc58381106..c9bd7f22ef 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -4707,7 +4707,7 @@ msgstr "" "\n" "La valeur sera remise à 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "La paroi supplémentaire alternée ne fonctionne pas bien lorsque le paramètre Assurer l’épaisseur de la coque verticale est réglée sur Tous." msgid "" @@ -4753,7 +4753,7 @@ msgstr "" "NON - Conserver la hauteur de la couche de support indépendante" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height doit être inférieur à la hauteur de couche.\n" @@ -4761,7 +4761,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "La profondeur de verrouillage doit être inférieure à la profondeur de la peau.\n" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 9f8a849884..9d966bf80a 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -4803,7 +4803,7 @@ msgstr "" "\n" "Az érték 0-ra áll vissza." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "A váltakozó extra fal nem működik jól, ha a függőleges héjvastagság biztosítása \"Mind\" értékre van állítva." msgid "" @@ -4849,7 +4849,7 @@ msgstr "" "NEM - Független támasz rétegmagasság megtartása" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "A seam_slope_start_height értékének kisebbnek kell lennie, mint a layer_height.\n" @@ -4857,7 +4857,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "A rögzítési mélységnek kisebbnek kell lennie, mint a felületi réteg mélysége.\n" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index bc36e08d25..6190d2ab44 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -4805,7 +4805,7 @@ msgstr "" "\n" "Il valore verrà reimpostato a 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Parete aggiuntiva alternativa non funziona bene quando \"Garantisci spessore verticale del guscio\" è impostato su Tutto." msgid "" @@ -4851,7 +4851,7 @@ msgstr "" "NO - Mantieni Altezza strato di supporto indipendente" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height deve essere inferiore a layer_height.\n" @@ -4859,7 +4859,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "La profondità di intersezione deve essere inferiore alla profondità della pelle.\n" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 1b70ddbf67..327e3df661 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -4818,7 +4818,7 @@ msgstr "" "\n" "値は0にリセットされます。" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "垂直シェル厚さを「すべて」に設定すると、交互追加壁が適切に機能しません。" msgid "" @@ -4864,7 +4864,7 @@ msgstr "" "いいえ - 「独立サポート積層ピッチ」を有効にする" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_heightはlayer_heightより小さくする必要があります。\n" @@ -4872,7 +4872,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "ロック深さはスキン深さより小さくする必要があります。\n" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 767674e525..e8dfca968f 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -4829,7 +4829,7 @@ msgstr "" "\n" "값이 0으로 재설정됩니다." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "세로 쉘 두께가 모두로 설정된 경우 대체 여분의 벽이 제대로 작동하지 않습니다." msgid "" @@ -4875,7 +4875,7 @@ msgstr "" "아니요 - 독립적 서포트 레이어 높이 유지" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "심_경사_시작_높이는 레이어_높이보다 작아야 합니다.\n" @@ -4883,7 +4883,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "잠금 깊이는 스킨 깊이보다 작아야 합니다.\n" diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index ad5edffc9a..8fd32bdd26 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -4792,7 +4792,7 @@ msgstr "" "\n" "Reikšmė bus atstatyta į 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Alternatyvi papildoma sienelė veikia prastai, kai vertikalaus apvalkalo storio užtikrinimas nustatytas į „Visi“." msgid "" @@ -4838,7 +4838,7 @@ msgstr "" "NE – palikti nepriklausomą atramų sluoksnio aukštį" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "„seam_slope_start_height“ turi būti mažesnis už „layer_height“\n" @@ -4846,7 +4846,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Fiksavimo gylis turėtų būti mažesnis už išorinio sluoksnio gylį.\n" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 28ad63d455..96c22fcc8b 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -5217,7 +5217,7 @@ msgstr "" "De waarde wordt teruggezet naar 0." # AI Translated -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Afwisselende extra wand werkt niet goed wanneer 'verticale wanddikte waarborgen' op Alles is ingesteld." # AI Translated @@ -5265,7 +5265,7 @@ msgstr "" # AI Translated msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height moet kleiner zijn dan layer_height.\n" @@ -5274,7 +5274,7 @@ msgstr "" # AI Translated #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "De vergrendeldiepte moet kleiner zijn dan de huiddiepte.\n" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index e8acc62a9b..4a21d38a27 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -4907,7 +4907,7 @@ msgstr "" "\n" "Wartość zostanie zresetowana do 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Alternatywna dodatkowa ściana działa tylko wtedy, gdy jest wyłączona opcja „zapewnij stałą grubość pionowej powłoki”." msgid "" @@ -4953,7 +4953,7 @@ msgstr "" "NIE - Zachowaj Niezależną wysokość warstwy podpory" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height musi być mniejsza niż wysokość warstwy.\n" @@ -4962,7 +4962,7 @@ msgstr "" # AI Translated #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Głębokość blokady powinna być mniejsza niż głębokość skóry.\n" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 1b39d4a159..931d3d510b 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -4641,7 +4641,7 @@ msgstr "" "\n" "O valor será redefinido para 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "A parede extra alternada não funciona bem quando a espessura vertical da casca está definida para Todos." msgid "" @@ -4687,7 +4687,7 @@ msgstr "" "NÃO — Manter a Altura da Camada de Suporte Independente" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height precisa ser menor que layer_height.\n" @@ -4695,7 +4695,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "A profundidade do travamento deve ser menor que a profundidade da textura.\n" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 2372471707..eb24ebc759 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -4780,7 +4780,7 @@ msgstr "" "\n" "Значение будет сброшено до 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Чередующаяся дополнительная стенка не работает, если для «Сохранение толщины вертикальной оболочки» установлено значение «Все»." msgid "" @@ -4833,7 +4833,7 @@ msgstr "" "Нет – отключить черновую башню" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "Начальная высота не должна превышать высоту слоя.\n" @@ -4841,7 +4841,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Перекрытие должно быть меньше внутренней оболочки.\n" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index 432000f96d..52972e241a 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -5279,7 +5279,7 @@ msgstr "" "Värdet kommer att återställas till 0." # AI Translated -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Alternerande extra vägg fungerar inte bra när säkerställ vertikal skaltjocklek är inställt på Alla." # AI Translated @@ -5327,7 +5327,7 @@ msgstr "" # AI Translated msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height måste vara mindre än layer_height.\n" @@ -5336,7 +5336,7 @@ msgstr "" # AI Translated #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Låsdjupet bör vara mindre än ytskiktets djup.\n" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index a0c0079125..4c4ac2d25f 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -4785,7 +4785,7 @@ msgstr "" "\n" "ค่าจะถูกรีเซ็ตเป็น 0" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "ผนังเสริมสำรองทำงานได้ไม่ดีเมื่อตั้งค่าความหนาของเปลือกแนวตั้งเป็นทั้งหมด" msgid "" @@ -4831,7 +4831,7 @@ msgstr "" "ไม่ - รักษาความสูงของชั้นรองรับที่เป็นอิสระ" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height ต้องเล็กกว่า layer_height\n" @@ -4839,7 +4839,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "ความลึกของล็อคควรน้อยกว่าความลึกของผิวหนัง\n" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index c3deff8bd8..833706ad70 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -4847,7 +4847,7 @@ msgstr "" "\n" "Değer 0'a sıfırlanacaktır." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Alternatif ekstra duvar, dikey kabuk kalınlığının Tümü olarak ayarlandığından emin olunduğunda iyi çalışmaz." msgid "" @@ -4893,7 +4893,7 @@ msgstr "" "HAYIR - Bağımsız Destek Katmanı Yüksekliğini Koruyun" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height, layer_height değerinden küçük olmalıdır.\n" @@ -4901,7 +4901,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Kilit derinliği cilt derinliğinden daha küçük olmalıdır.\n" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 9f57b6b71a..df06c01684 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -4781,7 +4781,7 @@ msgstr "" "\n" "Значення буде скинуто на 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Чергування додаткової стінки не працює добре, якщо для параметра \"Забезпечити товщину вертикальної оболонки\" встановлено значення \"Всі\"." msgid "" @@ -4827,7 +4827,7 @@ msgstr "" "НІ - Залишити незалежну висоту шарів підтримки" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height має бути менше висоти шару.\n" @@ -4836,7 +4836,7 @@ msgstr "" # AI Translated #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Глибина зчеплення має бути меншою за глибину оболонки.\n" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index 00a9a558ba..e78fc51687 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -5040,7 +5040,7 @@ msgstr "" "\n" "Giá trị sẽ được đặt lại về 0." -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "Luân phiên wall phụ không hoạt động tốt khi đảm bảo độ dày shell dọc được đặt thành Tất cả." msgid "" @@ -5086,7 +5086,7 @@ msgstr "" "NO - Giữ chiều cao lớp support độc lập" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height cần nhỏ hơn layer_height.\n" @@ -5094,7 +5094,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "Độ sâu khóa phải nhỏ hơn độ sâu skin.\n" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index 133e0815a4..d2f07d19ae 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -4641,7 +4641,7 @@ msgstr "" "\n" "这个数值将被重置为0。" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "“交替添加额外”与“确保垂直外壳厚度”的”全部“选项不兼容。" msgid "" @@ -4687,7 +4687,7 @@ msgstr "" "否 - 选择保留支撑独立层高" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height需要小于layer_height。\n" @@ -4695,7 +4695,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "锁定深度应小于表皮深度。\n" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index cf6a2519c3..456092deb5 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -4758,7 +4758,7 @@ msgstr "" "\n" "該值將會重設為 0。" -msgid "Alternate extra wall does't work well when ensure vertical shell thickness is set to All." +msgid "Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All." msgstr "當確保垂直外殼厚度設為『全部』時,交錯額外牆壁效果不佳。" msgid "" @@ -4815,7 +4815,7 @@ msgstr "" "否 - 選擇保留獨立支撐層高" msgid "" -"seam_slope_start_height need to be smaller than layer_height.\n" +"seam_slope_start_height needs to be smaller than layer_height.\n" "Reset to 0." msgstr "" "seam_slope_start_height 必須小於 layer_height。\n" @@ -4824,7 +4824,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"Lock depth should smaller than skin depth.\n" +"Lock depth should be smaller than skin depth.\n" "Reset to 50% of skin depth." msgstr "" "鎖定深度應小於表皮深度。\n" diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index d15164ef63..09b7fcfad4 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -453,7 +453,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con if (config->opt_bool("alternate_extra_wall") && (config->opt_enum("ensure_vertical_shell_thickness") == evstAll)) { - wxString msg_text = _(L("Alternate extra wall does't work well when ensure vertical shell thickness is set to All.")); + wxString msg_text = _(L("Alternate extra wall doesn't work well when ensure vertical shell thickness is set to All.")); if (is_global_config) msg_text += "\n\n" + _(L("Change these settings automatically?\n" @@ -642,7 +642,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con if (config->opt_enum("seam_slope_type") != SeamScarfType::None && config->get_abs_value("seam_slope_start_height") >= layer_height) { - const wxString msg_text = _(L("seam_slope_start_height need to be smaller than layer_height.\nReset to 0.")); + const wxString msg_text = _(L("seam_slope_start_height needs to be smaller than layer_height.\nReset to 0.")); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); DynamicPrintConfig new_conf = *config; is_msg_dlg_already_exist = true; @@ -656,7 +656,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con float skin_depth = config->opt_float("skin_infill_depth"); if (config->opt_float("infill_lock_depth") > skin_depth) { // xgettext:no-c-format, no-boost-format - const wxString msg_text = _(L("Lock depth should smaller than skin depth.\nReset to 50% of skin depth.")); + const wxString msg_text = _(L("Lock depth should be smaller than skin depth.\nReset to 50% of skin depth.")); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); DynamicPrintConfig new_conf = *config; is_msg_dlg_already_exist = true; From 21aa07b9cc757331584fd5d6d00183e9cf7021bc Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Tue, 1 Sep 2026 13:02:19 -0500 Subject: [PATCH 100/164] build: add build_win.bat, a Windows build script for deps, slicer and toolchain setup (#15436) * build: add build_win.bat, a Windows build script for deps, slicer and toolchain setup build_release_vs.bat takes no options: what it builds is decided by editing it. This adds build_win.bat alongside it, with short and long options, a grouped help message, a dry-run mode that prints every command instead of running it, and one option per thing a developer actually varies - the configuration, the architecture, the compiler, the generator, the Visual Studio release, how much gets rebuilt, and where the dependency tree lives. It works from any directory, needs no developer command prompt in either generator mode, and keeps CMake ahead of Strawberry Perl on PATH so a build does not depend on how the user ordered their environment. scripts/test_build_win.ps1 covers it with table-driven cases that run the script under --dry-run and assert on the commands it prints, so nothing is configured or built. The Windows build jobs wait on that suite. Based on the script from OrcaSlicer#11097. Co-authored-by: Ocraftyone <24759591+Ocraftyone@users.noreply.github.com> * build: report what build_win.bat produced and what to do next Every successful run now ends with a block naming what it built and the commands to carry on with. Those commands repeat the flags that reproduce the run, so a rebuild after a clang-cl Ninja build is not silently an MSVC one. A failure gets a framed block naming the command that failed and a retry scoped to the stage that failed, so a slicer error does not suggest discarding an untouched dependency tree. Installing is now opt-in behind -i. The install tree is a second full copy of the build that exists mainly so the release can be zipped from it, while the build tree is already runnable, with the DLLs beside the binary and resources symlinked rather than copied. Configuring against a dependency tree that was never built now names it instead of failing several hundred lines into CMake's package resolution. scripts/test_build_win.ps1 covers all of it, and gains -Name so one case can be run without the full pass. * build: let the test options stand alone, and say which build things apply to --run-tests named two things to do and then did neither without -s, so `build_win.bat -lx --run-tests` answered "Nothing to do". Both test options now imply the slicer build they cannot happen without, unless another action was already named, so -d --tests is still a dependency build. --install-vs has turned on --install-deps the same way all along. That makes them actions, so they move to the group that says so. -i goes the other way, to the step toggles beside --no-configure and --no-gettext, since it does not stand alone and adds a step rather than describing what kind of build to make. An example shows the tests run with toolchain flags, because flags pick which build gets tested and a bare --run-tests would build and test a default tree the developer never asked for. Two help lines named defaults that were not the defaults. --build-dir said "instead of build/" and --deps-dir said "instead of deps/", but trees are named for the configuration, compiler and architecture, so build/ is only the default for a release x64 MSVC build, and deps/ is the source directory rather than a tree anything is built in. The hint for a missing dependency tree now carries the flags that reproduce the run. It said "Build them with -d", which after a clang build points at the MSVC tree, so following it left you no better off. Every other suggestion the script makes already repeats them. -k counted on the developer to read taskkill invocations as progress. It now names each image and how many processes it is about to stop, which is what explains the pause, and skips the ones that are not running instead of printing taskkill's "not found" as though something had gone wrong. No image can stop the rest. The environment example set SLIC3R_ASAN, which -a already does, teaching the long way round to a flag the script owns. It now sets options that have no flag. The note under it said "Use these for a value containing spaces. Ampersands are not supported", which named neither what "these" were an alternative to nor where ampersands were a problem. The test harness gains a NotExists field, because output cannot show what a run did not create, and two cases needed to prove exactly that. --------- Co-authored-by: Ocraftyone <24759591+Ocraftyone@users.noreply.github.com> Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- .gitattributes | 5 + .github/workflows/build_all.yml | 21 +- .gitignore | 1 + build_win.bat | 1268 +++++++++++++++++++++++++++++++ scripts/test_build_win.ps1 | 847 +++++++++++++++++++++ 5 files changed, 2141 insertions(+), 1 deletion(-) create mode 100644 build_win.bat create mode 100644 scripts/test_build_win.ps1 diff --git a/.gitattributes b/.gitattributes index 441bdfe1eb..472a0b2d1f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,8 @@ # with CRLF line endings: it fails on the first line. Windows checkouts default # to core.autocrlf=true, so keep these LF whatever the platform. *.sh text eol=lf + +# Batch files are read by cmd.exe, which tracks a byte offset into the file to +# resume after `call :label`. With LF endings that offset can land wrong and the +# label lookup fails, so keep these CRLF whatever the platform. +*.bat text eol=crlf diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index fe4f10e81b..d991bedca6 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -33,6 +33,8 @@ on: - 'build_linux.sh' - 'build_release_vs.bat' - 'build_release_vs2022.bat' + - 'build_win.bat' + - 'scripts/test_build_win.ps1' - 'build_release_macos.sh' - 'scripts/build_preset_cache.*' - 'scripts/flatpak/**' @@ -56,6 +58,22 @@ concurrency: jobs: + # build_win.bat ships a test suite. Run it before the Windows builds. + check_build_script: + name: Windows build script tests + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v7 + with: + lfs: 'false' + + # Windows PowerShell rather than pwsh: the suite drives build_win.bat + # through cmd, and the two differ in how they quote native arguments. + - name: Run the build script test suite + shell: powershell + run: .\scripts\test_build_win.ps1 + build_linux: strategy: fail-fast: false @@ -83,8 +101,9 @@ jobs: include: ${{ fromJSON(vars.SELF_HOSTED && '[{"arch":"x64","os":"orca-win-server","compiler":"clang"}]' || '[{"arch":"x64","os":"windows-latest","compiler":"clang"},{"arch":"arm64","os":"windows-11-arm","compiler":"clang"}]') }} + needs: check_build_script # Don't run scheduled builds on forks: - if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} + if: ${{ !cancelled() && needs.check_build_script.result == 'success' && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} uses: ./.github/workflows/build_check_cache.yml with: os: ${{ matrix.os }} diff --git a/.gitignore b/.gitignore index cdcd1c90b4..e36d0dfa49 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ Build Build.bat /build*/ +/out/ CMakeLists.txt.user CMakeUserPresets.json **/CMakeLists.txt.autosave diff --git a/build_win.bat b/build_win.bat new file mode 100644 index 0000000000..926468687b --- /dev/null +++ b/build_win.bat @@ -0,0 +1,1268 @@ +@echo off + +REM OrcaSlicer build script for Windows. Run with -h for the options. + +REM =========================================================================== +REM Script setup +REM =========================================================================== + +setlocal enableDelayedExpansion + +REM A manually set errorlevel shadows the real one, and cmd then stops +REM updating it after each command. Clear it, inside the scope above so +REM the caller keeps whatever it had. +set errorlevel= + +REM Everything here is relative to the repository root: deps/, build/ and +REM the 7z in tools/. Work from there whatever directory this was called +REM from. setlocal above restores the caller directory on exit. +cd /d "%~dp0" +set "WP=%CD%" +set "script_name=%~nx0" + +set argdefn=0 + +REM Both macros stop on a non-zero errorlevel; error_check also says so. +REM +REM error_check jumps to :die rather than calling exit /b where it stands. +REM Every use of it is inside a parenthesised block, and an exit /b there +REM ends the script but leaves the process exit code at zero, so a failed +REM build reported success. goto unwinds the block first. +set "repeat_error=if not ^!errorlevel^! == 0 exit /b ^!errorlevel^!" +set "error_check=if not ^!errorlevel^! == 0 (set rc=^!errorlevel^!& goto :die)" + +set VSWHERE="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" + +REM =========================================================================== +REM Command line options +REM =========================================================================== + +call :add_section "Actions" +call :add_arg build_deps bool d deps "Download and build the dependencies, needed before -s" +call :add_arg build_slicer bool s slicer "Build OrcaSlicer" +call :add_arg build_tests bool "" tests "Build the unit tests" +call :add_arg run_tests bool "" run-tests "Build the unit tests and run them" +call :add_arg pack_deps bool p pack "Bundle the built dependencies into a zip file" +call :add_arg install_deps bool u install-deps "Install or update CMake, Perl and Git with WinGet" +call :add_arg install_vs string "" install-vs "Also install Visual Studio: buildtools or ide" +call :add_arg kill_jobs bool k kill-jobs "Kill any running build and compiler processes" +call :add_arg print_help bool h help "Print this help message" + +call :add_section "Build configuration" +call :add_arg config string "" config "release, debug, relwithdebinfo or minsizerel (default: release)" +call :add_arg target_arch string "" arch "x64 or arm64 (default: the host architecture)" +call :add_arg slicer_asan bool a asan "Build the slicer with ASAN enabled" + +call :add_section "Toolchain" +call :add_arg use_clang_cl bool l clang-cl "Use clang-cl as the compiler" +call :add_arg use_msvc bool "" msvc "Use cl as the compiler (default)" +call :add_arg use_ninja bool x ninja "Use the Ninja Multi-Config generator" +call :add_arg use_msbuild bool "" msbuild "Use the Visual Studio generator (default)" +call :add_arg vs_version string "" vs "Visual Studio release: 2019, 2022 or 2026 (default: autodetect)" +call :add_arg clang_path string "" clang-path "Path to clang-cl.exe, requires -x (default: the one from Visual Studio)" + +call :add_section "How much gets rebuilt" +call :add_arg slicer_target string "" slicer-target "Build one slicer target instead of all, e.g. libslic3r" +call :add_arg deps_target string t deps-target "Build one dependency instead of all, e.g. dep_Boost" +call :add_arg no_configure bool "" no-configure "Build the existing tree without configuring" +call :add_arg no_gettext bool "" no-gettext "Skip regenerating the translations" +call :add_arg install_slicer bool i install "Install into the build tree's OrcaSlicer folder" +call :add_arg jobs string j jobs "Limit the build to N parallel jobs" +call :add_arg clean bool c clean "Remove the trees this run builds, deps with -d, slicer with -s" + +call :add_section "Paths and extra arguments" +call :add_arg deps_dir string "" deps-dir "Dependency tree to build in or use, instead of the one named for this build" +call :add_arg slicer_dir string "" build-dir "Slicer build directory, instead of the one named for this build" +call :add_arg deps_args rawstring "" deps-args "Extra arguments for the deps configure, quoted" +call :add_arg slicer_args rawstring "" slicer-args "Extra arguments for the slicer configure, quoted" + +call :add_section "Diagnostics" +call :add_arg verbose bool v verbose "Show the compiler command lines" +call :add_arg dry_run bool D dry-run "Print the commands instead of running them" + +REM =========================================================================== +REM Lookup tables +REM =========================================================================== + +REM Known build configurations: the CMake build type, the directory to build +REM in, and the dependency tree to build against. Adding one means adding all +REM three entries in its group. The name is matched case-insensitively because +REM batch variable names are, so --config Debug finds cfg_type_debug. +REM +REM Release, RelWithDebInfo and MinSizeRel all link the /MD dependencies, so +REM they share one tree rather than each paying for its own. Debug needs /MDd +REM and cannot. deps/CMakeLists.txt makes the same split: only Debug turns on +REM DEP_DEBUG, while RelWithDebInfo just adds debug info to a release build. +set "cfg_type_release=Release" +set "cfg_dir_release=build" +set "cfg_dep_release=build" + +set "cfg_type_debug=Debug" +set "cfg_dir_debug=build-dbg" +set "cfg_dep_debug=build-dbg" + +set "cfg_type_relwithdebinfo=RelWithDebInfo" +set "cfg_dir_relwithdebinfo=build-dbginfo" +set "cfg_dep_relwithdebinfo=build" + +set "cfg_type_minsizerel=MinSizeRel" +set "cfg_dir_minsizerel=build-minsize" +set "cfg_dep_minsizerel=build" + +set "cfg_default=release" + +REM Known Visual Studio releases: the generator name, the suffix in the +REM WinGet id, and the major version vswhere and msbuild report. Adding a +REM release means adding all three entries in its group. +set "vs_gen_2019=Visual Studio 16 2019" +set "vs_winget_2019=.2019" +set "vs_year_16=2019" + +set "vs_gen_2022=Visual Studio 17 2022" +set "vs_winget_2022=.2022" +set "vs_year_17=2022" + +REM 2026 is the unversioned WinGet id: there is no Microsoft.VisualStudio.2026. +set "vs_gen_2026=Visual Studio 18 2026" +set "vs_winget_2026=" +set "vs_year_18=2026" + +set "vs_default=2026" + +REM What --install-vs asks WinGet for. +set "vs_edition_buildtools=BuildTools" +set "vs_edition_ide=Community" + +REM =========================================================================== +REM Command line handling +REM =========================================================================== + +call :handle_args %* +%error_check% + +if "%debugscript%" == "ON" ( + set /A range_end = %argdefn% - 1 + for /L %%i in (0, 1, !range_end!) do ( + call :echo_var !argdefs[%%i].VARIABLE_NAME! + ) +) + +if "%~1" == "" ( + set print_help=ON + goto :before_print_help +) + +set "all_args=%*" +if "%all_args:"=%" == "" ( + set print_help=ON +) + +:before_print_help + +if "%print_help%" == "ON" ( + call :print_help_msg + exit /b 0 +) + +REM Say so before the first + line scrolls past. +if "%dry_run%" == "ON" echo Dry run: printing commands without running them. + +if "%kill_jobs%" == "ON" ( + echo Stopping build processes. + call :kill_image MSBuild.exe + call :kill_image ninja.exe + call :kill_image cl.exe + call :kill_image clang-cl.exe + exit /b 0 +) + +REM Neither test option can happen without building the slicer, so asking for +REM one asks for that, unless another action was already named. +if "%build_deps%%build_slicer%%pack_deps%%install_deps%%install_vs%" == "" ( + if "%build_tests%" == "ON" set "build_slicer=ON" + if "%run_tests%" == "ON" set "build_slicer=ON" +) + +REM Options like --config or -j only shape a build. Without one of the actions +REM there is nothing for them to shape, so say so rather than resolving a whole +REM build and reporting it took no time. The block above may have added one. +if "%build_deps%%build_slicer%%pack_deps%%install_deps%%install_vs%" == "" ( + echo Nothing to do. Pick an action: -d, -s, -p or -u. Run -h for the full list. + exit /b 1 +) + +REM =========================================================================== +REM Visual Studio and target architecture +REM =========================================================================== + +REM Asking for Visual Studio is asking to install prerequisites. Resolve the +REM edition here rather than testing whether the name is defined: `if defined` +REM stops at the first space, so "ide " would pass and then expand to nothing. +set "vs_edition=" +if not "%install_vs%" == "" ( + set "install_deps=ON" + set "vs_edition=!vs_edition_%install_vs%!" + if "!vs_edition!" == "" ( + echo Unknown Visual Studio edition "%install_vs%". Known editions: buildtools, ide. + exit /b 1 + ) +) +REM Autodetection overwrites vs_version, so snapshot whether it was pinned. +set "vs_pinned=%vs_version%" + +if not "%vs_version%" == "" if "%use_ninja%" == "ON" ( + echo --vs and --ninja select different generators. + exit /b 1 +) +REM install(TARGETS OrcaSlicer) carries no OPTIONAL, so installing a tree +REM whose executable was never built fails. Say so before the build starts. +if "%build_slicer%" == "ON" if "%install_slicer%" == "ON" if not "%slicer_target%" == "" if /I not "%slicer_target%" == "OrcaSlicer" ( + echo --install needs the executable, but --slicer-target names "%slicer_target%". + exit /b 1 +) +if not "%vs_version%" == "" if "!vs_gen_%vs_version%!" == "" ( + echo Unknown Visual Studio release "%vs_version%". Known releases: 2019, 2022, 2026. + exit /b 1 +) + +call :autodetect_vs +%error_check% + +REM autodetect leaves this empty when it finds nothing usable. +if "%vs_version%" == "" set "vs_version=%vs_default%" + +REM Default to the host CPU. PROCESSOR_ARCHITEW6432 covers a 32-bit shell on +REM a 64-bit OS, where PROCESSOR_ARCHITECTURE reads x86. +set arch=x64 +if /I "%PROCESSOR_ARCHITECTURE%" == "ARM64" set arch=ARM64 +if /I "%PROCESSOR_ARCHITEW6432%" == "ARM64" set arch=ARM64 +if not "%target_arch%" == "" ( + if /I "%target_arch%" == "arm64" ( + set arch=ARM64 + ) else ( + if /I "%target_arch%" == "x64" ( + set arch=x64 + ) else ( + echo Unknown architecture "%target_arch%". Expected x64 or arm64. + exit /b 1 + ) + ) +) + +REM =========================================================================== +REM Installing prerequisites +REM =========================================================================== + +if "%install_deps%" == "ON" ( + where winget >nul 2>nul + if not !errorlevel! == 0 ( + echo WinGet was not found + exit /b 1 + ) + REM Keep going after one failure so the rest still get installed, then + REM name the ones that did not rather than claiming they all did. + set "install_failed=" + set "winget_args=-e --source=winget" + if not "%install_vs%" == "" ( + set "vs_year=!vs_winget_%vs_version%!" + set "ide_component_flag=" + if /I "%install_vs%" == "ide" set "ide_component_flag=Microsoft.VisualStudio.Component.VC.CoreIde" + REM Two components: the clang-cl compiler itself, and the MSBuild + REM toolset that lets the Visual Studio generator drive it. One + REM install covers both x64 and ARM64. + set "clang_cl_flag=" + if "%use_clang_cl%" == "ON" set "clang_cl_flag=Microsoft.VisualStudio.Component.VC.Llvm.Clang Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset" + REM The x64 tools build the host tooling either way; targeting ARM64 + REM needs its own toolset on top of them. + set "arm64_tools_flag=" + if /I "%arch%" == "ARM64" set "arm64_tools_flag=Microsoft.VisualStudio.Component.VC.Tools.ARM64" + call :print_and_run winget install !winget_args! --id=Microsoft.VisualStudio!vs_year!.!vs_edition! --force --custom "--add !ide_component_flag! Microsoft.VisualStudio.Component.VC.Tools.x86.x64 !arm64_tools_flag! Microsoft.VisualStudio.Component.VC.CMake.Project Microsoft.VisualStudio.Component.Windows11SDK.22621 !clang_cl_flag!" + call :note_failed "Visual Studio" !errorlevel! + ) + + REM CMake 4 dropped pre-3.5 policy support and ships incomplete ASM_ARMASM + REM linker modules, which breaks Boost.Context on ARM64. CI pins the same way. + set "cmake_version_flag=" + if /I "%arch%" == "ARM64" set "cmake_version_flag=--version 3.31.8" + call :print_and_run winget install !winget_args! --id=Kitware.CMake !cmake_version_flag! + call :note_failed CMake !errorlevel! + call :print_and_run winget install !winget_args! --id=StrawberryPerl.StrawberryPerl + call :note_failed Perl !errorlevel! + call :print_and_run winget install !winget_args! --id=Git.Git + call :note_failed Git !errorlevel! + + if defined install_failed ( + set "die_reason=Failed to install:!install_failed!" + set rc=1 + goto :die + ) + + REM Flags to repeat back in the deferred build command. + set "next_flags=" + if "%use_clang_cl%" == "ON" set "next_flags=!next_flags! -l" + if "%use_ninja%" == "ON" set "next_flags=!next_flags! -x" + if not "%target_arch%" == "" set "next_flags=!next_flags! --arch %target_arch%" + + REM Name the build that was deferred, not a fuller one. + set "next_actions=" + if "%build_deps%" == "ON" set "next_actions=!next_actions!d" + if "%build_slicer%" == "ON" set "next_actions=!next_actions!s" + if "%pack_deps%" == "ON" set "next_actions=!next_actions!p" + if "!next_actions!" == "" set "next_actions=ds" + + echo. + echo ------------------------------------------------------------- + REM A dry run installed nothing, so do not report that it did. + if "%dry_run%" == "ON" ( + echo Dry run: nothing was installed. + ) else ( + echo Installed the prerequisites. + ) + echo. + echo Next + REM The new PATH cannot reach this shell, so the build runs in the next one. + echo Restart this shell so the new PATH takes effect, then + echo build_win.bat -!next_actions!!next_flags! + echo ------------------------------------------------------------- + exit /b 0 +) + +REM =========================================================================== +REM Resolving the build +REM =========================================================================== + +REM A value ending in a backslash escapes the closing quote when it is +REM spliced into a command line: -B "D:\tree\" reaches cmake as D:\tree" +REM and swallows the argument after it. No path here needs one. +call :trim_slash deps_dir +call :trim_slash slicer_dir +call :trim_slash clang_path + +REM Naming a specific clang-cl is naming clang-cl. Doing it before the +REM conflict check below means --clang-path with --msvc is caught there. +if not "%clang_path%" == "" set "use_clang_cl=ON" +if not "%clang_path%" == "" if not exist "%clang_path%" ( + echo No clang-cl at "%clang_path%". + exit /b 1 +) +REM A trailing backslash matches directories only, and a directory would +REM otherwise reach CMake as the compiler. +if not "%clang_path%" == "" if exist "%clang_path%\" ( + echo "%clang_path%" is a directory. Name clang-cl.exe itself. + exit /b 1 +) + +REM Naming a default explicitly is fine; naming both sides is not. +if "%use_clang_cl%" == "ON" if "%use_msvc%" == "ON" ( + echo --clang-cl and --msvc select different compilers. + exit /b 1 +) +if "%use_ninja%" == "ON" if "%use_msbuild%" == "ON" ( + echo --ninja and --msbuild select different generators. + exit /b 1 +) + +set "generator=!vs_gen_%vs_version%!" +if "%use_ninja%" == "ON" ( + set "generator=Ninja Multi-Config" + call :setup_dev_env + %error_check% + set "using_ninja=ON" +) + +if "%using_ninja%" == "ON" ( + if "%use_clang_cl%" == "ON" ( + REM Bare, so it resolves from the PATH the dev shell just set up, which + REM is the clang shipped with Visual Studio. --clang-path names another. + set "clang_exe=clang-cl.exe" + if not "%clang_path%" == "" set "clang_exe="%clang_path%"" + set "gen_args=-DCMAKE_C_COMPILER=!clang_exe! -DCMAKE_CXX_COMPILER=!clang_exe!" + ) +) else ( + set "gen_args=-A !arch!" + if "%use_clang_cl%" == "ON" ( + set "gen_args=!gen_args! -T ClangCL" + ) +) + +if not "%clang_path%" == "" if not "%using_ninja%" == "ON" ( + echo --clang-path needs the Ninja generator; add -x. The Visual Studio + echo generator builds clang-cl through its own ClangCL toolset. + exit /b 1 +) + +REM Ninja prints [123/456] by default, which says nothing about how far +REM along it is or how long is left. %p is a percentage, %w and %W are +REM elapsed and remaining, but those two arrived in ninja 1.12 and an +REM unknown placeholder is fatal rather than a warning, so an older ninja +REM would abort the build instead of degrading. Ask which one is on PATH. +REM Keep %p first inside the brackets: VS Code reads the first digits% +REM it finds there to drive its progress bar. +if "%using_ninja%" == "ON" if not defined NINJA_STATUS ( + set "nj_major=0" + set "nj_minor=0" + for /f "tokens=1,2 delims=." %%a in ('ninja --version 2^>nul') do ( + set "nj_major=%%a" + set "nj_minor=%%b" + ) + set "NINJA_STATUS=[%%s/%%t %%p :: %%e] " + if !nj_major! GTR 1 set "NINJA_STATUS=[%%f/%%t %%p :: %%w / %%W] " + if !nj_major! EQU 1 if !nj_minor! GEQ 12 set "NINJA_STATUS=[%%f/%%t %%p :: %%w / %%W] " +) +if "%verbose%" == "ON" if defined NINJA_STATUS echo Ninja progress format: !NINJA_STATUS! + +if "%deps_target%" == "" ( + set "deps_target=deps" +) + +REM Only the builds need CMake. -p zips an existing tree with 7z. +if "%build_deps%%build_slicer%" == "" goto :cmake_ready + +cmake --version >nul 2>nul +if not !errorlevel! == 0 ( + echo CMake was not found. Have you installed the system dependencies? + exit /b 1 +) + +REM Strawberry Perl ships a c/bin full of GNU tools, and the top-level +REM CMakeLists refuses to configure when it precedes CMake on PATH. Put a +REM real CMake first, skipping any hit from Strawberry's own cmake.exe, or +REM this pins exactly the order it is meant to undo. The findstr needle +REM must not end in a backslash, which escapes the quote and matches nothing. +set "cmake_bin=" +for /f "delims=" %%i in ('where cmake 2^>nul') do ( + if not defined cmake_bin ( + echo %%~dpi| findstr /i /c:"\Strawberry\c\bin" >nul || set "cmake_bin=%%~dpi" + ) +) +if defined cmake_bin set "PATH=%cmake_bin%;%PATH%" +:cmake_ready + +if "%config%" == "" set "config=%cfg_default%" + +REM Judge what the lookup returned rather than whether the name is defined. +REM "release " passed `if defined` and then expanded to nothing, leaving an +REM empty build directory for --clean to remove. +set "build_type=!cfg_type_%config%!" +set "tree_name=!cfg_dir_%config%!" +set "dep_name=!cfg_dep_%config%!" +set "bad_config=" +if "!build_type!" == "" set "bad_config=ON" +if "!tree_name!" == "" set "bad_config=ON" +if "!dep_name!" == "" set "bad_config=ON" +if defined bad_config ( + echo Unknown configuration "%config%". Known configurations: release, debug, relwithdebinfo, minsizerel. + exit /b 1 +) + +REM A tree is only good for the configuration, compiler and architecture it +REM was made with. Change one underneath it and CMake resets its cache and +REM carries on, leaving ExternalProject stamps from the old toolchain and +REM sub-builds that fail scattershot on things that build fine from scratch. +REM So name the tree for all three. MSVC x64 keeps the historical names. +if "%use_clang_cl%" == "ON" set "tree_name=!tree_name!-clang" +if /I "%arch%" == "ARM64" set "tree_name=!tree_name!-arm64" +if "%use_clang_cl%" == "ON" set "dep_name=!dep_name!-clang" +if /I "%arch%" == "ARM64" set "dep_name=!dep_name!-arm64" + +set "build_dir=!tree_name!" +if not "%slicer_dir%" == "" set "build_dir=%slicer_dir%" + +REM Resolve it once. --build-dir may arrive absolute, relative, or with +REM forward slashes, and anything that prints the directory has to show a +REM real path rather than one glued onto the repository root. +for %%p in ("!build_dir!") do set "build_full=%%~fp" +echo Configuration: %build_type%, %arch% + +set "SIG_FLAG=" +if defined ORCA_UPDATER_SIG_KEY set "SIG_FLAG=-DORCA_UPDATER_SIG_KEY=%ORCA_UPDATER_SIG_KEY%" + +set "TESTS_FLAG=-DBUILD_TESTS=OFF" +if "%build_tests%" == "ON" set "TESTS_FLAG=-DBUILD_TESTS=ON" +if "%run_tests%" == "ON" set "TESTS_FLAG=-DBUILD_TESTS=ON" + +set "SLICER_TARGET_FLAG=" +if not "%slicer_target%" == "" set "SLICER_TARGET_FLAG=--target %slicer_target%" + +set "DEP_TREE=deps/!dep_name!" +set "DEP_TREE_PACK=%WP%\deps\!dep_name!" +set "DEP_TREE_FLAG=" +if not "%deps_dir%" == "" ( + set "DEP_TREE=%deps_dir%" + set "DEP_TREE_PACK=%deps_dir%" + set "DEP_TREE_FLAG=-DDEP_BUILD_DIR="%deps_dir%"" +) + +REM CMakeLists derives DEP_BUILD_DIR from the build directory NAME, which is +REM wrong whenever the build tree and the dependency tree are named +REM differently, as they are for every configuration that shares the release +REM dependencies. Name it outright once the two stop matching. +if "!DEP_TREE_FLAG!" == "" if not "%build_dir%" == "!dep_name!" ( + set "DEP_TREE_FLAG=-DDEP_BUILD_DIR="%WP%\deps\!dep_name!"" +) + +set "VERBOSE_FLAG=" +if "%verbose%" == "ON" set "VERBOSE_FLAG=--verbose" + +REM The two generators count differently. +REM +REM Ninja counts compilers, so -j is exact. The deps superbuild reads +REM CMAKE_BUILD_PARALLEL_LEVEL for the sub-builds it drives. +REM +REM MSBuild turns -j into /m, which counts projects, not compilers: /MP still +REM runs one cl per core inside each one, so -j 1 would not give one +REM compiler. CL_MPCount sets the /MP degree instead, and MSBuild reads +REM properties from the environment, so nested deps builds inherit it. /m +REM stays at its default of one project at a time. +set "JOBS_FLAG=" +if "%jobs%" == "" goto :jobs_ready +echo %jobs%| findstr /r /c:"^[1-9][0-9]*$" >nul +if errorlevel 1 ( + echo Invalid --jobs value "%jobs%". Expected a positive integer. + exit /b 1 +) +if "%using_ninja%" == "ON" ( + set "JOBS_FLAG=-j %jobs%" + set "CMAKE_BUILD_PARALLEL_LEVEL=%jobs%" +) else ( + set "CL_MPCount=%jobs%" +) +echo Parallel jobs: %jobs% +:jobs_ready + +REM The flags that reproduce this run, for the commands the summary suggests. +REM Kept in three parts because they are not all relevant everywhere: a deps +REM retry has no use for --build-dir, and the bundle line names its own tree. +set "recall_tc=" +if "%use_clang_cl%" == "ON" set "recall_tc=!recall_tc! -l" +if "%using_ninja%" == "ON" set "recall_tc=!recall_tc! -x" +if /I not "%config%" == "%cfg_default%" set "recall_tc=!recall_tc! --config %config%" +if not "%target_arch%" == "" set "recall_tc=!recall_tc! --arch %target_arch%" +if not "%vs_pinned%" == "" set "recall_tc=!recall_tc! --vs %vs_pinned%" +if not "%clang_path%" == "" set "recall_tc=!recall_tc! --clang-path "%clang_path%"" + +set "recall_i=" +if "%install_slicer%" == "ON" set "recall_i= -i" +set "recall_dd=" +if not "%deps_dir%" == "" set "recall_dd= --deps-dir "%deps_dir%"" +set "recall_bd=" +if not "%slicer_dir%" == "" set "recall_bd= --build-dir "%slicer_dir%"" +set "recall=!recall_tc!!recall_i!!recall_dd!!recall_bd!" + +REM =========================================================================== +REM Running the build +REM =========================================================================== + +REM CMake 4 refuses a pre-3.5 policy version; several deps still ask for one. +set CMAKE_POLICY_VERSION_MINIMUM=3.5 + +set _START_TIME=%TIME% + +if "%build_deps%" == "ON" ( + REM Which stage is running, so a failure can name it and suggest a + REM retry scoped to it rather than to the whole run. + set "stage=d" + echo Building the dependencies... + + if "%clean%" == "ON" ( + call :clean_tree "!DEP_TREE!" + %error_check% + ) + + if not "%no_configure%" == "ON" ( + call :print_and_run cmake -S deps -B "!DEP_TREE!" -G "%generator%" %gen_args% -DCMAKE_BUILD_TYPE=%build_type% !deps_args! %ORCA_DEPS_CMAKE_ARGS% + %error_check% + ) + + call :print_and_run cmake --build "!DEP_TREE!" --config %build_type% --target %deps_target% %JOBS_FLAG% %VERBOSE_FLAG% + %error_check% +) + +if "%pack_deps%" == "ON" ( + set "stage=p" + setlocal ENABLEDELAYEDEXPANSION + call :print_and_run cd /d "!DEP_TREE_PACK!" + %error_check% + REM date /t prints in the machine locale and its field order varies by + REM region, which is how the inherited parse produced YYYYDDMM. Ask for + REM an unambiguous stamp instead. powershell.exe lives under + REM System32\WindowsPowerShell rather than System32, so a trimmed PATH + REM cannot find it and the stamp comes back empty. + set "ps=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" + set "build_date=" + for /f %%d in ('!ps! -NoProfile -Command "Get-Date -Format yyyyMMdd"') do set "build_date=%%d" + if "!build_date!" == "" ( + set "die_reason=Could not read the date from !ps!." + set rc=1 + goto :die + ) + + REM A bundle is only good for what built it, so it carries the same parts + REM as the dependency tree. Release x64 on cl keeps the plain name. + set "dep_flavour=!cfg_dep_%config%!" + set "dep_flavour=!dep_flavour:build=!" + set "dep_variant=%arch%" + if "%use_clang_cl%" == "ON" set "dep_variant=!dep_variant!-clang" + set "dep_variant=!dep_variant!!dep_flavour!" + echo Packing the dependencies: OrcaSlicer_dep_win-!dep_variant!_!build_date!.zip + + REM tools\7z.exe loads its codecs from a 7z.dll, and the repo does not + REM carry one, so it can only archive on a machine that has 7-Zip + REM installed. Windows has shipped bsdtar in System32 since 10 1803 and + REM it writes an ordinary deflate zip, so fall back to that rather than + REM failing on a machine that has everything it needs. + set "zipper=" + if exist "%WP%\tools\7z.dll" set "zipper=%WP%/tools/7z.exe a" + if not defined zipper if exist "%SystemRoot%\System32\tar.exe" set "zipper=%SystemRoot%\System32\tar.exe -a -c -f" + if not defined zipper ( + set "die_reason=No archiver. tools\7z.exe needs a 7z.dll, and this Windows has no System32\tar.exe." + set "die_hint=Install 7-Zip, or copy its 7z.dll into tools\." + set rc=1 + goto :die + ) + + call :print_and_run !zipper! OrcaSlicer_dep_win-!dep_variant!_!build_date!.zip OrcaSlicer_dep + %error_check% + REM endlocal is about to discard the name, so carry the path out with it. + for %%z in ("!DEP_TREE_PACK!\OrcaSlicer_dep_win-!dep_variant!_!build_date!.zip") do endlocal & set "bundle=%%~fz" +) + +if "%build_slicer%" == "ON" ( + set "stage=s" + echo Building OrcaSlicer... + + if "%clean%" == "ON" ( + call :clean_tree "%build_dir%" + %error_check% + ) + + if "%slicer_asan%" == "ON" ( + set "slicer_args=!slicer_args! -DSLIC3R_ASAN=ON" + ) + + REM Configuring against a tree that was never built fails deep inside + REM package resolution. Name it here instead. Skipped when -d is about to + REM build it in this same run, and under a dry run, which configures + REM nothing and must not depend on what happens to be on the machine. + if not "%dry_run%" == "ON" if not "%no_configure%" == "ON" if not "%build_deps%" == "ON" if not exist "!DEP_TREE!\OrcaSlicer_dep\usr\local\" ( + for %%p in ("!DEP_TREE!") do set "die_reason=Dependencies not found at %%~fp" + set "die_hint=Build them with build_win.bat -d!recall!." + REM Only worth suggesting to someone who did not name a tree. + if "%deps_dir%" == "" set "die_hint=Build them with build_win.bat -d!recall!, or point --deps-dir at an existing tree." + set rc=1 + goto :die + ) + + if not "%no_configure%" == "ON" ( + call :print_and_run cmake -B "%build_dir%" -G "%generator%" %gen_args% -DORCA_TOOLS=ON %SIG_FLAG% %TESTS_FLAG% %DEP_TREE_FLAG% -DCMAKE_BUILD_TYPE=%build_type% !slicer_args! %ORCA_SLICER_CMAKE_ARGS% + %error_check% + ) + + call :print_and_run cmake --build "%build_dir%" --config %build_type% %SLICER_TARGET_FLAG% %JOBS_FLAG% %VERBOSE_FLAG% + %error_check% + + if "%run_tests%" == "ON" ( + call :print_and_run ctest --test-dir "%build_dir%/tests" -C %build_type% --output-on-failure + %error_check% + ) + + if not "%no_gettext%" == "ON" ( + call :print_and_run call scripts/run_gettext.bat + %error_check% + ) + + if "%install_slicer%" == "ON" ( + call :print_and_run cmake --build "%build_dir%" --target install --config %build_type% + %error_check% + ) +) + +REM Elapsed wall clock. The 1%%a-100 trick strips a leading zero, which set /A +REM would otherwise read as octal, and a negative total means the build ran +REM past midnight. +for /f "tokens=1-3 delims=:.," %%a in ("%_START_TIME: =0%") do set /a "_start_s=(1%%a-100)*3600+(1%%b-100)*60+(1%%c-100)" +for /f "tokens=1-3 delims=:.," %%a in ("%TIME: =0%") do set /a "_end_s=(1%%a-100)*3600+(1%%b-100)*60+(1%%c-100)" +set /a "_elapsed=_end_s - _start_s" +if %_elapsed% lss 0 set /a "_elapsed+=86400" +set /a "_hours=_elapsed / 3600" +set /a "_remainder=_elapsed - _hours * 3600" +set /a "_mins=_remainder / 60" +set /a "_secs=_remainder - _mins * 60" +call :summary +exit /b 0 + +REM Reached only by error_check, from the top level, where exit /b works. +REM The hash block is what CMakeLists already uses for a build that cannot +REM continue, so it means the same thing here. +:die +echo. +echo ############################################################# +REM The paths that set die_reason had no command fail, so last_cmd there +REM names one that succeeded. +if defined die_reason echo !die_reason! +if not defined die_reason if defined last_cmd echo Failed: !last_cmd! +if defined die_hint echo !die_hint! +echo Exit code %rc%. +REM -v only makes the build verbose, so it has nothing to offer a configure +REM that failed before any compiler ran. +set "failed_configure=" +if "!last_cmd:~0,9!" == "cmake -B " set "failed_configure=ON" +if "!last_cmd:~0,9!" == "cmake -S " set "failed_configure=ON" +REM Scoped to the stage that failed. Offering -c for the whole run would +REM discard a dependency tree that was not at fault, and neither flag does +REM anything for a failed pack. A named reason already carries its own advice. +if "!stage!" == "d" set "recall=!recall_tc!!recall_dd!" +if not defined die_reason if defined stage if not "!stage!" == "p" ( + echo. + echo Try + if not defined failed_configure echo build_win.bat -!stage!!recall! -v show the failing compiler command line + echo build_win.bat -!stage!!recall! -c discard that tree and configure from scratch +) +echo ############################################################# +exit /b %rc% + +REM =========================================================================== +REM Function definitions +REM =========================================================================== + +REM summary - what was produced, and what to do with it next. A dry run says +REM so rather than claiming the files exist, but every line below that is +REM worked out the same way in either run. +:summary + for %%p in ("!DEP_TREE!") do set "dep_full=%%~fp" + REM The binary only leaves the build tree when it is installed. + set "slicer_exe=%build_dir%\src\%build_type%\orca-slicer.exe" + if "%install_slicer%" == "ON" set "slicer_exe=%build_dir%\OrcaSlicer\orca-slicer.exe" + for %%p in ("!slicer_exe!") do set "slicer_full=%%~fp" + REM Naming a target builds it and its dependencies, not its dependents, + REM so only a full build or the executable's own target relinks. + set "linked=ON" + if not "%slicer_target%" == "" set "linked=" + if /I "%slicer_target%" == "OrcaSlicer" set "linked=ON" + + echo. + echo ------------------------------------------------------------- + if "%dry_run%" == "ON" ( + echo Dry run: nothing was built. A real run would report: + ) else ( + echo Build completed in %_hours%h %_mins%m %_secs%s + ) + + if "%build_deps%" == "ON" echo Dependencies !dep_full! + if "%build_slicer%" == "ON" if "%linked%" == "ON" echo OrcaSlicer !slicer_full! + if "%build_slicer%" == "ON" if not "%linked%" == "ON" echo Target %slicer_target% + if "%build_slicer%" == "ON" if not "%using_ninja%" == "ON" echo Solution %build_full%\OrcaSlicer.sln + if "%pack_deps%" == "ON" if defined bundle echo Bundle !bundle! + + echo. + echo Next + if "%build_slicer%" == "ON" ( + if "%linked%" == "ON" echo Run it !slicer_exe! + if not "%using_ninja%" == "ON" echo Open in Visual Studio %build_dir%\OrcaSlicer.sln + if "%linked%" == "ON" echo Rebuild after edits build_win.bat -s!recall! --no-configure + if not "%linked%" == "ON" echo Relink the binary build_win.bat -s!recall! --no-configure + if "%linked%" == "ON" if "%using_ninja%" == "ON" echo Rebuild one target build_win.bat -s!recall! --no-configure --slicer-target libslic3r + if "%run_tests%" == "ON" echo Re-run the tests ctest --test-dir %build_dir%/tests -C %build_type% --output-on-failure + ) else ( + if "%build_deps%" == "ON" echo Build the slicer build_win.bat -s!recall! + ) + if "%pack_deps%" == "ON" echo Share the bundle unzip it elsewhere, then build_win.bat -s!recall_tc! --deps-dir ^ + echo ------------------------------------------------------------- + exit /b 0 + +:debug_msg + if "%debugscript%" == "ON" echo %* + exit /b 0 + +REM get_str_len -> length in %ret% +:get_str_len + setlocal + set "in=%~1" + for /L %%i in (0, 1, 100) do ( + if "!in:~%%i,1!" == "" ( + set out=%%i + goto :break_str_len + ) + ) + + echo error in get_str_len: string is too long + endlocal + exit /b 1 + + :break_str_len + endlocal & set ret=%out% + exit /b 0 + +:print_help_msg + setlocal + + REM Measure the widest flag column. Section headers have no flags and + REM must not widen it. + set flags= + set max_len=0 + set /A range_end = %argdefn% - 1 + for /L %%i in (0, 1, %range_end%) do ( + if "!argdefs[%%i].TYPE!" == "section" ( + set "flags[%%i]=" + ) else ( + set str_placeholder= + if not "!argdefs[%%i].TYPE!" == "bool" ( + set "str_placeholder= " + ) + + REM The placeholder goes on the long form only. Repeating it on + REM the short one says nothing extra and costs eight columns. + set "flag_str=" + if not "!argdefs[%%i].SHORT_FLAG!" == "" ( + set "flag_str=-!argdefs[%%i].SHORT_FLAG!" + ) + + if not "!argdefs[%%i].LONG_FLAG!" == "" ( + if "!flag_str!" == "" ( + REM No short flag: pad so the long one lines up with the others. + set "flag_str= " + ) else ( + set "flag_str=!flag_str!, " + ) + set "flag_str=!flag_str!--!argdefs[%%i].LONG_FLAG!!str_placeholder!" + ) else ( + set "flag_str=!flag_str!!str_placeholder!" + ) + set "flag_str=!flag_str! " + set "flags[%%i]=!flag_str!" + call :get_str_len "!flag_str!" + if !ret! GTR !max_len! ( + set max_len=!ret! + ) + ) + ) + + set padding= + for /L %%i in (0, 1, %max_len%) do set "padding=!padding! " + + echo Builds OrcaSlicer and its dependencies on Windows. + echo. + echo Usage: %script_name% [options] + set /A range_end = %argdefn% - 1 + for /L %%i in (0, 1, !range_end!) do ( + if "!argdefs[%%i].TYPE!" == "section" ( + echo. + echo !argdefs[%%i].HELP_TEXT!: + ) else ( + set "flag=!flags[%%i]!%padding%" + echo !flag:~0,%max_len%!!argdefs[%%i].HELP_TEXT! + ) + ) + echo. + echo Examples: + echo %script_name% --install-vs ide Set up a new machine, then restart the shell + echo %script_name% -ds Build the dependencies, then the slicer + echo %script_name% -s -l -x Rebuild the slicer with clang-cl and Ninja + echo %script_name% -s --no-configure -j 8 Rebuild quickly while iterating + echo %script_name% -s --slicer-target glad Compile one target to check the toolchain + echo %script_name% -l -x --run-tests Test that toolchain's build, not the default one + echo. + echo Environment: + echo ORCA_DEPS_CMAKE_ARGS Extra arguments for the deps configure + echo ORCA_SLICER_CMAKE_ARGS Extra arguments for the slicer configure + echo ORCA_UPDATER_SIG_KEY Update signing key baked into the slicer + echo git_commit_hash Revision to stamp, so a commit does not rebuild everything + echo NINJA_STATUS Ninja progress format, if you want your own + echo debugscript Set to ON to trace this script + echo. + echo set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_PCH=OFF -DSLIC3R_MSVC_PDB=OFF + echo $env:ORCA_SLICER_CMAKE_ARGS = '-DSLIC3R_PCH=OFF' (PowerShell) + echo. + echo --deps-args and --slicer-args cannot carry a value with spaces; use + echo these instead. Neither form supports a value containing an ampersand. + endlocal + exit /b 0 + +REM add_section +:add_section + set argdefs[%argdefn%].VARIABLE_NAME= + set argdefs[%argdefn%].TYPE=section + set argdefs[%argdefn%].SHORT_FLAG= + set argdefs[%argdefn%].LONG_FLAG= + set argdefs[%argdefn%].HELP_TEXT=%~1 + set /A argdefn+=1 + exit /b 0 + +REM add_arg <variable> <type:bool,string,rawstring> <short> <long> <help> +:add_arg + set argdefs[%argdefn%].VARIABLE_NAME=%~1 + set argdefs[%argdefn%].TYPE=%~2 + set argdefs[%argdefn%].SHORT_FLAG=%~3 + set argdefs[%argdefn%].LONG_FLAG=%~4 + set argdefs[%argdefn%].HELP_TEXT=%~5 + + REM Start every option unset, so "defined" means the user gave it. + set %~1= + + if "%debugscript%" == "ON" ( + echo add_arg VARIABLE_NAME: !argdefs[%argdefn%].VARIABLE_NAME! + echo add_arg TYPE: !argdefs[%argdefn%].TYPE! + echo add_arg SHORT_FLAG: !argdefs[%argdefn%].SHORT_FLAG! + echo add_arg LONG_FLAG: !argdefs[%argdefn%].LONG_FLAG! + echo add_arg HELP_TEXT: !argdefs[%argdefn%].HELP_TEXT! + ) + + set /A argdefn+=1 + + exit /b 0 + +REM find_arg <type:short,long> <flag> -> index in %ret% +:find_arg + setlocal + call :debug_msg starting function: find_arg "%~1" "%~2" + + set type= + if /I "%~1" == "short" set type=SHORT + if /I "%~1" == "long" set type=LONG + if not defined type ( + endlocal + set ret= + exit /b 1 + ) + + call :debug_msg find_arg type=%type% + set /A range_end = %argdefn% - 1 + for /L %%i in (0, 1, %range_end%) do ( + if "!argdefs[%%i].%type%_FLAG!" == "%~2" ( + set idx=%%i + goto :find_arg_cont + ) + ) + + echo Error in find_arg: Failed to find arg "%~2" + call :print_help_msg + + endlocal + set ret= + exit /b 1 + + :find_arg_cont + call :debug_msg find_arg: found at %idx% + endlocal & ( + set ret=%idx% + ) + exit /b 0 + +REM set_arg <index> [<value>] +:set_arg + call :debug_msg starting function: set_arg "%~1" "%~2" + + if "%~1" == "" ( + echo Error in set_arg: no index provided + exit /b 1 + ) + + setlocal + if /I "!argdefs[%~1].TYPE!" == "bool" ( + call :debug_msg set_arg: setting bool type to ON + set val=ON + ) else ( + set "val=%~2" + set quote_char=" + REM Delayed expansion throughout: %val% here would be the value from the + REM previous call, since the whole block is parsed before it runs. + if "!val:~0,1!" == "!quote_char!" ( + if "!val:~-1,1!" == "!quote_char!" ( + set "val=!val:~1,-1!" + ) + ) + + call :debug_msg set_arg: setting string type to %~2 + ) + set var_name=!argdefs[%~1].VARIABLE_NAME! + + endlocal & ( + REM Set variable in parent scope + set "%var_name%=%val%" + + REM Add variable to finalize command + set "finalize_cmd=%finalize_cmd% & set "%var_name%=%val%"" + ) + + exit /b 0 + +REM get_arg_type <index> -> type in %ret% +:get_arg_type + call :debug_msg starting function get_arg_type "%~1" + setlocal + set type=!argdefs[%~1].TYPE! + endlocal & set ret=%type% + exit /b 0 + +REM echo_var <variable> +:echo_var + echo %~1=!%~1! + exit /b 0 + +:autodetect_vs + REM Nothing to detect once the release is pinned, or under Ninja. + if not "%vs_version%" == "" exit /b 0 + if "%use_ninja%" == "ON" exit /b 0 + + setlocal + + %VSWHERE% -nologo >nul 2>nul + if not !errorlevel! == 0 ( + REM vswhere is not in its usual place; try msbuild instead. + goto :msbuild_check + ) + + echo Detecting Visual Studio version using vswhere... + for /f "tokens=1 delims=." %%i in ('%VSWHERE% -nologo -products * -latest -property catalog_productDisplayVersion') do ( + set "VS_MAJOR=%%i" + goto :version_found + ) + + :msbuild_check + where msbuild >nul 2>nul + if not !errorlevel! == 0 ( + REM No msbuild either; leave the release empty and let the default apply. + endlocal + exit /b 0 + ) + + echo Detecting Visual Studio version using msbuild... + + REM The version line varies by release, so try two patterns for it. + set VS_MAJOR= + for /f "tokens=*" %%i in ('msbuild -version 2^>^&1 ^| findstr /r "^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"') do ( + for /f "tokens=1 delims=." %%a in ("%%i") do set VS_MAJOR=%%a + set MSBUILD_OUTPUT=%%i + goto :version_found + ) + + REM The same pattern unanchored, for releases that print a banner first. + if "%VS_MAJOR%"=="" ( + for /f "tokens=*" %%i in ('msbuild -version 2^>^&1 ^| findstr /r "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*"') do ( + for /f "tokens=1 delims=." %%a in ("%%i") do set VS_MAJOR=%%a + set MSBUILD_OUTPUT=%%i + goto :version_found + ) + ) + + :version_found + set "detected=!vs_year_%VS_MAJOR%!" + if not defined detected ( + echo Error: Unsupported Visual Studio major version: %VS_MAJOR% + endlocal + exit /b 1 + ) + echo Detected Visual Studio %VS_MAJOR% ^(!detected!^) + endlocal & set "vs_version=%detected%" + + exit /b 0 + +:setup_dev_env + REM A dry run runs nothing, and VsDevCmd costs seconds. + if "%dry_run%" == "ON" exit /b 0 + set "dev_arch=x64" + if /I "!arch!" == "ARM64" set "dev_arch=arm64" + %VSWHERE% -nologo >nul 2>nul + if not !errorlevel! == 0 ( + REM vswhere is not in its usual place; use the environment as it stands. + exit /b 0 + ) + + for /f "tokens=*" %%i in ('%VSWHERE% -nologo -products * -latest -property resolvedInstallationPath') do ( + set "VS_PATH=%%i" + goto :vs_path_found + ) + exit /b 0 + + :vs_path_found + call "%VS_PATH%\Common7\Tools\VsDevCmd.bat" -arch=!dev_arch! >nul 2>nul + set "VS_PATH=" + + exit /b 0 + +REM clean_tree <path> - remove a build tree, refusing anything that is not +REM one. Nothing here should ever fire; it is a floor under a bug that +REM produced a path far shorter than it looks. +:clean_tree + setlocal + set "target=%~1" + if not defined target ( + echo Refusing to clean: no directory to remove. + exit /b 1 + ) + + REM Resolve first, because "." and "deps/.." are shorter than they read. + for %%p in ("!target!") do set "full=%%~fp" + if "!full:~1!" == ":\" ( + echo Refusing to clean "!full!": that is a drive root. + exit /b 1 + ) + if /I "!full!" == "%WP%" ( + echo Refusing to clean "!full!": that is the repository itself. + exit /b 1 + ) + + call :print_and_run rmdir /S /Q "!full!" + exit /b !errorlevel! + +REM note_failed <name> <code> - record a failed install. Two winget codes +REM mean the tool is already there, which is what -u is for: +REM -1978335135 (0x8A150061) winget declined: a version is already there +REM -1978335189 (0x8A15002B) installed and already the newest version +:note_failed + if "%~2" == "0" exit /b 0 + if "%~2" == "-1978335135" exit /b 0 + if "%~2" == "-1978335189" exit /b 0 + set "install_failed=%install_failed% %~1" + exit /b 0 + +REM trim_slash <variable> - drop a trailing backslash from a path value. +REM A drive root keeps its own: "C:\" is not the same place as "C:". +:trim_slash + set "trim_value=!%~1!" + if not defined trim_value exit /b 0 + if not "!trim_value:~-1!" == "\" exit /b 0 + if "!trim_value:~-2!" == ":\" exit /b 0 + set "%~1=!trim_value:~0,-1!" + exit /b 0 + +REM kill_image <name> - stop every process of one image. The count is printed +REM first because taskkill can take a while and says nothing until it returns. +REM Never fails, so one stubborn image cannot stop the rest. +:kill_image + setlocal + REM A dry run does not count, so it prints the same on every machine. + if "%dry_run%" == "ON" ( + call :print_and_run taskkill /F /IM %~1 + endlocal + exit /b 0 + ) + set "img_count=0" + for /f "tokens=1" %%a in ('tasklist /nh /fi "IMAGENAME eq %~1" 2^>nul') do ( + if /I "%%a" == "%~1" set /a img_count+=1 + ) + if "!img_count!" == "0" ( + echo %~1: none running + endlocal + exit /b 0 + ) + echo %~1: stopping !img_count! + call :print_and_run taskkill /F /IM %~1 + endlocal + exit /b 0 + +REM print_and_run <command...> +:print_and_run + echo + %* + REM Recorded before the command runs. A set afterwards would clear the + REM errorlevel the next line returns, reporting every failure as a pass. + set "last_cmd=%*" + if not "%dry_run%" == "ON" ( + %* + exit /b !errorlevel! + ) + exit /b 0 + +REM handle_args <args...> +:handle_args + call :debug_msg starting function handle_args "%*" + if "%~1" == "" exit /b 0 + + setlocal + set arg=%~1 + set finalize_cmd= + + call :debug_msg Begin handling arg "%arg%" + + if not "%arg:~0,2%" == "--" goto :HAL_check_short + + call :debug_msg Processing long arg + + call :find_arg long %arg:~2% + %repeat_error% + set idx=%ret% + + call :get_arg_type %idx% + %repeat_error% + set type=%ret% + + if /I not "%type%" == "bool" ( + set "string_val=%~2" + if not defined string_val ( + echo Error in handle_args_loop: The option "%arg:~2%" requires a value + exit /b 1 + ) + + REM rawstring options carry cmake arguments, which start with a dash, so + REM only plain string options reject a value that looks like an option. + if /I "%type%" == "string" ( + if "!string_val:~0,1!" == "-" ( + echo Error in handle_args_loop: The option "%arg:~2%" requires a value. "!string_val!" looks like another option. + exit /b 1 + ) + ) + shift + ) + + call :set_arg %idx% "%string_val%" + %repeat_error% + goto :handle_args_loop_reset + + :HAL_check_short + if not "%arg:~0,1%" == "-" ( + echo Unknown argument: %arg% + call :print_help_msg + exit /b 1 + ) + + call :debug_msg processing short args + set /A charidx=1 + :short_arg_loop + if "!arg:~%charidx%,1!" == "" goto :handle_args_loop_reset + + call :find_arg short !arg:~%charidx%,1! + %repeat_error% + set idx=%ret% + + call :get_arg_type %idx% + %repeat_error% + set type=%ret% + + set /A start_idx = %charidx% + 1 + if /I not "%type%" == "bool" ( + REM A value may be attached (-j8) or be the next argument (-j 8). + set remaining=!arg:~%start_idx%! + if defined remaining ( + set string_val=!remaining! + ) else ( + set "string_val=%~2" + shift + ) + if not defined string_val ( + echo Error in handle_args_loop: The option "!arg:~%charidx%,1!" requires a value + exit /b 1 + ) + + REM As in the long-option branch above. + if /I "%type%" == "string" ( + if "!string_val:~0,1!" == "-" ( + echo Error in handle_args_loop: The option "!arg:~%charidx%,1!" requires a value. "!string_val!" looks like another option. + exit /b 1 + ) + ) + call :set_arg !idx! "!string_val!" + %repeat_error% + goto :handle_args_loop_reset + ) + + call :set_arg %idx% + %repeat_error% + set /A charidx+=1 + goto :short_arg_loop + + :handle_args_loop_reset + REM endlocal drops this iteration scope; finalize_cmd re-applies the options + REM it set, in the caller scope. + endlocal %finalize_cmd% + shift + goto :handle_args diff --git a/scripts/test_build_win.ps1 b/scripts/test_build_win.ps1 new file mode 100644 index 0000000000..62eaaae77b --- /dev/null +++ b/scripts/test_build_win.ps1 @@ -0,0 +1,847 @@ +<# +.SYNOPSIS + Tests build_win.bat's option handling and the commands it generates. + +.DESCRIPTION + Cases run the script with --dry-run, so nothing is configured, built or + deleted and the suite finishes in seconds. Each case asserts on the exit + code and on the command lines the script echoes. + + Adding a case means adding one row to $cases. A bare string starts a new + group. Defaults: ExpectExit is 0 and --dry-run is appended, so a row only + states what is unusual about it. + + Name what the case proves, in words + Args arguments, as an array + ExpectExit expected exit code (default 0) + DryRun append --dry-run (default $true) + First regex the first output line must match + Env environment for this case only + Contains literal strings the output must have + NotContains literal strings it must not have + Match regexes; each must match at least one output line + NotMatch regexes; none may match any output line + NotExists paths that must not exist after the case runs + +.PARAMETER Name + Run only the cases whose name matches this regex. Headings with no + matching case are not printed, and a pattern that matches nothing is a + failure rather than an empty pass. + +.EXAMPLE + powershell -File scripts/test_build_win.ps1 + +.EXAMPLE + powershell -File scripts/test_build_win.ps1 -Name solution +#> +[CmdletBinding()] +param( + [string] $Script, + [string] $Name +) + +$ErrorActionPreference = 'Stop' + +if (-not $Script) { + $here = $PSScriptRoot + if (-not $here) { $here = Split-Path -Parent $MyInvocation.MyCommand.Path } + $Script = Join-Path (Split-Path -Parent $here) 'build_win.bat' +} +if (-not (Test-Path $Script)) { throw "build_win.bat not found at $Script" } + +# cmd resumes a batch file by byte offset after `call :label`, and with LF +# endings that offset lands wrong and the label lookup fails. .gitattributes +# pins CRLF; this catches a checkout or an editor that did not honour it. +if ((Get-Content -Raw $Script) -match "(?<!`r)`n") { + throw "$Script has LF line endings; cmd needs CRLF to resume after call :label" +} +$Script = (Resolve-Path $Script).Path + +# Read the long options out of the script itself, so this cannot go stale when +# an option is added. Field order is: add_arg <var> <type> <short> <long>. +$longFlags = @( + Select-String -Path $Script -Pattern '^call :add_arg \S+ \S+ \S+ (\S+) ' | + ForEach-Object { '--' + $_.Matches[0].Groups[1].Value } +) +if ($longFlags.Count -lt 20) { throw "only found $($longFlags.Count) options in $Script; the parser above is wrong" } + +# A winget that always fails, so the prerequisite failure path runs without +# touching the machine. It has to be an .exe: a .bat invoked without `call` +# transfers control and never comes back, which would end the script instead. +# where.exe returns 1 when its patterns match nothing and never prompts. +$fixtures = Join-Path ([IO.Path]::GetTempPath()) 'build_win_test_fixtures' +New-Item -ItemType Directory -Force -Path $fixtures | Out-Null +Copy-Item "$env:SystemRoot\System32\where.exe" (Join-Path $fixtures 'winget.exe') -Force +$stubPath = "$fixtures;C:\Windows\system32;C:\Windows" + +# Stand-in ninjas that only report a version, so the 1.12 boundary in the +# progress format can be exercised on a machine whose real ninja is newer. +# A dry run skips the dev shell, so PATH here is what the script sees. +$ninjaPaths = @{} +foreach ($v in @{ old = '1.11.1'; new = '1.12.0' }.GetEnumerator()) { + $d = Join-Path $fixtures "ninja-$($v.Key)" + New-Item -ItemType Directory -Force -Path $d | Out-Null + Set-Content -Path (Join-Path $d 'ninja.bat') -Encoding ascii -Value @('@echo off', "echo $($v.Value)") + $ninjaPaths[$v.Key] = "$d;$env:PATH" +} + +# The pack stamp is checked against real dates, so a locale-dependent parse +# in the script cannot pass by looking date-shaped. Yesterday is accepted too, +# so a run that crosses midnight does not flake. +$dateStamps = @((Get-Date -Format 'yyyyMMdd'), (Get-Date).AddDays(-1).ToString('yyyyMMdd')) +$stampPattern = '_(' + ($dateStamps -join '|') + ')\.zip$' + +$cases = @( + 'argument handling' + @{ Name = 'no arguments prints help'; Args = @(); DryRun = $false + Contains = @('Usage: build_win.bat [options]', '--clang-cl') } + @{ Name = "--help lists all $($longFlags.Count) options the script defines"; Args = @('--help'); DryRun = $false + Contains = $longFlags } + @{ Name = 'help is grouped and shows usage, examples and environment'; Args = @('--help'); DryRun = $false + Contains = @('Usage: build_win.bat [options]', 'Actions:', 'Build configuration:', 'Toolchain:', + 'How much gets rebuilt:', 'Paths and extra arguments:', 'Diagnostics:', + 'Examples:', 'Environment:') } + @{ Name = 'the environment section shows what to set'; Args = @('--help'); DryRun = $false + Contains = @('ORCA_DEPS_CMAKE_ARGS', 'ORCA_SLICER_CMAKE_ARGS', 'ORCA_UPDATER_SIG_KEY', 'NINJA_STATUS', + 'set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_PCH=OFF', '(PowerShell)', 'debugscript') } + @{ Name = 'section headers do not widen the flag column'; Args = @('--help'); DryRun = $false + Match = @('^ -d, --deps +Download') } + # Windows Terminal opens at 120 columns and wraps at 120, so 119 is the + # limit. Anyone still on the old conhost gets 80 and will see wrapping. + @{ Name = 'every help line fits a 120 column console'; Args = @('--help'); DryRun = $false + NotMatch = @('^.{120,}$') } + @{ Name = 'an unknown long option is rejected'; Args = @('--nonsense'); ExpectExit = 1 + Contains = @('Failed to find arg') } + @{ Name = 'an unknown short option is rejected'; Args = @('-Z'); ExpectExit = 1 + Contains = @('Failed to find arg') } + @{ Name = 'a bare argument is rejected'; Args = @('deps'); ExpectExit = 1 + Contains = @('Unknown argument') } + @{ Name = 'an unknown architecture is rejected'; Args = @('-d', '--arch', 'sparc'); ExpectExit = 1 + Contains = @('Unknown architecture') } + @{ Name = 'a string option without a value is rejected'; Args = @('-d', '--arch'); ExpectExit = 1 + Contains = @('requires a value') } + @{ Name = 'short options can be bundled'; Args = @('-dx') + Contains = @('-G "Ninja Multi-Config"', '--target deps') } + + 'generator and compiler selection' + @{ Name = 'deps default to the Visual Studio generator'; Args = @('-d') + Contains = @('-G "Visual Studio', '-A x64', '--target deps') + NotContains = @('Ninja', 'clang-cl') } + @{ Name = '-x selects Ninja without changing compiler'; Args = @('-d', '-x') + Contains = @('-G "Ninja Multi-Config"') + NotContains = @('clang-cl', '-A x64') } + @{ Name = '-l -x builds with clang-cl under Ninja'; Args = @('-d', '-l', '-x') + Contains = @('-G "Ninja Multi-Config"', '-DCMAKE_C_COMPILER=clang-cl.exe', '-DCMAKE_CXX_COMPILER=clang-cl.exe') } + @{ Name = '-l alone uses the ClangCL toolset on the VS generator'; Args = @('-d', '-l') + Contains = @('-G "Visual Studio', '-T ClangCL') + NotContains = @('-DCMAKE_C_COMPILER') } + # --msvc and --msbuild name the defaults, so a caller can be explicit and a + # contradictory pair can be caught rather than silently resolved. + @{ Name = '--msvc is the compiler default spelled out'; Args = @('-d', '--msvc') + Contains = @('-G "Visual Studio', '-A x64') + NotContains = @('clang-cl') } + @{ Name = '--msbuild is the generator default spelled out'; Args = @('-d', '--msbuild') + Contains = @('-G "Visual Studio') + NotContains = @('Ninja') } + @{ Name = '--msvc with -x gives Ninja driving cl'; Args = @('-d', '--msvc', '-x') + Contains = @('-G "Ninja Multi-Config"') + NotContains = @('clang-cl') } + @{ Name = '--msbuild with -l gives the VS generator and the ClangCL toolset'; Args = @('-d', '--msbuild', '-l') + Contains = @('-G "Visual Studio', '-T ClangCL') } + # A developer with a standalone LLVM points at it; the VS-bundled clang + # is what a bare clang-cl.exe resolves to after the dev shell runs. + @{ Name = '--clang-path names the compiler, quoted for its spaces'; Args = @('-d', '-x', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe') + Contains = @('-DCMAKE_C_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe"', + '-DCMAKE_CXX_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe"') } + @{ Name = '--clang-path is a clang request on its own'; Args = @('-d', '-x', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe') + Contains = @('deps/build-clang') } + @{ Name = '--clang-path needs Ninja to take effect'; Args = @('-d', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe'); ExpectExit = 1 + Contains = @('needs the Ninja generator') } + # `exist` is true for a directory too, and a directory would reach CMake + # as the compiler. + @{ Name = '--clang-path must name the exe, not its folder'; Args = @('-d', '-x', '--clang-path', 'C:\Program Files\LLVM'); ExpectExit = 1 + Contains = @('is a directory') } + @{ Name = 'a clang-cl that is not there is caught early'; Args = @('-d', '-x', '--clang-path', 'C:\nope\clang-cl.exe'); ExpectExit = 1 + Contains = @('No clang-cl at') + NotContains = @('cmake -S deps') } + @{ Name = '--clang-path contradicting --msvc is rejected'; Args = @('-d', '-x', '--msvc', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe'); ExpectExit = 1 + Contains = @('select different compilers') } + @{ Name = '--clang-cl and --msvc together are rejected'; Args = @('-d', '-l', '--msvc'); ExpectExit = 1 + Contains = @('select different compilers') } + @{ Name = '--ninja and --msbuild together are rejected'; Args = @('-d', '-x', '--msbuild'); ExpectExit = 1 + Contains = @('select different generators') } + # One option with a value, driven by a table, rather than a flag per + # release. Adding a release should not need a new flag. + @{ Name = '--vs 2019 pins that release and skips autodetect'; Args = @('-d', '--vs', '2019') + Contains = @('-G "Visual Studio 16 2019"') + NotContains = @('Detecting Visual Studio') } + @{ Name = '--vs 2022 pins that release'; Args = @('-d', '--vs', '2022') + Contains = @('-G "Visual Studio 17 2022"') } + @{ Name = '--vs 2026 pins that release'; Args = @('-d', '--vs', '2026') + Contains = @('-G "Visual Studio 18 2026"') } + @{ Name = 'an unknown release is rejected and the known ones listed'; Args = @('-d', '--vs', '2015'); ExpectExit = 1 + Contains = @('Unknown Visual Studio release', '2019, 2022, 2026') } + @{ Name = '--vs and --ninja together are rejected'; Args = @('-d', '--vs', '2022', '-x'); ExpectExit = 1 + Contains = @('select different generators') } + @{ Name = 'without --vs the release is autodetected'; Args = @('-d') + Contains = @('Detecting Visual Studio') } + + 'architecture' + @{ Name = 'x64 is the default'; Args = @('-d') + Contains = @('Configuration: Release, x64') + NotContains = @('build-arm64') } + @{ Name = 'arm64 sets the generator platform and deps tree'; Args = @('-d', '--arch', 'arm64') + Contains = @('-A ARM64', 'deps/build-arm64') } + @{ Name = 'the architecture is matched case-insensitively'; Args = @('-d', '--arch', 'ARM64') + Contains = @('-A ARM64', 'deps/build-arm64') } + @{ Name = 'arm64 under Ninja has no -A but keeps the arm64 tree'; Args = @('-d', '--arch', 'arm64', '-x', '-l') + Contains = @('deps/build-clang-arm64', '-DCMAKE_C_COMPILER=clang-cl.exe') + NotContains = @('-A ') } + + 'build configurations' + # One option with a value, driven by a table, so Release is named rather + # than being whatever is left when no flag is passed. + @{ Name = 'release is the default'; Args = @('-s') + Contains = @('-DCMAKE_BUILD_TYPE=Release', 'cmake -B "build" ') } + @{ Name = '--config release is the default spelled out'; Args = @('-s', '--config', 'release') + Contains = @('-DCMAKE_BUILD_TYPE=Release', 'cmake -B "build" ') } + @{ Name = '--config debug builds into build-dbg'; Args = @('-s', '--config', 'debug') + Contains = @('-DCMAKE_BUILD_TYPE=Debug', 'cmake -B "build-dbg" ') } + @{ Name = '--config relwithdebinfo builds into build-dbginfo'; Args = @('-s', '--config', 'relwithdebinfo') + Contains = @('-DCMAKE_BUILD_TYPE=RelWithDebInfo', 'cmake -B "build-dbginfo" ') } + @{ Name = '--config minsizerel builds into build-minsize'; Args = @('-s', '--config', 'minsizerel') + Contains = @('-DCMAKE_BUILD_TYPE=MinSizeRel', 'cmake -B "build-minsize" ') } + # Batch variable names are case-insensitive, so the table lookup is too. + @{ Name = 'the configuration name is matched case-insensitively'; Args = @('-s', '--config', 'RelWithDebInfo') + Contains = @('-DCMAKE_BUILD_TYPE=RelWithDebInfo') } + @{ Name = 'an unknown configuration is rejected and the known ones listed'; Args = @('-s', '--config', 'bogus'); ExpectExit = 1 + Contains = @('Unknown configuration', 'release, debug, relwithdebinfo, minsizerel') } + # Release, RelWithDebInfo and MinSizeRel all link the /MD dependencies, so + # one tree serves all three. Debug is /MDd and cannot share. + @{ Name = 'minsizerel builds against the release deps'; Args = @('-d', '-s', '--config', 'minsizerel') + Contains = @('cmake -S deps -B "deps/build"', 'cmake -B "build-minsize" ') + NotContains = @('deps/build-minsize') } + @{ Name = 'relwithdebinfo builds against them too'; Args = @('-d', '-s', '-l', '--config', 'relwithdebinfo') + Contains = @('cmake -S deps -B "deps/build-clang"', 'cmake -B "build-dbginfo-clang" ') + NotContains = @('deps/build-dbginfo') } + @{ Name = 'debug keeps a dependency tree of its own'; Args = @('-d', '--config', 'debug') + Contains = @('cmake -S deps -B "deps/build-dbg"') } + # The build tree and the deps tree now have different names, so the + # derivation from the binary directory name cannot work and it is named. + @{ Name = 'a shared deps tree is named outright'; Args = @('-s', '-l', '--config', 'relwithdebinfo') + Match = @('-DDEP_BUILD_DIR="[A-Za-z]:\\.*\\deps\\build-clang"') } + @{ Name = 'configuration and arch combine into build-dbg-arm64'; Args = @('-s', '--config', 'debug', '--arch', 'arm64') + Contains = @('cmake -B "build-dbg-arm64" ') } + + 'what gets built' + @{ Name = 'the deps target defaults to deps'; Args = @('-d') + Contains = @('--target deps') } + @{ Name = '-t overrides the deps target'; Args = @('-d', '-t', 'dep_Boost') + Contains = @('--target dep_Boost') } + @{ Name = 'unit tests are off unless asked for'; Args = @('-s') + Contains = @('-DBUILD_TESTS=OFF') } + @{ Name = '--tests turns the unit tests on'; Args = @('-s', '--tests') + Contains = @('-DBUILD_TESTS=ON') } + @{ Name = '-a enables ASAN for the slicer'; Args = @('-s', '-a') + Contains = @('-DSLIC3R_ASAN=ON') } + @{ Name = 'the slicer build runs gettext'; Args = @('-s') + Contains = @('run_gettext.bat') } + # tools\7z.exe needs a 7z.dll beside it, which the repo does not carry, + # so the pack falls back to the bsdtar Windows ships. Either is correct; + # what matters is that one is chosen and handed the right names. + @{ Name = '-p packs the deps tree with whichever archiver is usable'; Args = @('-d', '-p') + Match = @('^\+ .*(7z\.exe a|tar\.exe -a -c -f) OrcaSlicer_dep_win-\S+\.zip OrcaSlicer_dep$') } + # The bundle is only good for what built it, so it carries the same three + # axes as the tree. Release x64 on cl keeps the historical plain name. + @{ Name = 'the bundle name carries compiler and deps flavour'; Args = @('-p', '-l', '--config', 'debug', '--arch', 'arm64') + Contains = @('OrcaSlicer_dep_win-ARM64-clang-dbg_') } + @{ Name = 'a relwithdebinfo pack is the release bundle'; Args = @('-p', '--config', 'relwithdebinfo') + Contains = @('OrcaSlicer_dep_win-x64_') + NotContains = @('-dbg', 'dbginfo') } + @{ Name = 'a plain release bundle keeps its old name'; Args = @('-p') + Contains = @('OrcaSlicer_dep_win-x64_') + NotContains = @('-clang', '-Release') } + @{ Name = 'the bundle is stamped with today, not a shuffled date'; Args = @('-p') + Match = @($stampPattern) } + # powershell.exe is not in System32 itself, so a trimmed PATH used to + # leave the stamp empty and the bundle named OrcaSlicer_dep_win-x64_.zip. + @{ Name = 'the bundle is stamped even with a bare PATH'; Args = @('-p') + Env = @{ PATH = 'C:\Windows\system32;C:\Windows' } + Match = @($stampPattern) } + @{ Name = '-p packs without rebuilding'; Args = @('-p') + Match = @('^\+ .*(7z\.exe a|tar\.exe -a -c -f) ') + NotContains = @('cmake -S deps') } + @{ Name = 'deps and slicer build in one invocation'; Args = @('-d', '-s', '-x', '-l') + Contains = @('cmake -S deps', 'cmake -B "build-clang" ') } + + 'the developer loop' + @{ Name = '--slicer-target builds one target'; Args = @('-s', '--slicer-target', 'libslic3r') + Contains = @('--config Release --target libslic3r') } + @{ Name = '--no-configure skips the slicer configure'; Args = @('-s', '--no-configure') + Contains = @('cmake --build "build"') + NotContains = @('cmake -B "build" ') } + @{ Name = '--no-configure skips the deps configure'; Args = @('-d', '--no-configure') + Contains = @('cmake --build "deps/build"') + NotContains = @('cmake -S deps') } + @{ Name = '--no-gettext skips the translation step'; Args = @('-s', '--no-gettext') + Contains = @('cmake --build "build"') + NotContains = @('run_gettext') } + # Installing copies the whole tree again for a layout only releases need, + # so it is asked for rather than assumed. + @{ Name = 'nothing is installed unless asked'; Args = @('-s') + Contains = @('run_gettext') + NotContains = @('--target install') } + @{ Name = '-i adds the install step'; Args = @('-s', '-i') + Contains = @('--target install') } + # install(TARGETS OrcaSlicer) has no OPTIONAL, so this would fail partway + # through a build instead of before it. + @{ Name = 'installing a tree with no executable is refused'; Args = @('-s', '-i', '--slicer-target', 'glad'); ExpectExit = 1 + Contains = @('--install needs the executable') + NotContains = @('cmake --build') } + # Without -s there is no install step, so there is nothing to refuse. + @{ Name = 'the same flags without a slicer build are left alone'; Args = @('-d', '-i', '--slicer-target', 'glad') + Contains = @('cmake -S deps') + NotContains = @('--install needs the executable') } + @{ Name = 'naming the executable target is allowed'; Args = @('-s', '-i', '--slicer-target', 'OrcaSlicer') + Contains = @('--target install') } + # Ninja counts compilers, so -j goes on the command line. MSBuild's -j + # counts projects while /MP still runs one cl per core inside each, so the + # cap goes to CL_MPCount in the environment instead. A dry run can only + # show that no -j is passed. + @{ Name = '-j on Ninja passes -j to cmake'; Args = @('-s', '-x', '-j', '4') + Contains = @('Parallel jobs: 4', '--config Release -j 4') } + @{ Name = '-j on Ninja reaches the deps build'; Args = @('-d', '-x', '-j', '2') + Contains = @('--target deps -j 2') } + @{ Name = '-j on MSBuild does not pass -j, which would count projects'; Args = @('-s', '-j', '4') + Contains = @('Parallel jobs: 4') + NotContains = @('-j 4') } + @{ Name = '-j on MSBuild leaves the deps build without -j too'; Args = @('-d', '-j', '2') + Contains = @('--target deps') + NotContains = @('-j 2') } + @{ Name = 'no -j means no job limit'; Args = @('-s') + NotContains = @('parallel jobs', '-j ') } + @{ Name = 'a non-numeric -j is rejected'; Args = @('-s', '-j', 'abc'); ExpectExit = 1 + Contains = @('Invalid --jobs value') } + @{ Name = 'a zero -j is rejected'; Args = @('-s', '-j', '0'); ExpectExit = 1 + Contains = @('Invalid --jobs value') } + @{ Name = 'the loop options combine into a single build command'; Args = @('-s', '-x', '--no-configure', '--no-gettext', '--slicer-target', 'libslic3r_tests', '-j', '8') + Contains = @('--target libslic3r_tests -j 8') + NotContains = @('cmake -B "build" ', 'run_gettext', '--target install') } + + 'one tree per configuration, compiler and architecture' + # CMake resets its cache and carries on when the compiler changes under an + # existing tree, leaving stamps from the old toolchain. Give each its own. + @{ Name = 'clang builds land in their own trees'; Args = @('-d', '-s', '-l') + Contains = @('cmake -S deps -B "deps/build-clang"', 'cmake -B "build-clang" ') } + @{ Name = 'MSVC keeps the historical plain names'; Args = @('-d', '-s', '--msvc') + Contains = @('cmake -S deps -B "deps/build"', 'cmake -B "build" ') + NotContains = @('build-clang') } + @{ Name = 'configuration, compiler and arch all name the tree'; Args = @('-d', '-s', '-l', '--config', 'debug', '--arch', 'arm64') + Contains = @('cmake -S deps -B "deps/build-dbg-clang-arm64"', 'cmake -B "build-dbg-clang-arm64" ') } + + 'locating the dependency tree' + # Without --deps-dir nothing is passed, so CMakeLists derives the path from + # the binary directory name as it always has. + @{ Name = 'the deps path is left to CMake by default'; Args = @('-s') + NotContains = @('-DDEP_BUILD_DIR') } + @{ Name = '--deps-dir tells the slicer where the deps are'; Args = @('-s', '--deps-dir', 'D:\orca-deps') + Contains = @('-DDEP_BUILD_DIR="D:\orca-deps"') } + @{ Name = '--deps-dir also redirects the deps build'; Args = @('-d', '--deps-dir', 'D:\orca-deps') + Contains = @('cmake -S deps -B "D:\orca-deps"', 'cmake --build "D:\orca-deps"') + NotContains = @('deps/build') } + # Paths are quoted throughout, so one with spaces survives the whole run. + @{ Name = 'a deps path with spaces survives'; Args = @('-d', '-s', '--deps-dir', 'C:\Program Files\deps') + Contains = @('-B "C:\Program Files\deps"', '-DDEP_BUILD_DIR="C:\Program Files\deps"') } + @{ Name = '--deps-dir also redirects the pack'; Args = @('-p', '--deps-dir', 'D:\orca-deps') + Contains = @('cd /d "D:\orca-deps"') } + @{ Name = 'pack uses an absolute default path'; Args = @('-p') + Match = @('^\+ cd /d "[A-Za-z]:\\.*\\deps\\build"') } + # CMakeLists derives DEP_BUILD_DIR from the build directory's name, so + # pointing the build elsewhere has to name the deps tree outright. + @{ Name = '--build-dir moves the slicer build'; Args = @('-s', '-l', '-x', '--build-dir', 'out/build/x64-clang') + Contains = @('cmake -B "out/build/x64-clang" ') } + @{ Name = '--build-dir still names the deps tree'; Args = @('-s', '-l', '-x', '--build-dir', 'out/build/x64-clang') + Match = @('-DDEP_BUILD_DIR="[A-Za-z]:\\.*\\deps\\build-clang"') } + @{ Name = '--deps-dir wins over the derived tree'; Args = @('-s', '--build-dir', 'out/build/x64-clang', '--deps-dir', 'D:\orca-deps') + Contains = @('-DDEP_BUILD_DIR="D:\orca-deps"') } + # A value ending in a backslash escapes the closing quote it is spliced + # into, so cmake would receive D:\tree" and swallow the next argument. + @{ Name = 'a trailing backslash is trimmed off a path'; Args = @('-s', '--build-dir', 'D:\tree\') + Contains = @('cmake -B "D:\tree" ') } + @{ Name = 'a build directory with spaces survives'; Args = @('-s', '--build-dir', 'C:\Program Files\tree') + Contains = @('cmake -B "C:\Program Files\tree" ') } + @{ Name = 'the default build names no deps tree'; Args = @('-s') + NotContains = @('DEP_BUILD_DIR') } + + 'saying what mode and toolchain are in play' + @{ Name = 'a dry run announces itself before the first command'; Args = @('-u') + First = '^Dry run: printing commands without running them\.$' } + @{ Name = 'the announcement leads even a full build'; Args = @('-ds') + First = '^Dry run: ' } + # Autodetect only runs for the Visual Studio generator, and only when no + # release was pinned, so it needs a Visual Studio on the machine. + @{ Name = 'the detected Visual Studio names its release year'; Args = @('-s') + Match = @('^Detected Visual Studio \d+ \(20\d\d\)$') } + @{ Name = 'pinning a release skips detection'; Args = @('-s', '--vs', '2022') + NotContains = @('Detected Visual Studio') } + + 'an action has to be asked for' + # Neither can happen without building the slicer, so they stand alone the + # way --install-vs does. + @{ Name = '--run-tests is an action on its own'; Args = @('--run-tests') + Contains = @('-DBUILD_TESTS=ON', 'ctest --test-dir') + NotContains = @('Nothing to do') } + @{ Name = '--tests is too'; Args = @('--tests') + Contains = @('-DBUILD_TESTS=ON') + NotContains = @('Nothing to do', 'ctest --test-dir') } + # Naming an action means that action, not a fuller build. + @{ Name = 'they do not add a slicer build to one already asked for'; Args = @('-d', '--tests') + Contains = @('cmake -S deps') + NotContains = @('cmake -B "build"') } + @{ Name = 'shaping options alone are not an action'; Args = @('--config', 'debug'); ExpectExit = 1 + Contains = @('Nothing to do.') + NotContains = @('Build completed') } + @{ Name = '-j alone is not an action either'; Args = @('-j', '4'); ExpectExit = 1 + Contains = @('Nothing to do.') } + @{ Name = '--install-vs counts as an action on its own'; Args = @('--install-vs', 'ide') + NotContains = @('Nothing to do.') } + + 'diagnostics' + @{ Name = '-v asks cmake for the command lines'; Args = @('-s', '-v') + Contains = @('--verbose') } + @{ Name = '-v applies to the deps build too'; Args = @('-d', '-v') + Contains = @('--target deps', '--verbose') } + # ninja's own default shows neither a percentage nor a time. %w and %W + # need ninja 1.12, and an unknown placeholder is fatal, so the format is + # chosen from the version rather than hardcoded. + @{ Name = '-v names the ninja progress format'; Args = @('-s', '-x', '-v') + Match = @('^Ninja progress format: \[.*%p.*\]') } + @{ Name = 'a ninja older than 1.12 gets the format it understands'; Args = @('-s', '-x', '-v') + Env = @{ PATH = $ninjaPaths['old'] } + Contains = @('Ninja progress format: [%s/%t %p :: %e]') } + @{ Name = 'ninja 1.12 gets elapsed and remaining'; Args = @('-s', '-x', '-v') + Env = @{ PATH = $ninjaPaths['new'] } + Contains = @('Ninja progress format: [%f/%t %p :: %w / %W]') } + @{ Name = 'a format you set yourself is left alone'; Args = @('-s', '-x', '-v') + Env = @{ NINJA_STATUS = '[mine] ' } + Contains = @('Ninja progress format: [mine]') } + @{ Name = 'MSBuild builds mention no ninja format'; Args = @('-s', '-v') + NotContains = @('Ninja progress format') } + @{ Name = 'builds are quiet without -v'; Args = @('-s') + NotContains = @('--verbose') } + + 'installing prerequisites' + # -u installs CMake, Perl and Git. Visual Studio is a separate ask, because + # most people already have it, and which one you want is a real choice. + @{ Name = '-u alone installs no Visual Studio'; Args = @('-u') + Contains = @('Kitware.CMake', 'StrawberryPerl', 'Git.Git') + NotContains = @('Microsoft.VisualStudio') } + # Asking for Visual Studio is asking to install prerequisites, so it does + # not also need -u; requiring both meant --install-vs alone did nothing. + @{ Name = '--install-vs works without -u'; Args = @('--install-vs', 'ide') + Contains = @('id=Microsoft.VisualStudio.Community', 'Kitware.CMake', 'Git.Git') } + @{ Name = '--install-vs buildtools asks for the build tools'; Args = @('-u', '--install-vs', 'buildtools') + Contains = @('id=Microsoft.VisualStudio.BuildTools') + NotContains = @('VC.CoreIde') } + @{ Name = '--install-vs ide asks for Community with the IDE component'; Args = @('-u', '--install-vs', 'ide') + Contains = @('id=Microsoft.VisualStudio.Community', 'VC.CoreIde') } + @{ Name = 'an unknown edition is rejected and the known ones listed'; Args = @('-u', '--install-vs', 'bogus'); ExpectExit = 1 + Contains = @('Unknown Visual Studio edition', 'buildtools, ide') } + @{ Name = '--vs picks which release to install'; Args = @('-u', '--vs', '2022', '--install-vs', 'buildtools') + Contains = @('id=Microsoft.VisualStudio.2022.BuildTools') } + @{ Name = '-l adds the clang compiler and the MSBuild toolset'; Args = @('-u', '--install-vs', 'buildtools', '-l') + Contains = @('VC.Llvm.Clang ', 'VC.Llvm.ClangToolset') } + # CMake 4.x breaks Boost.Context on ARM64, so the installer pins 3.31 there + # and leaves x64 on the current release. + @{ Name = 'CMake is pinned to 3.31 when installing for arm64'; Args = @('-u', '--arch', 'arm64') + Contains = @('Kitware.CMake --version 3.31.8') } + @{ Name = 'CMake is not pinned for x64'; Args = @('-u', '--arch', 'x64') + Contains = @('Kitware.CMake') + NotContains = @('--version') } + @{ Name = 'installing for arm64 asks for the ARM64 toolset'; Args = @('--install-vs', 'buildtools', '--arch', 'arm64') + Contains = @('Microsoft.VisualStudio.Component.VC.Tools.ARM64') } + @{ Name = 'an x64 install asks only for the x64 toolset'; Args = @('--install-vs', 'buildtools') + Contains = @('Microsoft.VisualStudio.Component.VC.Tools.x86.x64') + NotContains = @('VC.Tools.ARM64') } + + 'dry run changes nothing' + # clean_tree resolves the path before removing it, so the line echoed is + # absolute. It is the last thing printed before a directory goes. + @{ Name = '-c echoes the deps rmdir rather than running it'; Args = @('-d', '-c') + Match = @('^\+ rmdir /S /Q "[A-Za-z]:\\.*\\deps\\build"$') } + @{ Name = '-c removes the tree --deps-dir named, not the default one'; Args = @('-d', '-c', '--deps-dir', 'D:\orca-deps') + Match = @('^\+ rmdir /S /Q "D:\\orca-deps"$') + NotContains = @('\deps\build') } + @{ Name = '-c echoes the slicer rmdir rather than running it'; Args = @('-s', '-c') + Match = @('^\+ rmdir /S /Q "[A-Za-z]:\\.*\\build"$') } + @{ Name = 'cleaning a slicer build leaves the deps tree alone'; Args = @('-s', '-c') + NotMatch = @('rmdir.*\\deps\\') } + @{ Name = 'cleaning both builds removes both trees'; Args = @('-d', '-s', '-c') + Match = @('^\+ rmdir /S /Q "[A-Za-z]:\\[^"]*\\deps\\build"$', + '^\+ rmdir /S /Q "[A-Za-z]:\\(?!.*\\deps\\)[^"]*\\build"$') } + + # Nothing below should be reachable. They are a floor under a bug that + # hands clean_tree a path far shorter than it looks. + @{ Name = 'a configuration whose lookup comes back empty is rejected'; Args = @('-d', '-c', '--config', 'release '); ExpectExit = 1 + Contains = @('Unknown configuration') + NotContains = @('rmdir') } + @{ Name = 'a drive root is refused'; Args = @('-d', '-c', '--deps-dir', 'D:\'); ExpectExit = 1 + Contains = @('that is a drive root') + NotContains = @('+ rmdir') } + @{ Name = 'the repository itself is refused'; Args = @('-d', '-c', '--deps-dir', '.'); ExpectExit = 1 + Contains = @('that is the repository itself') + NotContains = @('+ rmdir') } + @{ Name = '-k echoes the taskkills rather than running them'; Args = @('-k') + Contains = @('+ taskkill /F /IM MSBuild.exe', '+ taskkill /F /IM cl.exe') } + @{ Name = '-k also covers the Ninja toolchain'; Args = @('-k') + Contains = @('+ taskkill /F /IM ninja.exe', '+ taskkill /F /IM clang-cl.exe') } + @{ Name = '-k announces the dry run like every other action'; Args = @('-k') + First = '^Dry run: ' } + @{ Name = '-u echoes the winget installs rather than running them'; Args = @('-u') + Contains = @('+ winget install', 'Kitware.CMake') + NotContains = @('cmake -S deps') } + # Not a dry run: winget is a stub that fails, so nothing is installed. + @{ Name = 'a failed install is reported, not claimed as success'; Args = @('-u') + DryRun = $false; ExpectExit = 1 + Env = @{ PATH = $stubPath } + Contains = @('Failed to install:', 'CMake', 'Perl', 'Git') + NotContains = @('Installed the prerequisites') } + # The reason belongs inside the frame. Every command this path ran had + # already succeeded, so naming the last one would point at the wrong thing. + @{ Name = 'a failed install names the reason, not the last command'; Args = @('-u') + DryRun = $false; ExpectExit = 1 + Env = @{ PATH = $stubPath } + Contains = @('####', 'Failed to install:') + NotContains = @('Failed: winget') } + @{ Name = 'a dry run does not claim the install happened'; Args = @('-u') + Contains = @('Dry run: nothing was installed.') + NotContains = @('are in place') } + @{ Name = '-u with a build defers that build, not a fuller one'; Args = @('-u', '-d') + Contains = @('build_win.bat -d') + NotContains = @('build_win.bat -ds') } + @{ Name = '-u on its own suggests the whole build'; Args = @('-u') + Contains = @('build_win.bat -ds') } + @{ Name = 'a dry run only echoes, it never configures'; Args = @('-d') + Contains = @('+ cmake') + NotContains = @('CMake Error', 'Configuring done') } + + 'extra configure arguments' + # --deps-args and --slicer-args are declared "rawstring", so a value that + # looks like an option is allowed through. Plain string options still + # reject one, since there it almost always means a forgotten value. + @{ Name = '--deps-args reaches the deps configure'; Args = @('-d', '--deps-args', 'FOO') + Contains = @('-DCMAKE_BUILD_TYPE=Release FOO') } + @{ Name = '--slicer-args reaches the slicer configure'; Args = @('-s', '--slicer-args', 'BAZ') + Contains = @('BAZ') } + @{ Name = '--deps-args accepts a value that starts with a dash'; Args = @('-d', '--deps-args', '-DFOO') + Contains = @('-DFOO') } + @{ Name = 'a plain string option still rejects a dash-leading value'; Args = @('-d', '--deps-target', '--tests'); ExpectExit = 1 + Contains = @('looks like another option') } + # cmd splits arguments on "=" as well as spaces, so an unquoted -D reaches + # the script as two arguments however it was invoked. + @{ Name = 'an unquoted value containing = is rejected'; Args = @('-d', '--deps-args', 'FOO=BAR'); ExpectExit = 1 + Contains = @('Unknown argument') } + # The environment overrides exist for that reason; nothing tokenises them. + @{ Name = 'ORCA_DEPS_CMAKE_ARGS reaches the deps configure'; Args = @('-d') + Env = @{ ORCA_DEPS_CMAKE_ARGS = '-DFOO=BAR -DBAZ=QUX' } + Contains = @('-DFOO=BAR -DBAZ=QUX') } + @{ Name = 'ORCA_SLICER_CMAKE_ARGS reaches the slicer configure'; Args = @('-s') + Env = @{ ORCA_SLICER_CMAKE_ARGS = '-DWANTED=1' } + Contains = @('-DWANTED=1') } + @{ Name = 'the deps override does not leak into the slicer configure'; Args = @('-s') + Env = @{ ORCA_DEPS_CMAKE_ARGS = '-DDEPSONLY=1' } + NotContains = @('-DDEPSONLY=1') } + @{ Name = 'the help points at the environment for a spaced argument'; Args = @('--help'); DryRun = $false + Contains = @('Neither form supports a value containing an ampersand') } + @{ Name = 'the help lists the environment overrides'; Args = @('--help'); DryRun = $false + Contains = @('Environment:', 'ORCA_DEPS_CMAKE_ARGS', 'ORCA_SLICER_CMAKE_ARGS') } + + 'running the unit tests' + @{ Name = '--tests builds them without running them'; Args = @('-s', '--tests') + Contains = @('-DBUILD_TESTS=ON') + NotContains = @('ctest') } + @{ Name = '--run-tests builds and runs them'; Args = @('-s', '--run-tests') + Contains = @('-DBUILD_TESTS=ON', 'ctest --test-dir "build/tests" -C Release --output-on-failure') } + @{ Name = '--run-tests follows the build type and directory'; Args = @('-s', '--run-tests', '--config', 'debug') + Contains = @('ctest --test-dir "build-dbg/tests" -C Debug') } + @{ Name = 'no tests are run by default'; Args = @('-s') + NotContains = @('ctest') } + + 'failures are reported' + @{ Name = 'a missing cmake is caught and exits non-zero'; Args = @('-d'); ExpectExit = 1 + Env = @{ PATH = 'C:\Windows\system32;C:\Windows' } + Contains = @('CMake was not found') } + @{ Name = 'packing does not need cmake, only an archiver'; Args = @('-p') + Env = @{ PATH = 'C:\Windows\system32;C:\Windows' } + NotContains = @('CMake was not found') } + # Not a dry run: a cd to a missing drive is a real failure inside a + # parenthesised block, which is where exit /b silently loses its code. + # Without the jump to :die this exits 0 and a failed build reads as a + # successful one. + @{ Name = 'a failure inside a build block reaches the caller'; Args = @('-p', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + Contains = @('Exit code 1.', '####') + NotContains = @('Build completed', 'Try') } + # The retry follows the stage that failed. Offering it for the whole run + # would clean a dependency tree that was not at fault. + @{ Name = 'a failure names a retry scoped to the stage that failed'; Args = @('-d', '-s', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + Contains = @('build_win.bat -d --deps-dir "Z:\nope" -c') + NotContains = @('build_win.bat -ds') } + # CMake's own failure here is hundreds of lines about package resolution. + @{ Name = 'a missing dependency tree is named, not left to CMake'; Args = @('-s', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + Contains = @('Dependencies not found at', 'Build them with build_win.bat -d --deps-dir "Z:\nope"') + NotContains = @('cmake -B', 'Try') } + # Every other suggestion carries the flags that reproduce the run; a bare + # -d would point at the MSVC tree after a clang build. + @{ Name = 'the missing-deps hint names this toolchain'; Args = @('-s', '-l', '-x', '--deps-dir', 'deps/not-built') + DryRun = $false; ExpectExit = 1 + Contains = @('Build them with build_win.bat -d -l -x --deps-dir "deps/not-built"') + NotExists = @('deps/not-built') } + # A dry run configures nothing, so it must not depend on which trees happen + # to exist on the machine running the suite. + @{ Name = 'a dry run does not check for the deps tree'; Args = @('-s', '--deps-dir', 'Z:\nope') + Contains = @('cmake -B "build"') + NotContains = @('Dependencies not found') } + # -d is about to build them, so there is nothing to report yet. + @{ Name = 'building the deps in the same run skips the check'; Args = @('-d', '-s', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + NotContains = @('Dependencies not found') } + # A configure fails before any compiler runs, so -v has nothing to show. + @{ Name = 'a configure failure is not offered a verbose rebuild'; Args = @('-d', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + Contains = @('-c discard that tree') + NotContains = @('-v show the failing') } + # A bare --no-configure succeeds on a machine that already has a usable + # build tree, so name one that cannot exist instead. + @{ Name = 'a build failure is'; Args = @('-s', '--no-configure', '--build-dir', 'deps/no-such-tree') + DryRun = $false; ExpectExit = 1 + Contains = @('-v show the failing') + NotExists = @('deps/no-such-tree') } + # --build-dir names the slicer tree, which a deps failure has nothing to do + # with. --deps-dir stays, because that is the tree that failed. + @{ Name = 'a deps retry leaves out the slicer tree'; Args = @('-d', '-s', '--deps-dir', 'Z:\nope', '--build-dir', 'D:\b') + DryRun = $false; ExpectExit = 1 + Contains = @('build_win.bat -d --deps-dir "Z:\nope" -c') + NotContains = @('--build-dir') } + @{ Name = 'an unknown configuration stays a single line'; Args = @('-s', '--config', 'bogus'); ExpectExit = 1 + Contains = @('Unknown configuration') + NotContains = @('####', 'Try') } + @{ Name = 'a bad --jobs value is not framed either'; Args = @('-s', '-j', 'x'); ExpectExit = 1 + Contains = @('Invalid --jobs value') + NotContains = @('####') } + + 'the summary says what to do next' + # Every suggested command carries the flags that reproduce this run. + @{ Name = 'a deps build points at the slicer build'; Args = @('-d', '-l') + Contains = @('Build the slicer build_win.bat -s -l') + NotContains = @('Run it') } + @{ Name = 'a ninja slicer build offers a single target'; Args = @('-s', '-l', '-x') + Contains = @('Rebuild after edits build_win.bat -s -l -x --no-configure', 'Rebuild one target') + NotContains = @('Solution', 'Open in Visual Studio') } + @{ Name = 'a visual studio build names the solution instead'; Args = @('-s') + Contains = @('Solution ', 'Open in Visual Studio build\OrcaSlicer.sln', + 'Rebuild after edits build_win.bat -s --no-configure') + NotContains = @('Rebuild one target') } + @{ Name = 'the configuration and architecture come back'; Args = @('-s', '-l', '-x', '--config', 'debug', '--arch', 'arm64') + Contains = @('build_win.bat -s -l -x --config debug --arch arm64 --no-configure') } + @{ Name = 'the tree overrides come back quoted'; Args = @('-s', '--deps-dir', 'D:\d', '--build-dir', 'D:\b') + Contains = @('--deps-dir "D:\d" --build-dir "D:\b"') } + @{ Name = 'a pinned visual studio release comes back'; Args = @('-s', '--vs', '2022') + Contains = @('build_win.bat -s --vs 2022 --no-configure') } + # Autodetection writes what it found into the same variable, so a detected + # release must not come back as though it had been asked for. + @{ Name = 'a detected release does not'; Args = @('-s') + NotContains = @('--vs') } + @{ Name = 'the binary is named in the build tree it was built in'; Args = @('-s', '-l', '-x') + Contains = @('build-clang\src\Release\orca-slicer.exe') } + @{ Name = 'installing names the installed copy instead'; Args = @('-s', '-l', '-x', '-i') + Contains = @('build-clang\OrcaSlicer\orca-slicer.exe') } + # -i changes where the binary lands, so a rebuild that dropped it would + # leave the path above pointing at a stale copy. + @{ Name = 'the rebuild suggestion keeps -i'; Args = @('-s', '-l', '-x', '-i') + Contains = @('Rebuild after edits build_win.bat -s -l -x -i --no-configure') } + # A deps retry has no install step to repeat. + @{ Name = 'a deps retry drops it'; Args = @('-d', '-s', '-i', '--deps-dir', 'Z:\nope') + DryRun = $false; ExpectExit = 1 + Contains = @('build_win.bat -d --deps-dir "Z:\nope" -c') + NotContains = @('-d -i') } + # Naming a target builds it and its dependencies, not its dependents, so + # the binary on disk is whatever the last full build left there. + @{ Name = 'a single-target build does not claim the whole binary'; Args = @('-s', '-l', '-x', '--slicer-target', 'glad') + Contains = @('Target glad', 'Relink the binary build_win.bat -s -l -x --no-configure') + NotContains = @('Run it', 'orca-slicer.exe', 'Rebuild after edits') } + # The executable has a target of its own, and naming that one does relink. + @{ Name = 'naming the executable target still claims the binary'; Args = @('-s', '-l', '-x', '--slicer-target', 'OrcaSlicer') + Contains = @('Run it', 'orca-slicer.exe', 'Rebuild after edits') + NotContains = @('Target OrcaSlicer', 'Relink the binary') } + @{ Name = '--run-tests offers the ctest line'; Args = @('-s', '-l', '-x', '--run-tests') + Contains = @('Re-run the tests ctest --test-dir build-clang/tests -C Release') } + @{ Name = 'packing names the bundle and how to use it'; Args = @('-p', '-l') + Contains = @('Bundle ', 'Share the bundle') } + # The line supplies its own tree, so the one this run used must not ride + # along and contradict it. + @{ Name = 'the bundle line names one tree, not two'; Args = @('-s', '-p', '-l', '-x', '--deps-dir', 'D:\shared') + Contains = @('then build_win.bat -s -l -x --deps-dir <path>') + NotContains = @('--deps-dir "D:\shared" --deps-dir') } + @{ Name = 'installing prerequisites suggests the build that follows'; Args = @('-u', '-l') + Contains = @('Restart this shell', 'build_win.bat -ds -l') + NotContains = @('Run it') } + # Everything below the header line is worked out the same way in either + # run, which is why a dry run can cover it. + @{ Name = 'a dry run does not claim a build happened'; Args = @('-s', '-l', '-x') + Contains = @('Dry run: nothing was built.') + NotContains = @('Build completed in') } + # --no-configure is the iteration loop and still gets the block; four + # lines after a rebuild is not enough to be worth suppressing. + @{ Name = '--no-configure still gets the summary'; Args = @('-s', '-l', '-x', '--no-configure') + Contains = @('Next', 'Rebuild after edits') } + + 'pointing at the solution' + @{ Name = 'the VS generator says where the solution is'; Args = @('-s') + Match = @('^ Solution .*\\build\\OrcaSlicer\.sln$') } + @{ Name = 'the solution path follows the configuration'; Args = @('-s', '--config', 'debug') + Match = @('^ Solution .*\\build-dbg\\OrcaSlicer\.sln$') } + @{ Name = 'the solution line survives an install'; Args = @('-s', '-i') + Contains = @(' Solution ') } + # The path is resolved, not pasted onto the repository root, so it is + # right whether --build-dir came absolute or with forward slashes. + @{ Name = 'a moved build still prints one real path'; Args = @('-s', '--build-dir', 'out/build/x64-clang') + Match = @('^ Solution [A-Za-z]:\\[^/]+\\OrcaSlicer\.sln$') } + @{ Name = 'an absolute --build-dir is not glued onto the repo root'; Args = @('-s', '--build-dir', 'D:\tree') + Contains = @('Solution D:\tree\OrcaSlicer.sln') } +) + +function Invoke-BuildScript { + param([string[]] $Arguments, [hashtable] $Environment) + + $saved = @{} + if ($Environment) { + foreach ($key in $Environment.Keys) { + $saved[$key] = [Environment]::GetEnvironmentVariable($key) + Set-Item -Path "env:$key" -Value $Environment[$key] + } + } + try { + # 'Stop' turns a native command's stderr into a terminating error, and + # a case that exercises a real failure writes to stderr. Let the output + # through and judge the run by its exit code instead. The assignment is + # scoped to this function, so the rest of the suite keeps 'Stop'. + $ErrorActionPreference = 'Continue' + if ($Arguments.Count -eq 0) { + $out = & $Script 2>&1 | Out-String + } else { + $out = & $Script @Arguments 2>&1 | Out-String + } + return [pscustomobject]@{ Output = $out; Exit = $LASTEXITCODE } + } finally { + foreach ($key in $saved.Keys) { + if ($null -eq $saved[$key]) { Remove-Item -Path "env:$key" -ErrorAction SilentlyContinue } + else { Set-Item -Path "env:$key" -Value $saved[$key] } + } + } +} + +$knownFields = @( + 'Name', 'Args', 'ExpectExit', 'DryRun', 'First', 'Env', + 'Contains', 'NotContains', 'Match', 'NotMatch', 'NotExists' +) + +function Test-Case { + param([hashtable] $Case) + + # Read fields with the indexer, not dot notation. A hashtable exposes its + # own members too, so $Case.Contains returns the Contains *method* whenever + # the case has no key by that name. + $argv = @($Case['Args']) + if (-not $Case.ContainsKey('DryRun') -or $Case['DryRun']) { $argv += '--dry-run' } + + $expect = 0 + if ($Case.ContainsKey('ExpectExit')) { $expect = $Case['ExpectExit'] } + + $result = Invoke-BuildScript -Arguments $argv -Environment $Case['Env'] + + $problems = @() + + # A misspelled field is silently ignored by the checks below, which + # leaves the case asserting nothing at all and passing. + foreach ($field in $Case.Keys) { + if ($knownFields -notcontains $field) { $problems += "unknown field '$field'" } + } + + if ($result.Exit -ne $expect) { $problems += "exit $($result.Exit), expected $expect" } + foreach ($needle in $Case['Contains']) { + if (-not $result.Output.Contains($needle)) { $problems += "missing '$needle'" } + } + foreach ($needle in $Case['NotContains']) { + if ($result.Output.Contains($needle)) { $problems += "unexpected '$needle'" } + } + $lines = $result.Output -split "`r?`n" + if ($Case['First'] -and $lines[0] -notmatch $Case['First']) { + $problems += "first line was '$($lines[0])'" + } + foreach ($pattern in $Case['Match']) { + if (@($lines | Where-Object { $_ -match $pattern }).Count -eq 0) { + $problems += "no line matching /$pattern/" + } + } + foreach ($pattern in $Case['NotMatch']) { + foreach ($line in @($lines | Where-Object { $_ -match $pattern })) { + $problems += "line matches /$pattern/: $line" + } + } + # Output cannot show what a run did not create. + foreach ($path in $Case['NotExists']) { + $full = Join-Path (Split-Path -Parent $Script) $path + if (Test-Path $full) { + $problems += "created '$path'" + } + } + return ,$problems +} + +$pass = 0 +$failed = @() +# Held back so a filtered run does not print headings for groups it skipped. +$heading = $null + +foreach ($case in $cases) { + if ($case -is [string]) { + $heading = $case + continue + } + if ($Name -and $case['Name'] -notmatch $Name) { continue } + if ($heading) { + Write-Host '' + Write-Host $heading -ForegroundColor Cyan + $heading = $null + } + + $problems = Test-Case -Case $case + if ($problems.Count -eq 0) { + $pass++ + Write-Host (' ok ' + $case['Name']) + } else { + $failed += $case['Name'] + Write-Host (' FAIL ' + $case['Name']) -ForegroundColor Red + foreach ($problem in $problems) { Write-Host (' ' + $problem) -ForegroundColor Red } + Write-Host (' args: ' + (@($case['Args']) -join ' ')) + } +} + +Remove-Item -Recurse -Force $fixtures -ErrorAction SilentlyContinue + +Write-Host '' +# A pattern that matched nothing has proved nothing, so do not report it as +# a clean run. +if ($Name -and $pass -eq 0 -and $failed.Count -eq 0) { + Write-Host "no case matched /$Name/" -ForegroundColor Red + exit 1 +} +Write-Host "$pass passed, $($failed.Count) failed" +if ($failed.Count -gt 0) { + foreach ($name in $failed) { Write-Host " failed: $name" -ForegroundColor Red } + exit 1 +} +exit 0 From 918d3914ba40d7db638115e31beef54dc867e4ed Mon Sep 17 00:00:00 2001 From: Thomas <bistory@gmail.com> Date: Tue, 1 Sep 2026 20:05:10 +0200 Subject: [PATCH 101/164] Fixed "jerk" translation inconsistency. (#15463) * Fixed "jerk" translation inconsistency. * Fixed an other "jerk" translation. --- localization/i18n/fr/OrcaSlicer_fr.po | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index c9bd7f22ef..65589bc5ff 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n==0 || n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.9\n" # AI Translated msgid "Main Extruder" @@ -10707,7 +10707,7 @@ msgid "Acceleration limitation" msgstr "Limitation d'accélération" msgid "Jerk limitation" -msgstr "Limitation des secousses" +msgstr "Limitation du jerk" msgid "Single extruder multi-material setup" msgstr "Configuration multi-matériaux pour extrudeur unique" @@ -12226,7 +12226,7 @@ msgid "Plate %d: %s does not support filament %s" msgstr "Plaque %d : %s ne prend pas en charge le filament %s" msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces" -msgstr "Un réglage trop bas de la vitesse de saccade peut entraîner des artefacts sur les surfaces courbes" +msgstr "Un réglage trop bas de la vitesse de jerk peut entraîner des artefacts sur les surfaces courbes" msgid "" "The jerk setting exceeds the printer's maximum jerk (machine_max_jerk_x/machine_max_jerk_y).\n" @@ -12234,7 +12234,7 @@ msgid "" "You can adjust the maximum jerk setting in your printer's configuration to get higher speeds." msgstr "" "Le réglage du jerk dépasse le jerk maximum de l’imprimante (machine_max_jerk_x/machine_max_jerk_y).\n" -"Orca plafonne automatiquement la vitesse de l’impulsion pour s’assurer qu’elle ne dépasse pas les capacités de l’imprimante.\n" +"Orca plafonne automatiquement la vitesse du jerk pour s’assurer qu’elle ne dépasse pas les capacités de l’imprimante.\n" "Vous pouvez ajuster le réglage du jerk maximum dans la configuration de votre imprimante pour obtenir des vitesses plus élevées." msgid "" @@ -21188,8 +21188,7 @@ msgstr "" "Divisez vos impressions en plateaux\n" "Saviez-vous que vous pouvez diviser un modèle comportant de nombreuses pièces en plateaux individuels prêts à être imprimés ? Cela simplifie le processus de suivi de toutes les pièces." -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer -#: Height] +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] msgid "" "Speed up your print with Adaptive Layer Height\n" "Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!" @@ -21261,8 +21260,7 @@ msgstr "" "Améliorer la solidité\n" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une densité de remplissage plus élevée pour améliorer la résistance du modèle ?" -#: resources/data/hints.ini: [hint:When do you need to print with the printer -#: door opened] +#: resources/data/hints.ini: [hint:When do you need to print with the printer door opened] msgid "" "When do you need to print with the printer door opened?\n" "Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki." From e108ddfd56b6527a7b372c009307a5a2e5291347 Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Tue, 1 Sep 2026 15:37:08 -0300 Subject: [PATCH 102/164] Fix wrong JA jerk translation. (#15488) Update OrcaSlicer_ja.po --- localization/i18n/ja/OrcaSlicer_ja.po | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 327e3df661..d67a39463d 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -10617,7 +10617,7 @@ msgid "Junction Deviation" msgstr "接合偏差" msgid "Jerk(XY)" -msgstr "ジャーク(XY)" +msgstr "Jerk(XY)" msgid "Raft" msgstr "ラフト" @@ -10914,7 +10914,7 @@ msgid "Acceleration limitation" msgstr "加速制限" msgid "Jerk limitation" -msgstr "振動特性" +msgstr "Jerk制限" msgid "Single extruder multi-material setup" msgstr "シングルエクストルーダー マルチマテリアル設定" @@ -12485,7 +12485,7 @@ msgid "Plate %d: %s does not support filament %s" msgstr "プレート %d: %s がフィラメント %s を使用できません" msgid "Setting the jerk speed too low could lead to artifacts on curved surfaces" -msgstr "ジャーク速度を低く設定しすぎると曲面にアーティファクトが発生する可能性があります" +msgstr "Jerk速度を低く設定しすぎると曲面にアーティファクトが発生する可能性があります" # AI Translated msgid "" @@ -14750,7 +14750,7 @@ msgid "Klipper's max_accel_to_decel will be adjusted to this %% of acceleration. msgstr "Klipperのmax_accel_to_decelが、加速度のこの%%に調整されます。" msgid "Default jerk." -msgstr "デフォルトジャーク。" +msgstr "デフォルトのJerkです。" # AI Translated msgid "Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)." @@ -15841,28 +15841,28 @@ msgid "Maximum acceleration of the E axis" msgstr "E軸最大加速度" msgid "Maximum jerk X" -msgstr "最大振動 X" +msgstr "最大Jerk X" msgid "Maximum jerk Y" -msgstr "最大振動 Y" +msgstr "最大Jerk Y" msgid "Maximum jerk Z" -msgstr "最大振動 Z" +msgstr "最大Jerk Z" msgid "Maximum jerk E" -msgstr "最大振動 E" +msgstr "最大Jerk E" msgid "Maximum jerk of the X axis" -msgstr "最大振動 X" +msgstr "X軸最大Jerk" msgid "Maximum jerk of the Y axis" -msgstr "最大振動 Y" +msgstr "Y軸最大Jerk" msgid "Maximum jerk of the Z axis" -msgstr "最大振動 Z" +msgstr "Z軸最大Jerk" msgid "Maximum jerk of the E axis" -msgstr "最大振動 E" +msgstr "E軸最大Jerk" msgid "Maximum Junction Deviation" msgstr "最大接合偏差" From 44a617a40d475ac8bf1b3d6ce0e7dffa866a9900 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Wed, 2 Sep 2026 02:42:30 +0800 Subject: [PATCH 103/164] more fixes --- resources/profiles/Creality.json | 2 +- resources/profiles/Creality/machine/Creality CR-10 SE.json | 2 +- resources/profiles/Creality/machine/Creality K1 Max.json | 2 +- .../profiles/Creality/machine/Creality K1 Max_CFS-C.json | 2 +- resources/profiles/Creality/machine/Creality K1.json | 2 +- resources/profiles/Creality/machine/Creality K1_CFS-C.json | 2 +- resources/profiles/Flashforge.json | 2 +- .../Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json | 6 ++++++ .../Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json | 6 ++++++ .../Flashforge/filament/FusRock PAHT-CF @FF G4.json | 6 ++++++ .../Flashforge/filament/FusRock PAHT-CF @FF G4P.json | 6 ++++++ resources/profiles/Z-Bolt.json | 2 +- 12 files changed, 32 insertions(+), 8 deletions(-) diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 29399dcade..a043d51433 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.77", + "version": "02.03.02.78", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE.json b/resources/profiles/Creality/machine/Creality CR-10 SE.json index bd39ea5ff1..56af1ec8a6 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10se_buildplate_model.stl", "bed_texture": "creality_cr10se_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PETG @Creality;Generic TPU @Creality;Generic ABS @Creality" + "default_materials": "Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PETG @Creality;Generic TPU @Creality;Generic ABS @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1 Max.json b/resources/profiles/Creality/machine/Creality K1 Max.json index 3acfd1ec99..5680990e70 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max.json +++ b/resources/profiles/Creality/machine/Creality K1 Max.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1max_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json index 3016f2de6c..012ad881ea 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1_Max_CFS_C", - "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality;Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1.json b/resources/profiles/Creality/machine/Creality K1.json index 60cd9142f1..a70046460a 100644 --- a/resources/profiles/Creality/machine/Creality K1.json +++ b/resources/profiles/Creality/machine/Creality K1.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" } diff --git a/resources/profiles/Creality/machine/Creality K1_CFS-C.json b/resources/profiles/Creality/machine/Creality K1_CFS-C.json index d0d7124dd2..c5986ae635 100644 --- a/resources/profiles/Creality/machine/Creality K1_CFS-C.json +++ b/resources/profiles/Creality/machine/Creality K1_CFS-C.json @@ -9,5 +9,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_K1_CFS_C", - "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA @Creality HF;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" + "default_materials": "Generic ABS @Creality;Generic ASA @Creality;Generic PC @Creality K1-all;Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PETG @Creality;Generic TPU @Creality" } diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index 11b86ecc8d..e754ca729a 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.04.00.06", + "version": "02.04.00.07", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json index d06a93931d..22b1a35dcb 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle.json @@ -67,6 +67,12 @@ "nozzle_temperature_initial_layer": [ "205" ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], "overhang_fan_threshold": [ "25%" ], diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json index 13d1358b71..dccc672613 100644 --- a/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle.json @@ -67,6 +67,12 @@ "nozzle_temperature_initial_layer": [ "205" ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], "overhang_fan_threshold": [ "25%" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json index 22ea704736..2fb2e00e21 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4.json @@ -10,9 +10,15 @@ "filament_vendor": [ "FusRock" ], + "activate_chamber_temp_control": [ + "1" + ], "additional_cooling_fan_speed": [ "0" ], + "chamber_temperature": [ + "60" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json index 5156df9505..263323a60a 100644 --- a/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json +++ b/resources/profiles/Flashforge/filament/FusRock PAHT-CF @FF G4P.json @@ -10,9 +10,15 @@ "filament_vendor": [ "FusRock" ], + "activate_chamber_temp_control": [ + "1" + ], "additional_cooling_fan_speed": [ "0" ], + "chamber_temperature": [ + "60" + ], "close_fan_the_first_x_layers": [ "3" ], diff --git a/resources/profiles/Z-Bolt.json b/resources/profiles/Z-Bolt.json index 8e3d3a0cd5..aa092cc8b2 100644 --- a/resources/profiles/Z-Bolt.json +++ b/resources/profiles/Z-Bolt.json @@ -1,7 +1,7 @@ { "name": "Z-Bolt", "url": "", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Z-Bolt configurations", "machine_model_list": [ From 36228c4755782447f74296a7c8d9c430288b3bad Mon Sep 17 00:00:00 2001 From: weng haishi <74546450+wenghaishi@users.noreply.github.com> Date: Wed, 2 Sep 2026 03:39:12 +0800 Subject: [PATCH 104/164] fix: prevent heap corruption when repairing models with auto-backup (#15395) * fix: prevent heap corruption in model repair with auto-backup The CGAL model repair (fix_model_with_cgal_gui) runs on a worker thread that mutates the live ModelObject (split / delete_volume / set_mesh). Those mutators transitively call save_object_mesh(), which hands the object to the auto-backup manager. The manager clones and serializes the object on its own thread via an internal Model documented as "visit only in main thread". Running that path from the repair worker races the backup thread on the shared model, causing use-after-free / heap corruption -- EXC_BAD_ACCESS and libmalloc "corruption of free block" aborts, always with the "cgal_fix_model" worker on the stack inside add_object_mesh -> Model::add_object / delete_object. Wrap the repair in a SaveObjectGaurd so the backup manager ignores the object for the duration of the repair; a single backup is taken when the guard is released on the main thread after the worker joins. This mirrors existing batch-edit usage of SaveObjectGaurd (Model.hpp, GUI_ObjectList). Repro: repair a multi-part / splittable object with auto-backup enabled (Preferences > Backup); crashed within a few repairs on macOS arm64. * Update FixModelByCgal.cpp --------- Co-authored-by: Ian Bassi <ian.bassi@outlook.com> --- src/slic3r/Utils/FixModelByCgal.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/slic3r/Utils/FixModelByCgal.cpp b/src/slic3r/Utils/FixModelByCgal.cpp index 8d196f7201..9d973844bb 100644 --- a/src/slic3r/Utils/FixModelByCgal.cpp +++ b/src/slic3r/Utils/FixModelByCgal.cpp @@ -12,6 +12,7 @@ #include "libslic3r/MeshBoolean.hpp" #include "libslic3r/Model.hpp" +#include "libslic3r/Format/bbs_3mf.hpp" #include "libslic3r/format.hpp" #include "libslic3r/Thread.hpp" #include "../GUI/I18N.hpp" @@ -69,6 +70,9 @@ public: // Returns false if fixing was canceled. fix_result contains error message if failed. bool fix_model_with_cgal_gui(ModelObject &model_object, int volume_idx, GUI::ProgressDialog &progress_dialog, const wxString &msg_header, std::string &fix_result, bool keep_painting) { + // Hold SaveObjectGaurd to prevent backup manager from racing concurrent mesh mutations (use-after-free). + SaveObjectGaurd backup_gaurd(model_object); + // Orca: Synchronization primitives for progress updates between worker thread and GUI. std::mutex mtx; std::condition_variable condition; From e8115658e044c1a4bc9b537f9197ec31531b1ca4 Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Wed, 2 Sep 2026 00:07:02 +0300 Subject: [PATCH 105/164] Fix overhang fan control when overhang slowdown is enabled (#15158) --- src/libslic3r/GCode.cpp | 7 +-- src/libslic3r/GCode/CoolingBuffer.cpp | 21 ++++---- src/libslic3r/GCode/FanMover.cpp | 11 ++--- src/libslic3r/GCode/GCodeProcessor.cpp | 4 +- tests/fff_print/test_cooling.cpp | 68 ++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 21 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index e947be47a1..e9cdb620e0 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -8197,9 +8197,10 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, } variable_speed = std::any_of(new_points.begin(), new_points.end(), [speed](const ProcessedPoint &p) { return fabs(double(p.speed) - speed) > 1; }); // Ignore small speed variations (under 1mm/sec) - if (!NOZZLE_CONFIG(enable_overhang_speed) && FILAMENT_CONFIG(enable_overhang_bridge_fan) && m_enable_cooling_markers) { - for (ProcessedPoint &point : new_points) - point.speed = speed; + if (FILAMENT_CONFIG(enable_overhang_bridge_fan) && m_enable_cooling_markers) { + if (!NOZZLE_CONFIG(enable_overhang_speed)) + for (ProcessedPoint &point : new_points) + point.speed = speed; variable_speed = new_points.size() > 1; } } diff --git a/src/libslic3r/GCode/CoolingBuffer.cpp b/src/libslic3r/GCode/CoolingBuffer.cpp index 3bca1f8df9..e55b89212e 100644 --- a/src/libslic3r/GCode/CoolingBuffer.cpp +++ b/src/libslic3r/GCode/CoolingBuffer.cpp @@ -1024,28 +1024,29 @@ std::string CoolingBuffer::apply_layer_cooldown( } if (need_set_fan) { + const auto set_fan = [&](int speed) { + if (m_current_fan_speed != speed) { + new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, speed, part_cooling_fan_min_pwm); + m_current_fan_speed = speed; + } + }; if (fan_speed_change_requests[CoolingLine::TYPE_OVERHANG_FAN_START]){ - new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, overhang_fan_speed, part_cooling_fan_min_pwm); - m_current_fan_speed = overhang_fan_speed; + set_fan(overhang_fan_speed); } else if (fan_speed_change_requests[CoolingLine::TYPE_INTERNAL_BRIDGE_FAN_START]){ // ORCA: Add support for separate internal bridge fan speed control - new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, internal_bridge_fan_speed, part_cooling_fan_min_pwm); - m_current_fan_speed = internal_bridge_fan_speed; + set_fan(internal_bridge_fan_speed); } else if (fan_speed_change_requests[CoolingLine::TYPE_SUPPORT_INTERFACE_FAN_START]){ - new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, supp_interface_fan_speed, part_cooling_fan_min_pwm); - m_current_fan_speed = supp_interface_fan_speed; + set_fan(supp_interface_fan_speed); } else if (fan_speed_change_requests[CoolingLine::TYPE_IRONING_FAN_START]){ - new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, ironing_fan_speed, part_cooling_fan_min_pwm); - m_current_fan_speed = ironing_fan_speed; + set_fan(ironing_fan_speed); } else if(fan_speed_change_requests[CoolingLine::TYPE_FORCE_RESUME_FAN] && m_current_fan_speed != -1){ new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, m_current_fan_speed, part_cooling_fan_min_pwm); fan_speed_change_requests[CoolingLine::TYPE_FORCE_RESUME_FAN] = false; } else { - new_gcode += GCodeWriter::set_fan(m_config.gcode_flavor, m_fan_speed, part_cooling_fan_min_pwm); - m_current_fan_speed = m_fan_speed; + set_fan(m_fan_speed); } need_set_fan = false; } diff --git a/src/libslic3r/GCode/FanMover.cpp b/src/libslic3r/GCode/FanMover.cpp index 112066bb85..9d77d1d04c 100644 --- a/src/libslic3r/GCode/FanMover.cpp +++ b/src/libslic3r/GCode/FanMover.cpp @@ -170,14 +170,13 @@ void FanMover::_put_in_middle_G1(std::list<BufferData>::iterator item_to_split, void FanMover::_print_in_middle_G1(BufferData& line_to_split, float nb_sec, const std::string &line_to_write) { if (nb_sec < line_to_split.time * 0.1) { - // doesn't really need to be split, print it after - m_process_output += line_to_split.raw + "\n"; + // Doesn't need to be split: the insertion point is at the start. m_process_output += line_to_write + (line_to_write.back() == '\n'?"":"\n"); - } else if (nb_sec > line_to_split.time * 0.9) { - // doesn't really need to be split, print it before - //will also print before if line_to_split.time == 0 - m_process_output += line_to_write + (line_to_write.back() == '\n' ? "" : "\n"); m_process_output += line_to_split.raw + "\n"; + } else if (nb_sec > line_to_split.time * 0.9) { + // Doesn't need to be split: the insertion point is at the end. + m_process_output += line_to_split.raw + "\n"; + m_process_output += line_to_write + (line_to_write.back() == '\n' ? "" : "\n"); }else if(line_to_split.raw.size() > 2 && line_to_split.raw[0] == 'G' && line_to_split.raw[1] == '1' && line_to_split.raw[2] == ' ') { float percent = nb_sec / line_to_split.time; diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 4f3f95f297..2ac8bd45a6 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -532,7 +532,7 @@ void GCodeProcessor::TimeMachine::calculate_time(GCodeProcessorResult& result, P const float height = interpolate ? lerp(prev_move.height, curr_move.height, t) : curr_move.height; // ORCA: Fix issue with flow rate changes being visualized incorrectly const float mm3_per_mm = curr_move.mm3_per_mm; - const float fan_speed = interpolate ? lerp(prev_move.fan_speed, curr_move.fan_speed, t) : curr_move.fan_speed; + const float fan_speed = curr_move.fan_speed; const float temperature = interpolate ? lerp(prev_move.temperature, curr_move.temperature, t) : curr_move.temperature; actual_speed_moves.push_back({ block.move_id, @@ -563,7 +563,7 @@ void GCodeProcessor::TimeMachine::calculate_time(GCodeProcessorResult& result, P const float height = interpolate ? lerp(prev_move.height, curr_move.height, t) : curr_move.height; // ORCA: Fix issue with flow rate changes being visualized incorrectly const float mm3_per_mm = curr_move.mm3_per_mm; - const float fan_speed = interpolate ? lerp(prev_move.fan_speed, curr_move.fan_speed, t) : curr_move.fan_speed; + const float fan_speed = curr_move.fan_speed; const float temperature = interpolate ? lerp(prev_move.temperature, curr_move.temperature, t) : curr_move.temperature; actual_speed_moves.push_back({ block.move_id, diff --git a/tests/fff_print/test_cooling.cpp b/tests/fff_print/test_cooling.cpp index ec29b5fdc9..a21ff236ce 100644 --- a/tests/fff_print/test_cooling.cpp +++ b/tests/fff_print/test_cooling.cpp @@ -2,7 +2,10 @@ #include "test_helpers.hpp" +#include <algorithm> +#include <sstream> #include <string> +#include <vector> using namespace Slic3r; using namespace Slic3r::Test; @@ -25,3 +28,68 @@ TEST_CASE("Cooling consumes its internal speed markers", "[Cooling]") const std::string gcode = slice({ cube(20) }, { { "layer_height", 0.2 } }); CHECK(gcode.find(";_EXTRUDE_SET_SPEED") == std::string::npos); } + +TEST_CASE("Overhang fan transitions do not depend on overhang speed", "[Cooling][Regression]") +{ + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "bridge_speed", 2.0 }, + { "enable_arc_fitting", false }, + { "enable_overhang_bridge_fan", true }, + { "enable_overhang_speed", false }, + { "initial_layer_print_height", 0.3 }, + { "inner_wall_speed", 30.0 }, + { "layer_height", 0.3 }, + { "outer_wall_speed", 30.0 }, + { "overhang_1_4_speed", "30" }, + { "overhang_2_4_speed", "29" }, + { "overhang_3_4_speed", "6" }, + { "overhang_4_4_speed", "3" }, + { "slow_down_for_layer_cooling", false }, + { "slowdown_for_curled_perimeters", false }, + }); + config.set_key_value("fan_max_speed", new ConfigOptionFloats{20.0}); + config.set_key_value("fan_min_speed", new ConfigOptionFloats{20.0}); + config.set_key_value("overhang_fan_speed", new ConfigOptionInts{100}); + config.set_key_value("overhang_fan_threshold", new ConfigOptionEnumsGeneric{Overhang_threshold_2_4}); + config.set_key_value("layer_change_gcode", new ConfigOptionString{";TEST_LAYER_Z=[layer_z]"}); + + const auto fan_commands = [](const std::string &gcode) { + std::vector<std::pair<std::string, std::string>> commands; + std::istringstream input(gcode); + std::string layer; + std::string line; + while (std::getline(input, line)) { + if (line.rfind(";TEST_LAYER_Z=", 0) == 0) + layer = line; + else if (!layer.empty() && (line.rfind("M106", 0) == 0 || line.rfind("M107", 0) == 0)) + commands.emplace_back(layer, line); + } + return commands; + }; + const auto feedrates = [](const std::string &gcode) { + std::vector<std::string> values; + std::istringstream input(gcode); + std::string word; + while (input >> word) + if (!word.empty() && word.front() == 'F') + values.push_back(word); + return values; + }; + + constexpr double sphere_radius = 50.0; // 100 mm diameter. + const std::string without_speed_gcode = slice({make_sphere(sphere_radius, PI / 24.0)}, config); + config.set_deserialize_strict({{"enable_overhang_speed", true}}); + const std::string with_speed_gcode = slice({make_sphere(sphere_radius, PI / 24.0)}, config); + + const auto without_speed_fan = fan_commands(without_speed_gcode); + const auto with_speed_fan = fan_commands(with_speed_gcode); + const auto without_speed_feedrates = feedrates(without_speed_gcode); + const auto with_speed_feedrates = feedrates(with_speed_gcode); + + REQUIRE_FALSE(without_speed_fan.empty()); + REQUIRE(std::any_of(without_speed_fan.begin(), without_speed_fan.end(), + [](const auto &command) { return command.second.find("S255") != std::string::npos; })); + REQUIRE(with_speed_feedrates != without_speed_feedrates); + CHECK(with_speed_fan == without_speed_fan); +} From b6ef6cf1be428b931d669dcc31b7f43ae320be85 Mon Sep 17 00:00:00 2001 From: Clifford <cliff@cigii.com> Date: Tue, 1 Sep 2026 18:29:11 -0400 Subject: [PATCH 106/164] fix: out-of-bounds write migrating per-variant values when switching printers (#15456) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> --- src/libslic3r/PrintConfig.cpp | 57 +++++++++++-- .../test_config_variant_expansion.cpp | 81 +++++++++++++++++++ 2 files changed, 131 insertions(+), 7 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 2a4eb8d7a7..17d7cee678 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -10091,6 +10091,10 @@ int DynamicPrintConfig::update_values_from_single_to_multi(DynamicPrintConfig& m for (int index = 0; index < variant_count; index++) { + //variant_count is the variant column width, src_opt the value array; + //they disagree when the source was authored at a different width + if (index >= (int)src_opt->values.size()) + break; if (opt->values[index] > src_opt->values[index]) opt->values[index] = src_opt->values[index]; } @@ -10108,6 +10112,8 @@ int DynamicPrintConfig::update_values_from_single_to_multi(DynamicPrintConfig& m for (int index = 0; index < variant_count; index++) { + if (index >= (int)src_opt->values.size()) + break; if (opt->values[index].value > src_opt->values[index].value) opt->values[index] = src_opt->values[index]; } @@ -10302,6 +10308,10 @@ int DynamicPrintConfig::update_values_from_multi_to_multi(DynamicPrintConfig& ne for(auto idx : variant_indices){ assert(idx < old_count); + //the counts come from the variant columns, the arrays from the options; + //they disagree when a config was authored at a different variant width + if (idx >= old_count || new_variant_index >= (int)opt->values.size()) + continue; if (old_values[idx] < opt->values[new_variant_index]) opt->values[new_variant_index] = old_values[idx]; } @@ -10332,6 +10342,10 @@ int DynamicPrintConfig::update_values_from_multi_to_multi(DynamicPrintConfig& ne for(auto idx : variant_indices){ assert(idx < old_count); + //the counts come from the variant columns, the arrays from the options; + //they disagree when a config was authored at a different variant width + if (idx >= old_count || new_variant_index >= (int)opt->values.size()) + continue; if (old_values[idx] < opt->values[new_variant_index]) opt->values[new_variant_index] = old_values[idx]; } @@ -10362,6 +10376,8 @@ int DynamicPrintConfig::update_values_from_multi_to_multi(DynamicPrintConfig& ne for(auto idx : variant_indices){ assert(idx < old_count); + if (idx >= old_count || new_variant_index >= (int)opt->values.size()) + continue; if (old_values[idx]) //enabled opt->values[new_variant_index] = old_values[idx]; } @@ -10402,6 +10418,15 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st same_variant_indices.emplace_back(indices); } + //dst_values below is the destination PRINT preset's per-variant row, sized to its own + //print_extruder_variant; dst_extruder_variants is the PRINTER's list. They disagree until + //the print preset is re-selected, so size the row to the variant count before indexing it. + const size_t dst_variant_count = dst_extruder_variants.size(); + if (dst_variant_count == 0) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(", Line %1%: empty destination variant list")%__LINE__; + return -1; + } + t_config_option_keys keys = this->keys(); for(auto& key : keys){ if(key_sets.find(key) == key_sets.end()) @@ -10417,7 +10442,13 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st { ConfigOptionFloatsNullable* opt = this->option<ConfigOptionFloatsNullable>(key); auto src_values = opt->values; - auto dst_values = dst_config.option<ConfigOptionFloatsNullable>(key) ->values; + const auto* dst_opt = dst_config.option<ConfigOptionFloatsNullable>(key); + if(!dst_opt){ + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(", Line %1%: %2% missing from destination config")%__LINE__%key; + break; + } + auto dst_values = dst_opt->values; + dst_values.resize(dst_variant_count, ConfigOptionFloatsNullable::nil_value()); for(size_t dst_idx =0; dst_idx < same_variant_indices.size(); ++dst_idx){ auto& indices = same_variant_indices[dst_idx]; if(indices.empty()) @@ -10425,7 +10456,7 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st bool has_value = false; double target_value = std::numeric_limits<double>::max(); for(auto idx : indices){ - if(opt && idx < opt->values.size() && !opt->is_nil(idx)){ + if(idx < (int)opt->values.size() && !opt->is_nil(idx)){ has_value = true; target_value = std::min(target_value, src_values[idx]); } @@ -10441,7 +10472,13 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st { ConfigOptionFloatsOrPercentsNullable* opt = this->option<ConfigOptionFloatsOrPercentsNullable>(key); auto src_values = opt->values; - auto dst_values = dst_config.option<ConfigOptionFloatsOrPercentsNullable>(key) ->values; + const auto* dst_opt = dst_config.option<ConfigOptionFloatsOrPercentsNullable>(key); + if(!dst_opt){ + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(", Line %1%: %2% missing from destination config")%__LINE__%key; + break; + } + auto dst_values = dst_opt->values; + dst_values.resize(dst_variant_count, ConfigOptionFloatsOrPercentsNullable::nil_value()); for(size_t dst_idx =0; dst_idx < same_variant_indices.size(); ++dst_idx){ auto& indices = same_variant_indices[dst_idx]; if(indices.empty()) @@ -10449,7 +10486,7 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st bool has_value = false; FloatOrPercent target_value{9999.f, true}; for(auto idx : indices){ - if(opt && !opt->is_nil(idx)){ + if(idx < (int)opt->values.size() && !opt->is_nil(idx)){ has_value = true; target_value = src_values[idx].value < target_value.value ? src_values[idx] : target_value; } @@ -10465,15 +10502,21 @@ int DynamicPrintConfig::update_values_from_multi_to_multi_2(const std::vector<st { ConfigOptionBoolsNullable* opt = this->option<ConfigOptionBoolsNullable>(key); auto src_values = opt->values; - auto dst_values = dst_config.option<ConfigOptionBoolsNullable>(key) ->values; + const auto* dst_opt = dst_config.option<ConfigOptionBoolsNullable>(key); + if(!dst_opt){ + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(", Line %1%: %2% missing from destination config")%__LINE__%key; + break; + } + auto dst_values = dst_opt->values; + dst_values.resize(dst_variant_count, ConfigOptionBoolsNullable::nil_value()); for(size_t dst_idx =0; dst_idx < same_variant_indices.size(); ++dst_idx){ auto indices = same_variant_indices[dst_idx]; if(indices.empty()) continue; bool has_value = false; - bool target_value; + bool target_value = false; for(auto idx : indices){ - if(opt && !opt->is_nil(idx)){ + if(idx < (int)opt->values.size() && !opt->is_nil(idx)){ has_value = true; target_value = src_values[idx]; break; diff --git a/tests/libslic3r/test_config_variant_expansion.cpp b/tests/libslic3r/test_config_variant_expansion.cpp index dd7de2af44..28901702cc 100644 --- a/tests/libslic3r/test_config_variant_expansion.cpp +++ b/tests/libslic3r/test_config_variant_expansion.cpp @@ -479,3 +479,84 @@ TEST_CASE("update_values_to_printer_extruders_for_multiple_filaments resolves pe REQUIRE(config.option<ConfigOptionInts>("filament_self_index")->values == std::vector<int>({1, 2})); } } + +// update_values_from_multi_to_multi_2 walks the DESTINATION PRINTER's variant list while writing +// into a row taken from the destination PRINT preset, whose arrays are sized to its own +// print_extruder_variant. Those two widths disagree until the print preset is re-selected for the +// new printer -- Tab::load_current_preset() runs this migration first -- so a project authored on +// a single-variant printer, opened and switched to a wider one, wrote past the end of the row. +TEST_CASE("update_values_from_multi_to_multi_2 sizes the destination row to the variant count", + "[Config][VariantExpansion]") +{ + const std::vector<std::string> src_variants{"Direct Drive Standard"}; + const std::vector<std::string> dst_variants{"Direct Drive Standard", "Direct Drive High Flow", + "Direct Drive Standard", "Direct Drive High Flow"}; + const std::set<std::string> keys{"outer_wall_speed"}; + + // The per-object override as authored on the single-variant printer. + const auto object_override = [] { + DynamicPrintConfig c; + c.option<ConfigOptionFloatsNullable>("outer_wall_speed", true)->values = {42.}; + return c; + }; + + SECTION("a row narrower than the variant list is grown, not overrun") { + DynamicPrintConfig object_config = object_override(); + DynamicPrintConfig dst; + dst.option<ConfigOptionFloatsNullable>("outer_wall_speed", true)->values = {200.}; + + REQUIRE(object_config.update_values_from_multi_to_multi_2(src_variants, dst_variants, dst, keys) == 0); + + const auto& out = object_config.option<ConfigOptionFloatsNullable>("outer_wall_speed")->values; + REQUIRE(out.size() == dst_variants.size()); + // Both "Direct Drive Standard" columns match the source variant, so they take the override. + CHECK(out[0] == Catch::Approx(42.)); + CHECK(out[2] == Catch::Approx(42.)); + // The High Flow columns have no matching source variant: nil, so the destination keeps + // tracking the print preset rather than being pinned to another variant's value. + CHECK(std::isnan(out[1])); + CHECK(std::isnan(out[3])); + } + + // The regression guard: where the row already matches the variant list -- every case that was + // not corrupting the heap -- the resize is a no-op and the output is unchanged. + SECTION("a correctly sized row is untouched") { + DynamicPrintConfig object_config = object_override(); + DynamicPrintConfig dst; + dst.option<ConfigOptionFloatsNullable>("outer_wall_speed", true)->values = {200., 500., 210., 510.}; + + REQUIRE(object_config.update_values_from_multi_to_multi_2(src_variants, dst_variants, dst, keys) == 0); + + const auto& out = object_config.option<ConfigOptionFloatsNullable>("outer_wall_speed")->values; + REQUIRE(out.size() == 4); + CHECK(out[0] == Catch::Approx(42.)); // matched -> override + CHECK(out[1] == Catch::Approx(500.)); // unmatched -> preset value preserved + CHECK(out[2] == Catch::Approx(42.)); + CHECK(out[3] == Catch::Approx(510.)); + } + + // is_nil(idx) indexes values[idx] with no bounds check, so a source shorter than its own + // variant list read out of range before the guard was added. + SECTION("a source shorter than its variant list is read in range") { + DynamicPrintConfig object_config = object_override(); // one value... + DynamicPrintConfig dst; + dst.option<ConfigOptionFloatsNullable>("outer_wall_speed", true)->values = {200., 500.}; + + REQUIRE(object_config.update_values_from_multi_to_multi_2( + {"Direct Drive Standard", "Direct Drive Standard"}, // ...but two source variants + {"Direct Drive Standard", "Direct Drive High Flow"}, dst, keys) == 0); + + const auto& out = object_config.option<ConfigOptionFloatsNullable>("outer_wall_speed")->values; + REQUIRE(out.size() == 2); + CHECK(out[0] == Catch::Approx(42.)); + CHECK(out[1] == Catch::Approx(500.)); + } + + SECTION("an empty destination variant list is refused") { + DynamicPrintConfig object_config = object_override(); + DynamicPrintConfig dst; + dst.option<ConfigOptionFloatsNullable>("outer_wall_speed", true)->values = {200.}; + + CHECK(object_config.update_values_from_multi_to_multi_2(src_variants, {}, dst, keys) == -1); + } +} From e523acc164ecacb9e25d080cd72bbdf9f58abfe8 Mon Sep 17 00:00:00 2001 From: SoftFever <103989404+SoftFever@users.noreply.github.com> Date: Wed, 2 Sep 2026 15:22:55 +0800 Subject: [PATCH 107/164] Add script to run full profile checks locally (#15496) * Run the CI profile checks locally --- .gitignore | 1 + scripts/check_profile.bat | 6 + scripts/check_profile.ps1 | 564 ++++++++++++++++++++++++++++++++++++++ scripts/check_profile.sh | 527 +++++++++++++++++++++++++++++++++++ 4 files changed, 1098 insertions(+) create mode 100644 scripts/check_profile.bat create mode 100644 scripts/check_profile.ps1 create mode 100755 scripts/check_profile.sh diff --git a/.gitignore b/.gitignore index e36d0dfa49..d994d922c1 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,4 @@ internal_docs/ __pycache__/ *.pyc *.opc +/.test/ diff --git a/scripts/check_profile.bat b/scripts/check_profile.bat new file mode 100644 index 0000000000..231fa721d4 --- /dev/null +++ b/scripts/check_profile.bat @@ -0,0 +1,6 @@ +@echo off +REM Runs check_profile.ps1, the Windows twin of check_profile.sh, from cmd. +REM -ExecutionPolicy Bypass is needed because a Windows client defaults to Restricted, +REM which refuses to run a checked-out .ps1 at all. +powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0check_profile.ps1" %* +exit /b %ERRORLEVEL% diff --git a/scripts/check_profile.ps1 b/scripts/check_profile.ps1 new file mode 100644 index 0000000000..5c5dcb20c8 --- /dev/null +++ b/scripts/check_profile.ps1 @@ -0,0 +1,564 @@ +<# +.SYNOPSIS + Local twin of the "Check profiles" CI job (.github/workflows/check_profiles.yml), for Windows. + +.DESCRIPTION + The Windows counterpart of scripts/check_profile.sh, and kept deliberately close to it. + + Runs the same five checks, in the same order, with the same validator flags, and with the + same semantics: every check runs even after an earlier one fails (the workflow's + continue-on-error), then the script exits non-zero once at the end. + + extra_json_check scripts/orca_extra_profile_check.py + validate_system validator -p <profiles> -l <level> + validate_slice validator -p <profiles> -s -l <level> + validate_filament_subtypes validator -p <profiles> -l <level> -f + validate_custom validator against every released custom-preset fixture + + Everything that has to be downloaded - the profile validator and the custom-preset fixture + archives - lands under <repo>\.test\check_profiles and is reused on the next run. That + directory also holds one log per check plus a copy of the comment CI would post on the PR. + + resources\profiles\user, which the validator creates as its data dir but a CI checkout never + has, is moved aside for the duration of the run and restored on exit. Only one run per work + dir at a time. + + x64 and ARM64 hosts are both supported. A locally built validator is chosen by the machine + type in its PE header rather than by the name of its build tree, so build\ (x64) and + build-arm64\ side by side resolve correctly; the published nightly is x64 only and runs + under emulation on ARM64. + +.PARAMETER ProfilesDir + Profile tree to validate (default: resources\profiles). extra_json_check always looks at the + tree next to the script, so this only redirects the validator checks. + +.PARAMETER Validator + OrcaSlicer_profile_validator.exe to use; also $env:ORCA_PROFILE_VALIDATOR. Default: the local + build*\ Release build (then RelWithDebInfo, MinSizeRel, Debug) for this architecture, else + the nightly release build is downloaded. + +.PARAMETER Download + Ignore local builds and use the downloaded nightly validator. + +.PARAMETER Refresh + Re-download the validator and fixtures instead of using the cache. + +.PARAMETER WorkDir + Downloads, logs and fixture trees (default: .test\check_profiles). Point it somewhere short, + such as D:\t, if a fixture tree trips Windows' 260-character path limit. + +.PARAMETER LogLevel + Validator log level (default: 2, as in CI). + +.PARAMETER Checks + Checks to run, by name (default: all of them, in the order listed above). + +.EXAMPLE + scripts\check_profile.bat + +.EXAMPLE + powershell -ExecutionPolicy Bypass -File scripts\check_profile.ps1 validate_system validate_slice +#> + +# PositionalBinding is off so that the check names are the only positional arguments; left on, +# a bare "validate_system" would bind to whichever named parameter came next in this block. +[CmdletBinding(PositionalBinding = $false)] +param( + [Alias('p')] [string] $ProfilesDir, + [string] $Validator, + [string] $WorkDir, + [Alias('l')] [int] $LogLevel = 2, + [switch] $Download, + [switch] $Refresh, + [Alias('h')] [switch] $Help, + [Parameter(Position = 0, ValueFromRemainingArguments = $true)] [string[]] $Checks +) + +$ErrorActionPreference = 'Stop' + +# Windows PowerShell 5.1 still negotiates TLS 1.0/1.1, which github.com refuses. +[Net.ServicePointManager]::SecurityProtocol = + [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 + +$ValidatorReleaseUrl = 'https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds' +$FixtureReleaseUrl = 'https://github.com/OrcaSlicer/OrcaSlicer-profile-validator/releases/download/fixture-archive' + +$RepoRoot = Split-Path -Parent $PSScriptRoot + +# PROCESSOR_ARCHITECTURE reports the architecture of the *shell*, so a 32-bit PowerShell on a +# 64-bit OS says x86; ARCHITEW6432 is the machine's own in that case. +$HostArch = if ($env:PROCESSOR_ARCHITEW6432) { $env:PROCESSOR_ARCHITEW6432 } else { $env:PROCESSOR_ARCHITECTURE } +$HostArch = switch ($HostArch) { + 'ARM64' { 'arm64' } + 'AMD64' { 'x64' } + default { 'x86' } +} + +$AllChecks = @('extra_json_check', 'validate_system', 'validate_slice', 'validate_filament_subtypes', 'validate_custom') + +$script:LogWriter = $null +$script:Python = '' + +# ---------------------------------------------------------------------------- helpers + +function Die([string] $Message) { + Write-Host "check_profile.ps1: $Message" -ForegroundColor Red + exit 2 +} + +# UTF-8 without a BOM, so a log reads the same here as the artifact CI uploads. +function New-LogWriter([string] $Path) { + New-Object IO.StreamWriter($Path, $false, (New-Object Text.UTF8Encoding($false))) +} + +# Output of the check being run: shown, and kept in that check's log. +function Write-CheckLog([string] $Text) { + Write-Host $Text + if ($script:LogWriter) { $script:LogWriter.WriteLine($Text) } +} + +# Runs a program and returns its exit code, streaming stdout and stderr into the current check's +# log. -OutFile sends that output to a file of its own instead, silently. +function Invoke-Tool { + param([string] $Exe, [string[]] $Arguments, [string] $OutFile) + + # Under 'Stop', 2>&1 turns every stderr line of a native command into a terminating error. + # Assigning the preference here scopes it to this function, so it undoes itself on return. + $ErrorActionPreference = 'Continue' + + $writer = if ($OutFile) { New-LogWriter $OutFile } else { $null } + try { + & $Exe @Arguments 2>&1 | ForEach-Object { + if ($writer) { $writer.WriteLine("$_") } else { Write-CheckLog "$_" } + } + return $LASTEXITCODE + } catch { + if ($writer) { $writer.WriteLine("$_") } else { Write-CheckLog "$_" } + return 1 + } finally { + if ($writer) { $writer.Dispose() } + } +} + +# The first $Limit characters of a log, as CI truncates them for the PR comment. +function Get-LogHead([string] $Path, [int] $Limit) { + $text = if (Test-Path -LiteralPath $Path) { [IO.File]::ReadAllText($Path) } else { '' } + if (-not $text) { return 'No output captured' } + if ($text.Length -gt $Limit) { return $text.Substring(0, $Limit) } + return $text +} + +# ---------------------------------------------------------------------------- arguments + +if ($Help) { Get-Help $PSCommandPath -Detailed; exit 0 } + +foreach ($name in $Checks) { + if ($name -like '-*') { Die "unknown option '$name' (try -Help)" } + if ($AllChecks -notcontains $name) { Die "unknown check '$name' (try -Help)" } +} +if (-not $Checks) { $Checks = $AllChecks } + +if (-not $ProfilesDir) { $ProfilesDir = Join-Path $RepoRoot 'resources\profiles' } +if (-not (Test-Path -LiteralPath $ProfilesDir -PathType Container)) { Die "profile directory not found: $ProfilesDir" } +$ProfilesDir = (Resolve-Path -LiteralPath $ProfilesDir).Path + +if (-not $WorkDir) { $WorkDir = Join-Path $RepoRoot '.test\check_profiles' } +$LogDir = Join-Path $WorkDir 'logs' +try { New-Item -ItemType Directory -Force -Path $LogDir | Out-Null } catch { Die "cannot create ${LogDir}: $_" } +$WorkDir = (Resolve-Path -LiteralPath $WorkDir).Path +$LogDir = Join-Path $WorkDir 'logs' + +if (-not $Validator) { $Validator = $env:ORCA_PROFILE_VALIDATOR } + +# ------------------------------------------------------------------- clean profile tree + +# The validator points its data dir at the profile tree, so it creates - and, with -g, fills - +# <profiles>\user. A CI checkout never has that directory, and anything left in it from an +# earlier local run would be loaded as user presets and validated too. Move it aside for the +# duration of the run so what gets checked is what CI checks. +$script:StashedUserDir = '' + +function Push-UserPresets { + $user = Join-Path $ProfilesDir 'user' + if (-not (Test-Path -LiteralPath $user -PathType Container)) { return } + $script:StashedUserDir = Join-Path $WorkDir "user-presets-$PID" + Remove-Item -LiteralPath $script:StashedUserDir -Recurse -Force -ErrorAction SilentlyContinue + try { Move-Item -LiteralPath $user -Destination $script:StashedUserDir } + catch { $script:StashedUserDir = ''; Die "cannot move $user aside: $_" } + Write-Host "moved $user aside for the run (restored on exit)" +} + +function Pop-UserPresets { + # The validator leaves an empty user\default\{filament,machine,process} skeleton behind. + # Prune it directory by directory, never wholesale: one that holds a real file survives and + # is reported instead of being deleted. Runs even when nothing was stashed, so a tree that + # had no user\ before the run does not gain one. + $user = Join-Path $ProfilesDir 'user' + Remove-EmptyDirs $user + if (-not $script:StashedUserDir) { return } + if (Test-Path -LiteralPath $user) { + Write-Host "$user is not empty; your presets stay in $($script:StashedUserDir)" + } else { + Move-Item -LiteralPath $script:StashedUserDir -Destination $user + } + $script:StashedUserDir = '' +} + +function Remove-EmptyDirs([string] $Path) { + if (-not (Test-Path -LiteralPath $Path -PathType Container)) { return } + Get-ChildItem -LiteralPath $Path -Recurse -Directory -Force | + Sort-Object { $_.FullName.Length } -Descending | + ForEach-Object { + if (-not (Get-ChildItem -LiteralPath $_.FullName -Force)) { + Remove-Item -LiteralPath $_.FullName -Force + } + } + if (-not (Get-ChildItem -LiteralPath $Path -Force)) { Remove-Item -LiteralPath $Path -Force } +} + +# ---------------------------------------------------------------------------- downloads + +# Cached; -Refresh, or -Force, pulls a new copy. Release assets never change, so caching them is +# safe; the fixture manifest is the index that grows with every release, and CI re-reads it on +# every run. +function Save-Asset { + param([string] $Url, [string] $Dest, [switch] $Force) + + if (-not $Refresh -and -not $Force -and (Test-Path -LiteralPath $Dest -PathType Leaf) -and + (Get-Item -LiteralPath $Dest).Length -gt 0) { + return + } + New-Item -ItemType Directory -Force -Path (Split-Path -Parent $Dest) | Out-Null + Write-Host "downloading $(Split-Path -Leaf $Dest) ..." + + # Invoke-WebRequest spends most of a large download repainting its progress bar. + $ProgressPreference = 'SilentlyContinue' + $part = "$Dest.part" + for ($attempt = 1; ; $attempt++) { + try { + Invoke-WebRequest -Uri $Url -OutFile $part -UseBasicParsing + break + } catch { + if ($attempt -ge 3) { + Remove-Item -LiteralPath $part -Force -ErrorAction SilentlyContinue + throw "download failed: $Url" + } + } + } + Move-Item -LiteralPath $part -Destination $Dest -Force +} + +function Get-Sha256([string] $Path) { + return (Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash +} + +# Directories a built validator can sit in, best first: build_win.bat names its trees build, +# build-dbginfo, build-minsize and build-dbg, each optionally -clang and -arm64 suffixed, and +# CMake puts the binary in src\<config>. Each pattern is matched both directly under a build root +# and one level down (build\x64), for trees laid out the way the macOS ones are. +function Get-ValidatorSearchDirs { + foreach ($config in 'Release', 'RelWithDebInfo', 'MinSizeRel', 'Debug') { + Join-Path $RepoRoot "build*\src\$config" + Join-Path $RepoRoot "build*\*\src\$config" + } + Join-Path $RepoRoot 'build*\src' + Join-Path $RepoRoot 'build*\*\src' +} + +# The machine type from the PE header, which is what actually decides whether an .exe can run +# here - the name of the build tree only says what it was meant to be. +function Get-ExeArch([string] $Path) { + try { + $stream = [IO.File]::OpenRead($Path) + try { + $reader = New-Object IO.BinaryReader($stream) + $stream.Position = 0x3C # e_lfanew: offset of the PE header + $stream.Position = $reader.ReadInt32() + if ($reader.ReadUInt32() -ne 0x00004550) { return '' } # "PE\0\0" + switch ($reader.ReadUInt16()) { + 0x8664 { 'x64' } + 0xAA64 { 'arm64' } + 0x014C { 'x86' } + default { '' } + } + } finally { $stream.Dispose() } + } catch { '' } +} + +# First locally built OrcaSlicer_profile_validator.exe, in the order above. An x86 build, and on +# ARM64 an x64 one, is kept only as a fallback: it runs, but emulated. An ARM64 build on an x64 +# host does not run at all and is never offered. +function Find-LocalValidator { + $emulated = '' + foreach ($pattern in (Get-ValidatorSearchDirs)) { + foreach ($dir in @(Resolve-Path -Path $pattern -ErrorAction SilentlyContinue)) { + $candidate = Join-Path $dir.Path 'OrcaSlicer_profile_validator.exe' + if (-not (Test-Path -LiteralPath $candidate -PathType Leaf)) { continue } + $arch = Get-ExeArch $candidate + if (-not $arch -or $arch -eq $HostArch) { return $candidate } + if (-not $emulated -and ($arch -eq 'x86' -or $HostArch -eq 'arm64')) { $emulated = $candidate } + } + } + if ($emulated) { Write-Host "no $HostArch build found, falling back to $emulated (emulated)" } + return $emulated +} + +# The nightly release build, same one CI uses. Windows ships the bare .exe, x64 only. +function Save-NightlyValidator { + if ($HostArch -ne 'x64') { + Write-Host "the nightly Windows validator is x64; it runs here under emulation" + } + $exe = Join-Path $WorkDir 'validator\OrcaSlicer_profile_validator.exe' + Save-Asset -Url "$ValidatorReleaseUrl/OrcaSlicer_profile_validator_Windows_nightly.exe" -Dest $exe + return $exe +} + +function Resolve-Validator { + if ($Validator) { + if (-not (Test-Path -LiteralPath $Validator -PathType Leaf)) { Die "validator not found: $Validator" } + return (Resolve-Path -LiteralPath $Validator).Path + } + if (-not $Download) { + $local = Find-LocalValidator + if ($local) { + Write-Host "using locally built validator: $local" + return $local + } + } + try { $downloaded = Save-NightlyValidator } catch { Die "could not obtain a profile validator: $_" } + Write-Host "using downloaded validator: $downloaded" + return $downloaded +} + +# python3 is rarely on PATH on Windows: the py launcher is the reliable way in, and a bare +# `python` may be the Store stub, which prints an advert and exits non-zero. Probe each for the +# interpreter it actually resolves to, and use that. +function Resolve-Python { + $ErrorActionPreference = 'Continue' + if ($script:Python) { return $script:Python } + foreach ($candidate in 'py -3', 'python', 'python3') { + $words = $candidate -split ' ' + $exe = Get-Command $words[0] -CommandType Application -ErrorAction SilentlyContinue | Select-Object -First 1 + if (-not $exe) { continue } + $leading = @($words | Select-Object -Skip 1) + $found = & $exe.Source @leading -c 'import sys; print(sys.executable)' 2>$null + if ($LASTEXITCODE -eq 0 -and $found) { + $script:Python = "$found" + return $script:Python + } + } + Die 'no Python 3 found; install it (or the py launcher) and re-run' +} + +# ---------------------------------------------------------------------------- checks + +$CheckBodies = @{ + + extra_json_check = { + Invoke-Tool -Exe (Resolve-Python) -Arguments @((Join-Path $RepoRoot 'scripts\orca_extra_profile_check.py')) + } + + validate_system = { + Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-l', "$LogLevel") + } + + # Slices a two-colour cube through every printer so all custom g-code (incl. + # change_filament_gcode) is expanded - catches undefined-placeholder / invalid-flow bugs the + # static checks cannot see. + validate_slice = { + Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-s', '-l', "$LogLevel") + } + + validate_filament_subtypes = { + Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-l', "$LogLevel", '-f') + } + + # Every released fixture is a snapshot of user presets saved by that OrcaSlicer version; each + # is unpacked over the current system profiles and validated, so a profile change that would + # break an existing user's presets fails here. + validate_custom = { + $fixturesDir = Join-Path $WorkDir 'profile-fixtures' + $outputDir = Join-Path $WorkDir 'custom-preset-validation' + New-Item -ItemType Directory -Force -Path $fixturesDir, $outputDir | Out-Null + + $manifestPath = Join-Path $fixturesDir 'manifest.json' + Save-Asset -Url "$FixtureReleaseUrl/manifest.json" -Dest $manifestPath -Force + + $manifest = Get-Content -LiteralPath $manifestPath -Raw | ConvertFrom-Json + $entries = if ($manifest -is [array]) { $manifest } else { $manifest.fixtures } + $fixtures = @($entries | Where-Object { $_.version -and $_.asset }) + if (-not $fixtures) { + Write-CheckLog "No custom preset fixtures found in $FixtureReleaseUrl/manifest.json" + return 1 + } + + $status = 0 + $failedLogs = @() + $summary = @('## Custom Preset Fixture Validation', '', '| Version | Status | Log |', '| --- | --- | --- |') + + foreach ($fixture in $fixtures) { + $version = $fixture.version + $asset = $fixture.asset + $fixtureZip = Join-Path $fixturesDir $asset + $profileTree = Join-Path $outputDir "profiles-$version" + $logPath = Join-Path $outputDir "$version.log" + $assetUrl = "$FixtureReleaseUrl/$([uri]::EscapeDataString($asset))" + + Save-Asset -Url $assetUrl -Dest $fixtureZip + + $expected = $fixture.asset_sha256 + if ($expected -and $expected -ne '<sha256>' -and (Get-Sha256 $fixtureZip) -ne $expected.ToUpperInvariant()) { + # A cached zip can be stale or truncated; the release asset itself is immutable, + # so deleting it forces Save-Asset to pull a fresh copy. + Write-Host "checksum mismatch for $asset, re-downloading" + Remove-Item -LiteralPath $fixtureZip -Force + Save-Asset -Url $assetUrl -Dest $fixtureZip + $actual = Get-Sha256 $fixtureZip + if ($actual -ne $expected.ToUpperInvariant()) { + Write-CheckLog "${asset}: expected $expected, got $actual" + return 1 + } + } + + Write-Host "validating custom presets from $version ..." + Remove-Item -LiteralPath $profileTree -Recurse -Force -ErrorAction SilentlyContinue + New-Item -ItemType Directory -Force -Path $profileTree | Out-Null + # Piped rather than copied through <profiles>\*, so a vendor directory whose name + # holds a wildcard character is still copied by its literal path. + Get-ChildItem -LiteralPath $ProfilesDir -Force | Copy-Item -Destination $profileTree -Recurse -Force + Remove-Item -LiteralPath (Join-Path $profileTree 'user') -Recurse -Force -ErrorAction SilentlyContinue + Expand-Archive -LiteralPath $fixtureZip -DestinationPath $profileTree -Force + + $result = Invoke-Tool -Exe $Validator -Arguments @('-p', $profileTree, '-l', "$LogLevel") -OutFile $logPath + if ($result -eq 0) { + $summary += "| $version | PASS | $version.log |" + # Only failures are worth keeping; each tree is a full copy of resources\profiles. + Remove-Item -LiteralPath $profileTree -Recurse -Force + } else { + $summary += "| $version | FAIL | $version.log |" + $failedLogs += $logPath + $status = 1 + } + } + + [IO.File]::WriteAllLines((Join-Path $outputDir 'summary.md'), [string[]] $summary) + $summary | ForEach-Object { Write-CheckLog $_ } + + if ($failedLogs) { + Write-CheckLog '' + Write-CheckLog '## Failed Fixture Logs' + foreach ($logPath in $failedLogs) { + Write-CheckLog '' + Write-CheckLog "### $([IO.Path]::GetFileNameWithoutExtension($logPath))" + Write-CheckLog '```' + Write-CheckLog (Get-LogHead $logPath 12000) + Write-CheckLog '```' + } + } + return $status + } +} + +# Heading CI puts above this check's log in the PR comment. +$CommentHeadings = @{ + extra_json_check = '### Extra JSON Check Failed' + validate_system = '### System Profile Validation Failed' + validate_slice = '### Slice Validation Failed (custom g-code expansion)' + validate_filament_subtypes = '### Filament Subtype Validation Failed' + validate_custom = '### Custom Preset Validation Failed' +} + +# ---------------------------------------------------------------------------- run + +function Invoke-Check([string] $Name) { + $log = Join-Path $LogDir "$Name.log" + Write-Host '' + Write-Host "==> $Name" -ForegroundColor Cyan + + $script:LogWriter = New-LogWriter $log + try { + $result = & $CheckBodies[$Name] | Select-Object -Last 1 + } catch { + Write-CheckLog "$_" + $result = 1 + } finally { + $script:LogWriter.Dispose() + $script:LogWriter = $null + } + + if ([int] $result -eq 0) { + Write-Host " $Name passed" -ForegroundColor Green + return $true + } + Write-Host " $Name failed (exit $result)" -ForegroundColor Red + return $false +} + +# The fixture trees under the work dir are shared scratch space keyed by fixture version, so a +# second run would delete a tree the first one is validating. +$LockDir = Join-Path $WorkDir '.lock' +try { New-Item -ItemType Directory -Path $LockDir -ErrorAction Stop | Out-Null } +catch { Die "another run is using $WorkDir (pass -WorkDir, or remove $LockDir if no run is active)" } + +# The validator writes UTF-8, but PowerShell decodes a child process's output using the console +# code page, which mangles the accented and CJK preset names in its messages. +$PreviousOutputEncoding = [Console]::OutputEncoding + +try { + [Console]::OutputEncoding = New-Object Text.UTF8Encoding($false) + Push-UserPresets + + if ($Checks | Where-Object { $_ -ne 'extra_json_check' }) { $Validator = Resolve-Validator } + + $results = [ordered] @{} + foreach ($name in $AllChecks) { + if ($Checks -contains $name) { $results[$name] = Invoke-Check $name } + } + + Write-Host '' + Write-Host '==> summary' -ForegroundColor Cyan + foreach ($name in $results.Keys) { + if ($results[$name]) { + Write-Host " PASS $name" -ForegroundColor Green + } else { + Write-Host " FAIL $name ($(Join-Path $LogDir "$name.log"))" -ForegroundColor Red + } + } + + $failed = @($results.Keys | Where-Object { -not $results[$_] }) + if (-not $failed) { + Remove-Item -LiteralPath (Join-Path $WorkDir 'pr_comment.md') -Force -ErrorAction SilentlyContinue + Write-Host '' + Write-Host "All checks passed. Logs: $LogDir" -ForegroundColor Green + exit 0 + } + + # The comment check_profiles_comment.yml would post when something fails. + $comment = @( + # Marker matched by check_profiles_comment.yml to delete prior comments. + '<!-- profile-validation-comment -->' + '## :x: Profile Validation Errors' + '' + foreach ($name in $failed) { + $CommentHeadings[$name] + '' + '```' + Get-LogHead (Join-Path $LogDir "$name.log") 30000 + '```' + '' + } + '---' + '*Please fix the above errors and push a new commit.*' + ) + $commentPath = Join-Path $WorkDir 'pr_comment.md' + [IO.File]::WriteAllLines($commentPath, [string[]] $comment) + + Write-Host '' + Write-Host "One or more profile checks failed. Logs: $LogDir" -ForegroundColor Red + Write-Host "The comment CI would post: $commentPath" + exit 1 +} finally { + Pop-UserPresets + Remove-Item -LiteralPath $LockDir -Force -ErrorAction SilentlyContinue + [Console]::OutputEncoding = $PreviousOutputEncoding +} diff --git a/scripts/check_profile.sh b/scripts/check_profile.sh new file mode 100755 index 0000000000..9b841d0612 --- /dev/null +++ b/scripts/check_profile.sh @@ -0,0 +1,527 @@ +#!/usr/bin/env bash +# +# Local twin of the "Check profiles" CI job (.github/workflows/check_profiles.yml). +# +# Runs the same five checks, in the same order, with the same validator flags, and with the +# same semantics: every check runs even after an earlier one fails (the workflow's +# continue-on-error), then the script exits non-zero once at the end. +# +# Everything that has to be downloaded - the profile validator and the custom-preset fixture +# archives - lands under <repo>/.test/check_profiles/ and is reused on the next run. That +# directory also holds one log per check plus a copy of the comment CI would post on the PR. +# +# resources/profiles/user, which the validator creates as its data dir but a CI checkout never +# has, is moved aside for the duration of the run and restored on exit. Only one run per work +# dir at a time. +# +# Usage: scripts/check_profile.sh [OPTION]... [CHECK]... + +# The check_* functions run through run_check, which dispatches on the check name, so +# ShellCheck cannot see that they (and what they call) are used. +# shellcheck disable=SC2329 + +set -uo pipefail + +VALIDATOR_RELEASE_URL="https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds" +FIXTURE_RELEASE_URL="https://github.com/OrcaSlicer/OrcaSlicer-profile-validator/releases/download/fixture-archive" + +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)" + +HOST_ARCH="$(uname -m)" + +PROFILES_DIR="${REPO_ROOT}/resources/profiles" +WORK_DIR="${REPO_ROOT}/.test/check_profiles" +VALIDATOR="${ORCA_PROFILE_VALIDATOR:-}" +LOG_LEVEL=2 +PREFER_DOWNLOAD=0 +REFRESH=0 + +ALL_CHECKS=(extra_json_check validate_system validate_slice validate_filament_subtypes validate_custom) +CHECKS=() +# "<check><TAB>pass|fail" per check that ran; a string rather than an array because bash 3.2 +# (still the /bin/bash on macOS) cannot expand an empty array under `set -u`. +RESULTS="" + +usage() { + cat <<EOF +Run the profile checks from .github/workflows/check_profiles.yml locally. + +Usage: scripts/check_profile.sh [OPTION]... [CHECK]... + +Checks (default: all, in this order): + extra_json_check scripts/orca_extra_profile_check.py + validate_system validator -p <profiles> -l <level> + validate_slice validator -p <profiles> -s -l <level> + validate_filament_subtypes validator -p <profiles> -l <level> -f + validate_custom validator against every released custom-preset fixture + +Options: + -p, --profiles DIR profile tree to validate (default: resources/profiles) + --validator BIN OrcaSlicer_profile_validator to use; also \$ORCA_PROFILE_VALIDATOR. + Default: the local build*/ Release build (then RelWithDebInfo, then + Debug) for this architecture, else the nightly release build is + downloaded for this platform + --download ignore local builds and use the downloaded nightly validator + --refresh re-download the validator and fixtures instead of using the cache + --work-dir DIR downloads, logs and fixture trees (default: .test/check_profiles) + -l, --log-level N validator log level (default: ${LOG_LEVEL}, as in CI) + -h, --help show this help + +Note: extra_json_check always looks at the tree next to the script +(<repo>/resources/profiles); --profiles only redirects the validator checks. +EOF +} + +msg() { printf '%s\n' "$*" >&2; } +die() { printf 'check_profile.sh: %s\n' "$*" >&2; exit 2; } + +if [ -t 1 ]; then + C_RED=$'\033[91m'; C_GREEN=$'\033[92m'; C_BOLD=$'\033[1m'; C_RESET=$'\033[0m' +else + C_RED=''; C_GREEN=''; C_BOLD=''; C_RESET='' +fi + +# ---------------------------------------------------------------------------- arguments + +while [ $# -gt 0 ]; do + case "$1" in + -h|--help) usage; exit 0 ;; + -p|--profiles) [ $# -ge 2 ] || die "$1 needs a directory"; PROFILES_DIR="$2"; shift 2 ;; + --validator) [ $# -ge 2 ] || die "$1 needs a path"; VALIDATOR="$2"; shift 2 ;; + --work-dir) [ $# -ge 2 ] || die "$1 needs a directory"; WORK_DIR="$2"; shift 2 ;; + -l|--log-level) [ $# -ge 2 ] || die "$1 needs a number"; LOG_LEVEL="$2"; shift 2 ;; + --download) PREFER_DOWNLOAD=1; shift ;; + --refresh) REFRESH=1; shift ;; + -*) die "unknown option '$1' (try --help)" ;; + *) + known=0 + for check in "${ALL_CHECKS[@]}"; do + [ "$1" = "${check}" ] && known=1 + done + [ "${known}" -eq 1 ] || die "unknown check '$1' (try --help)" + CHECKS[${#CHECKS[@]}]="$1" + shift + ;; + esac +done + +[ "${#CHECKS[@]}" -gt 0 ] || CHECKS=("${ALL_CHECKS[@]}") + +[ -d "${PROFILES_DIR}" ] || die "profile directory not found: ${PROFILES_DIR}" +PROFILES_DIR="$(cd -- "${PROFILES_DIR}" && pwd)" + +LOG_DIR="${WORK_DIR}/logs" +mkdir -p "${LOG_DIR}" || die "cannot create ${LOG_DIR}" +WORK_DIR="$(cd -- "${WORK_DIR}" && pwd)" +LOG_DIR="${WORK_DIR}/logs" + +wants() { + local check + for check in "${CHECKS[@]}"; do + [ "${check}" = "$1" ] && return 0 + done + return 1 +} + +# ------------------------------------------------------------------- clean profile tree + +# The validator points its data dir at the profile tree, so it creates - and, with -g, fills - +# <profiles>/user. A CI checkout never has that directory, and anything left in it from an +# earlier local run would be loaded as user presets and validated too. Move it aside for the +# duration of the run so what gets checked is what CI checks. +STASHED_USER_DIR="" + +stash_user_presets() { + [ -d "${PROFILES_DIR}/user" ] || return 0 + STASHED_USER_DIR="${WORK_DIR}/user-presets-$$" + rm -rf "${STASHED_USER_DIR}" + mv "${PROFILES_DIR}/user" "${STASHED_USER_DIR}" || { STASHED_USER_DIR=""; die "cannot move ${PROFILES_DIR}/user aside"; } + msg "moved ${PROFILES_DIR}/user aside for the run (restored on exit)" +} + +restore_user_presets() { + # The validator leaves an empty user/default/{filament,machine,process} skeleton behind. + # Prune it with rmdir, never rm -rf: a directory that holds a real file survives and is + # reported instead of being deleted. Runs even when nothing was stashed, so a tree that had + # no user/ before the run does not gain one. + find "${PROFILES_DIR}/user" -depth -type d -exec rmdir {} + 2>/dev/null + [ -n "${STASHED_USER_DIR}" ] || return 0 + if [ -d "${PROFILES_DIR}/user" ]; then + msg "${PROFILES_DIR}/user is not empty; your presets stay in ${STASHED_USER_DIR}" + STASHED_USER_DIR="" + return 0 + fi + mv "${STASHED_USER_DIR}" "${PROFILES_DIR}/user" + STASHED_USER_DIR="" +} + +# The fixture trees under the work dir are shared scratch space keyed by fixture version, so a +# second run would delete a tree the first one is validating. +LOCK_DIR="${WORK_DIR}/.lock" +mkdir "${LOCK_DIR}" 2>/dev/null || + die "another run is using ${WORK_DIR} (pass --work-dir, or remove ${LOCK_DIR} if no run is active)" + +cleanup() { + restore_user_presets + rmdir "${LOCK_DIR}" 2>/dev/null +} + +# Installed only once the lock is ours, so a refused start never releases someone else's. +trap cleanup EXIT +trap 'cleanup; exit 130' INT TERM + +stash_user_presets + +# ---------------------------------------------------------------------------- downloads + +# fetch URL DEST [force] - cached; --refresh, or a non-empty third argument, forces a new +# download. Release assets never change, so caching them is safe; the fixture manifest is the +# index that grows with every release, and CI re-reads it on every run. +fetch() { + local url="$1" dest="$2" force="${3:-}" + if [ "${REFRESH}" -eq 0 ] && [ -z "${force}" ] && [ -s "${dest}" ]; then + return 0 + fi + mkdir -p "$(dirname -- "${dest}")" || return 1 + msg "downloading $(basename -- "${dest}") ..." + if ! curl -fsSL --retry 3 -o "${dest}.part" "${url}"; then + rm -f "${dest}.part" + msg "download failed: ${url}" + return 1 + fi + mv -f "${dest}.part" "${dest}" +} + +sha256_of() { + if command -v sha256sum >/dev/null 2>&1; then + sha256sum "$1" | cut -d' ' -f1 + elif command -v shasum >/dev/null 2>&1; then + shasum -a 256 "$1" | cut -d' ' -f1 + else + return 1 + fi +} + +# Directories a built validator can sit in, best first: every Ninja Multi-Config Release tree, +# then RelWithDebInfo, then Debug, then a single-config generator's plain src/. Each pattern is +# matched both directly under a build root (build/) and one level down (build/arm64, build/x64), +# and unmatched globs are dropped by the caller's -d test. +validator_search_dirs() { + local config + for config in Release RelWithDebInfo Debug; do + printf '%s\n' "${REPO_ROOT}"/build*/src/"${config}" "${REPO_ROOT}"/build*/*/src/"${config}" + done + printf '%s\n' "${REPO_ROOT}"/build*/src "${REPO_ROOT}"/build*/*/src +} + +# A build tree named for the other architecture (build/x86_64 on an arm64 host, build/arm64 on +# an x64 one) is a last resort: on Linux it will not run at all, on macOS it goes via Rosetta. +# Takes a repo-relative path - an absolute one would also match an arch name in the checkout path. +is_foreign_arch_dir() { + case "${HOST_ARCH}" in + arm64|aarch64) case "$1" in *x86_64*|*x86-64*|*x64*|*amd64*) return 0 ;; esac ;; + x86_64|amd64) case "$1" in *arm64*|*aarch64*) return 0 ;; esac ;; + esac + return 1 +} + +# First locally built OrcaSlicer_profile_validator, in the order above. macOS puts it in an .app +# bundle, Linux and Windows next to the other binaries. +find_local_validator() { + local dir candidate foreign="" + while IFS= read -r dir; do + [ -d "${dir}" ] || continue + for candidate in \ + "${dir}/OrcaSlicer_profile_validator" \ + "${dir}/OrcaSlicer_profile_validator.exe" \ + "${dir}/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator"; do + [ -f "${candidate}" ] && [ -x "${candidate}" ] || continue + if ! is_foreign_arch_dir "${dir#"${REPO_ROOT}"/}"; then + printf '%s\n' "${candidate}" + return 0 + fi + [ -n "${foreign}" ] || foreign="${candidate}" + done + done <<EOF +$(validator_search_dirs) +EOF + [ -n "${foreign}" ] || return 1 + msg "no ${HOST_ARCH} build found, falling back to ${foreign}" + printf '%s\n' "${foreign}" +} + +# The nightly release build, same one CI uses. Linux ships the bare binary, macOS a .dmg +# holding the signed .app, Windows an .exe. +download_validator() { + local dest="${WORK_DIR}/validator" binary dmg app mounted app_src + case "$(uname -s)" in + Linux*) + case "${HOST_ARCH}" in + arm64|aarch64) msg "the nightly Linux validator is x86_64; build it locally for ${HOST_ARCH}" ;; + esac + binary="${dest}/OrcaSlicer_profile_validator" + fetch "${VALIDATOR_RELEASE_URL}/OrcaSlicer_profile_validator_Linux_Ubuntu2404_nightly" "${binary}" || return 1 + chmod +x "${binary}" || return 1 + ;; + Darwin*) + dmg="${dest}/OrcaSlicer_profile_validator.dmg" + app="${dest}/OrcaSlicer_profile_validator.app" + binary="${app}/Contents/MacOS/OrcaSlicer_profile_validator" + fetch "${VALIDATOR_RELEASE_URL}/OrcaSlicer_profile_validator_Mac_universal_nightly.dmg" "${dmg}" || return 1 + if [ ! -x "${binary}" ] || [ "${REFRESH}" -eq 1 ]; then + mounted="${dest}/mnt" + rm -rf "${mounted}" "${app}" + mkdir -p "${mounted}" || return 1 + hdiutil attach -nobrowse -readonly -mountpoint "${mounted}" "${dmg}" >/dev/null || return 1 + app_src="$(find "${mounted}" -maxdepth 1 -name '*.app' -print 2>/dev/null | head -n 1)" + if [ -n "${app_src}" ]; then + cp -R "${app_src}" "${app}" + fi + hdiutil detach "${mounted}" >/dev/null 2>&1 + rmdir "${mounted}" 2>/dev/null + [ -x "${binary}" ] || { msg "no validator app inside ${dmg}"; return 1; } + fi + ;; + MINGW*|MSYS*|CYGWIN*) + binary="${dest}/OrcaSlicer_profile_validator.exe" + fetch "${VALIDATOR_RELEASE_URL}/OrcaSlicer_profile_validator_Windows_nightly.exe" "${binary}" || return 1 + chmod +x "${binary}" || return 1 + ;; + *) + msg "no nightly validator published for $(uname -s); build it (-DORCA_TOOLS=ON) and pass --validator" + return 1 + ;; + esac + printf '%s\n' "${binary}" +} + +resolve_validator() { + if [ -n "${VALIDATOR}" ]; then + [ -x "${VALIDATOR}" ] || die "validator not executable: ${VALIDATOR}" + return 0 + fi + if [ "${PREFER_DOWNLOAD}" -eq 0 ]; then + VALIDATOR="$(find_local_validator)" + if [ -n "${VALIDATOR}" ]; then + msg "using locally built validator: ${VALIDATOR}" + return 0 + fi + fi + VALIDATOR="$(download_validator)" || die "could not obtain a profile validator" + msg "using downloaded validator: ${VALIDATOR}" +} + +# ---------------------------------------------------------------------------- checks + +check_extra_json_check() { + python3 "${REPO_ROOT}/scripts/orca_extra_profile_check.py" +} + +check_validate_system() { + "${VALIDATOR}" -p "${PROFILES_DIR}" -l "${LOG_LEVEL}" +} + +# Slices a two-colour cube through every printer so all custom g-code (incl. change_filament_gcode) +# is expanded - catches undefined-placeholder / invalid-flow bugs the static checks cannot see. +check_validate_slice() { + "${VALIDATOR}" -p "${PROFILES_DIR}" -s -l "${LOG_LEVEL}" +} + +check_validate_filament_subtypes() { + "${VALIDATOR}" -p "${PROFILES_DIR}" -l "${LOG_LEVEL}" -f +} + +# Every released fixture is a snapshot of user presets saved by that OrcaSlicer version; each is +# unpacked over the current system profiles and validated, so a profile change that would break +# an existing user's presets fails here. +check_validate_custom() { + local fixtures_dir="${WORK_DIR}/profile-fixtures" + local output_dir="${WORK_DIR}/custom-preset-validation" + local summary="${output_dir}/summary.md" + local status=0 failed_logs="" + local version asset expected_sha256 asset_url fixture_zip profile_tree log_path actual_sha256 result + + command -v unzip >/dev/null 2>&1 || { msg "unzip is required for validate_custom"; return 1; } + mkdir -p "${fixtures_dir}" "${output_dir}" || return 1 + + fetch "${FIXTURE_RELEASE_URL}/manifest.json" "${fixtures_dir}/manifest.json" force || return 1 + + MANIFEST_PATH="${fixtures_dir}/manifest.json" python3 - > "${fixtures_dir}/fixtures.tsv" <<'PY' +import json +import os + +with open(os.environ["MANIFEST_PATH"], encoding="utf-8") as fh: + manifest = json.load(fh) + +if isinstance(manifest, dict): + entries = manifest.get("fixtures", []) +else: + entries = manifest + +for entry in entries: + version = entry.get("version", "") + asset = entry.get("asset", "") + sha256 = entry.get("asset_sha256", "") + if not version or not asset: + continue + print(f"{version}\t{asset}\t{sha256}") +PY + + if [ ! -s "${fixtures_dir}/fixtures.tsv" ]; then + echo "No custom preset fixtures found in ${FIXTURE_RELEASE_URL}/manifest.json" + return 1 + fi + + { + echo "## Custom Preset Fixture Validation" + echo "" + echo "| Version | Status | Log |" + echo "| --- | --- | --- |" + } > "${summary}" + + while IFS=$'\t' read -r version asset expected_sha256; do + [ -n "${version}" ] || continue + fixture_zip="${fixtures_dir}/${asset}" + profile_tree="${output_dir}/profiles-${version}" + log_path="${output_dir}/${version}.log" + + asset_url="${FIXTURE_RELEASE_URL}/$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "${asset}")" + fetch "${asset_url}" "${fixture_zip}" || return 1 + + if [ -n "${expected_sha256}" ] && [ "${expected_sha256}" != "<sha256>" ]; then + actual_sha256="$(sha256_of "${fixture_zip}")" + if [ -z "${actual_sha256}" ]; then + msg "no sha256 tool available, skipping checksum of ${asset}" + elif [ "${actual_sha256}" != "${expected_sha256}" ]; then + # A cached zip can be stale or truncated; the release asset itself is immutable, + # so deleting it forces fetch to pull a fresh copy. + msg "checksum mismatch for ${asset}, re-downloading" + rm -f "${fixture_zip}" + fetch "${asset_url}" "${fixture_zip}" || return 1 + actual_sha256="$(sha256_of "${fixture_zip}")" + [ "${actual_sha256}" = "${expected_sha256}" ] || { msg "${asset}: expected ${expected_sha256}, got ${actual_sha256}"; return 1; } + fi + fi + + msg "validating custom presets from ${version} ..." + rm -rf "${profile_tree}" + mkdir -p "${profile_tree}" || return 1 + cp -a "${PROFILES_DIR}/." "${profile_tree}/" || return 1 + rm -rf "${profile_tree}/user" + unzip -q "${fixture_zip}" -d "${profile_tree}" || return 1 + + "${VALIDATOR}" -p "${profile_tree}" -l "${LOG_LEVEL}" > "${log_path}" 2>&1 + result=$? + + if [ "${result}" -eq 0 ]; then + echo "| ${version} | PASS | ${version}.log |" >> "${summary}" + # Only failures are worth keeping; each tree is a full copy of resources/profiles. + rm -rf "${profile_tree}" + else + echo "| ${version} | FAIL | ${version}.log |" >> "${summary}" + failed_logs="${failed_logs}${log_path}"$'\n' + status=1 + fi + done < "${fixtures_dir}/fixtures.tsv" + + cat "${summary}" + if [ -n "${failed_logs}" ]; then + echo "" + echo "## Failed Fixture Logs" + while IFS= read -r log_path; do + [ -n "${log_path}" ] || continue + echo "" + echo "### $(basename "${log_path}" .log)" + echo '```' + head -c 12000 "${log_path}" || echo "No output captured" + echo '```' + done <<EOF +${failed_logs} +EOF + fi + + return "${status}" +} + +# Heading CI puts above this check's log in the PR comment. +comment_heading() { + case "$1" in + extra_json_check) echo "### Extra JSON Check Failed" ;; + validate_system) echo "### System Profile Validation Failed" ;; + validate_slice) echo "### Slice Validation Failed (custom g-code expansion)" ;; + validate_filament_subtypes) echo "### Filament Subtype Validation Failed" ;; + validate_custom) echo "### Custom Preset Validation Failed" ;; + esac +} + +# ---------------------------------------------------------------------------- run + +run_check() { + local name="$1" + local log="${LOG_DIR}/${name}.log" + local result + printf '\n%s==> %s%s\n' "${C_BOLD}" "${name}" "${C_RESET}" + "check_${name}" 2>&1 | tee "${log}" + result="${PIPESTATUS[0]}" + if [ "${result}" -eq 0 ]; then + printf '%s %s passed%s\n' "${C_GREEN}" "${name}" "${C_RESET}" + RESULTS="${RESULTS}${name}"$'\t'"pass"$'\n' + else + printf '%s %s failed (exit %s)%s\n' "${C_RED}" "${name}" "${result}" "${C_RESET}" + RESULTS="${RESULTS}${name}"$'\t'"fail"$'\n' + fi +} + +if wants validate_system || wants validate_slice || wants validate_filament_subtypes || wants validate_custom; then + resolve_validator +fi + +for check in "${ALL_CHECKS[@]}"; do + wants "${check}" && run_check "${check}" +done + +# Summary, plus the comment check_profiles_comment.yml would post when something fails. +failed=0 +printf '\n%s==> summary%s\n' "${C_BOLD}" "${C_RESET}" +while IFS=$'\t' read -r name result; do + [ -n "${name}" ] || continue + if [ "${result}" = "pass" ]; then + printf '%s PASS%s %s\n' "${C_GREEN}" "${C_RESET}" "${name}" + else + printf '%s FAIL%s %s (%s)\n' "${C_RED}" "${C_RESET}" "${name}" "${LOG_DIR}/${name}.log" + failed=1 + fi +done <<EOF +${RESULTS} +EOF + +if [ "${failed}" -eq 0 ]; then + rm -f "${WORK_DIR}/pr_comment.md" + printf '\n%sAll checks passed.%s Logs: %s\n' "${C_GREEN}" "${C_RESET}" "${LOG_DIR}" + exit 0 +fi + +{ + # Marker matched by check_profiles_comment.yml to delete prior comments. + echo "<!-- profile-validation-comment -->" + echo "## :x: Profile Validation Errors" + echo "" + while IFS=$'\t' read -r name result; do + [ "${result}" = "fail" ] || continue + comment_heading "${name}" + echo "" + echo '```' + head -c 30000 "${LOG_DIR}/${name}.log" || echo "No output captured" + echo '```' + echo "" + done <<INNER +${RESULTS} +INNER + echo "---" + echo "*Please fix the above errors and push a new commit.*" +} > "${WORK_DIR}/pr_comment.md" + +printf '\n%sOne or more profile checks failed.%s Logs: %s\n' "${C_RED}" "${C_RESET}" "${LOG_DIR}" +printf 'The comment CI would post: %s\n' "${WORK_DIR}/pr_comment.md" +exit 1 From 1749c293a6ed71172959d6e16d9e98759aab8fcb Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Wed, 2 Sep 2026 05:38:05 -0500 Subject: [PATCH 108/164] build: clear 237 warnings - unused lambda captures (#15417) * build: enable /Zc:lambda for MSVC MSVC keeps its legacy lambda processor under /std:c++17, which rejects reading a constexpr constant inside a lambda that does not capture it (C3493). No other compiler requires that capture, and clang reports it as an unused one, so the two cannot both be satisfied without the flag. /Zc:lambda selects the conforming lambda parser that clang and GCC already use. It is implied by /std:c++20 and /permissive-, so it is only needed while we are on C++17. clang-cl is conforming already and does not take the flag. It requires VS2019 16.8, so build_release_vs.bat now says 16.8+. * build: clear 237 unused lambda capture warnings 236 captures across 81 files, 142 of them `this`. Removing an unused capture changes no behavior; clang does not report a capture whose type has a non-trivial destructor, so nothing held only to extend an object's lifetime is in this set. Nine of them are the second half of the warning, "is not required to be captured for this use", where the capture is a const or constexpr value the body does read. Those depend on the /Zc:lambda change in the previous commit. One of them, in FillRectilinear.cpp, had been worked around with an #ifndef __APPLE__ guard around the capture list, which is now gone. GUI_ObjectTableSettings.cpp captured its reset button only to read it inside #ifdef __WXOSX_MAC__. That branch now takes the button from the event it is already handling. * build: fail configure on MSVC older than 19.28 instead of dropping /Zc:lambda cl.exe answers an unrecognized /Zc: sub-option with warning D9002 and keeps going, so on VS2019 before 16.8 the flag is silently ignored and the build instead dies with C3493 in FillRectilinear.cpp, nowhere near the cause. * fix: delete three locals that are now unused Their only remaining use was the lambda capture this branch removed. The Clang builds set -Wno-unused-variable, so the build never flagged them. --------- Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- CMakeLists.txt | 16 ++++++ build_release_vs.bat | 2 +- src/OrcaSlicer.cpp | 2 +- src/libslic3r/Arrange.cpp | 2 +- src/libslic3r/Fill/FillRectilinear.cpp | 7 +-- src/libslic3r/GCode/GCodeProcessor.cpp | 8 +-- src/libslic3r/GCode/WipeTower.cpp | 4 +- src/libslic3r/Model.cpp | 2 +- src/libslic3r/PresetBundle.cpp | 4 +- src/libslic3r/Print.cpp | 4 +- src/libslic3r/PrintObject.cpp | 2 +- src/libslic3r/PrintObjectSlice.cpp | 4 +- src/libslic3r/Support/SupportCommon.cpp | 2 +- src/libslic3r/Support/SupportMaterial.cpp | 2 +- src/libslic3r/Support/TreeSupport.cpp | 2 +- src/slic3r/GUI/AMSDryControl.cpp | 6 +- src/slic3r/GUI/BindDialog.cpp | 6 +- src/slic3r/GUI/CaliHistoryDialog.cpp | 2 +- src/slic3r/GUI/Calibration.cpp | 2 +- src/slic3r/GUI/CalibrationWizard.cpp | 2 +- src/slic3r/GUI/CalibrationWizardCaliPage.cpp | 2 +- src/slic3r/GUI/CalibrationWizardPage.cpp | 2 +- src/slic3r/GUI/CalibrationWizardSavePage.cpp | 6 +- src/slic3r/GUI/CameraPopup.cpp | 2 +- src/slic3r/GUI/ConfigWizard.cpp | 2 +- src/slic3r/GUI/CreatePresetsDialog.cpp | 2 +- src/slic3r/GUI/Field.cpp | 2 +- src/slic3r/GUI/FilamentPickerDialog.cpp | 4 +- src/slic3r/GUI/GCodeViewer.cpp | 24 ++++---- src/slic3r/GUI/GLCanvas3D.cpp | 20 +++---- src/slic3r/GUI/GUI_App.cpp | 10 ++-- src/slic3r/GUI/GUI_AuxiliaryList.cpp | 2 +- src/slic3r/GUI/GUI_Factories.cpp | 14 ++--- src/slic3r/GUI/GUI_ObjectLayers.cpp | 2 +- src/slic3r/GUI/GUI_ObjectList.cpp | 8 +-- src/slic3r/GUI/GUI_ObjectTable.cpp | 4 +- src/slic3r/GUI/GUI_ObjectTableSettings.cpp | 17 +++--- src/slic3r/GUI/Gizmos/GLGizmoCut.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 2 +- .../GUI/Gizmos/GizmoObjectManipulation.cpp | 2 +- src/slic3r/GUI/HMS.cpp | 4 +- src/slic3r/GUI/Jobs/FillBedJob.cpp | 2 +- src/slic3r/GUI/Jobs/PrintJob.cpp | 5 +- src/slic3r/GUI/Jobs/RotoptimizeJob.cpp | 2 +- src/slic3r/GUI/Jobs/SendJob.cpp | 3 +- src/slic3r/GUI/MainFrame.cpp | 28 ++++----- src/slic3r/GUI/MultiMachine.cpp | 2 +- src/slic3r/GUI/MultiMachineManagerPage.cpp | 2 +- src/slic3r/GUI/MultiMachinePage.cpp | 2 +- src/slic3r/GUI/MultiTaskManagerPage.cpp | 2 +- src/slic3r/GUI/NetworkPluginDialog.cpp | 4 +- src/slic3r/GUI/NetworkTestDialog.cpp | 2 +- src/slic3r/GUI/Notebook.cpp | 2 +- src/slic3r/GUI/OG_CustomCtrl.cpp | 2 +- src/slic3r/GUI/ObjColorDialog.cpp | 2 +- src/slic3r/GUI/ParamsPanel.cpp | 6 +- src/slic3r/GUI/Plater.cpp | 57 +++++++++---------- src/slic3r/GUI/Preferences.cpp | 6 +- src/slic3r/GUI/PresetComboBoxes.cpp | 4 +- src/slic3r/GUI/PrintHostDialogs.cpp | 2 +- src/slic3r/GUI/Printer/PrinterFileSystem.cpp | 4 +- src/slic3r/GUI/PrivacyUpdateDialog.cpp | 2 +- src/slic3r/GUI/ReleaseNote.cpp | 2 +- src/slic3r/GUI/SavePresetDialog.cpp | 2 +- src/slic3r/GUI/SelectMachine.cpp | 8 +-- src/slic3r/GUI/SelectMachinePop.cpp | 12 ++-- src/slic3r/GUI/SendMultiMachinePage.cpp | 2 +- src/slic3r/GUI/SkipPartCanvas.cpp | 4 +- src/slic3r/GUI/SliceInfoPanel.cpp | 2 +- src/slic3r/GUI/StepMeshDialog.cpp | 4 +- src/slic3r/GUI/SyncAmsInfoDialog.cpp | 4 +- src/slic3r/GUI/Tab.cpp | 14 ++--- src/slic3r/GUI/TroubleshootDialog.cpp | 4 +- src/slic3r/GUI/WebGuideDialog.cpp | 4 +- src/slic3r/GUI/WebUserLoginDialog.cpp | 4 +- src/slic3r/Utils/3DPrinterOS.cpp | 2 +- src/slic3r/Utils/Moonraker.cpp | 4 +- src/slic3r/Utils/Obico.cpp | 2 +- src/slic3r/Utils/PresetUpdater.cpp | 2 +- src/slic3r/Utils/Repetier.cpp | 2 +- src/slic3r/Utils/SimplyPrint.cpp | 6 +- 83 files changed, 226 insertions(+), 217 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f5ccbeb44..972627d0c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -362,6 +362,22 @@ if (MSVC) if (SLIC3R_MSVC_COMPILE_PARALLEL AND CMAKE_GENERATOR MATCHES "Visual Studio") add_compile_options(/MP) endif () + + # Parse lambdas the way the standard says, as clang and GCC already do. Without it + # MSVC keeps its legacy lambda processor under /std:c++17 and rejects reading a + # constexpr constant inside a lambda that does not capture it (C3493), which no + # other compiler requires. Implied by /std:c++20 and /permissive-, so it is only + # needed while we are on C++17. clang-cl is conforming already and does not take + # the flag. Requires VS2019 16.8 or newer. + if (NOT IS_CLANG_CL) + # cl.exe only warns (D9002) about an unknown /Zc: option, so without this the + # flag would be dropped and the first lambda reading a constexpr constant would + # fail with C3493 far from the cause. + if (MSVC_VERSION LESS 1928) + message(FATAL_ERROR "Visual Studio 2019 16.8 (MSVC 19.28) or newer is required; detected MSVC ${MSVC_VERSION}.") + endif () + add_compile_options(/Zc:lambda) + endif () # /bigobj (Increase Number of Sections in .Obj file) # error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm90' or greater # Generate symbols at every build target, even for the release. diff --git a/build_release_vs.bat b/build_release_vs.bat index a52d940455..3842f1d198 100644 --- a/build_release_vs.bat +++ b/build_release_vs.bat @@ -86,7 +86,7 @@ if "%VS_MAJOR%"=="16" ( set CMAKE_GENERATOR="Visual Studio 18 2026" ) else ( echo Error: Unsupported Visual Studio version: %VS_MAJOR% - echo Supported versions: VS2019 (16.x^), VS2022 (17.x^), VS2026 (18.x^) + echo Supported versions: VS2019 (16.8+^), VS2022 (17.x^), VS2026 (18.x^) exit /b 1 ) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 8176e9f444..33669abcf2 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -1969,7 +1969,7 @@ int CLI::run(int argc, char **argv) } } - auto load_config_file = [config_substitution_rule](const std::string& file, DynamicPrintConfig& config, std::string& config_type, + auto load_config_file = [](const std::string& file, DynamicPrintConfig& config, std::string& config_type, std::string& config_name, std::string& filament_id, std::string& config_from) { if (! boost::filesystem::exists(file)) { boost::nowide::cerr << __FUNCTION__<< ": can not find setting file: " << file << std::endl; diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 48e6950a82..fd496537f4 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -797,7 +797,7 @@ public: } }); - m_pck.unfitIndicator([this](std::string name) { + m_pck.unfitIndicator([](std::string name) { BOOST_LOG_TRIVIAL(debug) << "arrange progress: " + name; }); diff --git a/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index 0c82354b38..db340748ab 100644 --- a/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp @@ -2395,12 +2395,7 @@ static std::vector<MonotonicRegionLink> chain_monotonic_regions( } // Probability (unnormalized) of traversing a link between two monotonic regions. - auto path_probability = [ -#ifndef __APPLE__ - // clang complains when capturing constexpr constants. - pheromone_alpha, pheromone_beta -#endif // __APPLE__ - ](AntPath &path) { + auto path_probability = [](AntPath &path) { return pow(path.pheromone, pheromone_alpha) * pow(path.visibility, pheromone_beta); }; diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 2ac8bd45a6..cd6c494f33 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -1273,7 +1273,7 @@ void GCodeProcessor::run_post_process() // add lines M73 to exported gcode auto process_line_move = [ // Lambdas, mostly for string formatting, all with an empty capture block. - time_in_minutes, format_time_float, format_line_M73_main, format_line_M73_stop_int, format_line_M73_stop_float, time_in_last_minute,format_line_exhaust_fan_control, + time_in_minutes, format_time_float, format_line_M73_main, format_line_M73_stop_int, format_line_M73_stop_float, time_in_last_minute, &self = std::as_const(m_time_processor), // Caches, to be modified &g1_times_cache_it, &last_exported_main, &last_exported_stop, @@ -5304,7 +5304,7 @@ void GCodeProcessor::process_VG1(const GCodeReader::GCodeLine& line) float filament_radius = 0.5f * filament_diameter; float area_filament_cross_section = static_cast<float>(M_PI) * sqr(filament_radius); - auto absolute_position = [this, area_filament_cross_section](Axis axis, const GCodeReader::GCodeLine& lineG1) { + auto absolute_position = [this](Axis axis, const GCodeReader::GCodeLine& lineG1) { bool is_relative = (m_global_positioning_type == EPositioningType::Relative); if (axis == E) is_relative |= (m_e_local_positioning_type == EPositioningType::Relative); @@ -5755,7 +5755,7 @@ void GCodeProcessor::process_G2_G3(const GCodeReader::GCodeLine& line, bool cloc if (travel_length < 0.001) return; - auto adjust_target = [this, area_filament_cross_section](const AxisCoords& target, const AxisCoords& prev_position) { + auto adjust_target = [this](const AxisCoords& target, const AxisCoords& prev_position) { AxisCoords ret = target; if (m_global_positioning_type == EPositioningType::Relative) { for (unsigned char a = X; a <= E; ++a) { @@ -7006,7 +7006,7 @@ void GCodeProcessor::store_move_vertex(EMoveType type, EMovePathType path_type, get_acceleration(normal_mode)); const float junction_deviation = get_option_value(m_time_processor.machine_limits.machine_max_junction_deviation, normal_mode_id); const bool use_jd_jerk = (m_flavor == gcfMarlinFirmware && junction_deviation > 0.0f); - const auto axis_jerk_for_preview = [this, normal_mode, use_jd_jerk, move_acceleration](Axis axis) { + const auto axis_jerk_for_preview = [this, use_jd_jerk, move_acceleration](Axis axis) { return use_jd_jerk ? get_axis_max_jerk_with_jd(normal_mode, axis, move_acceleration) : get_axis_max_jerk(normal_mode, axis); }; const float jerk_x = axis_jerk_for_preview(X); diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp index 5834937169..8aff5f4a3f 100644 --- a/src/libslic3r/GCode/WipeTower.cpp +++ b/src/libslic3r/GCode/WipeTower.cpp @@ -4083,7 +4083,7 @@ void WipeTower::toolchange_wipe_new(WipeTowerWriter &writer, const box_coordinat } return time * 60.f; }; - auto estimate_wipe_time = [&estimate_time_kernel, & cleaning_box, &target_speed, &x_to_wipe, &xr, &xl, &dy, &WipeSpeedMap, &solid_tool_toolchange](int begin_line) -> float { + auto estimate_wipe_time = [&estimate_time_kernel, & cleaning_box, &x_to_wipe, &xr, &xl, &dy, &solid_tool_toolchange](int begin_line) -> float { int n = std::ceil(x_to_wipe / (xr - xl)); if (solid_tool_toolchange) n = (cleaning_box.lu[1] - cleaning_box.ld[1]) / dy; float total_time = estimate_time_kernel(n); @@ -5111,7 +5111,7 @@ Polygon WipeTower::generate_rib_polygon(const box_coordinates &wt_box) Polygon WipeTower::generate_support_wall_new(WipeTowerWriter &writer, const box_coordinates &wt_box, double feedrate, bool first_layer,bool rib_wall, bool extrude_perimeter, bool skip_points) { - auto get_closet_idx = [this, &writer](Polylines &pls) -> std::pair<int,int> { + auto get_closet_idx = [&writer](Polylines &pls) -> std::pair<int,int> { Vec2f anchor{writer.x(), writer.y()}; int closestIndex = -1; int closestPl = -1; diff --git a/src/libslic3r/Model.cpp b/src/libslic3r/Model.cpp index bbc3aa80f3..8f1dd8926c 100644 --- a/src/libslic3r/Model.cpp +++ b/src/libslic3r/Model.cpp @@ -877,7 +877,7 @@ void Model::convert_multipart_object(unsigned int max_extruders) // Revert the centering operation. trafo_volume.set_offset(trafo_volume.get_offset() - o->origin_translation); int counter = 1; - auto copy_volume = [o, v, max_extruders, &counter, &extruder_counter](ModelVolume *new_v) { + auto copy_volume = [o, v, &counter](ModelVolume *new_v) { assert(new_v != nullptr); new_v->name = (counter > 1) ? o->name + "_" + std::to_string(counter++) : o->name; //BBS: Use extruder priority: volumn > object > default diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 53524887a9..8e5d565c55 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2157,7 +2157,7 @@ int PresetBundle::validate_presets(const std::string &file_name, DynamicPrintCon void PresetBundle::remove_users_preset(AppConfig &config, std::map<std::string, std::map<std::string, std::string>> *my_presets) { - auto check_removed = [my_presets, this](Preset &preset) -> bool { + auto check_removed = [my_presets](Preset &preset) -> bool { if (my_presets == nullptr) return true; if (my_presets->find(preset.name) != my_presets->end()) return false; if (!preset.sync_info.empty()) return false; // syncing, not remove @@ -3412,7 +3412,7 @@ void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info) combox_info.ams_names.push_back(ams_name); continue; } - iter = std::find_if(filaments.begin(), filaments.end(), [&filament_type](auto &f) { return f.is_compatible && f.is_system; }); + iter = std::find_if(filaments.begin(), filaments.end(), [](auto &f) { return f.is_compatible && f.is_system; }); if (iter == filaments.end()) continue; } diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 40764342fb..e96304e874 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -2288,7 +2288,7 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) obj->clear_shared_object(); //add the print_object share check logic - auto is_print_object_the_same = [this](const PrintObject* object1, const PrintObject* object2) -> bool{ + auto is_print_object_the_same = [](const PrintObject* object1, const PrintObject* object2) -> bool{ if (object1->trafo().matrix() != object2->trafo().matrix()) return false; const ModelObject* model_obj1 = object1->model_object(); @@ -5699,7 +5699,7 @@ int Print::load_cached_data(const std::string& directory) return CLI_IMPORT_CACHE_NOT_FOUND; } - auto find_region = [this](PrintObject* object, size_t config_hash) -> const PrintRegion* { + auto find_region = [](PrintObject* object, size_t config_hash) -> const PrintRegion* { int regions_count = object->num_printing_regions(); for (int index = 0; index < regions_count; index++ ) { diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 7bc18f6b86..a228bb7436 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2666,7 +2666,7 @@ void PrintObject::bridge_over_infill() // SECTION to gather and filter surfaces for expanding, and then cluster them by layer { tbb::concurrent_vector<CandidateSurface> candidate_surfaces; - tbb::parallel_for(tbb::blocked_range<size_t>(0, this->layers().size()), [po = static_cast<const PrintObject *>(this), &candidate_surfaces, has_lightning_infill](tbb::blocked_range<size_t> r) { + tbb::parallel_for(tbb::blocked_range<size_t>(0, this->layers().size()), [po = static_cast<const PrintObject *>(this), &candidate_surfaces](tbb::blocked_range<size_t> r) { PRINT_OBJECT_TIME_LIMIT_MILLIS(PRINT_OBJECT_TIME_LIMIT_DEFAULT); for (size_t lidx = r.begin(); lidx < r.end(); lidx++) { const Layer *layer = po->get_layer(lidx); diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index 07eb885eda..f6a6b43e09 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -527,7 +527,7 @@ bool groupingVolumes(std::vector<VolumeSlices> objSliceByVolume, std::vector<gro } tbb::parallel_for(tbb::blocked_range<int>(0, osvIndex.size()), - [&osvIndex, &objSliceByVolume, &offsetValue, &resolution](const tbb::blocked_range<int>& range) { + [&osvIndex, &objSliceByVolume, &resolution](const tbb::blocked_range<int>& range) { for (auto k = range.begin(); k != range.end(); ++k) { for (ExPolygon& poly_ex : objSliceByVolume[osvIndex[k][0]].slices[osvIndex[k][1]]) poly_ex.douglas_peucker(resolution); @@ -535,7 +535,7 @@ bool groupingVolumes(std::vector<VolumeSlices> objSliceByVolume, std::vector<gro }); tbb::parallel_for(tbb::blocked_range<int>(0, osvIndex.size()), - [&osvIndex, &objSliceByVolume,&offsetValue, &resolution](const tbb::blocked_range<int>& range) { + [&osvIndex, &objSliceByVolume,&offsetValue](const tbb::blocked_range<int>& range) { for (auto k = range.begin(); k != range.end(); ++k) { objSliceByVolume[osvIndex[k][0]].slices[osvIndex[k][1]] = offset_ex(objSliceByVolume[osvIndex[k][0]].slices[osvIndex[k][1]], offsetValue); } diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index 15640cb0f2..0c7a4b832e 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -132,7 +132,7 @@ std::pair<SupportGeneratorLayersPtr, SupportGeneratorLayersPtr> generate_interfa return nullptr; }; tbb::parallel_for(tbb::blocked_range<int>(0, int(intermediate_layers.size())), - [&bottom_contacts, &top_contacts, &top_interface_layers, &top_base_interface_layers, &intermediate_layers, &insert_layer, &support_params, + [&bottom_contacts, &top_contacts, &top_interface_layers, &top_base_interface_layers, &intermediate_layers, &insert_layer, num_top_interface_layers, num_bottom_interface_layers, num_top_base_interface_layers, num_bottom_base_interface_layers, num_top_interface_layers_only, num_bottom_interface_layers_only, snug_supports, &interface_layers, &base_interface_layers](const tbb::blocked_range<int>& range) { diff --git a/src/libslic3r/Support/SupportMaterial.cpp b/src/libslic3r/Support/SupportMaterial.cpp index cd60489e75..12ac275592 100644 --- a/src/libslic3r/Support/SupportMaterial.cpp +++ b/src/libslic3r/Support/SupportMaterial.cpp @@ -1588,7 +1588,7 @@ static inline std::tuple<Polygons, Polygons, double> detect_contacts( // Cache support trimming polygons derived from lower layer polygons, possible merged with "on build plate only" trimming polygons. auto slices_margin_update = - [&slices_margin, &layer, &lower_layer, &lower_layer_polygons, buildplate_only, has_enforcer, &annotations, layer_id] + [&slices_margin, &lower_layer, &lower_layer_polygons, buildplate_only, has_enforcer, &annotations, layer_id] (float slices_margin_offset, float no_interface_offset) { if (slices_margin.offset != slices_margin_offset) { slices_margin.offset = slices_margin_offset; diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index de08870216..2b06f11244 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -2667,7 +2667,7 @@ void TreeSupport::drop_nodes() SupportNode::diameter_angle_scale_factor = diameter_angle_scale_factor; float DO_NOT_MOVER_UNDER_MM = is_slim ? 0 : 5; // do not move contact points under 5mm - auto get_max_move_dist = [this, &config, tan_angle, wall_count, support_extrusion_width](const SupportNode *node, int power = 1) { + auto get_max_move_dist = [this, tan_angle, support_extrusion_width](const SupportNode *node, int power = 1) { if (node->max_move_dist == 0) { node->radius = get_radius(node); node->max_move_dist = std::min(tan_angle * node->height, support_extrusion_width); diff --git a/src/slic3r/GUI/AMSDryControl.cpp b/src/slic3r/GUI/AMSDryControl.cpp index ddd3380975..f83eed30db 100644 --- a/src/slic3r/GUI/AMSDryControl.cpp +++ b/src/slic3r/GUI/AMSDryControl.cpp @@ -437,7 +437,7 @@ wxBoxSizer* AMSDryCtrWin::create_normal_state_panel(wxPanel* parent) m_temperature_input = new wxTextCtrl(parent, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(80), -1)); m_temperature_input->SetMaxLength(3); // Limit to 3 digits - m_temperature_input->Bind(wxEVT_CHAR, [this](wxKeyEvent& event) { + m_temperature_input->Bind(wxEVT_CHAR, [](wxKeyEvent& event) { int keycode = event.GetKeyCode(); if (keycode >= '0' && keycode <= '9') { event.Skip(); @@ -464,7 +464,7 @@ wxBoxSizer* AMSDryCtrWin::create_normal_state_panel(wxPanel* parent) m_time_input = new wxTextCtrl(parent, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(100), -1)); m_time_input->SetMaxLength(3); // Limit to 3 digits - m_time_input->Bind(wxEVT_CHAR, [this](wxKeyEvent& event) { + m_time_input->Bind(wxEVT_CHAR, [](wxKeyEvent& event) { int keycode = event.GetKeyCode(); if (keycode >= '0' && keycode <= '9') { event.Skip(); @@ -698,7 +698,7 @@ wxBoxSizer* AMSDryCtrWin::create_guide_info_section(wxPanel* parent) m_rotate_spool_toggle = new wxCheckBox(parent, wxID_ANY, ""); m_rotate_spool_toggle->SetValue(false); - m_rotate_spool_toggle->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) { + m_rotate_spool_toggle->Bind(wxEVT_CHECKBOX, [](wxCommandEvent& event) { bool is_checked = event.IsChecked(); // Add toggle behavior logic here }); diff --git a/src/slic3r/GUI/BindDialog.cpp b/src/slic3r/GUI/BindDialog.cpp index a4b568e82d..4c6d3c249d 100644 --- a/src/slic3r/GUI/BindDialog.cpp +++ b/src/slic3r/GUI/BindDialog.cpp @@ -468,7 +468,7 @@ PingCodeBindDialog::~PingCodeBindDialog() { m_link_privacy_title->SetFont(Label::Head_13); m_link_privacy_title->SetMaxSize(wxSize(FromDIP(450), -1)); m_link_privacy_title->Wrap(FromDIP(450)); - m_link_privacy_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { + m_link_privacy_title->Bind(wxEVT_LEFT_DOWN, [](auto& e) { std::string url; std::string country_code = Slic3r::GUI::wxGetApp().app_config->get_country_code(); @@ -893,7 +893,7 @@ void BindMachineDialog::on_show(wxShowEvent &event) } } }) - .on_error([this](std::string body, std::string error, unsigned status) { + .on_error([](std::string body, std::string error, unsigned status) { //BOOST_LOG_TRIVIAL(info) << "load oss picture failed, oss path: " << oss_path << " status:" << status << " error:" << error; }).perform(); } @@ -1099,7 +1099,7 @@ void UnBindMachineDialog::on_show(wxShowEvent &event) } } }) - .on_error([this](std::string body, std::string error, unsigned status) { + .on_error([](std::string body, std::string error, unsigned status) { //BOOST_LOG_TRIVIAL(info) << "load oss picture failed, oss path: " << oss_path << " status:" << status << " error:" << error; }).perform(); diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 4de90d8b8f..6c1e612864 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -443,7 +443,7 @@ void HistoryWindow::sync_history_data() { auto edit_button = new Button(m_history_data_panel, _L("Edit")); edit_button->SetStyle(ButtonStyle::Confirm, ButtonType::Window); - edit_button->Bind(wxEVT_BUTTON, [this, result, k_value, name_value, edit_button](auto& e) { + edit_button->Bind(wxEVT_BUTTON, [this, result, k_value, name_value](auto& e) { if (m_ui_op_lock) return; PACalibResult result_buffer = result; diff --git a/src/slic3r/GUI/Calibration.cpp b/src/slic3r/GUI/Calibration.cpp index 0c2b4f1659..f3351fdb6b 100644 --- a/src/slic3r/GUI/Calibration.cpp +++ b/src/slic3r/GUI/Calibration.cpp @@ -201,7 +201,7 @@ wxWindow* CalibrationDialog::create_check_option(wxString title, wxWindow* paren checkbox->SetToolTip(tooltip); text->SetToolTip(tooltip); - text->Bind(wxEVT_LEFT_DOWN, [this, check](wxMouseEvent&) { check->SetValue(check->GetValue() ? false : true); }); + text->Bind(wxEVT_LEFT_DOWN, [check](wxMouseEvent&) { check->SetValue(check->GetValue() ? false : true); }); m_checkbox_list[param] = check; m_checkbox_list[param]->SetValue(true); return checkbox; diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index b1f5c206c6..7496d59a51 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -477,7 +477,7 @@ void CalibrationWizard::on_cali_go_home() if (go_home_dialog == nullptr) go_home_dialog = new SecondaryCheckDialog(this, wxID_ANY, _L("Confirm")); - go_home_dialog->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this, method](wxCommandEvent &e) { + go_home_dialog->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent &e) { if (curr_obj) { curr_obj->command_task_abort(); } else { diff --git a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp index d9604da84a..152f46f37c 100644 --- a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp @@ -90,7 +90,7 @@ void CalibrationCaliPage::on_subtask_abort(wxCommandEvent& event) if (abort_dlg == nullptr) { abort_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Cancel print")); - abort_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this, obj](wxCommandEvent& e) { + abort_dlg->Bind(EVT_SECONDARY_CHECK_CONFIRM, [obj](wxCommandEvent& e) { if (obj) obj->command_task_abort(); }); } diff --git a/src/slic3r/GUI/CalibrationWizardPage.cpp b/src/slic3r/GUI/CalibrationWizardPage.cpp index ef17da9081..c117ec8857 100644 --- a/src/slic3r/GUI/CalibrationWizardPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPage.cpp @@ -762,7 +762,7 @@ void CaliPageActionPanel::bind_button(CaliPageActionType action_type, bool is_bl if (is_block) { m_action_btns[i]->Bind(wxEVT_BUTTON, - [this](wxCommandEvent& evt) { + [](wxCommandEvent& evt) { MessageDialog msg(nullptr, _L("The current firmware version of the printer does not support calibration.\nPlease upgrade the printer firmware."), _L("Calibration not supported"), wxOK | wxICON_WARNING); msg.ShowModal(); }); diff --git a/src/slic3r/GUI/CalibrationWizardSavePage.cpp b/src/slic3r/GUI/CalibrationWizardSavePage.cpp index 78bc4bb77f..f7699cfab0 100644 --- a/src/slic3r/GUI/CalibrationWizardSavePage.cpp +++ b/src/slic3r/GUI/CalibrationWizardSavePage.cpp @@ -272,7 +272,7 @@ void CaliPASaveAutoPanel::sync_cali_result(const std::vector<PACalibResult>& cal preset_names = default_naming(preset_names); std::vector<PACalibResult> sorted_cali_result = cali_result; - std::sort(sorted_cali_result.begin(), sorted_cali_result.end(), [this](const PACalibResult &left, const PACalibResult& right) { + std::sort(sorted_cali_result.begin(), sorted_cali_result.end(), [](const PACalibResult &left, const PACalibResult& right) { return left.tray_id < right.tray_id; }); @@ -366,7 +366,7 @@ void CaliPASaveAutoPanel::sync_cali_result(const std::vector<PACalibResult>& cal } } - comboBox_tray_name->Bind(wxEVT_COMBOBOX, [this, comboBox_tray_name, k_value, n_value](auto& e) { + comboBox_tray_name->Bind(wxEVT_COMBOBOX, [comboBox_tray_name](auto& e) { int selection = comboBox_tray_name->GetSelection(); auto history = filtered_results[selection]; }); @@ -744,7 +744,7 @@ void CaliPASaveAutoPanel::sync_cali_result_for_multi_extruder(const std::vector< } } - comboBox_tray_name->Bind(wxEVT_COMBOBOX, [this, comboBox_tray_name, k_value, n_value](auto &e) { + comboBox_tray_name->Bind(wxEVT_COMBOBOX, [comboBox_tray_name](auto &e) { int selection = comboBox_tray_name->GetSelection(); auto history = filtered_results[selection]; }); diff --git a/src/slic3r/GUI/CameraPopup.cpp b/src/slic3r/GUI/CameraPopup.cpp index 0ee5694a34..cc7e00eec6 100644 --- a/src/slic3r/GUI/CameraPopup.cpp +++ b/src/slic3r/GUI/CameraPopup.cpp @@ -140,7 +140,7 @@ CameraPopup::CameraPopup(wxWindow *parent) vcamera_guide_link->Wrap(-1); vcamera_guide_link->SetForegroundColour(wxColour(0x1F, 0x8E, 0xEA)); auto text_size = vcamera_guide_link->GetTextExtent(text); - vcamera_guide_link->Bind(wxEVT_LEFT_DOWN, [this, url](wxMouseEvent& e) {wxLaunchDefaultBrowser(url); }); + vcamera_guide_link->Bind(wxEVT_LEFT_DOWN, [url](wxMouseEvent& e) {wxLaunchDefaultBrowser(url); }); link_underline = new wxPanel(m_panel, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); link_underline->SetBackgroundColour(wxColour(0x1F, 0x8E, 0xEA)); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index dba8699105..412df19091 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -2752,7 +2752,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent) }); if (wxLinux_gtk3) - this->Bind(wxEVT_SHOW, [this, vsizer](const wxShowEvent& e) { + this->Bind(wxEVT_SHOW, [](const wxShowEvent& e) { ; }); diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index 33f49c2a38..063d1ce628 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -1885,7 +1885,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_nozzle_diameter_item(wxWindow *par m_custom_nozzle_diameter_ctrl = new wxTextCtrl(parent, wxID_ANY, "", wxDefaultPosition, NAME_OPTION_COMBOBOX_SIZE); m_custom_nozzle_diameter_ctrl->SetHint(_L("Input Custom Nozzle Diameter")); - m_custom_nozzle_diameter_ctrl->Bind(wxEVT_CHAR, [this](wxKeyEvent &event) { + m_custom_nozzle_diameter_ctrl->Bind(wxEVT_CHAR, [](wxKeyEvent &event) { int key = event.GetKeyCode(); if (key != 44 && key != 46 && cannot_input_key.find(key) != cannot_input_key.end()) { // "@" can not be inputed event.Skip(false); diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index dbbf5ec5e2..b0302f2cf8 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -1324,7 +1324,7 @@ void SpinCtrl::BUILD() { bEnterPressed = true; }), temp->GetId()); - temp->GetTextCtrl()->Bind(wxEVT_TEXT, ([this, temp](wxCommandEvent e) + temp->GetTextCtrl()->Bind(wxEVT_TEXT, ([this](wxCommandEvent e) { // # On OSX / Cocoa, SpinInput::GetValue() doesn't return the new value // # when it was changed from the text control, so the on_change callback diff --git a/src/slic3r/GUI/FilamentPickerDialog.cpp b/src/slic3r/GUI/FilamentPickerDialog.cpp index 98c955fb76..5b5af59501 100644 --- a/src/slic3r/GUI/FilamentPickerDialog.cpp +++ b/src/slic3r/GUI/FilamentPickerDialog.cpp @@ -426,11 +426,11 @@ wxScrolledWindow* FilamentPickerDialog::CreateColorGrid() }); // Hover highlight - btn->Bind(wxEVT_ENTER_WINDOW, [btn](wxMouseEvent& evt) { + btn->Bind(wxEVT_ENTER_WINDOW, [](wxMouseEvent& evt) { evt.Skip(); }); - btn->Bind(wxEVT_LEAVE_WINDOW, [btn](wxMouseEvent& evt) { + btn->Bind(wxEVT_LEAVE_WINDOW, [](wxMouseEvent& evt) { evt.Skip(); }); diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 15085c3cc4..e5a88e4ea4 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -2613,7 +2613,7 @@ void GCodeViewer::render_all_plates_stats(const std::vector<const GCodeProcessor return ret; }; - auto append_item = [icon_size, &imgui, imperial_units, &window_padding, &draw_list, this](const ColorRGBA& color, const std::vector<std::pair<std::string, float>>& columns_offsets) + auto append_item = [icon_size, &imgui, &window_padding, &draw_list, this](const ColorRGBA& color, const std::vector<std::pair<std::string, float>>& columns_offsets) { // render icon ImVec2 pos = ImVec2(ImGui::GetCursorScreenPos().x + window_padding * 3, ImGui::GetCursorScreenPos().y); @@ -2648,7 +2648,7 @@ void GCodeViewer::render_all_plates_stats(const std::vector<const GCodeProcessor } ImGui::Separator(); }; - auto get_used_filament_from_volume = [this, imperial_units, &filament_diameters, &filament_densities](double volume, int extruder_id) { + auto get_used_filament_from_volume = [imperial_units, &filament_diameters, &filament_densities](double volume, int extruder_id) { double koef = imperial_units ? 1.0 / GizmoObjectManipulation::in_to_mm : 0.001; std::pair<double, double> ret = { koef * volume / (PI * sqr(0.5 * filament_diameters[extruder_id])), volume * filament_densities[extruder_id] * 0.001 }; @@ -3233,7 +3233,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv //ImVec2(pos_rect.x + ImGui::GetWindowWidth() + ImGui::GetFrameHeight(),pos_rect.y + ImGui::GetFrameHeight() + window_padding * 2.5), //ImGui::GetColorU32(ImVec4(0,0,0,0.3))); - auto append_item = [icon_size, &imgui, imperial_units, &window_padding, &draw_list, this]( + auto append_item = [icon_size, &imgui, &window_padding, &draw_list, this]( EItemType type, const ColorRGBA& color, const std::vector<std::pair<std::string, float>>& columns_offsets, @@ -3368,7 +3368,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv return ret; }; - auto calculate_offsets = [&imgui, max_width, window_padding, this](const std::vector<std::pair<std::string, std::vector<::string>>>& title_columns, float extra_size = 0.0f) { + auto calculate_offsets = [max_width, this](const std::vector<std::pair<std::string, std::vector<::string>>>& title_columns, float extra_size = 0.0f) { const ImGuiStyle& style = ImGui::GetStyle(); std::vector<float> offsets; // ORCA increase spacing for more readable format. Using direct number requires much less code change in here. GetTextLineHeight for additional spacing for icon_size @@ -3856,7 +3856,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv columns_offsets.push_back({ distance_text, offsets[3] }); if (full_layout && !count_text.empty()) columns_offsets.push_back({ count_text, distance_text.empty() ? offsets[3] : offsets[4] }); - append_item(EItemType::Rect, color, columns_offsets, true, offsets.back()/*ORCA checkbox_pos*/, visible, [this, type, visible]() { + append_item(EItemType::Rect, color, columns_offsets, true, offsets.back()/*ORCA checkbox_pos*/, visible, [this, type]() { m_viewer.toggle_option_visibility(type); update_moves_slider(); }); @@ -3913,7 +3913,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv columns_offsets.push_back({used_filaments_length[i], offsets[3]}); columns_offsets.push_back({used_filaments_weight[i], offsets[4]}); append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_extrusion_role_color(role)), columns_offsets, - true, offsets.back(), visible, [this, role, visible]() { + true, offsets.back(), visible, [this, role]() { m_viewer.toggle_extrusion_role_visibility(role); update_moves_slider(); }); @@ -3932,7 +3932,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv columns_offsets.push_back({ travel_percent, offsets[2] }); columns_offsets.push_back({ travel_distance, offsets[3] }); // Usage column columns_offsets.push_back({ travel_moves, offsets[4] }); // Usage column - append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), columns_offsets, true, offsets.back()/*ORCA checkbox_pos*/, visible, [this, item, visible]() { + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), columns_offsets, true, offsets.back()/*ORCA checkbox_pos*/, visible, [this, item]() { m_viewer.toggle_option_visibility(item); update_moves_slider(); }); @@ -3951,7 +3951,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv append_headers({ {_u8L("Options"), offsets[0] }, { _u8L("Display"), offsets[1]} }); const bool travel_visible = m_viewer.is_option_visible(libvgcode::EOptionType::Travels); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 3.0f)); - append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this, travel_visible]() { + append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this]() { m_viewer.toggle_option_visibility(libvgcode::EOptionType::Travels); // refresh(*m_gcode_result, wxGetApp().plater()->get_extruder_colors_from_plater_config(m_gcode_result)); update_moves_slider(); @@ -3968,7 +3968,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv append_headers({ {_u8L("Options"), offsets[0] }, { _u8L("Display"), offsets[1]} }); const bool travel_visible = m_viewer.is_option_visible(libvgcode::EOptionType::Travels); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 3.0f)); - append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this, travel_visible]() { + append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this]() { m_viewer.toggle_option_visibility(libvgcode::EOptionType::Travels); // refresh(*m_gcode_result, wxGetApp().plater()->get_extruder_colors_from_plater_config(m_gcode_result)); update_moves_slider(); @@ -3985,7 +3985,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv append_headers({ {_u8L("Options"), offsets[0] }, { _u8L("Display"), offsets[1]} }); const bool travel_visible = m_viewer.is_option_visible(libvgcode::EOptionType::Travels); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 3.0f)); - append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this, travel_visible]() { + append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this]() { m_viewer.toggle_option_visibility(libvgcode::EOptionType::Travels); update_moves_slider(); }); @@ -4001,7 +4001,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv append_headers({ {_u8L("Options"), offsets[0] }, { _u8L("Display"), offsets[1]} }); const bool travel_visible = m_viewer.is_option_visible(libvgcode::EOptionType::Travels); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 3.0f)); - append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this, travel_visible]() { + append_item(EItemType::None, libvgcode::convert(m_viewer.get_option_color(libvgcode::EOptionType::Travels)), { {_u8L("Travel"), offsets[0] }}, true, predictable_icon_pos/*ORCA checkbox_pos*/, travel_visible, [this]() { m_viewer.toggle_option_visibility(libvgcode::EOptionType::Travels); update_moves_slider(); }); @@ -4121,7 +4121,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv } float checkbox_pos = std::max(predictable_icon_pos, color_print_offsets[_u8L("Display")]); // ORCA prefer predictable_icon_pos when header not reacing end - append_item(EItemType::Rect, libvgcode::convert(tool_colors[extruder_idx]), columns_offsets, false, checkbox_pos/*ORCA*/, true, [this, extruder_idx]() {}); + append_item(EItemType::Rect, libvgcode::convert(tool_colors[extruder_idx]), columns_offsets, false, checkbox_pos/*ORCA*/, true, []() {}); } i++; } diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 34279369a1..7db7e01e9c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -9236,7 +9236,7 @@ void GLCanvas3D::_render_imgui_select_plate_toolbar() ImVec2 size = ImVec2(button_width, button_height); ImVec2 end_pos = ImVec2(start_pos.x + size.x, start_pos.y + size.y); // ORCA show additional information depends on state - auto draw_info_btn = [end_pos, f_scale, margin, window_bg](std::string str, ImVec4 bg_color, ImVec4 fg_color){ + auto draw_info_btn = [end_pos, f_scale, margin](std::string str, ImVec4 bg_color, ImVec4 fg_color){ GImGui->FontSize = 15.0f * f_scale; ImVec2 txt_slice_sz = ImGui::CalcTextSize(str.c_str()); ImVec2 btn_pad = ImVec2(8.f, 1.f) * f_scale; @@ -9492,7 +9492,7 @@ void GLCanvas3D::_render_canvas_toolbar() Plater* p = wxGetApp().plater(); AppConfig* cfg = wxGetApp().app_config; - auto create_menu_item = [this, sc]( + auto create_menu_item = [sc]( const std::string& name, bool enable, bool condition, @@ -9509,7 +9509,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("3D Navigator")), m_canvas_type != ECanvasType::CanvasAssembleView, // not work on assembly wxGetApp().show_3d_navigator(), - [this]{ + []{ wxGetApp().toggle_show_3d_navigator(); ImGui::CloseCurrentPopup(); // Close popup to show changes on UI } @@ -9518,7 +9518,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Zoom button")), true, // work on all wxGetApp().show_canvas_zoom_button(), - [this]{ + []{ wxGetApp().toggle_canvas_zoom_button(); ImGui::CloseCurrentPopup(); // Close popup to show changes on UI } @@ -9529,13 +9529,13 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Overhangs")), m_canvas_type == ECanvasType::CanvasView3D, // work only on prepare p->is_view3D_overhang_shown(), - [this, p]{p->show_view3D_overhang(!p->is_view3D_overhang_shown());} + [p]{p->show_view3D_overhang(!p->is_view3D_overhang_shown());} ); create_menu_item( _utf8(L("Outline")), m_canvas_type != ECanvasType::CanvasPreview, // not work on preview wxGetApp().show_outline(), - [this]{wxGetApp().toggle_show_outline();} + []{wxGetApp().toggle_show_outline();} ); create_menu_item( _utf8(L("Wireframe")), @@ -9547,7 +9547,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Realistic View")), m_canvas_type != ECanvasType::CanvasPreview, // not work on preview cfg->get_bool(SETTING_OPENGL_REALISTIC_MODE), - [this, &cfg]{ + [&cfg]{ cfg->set_bool(SETTING_OPENGL_REALISTIC_MODE, !cfg->get_bool(SETTING_OPENGL_REALISTIC_MODE)); cfg->save(); } @@ -9558,7 +9558,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Perspective")), true, // work on all cfg->get_bool("use_perspective_camera"), - [this, &cfg]{ + [&cfg]{ cfg->set_bool("use_perspective_camera", !(cfg->get_bool("use_perspective_camera"))); wxGetApp().update_ui_from_settings(); } @@ -9575,7 +9575,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Gridlines")), m_canvas_type != ECanvasType::CanvasAssembleView, // not work on assembly wxGetApp().show_plate_gridlines(), - [this]{wxGetApp().toggle_show_plate_gridlines();} + []{wxGetApp().toggle_show_plate_gridlines();} ); ImGui::Separator(); @@ -9583,7 +9583,7 @@ void GLCanvas3D::_render_canvas_toolbar() create_menu_item( _utf8(L("Labels")), m_canvas_type == ECanvasType::CanvasView3D, // work only on prepare p->are_view3D_labels_shown(), - [this, p]{p->show_view3D_labels(!p->are_view3D_labels_shown());} + [p]{p->show_view3D_labels(!p->are_view3D_labels_shown());} ); ImGui::PopItemFlag(); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 223829f435..d661b012a3 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2641,7 +2641,7 @@ std::string GUI_App::get_bbl_client_version() void GUI_App::on_start_subscribe_again(std::string dev_id) { auto start_subscribe_timer = new wxTimer(this, wxID_ANY); - Bind(wxEVT_TIMER, [this, start_subscribe_timer, dev_id](auto& e) { + Bind(wxEVT_TIMER, [start_subscribe_timer, dev_id](auto& e) { start_subscribe_timer->Stop(); Slic3r::DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev) return; @@ -3231,7 +3231,7 @@ bool GUI_App::on_init_inner() } }); - Bind(EVT_SHOW_NO_NEW_VERSION, [this](const wxCommandEvent& evt) { + Bind(EVT_SHOW_NO_NEW_VERSION, [](const wxCommandEvent& evt) { wxString msg = _L("This is the newest version."); InfoDialog dlg(nullptr, _L("Info"), msg); dlg.ShowModal(); @@ -5256,7 +5256,7 @@ std::string GUI_App::handle_web_request(std::string cmd) } } else if (command_str.compare("begin_network_plugin_download") == 0) { - CallAfter([this] { wxGetApp().ShowDownNetPluginDlg(); }); + CallAfter([] { wxGetApp().ShowDownNetPluginDlg(); }); } else if (command_str.compare("get_web_shortcut") == 0) { if (root.get_child_optional("key_event") != boost::none) { @@ -8297,7 +8297,7 @@ bool GUI_App::show_modal_ip_address_enter_dialog(bool input_sn, wxString title) dlg.set_machine_obj(obj); if (!title.empty()) dlg.update_title(title); - dlg.Bind(EVT_ENTER_IP_ADDRESS, [this, obj](wxCommandEvent& e) { + dlg.Bind(EVT_ENTER_IP_ADDRESS, [obj](wxCommandEvent& e) { auto selection_data_arr = wxSplit(e.GetString().ToStdString(), '|'); if (selection_data_arr.size() == 2) { @@ -8777,7 +8777,7 @@ bool GUI_App::check_and_keep_current_preset_changes(const wxString& caption, con if (!no_need_change && dlg.ShowModal() == wxID_CANCEL) return false; - auto reset_modifications = [this, is_called_from_configwizard]() { + auto reset_modifications = [this]() { //if (is_called_from_configwizard) // return; // no need to discared changes. It will be done fromConfigWizard closing diff --git a/src/slic3r/GUI/GUI_AuxiliaryList.cpp b/src/slic3r/GUI/GUI_AuxiliaryList.cpp index 1fa5b194ec..be9f99a76a 100644 --- a/src/slic3r/GUI/GUI_AuxiliaryList.cpp +++ b/src/slic3r/GUI/GUI_AuxiliaryList.cpp @@ -217,7 +217,7 @@ void AuxiliaryList::on_context_menu(wxDataViewEvent& evt) } else { append_menu_item(menu, wxID_ANY, _L("Open"), wxEmptyString, - [this, node](wxCommandEvent&) + [node](wxCommandEvent&) { wxLaunchDefaultApplication(node->path, 0); }); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index be407a270f..d8e54978fa 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -1414,7 +1414,7 @@ void MenuFactory::create_default_menu() append_menu_check_item(&m_default_menu, wxID_ANY, _L("Show Labels"), "", [](wxCommandEvent&) { plater()->show_view3D_labels(!plater()->are_view3D_labels_shown()); plater()->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, &m_default_menu, - []() { return plater()->is_view3D_shown(); }, [this]() { return plater()->are_view3D_labels_shown(); }, m_parent); + []() { return plater()->is_view3D_shown(); }, []() { return plater()->are_view3D_labels_shown(); }, m_parent); } void MenuFactory::create_common_object_menu(wxMenu* menu) @@ -2090,7 +2090,7 @@ void MenuFactory::append_menu_item_clone(wxMenu* menu) static const wxString ctrl = _L("Ctrl+"); #endif append_menu_item(menu, wxID_ANY, _L("Clone") + "\t" + ctrl + "K", "", - [this](wxCommandEvent&) { + [](wxCommandEvent&) { plater()->clone_selection(); }, "", nullptr, []() { @@ -2115,7 +2115,7 @@ void MenuFactory::append_menu_item_smooth_mesh(wxMenu *menu) void MenuFactory::append_menu_item_center(wxMenu* menu) { append_menu_item(menu, wxID_ANY, _L("Center") , "", - [this](wxCommandEvent&) { + [](wxCommandEvent&) { plater()->center_selection(); }, "", nullptr, []() { @@ -2134,7 +2134,7 @@ void MenuFactory::append_menu_item_center(wxMenu* menu) void MenuFactory::append_menu_item_drop(wxMenu* menu) { append_menu_item(menu, wxID_ANY, _L("Drop") , "", - [this](wxCommandEvent&) { + [](wxCommandEvent&) { plater()->drop_selection(); }, "", nullptr, []() { @@ -2309,7 +2309,7 @@ void MenuFactory::append_menu_item_set_printable(wxMenu* menu) } } - wxMenuItem* menu_item_set_printable = append_menu_check_item(menu, wxID_ANY, _L("Printable") + "\t" + "V", "", [this, all_printable](wxCommandEvent&) { + wxMenuItem* menu_item_set_printable = append_menu_check_item(menu, wxID_ANY, _L("Printable") + "\t" + "V", "", [all_printable](wxCommandEvent&) { Selection& selection = plater()->canvas3D()->get_selection(); selection.set_printable(!all_printable); }, menu); @@ -2329,7 +2329,7 @@ void MenuFactory::append_menu_item_set_auto_drop(wxMenu* menu) wxString menu_tooltip = _L("Automatically snaps the selected object to the build plate."); wxMenuItem* menu_item_set_auto_drop = append_menu_check_item( menu, wxID_ANY, menu_text, menu_tooltip, - [this, current_auto_drop](wxCommandEvent&) { + [current_auto_drop](wxCommandEvent&) { Selection& selection = plater()->canvas3D()->get_selection(); selection.set_auto_drop(!current_auto_drop); }, @@ -2384,7 +2384,7 @@ void MenuFactory::append_menu_item_plate_name(wxMenu *menu) auto item = append_menu_item( menu, wxID_ANY, name, "", - [plate](wxCommandEvent &e) { + [](wxCommandEvent &e) { int hover_idx =plater()->canvas3D()->GetHoverId(); if (hover_idx == -1) { int plate_idx=plater()->GetPlateIndexByRightMenuInLeftUI(); diff --git a/src/slic3r/GUI/GUI_ObjectLayers.cpp b/src/slic3r/GUI/GUI_ObjectLayers.cpp index 3b36158bd1..bbd7294ae5 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.cpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.cpp @@ -223,7 +223,7 @@ void ObjectLayers::update_layers_list() // only call sizer->Clear(true) via CallAfter, otherwise crash happens in Linux when press enter in Height Range // because an element cannot be destroyed while there are pending events for this element.(https://github.com/wxWidgets/Phoenix/issues/1854) - wxGetApp().CallAfter([this, type, objects_ctrl, range]() { + wxGetApp().CallAfter([this, type, range]() { m_og->ctrl_parent()->Freeze(); // Delete all controls from options group diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index b33cc82abc..8067afd8df 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -2324,7 +2324,7 @@ void ObjectList::load_modifier(const wxArrayString& input_files, ModelObject& mo bool split_compound = wxGetApp().app_config->get_bool("is_split_compound"); model = Model::read_from_step( input_file, LoadStrategy::LoadModel, nullptr, nullptr, - [this, &is_user_cancel, &linear, &angle, &split_compound](Slic3r::Step& file, double& linear_value, + [&is_user_cancel, &linear, &angle, &split_compound](Slic3r::Step& file, double& linear_value, double& angle_value, bool& is_split) -> int { if (wxGetApp().app_config->get_bool("enable_step_mesh_setting")) { StepMeshDialog mesh_dlg(nullptr, file, linear, angle); @@ -3317,7 +3317,7 @@ void ObjectList::boolean() } } - TriangleMesh mesh = Plater::combine_mesh_fff(*object, -1, [this](const std::string& msg) {return wxGetApp().notification_manager()->push_plater_error_notification(msg); }); + TriangleMesh mesh = Plater::combine_mesh_fff(*object, -1, [](const std::string& msg) {return wxGetApp().notification_manager()->push_plater_error_notification(msg); }); // add mesh to model as a new object, keep the original object's name and config Model* model = object->get_model(); @@ -6267,7 +6267,7 @@ void GUI::ObjectList::smooth_mesh() get_selection_indexes(obj_idxs, vol_idxs); auto object_idx = obj_idxs.front(); ModelObject *obj{nullptr}; - auto show_warning_dlg = [this](int cur_face_count,std::string name,bool is_part) { + auto show_warning_dlg = [](int cur_face_count,std::string name,bool is_part) { int limit_face_count = 1000000; if (cur_face_count > limit_face_count) { auto name_str = wxString::FromUTF8(name); @@ -6280,7 +6280,7 @@ void GUI::ObjectList::smooth_mesh() } return false; }; - auto show_smooth_mesh_error_dlg = [this](std::string name) { + auto show_smooth_mesh_error_dlg = [](std::string name) { auto name_str = wxString::FromUTF8(name); auto content = wxString::Format(_L("\"%s\" part's mesh contains errors. Please repair it first."), name_str); WarningDialog dlg(static_cast<wxWindow *>(wxGetApp().mainframe), content, wxEmptyString, wxOK); diff --git a/src/slic3r/GUI/GUI_ObjectTable.cpp b/src/slic3r/GUI/GUI_ObjectTable.cpp index 1fc07bf5a2..35508c6113 100644 --- a/src/slic3r/GUI/GUI_ObjectTable.cpp +++ b/src/slic3r/GUI/GUI_ObjectTable.cpp @@ -3520,13 +3520,13 @@ void GridCellTextEditor::BeginEdit(int row, int col, wxGrid *grid) Text()->GetTextCtrl()->SetInsertionPointEnd(); - m_control->Bind(wxEVT_TEXT_ENTER, [this, row, col, grid](wxCommandEvent &e) { + m_control->Bind(wxEVT_TEXT_ENTER, [grid](wxCommandEvent &e) { grid->HideCellEditControl(); grid->SaveEditControlValue(); e.Skip(); }); - m_control->Bind(wxEVT_CHAR_HOOK, [this, row, col, grid](wxKeyEvent &e) { + m_control->Bind(wxEVT_CHAR_HOOK, [grid](wxKeyEvent &e) { if (e.GetKeyCode() == WXK_ESCAPE) { grid->HideCellEditControl(); grid->SaveEditControlValue(); diff --git a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp index e72c421a08..2290018419 100644 --- a/src/slic3r/GUI/GUI_ObjectTableSettings.cpp +++ b/src/slic3r/GUI/GUI_ObjectTableSettings.cpp @@ -184,7 +184,7 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ btn->Bind(EVT_LOCK_ENABLE, [this, btn](auto &e) { btn->SetBitmap(m_bmp_reset_focus.bmp()); }); #endif - btn->Bind(wxEVT_BUTTON, [btn, opt_key, this, is_object, object, config, group_category](wxEvent &event) { + btn->Bind(wxEVT_BUTTON, [opt_key, this, is_object, object, config, group_category](wxEvent &event) { //wxGetApp().plater()->take_snapshot(from_u8((boost::format(_utf8(L("Reset Option %s"))) % opt_key).str())); config->erase(opt_key); //btn->Hide(); @@ -204,10 +204,13 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ this->m_parent->Thaw(); #ifdef __WXOSX_MAC__ - if (!btn->IsEnabled()) { - btn->SetBitmap(m_bmp_reset_disable.bmp()); - } else { - btn->SetBitmap(m_bmp_reset_focus.bmp()); + // The handler is bound on the button, so the event source is that button. + if (auto *btn = dynamic_cast<ScalableButton *>(event.GetEventObject())) { + if (!btn->IsEnabled()) { + btn->SetBitmap(m_bmp_reset_disable.bmp()); + } else { + btn->SetBitmap(m_bmp_reset_focus.bmp()); + } } #endif }); @@ -284,13 +287,13 @@ bool ObjectTableSettings::update_settings_list(bool is_object, bool is_multiple_ m_settings_list_sizer->Add(optgroup->sizer, 0, wxEXPAND | wxALL, 0); m_og_settings.push_back(optgroup); - auto toggle_field = [this, optgroup](const t_config_option_key & opt_key, bool toggle, int opt_index) + auto toggle_field = [optgroup](const t_config_option_key & opt_key, bool toggle, int opt_index) { Field* field = optgroup->get_fieldc(opt_key, opt_index);; if (field) field->toggle(toggle); }; - auto toggle_line = [this, optgroup](const t_config_option_key &opt_key, bool toggle, int opt_index) + auto toggle_line = [optgroup](const t_config_option_key &opt_key, bool toggle, int opt_index) { Line* line = optgroup->get_line(opt_key); if (line) line->toggle_visible = toggle; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index b5273e3024..273bb94b90 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -3596,7 +3596,7 @@ void GLGizmoCut3D::perform_cut(const Selection& selection) // model_name failing reason std::vector<std::pair<std::string, std::string>> failed_models; auto plater = wxGetApp().plater(); - auto fix_and_update_progress = [this, plater, keep_painting](ModelObject *model_object, const int vol_idx, const string &model_name, ProgressDialog &progress_dlg, + auto fix_and_update_progress = [keep_painting](ModelObject *model_object, const int vol_idx, const string &model_name, ProgressDialog &progress_dlg, std::vector<std::string> &succes_models, std::vector<std::pair<std::string, std::string>> &failed_models) { wxString msg = _L("Repairing model object"); msg += ": " + from_u8(model_name) + "\n"; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp index c7186e5d80..8b12da14f9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp @@ -223,7 +223,7 @@ void GLGizmoMeshBoolean::on_render_input_window(float x, float y, float bottom_l const int select_btn_length = 2 * ImGui::GetStyle().FramePadding.x + std::max(ImGui::CalcTextSize(("1 " + _u8L("selected")).c_str()).x, ImGui::CalcTextSize(_u8L("Select").c_str()).x); - auto selectable = [this](const std::string& label, bool selected, const ImVec2& size_arg) { + auto selectable = [](const std::string& label, bool selected, const ImVec2& size_arg) { ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, { 0,0 }); ImGuiWindow* window = ImGui::GetCurrentWindow(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp index 8f0cd9a43d..3dcf51cbb5 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp @@ -1456,7 +1456,7 @@ void TriangleSelectorPatch::update_triangles_per_patch() return touching_triangles; }; - auto calc_fragment_area = [this](const TrianglePatch& patch, float max_limit_area, int stride) { + auto calc_fragment_area = [](const TrianglePatch& patch, float max_limit_area, int stride) { double total_area = 0.f; const std::vector<int>& ti = patch.triangle_indices; /*for (int i = 0; i < ti.size() / 3; i++) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 7882cf2269..9cff834346 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -1003,7 +1003,7 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) // number waits briefly for a second one. const int digit = keyCode - '0'; const int shortcut_max = int(GLGizmoMmuSegmentation::EXTRUDERS_LIMIT); - auto can_start_two_digit = [shortcut_max](int d) { return d > 0 && d * 10 <= shortcut_max; }; + auto can_start_two_digit = [](int d) { return d > 0 && d * 10 <= shortcut_max; }; auto select = [mmu_seg](int number) { return number > 0 && mmu_seg->on_number_key_down(number); }; if (m_timer_set_color.IsRunning() && m_pending_color_shortcut_tens > 0) { diff --git a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp index d7b082426c..7c4a2afd38 100644 --- a/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp +++ b/src/slic3r/GUI/Gizmos/GizmoObjectManipulation.cpp @@ -239,7 +239,7 @@ void GizmoObjectManipulation::update_if_dirty() }; for (int i = 0; i < 3; ++ i) { - auto update = [this, i](Vec3d &cached, Vec3d &cached_rounded, const Vec3d &new_value) { + auto update = [i](Vec3d &cached, Vec3d &cached_rounded, const Vec3d &new_value) { //wxString new_text = double_to_string(new_value(i), 2); double new_rounded = round(new_value(i)*100)/100.0; //new_text.ToDouble(&new_rounded); diff --git a/src/slic3r/GUI/HMS.cpp b/src/slic3r/GUI/HMS.cpp index 5471c16064..f00e661df2 100644 --- a/src/slic3r/GUI/HMS.cpp +++ b/src/slic3r/GUI/HMS.cpp @@ -46,7 +46,7 @@ int get_hms_info_version(std::string& version) std::string url = (boost::format("https://%1%/GetVersion.php?%2%") % hms_host % query_params).str(); Slic3r::Http http = Slic3r::Http::get(url); http.timeout_max(10) - .on_complete([&result, &version](std::string body, unsigned status){ + .on_complete([&version](std::string body, unsigned status){ try { json j = json::parse(body); if (j.contains("ver")) { @@ -95,7 +95,7 @@ int HMSQuery::download_hms_related(const std::string& hms_type, const std::strin BOOST_LOG_TRIVIAL(info) << "hms: download url = " << url; Slic3r::Http http = Slic3r::Http::get(url); - http.on_complete([this, receive_json, hms_type, &to_save_local, &j, & local_version](std::string body, unsigned status) { + http.on_complete([receive_json, hms_type, &to_save_local, &j, & local_version](std::string body, unsigned status) { try { j = json::parse(body); if (j.contains("result")) { diff --git a/src/slic3r/GUI/Jobs/FillBedJob.cpp b/src/slic3r/GUI/Jobs/FillBedJob.cpp index a9a66cb96f..5364cb5648 100644 --- a/src/slic3r/GUI/Jobs/FillBedJob.cpp +++ b/src/slic3r/GUI/Jobs/FillBedJob.cpp @@ -184,7 +184,7 @@ void FillBedJob::prepare() ap.poly = m_selected.front().poly; ap.bed_idx = PartPlateList::MAX_PLATES_COUNT; ap.itemid = -1; - ap.setter = [this, mi, offset](const ArrangePolygon &p) { + ap.setter = [this, offset](const ArrangePolygon &p) { ModelObject *mo = m_plater->model().objects[m_object_idx]; ModelObject *obj; if (m_instances) { diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index d79deb955b..dae05494e3 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -135,7 +135,6 @@ void PrintJob::process(Ctl &ctl) { /* display info */ std::string msg; - wxString error_str; int curr_percent = 10; NetworkAgent* m_agent = wxGetApp().getAgent(); AppConfig* config = wxGetApp().app_config; @@ -402,9 +401,7 @@ void PrintJob::process(Ctl &ctl) &is_try_lan_mode, &is_try_lan_mode_failed, &msg, - &error_str, &curr_percent, - &error_text, StagePercentPoint ](int stage, int code, std::string info) { @@ -491,7 +488,7 @@ void PrintJob::process(Ctl &ctl) DeviceManager* dev = wxGetApp().getDeviceManager(); MachineObject* obj = dev->get_selected_machine(); - auto wait_fn = [this, &ctl, curr_percent, &obj](int state, std::string job_info) { + auto wait_fn = [&ctl, &obj](int state, std::string job_info) { BOOST_LOG_TRIVIAL(info) << "print_job: get_job_info = " << job_info; if (!obj->is_support_wait_sending_finish) { diff --git a/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp b/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp index f97b03bf62..7f8219008f 100644 --- a/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp +++ b/src/slic3r/GUI/Jobs/RotoptimizeJob.cpp @@ -55,7 +55,7 @@ void RotoptimizeJob::process(Ctl &ctl) sla::RotOptimizeParams{} .accuracy(m_accuracy) .print_config(&m_default_print_cfg) - .statucb([this, &prev_status, &ctl/*, &statustxt*/](int s) + .statucb([&ctl/*, &statustxt*/](int s) { return !ctl.was_canceled(); }); diff --git a/src/slic3r/GUI/Jobs/SendJob.cpp b/src/slic3r/GUI/Jobs/SendJob.cpp index bb52367188..67ce02b476 100644 --- a/src/slic3r/GUI/Jobs/SendJob.cpp +++ b/src/slic3r/GUI/Jobs/SendJob.cpp @@ -213,7 +213,6 @@ void SendJob::process(Ctl &ctl) params.password = m_access_code; params.use_ssl_for_ftp = m_local_use_ssl_for_ftp; params.use_ssl_for_mqtt = m_local_use_ssl; - wxString error_text; std::string msg_text; const int StagePercentPoint[(int)PrintingStageFinished + 1] = { @@ -227,7 +226,7 @@ void SendJob::process(Ctl &ctl) }; auto update_fn = [this, &ctl, - &msg, &curr_percent, &error_text, StagePercentPoint](int stage, int code, std::string info) { + &msg, &curr_percent, StagePercentPoint](int stage, int code, std::string info) { if (stage == SendingPrintJobStage::PrintingStageCreate) { if (this->connection_type == "lan") { msg = _u8L("Sending G-code file over LAN"); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 5f7d69244e..a81cb72ab9 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -746,7 +746,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ evt.Skip(); }); - Bind(wxEVT_SHOW, [this](wxShowEvent &evt) { + Bind(wxEVT_SHOW, [](wxShowEvent &evt) { DeviceManager *manger = wxGetApp().getDeviceManager(); if (manger) { evt.IsShown() ? manger->start_refresher() : manger->stop_refresher(); @@ -2855,7 +2855,7 @@ void MainFrame::init_menubar_as_editor() [this]() { return can_add_models(); }); append_menu_item(import_menu, wxID_ANY, _L("Import Configs") + dots /*+ "\t" + ctrl + "I"*/, _L("Load configs"), [this](wxCommandEvent&) { load_config_file(); }, "menu_import", nullptr, - [this](){return true; }, this); + [](){return true; }, this); append_submenu(fileMenu, import_menu, wxID_ANY, _L("Import"), ""); @@ -2968,7 +2968,7 @@ void MainFrame::init_menubar_as_editor() _L("Duplicate the current plate"),[this](wxCommandEvent&) { m_plater->duplicate_plate(); }, - "menu_remove", nullptr, [this](){return true;}, this); + "menu_remove", nullptr, [](){return true;}, this); editMenu->AppendSeparator(); #else // BBS undo @@ -3135,13 +3135,13 @@ void MainFrame::init_menubar_as_editor() //BBS perspective view wxWindowID camera_id_base = wxWindow::NewControlId(int(wxID_CAMERA_COUNT)); auto perspective_item = append_menu_radio_item(viewMenu, wxID_CAMERA_PERSPECTIVE + camera_id_base, _L("Use Perspective View"), _L("Use Perspective View"), - [this](wxCommandEvent&) { + [](wxCommandEvent&) { wxGetApp().app_config->set_bool("use_perspective_camera", true); wxGetApp().update_ui_from_settings(); }, nullptr); //BBS orthogonal view auto orthogonal_item = append_menu_radio_item(viewMenu, wxID_CAMERA_ORTHOGONAL + camera_id_base, _L("Use Orthogonal View"), _L("Use Orthogonal View"), - [this](wxCommandEvent&) { + [](wxCommandEvent&) { wxGetApp().app_config->set_bool("use_perspective_camera", false); wxGetApp().update_ui_from_settings(); }, nullptr); @@ -3157,7 +3157,7 @@ void MainFrame::init_menubar_as_editor() m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return is_prepare_or_preview_tab(); }, - [this]() { return wxGetApp().app_config->get_bool("auto_perspective"); }, this); + []() { return wxGetApp().app_config->get_bool("auto_perspective"); }, this); viewMenu->AppendSeparator(); append_menu_check_item(viewMenu, wxID_ANY, _L("Show &G-code Window") + sep + "C", _L("Show G-code window in Preview scene."), @@ -3166,7 +3166,7 @@ void MainFrame::init_menubar_as_editor() m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return m_tabpanel->GetSelectedPageName() == TAB_ID_PREVIEW; }, - [this]() { return wxGetApp().show_gcode_window(); }, this); + []() { return wxGetApp().show_gcode_window(); }, this); append_menu_check_item( viewMenu, wxID_ANY, _L("Show 3D Navigator"), _L("Show 3D navigator in Prepare and Preview scene."), @@ -3175,7 +3175,7 @@ void MainFrame::init_menubar_as_editor() m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return is_prepare_or_preview_tab(); }, - [this]() { return wxGetApp().show_3d_navigator(); }, this); + []() { return wxGetApp().show_3d_navigator(); }, this); append_menu_check_item(viewMenu, wxID_ANY, _L("Show Gridlines"), _L("Show Gridlines on plate"), [this](wxCommandEvent&) { @@ -3183,7 +3183,7 @@ void MainFrame::init_menubar_as_editor() m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return is_prepare_or_preview_tab(); }, - [this]() { return wxGetApp().show_plate_gridlines(); }, this); + []() { return wxGetApp().show_plate_gridlines(); }, this); append_menu_item( viewMenu, wxID_ANY, _L("Reset Window Layout"), _L("Reset to default window layout"), @@ -3212,7 +3212,7 @@ void MainFrame::init_menubar_as_editor() m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return m_tabpanel->GetSelectedPageName() == TAB_ID_PREPARE; }, - [this]() { return wxGetApp().show_outline(); }, this); + []() { return wxGetApp().show_outline(); }, this); /*viewMenu->AppendSeparator(); append_menu_check_item(viewMenu, wxID_ANY, _L("Show &Wireframe") + "\t" + ctrl + shift + _L("Enter"), _L("Show wireframes in 3D scene."), @@ -3361,7 +3361,7 @@ void MainFrame::init_menubar_as_editor() append_menu_item( m_topbar->GetTopMenu(), wxID_ANY, _L("Preferences") + "\t" + ctrl + "P", "", - [this](wxCommandEvent &) { + [](wxCommandEvent &) { // Orca: Use GUI_App::open_preferences instead of direct call so windows associations are updated on exit wxGetApp().open_preferences(); }, @@ -3393,14 +3393,14 @@ void MainFrame::init_menubar_as_editor() into_u8(_L("Syncing presets from cloud\u2026"))); wxGetApp().restart_sync_user_preset(); }, "", nullptr, - [this]() { + []() { return wxGetApp().is_user_login() && !wxGetApp().app_config->get_stealth_mode(); }, this); top_menu->AppendSeparator(); append_menu_item( top_menu, wxID_ANY, _L("Plugins") + "\t", "", - [this](wxCommandEvent &) { + [](wxCommandEvent &) { wxGetApp().open_plugins_dialog(); }, "", nullptr, []() { return true; }, this); @@ -3501,7 +3501,7 @@ void MainFrame::init_menubar_as_editor() [this]() {return m_plater->is_view3D_shown();; }, this); // help - append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Calibration Guide"), _L("Calibration Guide"), [this](wxCommandEvent &) + append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Calibration Guide"), _L("Calibration Guide"), [](wxCommandEvent &) { wxLaunchDefaultBrowser("https://www.orcaslicer.com/wiki/calibration_guide", wxBROWSER_NEW_WINDOW); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); diff --git a/src/slic3r/GUI/MultiMachine.cpp b/src/slic3r/GUI/MultiMachine.cpp index f5ffd1319f..c0e84f40e9 100644 --- a/src/slic3r/GUI/MultiMachine.cpp +++ b/src/slic3r/GUI/MultiMachine.cpp @@ -217,7 +217,7 @@ std::vector<DeviceItem*> selected_machines(const std::vector<DeviceItem*>& dev_i SortItem::SortItem() { - sort_map.emplace(std::make_pair(SortRule::SR_None, [this](const DeviceItem* d1, const DeviceItem* d2) { + sort_map.emplace(std::make_pair(SortRule::SR_None, [](const DeviceItem* d1, const DeviceItem* d2) { return d1->state_dev_name > d2->state_dev_name; })); sort_map.emplace(std::make_pair(SortRule::SR_DEV_NAME, [this](const DeviceItem* d1, const DeviceItem* d2) { diff --git a/src/slic3r/GUI/MultiMachineManagerPage.cpp b/src/slic3r/GUI/MultiMachineManagerPage.cpp index d6531cc8d4..792c23fb13 100644 --- a/src/slic3r/GUI/MultiMachineManagerPage.cpp +++ b/src/slic3r/GUI/MultiMachineManagerPage.cpp @@ -19,7 +19,7 @@ MultiMachineItem::MultiMachineItem(wxWindow* parent, MachineObject* obj) Bind(wxEVT_LEAVE_WINDOW, &MultiMachineItem::OnLeaveWindow, this); Bind(wxEVT_LEFT_DOWN, &MultiMachineItem::OnLeftDown, this); Bind(wxEVT_MOTION, &MultiMachineItem::OnMove, this); - Bind(EVT_MULTI_DEVICE_VIEW, [this, obj](auto& e) { + Bind(EVT_MULTI_DEVICE_VIEW, [obj](auto& e) { wxGetApp().mainframe->jump_to_monitor(obj->get_dev_id()); if (wxGetApp().mainframe->m_monitor->get_status_panel()->get_media_play_ctrl()) { wxGetApp().mainframe->m_monitor->get_status_panel()->get_media_play_ctrl()->jump_to_play(); diff --git a/src/slic3r/GUI/MultiMachinePage.cpp b/src/slic3r/GUI/MultiMachinePage.cpp index 88d03007b9..dd67e099a0 100644 --- a/src/slic3r/GUI/MultiMachinePage.cpp +++ b/src/slic3r/GUI/MultiMachinePage.cpp @@ -80,7 +80,7 @@ void MultiMachinePage::init_tabpanel() sizer_side_tools->Add(m_side_tools, 1, wxEXPAND, 0); m_tabpanel = new Tabbook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, sizer_side_tools, wxNB_LEFT | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME); m_tabpanel->SetBackgroundColour(wxColour("#FEFFFF")); - m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [this](wxBookCtrlEvent& e) {; }); + m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [](wxBookCtrlEvent& e) {; }); m_local_task_manager = new LocalTaskManagerPage(m_tabpanel); m_cloud_task_manager = new CloudTaskManagerPage(m_tabpanel); diff --git a/src/slic3r/GUI/MultiTaskManagerPage.cpp b/src/slic3r/GUI/MultiTaskManagerPage.cpp index bca2de8761..48a7fbe43e 100644 --- a/src/slic3r/GUI/MultiTaskManagerPage.cpp +++ b/src/slic3r/GUI/MultiTaskManagerPage.cpp @@ -783,7 +783,7 @@ void LocalTaskManagerPage::refresh_user_device(bool clear) mtitem->m_send_time = task_state_info->get_sent_time(); mtitem->state_local_task = task_state_info->state(); - task_state_info->set_state_changed_fn([this, mtitem](TaskState state, int percent) { + task_state_info->set_state_changed_fn([mtitem](TaskState state, int percent) { mtitem->state_local_task = state; if (state == TaskState::TS_SEND_COMPLETED) { diff --git a/src/slic3r/GUI/NetworkPluginDialog.cpp b/src/slic3r/GUI/NetworkPluginDialog.cpp index bc898d0d24..42e1fc5fc5 100644 --- a/src/slic3r/GUI/NetworkPluginDialog.cpp +++ b/src/slic3r/GUI/NetworkPluginDialog.cpp @@ -156,14 +156,14 @@ void NetworkPluginDownloadDialog::create_update_available_ui(const std::string& auto daa_chk = new CheckBox(this); daa_chk->SetValue(cfg->is_network_update_prompt_disabled()); - daa_chk->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e){ + daa_chk->Bind(wxEVT_TOGGLEBUTTON, [](wxCommandEvent& e){ auto cfg = wxGetApp().app_config; cfg->set_network_update_prompt_disabled(e.IsChecked()); cfg->save(); }); auto daa_str = new Label(this, _L("Don't Ask Again")); - auto on_toggle = [this, daa_chk]() { + auto on_toggle = [daa_chk]() { daa_chk->SetValue(!daa_chk->GetValue()); wxCommandEvent evt(wxEVT_TOGGLEBUTTON, daa_chk->GetId()); evt.SetEventObject(daa_chk); diff --git a/src/slic3r/GUI/NetworkTestDialog.cpp b/src/slic3r/GUI/NetworkTestDialog.cpp index 78f395febc..53876d9f97 100644 --- a/src/slic3r/GUI/NetworkTestDialog.cpp +++ b/src/slic3r/GUI/NetworkTestDialog.cpp @@ -268,7 +268,7 @@ void NetworkTestDialog::start_test_url(TestJob job, wxString name, wxString url) int result = -1; http.timeout_max(10) - .on_complete([this, &result](std::string body, unsigned status) { + .on_complete([&result](std::string body, unsigned status) { try { if (status == 200) { result = 0; diff --git a/src/slic3r/GUI/Notebook.cpp b/src/slic3r/GUI/Notebook.cpp index 673508454a..67c1831e4d 100644 --- a/src/slic3r/GUI/Notebook.cpp +++ b/src/slic3r/GUI/Notebook.cpp @@ -56,7 +56,7 @@ ButtonsListCtrl::ButtonsListCtrl(wxWindow *parent, wxBoxSizer* side_tools) : // BBS: disable custom paint //this->Bind(wxEVT_PAINT, &ButtonsListCtrl::OnPaint, this); - Bind(wxEVT_SYS_COLOUR_CHANGED, [this](auto& e){ + Bind(wxEVT_SYS_COLOUR_CHANGED, [](auto& e){ }); } diff --git a/src/slic3r/GUI/OG_CustomCtrl.cpp b/src/slic3r/GUI/OG_CustomCtrl.cpp index 2ee94dbeeb..4fce046162 100644 --- a/src/slic3r/GUI/OG_CustomCtrl.cpp +++ b/src/slic3r/GUI/OG_CustomCtrl.cpp @@ -158,7 +158,7 @@ wxPoint OG_CustomCtrl::get_pos(const Line& line, Field* field_in/* = nullptr*/) ctrl_line.height = size.y; }; - auto add_buttons_width = [&h_pos, this] (int blinking_button_width) { + auto add_buttons_width = [&h_pos] (int blinking_button_width) { #ifndef DISABLE_BLINKING # ifndef DISABLE_UNDO_SYS h_pos += 3 * blinking_button_width; diff --git a/src/slic3r/GUI/ObjColorDialog.cpp b/src/slic3r/GUI/ObjColorDialog.cpp index 47f62aa168..d5a37fc9a7 100644 --- a/src/slic3r/GUI/ObjColorDialog.cpp +++ b/src/slic3r/GUI/ObjColorDialog.cpp @@ -254,7 +254,7 @@ ObjColorPanel::ObjColorPanel(wxWindow *parent, Slic3r::ObjDialogInOut &in_out, c m_color_cluster_num_by_user_ebox->Bind(wxEVT_TEXT_ENTER, on_apply_color_cluster_text_modify); m_color_cluster_num_by_user_ebox->Bind(wxEVT_SPINCTRL, on_apply_color_cluster_text_modify); - m_color_cluster_num_by_user_ebox->Bind(wxEVT_CHAR, [this](wxKeyEvent &e) { + m_color_cluster_num_by_user_ebox->Bind(wxEVT_CHAR, [](wxKeyEvent &e) { int keycode = e.GetKeyCode(); wxString input_char = wxString::Format("%c", keycode); long value; diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp index 7d054d8a1b..a0834666ad 100644 --- a/src/slic3r/GUI/ParamsPanel.cpp +++ b/src/slic3r/GUI/ParamsPanel.cpp @@ -128,7 +128,7 @@ wxBoxSizer *TipsDialog::create_item_checkbox(wxString title, wxWindow *parent, w m_show_again = wxGetApp().app_config->has(param); checkbox->SetValue(m_show_again); - checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, checkbox, param](wxCommandEvent &e) { + checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, param](wxCommandEvent &e) { m_show_again = m_show_again ? false : true; e.Skip(); }); @@ -290,11 +290,11 @@ ParamsPanel::ParamsPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, c m_compare_btn = new ScalableButton(m_top_panel, wxID_ANY, "compare", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, true); m_compare_btn->SetToolTip(_L("Compare presets")); - m_compare_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { wxGetApp().mainframe->diff_dialog.show(); })); + m_compare_btn->Bind(wxEVT_BUTTON, ([](wxCommandEvent e) { wxGetApp().mainframe->diff_dialog.show(); })); m_setting_btn = new ScalableButton(m_top_panel, wxID_ANY, "table", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, true); m_setting_btn->SetToolTip(_L("View all object's settings")); - m_setting_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &) { wxGetApp().plater()->PopupObjectTable(-1, -1, {0, 0}); }); + m_setting_btn->Bind(wxEVT_BUTTON, [](wxCommandEvent &) { wxGetApp().plater()->PopupObjectTable(-1, -1, {0, 0}); }); m_highlighter.set_timer_owner(this, 0); this->Bind(wxEVT_TIMER, [this](wxTimerEvent &) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 2b1a558fe9..067b1fcd04 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1340,7 +1340,7 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title if (index >= 0) label_flow->SetMinSize({FromDIP(80), -1}); auto combo_flow = new ComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY); combo_flow->GetDropDown().SetUseContentWidth(true); - combo_flow->Bind(wxEVT_COMBOBOX, [this, index, combo_flow](wxCommandEvent &evt) { + combo_flow->Bind(wxEVT_COMBOBOX, [index, combo_flow](wxCommandEvent &evt) { auto printer_tab = dynamic_cast<TabPrinter *>(wxGetApp().get_tab(Preset::TYPE_PRINTER)); NozzleVolumeType volume_type = NozzleVolumeType(intptr_t(combo_flow->GetClientData(evt.GetInt()))); printer_tab->set_extruder_volume_type(index, volume_type); @@ -1400,7 +1400,7 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title btn_up = new ScalableButton(this, wxID_ANY, "page_up", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); btn_up->SetBackgroundColour(*wxWHITE); - btn_up->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) { + btn_up->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &evt) { if (page_cur > 0) --page_cur; update_ams(); @@ -1408,7 +1408,7 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title btn_up->Hide(); btn_down = new ScalableButton(this, wxID_ANY, "page_down", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); btn_down->SetBackgroundColour(*wxWHITE); - btn_down->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) { + btn_down->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &evt) { if (page_cur + 1 < page_num) ++page_cur; update_ams(); @@ -2025,7 +2025,7 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material, bool is_man if (!this->plater) return false; - this->plater->update_objects_position_when_select_preset([&obj, machine_preset]() { + this->plater->update_objects_position_when_select_preset([machine_preset]() { Tab *printer_tab = GUI::wxGetApp().get_tab(Preset::Type::TYPE_PRINTER); printer_tab->select_preset(machine_preset->name); }); @@ -2170,7 +2170,7 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material, bool is_man void Sidebar::priv::update_sync_status(const MachineObject *obj) { StateColor not_synced_colour(std::pair<wxColour, int>(wxColour("#009688"), StateColor::Normal)); - auto clear_all_sync_status = [this, ¬_synced_colour]() { + auto clear_all_sync_status = [this]() { panel_printer_preset->ShowBadge(false); panel_printer_bed->ShowBadge(false); panel_nozzle_dia->ShowBadge(false); // ORCA add support for nozzle sync @@ -2474,7 +2474,7 @@ Sidebar::Sidebar(Plater *parent) p->m_printer_icon = new ScalableButton(p->m_panel_printer_title, wxID_ANY, "printer"); p->m_text_printer_settings = new Label(p->m_panel_printer_title, _L("Printer"), LB_PROPAGATE_MOUSE_EVENT | wxST_ELLIPSIZE_END); - p->m_printer_icon->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e) { + p->m_printer_icon->Bind(wxEVT_BUTTON, [](wxCommandEvent& e) { //auto wizard_t = new ConfigWizard(wxGetApp().mainframe); //wizard_t->run(ConfigWizard::RR_USER, ConfigWizard::SP_CUSTOM); }); @@ -2495,7 +2495,7 @@ Sidebar::Sidebar(Plater *parent) }); p->m_printer_setting = new ScalableButton(p->m_panel_printer_title, wxID_ANY, "settings"); - p->m_printer_setting->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) { + p->m_printer_setting->Bind(wxEVT_BUTTON, [](wxCommandEvent &e) { // p->editing_filament = -1; // wxGetApp().params_dialog()->Popup(); // wxGetApp().get_tab(Preset::TYPE_FILAMENT)->restore_last_select_item(); @@ -2610,8 +2610,8 @@ Sidebar::Sidebar(Plater *parent) p->image_printer->SetBackgroundColour(bg_color); p->combo_printer->SetBackgroundColour(bg_color); // paints margins instead combo background }; - p->combo_printer->Bind(wxEVT_SET_FOCUS, [this, printer_focus_bg](auto& e) {printer_focus_bg(true ); e.Skip();}); - p->combo_printer->Bind(wxEVT_KILL_FOCUS, [this, printer_focus_bg](auto& e) {printer_focus_bg(false); e.Skip();}); + p->combo_printer->Bind(wxEVT_SET_FOCUS, [printer_focus_bg](auto& e) {printer_focus_bg(true ); e.Skip();}); + p->combo_printer->Bind(wxEVT_KILL_FOCUS, [printer_focus_bg](auto& e) {printer_focus_bg(false); e.Skip();}); /* ORCA This part moved to titlebar p->btn_connect_printer = new ScalableButton(p->panel_printer_preset, wxID_ANY, "monitor_signal_strong"); @@ -2688,8 +2688,8 @@ Sidebar::Sidebar(Plater *parent) p->label_nozzle_type->SetBackgroundColour(bg_color); p->combo_nozzle_dia->SetBackgroundColour(bg_color); // paints margins instead combo background }; - p->combo_nozzle_dia->Bind(wxEVT_SET_FOCUS, [this, nozzle_focus_bg](auto& e) {nozzle_focus_bg(true ); e.Skip();}); - p->combo_nozzle_dia->Bind(wxEVT_KILL_FOCUS, [this, nozzle_focus_bg](auto& e) {nozzle_focus_bg(false); e.Skip();}); + p->combo_nozzle_dia->Bind(wxEVT_SET_FOCUS, [nozzle_focus_bg](auto& e) {nozzle_focus_bg(true ); e.Skip();}); + p->combo_nozzle_dia->Bind(wxEVT_KILL_FOCUS, [nozzle_focus_bg](auto& e) {nozzle_focus_bg(false); e.Skip();}); p->label_nozzle_type = new Label(p->panel_nozzle_dia, "Brass", LB_PROPAGATE_MOUSE_EVENT | wxST_ELLIPSIZE_END | wxALIGN_CENTRE_HORIZONTAL); p->label_nozzle_type->SetFont(Label::Body_10); @@ -2763,8 +2763,8 @@ Sidebar::Sidebar(Plater *parent) p->image_printer_bed->SetBackgroundColour(bg_color); p->combo_printer_bed->SetBackgroundColour(bg_color); // paints margins instead combo background }; - p->combo_printer_bed->Bind(wxEVT_SET_FOCUS, [this, bed_focus_bg](auto& e) {bed_focus_bg(true ); e.Skip();}); - p->combo_printer_bed->Bind(wxEVT_KILL_FOCUS, [this, bed_focus_bg](auto& e) {bed_focus_bg(false); e.Skip();}); + p->combo_printer_bed->Bind(wxEVT_SET_FOCUS, [bed_focus_bg](auto& e) {bed_focus_bg(true ); e.Skip();}); + p->combo_printer_bed->Bind(wxEVT_KILL_FOCUS, [bed_focus_bg](auto& e) {bed_focus_bg(false); e.Skip();}); // highlight border on hover auto printer_bed_hovered = std::make_shared<std::unordered_set<wxWindow*>>(); @@ -2978,7 +2978,7 @@ Sidebar::Sidebar(Plater *parent) ScalableButton* add_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "add_filament"); add_btn->SetToolTip(_L("Add one filament")); - add_btn->Bind(wxEVT_BUTTON, [this, scrolled_sizer](wxCommandEvent& e){ + add_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e){ add_filament(); update_filaments_counter(); }); @@ -2988,7 +2988,7 @@ Sidebar::Sidebar(Plater *parent) ScalableButton* del_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "delete_filament"); del_btn->SetToolTip(_L("Remove last filament")); - del_btn->Bind(wxEVT_BUTTON, [this, scrolled_sizer](wxCommandEvent &e) { + del_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) { delete_filament(); update_filaments_counter(); }); @@ -3002,7 +3002,7 @@ Sidebar::Sidebar(Plater *parent) ams_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "ams_fila_sync", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 16); // ORCA match icon size with other icons as 16x16 ams_btn->SetToolTip(_L("Synchronize filament list from AMS")); - ams_btn->Bind(wxEVT_BUTTON, [this, scrolled_sizer](wxCommandEvent &e) { + ams_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) { sync_ams_list(); }); @@ -3682,7 +3682,7 @@ void Sidebar::update_presets(Preset::Type preset_type) extruder.combo_flow->SetSelection(select); }; - auto update_extruder_diameter = [&diameters, &diameter, &nozzle_diameter](int extruder_index,ExtruderGroup & extruder) { + auto update_extruder_diameter = [&diameters, &nozzle_diameter](int extruder_index,ExtruderGroup & extruder) { extruder.combo_diameter->Clear(); int select = -1; // ORCA get the actual nozzle diameter from printer config @@ -7497,7 +7497,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) // Keep tracking the current sidebar size, by storing it using `best_size`, which will be stored // in the config and re-applied when the app is opened again. - this->sidebar->Bind(wxEVT_IDLE, [&sidebar, this](wxIdleEvent& e) { + this->sidebar->Bind(wxEVT_IDLE, [&sidebar](wxIdleEvent& e) { if (sidebar.IsShown() && sidebar.IsDocked() && sidebar.rect.GetWidth() > 0) { sidebar.BestSize(sidebar.rect.GetWidth(), sidebar.best_size.GetHeight()); } @@ -7796,8 +7796,8 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) wxGetApp().removable_drive_manager()->init(this->q); #ifdef _WIN32 //Trigger enumeration of removable media on Win32 notification. - this->q->Bind(EVT_VOLUME_ATTACHED, [this](VolumeAttachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); }); - this->q->Bind(EVT_VOLUME_DETACHED, [this](VolumeDetachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); }); + this->q->Bind(EVT_VOLUME_ATTACHED, [](VolumeAttachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); }); + this->q->Bind(EVT_VOLUME_DETACHED, [](VolumeDetachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); }); #endif /* _WIN32 */ } @@ -8354,7 +8354,6 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ const float LOAD_MODEL_RATIO = 0.9; for (size_t i = 0; i < input_files.size(); ++i) { - int file_percent = 0; #ifdef _WIN32 auto path = input_files[i]; @@ -8403,7 +8402,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ q->skip_thumbnail_invalid = true; model = Slic3r::Model::read_from_archive(path.string(), &config_loaded, &config_substitutions, en_3mf_file_type, strategy, &plate_data, &project_presets, &file_version, - [this, &dlg, real_filename, &progress_percent, &file_percent, stage_percent, INPUT_FILES_RATIO, total_files, i, + [&dlg, real_filename, &progress_percent, stage_percent, INPUT_FILES_RATIO, total_files, i, &is_user_cancel](int import_stage, int current, int total, bool &cancel) { bool cont = true; float percent_float = (100.0f * (float)i / (float)total_files) + INPUT_FILES_RATIO * ((float)stage_percent[import_stage] + (float)current * (float)(stage_percent[import_stage + 1] - stage_percent[import_stage]) /(float) total) / (float)total_files; @@ -8986,7 +8985,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ Semver file_version; //ObjImportColorFn obj_color_fun=nullptr; - auto obj_color_fun = [this, &path](ObjDialogInOut &in_out) { + auto obj_color_fun = [&path](ObjDialogInOut &in_out) { if (!boost::iends_with(path.string(), ".obj")) { return; } const std::vector<std::string> extruder_colours = wxGetApp().plater()->get_extruder_colors_from_plater_config(); @@ -9003,7 +9002,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ if (angle <= 0) angle = 0.5; bool split_compound = wxGetApp().app_config->get_bool("is_split_compound"); model = Slic3r::Model:: read_from_step(path.string(), strategy, - [this, &dlg, real_filename, &progress_percent, &file_percent, step_percent, INPUT_FILES_RATIO, total_files, i](int load_stage, int current, int total, bool &cancel) + [&dlg, real_filename, &progress_percent, step_percent, INPUT_FILES_RATIO, total_files, i](int load_stage, int current, int total, bool &cancel) { bool cont = true; float percent_float = (100.0f * (float)i / (float)total_files) + INPUT_FILES_RATIO * ((float)step_percent[load_stage] + (float)current * (float)(step_percent[load_stage + 1] - step_percent[load_stage]) / (float)total) / (float)total_files; @@ -9027,7 +9026,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ } } }, - [this, &path, &is_user_cancel, &linear, &angle, &split_compound](Slic3r::Step& file, double& linear_value, double& angle_value, bool& is_split)-> int { + [&is_user_cancel, &linear, &angle, &split_compound](Slic3r::Step& file, double& linear_value, double& angle_value, bool& is_split)-> int { if (wxGetApp().app_config->get_bool("enable_step_mesh_setting")) { StepMeshDialog mesh_dlg(nullptr, file, linear, angle); if (mesh_dlg.ShowModal() == wxID_OK) { @@ -9048,7 +9047,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ }else { model = Slic3r::Model:: read_from_file( path.string(), nullptr, nullptr, strategy, &plate_data, &project_presets, &is_xxx, &file_version, nullptr, - [this, &dlg, real_filename, &progress_percent, &file_percent, INPUT_FILES_RATIO, total_files, i, &designer_model_id, &designer_country_code](int current, int total, bool &cancel, std::string &mode_id, std::string &code) + [&dlg, real_filename, &progress_percent, INPUT_FILES_RATIO, total_files, i, &designer_model_id, &designer_country_code](int current, int total, bool &cancel, std::string &mode_id, std::string &code) { designer_model_id = mode_id; designer_country_code = code; @@ -11294,7 +11293,7 @@ void Plater::priv::reload_from_disk() // load one file at a time for (size_t i = 0; i < input_paths.size(); ++i) { const auto& path = input_paths[i].string(); - auto obj_color_fun = [this, &path](ObjDialogInOut &in_out) { + auto obj_color_fun = [&path](ObjDialogInOut &in_out) { if (!boost::iends_with(path, ".obj")) { return; } const std::vector<std::string> extruder_colours = wxGetApp().plater()->get_extruder_colors_from_plater_config(); ObjColorDialog color_dlg(nullptr, in_out, extruder_colours, Sidebar::should_show_SEMM_buttons()); @@ -15265,7 +15264,7 @@ void Plater::import_model_id(wxString download_info) p->project.reset(); /* prepare project and profile */ - boost::thread import_thread = Slic3r::create_thread([&percent, &cont, &cancel, &retry_count, max_retries, &msg, &target_path, &download_ok, download_url, &filename] { + boost::thread import_thread = Slic3r::create_thread([&percent, &cont, &retry_count, &msg, &target_path, &download_ok, download_url, &filename] { // Orca: NetworkAgent is not needed and only prevents this from running // NetworkAgent* m_agent = Slic3r::GUI::wxGetApp().getAgent(); @@ -15372,7 +15371,7 @@ void Plater::import_model_id(wxString download_info) msg = wxString::Format(_L("Project downloaded %d%%"), percent); } }) - .on_error([&msg, &cont, &retry_count, max_retries](std::string body, std::string error, unsigned http_status) { + .on_error([&msg, &cont, &retry_count](std::string body, std::string error, unsigned http_status) { (void)body; BOOST_LOG_TRIVIAL(error) << format("Error getting: `%1%`: HTTP %2%, %3%", body, diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 8f3ac17f7c..355c4a26a8 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -519,7 +519,7 @@ wxBoxSizer *PreferencesDialog::create_item_language_combobox(wxString title, wxS } } - auto check = [this](bool yes_or_no) { + auto check = [](bool yes_or_no) { // if (yes_or_no) // return true; int act_btns = ActionButtons::SAVE; @@ -1200,7 +1200,7 @@ wxBoxSizer* PreferencesDialog::create_item_button(wxString title, wxString title m_button_download->SetStyle(title2 == _L("Clear") ? ButtonStyle::Alert : ButtonStyle::Regular, ButtonType::Parameter); m_button_download->SetToolTip(tooltip2.IsEmpty() ? tooltip : tooltip2); // use label tooltip if button tooltip empty - m_button_download->Bind(wxEVT_BUTTON, [this, onclick](auto &e) { onclick(); }); + m_button_download->Bind(wxEVT_BUTTON, [onclick](auto &e) { onclick(); }); m_sizer->Add(m_button_download, 0, wxALIGN_CENTER_VERTICAL); @@ -1490,7 +1490,7 @@ void PreferencesDialog::create() m_sizer_body = new wxBoxSizer(wxVERTICAL); m_pref_tabs = new TabCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_NONE | wxWANTS_CHARS | wxTR_FULL_ROW_HIGHLIGHT); - m_pref_tabs->Bind(wxEVT_RIGHT_DOWN, [this](auto &e) {}); // disable right select + m_pref_tabs->Bind(wxEVT_RIGHT_DOWN, [](auto &e) {}); // disable right select m_pref_tabs->SetFont(Label::Body_14); create_items(); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index f78af21a99..837f4ebe0c 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -1653,7 +1653,7 @@ void TabPresetComboBox::OnSelect(wxCommandEvent &evt) default: break; } if (sp != ConfigWizard::SP_WELCOME) { - wxTheApp->CallAfter([this, sp]() { + wxTheApp->CallAfter([sp]() { run_wizard(sp); }); } @@ -1949,7 +1949,7 @@ GUI::CalibrateFilamentComboBox::CalibrateFilamentComboBox(wxWindow *parent) { clr_picker->SetBackgroundColour(StateColor::darkModeColorFor(*wxWHITE)); clr_picker->SetToolTip(""); - clr_picker->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e) {}); + clr_picker->Bind(wxEVT_BUTTON, [](wxCommandEvent& e) {}); } GUI::CalibrateFilamentComboBox::~CalibrateFilamentComboBox() diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index 669468d852..2b4d212d0f 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -2062,7 +2062,7 @@ void CrealityPrintHostSendDialog::init() } for (auto* c : m_slot_combos) { - c->Bind(wxEVT_COMBOBOX, [this, ext_slot_idx](wxCommandEvent& e) { + c->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent& e) { int sel = e.GetSelection(); if (sel >= 0 && sel < (int)m_printer_slots.size() && m_printer_slots[sel].box_id == 0) { diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index 0b280fe923..8ec6909c8c 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -164,7 +164,7 @@ void PrinterFileSystem::ListAllFiles() req["storage"] = m_file_storage; req["api_version"] = 2; req["notify"] = "DETAIL"; - SendRequest<FileList>(LIST_INFO, req, [this, type = m_file_type](json const& resp, FileList & list, auto) -> int { + SendRequest<FileList>(LIST_INFO, req, [type = m_file_type](json const& resp, FileList & list, auto) -> int { json files = resp["file_lists"]; for (auto& f : files) { std::string name = f["name"]; @@ -1230,7 +1230,7 @@ boost::uint32_t PrinterFileSystem::RequestMediaAbility(int api_version) req["api_version"] = api_version; return SendRequest<MediaAbilityList>( - REQUEST_MEDIA_ABILITY, req, [this](const json &resp, MediaAbilityList &list, auto) -> int { + REQUEST_MEDIA_ABILITY, req, [](const json &resp, MediaAbilityList &list, auto) -> int { json abliity_list = resp["storage"]; list = abliity_list.get<MediaAbilityList>(); return 0; diff --git a/src/slic3r/GUI/PrivacyUpdateDialog.cpp b/src/slic3r/GUI/PrivacyUpdateDialog.cpp index ef4dac9b13..92d6d6c8c7 100644 --- a/src/slic3r/GUI/PrivacyUpdateDialog.cpp +++ b/src/slic3r/GUI/PrivacyUpdateDialog.cpp @@ -97,7 +97,7 @@ PrivacyUpdateDialog::PrivacyUpdateDialog(wxWindow* parent, wxWindowID id, const this->on_hide(); }); - Bind(wxEVT_CLOSE_WINDOW, [this](wxCloseEvent& e) {e.Veto(); }); + Bind(wxEVT_CLOSE_WINDOW, [](wxCloseEvent& e) {e.Veto(); }); if (btn_style != CONFIRM_AND_CANCEL) m_button_cancel->Hide(); diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index 7b2d091176..029310faf9 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -1250,7 +1250,7 @@ void ConfirmBeforeSendDialog::update_text(std::vector<ConfirmBeforeSendInfo> tex else { label_item = new Label(m_vebview_release_note, text.text + " " + _L("Please refer to Wiki before use->"), LB_AUTO_WRAP); - label_item->Bind(wxEVT_LEFT_DOWN, [this, text](wxMouseEvent& e) { wxLaunchDefaultBrowser(text.wiki_url);}); + label_item->Bind(wxEVT_LEFT_DOWN, [text](wxMouseEvent& e) { wxLaunchDefaultBrowser(text.wiki_url);}); label_item->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_HAND); }); label_item->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) { SetCursor(wxCURSOR_ARROW); }); } diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 0b33e48ec4..b3f34a8cb9 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -153,7 +153,7 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox detach_label->SetForegroundColour(wxColour("#363636")); - auto on_toggle = [this, detach_checkbox]() { + auto on_toggle = [detach_checkbox]() { detach_checkbox->SetValue(!detach_checkbox->GetValue()); wxCommandEvent ev(wxEVT_TOGGLEBUTTON, detach_checkbox->GetId()); ev.SetEventObject(detach_checkbox); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index ac56e35ac3..199de9236e 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3428,7 +3428,7 @@ void SelectMachineDialog::show_timelapse_storage_dialog(MachineObject* obj) if (show_cleanup_btn) { auto* btn_cleanup = new Button(&dlg, _L("Clean Up")); - btn_cleanup->Bind(wxEVT_BUTTON, [&dlg, ID_CLEANUP](wxCommandEvent&) { dlg.EndModal(ID_CLEANUP); }); + btn_cleanup->Bind(wxEVT_BUTTON, [&dlg](wxCommandEvent&) { dlg.EndModal(ID_CLEANUP); }); btn_sizer->Add(btn_cleanup, 0, wxEXPAND); } @@ -5497,7 +5497,7 @@ void SelectMachineDialog::reset_and_sync_ams_list() first_enabled_id = extruder; } - item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent &e) {}); + item->Bind(wxEVT_LEFT_UP, [materials](wxMouseEvent &e) {}); item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent &e) { if (!item->m_enable) {return;} if (!m_check_flag || m_print_status == PrintDialogStatus::PrintStatusUnsupportedPrinter) { return; } /*STUDIO-11301*/ @@ -6128,8 +6128,8 @@ void SelectMachineDialog::set_default_from_sdcard() first_enabled_id = fo.id; } - item->Bind(wxEVT_LEFT_UP, [this, item, materials](wxMouseEvent& e) {}); - item->Bind(wxEVT_LEFT_DOWN, [this, obj_, item, materials, diameters_count, fo](wxMouseEvent& e) { + item->Bind(wxEVT_LEFT_UP, [materials](wxMouseEvent& e) {}); + item->Bind(wxEVT_LEFT_DOWN, [this, obj_, item, materials, fo](wxMouseEvent& e) { if (!item->m_enable) {return;} if (!m_check_flag || m_print_status == PrintDialogStatus::PrintStatusUnsupportedPrinter) { return; } /*STUDIO-11301*/ diff --git a/src/slic3r/GUI/SelectMachinePop.cpp b/src/slic3r/GUI/SelectMachinePop.cpp index df0a566917..9b34e74f23 100644 --- a/src/slic3r/GUI/SelectMachinePop.cpp +++ b/src/slic3r/GUI/SelectMachinePop.cpp @@ -567,7 +567,7 @@ void SelectMachinePopup::update_other_devices() } } - op->Bind(EVT_CONNECT_LAN_PRINT, [this, mobj](wxCommandEvent &e) { + op->Bind(EVT_CONNECT_LAN_PRINT, [mobj](wxCommandEvent &e) { if (mobj) { if (mobj->is_lan_mode_printer()) { ConnectPrinterDialog dlg(wxGetApp().mainframe, wxID_ANY, _L("Input access code")); @@ -579,7 +579,7 @@ void SelectMachinePopup::update_other_devices() } }); - op->Bind(EVT_BIND_MACHINE, [this, mobj](wxCommandEvent &e) { + op->Bind(EVT_BIND_MACHINE, [mobj](wxCommandEvent &e) { BindMachineDialog dlg; dlg.update_machine_info(mobj); int dlg_result = wxID_CANCEL; @@ -700,7 +700,7 @@ void SelectMachinePopup::update_user_devices() op->set_printer_state(PrinterState::LOCK); } } - op->Bind(EVT_UNBIND_MACHINE, [this, dev, mobj](wxCommandEvent& e) { + op->Bind(EVT_UNBIND_MACHINE, [dev, mobj](wxCommandEvent& e) { dev->set_selected_machine(""); if (mobj) { AppConfig* config = wxGetApp().app_config; @@ -720,7 +720,7 @@ void SelectMachinePopup::update_user_devices() } else { op->show_printer_bind(true, PrinterBindState::ALLOW_UNBIND); - op->Bind(EVT_UNBIND_MACHINE, [this, mobj, dev](wxCommandEvent& e) { + op->Bind(EVT_UNBIND_MACHINE, [mobj, dev](wxCommandEvent& e) { // show_unbind_dialog UnBindMachineDialog dlg; dlg.update_machine_info(mobj); @@ -747,7 +747,7 @@ void SelectMachinePopup::update_user_devices() } } - op->Bind(EVT_CONNECT_LAN_PRINT, [this, mobj](wxCommandEvent &e) { + op->Bind(EVT_CONNECT_LAN_PRINT, [mobj](wxCommandEvent &e) { if (mobj) { if (mobj->is_lan_mode_printer()) { ConnectPrinterDialog dlg(wxGetApp().mainframe, wxID_ANY, _L("Input access code")); @@ -759,7 +759,7 @@ void SelectMachinePopup::update_user_devices() } }); - op->Bind(EVT_EDIT_PRINT_NAME, [this, mobj](wxCommandEvent &e) { + op->Bind(EVT_EDIT_PRINT_NAME, [mobj](wxCommandEvent &e) { EditDevNameDialog dlg; dlg.set_machine_obj(mobj); dlg.ShowModal(); diff --git a/src/slic3r/GUI/SendMultiMachinePage.cpp b/src/slic3r/GUI/SendMultiMachinePage.cpp index 7b7c42922f..3a52caec3f 100644 --- a/src/slic3r/GUI/SendMultiMachinePage.cpp +++ b/src/slic3r/GUI/SendMultiMachinePage.cpp @@ -1468,7 +1468,7 @@ void SendMultiMachinePage::sync_ams_list() item->set_ams_info(wxColour("#CECECE"), "Ext", 0, std::vector<wxColour>()); m_ams_list_sizer->Add(item, 0, wxALL, FromDIP(4)); - item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {}); + item->Bind(wxEVT_LEFT_UP, [materials](wxMouseEvent& e) {}); item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent& e) { MaterialHash::iterator iter = m_material_list.begin(); while (iter != m_material_list.end()) { diff --git a/src/slic3r/GUI/SkipPartCanvas.cpp b/src/slic3r/GUI/SkipPartCanvas.cpp index 5e01b8140f..7b7db213b1 100644 --- a/src/slic3r/GUI/SkipPartCanvas.cpp +++ b/src/slic3r/GUI/SkipPartCanvas.cpp @@ -287,7 +287,7 @@ void SkipPartCanvas::Render() glDisable(GL_CULL_FACE); glEnable(GL_STENCIL_TEST); - auto draw_shape = [this, border_w](const int stencil, const PartState part_type, const ColorRGB& rgb) { + auto draw_shape = [this](const int stencil, const PartState part_type, const ColorRGB& rgb) { glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glStencilFunc(GL_ALWAYS, stencil, 0xFF); glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); @@ -335,7 +335,7 @@ void SkipPartCanvas::Render() // stencil3 => skipped draw_shape(skipped_stencil, psSkipped, ColorRGB{95 / 255.f, 95 / 255.f, 95 / 255.f}); - auto draw_mask = [this, view_rect, border_w, w, h](const int stencil, const PartState part_type, + auto draw_mask = [this, view_rect](const int stencil, const PartState part_type, const ColorRGB& background, const ColorRGB& line, const ColorRGB& bound) { glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glStencilFunc(GL_EQUAL, stencil, 0xFF); diff --git a/src/slic3r/GUI/SliceInfoPanel.cpp b/src/slic3r/GUI/SliceInfoPanel.cpp index 37a3ba698d..a7e436c0ff 100644 --- a/src/slic3r/GUI/SliceInfoPanel.cpp +++ b/src/slic3r/GUI/SliceInfoPanel.cpp @@ -115,7 +115,7 @@ SliceInfoPopup::SliceInfoPopup(wxWindow *parent, wxBitmap bmp, BBLSliceInfo *inf f_sizer->Add(f_type, 0, wxEXPAND | wxALL, FromDIP(5)); f_sizer->Add(f_used_g, 0, wxEXPAND | wxALL, FromDIP(5)); grid_sizer->Add(f_sizer, 0, wxEXPAND, 0); - f_type->Bind(wxEVT_LEFT_DOWN, [this](auto &e) {}); + f_type->Bind(wxEVT_LEFT_DOWN, [](auto &e) {}); } } topSizer->Add(grid_sizer, 0, wxALL, FromDIP(5)); diff --git a/src/slic3r/GUI/StepMeshDialog.cpp b/src/slic3r/GUI/StepMeshDialog.cpp index b1a8e2319a..c6131b7bfa 100644 --- a/src/slic3r/GUI/StepMeshDialog.cpp +++ b/src/slic3r/GUI/StepMeshDialog.cpp @@ -167,7 +167,7 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line e.Skip(); })); // textctrl bind slider - linear_input->Bind(wxEVT_TEXT, ([this, linear_slider, linear_input](wxCommandEvent& e) { + linear_input->Bind(wxEVT_TEXT, ([linear_slider, linear_input](wxCommandEvent& e) { double slider_value_long; int slider_value; wxString value = linear_input->GetTextCtrl()->GetValue(); @@ -222,7 +222,7 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line e.Skip(); })); // textctrl bind slider - angle_input->Bind(wxEVT_TEXT, ([this, angle_slider, angle_input](wxCommandEvent& e) { + angle_input->Bind(wxEVT_TEXT, ([angle_slider, angle_input](wxCommandEvent& e) { double slider_value_long; int slider_value; wxString value = angle_input->GetTextCtrl()->GetValue(); diff --git a/src/slic3r/GUI/SyncAmsInfoDialog.cpp b/src/slic3r/GUI/SyncAmsInfoDialog.cpp index 9515ecc116..7ae48008c8 100644 --- a/src/slic3r/GUI/SyncAmsInfoDialog.cpp +++ b/src/slic3r/GUI/SyncAmsInfoDialog.cpp @@ -1113,7 +1113,7 @@ void SyncAmsInfoDialog::init_bind() e.Skip(); }); - Bind(EVT_CONNECT_LAN_MODE_PRINT, [this](wxCommandEvent &e) { + Bind(EVT_CONNECT_LAN_MODE_PRINT, [](wxCommandEvent &e) { if (e.GetInt() == 0) { DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev) return; @@ -2644,7 +2644,7 @@ void SyncAmsInfoDialog::reset_and_sync_ams_list() item_index++; contronal_index++; - item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent &e) {}); + item->Bind(wxEVT_LEFT_UP, [materials](wxMouseEvent &e) {}); item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder, item_index_str](wxMouseEvent &e) { MaterialHash::iterator iter = m_materialList.begin(); while (iter != m_materialList.end()) { diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 0eb5c9281d..d65d7f68bd 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -459,7 +459,7 @@ void Tab::create_preset_tab() // tree m_tabctrl = new TabCtrl(panel, wxID_ANY, wxDefaultPosition, wxSize(20 * m_em_unit, -1), wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_NONE | wxWANTS_CHARS | wxTR_FULL_ROW_HIGHLIGHT); - m_tabctrl->Bind(wxEVT_RIGHT_DOWN, [this](auto &e) {}); // disable right select + m_tabctrl->Bind(wxEVT_RIGHT_DOWN, [](auto &e) {}); // disable right select m_tabctrl->SetFont(Label::Body_14); //m_left_sizer->Add(m_tabctrl, 1, wxEXPAND); const int img_sz = int(32 * scale_factor + 0.5f); @@ -6075,7 +6075,7 @@ void TabPrinter::toggle_options() auto nozzle_volumes = m_preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type"); auto extruders = m_config->option<ConfigOptionEnumsGeneric>("extruder_type"); auto get_index_for_extruder = - [this, &extruders, &nozzle_volumes](int extruder_id, int stride = 1) { + [this, &extruders](int extruder_id, int stride = 1) { return m_config->get_index_for_extruder(extruder_id + 1, "printer_extruder_id", ExtruderType(extruders->values[extruder_id]), get_actual_nozzle_volume_type(extruder_id), "printer_extruder_variant", stride); }; @@ -7713,18 +7713,18 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep this->update_changed_ui(); }; - deps.checkbox_title->Bind(wxEVT_LEFT_DOWN,([this, &deps, on_toggle](wxMouseEvent& e) { + deps.checkbox_title->Bind(wxEVT_LEFT_DOWN,([&deps, on_toggle](wxMouseEvent& e) { if (e.GetEventType() == wxEVT_LEFT_DCLICK) return; on_toggle(!deps.checkbox->GetValue()); e.Skip(); })); - deps.checkbox_title->Bind(wxEVT_LEFT_DCLICK,([this, &deps, on_toggle](wxMouseEvent& e) { + deps.checkbox_title->Bind(wxEVT_LEFT_DCLICK,([&deps, on_toggle](wxMouseEvent& e) { on_toggle(!deps.checkbox->GetValue()); e.Skip(); })); - deps.checkbox->Bind(wxEVT_TOGGLEBUTTON, ([this, on_toggle](wxCommandEvent& e) { + deps.checkbox->Bind(wxEVT_TOGGLEBUTTON, ([on_toggle](wxCommandEvent& e) { on_toggle(e.IsChecked()); e.Skip(); }), deps.checkbox->GetId()); @@ -8306,7 +8306,7 @@ void Tab::switch_excluder(int extruder_id, bool reload) return; } auto get_index_for_extruder = - [this, &extruders, &nozzle_volumes, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, int stride = 1) { + [this, &extruders, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, int stride = 1) { return m_config->get_index_for_extruder(extruder_id + 1, variant_keys.first, ExtruderType(extruders->values[extruder_id]), get_actual_nozzle_volume_type(extruder_id), variant_keys.second, stride); }; @@ -8363,7 +8363,7 @@ void Tab::sync_excluder() auto nozzle_volumes = m_preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type"); auto extruders = printer_preset.config.option<ConfigOptionEnumsGeneric>("extruder_type"); auto get_index_for_extruder = - [this, &extruders, &nozzle_volumes, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, NozzleVolumeType nozzle_type) { + [this, &extruders, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, NozzleVolumeType nozzle_type) { return m_config->get_index_for_extruder(extruder_id + 1, variant_keys.first, ExtruderType(extruders->values[extruder_id]), nozzle_type, variant_keys.second); }; diff --git a/src/slic3r/GUI/TroubleshootDialog.cpp b/src/slic3r/GUI/TroubleshootDialog.cpp index b0a8f71930..c1dee7ca5c 100644 --- a/src/slic3r/GUI/TroubleshootDialog.cpp +++ b/src/slic3r/GUI/TroubleshootDialog.cpp @@ -71,7 +71,7 @@ wxFlexGridSizer* TroubleshootDialog::create_item_loaded_profiles() auto gen_stats = GetProfilesOverview(); gen_stats = ""; // clear mem. not needed after generating m_..._act, m_..._usr variables - auto add_sizer = [this, g_sizer, create_label](PresetCollection* col, wxString label, int in_use, int user) { + auto add_sizer = [g_sizer, create_label](PresetCollection* col, wxString label, int in_use, int user) { int sys = 0; for (auto it = col->begin(); it != col->end(); it++) { if (it->is_system) @@ -178,7 +178,7 @@ TroubleshootDialog::TroubleshootDialog() return wxTheClipboard->SetData(new wxTextDataObject(GetSysInfoAll())); }); - sys_less_btn->Bind(wxEVT_BUTTON, [this, sys_panel, sys_less_btn, sys_info_lines, sys_copy_btn](wxCommandEvent &e) { + sys_less_btn->Bind(wxEVT_BUTTON, [this, sys_panel, sys_less_btn, sys_info_lines](wxCommandEvent &e) { m_sys_panel_mode = !m_sys_panel_mode; sys_panel->SetText(sys_info_lines(m_sys_panel_mode)); sys_less_btn->SetLabel(m_sys_panel_mode ? _L("Hide") : _L("Show")); diff --git a/src/slic3r/GUI/WebGuideDialog.cpp b/src/slic3r/GUI/WebGuideDialog.cpp index 6b58fffead..ae259f23d1 100644 --- a/src/slic3r/GUI/WebGuideDialog.cpp +++ b/src/slic3r/GUI/WebGuideDialog.cpp @@ -588,7 +588,7 @@ void GuideFrame::OnScriptMessage(wxWebViewEvent &evt) else if (strCmd == "user_guide_create_printer") { this->EndModal(wxID_CANCEL); this->Close(); - GUI::wxGetApp().CallAfter([this] {GUI::wxGetApp().sidebar().create_printer_preset();}); + GUI::wxGetApp().CallAfter([] {GUI::wxGetApp().sidebar().create_printer_preset();}); } else if (strCmd == "user_guide_cancel") { this->EndModal(wxID_CANCEL); @@ -871,7 +871,7 @@ bool GuideFrame::apply_config(AppConfig *app_config, PresetBundle *preset_bundle std::string preferred_model; std::string preferred_variant; PrinterTechnology preferred_pt = ptFFF; - auto get_preferred_printer_model = [preset_bundle, enabled_vendors, old_enabled_vendors, preferred_pt](const std::string& bundle_name, std::string& variant) { + auto get_preferred_printer_model = [preset_bundle, enabled_vendors, old_enabled_vendors](const std::string& bundle_name, std::string& variant) { const auto config = enabled_vendors.find(bundle_name); if (config == enabled_vendors.end()) return std::string(); diff --git a/src/slic3r/GUI/WebUserLoginDialog.cpp b/src/slic3r/GUI/WebUserLoginDialog.cpp index 4222ce745b..829e7ef106 100644 --- a/src/slic3r/GUI/WebUserLoginDialog.cpp +++ b/src/slic3r/GUI/WebUserLoginDialog.cpp @@ -489,7 +489,7 @@ void ZUserLogin::OnScriptMessage(wxWebViewEvent &evt) std::string jump_url = j["data"]["url"].get<std::string>(); int loopback_port = ensure_loopback_port(); jump_url = rewrite_loopback_url(jump_url, loopback_port); - CallAfter([this, jump_url] { + CallAfter([jump_url] { wxString url = wxString::FromUTF8(jump_url); wxLaunchDefaultBrowser(url); }); @@ -498,7 +498,7 @@ void ZUserLogin::OnScriptMessage(wxWebViewEvent &evt) else if (strCmd == "new_webpage") { if (j["data"].contains("url")) { std::string jump_url = j["data"]["url"].get<std::string>(); - CallAfter([this, jump_url] { + CallAfter([jump_url] { wxString url = wxString::FromUTF8(jump_url); wxLaunchDefaultBrowser(url); }); diff --git a/src/slic3r/Utils/3DPrinterOS.cpp b/src/slic3r/Utils/3DPrinterOS.cpp index 79c8a62700..b177e37e38 100755 --- a/src/slic3r/Utils/3DPrinterOS.cpp +++ b/src/slic3r/Utils/3DPrinterOS.cpp @@ -627,7 +627,7 @@ void C3DPrinterOS::send_form( responseTree.put("result", false); responseTree.put("message", error); }) - .on_complete([&, this](std::string body, unsigned) { + .on_complete([&](std::string body, unsigned) { std::stringstream ss(body); try { pt::read_json(ss, responseTree); diff --git a/src/slic3r/Utils/Moonraker.cpp b/src/slic3r/Utils/Moonraker.cpp index f1ca432390..73fdb8486a 100644 --- a/src/slic3r/Utils/Moonraker.cpp +++ b/src/slic3r/Utils/Moonraker.cpp @@ -80,7 +80,7 @@ bool Moonraker::test(wxString &msg) const res = false; msg = format_error(body, error, status); }) - .on_complete([&, this](std::string body, unsigned) { + .on_complete([&](std::string body, unsigned) { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: /server/info body: %2%") % name % body; try { std::stringstream ss(body); @@ -141,7 +141,7 @@ bool Moonraker::get_storage(wxArrayString &storage_path, wxArrayString &storage_ % name % error % status % body; } }) - .on_complete([&, this](std::string body, unsigned) { + .on_complete([&](std::string body, unsigned) { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: /server/files/roots body: %2%") % name % body; try { std::stringstream ss(body); diff --git a/src/slic3r/Utils/Obico.cpp b/src/slic3r/Utils/Obico.cpp index 5541d1c683..92d748b496 100644 --- a/src/slic3r/Utils/Obico.cpp +++ b/src/slic3r/Utils/Obico.cpp @@ -86,7 +86,7 @@ bool Obico::test(wxString& msg) const res = false; msg = format_error(body, error, status); }) - .on_complete([&, this](std::string body, unsigned) { + .on_complete([&](std::string body, unsigned) { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got version: %2%") % name % body; }) #ifdef WIN32 diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 56a2b66b49..663a4ce8c3 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -513,7 +513,7 @@ void PresetUpdater::priv::sync_resources(std::string http_url, std::map<std::str cancel_http = true; } }) - .on_complete([this, &resource_list, resources](std::string body, unsigned) { + .on_complete([&resource_list, resources](std::string body, unsigned) { try { BOOST_LOG_TRIVIAL(info) << "[Orca Updater]: request_resources, body=" << body; diff --git a/src/slic3r/Utils/Repetier.cpp b/src/slic3r/Utils/Repetier.cpp index 0d269e1cd5..a524f29b71 100644 --- a/src/slic3r/Utils/Repetier.cpp +++ b/src/slic3r/Utils/Repetier.cpp @@ -73,7 +73,7 @@ bool Repetier::test(wxString &msg) const res = false; msg = format_error(body, error, status); }) - .on_complete([&, this](std::string body, unsigned) { + .on_complete([&](std::string body, unsigned) { BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got version: %2%") % name % body; try { diff --git a/src/slic3r/Utils/SimplyPrint.cpp b/src/slic3r/Utils/SimplyPrint.cpp index bbfd5209c9..a3edfd98ee 100644 --- a/src/slic3r/Utils/SimplyPrint.cpp +++ b/src/slic3r/Utils/SimplyPrint.cpp @@ -192,7 +192,7 @@ bool SimplyPrint::do_api_call(std::function<Http(bool)> bool res = true; - const auto create_request = [this, &build_request, &res, &on_complete](const std::string& access_token, bool is_retry) { + const auto create_request = [&build_request, &res, &on_complete](const std::string& access_token, bool is_retry) { auto http = build_request(is_retry); set_auth(http, access_token); http.header("User-Agent", "SimplyPrint Orca Plugin") @@ -300,7 +300,7 @@ bool SimplyPrint::do_temp_upload(const boost::filesystem::path& file_path, return http; }, - [&error_fn, &filename, this](std::string body, unsigned status) { + [&error_fn, &filename](std::string body, unsigned status) { BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: File uploaded: HTTP %1%: %2%") % status % body; // Get file UUID @@ -423,7 +423,7 @@ bool SimplyPrint::do_chunk_upload(const boost::filesystem::path& file_path, cons return http; }, - [&error_fn, i, chunk_amount, this, &chunk_id, &delete_token](std::string body, unsigned status) { + [&error_fn, i, chunk_amount, &chunk_id, &delete_token](std::string body, unsigned status) { BOOST_LOG_TRIVIAL(info) << boost::format("SimplyPrint: File chunk [%1%/%2%] uploaded: HTTP %3%: %4%") % (i + 1) % chunk_amount % status % body; if (i == 0) { // First chunk, parse chunk id From ab90aec001b0c78e9f4acefe5bab5bdf66842a9c Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Wed, 2 Sep 2026 18:50:50 +0800 Subject: [PATCH 109/164] add per vendor support for check_profile check --- scripts/check_profile.bat | 2 + scripts/check_profile.ps1 | 157 ++++++++++++++++++++++++++++++++++---- scripts/check_profile.sh | 153 ++++++++++++++++++++++++++++++++----- 3 files changed, 279 insertions(+), 33 deletions(-) diff --git a/scripts/check_profile.bat b/scripts/check_profile.bat index 231fa721d4..e92f9fe0e8 100644 --- a/scripts/check_profile.bat +++ b/scripts/check_profile.bat @@ -1,5 +1,7 @@ @echo off REM Runs check_profile.ps1, the Windows twin of check_profile.sh, from cmd. +REM Arguments are passed straight through, so anything the .ps1 takes works here: +REM scripts\check_profile.bat -Vendor Elegoo validate_custom REM -ExecutionPolicy Bypass is needed because a Windows client defaults to Restricted, REM which refuses to run a checked-out .ps1 at all. powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp0check_profile.ps1" %* diff --git a/scripts/check_profile.ps1 b/scripts/check_profile.ps1 index 5c5dcb20c8..9c9bb6c506 100644 --- a/scripts/check_profile.ps1 +++ b/scripts/check_profile.ps1 @@ -23,6 +23,10 @@ has, is moved aside for the duration of the run and restored on exit. Only one run per work dir at a time. + -Vendor narrows a run to one vendor while working on that vendor's profiles - the one + deliberate divergence from CI, which always checks the whole tree. A check that cannot be + narrowed is left out of the run and reported as skipped. + x64 and ARM64 hosts are both supported. A locally built validator is chosen by the machine type in its PE header rather than by the name of its build tree, so build\ (x64) and build-arm64\ side by side resolve correctly; the published nightly is x64 only and runs @@ -32,6 +36,14 @@ Profile tree to validate (default: resources\profiles). extra_json_check always looks at the tree next to the script, so this only redirects the validator checks. +.PARAMETER Vendor + Check only this vendor, named after its <Vendor>.json (e.g. "Co Print"). validate_custom is + narrowed with it too, by keeping only that vendor's presets in each fixture tree. The one + check it cannot narrow is validate_slice for a vendor that ships no printers; the summary + reports that one as skipped, and naming it explicitly still runs it. extra_json_check keeps + its two cross-vendor checks (setting_id and filament_id) tree-wide, so a scoped run can still + fail on another vendor's files. + .PARAMETER Validator OrcaSlicer_profile_validator.exe to use; also $env:ORCA_PROFILE_VALIDATOR. Default: the local build*\ Release build (then RelWithDebInfo, MinSizeRel, Debug) for this architecture, else @@ -58,6 +70,9 @@ .EXAMPLE powershell -ExecutionPolicy Bypass -File scripts\check_profile.ps1 validate_system validate_slice + +.EXAMPLE + scripts\check_profile.bat -Vendor Elegoo #> # PositionalBinding is off so that the check names are the only positional arguments; left on, @@ -65,6 +80,7 @@ [CmdletBinding(PositionalBinding = $false)] param( [Alias('p')] [string] $ProfilesDir, + [Alias('v')] [string] $Vendor, [string] $Validator, [string] $WorkDir, [Alias('l')] [int] $LogLevel = 2, @@ -156,12 +172,42 @@ foreach ($name in $Checks) { if ($name -like '-*') { Die "unknown option '$name' (try -Help)" } if ($AllChecks -notcontains $name) { Die "unknown check '$name' (try -Help)" } } +# A check named on the command line always runs; only the default set is narrowed (see the run +# loop below). +$NamedChecks = [bool] $Checks if (-not $Checks) { $Checks = $AllChecks } if (-not $ProfilesDir) { $ProfilesDir = Join-Path $RepoRoot 'resources\profiles' } if (-not (Test-Path -LiteralPath $ProfilesDir -PathType Container)) { Die "profile directory not found: $ProfilesDir" } $ProfilesDir = (Resolve-Path -LiteralPath $ProfilesDir).Path +# A vendor neither tool knows is not an error to them: the static checks load nothing of their own +# and still report success, so a typo would otherwise be three green checks and one baffling slice +# failure. The match has to be made on the names themselves rather than with a Test-Path - the +# validator compares the <Vendor>.json stem case-sensitively, while Windows' case-insensitive +# filesystem would let "creality" pass a path test and then match no vendor. A vendor is a +# <name>.json with a sibling <name> directory; that pair is also what tells one apart from +# blacklist.json and retired_filament_ids.json, which sit in the same folder. +if ($Vendor) { + $found = $false + $suggestion = '' + foreach ($file in (Get-ChildItem -LiteralPath $ProfilesDir -Filter '*.json' -File)) { + $name = [IO.Path]::GetFileNameWithoutExtension($file.Name) + if (-not (Test-Path -LiteralPath (Join-Path $ProfilesDir $name) -PathType Container)) { continue } + if ($name -ceq $Vendor) { $found = $true; break } + if ($name -eq $Vendor) { $suggestion = $name } + } + if (-not $found) { + if ($suggestion) { Die "unknown vendor '$Vendor'; vendor names are case-sensitive, did you mean '$suggestion'?" } + Die "unknown vendor '$Vendor': no such vendor in $ProfilesDir" + } +} + +# The validator's -v and orca_extra_profile_check.py's --vendor both take that stem; an unscoped +# run passes neither, so the checks below splat these in either way. +$VendorArgs = if ($Vendor) { @('-v', $Vendor) } else { @() } +$VendorPyArgs = if ($Vendor) { @('--vendor', $Vendor) } else { @() } + if (-not $WorkDir) { $WorkDir = Join-Path $RepoRoot '.test\check_profiles' } $LogDir = Join-Path $WorkDir 'logs' try { New-Item -ItemType Directory -Force -Path $LogDir | Out-Null } catch { Die "cannot create ${LogDir}: $_" } @@ -350,32 +396,77 @@ function Resolve-Python { Die 'no Python 3 found; install it (or the py launcher) and re-run' } +# The fixtures name every preset "<vendor>_<parent preset>_orca_test", after the "name" inside +# <Vendor>.json rather than the file stem -Vendor takes - BBL.json is "Bambulab", iQ.json is +# "innovatiQ". Falls back to the stem for a vendor file with no readable name. +function Get-VendorDisplayName { + $name = '' + try { $name = (Get-Content -LiteralPath (Join-Path $ProfilesDir "$Vendor.json") -Raw -ErrorAction Stop | ConvertFrom-Json).name } catch { } + if ($name) { return "$name" } + return $Vendor +} + +# Unpack just the presets one vendor's profiles own, and return how many that was. Each fixture +# preset was generated from a single system preset and inherits it by name - none inherits another +# user preset - so the selection is self-contained. +function Expand-VendorPresets([string] $Zip, [string] $Tree, [string] $Prefix) { + # .NET rather than Expand-Archive: a fixture holds around 20,000 entries, and unpacking every + # one of them to keep a twentieth costs more than the validation this is speeding up. + Add-Type -AssemblyName System.IO.Compression.FileSystem + $kept = 0 + $archive = [IO.Compression.ZipFile]::OpenRead($Zip) + try { + foreach ($entry in $archive.Entries) { + # A directory entry has an empty Name, so it never matches and is never created. + if (-not $entry.Name.StartsWith($Prefix, [StringComparison]::Ordinal)) { continue } + $dest = Join-Path $Tree $entry.FullName.Replace('/', [IO.Path]::DirectorySeparatorChar) + [IO.Directory]::CreateDirectory([IO.Path]::GetDirectoryName($dest)) | Out-Null + [IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $dest, $true) + $kept++ + } + } finally { + $archive.Dispose() + } + return $kept +} + # ---------------------------------------------------------------------------- checks $CheckBodies = @{ extra_json_check = { - Invoke-Tool -Exe (Resolve-Python) -Arguments @((Join-Path $RepoRoot 'scripts\orca_extra_profile_check.py')) + Invoke-Tool -Exe (Resolve-Python) -Arguments (@((Join-Path $RepoRoot 'scripts\orca_extra_profile_check.py')) + $VendorPyArgs) } validate_system = { - Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-l', "$LogLevel") + Invoke-Tool -Exe $Validator -Arguments (@('-p', $ProfilesDir) + $VendorArgs + @('-l', "$LogLevel")) } # Slices a two-colour cube through every printer so all custom g-code (incl. # change_filament_gcode) is expanded - catches undefined-placeholder / invalid-flow bugs the # static checks cannot see. validate_slice = { - Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-s', '-l', "$LogLevel") + Invoke-Tool -Exe $Validator -Arguments (@('-p', $ProfilesDir) + $VendorArgs + @('-s', '-l', "$LogLevel")) } validate_filament_subtypes = { - Invoke-Tool -Exe $Validator -Arguments @('-p', $ProfilesDir, '-l', "$LogLevel", '-f') + Invoke-Tool -Exe $Validator -Arguments (@('-p', $ProfilesDir) + $VendorArgs + @('-l', "$LogLevel", '-f')) } # Every released fixture is a snapshot of user presets saved by that OrcaSlicer version; each # is unpacked over the current system profiles and validated, so a profile change that would # break an existing user's presets fails here. + # + # Under -Vendor only that vendor's presets are unpacked, which is what makes the validator's + # -v usable here: -v filters the system vendors but never the user presets, so on a whole-tree + # snapshot it reports every other vendor's presets as unresolvable parents - thousands of + # errors saying nothing about the vendor under test. Teaching -v to filter user presets too is + # the deeper fix, but this runs against whatever validator is to hand, the published nightly + # included, so the picking has to happen here. It picks on the "<vendor display name>_" + # filename prefix that generate_custom_presets() (the validator's -g mode) gave every preset in + # these fixtures; a fixture cut from a renamed generator would surface as the "checked nothing" + # warning below. Presets whose source had no vendor carry no prefix - a few of those still name + # one in the middle, like "PET @BBL A1_orca_test" - and only an unscoped run covers them. validate_custom = { $fixturesDir = Join-Path $WorkDir 'profile-fixtures' $outputDir = Join-Path $WorkDir 'custom-preset-validation' @@ -392,6 +483,8 @@ $CheckBodies = @{ return 1 } + $vendorPrefix = if ($Vendor) { "$(Get-VendorDisplayName)_" } else { '' } + $totalKept = 0 $status = 0 $failedLogs = @() $summary = @('## Custom Preset Fixture Validation', '', '| Version | Status | Log |', '| --- | --- | --- |') @@ -424,12 +517,23 @@ $CheckBodies = @{ Remove-Item -LiteralPath $profileTree -Recurse -Force -ErrorAction SilentlyContinue New-Item -ItemType Directory -Force -Path $profileTree | Out-Null # Piped rather than copied through <profiles>\*, so a vendor directory whose name - # holds a wildcard character is still copied by its literal path. - Get-ChildItem -LiteralPath $ProfilesDir -Force | Copy-Item -Destination $profileTree -Recurse -Force + # holds a wildcard character is still copied by its literal path. Under -Vendor the + # validator opens only that vendor and OrcaFilamentLibrary and skips the other sixty-odd + # (PresetBundle::load_system_presets_from_json), so the rest are left out of the copy: + # ~3s a fixture that was going on files nothing opens. + Get-ChildItem -LiteralPath $ProfilesDir -Force | + Where-Object { -not $Vendor -or -not $_.PSIsContainer -or $_.Name -eq $Vendor -or $_.Name -eq 'OrcaFilamentLibrary' } | + Copy-Item -Destination $profileTree -Recurse -Force Remove-Item -LiteralPath (Join-Path $profileTree 'user') -Recurse -Force -ErrorAction SilentlyContinue - Expand-Archive -LiteralPath $fixtureZip -DestinationPath $profileTree -Force + if ($Vendor) { + $kept = Expand-VendorPresets $fixtureZip $profileTree $vendorPrefix + $totalKept += $kept + Write-CheckLog " $kept $Vendor preset file(s)" + } else { + Expand-Archive -LiteralPath $fixtureZip -DestinationPath $profileTree -Force + } - $result = Invoke-Tool -Exe $Validator -Arguments @('-p', $profileTree, '-l', "$LogLevel") -OutFile $logPath + $result = Invoke-Tool -Exe $Validator -Arguments (@('-p', $profileTree) + $VendorArgs + @('-l', "$LogLevel")) -OutFile $logPath if ($result -eq 0) { $summary += "| $version | PASS | $version.log |" # Only failures are worth keeping; each tree is a full copy of resources\profiles. @@ -441,6 +545,12 @@ $CheckBodies = @{ } } + # A vendor added after the newest fixture was cut appears in none of them: nothing failed, + # but nothing was checked either. + if ($Vendor -and $totalKept -eq 0) { + Write-CheckLog "no $Vendor presets in any fixture; validate_custom checked nothing" + } + [IO.File]::WriteAllLines((Join-Path $outputDir 'summary.md'), [string[]] $summary) $summary | ForEach-Object { Write-CheckLog $_ } @@ -473,7 +583,7 @@ $CommentHeadings = @{ function Invoke-Check([string] $Name) { $log = Join-Path $LogDir "$Name.log" Write-Host '' - Write-Host "==> $Name" -ForegroundColor Cyan + Write-Host "==> $Name$(if ($Vendor) { " ($Vendor)" })" -ForegroundColor Cyan $script:LogWriter = New-LogWriter $log try { @@ -510,26 +620,41 @@ try { if ($Checks | Where-Object { $_ -ne 'extra_json_check' }) { $Validator = Resolve-Validator } + # An empty printer set is a failure to the sweep, so validate_slice is recorded as skipped + # rather than run for a vendor that ships no printers (the filament-only OrcaFilamentLibrary); + # naming the check explicitly still runs it. $results = [ordered] @{} + $skipReasons = @{} foreach ($name in $AllChecks) { - if ($Checks -contains $name) { $results[$name] = Invoke-Check $name } + if ($Checks -notcontains $name) { continue } + if ($name -eq 'validate_slice' -and -not $NamedChecks -and $Vendor -and + -not (Test-Path -LiteralPath (Join-Path (Join-Path $ProfilesDir $Vendor) 'machine') -PathType Container)) { + $results[$name] = 'skip' + $skipReasons[$name] = "$Vendor ships no printers" + } else { + $results[$name] = if (Invoke-Check $name) { 'pass' } else { 'fail' } + } } Write-Host '' Write-Host '==> summary' -ForegroundColor Cyan foreach ($name in $results.Keys) { - if ($results[$name]) { - Write-Host " PASS $name" -ForegroundColor Green - } else { - Write-Host " FAIL $name ($(Join-Path $LogDir "$name.log"))" -ForegroundColor Red + switch ($results[$name]) { + 'pass' { Write-Host " PASS $name" -ForegroundColor Green } + 'skip' { Write-Host " SKIP $name ($($skipReasons[$name]))" -ForegroundColor Yellow } + default { Write-Host " FAIL $name ($(Join-Path $LogDir "$name.log"))" -ForegroundColor Red } } } - $failed = @($results.Keys | Where-Object { -not $results[$_] }) + $failed = @($results.Keys | Where-Object { $results[$_] -eq 'fail' }) if (-not $failed) { Remove-Item -LiteralPath (Join-Path $WorkDir 'pr_comment.md') -Force -ErrorAction SilentlyContinue Write-Host '' - Write-Host "All checks passed. Logs: $LogDir" -ForegroundColor Green + if (@($results.Values) -contains 'skip') { + Write-Host "Every check that ran passed, but CI runs the skipped ones too. Logs: $LogDir" -ForegroundColor Green + } else { + Write-Host "All checks passed. Logs: $LogDir" -ForegroundColor Green + } exit 0 } diff --git a/scripts/check_profile.sh b/scripts/check_profile.sh index 9b841d0612..cb56258c9f 100755 --- a/scripts/check_profile.sh +++ b/scripts/check_profile.sh @@ -14,6 +14,10 @@ # has, is moved aside for the duration of the run and restored on exit. Only one run per work # dir at a time. # +# -v/--vendor narrows a run to one vendor while working on that vendor's profiles - the one +# deliberate divergence from CI, which always checks the whole tree. A check that cannot be +# narrowed is left out of the run and reported as skipped; see usage(). +# # Usage: scripts/check_profile.sh [OPTION]... [CHECK]... # The check_* functions run through run_check, which dispatches on the check name, so @@ -33,14 +37,20 @@ HOST_ARCH="$(uname -m)" PROFILES_DIR="${REPO_ROOT}/resources/profiles" WORK_DIR="${REPO_ROOT}/.test/check_profiles" VALIDATOR="${ORCA_PROFILE_VALIDATOR:-}" +# Vendor to check, named after its <Vendor>.json - empty means every vendor, which is exactly what +# both the validator's -v and orca_extra_profile_check.py's --vendor take an empty value to mean. +# So the flag is passed unconditionally below rather than kept in an array bash 3.2 cannot expand +# empty under `set -u`. +VENDOR="" LOG_LEVEL=2 PREFER_DOWNLOAD=0 REFRESH=0 ALL_CHECKS=(extra_json_check validate_system validate_slice validate_filament_subtypes validate_custom) CHECKS=() -# "<check><TAB>pass|fail" per check that ran; a string rather than an array because bash 3.2 -# (still the /bin/bash on macOS) cannot expand an empty array under `set -u`. +# "<check><TAB>pass|fail" per check that ran, plus "<check><TAB>skip<TAB>why" for one a vendor +# scope left out; a string rather than an array because bash 3.2 (still the /bin/bash on macOS) +# cannot expand an empty array under `set -u`. RESULTS="" usage() { @@ -58,6 +68,7 @@ Checks (default: all, in this order): Options: -p, --profiles DIR profile tree to validate (default: resources/profiles) + -v, --vendor NAME check only this vendor, named after its <Vendor>.json (e.g. "Co Print") --validator BIN OrcaSlicer_profile_validator to use; also \$ORCA_PROFILE_VALIDATOR. Default: the local build*/ Release build (then RelWithDebInfo, then Debug) for this architecture, else the nightly release build is @@ -70,6 +81,12 @@ Options: Note: extra_json_check always looks at the tree next to the script (<repo>/resources/profiles); --profiles only redirects the validator checks. + +Note: --vendor narrows validate_custom too, by keeping only that vendor's presets in each +fixture tree. The one check it cannot narrow is validate_slice for a vendor that ships no +printers; the summary reports that one as skipped, and naming it explicitly still runs it. +extra_json_check keeps its two cross-vendor checks (setting_id and filament_id) tree-wide, +so a scoped run can still fail on another vendor's files. EOF } @@ -88,6 +105,7 @@ while [ $# -gt 0 ]; do case "$1" in -h|--help) usage; exit 0 ;; -p|--profiles) [ $# -ge 2 ] || die "$1 needs a directory"; PROFILES_DIR="$2"; shift 2 ;; + -v|--vendor) [ $# -ge 2 ] || die "$1 needs a vendor name"; VENDOR="$2"; shift 2 ;; --validator) [ $# -ge 2 ] || die "$1 needs a path"; VALIDATOR="$2"; shift 2 ;; --work-dir) [ $# -ge 2 ] || die "$1 needs a directory"; WORK_DIR="$2"; shift 2 ;; -l|--log-level) [ $# -ge 2 ] || die "$1 needs a number"; LOG_LEVEL="$2"; shift 2 ;; @@ -106,11 +124,40 @@ while [ $# -gt 0 ]; do esac done -[ "${#CHECKS[@]}" -gt 0 ] || CHECKS=("${ALL_CHECKS[@]}") +# A check named on the command line always runs; only the default set is narrowed (see the run +# loop below). +NAMED_CHECKS="${#CHECKS[@]}" +[ "${NAMED_CHECKS}" -gt 0 ] || CHECKS=("${ALL_CHECKS[@]}") [ -d "${PROFILES_DIR}" ] || die "profile directory not found: ${PROFILES_DIR}" PROFILES_DIR="$(cd -- "${PROFILES_DIR}" && pwd)" +# A vendor neither tool knows is not an error to them: the static checks load nothing of their own +# and still report success, so a typo would otherwise be three green checks and one baffling slice +# failure. The match has to be made on the names themselves rather than with a -f test - the +# validator compares the <Vendor>.json stem case-sensitively, while a case-insensitive filesystem +# (macOS, Windows) would let "creality" pass a file test and then match no vendor. A vendor is a +# <name>.json with a sibling <name>/ directory; that pair is also what tells one apart from +# blacklist.json and retired_filament_ids.json, which sit in the same folder. +if [ -n "${VENDOR}" ]; then + wanted="$(printf '%s' "${VENDOR}" | tr '[:upper:]' '[:lower:]')" + found="" + suggestion="" + for file in "${PROFILES_DIR}"/*.json; do + name="${file##*/}"; name="${name%.json}" + [ -d "${PROFILES_DIR}/${name}" ] || continue + if [ "${name}" = "${VENDOR}" ]; then + found=1 + break + fi + [ "$(printf '%s' "${name}" | tr '[:upper:]' '[:lower:]')" = "${wanted}" ] && suggestion="${name}" + done + if [ -z "${found}" ]; then + [ -z "${suggestion}" ] || die "unknown vendor '${VENDOR}'; vendor names are case-sensitive, did you mean '${suggestion}'?" + die "unknown vendor '${VENDOR}': no such vendor in ${PROFILES_DIR}" + fi +fi + LOG_DIR="${WORK_DIR}/logs" mkdir -p "${LOG_DIR}" || die "cannot create ${LOG_DIR}" WORK_DIR="$(cd -- "${WORK_DIR}" && pwd)" @@ -315,34 +362,65 @@ resolve_validator() { # ---------------------------------------------------------------------------- checks check_extra_json_check() { - python3 "${REPO_ROOT}/scripts/orca_extra_profile_check.py" + python3 "${REPO_ROOT}/scripts/orca_extra_profile_check.py" --vendor "${VENDOR}" } check_validate_system() { - "${VALIDATOR}" -p "${PROFILES_DIR}" -l "${LOG_LEVEL}" + "${VALIDATOR}" -p "${PROFILES_DIR}" -v "${VENDOR}" -l "${LOG_LEVEL}" } # Slices a two-colour cube through every printer so all custom g-code (incl. change_filament_gcode) # is expanded - catches undefined-placeholder / invalid-flow bugs the static checks cannot see. check_validate_slice() { - "${VALIDATOR}" -p "${PROFILES_DIR}" -s -l "${LOG_LEVEL}" + "${VALIDATOR}" -p "${PROFILES_DIR}" -v "${VENDOR}" -s -l "${LOG_LEVEL}" } check_validate_filament_subtypes() { - "${VALIDATOR}" -p "${PROFILES_DIR}" -l "${LOG_LEVEL}" -f + "${VALIDATOR}" -p "${PROFILES_DIR}" -v "${VENDOR}" -l "${LOG_LEVEL}" -f +} + +# The fixtures name every preset "<vendor>_<parent preset>_orca_test", after the "name" inside +# <Vendor>.json rather than the file stem --vendor takes - BBL.json is "Bambulab", iQ.json is +# "innovatiQ". Falls back to the stem for a vendor file with no readable name. +vendor_display_name() { + local name + name="$(VENDOR_JSON="${PROFILES_DIR}/${VENDOR}.json" python3 - <<'PY' +import json +import os + +try: + with open(os.environ["VENDOR_JSON"], encoding="utf-8") as fh: + print(json.load(fh).get("name", "")) +except Exception: + pass +PY +)" + printf '%s\n' "${name:-${VENDOR}}" } # Every released fixture is a snapshot of user presets saved by that OrcaSlicer version; each is # unpacked over the current system profiles and validated, so a profile change that would break # an existing user's presets fails here. +# +# Under --vendor only that vendor's presets are unpacked, which is what makes the validator's -v +# usable here: -v filters the system vendors but never the user presets, so on a whole-tree +# snapshot it reports every other vendor's presets as unresolvable parents - thousands of errors +# saying nothing about the vendor under test. Teaching -v to filter user presets too is the deeper +# fix, but this runs against whatever validator is to hand, the published nightly included, so the +# picking has to happen here. It picks on the "<vendor display name>_" filename prefix that +# generate_custom_presets() (the validator's -g mode) gave every preset in these fixtures; a +# fixture cut from a renamed generator would surface as the "checked nothing" warning below. +# Presets whose source had no vendor carry no prefix - a few of those still name one in the +# middle, like "PET @BBL A1_orca_test" - and only an unscoped run covers them. check_validate_custom() { local fixtures_dir="${WORK_DIR}/profile-fixtures" local output_dir="${WORK_DIR}/custom-preset-validation" local summary="${output_dir}/summary.md" - local status=0 failed_logs="" - local version asset expected_sha256 asset_url fixture_zip profile_tree log_path actual_sha256 result + local status=0 failed_logs="" vendor_prefix="" total_kept=0 + local version asset expected_sha256 asset_url fixture_zip profile_tree log_path actual_sha256 result kept command -v unzip >/dev/null 2>&1 || { msg "unzip is required for validate_custom"; return 1; } + [ -z "${VENDOR}" ] || vendor_prefix="$(vendor_display_name)_" mkdir -p "${fixtures_dir}" "${output_dir}" || return 1 fetch "${FIXTURE_RELEASE_URL}/manifest.json" "${fixtures_dir}/manifest.json" force || return 1 @@ -407,11 +485,28 @@ PY msg "validating custom presets from ${version} ..." rm -rf "${profile_tree}" mkdir -p "${profile_tree}" || return 1 - cp -a "${PROFILES_DIR}/." "${profile_tree}/" || return 1 - rm -rf "${profile_tree}/user" - unzip -q "${fixture_zip}" -d "${profile_tree}" || return 1 + if [ -n "${VENDOR}" ]; then + # -v has the validator open this vendor and OrcaFilamentLibrary and skip the rest + # (PresetBundle::load_system_presets_from_json), and unzip's * spans '/', so one + # pattern reaches every preset type. Copying and unpacking only those turns a ~5s + # setup per fixture into ~0.5s. Naming the vendor twice, when it is the library + # itself, is not an error to cp; exit 11 is unzip's "nothing matched", which is the + # fixture-predates-the-vendor case the warning below reports. + cp -a "${PROFILES_DIR}"/*.json "${PROFILES_DIR}/${VENDOR}" \ + "${PROFILES_DIR}/OrcaFilamentLibrary" "${profile_tree}/" || return 1 + unzip -q "${fixture_zip}" "user/*/${vendor_prefix}*" -d "${profile_tree}" + result=$? + [ "${result}" -eq 0 ] || [ "${result}" -eq 11 ] || return 1 + kept="$(find "${profile_tree}/user" -type f 2>/dev/null | wc -l | tr -d ' ')" + total_kept=$((total_kept + kept)) + msg " ${kept} ${VENDOR} preset file(s)" + else + cp -a "${PROFILES_DIR}/." "${profile_tree}/" || return 1 + rm -rf "${profile_tree}/user" + unzip -q "${fixture_zip}" -d "${profile_tree}" || return 1 + fi - "${VALIDATOR}" -p "${profile_tree}" -l "${LOG_LEVEL}" > "${log_path}" 2>&1 + "${VALIDATOR}" -p "${profile_tree}" -v "${VENDOR}" -l "${LOG_LEVEL}" > "${log_path}" 2>&1 result=$? if [ "${result}" -eq 0 ]; then @@ -425,6 +520,12 @@ PY fi done < "${fixtures_dir}/fixtures.tsv" + # A vendor added after the newest fixture was cut appears in none of them: nothing failed, but + # nothing was checked either. + if [ -n "${VENDOR}" ] && [ "${total_kept}" -eq 0 ]; then + msg "no ${VENDOR} presets in any fixture; validate_custom checked nothing" + fi + cat "${summary}" if [ -n "${failed_logs}" ]; then echo "" @@ -461,7 +562,7 @@ run_check() { local name="$1" local log="${LOG_DIR}/${name}.log" local result - printf '\n%s==> %s%s\n' "${C_BOLD}" "${name}" "${C_RESET}" + printf '\n%s==> %s%s%s\n' "${C_BOLD}" "${name}" "${VENDOR:+ (${VENDOR})}" "${C_RESET}" "check_${name}" 2>&1 | tee "${log}" result="${PIPESTATUS[0]}" if [ "${result}" -eq 0 ]; then @@ -477,17 +578,30 @@ if wants validate_system || wants validate_slice || wants validate_filament_subt resolve_validator fi +# An empty printer set is a failure to the sweep, so validate_slice is recorded as skipped rather +# than run for a vendor that ships no printers (the filament-only OrcaFilamentLibrary); naming the +# check explicitly still runs it. for check in "${ALL_CHECKS[@]}"; do - wants "${check}" && run_check "${check}" + wants "${check}" || continue + if [ "${check}" = validate_slice ] && [ "${NAMED_CHECKS}" -eq 0 ] && [ -n "${VENDOR}" ] && + [ ! -d "${PROFILES_DIR}/${VENDOR}/machine" ]; then + RESULTS="${RESULTS}${check}"$'\t'"skip"$'\t'"${VENDOR} ships no printers"$'\n' + else + run_check "${check}" + fi done # Summary, plus the comment check_profiles_comment.yml would post when something fails. failed=0 +skipped=0 printf '\n%s==> summary%s\n' "${C_BOLD}" "${C_RESET}" -while IFS=$'\t' read -r name result; do +while IFS=$'\t' read -r name result why; do [ -n "${name}" ] || continue if [ "${result}" = "pass" ]; then printf '%s PASS%s %s\n' "${C_GREEN}" "${C_RESET}" "${name}" + elif [ "${result}" = "skip" ]; then + printf '%s SKIP%s %s (%s)\n' "${C_BOLD}" "${C_RESET}" "${name}" "${why}" + skipped=1 else printf '%s FAIL%s %s (%s)\n' "${C_RED}" "${C_RESET}" "${name}" "${LOG_DIR}/${name}.log" failed=1 @@ -498,7 +612,12 @@ EOF if [ "${failed}" -eq 0 ]; then rm -f "${WORK_DIR}/pr_comment.md" - printf '\n%sAll checks passed.%s Logs: %s\n' "${C_GREEN}" "${C_RESET}" "${LOG_DIR}" + if [ "${skipped}" -eq 0 ]; then + printf '\n%sAll checks passed.%s Logs: %s\n' "${C_GREEN}" "${C_RESET}" "${LOG_DIR}" + else + printf '\n%sEvery check that ran passed%s, but CI runs the skipped ones too. Logs: %s\n' \ + "${C_GREEN}" "${C_RESET}" "${LOG_DIR}" + fi exit 0 fi From 640fd9f454d26ca6ef37f16b72ed60f39d8559ed Mon Sep 17 00:00:00 2001 From: Alexandre Folle de Menezes <afmenez@terra.com.br> Date: Wed, 2 Sep 2026 09:36:54 -0300 Subject: [PATCH 110/164] Fix misc. errors on GUI strings (#15468) * Fix misc. errors on GUI strings * Adding context to single-letter unit strings * Fix duplicate strings on po files --- localization/i18n/OrcaSlicer.pot | 33 +++++----- localization/i18n/ca/OrcaSlicer_ca.po | 38 ++++++------ localization/i18n/cs/OrcaSlicer_cs.po | 36 +++++------ localization/i18n/de/OrcaSlicer_de.po | 36 +++++------ localization/i18n/en/OrcaSlicer_en.po | 32 +++++----- localization/i18n/es/OrcaSlicer_es.po | 42 ++++++------- localization/i18n/eu/OrcaSlicer_eu.po | 69 +++++++-------------- localization/i18n/fr/OrcaSlicer_fr.po | 44 +++++++------ localization/i18n/hu/OrcaSlicer_hu.po | 34 +++++----- localization/i18n/it/OrcaSlicer_it.po | 38 ++++++------ localization/i18n/ja/OrcaSlicer_ja.po | 46 +++++++------- localization/i18n/ko/OrcaSlicer_ko.po | 41 ++++++------ localization/i18n/lt/OrcaSlicer_lt.po | 58 +++++------------ localization/i18n/nl/OrcaSlicer_nl.po | 48 +++++++------- localization/i18n/pl/OrcaSlicer_pl.po | 45 ++++++++------ localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 48 +++++++------- localization/i18n/ru/OrcaSlicer_ru.po | 34 +++++----- localization/i18n/sv/OrcaSlicer_sv.po | 44 +++++++------ localization/i18n/th/OrcaSlicer_th.po | 36 +++++------ localization/i18n/tr/OrcaSlicer_tr.po | 42 ++++++------- localization/i18n/uk/OrcaSlicer_uk.po | 37 ++++++----- localization/i18n/vi/OrcaSlicer_vi.po | 38 ++++++------ localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 35 ++++++----- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 33 +++++----- src/libslic3r/PrintConfig.cpp | 39 ++++++------ src/libslic3r/calib.cpp | 4 +- src/slic3r/GUI/CreatePresetsDialog.cpp | 6 +- src/slic3r/GUI/FilamentMapDialog.cpp | 2 +- src/slic3r/GUI/MainFrame.cpp | 2 +- src/slic3r/GUI/Plater.cpp | 6 +- src/slic3r/GUI/Tab.cpp | 4 +- src/slic3r/GUI/TroubleshootDialog.cpp | 4 +- src/slic3r/Utils/3DPrinterOS.cpp | 2 +- 33 files changed, 513 insertions(+), 543 deletions(-) diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index b183df098b..4f4e5079da 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -3,7 +3,6 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -5951,10 +5950,10 @@ msgstr "" msgid "Load a model" msgstr "" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "" msgid "Import Configs" @@ -7663,7 +7662,7 @@ msgstr "" msgid "Customized Preset" msgstr "" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -7685,7 +7684,7 @@ msgstr "" #, possible-c-format, possible-boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" msgid "Object too small" @@ -10329,11 +10328,11 @@ msgstr "" msgid "No modifications need to be copied." msgstr "" -msgid "Copy paramters" +msgid "Copy parameters" msgstr "" #, possible-c-format, possible-boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "" #, possible-c-format, possible-boost-format @@ -11874,7 +11873,7 @@ msgstr "" msgid "Other layers" msgstr "" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "" msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -14675,7 +14674,7 @@ msgstr "" msgid "Reduce infill retraction" msgstr "" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -14831,7 +14830,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" @@ -14874,7 +14873,7 @@ msgstr "" msgid "Z-hop height" msgstr "" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "" msgid "Z-hop lower boundary" @@ -18191,17 +18190,17 @@ msgstr "" msgid "Only display the filament names with changes to filament presets." msgstr "" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" msgid "Please select at least one printer or filament." @@ -18416,7 +18415,7 @@ msgstr "" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "" -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "" msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -18458,7 +18457,7 @@ msgstr "" msgid "Stored logs" msgstr "" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "" msgid "Profiles" @@ -18523,7 +18522,7 @@ msgstr "" msgid "Authorizing..." msgstr "" -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "" msgid "Could not parse server response." diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index d78487b947..873cf0d7fb 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -6419,10 +6419,10 @@ msgstr "Importar 3MF STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Carregar un model" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importar fitxer ZIP" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Carregar models continguts dins d'un arxiu zip" msgid "Import Configs" @@ -8232,8 +8232,8 @@ msgid "Customized Preset" msgstr "Perfil personalitzat" # AI Translated -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Els noms dels components dins del fitxer STEP no tenen format UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Els noms dels components dins del fitxer STEP no tenen format UTF-8!" # AI Translated msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8255,10 +8255,10 @@ msgstr "El volum de l'objecte és zero" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "L'objecte del fitxer %s és massa petit, i potser en metres o polzades.\n" -" Vols escalar a mil·límetres?" +"Vols escalar a mil·límetres?" msgid "Object too small" msgstr "Objecte massa petit" @@ -11189,12 +11189,12 @@ msgid "No modifications need to be copied." msgstr "No cal copiar cap modificació." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Copiar els paràmetres" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modificar els paràmetres de %s" # AI Translated @@ -12868,8 +12868,8 @@ msgstr "mm o %" msgid "Other layers" msgstr "Altres capes" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "Temperatura del llit per a les capes excepte la primera. Un valor de 0 significa que el filament no admet la impressió sobre el Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgstr "Temperatura del llit de les capes excepte la inicial. Un valor de 0 significa que el filament no admet la impressió sobre el Cool Plate SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Temperatura del llit de les capes excepte la inicial. El valor 0 significa que el filament no admet imprimir a una Base Freda." @@ -16197,7 +16197,7 @@ msgid "Reduce infill retraction" msgstr "Reduir la retracció de farciment" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "No retrau quan el desplaçament està totalment a la zona de farciment. Això vol dir que l'oozing( goteig ) queda amagat. Això pot reduir els temps de retracció per a models complexos i estalviar temps d'impressió, però fer que el laminat i la generació de Codi-G siguin més lents. Tingueu en compte que el salt en Z tampoc es realitza a les zones on s'omet la retracció." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16373,7 +16373,7 @@ msgstr "Quantitat de retracció després de netejar" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Longitud de la retracció ràpida després de netejar, relativa a la longitud de retracció.\n" @@ -16420,7 +16420,7 @@ msgstr "Quan s'activa la retracció abans d'un canvi d'eina, el filament es reti msgid "Z-hop height" msgstr "Alçada Z-hop" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Cade vegada que es fa una retracció, s'aixeca una mica el broquet per crear espai lliure entre el broquet i la impressió. Evita que el broquet colpegi la impressió en els desplaçaments. L'ús de la línia espiral per aixecar z pot evitar l'aparició de fils" msgid "Z-hop lower boundary" @@ -20071,19 +20071,19 @@ msgstr "Mostrar només els noms de les impressores amb canvis als perfils d'impr msgid "Only display the filament names with changes to filament presets." msgstr "Mostrar només els noms dels filaments amb canvis en els perfils de filament." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Només es mostraran els noms de les impressores amb perfils d'impressora d'usuari i cada perfil que trieu s'exportarà com a fitxer zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Només es mostraran els noms dels filaments amb perfils de filament d'usuari, \n" "i tots els perfils de filament d'usuari de cada nom de filament que seleccioneu s'exportaran com a zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Només es mostraran els noms de les impressores amb perfils de processament modificats, \n" "I tots els valors perfils del procés d'usuari de cada nom d'impressora que seleccioneu s'exportaran com a ZIP." @@ -20328,7 +20328,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Necessitem informació per diagnosticar l'origen del problema. Consulteu la pàgina wiki per a una guia detallada." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "El botó Empaquetar recull el fitxer del projecte i els registres de la sessió actual en un fitxer zip." # AI Translated @@ -20384,7 +20384,7 @@ msgid "Stored logs" msgstr "Registres emmagatzemats" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Empaqueta tots els registres emmagatzemats en un fitxer zip." # AI Translated @@ -20472,7 +20472,7 @@ msgid "Authorizing..." msgstr "Autoritzant..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Error. No es pot obtenir el testimoni d'api per a l'autorització" # AI Translated diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 7eeb1072c0..f51c5dc3e2 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -6380,10 +6380,10 @@ msgstr "Importovat 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Načíst model" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importovat ZIP archiv" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Načíst modely obsažené v zip archivu" msgid "Import Configs" @@ -8193,7 +8193,7 @@ msgstr "Potvrďte prosím, že je G-code v těchto předvolbách bezpečný, aby msgid "Customized Preset" msgstr "Přizpůsobená předvolba" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "Názvy komponent v souboru STEP nejsou ve formátu UTF-8!" # AI Translated @@ -8216,7 +8216,7 @@ msgstr "Objem objektu je nula." #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Objekt ze souboru %s je příliš malý a může být v metrech nebo palcích.\n" "Chcete převést měřítko na milimetry?" @@ -11133,12 +11133,12 @@ msgid "No modifications need to be copied." msgstr "Není třeba kopírovat žádné úpravy." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Kopírovat parametry" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Upravit parametry %s" # AI Translated @@ -12853,7 +12853,7 @@ msgstr "mm nebo %" msgid "Other layers" msgstr "Ostatní vrstvy" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Teplota desky pro vrstvy kromě počáteční. Hodnota 0 znamená, že filament nepodporuje tisk na chladicí podložce SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -16143,8 +16143,8 @@ msgstr "Počáteční a koncové body, které vedou z oblasti řezače do odpadk msgid "Reduce infill retraction" msgstr "Snížit retrakci při výplni" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Neprovádět retrakci, pokud se přejezd nachází zcela uvnitř oblasti výplně. Případné vytékání materiálu tak nebude viditelné. To může snížit počet retrakčních pohybů u složitých modelů a zkrátit dobu tisku, ale zároveň zpomalit slicování a generování G-code. V oblastech, kde je retrakce přeskočena, se zároveň neprovádí ani z-hop." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Neprovádět retrakci, pokud se přejezd nachází zcela uvnitř oblasti výplně. Případné vytékání materiálu tak nebude viditelné. To může snížit počet retrakčních pohybů u složitých modelů a zkrátit dobu tisku, ale zároveň zpomalit slicování a generování G-code. V oblastech, kde je retrakce přeskočena, se zároveň neprovádí ani Z-hop." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "Tato možnost sníží teplotu neaktivních extruderů, aby se zabránilo vytékání." @@ -16317,7 +16317,7 @@ msgstr "Délka retrakce po očištění" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Délka rychlé retrakce po očištění, vztažená k délce retrakce.\n" @@ -16364,7 +16364,7 @@ msgstr "Když je retrakce spuštěna před změnou nástroje, filament se zatáh msgid "Z-hop height" msgstr "Výška Z-hopu" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Po každém stažení filamentu se tryska mírně zvedne, aby vznikla mezera mezi tryskou a tiskem. Zabrání kolizi trysky s tiskem při přesunu. Použití spirálových linií pro zvedání v ose Z může zabránit vytahování vláken." msgid "Z-hop lower boundary" @@ -19992,19 +19992,19 @@ msgstr "Zobrazit pouze názvy tiskáren se změnami v předvolbách tiskárny, f msgid "Only display the filament names with changes to filament presets." msgstr "Zobrazit pouze názvy filamentů se změnami ve filamentových profilech." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Zobrazí se pouze názvy tiskáren s uživatelskými předvolbami tiskárny, každá vybraná předvolba bude exportována jako zip archiv." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Zobrazí se pouze názvy filamentů s uživatelskými filamentovými profily. \n" "Všechny uživatelské filamentové profily ve vybraných filamentech budou exportovány jako zip archiv." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Zobrazí se pouze názvy tiskáren se změněnými procesními předvolbami. \n" "Všechny uživatelské procesní předvolby ve vybraných tiskárnách budou exportovány jako zip archiv." @@ -20250,7 +20250,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Pro diagnostiku zdroje problému potřebujeme informace. Podrobný návod najdete na stránce wiki." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Tlačítko Zabalit shromáždí soubor projektu a protokoly aktuální relace do souboru zip." # AI Translated @@ -20306,7 +20306,7 @@ msgid "Stored logs" msgstr "Uložené protokoly" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Zabalí všechny uložené protokoly do souboru zip." # AI Translated @@ -20394,8 +20394,8 @@ msgid "Authorizing..." msgstr "Probíhá autorizace..." # AI Translated -msgid "Error. Can't get api token for authorization" -msgstr "Chyba. Nelze získat api token pro autorizaci" +msgid "Error. Can't get API token for authorization" +msgstr "Chyba. Nelze získat API token pro autorizaci" # AI Translated msgid "Could not parse server response." diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 92143b907b..8b27148a03 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -6272,10 +6272,10 @@ msgstr "Importiere 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Lade ein Modell" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Zip-Archiv importieren" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Modelle aus einem Zip-Archiv laden" msgid "Import Configs" @@ -8063,8 +8063,8 @@ msgstr "Bitte bestätigen Sie, dass die G-Codes innerhalb dieser Profile sicher msgid "Customized Preset" msgstr "Benutzerdefinierte Profile" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Der Name der Komponenten in der Step-Datei ist nicht im UTF8-Format!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Der Name der Komponenten in der Step-Datei ist nicht im UTF-8-Format!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "Aufgrund der nicht unterstützten Textkodierung können unbrauchbare Zeichen erscheinen!" @@ -8085,10 +8085,10 @@ msgstr "Das Volumen des Objekts ist Null" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Das Objekt aus der Datei %s ist zu klein und vielleicht in Metern oder Zoll angeben.\n" -" Möchten Sie auf Millimeter skalieren?" +"Möchten Sie auf Millimeter skalieren?" msgid "Object too small" msgstr "Objekt zu klein" @@ -10940,11 +10940,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Es müssen keine Änderungen kopiert werden." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Parameter kopieren" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Parameter von %s ändern" #, c-format, boost-format @@ -12570,7 +12570,7 @@ msgstr "mm o. %" msgid "Other layers" msgstr "Andere Schichten" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Dies ist die Betttemperatur für Schichten mit Ausnahme der Ersten. Ein Wert von 0 bedeutet, dass das Filament auf der kalten Druckplatte SuperTack nicht unterstützt wird." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15802,7 +15802,7 @@ msgstr "Die Start- und Endpunkte, vom Schnittbereich bis zum Auswurfschacht." msgid "Reduce infill retraction" msgstr "Rückzug bei der Füllung verringern" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Kein Rückzug, wenn sich die Bewegung des Druckkopfes vollständig in einem Füllbereich befindet. Das bedeutet, dass das herauslaufen des Filaments nicht zu sehen ist. Dies kann die Zeit für das zurückziehen des Filaments bei komplexeren Modellen verkürzen und Druckzeit sparen, verlangsamt aber das Slicen und die G-Code Generierung." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15972,7 +15972,7 @@ msgstr "Rückzugsmenge nach dem Wischen" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Die Länge des schnellen Rückzugs nach dem Wischen, relativ zur Rückzugslänge.\n" @@ -16019,7 +16019,7 @@ msgstr "Wenn vor einem Werkzeugwechsel ein Rückzug ausgelöst wird, wird das Fi msgid "Z-hop height" msgstr "Z-Hub-Höhe" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Bei jedem Rückzug wird die Düse ein wenig angehoben, um einen Abstand zwischen Düse und Druck zu schaffen. Dadurch wird verhindert, dass die Düse bei der Verfahrbewegung gegen den Druck stößt. Die Verwendung einer Spirallinie zum Anheben von z kann Fadenbildung verhindern." msgid "Z-hop lower boundary" @@ -19600,19 +19600,19 @@ msgstr "Nur Druckernamen mit Änderungen an Drucker-, Filament- und Prozessprofi msgid "Only display the filament names with changes to filament presets." msgstr "Nur die Filamentnamen mit Änderungen an den Filamentprofilen werden angezeigt." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Nur Druckernamen mit Benutzerdruckerprofilen werden angezeigt, und jedes Profil, das Sie auswählen, wird als ZIP exportiert." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Nur die Filamentnamen mit Benutzerfilamentvorlagen werden angezeigt, \n" "und alle Benutzerfilamentvorlagen in jedem Filamentnamen, den Sie auswählen, " msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Nur Druckernamen mit geänderten Prozessvorlagen werden angezeigt, \n" "und alle Benutzerprozessvorlagen in jedem Druckernamen, den Sie auswählen, werden als ZIP exportiert." @@ -19841,7 +19841,7 @@ msgstr "Systeminformationen in die Zwischenablage kopieren" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Wir benötigen Informationen zur Diagnose der Ursache des Problems. Überprüfen Sie die Wiki-Seite für eine detaillierte Anleitung." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Die Schaltfläche „Packen“ sammelt die Projektdatei und Protokolle der aktuellen Sitzung in einer ZIP-Datei." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19883,7 +19883,7 @@ msgstr "Protokollstufe" msgid "Stored logs" msgstr "Gespeicherte Protokolle" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Packt alle gespeicherten Protokolle in eine ZIP-Datei." msgid "Profiles" @@ -19950,7 +19950,7 @@ msgstr "Druckertyp nicht gefunden, bitte manuell auswählen." msgid "Authorizing..." msgstr "Autorisierung..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Fehler. Kann kein API-Token für die Autorisierung erhalten" msgid "Could not parse server response." diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index eb0a7d774c..0d0d0e2ddb 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -5947,10 +5947,10 @@ msgstr "" msgid "Load a model" msgstr "" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "" msgid "Import Configs" @@ -7659,7 +7659,7 @@ msgstr "" msgid "Customized Preset" msgstr "" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -7681,7 +7681,7 @@ msgstr "" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" msgid "Object too small" @@ -10325,11 +10325,11 @@ msgstr "" msgid "No modifications need to be copied." msgstr "" -msgid "Copy paramters" +msgid "Copy parameters" msgstr "" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "" #, c-format, boost-format @@ -11870,7 +11870,7 @@ msgstr "" msgid "Other layers" msgstr "" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "" msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -14671,7 +14671,7 @@ msgstr "" msgid "Reduce infill retraction" msgstr "" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -14827,7 +14827,7 @@ msgstr "" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" @@ -14870,7 +14870,7 @@ msgstr "" msgid "Z-hop height" msgstr "" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "" msgid "Z-hop lower boundary" @@ -18187,17 +18187,17 @@ msgstr "" msgid "Only display the filament names with changes to filament presets." msgstr "" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" msgid "Please select at least one printer or filament." @@ -18412,7 +18412,7 @@ msgstr "" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "" -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "" msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -18454,7 +18454,7 @@ msgstr "" msgid "Stored logs" msgstr "" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "" msgid "Profiles" @@ -18519,7 +18519,7 @@ msgstr "" msgid "Authorizing..." msgstr "" -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "" msgid "Could not parse server response." diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 23294fddbd..032516c978 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -6129,10 +6129,10 @@ msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Cargar un modelo" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importar archivo Zip" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Cargar modelos contenidos en un archivo zip" msgid "Import Configs" @@ -7877,8 +7877,8 @@ msgstr "¡Por favor, confirme que el G-Code dentro de los perfiles son seguros p msgid "Customized Preset" msgstr "Perfil Personalizado" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "¡El nombre de los componentes dentro del archivo de pasos no tiene formato UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "¡El nombre de los componentes dentro del archivo de pasos no tiene formato UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "¡El nombre puede mostrar caracteres no válidos!" @@ -7899,10 +7899,10 @@ msgstr "El volumen del objeto es cero" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "El objeto del archivo %s es demasiado pequeño, tal vez en metros o pulgadas.\n" -" ¿Quiere escalar a milímetros?" +"¿Quiere escalar a milímetros?" msgid "Object too small" msgstr "Objeto demasiado pequeño" @@ -10670,11 +10670,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "No hay modificaciones que copiar." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Copiar parámetros" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modificar parámetros de %s" #, c-format, boost-format @@ -12267,8 +12267,8 @@ msgstr "mm o %" msgid "Other layers" msgstr "Otras capas" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "Temperatura de la cama para las capas, excepto la inicial. Un valor de 0 significa que el filamento no es compatible con la Cama Fría SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgstr "Esta es la temperatura de la cama para las capas excepto la inicial. Un valor de 0 significa que el filamento no es compatible con la Cama Fría SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Esta es la temperatura de la cama para las capas excepto la inicial. Un valor de 0 significa que el filamento no admite la impresión en la Cama Fría." @@ -15470,7 +15470,7 @@ msgstr "Los puntos de inicio y fin, desde la zona de corte al cubo de basura." msgid "Reduce infill retraction" msgstr "Reducir la retracción del relleno" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Desactiva la retracción cuando el desplazamiento se realiza en su totalidad dentro de un área de relleno, donde los artefactos causados por un rezumado no son visibles. Puede reducir el número de retracciones y por ende el tiempo total de retracción al imprimir modelos complejos, reduciendo el tiempo total de impresión. Sin embargo, puede que las operaciones de laminado y de generación del archivo G-Code sean más lentas." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15635,7 +15635,7 @@ msgstr "Cantidad de retracción después de la limpieza" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "La longitud de la retracción rápida después de la limpieza, relativa a la longitud de retracción.\n" @@ -15682,7 +15682,7 @@ msgstr "Cuando se activa la retracción antes de un cambio de herramienta, el fi msgid "Z-hop height" msgstr "Altura de Salto en Z" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Cada vez que se realiza una retracción, la boquilla se levanta un poco para crear un pequeño margen entre la boquilla y la impresión. Esto evita que la boquilla golpee la pieza cuando se desplaza. El uso de la línea espiral para levantar z puede evitar la aparición de hilos." msgid "Z-hop lower boundary" @@ -17423,7 +17423,7 @@ msgid "Current Z-hop" msgstr "Z-Hop actual" msgid "Contains Z-hop present at the beginning of the custom G-code block." -msgstr "Contiene el z-hop presente al principio del bloque de G-Code personalizado." +msgstr "Contiene el Z-hop presente al principio del bloque de G-Code personalizado." msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back." msgstr "Posición del extrusor al comienzo del bloque de G-Code personalizado. Si el G-Code personalizado viaja a otro lugar, debe escribir en esta variable para que OrcaSlicer sepa desde dónde viaja cuando recupere el control." @@ -19233,17 +19233,17 @@ msgstr "Mostrar sólo los nombres de impresora con cambios en los perfiles de im msgid "Only display the filament names with changes to filament presets." msgstr "Mostrar sólo los nombres de impresora con cambios en los perfiles de filamento." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Sólo se mostrarán los nombres de impresoras con perfiles de impresora de usuario, y cada perfil que elija se exportará como un archivo zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "Sólo se mostrarán los nombres de filamento con perfiles de filamento de usuario, y todos los perfiles de filamento de usuario de cada nombre de filamento que seleccione se exportarán como un archivo zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Sólo se mostrarán los nombres de impresoras con perfiles de procesos modificados, \n" "y todos los perfiles de procesos de usuario de cada nombre de impresora que seleccione se exportarán como un archivo zip." @@ -19472,7 +19472,7 @@ msgstr "Copiar información del sistema al portapapeles" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Necesitamos información para diagnosticar el origen del problema. Consulta la página wiki para una guía detallada." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "El botón Empaquetar recopila el archivo del proyecto y los registros de la sesión actual en un archivo zip." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19514,7 +19514,7 @@ msgstr "Nivel de registro" msgid "Stored logs" msgstr "Registros almacenados" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Empaqueta todos los registros almacenados en un archivo zip." msgid "Profiles" @@ -19581,7 +19581,7 @@ msgstr "No se ha encontrado el tipo de impresora; selecciónelo manualmente." msgid "Authorizing..." msgstr "Autorizando..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Error. No se puede obtener el token de la API para la autorización" msgid "Could not parse server response." @@ -21042,7 +21042,7 @@ msgstr "" #~ msgid "Select Filament && Hotends" #~ msgstr "Seleccionar Filamento && Hotends" -#~ msgid "External spools is not supported since Filament Track Switch has been installed. If you want to use external spool, please uninstall it." +#~ msgid "External spools are not supported since Filament Track Switch has been installed. If you want to use external spool, please uninstall it." #~ msgstr "Los carretes externos no son compatibles porque se ha instalado el Filament Track Switch. Si desea utilizar un carrete externo, desinstálelo." #, c-format, boost-format diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index a5a49e8325..26185f6514 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -3,7 +3,6 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: \n" @@ -6174,10 +6173,10 @@ msgstr "Inportatu 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Modeloa kargatu" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Inportatu ZIP fitxategia" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Kargatu ZIP fitxategi baten barnean dauden modeloak" msgid "Import Configs" @@ -7945,7 +7944,7 @@ msgstr "Berretsi aurrezarpen hauetako G-codea segurua dela, makinari kalterik ez msgid "Customized Preset" msgstr "Aurrezarpen pertsonalizatua" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "STEP fitxategiko osagai-izena(k) ez dago/daude UTF-8 formatuan!" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -7967,10 +7966,10 @@ msgstr "Objektuaren bolumena zero da" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "%s fitxategiko objektua txikiegia da, eta baliteke metrotan edo hazbetetan egotea.\n" -" Milimetroetara eskalatu nahi duzu?" +"Milimetroetara eskalatu nahi duzu?" msgid "Object too small" msgstr "Objektua txikiegia da" @@ -10765,11 +10764,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Ez dago kopiatu beharreko aldaketarik." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Kopiatu parametroak" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Aldatu %s-(r)en parametroak" #, c-format, boost-format @@ -12379,8 +12378,8 @@ msgstr "mm edo %" msgid "Other layers" msgstr "Beste geruzak" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "Hasierakoa ez den geruzetarako ohearen tenperatura. 0 balioak filamentuak SuperTack Plaka hotzaren gainean inprimatzea ez duela onartzen esan nahi du." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgstr "Hau da lehenengoa ez den geruzetarako ohearen tenperatura. 0 balioak filamentuak SuperTack Plaka hotzaren gainean inprimatzea ez duela onartzen esan nahi du." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Hau da lehenengoa ez den geruzetarako ohearen tenperatura. 0 balioak filamentuak Plaka hotzaren gainean inprimatzea ez duela onartzen esan nahi du." @@ -15606,8 +15605,8 @@ msgstr "Mozteko eremutik hondakin-ontzira doazen hasierako eta amaierako puntuak msgid "Reduce infill retraction" msgstr "Murriztu betegarriaren atzera-egitea" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Ez egin atzera-egiterik mugimendua guztiz betegarriaren eremuan dagoenean. Horrek esan nahi du jarioa ez dela ikusiko. Honek modelo konplexuetan atzera-egite kopurua murriztu eta inprimatze-denbora aurreztu dezake, baina xerraketa eta G-codearen sorrera motelduko ditu. Kontuan izan z-hop mugimendua ez dela egiten atzera-egitea saihesten den eremuetan." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Ez egin atzera-egiterik mugimendua guztiz betegarriaren eremuan dagoenean. Horrek esan nahi du jarioa ez dela ikusiko. Honek modelo konplexuetan atzera-egite kopurua murriztu eta inprimatze-denbora aurreztu dezake, baina xerraketa eta G-codearen sorrera motelduko ditu. Kontuan izan Z-hop mugimendua ez dela egiten atzera-egitea saihesten den eremuetan." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "Aukera honek aktibo ez dauden estrusoreen tenperatura jaitsiko du, jarioa saihesteko." @@ -15771,7 +15770,7 @@ msgstr "Garbitu ondorengo atzera-egite kantitatea" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Garbiketa-mugimenduaren ondorengo atzera-egite azkarraren luzera, atzera-egitearen luzerari dagokionez.\n" @@ -15818,7 +15817,7 @@ msgstr "Erreminta aldatu aurretik atzera-egitea abiarazten denean, filamentua ze msgid "Z-hop height" msgstr "Z jauziaren altuera" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Atzera-egite bakoitzean pita apur bat altxatzen da pitaren eta inprimaketaren artean tartea sortzeko. Horrela, mugimenduetan pitak pieza jotzea saihesten da. Z altxatzeko espiral-lerroak erabiltzeak hariak sortzea murriztu dezake." msgid "Z-hop lower boundary" @@ -19379,19 +19378,19 @@ msgstr "Inprimagailuaren, filamentuen edo prozesuen aurrezarpenetan aldaketak di msgid "Only display the filament names with changes to filament presets." msgstr "Bistaratu soilik filamentu-aurrezarpenetan aldaketak dituzten filamentu-izenak." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Erabiltzailearen inprimagailu-aurrezarpenak dituzten inprimagailu-izenak soilik bistaratuko dira, eta hautatzen duzun aurrezarpen bakoitza zip gisa esportatuko da." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Erabiltzailearen filamentu-aurrezarpenak dituzten filamentu-izenak soilik bistaratuko dira, \n" "eta hautatzen duzun filamentu-izen bakoitzeko erabiltzailearen filamentu-aurrezarpen guztiak zip gisa esportatuko dira." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Prozesu-aurrezarpen aldatuak dituzten inprimagailu-izenak soilik bistaratuko dira, \n" "eta hautatzen duzun inprimagailu-izen bakoitzeko erabiltzailearen prozesu-aurrezarpen guztiak zip gisa esportatuko dira." @@ -19620,7 +19619,7 @@ msgstr "Kopiatu sistemaren informazioa arbelera" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Arazoaren jatorria diagnostikatzeko informazioa behar dugu. Begiratu wiki-orria gida xehatua ikusteko." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Paketatu botoiak proiektu-fitxategia eta uneko saioko erregistroak ZIP fitxategi batean biltzen ditu." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19662,7 +19661,7 @@ msgstr "Erregistro-maila" msgid "Stored logs" msgstr "Gordetako erregistroak" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Gordetako erregistro guztiak ZIP fitxategi batean paketatzen ditu." msgid "Profiles" @@ -19729,7 +19728,7 @@ msgstr "Ez da inprimagailu mota aurkitu; hautatu eskuz." msgid "Authorizing..." msgstr "Baimena ematen..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Errorea. Ezin da baimenerako API tokena lortu" msgid "Could not parse server response." @@ -22259,20 +22258,12 @@ msgstr "" #~ msgid "The 3mf has the following customized filament or printer presets:" #~ msgstr "3mf-ak pertsonalizatutako filamentuen edo inprimagailuaren aurrezarpen hauek dauzka:" -#~ msgid "Name of components inside step file is not UTF8 format!" -#~ msgstr "Step fitxategiko osagaien izena ez dago UTF8 formatuan!" +#~ msgid "Name of components inside step file is not UTF-8 format!" +#~ msgstr "Step fitxategiko osagaien izena ez dago UTF-8 formatuan!" #~ msgid "The name may show garbage characters!" #~ msgstr "Izenak karaktere ulergaitzak erakuts ditzake!" -#, c-format, boost-format -#~ msgid "" -#~ "The object from file %s is too small, and maybe in meters or inches.\n" -#~ " Do you want to scale to millimeters?" -#~ msgstr "" -#~ "%s fitxategiko objektua txikiegia da, eta baliteke metroetan edo hazbetetan egotea.\n" -#~ " Milimetrotara eskalatu nahi duzu?" - #~ msgid "" #~ "This file contains several objects positioned at multiple heights.\n" #~ "Instead of considering them as multiple objects, should \n" @@ -23123,24 +23114,6 @@ msgstr "" #~ msgid "Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable." #~ msgstr "Hormak gurutzatzea saihesteko gehieneko desbideratze-distantzia. Ez desbideratu distantzia balio hau baino handiagoa bada. Desbideratze-luzera balio absolutu gisa edo lekualdatze-ibilbide zuzenaren ehuneko gisa zehaztu daiteke (adibidez, 50%). Zero, desgaitzeko." -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate." -#~ msgstr "Ohearen tenperatura hasierakoa ez diren geruzetarako. 0 balioak esan nahi du filamentuak ez duela plaka hotzean inprimatzea onartzen." - -#~ msgid "°C" -#~ msgstr "°C" - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Textured Cool Plate." -#~ msgstr "Ohearen tenperatura hasierakoa ez diren geruzetarako. 0 balioak esan nahi du filamentuak ez duela testuradun plaka hotzean inprimatzea onartzen." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Engineering Plate." -#~ msgstr "Ohearen tenperatura hasierakoa ez diren geruzetarako. 0 balioak esan nahi du filamentuak ez duela ingeniaritza-plakan inprimatzea onartzen." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the High Temp Plate." -#~ msgstr "Ohearen tenperatura hasierakoa ez diren geruzetarako. 0 balioak esan nahi du filamentuak ez duela tenperatura altuko plakan inprimatzea onartzen." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Textured PEI Plate." -#~ msgstr "Ohearen tenperatura hasierakoa ez diren geruzetarako. 0 balioak esan nahi du filamentuak ez duela testuradun PEI plakan inprimatzea onartzen." - #~ msgid "Initial layer" #~ msgstr "Hasierako geruza" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 65589bc5ff..28a2e27a01 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6221,10 +6221,10 @@ msgstr "Importer des fichiers 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Charger un modèle" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importer une archive Zip" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Charger les modèles contenus dans une archive zip" msgid "Import Configs" @@ -8000,7 +8000,7 @@ msgstr "Veuillez vous assurer que les G-codes de ces préréglages sont sûrs af msgid "Customized Preset" msgstr "Préréglage personnalisé" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "Le nom des composants dans le fichier STEP n'est pas au format UTF-8 !" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8022,10 +8022,10 @@ msgstr "Le volume de l'objet est nul" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "L’objet du fichier %s est trop petit, et est peut-être en mètres ou en pouces.\n" -" Voulez-vous le mettre à l’échelle en millimètres ?" +"Voulez-vous le mettre à l’échelle en millimètres ?" msgid "Object too small" msgstr "Objet trop petit" @@ -10854,11 +10854,11 @@ msgstr "%s : %s" msgid "No modifications need to be copied." msgstr "Aucune modification à copier." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Copier les paramètres" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modifier les paramètres de %s" #, c-format, boost-format @@ -12475,21 +12475,27 @@ msgstr "mm ou %" msgid "Other layers" msgstr "Autres couches" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Température du plateau pour les couches sauf la première. Une valeur de 0 signifie que le filament ne prend pas en charge l'impression sur la Cool Plate SuperTack." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur la plaque \"Cool plate\"." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Température du plateau pour les couches à l’exception de la couche initiale. La valeur 0 signifie que le filament ne peut pas être imprimé sur la plaque Cool Plate texturée." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur la plaque Engineering." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur le plateau haute température (\"High Temp plate\")." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Température du plateau après la première couche. 0 signifie que le filament ne peut pas être imprimé sur la plaque PEI texturée." @@ -15703,7 +15709,7 @@ msgstr "Les points de départ et d'arrivée qui se situent entre la zone de coup msgid "Reduce infill retraction" msgstr "Réduire la rétraction du remplissage" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Ne pas effectuer de rétraction lors de déplacement en zone de remplissage car même si l’extrudeur suinte, les coulures ne seraient pas visibles. Cela peut réduire les rétractions pour les modèles complexes et économiser du temps d’impression, mais ralentit la découpe et la génération du G-code" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15873,7 +15879,7 @@ msgstr "Quantité de rétraction après essuyage" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "La longueur de la rétraction rapide après l'essuyage, relative à la longueur de rétraction.\n" @@ -15920,7 +15926,7 @@ msgstr "Lorsque la rétraction est déclenchée avant un changement d’outil, l msgid "Z-hop height" msgstr "Hauteur du saut en Z" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Chaque fois que la rétraction est effectuée, la buse est légèrement soulevée pour créer un espace entre la buse et l'impression. Il empêche la buse de toucher l'impression lors du déplacement. L'utilisation d'une ligne en spirale pour soulever z peut empêcher l'enfilage" msgid "Z-hop lower boundary" @@ -19492,19 +19498,19 @@ msgstr "N’afficher que les noms d’imprimantes avec les modifications apport msgid "Only display the filament names with changes to filament presets." msgstr "N’affichez que les noms des filaments lorsque vous modifiez les préréglages des filaments." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Seuls les noms d’imprimantes avec des préréglages d’imprimante utilisateur seront affichés, et chaque préréglage que vous choisissez sera exporté sous forme de fichier zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Seuls les noms de filaments contenant des préréglages de filaments utilisateur seront affichés, \n" "et tous les préréglages de filament d’utilisateur dans chaque nom de filament que vous sélectionnez seront exportés sous forme de fichier zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Seuls les noms d’imprimantes dont les préréglages de traitement ont été modifiés seront affichés, \n" "et tous les préréglages de processus de l’utilisateur dans chaque nom d’imprimante que vous sélectionnez seront exportés sous forme de fichier zip." @@ -19733,7 +19739,7 @@ msgstr "Copier les informations système dans le presse-papiers" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Nous avons besoin d’informations pour diagnostiquer l’origine du problème. Consultez la page wiki pour un guide détaillé." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Le bouton Compresser rassemble le fichier de projet et les journaux de la session actuelle dans un fichier ZIP." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19775,7 +19781,7 @@ msgstr "Niveau de journalisation" msgid "Stored logs" msgstr "Journaux stockés" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Compresse tous les journaux stockés dans un fichier ZIP." msgid "Profiles" @@ -19842,7 +19848,7 @@ msgstr "Type d’imprimante introuvable, veuillez le sélectionner manuellement. msgid "Authorizing..." msgstr "Autorisation en cours…" -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Erreur : impossible d’obtenir le jeton d’API pour l’autorisation" msgid "Could not parse server response." @@ -22159,8 +22165,8 @@ msgstr "" #~ msgid "The 3mf has the following customized filament or printer presets:" #~ msgstr "Le 3mf dispose de filaments personnalisés ou de préréglages d'imprimante :" -#~ msgid "Name of components inside step file is not UTF8 format!" -#~ msgstr "Le nom des composants à l'intérieur du fichier .step n'est pas au format UTF8 !" +#~ msgid "Name of components inside step file is not UTF-8 format!" +#~ msgstr "Le nom des composants à l'intérieur du fichier .step n'est pas au format UTF-8 !" #~ msgid "Should printer/filament/process settings be loaded when opening a .3mf?" #~ msgstr "Les paramètres de l’imprimante/du filament/du processus doivent-ils être chargés lors de l’ouverture d’un fichier .3mf ?" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 9d966bf80a..1dbfe0b1b7 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -6323,10 +6323,10 @@ msgstr "Importálás 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Modell betöltése" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Zip archívum importálása" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Zip archívumban található modellek betöltése" msgid "Import Configs" @@ -8115,7 +8115,7 @@ msgstr "Kérlek, győződj meg arról, hogy a beállításokban található G-k msgid "Customized Preset" msgstr "Egyedi beállítás" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "A STEP fájlon belüli komponens neve nem UTF-8 formátumban van!" # AI Translated @@ -8139,10 +8139,10 @@ msgstr "Az objektum térfogata nulla" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "A(z) %s fájlból származó objektum túl kicsi, lehet, hogy méterben vagy hüvelykben lett létrehozva.\n" -" Szeretnéd milliméterre méretezni?" +"Szeretnéd milliméterre méretezni?" msgid "Object too small" msgstr "Objektum túl kicsi" @@ -11030,12 +11030,12 @@ msgid "No modifications need to be copied." msgstr "Nincs másolandó módosítás." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Paraméterek másolása" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "A(z) %s paramétereinek módosítása" # AI Translated @@ -12685,7 +12685,7 @@ msgstr "mm vagy %" msgid "Other layers" msgstr "Többi réteg" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "A kezdőréteg utáni asztalhőmérséklet. A 0 azt jelenti, hogy a filament nem nyomtatható a SuperTack hűvös tálcára." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15957,7 +15957,7 @@ msgid "Reduce infill retraction" msgstr "Csökkentett visszahúzás kitöltésnél" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Nem történik visszahúzás, amikor a fej csak kitöltés felett halad el, mert az itt történő szivárgás egyébként sem látható. Ez az opció lerövidítheti a nyomtatási időt a visszahúzások csökkentésével komplex modelleknél, de egyúttal lassabbá teszi a szeletelést és a G-kód generálást. Vedd figyelembe, hogy a Z-emelés sem történik meg azokon a területeken, ahol a visszahúzás ki van hagyva." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16131,7 +16131,7 @@ msgstr "Visszahúzás mértéke törlés után" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "A törlés utáni gyors visszahúzás hossza a visszahúzási hosszhoz viszonyítva.\n" @@ -16178,7 +16178,7 @@ msgstr "Amikor a visszahúzás eszközváltás előtt aktiválódik, a filament msgid "Z-hop height" msgstr "Z-emelés magassága" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Visszahúzáskor a fúvóka egy kicsit megemelkedik, hogy a fúvóka és a nyomtatott tárgy között rés keletkezzen. Ez megakadályozza, hogy a fúvóka nagyobb mozgás közben a tárgynak ütközzön. A Z tengely emelésekor használt körkörös mozgás megelőzheti a szálazást." msgid "Z-hop lower boundary" @@ -19796,19 +19796,19 @@ msgstr "Csak azok a nyomtatók jelennek meg, amelyeknél változtak a nyomtató- msgid "Only display the filament names with changes to filament presets." msgstr "Csak azok a filamentnevek jelennek meg, ahol változtak a filamentbeállítások." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Csak azok a nyomtatónevek jelennek meg, amelyekhez tartoznak felhasználói beállítások. A kiválasztott beállítások ZIP fájlként kerülnek exportálásra." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Csak azok a filamentnevek jelennek meg, amelyekhez tartoznak felhasználói filamentbeállítások,\n" "és a kiválasztott filamentnevekhez tartozó összes felhasználói filamentbeállítás ZIP-fájlként lesz exportálva." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Csak azok a nyomtatónevek jelennek meg, amelyekhez módosított folyamatbeállítások tartoznak,\n" "és a kiválasztott nyomtatónevekhez tartozó összes felhasználói folyamatbeállítás ZIP-fájlként lesz exportálva." @@ -20054,7 +20054,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Információra van szükségünk a probléma forrásának feltárásához. A részletes útmutatót a wiki oldalon találod." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "A Csomagolás gomb egy zip fájlba gyűjti a projektfájlt és az aktuális munkamenet naplóit." # AI Translated @@ -20110,7 +20110,7 @@ msgid "Stored logs" msgstr "Tárolt naplók" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Az összes tárolt naplót egy zip fájlba csomagolja." # AI Translated @@ -20198,7 +20198,7 @@ msgid "Authorizing..." msgstr "Engedélyezés..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Hiba. Nem sikerült API-tokent szerezni az engedélyezéshez" # AI Translated diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 6190d2ab44..f9d31456bf 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -6325,10 +6325,10 @@ msgstr "Importa 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Carica modello" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importa archivio Zip" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Carica i modelli contenuti in un archivio zip" msgid "Import Configs" @@ -8119,8 +8119,8 @@ msgstr "Si prega di confermare che i G-code all'interno di questi profili sono s msgid "Customized Preset" msgstr "Profilo personalizzato" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Il nome dei componenti all'interno del file STEP non è in formato UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Il nome dei componenti all'interno del file STEP non è in formato UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "A causa di una codifica del testo non supportata, potrebbero apparire caratteri inutili!" @@ -8141,10 +8141,10 @@ msgstr "Il volume dell'oggetto è zero" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "L'oggetto del file %s è troppo piccolo e può essere in metri o pollici.\n" -" Si desidera scalare in millimetri?" +"Si desidera scalare in millimetri?" msgid "Object too small" msgstr "Oggetto troppo piccolo" @@ -11044,12 +11044,12 @@ msgid "No modifications need to be copied." msgstr "Non è necessario copiare alcuna modifica." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Copia parametri" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modifica i parametri di %s" # AI Translated @@ -12705,8 +12705,8 @@ msgstr "mm o %" msgid "Other layers" msgstr "Altri strati" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." -msgstr "Temperatura del piatto per gli strati diversi dal primo. Un valore di 0 significa che il filamento non supporta la stampa su Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgstr "Indica la temperatura del piatto per tutti gli strati eccetto il primo. Un valore di 0 significa che il filamento non supporta la stampa su Cool Plate SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Indica la temperatura del piatto per tutti gli strati eccetto il primo. Un valore pari a 0 indica che il filamento non supporta la stampa su Piatto a bassa temperatura." @@ -15976,7 +15976,7 @@ msgid "Reduce infill retraction" msgstr "Evita retrazione nel riempimento" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Non ritrarre quando gli spostamenti si trovano interamente in un'area di riempimento. Ciò significa che il trasudo del materiale non è visibile. Questo può ridurre i tempi di retrazione per i modelli complessi e far risparmiare tempo di stampa, ma rende più lente l'elaborazione e la generazione del G-code. Nota che anche il sollevamento Z non viene eseguito nelle aree in cui la retrazione viene saltata." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16150,7 +16150,7 @@ msgstr "Quantità di retrazione dopo la pulizia" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "La lunghezza della retrazione rapida dopo la pulizia, relativa alla lunghezza di retrazione.\n" @@ -16197,7 +16197,7 @@ msgstr "Quando la retrazione viene attivata prima di un cambio testina, il filam msgid "Z-hop height" msgstr "Altezza sollevamento Z" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Ogni volta che si verifica una retrazione, l'ugello viene sollevato leggermente per creare spazio tra ugello e stampa. Ciò impedisce all'ugello di colpire la stampa negli spostamenti. L'uso di linee a spirale per il sollevamento sull'asse Z può evitare gli sfilacciamenti sulla stampa." msgid "Z-hop lower boundary" @@ -19813,21 +19813,21 @@ msgstr "Vengono visualizzate solo le stampanti con modifiche ai profili di stamp msgid "Only display the filament names with changes to filament presets." msgstr "Nomi dei filamenti con modifiche ai profili di filamento." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "" "Nomi delle stampanti con profili creati dell'utente.\n" "Tutti i profili selezionati saranno esportati come file zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Nomi dei filamenti con profili creati dell'utente.\n" "Tutti i profili selezionati saranno esportati come file zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Nomi delle stampanti con profili di processo modificati.\n" "Tutti i profili selezionati saranno esportati come file zip." @@ -20072,7 +20072,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Abbiamo bisogno di informazioni per diagnosticare l'origine del problema. Consulta la pagina wiki per una guida dettagliata." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Il pulsante Comprimi raccoglie il file di progetto e i log della sessione corrente in un file zip." # AI Translated @@ -20128,7 +20128,7 @@ msgid "Stored logs" msgstr "Log memorizzati" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Comprime tutti i log memorizzati in un file zip." # AI Translated @@ -20216,7 +20216,7 @@ msgid "Authorizing..." msgstr "Autorizzazione in corso..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Errore. Impossibile ottenere il token API per l'autorizzazione" # AI Translated diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index d67a39463d..9c819dd7c1 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -6334,10 +6334,10 @@ msgstr "3MF/STL/STEP/SVG/OBJ/AMFをインポート" msgid "Load a model" msgstr "モデルを読み込む" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "ZIPアーカイブをインポート" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "ZIPアーカイブ内のモデルをロード" msgid "Import Configs" @@ -8133,8 +8133,8 @@ msgstr "これらのプリセット内のG-codeがマシンに損傷を与えな msgid "Customized Preset" msgstr "カスタマイズされたプリセット" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "ファイルのエンコーディング方式はUTF8形式ではありません" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "ファイルのエンコーディング方式はUTF-8形式ではありません" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "文字化けがあるようです、ご確認ください" @@ -8155,7 +8155,7 @@ msgstr "オブジェクトの体積が0です" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "ファイル %s 中のオブジェクトが小さいすぎます、ファイルの単位をご確認ください。\n" "mm単位に変換しますか?" @@ -11068,12 +11068,12 @@ msgid "No modifications need to be copied." msgstr "コピーが必要な変更はありません。" # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "パラメータをコピー" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "%sのパラメータを変更" # AI Translated @@ -12756,23 +12756,27 @@ msgstr "mm 或は %" msgid "Other layers" msgstr "他の層" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "1層目を除く各層のベッド温度です。0の場合、そのフィラメントはCool Plate SuperTackでの印刷に対応していません。" +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントが常温プレートで使用できないという意味です。" -# AI Translated +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "1層目を除く各層のベッド温度です。0の場合、そのフィラメントはTextured Cool Plateでの印刷に対応していません。" +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントがエンジニアリング プレートで使用できないという意味です。" +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントが高温プレートで使用できないという意味です。" +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "1層目以外のベッド温度。値が0の場合、フィラメントがPEIプレートをサポートしない意味をします。" @@ -16238,7 +16242,7 @@ msgstr "カッター領域から廃料排出口までの終始点" msgid "Reduce infill retraction" msgstr "インフィルのリトラクション低減" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "インフィル領域内の移動はリトラクションしません。造形時間を節約できます。" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16423,7 +16427,7 @@ msgstr "ワイプ後のリトラクション量" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "ワイプ後の高速リトラクションの長さで、リトラクション長に対する割合です。\n" @@ -16474,7 +16478,7 @@ msgstr "ツール交換の前にリトラクションが行われるとき、指 msgid "Z-hop height" msgstr "Zホップの高さ" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "リトラクション時に、ノズルを少し上げてから移動します。この動作でモデルとの衝突を回避できます。" # AI Translated @@ -18439,10 +18443,10 @@ msgid "Allow 3MF with newer version to be sliced." msgstr "新しいバージョンの3MFのスライスを許可します。" msgid "Current Z-hop" -msgstr "現在のz-hop" +msgstr "現在のZ-hop" msgid "Contains Z-hop present at the beginning of the custom G-code block." -msgstr "カスタムGコードブロックの先頭に存在するz-hopを含む。" +msgstr "カスタムGコードブロックの先頭に存在するZ-hopを含む。" msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back." msgstr "カスタム G コード ブロックの先頭のエクストルーダーのモーターの位置。 カスタム G コードで動かしたとき、PrusaSlicer が制御を取り戻したときにどこから移動したかを認識できるように、この変数に書き込む必要があります。" @@ -20340,19 +20344,19 @@ msgstr "プリンタ、フィラメント、加工プリセットに変更があ msgid "Only display the filament names with changes to filament presets." msgstr "フィラメントプリセットを変更したフィラメント名のみを表示します。" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "ユーザープリンタプリセットを持つプリンタ名のみが表示され、選択した各プリセットがZIPとしてエクスポートされます。" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "ユーザーフィラメントプリセットを含むフィラメント名のみが表示されます、 \n" "選択した各フィラメント名に含まれるすべてのユーザーフィラメントプリセットがZIP形式でエクスポートされます。" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "変更されたプロセスプリセットがあるプリンタ名のみが表示され、選択した各プリンタ名にあるすべてのユーザープロセスプリセットがZIP形式でエクスポートされます。" msgid "Please select at least one printer or filament." @@ -20596,7 +20600,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "問題の原因を特定するために情報が必要です。詳しい手順はWikiページをご覧ください。" # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "「パック」ボタンは、現在のセッションのプロジェクトファイルとログをzipファイルにまとめます。" # AI Translated @@ -20652,7 +20656,7 @@ msgid "Stored logs" msgstr "保存されたログ" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "保存されたすべてのログをzipファイルにまとめます。" # AI Translated @@ -20740,7 +20744,7 @@ msgid "Authorizing..." msgstr "認証中..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "エラー。認証用のAPIトークンを取得できません" # AI Translated diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index e8dfca968f..61d785ef2e 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -6348,10 +6348,10 @@ msgstr "3MF/STL/STEP/SVG/OBJ/AMF 가져오기" msgid "Load a model" msgstr "모델 불러오기" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "ZIP 압축파일 가져오기" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "ZIP 압축파일에 포함된 모델 로드" msgid "Import Configs" @@ -8152,8 +8152,8 @@ msgid "Customized Preset" msgstr "사용자 정의 프리셋" # AI Translated -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "STEP 파일 내부의 구성 요소 이름이 UTF8 형식이 아닙니다!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "STEP 파일 내부의 구성 요소 이름이 UTF-8 형식이 아닙니다!" # AI Translated msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8175,7 +8175,7 @@ msgstr "물체의 부피는 0입니다" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "%s 파일의 객체가 너무 작습니다. 단위가 미터나 인치일 수 있습니다.\n" " mm 단위로 확장하시겠습니까?" @@ -11188,12 +11188,12 @@ msgid "No modifications need to be copied." msgstr "복사할 변경 사항이 없습니다." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "매개변수 복사" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "%s의 매개변수 수정" # AI Translated @@ -12889,22 +12889,27 @@ msgstr "mm 또는 %" msgid "Other layers" msgstr "다른 레이어" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "초기 레이어를 제외한 레이어의 베드 온도입니다. 값이 0이면 해당 필라멘트가 쿨 플레이트 슈퍼택에서의 출력을 지원하지 않음을 의미합니다." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 쿨 플레이트 출력을 지원하지 않음을 의미합니다." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 플레이트에서 출력를 지원하지 않음을 의미합니다." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 엔지니어링 플레이트 출력을 지원하지 않음을 의미합니다." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 고온 플레이트 출력을 지원하지 않음을 의미합니다." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 텍스처 PEI 플레이트 출력을 지원하지 않음을 의미합니다." @@ -16276,7 +16281,7 @@ msgid "Reduce infill retraction" msgstr "채우기 후퇴 감소" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "이동 경로가 완전히 채우기 영역 안에 있으면 후퇴하지 않습니다. 흘러내림이 보이지 않기 때문입니다. 복잡한 모델에서 후퇴 횟수를 줄여 출력 시간을 절약할 수 있지만 슬라이싱과 G-code 생성 속도는 느려집니다. 후퇴를 건너뛴 영역에서는 Z 올리기도 수행되지 않습니다." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16453,7 +16458,7 @@ msgstr "노즐 청소 후 후퇴량" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "노즐 청소 후 빠른 후퇴의 길이로, 후퇴 길이를 기준으로 합니다.\n" @@ -16500,7 +16505,7 @@ msgstr "툴 체인지 전에 후퇴가 실행되면 지정한 양만큼 필라 msgid "Z-hop height" msgstr "Z올리기 높이" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "후퇴가 완료될 때마다 노즐이 약간 올라가서 노즐과 출력물 사이에 간격이 생깁니다. 이동 시 노즐이 출력물에 닿는 것을 방지합니다. 나선형 선을 사용하여 z를 들어 올리면 스트링 현상을 방지할 수 있습니다" msgid "Z-hop lower boundary" @@ -20213,19 +20218,19 @@ msgstr "프린터, 필라멘트 및 프로세스 사전 설정이 변경된 경 msgid "Only display the filament names with changes to filament presets." msgstr "필라멘트 사전 설정이 변경된 경우에만 필라멘트 이름을 표시합니다." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "사용자 프린터 사전 설정이 있는 프린터 이름만 표시되며, 선택한 각 사전 설정은 zip으로 내보내집니다." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "사용자 필라멘트 사전 설정이 있는 필라멘트 이름만 표시됩니다.\n" "선택한 각 필라멘트 이름의 모든 사용자 필라멘트 사전 설정은 zip으로 내보내집니다." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "프로세스 사전 설정이 변경된 프린터 이름만 표시됩니다.\n" "선택한 각 프린터 이름의 모든 사용자 프로세스 사전 설정은 zip으로 내보내집니다." @@ -20469,7 +20474,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "문제의 원인을 진단하려면 정보가 필요합니다. 자세한 안내는 위키 페이지를 확인하십시오." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "패키지 버튼은 현재 세션의 프로젝트 파일과 로그를 zip 파일로 모읍니다." # AI Translated @@ -20525,7 +20530,7 @@ msgid "Stored logs" msgstr "저장된 로그" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "저장된 모든 로그를 zip 파일로 묶습니다." # AI Translated @@ -20613,7 +20618,7 @@ msgid "Authorizing..." msgstr "인증 중..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "오류. 인증용 API 토큰을 가져올 수 없습니다" # AI Translated diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 8fd32bdd26..e1ce2f18b2 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -3,7 +3,6 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: \n" @@ -6311,10 +6310,10 @@ msgstr "Importuoti 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Įkelti modelį" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importuoti Zip archyvą" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Įkelti modelius iš ZIP archyvo" msgid "Import Configs" @@ -8110,7 +8109,7 @@ msgstr "Patvirtinkite, kad šiuose profiliuose esantis G-kodas yra saugus, kad i msgid "Customized Preset" msgstr "Pritaikytas profilis" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "Komponentų pavadinimai STEP faile nėra UTF-8 formato!" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8132,7 +8131,7 @@ msgstr "Objekto tūris nulinis" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Objektas iš failo „%s“ yra per mažas ir galimai nurodytas metrais arba coliais.\n" "Ar norite mastelį pakeisti į milimetrus?" @@ -10981,11 +10980,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Nereikia kopijuoti jokių modifikacijų" -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Kopijuoti parametrus" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modifikuoti %s parametrus" #, c-format, boost-format @@ -12609,7 +12608,7 @@ msgstr "mm arba %" msgid "Other layers" msgstr "Kiti sluoksniai" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant „Cool Plate SuperTack“ pagrindo." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15839,7 +15838,7 @@ msgstr "Pradžios ir pabaigos taškai, esantys tarp gijos kirpimo zonos ir atlie msgid "Reduce infill retraction" msgstr "Sumažinti užpildo įtraukimą (Retraction)" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Neatlikti gijos įtraukimo, kai tuščioji eiga vyksta tik užpildo zonoje. Tokiu atveju gijos varvėjimas (oozing) išorėje bus nematomas. Tai leidžia sumažinti įtraukimų skaičių sudėtingiems modeliams ir sutaupyti spausdinimo laiko, tačiau sulėtina sluoksniavimą bei G-kodo (G-code) generavimą. Pastaba: zonose, kuriose įtraukimas praleidžiamas, „Z-hop“ judesys taip pat neatliekamas." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16005,7 +16004,7 @@ msgstr "Atitraukimo kiekis po nubraukimo" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Greito atitraukimo ilgis po nubraukimo, atsižvelgiant į atitraukimo ilgį.\n" @@ -16052,7 +16051,7 @@ msgstr "Kai atitraukimas suaktyvinamas prieš įrankio keitimą, gija atitraukia msgid "Z-hop height" msgstr "„Z-hop“ (pakėlimo) aukštis" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Kaskart atliekant atitraukimą, purkštukas šiek tiek pakeliamas, kad tarp jo ir spaudinio atsirastų tarpas. Tai apsaugo nuo purkštuko užkliudymo už spaudinio judėjimo metu. „Spiralinių“ linijų naudojimas Z ašies kėlimui gali padėti išvengti „tįstančių siūlų“ (angl. \"stringing\")." msgid "Z-hop lower boundary" @@ -19649,19 +19648,19 @@ msgstr "Rodomi tik tie spausdintuvai, kurių spausdintuvo, kaitinamojo siūlo ir msgid "Only display the filament names with changes to filament presets." msgstr "Rodyti tik tuos gijų pavadinimus, kurių gijos profiliai buvo pakeisti." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Bus rodomi tik tie spausdintuvų pavadinimai, kurie turi naudotojo sukurtų profilių, o kiekvienas pasirinktas profilis bus eksportuotas kaip ZIP failas." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Bus rodomi tik tie gijų pavadinimai, kurie turi naudotojo sukurtų profilių, \n" "o visi pasirinkto pavadinimo naudotojo gijos profiliai bus eksportuoti kaip ZIP failas." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Bus rodomi tik tie spausdintuvų pavadinimai, kurie turi pakeistų proceso profilių, \n" "o visi pasirinkto spausdintuvo naudotojo proceso profiliai bus eksportuoti kaip ZIP failas." @@ -19891,7 +19890,7 @@ msgstr "Kopijuoti sistemos informaciją į iškarpinę" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Mums reikia informacijos problemos šaltiniui diagnozuoti. Išsamų vadovą rasite „Wiki“ puslapyje." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Mygtukas „Supakuoti“ (Pack) surenka projekto failą ir dabartinės sesijos žurnalus į ZIP failą." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19933,7 +19932,7 @@ msgstr "Žurnalo lygis" msgid "Stored logs" msgstr "Saugomi žurnalai" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Supakuoja visus saugomus žurnalus į ZIP failą." msgid "Profiles" @@ -20000,7 +19999,7 @@ msgstr "Spausdintuvo tipas nerastas, pasirinkite rankiniu būdu." msgid "Authorizing..." msgstr "Autorizuojama..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Klaida. Nepavyko gauti API žetono (token) autorizacijai" msgid "Could not parse server response." @@ -22206,20 +22205,12 @@ msgstr "" #~ msgid "Please correct them in the param tabs" #~ msgstr "Prašome juos ištaisyti parametrų skirtukuose" -#~ msgid "Name of components inside STEP file is not UTF8 format!" +#~ msgid "Name of components inside STEP file is not UTF-8 format!" #~ msgstr "Komponentų pavadinimai STEP faile nėra UTF-8 formato!" #~ msgid "The name may show garbage characters!" #~ msgstr "Pavadinimas gali rodyti neskaitomus simbolius!" -#, c-format, boost-format -#~ msgid "" -#~ "The object from file %s is too small, and maybe in meters or inches.\n" -#~ " Do you want to scale to millimeters?" -#~ msgstr "" -#~ "Objektas iš failo „%s“ yra per mažas ir galimai nurodytas metrais arba coliais.\n" -#~ "Ar norite mastelį pakeisti į milimetrus?" - #~ msgid "" #~ "This file contains several objects positioned at multiple heights.\n" #~ "Instead of considering them as multiple objects, should \n" @@ -22609,21 +22600,6 @@ msgstr "" #~ msgid "Maximum detour distance for avoiding crossing wall. Don't detour if the detour distance is larger than this value. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable." #~ msgstr "Maksimalus apylankos atstumas sienelių kirtimui išvengti. Apylanka nedaroma, jei jos atstumas viršija šią reikšmę. Apylankos ilgis gali būti nurodomas absoliučia verte arba procentais (pavyzdžiui, 50 %) nuo tiesioginio judėjimo trajektorijos. Įrašius 0 – funkcija išjungiama." -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate." -#~ msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant šalto pagrindo (Cool Plate)." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Textured Cool Plate." -#~ msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant tekstūruoto šalto pagrindo (Textured Cool Plate)." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Engineering Plate." -#~ msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant inžinerinio pagrindo (Engineering Plate)." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the High Temp Plate." -#~ msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant aukštos temperatūros pagrindo (High Temp Plate)." - -#~ msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Textured PEI Plate." -#~ msgstr "Pagrindo temperatūra visiems sluoksniams, išskyrus pirmąjį. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant tekstūruoto PEI pagrindo (Textured PEI Plate)." - #~ msgid "Bed temperature of the first layer. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." #~ msgstr "Pirmojo sluoksnio pagrindo temperatūra. Reikšmė 0 reiškia, kad ši gija nepritaikyta spausdinti ant „Cool Plate SuperTack“ pagrindo." diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 96c22fcc8b..4284378cd1 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -6887,11 +6887,11 @@ msgid "Load a model" msgstr "Laad een model" # AI Translated -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "ZIP-archief importeren" # AI Translated -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Laad modellen uit een ZIP-archief" msgid "Import Configs" @@ -8860,8 +8860,8 @@ msgstr "Controleer of de G-codes in deze presets veilig zijn om schade aan de ma msgid "Customized Preset" msgstr "Aangepaste voorinstelling" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Naam van componenten in step-bestand is niet UTF8-formaat!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Naam van componenten in step-bestand is niet UTF-8-formaat!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "Vanwege niet-ondersteunde tekstcodering kunnen er onjuiste tekens verschijnen!" @@ -8883,10 +8883,10 @@ msgstr "Het volume van het object is 0" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Het object uit bestand %s is erg klein, en misschien in meters of inches.\n" -" Wil je schalen naar millimeters?" +"Wil je schalen naar millimeters?" msgid "Object too small" msgstr "He tobject is te klein" @@ -12027,12 +12027,12 @@ msgid "No modifications need to be copied." msgstr "Er hoeven geen wijzigingen te worden gekopieerd." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Parameters kopiëren" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Parameters van %s wijzigen" # AI Translated @@ -13843,23 +13843,27 @@ msgstr "mm of %" msgid "Other layers" msgstr "Andere lagen" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament printen op de Cool Plate SuperTack niet ondersteunt." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Dit is de bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament het afdrukken op de Cool Plate niet ondersteunt." -# AI Translated +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Dit is de bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament printen op de Textured Cool Plate niet ondersteunt." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Dit is de bedtemperatuur voor lagen, behalve voor de eerste. Een waarde van 0 betekent dat het filament afdrukken op de Engineering Plate niet ondersteunt." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Dit is de bedtemperatuur voor lagen, behalve voor de eerste. Een waarde van 0 betekent dat het filament printen op de High Temp Plate niet ondersteunt." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Bedtemperatuur na de eerste laag. 0 betekent dat het filament niet wordt ondersteund op de getextureerde PEI-plaat." @@ -17510,8 +17514,8 @@ msgid "Reduce infill retraction" msgstr "Reduceer terugtrekken (retraction) bij vulling (infill)" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Trek niet terug als de beweging zich volledig in een opvulgebied bevindt. Dat betekent dat het sijpelen niet zichtbaar is. Dit kan de retraction times voor complexe modellen verkorten en printtijd besparen, maar het segmenteren en het genereren van G-codes langzamer maken. Let op: z-hop wordt ook niet uitgevoerd in gebieden waar het terugtrekken wordt overgeslagen." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Trek niet terug als de beweging zich volledig in een opvulgebied bevindt. Dat betekent dat het sijpelen niet zichtbaar is. Dit kan de retraction times voor complexe modellen verkorten en printtijd besparen, maar het segmenteren en het genereren van G-codes langzamer maken. Let op: Z-hop wordt ook niet uitgevoerd in gebieden waar het terugtrekken wordt overgeslagen." # AI Translated msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -17700,7 +17704,7 @@ msgstr "Terugtrekhoeveelheid na vegen" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "De lengte van de snelle terugtrekking na het vegen, relatief ten opzichte van de terugtreklengte.\n" @@ -17754,7 +17758,7 @@ msgstr "Wanneer het terugtrekken vóór een gereedschapswissel wordt geactiveerd msgid "Z-hop height" msgstr "Z-hop-hoogte" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Wanneer er een terugtrekking (retraction) is, wordt het mondstuk een beetje opgetild om ruimte te creëren tussen het mondstuk en de print. Dit voorkomt dat het mondstuk de print raakt bij verplaatsen. Het gebruik van spiraallijnen om Z op te tillen kan stringing voorkomen." msgid "Z-hop lower boundary" @@ -19764,7 +19768,7 @@ msgid "Allow 3MF with newer version to be sliced." msgstr "Sta toe dat een 3MF met een nieuwere versie wordt geslicet." msgid "Current Z-hop" -msgstr "Huidige z-hop" +msgstr "Huidige Z-hop" # AI Translated msgid "Contains Z-hop present at the beginning of the custom G-code block." @@ -21801,19 +21805,19 @@ msgstr "Alleen printers met wijzigingen in printer-, filament- en proces presets msgid "Only display the filament names with changes to filament presets." msgstr "Geef alleen de filamentnamen weer met wijzigingen in filament presets." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Alleen printernamen met gebruikersprinter presets worden weergegeven en elke preset die je kiest, wordt als zip geëxporteerd." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Alleen de filamentnamen met gebruikers presets worden weergegeven, \n" "en alle gebruikers presets in elke filamentnaam die u selecteert, worden geëxporteerd als zip-bestand." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Alleen printernamen met gewijzigde proces presets worden weergegeven, \n" "en alle gebruikersproces presets in elke printernaam die u selecteert, worden als zip geëxporteerd." @@ -22068,7 +22072,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "We hebben informatie nodig om de oorzaak van het probleem te achterhalen. Raadpleeg de wikipagina voor een uitgebreide handleiding." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "De knop Inpakken verzamelt het projectbestand en de logboeken van de huidige sessie in een zipbestand." # AI Translated @@ -22124,7 +22128,7 @@ msgid "Stored logs" msgstr "Opgeslagen logboeken" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Pakt alle opgeslagen logboeken in een zipbestand." # AI Translated @@ -22212,7 +22216,7 @@ msgid "Authorizing..." msgstr "Autoriseren..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Fout. Kan geen API-token voor autorisatie ophalen" # AI Translated diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 4a21d38a27..cc88aac759 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -6467,10 +6467,10 @@ msgstr "Importuj 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Wczytaj model" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importuj archiwum ZIP" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Wczytaj modele zawarte w archiwum ZIP" msgid "Import Configs" @@ -8309,8 +8309,8 @@ msgstr "Proszę potwierdź, że G-code w tych profilach jest bezpieczny, aby zap msgid "Customized Preset" msgstr "Dostosowany profil" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Nazwa komponentów w pliku step nie jest w formacie UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Nazwa komponentów w pliku step nie jest w formacie UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "Nazwa może zawierać nieczytelne znaki!" @@ -8331,10 +8331,10 @@ msgstr "Objętość tego obiektu wynosi zero" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Obiekt z pliku %s jest zbyt mały i możliwe, że jest określony w metrach lub calach.\n" -" Czy przeskalować na milimetry?" +"Czy przeskalować na milimetry?" msgid "Object too small" msgstr "Zbyt mały obiekt" @@ -11363,12 +11363,12 @@ msgid "No modifications need to be copied." msgstr "Nie ma modyfikacji do skopiowania." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Kopiuj parametry" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Zmodyfikuj parametry %s" # AI Translated @@ -13060,22 +13060,27 @@ msgstr "mm lub %" msgid "Other layers" msgstr "Pozostałe warstwy" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje druku na Cool Plate SuperTack." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Cool Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Temperatura stołu dla warstw, z wyjątkiem pierwszej. Wartość 0 oznacza, że filament nie nadaje się do druku na Textured Cool Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Engineering Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na High Temp Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Textured PEI Plate." @@ -16448,7 +16453,7 @@ msgstr "Punkty początkowe i końcowe, od obszaru cięcia do kanału wyrzutowego msgid "Reduce infill retraction" msgstr "Zmniejszanie retrakcji wypełnienia" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Nie wykonuj retrakcji, gdy ruch odbywa się całkowicie w obszarze wypełnienia. Oznacza to, że wyciek nie będzie widoczny. Może to zmniejszyć liczbę retrakcji dla skomplikowanego modelu i zaoszczędzić czas druku, ale spowolnić krojenie i generowanie G-code" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -16624,7 +16629,7 @@ msgstr "Wartość retrakcji po czyszczeniu" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Długość szybkiej retrakcji po czyszczeniu, względem długości retrakcji.\n" @@ -16671,7 +16676,7 @@ msgstr "Gdy retrakcja jest wyzwalana przed zmianą narzędzia, filament zostaje msgid "Z-hop height" msgstr "Wysokość Z-hop" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Zawsze gdy wykonana jest retrakcja, dysza jest nieco podnoszona, aby stworzyć odstęp między dyszą a wydrukiem. Zapobiega to uderzeniu dyszy w wydruk podczas przemieszczania. Użycie linii spiralnej do podniesienia Z może zapobiec powstawaniu strun" msgid "Z-hop lower boundary" @@ -18504,7 +18509,7 @@ msgid "Current Z-hop" msgstr "Bieżący Z-hop" msgid "Contains Z-hop present at the beginning of the custom G-code block." -msgstr "Zawiera z-hop obecny na początku bloku niestandardowego G-code" +msgstr "Zawiera Z-hop obecny na początku bloku niestandardowego G-code" msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back." msgstr "Pozycja ekstrudera na początku bloku niestandardowego G-kodu. Jeśli niestandardowy G-code przemieszcza się gdzieś indziej, powinien zostać zapisany do tej zmiennej, aby OrcaSlicer wiedział, skąd się przemieszcza, gdy odzyska kontrolę." @@ -20394,19 +20399,19 @@ msgstr "Wyświetlane są jedynie drukarki ze zmienionymi profilami drukarki, fil msgid "Only display the filament names with changes to filament presets." msgstr "Wyświetlone są jedynie nazwy filamentów, które zostały zmodyfikowane w ustawieniach." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Wyświetlane są tylko nazwy drukarek z ustawieniami użytkownika, wybrany zestaw zostanie wyeksportowany jako plik zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Na liście widoczne są tylko nazwy filamentów ze zmodyfikowanymi ustawieniami, \n" "a dla każdej wybranej nazwy filamentu zostaną wyeksportowane wszystkie ustawienia jako archiwum zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Na liście widoczne są tylko nazwy drukarek ze zmodyfikowanymi ustawieniami procesu, \n" "a dla każdej wybranej nazwy drukarki zostaną wyeksportowane wszystkie \n" @@ -20653,7 +20658,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Potrzebujemy informacji do zdiagnozowania źródła problemu. Szczegółowy przewodnik znajdziesz na stronie wiki." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Przycisk Spakuj zbiera plik projektu i dzienniki bieżącej sesji do pliku zip." # AI Translated @@ -20709,7 +20714,7 @@ msgid "Stored logs" msgstr "Zapisane dzienniki" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Pakuje wszystkie zapisane dzienniki do pliku zip." # AI Translated @@ -20797,7 +20802,7 @@ msgid "Authorizing..." msgstr "Autoryzowanie..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Błąd. Nie można uzyskać tokenu API do autoryzacji" # AI Translated diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 931d3d510b..5b9b7dcc42 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -6143,11 +6143,11 @@ msgstr "Importar 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Carregar um modelo" -msgid "Import Zip Archive" -msgstr "Importar Arquivo Zip" +msgid "Import ZIP Archive" +msgstr "Importar Arquivo ZIP" -msgid "Load models contained within a zip archive" -msgstr "Carregar modelos contidos em um arquivo zip" +msgid "Load models contained within a ZIP archive" +msgstr "Carregar modelos contidos em um arquivo ZIP" msgid "Import Configs" msgstr "Importar Configurações" @@ -7897,7 +7897,7 @@ msgstr "Por favor, confirme se o G-code dentro dessas predefinições é seguro msgid "Customized Preset" msgstr "Predefinição Personalizada" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "Os nomes dos componentes dentro do arquivo STEP não estão no formato UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -7919,7 +7919,7 @@ msgstr "O volume do objeto é zero" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "O objeto do arquivo %s é muito pequeno, e pode estar em metros ou polegadas.\n" "Deseja redimensioná-lo para milímetros?" @@ -10740,11 +10740,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Nenhuma modificação precisa ser copiada." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Copiar parâmetros" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Modificar parâmetros de %s" #, c-format, boost-format @@ -12355,7 +12355,7 @@ msgstr "mm ou %" msgid "Other layers" msgstr "Outras camadas" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Essa é a temperatura da mesa para camadas exceto a inicial. O valor 0 significa que o filamento não suporta a impressão na Placa Fria SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15252,7 +15252,6 @@ msgstr "Massa da mesa do eixo Y" msgid "The machine bed mass load of Y axis" msgstr "A carga de massa da mesa do equipamento no eixo Y" -# AI Translated msgid "g" msgstr "g" @@ -15565,7 +15564,7 @@ msgstr "Os pontos de início e fim que vão da área do cortador até a calha de msgid "Reduce infill retraction" msgstr "Reduzir retração durante o preenchimento" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "Não retrair quando o movimento está completamente na área de preenchimento. Isso significa que o vazamento não pode ser visto. Isso pode reduzir o número de retratações para modelos complexos e economizar tempo de impressão, mas torna a geração de fatiamento e G-code mais lenta. Note que o Z-Hop também não é realizado em áreas onde a retração é omitida." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15730,7 +15729,7 @@ msgstr "Quantidade de retração depois da limpeza" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Este é o comprimento da retração rápida antes de uma limpeza, em relação ao comprimento da retração.\n" @@ -15766,18 +15765,16 @@ msgstr "Retração longa na troca de extrusora" msgid "Retraction distance when extruder change" msgstr "Distância de retração na troca de extrusora" -# AI Translated msgid "Retraction Length (Toolchange)" -msgstr "Comprimento da retração (Troca de ferramenta)" +msgstr "Comprimento da Retração (Troca de ferramenta)" -# AI Translated msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)." msgstr "Quando a retração é acionada antes da troca de ferramenta, o filamento é puxado de volta na quantidade especificada (o comprimento é medido no filamento bruto, antes de entrar na extrusora)." msgid "Z-hop height" msgstr "Altura de Z-hop" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Sempre que há uma retração, o bico é levantado um pouco para criar folga entre o bico e a impressão. Isso evita que o bico atinja a impressão ao se mover. Usar linhas em espiral para levantar Z pode evitar stringing." msgid "Z-hop lower boundary" @@ -15867,9 +15864,8 @@ msgstr "Comprimento extra na retração" msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed." msgstr "Quando a retração é compensada após o movimento de deslocamento, a extrusora empurrará essa quantidade adicional de filamento. Esta configuração é raramente necessária." -# AI Translated msgid "Extra length on restart (Toolchange)" -msgstr "Comprimento extra na retração (Troca de ferramenta)" +msgstr "Comprimento extra no reinício (Troca de ferramenta)" msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament." msgstr "Quando a retração é compensada após a troca de ferramenta, a extrusora empurrará essa quantidade adicional de filamento." @@ -16279,13 +16275,11 @@ msgstr "Troca de ferramenta na torre de purga" msgid "Force the toolhead to travel to the wipe tower before issuing the tool change command (Tx). Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. By default Orca skips the travel on multi-toolhead machines because the firmware handles the head swap, which can result in the Tx command being issued above the printed part. Enable this option if you want the tool change to always be issued above the wipe tower instead." msgstr "Força o cabeçote de impressão a se deslocar até a torre de purga antes de emitir o comando de troca de ferramenta (Tx). Relevante apenas para impressoras com múltiplas extrusoras (múltiplos cabeçotes de impressão) que utilizam uma torre de purga Tipo 2. Por padrão, o Orca ignora o deslocamento em máquinas com múltiplos cabeçotes de impressão, pois o firmware gerencia a troca do cabeçote, o que pode resultar na emissão do comando Tx acima da peça impressa. Habilite esta opção se desejar que a troca de ferramenta seja sempre emitida acima da torre de purga." -# AI Translated msgid "Wait for temperature on wipe tower" msgstr "Aguardar a temperatura na torre de purga" -# AI Translated msgid "Pick up the new tool without waiting for it to reach printing temperature, travel to the wipe tower, and wait for the temperature there, right before purging. Ooze from the heat-up lands on the tower instead of the model, and the travel overlaps with the heating. Only relevant for multi-extruder (multi-toolhead) printers using a Type 2 wipe tower. The firmware or tool change macro must not wait for the temperature itself. When disabled, the temperature wait is issued right after the tool change command." -msgstr "Pega a nova ferramenta sem esperar que ela atinja a temperatura de impressão, desloca-se até a torre de purga e aguarda a temperatura ali, logo antes de purgar. O vazamento causado pelo aquecimento cai na torre em vez do modelo, e o deslocamento acontece durante o aquecimento. Relevante apenas para impressoras multiextrusora (multicabeça) que usam uma torre de purga do tipo 2. O firmware ou a macro de troca de ferramenta não devem aguardar a temperatura por conta própria. Quando desativado, a espera de temperatura é emitida logo após o comando de troca de ferramenta." +msgstr "Pega a nova ferramenta sem esperar que ela atinja a temperatura de impressão, desloca-se até a torre de purga e aguarda a temperatura ali, logo antes de purgar. O vazamento causado pelo aquecimento cai na torre em vez do modelo, e o deslocamento acontece junto com o aquecimento. Relevante apenas para impressoras multiextrusora (multicabeça) que usam uma torre de purga do Tipo 2. O firmware ou a macro de troca de ferramenta não devem aguardar a temperatura por conta própria. Quando desativado, a espera de temperatura é emitida logo após o comando de troca de ferramenta." msgid "No sparse layers (beta)" msgstr "Sem camadas esparsas (beta)" @@ -19315,19 +19309,19 @@ msgstr "Apenas impressoras com alterações nas predefinições de impressora, f msgid "Only display the filament names with changes to filament presets." msgstr "Exibir apenas os nomes dos filamentos com alterações nas predefinições de filamento." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Apenas os nomes das impressoras com predefinições de impressora do usuário serão exibidos, e cada predefinição escolhida será exportada como um arquivo zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Apenas os nomes dos filamentos com predefinições de filamento do usuário serão exibidos, \n" "e todas as predefinições de filamento do usuário em cada nome de filamento selecionadas serão exportadas como um arquivo zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Apenas os nomes das impressoras com predefinições de processo alterados serão exibidos, \n" "e todas os predefinições de processo do usuário em cada nome de impressora selecionadas serão exportados como um arquivo zip." @@ -19556,7 +19550,7 @@ msgstr "Copiar informações do sistema para a área de transferência" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Precisamos de informações para diagnosticar a origem do problema. Consulte a página da wiki para obter um guia detalhado." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "O botão \"Empacotar\" reúne o arquivo do projeto e os logs da sessão atual em um arquivo ZIP." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -19598,7 +19592,7 @@ msgstr "Nível de log" msgid "Stored logs" msgstr "Logs armazenados" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Compacta todos os logs armazenados em um arquivo ZIP." msgid "Profiles" @@ -19665,7 +19659,7 @@ msgstr "Tipo de impressora não encontrado, selecione manualmente." msgid "Authorizing..." msgstr "Autorizando…" -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Erro. ​​Não foi possível obter o token de API para autorização" msgid "Could not parse server response." diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index eb24ebc759..200d3cbb42 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -6376,10 +6376,10 @@ msgstr "Импорт 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Загрузка модели" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Импорт ZIP-архива" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Загрузка моделей, содержащихся в ZIP-архиве" msgid "Import Configs" @@ -8168,8 +8168,8 @@ msgstr "Во избежание повреждения принтера убед msgid "Customized Preset" msgstr "Пользовательский профиль" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Имена компонентов внутри файла STEP не в формате UTF8." +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Имена компонентов внутри файла STEP не в формате UTF-8." msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "Из-за неподдерживаемой кодировки в названии могут присутствовать ошибочные символы." @@ -8190,7 +8190,7 @@ msgstr "Объём модели равен нулю" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Модель из файла %s слишком мала. Возможно, её размеры \n" "в метрах или дюймах. Внутренней единицей программы \n" @@ -11072,11 +11072,11 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Перенос изменений не требуется." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Копировать настройки" #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Изменить настройки %s" #, c-format, boost-format @@ -12694,7 +12694,7 @@ msgstr "мм или %" msgid "Other layers" msgstr "Основная" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Температура стола для всех остальных слоёв. 0 – материал не поддерживает это покрытие." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -16223,7 +16223,7 @@ msgstr "Начальная и конечная точки траектории msgid "Reduce infill retraction" msgstr "Откат только при пересечении периметров" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "" "Отключает откат (и подъём по Z), когда перемещения совершаются полностью над заполнением (где любые подтёки, вероятно, будут скрыты). Это поможет снизить количество откатов при печати сложных моделей и немного сэкономить время, но увеличит время нарезки и генерации G-кода.\n" "\n" @@ -16401,7 +16401,7 @@ msgstr "Вторичный откат" #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Быстрый откат после очистки, выраженный в процентах от общей длины отката. В некоторых случаях позволяет значительно снизить количество «паутины».\n" @@ -16449,7 +16449,7 @@ msgstr "При срабатывании отката перед сменой и msgid "Z-hop height" msgstr "Высота подъёма" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "При каждом откате печатная голова немного приподнимается, создавая зазор между соплом и моделью. Это предотвращает столкновение сопла с моделью при перемещении. Использование спирального подъёма может помочь сократить образование \"паутины\"." msgid "Z-hop lower boundary" @@ -20306,21 +20306,21 @@ msgstr "Будут отображаться только изменённые п msgid "Only display the filament names with changes to filament presets." msgstr "Будут отображаться только изменённые профили материалов." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "" "Будут отображаться только изменённые профили принтеров.\n" "Все они будут экспортированы в единый zip-файл." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Будут отображаться только изменённые профили материалов.\n" "Все они будут экспортированы в единый zip-файл." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Будут отображаться только профили принтеров с изменёнными настройками печати.\n" "Все изменённые профили настроек будут экспортированы в единый zip-файл." @@ -20560,7 +20560,7 @@ msgstr "Копировать в буфер обмена" msgid "We need information for diagnosing source of the issue. Check wiki page for detailed guide." msgstr "Эта информация требуется для диагностики проблем. Ознакомьтесь с руководством для получения подробностей." -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Нажмите «Экспорт», чтобы сохранить текущий проект и журнал сессии в ZIP-архив." msgid "Any additional visual examples like images or screen recordings might be helpful while reporting the issue." @@ -20602,7 +20602,7 @@ msgstr "Уровень ведения журнала" msgid "Stored logs" msgstr "Сохранённые журналы" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Нажмите «Экспорт», чтобы упаковать все сохранённые журналы в единый ZIP-архив" msgid "Profiles" @@ -20669,7 +20669,7 @@ msgstr "Требуется указать принтер вручную" msgid "Authorizing..." msgstr "Авторизация..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Ошибка получения токена авторизации" msgid "Could not parse server response." diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index 52972e241a..fce8c33b10 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -6971,11 +6971,11 @@ msgid "Load a model" msgstr "Ladda modell" # AI Translated -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Importera ZIP-arkiv" # AI Translated -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Läs in modeller som finns i ett ZIP-arkiv" msgid "Import Configs" @@ -8952,8 +8952,8 @@ msgstr "Bekräfta att G-koderna i dessa inställningar är säkra för att förh msgid "Customized Preset" msgstr "Anpassad inställning" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Komponent namnet i STEP filen är inte UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Komponent namnet i STEP filen är inte UTF-8 format!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "På grund av textkodning som inte stöds så kan skräptecken visas!" @@ -8974,7 +8974,7 @@ msgstr "Objektet är utan volym" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Objektets fil %s är för litet, det är kanske i meter eller inches.\n" "Skala om till millimeter?" @@ -12190,12 +12190,12 @@ msgid "No modifications need to be copied." msgstr "Inga ändringar behöver kopieras." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Kopiera parametrar" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Ändra parametrar för %s" # AI Translated @@ -14012,23 +14012,27 @@ msgstr "mm eller %" msgid "Other layers" msgstr "Andra lager" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Byggplattans temperatur för alla lager utom det första. Värdet 0 innebär att filamentet inte stöder utskrift på Cool Plate SuperTack." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på Cool Plate." -# AI Translated +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på Textured Cool Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Ett värde på 0 betyder att filamentet inte stöder utskrift på Engineering Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på High Temp Plate." +#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Byggplattans temperatur efter det första lagret. 0 betyder att filamentet inte stöds på den texturerade PEI-plattan." @@ -17720,8 +17724,8 @@ msgid "Reduce infill retraction" msgstr "Minska ifyllnads retraktionen" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Dra inte tillbaka när förflyttningen är helt i ett utfyllnadsområde. Det betyder att läckage av filament inte kan ses. Detta kan minska tiderna för indragning för komplexa modeller och spara utskriftstid, men gör beredning och generering av G-kod långsammare. Observera att z-hop inte heller utförs i områden där retraktionen hoppas över." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Dra inte tillbaka när förflyttningen är helt i ett utfyllnadsområde. Det betyder att läckage av filament inte kan ses. Detta kan minska tiderna för indragning för komplexa modeller och spara utskriftstid, men gör beredning och generering av G-kod långsammare. Observera att Z-hop inte heller utförs i områden där retraktionen hoppas över." # AI Translated msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -17913,7 +17917,7 @@ msgstr "Reduktionsmängd efter avtorkning" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Längden på den snabba reduktionen efter avtorkning, i förhållande till reduktionslängden.\n" @@ -17968,7 +17972,7 @@ msgstr "När reduktionen utlöses före ett verktygsbyte dras filamentet tillbak msgid "Z-hop height" msgstr "Z-hop-höjd" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "När det är en retraktion lyfts nozzel en aning för att skapa ett spel mellan nozzel och utskriften. Detta förhindrar att nozzel träffar utskriften när den förflyttas. Att använda spirallinjer för att lyfta z kan förhindra strängning" msgid "Z-hop lower boundary" @@ -22041,19 +22045,19 @@ msgstr "Endast printer med ändringar av inställningar för printer, filament o msgid "Only display the filament names with changes to filament presets." msgstr "Visa endast filament namnen vid ändringar av filament inställningar." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Endast printer namn med inställningar för printer visas, och varje inställning du väljer exporteras som zip-fil." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Endast filament namn med inställningar för användar filament visas, \n" "och alla inställningar för användar filament i varje filament namn du väljer exporteras som en zip-fil." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Endast printer namn med ändrade process inställningar visas, \n" "och alla användarprocess inställningar i varje printer namn som du väljer exporteras som zip-fil." @@ -22312,7 +22316,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Vi behöver information för att diagnostisera orsaken till problemet. Se wiki-sidan för en detaljerad guide." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Paketera-knappen samlar projektfilen och loggarna från den aktuella sessionen i en zip-fil." # AI Translated @@ -22368,7 +22372,7 @@ msgid "Stored logs" msgstr "Sparade loggar" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Paketerar alla sparade loggar i en zip-fil." # AI Translated @@ -22456,7 +22460,7 @@ msgid "Authorizing..." msgstr "Auktoriserar..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Fel. Det går inte att hämta api-token för auktorisering" # AI Translated diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index 4c4ac2d25f..ca12a4ced2 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -6302,10 +6302,10 @@ msgstr "นำเข้า 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "โหลดโมเดล" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "นำเข้าไฟล์ Zip" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "โหลดโมเดลที่มีอยู่ในไฟล์ zip" msgid "Import Configs" @@ -8074,8 +8074,8 @@ msgstr "โปรดยืนยันว่ารหัส G ภายในค msgid "Customized Preset" msgstr "ค่าที่ตั้งไว้ล่วงหน้าที่กำหนดเอง" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "ชื่อของส่วนประกอบภายในไฟล์ STEP ไม่ใช่รูปแบบ UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "ชื่อของส่วนประกอบภายในไฟล์ STEP ไม่ใช่รูปแบบ UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "ชื่ออาจแสดงตัวอักษรขยะ!" @@ -8096,7 +8096,7 @@ msgstr "ปริมาตรของวัตถุเป็นศูนย์ #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "วัตถุจากไฟล์ %s มีขนาดเล็กเกินไป และอาจมีหน่วยเป็นเมตรหรือนิ้ว\n" " คุณต้องการขยายขนาดเป็นมิลลิเมตรหรือไม่?" @@ -10948,12 +10948,12 @@ msgid "No modifications need to be copied." msgstr "ไม่มีการแก้ไขที่ต้องคัดลอก" # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "คัดลอกพารามิเตอร์" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "แก้ไขพารามิเตอร์ของ %s" # AI Translated @@ -12578,7 +12578,7 @@ msgstr "มม. หรือ %" msgid "Other layers" msgstr "ชั้นอื่นๆ" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "อุณหภูมิฐานพิมพ์สำหรับชั้นต่างๆ ยกเว้นอุณหภูมิเริ่มต้น ค่า 0 หมายความว่าเส้นพลาสติกไม่รองรับการพิมพ์บน Cool Plate SuperTack" msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15827,8 +15827,8 @@ msgstr "จุดเริ่มต้นและจุดสิ้นสุด msgid "Reduce infill retraction" msgstr "ลดการดึงกลับในไส้ใน" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "อย่าถอยกลับเมื่อการเดินทางอยู่ภายในพื้นที่ที่ไส้ในเข้าไปทั้งหมด นั่นหมายความว่าไม่สามารถมองเห็นการรั่วไหลได้ วิธีนี้จะช่วยลดเวลาในการดึงกลับสำหรับโมเดลที่ซับซ้อนและประหยัดเวลาในการพิมพ์ แต่จะทำให้การแบ่งส่วนและการสร้าง G-code ช้าลง โปรดทราบว่า z-hop จะไม่ดำเนินการในพื้นที่ที่มีการข้ามการถอนกลับ" +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "อย่าถอยกลับเมื่อการเดินทางอยู่ภายในพื้นที่ที่ไส้ในเข้าไปทั้งหมด นั่นหมายความว่าไม่สามารถมองเห็นการรั่วไหลได้ วิธีนี้จะช่วยลดเวลาในการดึงกลับสำหรับโมเดลที่ซับซ้อนและประหยัดเวลาในการพิมพ์ แต่จะทำให้การแบ่งส่วนและการสร้าง G-code ช้าลง โปรดทราบว่า Z-hop จะไม่ดำเนินการในพื้นที่ที่มีการข้ามการถอนกลับ" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "ตัวเลือกนี้จะทำให้อุณหภูมิของชุดดันเส้นที่ไม่ใช้งานลดลงเพื่อป้องกันการไหลซึม" @@ -15997,7 +15997,7 @@ msgstr "ปริมาณการดึงกลับหลังเช็ด # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "ความยาวของการดึงกลับอย่างเร็วหลังเช็ดหัว สัมพันธ์กับความยาวการดึงกลับ\n" @@ -16044,7 +16044,7 @@ msgstr "เมื่อการดึงกลับทำงานก่อน msgid "Z-hop height" msgstr "ความสูงยกแกน Z" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "เมื่อใดก็ตามที่การดึงกลับเสร็จสิ้น หัวฉีดจะถูกยกขึ้นเล็กน้อยเพื่อสร้างระยะห่างระหว่างหัวฉีดและงานพิมพ์ ป้องกันไม่ให้หัวฉีดชนกับงานพิมพ์ขณะเคลื่อนตัว การใช้เส้นเกลียวเพื่อยก Z สามารถป้องกันการร้อยสายได้" msgid "Z-hop lower boundary" @@ -19632,19 +19632,19 @@ msgstr "แสดงเฉพาะชื่อเครื่องพิมพ msgid "Only display the filament names with changes to filament presets." msgstr "แสดงเฉพาะชื่อเส้นพลาสติกที่มีการเปลี่ยนแปลงการตั้งค่าล่วงหน้าของเส้นพลาสติก" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "เฉพาะชื่อเครื่องพิมพ์ที่มีการตั้งค่าเครื่องพิมพ์ล่วงหน้าของผู้ใช้เท่านั้นที่จะแสดง และการตั้งค่าล่วงหน้าแต่ละรายการที่คุณเลือกจะถูกส่งออกเป็นไฟล์ ZIP" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "เฉพาะชื่อเส้นพลาสติกที่มีการตั้งค่าล่วงหน้าของเส้นพลาสติกผู้ใช้เท่านั้นที่จะถูกแสดง \n" "และค่าฟิลาเมนต์ของผู้ใช้ทั้งหมดที่กำหนดไว้ล่วงหน้าในแต่ละชื่อฟิลาเมนต์ที่คุณเลือกจะถูกส่งออกเป็นไฟล์ ZIP" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "เฉพาะชื่อเครื่องพิมพ์ที่มีการตั้งค่าล่วงหน้าของกระบวนการที่เปลี่ยนแปลงเท่านั้นที่จะปรากฏขึ้น \n" "และกระบวนการของผู้ใช้ที่ตั้งไว้ล่วงหน้าในชื่อเครื่องพิมพ์แต่ละเครื่องที่คุณเลือกจะถูกส่งออกเป็นไฟล์ ZIP" @@ -19885,7 +19885,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "เราต้องการข้อมูลเพื่อวินิจฉัยแหล่งที่มาของปัญหา ตรวจสอบหน้า wiki สำหรับคำแนะนำโดยละเอียด" # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "ปุ่ม Pack จะรวบรวมไฟล์โปรเจกต์และบันทึกของเซสชันปัจจุบันลงในไฟล์ zip" # AI Translated @@ -19941,7 +19941,7 @@ msgid "Stored logs" msgstr "บันทึกที่จัดเก็บ" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "รวมบันทึกที่จัดเก็บทั้งหมดลงในไฟล์ zip" # AI Translated @@ -20021,7 +20021,7 @@ msgstr "ไม่พบประเภทเครื่องพิมพ์ msgid "Authorizing..." msgstr "กำลังอนุญาต..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "ข้อผิดพลาด ไม่สามารถรับโทเคน API สำหรับการอนุญาตได้" msgid "Could not parse server response." diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 833706ad70..b7a2c5b682 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -6370,10 +6370,10 @@ msgstr "3MF/STL/STEP/SVG/OBJ/AMF'yi içe aktar" msgid "Load a model" msgstr "Model yükle" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Zip Arşivini İçe Aktar" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Zip arşivindeki modelleri yükle" msgid "Import Configs" @@ -8171,8 +8171,8 @@ msgstr "Lütfen bu ön ayarlar içindeki G-code'larının makineye herhangi bir msgid "Customized Preset" msgstr "Özel Ayar" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Step dosyasındaki bileşenlerin adı UTF8 formatında değil!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Step dosyasındaki bileşenlerin adı UTF-8 formatında değil!" # AI Translated msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8194,10 +8194,10 @@ msgstr "Cismin hacmi sıfır" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "%s dosyasındaki nesne çok küçük; metre veya inç cinsinden olabilir.\n" -" Milimetreye ölçeklendirmek istiyor musunuz?" +"Milimetreye ölçeklendirmek istiyor musunuz?" msgid "Object too small" msgstr "Nesne çok küçük" @@ -11128,12 +11128,12 @@ msgid "No modifications need to be copied." msgstr "Kopyalanması gereken değişiklik yok." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Parametreleri kopyala" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "%s parametrelerini değiştir" # AI Translated @@ -12805,7 +12805,7 @@ msgstr "mm veya %" msgid "Other layers" msgstr "Diğer katmanlar" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "İlk katman hariç tüm katmanlar için yatak sıcaklığı. 0 değeri, filamentin Cool Plate SuperTack üzerine baskıyı desteklemediği anlamına gelir." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -16129,8 +16129,8 @@ msgid "Reduce infill retraction" msgstr "Dolguda geri çekmeyi azalt" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Hareket tamamen dolgu alanı içindeyken geri çekme yapılmaz. Bu, sızıntının görülemeyeceği anlamına gelir. Bu, karmaşık modellerde geri çekme sayısını azaltabilir ve yazdırma süresinden tasarruf sağlayabilir, ancak dilimlemeyi ve G-code oluşturmayı yavaşlatır. Geri çekmenin atlandığı alanlarda z-hop'un da uygulanmadığını unutmayın." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Hareket tamamen dolgu alanı içindeyken geri çekme yapılmaz. Bu, sızıntının görülemeyeceği anlamına gelir. Bu, karmaşık modellerde geri çekme sayısını azaltabilir ve yazdırma süresinden tasarruf sağlayabilir, ancak dilimlemeyi ve G-code oluşturmayı yavaşlatır. Geri çekmenin atlandığı alanlarda Z-hop'un da uygulanmadığını unutmayın." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "Bu seçenek sızıntıyı önlemek için aktif olmayan ekstrüderlerin sıcaklığını düşürecektir." @@ -16305,7 +16305,7 @@ msgstr "Silme sonrası geri çekme miktarı" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Silme sonrasındaki hızlı geri çekmenin uzunluğu; geri çekme uzunluğuna göredir.\n" @@ -16352,7 +16352,7 @@ msgstr "Takım değişiminden önce geri çekme tetiklendiğinde, filament belir msgid "Z-hop height" msgstr "Z-Sıçrama yüksekliği" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Geri çekme işlemi her yapıldığında, nozul ile baskı arasında açıklık oluşturmak için nozul biraz kaldırılır. Hareket halindeyken nozulun baskıya çarpmasını önler. Z'yi kaldırmak için spiral çizgi kullanmak çekmeyi önleyebilir." msgid "Z-hop lower boundary" @@ -18155,10 +18155,10 @@ msgid "Allow 3MF with newer version to be sliced." msgstr "Daha yeni sürüme sahip 3mf’nin dilimlenmesine izin ver." msgid "Current Z-hop" -msgstr "Mevcut z-hop" +msgstr "Mevcut Z-hop" msgid "Contains Z-hop present at the beginning of the custom G-code block." -msgstr "Özel G-code bloğunun başında bulunan z-hop'u içerir." +msgstr "Özel G-code bloğunun başında bulunan Z-hop'u içerir." msgid "Position of the extruder at the beginning of the custom G-code block. If the custom G-code travels somewhere else, it should write to this variable so OrcaSlicer knows where it travels from when it gets control back." msgstr "Ekstruderin özel G-code bloğunun başlangıcındaki konumu. Özel G-code başka bir yere seyahat ederse, Slicer'ın kontrolü geri aldığında nereden seyahat ettiğini bilmesi için bu değişkene yazması gerekir." @@ -20003,19 +20003,19 @@ msgstr "Yazıcı adlarını yalnızca yazıcı, filament ve işlem ön ayarları msgid "Only display the filament names with changes to filament presets." msgstr "Filament adlarını yalnızca filament ön ayarlarında yapılan değişikliklerle görüntüleyin." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Yalnızca kullanıcı yazıcı ön ayarlarına sahip yazıcı adları görüntülenecek ve seçtiğiniz her ön ayar zip olarak dışa aktarılacaktır." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Yalnızca kullanıcı filamenti ön ayarlarına sahip filament adları \n" "görüntülenecek ve seçtiğiniz her filament adındaki tüm kullanıcı filamenti ön ayarları zip olarak dışa aktarılacaktır." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Yalnızca işlem ön ayarları değiştirilen yazıcı adları görüntülenecek \n" "ve seçtiğiniz her yazıcı adındaki tüm kullanıcı işlem ön ayarları zip olarak dışa aktarılacaktır." @@ -20260,7 +20260,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Sorunun kaynağını teşhis etmek için bilgiye ihtiyacımız var. Ayrıntılı kılavuz için wiki sayfasına bakın." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Paketle düğmesi, geçerli oturumun proje dosyasını ve günlüklerini bir zip dosyasında toplar." # AI Translated @@ -20316,7 +20316,7 @@ msgid "Stored logs" msgstr "Saklanan günlükler" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Saklanan tüm günlükleri bir zip dosyasında paketler." # AI Translated @@ -20402,7 +20402,7 @@ msgid "Authorizing..." msgstr "Yetkilendiriliyor..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Hata. Yetkilendirme için api belirteci alınamıyor" # AI Translated diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index df06c01684..8393e92947 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -6339,10 +6339,10 @@ msgstr "Імпорт 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Завантажте модель" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Імпорт Zip-архіву" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Завантажити моделі, що містяться в zip-архіві" msgid "Import Configs" @@ -8180,8 +8180,8 @@ msgid "Customized Preset" msgstr "Пристосований пресет" # AI Translated -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Назви компонентів усередині файлу STEP не у форматі UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Назви компонентів усередині файлу STEP не у форматі UTF-8!" msgid "Because of unsupported text encoding, garbage characters may appear!" msgstr "Через непідтримуване кодування тексту можуть зʼявлятися непотрібні символи!" @@ -8202,7 +8202,7 @@ msgstr "Обʼєм обʼєкта дорівнює нулю" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Обʼєкт із файлу %s занадто малий, можливо, в метрах або дюймах.\n" "Ви хочете масштабувати до міліметрів?" @@ -11173,12 +11173,12 @@ msgstr "%s: %s" msgid "No modifications need to be copied." msgstr "Немає змін для копіювання." -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Параметри копіювання" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Змінити параметри %s" # AI Translated @@ -12881,8 +12881,7 @@ msgstr "мм або %" msgid "Other layers" msgstr "Інші шари" -# AI Translated -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Температура столу для всіх шарів, крім першого. Значення 0 означає, що філамент не підтримує друк на Cool Plate SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -16313,8 +16312,8 @@ msgid "Reduce infill retraction" msgstr "Зменшити втягування заповнення" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Не втягувати, коли переміщення повністю проходить у зоні заповнення. Це означає, що витікання не буде видно. Це може зменшити кількість втягувань для складних моделей і заощадити час друку, але сповільнює нарізку та генерацію G-коду. Зверніть увагу, що z-hop також не виконується в зонах, де втягування пропускається." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Не втягувати, коли переміщення повністю проходить у зоні заповнення. Це означає, що витікання не буде видно. Це може зменшити кількість втягувань для складних моделей і заощадити час друку, але сповільнює нарізку та генерацію G-коду. Зверніть увагу, що Z-hop також не виконується в зонах, де втягування пропускається." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "Цей параметр знижує температуру неактивних екструдерів, щоб запобігти підтіканням." @@ -16489,7 +16488,7 @@ msgstr "Величина втягування після протирання" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Довжина швидкого втягування після протирання, відносно довжини втягування.\n" @@ -16538,7 +16537,7 @@ msgstr "Коли втягування спрацьовує перед зміно msgid "Z-hop height" msgstr "Висота Z-підйому" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Під час кожного втягування сопло трохи піднімається, щоб створити зазор між соплом та об’єктом друку. Це запобігає зіткненню сопла з об’єктом друку під час переміщення. Використання спіральної лінії підняття по осі Z може запобігти появі ниток" msgid "Z-hop lower boundary" @@ -20244,12 +20243,12 @@ msgstr "Показувати лише назви принтерів зі змі msgid "Only display the filament names with changes to filament presets." msgstr "Показувати лише назви філаментів зі змінами у пресетах філаменту." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Будуть відображатися лише назви принтерів з пресетами принтера користувача, і кожен обраний пресет буде експортовано у форматі ZIP." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Будуть відображатися лише назви філаментів з налаштуваннями філаменту користувача, \n" "і всі налаштування філаменту користувача для кожної вибраної назви філаменту \n" @@ -20257,7 +20256,7 @@ msgstr "" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Будуть відображатися лише назви принтерів зі зміненими налаштуваннями процесу, \n" "і всі налаштування процесу користувача для кожної вибраної назви принтера будуть \n" @@ -20499,7 +20498,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Нам потрібна інформація для встановлення джерела проблеми. Докладний посібник дивіться на сторінці wiki." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Кнопка «Пакувати» збирає файл проєкту та журнали поточного сеансу в один zip-файл." # AI Translated @@ -20543,7 +20542,7 @@ msgstr "Рівень журналу" msgid "Stored logs" msgstr "Збережені логи" -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Запаковує всі збережені логи у файл zip." msgid "Profiles" @@ -20610,7 +20609,7 @@ msgstr "Тип принтера не знайдено, будь ласка ви msgid "Authorizing..." msgstr "Авторизування..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Помилка. Не вдалося отримати api-токен для авторизування" msgid "Could not parse server response." diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index e78fc51687..936bb590c5 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -6687,10 +6687,10 @@ msgstr "Nhập 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Tải model" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "Nhập lưu trữ Zip" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "Tải các model chứa trong lưu trữ zip" msgid "Import Configs" @@ -8585,8 +8585,8 @@ msgstr "Vui lòng xác nhận G-code trong các preset này an toàn để ngăn msgid "Customized Preset" msgstr "Preset tùy chỉnh" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "Tên của các thành phần bên trong file STEP không phải định dạng UTF8!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "Tên của các thành phần bên trong file STEP không phải định dạng UTF-8!" # AI Translated msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -8608,10 +8608,10 @@ msgstr "Thể tích của đối tượng bằng không" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "Đối tượng từ file %s quá nhỏ, và có thể đang ở đơn vị mét hoặc inch.\n" -" Bạn có muốn chuyển đổi sang milimét?" +"Bạn có muốn chuyển đổi sang milimét?" msgid "Object too small" msgstr "Đối tượng quá nhỏ" @@ -11692,12 +11692,12 @@ msgid "No modifications need to be copied." msgstr "Không có thay đổi nào cần sao chép." # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "Sao chép tham số" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "Sửa tham số của %s" # AI Translated @@ -13449,7 +13449,7 @@ msgstr "mm hoặc %" msgid "Other layers" msgstr "Lớp khác" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Nhiệt độ bàn cho các lớp ngoại trừ lớp đầu tiên. Giá trị 0 có nghĩa là filament không hỗ trợ in trên bản Cool SuperTack." msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -16846,8 +16846,8 @@ msgid "Reduce infill retraction" msgstr "Giảm rút infill" # AI Translated -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." -msgstr "Không rút khi di chuyển ở vùng infill hoàn toàn. Điều đó có nghĩa là chảy nhựa không thể nhìn thấy. Điều này có thể giảm số lần rút cho model phức tạp và tiết kiệm thời gian in, nhưng làm cho slice và tạo G-code chậm hơn. Lưu ý rằng z-hop cũng không được thực hiện ở những vùng bỏ qua việc rút." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." +msgstr "Không rút khi di chuyển ở vùng infill hoàn toàn. Điều đó có nghĩa là chảy nhựa không thể nhìn thấy. Điều này có thể giảm số lần rút cho model phức tạp và tiết kiệm thời gian in, nhưng làm cho slice và tạo G-code chậm hơn. Lưu ý rằng Z-hop cũng không được thực hiện ở những vùng bỏ qua việc rút." msgid "This option will drop the temperature of the inactive extruders to prevent oozing." msgstr "Tùy chọn này sẽ giảm nhiệt độ của các extruder không hoạt động để ngăn chảy nhựa." @@ -17022,7 +17022,7 @@ msgstr "Lượng rút sau khi lau" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "Độ dài rút nhanh sau khi lau, tương đối so với độ dài rút.\n" @@ -17071,7 +17071,7 @@ msgstr "Khi rút được kích hoạt trước khi đổi công cụ, filament msgid "Z-hop height" msgstr "Chiều cao Z-hop" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "Bất cứ khi nào rút được thực hiện, đầu phun được nâng lên một chút để tạo khoảng trống giữa đầu phun và bản in. Nó ngăn đầu phun va vào bản in khi di chuyển. Sử dụng đường xoắn ốc để nâng Z có thể ngăn dây kéo." msgid "Z-hop lower boundary" @@ -20793,19 +20793,19 @@ msgstr "Chỉ hiển thị tên máy in có thay đổi đối với cài đặt msgid "Only display the filament names with changes to filament presets." msgstr "Chỉ hiển thị tên filament có thay đổi đối với cài đặt sẵn filament." -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "Chỉ tên máy in có cài đặt sẵn máy in người dùng sẽ được hiển thị, và mỗi cài đặt sẵn bạn chọn sẽ được xuất dưới dạng zip." msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "Chỉ tên filament có cài đặt sẵn filament người dùng sẽ được hiển thị, \n" "và tất cả cài đặt sẵn filament người dùng trong mỗi tên filament bạn chọn sẽ được xuất dưới dạng zip." msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "Chỉ tên máy in có cài đặt sẵn quy trình đã thay đổi sẽ được hiển thị, \n" "và tất cả cài đặt sẵn quy trình người dùng trong mỗi tên máy in bạn chọn sẽ được xuất dưới dạng zip." @@ -21057,7 +21057,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "Chúng tôi cần thông tin để chẩn đoán nguồn gốc vấn đề. Hãy xem trang wiki để có hướng dẫn chi tiết." # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "Nút Đóng gói thu thập file dự án và nhật ký của phiên hiện tại vào một file zip." # AI Translated @@ -21113,7 +21113,7 @@ msgid "Stored logs" msgstr "Nhật ký đã lưu" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "Đóng gói toàn bộ nhật ký đã lưu vào một file zip." # AI Translated @@ -21201,7 +21201,7 @@ msgid "Authorizing..." msgstr "Đang xác thực..." # AI Translated -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "Lỗi. Không lấy được token api để xác thực" # AI Translated diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index d2f07d19ae..99a6cadd67 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6157,10 +6157,10 @@ msgstr "导入 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "加载模型" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "导入 ZIP 压缩文件" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "从 ZIP 压缩文件中导入一个或多个模型" msgid "Import Configs" @@ -7905,8 +7905,8 @@ msgstr "请确认这些预设中的G-codes是否安全,以防止对机器造 msgid "Customized Preset" msgstr "自定义的预设" -msgid "Component name(s) inside step file not in UTF8 format!" -msgstr "STEP 文件中的部件名称不是 UTF8 格式!" +msgid "Component name(s) inside step file not in UTF-8 format!" +msgstr "STEP 文件中的部件名称不是 UTF-8 格式!" # AI Translated msgid "Because of unsupported text encoding, garbage characters may appear!" @@ -7928,7 +7928,7 @@ msgstr "对象的体积为零" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "文件 %s 中对象的尺寸过小,似乎是以米(m)或者英寸(inch)为单位定义的。\n" "OrcaSlicer的内部单位为毫米(mm)。是否要转换成毫米(mm)?" @@ -10738,12 +10738,12 @@ msgid "No modifications need to be copied." msgstr "没有需要复制的修改。" # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "复制参数" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "修改 %s 的参数" # AI Translated @@ -12374,7 +12374,8 @@ msgstr "mm 或 %" msgid "Other layers" msgstr "其它层" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "除首层外的其他层的热床温度。0值表示该耗材丝不支持在Cool Plate SuperTack上打印。" msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15583,7 +15584,7 @@ msgstr "从切割区域到垃圾桶的起始和结束点。" msgid "Reduce infill retraction" msgstr "减小填充回抽" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "当空驶完全在填充区域内时不触发回抽。这意味着即使漏料也是不可见的。对于复杂模型,该设置能够减少回抽次数以及打印时长,但是会造成G-code生成变慢" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15754,7 +15755,7 @@ msgstr "擦拭后的回抽量" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "擦拭后快速回抽的长度,相对于回抽长度。\n" @@ -15801,7 +15802,7 @@ msgstr "在换工具头之前触发回抽时,耗材丝会按指定的长度回 msgid "Z-hop height" msgstr "Z抬升高度" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "回抽完成之后,喷嘴轻微抬升,和打印件之间产生一定间隙。这能够避免空驶时喷嘴和打印件剐蹭和碰撞。使用螺旋线抬升z能够减少拉丝。" msgid "Z-hop lower boundary" @@ -19386,17 +19387,17 @@ msgstr "仅显示对打印机、耗材和工艺预设有改动的打印机名称 msgid "Only display the filament names with changes to filament presets." msgstr "仅显示对耗材预设有改动的耗材名称。" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "只显示带有用户打印机预设的打印机名称,并且您选择的每个预设都将导出为一个 ZIP 文件。" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "只显示带有用户耗材预设的耗材名称,您选择的每个耗材名称中的所有用户耗材预设都将导出为一个 ZIP 文件。" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "只显示带有更改的工艺预设的打印机名称,您选择的每个打印机名称中的所有用户工艺预设都将导出为一个 ZIP 文件。" msgid "Please select at least one printer or filament." @@ -19635,7 +19636,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "我们需要相关信息来诊断问题的根源。请查看 wiki 页面获取详细指南。" # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "“打包”按钮会将当前会话的项目文件和日志收集到一个 zip 文件中。" # AI Translated @@ -19691,7 +19692,7 @@ msgid "Stored logs" msgstr "已存储的日志" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "将所有已存储的日志打包到一个 zip 文件中。" # AI Translated @@ -19771,7 +19772,7 @@ msgstr "未找到打印机类型,请手动选择。" msgid "Authorizing..." msgstr "正在授权..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "错误。无法获取用于授权的 API 令牌" msgid "Could not parse server response." diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 456092deb5..86f5263b1b 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -6287,10 +6287,10 @@ msgstr "匯入 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "載入模型" -msgid "Import Zip Archive" +msgid "Import ZIP Archive" msgstr "匯入壓縮檔" -msgid "Load models contained within a zip archive" +msgid "Load models contained within a ZIP archive" msgstr "載入壓縮檔中的模型" msgid "Import Configs" @@ -8066,7 +8066,7 @@ msgstr "請確認這些預設中的 G-code 是安全的,以防止對列印裝 msgid "Customized Preset" msgstr "自訂預設" -msgid "Component name(s) inside step file not in UTF8 format!" +msgid "Component name(s) inside step file not in UTF-8 format!" msgstr "STEP 檔案內部元件的名稱不是 UTF-8 格式!" # AI Translated @@ -8089,7 +8089,7 @@ msgstr "物件的體積為零" #, c-format, boost-format msgid "" "The object from file %s is too small, and may be in meters or inches.\n" -" Do you want to scale to millimeters?" +"Do you want to scale to millimeters?" msgstr "" "檔案 %s 中的物件太小,可能以公尺(M)或英吋(Inches)為單位。\n" "是否要轉換成毫米(mm)?" @@ -10944,12 +10944,12 @@ msgid "No modifications need to be copied." msgstr "沒有需要複製的修改。" # AI Translated -msgid "Copy paramters" +msgid "Copy parameters" msgstr "複製參數" # AI Translated #, c-format, boost-format -msgid "Modify paramters of %s" +msgid "Modify parameters of %s" msgstr "修改 %s 的參數" # AI Translated @@ -12578,7 +12578,8 @@ msgstr "mm 或 %" msgid "Other layers" msgstr "其它層" -msgid "Bed temperature for layers except the initial one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." +#, fuzzy +msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "除首層外的其他層的熱床溫度。0值表示該線材不支援在低溫增穩列印板上列印。" msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." @@ -15790,7 +15791,7 @@ msgstr "從切割區域到垃圾桶的起始和結束點。" msgid "Reduce infill retraction" msgstr "減小填充回抽" -msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped." +msgid "Don't retract when the travel is entirely within an infill area. That means the oozing can't been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped." msgstr "當空駛完全在填充區域內時不觸發回抽。這意味著即使漏料也是不可見的。對於複雜模型,該設定能夠減少回抽次數以及列印時長,但是會造成 G-code 產生變慢" msgid "This option will drop the temperature of the inactive extruders to prevent oozing." @@ -15961,7 +15962,7 @@ msgstr "擦拭後的回抽量" # AI Translated #, no-c-format, no-boost-format msgid "" -"The length of fast retraction after wipe, relative to retraction length.\n" +"This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value." msgstr "" "擦拭後快速回抽的長度,相對於回抽長度。\n" @@ -16008,7 +16009,7 @@ msgstr "在換工具之前觸發回抽時,線材會依指定的長度回抽( msgid "Z-hop height" msgstr "Z 抬升高度" -msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing." +msgid "Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing." msgstr "回抽完成之後,噴嘴輕微抬升,和列印物件之間產生一定間隙。這能夠避免空駛時噴嘴和列印物件剮蹭和碰撞。使用螺旋線抬升z能夠減少拉絲" msgid "Z-hop lower boundary" @@ -19573,19 +19574,19 @@ msgstr "僅顯示對列印裝置、線材和處理預設設定有變更的列印 msgid "Only display the filament names with changes to filament presets." msgstr "僅顯示對線材預設設定有變更的線材名稱。" -msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip." +msgid "Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive." msgstr "只有具有使用者列印裝置預設設定的列印裝置名稱會顯示,您選擇的每個預設設定將以 zip 檔案格式匯出。" msgid "" "Only the filament names with user filament presets will be displayed, \n" -"and all user filament presets in each filament name you select will be exported as a zip." +"and all user filament presets in each filament name you select will be exported as a ZIP archive." msgstr "" "只有具有使用者線材預設設定的線材名稱會顯示,\n" "您選擇的每個線材名稱中的所有使用者線材預設設定將以 zip 檔案格式匯出。" msgid "" "Only printer names with changed process presets will be displayed, \n" -"and all user process presets in each printer name you select will be exported as a zip." +"and all user process presets in each printer name you select will be exported as a ZIP archive." msgstr "" "只有具有變更過處理預設設定的列印裝置名稱會顯示,\n" "您選擇的每個列印裝置名稱中的所有使用者處理預設設定將以 zip 檔案格式匯出。" @@ -19826,7 +19827,7 @@ msgid "We need information for diagnosing source of the issue. Check wiki page f msgstr "我們需要相關資訊以診斷問題來源。請查看 wiki 頁面以取得詳細指南。" # AI Translated -msgid "Pack button collects project file and logs of current session onto a zip file." +msgid "Pack button collects project file and logs of current session onto a ZIP archive." msgstr "「打包」按鈕會將目前工作階段的專案檔案與記錄收集到一個 zip 檔案中。" # AI Translated @@ -19882,7 +19883,7 @@ msgid "Stored logs" msgstr "已儲存的記錄" # AI Translated -msgid "Packs all stored logs onto a zip file." +msgid "Packs all stored logs onto a ZIP archive." msgstr "將所有已儲存的記錄打包成一個 zip 檔案。" # AI Translated @@ -19962,7 +19963,7 @@ msgstr "找不到列印裝置類型,請手動選取。" msgid "Authorizing..." msgstr "授權中..." -msgid "Error. Can't get api token for authorization" +msgid "Error. Can't get API token for authorization" msgstr "錯誤。無法取得用於授權的 API token。" msgid "Could not parse server response." diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 17d7cee678..29362fcf39 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1130,8 +1130,7 @@ void PrintConfigDef::init_fff_params() // BBS def = this->add("supertack_plate_temp", coInts); def->label = L("Other layers"); - def->tooltip = L("Bed temperature for layers except the initial one. " - "A value of 0 means the filament does not support printing on the Cool Plate SuperTack."); + def->tooltip = L("This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack."); def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; @@ -2770,7 +2769,7 @@ void PrintConfigDef::init_fff_params() def = this->add("fan_cooling_layer_time", coFloats); def->label = L("Layer time"); def->tooltip = L("The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->max = 1000; def->mode = comSimple; @@ -2923,7 +2922,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Filament load time"); def->tooltip = L("Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. " "For tool changers or multi-tool machines, it's typically 0. For statistics only."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); @@ -2932,7 +2931,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Filament unload time"); def->tooltip = L("Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. " "For tool changers or multi-tool machines, it's typically 0. For statistics only."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); @@ -2941,7 +2940,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tool change time"); def->tooltip = L("Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. " "For single-extruder multi-material machines, it's typically 0. For statistics only."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat { 0. }); @@ -3087,7 +3086,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Time to wait after the filament is unloaded. " "May help to get reliable tool changes with flexible materials " "that may need more time to shrink to original dimensions."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -4206,7 +4205,7 @@ void PrintConfigDef::init_fff_params() "\nIt won't move fan commands from custom G-code (they act as a sort of 'barrier')." "\nIt won't move fan commands into the start G-code if the 'only custom start G-code' is activated." "\nUse 0 to deactivate."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -4222,7 +4221,7 @@ void PrintConfigDef::init_fff_params() "\nThis is useful for fans where a low PWM/power may be insufficient to get the fan started spinning from a stop, or to " "get the fan up to speed faster." "\nSet to 0 to deactivate."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -4866,7 +4865,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Ironing expansion"); def->category = L("Quality"); def->tooltip = L("Expand or contract the ironing area."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // millimeters, CIS languages need translation def->min = -100; def->max = 100; def->mode = comExpert; @@ -4903,7 +4902,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Quality"); def->tooltip = L("Minimum Z-layer height.\n" "Also controls the slicing plane."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // millimeters, CIS languages need translation def->min = 0; def->max = 100; def->mode = comExpert; @@ -5102,7 +5101,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Machine limits"); def->readonly = false; def->tooltip = L("The allowed maximum output force of Y axis"); - def->sidetext = L("N"); + def->sidetext = L_CONTEXT("N", "Newton"); // Newtons, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloat(0)); @@ -5112,7 +5111,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Machine limits"); def->readonly = false; def->tooltip = L("The machine bed mass load of Y axis"); - def->sidetext = L("g"); + def->sidetext = L_CONTEXT("g", "gram"); // grams, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloat(0)); @@ -5122,7 +5121,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Machine limits"); def->readonly = false; def->tooltip = L("The allowed max printed mass on a plate"); - def->sidetext = L("g"); + def->sidetext = L_CONTEXT("g", "gram"); // grams, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloat(0)); @@ -5481,7 +5480,7 @@ void PrintConfigDef::init_fff_params() def = this->add("reduce_infill_retraction", coBool); def->label = L("Reduce infill retraction"); - def->tooltip = L("Don\'t retract when the travel is entirely within an infill area. That means the oozing can\'t been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that z-hop is also not performed in areas where retraction is skipped."); + def->tooltip = L("Don\'t retract when the travel is entirely within an infill area. That means the oozing can\'t been seen. This can reduce times of retraction for complex model and save printing time, but make slicing and G-code generating slower. Note that Z-hop is also not performed in areas where retraction is skipped."); def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); @@ -5736,7 +5735,7 @@ void PrintConfigDef::init_fff_params() def = this->add("retract_after_wipe", coPercents); def->label = L("Retract amount after wipe"); // xgettext:no-c-format, no-boost-format - def->tooltip = L("The length of fast retraction after wipe, relative to retraction length.\n" + def->tooltip = L("This is the length of fast retraction after wipe, relative to retraction length.\n" "The value will be clamped by 100% minus the retract amount before the wipe value."); def->sidetext = "%"; def->mode = comExpert; @@ -5802,7 +5801,7 @@ void PrintConfigDef::init_fff_params() def = this->add("z_hop", coFloats); def->label = L("Z-hop height"); - def->tooltip = L("Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift z can prevent stringing."); + def->tooltip = L("Whenever there is a retraction, the nozzle is lifted a little to create clearance between the nozzle and the print. This prevents the nozzle from hitting the print when traveling more. Using spiral lines to lift Z can prevent stringing."); def->sidetext = L("mm"); // millimeters, CIS languages need translation def->mode = comSimple; def->min = 0; @@ -6380,7 +6379,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Layer time"); def->tooltip = L("The printing speed in exported G-code will be slowed down when the estimated layer time is " "shorter than this value in order to get better cooling for these layers."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->max = 1000; def->mode = comSimple; @@ -6533,7 +6532,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Preheat time"); def->tooltip = L("To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. " "This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance."); - def->sidetext = L("s"); // seconds, CIS languages need translation + def->sidetext = L_CONTEXT("s", "second"); // seconds, CIS languages need translation def->min = 0; def->max = 120; def->mode = comAdvanced; @@ -8025,7 +8024,7 @@ void PrintConfigDef::init_fff_params() def = this->add("machine_hotend_change_time", coFloat); def->label = L("Hotend change time"); def->tooltip = L("Time to change hotend."); - def->sidetext = L("s"); + def->sidetext = L_CONTEXT("s", "second"); def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index 10fa9653eb..3c2981d822 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -28,9 +28,9 @@ std::string CalibPressureAdvance::move_to(Vec2d pt, GCodeWriter &writer, std::st gcode << writer.retract(); // retract before z move or move if(z > EPSILON && layer_height >= 0){ - gcode << writer.travel_to_z(z, "z-hop"); // Perform z hop + gcode << writer.travel_to_z(z, "Z-hop"); // Perform z hop gcode << writer.travel_to_xy(pt, comment); // Travel with z move - gcode << writer.travel_to_z(layer_height, "undo z-hop"); // Undo z hop + gcode << writer.travel_to_z(layer_height, "undo Z-hop"); // Undo z hop }else { gcode << writer.travel_to_xy(pt, comment); } diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index 063d1ce628..892576f0c0 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -3867,14 +3867,14 @@ void ExportConfigsDialog::select_curr_radiobox(std::vector<std::pair<RadioBox *, m_preset_sizer->Add(create_checkbox(m_presets_window, preset.second, printer_name, m_preset), 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(5)); } - m_serial_text->SetLabel(_L("Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a zip.")); + m_serial_text->SetLabel(_L("Only printer names with user printer presets will be displayed, and each preset you choose will be exported as a ZIP archive.")); } else if (export_type == m_exprot_type.filament_preset) { for (std::pair<std::string, std::vector<std::pair<std::string, Preset *>>> filament_name_to_preset : m_filament_name_to_presets) { if (filament_name_to_preset.second.empty()) continue; wxString filament_name = wxString::FromUTF8(filament_name_to_preset.first); m_preset_sizer->Add(create_checkbox(m_presets_window, filament_name, m_printer_name), 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(5)); } - m_serial_text->SetLabel(_L("Only the filament names with user filament presets will be displayed, \nand all user filament presets in each filament name you select will be exported as a zip.")); + m_serial_text->SetLabel(_L("Only the filament names with user filament presets will be displayed, \nand all user filament presets in each filament name you select will be exported as a ZIP archive.")); } else if (export_type == m_exprot_type.process_preset) { for (std::pair<std::string, std::vector<Preset *>> presets : m_process_presets) { Preset * printer_preset = preset_bundle->printers.find_preset(presets.first, false); @@ -3890,7 +3890,7 @@ void ExportConfigsDialog::select_curr_radiobox(std::vector<std::pair<RadioBox *, } } - m_serial_text->SetLabel(_L("Only printer names with changed process presets will be displayed, \nand all user process presets in each printer name you select will be exported as a zip.")); + m_serial_text->SetLabel(_L("Only printer names with changed process presets will be displayed, \nand all user process presets in each printer name you select will be exported as a ZIP archive.")); } //m_presets_window->SetSizerAndFit(m_preset_sizer); m_presets_window->Layout(); diff --git a/src/slic3r/GUI/FilamentMapDialog.cpp b/src/slic3r/GUI/FilamentMapDialog.cpp index 12ca3a2965..7bb6f51421 100644 --- a/src/slic3r/GUI/FilamentMapDialog.cpp +++ b/src/slic3r/GUI/FilamentMapDialog.cpp @@ -241,7 +241,7 @@ FilamentMapDialog::FilamentMapDialog(wxWindow *parent, wxBoxSizer *mode_sizer = new wxBoxSizer(wxHORIZONTAL); - m_auto_btn = new CapsuleButton(this, PageType::ptAuto, only_saving_mode ? _L("Fila Saving") : _L("Auto"), false); + m_auto_btn = new CapsuleButton(this, PageType::ptAuto, only_saving_mode ? _L("File Saving") : _L("Auto"), false); m_manual_btn = new CapsuleButton(this, PageType::ptManual, _L("Custom"), false); if (show_default) m_default_btn = new CapsuleButton(this, PageType::ptDefault, _L("Same as Global"), true); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index a81cb72ab9..7b8912fe5b 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -2850,7 +2850,7 @@ void MainFrame::init_menubar_as_editor() [this](wxCommandEvent&) { if (m_plater) { m_plater->add_model(); } }, "", nullptr, [this](){return can_add_models(); }, this); #endif - append_menu_item(import_menu, wxID_ANY, _L("Import Zip Archive") + dots, _L("Load models contained within a zip archive"), + append_menu_item(import_menu, wxID_ANY, _L("Import ZIP Archive") + dots, _L("Load models contained within a ZIP archive"), [this](wxCommandEvent&) { if (m_plater) m_plater->import_zip_archive(); }, "menu_import", nullptr, [this]() { return can_add_models(); }); append_menu_item(import_menu, wxID_ANY, _L("Import Configs") + dots /*+ "\t" + ctrl + "I"*/, _L("Load configs"), diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 067b1fcd04..0347803dbc 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -9016,7 +9016,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ if (!isUtf8StepFile) { const auto no_warn = wxGetApp().app_config->get_bool("step_not_utf8_no_warn"); if (!no_warn) { - MessageDialog dlg(nullptr, _L("Component name(s) inside step file not in UTF8 format!") + "\n\n" + _L("Because of unsupported text encoding, garbage characters may appear!"), + MessageDialog dlg(nullptr, _L("Component name(s) inside step file not in UTF-8 format!") + "\n\n" + _L("Because of unsupported text encoding, garbage characters may appear!"), wxString(SLIC3R_APP_FULL_NAME " - ") + _L("Attention!"), wxOK | wxICON_INFORMATION); dlg.show_dsa_button(_L("Remember my choice.")); dlg.ShowModal(); @@ -9129,7 +9129,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ else if (model.looks_like_saved_in_meters()) { // BBS do not handle look like in meters MessageDialog dlg(q, - format_wxstr(_L("The object from file %s is too small, and may be in meters or inches.\n Do you want to scale to millimeters\?"), + format_wxstr(_L("The object from file %s is too small, and may be in meters or inches.\nDo you want to scale to millimeters\?"), from_path(filename)), _L("Object too small"), wxICON_QUESTION | wxYES_NO); int answer = dlg.ShowModal(); @@ -9137,7 +9137,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ } else if (model.looks_like_imperial_units()) { // BBS do not handle look like in meters MessageDialog dlg(q, - format_wxstr(_L("The object from file %s is too small, and may be in meters or inches.\n Do you want to scale to millimeters\?"), + format_wxstr(_L("The object from file %s is too small, and may be in meters or inches.\nDo you want to scale to millimeters\?"), from_path(filename)), _L("Object too small"), wxICON_QUESTION | wxYES_NO); int answer = dlg.ShowModal(); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index d65d7f68bd..644c5258a1 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -8404,7 +8404,7 @@ void Tab::sync_excluder() } } if (config_to_apply.empty()) { - MessageDialog md(wxGetApp().plater(), _L("No modifications need to be copied."), _L("Copy paramters"), wxICON_INFORMATION | wxOK); + MessageDialog md(wxGetApp().plater(), _L("No modifications need to be copied."), _L("Copy parameters"), wxICON_INFORMATION | wxOK); md.ShowModal(); return; } @@ -8412,7 +8412,7 @@ void Tab::sync_excluder() std::string pt = m_preset_bundle->printers.get_edited_preset().get_printer_type(m_preset_bundle); std::string active_nozzle_name = DevPrinterConfigUtil::get_toolhead_display_name(pt, active_index, ToolHeadComponent::Nozzle, ToolHeadNameCase::LowerCase); std::string other_nozzle_name = DevPrinterConfigUtil::get_toolhead_display_name(pt, 1 - active_index, ToolHeadComponent::Nozzle, ToolHeadNameCase::LowerCase); - wxString title = wxString::Format(_L("Modify paramters of %s"), _L(active_nozzle_name)); + wxString title = wxString::Format(_L("Modify parameters of %s"), _L(active_nozzle_name)); wxString header = wxString::Format(_L("Do you want to modify the following parameters of the %s to that of the %s?"), _L(active_nozzle_name), _L(other_nozzle_name)); UnsavedChangesDialog dlg(title, header, &config_origin, from_index, dest_index, active_index == 0, active_nozzle); diff --git a/src/slic3r/GUI/TroubleshootDialog.cpp b/src/slic3r/GUI/TroubleshootDialog.cpp index c1dee7ca5c..a8c36eb975 100644 --- a/src/slic3r/GUI/TroubleshootDialog.cpp +++ b/src/slic3r/GUI/TroubleshootDialog.cpp @@ -226,7 +226,7 @@ TroubleshootDialog::TroubleshootDialog() }; auto info_desc_1 = create_info_line(_L("We need information for diagnosing source of the issue. Check wiki page for detailed guide.")); - auto info_desc_2 = create_info_line(_L("Pack button collects project file and logs of current session onto a zip file.")); + auto info_desc_2 = create_info_line(_L("Pack button collects project file and logs of current session onto a ZIP archive.")); auto info_desc_3 = create_info_line(_L("Any additional visual examples like images or screen recordings might be helpful while reporting the issue.")); wxBoxSizer *info_desc_sizer = new wxBoxSizer(wxVERTICAL); info_desc_sizer->Add(info_desc_1, 0, wxEXPAND | wxBOTTOM, FromDIP(8)); @@ -292,7 +292,7 @@ TroubleshootDialog::TroubleshootDialog() auto log_level_szr = create_label(_L("Log level"), ""); log_level_szr->Add(create_item_log_level_combo(), 0, wxALIGN_CENTER_VERTICAL); - auto log_pack_szr = create_label(_L("Stored logs"), _L("Packs all stored logs onto a zip file.")); + auto log_pack_szr = create_label(_L("Stored logs"), _L("Packs all stored logs onto a ZIP archive.")); auto log_pack_btn = create_btn(_L("Pack") + "...", ""); log_pack_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &e) { auto data_dir = boost::filesystem::path(Slic3r::data_dir()); diff --git a/src/slic3r/Utils/3DPrinterOS.cpp b/src/slic3r/Utils/3DPrinterOS.cpp index b177e37e38..61fcc80d5b 100755 --- a/src/slic3r/Utils/3DPrinterOS.cpp +++ b/src/slic3r/Utils/3DPrinterOS.cpp @@ -323,7 +323,7 @@ bool C3DPrinterOS::login(wxString& msg) const msg.clear(); std::string token = get_api_auth_token(msg); if (token.empty()) { - msg = _L("Error. Can't get api token for authorization"); + msg = _L("Error. Can't get API token for authorization"); return false; } From b81c0e30c1c17c6e16c2f12f10488e6d649a87ef Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Wed, 2 Sep 2026 10:27:18 -0300 Subject: [PATCH 111/164] Localization update (#15497) * gettext * AI Translated * Update OrcaSlicer_es.po --- localization/i18n/OrcaSlicer.pot | 143 ++++++++++-- localization/i18n/ca/OrcaSlicer_ca.po | 219 +++++++++++++++--- localization/i18n/cs/OrcaSlicer_cs.po | 229 ++++++++++++++++--- localization/i18n/de/OrcaSlicer_de.po | 215 ++++++++++++++++-- localization/i18n/en/OrcaSlicer_en.po | 142 ++++++++++-- localization/i18n/es/OrcaSlicer_es.po | 180 +++++++++++++-- localization/i18n/eu/OrcaSlicer_eu.po | 215 ++++++++++++++++-- localization/i18n/fr/OrcaSlicer_fr.po | 227 ++++++++++++++++--- localization/i18n/hu/OrcaSlicer_hu.po | 215 ++++++++++++++++-- localization/i18n/it/OrcaSlicer_it.po | 215 ++++++++++++++++-- localization/i18n/ja/OrcaSlicer_ja.po | 235 +++++++++++++++++--- localization/i18n/ko/OrcaSlicer_ko.po | 227 ++++++++++++++++--- localization/i18n/lt/OrcaSlicer_lt.po | 215 ++++++++++++++++-- localization/i18n/nl/OrcaSlicer_nl.po | 233 ++++++++++++++++--- localization/i18n/pl/OrcaSlicer_pl.po | 227 ++++++++++++++++--- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 215 ++++++++++++++++-- localization/i18n/ru/OrcaSlicer_ru.po | 215 ++++++++++++++++-- localization/i18n/sv/OrcaSlicer_sv.po | 233 ++++++++++++++++--- localization/i18n/th/OrcaSlicer_th.po | 219 +++++++++++++++--- localization/i18n/tr/OrcaSlicer_tr.po | 225 ++++++++++++++++--- localization/i18n/uk/OrcaSlicer_uk.po | 225 ++++++++++++++++--- localization/i18n/vi/OrcaSlicer_vi.po | 219 +++++++++++++++--- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 216 +++++++++++++++--- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 216 +++++++++++++++--- 24 files changed, 4459 insertions(+), 661 deletions(-) diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 4f4e5079da..db62fb4443 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -3,11 +3,12 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -2761,6 +2762,9 @@ msgstr "" msgid "Merge with" msgstr "" +msgid "Decompose Color" +msgstr "" + msgid "Delete this filament" msgstr "" @@ -3038,6 +3042,9 @@ msgstr "" msgid "Merge parts to an object" msgstr "" +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "" + msgid "Add layers" msgstr "" @@ -7402,6 +7409,9 @@ msgstr "" msgid "The %s nozzle can not print %s." msgstr "" +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "" + #, possible-boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "" @@ -7522,12 +7532,36 @@ msgstr "" msgid "Set filaments to use" msgstr "" +msgid "Add Mixed Filament" +msgstr "" + +msgid "Mixed Filament" +msgstr "" + +msgid "Remove last mixed filament" +msgstr "" + +msgid "Add mixed filament" +msgstr "" + +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "" + msgid "Search plate, object and part." msgstr "" msgid "Pellets" msgstr "" +msgid "Mixed filament has broken component references" +msgstr "" + +msgid "Edit / Delete / Merge" +msgstr "" + +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "" + #, possible-c-format, possible-boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "" @@ -7699,6 +7733,12 @@ msgstr "" msgid "Multi-part object detected" msgstr "" +msgid "Matching textures to filaments" +msgstr "" + +msgid "Texture Import Warning" +msgstr "" + msgid "Load these files as a single object with multiple parts?\n" msgstr "" @@ -7893,6 +7933,18 @@ msgstr "" msgid "Sync now" msgstr "" +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "" + +msgid "Applying texture colors..." +msgstr "" + +msgid "Updating 3D view..." +msgstr "" + +msgid "Texture colors applied." +msgstr "" + msgid "You can keep the modified presets for the new project or discard them" msgstr "" @@ -9042,6 +9094,9 @@ msgstr "" msgid "First layer filament sequence" msgstr "" +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "" + msgid "By Layer" msgstr "" @@ -10806,27 +10861,6 @@ msgstr "" msgid "Please choose the filament colour" msgstr "" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "" - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "" - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "" - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "" - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "" @@ -11509,6 +11543,9 @@ msgstr "" msgid "No extrusions under current settings." msgstr "" +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "" @@ -11545,6 +11582,9 @@ msgstr "" msgid "Variable layer height is not supported with Organic supports." msgstr "" +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "" + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "" @@ -12957,6 +12997,7 @@ msgstr "" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "" +msgctxt "second" msgid "s" msgstr "" @@ -13250,6 +13291,48 @@ msgstr "" msgid "Support material is commonly used to print supports and support interfaces." msgstr "" +msgid "Is mixed filament" +msgstr "" + +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "" + +msgid "Mixed filament components" +msgstr "" + +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "" + +msgid "Mixed filament sublayer ratios" +msgstr "" + +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "" + +msgid "Mixed filament gradient" +msgstr "" + +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "" + +msgid "Mixed filament gradient range" +msgstr "" + +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "" + +msgid "Mixed filament gradient curve" +msgstr "" + +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "" + +msgid "Mixed filament per-part gradient" +msgstr "" + +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "" + msgid "Filament printable" msgstr "" @@ -14397,6 +14480,7 @@ msgstr "" msgid "The allowed maximum output force of Y axis" msgstr "" +msgctxt "Newton" msgid "N" msgstr "" @@ -14406,6 +14490,7 @@ msgstr "" msgid "The machine bed mass load of Y axis" msgstr "" +msgctxt "gram" msgid "g" msgstr "" @@ -15833,6 +15918,12 @@ msgid "" "Setting a value in the retract amount before wipe setting below will perform any excess retraction before the wipe, else it will be performed after." msgstr "" +msgid "Mixed color sublayer" +msgstr "" + +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "" + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "" @@ -16860,6 +16951,9 @@ msgstr "" msgid "The supplied file couldn't be read because it's empty." msgstr "" +msgid "The file format is incompatible and cannot be parsed." +msgstr "" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "" @@ -18960,7 +19054,7 @@ msgstr "" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "" -msgid "Fila Saving" +msgid "File Saving" msgstr "" msgid "Don't remind me again" @@ -19320,6 +19414,9 @@ msgstr "" msgid "NO RAMMING AT ALL" msgstr "" +msgid "s" +msgstr "" + msgid "Volumetric speed" msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index 873cf0d7fb..2b42f300ac 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -3015,6 +3015,10 @@ msgstr "Editar" msgid "Merge with" msgstr "Fusiona amb" +# AI Translated +msgid "Decompose Color" +msgstr "Descompondre el color" + msgid "Delete this filament" msgstr "Elimina aquest filament" @@ -3316,6 +3320,10 @@ msgstr "Muntatge" msgid "Merge parts to an object" msgstr "Fusionar les peces en un objecte" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Utilitzar una alçada de capa variable juntament amb la subcapa de color mixt pot reduir la qualitat de la barreja de colors." + # AI Translated msgid "Add layers" msgstr "Afegir capes" @@ -7956,6 +7964,10 @@ msgstr "Personalitzar la placa actual" msgid "The %s nozzle can not print %s." msgstr "El broquet %s no pot imprimir %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Imprimir filament de color mixt en una impressora d'un sol extrusor requereix canvis de filament i purgues freqüents, cosa que pot augmentar considerablement el malbaratament i el risc d'obstrucció del broquet o del conducte de residus." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "No es recomana barrejar %1% amb %2% en la impressió.\n" @@ -8081,6 +8093,26 @@ msgstr "Sincronitzar la llista de filaments des d'AMS" msgid "Set filaments to use" msgstr "Configurar els filaments a utilitzar" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Afegir filament mixt" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filament mixt" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Eliminar l'últim filament mixt" + +# AI Translated +msgid "Add mixed filament" +msgstr "Afegir filament mixt" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "El filament mixt té components no vàlids o incoherents. Torneu a editar les entrades afectades." + msgid "Search plate, object and part." msgstr "Cercar placa, objecte i peça." @@ -8088,6 +8120,18 @@ msgstr "Cercar placa, objecte i peça." msgid "Pellets" msgstr "Pèl·lets" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "El filament mixt té referències de components trencades" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Editar / Esborrar / Fusionar" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "El filament mixt de destinació utilitza aquest filament físic com a component. En fusionar-los s'eliminarà aquest filament físic i el filament mixt pot quedar no vàlid. Voleu continuar?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "En completar l'operació, el projecte %s es tancarà i es crearà un nou projecte." @@ -8275,6 +8319,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Objecte de múltiples peces detectat" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Associant les textures als filaments" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Avís d'importació de textures" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Carregar aquests fitxers com un sol objecte amb diverses peces?\n" @@ -8488,6 +8540,22 @@ msgstr "" msgid "Sync now" msgstr "Sincronitza ara" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "No s'ha pogut importar la textura. El model sembla contenir dades de textura, però el procés d'importació no s'ha pogut completar. El model s'importarà només com a geometria." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Aplicant els colors de textura..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Actualitzant la vista 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Colors de textura aplicats." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Podeu mantenir els perfils modificats al projecte nou o descartar-los" @@ -9780,6 +9848,10 @@ msgstr "Gerro en Espiral" msgid "First layer filament sequence" msgstr "Seqüència d'impressió de la primera capa" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "La llista de filaments conté filaments mixtos. La seqüència de filaments personalitzada no tindrà efecte." + msgid "By Layer" msgstr "Per Capa" @@ -11715,29 +11787,6 @@ msgstr "Volums de purga per al canvi de filament" msgid "Please choose the filament colour" msgstr "Trieu el color del filament" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "La visualització en directe nativa de Wayland requereix el sink de vídeo GTK de GStreamer. Instal·leu el connector gtksink per a GStreamer i reinicieu l'OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "No s'ha pogut inicialitzar el sink de vídeo natiu de GStreamer per a Wayland. Comproveu la instal·lació del connector GTK de GStreamer." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "El Windows Media Player és necessari per a aquesta tasca. Voleu habilitar el \"Windows Media Player\" per al vostre sistema operatiu?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource no s'ha registrat correctament per a la reproducció multimèdia! Premeu Sí per tornar-lo a registrar. Seràs promocionat dues vegades" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Falta el component BambuSource registrat per a la reproducció multimèdia! Reinstal·leu OrcaSlicer o cerqueu ajuda a la comunitat." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Utilitzar un BambuSource des d'una instal·lació diferent, la reproducció de vídeo pot no funcionar correctament! Premeu Sí per solucionar-ho." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Al vostre sistema li falten còdecs H.264 per al GStreamer, necessaris per reproduir vídeo. (Proveu d'instal·lar els paquets gstreamer1.0-plugins-bad o gstreamer1.0-libav i, a continuació, reinicieu Orca Slicer?)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "L'agent del núvol no està disponible. Reinicieu l'OrcaSlicer i torneu-ho a provar." @@ -12465,6 +12514,10 @@ msgstr "Si tot i així voleu imprimir, podeu activar l'opció a Preferències / msgid "No extrusions under current settings." msgstr "No hi ha extrusions a la configuració actual." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "S'està utilitzant un filament mixt amb degradat, però 'Subcapa de color mixt' està desactivat. El degradat no s'imprimirà." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "El mode suau de timelapse no està permès quan la seqüència \"Per objecte\" està habilitada." @@ -12501,6 +12554,10 @@ msgstr "Potser voleu reduir la mida del model o canviar la configuració d'impre msgid "Variable layer height is not supported with Organic supports." msgstr "Alçada de Capa Variable no és compatible amb suports Orgànics." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "El filament de la torre de purga no pot ser un filament mixt." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "És possible que els diferents diàmetres de broquet i els diferents diàmetres de filament no funcionin bé quan la torre principal està activada. És molt experimental, així que si us plau, procediu amb precaució." @@ -14263,6 +14320,8 @@ msgstr "Temps de capa" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "S'habilitarà el ventilador de refrigeració de peces per a capes el temps estimat de les quals sigui inferior a aquest valor. La velocitat del ventilador s'interpola entre les velocitats mínima i màxima del ventilador segons el temps d'impressió per capes" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14572,6 +14631,62 @@ msgstr "Material de suport" msgid "Support material is commonly used to print supports and support interfaces." msgstr "El material de suport s'utilitza habitualment per imprimir interfície de suport i suport" +# AI Translated +msgid "Is mixed filament" +msgstr "És filament mixt" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Indica si aquesta ranura de filament és un filament mixt compost per diversos filaments físics" + +# AI Translated +msgid "Mixed filament components" +msgstr "Components del filament mixt" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Índexs (començant per 1) dels filaments components, separats per comes; p. ex. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Proporcions de subcapa del filament mixt" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Valors de proporció separats per comes que sumin 1.0; p. ex. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Degradat del filament mixt" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Activa el mode de degradat en direcció Z per a les subcapes del filament mixt. En activar-lo, les proporcions de les subcapes varien linealment entre capes." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Rang del degradat del filament mixt" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Proporcions inicial i final del primer component en el mode de degradat. Parell separat per comes; p. ex. \"0.10,0.90\" significa del 10% al 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Corba del degradat del filament mixt" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Corba personalitzada opcional, a l'estil de Photoshop, que assigna el progrés en Z a la proporció del primer component. Es codifica com a punts de control separats per barres verticals, amb el format \"x,y\" (heretat) o \"x,y,m_in,m_out\" quan cal anul·lar la tangent (un valor buit o \"nan\" fa servir el valor PCHIP predeterminat). x està dins de [0,1]; y es limita al rang de proporcions configurat; p. ex. \"0,0.15|0.5,0.50|1,0.85\". Si es deixa buit, s'utilitza el gradient_range lineal." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Degradat per peça del filament mixt" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Quan el mode de degradat està activat, aplica el degradat a cada peça d'un muntatge de manera independent en lloc de tractar tot el muntatge com un únic rang Z." + msgid "Filament printable" msgstr "Filament imprimible" @@ -15860,6 +15975,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Força de sortida màxima permesa de l'eix Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15872,6 +15988,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Càrrega de massa del llit de la màquina a l'eix Y" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17482,6 +17599,14 @@ msgstr "" "\n" "L'establiment d'un valor en la quantitat de retractació abans de l'esborrat es realitzarà qualsevol retracció en excés abans de la neteja, sinó es realitzarà després." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Subcapa de color mixt" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Activa la divisió en subcapes de color mixt. En activar-la, les capes que contenen filaments de color mixt es divideixen en subcapes per aconseguir efectes de barreja de colors." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "La Torre de Purga es pot utilitzar per netejar els residus al broquet i estabilitzar la pressió de la cambra dins del broquet, per tal d'evitar defectes d'aparença en imprimir objectes." @@ -18573,6 +18698,10 @@ msgstr "La generació de malla del fitxer del model ha fallat o la forma no és msgid "The supplied file couldn't be read because it's empty." msgstr "El fitxer subministrat no s'ha pogut llegir perquè està buit" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "El format del fitxer és incompatible i no es pot analitzar." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Format de fitxer desconegut. El fitxer d'entrada ha de tenir extensió .stl, .obj, .amf( .xml )." @@ -20928,8 +21057,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Activar l'assignació intel·ligent de filament: assigna un filament a diversos broquets per maximitzar l'estalvi" # AI Translated -msgid "Fila Saving" -msgstr "Estalvi de filament" +msgid "File Saving" +msgstr "Desament de fitxers" msgid "Don't remind me again" msgstr "No m'ho recordis més" @@ -21338,6 +21467,9 @@ msgstr "Reinicia ara" msgid "NO RAMMING AT ALL" msgstr "SENSE EMPENTA" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Velocitat volumètrica" @@ -21989,6 +22121,41 @@ msgstr "" "Evitar la deformació( warping )\n" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "La visualització en directe nativa de Wayland requereix el sink de vídeo GTK de GStreamer. Instal·leu el connector gtksink per a GStreamer i reinicieu l'OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "No s'ha pogut inicialitzar el sink de vídeo natiu de GStreamer per a Wayland. Comproveu la instal·lació del connector GTK de GStreamer." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "El Windows Media Player és necessari per a aquesta tasca. Voleu habilitar el \"Windows Media Player\" per al vostre sistema operatiu?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource no s'ha registrat correctament per a la reproducció multimèdia! Premeu Sí per tornar-lo a registrar. Seràs promocionat dues vegades" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Falta el component BambuSource registrat per a la reproducció multimèdia! Reinstal·leu OrcaSlicer o cerqueu ajuda a la comunitat." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Utilitzar un BambuSource des d'una instal·lació diferent, la reproducció de vídeo pot no funcionar correctament! Premeu Sí per solucionar-ho." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Al vostre sistema li falten còdecs H.264 per al GStreamer, necessaris per reproduir vídeo. (Proveu d'instal·lar els paquets gstreamer1.0-plugins-bad o gstreamer1.0-libav i, a continuació, reinicieu Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Estalvi de filament" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index f51c5dc3e2..d2ef18cd2a 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -2977,6 +2977,10 @@ msgstr "Upravit" msgid "Merge with" msgstr "Sloučit s" +# AI Translated +msgid "Decompose Color" +msgstr "Rozložit barvu" + msgid "Delete this filament" msgstr "Smazat tento filament" @@ -3279,6 +3283,10 @@ msgstr "Sestava" msgid "Merge parts to an object" msgstr "Sloučit části do objektu" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Použití proměnné výšky vrstvy společně s podvrstvou míchané barvy může zhoršit kvalitu míchání barev." + # AI Translated msgid "Add layers" msgstr "Přidat vrstvy" @@ -7921,6 +7929,10 @@ msgstr "Přizpůsobit aktuální desku" msgid "The %s nozzle can not print %s." msgstr "Tryska %s nemůže tisknout %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Tisk filamentu s míchanou barvou na tiskárně s jedním extruderem vyžaduje časté výměny filamentu a čištění, což může výrazně zvýšit množství odpadu a riziko ucpání trysky nebo odpadního skluzu." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Míchání %1% s %2% při tisku není doporučeno.\n" @@ -8050,12 +8062,44 @@ msgstr "Synchronizovat seznam filamentů z AMS" msgid "Set filaments to use" msgstr "Nastavit používané filamenty" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Přidat míchaný filament" + +# AI Translated +msgid "Mixed Filament" +msgstr "Míchaný filament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Odebrat poslední míchaný filament" + +# AI Translated +msgid "Add mixed filament" +msgstr "Přidat míchaný filament" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Míchaný filament má neplatné nebo neodpovídající komponenty. Upravte prosím dotčené položky znovu." + msgid "Search plate, object and part." msgstr "Hledat desku, objekt a díl." msgid "Pellets" msgstr "Pelety" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Míchaný filament má poškozené odkazy na komponenty" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Upravit / Smazat / Sloučit" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Cílový míchaný filament používá tento fyzický filament jako komponentu. Sloučením se tento fyzický filament odstraní a míchaný filament může přestat být platný. Pokračovat?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Po dokončení operace bude projekt %s uzavřen a bude vytvořen nový projekt." @@ -8237,6 +8281,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Detekován vícedílný objekt" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Přiřazování textur k filamentům" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Upozornění při importu textury" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Načíst tyto soubory jako jeden objekt s více částmi?\n" @@ -8447,6 +8499,22 @@ msgstr "" msgid "Sync now" msgstr "Synchronizovat nyní" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Import textury se nezdařil. Zdá se, že model obsahuje data textury, ale proces importu nebylo možné dokončit. Model bude importován pouze jako geometrie." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Aplikují se barvy textury..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Aktualizuje se 3D náhled..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Barvy textury byly použity." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Upravené předvolby můžete ponechat v novém projektu nebo je zahodit" @@ -9728,6 +9796,10 @@ msgstr "Spirálová váza" msgid "First layer filament sequence" msgstr "Pořadí filamentů v první vrstvě" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Seznam filamentů obsahuje míchané filamenty. Vlastní pořadí filamentů se neuplatní." + msgid "By Layer" msgstr "Podle vrstvy" @@ -11697,34 +11769,6 @@ msgstr "Objemy čištění při výměně filamentu" msgid "Please choose the filament colour" msgstr "Vyberte prosím barvu filamentu" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Nativní živý náhled ve Waylandu vyžaduje video sink GStreamer GTK. Nainstalujte prosím plugin gtksink pro GStreamer a poté restartujte OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Nepodařilo se inicializovat nativní video sink GStreamer pro Wayland. Zkontrolujte prosím instalaci pluginu GStreamer GTK." - -# AI Translated -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Pro tuto úlohu je vyžadován Windows Media Player! Chcete ve svém operačním systému povolit „Windows Media Player“?" - -# AI Translated -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource nebyl správně zaregistrován pro přehrávání médií! Stisknutím Ano jej znovu zaregistrujete. Budete vyzváni dvakrát" - -# AI Translated -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Chybí komponenta BambuSource registrovaná pro přehrávání médií! Přeinstalujte prosím OrcaSlicer nebo požádejte o pomoc komunitu." - -# AI Translated -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Používá se BambuSource z jiné instalace, přehrávání videa nemusí fungovat správně! Stisknutím Ano to opravíte." - -# AI Translated -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Ve vašem systému chybí kodeky H.264 pro GStreamer, které jsou nutné k přehrávání videa. (Zkuste nainstalovat balíčky gstreamer1.0-plugins-bad nebo gstreamer1.0-libav a poté restartovat Orca Slicer?)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Cloudový agent není dostupný. Restartujte prosím OrcaSlicer a zkuste to znovu." @@ -12446,6 +12490,10 @@ msgstr "Pokud chcete přesto tisknout, můžete povolit možnost v Nastavení / msgid "No extrusions under current settings." msgstr "Při aktuálním nastavení nejsou žádné extruze." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Je použit míchaný filament s gradientem, ale 'Podvrstva míchané barvy' je vypnutá. Gradient nebude vytištěn." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Plynulý režim časosběru není podporován, pokud je povoleno pořadí tisku „podle objektu“." @@ -12482,6 +12530,10 @@ msgstr "Možná budete chtít zmenšit velikost modelu nebo změnit aktuální n msgid "Variable layer height is not supported with Organic supports." msgstr "Proměnná výška vrstvy není podporována s organickými podporami." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Filament věže na očištění trysky nemůže být míchaný filament." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Různé průměry trysek a filamentu nemusí správně fungovat, pokud je povolena základní věž. Jedná se o velmi experimentální funkci, proto pokračujte opatrně." @@ -14232,6 +14284,8 @@ msgstr "Čas vrstvy" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Ventilátor chlazení části bude spuštěn u vrstev, jejichž odhadovaný čas je kratší než tato hodnota. Rychlost ventilátoru je interpolována mezi minimální a maximální podle času tisku vrstvy." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14540,6 +14594,62 @@ msgstr "Podpůrný materiál" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Podpůrný materiál se běžně používá pro tisk podpěr a rozhraní podpěr." +# AI Translated +msgid "Is mixed filament" +msgstr "Je míchaný filament" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Určuje, zda je tato pozice filamentu míchaným filamentem složeným z několika fyzických filamentů" + +# AI Translated +msgid "Mixed filament components" +msgstr "Komponenty míchaného filamentu" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Čárkami oddělené indexy komponentních filamentů počítané od 1, např. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Poměry podvrstev míchaného filamentu" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Čárkami oddělené hodnoty poměrů, jejichž součet je 1.0, např. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradient míchaného filamentu" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Zapne režim gradientu ve směru Z pro podvrstvy míchaného filamentu. Je-li zapnutý, poměry podvrstev se mění lineárně napříč vrstvami." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Rozsah gradientu míchaného filamentu" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Počáteční a koncový poměr první komponenty v režimu gradientu. Dvojice oddělená čárkou, např. \"0.10,0.90\" znamená 10% až 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Křivka gradientu míchaného filamentu" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Volitelná vlastní křivka ve stylu Photoshopu, která mapuje postup v ose Z na poměr první komponenty. Zapisuje se jako řídicí body oddělené svislými čarami, buď ve tvaru \"x,y\" (starší formát), nebo \"x,y,m_in,m_out\", pokud je potřeba přepsat tečnu (prázdná hodnota nebo \"nan\" použije výchozí PCHIP). x je v intervalu [0,1]; y je omezeno na nastavený rozsah poměrů, např. \"0,0.15|0.5,0.50|1,0.85\". Pokud je pole prázdné, použije se lineární gradient_range." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradient míchaného filamentu podle dílu" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Je-li zapnutý režim gradientu, aplikuje gradient na každý díl sestavy samostatně místo toho, aby se celá sestava brala jako jeden rozsah Z." + msgid "Filament printable" msgstr "Tisknutelný filament" @@ -15816,6 +15926,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Povolená maximální výstupní síla osy Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15828,6 +15939,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Zatížení osy Y hmotností podložky stroje" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17427,6 +17539,14 @@ msgstr "" "\n" "Nastavení hodnoty v parametru množství retrakce před očištěním níže provede případnou dodatečnou retrakci před očištěním, jinak bude provedena po něm." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Podvrstva míchané barvy" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Zapne dělení na podvrstvy míchané barvy. Je-li zapnuto, vrstvy obsahující filamenty s míchanou barvou se rozdělí na podvrstvy, aby vznikl efekt míchání barev." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Čistící věž lze použít k odstranění zbytků materiálu na trysce a ke stabilizaci tlaku v komoře trysky, aby se předešlo vizuálním vadám při tisku objektů." @@ -18500,6 +18620,10 @@ msgstr "Síťování modelového souboru selhalo nebo nebyl nalezen platný tvar msgid "The supplied file couldn't be read because it's empty." msgstr "Zadaný soubor nelze načíst, protože je prázdný." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Formát souboru není kompatibilní a nelze jej načíst." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Neznámý formát souboru. Vstupní soubor musí mít příponu .stl, .obj nebo .amf(.xml)." @@ -20851,8 +20975,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Povolit chytré přiřazení filamentu: přiřadit jeden filament více tryskám pro maximální úsporu" # AI Translated -msgid "Fila Saving" -msgstr "Úspora filamentu" +msgid "File Saving" +msgstr "Ukládání souboru" # AI Translated msgid "Don't remind me again" @@ -21308,6 +21432,9 @@ msgstr "Restartovat nyní" msgid "NO RAMMING AT ALL" msgstr "ŽÁDNÝ RAMMING" +msgid "s" +msgstr "s" + # AI Translated msgid "Volumetric speed" msgstr "Objemová rychlost" @@ -21975,6 +22102,46 @@ msgstr "" "Zamezte kroucení\n" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Nativní živý náhled ve Waylandu vyžaduje video sink GStreamer GTK. Nainstalujte prosím plugin gtksink pro GStreamer a poté restartujte OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Nepodařilo se inicializovat nativní video sink GStreamer pro Wayland. Zkontrolujte prosím instalaci pluginu GStreamer GTK." + +# AI Translated +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Pro tuto úlohu je vyžadován Windows Media Player! Chcete ve svém operačním systému povolit „Windows Media Player“?" + +# AI Translated +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource nebyl správně zaregistrován pro přehrávání médií! Stisknutím Ano jej znovu zaregistrujete. Budete vyzváni dvakrát" + +# AI Translated +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Chybí komponenta BambuSource registrovaná pro přehrávání médií! Přeinstalujte prosím OrcaSlicer nebo požádejte o pomoc komunitu." + +# AI Translated +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Používá se BambuSource z jiné instalace, přehrávání videa nemusí fungovat správně! Stisknutím Ano to opravíte." + +# AI Translated +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Ve vašem systému chybí kodeky H.264 pro GStreamer, které jsou nutné k přehrávání videa. (Zkuste nainstalovat balíčky gstreamer1.0-plugins-bad nebo gstreamer1.0-libav a poté restartovat Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Úspora filamentu" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 8b27148a03..4ff61fb6ea 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Language-Team: \n" @@ -2917,6 +2917,10 @@ msgstr "Bearbeiten" msgid "Merge with" msgstr "Zusammenführen mit" +# AI Translated +msgid "Decompose Color" +msgstr "Farbe zerlegen" + msgid "Delete this filament" msgstr "Diesen Filament löschen" @@ -3216,6 +3220,10 @@ msgstr "Zusammenbau" msgid "Merge parts to an object" msgstr "Teile zu einem Objekt zusammenführen" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Die Verwendung einer variablen Schichthöhe zusammen mit der Mischfarben-Unterschicht kann zu einer schlechten Farbmischqualität führen." + # AI Translated msgid "Add layers" msgstr "Schichten hinzufügen" @@ -7791,6 +7799,10 @@ msgstr "Aktuelle Platte anpassen" msgid "The %s nozzle can not print %s." msgstr "Die %s Düse kann %s nicht drucken." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Der Druck von Mischfarben-Filament auf einem Drucker mit nur einem Extruder erfordert häufige Filamentwechsel und Spülvorgänge, was den Abfall und das Risiko einer Verstopfung von Düse bzw. Abfallschacht deutlich erhöhen kann." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Mischen von %1% mit %2% im Druck wird nicht empfohlen.\n" @@ -7916,6 +7928,26 @@ msgstr "Filamentliste von AMS synchronisieren" msgid "Set filaments to use" msgstr "Zu verwendende Filamente einstellen" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Mischfilament hinzufügen" + +# AI Translated +msgid "Mixed Filament" +msgstr "Mischfilament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Letztes Mischfilament entfernen" + +# AI Translated +msgid "Add mixed filament" +msgstr "Mischfilament hinzufügen" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Das Mischfilament enthält ungültige oder nicht zusammenpassende Komponenten. Bitte bearbeiten Sie die betroffenen Einträge erneut." + msgid "Search plate, object and part." msgstr "Suche Platte, Objekt und Teil." @@ -7923,6 +7955,18 @@ msgstr "Suche Platte, Objekt und Teil." msgid "Pellets" msgstr "Pellets" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Das Mischfilament enthält ungültige Komponentenverweise" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Bearbeiten / Löschen / Zusammenführen" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Das Ziel-Mischfilament verwendet dieses physische Filament als Komponente. Beim Zusammenführen wird dieses physische Filament entfernt und das Mischfilament kann dadurch ungültig werden. Fortfahren?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Nach Abschluss Ihrer Operation wird das %s-Projekt geschlossen und ein neues Projekt erstellt." @@ -8106,6 +8150,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Mehrteiliges Objekt erkannt" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Texturen werden den Filamenten zugeordnet" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Warnung beim Texturimport" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Diese Dateien als ein einziges Objekt mit mehreren Teilen laden?\n" @@ -8319,6 +8371,22 @@ msgstr "" msgid "Sync now" msgstr "Jetzt synchronisieren" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Der Texturimport ist fehlgeschlagen. Das Modell scheint Texturdaten zu enthalten, der Importvorgang konnte jedoch nicht abgeschlossen werden. Das Modell wird nur als Geometrie importiert." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Texturfarben werden angewendet..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D-Ansicht wird aktualisiert..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Texturfarben angewendet." + # AI Translated msgid "You can keep the modified presets for the new project or discard them" msgstr "Sie können die geänderten Profile für das neue Projekt beibehalten oder sie verwerfen" @@ -9563,6 +9631,10 @@ msgstr "Vasenmodus" msgid "First layer filament sequence" msgstr "Erste Filament-Schichtsequenz" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Die Filamentliste enthält Mischfilamente. Die benutzerdefinierte Filamentreihenfolge wird nicht wirksam." + msgid "By Layer" msgstr "Nach Schicht" @@ -11460,27 +11532,6 @@ msgstr "Reinigungsvolumen für Filamentwechsel" msgid "Please choose the filament colour" msgstr "Bitte wählen Sie die Filamentfarbe" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Native Wayland Liveview erfordert das GStreamer GTK Video Sink. Bitte installieren Sie das gtksink-Plugin für GStreamer und starten Sie OrcaSlicer neu." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Fehler beim Initialisieren des nativen Wayland GStreamer Video Sinks. Bitte überprüfen Ihre GStreamer GTK-Plugin-Installation." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Windows Media Player wird für diese Aufgabe benötigt! Möchten Sie 'Windows Media Player' für Ihr Betriebssystem aktivieren?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource wurde nicht korrekt für das Abspielen von Medien registriert! Drücken Sie Ja, um es erneut zu registrieren. Sie werden zweimal aufgefordert" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Fehlende BambuSource-Komponente, die für das Abspielen von Medien registriert ist! Bitte installieren Sie OrcaSlicer neu oder suchen Sie Hilfe in der Community." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Verwendung eines BambuSource aus einer anderen Installation, das Abspielen von Videos funktioniert möglicherweise nicht korrekt! Drücken Sie Ja, um es zu beheben." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Ihr System fehlt H.264-Codecs für GStreamer, die zum Abspielen von Videos erforderlich sind. (Versuchen Sie, die Pakete gstreamer1.0-plugins-bad oder gstreamer1.0-libav zu installieren und starten Sie Orca Slicer neu?)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Cloud-Agent ist nicht verfügbar. Bitte starten Sie OrcaSlicer neu und versuchen Sie es erneut." @@ -12185,6 +12236,10 @@ msgstr "Wenn Sie trotzdem drucken möchten, können Sie die Option in Einstellun msgid "No extrusions under current settings." msgstr "Keine Extrusion unter den aktuellen Einstellungen." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Es wird ein Mischfilament mit Verlauf verwendet, aber „Mischfarben-Unterschicht“ ist deaktiviert. Der Verlauf wird nicht gedruckt." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Der gewählte Zeitraffermodus wird nicht unterstützt, wenn die Sequenz \"nach Objekt\" aktiviert ist." @@ -12221,6 +12276,10 @@ msgstr "Sie möchten möglicherweise die Größe Ihres Modells reduzieren oder d msgid "Variable layer height is not supported with Organic supports." msgstr "Variable Schichthöhe wird nicht mit organischen Stützstrukturen unterstützt." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Das Filament des Reinigungsturms darf kein Mischfilament sein." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Unterschiedliche Düsendurchmesser und unterschiedliche Filamentdurchmesser funktionieren möglicherweise nicht gut, wenn der Reinigungsturm aktiviert ist. Es ist sehr experimentell, also gehen Sie bitte vorsichtig vor." @@ -13934,6 +13993,8 @@ msgstr "Schichtdauer" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Der Bauteillüfter wird für Schichten aktiviert, deren geschätzte Zeit kürzer als dieser Wert ist. Die Lüftergeschwindigkeit wird zwischen der minimalen und maximalen Geschwindigkeit entsprechend der Druckzeit der Schicht interpoliert." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14238,6 +14299,62 @@ msgstr "Stützmaterial" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Stützmaterial wird üblicherweise zum Drucken von Stützen und Stütz-Schnittstellen verwendet." +# AI Translated +msgid "Is mixed filament" +msgstr "Ist Mischfilament" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Gibt an, ob dieser Filamentplatz ein Mischfilament aus mehreren physischen Filamenten ist" + +# AI Translated +msgid "Mixed filament components" +msgstr "Komponenten des Mischfilaments" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Durch Kommas getrennte Indizes der Komponentenfilamente, beginnend bei 1, z. B. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Unterschicht-Anteile des Mischfilaments" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Durch Kommas getrennte Anteilswerte, die in der Summe 1.0 ergeben, z. B. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Verlauf des Mischfilaments" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Aktiviert den Verlaufsmodus in Z-Richtung für die Unterschichten des Mischfilaments. Wenn aktiviert, ändern sich die Anteile der Unterschichten linear über die Schichten hinweg." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Verlaufsbereich des Mischfilaments" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Start- und Endanteil der ersten Komponente im Verlaufsmodus. Durch Komma getrenntes Paar, z. B. \"0.10,0.90\" bedeutet 10% bis 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Verlaufskurve des Mischfilaments" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Optionale benutzerdefinierte Kurve im Photoshop-Stil, die den Z-Fortschritt auf den Anteil der ersten Komponente abbildet. Kodiert als durch senkrechte Striche getrennte Kontrollpunkte, entweder \"x,y\" (veraltet) oder \"x,y,m_in,m_out\", wenn die Tangente überschrieben werden soll (ein leerer Wert oder \"nan\" verwendet den PCHIP-Standard). x liegt in [0,1]; y wird auf den konfigurierten Anteilsbereich begrenzt, z. B. \"0,0.15|0.5,0.50|1,0.85\". Bleibt das Feld leer, wird stattdessen der lineare gradient_range verwendet." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Verlauf pro Teil beim Mischfilament" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Wenn der Verlaufsmodus aktiviert ist, wird der Verlauf auf jedes Teil eines Zusammenbaus einzeln angewendet, anstatt den gesamten Zusammenbau als einen einzigen Z-Bereich zu behandeln." + msgid "Filament printable" msgstr "Filament druckbar" @@ -15478,6 +15595,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Die maximal zulässige Ausgangskraft der Y-Achse" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15488,6 +15606,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Die Maschinenbett-Massenlast der Y-Achse" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17070,6 +17189,14 @@ msgstr "" "\n" "Wenn ein Wert in der Einstellung \"Rückzugsmenge vor dem Wischen\" unten angegeben ist, wird ein überschüssiger Rückzug vor dem Wischen ausgeführt, ansonsten wird er danach ausgeführt." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Mischfarben-Unterschicht" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Aktiviert die Aufteilung in Mischfarben-Unterschichten. Wenn aktiviert, werden Schichten mit Mischfarben-Filamenten in Unterschichten aufgeteilt, um Farbmischeffekte zu erzielen." + # AI Translated msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Der Reinigungsturm kann verwendet werden, um Rückstände auf der Düse zu entfernen und den Kammerdruck im Inneren der Düse zu stabilisieren, um Erscheinungsdefekte beim Drucken von Objekten zu vermeiden." @@ -18140,6 +18267,10 @@ msgstr "Das Erstellen eines Netzes aus der Modelldatei ist fehlgeschlagen oder e msgid "The supplied file couldn't be read because it's empty." msgstr "Die angegebene Datei konnte nicht gelesen werden, weil sie leer ist." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Das Dateiformat ist nicht kompatibel und kann nicht gelesen werden." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Unbekanntes Dateiformat: Die Eingabedatei muss die Endung .stl, .obj oder .amf(.xml) haben." @@ -20398,8 +20529,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Intelligente Filamentzuweisung aktivieren: Ein Filament mehreren Düsen zuweisen, um Einsparungen zu maximieren" # AI Translated -msgid "Fila Saving" -msgstr "Filamentersparnis" +msgid "File Saving" +msgstr "Datei speichern" msgid "Don't remind me again" msgstr "Nicht mehr erinnern" @@ -20764,6 +20895,9 @@ msgstr "Jetzt neu starten" msgid "NO RAMMING AT ALL" msgstr "KEIN RAMMING ÜBERALL" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Volumetrische Geschwindigkeit" @@ -21388,6 +21522,39 @@ msgstr "" "Verwerfungen vermeiden\n" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Native Wayland Liveview erfordert das GStreamer GTK Video Sink. Bitte installieren Sie das gtksink-Plugin für GStreamer und starten Sie OrcaSlicer neu." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Fehler beim Initialisieren des nativen Wayland GStreamer Video Sinks. Bitte überprüfen Ihre GStreamer GTK-Plugin-Installation." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Windows Media Player wird für diese Aufgabe benötigt! Möchten Sie 'Windows Media Player' für Ihr Betriebssystem aktivieren?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource wurde nicht korrekt für das Abspielen von Medien registriert! Drücken Sie Ja, um es erneut zu registrieren. Sie werden zweimal aufgefordert" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Fehlende BambuSource-Komponente, die für das Abspielen von Medien registriert ist! Bitte installieren Sie OrcaSlicer neu oder suchen Sie Hilfe in der Community." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Verwendung eines BambuSource aus einer anderen Installation, das Abspielen von Videos funktioniert möglicherweise nicht korrekt! Drücken Sie Ja, um es zu beheben." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Ihr System fehlt H.264-Codecs für GStreamer, die zum Abspielen von Videos erforderlich sind. (Versuchen Sie, die Pakete gstreamer1.0-plugins-bad oder gstreamer1.0-libav zu installieren und starten Sie Orca Slicer neu?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Filamentersparnis" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 0d0d0e2ddb..67d4d196d4 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -2758,6 +2758,9 @@ msgstr "" msgid "Merge with" msgstr "" +msgid "Decompose Color" +msgstr "" + msgid "Delete this filament" msgstr "" @@ -3035,6 +3038,9 @@ msgstr "" msgid "Merge parts to an object" msgstr "" +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "" + msgid "Add layers" msgstr "" @@ -7399,6 +7405,9 @@ msgstr "" msgid "The %s nozzle can not print %s." msgstr "" +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "" + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "" @@ -7519,12 +7528,36 @@ msgstr "" msgid "Set filaments to use" msgstr "" +msgid "Add Mixed Filament" +msgstr "" + +msgid "Mixed Filament" +msgstr "" + +msgid "Remove last mixed filament" +msgstr "" + +msgid "Add mixed filament" +msgstr "" + +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "" + msgid "Search plate, object and part." msgstr "" msgid "Pellets" msgstr "" +msgid "Mixed filament has broken component references" +msgstr "" + +msgid "Edit / Delete / Merge" +msgstr "" + +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "" @@ -7696,6 +7729,12 @@ msgstr "" msgid "Multi-part object detected" msgstr "" +msgid "Matching textures to filaments" +msgstr "" + +msgid "Texture Import Warning" +msgstr "" + msgid "Load these files as a single object with multiple parts?\n" msgstr "" @@ -7890,6 +7929,18 @@ msgstr "" msgid "Sync now" msgstr "" +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "" + +msgid "Applying texture colors..." +msgstr "" + +msgid "Updating 3D view..." +msgstr "" + +msgid "Texture colors applied." +msgstr "" + msgid "You can keep the modified presets for the new project or discard them" msgstr "" @@ -9039,6 +9090,9 @@ msgstr "" msgid "First layer filament sequence" msgstr "" +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "" + msgid "By Layer" msgstr "" @@ -10803,27 +10857,6 @@ msgstr "" msgid "Please choose the filament colour" msgstr "" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "" - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "" - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "" - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "" - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "" @@ -11506,6 +11539,9 @@ msgstr "" msgid "No extrusions under current settings." msgstr "" +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "" @@ -11542,6 +11578,9 @@ msgstr "" msgid "Variable layer height is not supported with Organic supports." msgstr "" +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "" + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "" @@ -12954,6 +12993,7 @@ msgstr "" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "" +msgctxt "second" msgid "s" msgstr "" @@ -13247,6 +13287,48 @@ msgstr "" msgid "Support material is commonly used to print supports and support interfaces." msgstr "" +msgid "Is mixed filament" +msgstr "" + +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "" + +msgid "Mixed filament components" +msgstr "" + +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "" + +msgid "Mixed filament sublayer ratios" +msgstr "" + +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "" + +msgid "Mixed filament gradient" +msgstr "" + +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "" + +msgid "Mixed filament gradient range" +msgstr "" + +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "" + +msgid "Mixed filament gradient curve" +msgstr "" + +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "" + +msgid "Mixed filament per-part gradient" +msgstr "" + +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "" + msgid "Filament printable" msgstr "" @@ -14394,6 +14476,7 @@ msgstr "" msgid "The allowed maximum output force of Y axis" msgstr "" +msgctxt "Newton" msgid "N" msgstr "" @@ -14403,6 +14486,7 @@ msgstr "" msgid "The machine bed mass load of Y axis" msgstr "" +msgctxt "gram" msgid "g" msgstr "" @@ -15830,6 +15914,12 @@ msgid "" "Setting a value in the retract amount before wipe setting below will perform any excess retraction before the wipe, else it will be performed after." msgstr "" +msgid "Mixed color sublayer" +msgstr "" + +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "" + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "" @@ -16857,6 +16947,9 @@ msgstr "" msgid "The supplied file couldn't be read because it's empty." msgstr "" +msgid "The file format is incompatible and cannot be parsed." +msgstr "" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "" @@ -18957,7 +19050,7 @@ msgstr "" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "" -msgid "Fila Saving" +msgid "File Saving" msgstr "" msgid "Don't remind me again" @@ -19317,6 +19410,9 @@ msgstr "" msgid "NO RAMMING AT ALL" msgstr "" +msgid "s" +msgstr "" + msgid "Volumetric speed" msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 032516c978..bc8e1e9f79 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -2832,6 +2832,9 @@ msgstr "Editar" msgid "Merge with" msgstr "Fusionar con" +msgid "Decompose Color" +msgstr "Descomponer color" + msgid "Delete this filament" msgstr "Eliminar este filamento" @@ -3113,6 +3116,9 @@ msgstr "Ensamblaje" msgid "Merge parts to an object" msgstr "Fusionar piezas en un objeto" +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Usar altura de capa variable junto con la subcapa de color mezclado puede reducir la calidad de la mezcla de colores." + msgid "Add layers" msgstr "Añadir capas" @@ -7613,6 +7619,9 @@ msgstr "Personalizar cama actual" msgid "The %s nozzle can not print %s." msgstr "La boquilla %s no puede imprimir %s." +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Imprimir filamento de color mezclado en una impresora de un solo extrusor requiere cambios de filamento y purgas frecuentes, lo que puede aumentar considerablemente el desperdicio y el riesgo de obstrucción de la boquilla o del conducto de residuos." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "No se recomienda mezclar %1% con %2% en la impresión.\n" @@ -7735,12 +7744,36 @@ msgstr "Sicronizar filamentos de la lista AMS" msgid "Set filaments to use" msgstr "Elegir filamentos para usar" +msgid "Add Mixed Filament" +msgstr "Añadir filamento mixto" + +msgid "Mixed Filament" +msgstr "Filamento mixto" + +msgid "Remove last mixed filament" +msgstr "Eliminar el último filamento mixto" + +msgid "Add mixed filament" +msgstr "Añadir filamento mixto" + +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "El filamento mixto tiene componentes no válidos o incoherentes. Vuelva a editar las entradas afectadas." + msgid "Search plate, object and part." msgstr "Buscar cama, objeto y parte." msgid "Pellets" msgstr "Pellets" +msgid "Mixed filament has broken component references" +msgstr "El filamento mixto tiene referencias de componentes rotas" + +msgid "Edit / Delete / Merge" +msgstr "Editar / Borrar / Fusionar" + +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "El filamento mixto de destino usa este filamento físico como componente. Al fusionarlos se eliminará este filamento físico y el filamento mixto puede quedar no válido. ¿Continuar?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Al completar la operación, el proyecto %s se cerrará y se creará un nuevo proyecto." @@ -7919,6 +7952,12 @@ msgstr "" msgid "Multi-part object detected" msgstr "Objeto multipieza detectado" +msgid "Matching textures to filaments" +msgstr "Asociando texturas a los filamentos" + +msgid "Texture Import Warning" +msgstr "Aviso de importación de texturas" + msgid "Load these files as a single object with multiple parts?\n" msgstr "¿Cargar estos archivos como un objeto único con múltiples piezas?\n" @@ -8123,6 +8162,18 @@ msgstr "" msgid "Sync now" msgstr "Sincronizar ahora" +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "No se ha podido importar la textura. El modelo parece contener datos de textura, pero no se ha podido completar el proceso de importación. El modelo se importará solo como geometría." + +msgid "Applying texture colors..." +msgstr "Aplicando colores de textura..." + +msgid "Updating 3D view..." +msgstr "Actualizando la vista 3D..." + +msgid "Texture colors applied." +msgstr "Colores de textura aplicados." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Puedes mantener los perfiles modificados en el nuevo proyecto o descartarlos" @@ -9338,6 +9389,9 @@ msgstr "Vaso en espiral" msgid "First layer filament sequence" msgstr "Secuencia de primera capa de filamento" +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "La lista de filamentos contiene filamentos mixtos. La secuencia de filamentos personalizada no tendrá efecto." + msgid "By Layer" msgstr "Por Capa" @@ -11181,27 +11235,6 @@ msgstr "Volúmenes de purgado para el cambio de filamentos" msgid "Please choose the filament colour" msgstr "Por favor, elija el color del filamento" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "La función de visualización en directo nativa de Wayland requiere el receptor de vídeo GTK de GStreamer. Instale el plugin gtksink para GStreamer y, a continuación, reinicie OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "No se pudo inicializar el receptor de vídeo nativo de Wayland GStreamer. Compruebe la instalación del plugin GTK de GStreamer." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Para esta tarea se necesita el Reproductor de Windows Media. ¿Desea activar el \"Reproductor de Windows Media\" en su sistema operativo?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource no se ha registrado correctamente para la reproducción multimedia. Pulse Sí para volver a registrarlo. Será promocionado dos veces" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "¡Falta el componente BambuSource para la reproducción de medios! Reinstale OrcaSlicer o busque ayuda en la comunidad." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Si utiliza una BambuSource de una instalación diferente, es posible que la reproducción de vídeo no funcione correctamente. Pulsa Sí para solucionarlo." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "A tu sistema le faltan los codecs H.264 para GStreamer, necesarios para reproducir vídeo. (Prueba a instalar los paquetes gstreamer1.0-plugins-bad o gstreamer1.0-libav y, a continuación, reinicia Orca Slicer...)." - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "El proveedor de servicios en la nube no está disponible. Reinicia OrcaSlicer e inténtalo de nuevo." @@ -11891,6 +11924,9 @@ msgstr "Si aún así quieres imprimir, puedes activar la opción en Preferencias msgid "No extrusions under current settings." msgstr "No hay extrusiones con los ajustes actuales." +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Se está usando un filamento mixto con degradado, pero 'Subcapa de color mezclado' está desactivado. El degradado no se imprimirá." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Modo de timelapse suave no está soportado cuando la secuencia \"por objeto\" está activada." @@ -11927,6 +11963,9 @@ msgstr "Es posible que desee reducir el tamaño de su modelo o cambiar la config msgid "Variable layer height is not supported with Organic supports." msgstr "La altura de capa adaptativa no es compatible con los soportes orgánicos." +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "El filamento de la torre de purga no puede ser un filamento mixto." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Diámetros de boquillas y diámetros de filamento diferentes pueden no funcionar correctamente cuando la torre de purga está activada. Esta función es experimental, así que proceda con cautela." @@ -13611,6 +13650,7 @@ msgstr "Tiempo de capa" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "El ventilador de refrigeración de la pieza se activará para las capas cuyo tiempo estimado sea inferior a este valor. La velocidad del ventilador se interpola entre las velocidades mínima y máxima del ventilador en función del tiempo de impresión de cada capa." +msgctxt "second" msgid "s" msgstr "s" @@ -13916,6 +13956,50 @@ msgstr "Material de soporte" msgid "Support material is commonly used to print supports and support interfaces." msgstr "El material de soporte se utiliza habitualmente para imprimir soportes y la interfaz de los soportes." +msgid "Is mixed filament" +msgstr "Es filamento mixto" + +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Indica si esta ranura de filamento es un filamento mixto compuesto por varios filamentos físicos" + +msgid "Mixed filament components" +msgstr "Componentes del filamento mixto" + +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Índices (empezando en 1) de los filamentos componentes, separados por comas; p. ej. \"1,3\"" + +msgid "Mixed filament sublayer ratios" +msgstr "Proporciones de subcapa del filamento mixto" + +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Valores de proporción separados por comas cuya suma sea 1.0; p. ej. \"0.7,0.3\"" + +msgid "Mixed filament gradient" +msgstr "Degradado del filamento mixto" + +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Activa el modo de degradado en dirección Z para las subcapas del filamento mixto. Al activarlo, las proporciones de las subcapas varían linealmente entre capas." + +msgid "Mixed filament gradient range" +msgstr "Rango del degradado del filamento mixto" + +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Proporciones inicial y final del primer componente en el modo de degradado. Par separado por comas; p. ej. \"0.10,0.90\" significa del 10% al 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Curva del degradado del filamento mixto" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Curva personalizada opcional, al estilo de Photoshop, que asigna el progreso en Z a la proporción del primer componente. Se codifica como puntos de control separados por barras verticales, con el formato \"x,y\" (heredado) o \"x,y,m_in,m_out\" cuando se necesita anular la tangente (un valor vacío o \"nan\" usa el valor PCHIP predeterminado). x está en [0,1]; y se limita al rango de proporciones configurado; p. ej. \"0,0.15|0.5,0.50|1,0.85\". Si se deja vacío, se usa el gradient_range lineal." + +msgid "Mixed filament per-part gradient" +msgstr "Degradado por pieza del filamento mixto" + +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Cuando el modo de degradado está activado, aplica el degradado a cada pieza de un ensamblaje de forma independiente en lugar de tratar todo el ensamblaje como un único rango Z." + msgid "Filament printable" msgstr "Filamento imprimible" @@ -15150,6 +15234,7 @@ msgstr "Fuerza máxima del eje Y" msgid "The allowed maximum output force of Y axis" msgstr "La fuerza máxima permitida del eje Y" +msgctxt "Newton" msgid "N" msgstr "N" @@ -15159,6 +15244,7 @@ msgstr "Masa de la cama del eje Y" msgid "The machine bed mass load of Y axis" msgstr "La carga de la masa de la cama de la máquina del eje Y" +msgctxt "gram" msgid "g" msgstr "g" @@ -16715,6 +16801,14 @@ msgstr "" "\n" "Fijando un valor en la cantidad de retracción antes del purgado se realizará cualquier exceso de retracción antes del purgado, de lo contrario se realizará después." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Subcapa de color mezclado" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Activa la división en subcapas de color mezclado. Al activarlo, las capas que contienen filamentos de color mezclado se dividen en subcapas para lograr efectos de mezcla de colores." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "La torre de purga puede utilizarse para limpiar los residuos de la boquilla y estabilizar la presión de la recámara en el interior de la boquilla, con el fin de evitar defectos visuales al imprimir objetos." @@ -17771,6 +17865,10 @@ msgstr "La generación de la malla del archivo del modelo falló o no hay una fo msgid "The supplied file couldn't be read because it's empty." msgstr "No se ha podido leer el archivo proporcionado porque está vacío." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "El formato del archivo es incompatible y no se puede analizar." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Formato de archivo desconocido: el archivo de entrada debe tener extensión .STL, .obj o .amf (.xml)." @@ -20027,8 +20125,9 @@ msgstr "Eliminado" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "Activar la asignación inteligente de filamento: asigna un filamento a varias boquillas para maximizar el ahorro" -msgid "Fila Saving" -msgstr "Ahorro de filamento" +# AI Translated +msgid "File Saving" +msgstr "Guardado de archivo" msgid "Don't remind me again" msgstr "No me recuerdes de nuevo" @@ -20387,6 +20486,9 @@ msgstr "Reiniciar ahora" msgid "NO RAMMING AT ALL" msgstr "NO CHOCAR EN ABSOLUTO" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Velocidad volumétrica" @@ -20963,6 +21065,36 @@ msgstr "" "Evita la deformación\n" "¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "La función de visualización en directo nativa de Wayland requiere el receptor de vídeo GTK de GStreamer. Instale el plugin gtksink para GStreamer y, a continuación, reinicie OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "No se pudo inicializar el receptor de vídeo nativo de Wayland GStreamer. Compruebe la instalación del plugin GTK de GStreamer." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Para esta tarea se necesita el Reproductor de Windows Media. ¿Desea activar el \"Reproductor de Windows Media\" en su sistema operativo?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource no se ha registrado correctamente para la reproducción multimedia. Pulse Sí para volver a registrarlo. Será promocionado dos veces" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "¡Falta el componente BambuSource para la reproducción de medios! Reinstale OrcaSlicer o busque ayuda en la comunidad." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Si utiliza una BambuSource de una instalación diferente, es posible que la reproducción de vídeo no funcione correctamente. Pulsa Sí para solucionarlo." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "A tu sistema le faltan los codecs H.264 para GStreamer, necesarios para reproducir vídeo. (Prueba a instalar los paquetes gstreamer1.0-plugins-bad o gstreamer1.0-libav y, a continuación, reinicia Orca Slicer...)." + +#~ msgid "N" +#~ msgstr "N" + +#~ msgid "g" +#~ msgstr "g" + +#~ msgid "Fila Saving" +#~ msgstr "Ahorro de filamento" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index 26185f6514..9ee2e6451d 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n" "Language-Team: \n" @@ -2868,6 +2868,10 @@ msgstr "Editatu" msgid "Merge with" msgstr "Batu honekin" +# AI Translated +msgid "Decompose Color" +msgstr "Deskonposatu kolorea" + msgid "Delete this filament" msgstr "Ezabatu filamentu hau" @@ -3149,6 +3153,10 @@ msgstr "Multzoa" msgid "Merge parts to an object" msgstr "Batu piezak objektu batean" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Geruza-altuera aldakorra kolore nahasiaren azpigeruzarekin batera erabiltzeak kolore-nahasketaren kalitatea okertu dezake." + msgid "Add layers" msgstr "Geruzak gehitu" @@ -7679,6 +7687,10 @@ msgstr "Pertsonalizatu uneko plaka" msgid "The %s nozzle can not print %s." msgstr "%s pitak ezin du %s inprimatu." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Kolore nahasiko filamentua estrusore bakarreko inprimagailu batean inprimatzeak filamentu-aldaketa eta purgatze ugari eskatzen ditu, eta horrek nabarmen handitu ditzake hondakinak eta pita edo hondakin-hodia buxatzeko arriskua." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Ez da gomendatzen inprimatzean %1% eta %2% nahastea.\n" @@ -7801,12 +7813,44 @@ msgstr "Sinkronizatu filamentuen zerrenda AMSarekin" msgid "Set filaments to use" msgstr "Ezarri erabili beharreko filamentuak" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Gehitu filamentu nahasia" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filamentu nahasia" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Kendu azken filamentu nahasia" + +# AI Translated +msgid "Add mixed filament" +msgstr "Gehitu filamentu nahasia" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Filamentu nahasiak baliogabeko edo bat ez datozen osagaiak ditu. Editatu berriro kaltetutako sarrerak." + msgid "Search plate, object and part." msgstr "Bilatu plaka, objektua eta pieza." msgid "Pellets" msgstr "Pelletak" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Filamentu nahasiak hautsitako osagai-erreferentziak ditu" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Editatu / Ezabatu / Batu" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Helburuko filamentu nahasiak filamentu fisiko hau erabiltzen du osagai gisa. Batzeak filamentu fisiko hau ezabatuko du eta filamentu nahasia baliogabetu dezake. Jarraitu?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Eragiketa amaitzean, %s proiektua itxi eta proiektu berri bat sortuko da." @@ -7985,6 +8029,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Pieza anitzeko objektua detektatu da" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Testurak filamentuekin parekatzen" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Testura inportatzeko abisua" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Kargatu fitxategi hauek pieza anitzeko objektu bakar gisa?\n" @@ -8189,6 +8241,22 @@ msgstr "" msgid "Sync now" msgstr "Sinkronizatu orain" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Testura inportatzeak huts egin du. Badirudi modeloak testura-datuak dituela, baina ezin izan da inportatze-prozesua osatu. Modeloa geometria gisa soilik inportatuko da." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Testura-koloreak aplikatzen..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D ikuspegia eguneratzen..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Testura-koloreak aplikatuta." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Aldatutako aurrezarpenak proiektu berrirako gorde edo baztertu ditzakezu" @@ -9406,6 +9474,10 @@ msgstr "Espiral formako loreontzia" msgid "First layer filament sequence" msgstr "Lehen geruzako filamentuen sekuentzia" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Filamentu-zerrendak filamentu nahasiak ditu. Filamentu-sekuentzia pertsonalizatuak ez du eraginik izango." + msgid "By Layer" msgstr "Geruzaren arabera" @@ -11273,27 +11345,6 @@ msgstr "Filamentua aldatzeko purgatze-bolumenak" msgid "Please choose the filament colour" msgstr "Hautatu filamentuen kolorea" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Waylanden jatorrizko zuzeneko ikuspegiak GStreamer GTK bideo-hustubidea behar du. Instalatu GStreamerrerako gtksink plugina eta berrabiarazi OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Ezin izan da Waylanden jatorrizko GStreamer bideo-hustubidea hasieratu. Egiaztatu GStreamer GTK pluginaren instalazioa." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Windows Media Player behar da zeregin honetarako! 'Windows Media Player' gaitu nahi duzu zure sistema eragilean?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource ez da behar bezala erregistratu multimedia erreproduzitzeko! Sakatu Bai berriro erregistratzeko. Bi aldiz galdetuko zaizu" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Multimedia erreproduzitzeko erregistratutako BambuSource osagaia falta da! Berrinstalatu OrcaSlicer edo eskatu laguntza komunitateari." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Beste instalazio bateko BambuSource erabiltzen ari zara; baliteke bideo-erreprodukzioak behar bezala ez funtzionatzea! Sakatu Bai konpontzeko." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Zure sisteman GStreamer-erako H.264 kodekak falta dira, eta beharrezkoak dira bideoa erreproduzitzeko. (Saiatu gstreamer1.0-plugins-bad edo gstreamer1.0-libav paketeak instalatzen, eta berrabiarazi OrcaSlicer?)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Hodeiko agentea ez dago erabilgarri. Berrabiarazi OrcaSlicer eta saiatu berriro." @@ -11993,6 +12044,10 @@ msgstr "Hala ere inprimatu nahi baduzu, aukera hau gaitu dezakezu: Hobespenak / msgid "No extrusions under current settings." msgstr "Uneko ezarpenekin ez dago estrusiorik." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Gradientedun filamentu nahasi bat erabiltzen ari da, baina 'Kolore nahasiaren azpigeruza' desgaituta dago. Gradientea ez da inprimatuko." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Timelapsearen modu leuna ez da onartzen \"objektuka\" sekuentzia gaituta dagoenean." @@ -12029,6 +12084,10 @@ msgstr "Modeloaren tamaina txikitu edo uneko inprimatze-ezarpenak aldatu eta ber msgid "Variable layer height is not supported with Organic supports." msgstr "Geruza-altuera aldakorra ez da onartzen euskarri organikoekin." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Purgatze-dorrearen filamentua ezin da filamentu nahasia izan." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Pitaren diametro eta filamentu-diametro desberdinek agian ez dute ondo funtzionatuko purgatze-dorrea gaituta dagoenean. Oso esperimentala da; jarraitu kontuz." @@ -13729,6 +13788,8 @@ msgstr "Geruza-denbora" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Piezaren hozte-haizagailua gaituko da estimatutako denbora balio hau baino laburragoa duten geruzetan. Haizagailuaren abiadura gutxienekoaren eta gehienekoaren artean interpolatuko da geruzaren inprimatze-denboraren arabera." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14034,6 +14095,62 @@ msgstr "Euskarri-materiala" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Euskarri-materiala euskarriak eta euskarri-interfazeak inprimatzeko erabiltzen da normalean." +# AI Translated +msgid "Is mixed filament" +msgstr "Filamentu nahasia da" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Filamentu-zirrikitu hau hainbat filamentu fisikoz osatutako filamentu nahasia den adierazten du" + +# AI Translated +msgid "Mixed filament components" +msgstr "Filamentu nahasiaren osagaiak" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Osagai-filamentuen indizeak, komaz bereizita eta 1etik hasita; adib. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Filamentu nahasiaren azpigeruza-ratioak" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Komaz bereizitako ratio-balioak, guztira 1.0 ematen dutenak; adib. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Filamentu nahasiaren gradientea" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Z norabideko gradiente modua gaitzen du filamentu nahasiaren azpigeruzetarako. Gaituta dagoenean, azpigeruzen ratioak linealki aldatzen dira geruzaz geruza." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Filamentu nahasiaren gradiente-barrutia" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Lehen osagaiaren hasierako eta amaierako ratioak gradiente moduan. Komaz bereizitako parea; adib. \"0.10,0.90\" %10etik %90era esan nahi du." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Filamentu nahasiaren gradiente-kurba" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Aukerako Photoshop estiloko kurba pertsonalizatua, Z progresioa lehen osagaiaren ratioarekin lotzen duena. Barra bertikalez bereizitako kontrol-puntu gisa kodetzen da, \"x,y\" (zaharra) edo \"x,y,m_in,m_out\" formatuan, tangentea gainidatzi behar denean (balio hutsak edo \"nan\" balioak PCHIP lehenetsia erabiltzen du). x [0,1] tartean dago; y konfiguratutako ratio-barrutira mugatzen da; adib. \"0,0.15|0.5,0.50|1,0.85\". Hutsik uzten bada, gradient_range lineala erabiltzen da haren ordez." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Filamentu nahasiaren gradientea pieza bakoitzeko" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Gradiente modua gaituta dagoenean, gradientea multzoko pieza bakoitzari modu independentean aplikatzen zaio, multzo osoa Z barruti bakar gisa hartu beharrean." + msgid "Filament printable" msgstr "Filamentua inprimagarria" @@ -15285,6 +15402,8 @@ msgstr "Y ardatzaren gehieneko indarra" msgid "The allowed maximum output force of Y axis" msgstr "Y ardatzaren gehieneko irteera-indar baimendua" +# AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15294,6 +15413,8 @@ msgstr "Y ardatzeko ohearen masa" msgid "The machine bed mass load of Y axis" msgstr "Y ardatzeko makinaren oheak jasaten duen masa-karga" +# AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -16859,6 +16980,14 @@ msgstr "" "\n" "Beheko garbitu aurreko atzera-egite kantitatearen ezarpenean balio batezarriz gero, gehiegizko atzera-egitea garbiketa baino lehen egingo da; bestela, ondoren egingo da." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Kolore nahasiaren azpigeruza" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Kolore nahasiaren azpigeruzatan zatitzea gaitzen du. Gaituta dagoenean, kolore nahasiko filamentuak dituzten geruzak azpigeruzatan zatitzen dira kolore-nahasketa efektuak lortzeko." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Purgatze-dorrea pitaren hondarrak garbitzeko eta pitaren barruko ganbera-presioa egonkortzeko erabil daiteke, objektuetan itxura-akatsak saihesteko." @@ -17917,6 +18046,10 @@ msgstr "Modelo-fitxategiaren sareztatzeak huts egin du edo ez dago baliozko form msgid "The supplied file couldn't be read because it's empty." msgstr "Emandako fitxategia ezin izan da irakurri hutsik dagoelako." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Fitxategi-formatua bateraezina da eta ezin da analizatu." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Fitxategi-formatu ezezaguna: sarrerako fitxategiak .stl, .obj edo .amf(.xml) luzapena izan behar du." @@ -20179,8 +20312,9 @@ msgstr "Ezabatuta" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "Gaitu filamentuen esleipen adimenduna: esleitu filamentua hainbat pitatara aurrezpena maximizatzeko" -msgid "Fila Saving" -msgstr "Filamentu-aurrezpena" +# AI Translated +msgid "File Saving" +msgstr "Fitxategia gordetzea" msgid "Don't remind me again" msgstr "Ez gogorarazi berriro" @@ -20541,6 +20675,9 @@ msgstr "Berrabiarazi orain" msgid "NO RAMMING AT ALL" msgstr "MUTURRAREN MOLDAKETARIK EZ INONDIK INORA" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Abiadura bolumetrikoa" @@ -21117,6 +21254,36 @@ msgstr "" "Saihestu okertzea\n" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Waylanden jatorrizko zuzeneko ikuspegiak GStreamer GTK bideo-hustubidea behar du. Instalatu GStreamerrerako gtksink plugina eta berrabiarazi OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Ezin izan da Waylanden jatorrizko GStreamer bideo-hustubidea hasieratu. Egiaztatu GStreamer GTK pluginaren instalazioa." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Windows Media Player behar da zeregin honetarako! 'Windows Media Player' gaitu nahi duzu zure sistema eragilean?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource ez da behar bezala erregistratu multimedia erreproduzitzeko! Sakatu Bai berriro erregistratzeko. Bi aldiz galdetuko zaizu" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Multimedia erreproduzitzeko erregistratutako BambuSource osagaia falta da! Berrinstalatu OrcaSlicer edo eskatu laguntza komunitateari." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Beste instalazio bateko BambuSource erabiltzen ari zara; baliteke bideo-erreprodukzioak behar bezala ez funtzionatzea! Sakatu Bai konpontzeko." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Zure sisteman GStreamer-erako H.264 kodekak falta dira, eta beharrezkoak dira bideoa erreproduzitzeko. (Saiatu gstreamer1.0-plugins-bad edo gstreamer1.0-libav paketeak instalatzen, eta berrabiarazi OrcaSlicer?)" + +#~ msgid "N" +#~ msgstr "N" + +#~ msgid "g" +#~ msgstr "g" + +#~ msgid "Fila Saving" +#~ msgstr "Filamentu-aurrezpena" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 28a2e27a01..e56aee63a7 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -2896,6 +2896,10 @@ msgstr "Éditer" msgid "Merge with" msgstr "Fusionner avec" +# AI Translated +msgid "Decompose Color" +msgstr "Décomposer la couleur" + msgid "Delete this filament" msgstr "Supprimer ce filament" @@ -3178,6 +3182,10 @@ msgstr "Assemblé" msgid "Merge parts to an object" msgstr "Fusionner les pièces en un objet" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "L’utilisation d’une hauteur de couche variable avec la sous-couche de couleur mixte peut dégrader la qualité du mélange des couleurs." + msgid "Add layers" msgstr "Ajouter des couches" @@ -7733,6 +7741,10 @@ msgstr "Personnaliser le plateau actuel" msgid "The %s nozzle can not print %s." msgstr "La buse %s ne peut pas imprimer %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "L’impression d’un filament de couleur mixte sur une imprimante à extrudeur unique nécessite des changements de filament et des purges fréquents, ce qui peut augmenter considérablement les déchets et le risque d’obstruction de la buse ou de la goulotte à déchets." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Le mélange de %1% avec %2% lors de l'impression n'est pas recommandé.\n" @@ -7858,12 +7870,44 @@ msgstr "Synchroniser la liste des filaments depuis l'AMS" msgid "Set filaments to use" msgstr "Définir les filaments à utiliser" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Ajouter un filament mixte" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filament mixte" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Supprimer le dernier filament mixte" + +# AI Translated +msgid "Add mixed filament" +msgstr "Ajouter un filament mixte" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Le filament mixte comporte des composants invalides ou incohérents. Veuillez modifier à nouveau les entrées concernées." + msgid "Search plate, object and part." msgstr "Recherche de plaque, d'objet et de pièce." msgid "Pellets" msgstr "Granulés" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Le filament mixte comporte des références de composants invalides" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Éditer / Supprimer / Fusionner" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Le filament mixte cible utilise ce filament physique comme composant. La fusion supprimera ce filament physique et risque de rendre le filament mixte invalide. Continuer ?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Une fois votre opération terminée, le projet %s sera fermé et un nouveau projet sera créé." @@ -8042,6 +8086,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Objet en plusieurs pièces détecté" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Association des textures aux filaments" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Avertissement d’importation de texture" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Charger ces fichiers en tant qu'objet unique avec plusieurs parties ?\n" @@ -8246,6 +8298,22 @@ msgstr "" msgid "Sync now" msgstr "Synchroniser maintenant" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Échec de l’importation de la texture. Le modèle semble contenir des données de texture, mais le processus d’importation n’a pas pu être mené à son terme. Le modèle sera importé en tant que géométrie uniquement." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Application des couleurs de texture..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Mise à jour de la vue 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Couleurs de texture appliquées." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Vous pouvez conserver les préréglages modifiés dans le nouveau projet ou les supprimer" @@ -9477,6 +9545,10 @@ msgstr "Vase spirale" msgid "First layer filament sequence" msgstr "Séquence d’impression de la première couche" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "La liste des filaments contient des filaments mixtes. La séquence de filaments personnalisée ne sera pas appliquée." + msgid "By Layer" msgstr "Par Couche" @@ -11369,27 +11441,6 @@ msgstr "Volumes de purge pour le changement de filament" msgid "Please choose the filament colour" msgstr "Veuillez choisir la couleur du filament" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "L’aperçu en direct natif sous Wayland nécessite le récepteur vidéo GStreamer GTK. Veuillez installer le plugin gtksink pour GStreamer, puis redémarrer OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Échec de l’initialisation du récepteur vidéo GStreamer natif sous Wayland. Veuillez vérifier l’installation de votre plugin GStreamer GTK." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Windows Media Player est nécessaire pour cette tâche ! Voulez-vous activer ‘Windows Media Player’ pour votre système d’exploitation ?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource n’a pas été correctement enregistré pour la lecture de médias ! Appuyez sur Oui pour le réenregistrer. Vous recevrez deux fois la demande de permission" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Composant BambuSource manquant pour la lecture multimédia ! Veuillez réinstaller OrcaSlicer ou demander de l'aide à la communauté." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Si vous utilisez une BambuSource provenant d’une autre installation, la lecture de la vidéo peut ne pas fonctionner correctement ! Appuyez sur Oui pour résoudre le problème." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Il manque à votre système les codecs H.264 pour GStreamer, qui sont nécessaires pour lire la vidéo. (Essayez d’installer les paquets gstreamer1.0-plugins-bad ou gstreamer1.0-libav, puis redémarrez Orca Slicer)." - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "L’agent cloud n’est pas disponible. Veuillez redémarrer OrcaSlicer et réessayer." @@ -12092,6 +12143,10 @@ msgstr "Si vous souhaitez tout de même imprimer, vous pouvez activer l’option msgid "No extrusions under current settings." msgstr "Aucune extrusion dans les paramètres actuels." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Un filament mixte avec dégradé est utilisé, mais « Sous-couche de couleur mixte » est désactivé. Le dégradé ne sera pas imprimé." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Le mode fluide du timelapse n'est pas pris en charge lorsque le mode d'impression « par objet » est activé." @@ -12128,6 +12183,10 @@ msgstr "Vous devez réduire la taille de votre modèle ou modifier les paramètr msgid "Variable layer height is not supported with Organic supports." msgstr "La hauteur de couche variable n’est pas prise en charge avec les supports organiques." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Le filament de la tour d’essuyage ne peut pas être un filament mixte." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Différents diamètres de buses et de filaments peuvent ne pas fonctionner correctement lorsque la tour d’amorçage est activée. Il s’agit d’un projet très expérimental, il convient donc de procéder avec prudence." @@ -12475,27 +12534,21 @@ msgstr "mm ou %" msgid "Other layers" msgstr "Autres couches" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Température du plateau pour les couches sauf la première. Une valeur de 0 signifie que le filament ne prend pas en charge l'impression sur la Cool Plate SuperTack." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur la plaque \"Cool plate\"." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Température du plateau pour les couches à l’exception de la couche initiale. La valeur 0 signifie que le filament ne peut pas être imprimé sur la plaque Cool Plate texturée." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur la plaque Engineering." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Il s'agit de la température du plateau pour toutes les couches à l'exception de la première. Une valeur à 0 signifie que ce filament ne peut pas être imprimé sur le plateau haute température (\"High Temp plate\")." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Température du plateau après la première couche. 0 signifie que le filament ne peut pas être imprimé sur la plaque PEI texturée." @@ -13837,6 +13890,8 @@ msgstr "Temps de couche" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Le ventilateur de refroidissement des pièces sera activé pour les couches dont le temps estimé est inférieur à cette valeur. La vitesse du ventilateur est interpolée entre les vitesses minimale et maximale du ventilateur en fonction du temps d'impression de la couche" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14143,6 +14198,62 @@ msgstr "Supports" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Le matériau de support est généralement utilisé pour imprimer le support et les interfaces de support" +# AI Translated +msgid "Is mixed filament" +msgstr "Est un filament mixte" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Indique si cet emplacement de filament est un filament mixte composé de plusieurs filaments physiques" + +# AI Translated +msgid "Mixed filament components" +msgstr "Composants du filament mixte" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Indices (à partir de 1) des filaments composants, séparés par des virgules ; par ex. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Proportions des sous-couches du filament mixte" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Valeurs de proportion séparées par des virgules dont la somme vaut 1.0 ; par ex. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Dégradé du filament mixte" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Active le mode dégradé dans la direction Z pour les sous-couches du filament mixte. Lorsqu’il est activé, les proportions des sous-couches varient linéairement d’une couche à l’autre." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Plage du dégradé du filament mixte" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Proportions de début et de fin du premier composant en mode dégradé. Paire séparée par une virgule ; par ex. \"0.10,0.90\" signifie de 10% à 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Courbe du dégradé du filament mixte" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Courbe personnalisée facultative, de style Photoshop, associant la progression en Z à la proportion du premier composant. Encodée sous forme de points de contrôle séparés par des barres verticales, au format \"x,y\" (ancien) ou \"x,y,m_in,m_out\" lorsqu’une tangente doit être forcée (une valeur vide ou \"nan\" utilise la valeur PCHIP par défaut). x est compris dans [0,1] ; y est limité à la plage de proportions configurée ; par ex. \"0,0.15|0.5,0.50|1,0.85\". Si le champ est vide, le gradient_range linéaire est utilisé à la place." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Dégradé par pièce du filament mixte" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Lorsque le mode dégradé est activé, applique le dégradé à chaque pièce d’un assemblage indépendamment au lieu de traiter l’assemblage entier comme une seule plage Z." + msgid "Filament printable" msgstr "Filament imprimable" @@ -15388,6 +15499,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Force de sortie maximale autorisée sur l'axe Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15398,6 +15510,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Charge massique du plateau de la machine sur l'axe Y" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -16971,6 +17084,14 @@ msgstr "" "\n" "Le réglage d’une valeur dans le paramètre de quantité de rétraction avant essuyage ci-dessous permet d’effectuer toute rétraction excédentaire avant l’essuyage, sinon elle sera effectuée après l’essuyage." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Sous-couche de couleur mixte" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Active la division en sous-couches de couleur mixte. Lorsqu’elle est activée, les couches contenant des filaments de couleur mixte sont divisées en sous-couches afin d’obtenir des effets de mélange de couleurs." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "La tour de purge peut être utilisée pour nettoyer les résidus sur la buse et stabiliser la pression du caisson à l'intérieur de la buse afin d'éviter les défauts d'apparence lors de l'impression d'objets." @@ -18037,6 +18158,10 @@ msgstr "Le maillage d'un fichier modèle a échoué ou la forme n'est pas valide msgid "The supplied file couldn't be read because it's empty." msgstr "Le fichier fourni n'a pas pu être lu car il est vide" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Le format du fichier est incompatible et ne peut pas être analysé." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Format de fichier inconnu : le fichier d'entrée doit porter l'extension .stl, .obj ou .amf (.xml)." @@ -20296,8 +20421,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Activer l'attribution intelligente de filament : attribuer un filament à plusieurs buses pour maximiser les économies" # AI Translated -msgid "Fila Saving" -msgstr "Économie de filament" +msgid "File Saving" +msgstr "Enregistrement du fichier" msgid "Don't remind me again" msgstr "Ne plus me rappeler" @@ -20662,6 +20787,9 @@ msgstr "Redémarrer maintenant" msgid "NO RAMMING AT ALL" msgstr "AUCUN BOURRAGE" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Vitesse volumétrique" @@ -21194,7 +21322,8 @@ msgstr "" "Divisez vos impressions en plateaux\n" "Saviez-vous que vous pouvez diviser un modèle comportant de nombreuses pièces en plateaux individuels prêts à être imprimés ? Cela simplifie le processus de suivi de toutes les pièces." -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer +#: Height] msgid "" "Speed up your print with Adaptive Layer Height\n" "Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!" @@ -21266,7 +21395,8 @@ msgstr "" "Améliorer la solidité\n" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une densité de remplissage plus élevée pour améliorer la résistance du modèle ?" -#: resources/data/hints.ini: [hint:When do you need to print with the printer door opened] +#: resources/data/hints.ini: [hint:When do you need to print with the printer +#: door opened] msgid "" "When do you need to print with the printer door opened?\n" "Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki." @@ -21282,6 +21412,39 @@ msgstr "" "Éviter la déformation\n" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "L’aperçu en direct natif sous Wayland nécessite le récepteur vidéo GStreamer GTK. Veuillez installer le plugin gtksink pour GStreamer, puis redémarrer OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Échec de l’initialisation du récepteur vidéo GStreamer natif sous Wayland. Veuillez vérifier l’installation de votre plugin GStreamer GTK." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Windows Media Player est nécessaire pour cette tâche ! Voulez-vous activer ‘Windows Media Player’ pour votre système d’exploitation ?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource n’a pas été correctement enregistré pour la lecture de médias ! Appuyez sur Oui pour le réenregistrer. Vous recevrez deux fois la demande de permission" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Composant BambuSource manquant pour la lecture multimédia ! Veuillez réinstaller OrcaSlicer ou demander de l'aide à la communauté." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Si vous utilisez une BambuSource provenant d’une autre installation, la lecture de la vidéo peut ne pas fonctionner correctement ! Appuyez sur Oui pour résoudre le problème." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Il manque à votre système les codecs H.264 pour GStreamer, qui sont nécessaires pour lire la vidéo. (Essayez d’installer les paquets gstreamer1.0-plugins-bad ou gstreamer1.0-libav, puis redémarrez Orca Slicer)." + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Économie de filament" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 1dbfe0b1b7..a15d471073 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2948,6 +2948,10 @@ msgstr "Szerkesztés" msgid "Merge with" msgstr "Egyesítés ezzel" +# AI Translated +msgid "Decompose Color" +msgstr "Szín szétbontása" + msgid "Delete this filament" msgstr "Filament törlése" @@ -3247,6 +3251,10 @@ msgstr "Összeállítás" msgid "Merge parts to an object" msgstr "Tárgyak egyesítése egy objektummá" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "A változó rétegmagasság és a kevert színű alréteg együttes használata ronthatja a színkeverés minőségét." + # AI Translated msgid "Add layers" msgstr "Rétegek hozzáadása" @@ -7847,6 +7855,10 @@ msgstr "Aktuális tálca testreszabása" msgid "The %s nozzle can not print %s." msgstr "A(z) %s fúvóka nem tudja nyomtatni ezt: %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "A kevert színű filament nyomtatása egyextruderes nyomtatón gyakori filamentcserét és öblítést igényel, ami jelentősen növelheti a hulladék mennyiségét, valamint a fúvóka vagy a hulladékcsúszda eltömődésének kockázatát." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "A(z) %1% és %2% keverése nyomtatás közben nem ajánlott.\n" @@ -7972,12 +7984,44 @@ msgstr "Filamentlista szinkronizálása az AMS-ből" msgid "Set filaments to use" msgstr "Használni kívánt filament beállítása" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Kevert filament hozzáadása" + +# AI Translated +msgid "Mixed Filament" +msgstr "Kevert filament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Utolsó kevert filament eltávolítása" + +# AI Translated +msgid "Add mixed filament" +msgstr "Kevert filament hozzáadása" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "A kevert filament érvénytelen vagy nem egyező összetevőket tartalmaz. Szerkessze újra az érintett bejegyzéseket." + msgid "Search plate, object and part." msgstr "Tálca, objektum és tárgy keresése." msgid "Pellets" msgstr "Pelletek" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "A kevert filament hibás összetevő-hivatkozásokat tartalmaz" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Szerkesztés / Törlés / Egyesítés" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "A cél kevert filament ezt a fizikai filamentet használja összetevőként. Az egyesítés eltávolítja ezt a fizikai filamentet, és a kevert filament érvénytelenné válhat. Folytatja?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "A művelet befejezésekor a(z) %s projekt bezárul, majd új projekt jön létre." @@ -8160,6 +8204,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Több részből álló objektum észlelve" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Textúrák hozzárendelése a filamentekhez" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Textúraimportálási figyelmeztetés" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Betöltöd ezeket a fájlokat több részből álló egyetlen objektumként?\n" @@ -8371,6 +8423,22 @@ msgstr "" msgid "Sync now" msgstr "Szinkronizálás most" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "A textúra importálása sikertelen. Úgy tűnik, hogy a modell textúraadatokat tartalmaz, de az importálási folyamatot nem sikerült befejezni. A modell csak geometriaként lesz importálva." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Textúraszínek alkalmazása..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D nézet frissítése..." + +# AI Translated +msgid "Texture colors applied." +msgstr "A textúraszínek alkalmazva." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Megtarthatod az új projekt módosított beállításait, vagy elvetheted őket" @@ -9633,6 +9701,10 @@ msgstr "Spirál (váza)" msgid "First layer filament sequence" msgstr "Kezdőréteg filament sorrendje" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "A filamentlista kevert filamenteket tartalmaz. Az egyéni filamentsorrend nem lép érvénybe." + # AI Translated msgid "By Layer" msgstr "Rétegenként" @@ -11552,27 +11624,6 @@ msgstr "Filamentcsere öblítési mennyisége" msgid "Please choose the filament colour" msgstr "Kérlek, válaszd ki a filament színét" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "A natív Wayland élőképhez a GStreamer GTK videonyelő szükséges. Telepítsd a gtksink beépülő modult a GStreamerhez, majd indítsd újra az OrcaSlicert." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Nem sikerült inicializálni a natív Wayland GStreamer videonyelőt. Ellenőrizd a GStreamer GTK bővítmény telepítését." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Ehhez a művelethez Windows Media Player szükséges. Szeretnéd engedélyezni a \"Windows Media Player\"-t az operációs rendszerben?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "A BambuSource nincs megfelelően regisztrálva médialejátszáshoz. Kattints az Igen gombra az újbóli regisztráláshoz. Kétszer kapsz majd megerősítési kérést." - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "A médialejátszáshoz szükséges BambuSource-összetevő hiányzik. Kérlek, telepítsd újra az OrcaSlicert, vagy kérj segítséget a közösségtől." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Ha egy másik telepítésből származó BambuSource van használatban, előfordulhat, hogy a videólejátszás nem működik megfelelően. Kattints az Igen gombra a javításhoz." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "A rendszerből hiányoznak a GStreamer H.264 kodekjei, amelyek szükségesek a videolejátszáshoz. (Próbáld telepíteni a gstreamer1.0-plugins-bad vagy a gstreamer1.0-libav csomagokat, majd indítsd újra az Orca Slicert.)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "A felhőszolgáltatás nem érhető el. Indítsd újra az OrcaSlicert, majd próbáld újra." @@ -12282,6 +12333,10 @@ msgstr "Ha továbbra is szeretnél nyomtatni, engedélyezheted az opciót itt: B msgid "No extrusions under current settings." msgstr "A jelenlegi beállításokkal nincsenek extrudálások." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Színátmenetes kevert filament van használatban, de a 'Kevert színű alréteg' ki van kapcsolva. A színátmenet nem lesz kinyomtatva." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "A sima Timelapse nem használható, ha a nyomtatási sorrend \"Tárgyanként\"." @@ -12318,6 +12373,10 @@ msgstr "Próbáld meg csökkenteni a modell méretét vagy módosítani a jelenl msgid "Variable layer height is not supported with Organic supports." msgstr "A változó rétegmagasság nem működik az organikus támaszokkal." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "A törlőtorony filamentje nem lehet kevert filament." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Eltérő fúvókaátmérők és eltérő filamentátmérők mellett a törlőtorony nem biztos, hogy megfelelően működik. Ez nagyon kísérleti funkció, ezért körültekintően használd." @@ -14063,6 +14122,8 @@ msgstr "Rétegidő" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "A tárgyhűtő ventilátor azon rétegek esetében lesz engedélyezve, amelyek becsült ideje rövidebb ennél az értéknél. A ventilátor fordulatszáma a rétegnyomtatási időnek megfelelően skálázódik a minimális és maximális ventilátor fordulatszám között" +# AI Translated +msgctxt "second" msgid "s" msgstr "mp" @@ -14370,6 +14431,62 @@ msgstr "Támaszanyag" msgid "Support material is commonly used to print supports and support interfaces." msgstr "A támaszanyagot általában a támaszok és azok érintkező felületeinek nyomtatására használják." +# AI Translated +msgid "Is mixed filament" +msgstr "Kevert filament-e" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Megadja, hogy ez a filamenthely több fizikai filamentből álló kevert filament-e" + +# AI Translated +msgid "Mixed filament components" +msgstr "Kevert filament összetevői" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Az összetevő filamentek vesszővel elválasztott, 1-től induló indexei, pl. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Kevert filament alréteg-arányai" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Vesszővel elválasztott arányértékek, amelyek összege 1.0, pl. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Kevert filament színátmenete" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Bekapcsolja a Z irányú színátmenet módot a kevert filament alrétegeihez. Bekapcsolva az alrétegek arányai lineárisan változnak a rétegek mentén." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Kevert filament színátmenetének tartománya" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Az első összetevő kezdő és záró aránya színátmenet módban. Vesszővel elválasztott számpár, pl. a \"0.10,0.90\" 10%-tól 90%-ig tartót jelent." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Kevert filament színátmenet-görbéje" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Opcionális, Photoshop stílusú egyéni görbe, amely a Z irányú haladást az első összetevő arányához rendeli. Függőleges vonallal elválasztott vezérlőpontokként van kódolva, \"x,y\" (régi) vagy \"x,y,m_in,m_out\" formában, ha az érintő felülbírálására van szükség (üres érték vagy \"nan\" esetén a PCHIP alapértelmezés érvényes). x a [0,1] tartományban van; y a beállított aránytartományra van korlátozva, pl. \"0,0.15|0.5,0.50|1,0.85\". Ha üresen marad, helyette a lineáris gradient_range kerül felhasználásra." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Kevert filament színátmenete tárgyanként" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Ha a színátmenet mód be van kapcsolva, a színátmenet az összeállítás minden tárgyára külön-külön érvényesül, ahelyett hogy az egész összeállítást egyetlen Z tartományként kezelné." + msgid "Filament printable" msgstr "Filament nyomtatható" @@ -15633,6 +15750,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Az Y tengely megengedett maximális kimeneti ereje" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15643,6 +15761,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Az Y tengely gépasztaltömeg-terhelése" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17233,6 +17352,14 @@ msgstr "" "\n" "Ha az alábbi \"visszahúzási mennyiség törlés előtt\" beállításban értéket adsz meg, akkor az esetleges többletvisszahúzás a törlés előtt történik meg, különben utána." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Kevert színű alréteg" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Bekapcsolja a kevert színű alrétegekre bontást. Bekapcsolva a kevert színű filamentet tartalmazó rétegek alrétegekre lesznek bontva a színkeverési hatás eléréséhez." + # AI Translated msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "A törlőtorony a fúvókán lévő maradék eltávolítására és a fúvóka belsejében lévő nyomás stabilizálására szolgál, hogy elkerülhetők legyenek a megjelenésbeli hibák az objektumok nyomtatásakor." @@ -18306,6 +18433,10 @@ msgstr "A modellfájl hálósítása sikertelen volt, vagy nincs érvényes alak msgid "The supplied file couldn't be read because it's empty." msgstr "A megadott fájl nem olvasható be, mert üres" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "A fájlformátum nem kompatibilis, ezért nem értelmezhető." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Ismeretlen fájlformátum. A bemeneti fájlnak .stl, .obj vagy .amf(.xml) kiterjesztésűnek kell lennie." @@ -20654,8 +20785,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Intelligens filament-hozzárendelés bekapcsolása: egy filament több fúvókához rendelése a megtakarítás maximalizálásához" # AI Translated -msgid "Fila Saving" -msgstr "Filamentmegtakarítás" +msgid "File Saving" +msgstr "Fájl mentése" msgid "Don't remind me again" msgstr "Ne emlékeztessen újra" @@ -21058,6 +21189,9 @@ msgstr "Újraindítás most" msgid "NO RAMMING AT ALL" msgstr "EGYÁLTALÁN NINCS TÖMÖRÍTÉS" +msgid "s" +msgstr "mp" + msgid "Volumetric speed" msgstr "Volumetrikus sebesség" @@ -21709,6 +21843,39 @@ msgstr "" "Kunkorodás elkerülése\n" "Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "A natív Wayland élőképhez a GStreamer GTK videonyelő szükséges. Telepítsd a gtksink beépülő modult a GStreamerhez, majd indítsd újra az OrcaSlicert." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Nem sikerült inicializálni a natív Wayland GStreamer videonyelőt. Ellenőrizd a GStreamer GTK bővítmény telepítését." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Ehhez a művelethez Windows Media Player szükséges. Szeretnéd engedélyezni a \"Windows Media Player\"-t az operációs rendszerben?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "A BambuSource nincs megfelelően regisztrálva médialejátszáshoz. Kattints az Igen gombra az újbóli regisztráláshoz. Kétszer kapsz majd megerősítési kérést." + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "A médialejátszáshoz szükséges BambuSource-összetevő hiányzik. Kérlek, telepítsd újra az OrcaSlicert, vagy kérj segítséget a közösségtől." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Ha egy másik telepítésből származó BambuSource van használatban, előfordulhat, hogy a videólejátszás nem működik megfelelően. Kattints az Igen gombra a javításhoz." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "A rendszerből hiányoznak a GStreamer H.264 kodekjei, amelyek szükségesek a videolejátszáshoz. (Próbáld telepíteni a gstreamer1.0-plugins-bad vagy a gstreamer1.0-libav csomagokat, majd indítsd újra az Orca Slicert.)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Filamentmegtakarítás" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index f9d31456bf..9af642f536 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2953,6 +2953,10 @@ msgstr "Modifica" msgid "Merge with" msgstr "Unisci con" +# AI Translated +msgid "Decompose Color" +msgstr "Scomponi colore" + msgid "Delete this filament" msgstr "Elimina questo filamento" @@ -3252,6 +3256,10 @@ msgstr "Assemblaggio" msgid "Merge parts to an object" msgstr "Unisci parti in un oggetto" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "L'uso dell'altezza strato variabile insieme al sottostrato di colore misto può ridurre la qualità della miscelazione dei colori." + # AI Translated msgid "Add layers" msgstr "Aggiungi strati" @@ -7851,6 +7859,10 @@ msgstr "Personalizza il piatto corrente" msgid "The %s nozzle can not print %s." msgstr "L'ugello %s non può stampare %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "La stampa di filamento a colore misto su una stampante a estrusore singolo richiede frequenti cambi di filamento e spurghi, il che può aumentare notevolmente gli scarti e il rischio di intasamento dell'ugello o dello scivolo di scarto." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Non è consigliato miscelare %1% con %2% nella stampa.\n" @@ -7976,12 +7988,44 @@ msgstr "Sincronizza l'elenco filamenti dall'AMS" msgid "Set filaments to use" msgstr "Imposta filamenti da usare" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Aggiungi filamento misto" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filamento misto" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Rimuovi l'ultimo filamento misto" + +# AI Translated +msgid "Add mixed filament" +msgstr "Aggiungi filamento misto" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Il filamento misto ha componenti non validi o incoerenti. Modificare nuovamente le voci interessate." + msgid "Search plate, object and part." msgstr "Cerca piatto, oggetto e parte." msgid "Pellets" msgstr "Granuli" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Il filamento misto ha riferimenti a componenti non validi" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Modifica / Elimina / Unisci" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Il filamento misto di destinazione utilizza questo filamento fisico come componente. L'unione rimuoverà questo filamento fisico e potrebbe invalidare il filamento misto. Continuare?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Al completamento dell'operazione, il progetto %s verrà chiuso e ne verrà creato uno nuovo." @@ -8161,6 +8205,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Rilevato oggetto in più parti" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Associazione delle trame ai filamenti" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Avviso di importazione trama" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Caricare questi file come un singolo oggetto con più parti?\n" @@ -8371,6 +8423,22 @@ msgstr "" msgid "Sync now" msgstr "Sincronizza ora" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Importazione della trama non riuscita. Il modello sembra contenere dati di trama, ma non è stato possibile completare il processo di importazione. Il modello verrà importato solo come geometria." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Applicazione dei colori della trama..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Aggiornamento della vista 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Colori della trama applicati." + msgid "You can keep the modified presets for the new project or discard them" msgstr "È possibile conservare i profili modificati per il nuovo progetto o scartarli" @@ -9654,6 +9722,10 @@ msgstr "Vaso a spirale" msgid "First layer filament sequence" msgstr "Sequenza filamenti primo strato" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "L'elenco dei filamenti contiene filamenti misti. La sequenza di filamenti personalizzata non avrà effetto." + msgid "By Layer" msgstr "Per strato" @@ -11571,27 +11643,6 @@ msgstr "Volumi di spurgo per cambio filamento" msgid "Please choose the filament colour" msgstr "Scegliere il colore del filamento" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "La funzione di visualizzazione in tempo reale nativa di Wayland richiede il ricevitore video GTK di GStreamer. Installare il modulo gtksink per GStreamer e riavviare OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Impossibile inizializzare il ricevitore video nativo di Wayland GStreamer. Verificare l'installazione del modulo GTK di GStreamer." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Per questa operazione è necessario Windows Media Player! Desideri abilitare 'Windows Media Player' sul il tuo sistema operativo?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource non è stato registrato correttamente per la riproduzione multimediale! Fare clic su Sì per effettuare nuovamente la registrazione. Sarai promosso due volte" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Componente BambuSource mancante per la riproduzione multimediale! Reinstallare OrcaSlicer o cercare aiuto nella comunità." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "È in uso una versione di BambuSource da un'installazione diversa. La riproduzione video potrebbe non funzionare correttamente! Fare clic su Sì per risolvere il problema." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Nel tuo sistema mancano i codec H.264 per GStreamer, necessari per riprodurre i video. (Provare a installare i pacchetti gstreamer1.0-plugins-bad o gstreamer1.0-libav e riavviare OrcaSlicer?)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Il fornitore di servizi cloud non è disponibile. Riavviare OrcaSlicer e riprovare." @@ -12303,6 +12354,10 @@ msgstr "Se desideri comunque stampare, puoi abilitare l'opzione in Preferenze / msgid "No extrusions under current settings." msgstr "Nessuna estrusione con le impostazioni attuali." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "È in uso un filamento misto con gradiente, ma 'Sottostrato di colore misto' è disattivato. Il gradiente non verrà stampato." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "La modalità fluida del timelapse non è supportata quando è abilitata la sequenza \"Per oggetto\"." @@ -12339,6 +12394,10 @@ msgstr "È possibile ridurre le dimensioni del modello o modificare le impostazi msgid "Variable layer height is not supported with Organic supports." msgstr "Altezza strato adattiva non è compatibile con i Supporti organici." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Il filamento della torre di spurgo non può essere un filamento misto." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Ugelli e filamenti di diverso diametro potrebbero non funzionare correttamente quando è abilitata la torre di spurgo. Questa funzione è sperimentale, quindi procedere con cautela." @@ -14082,6 +14141,8 @@ msgstr "Durata strato" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "La ventola di raffreddamento verrà attivata per gli strati in cui il tempo stimato è inferiore a questo valore. La velocità della ventola varierà tra la velocità minima e massima in base alla durata stimata di stampa dello strato." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14388,6 +14449,62 @@ msgstr "Materiale di supporto" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Il materiale di supporto viene comunemente utilizzato per stampare supporti e interfacce di supporto." +# AI Translated +msgid "Is mixed filament" +msgstr "È filamento misto" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Indica se questo slot di filamento è un filamento misto composto da più filamenti fisici" + +# AI Translated +msgid "Mixed filament components" +msgstr "Componenti del filamento misto" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Indici (a partire da 1) dei filamenti componenti, separati da virgole; es. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Proporzioni dei sottostrati del filamento misto" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Valori di proporzione separati da virgole la cui somma sia 1.0; es. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradiente del filamento misto" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Attiva la modalità gradiente in direzione Z per i sottostrati del filamento misto. Se attivata, le proporzioni dei sottostrati variano linearmente tra gli strati." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Intervallo del gradiente del filamento misto" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Proporzioni iniziale e finale del primo componente in modalità gradiente. Coppia separata da virgola; es. \"0.10,0.90\" significa dal 10% al 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Curva del gradiente del filamento misto" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Curva personalizzata opzionale, in stile Photoshop, che mappa l'avanzamento in Z sulla proporzione del primo componente. Codificata come punti di controllo separati da barre verticali, nel formato \"x,y\" (legacy) oppure \"x,y,m_in,m_out\" quando è necessario forzare la tangente (un valore vuoto o \"nan\" usa il valore PCHIP predefinito). x è compreso in [0,1]; y viene limitato all'intervallo di proporzioni configurato; es. \"0,0.15|0.5,0.50|1,0.85\". Se vuoto, viene usato il gradient_range lineare." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradiente per parte del filamento misto" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Quando la modalità gradiente è attiva, applica il gradiente a ciascuna parte di un assemblaggio in modo indipendente anziché trattare l'intero assemblaggio come un unico intervallo Z." + msgid "Filament printable" msgstr "Filamento stampabile" @@ -15655,6 +15772,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "La forza di uscita massima consentita dell'asse Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15665,6 +15783,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Il carico di massa del piano della macchina sull'asse Y" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17258,6 +17377,14 @@ msgstr "" "\n" "Impostando un valore di quantità di retrazione prima dell'impostazione di spurgo di seguito, verra eseguita qualsiasi retrazione in eccesso prima dello spurgo. Altrimenti verrà eseguita dopo." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Sottostrato di colore misto" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Attiva la suddivisione in sottostrati di colore misto. Se attivata, gli strati che contengono filamenti a colore misto vengono suddivisi in sottostrati per ottenere effetti di miscelazione dei colori." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "La torre di spurgo può essere utilizzata per pulire i residui presenti sull'ugello e stabilizzare la pressione della camera all'interno dell'ugello, al fine di evitare difetti estetici durante la stampa." @@ -18329,6 +18456,10 @@ msgstr "La generazione della mesh del file del modello è fallita o la forma non msgid "The supplied file couldn't be read because it's empty." msgstr "Impossibile leggere il file fornito perché è vuoto" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Il formato del file non è compatibile e non può essere interpretato." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Formato file sconosciuto: il file di input deve avere un'estensione .stl, .obj o .amf(.xml)." @@ -20672,8 +20803,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Abilita l'assegnazione intelligente del filamento: assegna un filamento a più ugelli per massimizzare il risparmio" # AI Translated -msgid "Fila Saving" -msgstr "Risparmio filamento" +msgid "File Saving" +msgstr "Salvataggio file" msgid "Don't remind me again" msgstr "Non ricordarmelo più" @@ -21082,6 +21213,9 @@ msgstr "Riavvia ora" msgid "NO RAMMING AT ALL" msgstr "NESSUNA SPINTA" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Velocità volumetrica" @@ -21733,6 +21867,39 @@ msgstr "" "Evita le deformazioni\n" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "La funzione di visualizzazione in tempo reale nativa di Wayland richiede il ricevitore video GTK di GStreamer. Installare il modulo gtksink per GStreamer e riavviare OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Impossibile inizializzare il ricevitore video nativo di Wayland GStreamer. Verificare l'installazione del modulo GTK di GStreamer." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Per questa operazione è necessario Windows Media Player! Desideri abilitare 'Windows Media Player' sul il tuo sistema operativo?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource non è stato registrato correttamente per la riproduzione multimediale! Fare clic su Sì per effettuare nuovamente la registrazione. Sarai promosso due volte" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Componente BambuSource mancante per la riproduzione multimediale! Reinstallare OrcaSlicer o cercare aiuto nella comunità." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "È in uso una versione di BambuSource da un'installazione diversa. La riproduzione video potrebbe non funzionare correttamente! Fare clic su Sì per risolvere il problema." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Nel tuo sistema mancano i codec H.264 per GStreamer, necessari per riprodurre i video. (Provare a installare i pacchetti gstreamer1.0-plugins-bad o gstreamer1.0-libav e riavviare OrcaSlicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Risparmio filamento" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 9c819dd7c1..8ee8813f1d 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2969,6 +2969,10 @@ msgstr "編集" msgid "Merge with" msgstr "結合" +# AI Translated +msgid "Decompose Color" +msgstr "色を分解" + msgid "Delete this filament" msgstr "このフィラメントを削除" @@ -3266,6 +3270,10 @@ msgstr "アセンブリ" msgid "Merge parts to an object" msgstr "パーツをオブジェクトに結合" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "可変積層ピッチと混色サブレイヤーを併用すると、混色の品質が低下する場合があります。" + # AI Translated msgid "Add layers" msgstr "積層を追加" @@ -7859,6 +7867,10 @@ msgstr "現在のプレートをカスタマイズ" msgid "The %s nozzle can not print %s." msgstr "%sノズルは%sを印刷できません。" +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "単一押出機のプリンターで混色フィラメントを印刷すると、フィラメント交換とフラッシュが頻繁に発生し、廃材やノズル/廃棄シュートの詰まりのリスクが大幅に増加する可能性があります。" + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "%1%と%2%を混合して印刷することは推奨されません。\n" @@ -7984,12 +7996,44 @@ msgstr "AMSと素材を同期" msgid "Set filaments to use" msgstr "フィラメントを選択" +# AI Translated +msgid "Add Mixed Filament" +msgstr "混合フィラメントを追加" + +# AI Translated +msgid "Mixed Filament" +msgstr "混合フィラメント" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "最後の混合フィラメントを削除" + +# AI Translated +msgid "Add mixed filament" +msgstr "混合フィラメントを追加" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "混合フィラメントのコンポーネントが無効か一致していません。該当する項目を編集し直してください。" + msgid "Search plate, object and part." msgstr "プレート、オブジェクト、パーツを検索。" msgid "Pellets" msgstr "ペレット" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "混合フィラメントのコンポーネント参照が壊れています" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "編集 / 削除 / 結合" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "対象の混合フィラメントはこの物理フィラメントをコンポーネントとして使用しています。結合するとこの物理フィラメントは削除され、混合フィラメントが無効になる可能性があります。続行しますか?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "操作完了後、%sプロジェクトが閉じられ、新しいプロジェクトが作成されます。" @@ -8176,6 +8220,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "マルチパーツ検出" +# AI Translated +msgid "Matching textures to filaments" +msgstr "テクスチャをフィラメントに対応付けています" + +# AI Translated +msgid "Texture Import Warning" +msgstr "テクスチャインポートの警告" + msgid "Load these files as a single object with multiple parts?\n" msgstr "これらのファイルを一つのオブジェクトとしてロードしますか?\n" @@ -8389,6 +8441,22 @@ msgstr "" msgid "Sync now" msgstr "今すぐ同期" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "テクスチャのインポートに失敗しました。モデルにテクスチャデータが含まれているようですが、インポート処理を完了できませんでした。モデルはジオメトリのみとしてインポートされます。" + +# AI Translated +msgid "Applying texture colors..." +msgstr "テクスチャの色を適用しています..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3Dビューを更新しています..." + +# AI Translated +msgid "Texture colors applied." +msgstr "テクスチャの色を適用しました。" + msgid "You can keep the modified presets for the new project or discard them" msgstr "変更したプリセットをプロジェクト内に保存するか、破棄もできます" @@ -9676,6 +9744,10 @@ msgstr "スパイラル" msgid "First layer filament sequence" msgstr "初期レイヤーフィラメント順序" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "フィラメントリストに混合フィラメントが含まれています。カスタムフィラメント順序は適用されません。" + msgid "By Layer" msgstr "レイヤー別" @@ -11591,33 +11663,6 @@ msgstr "フィラメントを入替える為のフラッシュ量" msgid "Please choose the filament colour" msgstr "フィラメントの色を選択してください" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "ネイティブWaylandのライブビューにはGStreamer GTKビデオシンクが必要です。GStreamer用のgtksinkプラグインをインストールし、OrcaSlicerを再起動してください。" - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "ネイティブWaylandのGStreamerビデオシンクの初期化に失敗しました。GStreamer GTKプラグインのインストール状況をご確認ください。" - -# AI Translated -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "このタスクにはWindows Media Playerが必要です!お使いのOSで「Windows Media Player」を有効にしますか?" - -# AI Translated -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "メディア再生用のBambuSourceが正しく登録されていません!「はい」を押して再登録してください。確認が2回表示されます" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "メディア再生用のBambuSourceコンポーネントが見つかりません!OrcaSlicerを再インストールするかコミュニティに助けを求めてください。" - -# AI Translated -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "別のインストール環境のBambuSourceを使用しているため、動画が正しく再生されない可能性があります!「はい」を押して修正してください。" - -# AI Translated -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "お使いのシステムには、動画再生に必要なGStreamer用のH.264コーデックがありません。(gstreamer1.0-plugins-badまたはgstreamer1.0-libavパッケージをインストールし、Orca Slicerを再起動してみてください)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "クラウドエージェントが利用できません。OrcaSlicerを再起動して再試行してください。" @@ -12343,6 +12388,10 @@ msgstr "それでも印刷する場合は、環境設定 / 制御 / スライス msgid "No extrusions under current settings." msgstr "現在の設定では造形しません" +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "グラデーション付きの混合フィラメントが使用されていますが、「混色サブレイヤー」が無効です。グラデーションは印刷されません。" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "オブジェクト順で造形するでは、この機能を使用できません。" @@ -12379,6 +12428,10 @@ msgstr "モデルのサイズを小さくするか、現在のプリント設定 msgid "Variable layer height is not supported with Organic supports." msgstr "可変レイヤー高さはオーガニックサポートではサポートされていません。" +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "ワイプタワーのフィラメントに混合フィラメントは使用できません。" + # AI Translated msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "ノズル径やフィラメント径が異なる場合、プライムタワーを有効にすると正しく動作しないことがあります。非常に実験的な機能ですので、慎重にお進みください。" @@ -12756,29 +12809,23 @@ msgstr "mm 或は %" msgid "Other layers" msgstr "他の層" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "1層目を除く各層のベッド温度です。0の場合、そのフィラメントはCool Plate SuperTackでの印刷に対応していません。" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントが常温プレートで使用できないという意味です。" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "1層目を除く各層のベッド温度です。0の場合、そのフィラメントはTextured Cool Plateでの印刷に対応していません。" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントがエンジニアリング プレートで使用できないという意味です。" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "ベッドの温度です(1層目以外)。値が0の場合、フィラメントが高温プレートで使用できないという意味です。" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." -msgstr "1層目以外のベッド温度。値が0の場合、フィラメントがPEIプレートをサポートしない意味をします。" +msgstr "1層目を除く各層のベッド温度です。0の場合、そのフィラメントはTextured PEI Plateでの印刷に対応していません。" msgid "First layer" msgstr "1層目" @@ -14204,6 +14251,8 @@ msgstr "積層時間" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "パーツ冷却ファンは、積層造形時間がこの値より短い時に作動します。" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14522,6 +14571,62 @@ msgstr "サポート材料" msgid "Support material is commonly used to print supports and support interfaces." msgstr "サポート素材は、サポート又はサポート接触面の造形によく使われます。" +# AI Translated +msgid "Is mixed filament" +msgstr "混合フィラメントかどうか" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "このフィラメントスロットが複数の物理フィラメントで構成される混合フィラメントかどうか" + +# AI Translated +msgid "Mixed filament components" +msgstr "混合フィラメントのコンポーネント" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "構成フィラメントの番号(1 始まり)をカンマ区切りで指定します。例: \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "混合フィラメントのサブレイヤー比率" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "合計が 1.0 になる比率をカンマ区切りで指定します。例: \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "混合フィラメントのグラデーション" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "混合フィラメントのサブレイヤーに対して Z 方向のグラデーションモードを有効にします。有効にすると、サブレイヤーの比率が積層ごとに直線的に変化します。" + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "混合フィラメントのグラデーション範囲" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "グラデーションモードにおける最初のコンポーネントの開始比率と終了比率。カンマ区切りの 2 つの値で指定します。例: \"0.10,0.90\" は 10% から 90% を意味します。" + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "混合フィラメントのグラデーションカーブ" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Z 方向の進行度を最初のコンポーネントの比率に対応付ける、Photoshop 風のカスタムカーブ(省略可)。制御点を縦棒区切りでエンコードし、\"x,y\"(旧形式)または接線を上書きする場合は \"x,y,m_in,m_out\" の形式で指定します(空欄または \"nan\" は PCHIP の既定値を使用します)。x は [0,1] の範囲で、y は設定された比率範囲に制限されます。例: \"0,0.15|0.5,0.50|1,0.85\"。空欄の場合は線形の gradient_range が使用されます。" + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "混合フィラメントのパーツ別グラデーション" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "グラデーションモードが有効な場合、アセンブリ全体を 1 つの Z 範囲として扱うのではなく、アセンブリ内の各パーツに個別にグラデーションを適用します。" + msgid "Filament printable" msgstr "フィラメント印刷可能" @@ -15898,6 +16003,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Y軸の許容最大出力" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15908,6 +16014,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Y軸のマシンベッド質量" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17637,6 +17744,14 @@ msgstr "" "\n" "下の「ワイプ前のリトラクション量」設定に値を設定すると、超過分のリトラクションはワイプの前に行われます。それ以外の場合はワイプの後に行われます。" +# AI Translated +msgid "Mixed color sublayer" +msgstr "混色サブレイヤー" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "混色サブレイヤーへの分割を有効にします。有効にすると、混色フィラメントを含む積層がサブレイヤーに分割され、色を混ぜる効果が得られます。" + # AI Translated msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "ワイプタワーは、ノズルに残った樹脂を除去し、ノズル内のチャンバー圧力を安定させることで、オブジェクト印刷時の外観不良を防ぐために使用できます。" @@ -18808,6 +18923,10 @@ msgstr "モデルファイルのメッシュ処理に失敗したか、有効な msgid "The supplied file couldn't be read because it's empty." msgstr "提供されたファイルは空であるため読み込めませんでした。" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "ファイル形式に互換性がないため、解析できません。" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "ファイル形式が不明です。入力ファイルの拡張子は .stl、.obj、.amf(.xml)である必要があります。" @@ -21230,8 +21349,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "スマートフィラメント割り当てを有効にする: 1つのフィラメントを複数のノズルに割り当てて節約を最大化します" # AI Translated -msgid "Fila Saving" -msgstr "フィラ節約" +msgid "File Saving" +msgstr "ファイル保存" msgid "Don't remind me again" msgstr "再度通知しない" @@ -21638,6 +21757,9 @@ msgstr "今すぐ再起動" msgid "NO RAMMING AT ALL" msgstr "ラミングなし" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "体積速度" @@ -22300,6 +22422,45 @@ msgstr "" "反りを避ける\n" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "ネイティブWaylandのライブビューにはGStreamer GTKビデオシンクが必要です。GStreamer用のgtksinkプラグインをインストールし、OrcaSlicerを再起動してください。" + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "ネイティブWaylandのGStreamerビデオシンクの初期化に失敗しました。GStreamer GTKプラグインのインストール状況をご確認ください。" + +# AI Translated +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "このタスクにはWindows Media Playerが必要です!お使いのOSで「Windows Media Player」を有効にしますか?" + +# AI Translated +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "メディア再生用のBambuSourceが正しく登録されていません!「はい」を押して再登録してください。確認が2回表示されます" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "メディア再生用のBambuSourceコンポーネントが見つかりません!OrcaSlicerを再インストールするかコミュニティに助けを求めてください。" + +# AI Translated +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "別のインストール環境のBambuSourceを使用しているため、動画が正しく再生されない可能性があります!「はい」を押して修正してください。" + +# AI Translated +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "お使いのシステムには、動画再生に必要なGStreamer用のH.264コーデックがありません。(gstreamer1.0-plugins-badまたはgstreamer1.0-libavパッケージをインストールし、Orca Slicerを再起動してみてください)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "フィラ節約" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 61d785ef2e..c415c90195 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz <crwusiz@gmail.com>\n" "Language-Team: \n" @@ -2970,6 +2970,10 @@ msgstr "편집" msgid "Merge with" msgstr "병합" +# AI Translated +msgid "Decompose Color" +msgstr "색상 분해" + msgid "Delete this filament" msgstr "이 필라멘트 삭제" @@ -3266,6 +3270,10 @@ msgstr "조립" msgid "Merge parts to an object" msgstr "부품을 하나의 객체로 병합" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "가변 레이어 높이를 혼색 서브레이어와 함께 사용하면 색상 혼합 품질이 떨어질 수 있습니다." + # AI Translated msgid "Add layers" msgstr "레이어 추가" @@ -7871,6 +7879,10 @@ msgstr "사용자 정의 플레이트" msgid "The %s nozzle can not print %s." msgstr "%s 노즐은 %s 을 인쇄할 수 없습니다." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "단일 압출기 프린터에서 혼색 필라멘트를 출력하면 필라멘트 교체와 플러시가 자주 발생하여 낭비되는 재료와 노즐 / 폐기물 슈트 막힘 위험이 크게 늘어날 수 있습니다." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "%1%와 %2% 혼합 출력을 권장하지 않습니다.\n" @@ -7997,12 +8009,44 @@ msgstr "AMS에서 필라멘트 목록 동기화" msgid "Set filaments to use" msgstr "사용할 필라멘트 설정" +# AI Translated +msgid "Add Mixed Filament" +msgstr "혼합 필라멘트 추가" + +# AI Translated +msgid "Mixed Filament" +msgstr "혼합 필라멘트" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "마지막 혼합 필라멘트 제거" + +# AI Translated +msgid "Add mixed filament" +msgstr "혼합 필라멘트 추가" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "혼합 필라멘트의 구성 요소가 잘못되었거나 일치하지 않습니다. 해당 항목을 다시 편집하세요." + msgid "Search plate, object and part." msgstr "플레이트, 객체 및 부품을 검색합니다." msgid "Pellets" msgstr "펠릿" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "혼합 필라멘트의 구성 요소 참조가 손상되었습니다" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "편집 / 삭제 / 병합" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "대상 혼합 필라멘트가 이 물리 필라멘트를 구성 요소로 사용합니다. 병합하면 이 물리 필라멘트가 제거되어 혼합 필라멘트가 무효가 될 수 있습니다. 계속할까요?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "작업을 완료하면 %s 프로젝트가 닫히고 새 프로젝트가 만들어집니다." @@ -8195,6 +8239,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "여러 부품으로 구성된 객체 감지됨" +# AI Translated +msgid "Matching textures to filaments" +msgstr "텍스처를 필라멘트에 매칭하는 중" + +# AI Translated +msgid "Texture Import Warning" +msgstr "텍스처 가져오기 경고" + msgid "Load these files as a single object with multiple parts?\n" msgstr "이 파일을 여러 부품이 있는 단일 객체로 로드하시겠습니까?\n" @@ -8423,6 +8475,22 @@ msgstr "" msgid "Sync now" msgstr "지금 동기화" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "텍스처 가져오기에 실패했습니다. 모델에 텍스처 데이터가 포함된 것으로 보이지만 텍스처 가져오기 과정을 완료하지 못했습니다. 모델은 형상만 가져옵니다." + +# AI Translated +msgid "Applying texture colors..." +msgstr "텍스처 색상 적용 중..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D 뷰 업데이트 중..." + +# AI Translated +msgid "Texture colors applied." +msgstr "텍스처 색상이 적용되었습니다." + msgid "You can keep the modified presets for the new project or discard them" msgstr "수정된 사전 설정을 새 프로젝트에 유지하거나 삭제할 수 있습니다" @@ -9766,6 +9834,10 @@ msgstr "나선형 꽃병 모드" msgid "First layer filament sequence" msgstr "첫 번째 레이어 필라멘트 순서" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "필라멘트 목록에 혼합 필라멘트가 있습니다. 사용자 지정 필라멘트 순서는 적용되지 않습니다." + msgid "By Layer" msgstr "레이어별" @@ -11723,30 +11795,6 @@ msgstr "필라멘트 교체를 위한 버리기 볼륨" msgid "Please choose the filament colour" msgstr "필라멘트 색상을 선택하세요" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "네이티브 Wayland 실시간 보기에는 GStreamer GTK 비디오 싱크가 필요합니다. GStreamer용 gtksink 플러그인을 설치한 후 OrcaSlicer를 다시 시작하십시오." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "네이티브 Wayland GStreamer 비디오 싱크를 초기화하지 못했습니다. GStreamer GTK 플러그인 설치 상태를 확인하십시오." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "이 작업에는 Windows Media Player가 필요합니다! 운영 체제에서 Windows Media Player를 활성화하시겠습니까?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "뱀부소스가 미디어 재생에 올바르게 등록되지 않았습니다! 다시 등록하려면 예를 누르세요. 두 번 승격됩니다" - -# AI Translated -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "미디어 재생용으로 등록된 BambuSource 구성 요소가 없습니다! OrcaSlicer를 다시 설치하거나 커뮤니티에 도움을 요청하십시오." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "다른 설치 버전의 뱀부소스를 사용하면 동영상 재생이 제대로 작동하지 않을 수 있습니다! 예를 눌러 문제를 해결하세요." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "시스템에 동영상 재생을 위해 필요한 GStreamer용 H.264 코덱이 존재하지 않습니다. (gstreamer1.0-plugins-bad 또는 gstreamer1.0-libav 패키지를 설치한 다음 Orca Slicer를 다시 실행하십시오.)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "클라우드 에이전트를 사용할 수 없습니다. OrcaSlicer를 다시 시작한 후 다시 시도하십시오." @@ -12475,6 +12523,10 @@ msgstr "그래도 출력하려면 기본 설정 / 제어 / 슬라이싱 / 혼합 msgid "No extrusions under current settings." msgstr "현재 설정에 압출기가 없습니다." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "그라데이션 혼합 필라멘트가 사용 중이지만 '혼색 서브레이어'가 비활성화되어 있습니다. 그라데이션은 출력되지 않습니다." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "타임랩스의 유연 모드는 \"객체별\" 출력순서가 활성화된 경우 지원되지 않습니다." @@ -12513,6 +12565,10 @@ msgstr "모델 크기를 줄이거나 현재 출력 설정을 변경하고 다 msgid "Variable layer height is not supported with Organic supports." msgstr "유기체 서포트에서는 가변 레이어 높이가 지원되지 않습니다." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "프라임 타워 필라멘트는 혼합 필라멘트일 수 없습니다." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "프라임 타워를 활성화하면 노즐 직경과 필라멘트 직경이 다르면 제대로 작동하지 않을 수 있습니다. 매우 실험적인 기능이므로 주의해서 사용하시기 바랍니다." @@ -12889,27 +12945,21 @@ msgstr "mm 또는 %" msgid "Other layers" msgstr "다른 레이어" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "초기 레이어를 제외한 레이어의 베드 온도입니다. 값이 0이면 해당 필라멘트가 쿨 플레이트 슈퍼택에서의 출력을 지원하지 않음을 의미합니다." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 쿨 플레이트 출력을 지원하지 않음을 의미합니다." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도입니다. 값 0은 필라멘트가 텍스처드 쿨 플레이트에서 출력를 지원하지 않음을 의미합니다." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 엔지니어링 플레이트 출력을 지원하지 않음을 의미합니다." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 고온 플레이트 출력을 지원하지 않음을 의미합니다." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "초기 레이어를 제외한 레이어의 베드 온도. 값 0은 필라멘트가 텍스처 PEI 플레이트 출력을 지원하지 않음을 의미합니다." @@ -14312,6 +14362,8 @@ msgstr "레이어 시간" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "예상 시간이 이 값보다 짧은 레이어에 대해 출력물 냉각 팬이 활성화됩니다. 팬 속도는 레이어 출력 시간에 따라 최소 및 최대 팬 속도 사이에서 보간됩니다" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14625,6 +14677,62 @@ msgstr "서포트 재료" msgid "Support material is commonly used to print supports and support interfaces." msgstr "서포트 재료는 일반적으로 서포트 및 서포트 접점을 출력하는 데 사용됩니다" +# AI Translated +msgid "Is mixed filament" +msgstr "혼합 필라멘트 여부" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "이 필라멘트 슬롯이 여러 물리 필라멘트로 구성된 혼합 필라멘트인지 여부" + +# AI Translated +msgid "Mixed filament components" +msgstr "혼합 필라멘트 구성 요소" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "구성 필라멘트의 1부터 시작하는 인덱스를 쉼표로 구분하여 입력합니다. 예: \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "혼합 필라멘트 서브레이어 비율" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "합이 1.0이 되는 비율 값을 쉼표로 구분하여 입력합니다. 예: \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "혼합 필라멘트 그라데이션" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "혼합 필라멘트 서브레이어에 대해 Z 방향 그라데이션 모드를 활성화합니다. 활성화하면 서브레이어 비율이 레이어에 따라 선형으로 변합니다." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "혼합 필라멘트 그라데이션 범위" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "그라데이션 모드에서 첫 번째 구성 요소의 시작 및 종료 비율입니다. 쉼표로 구분된 한 쌍이며, 예를 들어 \"0.10,0.90\"은 10%에서 90%를 의미합니다." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "혼합 필라멘트 그라데이션 곡선" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Z 진행도를 첫 번째 구성 요소의 비율에 매핑하는 선택적 Photoshop 스타일 사용자 지정 곡선입니다. 제어점을 세로줄로 구분하여 \"x,y\"(레거시) 또는 접선을 재정의해야 할 때는 \"x,y,m_in,m_out\" 형식으로 인코딩합니다(빈 값 또는 \"nan\"은 PCHIP 기본값을 사용). x는 [0,1] 범위이며, y는 설정된 비율 범위로 제한됩니다. 예: \"0,0.15|0.5,0.50|1,0.85\". 비워 두면 대신 선형 gradient_range가 사용됩니다." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "혼합 필라멘트 부품별 그라데이션" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "그라데이션 모드가 활성화되면 조립 전체를 하나의 Z 범위로 처리하지 않고 조립의 각 부품에 그라데이션을 개별적으로 적용합니다." + msgid "Filament printable" msgstr "필라멘트 출력 가능" @@ -15943,6 +16051,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Y축의 허용 최대 출력 힘" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15953,6 +16062,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Y축 장비 베드 질량 하중" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17584,6 +17694,14 @@ msgstr "" "\n" "아래의 와이프 전 후퇴량 설정에서 값을 설정하면 와이프 전에 초과 후퇴가 수행되고, 그렇지 않으면 와이프 후에 수행됩니다." +# AI Translated +msgid "Mixed color sublayer" +msgstr "혼색 서브레이어" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "혼색 서브레이어 분할을 활성화합니다. 활성화하면 혼색 필라멘트가 포함된 레이어가 서브레이어로 분할되어 색상 혼합 효과를 얻습니다." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "프라임 타워는 객체를 출력할 때 외관 결함을 방지하기 위해 노즐의 잔류물을 청소하고 노즐 내부의 압력을 안정화하는 데 사용할 수 있습니다." @@ -18687,6 +18805,10 @@ msgstr "모델 파일의 메싱이 실패했거나 유효한 형태가 없습니 msgid "The supplied file couldn't be read because it's empty." msgstr "제공된 파일이 비어 있어 읽을 수 없습니다" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "파일 형식이 호환되지 않아 해석할 수 없습니다." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "알 수 없는 파일 형식: 입력 파일의 확장자는 .stl, .obj 또는 .amf(.xml)여야 합니다." @@ -21080,8 +21202,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "스마트 필라멘트 할당 활성화: 하나의 필라멘트를 여러 노즐에 할당하여 절약을 극대화합니다" # AI Translated -msgid "Fila Saving" -msgstr "필라멘트 절약" +msgid "File Saving" +msgstr "파일 저장" msgid "Don't remind me again" msgstr "다시 알리지 마세요" @@ -21511,6 +21633,9 @@ msgstr "지금 다시 시작" msgid "NO RAMMING AT ALL" msgstr "채워넣기 전혀 없음" +msgid "s" +msgstr "s" + # AI Translated msgid "Volumetric speed" msgstr "압출 속도" @@ -22164,6 +22289,42 @@ msgstr "" "뒤틀림 방지\n" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "네이티브 Wayland 실시간 보기에는 GStreamer GTK 비디오 싱크가 필요합니다. GStreamer용 gtksink 플러그인을 설치한 후 OrcaSlicer를 다시 시작하십시오." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "네이티브 Wayland GStreamer 비디오 싱크를 초기화하지 못했습니다. GStreamer GTK 플러그인 설치 상태를 확인하십시오." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "이 작업에는 Windows Media Player가 필요합니다! 운영 체제에서 Windows Media Player를 활성화하시겠습니까?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "뱀부소스가 미디어 재생에 올바르게 등록되지 않았습니다! 다시 등록하려면 예를 누르세요. 두 번 승격됩니다" + +# AI Translated +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "미디어 재생용으로 등록된 BambuSource 구성 요소가 없습니다! OrcaSlicer를 다시 설치하거나 커뮤니티에 도움을 요청하십시오." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "다른 설치 버전의 뱀부소스를 사용하면 동영상 재생이 제대로 작동하지 않을 수 있습니다! 예를 눌러 문제를 해결하세요." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "시스템에 동영상 재생을 위해 필요한 GStreamer용 H.264 코덱이 존재하지 않습니다. (gstreamer1.0-plugins-bad 또는 gstreamer1.0-libav 패키지를 설치한 다음 Orca Slicer를 다시 실행하십시오.)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "필라멘트 절약" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index e1ce2f18b2..b3458ec0e4 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n" "Language-Team: \n" @@ -2936,6 +2936,10 @@ msgstr "Redaguoti" msgid "Merge with" msgstr "Sujungti su" +# AI Translated +msgid "Decompose Color" +msgstr "Išskaidyti spalvą" + msgid "Delete this filament" msgstr "Ištrinti šią giją" @@ -3237,6 +3241,10 @@ msgstr "Surinkimas" msgid "Merge parts to an object" msgstr "Sujungti dalis į objektą" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Kintamo sluoksnio aukščio naudojimas kartu su mišrios spalvos posluoksniu gali pabloginti spalvų maišymo kokybę." + # AI Translated msgid "Add layers" msgstr "Pridėti sluoksnių" @@ -7834,6 +7842,10 @@ msgstr "Individualizuoti esamą plokštę" msgid "The %s nozzle can not print %s." msgstr "%s purkštukas negali spausdinti %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Spausdinant mišrios spalvos giją vieno ekstruderio spausdintuvu reikia dažnai keisti giją ir pravalyti, todėl gali gerokai padidėti atliekų kiekis ir purkštuko arba atliekų latako užsikimšimo rizika." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "" @@ -7967,12 +7979,44 @@ msgstr "Sinchronizuoti gijų sąrašą iš AMS" msgid "Set filaments to use" msgstr "Nustatyti gijas naudojimui" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Pridėti mišrią giją" + +# AI Translated +msgid "Mixed Filament" +msgstr "Mišri gija" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Pašalinti paskutinę mišrią giją" + +# AI Translated +msgid "Add mixed filament" +msgstr "Pridėti mišrią giją" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Mišri gija turi netinkamų arba neatitinkančių komponentų. Iš naujo suredaguokite susijusius įrašus." + msgid "Search plate, object and part." msgstr "Plokštės, objekto ir dalies paieška." msgid "Pellets" msgstr "Granulės" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Mišri gija turi sugadintų komponentų nuorodų" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Redaguoti / Ištrinti / Sujungti" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Paskirties mišri gija naudoja šią fizinę giją kaip komponentą. Sujungus ši fizinė gija bus pašalinta ir mišri gija gali tapti netinkama. Tęsti?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Baigus šią operaciją, projektas „%s“ bus uždarytas ir bus sukurtas naujas projektas." @@ -8151,6 +8195,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Aptiktas kelių dalių objektas" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Tekstūros priskiriamos gijoms" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Tekstūros importavimo įspėjimas" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Ar įkelti šiuos failus kaip vieną objektą su keliomis detalėmis?\n" @@ -8365,6 +8417,22 @@ msgstr "" msgid "Sync now" msgstr "Sinchronizuoti dabar" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Tekstūros importuoti nepavyko. Panašu, kad modelyje yra tekstūros duomenų, tačiau importavimo proceso nepavyko užbaigti. Modelis bus importuotas tik kaip geometrija." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Taikomos tekstūros spalvos..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Atnaujinamas 3D vaizdas..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Tekstūros spalvos pritaikytos." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Pakeistus profilius galite išsaugoti naujam projektui arba juos atmesti" @@ -9594,6 +9662,10 @@ msgstr "Spiralinė vaza" msgid "First layer filament sequence" msgstr "Pirmojo sluoksnio gijos eiga" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Gijų sąraše yra mišrių gijų. Pasirinktinė gijų seka nebus taikoma." + msgid "By Layer" msgstr "Pagal sluoksnį" @@ -11497,27 +11569,6 @@ msgstr "Išmetimo tūris keičiant gijas" msgid "Please choose the filament colour" msgstr "Pasirinkite gijos spalvą" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Tiesioginei „Native Wayland“ peržiūrai reikalingas „GStreamer GTK“ vaizdo sinchronizatorius (video sink). Įdiekite „GStreamer“ skirtą „gtksink“ papildinį, tada iš naujo paleiskite „OrcaSlicer“." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Nepavyko inicijuoti „native Wayland GStreamer“ vaizdo sinchronizatoriaus (video sink). Patikrinkite „GStreamer GTK“ papildinio įdiegimą." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Šiai užduočiai atlikti reikalingas \"Windows Media Player\"! Ar norite įjungti \"Windows Media Player\" savo operacinėje sistemoje?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "„BambuSource“ neteisingai užregistruotas medijos atkūrimui! Paspauskite „Taip“, kad jį perregistruotumėte. Jums reikės patvirtinti du kartus." - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Trūksta BambuSource komponento, užregistruoto medijos atkūrimui! Iš naujo įdiekite OrcaSlicer arba kreipkitės pagalbos į bendruomenę." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Naudojant \"BambuSource\" iš kito diegimo šaltinio, vaizdo įrašų atkūrimas gali būti neteisingas! Paspauskite Taip, kad tai ištaisytumėte." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Jūsų sistemoje nėra \"GStreamer\" H.264 kodekų, reikalingų vaizdo įrašams atkurti. (Pabandykite įdiegti gstreamer1.0-plugins-bad arba gstreamer1.0-libav paketus, tada iš naujo paleiskite \"Orca Slicer\")" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Debesies agentas nepasiekiamas. Iš naujo paleiskite „OrcaSlicer“ ir bandykite vėl." @@ -12225,6 +12276,10 @@ msgstr "Jei vis tiek norite spausdinti, galite įjungti šią parinktį skiltyje msgid "No extrusions under current settings." msgstr "Pagal dabartinius nustatymus nėra išspaudimų." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Naudojama mišri gija su gradientu, tačiau 'Mišrios spalvos posluoksnis' yra išjungtas. Gradientas nebus atspausdintas." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Sklandus pakadrinio filmavimo (timelapse) režimas nepalaikomas, kai įjungta spausdinimo seka „pagal objektą“." @@ -12261,6 +12316,10 @@ msgstr "Galbūt norėsite sumažinti modelio dydį arba pakeisti esamus spausdin msgid "Variable layer height is not supported with Organic supports." msgstr "Kintamas sluoksnio aukštis nepalaikomas su \" Organinėmis atramomis\"." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Valymo bokšto gija negali būti mišri gija." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Skirtingo skersmens purkštukai ir skirtingo skersmens gijos gali neveikti gerai, kai įjungtas valymo bokštas. Tai labai eksperimentinė priemonė, todėl elkitės atsargiai." @@ -13961,6 +14020,8 @@ msgstr "Sluoksnio laikas" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Detalės aušinimo ventiliatorius bus suaktyvintas tiems sluoksniams, kurių preliminarus spausdinimo laikas yra trumpesnis už šią reikšmę. Ventiliatoriaus sūkiai bus interpoliuojami tarp minimalaus ir maksimalaus greičio, priklausomai nuo sluoksnio spausdinimo trukmės." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14268,6 +14329,62 @@ msgstr "Atramų gija" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Atramų gija paprastai naudojama atramoms ir atramų skiriamiesiems sluoksniams spausdinti." +# AI Translated +msgid "Is mixed filament" +msgstr "Yra mišri gija" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Nurodo, ar ši gijos vieta yra mišri gija, sudaryta iš kelių fizinių gijų" + +# AI Translated +msgid "Mixed filament components" +msgstr "Mišrios gijos komponentai" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Kableliais atskirti komponentinių gijų indeksai, skaičiuojami nuo 1, pvz. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Mišrios gijos posluoksnių santykiai" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Kableliais atskirtos santykio reikšmės, kurių suma lygi 1.0, pvz. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Mišrios gijos gradientas" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Įjungia gradiento režimą Z kryptimi mišrios gijos posluoksniams. Įjungus posluoksnių santykiai tarp sluoksnių kinta tiesiškai." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Mišrios gijos gradiento intervalas" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Pirmojo komponento pradinis ir galutinis santykis gradiento režimu. Kableliu atskirta pora, pvz. \"0.10,0.90\" reiškia nuo 10% iki 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Mišrios gijos gradiento kreivė" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Neprivaloma pasirinktinė Photoshop stiliaus kreivė, susiejanti Z eigą su pirmojo komponento santykiu. Užrašoma kaip vertikaliais brūkšniais atskirti valdymo taškai, formatu \"x,y\" (senasis) arba \"x,y,m_in,m_out\", kai reikia nustatyti liestinę (tuščia reikšmė arba \"nan\" reiškia numatytąjį PCHIP). x priklauso [0,1]; y apribojamas iki nustatyto santykių intervalo, pvz. \"0,0.15|0.5,0.50|1,0.85\". Jei palikta tuščia, naudojamas tiesinis gradient_range." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Mišrios gijos gradientas kiekvienai daliai" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Kai gradiento režimas įjungtas, gradientas taikomas kiekvienai surinkimo daliai atskirai, o ne visam surinkimui kaip vienam Z intervalui." + msgid "Filament printable" msgstr "Gija tinkama spausdinti" @@ -15518,6 +15635,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Leidžiama didžiausia Y ašies išvesties jėga" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15530,6 +15648,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Įrenginio pagrindo masės apkrova Y ašiai" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17098,6 +17217,14 @@ msgstr "" "\n" "Jei žemiau esančiame nustatyme „Įtraukimo kiekis prieš nuvalymą“ nurodysite reikšmę, perteklinis gijos įtraukimas bus atliktas prieš nuvalymą, kitu atveju – po jo." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Mišrios spalvos posluoksnis" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Įjungia skaidymą į mišrios spalvos posluoksnius. Įjungus sluoksniai, kuriuose yra mišrios spalvos gijų, skaidomi į posluoksnius, kad būtų pasiektas spalvų maišymo efektas." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Valymo bokštelis (angl. \"wiping tower\") gali būti naudojamas likučiams nuo purkštuko nuvalyti ir purkštuko viduje esančiam slėgiui stabilizuoti, siekiant išvengti išvaizdos defektų spausdinant objektus." @@ -18181,6 +18308,10 @@ msgstr "Nepavyko suformuoti modelio failo poligonažo arba jame nėra tinkamos g msgid "The supplied file couldn't be read because it's empty." msgstr "Pateikto failo nepavyko nuskaityti, nes jis yra tuščias." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Failo formatas nesuderinamas ir jo nepavyksta perskaityti." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Nežinomas failo formatas: įvesties failas privalo turėti .stl, .obj arba .amf(.xml) plėtinį." @@ -20447,8 +20578,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Įjungti išmanųjį gijos priskyrimą: priskirkite vieną giją keliems purkštukams, kad sutaupytumėte kuo daugiau" # AI Translated -msgid "Fila Saving" -msgstr "Gijos taupymas" +msgid "File Saving" +msgstr "Failo įrašymas" msgid "Don't remind me again" msgstr "Daugiau neberodyti šio priminimo" @@ -20813,6 +20944,9 @@ msgstr "Paleisti iš naujo dabar" msgid "NO RAMMING AT ALL" msgstr "VISIŠKAI NENAUDOTI SUTANKINIMO" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Tūrinis greitis" @@ -21435,6 +21569,39 @@ msgstr "" "Venkite deformacijų (warping)\n" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Tiesioginei „Native Wayland“ peržiūrai reikalingas „GStreamer GTK“ vaizdo sinchronizatorius (video sink). Įdiekite „GStreamer“ skirtą „gtksink“ papildinį, tada iš naujo paleiskite „OrcaSlicer“." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Nepavyko inicijuoti „native Wayland GStreamer“ vaizdo sinchronizatoriaus (video sink). Patikrinkite „GStreamer GTK“ papildinio įdiegimą." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Šiai užduočiai atlikti reikalingas \"Windows Media Player\"! Ar norite įjungti \"Windows Media Player\" savo operacinėje sistemoje?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "„BambuSource“ neteisingai užregistruotas medijos atkūrimui! Paspauskite „Taip“, kad jį perregistruotumėte. Jums reikės patvirtinti du kartus." + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Trūksta BambuSource komponento, užregistruoto medijos atkūrimui! Iš naujo įdiekite OrcaSlicer arba kreipkitės pagalbos į bendruomenę." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Naudojant \"BambuSource\" iš kito diegimo šaltinio, vaizdo įrašų atkūrimas gali būti neteisingas! Paspauskite Taip, kad tai ištaisytumėte." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Jūsų sistemoje nėra \"GStreamer\" H.264 kodekų, reikalingų vaizdo įrašams atkurti. (Pabandykite įdiegti gstreamer1.0-plugins-bad arba gstreamer1.0-libav paketus, tada iš naujo paleiskite \"Orca Slicer\")" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Gijos taupymas" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 4284378cd1..4fd3601c0e 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3197,6 +3197,10 @@ msgstr "Bewerken" msgid "Merge with" msgstr "Samenvoegen met" +# AI Translated +msgid "Decompose Color" +msgstr "Kleur ontleden" + # AI Translated msgid "Delete this filament" msgstr "Dit filament verwijderen" @@ -3519,6 +3523,10 @@ msgstr "Montage" msgid "Merge parts to an object" msgstr "Onderdelen samenvoegen tot een object" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Het gebruik van variabele laaghoogte in combinatie met de sublaag met gemengde kleur kan de kwaliteit van de kleurmenging verslechteren." + # AI Translated msgid "Add layers" msgstr "Lagen toevoegen" @@ -8552,6 +8560,10 @@ msgstr "Huidig printbed aanpassen" msgid "The %s nozzle can not print %s." msgstr "Het %s-mondstuk kan %s niet printen." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Het printen van filament met gemengde kleur op een printer met één extruder vereist frequente filamentwissels en spoelbeurten, wat het afval en het risico op verstopping van het mondstuk of de afvalgoot aanzienlijk kan vergroten." + # AI Translated #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" @@ -8695,6 +8707,26 @@ msgstr "Synchroniseer filamentlijst vanuit AMS" msgid "Set filaments to use" msgstr "Stel filamenten in om te gebruiken" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Gemengd filament toevoegen" + +# AI Translated +msgid "Mixed Filament" +msgstr "Gemengd filament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Laatste gemengde filament verwijderen" + +# AI Translated +msgid "Add mixed filament" +msgstr "Gemengd filament toevoegen" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Het gemengde filament bevat ongeldige of niet-overeenkomende componenten. Bewerk de betrokken items opnieuw." + msgid "Search plate, object and part." msgstr "Zoek plaat, object en onderdeel." @@ -8702,6 +8734,18 @@ msgstr "Zoek plaat, object en onderdeel." msgid "Pellets" msgstr "Pellets" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Het gemengde filament bevat ongeldige componentverwijzingen" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Bewerken / Verwijderen / Samenvoegen" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Het gemengde doelfilament gebruikt dit fysieke filament als component. Bij het samenvoegen wordt dit fysieke filament verwijderd en kan het gemengde filament ongeldig worden. Doorgaan?" + # AI Translated #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." @@ -8903,6 +8947,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Object met meerdere onderdelen gedetecteerd" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Texturen aan filamenten koppelen" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Waarschuwing bij importeren van textuur" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Wilt u deze bestanden laden als een enkel object bestaande uit meerdere onderdelen?\n" @@ -9134,6 +9186,22 @@ msgstr "" msgid "Sync now" msgstr "Nu synchroniseren" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Het importeren van de textuur is mislukt. Het model lijkt textuurgegevens te bevatten, maar het importproces kon niet worden voltooid. Het model wordt alleen als geometrie geïmporteerd." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Textuurkleuren toepassen..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D-weergave bijwerken..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Textuurkleuren toegepast." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Je kunt de aangepaste voorinstellingen bewaren voor het nieuwe project of ze laten vervallen" @@ -10527,6 +10595,10 @@ msgstr "Spiraalvaas" msgid "First layer filament sequence" msgstr "Eerste laag filamentvolgorde" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "De filamentlijst bevat gemengde filamenten. De aangepaste filamentvolgorde wordt niet toegepast." + msgid "By Layer" msgstr "Op laag" @@ -12618,33 +12690,6 @@ msgstr "Volumes reinigen voor filament wijziging" msgid "Please choose the filament colour" msgstr "Kies de filamentkleur" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Voor de native Wayland-liveview is de GStreamer GTK-videosink nodig. Installeer de gtksink-plug-in voor GStreamer en start OrcaSlicer opnieuw." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Initialiseren van de native Wayland GStreamer-videosink is mislukt. Controleer de installatie van uw GStreamer GTK-plug-in." - -# AI Translated -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Voor deze taak is Windows Media Player vereist! Wilt u 'Windows Media Player' inschakelen voor uw besturingssysteem?" - -# AI Translated -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource is niet correct geregistreerd voor het afspelen van media! Klik op Ja om het opnieuw te registreren. U krijgt twee keer een melding" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Ontbrekend BambuSource-component geregistreerd voor media afspelen! Installeer OrcaSlicer opnieuw of zoek hulp in de community." - -# AI Translated -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Er wordt een BambuSource van een andere installatie gebruikt; het afspelen van video werkt mogelijk niet correct! Klik op Ja om dit te herstellen." - -# AI Translated -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Op uw systeem ontbreken H.264-codecs voor GStreamer, die nodig zijn om video af te spelen. (Probeer de pakketten gstreamer1.0-plugins-bad of gstreamer1.0-libav te installeren en Orca Slicer opnieuw te starten.)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "De cloudagent is niet beschikbaar. Start OrcaSlicer opnieuw en probeer het nogmaals." @@ -13410,6 +13455,10 @@ msgstr "Als u toch wilt printen, kunt u de optie inschakelen via Voorkeuren / Be msgid "No extrusions under current settings." msgstr "Geen extrusion onder de huidige instellingen" +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Er wordt een gemengd filament met verloop gebruikt, maar 'Sublaag met gemengde kleur' is uitgeschakeld. Het verloop wordt niet geprint." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Vloeiende modus van timelapse wordt niet ondersteund wanneer \"per object\" sequentie is ingeschakeld." @@ -13452,6 +13501,10 @@ msgstr "Verklein eventueel uw model of wijzig de huidige printinstellingen en pr msgid "Variable layer height is not supported with Organic supports." msgstr "Variabele laaghoogte wordt niet ondersteund met organische steunen." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Het filament van het afveegblok mag geen gemengd filament zijn." + # AI Translated msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Verschillende mondstukdiameters en verschillende filamentdiameters werken mogelijk niet goed wanneer de prime toren is ingeschakeld. Dit is zeer experimenteel; ga daarom voorzichtig te werk." @@ -13843,27 +13896,21 @@ msgstr "mm of %" msgid "Other layers" msgstr "Andere lagen" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament printen op de Cool Plate SuperTack niet ondersteunt." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Dit is de bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament het afdrukken op de Cool Plate niet ondersteunt." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Dit is de bedtemperatuur voor alle lagen behalve de eerste. Een waarde van 0 betekent dat het filament printen op de Textured Cool Plate niet ondersteunt." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Dit is de bedtemperatuur voor lagen, behalve voor de eerste. Een waarde van 0 betekent dat het filament afdrukken op de Engineering Plate niet ondersteunt." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Dit is de bedtemperatuur voor lagen, behalve voor de eerste. Een waarde van 0 betekent dat het filament printen op de High Temp Plate niet ondersteunt." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Bedtemperatuur na de eerste laag. 0 betekent dat het filament niet wordt ondersteund op de getextureerde PEI-plaat." @@ -15369,6 +15416,8 @@ msgstr "Laag tijd" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "De printkop ventilator wordt ingeschakeld voor lagen waarvan de geschatte printtijd korter is dan deze waarde. Ventilatorsnelheid wordt geïnterpoleerd tussen de minimale en maximale ventilatorsnelheden volgens de printtijd van de laag" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -15728,6 +15777,62 @@ msgstr "Support materiaal" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Support materiaal wordt vaak gebruikt om support en support interfaces af te drukken." +# AI Translated +msgid "Is mixed filament" +msgstr "Is gemengd filament" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Geeft aan of dit filamentslot een gemengd filament is dat uit meerdere fysieke filamenten bestaat" + +# AI Translated +msgid "Mixed filament components" +msgstr "Componenten van gemengd filament" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Door komma's gescheiden indexen van de componentfilamenten, beginnend bij 1, bijv. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Sublaagverhoudingen van gemengd filament" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Door komma's gescheiden verhoudingswaarden die samen 1.0 zijn, bijv. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Verloop van gemengd filament" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Schakelt de verloopmodus in Z-richting in voor de sublagen van gemengd filament. Wanneer ingeschakeld variëren de sublaagverhoudingen lineair over de lagen." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Verloopbereik van gemengd filament" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Begin- en eindverhouding van de eerste component in de verloopmodus. Door een komma gescheiden paar, bijv. \"0.10,0.90\" betekent 10% tot 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Verloopcurve van gemengd filament" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Optionele aangepaste curve in Photoshop-stijl die de Z-voortgang koppelt aan de verhouding van de eerste component. Gecodeerd als door verticale strepen gescheiden controlepunten, in de vorm \"x,y\" (verouderd) of \"x,y,m_in,m_out\" wanneer de raaklijn moet worden overschreven (een lege waarde of \"nan\" gebruikt de PCHIP-standaard). x ligt in [0,1]; y wordt begrensd tot het ingestelde verhoudingsbereik, bijv. \"0,0.15|0.5,0.50|1,0.85\". Wanneer het veld leeg is, wordt het lineaire gradient_range gebruikt." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Verloop per onderdeel van gemengd filament" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Wanneer de verloopmodus is ingeschakeld, wordt het verloop op elk onderdeel van een montage afzonderlijk toegepast in plaats van de hele montage als één Z-bereik te behandelen." + # AI Translated msgid "Filament printable" msgstr "Filament printbaar" @@ -17166,6 +17271,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "De maximaal toegestane uitgangskracht van de Y-as" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -17176,6 +17282,7 @@ msgid "The machine bed mass load of Y axis" msgstr "De massabelasting van het machinebed op de Y-as" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -18951,6 +19058,14 @@ msgstr "" "\n" "Als u hieronder een waarde instelt bij de terugtrekhoeveelheid vóór het vegen, wordt de overtollige terugtrekking vóór het vegen uitgevoerd; anders gebeurt dat erna." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Sublaag met gemengde kleur" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Schakelt het opsplitsen in sublagen met gemengde kleur in. Wanneer ingeschakeld worden lagen die filamenten met gemengde kleur bevatten opgesplitst in sublagen om kleurmengeffecten te bereiken." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "De veegtoren kan worden gebruikt om resten op het mondstuk te verwijderen en de druk in het mondstuk te stabiliseren om uiterlijke gebreken bij het printen van objecten te voorkomen." @@ -20217,6 +20332,10 @@ msgstr "Het meshen van een modelbestand is mislukt of er is geen geldige vorm." msgid "The supplied file couldn't be read because it's empty." msgstr "Het opgegeven bestand kon niet worden gelezen omdat het leeg is." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "De bestandsindeling is niet compatibel en kan niet worden gelezen." + # AI Translated msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Onbekende bestandsindeling: het invoerbestand moet de extensie .stl, .obj of .amf(.xml) hebben." @@ -22765,8 +22884,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Slimme filamenttoewijzing inschakelen: wijs één filament aan meerdere mondstukken toe om de besparing te maximaliseren" # AI Translated -msgid "Fila Saving" -msgstr "Filamentbesparing" +msgid "File Saving" +msgstr "Bestand opslaan" # AI Translated msgid "Don't remind me again" @@ -23221,6 +23340,9 @@ msgstr "Nu opnieuw starten" msgid "NO RAMMING AT ALL" msgstr "HELEMAAL GEEN RAMMING" +msgid "s" +msgstr "s" + # AI Translated msgid "Volumetric speed" msgstr "Volumetrische snelheid" @@ -23887,6 +24009,45 @@ msgstr "" "Kromtrekken voorkomen\n" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Voor de native Wayland-liveview is de GStreamer GTK-videosink nodig. Installeer de gtksink-plug-in voor GStreamer en start OrcaSlicer opnieuw." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Initialiseren van de native Wayland GStreamer-videosink is mislukt. Controleer de installatie van uw GStreamer GTK-plug-in." + +# AI Translated +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Voor deze taak is Windows Media Player vereist! Wilt u 'Windows Media Player' inschakelen voor uw besturingssysteem?" + +# AI Translated +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource is niet correct geregistreerd voor het afspelen van media! Klik op Ja om het opnieuw te registreren. U krijgt twee keer een melding" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Ontbrekend BambuSource-component geregistreerd voor media afspelen! Installeer OrcaSlicer opnieuw of zoek hulp in de community." + +# AI Translated +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Er wordt een BambuSource van een andere installatie gebruikt; het afspelen van video werkt mogelijk niet correct! Klik op Ja om dit te herstellen." + +# AI Translated +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Op uw systeem ontbreken H.264-codecs voor GStreamer, die nodig zijn om video af te spelen. (Probeer de pakketten gstreamer1.0-plugins-bad of gstreamer1.0-libav te installeren en Orca Slicer opnieuw te starten.)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Filamentbesparing" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index cc88aac759..0f6fa10e3b 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n" "Language-Team: \n" @@ -3012,6 +3012,10 @@ msgstr "Edytuj" msgid "Merge with" msgstr "Scal z" +# AI Translated +msgid "Decompose Color" +msgstr "Rozłóż kolor" + msgid "Delete this filament" msgstr "Usuń ten filament" @@ -3319,6 +3323,10 @@ msgstr "Złożenie" msgid "Merge parts to an object" msgstr "Scal części w obiekt" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Użycie zmiennej wysokości warstwy razem z podwarstwą mieszanego koloru może pogorszyć jakość mieszania kolorów." + # AI Translated msgid "Add layers" msgstr "Dodaj warstwy" @@ -8030,6 +8038,10 @@ msgstr "Dostosuj bieżący stół" msgid "The %s nozzle can not print %s." msgstr "Dysza %s nie może drukować %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Drukowanie filamentu o mieszanym kolorze na drukarce z jednym ekstruderem wymaga częstych zmian filamentu i płukania, co może znacznie zwiększyć ilość odpadów oraz ryzyko zatkania dyszy lub rynny na odpady." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Mieszanie %1% z %2% podczas druku nie jest zalecane.\n" @@ -8156,12 +8168,44 @@ msgstr "Synchronizuj listę filamentów z AMS" msgid "Set filaments to use" msgstr "Wybierz filamenty do użycia" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Dodaj filament mieszany" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filament mieszany" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Usuń ostatni filament mieszany" + +# AI Translated +msgid "Add mixed filament" +msgstr "Dodaj filament mieszany" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Filament mieszany ma nieprawidłowe lub niezgodne składniki. Proszę ponownie edytować odpowiednie pozycje." + msgid "Search plate, object and part." msgstr "Szukaj stołu, obiektu i części." msgid "Pellets" msgstr "Granulat" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Filament mieszany ma uszkodzone odwołania do składników" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Edytuj / Usuń / Scal" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Docelowy filament mieszany używa tego fizycznego filamentu jako składnika. Scalenie usunie ten fizyczny filament i może unieważnić filament mieszany. Kontynuować?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Po zakończeniu operacji projekt %s zostanie zamknięty i zostanie utworzony nowy projekt." @@ -8351,6 +8395,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Wykryto obiekt składający się z wielu części" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Dopasowywanie tekstur do filamentów" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Ostrzeżenie importu tekstury" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Czy wczytać te pliki jako pojedynczy obiekt składający się z wielu części?\n" @@ -8579,6 +8631,22 @@ msgstr "" msgid "Sync now" msgstr "Synchronizuj teraz" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Import tekstury nie powiódł się. Model zdaje się zawierać dane tekstury, ale nie udało się ukończyć procesu importu. Model zostanie zaimportowany wyłącznie jako geometria." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Stosowanie kolorów tekstury..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Aktualizowanie widoku 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Zastosowano kolory tekstury." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Można zachować zmodyfikowane profile w nowym projekcie lub je odrzucić." @@ -9922,6 +9990,10 @@ msgstr "Tryb wazy" msgid "First layer filament sequence" msgstr "Sekwencja koloru pierwszej warstwy" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Lista filamentów zawiera filamenty mieszane. Niestandardowa kolejność filamentów nie zostanie zastosowana." + msgid "By Layer" msgstr "Wg warstwy" @@ -11896,30 +11968,6 @@ msgstr "Objętości płukania przy zmianie filamentu" msgid "Please choose the filament colour" msgstr "Proszę wybrać kolor filamentu" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Natywny podgląd na żywo w Wayland wymaga ujścia wideo GStreamer GTK. Zainstaluj wtyczkę gtksink dla GStreamer, a następnie uruchom ponownie OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Nie udało się zainicjować natywnego ujścia wideo GStreamer dla Wayland. Sprawdź instalację wtyczki GStreamer GTK." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Do wykonania tego zadania wymagany jest Windows Media Player! Czy włączyć „Windows Media Player” dla systemu operacyjnego?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource nie został poprawnie zarejestrowany do odtwarzania mediów! Naciśnij Tak, aby ponownie go zarejestrować. Będziesz poproszony dwa razy." - -# AI Translated -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Brak zarejestrowanego komponentu BambuSource do odtwarzania multimediów! Zainstaluj ponownie OrcaSlicer lub poszukaj pomocy w społeczności." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Jeśli używasz BambuSource z innej instalacji programu, odtwarzanie wideo może nie działać poprawnie! Naciśnij Tak, aby to naprawić." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Twój system nie posiada kodeków H.264 dla GStreamer, które są wymagane do odtwarzania wideo. (Spróbuj zainstalować pakiety gstreamer1.0-plugins-bad lub gstreamer1.0-libav, a następnie zrestartuj Orca Slicer?)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Agent chmury jest niedostępny. Uruchom ponownie OrcaSlicer i spróbuj jeszcze raz." @@ -12646,6 +12694,10 @@ msgstr "Jeśli mimo to chcesz drukować, możesz włączyć opcję w Preferencje msgid "No extrusions under current settings." msgstr "Brak ekstruzji przy obecnych ustawieniach." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Używany jest filament mieszany z gradientem, ale opcja 'Podwarstwa mieszanego koloru' jest wyłączona. Gradient nie zostanie wydrukowany." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Tryb „Wygładzony” timelapse nie jest obsługiwany, gdy włączona jest sekwencja druku „według obiektu”." @@ -12684,6 +12736,10 @@ msgstr "Może być konieczne zmniejszenie rozmiaru modelu lub zmiana bieżących msgid "Variable layer height is not supported with Organic supports." msgstr "Zmienna wysokość warstwy nie jest dostępna w przypadku podpór organicznych." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Filament wieży czyszczącej nie może być filamentem mieszanym." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Różne średnice dysz i filamentu mogą nie działać poprawnie, gdy włączona jest wieża czyszcząca. Jest to mocno eksperymentalna funkcja, więc zaleca się ostrożność." @@ -13060,27 +13116,21 @@ msgstr "mm lub %" msgid "Other layers" msgstr "Pozostałe warstwy" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje druku na Cool Plate SuperTack." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Cool Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Temperatura stołu dla warstw, z wyjątkiem pierwszej. Wartość 0 oznacza, że filament nie nadaje się do druku na Textured Cool Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Engineering Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na High Temp Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Temperatura stołu dla warstw poza pierwszą. Wartość 0 oznacza, że filament nie obsługuje drukowania na Textured PEI Plate." @@ -14482,6 +14532,8 @@ msgstr "Czas warstwy" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Wentylator chłodzący części zostanie włączony dla warstw, których szacowany czas jest krótszy niż ta wartość. Prędkość wentylatora jest interpolowana między minimalną a maksymalną prędkością wentylatora zgodnie z czasem druku warstwy" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14792,6 +14844,62 @@ msgstr "Materiał podporowy" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Materiał podporowy jest powszechnie używany do drukowania podpór i warstw łączących podpory z modelem" +# AI Translated +msgid "Is mixed filament" +msgstr "Jest filamentem mieszanym" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Określa, czy to gniazdo filamentu jest filamentem mieszanym złożonym z kilku fizycznych filamentów" + +# AI Translated +msgid "Mixed filament components" +msgstr "Składniki filamentu mieszanego" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Rozdzielone przecinkami indeksy filamentów składowych liczone od 1, np. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Proporcje podwarstw filamentu mieszanego" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Rozdzielone przecinkami wartości proporcji sumujące się do 1.0, np. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradient filamentu mieszanego" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Włącza tryb gradientu w kierunku Z dla podwarstw filamentu mieszanego. Po włączeniu proporcje podwarstw zmieniają się liniowo między warstwami." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Zakres gradientu filamentu mieszanego" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Początkowa i końcowa proporcja pierwszego składnika w trybie gradientu. Para rozdzielona przecinkiem, np. \"0.10,0.90\" oznacza od 10% do 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Krzywa gradientu filamentu mieszanego" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Opcjonalna własna krzywa w stylu Photoshopa odwzorowująca postęp w osi Z na proporcję pierwszego składnika. Zapisywana jako punkty kontrolne rozdzielone pionowymi kreskami, w postaci \"x,y\" (starszy format) lub \"x,y,m_in,m_out\", gdy potrzebne jest nadpisanie stycznej (pusta wartość lub \"nan\" oznacza domyślną wartość PCHIP). x należy do [0,1]; y jest ograniczane do skonfigurowanego zakresu proporcji, np. \"0,0.15|0.5,0.50|1,0.85\". Gdy pole jest puste, używany jest liniowy gradient_range." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradient filamentu mieszanego dla każdej części" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Gdy tryb gradientu jest włączony, gradient jest stosowany do każdej części złożenia niezależnie, zamiast traktować całe złożenie jako jeden zakres Z." + msgid "Filament printable" msgstr "Filament do druku" @@ -16112,6 +16220,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Dopuszczalna maksymalna siła wyjściowa na osi Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -16122,6 +16231,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Obciążenie masowe stołu maszyny na osi Y" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17762,6 +17872,14 @@ msgstr "" "\n" "Ustawienie wartości w ilości cofania przed ustawieniem czyszczenia poniżej spowoduje wykonanie nadmiernego cofania przed czyszczeniem, w przeciwnym razie zostanie wykonane po nim." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Podwarstwa mieszanego koloru" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Włącza podział na podwarstwy mieszanego koloru. Po włączeniu warstwy zawierające filamenty o mieszanym kolorze są dzielone na podwarstwy w celu uzyskania efektu mieszania kolorów." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Wieża czyszcząca może być używana do czyszczenia resztek na dyszy i stabilizacji ciśnienia w komorze wewnątrz dyszy, aby uniknąć defektów wyglądu podczas drukowania obiektów." @@ -18863,6 +18981,10 @@ msgstr "Siatkowanie pliku modelu nie powiodło się lub nie ma prawidłowego ksz msgid "The supplied file couldn't be read because it's empty." msgstr "Dostarczony plik nie mógł być odczytany, ponieważ jest pusty" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Format pliku jest niezgodny i nie można go odczytać." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Nieznany format pliku. Plik wejściowy musi mieć rozszerzenie .stl, .obj, .amf(.xml)." @@ -21264,8 +21386,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Włącz inteligentne przypisywanie filamentu: przypisz jeden filament do wielu dysz, aby zmaksymalizować oszczędności" # AI Translated -msgid "Fila Saving" -msgstr "Oszczędność fil." +msgid "File Saving" +msgstr "Zapisywanie pliku" msgid "Don't remind me again" msgstr "Nie przypominaj mi ponownie" @@ -21696,6 +21818,9 @@ msgstr "Uruchom ponownie teraz" msgid "NO RAMMING AT ALL" msgstr "BRAK WYCISKANIA" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Prędkości Przepływu" @@ -22341,6 +22466,42 @@ msgstr "" "Unikaj odkształceń\n" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Natywny podgląd na żywo w Wayland wymaga ujścia wideo GStreamer GTK. Zainstaluj wtyczkę gtksink dla GStreamer, a następnie uruchom ponownie OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Nie udało się zainicjować natywnego ujścia wideo GStreamer dla Wayland. Sprawdź instalację wtyczki GStreamer GTK." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Do wykonania tego zadania wymagany jest Windows Media Player! Czy włączyć „Windows Media Player” dla systemu operacyjnego?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource nie został poprawnie zarejestrowany do odtwarzania mediów! Naciśnij Tak, aby ponownie go zarejestrować. Będziesz poproszony dwa razy." + +# AI Translated +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Brak zarejestrowanego komponentu BambuSource do odtwarzania multimediów! Zainstaluj ponownie OrcaSlicer lub poszukaj pomocy w społeczności." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Jeśli używasz BambuSource z innej instalacji programu, odtwarzanie wideo może nie działać poprawnie! Naciśnij Tak, aby to naprawić." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Twój system nie posiada kodeków H.264 dla GStreamer, które są wymagane do odtwarzania wideo. (Spróbuj zainstalować pakiety gstreamer1.0-plugins-bad lub gstreamer1.0-libav, a następnie zrestartuj Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Oszczędność fil." + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 5b9b7dcc42..0d9698d746 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -2836,6 +2836,10 @@ msgstr "Editar" msgid "Merge with" msgstr "Mesclar com" +# AI Translated +msgid "Decompose Color" +msgstr "Decompor Cor" + msgid "Delete this filament" msgstr "Apagar este filamento" @@ -3118,6 +3122,10 @@ msgstr "Montagem" msgid "Merge parts to an object" msgstr "Mesclar peças com um objeto" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Usar altura de camada variável junto com a subcamada de cor mista pode resultar em uma mistura de cores de baixa qualidade." + msgid "Add layers" msgstr "Adicionar camadas" @@ -7631,6 +7639,10 @@ msgstr "Personalizar a placa atual" msgid "The %s nozzle can not print %s." msgstr "O bico %s não pode imprimir %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Imprimir filamento de cor mista em uma impressora de extrusora única exige trocas de filamento e purgas frequentes, o que pode aumentar significativamente o desperdício e o risco de entupimento do bico ou da calha de resíduos." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Misturar %1% com %2% na impressão não é recomendado.\n" @@ -7755,12 +7767,44 @@ msgstr "Sincronizar lista de filamentos do AMS" msgid "Set filaments to use" msgstr "Definir filamentos para usar" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Adicionar Filamento Misto" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filamento Misto" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Remover o último filamento misto" + +# AI Translated +msgid "Add mixed filament" +msgstr "Adicionar filamento misto" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "O filamento misto tem componentes inválidos ou incompatíveis. Edite novamente as entradas afetadas." + msgid "Search plate, object and part." msgstr "Pesquisar placa, objeto e peça." msgid "Pellets" msgstr "Pellets" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "O filamento misto tem referências de componentes quebradas" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Editar / Excluir / Mesclar" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "O filamento misto de destino usa este filamento físico como componente. Mesclar removerá este filamento físico e poderá invalidar o filamento misto. Continuar?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "Após a conclusão da sua operação, o projeto %s será encerrado e um novo projeto será criado." @@ -7939,6 +7983,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Objeto multi-peça detectado" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Associando texturas aos filamentos" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Aviso de Importação de Textura" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Carregar esses arquivos como um único objeto com múltiplas peças?\n" @@ -8146,6 +8198,22 @@ msgstr "" msgid "Sync now" msgstr "Sincronizar agora" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Falha ao importar a textura. O modelo parece conter dados de textura, mas o processo de importação não pôde ser concluído. O modelo será importado apenas como geometria." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Aplicando cores de textura..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Atualizando a visualização 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Cores de textura aplicadas." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Você pode manter as predefinições modificadas no novo projeto ou descartá-las" @@ -9379,6 +9447,10 @@ msgstr "Vaso espiral" msgid "First layer filament sequence" msgstr "Sequência de filamento da primeira camada" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "A lista de filamentos contém filamentos mistos. A sequência de filamentos personalizada não terá efeito." + msgid "By Layer" msgstr "Por Camada" @@ -11255,27 +11327,6 @@ msgstr "Volumes de purga para troca de filamento" msgid "Please choose the filament colour" msgstr "Escolha a cor do filamento" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "A visualização ao vivo nativa do Wayland requer o receptor de vídeo GTK do GStreamer. Instale o plugin gtksink para GStreamer e reinicie o OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Falha ao inicializar o receptor de vídeo nativo do Wayland GStreamer. Verifique a instalação do plugin GStreamer GTK." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "O Windows Media Player é necessário para esta tarefa! Você quer habilitar o 'Windows Media Player' para seu sistema operacional?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource não foi registrado corretamente para reprodução de mídia! Pressione Sim para registrá-lo novamente. Você será promovido duas vezes" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Componente BambuSource registrado para reprodução de mídia não encontrado! Por favor, reinstale o OrcaSlicer ou procure ajuda da comunidade." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Usando um BambuSource de uma instalação diferente, a reprodução de vídeo pode não funcionar corretamente! Pressione Sim para consertar." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Seu sistema não possui codecs H.264 para o GStreamer, que são necessários para reproduzir vídeos. (Tente instalar os pacotes gstreamer1.0-plugins-bad ou gstreamer1.0-libav e depois reinicie o OrcaSlicer?)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "O agente na nuvem não está disponível. Reinicie o OrcaSlicer e tente novamente." @@ -11973,6 +12024,10 @@ msgstr "Se ainda assim desejar imprimir, você pode ativar a opção em Preferê msgid "No extrusions under current settings." msgstr "Nenhuma extrusão com as configurações atuais." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Um filamento misto com gradiente está em uso, mas 'Subcamada de cor mista' está desativado. O gradiente não será impresso." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "O modo suave do timelapse não é suportado quando a sequência \"por objeto\" está ativada." @@ -12009,6 +12064,10 @@ msgstr "Você pode querer reduzir o tamanho do seu modelo ou alterar as configur msgid "Variable layer height is not supported with Organic supports." msgstr "A altura de camada variável não é suportada com suportes Orgânicos." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "O filamento da torre de purga não pode ser um filamento misto." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Diferentes diâmetros de bico e diferentes diâmetros de filamento podem não funcionar bem quando a torre de purga estiver habilitada. É muito experimental, então prossiga com cautela." @@ -13702,6 +13761,8 @@ msgstr "Tempo da camada" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "A ventoinha de resfriamento de peças será ativado para camadas cujo tempo estimado seja mais curto que esse valor. A velocidade da ventoinha é interpolada entre as velocidades mínima e máxima da ventoinha de acordo com o tempo de impressão da camada." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14007,6 +14068,62 @@ msgstr "Material de suporte" msgid "Support material is commonly used to print supports and support interfaces." msgstr "O material de suporte é comumente usado para imprimir suportes e interfaces de suporte." +# AI Translated +msgid "Is mixed filament" +msgstr "É filamento misto" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Define se este slot de filamento é um filamento misto composto por vários filamentos físicos" + +# AI Translated +msgid "Mixed filament components" +msgstr "Componentes do filamento misto" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Índices (começando em 1) dos filamentos componentes, separados por vírgulas; ex.: \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Proporções de subcamada do filamento misto" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Valores de proporção separados por vírgulas cuja soma seja 1.0; ex.: \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradiente do filamento misto" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Ativa o modo de gradiente na direção Z para as subcamadas do filamento misto. Quando ativado, as proporções das subcamadas variam linearmente ao longo das camadas." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Faixa do gradiente do filamento misto" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Proporções inicial e final do primeiro componente no modo de gradiente. Par separado por vírgula; ex.: \"0.10,0.90\" significa de 10% a 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Curva do gradiente do filamento misto" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Curva personalizada opcional, no estilo do Photoshop, que mapeia o progresso em Z para a proporção do primeiro componente. Codificada como pontos de controle separados por barras verticais, no formato \"x,y\" (legado) ou \"x,y,m_in,m_out\" quando é necessário substituir a tangente (um valor vazio ou \"nan\" usa o padrão PCHIP). x está em [0,1]; y é limitado à faixa de proporção configurada; ex.: \"0,0.15|0.5,0.50|1,0.85\". Quando vazio, o gradient_range linear é usado." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradiente por peça do filamento misto" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Quando o modo de gradiente está ativado, aplica o gradiente a cada peça de uma montagem de forma independente, em vez de tratar toda a montagem como uma única faixa Z." + msgid "Filament printable" msgstr "Filamento imprimível" @@ -15243,6 +15360,8 @@ msgstr "Força máxima do eixo Y" msgid "The allowed maximum output force of Y axis" msgstr "A força máxima de saída permitida do eixo Y" +# AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15252,6 +15371,8 @@ msgstr "Massa da mesa do eixo Y" msgid "The machine bed mass load of Y axis" msgstr "A carga de massa da mesa do equipamento no eixo Y" +# AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -16802,6 +16923,14 @@ msgstr "" "\n" "Definir um valor na configuração de quantidade de retração antes da limpeza abaixo executará qualquer retração em excesso antes da limpeza, caso contrário, será realizada após." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Subcamada de cor mista" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Ativa a divisão em subcamadas de cor mista. Quando ativado, as camadas que contêm filamentos de cor mista são divididas em subcamadas para obter efeitos de mistura de cores." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "A torre de purga pode ser usada para limpar o resíduo no bico e estabilizar a pressão na câmara dentro do bico, a fim de evitar defeitos de aparência ao imprimir objetos." @@ -17858,6 +17987,10 @@ msgstr "A geração da malha do arquivo do modelo falhou ou não há forma váli msgid "The supplied file couldn't be read because it's empty." msgstr "O arquivo fornecido não pôde ser lido porque está vazio." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "O formato do arquivo é incompatível e não pode ser lido." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Formato de arquivo desconhecido: o arquivo de entrada deve ter extensão .stl, .obj, .amf(.xml)." @@ -20105,8 +20238,9 @@ msgstr "Removido" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "Ativar atribuição inteligente de filamento: Atribui um filamento a vários bicos para maximizar a economia" -msgid "Fila Saving" -msgstr "Econo Filamento" +# AI Translated +msgid "File Saving" +msgstr "Salvamento de Arquivo" msgid "Don't remind me again" msgstr "Não me avise novamente" @@ -20465,6 +20599,9 @@ msgstr "Reiniciar Agora" msgid "NO RAMMING AT ALL" msgstr "SEM NENHUM MOLDEAMENTO" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Velocidade volumétrica" @@ -21041,6 +21178,36 @@ msgstr "" "Evitar empenamento\n" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "A visualização ao vivo nativa do Wayland requer o receptor de vídeo GTK do GStreamer. Instale o plugin gtksink para GStreamer e reinicie o OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Falha ao inicializar o receptor de vídeo nativo do Wayland GStreamer. Verifique a instalação do plugin GStreamer GTK." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "O Windows Media Player é necessário para esta tarefa! Você quer habilitar o 'Windows Media Player' para seu sistema operacional?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource não foi registrado corretamente para reprodução de mídia! Pressione Sim para registrá-lo novamente. Você será promovido duas vezes" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Componente BambuSource registrado para reprodução de mídia não encontrado! Por favor, reinstale o OrcaSlicer ou procure ajuda da comunidade." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Usando um BambuSource de uma instalação diferente, a reprodução de vídeo pode não funcionar corretamente! Pressione Sim para consertar." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Seu sistema não possui codecs H.264 para o GStreamer, que são necessários para reproduzir vídeos. (Tente instalar os pacotes gstreamer1.0-plugins-bad ou gstreamer1.0-libav e depois reinicie o OrcaSlicer?)" + +#~ msgid "N" +#~ msgstr "N" + +#~ msgid "g" +#~ msgstr "g" + +#~ msgid "Fila Saving" +#~ msgstr "Econo Filamento" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 200d3cbb42..112fbc2834 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n" @@ -2911,6 +2911,10 @@ msgstr "Правка" msgid "Merge with" msgstr "Объединить с" +# AI Translated +msgid "Decompose Color" +msgstr "Разложить цвет" + msgid "Delete this filament" msgstr "Удалить материал" @@ -3222,6 +3226,10 @@ msgstr "Сборка" msgid "Merge parts to an object" msgstr "Сборка моделей" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Использование переменной высоты слоя вместе с подслоем смешанного цвета может ухудшить качество смешивания цветов." + # Запись в истории действий msgid "Add layers" msgstr "Добавление слоёв" @@ -7891,6 +7899,10 @@ msgstr "Настроить стол" msgid "The %s nozzle can not print %s." msgstr "Внимание: «%s» экструдер не может печатать %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Печать материала смешанного цвета на принтере с одним экструдером требует частой смены материала и прочистки, что может значительно увеличить количество отходов и риск засорения сопла или жёлоба для отходов." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Совмещение %1% с %2% при печати не рекомендуется.\n" @@ -8021,12 +8033,44 @@ msgstr "Синхронизировать материалы" msgid "Set filaments to use" msgstr "Выбрать материал" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Добавить смешанный материал" + +# AI Translated +msgid "Mixed Filament" +msgstr "Смешанный материал" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Удалить последний смешанный материал" + +# AI Translated +msgid "Add mixed filament" +msgstr "Добавить смешанный материал" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "У смешанного материала недопустимые или несовпадающие компоненты. Пожалуйста, отредактируйте затронутые записи заново." + msgid "Search plate, object and part." msgstr "Поиск стола, модели или части..." msgid "Pellets" msgstr "Гранулы" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "У смешанного материала нарушены ссылки на компоненты" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Изменить / Удалить / Объединить" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Целевой смешанный материал использует этот физический материал в качестве компонента. Объединение удалит этот физический материал и может сделать смешанный материал недействительным. Продолжить?" + # Порядок слов сильно зависит от контекста; не могу воспроизвести в интерфейсе. По идее, выводится при bool Sidebar::is_new_project_in_gcode3mf(), но что-либо менять в нарезанном .gcode.3mf вообще нельзя #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." @@ -8211,6 +8255,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Обнаружена модель, состоящая из нескольких частей" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Сопоставление текстур с материалами" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Предупреждение при импорте текстуры" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Загрузить эти файлы как единую модель, состоящую из нескольких частей?\n" @@ -8425,6 +8477,22 @@ msgstr "" msgid "Sync now" msgstr "Синхронизировать" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Не удалось импортировать текстуру. Похоже, модель содержит данные текстуры, но завершить импорт не удалось. Модель будет импортирована только как геометрия." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Применение цветов текстуры..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Обновление 3D-вида..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Цвета текстуры применены." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Вы можете перенести сделанные изменения в новый проект или отказаться от их сохранения" @@ -9671,6 +9739,10 @@ msgstr "Режим вазы" msgid "First layer filament sequence" msgstr "Очерёдность материалов на первом слое" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Список материалов содержит смешанные материалы. Пользовательская последовательность материалов не будет применена." + msgid "By Layer" msgstr "Послойно" @@ -11586,27 +11658,6 @@ msgstr "Объёмы прочистки при смене материала" msgid "Please choose the filament colour" msgstr "Изменение цвета" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Для нативного отображения трансляции в Wayland требуется gtksink (плагин для GStreamer). Установите необходимый пакет плагинов и перезапустите OrcaSlicer." - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Не удалось запустить нативную трансляцию GSteramer через Wayland. Проверьте наличие установленного пакета плагинов GStreamer." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Для этой задачи требуется Windows Media Player! Хотите включить его в своей ОС?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "Компонент BambuSource неправильно зарегистрирован для воспроизведения медиафайлов! Нажмите «Да», чтобы повторно зарегистрировать его" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Отсутствует компонент BambuSource для воспроизведения медиа. Переустановите OrcaSlicer или обратитесь за помощью к сообществу." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "При использовании компонентов BambuSource из другого инсталлятора, воспроизведение видео может работать некорректно! Нажмите «Да», чтобы исправить это." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "В вашей системе отсутствуют кодеки H.264 для GStreamer, которые необходимы для воспроизведения видео (попробуйте установить пакеты gstreamer1.0-plugins-bad или gstreamer1.0-libav, а затем перезапустить Orca Slicer)." - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Облачный агент недоступен. Перезапустите OrcaSlicer и повторите попытку." @@ -12303,6 +12354,10 @@ msgstr "Если вас это не пугает, эту проверку мож msgid "No extrusions under current settings." msgstr "При текущих настройках экструзия отсутствует." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Используется смешанный материал с градиентом, но параметр «Подслой смешанного цвета» отключён. Градиент не будет напечатан." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Плавный режим таймлапса не поддерживается, когда включена последовательность печати моделей по очереди." @@ -12341,6 +12396,10 @@ msgstr "Попробуйте уменьшить размер модели или msgid "Variable layer height is not supported with Organic supports." msgstr "Функция переменной высоты слоя несовместима с органическим стилем древовидных поддержек." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Материал черновой башни не может быть смешанным материалом." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Совместное использование черновой башни с разными диаметрами сопел и прутков может привести к некорректной нарезке при включённой черновой башне. Этот метод работы экспериментальный, поэтому будьте осторожны при использовании." @@ -14159,6 +14218,8 @@ msgstr "Время слоя" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Вентилятор охлаждения моделей будет включён для слоёв, расчётное время которых меньше этого значения. Скорость вентилятора интерполируется между минимальной и максимальной скоростями зависимости от времени печати слоя." +# AI Translated +msgctxt "second" msgid "s" msgstr "с" @@ -14488,6 +14549,62 @@ msgstr "Материал поддержки" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Обычно используется для печати поддержки и связующего слоя (интерфейса)." +# AI Translated +msgid "Is mixed filament" +msgstr "Является смешанным материалом" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Определяет, является ли этот слот материала смешанным материалом, состоящим из нескольких физических материалов" + +# AI Translated +msgid "Mixed filament components" +msgstr "Компоненты смешанного материала" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Разделённые запятыми индексы материалов-компонентов, начиная с 1, например \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Доли подслоёв смешанного материала" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Разделённые запятыми значения долей, дающие в сумме 1.0, например \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Градиент смешанного материала" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Включает режим градиента по оси Z для подслоёв смешанного материала. При включении доли подслоёв линейно меняются от слоя к слою." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Диапазон градиента смешанного материала" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Начальная и конечная доли первого компонента в режиме градиента. Пара значений через запятую, например \"0.10,0.90\" означает от 10% до 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Кривая градиента смешанного материала" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Необязательная пользовательская кривая в стиле Photoshop, сопоставляющая прогресс по оси Z с долей первого компонента. Задаётся как контрольные точки, разделённые вертикальной чертой, в виде \"x,y\" (устаревший формат) или \"x,y,m_in,m_out\", если требуется переопределить касательную (пустое значение или \"nan\" означает использование значения PCHIP по умолчанию). x лежит в [0,1]; y ограничивается заданным диапазоном долей, например \"0,0.15|0.5,0.50|1,0.85\". Если поле пустое, вместо этого используется линейный gradient_range." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Градиент смешанного материала по частям" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Если включён режим градиента, градиент применяется к каждой части сборки отдельно, а не ко всей сборке как к единому диапазону Z." + # ??? Настройка в режиме разработчика. Должна отображаться где-то в настройках # профиля, но поиском не ищется. msgid "Filament printable" @@ -15878,6 +15995,8 @@ msgstr "Максимальное усилие оси Y" msgid "The allowed maximum output force of Y axis" msgstr "Максимально допустимое усилие по оси Y." +# AI Translated +msgctxt "Newton" msgid "N" msgstr "Н" @@ -15887,6 +16006,8 @@ msgstr "Масса стола (оси Y)" msgid "The machine bed mass load of Y axis" msgstr "Пассивная нагрузка механики оси Y массой стола." +# AI Translated +msgctxt "gram" msgid "g" msgstr "г" @@ -17660,6 +17781,14 @@ msgstr "" "\n" "Внимание: процент первичного отката будет увеличен, если длины очистки окажется недостаточно при текущей скорости отката (или из-за иных ограничений)." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Подслой смешанного цвета" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Включает разбиение на подслои смешанного цвета. При включении слои, содержащие материалы смешанного цвета, разбиваются на подслои для получения эффекта смешивания цветов." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Черновая башня – специальная структура, которая используется для прочистки сопла от остатков материала и стабилизации давления внутри сопла при смене экструдера, чтобы избежать дефектов на поверхности печатаемой модели." @@ -18818,6 +18947,10 @@ msgstr "Не удалось обнаружить форму или создат msgid "The supplied file couldn't be read because it's empty." msgstr "Невозможно прочитать файл, так как он пуст." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Формат файла несовместим и не может быть прочитан." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Неизвестный формат файла: входной файл должен иметь расширение *.stl, *.obj или *.amf(.xml)." @@ -21120,8 +21253,9 @@ msgstr "Удалено" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "Включить умное назначение материалов: назначить один материал нескольким соплам для максимальной экономии" -msgid "Fila Saving" -msgstr "Экономия материала" +# AI Translated +msgid "File Saving" +msgstr "Сохранение файла" msgid "Don't remind me again" msgstr "Больше не показывать" @@ -21486,6 +21620,9 @@ msgstr "Перезапустить сейчас" msgid "NO RAMMING AT ALL" msgstr "Рэмминг отключён" +msgid "s" +msgstr "с" + # Тянется только в окно настроек рэмминга msgid "Volumetric speed" msgstr "Объёмный расход" @@ -22081,6 +22218,36 @@ msgstr "" "Предотвращение коробления материала\n" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Для нативного отображения трансляции в Wayland требуется gtksink (плагин для GStreamer). Установите необходимый пакет плагинов и перезапустите OrcaSlicer." + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Не удалось запустить нативную трансляцию GSteramer через Wayland. Проверьте наличие установленного пакета плагинов GStreamer." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Для этой задачи требуется Windows Media Player! Хотите включить его в своей ОС?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "Компонент BambuSource неправильно зарегистрирован для воспроизведения медиафайлов! Нажмите «Да», чтобы повторно зарегистрировать его" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Отсутствует компонент BambuSource для воспроизведения медиа. Переустановите OrcaSlicer или обратитесь за помощью к сообществу." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "При использовании компонентов BambuSource из другого инсталлятора, воспроизведение видео может работать некорректно! Нажмите «Да», чтобы исправить это." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "В вашей системе отсутствуют кодеки H.264 для GStreamer, которые необходимы для воспроизведения видео (попробуйте установить пакеты gstreamer1.0-plugins-bad или gstreamer1.0-libav, а затем перезапустить Orca Slicer)." + +#~ msgid "N" +#~ msgstr "Н" + +#~ msgid "g" +#~ msgstr "г" + +#~ msgid "Fila Saving" +#~ msgstr "Экономия материала" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index fce8c33b10..7ec20d136d 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3289,6 +3289,10 @@ msgstr "Redigera" msgid "Merge with" msgstr "Slå ihop med" +# AI Translated +msgid "Decompose Color" +msgstr "Dela upp färg" + # AI Translated msgid "Delete this filament" msgstr "Radera detta filament" @@ -3610,6 +3614,10 @@ msgstr "Montering" msgid "Merge parts to an object" msgstr "Slå ihop delar till ett objekt" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Att använda variabel lagerhöjd tillsammans med underlager med blandad färg kan ge sämre färgblandningskvalitet." + # AI Translated msgid "Add layers" msgstr "Lägg till lager" @@ -8644,6 +8652,10 @@ msgstr "Anpassa aktuell platta" msgid "The %s nozzle can not print %s." msgstr "Nozzeln %s kan inte skriva ut %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Att skriva ut filament med blandad färg på en skrivare med en enda extruder kräver täta filamentbyten och rensningar, vilket kan öka spillet och risken för stopp i nozzeln eller avfallsrännan avsevärt." + # AI Translated #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" @@ -8787,6 +8799,26 @@ msgstr "Synkronisera filament listan från AMS" msgid "Set filaments to use" msgstr "Ställ in filament som ska användas" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Lägg till blandat filament" + +# AI Translated +msgid "Mixed Filament" +msgstr "Blandat filament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Ta bort det senaste blandade filamentet" + +# AI Translated +msgid "Add mixed filament" +msgstr "Lägg till blandat filament" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Det blandade filamentet har ogiltiga eller inkompatibla komponenter. Redigera de berörda posterna igen." + msgid "Search plate, object and part." msgstr "Sök platta, objekt och del." @@ -8794,6 +8826,18 @@ msgstr "Sök platta, objekt och del." msgid "Pellets" msgstr "Pellets" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Det blandade filamentet har trasiga komponentreferenser" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Redigera / Radera / Slå ihop" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Det blandade målfilamentet använder detta fysiska filament som komponent. Sammanslagningen tar bort det fysiska filamentet och kan göra det blandade filamentet ogiltigt. Fortsätt?" + # AI Translated #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." @@ -8994,6 +9038,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Objekt i flera delar har upptäckts" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Matchar texturer mot filament" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Varning vid texturimport" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Ladda dessa filer som ett enkelt objekt med multipla delar?\n" @@ -9223,6 +9275,22 @@ msgstr "" msgid "Sync now" msgstr "Synkronisera nu" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Texturimporten misslyckades. Modellen verkar innehålla texturdata, men importprocessen kunde inte slutföras. Modellen importeras endast som geometri." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Tillämpar texturfärger..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Uppdaterar 3D-vyn..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Texturfärger tillämpade." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Fortsätt med redigerings inställningarna till nytt projekt eller avfärda dem" @@ -10641,6 +10709,10 @@ msgstr "Spiral vas" msgid "First layer filament sequence" msgstr "Första lagrets filament sekvens" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Filamentlistan innehåller blandade filament. Den anpassade filamentordningen får ingen effekt." + msgid "By Layer" msgstr "Per lager" @@ -12783,33 +12855,6 @@ msgstr "Rensnings volym för filament byte" msgid "Please choose the filament colour" msgstr "Välj filamentfärg" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Liveview i Wayland kräver GStreamers GTK-videosink. Installera insticksmodulen gtksink för GStreamer och starta sedan om OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Det gick inte att initiera Waylands GStreamer-videosink. Kontrollera installationen av din GStreamer GTK-insticksmodul." - -# AI Translated -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Windows Media Player krävs för den här uppgiften! Vill du aktivera 'Windows Media Player' i ditt operativsystem?" - -# AI Translated -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource har inte registrerats korrekt för mediauppspelning! Tryck på Ja för att registrera om den. Du får två frågor" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Saknad BambuSource-komponent registrerad för mediauppspelning! Installera om OrcaSlicer eller sök hjälp i gemenskapen." - -# AI Translated -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Du använder en BambuSource från en annan installation, videouppspelningen kanske inte fungerar korrekt! Tryck på Ja för att åtgärda det." - -# AI Translated -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Ditt system saknar H.264-kodekar för GStreamer, som krävs för att spela upp video. (Prova att installera paketen gstreamer1.0-plugins-bad eller gstreamer1.0-libav och starta sedan om Orca Slicer.)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Molnagenten är inte tillgänglig. Starta om OrcaSlicer och försök igen." @@ -13572,6 +13617,10 @@ msgstr "Om du ändå vill skriva ut kan du aktivera alternativet i Inställninga msgid "No extrusions under current settings." msgstr "Nuvarande inställning har ingen extrudering." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Ett blandat filament med gradient används, men 'Underlager med blandad färg' är inaktiverat. Gradienten kommer inte att skrivas ut." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Smooth läge för timelapse stöds inte när ”per objekt” -sekvens är aktiverad." @@ -13614,6 +13663,10 @@ msgstr "Du kan behöva minska modellens storlek eller ändra de aktuella utskrif msgid "Variable layer height is not supported with Organic supports." msgstr "Variabel lagerhöjd stöds inte med organiska support." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Filamentet för prime tornet kan inte vara ett blandat filament." + # AI Translated msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Olika nozzeldiametrar och olika filamentdiametrar kanske inte fungerar bra när prime tornet är aktiverat. Det är mycket experimentellt, så var försiktig." @@ -14012,27 +14065,21 @@ msgstr "mm eller %" msgid "Other layers" msgstr "Andra lager" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "Byggplattans temperatur för alla lager utom det första. Värdet 0 innebär att filamentet inte stöder utskrift på Cool Plate SuperTack." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på Cool Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured Cool Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på Textured Cool Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Engineering Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Ett värde på 0 betyder att filamentet inte stöder utskrift på Engineering Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the High Temp Plate." msgstr "Detta är byggplattans temperatur för lager förutom det första. Värdet 0 betyder att filamentet inte stöder utskrift på High Temp Plate." -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Textured PEI Plate." msgstr "Byggplattans temperatur efter det första lagret. 0 betyder att filamentet inte stöds på den texturerade PEI-plattan." @@ -15538,6 +15585,8 @@ msgstr "Lager tid" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Del kylfläkten kommer att aktiveras för lager vars beräknade tid är kortare än detta värde. Fläkthastigheten interpoleras mellan den lägsta och högsta fläkthastigheten enligt utskriftstiden för lager" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -15916,6 +15965,62 @@ msgstr "Supportmaterial" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Support material används ofta för att skriva ut support och stödja gränssnittet" +# AI Translated +msgid "Is mixed filament" +msgstr "Är blandat filament" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Anger om denna filamentplats är ett blandat filament som består av flera fysiska filament" + +# AI Translated +msgid "Mixed filament components" +msgstr "Komponenter i blandat filament" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Kommaseparerade index för komponentfilamenten, med start på 1, t.ex. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Underlagerandelar för blandat filament" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Kommaseparerade andelsvärden vars summa är 1.0, t.ex. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradient för blandat filament" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Aktiverar gradientläge i Z-riktningen för det blandade filamentets underlager. När det är aktiverat varierar underlagrens andelar linjärt över lagren." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Gradientintervall för blandat filament" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Start- och slutandel för den första komponenten i gradientläge. Kommaseparerat par, t.ex. \"0.10,0.90\" betyder 10% till 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Gradientkurva för blandat filament" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Valfri anpassad kurva i Photoshop-stil som mappar Z-förloppet till den första komponentens andel. Kodas som kontrollpunkter separerade med lodstreck, antingen \"x,y\" (äldre format) eller \"x,y,m_in,m_out\" när tangenten behöver åsidosättas (ett tomt värde eller \"nan\" använder PCHIP-standarden). x ligger i [0,1]; y begränsas till det konfigurerade andelsintervallet, t.ex. \"0,0.15|0.5,0.50|1,0.85\". Om fältet är tomt används det linjära gradient_range i stället." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradient per del för blandat filament" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "När gradientläget är aktiverat tillämpas gradienten på varje del i en montering separat i stället för att behandla hela monteringen som ett enda Z-intervall." + # AI Translated msgid "Filament printable" msgstr "Filament utskrivbart" @@ -17363,6 +17468,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Den maximalt tillåtna utgående kraften för Y-axeln" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -17373,6 +17479,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Maskinbäddens massbelastning på Y-axeln" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -19172,6 +19279,14 @@ msgstr "" "\n" "Om du anger ett värde i inställningen reduktionsmängd före avtorkning nedan utförs eventuell överskjutande reduktion före avtorkningen, annars utförs den efteråt." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Underlager med blandad färg" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Aktiverar uppdelning i underlager med blandad färg. När det är aktiverat delas lager som innehåller filament med blandad färg upp i underlager för att skapa färgblandningseffekter." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Avstryknings tornet kan användas för att avlägsna rester på munstycket och stabilisera kammartrycket inuti munstycket för att undvika utseendefel vid utskrift av objekt." @@ -20445,6 +20560,10 @@ msgstr "Det gick inte att skapa mesh från modellfilen, eller så saknas en gilt msgid "The supplied file couldn't be read because it's empty." msgstr "Den medföljande filen kunde inte läsas eftersom den är tom." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Filformatet är inkompatibelt och kan inte tolkas." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Okänt filformat: indata filen måste ha tillägget .stl, .obj eller .amf(.xml)." @@ -23021,8 +23140,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Aktivera smart filamenttilldelning: Tilldela ett filament till flera nozzlar för att maximera besparingen" # AI Translated -msgid "Fila Saving" -msgstr "Filamentbesparing" +msgid "File Saving" +msgstr "Filsparande" # AI Translated msgid "Don't remind me again" @@ -23495,6 +23614,9 @@ msgstr "Starta om nu" msgid "NO RAMMING AT ALL" msgstr "INGEN RAMMING ALLS" +msgid "s" +msgstr "s" + # AI Translated msgid "Volumetric speed" msgstr "Volymetrisk hastighet" @@ -24175,6 +24297,45 @@ msgstr "" "Undvik vridning\n" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Liveview i Wayland kräver GStreamers GTK-videosink. Installera insticksmodulen gtksink för GStreamer och starta sedan om OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Det gick inte att initiera Waylands GStreamer-videosink. Kontrollera installationen av din GStreamer GTK-insticksmodul." + +# AI Translated +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Windows Media Player krävs för den här uppgiften! Vill du aktivera 'Windows Media Player' i ditt operativsystem?" + +# AI Translated +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource har inte registrerats korrekt för mediauppspelning! Tryck på Ja för att registrera om den. Du får två frågor" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Saknad BambuSource-komponent registrerad för mediauppspelning! Installera om OrcaSlicer eller sök hjälp i gemenskapen." + +# AI Translated +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Du använder en BambuSource från en annan installation, videouppspelningen kanske inte fungerar korrekt! Tryck på Ja för att åtgärda det." + +# AI Translated +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Ditt system saknar H.264-kodekar för GStreamer, som krävs för att spela upp video. (Prova att installera paketen gstreamer1.0-plugins-bad eller gstreamer1.0-libav och starta sedan om Orca Slicer.)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Filamentbesparing" + # AI Translated #~ msgid "" #~ "Layer height is too small.\n" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index ca12a4ced2..16dcb17ab1 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -2942,6 +2942,10 @@ msgstr "แก้ไข" msgid "Merge with" msgstr "รวมกับ" +# AI Translated +msgid "Decompose Color" +msgstr "แยกสี" + msgid "Delete this filament" msgstr "ลบเส้นพลาสติกนี้" @@ -3237,6 +3241,10 @@ msgstr "การประกอบ" msgid "Merge parts to an object" msgstr "รวมชิ้นส่วนเป็นวัตถุเดียว" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "การใช้ความสูงเลเยอร์แบบแปรผันร่วมกับซับเลเยอร์สีผสมอาจทำให้คุณภาพการผสมสีไม่ดี" + # AI Translated msgid "Add layers" msgstr "เพิ่มเลเยอร์" @@ -7807,6 +7815,10 @@ msgstr "ปรับแต่งแผ่นปัจจุบัน" msgid "The %s nozzle can not print %s." msgstr "หัวฉีด %s ไม่สามารถพิมพ์ %s ได้" +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "การพิมพ์เส้นพลาสติกสีผสมบนเครื่องพิมพ์ที่มีชุดดันเส้นเดียวต้องเปลี่ยนเส้นพลาสติกและไล่เส้นบ่อยครั้ง ซึ่งอาจเพิ่มเศษวัสดุและความเสี่ยงที่หัวฉีดหรือช่องทิ้งเศษวัสดุจะอุดตันอย่างมาก" + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "ไม่แนะนำให้ผสม %1% กับ %2% ในการพิมพ์\n" @@ -7932,12 +7944,44 @@ msgstr "ประสานรายการเส้นพลาสติกจ msgid "Set filaments to use" msgstr "ตั้งค่าเส้นพลาสติกที่จะใช้" +# AI Translated +msgid "Add Mixed Filament" +msgstr "เพิ่มเส้นพลาสติกผสม" + +# AI Translated +msgid "Mixed Filament" +msgstr "เส้นพลาสติกผสม" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "ลบเส้นพลาสติกผสมล่าสุด" + +# AI Translated +msgid "Add mixed filament" +msgstr "เพิ่มเส้นพลาสติกผสม" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "เส้นพลาสติกผสมมีส่วนประกอบที่ไม่ถูกต้องหรือไม่ตรงกัน กรุณาแก้ไขรายการที่ได้รับผลกระทบอีกครั้ง" + msgid "Search plate, object and part." msgstr "ค้นหาจาน วัตถุ และชิ้นส่วน" msgid "Pellets" msgstr "เม็ด" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "เส้นพลาสติกผสมมีการอ้างอิงส่วนประกอบที่เสียหาย" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "แก้ไข / ลบ / รวม" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "เส้นพลาสติกผสมปลายทางใช้เส้นพลาสติกจริงนี้เป็นส่วนประกอบ การรวมจะลบเส้นพลาสติกจริงนี้และอาจทำให้เส้นพลาสติกผสมใช้ไม่ได้ ดำเนินการต่อหรือไม่?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "หลังจากเสร็จสิ้นการดำเนินการของคุณ โครงการ %s จะถูกปิดและสร้างโครงการใหม่" @@ -8116,6 +8160,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "ตรวจพบวัตถุที่มีหลายส่วน" +# AI Translated +msgid "Matching textures to filaments" +msgstr "กำลังจับคู่พื้นผิวกับเส้นพลาสติก" + +# AI Translated +msgid "Texture Import Warning" +msgstr "คำเตือนการนำเข้าพื้นผิว" + msgid "Load these files as a single object with multiple parts?\n" msgstr "โหลดไฟล์เหล่านี้เป็นออบเจ็กต์เดียวที่มีหลายส่วนใช่ไหม\n" @@ -8326,6 +8378,22 @@ msgstr "" msgid "Sync now" msgstr "ซิงค์เลย" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "การนำเข้าพื้นผิวล้มเหลว โมเดลดูเหมือนจะมีข้อมูลพื้นผิว แต่ไม่สามารถดำเนินการนำเข้าพื้นผิวจนเสร็จสิ้นได้ โมเดลจะถูกนำเข้าเป็นเรขาคณิตเท่านั้น" + +# AI Translated +msgid "Applying texture colors..." +msgstr "กำลังใช้สีพื้นผิว..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "กำลังอัปเดตมุมมอง 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "ใช้สีพื้นผิวแล้ว" + msgid "You can keep the modified presets for the new project or discard them" msgstr "คุณสามารถเก็บค่าที่ตั้งไว้ล่วงหน้าที่แก้ไขแล้วไว้ในโปรเจ็กต์ใหม่หรือทิ้งก็ได้" @@ -9568,6 +9636,10 @@ msgstr "แจกันเกลียว" msgid "First layer filament sequence" msgstr "ลำดับเส้นพลาสติกชั้นแรก" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "รายการเส้นพลาสติกมีเส้นพลาสติกผสมอยู่ ลำดับเส้นพลาสติกที่กำหนดเองจะไม่มีผล" + msgid "By Layer" msgstr "โดยเลเยอร์" @@ -11469,27 +11541,6 @@ msgstr "ปริมาณการไล่เส้นชิ่งสำหร msgid "Please choose the filament colour" msgstr "กรุณาเลือกสีเส้นพลาสติก" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Native Wayland liveview ต้องใช้ GStreamer GTK video sink โปรดติดตั้งปลั๊กอิน gtksink สำหรับ GStreamer จากนั้นรีสตาร์ท OrcaSlicer" - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "ไม่สามารถเริ่มต้น sink วิดีโอ Wayland GStreamer ดั้งเดิมได้ โปรดตรวจสอบการติดตั้งปลั๊กอิน GStreamer GTK ของคุณ" - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "งานนี้ต้องใช้ Windows Media Player! คุณต้องการเปิดใช้งาน 'Windows Media Player' สำหรับระบบปฏิบัติการของคุณหรือไม่?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource ยังไม่ได้รับการลงทะเบียนอย่างถูกต้องสำหรับการเล่นสื่อ! กดใช่เพื่อลงทะเบียนใหม่ คุณจะได้รับการเลื่อนตำแหน่งสองครั้ง" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "ไม่มีส่วนประกอบ BambuSource ที่ลงทะเบียนสำหรับการเล่นสื่อ! โปรดติดตั้ง OrcaSlicer ใหม่หรือขอความช่วยเหลือจากชุมชน" - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "การใช้ BambuSource จากการติดตั้งอื่น การเล่นวิดีโออาจทำงานไม่ถูกต้อง! กดใช่เพื่อแก้ไข" - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "ระบบของคุณไม่มีตัวแปลงสัญญาณ H.264 สำหรับ GStreamer ซึ่งจำเป็นในการเล่นวิดีโอ (ลองติดตั้งแพ็คเกจ gstreamer1.0-plugins-bad หรือ gstreamer1.0-libav จากนั้นรีสตาร์ท Orca Slicer หรือไม่)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "ตัวแทนระบบคลาวด์ไม่พร้อมใช้งาน โปรดรีสตาร์ท OrcaSlicer แล้วลองอีกครั้ง" @@ -12193,6 +12244,10 @@ msgstr "หากคุณยังต้องการพิมพ์ คุ msgid "No extrusions under current settings." msgstr "ไม่มีการอัดขึ้นรูปภายใต้การตั้งค่าปัจจุบัน" +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "มีการใช้เส้นพลาสติกผสมแบบเกรเดียนต์ แต่ 'ซับเลเยอร์สีผสม' ถูกปิดใช้งาน เกรเดียนต์จะไม่ถูกพิมพ์" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "ไม่รองรับโหมดไทม์แลปส์แบบราบรื่นเมื่อเปิดใช้งานลำดับ \"ตามวัตถุ\"" @@ -12229,6 +12284,10 @@ msgstr "คุณอาจต้องการลดขนาดแบบจำ msgid "Variable layer height is not supported with Organic supports." msgstr "ไม่รองรับความสูงของเลเยอร์ที่แปรผันได้ด้วยการรองรับแบบออร์แกนิก" +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "เส้นพลาสติกของ Wipe Tower ไม่สามารถเป็นเส้นพลาสติกผสมได้" + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "เส้นผ่านศูนย์กลางของหัวฉีดที่แตกต่างกันและเส้นผ่านศูนย์กลางของเส้นพลาสติกที่แตกต่างกันอาจทำงานได้ไม่ดีนักเมื่อเปิดใช้งาน Prime Tower ยังเป็นการทดลองอยู่มาก ดังนั้นโปรดดำเนินการด้วยความระมัดระวัง" @@ -13941,6 +14000,8 @@ msgstr "เวลาเลเยอร์" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "พัดลมระบายความร้อนบางส่วนจะถูกเปิดใช้งานสำหรับเลเยอร์ที่เวลาโดยประมาณสั้นกว่าค่านี้ ความเร็วพัดลมจะถูกประมาณค่าระหว่างความเร็วพัดลมขั้นต่ำและสูงสุดตามเวลาการพิมพ์เลเยอร์" +# AI Translated +msgctxt "second" msgid "s" msgstr "วินาที" @@ -14248,6 +14309,62 @@ msgstr "วัสดุส่วนรองรับ" msgid "Support material is commonly used to print supports and support interfaces." msgstr "วัสดุรองรับมักใช้ในการพิมพ์ส่วนรองรับและอินเทอร์เฟซรองรับ" +# AI Translated +msgid "Is mixed filament" +msgstr "เป็นเส้นพลาสติกผสมหรือไม่" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "กำหนดว่าช่องเส้นพลาสติกนี้เป็นเส้นพลาสติกผสมที่ประกอบด้วยเส้นพลาสติกจริงหลายเส้นหรือไม่" + +# AI Translated +msgid "Mixed filament components" +msgstr "ส่วนประกอบของเส้นพลาสติกผสม" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "ลำดับของเส้นพลาสติกส่วนประกอบโดยเริ่มจาก 1 คั่นด้วยเครื่องหมายจุลภาค เช่น \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "สัดส่วนซับเลเยอร์ของเส้นพลาสติกผสม" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "ค่าสัดส่วนที่คั่นด้วยเครื่องหมายจุลภาคและรวมกันได้ 1.0 เช่น \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "เกรเดียนต์ของเส้นพลาสติกผสม" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "เปิดใช้โหมดเกรเดียนต์ในแนวแกน Z สำหรับซับเลเยอร์ของเส้นพลาสติกผสม เมื่อเปิดใช้ สัดส่วนของซับเลเยอร์จะเปลี่ยนแปลงเชิงเส้นตามเลเยอร์" + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "ช่วงเกรเดียนต์ของเส้นพลาสติกผสม" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "สัดส่วนเริ่มต้นและสิ้นสุดของส่วนประกอบแรกในโหมดเกรเดียนต์ เป็นคู่ค่าที่คั่นด้วยเครื่องหมายจุลภาค เช่น \"0.10,0.90\" หมายถึง 10% ถึง 90%" + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "เส้นโค้งเกรเดียนต์ของเส้นพลาสติกผสม" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "เส้นโค้งกำหนดเองสไตล์ Photoshop (ไม่บังคับ) ที่แมปความคืบหน้าในแกน Z กับสัดส่วนของส่วนประกอบแรก เข้ารหัสเป็นจุดควบคุมที่คั่นด้วยเครื่องหมายขีดตั้ง ในรูปแบบ \"x,y\" (รูปแบบเดิม) หรือ \"x,y,m_in,m_out\" เมื่อจำเป็นต้องกำหนดค่าแทนเจนต์เอง (ค่าว่างหรือ \"nan\" หมายถึงใช้ค่าเริ่มต้นของ PCHIP) x อยู่ในช่วง [0,1] ส่วน y จะถูกจำกัดให้อยู่ในช่วงสัดส่วนที่ตั้งค่าไว้ เช่น \"0,0.15|0.5,0.50|1,0.85\" หากเว้นว่างไว้ จะใช้ gradient_range แบบเชิงเส้นแทน" + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "เกรเดียนต์แยกตามชิ้นส่วนของเส้นพลาสติกผสม" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "เมื่อเปิดใช้โหมดเกรเดียนต์ จะใช้เกรเดียนต์กับแต่ละชิ้นส่วนของการประกอบแยกกัน แทนที่จะถือว่าการประกอบทั้งหมดเป็นช่วง Z เดียว" + msgid "Filament printable" msgstr "พิมพ์เส้นพลาสติกได้" @@ -15502,8 +15619,9 @@ msgid "The allowed maximum output force of Y axis" msgstr "แรงขับออกสูงสุดที่อนุญาตของแกน Y" # AI Translated +msgctxt "Newton" msgid "N" -msgstr "N" +msgstr "นิวตัน" # AI Translated msgid "Bed mass of the Y axis" @@ -15514,8 +15632,9 @@ msgid "The machine bed mass load of Y axis" msgstr "ภาระมวลฐานของเครื่องบนแกน Y" # AI Translated +msgctxt "gram" msgid "g" -msgstr "g" +msgstr "กรัม" # AI Translated msgid "The allowed max printed mass" @@ -17088,6 +17207,14 @@ msgstr "" "\n" "การตั้งค่าในจำนวนการถอนก่อนการล้างการตั้งค่าด้านล่างจะทำการถอนส่วนที่เกินก่อนการล้าง มิฉะนั้นจะดำเนินการหลังจากนั้น" +# AI Translated +msgid "Mixed color sublayer" +msgstr "ซับเลเยอร์สีผสม" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "เปิดใช้การแบ่งซับเลเยอร์สีผสม เมื่อเปิดใช้ เลเยอร์ที่มีเส้นพลาสติกสีผสมจะถูกแบ่งเป็นซับเลเยอร์เพื่อให้เกิดเอฟเฟกต์การผสมสี" + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Wipe Tower สามารถใช้เพื่อทำความสะอาดสิ่งตกค้างบนหัวฉีด และทำให้แรงดันในห้องภายในหัวฉีดคงที่ เพื่อหลีกเลี่ยงข้อบกพร่องในลักษณะที่ปรากฏเมื่อพิมพ์วัตถุ" @@ -18171,6 +18298,10 @@ msgstr "การประสานไฟล์โมเดลล้มเหล msgid "The supplied file couldn't be read because it's empty." msgstr "ไม่สามารถอ่านไฟล์ที่ให้มาได้เนื่องจากไฟล์ว่างเปล่า" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "รูปแบบไฟล์ไม่รองรับ จึงไม่สามารถอ่านข้อมูลได้" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "รูปแบบไฟล์ที่ไม่รู้จัก ไฟล์อินพุตต้องมีนามสกุล .stl, .obj, .amf(.xml)" @@ -20473,8 +20604,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "เปิดใช้การกำหนดเส้นพลาสติกอัจฉริยะ: กำหนดเส้นพลาสติกหนึ่งชนิดให้กับหัวฉีดหลายตัวเพื่อประหยัดสูงสุด" # AI Translated -msgid "Fila Saving" -msgstr "การประหยัดเส้นพลาสติก" +msgid "File Saving" +msgstr "การบันทึกไฟล์" msgid "Don't remind me again" msgstr "ไม่ต้องเตือนฉันอีก" @@ -20839,6 +20970,9 @@ msgstr "เริ่มใหม่ตอนนี้" msgid "NO RAMMING AT ALL" msgstr "ไม่มีการกระแทกเลย" +msgid "s" +msgstr "วินาที" + msgid "Volumetric speed" msgstr "ความเร็วปริมาตร" @@ -21463,6 +21597,39 @@ msgstr "" "หลีกเลี่ยงการบิดเบี้ยว\n" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Native Wayland liveview ต้องใช้ GStreamer GTK video sink โปรดติดตั้งปลั๊กอิน gtksink สำหรับ GStreamer จากนั้นรีสตาร์ท OrcaSlicer" + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "ไม่สามารถเริ่มต้น sink วิดีโอ Wayland GStreamer ดั้งเดิมได้ โปรดตรวจสอบการติดตั้งปลั๊กอิน GStreamer GTK ของคุณ" + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "งานนี้ต้องใช้ Windows Media Player! คุณต้องการเปิดใช้งาน 'Windows Media Player' สำหรับระบบปฏิบัติการของคุณหรือไม่?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource ยังไม่ได้รับการลงทะเบียนอย่างถูกต้องสำหรับการเล่นสื่อ! กดใช่เพื่อลงทะเบียนใหม่ คุณจะได้รับการเลื่อนตำแหน่งสองครั้ง" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "ไม่มีส่วนประกอบ BambuSource ที่ลงทะเบียนสำหรับการเล่นสื่อ! โปรดติดตั้ง OrcaSlicer ใหม่หรือขอความช่วยเหลือจากชุมชน" + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "การใช้ BambuSource จากการติดตั้งอื่น การเล่นวิดีโออาจทำงานไม่ถูกต้อง! กดใช่เพื่อแก้ไข" + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "ระบบของคุณไม่มีตัวแปลงสัญญาณ H.264 สำหรับ GStreamer ซึ่งจำเป็นในการเล่นวิดีโอ (ลองติดตั้งแพ็คเกจ gstreamer1.0-plugins-bad หรือ gstreamer1.0-libav จากนั้นรีสตาร์ท Orca Slicer หรือไม่)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "การประหยัดเส้นพลาสติก" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index b7a2c5b682..0e51b7ca9c 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" @@ -2969,6 +2969,10 @@ msgstr "Düzenle" msgid "Merge with" msgstr "Şununla birleştir" +# AI Translated +msgid "Decompose Color" +msgstr "Rengi ayrıştır" + msgid "Delete this filament" msgstr "Bu filamenti sil" @@ -3269,6 +3273,10 @@ msgstr "Birleştir" msgid "Merge parts to an object" msgstr "Parçaları bir nesnede birleştir" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Değişken katman yüksekliğinin karışık renk alt katmanı ile birlikte kullanılması renk karışımının kalitesini düşürebilir." + # AI Translated msgid "Add layers" msgstr "Katman ekle" @@ -7897,6 +7905,10 @@ msgstr "Mevcut plakayı özelleştir" msgid "The %s nozzle can not print %s." msgstr "%s püskürtme ucu %s'yi yazdıramıyor." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Karışık renkli filamenti tek ekstruderli bir yazıcıda basmak sık filament değişimi ve yıkama gerektirir; bu da atığı ve nozul ya da atık oluğu tıkanma riskini önemli ölçüde artırabilir." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Yazdırmada %1% ile %2%'nin karıştırılması önerilmez.\n" @@ -8022,12 +8034,44 @@ msgstr "Filament listesini AMS'den senkronize edin" msgid "Set filaments to use" msgstr "Kullanılacak filamentleri ayarla" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Karışık Filament Ekle" + +# AI Translated +msgid "Mixed Filament" +msgstr "Karışık Filament" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Son karışık filamenti kaldır" + +# AI Translated +msgid "Add mixed filament" +msgstr "Karışık filament ekle" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Karışık filamentte geçersiz veya uyumsuz bileşenler var. Lütfen etkilenen girdileri yeniden düzenleyin." + msgid "Search plate, object and part." msgstr "Arama plakası, nesne ve parça." msgid "Pellets" msgstr "Peletler" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Karışık filamentin bileşen referansları bozuk" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Düzenle / Sil / Birleştir" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Hedef karışık filament bu fiziksel filamenti bileşen olarak kullanıyor. Birleştirme bu fiziksel filamenti kaldıracak ve karışık filamenti geçersiz kılabilir. Devam edilsin mi?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "İşleminizi tamamladıktan sonra %s projesi kapatılacak ve yeni bir proje oluşturulacak." @@ -8214,6 +8258,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Çok parçalı nesne algılandı" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Dokular filamentlerle eşleştiriliyor" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Doku İçe Aktarma Uyarısı" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Bu dosyalar birden fazla parçadan oluşan tek bir nesne olarak mı yüklensin?\n" @@ -8425,6 +8477,22 @@ msgstr "" msgid "Sync now" msgstr "Şimdi senkronize et" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Doku içe aktarılamadı. Model doku verisi içeriyor gibi görünüyor, ancak içe aktarma işlemi tamamlanamadı. Model yalnızca geometri olarak içe aktarılacak." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Doku renkleri uygulanıyor..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "3D görünüm güncelleniyor..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Doku renkleri uygulandı." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Değiştirilen ön ayarları yeni projede tutabilir veya silebilirsiniz" @@ -9712,6 +9780,10 @@ msgstr "Spiral vazo" msgid "First layer filament sequence" msgstr "İlk katman filament dizisi" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Filament listesi karışık filamentler içeriyor. Özel filament sırası etkili olmayacak." + msgid "By Layer" msgstr "Katmana göre" @@ -11653,29 +11725,6 @@ msgstr "Filament değişimi için temizleme hacmi" msgid "Please choose the filament colour" msgstr "Lütfen filament rengini seçin" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Yerel Wayland canlı görüntüsü, GStreamer GTK video alıcısını gerektirir. Lütfen GStreamer için gtksink eklentisini yükleyin ve ardından OrcaSlicer'ı yeniden başlatın." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Yerel Wayland GStreamer video alıcısı başlatılamadı. Lütfen GStreamer GTK eklentisi kurulumunuzu denetleyin." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Bu görev için Windows Media Player gereklidir! İşletim sisteminiz için ‘Windows Media Player’ı etkinleştirmek istiyor musunuz?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource medya oynatımı için doğru şekilde kaydedilmemiş! Yeniden kaydetmek için Evet’e basın" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Medya oynatma için kayıtlı BambuSource bileşeni eksik! Lütfen OrcaSlicer'ı yeniden yükleyin veya topluluk yardımı isteyin." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Farklı bir kurulumdan bir BambuSource kullanıyorsunuz, video oynatma doğru çalışmayabilir! Düzeltmek için Evet’e basın." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Sisteminizde video oynatmak için gerekli olan GStreamer H.264 codec bileşenleri eksik. (gstreamer1.0-plugins-bad veya gstreamer1.0-libav paketlerini kurmayı deneyin, ardından Orca Slicer’ı yeniden başlatın)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Bulut aracısı kullanılamıyor. Lütfen OrcaSlicer'ı yeniden başlatıp yeniden deneyin." @@ -12401,6 +12450,10 @@ msgstr "Yine de yazdırmak istiyorsanız Tercihler / Denetim / Dilimleme / Karı msgid "No extrusions under current settings." msgstr "Mevcut ayarlarda ekstrüzyon yok." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Gradyanlı bir karışık filament kullanılıyor ancak 'Karışık renk alt katmanı' devre dışı. Gradyan basılmayacak." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "\"Nesneye göre\" dizisi etkinleştirildiğinde, hızlandırılmış çekimin yumuşak modu desteklenmez." @@ -12437,6 +12490,10 @@ msgstr "Modelinizin boyutunu küçültmek veya mevcut yazdırma ayarlarını de msgid "Variable layer height is not supported with Organic supports." msgstr "Değişken katman yüksekliği Organik desteklerle desteklenmez." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Silme kulesi filamenti karışık filament olamaz." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Farklı püskürtme ucu çapları ve farklı filament çapları, ana kule etkinleştirildiğinde iyi çalışmayabilir. Oldukça deneysel olduğundan lütfen dikkatli ilerleyin." @@ -14193,6 +14250,8 @@ msgstr "Katman süresi" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Tahmini süresi bu değerden kısa olan katlarda parça soğutma fanı devreye girecektir. Fan hızı, katman yazdırma süresine göre minimum ve maksimum fan hızları arasında enterpole edilir." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14502,6 +14561,62 @@ msgstr "Destek malzemesi" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Destek malzemesi yaygın olarak destek ve destek arayüzünü yazdırmak için kullanılır." +# AI Translated +msgid "Is mixed filament" +msgstr "Karışık filament mi" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Bu filament yuvasının birden fazla fiziksel filamentten oluşan bir karışık filament olup olmadığını belirler" + +# AI Translated +msgid "Mixed filament components" +msgstr "Karışık filament bileşenleri" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Bileşen filamentlerin virgülle ayrılmış, 1'den başlayan sıra numaraları; ör. \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Karışık filament alt katman oranları" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Toplamı 1.0 olan, virgülle ayrılmış oran değerleri; ör. \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Karışık filament gradyanı" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Karışık filamentin alt katmanları için Z yönünde gradyan modunu etkinleştirir. Etkinleştirildiğinde alt katman oranları katmanlar boyunca doğrusal olarak değişir." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Karışık filament gradyan aralığı" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Gradyan modunda ilk bileşenin başlangıç ve bitiş oranları. Virgülle ayrılmış çift; ör. \"0.10,0.90\" %10 ile %90 arasını ifade eder." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Karışık filament gradyan eğrisi" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Z ilerlemesini ilk bileşenin oranına eşleyen, isteğe bağlı Photoshop tarzı özel eğri. Dikey çizgiyle ayrılmış kontrol noktaları olarak kodlanır; \"x,y\" (eski) veya teğetin geçersiz kılınması gerektiğinde \"x,y,m_in,m_out\" biçiminde (boş değer ya da \"nan\" varsayılan PCHIP değerini kullanır). x [0,1] aralığındadır; y yapılandırılmış oran aralığına kırpılır; ör. \"0,0.15|0.5,0.50|1,0.85\". Boş bırakıldığında bunun yerine doğrusal gradient_range kullanılır." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Karışık filamentte parça başına gradyan" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Gradyan modu etkinleştirildiğinde, gradyan montajın tamamı tek bir Z aralığı olarak ele alınmak yerine montajdaki her parçaya bağımsız olarak uygulanır." + msgid "Filament printable" msgstr "Filament yazdırılabilir" @@ -15793,6 +15908,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Y ekseninin izin verilen maksimum çıkış kuvveti" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15805,6 +15921,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Y ekseninin makine yatağı kütle yükü" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17417,6 +17534,14 @@ msgstr "" "\n" "Aşağıdaki silme ayarından önce geri çekme miktarına bir değer ayarlamak, silme işleminden önce aşırı geri çekme işlemini gerçekleştirecektir, aksi takdirde silme işleminden sonra gerçekleştirilecektir." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Karışık renk alt katmanı" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Karışık renk alt katmanlarına bölmeyi etkinleştirir. Etkinleştirildiğinde, karışık renkli filament içeren katmanlar renk karışımı efektleri elde etmek için alt katmanlara bölünür." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Temizleme kulesi, nesneleri yazdırırken görünüm kusurlarını önlemek amacıyla nozul üzerindeki kalıntıları temizlemek ve nozul içindeki oda basıncını dengelemek için kullanılabilir." @@ -18505,6 +18630,10 @@ msgstr "Bir model dosyasının meshlenmesi başarısız oldu veya geçerli bir msgid "The supplied file couldn't be read because it's empty." msgstr "Seçilen dosya boş olduğundan okunamıyor." +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Dosya biçimi uyumsuz olduğundan ayrıştırılamıyor." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Bilinmeyen dosya formatı. Giriş dosyası .stl, .obj, .amf(.xml) uzantılı olmalıdır." @@ -20859,8 +20988,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Akıllı filament atamasını etkinleştir: Tasarrufu en üst düzeye çıkarmak için bir filamenti birden çok nozula atayın" # AI Translated -msgid "Fila Saving" -msgstr "Filament Tasarrufu" +msgid "File Saving" +msgstr "Dosya Kaydetme" msgid "Don't remind me again" msgstr "Bana bir daha hatırlatma" @@ -21268,6 +21397,9 @@ msgstr "Şimdi Yeniden Başlat" msgid "NO RAMMING AT ALL" msgstr "HİÇBİR ŞEKİLDE ÇARPMA YOK" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "Hacimsel hız" @@ -21829,7 +21961,8 @@ msgstr "" "Baskılarınızı plakalara ayırın\n" "Çok sayıda parçası olan bir modeli baskıya hazır ayrı kalıplara bölebileceğinizi biliyor muydunuz? Bu, tüm parçaları takip etme sürecini basitleştirecektir." -#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer Height] +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer +#: Height] msgid "" "Speed up your print with Adaptive Layer Height\n" "Did you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!" @@ -21902,7 +22035,8 @@ msgstr "" "Gücü artırın\n" "Modelin gücünü artırmak için daha fazla duvar halkası ve daha yüksek seyrek dolgu yoğunluğu kullanabileceğinizi biliyor muydunuz?" -#: resources/data/hints.ini: [hint:When do you need to print with the printer door opened] +#: resources/data/hints.ini: [hint:When do you need to print with the printer +#: door opened] msgid "" "When do you need to print with the printer door opened?\n" "Did you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki." @@ -21918,6 +22052,41 @@ msgstr "" "Eğilmeyi önleyin\n" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Yerel Wayland canlı görüntüsü, GStreamer GTK video alıcısını gerektirir. Lütfen GStreamer için gtksink eklentisini yükleyin ve ardından OrcaSlicer'ı yeniden başlatın." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Yerel Wayland GStreamer video alıcısı başlatılamadı. Lütfen GStreamer GTK eklentisi kurulumunuzu denetleyin." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Bu görev için Windows Media Player gereklidir! İşletim sisteminiz için ‘Windows Media Player’ı etkinleştirmek istiyor musunuz?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource medya oynatımı için doğru şekilde kaydedilmemiş! Yeniden kaydetmek için Evet’e basın" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Medya oynatma için kayıtlı BambuSource bileşeni eksik! Lütfen OrcaSlicer'ı yeniden yükleyin veya topluluk yardımı isteyin." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Farklı bir kurulumdan bir BambuSource kullanıyorsunuz, video oynatma doğru çalışmayabilir! Düzeltmek için Evet’e basın." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Sisteminizde video oynatmak için gerekli olan GStreamer H.264 codec bileşenleri eksik. (gstreamer1.0-plugins-bad veya gstreamer1.0-libav paketlerini kurmayı deneyin, ardından Orca Slicer’ı yeniden başlatın)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Filament Tasarrufu" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 8393e92947..3d23f7bbb1 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n" "Language-Team: Ukrainian\n" @@ -2906,6 +2906,10 @@ msgstr "Змінити" msgid "Merge with" msgstr "Обʼєднати з" +# AI Translated +msgid "Decompose Color" +msgstr "Розкласти колір" + msgid "Delete this filament" msgstr "Видалити цей філамент" @@ -3197,6 +3201,10 @@ msgstr "Збірка" msgid "Merge parts to an object" msgstr "Обʼєднати частини в обʼєкт" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Використання змінної висоти шару разом із підшаром змішаного кольору може погіршити якість змішування кольорів." + msgid "Add layers" msgstr "Додати шари" @@ -7891,6 +7899,10 @@ msgstr "Пристосувати поточну пластину" msgid "The %s nozzle can not print %s." msgstr "Сопло %s не може друкувати %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Друк філаменту змішаного кольору на принтері з одним екструдером потребує частої зміни філаменту та промивок, що може суттєво збільшити кількість відходів і ризик засмічення сопла або жолоба для відходів." + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "Змішування %1% з %2% в друці не рекомендується.\n" @@ -8019,12 +8031,44 @@ msgstr "Синхронізувати список ниток з AMS" msgid "Set filaments to use" msgstr "Встановити філаменти для використання" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Додати змішаний філамент" + +# AI Translated +msgid "Mixed Filament" +msgstr "Змішаний філамент" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Вилучити останній змішаний філамент" + +# AI Translated +msgid "Add mixed filament" +msgstr "Додати змішаний філамент" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "У змішаного філаменту недійсні або невідповідні компоненти. Будь ласка, відредагуйте відповідні записи ще раз." + msgid "Search plate, object and part." msgstr "Пошук пластини, об’єкта і деталі." msgid "Pellets" msgstr "Гранули" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "У змішаного філаменту пошкоджені посилання на компоненти" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Редагувати / Видалити / Обʼєднати" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Цільовий змішаний філамент використовує цей фізичний філамент як компонент. Обʼєднання вилучить цей фізичний філамент і може зробити змішаний філамент недійсним. Продовжити?" + # AI Translated #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." @@ -8223,6 +8267,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Виявлено обʼєкт, що складається з кількох частин" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Зіставлення текстур із філаментами" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Попередження під час імпорту текстури" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Завантажити ці файли як єдиний обʼєкт з кількома частинами?\n" @@ -8433,6 +8485,22 @@ msgstr "" msgid "Sync now" msgstr "Синхронізувати зараз" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Не вдалося імпортувати текстуру. Схоже, модель містить дані текстури, але завершити процес імпорту не вдалося. Модель буде імпортовано лише як геометрію." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Застосування кольорів текстури..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Оновлення 3D-вигляду..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Кольори текстури застосовано." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Ви можете зберегти змінені пресети у новому проекті або відмовитися від них" @@ -9714,6 +9782,10 @@ msgstr "Спіральна ваза" msgid "First layer filament sequence" msgstr "Послідовність філаменту першого шару" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Список філаментів містить змішані філаменти. Власна послідовність філаментів не діятиме." + msgid "By Layer" msgstr "По шарах" @@ -11717,30 +11789,6 @@ msgstr "Обʼєми промивки для зміни філаменту" msgid "Please choose the filament colour" msgstr "Будь ласка, виберіть колір філаменту" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Нативний перегляд у Wayland потребує відеоприймача GStreamer GTK. Встановіть плагін gtksink для GStreamer, а потім перезапустіть OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Не вдалося ініціалізувати нативний відеоприймач GStreamer для Wayland. Перевірте встановлення плагіна GStreamer GTK." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Для виконання цього завдання потрібен Windows Media Player! Бажаєте увімкнути 'Windows Media Player' для вашої операційної системи?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource не було правильно зареєстровано для відтворення медіафайлів! Натисніть \"Так\", щоб зареєструвати його повторно. Вас буде сповіщено двічі" - -# AI Translated -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Відсутній компонент BambuSource, зареєстрований для відтворення медіа! Перевстановіть OrcaSlicer або зверніться по допомогу до спільноти." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Використовується BambuSource з іншої інсталяції, відтворення відео може працювати неправильно! Натисніть \"Так\", щоб виправити це." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Вашій системі бракує кодеків H.264 для GStreamer, які необхідні для відтворення відео. (Спробуйте встановити пакети gstreamer1.0-plugins-bad або gstreamer1.0-libav, а потім перезапустіть Orca Slicer?)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Хмарний агент недоступний. Перезапустіть OrcaSlicer і спробуйте ще раз." @@ -12462,6 +12510,10 @@ msgstr "Якщо ви все одно хочете друкувати, може msgid "No extrusions under current settings." msgstr "Немає екструзій під час поточних налаштувань." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Використовується змішаний філамент із градієнтом, але параметр «Підшар змішаного кольору» вимкнено. Градієнт не буде надруковано." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Плавний режим таймлапсу не підтримується, коли послідовність \"по обʼєкт\" увімкнено." @@ -12502,6 +12554,10 @@ msgstr "Можливо, ви захочете зменшити розмір мо msgid "Variable layer height is not supported with Organic supports." msgstr "Змінна висота шару не підтримується з Органічними підтримками." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Філамент вежі протирання не може бути змішаним філаментом." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Різні діаметри сопел та різні діаметри філаменту можуть працювати некоректно коли ввімкнена підготовча вежа. Це експериментальна функція, тому використовуйте її з обережністю." @@ -14295,8 +14351,10 @@ msgstr "Час шару" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Вентилятор охолодження деталей вмикається для шарів, розрахунковий час яких менший за це значення. Швидкість вентилятора інтерполюється між мінімальною та максимальною швидкістю вентилятора відповідно до часу друку шару" +# AI Translated +msgctxt "second" msgid "s" -msgstr "c" +msgstr "с" msgid "Default color" msgstr "Типовий колір" @@ -14626,6 +14684,62 @@ msgstr "Матеріал підтримки" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Допоміжний матеріал зазвичай використовується для друку підтримки" +# AI Translated +msgid "Is mixed filament" +msgstr "Є змішаним філаментом" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Визначає, чи є цей слот філаменту змішаним філаментом, складеним з кількох фізичних філаментів" + +# AI Translated +msgid "Mixed filament components" +msgstr "Компоненти змішаного філаменту" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Розділені комами індекси філаментів-компонентів, починаючи з 1, наприклад \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Частки підшарів змішаного філаменту" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Розділені комами значення часток, сума яких дорівнює 1.0, наприклад \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Градієнт змішаного філаменту" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Вмикає режим градієнта за віссю Z для підшарів змішаного філаменту. Коли увімкнено, частки підшарів змінюються лінійно від шару до шару." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Діапазон градієнта змішаного філаменту" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Початкова та кінцева частки першого компонента в режимі градієнта. Пара значень через кому, наприклад \"0.10,0.90\" означає від 10% до 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Крива градієнта змішаного філаменту" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Необовʼязкова власна крива у стилі Photoshop, що зіставляє поступ за віссю Z із часткою першого компонента. Записується як контрольні точки, розділені вертикальними рисками, у вигляді \"x,y\" (застарілий формат) або \"x,y,m_in,m_out\", коли потрібно перевизначити дотичну (порожнє значення або \"nan\" означає типове значення PCHIP). x належить до [0,1]; y обмежується налаштованим діапазоном часток, наприклад \"0,0.15|0.5,0.50|1,0.85\". Якщо поле порожнє, замість цього використовується лінійний gradient_range." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Градієнт змішаного філаменту для кожної частини" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Коли режим градієнта увімкнено, градієнт застосовується до кожної частини збірки окремо, а не до всієї збірки як до єдиного діапазону Z." + msgid "Filament printable" msgstr "Філамент придатний для друку" @@ -15972,8 +16086,9 @@ msgid "The allowed maximum output force of Y axis" msgstr "Максимальна дозволена вихідна сила осі Y" # AI Translated +msgctxt "Newton" msgid "N" -msgstr "N" +msgstr "Н" msgid "Bed mass of the Y axis" msgstr "Маса столу осі Y" @@ -15981,6 +16096,8 @@ msgstr "Маса столу осі Y" msgid "The machine bed mass load of Y axis" msgstr "Маса навантаження столу машини на вісь Y" +# AI Translated +msgctxt "gram" msgid "g" msgstr "г" @@ -17621,6 +17738,14 @@ msgstr "" "\n" "Якщо встановити значення у параметрі \"Кількість втягування перед витиранням\" нижче, надлишкове втягування буде виконано перед витиранням, інакше воно буде виконано після нього." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Підшар змішаного кольору" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Вмикає розбиття на підшари змішаного кольору. Коли увімкнено, шари, що містять філаменти змішаного кольору, розбиваються на підшари для отримання ефекту змішування кольорів." + # AI Translated msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Вежа протирання може використовуватися для очищення залишків на соплі та стабілізації тиску в камері всередині сопла, щоб уникнути дефектів зовнішнього вигляду під час друку обʼєктів." @@ -18727,6 +18852,10 @@ msgstr "Не вдалося побудувати сітку файлу моде msgid "The supplied file couldn't be read because it's empty." msgstr "Наданий файл не вдалося прочитати, оскільки він порожній" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Формат файлу несумісний, і його не вдається прочитати." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Невідомий формат файлу: вхідний файл повинен мати розширення .stl, .obj або .amf (.xml)." @@ -21073,8 +21202,9 @@ msgstr "Вилучено" msgid "Enable smart filament assign: Assign one filament to multiple nozzles to maximize savings" msgstr "Дозволити розумне призначення філаменту: Призначте одну нитку до кількох сопел, щоб максимально заощадити" -msgid "Fila Saving" -msgstr "Збереження філаменту" +# AI Translated +msgid "File Saving" +msgstr "Збереження файлу" msgid "Don't remind me again" msgstr "Не нагадувати мені більше" @@ -21444,6 +21574,9 @@ msgstr "Перезапустити зараз" msgid "NO RAMMING AT ALL" msgstr "ВЗАГАЛІ БЕЗ УТРАМБУВАННЯ" +msgid "s" +msgstr "c" + msgid "Volumetric speed" msgstr "Обʼємна швидкість" @@ -22080,6 +22213,40 @@ msgstr "" "Уникнення деформації\n" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Нативний перегляд у Wayland потребує відеоприймача GStreamer GTK. Встановіть плагін gtksink для GStreamer, а потім перезапустіть OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Не вдалося ініціалізувати нативний відеоприймач GStreamer для Wayland. Перевірте встановлення плагіна GStreamer GTK." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Для виконання цього завдання потрібен Windows Media Player! Бажаєте увімкнути 'Windows Media Player' для вашої операційної системи?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource не було правильно зареєстровано для відтворення медіафайлів! Натисніть \"Так\", щоб зареєструвати його повторно. Вас буде сповіщено двічі" + +# AI Translated +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Відсутній компонент BambuSource, зареєстрований для відтворення медіа! Перевстановіть OrcaSlicer або зверніться по допомогу до спільноти." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Використовується BambuSource з іншої інсталяції, відтворення відео може працювати неправильно! Натисніть \"Так\", щоб виправити це." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Вашій системі бракує кодеків H.264 для GStreamer, які необхідні для відтворення відео. (Спробуйте встановити пакети gstreamer1.0-plugins-bad або gstreamer1.0-libav, а потім перезапустіть Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +#~ msgid "g" +#~ msgstr "г" + +#~ msgid "Fila Saving" +#~ msgstr "Збереження філаменту" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index 936bb590c5..8ec3447568 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -3077,6 +3077,10 @@ msgstr "Chỉnh sửa" msgid "Merge with" msgstr "Gộp với" +# AI Translated +msgid "Decompose Color" +msgstr "Phân tách màu" + # AI Translated msgid "Delete this filament" msgstr "Xóa filament này" @@ -3389,6 +3393,10 @@ msgstr "Lắp ráp" msgid "Merge parts to an object" msgstr "Gộp các phần thành một vật thể" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "Sử dụng chiều cao lớp biến đổi cùng với lớp con màu pha trộn có thể làm giảm chất lượng pha màu." + # AI Translated msgid "Add layers" msgstr "Thêm lớp" @@ -8288,6 +8296,10 @@ msgstr "Tùy chỉnh bản hiện tại" msgid "The %s nozzle can not print %s." msgstr "Đầu phun %s không thể in %s." +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "Việc in filament màu pha trộn trên máy in một extruder đòi hỏi thay filament và xả thường xuyên, điều này có thể làm tăng đáng kể lượng phế liệu và nguy cơ tắc đầu phun / máng chứa phế liệu." + # AI Translated #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" @@ -8430,12 +8442,44 @@ msgstr "Đồng bộ danh sách filament từ AMS" msgid "Set filaments to use" msgstr "Đặt filament để sử dụng" +# AI Translated +msgid "Add Mixed Filament" +msgstr "Thêm filament pha trộn" + +# AI Translated +msgid "Mixed Filament" +msgstr "Filament pha trộn" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "Xóa filament pha trộn cuối cùng" + +# AI Translated +msgid "Add mixed filament" +msgstr "Thêm filament pha trộn" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "Filament pha trộn có thành phần không hợp lệ hoặc không khớp. Vui lòng chỉnh sửa lại các mục bị ảnh hưởng." + msgid "Search plate, object and part." msgstr "Tìm kiếm bản, đối tượng và phần." msgid "Pellets" msgstr "Viên" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "Filament pha trộn có tham chiếu thành phần bị lỗi" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "Chỉnh sửa / Xóa / Gộp" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "Filament pha trộn đích sử dụng filament vật lý này làm thành phần. Việc gộp sẽ xóa filament vật lý này và có thể làm filament pha trộn không còn hợp lệ. Tiếp tục?" + # AI Translated #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." @@ -8628,6 +8672,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "Phát hiện đối tượng nhiều phần" +# AI Translated +msgid "Matching textures to filaments" +msgstr "Đang khớp kết cấu với filament" + +# AI Translated +msgid "Texture Import Warning" +msgstr "Cảnh báo nhập kết cấu" + msgid "Load these files as a single object with multiple parts?\n" msgstr "Tải các file này như một đối tượng đơn với nhiều phần?\n" @@ -8857,6 +8909,22 @@ msgstr "" msgid "Sync now" msgstr "Đồng bộ ngay" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "Nhập kết cấu thất bại. Mô hình có vẻ chứa dữ liệu kết cấu, nhưng không thể hoàn tất quá trình nhập kết cấu. Mô hình sẽ chỉ được nhập dưới dạng hình học." + +# AI Translated +msgid "Applying texture colors..." +msgstr "Đang áp dụng màu kết cấu..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "Đang cập nhật khung nhìn 3D..." + +# AI Translated +msgid "Texture colors applied." +msgstr "Đã áp dụng màu kết cấu." + msgid "You can keep the modified presets for the new project or discard them" msgstr "Bạn có thể giữ các preset đã chỉnh sửa cho dự án mới hoặc loại bỏ chúng" @@ -10227,6 +10295,10 @@ msgstr "Bình xoắn ốc" msgid "First layer filament sequence" msgstr "Trình tự filament lớp đầu tiên" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "Danh sách filament có chứa filament pha trộn. Trình tự filament tùy chỉnh sẽ không có hiệu lực." + msgid "By Layer" msgstr "Theo lớp" @@ -12266,29 +12338,6 @@ msgstr "Khối lượng xả khi thay filament" msgid "Please choose the filament colour" msgstr "Vui lòng chọn màu filament" -# AI Translated -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "Xem trực tiếp trên Wayland thuần cần GStreamer GTK video sink. Vui lòng cài đặt plugin gtksink cho GStreamer, sau đó khởi động lại OrcaSlicer." - -# AI Translated -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "Khởi tạo GStreamer video sink trên Wayland thuần thất bại. Vui lòng kiểm tra việc cài đặt plugin GStreamer GTK của bạn." - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "Windows Media Player là cần thiết cho tác vụ này! Bạn có muốn bật 'Windows Media Player' cho hệ điều hành của bạn?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource chưa được đăng ký chính xác để phát media! Nhấn Có để đăng ký lại. Bạn sẽ được nhắc hai lần" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "Thiếu thành phần BambuSource đã đăng ký để phát media! Vui lòng cài đặt lại OrcaSlicer hoặc tìm kiếm sự giúp đỡ từ cộng đồng." - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "Đang sử dụng BambuSource từ cài đặt khác, phát video có thể không hoạt động đúng! Nhấn Có để sửa nó." - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "Hệ thống của bạn thiếu codec H.264 cho GStreamer, cần thiết để phát video. (Hãy thử cài đặt gói gstreamer1.0-plugins-bad hoặc gstreamer1.0-libav, sau đó khởi động lại Orca Slicer?)" - # AI Translated msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "Tác nhân cloud không khả dụng. Vui lòng khởi động lại OrcaSlicer rồi thử lại." @@ -13037,6 +13086,10 @@ msgstr "Nếu bạn vẫn muốn in, bạn có thể bật tùy chọn trong Tù msgid "No extrusions under current settings." msgstr "Không có đùn dưới cài đặt hiện tại." +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "Đang dùng filament pha trộn có gradient, nhưng 'Lớp con màu pha trộn' đã bị tắt. Gradient sẽ không được in." + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "Chế độ mượt của timelapse không được hỗ trợ khi trình tự \"theo đối tượng\" được bật." @@ -13075,6 +13128,10 @@ msgstr "Bạn có thể muốn giảm kích thước model của mình hoặc th msgid "Variable layer height is not supported with Organic supports." msgstr "Chiều cao lớp thay đổi không được hỗ trợ với support hữu cơ." +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "Filament của wipe tower không thể là filament pha trộn." + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "Đường kính đầu phun khác nhau và đường kính filament khác nhau có thể không hoạt động tốt khi prime tower được bật. Nó rất thử nghiệm, vì vậy vui lòng tiến hành thận trọng." @@ -14857,6 +14914,8 @@ msgstr "Thời gian lớp" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "Quạt làm mát phần sẽ được bật cho các lớp có thời gian ước tính ngắn hơn giá trị này. Tốc độ quạt được nội suy giữa tốc độ quạt tối thiểu và tối đa theo thời gian in lớp." +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -15196,6 +15255,62 @@ msgstr "Vật liệu support" msgid "Support material is commonly used to print supports and support interfaces." msgstr "Vật liệu support thường được sử dụng để in support và giao diện support." +# AI Translated +msgid "Is mixed filament" +msgstr "Là filament pha trộn" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "Xác định xem khe filament này có phải là filament pha trộn gồm nhiều filament vật lý hay không" + +# AI Translated +msgid "Mixed filament components" +msgstr "Thành phần của filament pha trộn" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "Chỉ số của các filament thành phần, bắt đầu từ 1, phân tách bằng dấu phẩy, ví dụ \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "Tỷ lệ lớp con của filament pha trộn" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "Các giá trị tỷ lệ phân tách bằng dấu phẩy, có tổng bằng 1.0, ví dụ \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "Gradient của filament pha trộn" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "Bật chế độ gradient theo phương Z cho các lớp con của filament pha trộn. Khi bật, tỷ lệ các lớp con thay đổi tuyến tính qua các lớp." + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "Phạm vi gradient của filament pha trộn" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "Tỷ lệ đầu và cuối của thành phần thứ nhất ở chế độ gradient. Cặp giá trị phân tách bằng dấu phẩy, ví dụ \"0.10,0.90\" nghĩa là từ 10% đến 90%." + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "Đường cong gradient của filament pha trộn" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "Đường cong tùy chỉnh kiểu Photoshop (tùy chọn) ánh xạ tiến trình theo Z sang tỷ lệ của thành phần thứ nhất. Được mã hóa dưới dạng các điểm điều khiển phân tách bằng dấu gạch đứng, theo dạng \"x,y\" (kiểu cũ) hoặc \"x,y,m_in,m_out\" khi cần ghi đè tiếp tuyến (giá trị trống hoặc \"nan\" nghĩa là dùng mặc định PCHIP). x nằm trong [0,1]; y bị giới hạn trong phạm vi tỷ lệ đã cấu hình, ví dụ \"0,0.15|0.5,0.50|1,0.85\". Khi để trống, gradient_range tuyến tính sẽ được dùng thay thế." + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "Gradient theo từng phần của filament pha trộn" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "Khi chế độ gradient được bật, áp dụng gradient cho từng phần của một cụm lắp ráp một cách độc lập thay vì coi toàn bộ cụm lắp ráp là một phạm vi Z duy nhất." + # AI Translated msgid "Filament printable" msgstr "Filament in được" @@ -16508,6 +16623,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Lực đầu ra tối đa cho phép của trục Y" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -16520,6 +16636,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Tải khối lượng bàn máy của trục Y" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -18140,6 +18257,14 @@ msgstr "" "\n" "Đặt giá trị trong cài đặt lượng rút trước khi lau bên dưới sẽ thực hiện bất kỳ rút dư nào trước khi lau, nếu không nó sẽ được thực hiện sau." +# AI Translated +msgid "Mixed color sublayer" +msgstr "Lớp con màu pha trộn" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "Bật việc chia thành lớp con màu pha trộn. Khi bật, các lớp có chứa filament màu pha trộn sẽ được chia thành các lớp con để tạo hiệu ứng pha màu." + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "Wipe tower có thể được sử dụng để làm sạch cặn trên đầu phun và ổn định áp suất buồng bên trong đầu phun, để tránh khuyết điểm bề ngoài khi in đối tượng." @@ -19260,6 +19385,10 @@ msgstr "Tạo lưới cho file mô hình thất bại hoặc không có hình d msgid "The supplied file couldn't be read because it's empty." msgstr "File được cung cấp không thể đọc được vì nó trống" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "Định dạng tệp không tương thích nên không thể phân tích." + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "Định dạng file không xác định. File đầu vào phải có phần mở rộng .stl, .obj, .amf(.xml)." @@ -21681,8 +21810,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "Bật gán filament thông minh: Gán một filament cho nhiều đầu phun để tối đa hóa tiết kiệm" # AI Translated -msgid "Fila Saving" -msgstr "Tiết kiệm fila" +msgid "File Saving" +msgstr "Lưu tệp" # AI Translated msgid "Don't remind me again" @@ -22138,6 +22267,9 @@ msgstr "Khởi động lại ngay" msgid "NO RAMMING AT ALL" msgstr "HOÀN TOÀN KHÔNG RAMMING" +msgid "s" +msgstr "s" + # AI Translated msgid "Volumetric speed" msgstr "Tốc độ thể tích" @@ -22804,6 +22936,41 @@ msgstr "" "Tránh cong vênh\n" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" +# AI Translated +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "Xem trực tiếp trên Wayland thuần cần GStreamer GTK video sink. Vui lòng cài đặt plugin gtksink cho GStreamer, sau đó khởi động lại OrcaSlicer." + +# AI Translated +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "Khởi tạo GStreamer video sink trên Wayland thuần thất bại. Vui lòng kiểm tra việc cài đặt plugin GStreamer GTK của bạn." + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "Windows Media Player là cần thiết cho tác vụ này! Bạn có muốn bật 'Windows Media Player' cho hệ điều hành của bạn?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource chưa được đăng ký chính xác để phát media! Nhấn Có để đăng ký lại. Bạn sẽ được nhắc hai lần" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "Thiếu thành phần BambuSource đã đăng ký để phát media! Vui lòng cài đặt lại OrcaSlicer hoặc tìm kiếm sự giúp đỡ từ cộng đồng." + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "Đang sử dụng BambuSource từ cài đặt khác, phát video có thể không hoạt động đúng! Nhấn Có để sửa nó." + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "Hệ thống của bạn thiếu codec H.264 cho GStreamer, cần thiết để phát video. (Hãy thử cài đặt gói gstreamer1.0-plugins-bad hoặc gstreamer1.0-libav, sau đó khởi động lại Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "Tiết kiệm fila" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index 99a6cadd67..81cd5a402b 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle <mail@bysb.net>\n" "Language-Team: \n" @@ -2843,6 +2843,10 @@ msgstr "编辑" msgid "Merge with" msgstr "与其合并" +# AI Translated +msgid "Decompose Color" +msgstr "分解颜色" + msgid "Delete this filament" msgstr "移除此耗材" @@ -3124,6 +3128,10 @@ msgstr "组合体" msgid "Merge parts to an object" msgstr "合并零件到对象" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "同时使用可变层高与混色子层可能导致混色质量不佳。" + msgid "Add layers" msgstr "添加层" @@ -7638,6 +7646,10 @@ msgstr "自定义当前盘" msgid "The %s nozzle can not print %s." msgstr "%s 喷嘴无法打印 %s。" +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "在单挤出机打印机上打印混色耗材丝需要频繁换料和冲刷,可能显著增加废料以及喷嘴/废料槽堵塞的风险。" + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "不建议在打印时将 %1% 与 %2% 混合。\n" @@ -7763,12 +7775,44 @@ msgstr "从AMS同步材料列表" msgid "Set filaments to use" msgstr "配置可选择的材料" +# AI Translated +msgid "Add Mixed Filament" +msgstr "添加混合耗材丝" + +# AI Translated +msgid "Mixed Filament" +msgstr "混合耗材丝" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "移除最后一个混合耗材丝" + +# AI Translated +msgid "Add mixed filament" +msgstr "添加混合耗材丝" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "混合耗材丝的组分无效或不匹配。请重新编辑受影响的条目。" + msgid "Search plate, object and part." msgstr "搜索盘、模型和零件。" msgid "Pellets" msgstr "颗粒" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "混合耗材丝的组分引用已失效" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "编辑 / 删除 / 合并" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "目标混合耗材丝将此物理耗材丝用作组分。合并将移除此物理耗材丝,并可能使该混合耗材丝失效。是否继续?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "完成操作后,%s 项目将关闭并创建一个新项目。" @@ -7949,6 +7993,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "检测到多部分对象" +# AI Translated +msgid "Matching textures to filaments" +msgstr "正在将纹理匹配到耗材丝" + +# AI Translated +msgid "Texture Import Warning" +msgstr "纹理导入警告" + msgid "Load these files as a single object with multiple parts?\n" msgstr "将这些文件加载为一个多零件对象?\n" @@ -8154,6 +8206,22 @@ msgstr "" msgid "Sync now" msgstr "立即同步" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "纹理导入失败。模型中似乎包含纹理数据,但纹理导入过程未能完成。将仅导入模型的几何数据。" + +# AI Translated +msgid "Applying texture colors..." +msgstr "正在应用纹理颜色..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "正在更新 3D 视图..." + +# AI Translated +msgid "Texture colors applied." +msgstr "纹理颜色已应用。" + msgid "You can keep the modified presets for the new project or discard them" msgstr "您可以保留修改的预设到新项目中或者忽略这些修改" @@ -9389,6 +9457,10 @@ msgstr "旋转花瓶" msgid "First layer filament sequence" msgstr "首层耗材打印顺序" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "耗材丝列表中包含混合耗材丝。自定义耗材丝顺序将不会生效。" + msgid "By Layer" msgstr "逐层" @@ -11258,27 +11330,6 @@ msgstr "耗材丝更换时的冲刷体积" msgid "Please choose the filament colour" msgstr "请选择耗材丝颜色" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "原生 Wayland 实时画面需要 GStreamer GTK 视频接收器。请安装 GStreamer 的 gtksink 插件,然后重启 OrcaSlicer。" - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "原生 Wayland GStreamer 视频接收器初始化失败。请检查您的 GStreamer GTK 插件安装情况。" - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "此任务需要 Windows Media Player!您是否要为您的操作系统启用'Windows Media Player'?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "BambuSource 未正确注册用于媒体播放!按是重新注册它。您将被提示两次" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "缺少用于媒体播放的已注册 BambuSource 组件!请重新安装 OrcaSlicer 或寻求社区帮助。" - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "使用来自不同安装的 BambuSource,视频播放可能无法正常工作!按是修复它。" - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "您的系统缺少 GStreamer 所需的 H.264 编解码器,这是播放视频所必需的。(尝试安装 gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 软件包,然后重新启动 Orca Slicer?)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "云代理不可用。请重启 OrcaSlicer 后重试。" @@ -11991,6 +12042,10 @@ msgstr "如果您仍要打印,可以在 偏好设置 / 控制 / 切片 / 移 msgid "No extrusions under current settings." msgstr "根据当前设置,不会生成任何打印。" +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "使用了渐变混合耗材丝,但“混色子层”已关闭。渐变将不会被打印。" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "平滑模式的延时摄影不支持在逐件打印模式下使用。" @@ -12027,6 +12082,10 @@ msgstr "或许您想要缩小模型的尺寸,或者更改当前打印设置, msgid "Variable layer height is not supported with Organic supports." msgstr "Organic支撑不支持可变层高。" +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "擦拭塔耗材丝不能是混合耗材丝。" + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "当启用擦拭塔时,不同的喷嘴直径和不同的耗材丝直径可能无法很好地工作。这是非常实验性的,所以请谨慎操作。" @@ -12374,7 +12433,6 @@ msgstr "mm 或 %" msgid "Other layers" msgstr "其它层" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "除首层外的其他层的热床温度。0值表示该耗材丝不支持在Cool Plate SuperTack上打印。" @@ -13696,6 +13754,8 @@ msgstr "层时间" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "当层预估打印时间小于该数值时,部件冷却风扇将会被开启。风扇转速将根据层打印时间在最大和最小风扇转速之间插值获得" +# AI Translated +msgctxt "second" msgid "s" msgstr "s" @@ -14014,6 +14074,62 @@ msgstr "支撑材料" msgid "Support material is commonly used to print supports and support interfaces." msgstr "支撑材料通常用于打印支撑体和支撑接触面" +# AI Translated +msgid "Is mixed filament" +msgstr "是否为混合耗材丝" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "该耗材丝槽位是否为由多种物理耗材丝组成的混合耗材丝" + +# AI Translated +msgid "Mixed filament components" +msgstr "混合耗材丝组分" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "以逗号分隔的组分耗材丝序号(从 1 开始),例如 \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "混合耗材丝子层比例" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "以逗号分隔、总和为 1.0 的比例值,例如 \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "混合耗材丝渐变" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "为混合耗材丝的子层启用 Z 方向渐变模式。启用后,子层比例会随层数线性变化。" + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "混合耗材丝渐变范围" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "渐变模式下第一个组分的起始和结束比例。以逗号分隔的一对数值,例如 \"0.10,0.90\" 表示从 10% 到 90%。" + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "混合耗材丝渐变曲线" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "可选的 Photoshop 风格自定义曲线,将 Z 方向进度映射到第一个组分的比例。以竖线分隔的控制点进行编码,格式为 \"x,y\"(旧格式)或在需要覆盖切线时使用 \"x,y,m_in,m_out\"(留空或填 \"nan\" 表示使用 PCHIP 默认值)。x 取值范围为 [0,1];y 会被限制在所配置的比例范围内,例如 \"0,0.15|0.5,0.50|1,0.85\"。留空时改用线性的 gradient_range。" + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "混合耗材丝逐零件渐变" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "启用渐变模式时,对组合体中的每个零件分别应用渐变,而不是将整个组合体视为一个 Z 范围。" + msgid "Filament printable" msgstr "可打印耗材" @@ -15265,6 +15381,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Y 轴允许的最大输出力" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15277,6 +15394,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Y 轴的机器热床质量负载" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -16848,6 +16966,14 @@ msgstr "" "\n" "在下方的擦拭前回抽量设置中输入一个数值,将在擦拭动作之前执行任何超出部分的回抽,否则超出部分的回抽将在擦拭之后执行。" +# AI Translated +msgid "Mixed color sublayer" +msgstr "混色子层" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "启用混色子层拆分。启用后,含有混色耗材丝的层将被拆分为子层,以实现混色效果。" + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "擦拭塔可以用来清理喷嘴上的残留料和让喷嘴内部的腔压达到稳定状态,以避免打印物体时出现外观瑕疵。" @@ -17923,6 +18049,10 @@ msgstr "模型文件的网格划分失败,或缺少有效的形状。" msgid "The supplied file couldn't be read because it's empty." msgstr "无法读取提供的文件,因为该文件内容为空。" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "文件格式不兼容,无法解析。" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "未知的文件格式。输入文件的扩展名必须为 .stl、.obj 或 .amf(.xml)。" @@ -20222,8 +20352,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "启用智能耗材分配:将一种耗材分配给多个喷嘴以最大化节省" # AI Translated -msgid "Fila Saving" -msgstr "耗材节省" +msgid "File Saving" +msgstr "文件保存" msgid "Don't remind me again" msgstr "不再提醒" @@ -20588,6 +20718,9 @@ msgstr "立即重启" msgid "NO RAMMING AT ALL" msgstr "完全不挤压" +msgid "s" +msgstr "s" + msgid "Volumetric speed" msgstr "体积流量" @@ -21212,6 +21345,39 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "原生 Wayland 实时画面需要 GStreamer GTK 视频接收器。请安装 GStreamer 的 gtksink 插件,然后重启 OrcaSlicer。" + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "原生 Wayland GStreamer 视频接收器初始化失败。请检查您的 GStreamer GTK 插件安装情况。" + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "此任务需要 Windows Media Player!您是否要为您的操作系统启用'Windows Media Player'?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "BambuSource 未正确注册用于媒体播放!按是重新注册它。您将被提示两次" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "缺少用于媒体播放的已注册 BambuSource 组件!请重新安装 OrcaSlicer 或寻求社区帮助。" + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "使用来自不同安装的 BambuSource,视频播放可能无法正常工作!按是修复它。" + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "您的系统缺少 GStreamer 所需的 H.264 编解码器,这是播放视频所必需的。(尝试安装 gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 软件包,然后重新启动 Orca Slicer?)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "耗材节省" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 86f5263b1b..ded90c8950 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-08-19 14:07-0300\n" +"POT-Creation-Date: 2026-09-02 09:39-0300\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -2913,6 +2913,10 @@ msgstr "編輯" msgid "Merge with" msgstr "合併到" +# AI Translated +msgid "Decompose Color" +msgstr "分解顏色" + msgid "Delete this filament" msgstr "刪除此線材" @@ -3209,6 +3213,10 @@ msgstr "組合體" msgid "Merge parts to an object" msgstr "合併零件為物件" +# AI Translated +msgid "Using variable layer height together with mixed color sublayer may result in poor color mixing quality." +msgstr "同時使用可變層高與混色子層可能導致混色品質不佳。" + # AI Translated msgid "Add layers" msgstr "新增層" @@ -7799,6 +7807,10 @@ msgstr "自訂列印板參數" msgid "The %s nozzle can not print %s." msgstr "%s 噴嘴無法列印 %s。" +# AI Translated +msgid "Printing mixed-color filament on a single-extruder printer requires frequent filament changes and flushing, which may significantly increase waste and the risk of nozzle / waste-chute clogging." +msgstr "在單擠出機列印裝置上列印混色線材需要頻繁換料與清理,可能大幅增加廢料以及噴嘴/廢料槽堵塞的風險。" + #, boost-format msgid "Mixing %1% with %2% in printing is not recommended.\n" msgstr "不建議在列印時混用 %1% 和 %2%。\n" @@ -7924,12 +7936,44 @@ msgstr "從 AMS 同步線材清單" msgid "Set filaments to use" msgstr "設定可選擇的線材" +# AI Translated +msgid "Add Mixed Filament" +msgstr "新增混合線材" + +# AI Translated +msgid "Mixed Filament" +msgstr "混合線材" + +# AI Translated +msgid "Remove last mixed filament" +msgstr "移除最後一個混合線材" + +# AI Translated +msgid "Add mixed filament" +msgstr "新增混合線材" + +# AI Translated +msgid "Mixed filament has invalid or mismatched components. Please re-edit affected entries." +msgstr "混合線材的成分無效或不相符。請重新編輯受影響的項目。" + msgid "Search plate, object and part." msgstr "搜尋列印板、物件和零件。" msgid "Pellets" msgstr "顆粒" +# AI Translated +msgid "Mixed filament has broken component references" +msgstr "混合線材的成分參照已失效" + +# AI Translated +msgid "Edit / Delete / Merge" +msgstr "編輯 / 刪除 / 合併" + +# AI Translated +msgid "The target mixed filament uses this physical filament as a component. Merging will remove this physical filament and may invalidate the mixed filament. Continue?" +msgstr "目標混合線材使用此實體線材作為成分。合併將移除此實體線材,並可能使該混合線材失效。是否繼續?" + #, c-format, boost-format msgid "After completing your operation, %s project will be closed and create a new project." msgstr "完成操作後,%s 專案將關閉並建立新專案。" @@ -8110,6 +8154,14 @@ msgstr "" msgid "Multi-part object detected" msgstr "偵測到多部分物件" +# AI Translated +msgid "Matching textures to filaments" +msgstr "正在將紋理對應到線材" + +# AI Translated +msgid "Texture Import Warning" +msgstr "紋理匯入警告" + msgid "Load these files as a single object with multiple parts?\n" msgstr "將這些檔案載入為一個多零件物件?\n" @@ -8320,6 +8372,22 @@ msgstr "" msgid "Sync now" msgstr "立即同步" +# AI Translated +msgid "Texture import failed. The model appears to contain texture data, but the texture import process could not be completed. The model will be imported as geometry only." +msgstr "紋理匯入失敗。模型中似乎包含紋理資料,但紋理匯入程序未能完成。將僅匯入模型的幾何資料。" + +# AI Translated +msgid "Applying texture colors..." +msgstr "正在套用紋理顏色..." + +# AI Translated +msgid "Updating 3D view..." +msgstr "正在更新 3D 檢視..." + +# AI Translated +msgid "Texture colors applied." +msgstr "紋理顏色已套用。" + msgid "You can keep the modified presets for the new project or discard them" msgstr "您可以將修改後的預設檔保留到新專案中或者忽略這些修改" @@ -9563,6 +9631,10 @@ msgstr "螺旋花瓶模式" msgid "First layer filament sequence" msgstr "首層線材列印順序" +# AI Translated +msgid "The filament list contains mixed filaments. Custom filament sequence will not take effect." +msgstr "線材清單中包含混合線材。自訂線材順序將不會生效。" + msgid "By Layer" msgstr "逐層" @@ -11466,27 +11538,6 @@ msgstr "線材更換時產生的廢料體積" msgid "Please choose the filament colour" msgstr "請選擇線材顏色" -msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." -msgstr "原生 Wayland 即時檢視需要 GStreamer GTK 視訊接收器。請為 GStreamer 安裝 gtksink 外掛程式,然後重新啟動 OrcaSlicer。" - -msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." -msgstr "無法初始化原生 Wayland GStreamer 視訊接收器。請檢查您的 GStreamer GTK 外掛程式安裝。" - -msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" -msgstr "執行此設定需要 Windows Media Player!您是否要啟用 Windows Media Player?" - -msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" -msgstr "「BambuSource 未正確註冊為媒體播放模組!請點選『是』進行重新註冊,過程中會有兩次提示" - -msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." -msgstr "缺少用於媒體播放的已註冊 BambuSource 元件!請重新安裝 OrcaSlicer 或尋求社群協助。" - -msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." -msgstr "BambuSource 來自其他安裝版本,可能導致影片播放異常!請點選『是』進行修復。" - -msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" -msgstr "您的系統缺少 GStreamer 的 H.264 編解碼器,這是播放影片所必需的。(請嘗試安裝 gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 套件,然後重新啟動 Orca Slicer。)" - msgid "Cloud agent is not available. Please restart OrcaSlicer and try again." msgstr "雲端代理無法使用。請重新啟動 OrcaSlicer 後再試一次。" @@ -12195,6 +12246,10 @@ msgstr "如果您仍想列印,可以在「偏好設定 / 控制 / 切片 / 移 msgid "No extrusions under current settings." msgstr "根據目前設定,不會進行任何列印。" +# AI Translated +msgid "A gradient mixed filament is used, but 'Mixed color sublayer' is disabled. The gradient will not be printed." +msgstr "使用了漸層混合線材,但「混色子層」已停用。漸層將不會列印。" + msgid "Smooth mode of timelapse is not supported when \"by object\" sequence is enabled." msgstr "逐件列印模式下不支援使用平滑模式的縮時錄影。" @@ -12231,6 +12286,10 @@ msgstr "您可能想要減小模型的尺寸或更改目前的列印設定並重 msgid "Variable layer height is not supported with Organic supports." msgstr "有機樹支撐不支持可變層高。" +# AI Translated +msgid "The wipe tower filament cannot be a mixed filament." +msgstr "換料塔線材不能是混合線材。" + msgid "Different nozzle diameters and different filament diameters may not work well when the prime tower is enabled. It's very experimental, so please proceed with caution." msgstr "當啟用換料時,不同的噴嘴直徑和線材直徑可能無法正常配合。此功能屬於實驗性階段,請小心使用。" @@ -12578,7 +12637,6 @@ msgstr "mm 或 %" msgid "Other layers" msgstr "其它層" -#, fuzzy msgid "This is the bed temperature for layers except for the first one. A value of 0 means the filament does not support printing on the Cool Plate SuperTack." msgstr "除首層外的其他層的熱床溫度。0值表示該線材不支援在低溫增穩列印板上列印。" @@ -13909,6 +13967,8 @@ msgstr "每一層列印時間" msgid "The part cooling fan will be enabled for layers where the estimated time is shorter than this value. Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time." msgstr "當層預估列印時間小於該數值時,物件冷卻風扇將會被開啟。風扇轉速將根據層列印時間在最大和最小風扇轉速之間自動調整" +# AI Translated +msgctxt "second" msgid "s" msgstr "秒" @@ -14214,6 +14274,62 @@ msgstr "支撐材料" msgid "Support material is commonly used to print supports and support interfaces." msgstr "支撐材料通常用於列印支撐體和支撐接觸面" +# AI Translated +msgid "Is mixed filament" +msgstr "是否為混合線材" + +# AI Translated +msgid "Whether this filament slot is a mixed filament composed of multiple physical filaments" +msgstr "此線材槽是否為由多種實體線材組成的混合線材" + +# AI Translated +msgid "Mixed filament components" +msgstr "混合線材成分" + +# AI Translated +msgid "Comma-separated 1-based indices of component filaments, e.g. \"1,3\"" +msgstr "以逗號分隔的成分線材序號(從 1 開始),例如 \"1,3\"" + +# AI Translated +msgid "Mixed filament sublayer ratios" +msgstr "混合線材子層比例" + +# AI Translated +msgid "Comma-separated ratio values summing to 1.0, e.g. \"0.7,0.3\"" +msgstr "以逗號分隔、總和為 1.0 的比例值,例如 \"0.7,0.3\"" + +# AI Translated +msgid "Mixed filament gradient" +msgstr "混合線材漸層" + +# AI Translated +msgid "Enable Z-direction gradient mode for mixed filament sub-layers. When enabled, the sub-layer ratios vary linearly across layers." +msgstr "為混合線材的子層啟用 Z 方向漸層模式。啟用後,子層比例會隨層數線性變化。" + +# AI Translated +msgid "Mixed filament gradient range" +msgstr "混合線材漸層範圍" + +# AI Translated +msgid "Start and end ratios for the first component in gradient mode. Comma-separated pair, e.g. \"0.10,0.90\" means 10% to 90%." +msgstr "漸層模式下第一個成分的起始與結束比例。以逗號分隔的一對數值,例如 \"0.10,0.90\" 表示從 10% 到 90%。" + +# AI Translated +msgid "Mixed filament gradient curve" +msgstr "混合線材漸層曲線" + +# AI Translated +msgid "Optional Photoshop-style custom curve mapping Z progress to the first component ratio. Encoded as pipe-separated control points, either \"x,y\" (legacy) or \"x,y,m_in,m_out\" when a tangent override is needed (empty token or \"nan\" means use PCHIP default). x in [0,1]; y is clamped to the configured ratio range, e.g. \"0,0.15|0.5,0.50|1,0.85\". When empty, the linear gradient_range is used instead." +msgstr "選用的 Photoshop 風格自訂曲線,將 Z 方向進度對應到第一個成分的比例。以直立線分隔的控制點進行編碼,格式為 \"x,y\"(舊格式)或在需要覆寫切線時使用 \"x,y,m_in,m_out\"(留空或填入 \"nan\" 表示使用 PCHIP 預設值)。x 的取值範圍為 [0,1];y 會被限制在所設定的比例範圍內,例如 \"0,0.15|0.5,0.50|1,0.85\"。留空時改用線性的 gradient_range。" + +# AI Translated +msgid "Mixed filament per-part gradient" +msgstr "混合線材逐零件漸層" + +# AI Translated +msgid "When gradient mode is enabled, apply the gradient to each part of an assembly independently rather than treating the whole assembly as one Z range." +msgstr "啟用漸層模式時,對組合體中的每個零件分別套用漸層,而不是將整個組合體視為單一 Z 範圍。" + msgid "Filament printable" msgstr "線材可列印" @@ -15466,6 +15582,7 @@ msgid "The allowed maximum output force of Y axis" msgstr "Y 軸允許的最大輸出力" # AI Translated +msgctxt "Newton" msgid "N" msgstr "N" @@ -15478,6 +15595,7 @@ msgid "The machine bed mass load of Y axis" msgstr "Y 軸的機器床台質量負載" # AI Translated +msgctxt "gram" msgid "g" msgstr "g" @@ -17042,6 +17160,14 @@ msgstr "" "\n" "在以下的『擦拭前的回抽量』設定中設定一個值,將在擦拭之前執行任何額外的回抽操作;否則,將在擦拭之後執行。" +# AI Translated +msgid "Mixed color sublayer" +msgstr "混色子層" + +# AI Translated +msgid "Enable mixed color sublayer splitting. When enabled, layers containing mixed color filaments will be split into sub-layers to achieve color mixing effects." +msgstr "啟用混色子層分割。啟用後,含有混色線材的層將被分割為子層,以達成混色效果。" + msgid "The wiping tower can be used to clean up residue on the nozzle and stabilize the chamber pressure inside the nozzle in order to avoid appearance defects when printing objects." msgstr "換料塔的功能是用於清除噴嘴上的殘留物,同時穩定噴嘴內的壓力,從而避免列印物件時出現外觀瑕疵。" @@ -18111,6 +18237,10 @@ msgstr "模型檔案網格化失敗或沒有有效形狀" msgid "The supplied file couldn't be read because it's empty." msgstr "無法讀取提供的檔案,因為該檔案為空" +# AI Translated +msgid "The file format is incompatible and cannot be parsed." +msgstr "檔案格式不相容,無法解析。" + msgid "Unknown file format: input file must have .stl, .obj, or .amf(.xml) extension." msgstr "檔案格式未知。輸入的檔案必須是 .stl、.obj 或 .amf(.xml) 格式。" @@ -20415,8 +20545,8 @@ msgid "Enable smart filament assign: Assign one filament to multiple nozzles to msgstr "啟用智慧線材指派:將一種線材指派給多個噴嘴以最大化節省" # AI Translated -msgid "Fila Saving" -msgstr "線材節省" +msgid "File Saving" +msgstr "檔案儲存" msgid "Don't remind me again" msgstr "不要再提醒我" @@ -20781,6 +20911,9 @@ msgstr "立即重新啟動" msgid "NO RAMMING AT ALL" msgstr "完全不擠壓" +msgid "s" +msgstr "秒" + msgid "Volumetric speed" msgstr "體積速度" @@ -21426,6 +21559,39 @@ msgstr "" "避免翹曲\n" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" +#~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." +#~ msgstr "原生 Wayland 即時檢視需要 GStreamer GTK 視訊接收器。請為 GStreamer 安裝 gtksink 外掛程式,然後重新啟動 OrcaSlicer。" + +#~ msgid "Failed to initialize the native Wayland GStreamer video sink. Please check your GStreamer GTK plugin installation." +#~ msgstr "無法初始化原生 Wayland GStreamer 視訊接收器。請檢查您的 GStreamer GTK 外掛程式安裝。" + +#~ msgid "Windows Media Player is required for this task! Do you want to enable 'Windows Media Player' for your operation system?" +#~ msgstr "執行此設定需要 Windows Media Player!您是否要啟用 Windows Media Player?" + +#~ msgid "BambuSource has not correctly been registered for media playing! Press Yes to re-register it. You will be promoted twice" +#~ msgstr "「BambuSource 未正確註冊為媒體播放模組!請點選『是』進行重新註冊,過程中會有兩次提示" + +#~ msgid "Missing BambuSource component registered for media playing! Please re-install OrcaSlicer or seek community help." +#~ msgstr "缺少用於媒體播放的已註冊 BambuSource 元件!請重新安裝 OrcaSlicer 或尋求社群協助。" + +#~ msgid "Using a BambuSource from a different install, video play may not work correctly! Press Yes to fix it." +#~ msgstr "BambuSource 來自其他安裝版本,可能導致影片播放異常!請點選『是』進行修復。" + +#~ msgid "Your system is missing H.264 codecs for GStreamer, which are required to play video. (Try installing the gstreamer1.0-plugins-bad or gstreamer1.0-libav packages, then restart Orca Slicer?)" +#~ msgstr "您的系統缺少 GStreamer 的 H.264 編解碼器,這是播放影片所必需的。(請嘗試安裝 gstreamer1.0-plugins-bad 或 gstreamer1.0-libav 套件,然後重新啟動 Orca Slicer。)" + +# AI Translated +#~ msgid "N" +#~ msgstr "N" + +# AI Translated +#~ msgid "g" +#~ msgstr "g" + +# AI Translated +#~ msgid "Fila Saving" +#~ msgstr "線材節省" + #~ msgid "" #~ "Layer height is too small.\n" #~ "It will set to min_layer_height\n" From 51fd6327fee6c8e0a7d082906c3a8c56f35c477c Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Thu, 3 Sep 2026 00:15:18 +0300 Subject: [PATCH 112/164] Fix omitted assembly parts with height ranges (#15499) --- src/libslic3r/PrintApply.cpp | 8 +++++--- src/libslic3r/PrintObjectSlice.cpp | 13 ++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index f03271bf73..90d60b5917 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -560,9 +560,11 @@ static inline bool model_volume_solid_or_modifier(const ModelVolume &mv) static inline Transform3f trafo_for_bbox(const Transform3d &object_trafo, const Transform3d &volume_trafo) { - Transform3d m = object_trafo * volume_trafo; - m.translation().x() = 0.; - m.translation().y() = 0.; + // Orca: Keep the volume's local XY offset for multipart overlap checks, but remove the object's bed placement. + Transform3d object_trafo_local = object_trafo; + object_trafo_local.translation().x() = 0.; + object_trafo_local.translation().y() = 0.; + Transform3d m = object_trafo_local * volume_trafo; return m.cast<float>(); } diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index f6a6b43e09..d16e381604 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -304,11 +304,16 @@ static std::vector<std::vector<ExPolygons>> slices_to_regions( float z = zs[z_idx]; int idx_first_printable_region = -1; bool complex = false; + std::vector<int> printable_region_ids; for (int idx_region = 0; idx_region < int(layer_range.volume_regions.size()); ++ idx_region) { const PrintObjectRegions::VolumeRegion ®ion = layer_range.volume_regions[idx_region]; if (region.bbox->min().z() <= z && region.bbox->max().z() >= z) { - if (idx_first_printable_region == -1 && region.model_volume->is_model_part()) + if (region.model_volume->is_model_part()) + printable_region_ids.push_back(idx_region); + + if (idx_first_printable_region == -1 && region.model_volume->is_model_part()) { idx_first_printable_region = idx_region; + } else if (idx_first_printable_region != -1) { // Test for overlap with some other region. for (int idx_region2 = idx_first_printable_region; idx_region2 < idx_region; ++ idx_region2) { @@ -324,8 +329,10 @@ static std::vector<std::vector<ExPolygons>> slices_to_regions( if (complex) zs_complex.push_back({ z_idx, z }); else if (idx_first_printable_region >= 0) { - const PrintObjectRegions::VolumeRegion ®ion = layer_range.volume_regions[idx_first_printable_region]; - slices_by_region[region.region->print_object_region_id()][z_idx] = std::move(volume_slices_find_by_id(volume_slices, region.model_volume->id()).slices[z_idx]); + for (int printable_region_id : printable_region_ids) { + const PrintObjectRegions::VolumeRegion ®ion = layer_range.volume_regions[printable_region_id]; + append(slices_by_region[region.region->print_object_region_id()][z_idx], std::move(volume_slices_find_by_id(volume_slices, region.model_volume->id()).slices[z_idx])); + } } } } From 8bf1d3ea84253cf4a0d63d5137650e23369e6f24 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Wed, 2 Sep 2026 16:18:17 -0500 Subject: [PATCH 113/164] fix: clear 12 warning sites that only appear away from Windows (#15437) --- src/slic3r/GUI/CreatePresetsDialog.cpp | 4 +++- src/slic3r/GUI/Field.cpp | 18 +++++++++++++++--- src/slic3r/GUI/GUI_ObjectLayers.cpp | 2 +- src/slic3r/GUI/Jobs/PlaterWorker.hpp | 5 ++++- src/slic3r/GUI/MainFrame.cpp | 14 +++++++------- 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index 892576f0c0..e6fb6e0782 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -599,7 +599,9 @@ static char* read_json_file(const std::string &preset_path) return NULL; } - fread(json_contents, 1, file_size, json_file); + const size_t read_bytes = fread(json_contents, 1, file_size, json_file); + if (read_bytes != static_cast<size_t>(file_size)) + BOOST_LOG_TRIVIAL(error) << "Read " << read_bytes << " of " << file_size << " bytes from the JSON file"; fclose(json_file); return json_contents; diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index b0302f2cf8..142cf70522 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -941,7 +941,11 @@ void TextCtrl::BUILD() { temp->SetToolTip(get_tooltip_text(text_value)); if (!m_opt.multiline) { - text_ctrl->Bind(wxEVT_TEXT_ENTER, ([this, temp](wxEvent &e) + text_ctrl->Bind(wxEVT_TEXT_ENTER, ([ +#if !defined(__WXGTK__) + temp, +#endif // __WXGTK__ + this](wxEvent &e) { #if !defined(__WXGTK__) e.Skip(); @@ -973,7 +977,11 @@ void TextCtrl::BUILD() { temp->GetToolTip()->Enable(flag); }), text_ctrl->GetId()); - temp->Bind(wxEVT_KILL_FOCUS, ([this, temp](wxEvent &e) + temp->Bind(wxEVT_KILL_FOCUS, ([ +#if !defined(__WXGTK__) + temp, +#endif // __WXGTK__ + this](wxEvent &e) { e.Skip(); #if !defined(__WXGTK__) @@ -2597,7 +2605,11 @@ void ColourPicker::BUILD() // // recast as a wxWindow to fit the calling convention window = dynamic_cast<wxWindow*>(temp); - temp->Bind(wxEVT_COLOURPICKER_CHANGED, ([this,temp](wxCommandEvent e) { + temp->Bind(wxEVT_COLOURPICKER_CHANGED, ([ + #ifdef __WXMSW__ + temp, + #endif + this](wxCommandEvent e) { #ifdef __WXMSW__ draw_bmp_btn(temp, temp->GetColour()); #endif diff --git a/src/slic3r/GUI/GUI_ObjectLayers.cpp b/src/slic3r/GUI/GUI_ObjectLayers.cpp index bbd7294ae5..93bdeec9ee 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.cpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.cpp @@ -48,7 +48,7 @@ void ObjectLayers::select_editor(LayerRangeEditor* editor, const bool is_last_ed * And as a result we couldn't edit this control. * */ #ifdef __WXOSX__ - wxTheApp->CallAfter([editor]() { + wxTheApp->CallAfter([]() { #endif //editor->SetFocus(); //editor->SelectAll(); diff --git a/src/slic3r/GUI/Jobs/PlaterWorker.hpp b/src/slic3r/GUI/Jobs/PlaterWorker.hpp index d38a57b6a6..f22bd6d511 100644 --- a/src/slic3r/GUI/Jobs/PlaterWorker.hpp +++ b/src/slic3r/GUI/Jobs/PlaterWorker.hpp @@ -79,9 +79,12 @@ class PlaterWorker: public Worker { steady_clock::time_point finalize_end = steady_clock::now(); long long finalize_duration = duration_cast<milliseconds>(finalize_end - finalize_start).count(); + // Bound first so typeid's operand is not a call. typeid evaluates it for a + // polymorphic type, which clang reports as -Wpotentially-evaluated-expression. + const Job &job = *m_job; BOOST_LOG_TRIVIAL(info) << std::fixed // do not use scientific notations - << "Job '" << typeid(*m_job).name() << "' " + << "Job '" << typeid(job).name() << "' " << "spend " << m_process_duration + finalize_duration << "ms " << "(process " << m_process_duration << "ms + finalize " << finalize_duration << "ms)"; diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 7b8912fe5b..675bc8da27 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -3068,10 +3068,10 @@ void MainFrame::init_menubar_as_editor() "", nullptr, [this](){return can_clone(); }, this); editMenu->AppendSeparator(); append_menu_item(editMenu, wxID_ANY, _L("Duplicate Current Plate"), - _L("Duplicate the current plate"),[this, handle_key_event](wxCommandEvent&) { + _L("Duplicate the current plate"),[this](wxCommandEvent&) { m_plater->duplicate_plate(); }, - "", nullptr, [this](){return true;}, this); + "", nullptr, [](){return true;}, this); editMenu->AppendSeparator(); #endif @@ -3338,11 +3338,11 @@ void MainFrame::init_menubar_as_editor() //parent_menu->Insert(0, about_item); append_menu_item( parent_menu, wxID_ANY, _L(about_title), "", - [this](wxCommandEvent &) { Slic3r::GUI::about();}, + [](wxCommandEvent &) { Slic3r::GUI::about();}, "", nullptr, []() { return true; }, this, 0); append_menu_item( parent_menu, wxID_ANY, _L("Preferences") + "\t" + ctrl + ",", "", - [this](wxCommandEvent &) { + [](wxCommandEvent &) { wxGetApp().open_preferences(); }, "", nullptr, []() { return true; }, this, 1); @@ -3530,13 +3530,13 @@ void MainFrame::init_menubar_as_editor() into_u8(_L("Syncing presets from cloud\u2026"))); wxGetApp().restart_sync_user_preset(); }, "", nullptr, - [this]() { + []() { return wxGetApp().is_user_login() && !wxGetApp().app_config->get_stealth_mode(); }, this); fileMenu->AppendSeparator(); append_menu_item( - fileMenu, wxID_ANY, _L("Plugins"), "", [this](wxCommandEvent&) { wxGetApp().open_plugins_dialog(); }, "", nullptr, + fileMenu, wxID_ANY, _L("Plugins"), "", [](wxCommandEvent&) { wxGetApp().open_plugins_dialog(); }, "", nullptr, []() { return true; }, this); fileMenu->AppendSeparator(); @@ -3640,7 +3640,7 @@ void MainFrame::init_menubar_as_editor() [this]() {return m_plater->is_view3D_shown();; }, this); // help append_menu_item(calib_menu, wxID_ANY, _L("Calibration Guide"), _L("Calibration Guide"), - [this](wxCommandEvent&) { wxLaunchDefaultBrowser("https://www.orcaslicer.com/wiki/calibration_guide", wxBROWSER_NEW_WINDOW); }, "", nullptr, + [](wxCommandEvent&) { wxLaunchDefaultBrowser("https://www.orcaslicer.com/wiki/calibration_guide", wxBROWSER_NEW_WINDOW); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); m_menubar->Append(calib_menu,wxString::Format("&%s", _L("Calibration"))); From 3605614ee7e13a0601ff9eb9d7dcb0d2b12cbb3f Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Wed, 2 Sep 2026 19:06:01 -0300 Subject: [PATCH 114/164] More Labels (#15511) --- .github/workflows/pr-label-bot.yml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pr-label-bot.yml b/.github/workflows/pr-label-bot.yml index 1214db0776..fe74841831 100644 --- a/.github/workflows/pr-label-bot.yml +++ b/.github/workflows/pr-label-bot.yml @@ -32,13 +32,21 @@ jobs: } const allowedLabels = [ + // kind of change + 'crash', 'bug-fix', 'enhancement', - 'Localization', - 'profile', 'QoL', + 'optimization', + // area 'UI/UX', - 'dependencies' + 'profile', + 'Localization', + // infrastructure + 'build', + 'test', + 'dependencies', + 'documentation' ]; const pr = context.payload.pull_request; const labelsList = `${allowedLabels @@ -182,13 +190,21 @@ jobs: } const allowedLabels = [ + // kind of change + 'crash', 'bug-fix', 'enhancement', - 'Localization', - 'profile', 'QoL', + 'optimization', + // area 'UI/UX', - 'dependencies' + 'profile', + 'Localization', + // infrastructure + 'build', + 'test', + 'dependencies', + 'documentation' ]; const issue = context.payload.issue; From 53c26a572449e1869b824975edb8fb954139fe2e Mon Sep 17 00:00:00 2001 From: Vladislav Khmelevsky <och95v@gmail.com> Date: Thu, 3 Sep 2026 03:21:27 +0400 Subject: [PATCH 115/164] fix: save 3d mouse settings (#15397) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- src/libslic3r/AppConfig.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 2d0c6a5d8d..29eb96aa5b 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -1440,6 +1440,7 @@ void AppConfig::set_mouse_device(const std::string& name, double translation_spe it->second["invert_yaw"] = invert_yaw ? "1" : "0"; it->second["invert_pitch"] = invert_pitch ? "1" : "0"; it->second["invert_roll"] = invert_roll ? "1" : "0"; + m_dirty = true; } std::vector<std::string> AppConfig::get_mouse_device_names() const From e6501bb1cecea4459df5481bfe76216cffaae2fa Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Wed, 2 Sep 2026 19:45:16 -0500 Subject: [PATCH 116/164] build: stop rebuilding the Flatpak dependencies on every run (#15501) --- .github/workflows/build_all.yml | 14 ++++- build_flatpak.sh | 3 + scripts/build_flatpak_with_docker.sh | 3 + scripts/flatpak/.gitignore | 1 + scripts/flatpak/check_manifest_cacheable.sh | 52 ++++++++++++++++++ scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | 9 +-- scripts/flatpak/make_deps_tar.sh | 55 +++++++++++++++++++ scripts/flatpak/setup_env_ubuntu24.04.sh | 7 ++- 8 files changed, 135 insertions(+), 9 deletions(-) create mode 100755 scripts/flatpak/check_manifest_cacheable.sh create mode 100755 scripts/flatpak/make_deps_tar.sh diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index d991bedca6..0ab9cfe41d 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -279,20 +279,24 @@ jobs: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV echo "git_commit_hash=$git_commit_hash" >> $GITHUB_ENV shell: bash + - name: Compute the flatpak-builder cache key + id: fp_cache_key + run: echo "key=flatpak-builder-${{ matrix.variant.arch }}-${{ hashFiles('deps/**', 'scripts/flatpak/com.orcaslicer.OrcaSlicer.yml', 'scripts/flatpak/make_deps_tar.sh') }}" >> "$GITHUB_OUTPUT" + shell: bash # Manage flatpak-builder cache externally so PRs restore but never upload - name: Restore flatpak-builder cache if: github.event_name == 'pull_request' uses: actions/cache/restore@v6 with: path: .flatpak-builder - key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.event.pull_request.base.sha }} + key: ${{ steps.fp_cache_key.outputs.key }} restore-keys: flatpak-builder-${{ matrix.variant.arch }}- - name: Save/restore flatpak-builder cache if: github.event_name != 'pull_request' uses: actions/cache@v6 with: path: .flatpak-builder - key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.sha }} + key: ${{ steps.fp_cache_key.outputs.key }} restore-keys: flatpak-builder-${{ matrix.variant.arch }}- - name: Disable debug info for faster CI builds run: | @@ -304,6 +308,12 @@ jobs: sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ scripts/flatpak/com.orcaslicer.OrcaSlicer.yml shell: bash + - name: Check the manifest keeps orca_deps cacheable + run: ./scripts/flatpak/check_manifest_cacheable.sh + shell: bash + - name: Pack deps/ for the Flatpak manifest + run: ./scripts/flatpak/make_deps_tar.sh + shell: bash - uses: flatpak/flatpak-github-actions/flatpak-builder@master with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak diff --git a/build_flatpak.sh b/build_flatpak.sh index b805bb3422..12ccac372b 100755 --- a/build_flatpak.sh +++ b/build_flatpak.sh @@ -260,6 +260,9 @@ if [[ ! -f "./scripts/flatpak/com.orcaslicer.OrcaSlicer.yml" ]]; then exit 1 fi +echo -e "${YELLOW}Packing deps/ for the manifest...${NC}" +./scripts/flatpak/make_deps_tar.sh + # Build the Flatpak echo -e "${YELLOW}Building Flatpak package...${NC}" echo -e "This may take a while (30+ minutes depending on your system)..." diff --git a/scripts/build_flatpak_with_docker.sh b/scripts/build_flatpak_with_docker.sh index 9e8805af2f..eedfe53692 100755 --- a/scripts/build_flatpak_with_docker.sh +++ b/scripts/build_flatpak_with_docker.sh @@ -122,6 +122,9 @@ sed "/name: OrcaSlicer/{ \1 git_commit_hash: \"$GIT_COMMIT_HASH\"| }" > "$MANIFEST_DOCKER" +# ---------- pack deps/ ---------- +./scripts/flatpak/make_deps_tar.sh + # ---------- run build in Docker ---------- DOCKER="${DOCKER:-docker}" diff --git a/scripts/flatpak/.gitignore b/scripts/flatpak/.gitignore index 3b01f15d01..21abf7a876 100644 --- a/scripts/flatpak/.gitignore +++ b/scripts/flatpak/.gitignore @@ -1,3 +1,4 @@ builddir .flatpak-builder *.docker.yml +deps.tar* diff --git a/scripts/flatpak/check_manifest_cacheable.sh b/scripts/flatpak/check_manifest_cacheable.sh new file mode 100755 index 0000000000..e82190ca81 --- /dev/null +++ b/scripts/flatpak/check_manifest_cacheable.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# Check a Flatpak manifest for `type: dir` sources at or before the orca_deps +# module. +# +# Usage: check_manifest_cacheable.sh [manifest] +# Defaults to com.orcaslicer.OrcaSlicer.yml next to this script. +# +# Exits 0 when none are found, 1 when any are, listing them as file:line, and +# 2 when the manifest is missing or has no orca_deps module. + +set -euo pipefail + +anchor=orca_deps +manifest=${1:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/com.orcaslicer.OrcaSlicer.yml} + +module_re='^ - name: ' +dir_re='(^|[-{,[:space:]])type:[[:space:]]*dir([,}[:space:]]|$)' + +if [ ! -f "$manifest" ]; then + echo "$manifest: no such file" >&2 + exit 2 +fi + +anchor_start=$(grep -n "${module_re}${anchor}[[:space:]]*$" "$manifest" | cut -d: -f1 || true) +if [ -z "$anchor_start" ]; then + echo "$manifest: no module named '$anchor'; this check needs updating" >&2 + exit 2 +fi + +# First module header after the anchor, or EOF if the anchor is last. +anchor_end=$(grep -n "$module_re" "$manifest" | cut -d: -f1 | + awk -v s="$anchor_start" '$1 > s { print $1; exit }') +[ -n "$anchor_end" ] || anchor_end=$(awk 'END { print NR + 1 }' "$manifest") + +violations=$(awk -v e="$anchor_end" -v f="$manifest" -v mre="$module_re" -v dre="$dir_re" ' + { sub(/\r$/, "") } + /^[[:space:]]*#/ { next } + $0 ~ mre { module = $3 } + NR < e && $0 ~ dre { + printf "%s:%d: %s (module %s)\n", f, NR, $0, module + }' "$manifest") + +if [ -n "$violations" ]; then + printf '%s\n' "$violations" >&2 + echo >&2 + echo "flatpak-builder cannot checksum a directory, so each of these makes" >&2 + echo "$anchor and every module after it rebuild from scratch on every run." >&2 + echo "See the $anchor sources in this manifest for the tarball used instead." >&2 + exit 1 +fi + +echo "manifest OK: no 'type: dir' source at or before $anchor" diff --git a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml index a3efaced8c..00aa430f84 100644 --- a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml +++ b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml @@ -144,6 +144,7 @@ modules: env: BUILD_DIR: deps/build_flatpak build-commands: + - tar xf deps.tar - | cmake -S deps -B $BUILD_DIR \ -DFLATPAK=ON \ @@ -169,10 +170,10 @@ modules: - /libpython/include sources: - # OrcaSlicer deps/ directory (avoids copying .git from worktree) - - type: dir - path: ../../deps - dest: deps + # flatpak-builder cannot checksum a directory, so a `type: dir` here would + # rebuild every dependency on every run. Generated by make_deps_tar.sh. + - type: file + path: deps.tar # --------------------------------------------------------------- # Pre-downloaded dependency archives diff --git a/scripts/flatpak/make_deps_tar.sh b/scripts/flatpak/make_deps_tar.sh new file mode 100755 index 0000000000..e561da2e7b --- /dev/null +++ b/scripts/flatpak/make_deps_tar.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# Pack deps/ into scripts/flatpak/deps.tar for the Flatpak manifest's orca_deps +# module. +# +# Usage: make_deps_tar.sh +# Requires GNU tar. On macOS, brew install gnu-tar. +# +# The archive is byte-reproducible. Member order, mtimes, ownership and the +# group/other write bits are pinned, so identical deps/ contents always produce +# an identical file. deps/build* and deps/DL_CACHE are excluded. +# +# Prints the output path, size and sha256. + +set -euo pipefail + +if [ "$#" -ne 0 ]; then + echo "usage: ${0##*/}" >&2 + exit 2 +fi + +tar_bin=$(command -v gtar || command -v tar || true) +tar_version=$([ -n "$tar_bin" ] && "$tar_bin" --version 2>/dev/null || true) +case $tar_version in + *"GNU tar"*) ;; + *) echo "${0##*/}: needs GNU tar; on macOS run 'brew install gnu-tar'" >&2 + exit 2 ;; +esac + +script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) +repo_root=$(cd "$script_dir/../.." && pwd) +out=$script_dir/deps.tar +tmp=$out.tmp +trap 'rm -f "$tmp"' EXIT + +"$tar_bin" --format=gnu \ + --sort=name \ + --mtime=@0 \ + --owner=0 --group=0 --numeric-owner \ + --mode=go-w \ + --exclude='deps/build*' \ + --exclude='deps/DL_CACHE' \ + -cf "$tmp" \ + -C "$repo_root" deps + +mv -f "$tmp" "$out" + +if command -v sha256sum >/dev/null 2>&1; then + sum=$(sha256sum "$out" | cut -d' ' -f1) +elif command -v shasum >/dev/null 2>&1; then + sum=$(shasum -a 256 "$out" | cut -d' ' -f1) +else + sum=unavailable +fi + +echo "Wrote $out ($(du -h "$out" | cut -f1), sha256 $sum)" diff --git a/scripts/flatpak/setup_env_ubuntu24.04.sh b/scripts/flatpak/setup_env_ubuntu24.04.sh index a0ccbb9b32..74b7629f60 100755 --- a/scripts/flatpak/setup_env_ubuntu24.04.sh +++ b/scripts/flatpak/setup_env_ubuntu24.04.sh @@ -8,8 +8,9 @@ flatpak install flathub org.gnome.Platform//50 org.gnome.Sdk//50 org.freedesktop ## # in OrcaSlicer folder, run following command to build Orca -# # First time build -# flatpak-builder --state-dir=.flatpak-builder --keep-build-dirs --user --force-clean build-dir scripts/flatpak/com.orcaslicer.OrcaSlicer.yml -# # Subsequent builds (only rebuilding OrcaSlicer) +# # First time build +# ./scripts/flatpak/make_deps_tar.sh && flatpak-builder --state-dir=.flatpak-builder --keep-build-dirs --user --force-clean build-dir scripts/flatpak/com.orcaslicer.OrcaSlicer.yml + +# # Subsequent builds (only rebuilding OrcaSlicer; run make_deps_tar.sh first if deps/ changed) # flatpak-builder --state-dir=.flatpak-builder --keep-build-dirs --user build-dir scripts/flatpak/com.orcaslicer.OrcaSlicer.yml --build-only=OrcaSlicer \ No newline at end of file From 21fdd7028fda2e1eb0da70ab6d120f8936e2a5f8 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Thu, 3 Sep 2026 11:25:49 +0800 Subject: [PATCH 117/164] Fix spurious slice-validation failures when checking all vendors The sweep now validates each printer with the filament that printer ships, so a run over every vendor reports what a single-vendor run does. Validator only - no change to slicing output or shipped profiles. --- src/dev-utils/OrcaSlicer_profile_validator.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/dev-utils/OrcaSlicer_profile_validator.cpp b/src/dev-utils/OrcaSlicer_profile_validator.cpp index 49a38cd1c4..21c6b33180 100644 --- a/src/dev-utils/OrcaSlicer_profile_validator.cpp +++ b/src/dev-utils/OrcaSlicer_profile_validator.cpp @@ -175,6 +175,17 @@ void select_printer_default_presets(PresetBundle &bundle) if (const auto *def_fil = printer_preset.config.option<ConfigOptionStrings>("default_filament_profile"); def_fil != nullptr && !def_fil->values.empty()) bundle.filaments.select_preset_by_name(def_fil->values.front(), /*force=*/true); + // Re-seed the per-slot filament list from that selection, or the sweep's result depends on the + // printer sliced before it. Once there are 2+ slots, full_config() builds the filament config from + // filament_presets and ignores the selected preset (PresetBundle::full_fff_config), while + // update_compatible() only replaces a slot that has gone *incompatible* - and when it does, it ranks + // the outgoing preset's alias, then its filament type, above the printer's own default. The sweep + // grows every printer to 2 slots and update_multi_material_filament_presets() never shrinks them, so + // a material picked up on the first printer rides the whole run. With all vendors loaded the first + // printer inherits a TPU (the load-time pick is whichever filament sorts first), the type match + // re-resolves it to "Generic TPU @System", and its alias then pins every later printer to that + // vendor's own "Generic TPU @..." - which the BBL dual-nozzle profiles rightly refuse to group. + bundle.filament_presets.assign(1, bundle.filaments.get_selected_preset_name()); } // The vendor/printer currently being sliced, stamped onto every engine log record by the sink below so From e2b251c145620fc6b0214202a4fc863fa73ca9ed Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Thu, 3 Sep 2026 12:14:14 +0800 Subject: [PATCH 118/164] Fix generic PLA and default filaments on the Creality Hi --- resources/profiles/Creality.json | 6 +++--- ...c PLA @Hi-all.json => Generic PLA @Creality Hi-all.json} | 5 +++-- .../profiles/Creality/filament/Generic PLA @Hi-all.json | 2 -- .../filament/Generic PLA High Speed @Creality Hi-all.json | 2 +- .../filament/Generic PLA Matte @Creality Hi-all.json | 2 +- .../filament/Generic PLA Silk @Creality Hi-all.json | 2 +- .../filament/Generic PLA Wood @Creality Hi-all.json | 2 +- .../profiles/Creality/machine/Creality Hi 0.2 nozzle.json | 2 +- .../profiles/Creality/machine/Creality Hi 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality Hi 0.6 nozzle.json | 2 +- .../profiles/Creality/machine/Creality Hi 0.8 nozzle.json | 2 +- resources/profiles/Creality/machine/Creality Hi.json | 2 +- scripts/filament_id_snapshot.json | 1 - 13 files changed, 15 insertions(+), 17 deletions(-) rename resources/profiles/Creality/filament/{Creality Generic PLA @Hi-all.json => Generic PLA @Creality Hi-all.json} (91%) diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index a043d51433..7db87efed7 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.78", + "version": "02.03.02.79", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ @@ -1809,8 +1809,8 @@ "sub_path": "filament/Generic PLA @Creality Ender-3V3-all.json" }, { - "name": "Creality Generic PLA @Hi-all", - "sub_path": "filament/Creality Generic PLA @Hi-all.json" + "name": "Generic PLA @Creality Hi-all", + "sub_path": "filament/Generic PLA @Creality Hi-all.json" }, { "name": "Generic PLA @Creality K1-all", diff --git a/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality Hi-all.json similarity index 91% rename from resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json rename to resources/profiles/Creality/filament/Generic PLA @Creality Hi-all.json index 63f51623a0..452c7854ae 100644 --- a/resources/profiles/Creality/filament/Creality Generic PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality Hi-all.json @@ -1,9 +1,10 @@ { "type": "filament", - "name": "Creality Generic PLA @Hi-all", + "name": "Generic PLA @Creality Hi-all", "inherits": "Generic PLA @Creality", + "renamed_from": "Creality Generic PLA @Hi-all;Creality Generic PLA Hi-all", "from": "system", - "setting_id": "3gf0CImK4nJwfXrB", + "setting_id": "6rwK4GqvNrgaw4kF", "instantiation": "true", "filament_max_volumetric_speed": [ "18" diff --git a/resources/profiles/Creality/filament/Generic PLA @Hi-all.json b/resources/profiles/Creality/filament/Generic PLA @Hi-all.json index b79aa1d05f..43bb0786ea 100644 --- a/resources/profiles/Creality/filament/Generic PLA @Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Hi-all.json @@ -136,8 +136,6 @@ "pressure_advance": "0.04", "support_material_interface_fan_speed": "-1", "compatible_printers": [ - "Creality Hi 0.4 nozzle", - "Creality Hi 0.6 nozzle", "Creality Hi 0.8 nozzle" ], "filament_id": "OFDSrzZ8" diff --git a/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json index 0e64943dd5..cb184a432a 100644 --- a/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA High Speed @Creality Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA High Speed @Creality Hi-all", - "inherits": "Creality Generic PLA @Hi-all", + "inherits": "Generic PLA @Creality Hi-all", "renamed_from": "Creality Generic PLA High Speed @Hi-all;Creality Generic PLA High Speed Hi-all", "from": "system", "setting_id": "KJZ1ztg3jL2Cg4fi", diff --git a/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json index c657630c40..1cff84c8bf 100644 --- a/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Matte @Creality Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA Matte @Creality Hi-all", - "inherits": "Creality Generic PLA @Hi-all", + "inherits": "Generic PLA @Creality Hi-all", "renamed_from": "Creality Generic PLA Matte @Hi-all;Creality Generic PLA Matte Hi-all", "from": "system", "setting_id": "pFxJgjam0WAeSKqf", diff --git a/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json index bd41fff189..3358b98c75 100644 --- a/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Silk @Creality Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA Silk @Creality Hi-all", - "inherits": "Creality Generic PLA @Hi-all", + "inherits": "Generic PLA @Creality Hi-all", "renamed_from": "Creality Generic PLA Silk @Hi-all;Creality Generic PLA Silk Hi-all", "from": "system", "setting_id": "k1ofgUXqhHGSPDPY", diff --git a/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json b/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json index b272cb185a..62f6ddf42c 100644 --- a/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json +++ b/resources/profiles/Creality/filament/Generic PLA Wood @Creality Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PLA Wood @Creality Hi-all", - "inherits": "Creality Generic PLA @Hi-all", + "inherits": "Generic PLA @Creality Hi-all", "renamed_from": "Creality Generic PLA Wood @Hi-all;Creality Generic PLA Wood Hi-all", "from": "system", "setting_id": "PNqfF5ecYqqpobdh", diff --git a/resources/profiles/Creality/machine/Creality Hi 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.2 nozzle.json index b7a1676baa..57dcd7e949 100644 --- a/resources/profiles/Creality/machine/Creality Hi 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Hi 0.2 nozzle.json @@ -91,7 +91,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @Hi-all" + "Generic PLA @System" ], "deretraction_speed": "40", "extruder_colour": "#018001", diff --git a/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json index 74cd4559d5..0372431a1e 100644 --- a/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Hi 0.4 nozzle.json @@ -135,7 +135,7 @@ "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X260 Y180 F30000\nG1 Z{z_after_toolchange} F600", "default_filament_profile": [ - "Creality Generic PLA @Hi-all" + "Generic PLA @Creality Hi-all" ], "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "G1 X0 Y180 F8000\nEND_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json index 402771c410..f7bcd5884d 100644 --- a/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Hi 0.6 nozzle.json @@ -135,7 +135,7 @@ "machine_pause_gcode": "PAUSE", "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X260 Y180 F30000\nG1 Z{z_after_toolchange} F600", "default_filament_profile": [ - "Creality Generic PLA @Hi-all" + "Generic PLA @Creality Hi-all" ], "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "G1 X0 Y180 F8000\nEND_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Hi 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Hi 0.8 nozzle.json index 5f43c0992c..23e19a2a66 100644 --- a/resources/profiles/Creality/machine/Creality Hi 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Hi 0.8 nozzle.json @@ -86,7 +86,7 @@ "use_relative_e_distances": "1", "z_offset": "0", "default_filament_profile": [ - "Creality Generic PLA @Hi-all" + "Generic PLA @Hi-all" ], "deretraction_speed": "40", "extruder_colour": "#018001", diff --git a/resources/profiles/Creality/machine/Creality Hi.json b/resources/profiles/Creality/machine/Creality Hi.json index 107d587cc5..279daf531c 100644 --- a/resources/profiles/Creality/machine/Creality Hi.json +++ b/resources/profiles/Creality/machine/Creality Hi.json @@ -9,5 +9,5 @@ "bed_texture": "creality_hi_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "", - "default_materials": "Generic ABS @Creality Hi-all;Generic ASA @Creality Hi-all;Generic ASA-CF @Creality Hi-all;Generic PETG @Creality Hi-all;Generic PETG-CF @Creality Hi-all;Generic PLA @Creality Hi-all;Generic PLA High Speed @Creality Hi-all;Generic PLA Matte @Creality Hi-all;Generic PLA Silk @Creality Hi-all;Generic PLA-CF @Creality Hi-all;Generic PLA Wood @Creality Hi-all;Generic TPU @Creality Hi-all" + "default_materials": "Generic ABS @Creality Hi-all;Generic ABS @Hi-all;Generic ASA @Creality Hi-all;Generic ASA-CF @Creality Hi-all;Generic PETG @Creality Hi-all;Generic PETG @Hi-all;Generic PETG-CF @Creality Hi-all;Generic PLA @Creality Hi-all;Generic PLA @Hi-all;Generic PLA High Speed @Creality Hi-all;Generic PLA Matte @Creality Hi-all;Generic PLA Silk @Creality Hi-all;Generic PLA-CF @Creality Hi-all;Generic PLA Wood @Creality Hi-all;Generic TPU @Creality Hi-all" } diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index c9966fc8d6..efaffb0654 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -2055,7 +2055,6 @@ "Co Print/Generic PLA", "CoLiDo/Generic PLA", "Comgrow/Generic PLA", - "Creality/Creality Generic PLA", "Creality/Generic PLA", "Custom/Generic PLA", "DeltaMaker/Generic PLA", From fdc0ee18f11f22766e1e22e66fe0304fedadb086 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Thu, 3 Sep 2026 17:47:29 +0800 Subject: [PATCH 119/164] fix vendor version --- resources/profiles/Afinia.json | 2 +- resources/profiles/Chuanying.json | 2 +- resources/profiles/Comgrow.json | 2 +- resources/profiles/Creality.json | 2 +- resources/profiles/Cubicon.json | 2 +- resources/profiles/Custom.json | 2 +- resources/profiles/Dremel.json | 2 +- resources/profiles/Elegoo.json | 2 +- resources/profiles/Eryone.json | 2 +- resources/profiles/FLSun.json | 2 +- resources/profiles/Flashforge.json | 2 +- resources/profiles/LH.json | 2 +- resources/profiles/LONGER.json | 2 +- resources/profiles/Qidi.json | 2 +- resources/profiles/RH3D.json | 2 +- resources/profiles/Ratrig.json | 2 +- resources/profiles/SeeMeCNC.json | 2 +- resources/profiles/Snapmaker.json | 2 +- resources/profiles/Volumic.json | 2 +- resources/profiles/WonderMaker.json | 2 +- resources/profiles/iQ.json | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/resources/profiles/Afinia.json b/resources/profiles/Afinia.json index a11cc0ecf6..517d0148c3 100644 --- a/resources/profiles/Afinia.json +++ b/resources/profiles/Afinia.json @@ -1,6 +1,6 @@ { "name": "Afinia", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Afinia configurations", "machine_model_list": [ diff --git a/resources/profiles/Chuanying.json b/resources/profiles/Chuanying.json index d994843f60..f32b4f84ae 100644 --- a/resources/profiles/Chuanying.json +++ b/resources/profiles/Chuanying.json @@ -1,7 +1,7 @@ { "name": "Chuanying", "url": "", - "version": "02.04.00.04", + "version": "02.04.00.03", "force_update": "0", "description": "Chuanying configurations", "machine_model_list": [ diff --git a/resources/profiles/Comgrow.json b/resources/profiles/Comgrow.json index e3eb237518..d506431ce8 100644 --- a/resources/profiles/Comgrow.json +++ b/resources/profiles/Comgrow.json @@ -1,6 +1,6 @@ { "name": "Comgrow", - "version": "02.04.00.05", + "version": "02.04.00.04", "force_update": "0", "description": "Comgrow configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 7db87efed7..23b8b3799b 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.79", + "version": "02.03.02.77", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Cubicon.json b/resources/profiles/Cubicon.json index 9f2100a187..1fca49355c 100644 --- a/resources/profiles/Cubicon.json +++ b/resources/profiles/Cubicon.json @@ -1,6 +1,6 @@ { "name": "Cubicon", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Cubicon configurations", "machine_model_list": [ diff --git a/resources/profiles/Custom.json b/resources/profiles/Custom.json index 7eba013111..a8cef36ca5 100644 --- a/resources/profiles/Custom.json +++ b/resources/profiles/Custom.json @@ -1,6 +1,6 @@ { "name": "Custom Printer", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "My configurations", "machine_model_list": [ diff --git a/resources/profiles/Dremel.json b/resources/profiles/Dremel.json index 3d804f6a1b..71f13d0dc8 100644 --- a/resources/profiles/Dremel.json +++ b/resources/profiles/Dremel.json @@ -1,6 +1,6 @@ { "name": "Dremel", - "version": "02.04.00.03", + "version": "02.04.00.02", "force_update": "0", "description": "Dremel configurations", "machine_model_list": [ diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index 3813f93348..c5412c53bd 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -1,6 +1,6 @@ { "name": "Elegoo", - "version": "02.04.00.06", + "version": "02.04.00.07", "force_update": "0", "description": "Elegoo configurations", "machine_model_list": [ diff --git a/resources/profiles/Eryone.json b/resources/profiles/Eryone.json index b3bec6e892..488ba18337 100644 --- a/resources/profiles/Eryone.json +++ b/resources/profiles/Eryone.json @@ -1,6 +1,6 @@ { "name": "Eryone", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "Eryone configurations", "machine_model_list": [ diff --git a/resources/profiles/FLSun.json b/resources/profiles/FLSun.json index 67ce8c2583..1e0c76d458 100644 --- a/resources/profiles/FLSun.json +++ b/resources/profiles/FLSun.json @@ -1,6 +1,6 @@ { "name": "FLSun", - "version": "02.04.00.04", + "version": "02.04.00.03", "force_update": "0", "description": "FLSun configurations", "machine_model_list": [ diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index e754ca729a..f3923c435a 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.04.00.07", + "version": "02.04.00.05", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ diff --git a/resources/profiles/LH.json b/resources/profiles/LH.json index 12f8c4cbda..99a7049fa5 100644 --- a/resources/profiles/LH.json +++ b/resources/profiles/LH.json @@ -1,7 +1,7 @@ { "name": "LH", "url": "https://github.com/lhndo/LH-Stinger", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "LH 3D Printer Configuration", "machine_model_list": [ diff --git a/resources/profiles/LONGER.json b/resources/profiles/LONGER.json index 723bb43e91..dbf3cc3277 100644 --- a/resources/profiles/LONGER.json +++ b/resources/profiles/LONGER.json @@ -1,6 +1,6 @@ { "name": "LONGER", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "LONGER configurations", "machine_model_list": [ diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index a831bb268c..f49413601a 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,6 +1,6 @@ { "name": "Qidi", - "version": "02.04.00.14", + "version": "02.04.00.12", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ diff --git a/resources/profiles/RH3D.json b/resources/profiles/RH3D.json index fc8aa57484..4cb9ab573e 100644 --- a/resources/profiles/RH3D.json +++ b/resources/profiles/RH3D.json @@ -1,6 +1,6 @@ { "name": "RH3D", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "RH3D - printer profiles", "machine_model_list": [ diff --git a/resources/profiles/Ratrig.json b/resources/profiles/Ratrig.json index a2b792ebdd..dbe4c3cc56 100644 --- a/resources/profiles/Ratrig.json +++ b/resources/profiles/Ratrig.json @@ -1,6 +1,6 @@ { "name": "RatRig", - "version": "02.04.00.05", + "version": "02.04.00.03", "force_update": "0", "description": "RatRig configurations", "machine_model_list": [ diff --git a/resources/profiles/SeeMeCNC.json b/resources/profiles/SeeMeCNC.json index e3674f8709..4bc30dee93 100644 --- a/resources/profiles/SeeMeCNC.json +++ b/resources/profiles/SeeMeCNC.json @@ -1,6 +1,6 @@ { "name": "SeeMeCNC", - "version": "2.4.0.02", + "version": "2.4.0.03", "force_update": "1", "description": "SeeMeCNC configurations - Full profile set for Artemis, BOSSdelta, and RostockMAX printers", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 50aaad2715..65b1d12a3a 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.11", + "version": "02.04.00.10", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Volumic.json b/resources/profiles/Volumic.json index 08a313b008..af7aa294bc 100644 --- a/resources/profiles/Volumic.json +++ b/resources/profiles/Volumic.json @@ -1,6 +1,6 @@ { "name": "Volumic", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "1", "description": "VOLUMIC configurations", "machine_model_list": [ diff --git a/resources/profiles/WonderMaker.json b/resources/profiles/WonderMaker.json index c65bc82729..0eeffdb045 100755 --- a/resources/profiles/WonderMaker.json +++ b/resources/profiles/WonderMaker.json @@ -1,7 +1,7 @@ { "name": "WonderMaker", "url": "", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "WonderMaker configurations", "machine_model_list": [ diff --git a/resources/profiles/iQ.json b/resources/profiles/iQ.json index 4afcb18328..050a0a2eb2 100644 --- a/resources/profiles/iQ.json +++ b/resources/profiles/iQ.json @@ -1,6 +1,6 @@ { "name": "innovatiQ", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "1", "description": "innovatiQ configuration", "machine_model_list": [ From f92bd811904b6223241fd967c54cfa1554e6f017 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Thu, 3 Sep 2026 07:56:33 -0500 Subject: [PATCH 120/164] fix: build_win.bat builds with whatever clang-cl is first on PATH (#15504) * fix: build_win.bat builds with whatever clang-cl is first on PATH VsDevCmd appends the Visual Studio LLVM directory to the end of PATH, so a standalone LLVM already on it shadows the Visual Studio one. -l -x passed a bare clang-cl.exe for CMake to resolve, so the build ran on whichever copy came first. For one reporter that was an LLVM 11, which failed the compiler check before anything was compiled: -- Check for working C compiler: C:/Program Files/LLVM/bin/clang-cl.exe - broken lld-link: error: undefined symbol: __guard_eh_cont_table The compiler is now resolved through vswhere and passed as a full path, so PATH order no longer matters. CMake derives the linker from the compiler directory, so lld-link follows. Only a configure passes it to CMake, so -p and --no-configure resolve nothing and stay buildable on a machine with no clang installed. When Visual Studio has no clang toolset the script falls back to the first clang-cl on PATH and names it. With none installed at all it now errors with what to add, instead of failing later inside CMake. Every clang-cl run that configures prints the compiler it resolved. The suite gains a clang-cl fixture earlier on PATH than the Visual Studio one, and an empty ProgramFiles(x86) to put vswhere out of reach, which covers both fallbacks without touching the machine. * fix: build_win.bat pointed at a solution file that is not there The Visual Studio 2026 generator writes OrcaSlicer.slnx and the releases before it OrcaSlicer.sln. The summary hard-coded the second, so the path it printed after an MSVC build against 2026 was wrong. --- build_win.bat | 79 +++++++++++++++++++++++++++++++++---- scripts/test_build_win.ps1 | 80 +++++++++++++++++++++++++++++++++----- 2 files changed, 142 insertions(+), 17 deletions(-) diff --git a/build_win.bat b/build_win.bat index 926468687b..15399d5e3d 100644 --- a/build_win.bat +++ b/build_win.bat @@ -370,13 +370,13 @@ if "%use_ninja%" == "ON" ( set "using_ninja=ON" ) +call :resolve_clang_cl +%repeat_error% + if "%using_ninja%" == "ON" ( if "%use_clang_cl%" == "ON" ( - REM Bare, so it resolves from the PATH the dev shell just set up, which - REM is the clang shipped with Visual Studio. --clang-path names another. - set "clang_exe=clang-cl.exe" - if not "%clang_path%" == "" set "clang_exe="%clang_path%"" - set "gen_args=-DCMAKE_C_COMPILER=!clang_exe! -DCMAKE_CXX_COMPILER=!clang_exe!" + REM Quoted, because the resolved path has spaces in it. + set "gen_args=-DCMAKE_C_COMPILER="!clang_exe!" -DCMAKE_CXX_COMPILER="!clang_exe!"" ) ) else ( set "gen_args=-A !arch!" @@ -473,6 +473,7 @@ REM forward slashes, and anything that prints the directory has to show a REM real path rather than one glued onto the repository root. for %%p in ("!build_dir!") do set "build_full=%%~fp" echo Configuration: %build_type%, %arch% +if not "%clang_exe%" == "" echo Compiler: %clang_exe% set "SIG_FLAG=" if defined ORCA_UPDATER_SIG_KEY set "SIG_FLAG=-DORCA_UPDATER_SIG_KEY=%ORCA_UPDATER_SIG_KEY%" @@ -734,6 +735,14 @@ REM worked out the same way in either run. set "slicer_exe=%build_dir%\src\%build_type%\orca-slicer.exe" if "%install_slicer%" == "ON" set "slicer_exe=%build_dir%\OrcaSlicer\orca-slicer.exe" for %%p in ("!slicer_exe!") do set "slicer_full=%%~fp" + REM The 2026 generator writes OrcaSlicer.slnx, the releases before it + REM OrcaSlicer.sln. A file already there wins, in case an older CMake + REM configured the build. + set "solution=OrcaSlicer.sln" + if "%vs_version%" == "2026" set "solution=OrcaSlicer.slnx" + if exist "!build_full!\OrcaSlicer.sln" set "solution=OrcaSlicer.sln" + if exist "!build_full!\OrcaSlicer.slnx" set "solution=OrcaSlicer.slnx" + REM Naming a target builds it and its dependencies, not its dependents, REM so only a full build or the executable's own target relinks. set "linked=ON" @@ -751,14 +760,14 @@ REM worked out the same way in either run. if "%build_deps%" == "ON" echo Dependencies !dep_full! if "%build_slicer%" == "ON" if "%linked%" == "ON" echo OrcaSlicer !slicer_full! if "%build_slicer%" == "ON" if not "%linked%" == "ON" echo Target %slicer_target% - if "%build_slicer%" == "ON" if not "%using_ninja%" == "ON" echo Solution %build_full%\OrcaSlicer.sln + if "%build_slicer%" == "ON" if not "%using_ninja%" == "ON" echo Solution %build_full%\!solution! if "%pack_deps%" == "ON" if defined bundle echo Bundle !bundle! echo. echo Next if "%build_slicer%" == "ON" ( if "%linked%" == "ON" echo Run it !slicer_exe! - if not "%using_ninja%" == "ON" echo Open in Visual Studio %build_dir%\OrcaSlicer.sln + if not "%using_ninja%" == "ON" echo Open in Visual Studio %build_dir%\!solution! if "%linked%" == "ON" echo Rebuild after edits build_win.bat -s!recall! --no-configure if not "%linked%" == "ON" echo Relink the binary build_win.bat -s!recall! --no-configure if "%linked%" == "ON" if "%using_ninja%" == "ON" echo Rebuild one target build_win.bat -s!recall! --no-configure --slicer-target libslic3r @@ -1080,6 +1089,62 @@ REM echo_var <variable> exit /b 0 +REM resolve_clang_cl - set clang_exe to the clang-cl a Ninja build uses. +REM VsDevCmd appends the Visual Studio LLVM directory to the end of PATH, +REM so a standalone LLVM already there shadows it. Name a full path. +:resolve_clang_cl + set "clang_exe=" + if not "%using_ninja%" == "ON" exit /b 0 + if not "%use_clang_cl%" == "ON" exit /b 0 + REM Only a configure uses it, so -p and --no-configure need none. + if "%no_configure%" == "ON" exit /b 0 + if "%build_deps%%build_slicer%" == "" exit /b 0 + + REM --clang-path wins. Forward slashes either way, so CMake does not + REM read a backslash as an escape. + if not "%clang_path%" == "" ( + set "clang_exe=%clang_path:\=/%" + exit /b 0 + ) + + setlocal + + REM Keyed on the host, not %arch%, because the x64 compiler + REM cross-compiles to ARM64. + set "llvm_host=x64" + if /I "%PROCESSOR_ARCHITECTURE%" == "ARM64" set "llvm_host=ARM64" + + set "found=" + %VSWHERE% -nologo >nul 2>nul + if !errorlevel! == 0 ( + for /f "tokens=*" %%i in ('%VSWHERE% -nologo -products * -latest -property resolvedInstallationPath') do ( + if exist "%%i\VC\Tools\Llvm\!llvm_host!\bin\clang-cl.exe" ( + set "found=%%i\VC\Tools\Llvm\!llvm_host!\bin\clang-cl.exe" + ) + ) + ) + + REM No clang toolset in Visual Studio. where lists every match, and the + REM first is the one PATH would resolve. + if "!found!" == "" ( + for /f "tokens=*" %%i in ('where clang-cl.exe 2^>nul') do ( + if "!found!" == "" set "found=%%i" + ) + if not "!found!" == "" echo Visual Studio has no clang-cl; using !found! from PATH. + ) + + if "!found!" == "" ( + echo No clang-cl found. Add the C++ Clang Compiler component with + echo %script_name% --install-vs ide -l + echo or name a standalone one with --clang-path. + endlocal + exit /b 1 + ) + + endlocal & set "clang_exe=%found:\=/%" + + exit /b 0 + REM clean_tree <path> - remove a build tree, refusing anything that is not REM one. Nothing here should ever fire; it is a floor under a bug that REM produced a path far shorter than it looks. diff --git a/scripts/test_build_win.ps1 b/scripts/test_build_win.ps1 index 62eaaae77b..563430559f 100644 --- a/scripts/test_build_win.ps1 +++ b/scripts/test_build_win.ps1 @@ -85,6 +85,24 @@ foreach ($v in @{ old = '1.11.1'; new = '1.12.0' }.GetEnumerator()) { $ninjaPaths[$v.Key] = "$d;$env:PATH" } +# A clang-cl earlier on PATH than the Visual Studio one, which is what the +# compiler used to resolve to. Nothing runs it; the script only locates it. +$clangDir = Join-Path $fixtures 'clang' +New-Item -ItemType Directory -Force -Path $clangDir | Out-Null +Copy-Item "$env:SystemRoot\System32\where.exe" (Join-Path $clangDir 'clang-cl.exe') -Force +$clangOnPath = "$clangDir;$env:PATH" + +# ProgramFiles(x86) is where the script looks for vswhere, so an empty one +# stands in for a machine whose Visual Studio has no clang toolset. +$noVs = Join-Path $fixtures 'no-vs' +New-Item -ItemType Directory -Force -Path $noVs | Out-Null + +# A build directory that already holds a classic solution, for the case where +# what is on disk disagrees with what the generator would write. +$slnDir = Join-Path $fixtures 'sln' +New-Item -ItemType Directory -Force -Path $slnDir | Out-Null +Set-Content -Path (Join-Path $slnDir 'OrcaSlicer.sln') -Value '' -Encoding ascii + # The pack stamp is checked against real dates, so a locale-dependent parse # in the script cannot pass by looking date-shaped. Yesterday is accepted too, # so a run that crosses midnight does not flake. @@ -131,7 +149,36 @@ $cases = @( Contains = @('-G "Ninja Multi-Config"') NotContains = @('clang-cl', '-A x64') } @{ Name = '-l -x builds with clang-cl under Ninja'; Args = @('-d', '-l', '-x') - Contains = @('-G "Ninja Multi-Config"', '-DCMAKE_C_COMPILER=clang-cl.exe', '-DCMAKE_CXX_COMPILER=clang-cl.exe') } + Contains = @('-G "Ninja Multi-Config"') + Match = @('-DCMAKE_C_COMPILER="[^"]+/clang-cl\.exe"', '-DCMAKE_CXX_COMPILER="[^"]+/clang-cl\.exe"') } + # PATH order used to decide the compiler. VsDevCmd appends the Visual + # Studio LLVM directory to the end of PATH, so a standalone LLVM already + # there was resolved instead, and an old one failed the compiler check. + @{ Name = 'the compiler is resolved from Visual Studio, not PATH'; Args = @('-s', '-l', '-x') + Env = @{ PATH = $clangOnPath } + Match = @('^Compiler: .*/VC/Tools/Llvm/[^/]+/bin/clang-cl\.exe$') } + @{ Name = 'msvc names no compiler, having resolved none'; Args = @('-s') + NotContains = @('Compiler: ') } + @{ Name = '-l without -x names none either, the toolset picks it'; Args = @('-s', '-l') + NotContains = @('Compiler: ') } + # An empty ProgramFiles(x86) puts vswhere out of reach, which is a machine + # whose Visual Studio has no clang toolset. + @{ Name = 'without a Visual Studio clang the one on PATH is used and named'; Args = @('-s', '-l', '-x') + Env = @{ 'ProgramFiles(x86)' = $noVs; PATH = $clangOnPath } + Contains = @('Visual Studio has no clang-cl') + Match = @('^Compiler: .*/clang/clang-cl\.exe$') } + @{ Name = 'no clang-cl anywhere stops before configuring'; Args = @('-s', '-l', '-x'); ExpectExit = 1 + Env = @{ 'ProgramFiles(x86)' = $noVs; PATH = 'C:\Windows\system32;C:\Windows' } + Contains = @('No clang-cl found', '--install-vs ide -l') + NotContains = @('cmake -B') } + # Only a configure passes the compiler to CMake, so an action that does + # not configure resolves none, and cannot start needing one installed. + @{ Name = 'packing resolves no compiler'; Args = @('-p', '-l', '-x') + Contains = @('Packing the dependencies') + NotContains = @('Compiler: ') } + @{ Name = '--no-configure resolves none either'; Args = @('-s', '-l', '-x', '--no-configure') + Contains = @('cmake --build "build-clang"') + NotContains = @('Compiler: ') } @{ Name = '-l alone uses the ClangCL toolset on the VS generator'; Args = @('-d', '-l') Contains = @('-G "Visual Studio', '-T ClangCL') NotContains = @('-DCMAKE_C_COMPILER') } @@ -148,11 +195,13 @@ $cases = @( NotContains = @('clang-cl') } @{ Name = '--msbuild with -l gives the VS generator and the ClangCL toolset'; Args = @('-d', '--msbuild', '-l') Contains = @('-G "Visual Studio', '-T ClangCL') } - # A developer with a standalone LLVM points at it; the VS-bundled clang - # is what a bare clang-cl.exe resolves to after the dev shell runs. + # A developer with a standalone LLVM points at it, and the path is passed + # with forward slashes so CMake cannot read a backslash as an escape. @{ Name = '--clang-path names the compiler, quoted for its spaces'; Args = @('-d', '-x', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe') - Contains = @('-DCMAKE_C_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe"', - '-DCMAKE_CXX_COMPILER="C:\Program Files\LLVM\bin\clang-cl.exe"') } + Contains = @('-DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe"', + '-DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe"') } + @{ Name = '--clang-path beats the Visual Studio clang'; Args = @('-s', '-x', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe') + Contains = @('Compiler: C:/Program Files/LLVM/bin/clang-cl.exe') } @{ Name = '--clang-path is a clang request on its own'; Args = @('-d', '-x', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe') Contains = @('deps/build-clang') } @{ Name = '--clang-path needs Ninja to take effect'; Args = @('-d', '--clang-path', 'C:\Program Files\LLVM\bin\clang-cl.exe'); ExpectExit = 1 @@ -195,7 +244,8 @@ $cases = @( @{ Name = 'the architecture is matched case-insensitively'; Args = @('-d', '--arch', 'ARM64') Contains = @('-A ARM64', 'deps/build-arm64') } @{ Name = 'arm64 under Ninja has no -A but keeps the arm64 tree'; Args = @('-d', '--arch', 'arm64', '-x', '-l') - Contains = @('deps/build-clang-arm64', '-DCMAKE_C_COMPILER=clang-cl.exe') + Contains = @('deps/build-clang-arm64') + Match = @('-DCMAKE_C_COMPILER="[^"]+/clang-cl\.exe"') NotContains = @('-A ') } 'build configurations' @@ -699,18 +749,28 @@ $cases = @( Contains = @('Next', 'Rebuild after edits') } 'pointing at the solution' + # The extension follows the generator, so these two pin the release and a + # build directory that cannot already hold a solution of either kind. + @{ Name = 'the 2026 generator gets the XML solution'; Args = @('-s', '--vs', '2026', '--build-dir', 'D:\tree') + Contains = @('Solution D:\tree\OrcaSlicer.slnx', 'Open in Visual Studio D:\tree\OrcaSlicer.slnx') } + @{ Name = 'the releases before it get the classic one'; Args = @('-s', '--vs', '2022', '--build-dir', 'D:\tree') + Contains = @('Solution D:\tree\OrcaSlicer.sln', 'Open in Visual Studio D:\tree\OrcaSlicer.sln') } + @{ Name = 'a solution already on disk wins over the generator'; Args = @('-s', '--vs', '2026', '--build-dir', $slnDir) + Match = @('^ Solution .*\\OrcaSlicer\.sln$') } + # Extension-agnostic from here: these cases are about the directory, and + # the release is whatever is installed. @{ Name = 'the VS generator says where the solution is'; Args = @('-s') - Match = @('^ Solution .*\\build\\OrcaSlicer\.sln$') } + Match = @('^ Solution .*\\build\\OrcaSlicer\.slnx?$') } @{ Name = 'the solution path follows the configuration'; Args = @('-s', '--config', 'debug') - Match = @('^ Solution .*\\build-dbg\\OrcaSlicer\.sln$') } + Match = @('^ Solution .*\\build-dbg\\OrcaSlicer\.slnx?$') } @{ Name = 'the solution line survives an install'; Args = @('-s', '-i') Contains = @(' Solution ') } # The path is resolved, not pasted onto the repository root, so it is # right whether --build-dir came absolute or with forward slashes. @{ Name = 'a moved build still prints one real path'; Args = @('-s', '--build-dir', 'out/build/x64-clang') - Match = @('^ Solution [A-Za-z]:\\[^/]+\\OrcaSlicer\.sln$') } + Match = @('^ Solution [A-Za-z]:\\[^/]+\\OrcaSlicer\.slnx?$') } @{ Name = 'an absolute --build-dir is not glued onto the repo root'; Args = @('-s', '--build-dir', 'D:\tree') - Contains = @('Solution D:\tree\OrcaSlicer.sln') } + Match = @('^ Solution D:\\tree\\OrcaSlicer\.slnx?$') } ) function Invoke-BuildScript { From 7c9b38ba04ce63f8181258c0f32ff2911e87c04f Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Thu, 3 Sep 2026 21:03:42 +0800 Subject: [PATCH 121/164] remove retired_filament_ids.json --- docs/HLSD/filament_id.md | 121 +- resources/profiles/retired_filament_ids.json | 6983 ----------------- scripts/assign_filament_ids.py | 548 +- scripts/check_profile.ps1 | 2 +- scripts/check_profile.sh | 2 +- scripts/tests/test_filament_id.py | 544 +- src/libslic3r/Preset.cpp | 54 - src/libslic3r/Preset.hpp | 17 - src/libslic3r/PresetBundle.cpp | 25 - src/slic3r/GUI/CaliHistoryDialog.cpp | 8 +- src/slic3r/GUI/DeviceManager.cpp | 22 +- src/slic3r/GUI/PresetComboBoxes.cpp | 7 - src/slic3r/Utils/QidiPrinterAgent.cpp | 12 +- task.md | 13 - tests/libslic3r/CMakeLists.txt | 1 - .../libslic3r/test_filament_id_succession.cpp | 69 - 16 files changed, 119 insertions(+), 8309 deletions(-) delete mode 100644 resources/profiles/retired_filament_ids.json delete mode 100644 task.md delete mode 100644 tests/libslic3r/test_filament_id_succession.cpp diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md index 0dfc5471b0..980d830d7d 100644 --- a/docs/HLSD/filament_id.md +++ b/docs/HLSD/filament_id.md @@ -23,8 +23,9 @@ When a printer reports what a tray holds (Bambu AMS, Qidi box, Creality CFS, Klipper, Snapmaker), OrcaSlicer matches the reported id against the filament presets compatible with that printer to select the right profile; other features — tray display names, support-material detection, vitrification warnings, multi-nozzle filament grouping — -look up material properties by id alone. When an id has been retired, a shipped succession -ledger forwards it to its successor so old trays and records keep resolving. +look up material properties by id alone. An id that changes is not forwarded anywhere: a +tray or record still holding the old value falls back to matching by material type until the +user re-selects the filament, so identity changes are made deliberately and rarely. This page is the rule for authoring `filament_id` in system profiles (`resources/profiles/**`). CI enforces everything below; the short version is: @@ -33,13 +34,13 @@ This page is the rule for authoring `filament_id` in system profiles > **Never write a `filament_id` value by hand.** New families get their id from > `python scripts/assign_filament_ids.py`; existing families already have one — inherit it. -## The design, in three pieces +## The design, in two pieces Because several consumers match **globally by id alone, first hit wins** (see the next section), any two materials sharing one id feed wrong data somewhere — a wrong tray name, a wrong support-material flag, a wrong nozzle grouping — and inside one printer a duplicated id makes AMS spool matching a coin toss. Hand-written ids produce such collisions constantly, so -the system is built to make them impossible and to make identity corrections safe: +the system is built to make them impossible: 1. **Deterministic minting.** An id is a pure hash of the product's identity — no registry to maintain, no next-free-number ceremony, no way for two concurrent PRs to race for the same @@ -48,9 +49,6 @@ the system is built to make them impossible and to make identity corrections saf `scripts/filament_id_snapshot.json` exactly, so every change to ids, claims (which bundles ship which id, and for which family), or product identity surfaces as a reviewable diff to one file — the maintainer gate. -3. **A shipped succession ledger.** Ids live outside the tree too — on device trays, in - calibration records, in user presets, in project files. When an id is retired, the ledger - forwards it to its successor so none of those references degrade to a generic fallback. ## Who consumes the id @@ -60,9 +58,8 @@ friends) resolves it to a preset. The matcher is printer-scoped and first-match- scanning only compatible family roots — system roots plus user-made custom filaments, which are user roots carrying their own `P*` ids; a preset derived from another resolves through its root and never matches directly — it picks the first one whose `filament_id` equals the -tray's and retries once through the succession ledger on a miss. Only then does it fall back -by filament type: a system `Generic <type>` preset (matched by name, then by type -similarity), else the slot's previous selection, else any compatible system generic or, +tray's. On a miss it falls back by filament type: a system `Generic <type>` preset +(matched by name, then by type similarity), else the slot's previous selection, else any compatible system generic or, failing that, any compatible system preset, else the slot is skipped — every fallback selection surfaces a user-visible notice. @@ -75,7 +72,7 @@ pattern, with the device-reported tray material id flowing through the shared ma | Ecosystem | Where the tray id comes from today | | --- | --- | | Bambu AMS | the device itself (RFID / user tray setting) — the `GF*` catalog | -| Qidi box | composed at runtime as `QD_<series>_<vendor>_<typeidx>` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name — then translated through the succession ledger to the family's minted id (the `QD_*` values themselves no longer exist as preset ids — see the reserved-namespaces section) | +| Qidi box | composed at runtime as `QD_<series>_<vendor>_<typeidx>` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name. No preset carries a `QD_*` value, so the slot currently resolves by filament type; mapping the composed id onto the family's minted id belongs in the agent | | Creality CFS | runtime brand/type scoring returns the winning preset's id | | Klipper (AFC / Happy Hare) | runtime lookup by filament type | | Snapmaker | runtime color/vendor/type match | @@ -155,12 +152,12 @@ the `Generic X` base name, write no id key). e.g. `Generic PLA @Sovol SV08 MAX` inherits `Generic PLA @System` and lists three Sovol nozzles. A vendor-*branded* filament never rides a generic family id. 5. **Ids follow the product identity.** The id is a pure function of the product triple - `(filament_vendor, filament_type, family name)` — correcting any of them re-mints the id - **by design** (via `--remint <Vendor>`; the exact sequence is in the FAQ), and - `--update-snapshot` records the old id in the shipped succession ledger with its successor - so device trays, calibration records, and user presets keep resolving (`renamed_from` - still gates preset-*name* compatibility as before). A shipped id is never recycled for a - different material: retired ids are blocked forever. + `(filament_vendor, filament_type, family name)`, so correcting any of them re-mints the id + **by design** (via `--remint <Vendor>`; the exact sequence is in the FAQ). Nothing forwards + the old value, so anything outside the tree that stored it — a device tray, a calibration + record, a saved project — falls back to matching by filament type until the user re-selects + the filament. Re-mint deliberately, and only to fix a genuinely wrong identity. + (`renamed_from` still gates preset-*name* compatibility, as before.) ## Minting — nobody invents ids @@ -191,7 +188,7 @@ Snapmaker bundles alike; the OFL generic `Generic/PLA/Generic PLA` mints `OFDSrz by ten bundles — most by independent declarations converging on the same mint, the rest purely through inheritance from the OFL family. -On the rare collision with any existing or retired id, the minter salts the input (`…/1`, +On the rare collision with an existing id, the minter salts the input (`…/1`, `…/2`, …) until free, and the result is frozen in the profile file. Salting is also used deliberately: a *salt split* keeps two presets of one product on distinct ids where a single id would be AMS-ambiguous on the same printer — the "selectable alongside" situation from the @@ -224,14 +221,6 @@ normally only used by id migrations): *same* triple is legal by design — that is the point. - `--drop-redundant-ids VENDOR` deletes declarations that merely re-declare an inherited OrcaFilamentLibrary id. -- `--add-hint "OLD=NEW"` records a succession hint for an id a foreign catalog owns - (`GF*` only — see the ledger section). -- `--retire "OLD=NEW"` records succession for a shipped id that vanished while another - declarer kept it alive — lineage the automatic claim vote (see the succession-ledger - section) can no longer see. -- `--forget-never-shipped FILE` (with `--update-snapshot`) — given a JSON list of ids that - never shipped in any release, drops them from the lineage entirely (no retirement entry) - and splices succession chains that pointed through them. - `--profiles DIR` points the tooling at a different profile tree (default `resources/profiles`). @@ -248,10 +237,9 @@ or device contract owns it. | Space | Status | Rule | | --- | --- | --- | | `GF*` | Bambu AMS/RFID catalog — the one remaining *island* | BBL vendor only; a claim by anyone else is refused unless the snapshot sanctions that exact claim (via `--allow-shared-catalog` — see the CI section) | -| `QD_*` | Qidi device protocol — *dissolved island* | declarable by **nobody**, Qidi included; every shipped `QD_*` id is retired in the ledger with a live successor | +| `QD_*` | Qidi device protocol | declarable by **nobody**, Qidi included: the box composes these ids at runtime and they are not preset ids | | `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | | every already-shipped id | frozen in the snapshot (grandfathered) | frozen as-is; new claims need maintainer sign-off | -| every retired id | `resources/profiles/retired_filament_ids.json` | never used again, for anything | The two device namespaces, in detail: @@ -259,43 +247,14 @@ The two device namespaces, in detail: declarations are frozen as-is and never re-minted. BBL also carries several dozen grandfathered legacy codes that are neither `GF*` nor `OF*` (the `BETA` family's `B*` ids, plus `Generic SBS`'s legacy `BFLSBS99`) — frozen the same way, via the snapshot. -- **Qidi (`QD_*`) — dissolved.** `QD_*` is a device-*protocol* namespace, not a preset id - space: the Qidi box path composes `QD_<series>_<vendor>_<typeidx>` ids at runtime (slot - vendor and type indices reported by the device, the series digit inferred client-side - from the printer model/name), and the Qidi agent translates a composed id through the - succession ledger to the family's minted id. Qidi presets themselves carry ordinary minted - `OF*` ids (generics share the OFL ids), and all 204 `QD_*` ids that ever shipped sit in - the ledger as retired entries with live successors — which is also what makes CI refuse - any future `QD_*` occurrence permanently. The alternative — treating per-series protocol ids - as preset ids — would put one product under five ids (`QIDI PLA Rapido` would be `QD_0_1_1` - through `QD_4_1_1`), exactly the fragmentation the mint rule removes. - -## The succession ledger - -`resources/profiles/retired_filament_ids.json` ships with the app and has two maps: - -- **`retired`** — ids Orca owned and withdrew. Each maps to - `{"claims": [...], "successor": <id|null>}`; successor chains are followed to the live end. - When `--update-snapshot` retires a vanished id, it picks the successor by an automatic - *claim vote*: every old claim whose family still exists votes for that family's current id, - most votes wins. Alongside the deliberate re-mints, this map carries the whole pre-rule - legacy — old ad-hoc vendor codes, Creality's and Snapmaker's numeric ids, and the 204 - `QD_*` protocol ids. -- **`hints`** — the same forwarding for ids Orca *cannot* retire because a foreign island owns - them and may legitimately keep shipping them. That means `GF*` only: e.g. - `GFL99 → OFDSrzZ8` forwards Bambu's Generic PLA catalog id to the OFL generic family on - installs where no live preset carries `GFL99`. - -The client consults the ledger **only on resolution miss** — AMS tray sync and the sync-AMS -dialog's filament listing, the sidebar AMS dropdown, tray-id type lookup, calibration -history, the global filament-id preset lookup, and the Qidi box path. A live preset always -wins first, so BBL installs resolve `GF*` natively and behavior is unchanged wherever the -raw id still exists. This on-miss rule is what makes -identity-driven re-mints (structure rule 5) safe: the old id keeps resolving to the family's -current preset instead of degrading to a `Generic <type>` fallback. The file is append-only in -its keys — entries are never removed and a retired id never returns — and maintained -exclusively by `--update-snapshot` / `--add-hint` / `--retire` (`--forget-never-shipped`, an -`--update-snapshot` mode, may rewrite an existing entry's successor when splicing chains). +- **Qidi (`QD_*`).** `QD_*` is a device-*protocol* namespace, not a preset id space: the + Qidi box path composes `QD_<series>_<vendor>_<typeidx>` ids at runtime (slot vendor and + type indices reported by the device, the series digit inferred client-side from the printer + model/name). Qidi presets carry ordinary minted `OF*` ids (generics share the OFL ids), so + a composed id matches no preset and the slot falls back to filament type; translating it to + the family's id belongs in `QidiPrinterAgent`. The alternative — treating per-series + protocol ids as preset ids — would put one product under five ids (`QIDI PLA Rapido` would + be `QD_0_1_1` through `QD_4_1_1`), exactly the fragmentation the mint rule removes. ## How CI enforces this @@ -319,11 +278,6 @@ The checks, in brief: - **Mint conformance** — a non-grandfathered `OF*` id must equal the mint (or a low salt iteration) of its declarer's product triple; the error prints the expected id to paste into the family root. -- **Retired reuse** — any tree id present in the `retired` map of - `resources/profiles/retired_filament_ids.json` is an error, with no grandfathering (keys in - the same file's `hints` map may legitimately stay live — BBL still ships them). Ids that - fully vanish from the tree are appended to the `retired` map by `--update-snapshot`; ids - are only ever added there, never removed or reused. - **Alias hygiene** — a vendor preset riding an OFL family id must keep the library preset's base name (a rename re-exposes the library preset, since alias shadowing is name-based), a non-empty `compatible_printers` (an empty one shadows nothing), and no own id key @@ -331,12 +285,8 @@ The checks, in brief: - **Triple integrity** — every declarer outside the BBL island must resolve a non-empty `filament_vendor` and `filament_type` (generics use `"Generic"`), and all declarers of one family within a bundle must agree on the triple. -- **Succession integrity** — retired successor chains terminate at a live id (or null) with - no cycles; `hints` keys stay in the island namespace (`GF*`), are never also retired, and - their chains end at a live tree id. - **Reserved namespaces** — `GF*` outside BBL, `P<7-hex>` or `"null"` anywhere, unless that - exact claim is grandfathered in the snapshot; `QD_*` anywhere, with no exception (all are - retired). + exact claim is grandfathered in the snapshot; `QD_*` anywhere, with no exception. - **Structure** — no `filament_id` key on newly instantiated presets; no new declared-vs-inherited id drift; every instantiated system filament must resolve an effective id through its `inherits` chain (recall: an id-less one is a hard load error in @@ -364,18 +314,15 @@ ambiguity check behind structure rule 3. - **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the `Generic PLA` base name, set `compatible_printers`, write no id key. - **I need to fix a family's `filament_vendor` or `filament_type`.** Fix the config, run - `--remint <Vendor>` then `--update-snapshot`: the id re-derives from the corrected identity - and the old id lands in the succession ledger pointing at the new one. Commit the profile, - snapshot, and ledger diffs together. -- **I need to rename a family.** Renames need one extra step, because the succession vote - follows family names (`renamed_from` gates preset-name compatibility but is not read by the - id tooling): rename the presets (adding `renamed_from`), run `--update-snapshot` once to - sanction the renamed claims on the old id, then `--remint <Vendor>`, then `--update-snapshot` - again — the old id now lands in the ledger pointing at the new one. Re-minting first would - retire the old id *heirless* (successor `null`), which cannot be repaired afterwards. -- **Can I reuse a `QD_*` id for a Qidi profile?** No — nobody can. The namespace is a - dissolved island: the device still composes those ids at runtime, and the succession ledger - translates them to the families' minted ids. Author Qidi filaments like any other vendor's. + `--remint <Vendor>` then `--update-snapshot`, and commit the profile and snapshot diffs + together. The id re-derives from the corrected identity, and nothing forwards the old + value, so a tray or record still holding it falls back to matching by filament type. +- **I need to rename a family.** Rename the presets (adding `renamed_from`, which keeps the + preset *name* resolving), then `--remint <Vendor>`, then `--update-snapshot`. The id follows + the new family name; as with any identity fix, the old id is not forwarded. +- **Can I reuse a `QD_*` id for a Qidi profile?** No — nobody can. It is the device protocol's + own id space: the box composes those values at runtime and no preset carries one. Author + Qidi filaments like any other vendor's. - **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then `--update-snapshot`, and commit both diffs. Do not type an id by hand. diff --git a/resources/profiles/retired_filament_ids.json b/resources/profiles/retired_filament_ids.json deleted file mode 100644 index 7f5dda5901..0000000000 --- a/resources/profiles/retired_filament_ids.json +++ /dev/null @@ -1,6983 +0,0 @@ -{ - "hints": { - "GFA00_01": "OF9HCdyQ", - "GFA03": "OFjXrKFO", - "GFA50_01": "OF7OqDp3", - "GFA99": "OF0yFLkY", - "GFASA": "OF0yFLkY", - "GFB00_01": "OFNQKF0M", - "GFB01_01": "OFdrYBmI", - "GFB98": "OFLPAxz3", - "GFB98_01": "OFUaVAdj", - "GFB98_2": "OFoJcr46", - "GFB98_3": "OFoJcr46", - "GFB98_4": "OFoJcr46", - "GFB98_5": "OFK4LdYI", - "GFB98_6": "OFK4LdYI", - "GFB98_7": "OFK4LdYI", - "GFB99": "OFY9muEs", - "GFB99_01": "OFNLXV8X", - "GFB99_2": "OFvGc67v", - "GFB99_3": "OFvGc67v", - "GFB99_4": "OFvGc67v", - "GFB99_5": "OFvGc67v", - "GFB99_6": "OFyeSq8A", - "GFB99_7": "OFyeSq8A", - "GFC00_01": "OFdXVjGZ", - "GFC98": "OFjz0a3m", - "GFC99": "OFLakOUI", - "GFC99_01": "OFN7aNHe", - "GFC99_1": "OF97ru74", - "GFC99_2": "OF97ru74", - "GFC99_3": "OF97ru74", - "GFC99_4": "OF97ru74", - "GFC99_5": "OFq5QANf", - "GFC99_6": "OFq5QANf", - "GFG00_01": "OFObyktP", - "GFG03": "OF3F63OE", - "GFG96": "OF7lOgYF", - "GFG97": "OFu1evlr", - "GFG97-01": "OFTKFAZ4", - "GFG98": "OFoYSJKi", - "GFG98_01": "OFWadebJ", - "GFG99": "OFYPdQJh", - "GFG99_01": "OF1uR1t2", - "GFG99_2": "OF1Id239", - "GFG99_3": "OF1Id239", - "GFG99_4": "OF1Id239", - "GFG99_5": "OF1Id239", - "GFG99_6": "OFOKYhi6", - "GFG99_7": "OFOKYhi6", - "GFL100": "OFBpcB0a", - "GFL106": "OFDSrzZ8", - "GFL108": "OFDSrzZ8", - "GFL204": "OFY9muEs", - "GFL206": "OFY9muEs", - "GFL208": "OFY9muEs", - "GFL304": "OFYPdQJh", - "GFL306": "OFYPdQJh", - "GFL308": "OFYPdQJh", - "GFL404": "OFg8ndtj", - "GFL406": "OFg8ndtj", - "GFL408": "OFg8ndtj", - "GFL504": "OFsP8PKH", - "GFL506": "OFsP8PKH", - "GFL508": "OFsP8PKH", - "GFL71": "OF0omtEb", - "GFL72": "OFFZ458u", - "GFL73": "OFeVzkSU", - "GFL74": "OF0VpkBM", - "GFL75": "OFnXwW8l", - "GFL76": "OF6H51Xx", - "GFL77": "OFtFtiS0", - "GFL78": "OFelDBgv", - "GFL79": "OF5oXk4M", - "GFL80": "OFHknN4v", - "GFL94": "OFrGJ4tR", - "GFL95": "OFmpMwxS", - "GFL95_01": "OFodPDxO", - "GFL96": "OFesA6rF", - "GFL96_01": "OF0GIkJm", - "GFL97": "OFCp3Bgo", - "GFL98": "OFWbdGsC", - "GFL98_01": "OFgVJhVt", - "GFL98_1": "OFQ7I5vC", - "GFL98_3": "OFQ7I5vC", - "GFL98_4": "OFQ7I5vC", - "GFL98_5": "OFQ7I5vC", - "GFL99": "OFDSrzZ8", - "GFL99_01": "OFuSwKgm", - "GFL99_2": "OFiCHnso", - "GFL99_3": "OFiCHnso", - "GFL99_4": "OFiCHnso", - "GFL99_5": "OFiCHnso", - "GFL99_6": "OFl4ItvQ", - "GFL99_7": "OFl4ItvQ", - "GFLLK10PETG": "OFYPdQJh", - "GFLLK10PLA": "OFDSrzZ8", - "GFLLK10PPETG": "OFYPdQJh", - "GFLLK10PPLA": "OFDSrzZ8", - "GFLSBS99": "OFhQfUQY", - "GFN05_01": "OFe8tuNb", - "GFN96": "OF8Tlg47", - "GFN96_01": "OFptvi3F", - "GFN97": "OF8tPByX", - "GFN97_01": "OFSPdsuW", - "GFN98": "OFQLcbps", - "GFN98_02": "OFHa3RZT", - "GFN98_1": "OFfznI0Q", - "GFN98_2": "OFfznI0Q", - "GFN98_3": "OFfznI0Q", - "GFN98_4": "OFfznI0Q", - "GFN99": "OFg8ndtj", - "GFN99_01": "OFQswlnF", - "GFN99_1": "OFIy3kLw", - "GFN99_2": "OFIy3kLw", - "GFN99_3": "OFIy3kLw", - "GFN99_4": "OFIy3kLw", - "GFOT001": "OFxA1p01", - "GFOT002": "OFGkyftV", - "GFOT003": "OF1Pke8t", - "GFOT004": "OFMZvH0z", - "GFOT005": "OF2pj5l5", - "GFOT006": "OFcfQk4h", - "GFOT008": "OFcvKkrs", - "GFOT009": "OFM91vZs", - "GFP95": "OFNiSLfL", - "GFP95_01": "OFkYkQGO", - "GFP96": "OFXkm8q1", - "GFP96_01": "OFMTBcnz", - "GFP97": "OF1UNk9P", - "GFP97_01": "OF3s929u", - "GFP98": "OFd0Fv0k", - "GFP98_01": "OFkUaDnU", - "GFP99": "OFPklMI1", - "GFP99_01": "OFKuTr12", - "GFPA": "OFzS7zt4", - "GFPA6-CF": "OFQe7sAx", - "GFPAHT-CF": "OFaEuvNF", - "GFPC": "OFZtkHRq", - "GFPC-CF": "OFeIyhUx", - "GFPC-GF": "OFxJRuVF", - "GFPEBA": "OFjLAYgO", - "GFPET-CF": "OFRhCTUg", - "GFPETG": "OFYPdQJh", - "GFPETG-1": "OFIeCuXj", - "GFPETG-CF": "OF9UJOGF", - "GFPLA Glow": "OF5PtjTp", - "GFPLA Translucent": "OF7c9fln", - "GFPLA-CF": "OFZ0mR5b", - "GFPVA": "OFTkj6DR", - "GFR98": "OF74KeQR", - "GFR98_01": "OFxvKuYW", - "GFR99": "OFCD8qiU", - "GFR99_01": "OFrnJJEa", - "GFS04_01": "OFyreocX", - "GFS97": "OFo2UF2C", - "GFS97_01": "OFGDaEHO", - "GFS98": "OFsFon5l", - "GFS98_01": "OFW9uIkE", - "GFS99": "OFDvXujf", - "GFS99_01": "OFMZAoqa", - "GFS99_1": "OFcCzEkS", - "GFS99_2": "OFcCzEkS", - "GFS99_3": "OFcCzEkS", - "GFS99_4": "OFcCzEkS", - "GFS99_5": "OFoT8F7Y", - "GFS99_6": "OFoT8F7Y", - "GFSEP001": "OFtudokz", - "GFSEP002": "OFf5awy4", - "GFSEP003": "OFbP8zEO", - "GFSEP004": "OFrFBEfd", - "GFSEP005": "OFvzvwCu", - "GFSEP006": "OFH2nN08", - "GFSEP007": "OFPc4zVY", - "GFSEP008": "OFkzr35f", - "GFSEP009": "OFHfzQXo", - "GFSEP010": "OFhWhL1i", - "GFSEP011": "OFx8Lmsd", - "GFSEP012": "OFRiFnfQ", - "GFSEP013": "OFhfd722", - "GFSEP014": "OFIegjmD", - "GFSEP015": "OFvVy7yo", - "GFSEP016": "OFTOPcx0", - "GFSEP017": "OFXCBZTA", - "GFSEP018": "OFlSNkhc", - "GFSL99": "OFqOk9Ww", - "GFT01_01": "OFCnywiC", - "GFT97_01": "OFvPomQf", - "GFT98_01": "OFGzUNbm", - "GFTPU 95A": "OFML2aVd", - "GFTPU for ACE": "OF0FfcAG", - "GFU01_01": "OFDJU6R3", - "GFU99": "OFgbpcy9", - "GFU99_01": "OFCVUEaV", - "GFU99_2": "OFbenYUK", - "GFU99_3": "OFU3zwPc" - }, - "retired": { - "00001": { - "claims": [ - "Creality/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "00002": { - "claims": [ - "Creality/Generic PLA-Silk" - ], - "successor": "OFi6PfUM" - }, - "00003": { - "claims": [ - "Creality/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "00004": { - "claims": [ - "Creality/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "00005": { - "claims": [ - "Creality/Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "00006": { - "claims": [ - "Creality/Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "00007": { - "claims": [ - "Creality/Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "00008": { - "claims": [ - "Creality/Generic PA" - ], - "successor": "OFg8ndtj" - }, - "00009": { - "claims": [ - "Creality/Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "00010": { - "claims": [ - "Creality/Generic BVOH" - ], - "successor": "OFo2UF2C" - }, - "00011": { - "claims": [ - "Creality/Generic PVA" - ], - "successor": "OFDvXujf" - }, - "00012": { - "claims": [ - "Creality/Generic HIPS" - ], - "successor": "OFsFon5l" - }, - "00013": { - "claims": [ - "Creality/Generic PET-CF" - ], - "successor": "OFQdaVZS" - }, - "00014": { - "claims": [ - "Creality/Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "00015": { - "claims": [ - "Creality/Generic PA6-CF" - ], - "successor": "OFhTPf6L" - }, - "00016": { - "claims": [ - "Creality/Generic PAHT-CF" - ], - "successor": "OFH7b12v" - }, - "00017": { - "claims": [ - "Creality/Generic PPS" - ], - "successor": "OFq9svOz" - }, - "00018": { - "claims": [ - "Creality/Generic PPS-CF" - ], - "successor": "OF6rdQ6M" - }, - "00019": { - "claims": [ - "Creality/Generic PP" - ], - "successor": "OF1UNk9P" - }, - "00020": { - "claims": [ - "Creality/Generic PET" - ], - "successor": "OF6MOPWx" - }, - "00021": { - "claims": [ - "Creality/Generic PC" - ], - "successor": "OFLakOUI" - }, - "00022": { - "claims": [ - "Creality/Generic PA612-CF" - ], - "successor": "OF8eaY7j" - }, - "00023": { - "claims": [ - "Creality/Generic Support for PA" - ], - "successor": "OFDtop41" - }, - "00024": { - "claims": [ - "Creality/Generic Support for PLA" - ], - "successor": "OFin64Qg" - }, - "00025": { - "claims": [ - "Creality/Generic PA12-CF" - ], - "successor": "OFM4iJlv" - }, - "00026": { - "claims": [ - "Creality/Generic TPU 64D" - ], - "successor": "OFF3cuzT" - }, - "00027": { - "claims": [ - "Creality/Generic PETG-GF" - ], - "successor": "OFyLWVF3" - }, - "00031": { - "claims": [ - "Creality/Generic PP-CF" - ], - "successor": "OFXkm8q1" - }, - "00032": { - "claims": [ - "Creality/Generic PCTG" - ], - "successor": "OFu1evlr" - }, - "00033": { - "claims": [ - "Creality/Generic ASA-CF" - ], - "successor": "OF53eLVD" - }, - "00034": { - "claims": [ - "Creality/Generic PA6-GF" - ], - "successor": "OFh9u9c0" - }, - "00035": { - "claims": [ - "Creality/eSUN PLA-LW" - ], - "successor": "OFi5RSve" - }, - "01001": { - "claims": [ - "Creality/Creality Hyper PLA", - "Creality/Hyper PLA" - ], - "successor": "OFAIrQXu" - }, - "01002": { - "claims": [ - "Creality/Hyper L-W PLA" - ], - "successor": "OF70zbGS" - }, - "01003": { - "claims": [ - "Creality/Hyper Luminous" - ], - "successor": "OFC1PzXz" - }, - "01004": { - "claims": [ - "Creality/Hyper Stardust" - ], - "successor": "OFXnToSX" - }, - "01601": { - "claims": [ - "Creality/Soleyin Ultra PLA" - ], - "successor": "OF02UAVh" - }, - "02001": { - "claims": [ - "Creality/Creality Hyper PLA-CF", - "Creality/Hyper PLA-CF" - ], - "successor": "OFGwT5Av" - }, - "03001": { - "claims": [ - "Creality/Creality Hyper ABS", - "Creality/Hyper ABS" - ], - "successor": "OF8GnyFU" - }, - "04001": { - "claims": [ - "Creality/CR-PLA", - "Creality/Creality Generic PLA" - ], - "successor": "OFACSw9O" - }, - "05001": { - "claims": [ - "Creality/CR-Silk", - "Creality/Creality Silk PLA" - ], - "successor": "OF3OMgrI" - }, - "06001": { - "claims": [ - "Creality/CR-PETG", - "Creality/Creality Generic PETG" - ], - "successor": "OF3WQaKK" - }, - "06002": { - "claims": [ - "Creality/Hyper PETG" - ], - "successor": "OFujZSdh" - }, - "06003": { - "claims": [ - "Creality/Hyper PETG-CF" - ], - "successor": "OFusbWjj" - }, - "06004": { - "claims": [ - "Creality/Hyper PETG-GF" - ], - "successor": "OFLgwqp2" - }, - "06005": { - "claims": [ - "Creality/Soleyin Basic PETG" - ], - "successor": "OFBLktDy" - }, - "07001": { - "claims": [ - "Creality/CR-ABS", - "Creality/Creality Generic ABS" - ], - "successor": "OFGwZmgS" - }, - "07002": { - "claims": [ - "Creality/Hyper PC" - ], - "successor": "OFUF7oA4" - }, - "08001": { - "claims": [ - "Creality/Ender-PLA" - ], - "successor": "OFWao3Ic" - }, - "09001": { - "claims": [ - "Creality/EN-PLA+" - ], - "successor": "OFks6esg" - }, - "09002": { - "claims": [ - "Creality/ENDER FAST PLA" - ], - "successor": "OFfSqS4R" - }, - "10001": { - "claims": [ - "Creality/Creality Generic TPU", - "Creality/HP-TPU" - ], - "successor": "OFGcMkEB" - }, - "1009481135": { - "claims": [ - "Snapmaker/Snapmaker J1 PET" - ], - "successor": "OF8Jl6NT" - }, - "1042511226": { - "claims": [ - "Snapmaker/Snapmaker Dual PETG-CF" - ], - "successor": "OF3msXEa" - }, - "10425112260": { - "claims": [ - "Snapmaker/Snapmaker PETG-CF" - ], - "successor": "OFOwQuZM" - }, - "11001": { - "claims": [ - "Creality/CR-Nylon", - "Creality/Creality Generic PA" - ], - "successor": "OFMqYusc" - }, - "1172603684": { - "claims": [ - "Snapmaker/Snapmaker J1 PETG" - ], - "successor": "OFQMTRc8" - }, - "1181363872": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA Silk" - ], - "successor": "OFyj3m13" - }, - "11813638720": { - "claims": [ - "Snapmaker/Snapmaker PLA Silk" - ], - "successor": "OFWgFOjn" - }, - "1192769348": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA Matte" - ], - "successor": "OFY3AB7j" - }, - "12002": { - "claims": [ - "Creality/Hyper PPA-CF" - ], - "successor": "OFNvBIL0" - }, - "12003": { - "claims": [ - "Creality/Hyper PAHT-CF" - ], - "successor": "OF4APyxe" - }, - "12004": { - "claims": [ - "Creality/Hyper PA612-CF" - ], - "successor": "OFhkN0a7" - }, - "12005": { - "claims": [ - "Creality/Hyper PA6-CF" - ], - "successor": "OFn2GlhY" - }, - "1207881278": { - "claims": [ - "Snapmaker/Snapmaker Dual Breakaway" - ], - "successor": "OFfmHUkQ" - }, - "1210173120": { - "claims": [ - "Snapmaker/Snapmaker J1 PA-CF" - ], - "successor": "OFYEtXuk" - }, - "1223824394": { - "claims": [ - "Snapmaker/Snapmaker J1 ABS" - ], - "successor": "OFy14TRA" - }, - "1247172706": { - "claims": [ - "Snapmaker/Snapmaker Dual ASA" - ], - "successor": "OFKUEXPA" - }, - "12471727060": { - "claims": [ - "Snapmaker/Snapmaker ASA" - ], - "successor": "OF1d7c3A" - }, - "13001": { - "claims": [ - "Creality/CR-PLA Carbon" - ], - "successor": "OFrM4hdm" - }, - "1344609062": { - "claims": [ - "Snapmaker/Snapmaker PVA" - ], - "successor": "OFyhjiNs" - }, - "1355502217": { - "claims": [ - "Snapmaker/Snapmaker PETG-CF" - ], - "successor": "OFOwQuZM" - }, - "1393866034": { - "claims": [ - "Snapmaker/PolyLite Dual PLA", - "Snapmaker/PolyLite J1 PLA", - "Snapmaker/PolyLite PLA" - ], - "successor": "OF5CgdDq" - }, - "14001": { - "claims": [ - "Creality/CR-PLA Matte" - ], - "successor": "OFM0xjBG" - }, - "1417031127": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA" - ], - "successor": "OFZivHGL" - }, - "14170311270": { - "claims": [ - "Snapmaker/Snapmaker PLA" - ], - "successor": "OFlufQpZ" - }, - "141703112701": { - "claims": [ - "Snapmaker/Snapmaker PLA SnapSpeed" - ], - "successor": "OFwhLMs4" - }, - "1417031127011": { - "claims": [ - "Snapmaker/Snapmaker PLA Lite" - ], - "successor": "OFEOnBj6" - }, - "144877656": { - "claims": [ - "Snapmaker/Snapmaker J1 ASA" - ], - "successor": "OFt7SngH" - }, - "1480063856": { - "claims": [ - "Snapmaker/Snapmaker TPU" - ], - "successor": "OF65InrS" - }, - "15001": { - "claims": [ - "Creality/CR-PLA Fluo" - ], - "successor": "OFgpQwkk" - }, - "1528786603": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA Silk" - ], - "successor": "OFQ1KzO8" - }, - "16001": { - "claims": [ - "Creality/CR-TPU" - ], - "successor": "OFG2RkhN" - }, - "1655727393": { - "claims": [ - "Snapmaker/Snapmaker PLA Silk" - ], - "successor": "OFWgFOjn" - }, - "168223792": { - "claims": [ - "Snapmaker/Snapmaker Dual ABS" - ], - "successor": "OFJhT2fd" - }, - "1682237920": { - "claims": [ - "Snapmaker/Snapmaker ABS" - ], - "successor": "OF72YYTd" - }, - "1695556157": { - "claims": [ - "Snapmaker/Snapmaker PLA Eco" - ], - "successor": "OFpu74Qe" - }, - "17001": { - "claims": [ - "Creality/CR-Wood" - ], - "successor": "OFGxC8gB" - }, - "1702147325": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA-CF" - ], - "successor": "OF6ATsCF" - }, - "17021473250": { - "claims": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "successor": "OFhQf8ou" - }, - "18001": { - "claims": [ - "Creality/HP Ultra PLA" - ], - "successor": "OFCJpR7a" - }, - "1895495477": { - "claims": [ - "Snapmaker/Snapmaker PETG" - ], - "successor": "OF4WB37S" - }, - "19001": { - "claims": [ - "Creality/Creality Generic ASA", - "Creality/HP-ASA" - ], - "successor": "OFPHLnoe" - }, - "200803790": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA Eco" - ], - "successor": "OFyPG8v2" - }, - "2008037900": { - "claims": [ - "Snapmaker/Snapmaker PLA Eco" - ], - "successor": "OFpu74Qe" - }, - "2029994346": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA Metal" - ], - "successor": "OFg3cWVt" - }, - "20299943460": { - "claims": [ - "Snapmaker/Snapmaker PLA Metal" - ], - "successor": "OFtybfNX" - }, - "2128577941": { - "claims": [ - "Snapmaker/Snapmaker Dual PET" - ], - "successor": "OFUIfGoh" - }, - "21285779410": { - "claims": [ - "Snapmaker/Snapmaker PET" - ], - "successor": "OFQYaiGg" - }, - "2209001062": { - "claims": [ - "Snapmaker/Snapmaker Dual PETG" - ], - "successor": "OFBlFMVp" - }, - "22090010620": { - "claims": [ - "Snapmaker/Snapmaker PETG" - ], - "successor": "OF4WB37S" - }, - "2549587591": { - "claims": [ - "Snapmaker/Snapmaker PET" - ], - "successor": "OFQYaiGg" - }, - "2742961008": { - "claims": [ - "Snapmaker/Snapmaker ASA" - ], - "successor": "OF1d7c3A" - }, - "29001": { - "claims": [ - "Creality/Hyper Marble" - ], - "successor": "OFLzx3J4" - }, - "2971656290": { - "claims": [ - "Snapmaker/Snapmaker Dual TPU" - ], - "successor": "OFjkdnyN" - }, - "29716562900": { - "claims": [ - "Snapmaker/Snapmaker TPU" - ], - "successor": "OF65InrS" - }, - "297165629001": { - "claims": [ - "Snapmaker/Snapmaker TPU 95A" - ], - "successor": "OFKo87c6" - }, - "3104636980": { - "claims": [ - "Snapmaker/Snapmaker Dual PVA" - ], - "successor": "OFDKIKyw" - }, - "31046369800": { - "claims": [ - "Snapmaker/Snapmaker PVA" - ], - "successor": "OFyhjiNs" - }, - "3177068229": { - "claims": [ - "Snapmaker/Snapmaker PLA" - ], - "successor": "OFlufQpZ" - }, - "3383257822": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA Eco" - ], - "successor": "OFLbdkrE" - }, - "3492897526": { - "claims": [ - "Snapmaker/Snapmaker J1 Breakaway" - ], - "successor": "OFeTATC7" - }, - "3493177425": { - "claims": [ - "Snapmaker/Snapmaker Dual PA-CF" - ], - "successor": "OFRooa0F" - }, - "34931774250": { - "claims": [ - "Snapmaker/Snapmaker PA-CF" - ], - "successor": "OFEmsric" - }, - "3503790988": { - "claims": [ - "Snapmaker/Snapmaker Dual PLA Matte" - ], - "successor": "OFlIsW6f" - }, - "377675245": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA" - ], - "successor": "OFSa39yP" - }, - "3806593857": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA-CF" - ], - "successor": "OFdD5Wbu" - }, - "3811508002": { - "claims": [ - "Snapmaker/Snapmaker ABS" - ], - "successor": "OF72YYTd" - }, - "3864371306": { - "claims": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "successor": "OFhQf8ou" - }, - "4012961186": { - "claims": [ - "Snapmaker/Snapmaker J1 PLA Metal" - ], - "successor": "OFt0JbR7" - }, - "4092268632": { - "claims": [ - "Snapmaker/Snapmaker J1 TPU" - ], - "successor": "OFyrnlUn" - }, - "4227461134": { - "claims": [ - "Snapmaker/Snapmaker Breakaway Support For PLA", - "Snapmaker/Snapmaker J1 PVA" - ], - "successor": "OF6TuVAg" - }, - "4235401834": { - "claims": [ - "Snapmaker/Snapmaker J1 PETG-CF" - ], - "successor": "OFxYB4Sw" - }, - "581236806": { - "claims": [ - "Snapmaker/Snapmaker PA-CF" - ], - "successor": "OFEmsric" - }, - "AZ01-1": { - "claims": [ - "BBL/AliZ PETG-CF", - "OrcaFilamentLibrary/AliZ PETG-CF" - ], - "successor": "OFJOFnOZ" - }, - "AZ01-2": { - "claims": [ - "BBL/AliZ PETG-Metal", - "OrcaFilamentLibrary/AliZ PETG-Metal" - ], - "successor": "OFOABq7t" - }, - "AliZ001": { - "claims": [ - "BBL/AliZ PETG", - "OrcaFilamentLibrary/AliZ PETG" - ], - "successor": "OFocyw69" - }, - "AliZ002": { - "claims": [ - "BBL/AliZ PLA", - "OrcaFilamentLibrary/AliZ PLA" - ], - "successor": "OFyxayW4" - }, - "AliZ003": { - "claims": [ - "BBL/AliZ PA-CF", - "OrcaFilamentLibrary/AliZ PA-CF" - ], - "successor": "OFd4zw5l" - }, - "BSFI001": { - "claims": [ - "Blocks/Blocks Generic PLA" - ], - "successor": "OFNYewRS" - }, - "BSFI002": { - "claims": [ - "Blocks/Blocks Generic PETG" - ], - "successor": "OFrgGex8" - }, - "BSFI003": { - "claims": [ - "Blocks/Blocks Generic TPU" - ], - "successor": "OFMEbuBE" - }, - "BSFI004": { - "claims": [ - "Blocks/Blocks Generic ABS" - ], - "successor": "OFma52eS" - }, - "BSFI005": { - "claims": [ - "Blocks/Blocks Generic ASA" - ], - "successor": "OFB9dx27" - }, - "BSFI006": { - "claims": [ - "Blocks/Blocks Generic PA" - ], - "successor": "OFiUSDih" - }, - "BSFI007": { - "claims": [ - "Blocks/Blocks Generic PA-CF" - ], - "successor": "OF8bLDu7" - }, - "BSFI008": { - "claims": [ - "Blocks/Blocks Generic PC" - ], - "successor": "OFahE7HP" - }, - "BSFI009": { - "claims": [ - "Blocks/Blocks Generic PVA" - ], - "successor": "OFiorRtJ" - }, - "BSFI010": { - "claims": [ - "Blocks/Blocks Generic PLA-CF" - ], - "successor": "OFupq0tY" - }, - "CX30DB20": { - "claims": [ - "BBL/COEX TPE 30D", - "OrcaFilamentLibrary/COEX TPE 30D" - ], - "successor": "OFVptRxp" - }, - "CX40DB20": { - "claims": [ - "BBL/COEX TPE 40D", - "OrcaFilamentLibrary/COEX TPE 40D" - ], - "successor": "OFfnXFie" - }, - "CX60AB17": { - "claims": [ - "BBL/COEX TPU 60A", - "OrcaFilamentLibrary/COEX TPU 60A" - ], - "successor": "OFE0NFRh" - }, - "CX60DB19": { - "claims": [ - "BBL/COEX TPE 60D", - "OrcaFilamentLibrary/COEX TPE 60D" - ], - "successor": "OFfr4XNO" - }, - "CXABPB09": { - "claims": [ - "BBL/COEX ABS PRIME", - "OrcaFilamentLibrary/COEX ABS PRIME" - ], - "successor": "OFuWCQXN" - }, - "CXABSB01": { - "claims": [ - "BBL/COEX ABS", - "OrcaFilamentLibrary/COEX ABS" - ], - "successor": "OF99UMPq" - }, - "CXASAB04": { - "claims": [ - "BBL/COEX ASA PRIME", - "OrcaFilamentLibrary/COEX ASA PRIME" - ], - "successor": "OFtpXCCv" - }, - "CXPACB23": { - "claims": [ - "BBL/COEX NYLEX PA6-CF", - "OrcaFilamentLibrary/COEX NYLEX PA6-CF" - ], - "successor": "OF0NgY1y" - }, - "CXPAUB21": { - "claims": [ - "BBL/COEX NYLEX UNFILLED " - ], - "successor": "OFJs1ToM" - }, - "CXPCTB15": { - "claims": [ - "BBL/COEX PCTG PRIME", - "OrcaFilamentLibrary/COEX PCTG PRIME" - ], - "successor": "OFwu7IAG" - }, - "CXPETB13": { - "claims": [ - "BBL/COEX PETG", - "OrcaFilamentLibrary/COEX PETG" - ], - "successor": "OFvTVZc3" - }, - "CXPLAB02": { - "claims": [ - "BBL/COEX PLA", - "OrcaFilamentLibrary/COEX PLA" - ], - "successor": "OFhlCNqq" - }, - "CXPLAB08": { - "claims": [ - "BBL/COEX PLA PRIME", - "OrcaFilamentLibrary/COEX PLA PRIME" - ], - "successor": "OFd2vX0G" - }, - "CXPLSB03": { - "claims": [ - "BBL/COEX PLA+Silk", - "OrcaFilamentLibrary/COEX PLA+Silk" - ], - "successor": "OF0pzFLc" - }, - "DFL99": { - "claims": [ - "Volumic/Désactivé" - ], - "successor": "OFCuaCer" - }, - "DREMC001": { - "claims": [], - "successor": null - }, - "DREMC002": { - "claims": [], - "successor": null - }, - "DREMC003": { - "claims": [], - "successor": null - }, - "DREMC004": { - "claims": [], - "successor": null - }, - "DREMC005": { - "claims": [], - "successor": null - }, - "DREMC006": { - "claims": [ - "OrcaFilamentLibrary/DREMC PA6-CF" - ], - "successor": "OFsoykbm" - }, - "DREMC007": { - "claims": [], - "successor": null - }, - "DREMC008": { - "claims": [], - "successor": null - }, - "DREMC009": { - "claims": [ - "OrcaFilamentLibrary/DREMC ABS-GF" - ], - "successor": "OFCidU7j" - }, - "DREMC010": { - "claims": [ - "OrcaFilamentLibrary/DREMC PPA-CF" - ], - "successor": "OFiWaoqD" - }, - "DREMC011": { - "claims": [], - "successor": null - }, - "DREMC012": { - "claims": [], - "successor": null - }, - "DREMC013": { - "claims": [], - "successor": null - }, - "E1001": { - "claims": [ - "Creality/eSUN PLA+" - ], - "successor": "OFqINlYj" - }, - "E1002": { - "claims": [ - "Creality/eSUN PLA-Silk" - ], - "successor": "OFIRUqWi" - }, - "E1003": { - "claims": [ - "Creality/eSUN PLA-Matte" - ], - "successor": "OFDETOM6" - }, - "E1004": { - "claims": [ - "Creality/eSUN PLA-Lite" - ], - "successor": "OFhbolij" - }, - "E1005": { - "claims": [ - "Creality/eSUN PLA-CF" - ], - "successor": "OFnHc3D6" - }, - "E1006": { - "claims": [ - "Creality/eSUN PLA-HS" - ], - "successor": "OFOHOf2F" - }, - "E2001": { - "claims": [ - "Creality/eSUN PETG" - ], - "successor": "OF3kBrdA" - }, - "E2002": { - "claims": [ - "Creality/eSUN PETG+HS" - ], - "successor": "OFrdZ0cK" - }, - "E2003": { - "claims": [ - "Creality/eSUN PETG-Basic" - ], - "successor": "OFFbQscs" - }, - "E3001": { - "claims": [ - "Creality/eSUN ABS+" - ], - "successor": "OFTXduCM" - }, - "E4001": { - "claims": [ - "Creality/eSUN ASA+" - ], - "successor": "OFUmS5z5" - }, - "E8001": { - "claims": [ - "Creality/eSUN PET-Basic" - ], - "successor": "OFHaYaB1" - }, - "EABSB00": { - "claims": [ - "Elegoo/Elegoo ABS" - ], - "successor": "OFxOHhZw" - }, - "EASAB00": { - "claims": [ - "Elegoo/Elegoo ASA" - ], - "successor": "OFobDOW5" - }, - "EFL33": { - "claims": [ - "Eryone/Eryone PP-CF" - ], - "successor": "OFbh7HcA" - }, - "EFL40": { - "claims": [ - "Eryone/Eryone PLA-CF" - ], - "successor": "OFilAA3b" - }, - "EFL43": { - "claims": [ - "Eryone/Eryone PETG-CF" - ], - "successor": "OFNstOna" - }, - "EFL71": { - "claims": [ - "Eryone/Eryone PA" - ], - "successor": "OFS4jbj3" - }, - "EFL72": { - "claims": [ - "Eryone/Eryone PA-CF" - ], - "successor": "OFp9wdmf" - }, - "EFL73": { - "claims": [ - "Eryone/Eryone PA-GF" - ], - "successor": "OFkq7rPy" - }, - "EFL81": { - "claims": [ - "Eryone/Eryone ABS-CF" - ], - "successor": "OFQ1zgm3" - }, - "EFL82": { - "claims": [ - "Eryone/Eryone ASA-CF" - ], - "successor": "OFwyt1xt" - }, - "EFL90": { - "claims": [ - "Eryone/Eryone PLA" - ], - "successor": "OFmKU2Ha" - }, - "EFL91": { - "claims": [ - "Eryone/Eryone ABS" - ], - "successor": "OFOzwywz" - }, - "EFL92": { - "claims": [ - "Eryone/Eryone ASA" - ], - "successor": "OFVtIasg" - }, - "EFL93": { - "claims": [ - "Eryone/Eryone PETG" - ], - "successor": "OF8kJys9" - }, - "EFL941": { - "claims": [ - "Eryone/Eryone Silk PLA" - ], - "successor": "OF7nBAd3" - }, - "EFL95": { - "claims": [ - "Eryone/Eryone TPU" - ], - "successor": "OFhUjPA5" - }, - "EPAHTB00": { - "claims": [ - "Elegoo/Elegoo PAHT-CF" - ], - "successor": "OF0h7ERL" - }, - "EPCB00": { - "claims": [ - "Elegoo/Elegoo PC" - ], - "successor": "OFUyDDNv" - }, - "EPETGB00": { - "claims": [ - "Elegoo/Elegoo PETG" - ], - "successor": "OFLcd093" - }, - "EPLAB00": { - "claims": [ - "Elegoo/Elegoo PLA" - ], - "successor": "OFvgE0Zh" - }, - "ESN02": { - "claims": [ - "OrcaFilamentLibrary/eSUN ePLA-LW" - ], - "successor": "OFRzR5mi" - }, - "ESN03": { - "claims": [ - "OrcaFilamentLibrary/eSUN PETG" - ], - "successor": "OF3kBrdA" - }, - "ETPUB00": { - "claims": [ - "Elegoo/Elegoo TPU 95A" - ], - "successor": "OFmhJs5V" - }, - "FDPLAST01": { - "claims": [ - "OrcaFilamentLibrary/FDplast ABS" - ], - "successor": "OFjorDcx" - }, - "FDPLAST02": { - "claims": [ - "OrcaFilamentLibrary/FDplast HIPS" - ], - "successor": "OFmJAd3A" - }, - "FDPLAST03": { - "claims": [ - "OrcaFilamentLibrary/FDplast PETG" - ], - "successor": "OFfJSCzm" - }, - "FDPLAST04": { - "claims": [ - "OrcaFilamentLibrary/FDplast PLA" - ], - "successor": "OFtr8eZw" - }, - "FDPLAST05": { - "claims": [ - "OrcaFilamentLibrary/FDplast SBS" - ], - "successor": "OFtRn8X8" - }, - "FDPLAST06": { - "claims": [ - "OrcaFilamentLibrary/FDplast TPU" - ], - "successor": "OFfmZrI3" - }, - "FFF01": { - "claims": [ - "Flashforge/Flashforge PLA" - ], - "successor": "OFDKgoqx" - }, - "FFF02": { - "claims": [ - "Flashforge/Flashforge ABS" - ], - "successor": "OF5SJ3jz" - }, - "FFF03": { - "claims": [ - "Flashforge/Flashforge PETG", - "Flashforge/Generic PETG" - ], - "successor": "OFMpxamb" - }, - "FFG01": { - "claims": [ - "Flashforge/Flashforge Generic PLA" - ], - "successor": "OFtTHNTj" - }, - "FILAR0001": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Bronce" - ], - "successor": "OFWTRJ1K" - }, - "FILAR0002": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Gris Plata" - ], - "successor": "OFKKajh6" - }, - "FILAR0003": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Cobre" - ], - "successor": "OFNemJM6" - }, - "FILAR0004": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Titanio" - ], - "successor": "OFQWIKbV" - }, - "FILAR0005": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Tabaco" - ], - "successor": "OFjT9PkZ" - }, - "FILAR0006": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" - ], - "successor": "OFWwF7K7" - }, - "FILAR0007": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Manteca" - ], - "successor": "OFexaZU2" - }, - "FILAR0008": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Marron Oxido" - ], - "successor": "OFAt6ec0" - }, - "FILAR0009": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Carpincho" - ], - "successor": "OFKWWgyp" - }, - "FILAR0010": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" - ], - "successor": "OFPqX3x2" - }, - "FILAR0011": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" - ], - "successor": "OFZ4QbfK" - }, - "FILAR0012": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Piel" - ], - "successor": "OFsDXRpS" - }, - "FILAR0013": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Verde FilAr" - ], - "successor": "OFvPPMxL" - }, - "FILAR0014": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Verde Manzana" - ], - "successor": "OFdb8YNz" - }, - "FILAR0015": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Verde Pixel" - ], - "successor": "OFkGvN4d" - }, - "FILAR0016": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Verde Oliva" - ], - "successor": "OFkoLUtR" - }, - "FILAR0017": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" - ], - "successor": "OFHAccHz" - }, - "FILAR0018": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Calido" - ], - "successor": "OFKTSiYF" - }, - "FILAR0019": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Negro Azabache" - ], - "successor": "OFgMWJ8T" - }, - "FILAR0020": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" - ], - "successor": "OFKZ9skj" - }, - "FILAR0021": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" - ], - "successor": "OFaEesXQ" - }, - "FILAR0022": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" - ], - "successor": "OF8aFWfQ" - }, - "FILAR0023": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" - ], - "successor": "OFP26zNb" - }, - "FILAR0024": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" - ], - "successor": "OFTlRzpe" - }, - "FILAR0025": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" - ], - "successor": "OFIamQnD" - }, - "FILAR0026": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Azul Francia" - ], - "successor": "OFnYVFk2" - }, - "FILAR0027": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" - ], - "successor": "OFaDOaNt" - }, - "FILAR0028": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Oro" - ], - "successor": "OF5nlfKY" - }, - "FILAR0029": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA Dorado" - ], - "successor": "OF5P4jgA" - }, - "FILAR0030": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" - ], - "successor": "OFj3bTjw" - }, - "FILAR0031": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Azul" - ], - "successor": "OF5vgi2G" - }, - "FILAR0032": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Beige" - ], - "successor": "OFGcLA5R" - }, - "FILAR0033": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Blanco" - ], - "successor": "OFtefokm" - }, - "FILAR0034": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Bordo" - ], - "successor": "OFiDpM1B" - }, - "FILAR0035": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" - ], - "successor": "OFqtx549" - }, - "FILAR0036": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" - ], - "successor": "OFdzlrhi" - }, - "FILAR0037": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Gris" - ], - "successor": "OFGVwfK0" - }, - "FILAR0038": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Marron" - ], - "successor": "OF8jh0Lk" - }, - "FILAR0039": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Naranja" - ], - "successor": "OFmaeU4a" - }, - "FILAR0040": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Negro" - ], - "successor": "OFufTAK9" - }, - "FILAR0041": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Piel" - ], - "successor": "OFfZcoKr" - }, - "FILAR0042": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rojo" - ], - "successor": "OFIBXa0k" - }, - "FILAR0043": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rosa" - ], - "successor": "OFausr3F" - }, - "FILAR0044": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Uva" - ], - "successor": "OFEZ449N" - }, - "FILAR0045": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Verde" - ], - "successor": "OFCjG251" - }, - "FILAR0046": { - "claims": [ - "OrcaFilamentLibrary/FilAr PLA-mate Violeta" - ], - "successor": "OF2EK9F1" - }, - "FILAR0047": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" - ], - "successor": "OFt6e0US" - }, - "FILAR0048": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" - ], - "successor": "OF0Vtzaw" - }, - "FILAR0049": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Azul Boreal" - ], - "successor": "OFNU9YIW" - }, - "FILAR0050": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Azul Francia" - ], - "successor": "OF44VYzK" - }, - "FILAR0051": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Azul Imperial" - ], - "successor": "OF2Z1nT5" - }, - "FILAR0052": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" - ], - "successor": "OFsXQXbs" - }, - "FILAR0053": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Cian" - ], - "successor": "OFnejEt4" - }, - "FILAR0054": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Coral" - ], - "successor": "OFysxCep" - }, - "FILAR0055": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Cristal" - ], - "successor": "OFJQDUk3" - }, - "FILAR0056": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" - ], - "successor": "OFybzvQN" - }, - "FILAR0057": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Gris Plata" - ], - "successor": "OFgpLTMR" - }, - "FILAR0058": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Magenta" - ], - "successor": "OFurdQxc" - }, - "FILAR0059": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Negro Azabache" - ], - "successor": "OFq8gfS4" - }, - "FILAR0060": { - "claims": [ - "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" - ], - "successor": "OFPbyOSk" - }, - "FILARB01": { - "claims": [], - "successor": null - }, - "FILARB02": { - "claims": [], - "successor": null - }, - "FILARB03": { - "claims": [], - "successor": null - }, - "FILL3D001": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PLA Turbo" - ], - "successor": "OFoSknDB" - }, - "FILL3D002": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PLA Basic" - ], - "successor": "OFDpW3J8" - }, - "FILL3D003": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PETG" - ], - "successor": "OFQbjX3s" - }, - "FILL3D004": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PP" - ], - "successor": "OFPWPlSC" - }, - "FILL3D005": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PPCF" - ], - "successor": "OFg8hMzT" - }, - "FILL3D006": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PA" - ], - "successor": "OFJNeELv" - }, - "FILL3D007": { - "claims": [ - "OrcaFilamentLibrary/FILL3D PETG CF" - ], - "successor": "OFOiJfLM" - }, - "GABSB00": { - "claims": [ - "Elegoo/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "GASAB00": { - "claims": [ - "Elegoo/Generic ASA", - "Elegoo/Generic ASA-CF" - ], - "successor": "OFLPAxz3" - }, - "GFABS": { - "claims": [ - "Anycubic/Anycubic ABS" - ], - "successor": "OF223rZv" - }, - "GFL92": { - "claims": [ - "Anycubic/Anycubic PLA" - ], - "successor": "OFmjN2bc" - }, - "GFL93": { - "claims": [ - "Anycubic/Anycubic PLA+" - ], - "successor": "OFnmp6rt" - }, - "GFPLA": { - "claims": [ - "Anycubic/Anycubic PLA" - ], - "successor": "OFmjN2bc" - }, - "GFPLA High Speed": { - "claims": [ - "Anycubic/Anycubic PLA High Speed" - ], - "successor": "OFjVOWfJ" - }, - "GFPLA Matte": { - "claims": [ - "Anycubic/Anycubic PLA Matte" - ], - "successor": "OFIE3vOf" - }, - "GFPLA Silk": { - "claims": [ - "Anycubic/Anycubic PLA Silk" - ], - "successor": "OFFwJWea" - }, - "GFPLA+": { - "claims": [ - "Anycubic/Anycubic PLA+" - ], - "successor": "OFnmp6rt" - }, - "GPAB00": { - "claims": [ - "Elegoo/Generic PA" - ], - "successor": "OFg8ndtj" - }, - "GPCB00": { - "claims": [ - "Elegoo/Generic PC" - ], - "successor": "OFLakOUI" - }, - "GPETB00": { - "claims": [ - "Elegoo/Generic PET" - ], - "successor": "OF6MOPWx" - }, - "GPETGB00": { - "claims": [ - "Elegoo/Generic PETG", - "Elegoo/Generic PETG-CF" - ], - "successor": "OFYPdQJh" - }, - "GPLAB00": { - "claims": [ - "Elegoo/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "Generic ABS @E3NG v1.2S": { - "claims": [ - "RH3D/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "Generic ABS @MK4S": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S HF0.4": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S HF0.5": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S HF0.6": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ABS @MK4S HF0.8": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Generic ASA @E3NG v1.2S": { - "claims": [ - "RH3D/Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "Generic FLEX @MK4S": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Generic FLEX @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Generic FLEX @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Generic PCCF @E3NG v1.2S": { - "claims": [ - "RH3D/Generic PCCF" - ], - "successor": "OFC5f4Ay" - }, - "Generic PETG @E3NG v1.2S": { - "claims": [ - "RH3D/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "Generic PETG @MK4S": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S HF0.4": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S HF0.5": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S HF0.6": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PETG @MK4S HF0.8": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Generic PLA @E3NG v1.2S": { - "claims": [ - "RH3D/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "Generic PLA @MK4S": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S HF0.4": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S HF0.5": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S HF0.6": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA @MK4S HF0.8": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Generic PLA Silk @MK4S": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Generic PLA Silk @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Generic PLA Silk @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Generic TPU @E3NG v1.2S": { - "claims": [ - "RH3D/Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "IQM1": { - "claims": [ - "iQ/Fiberthree PACF Pro P1" - ], - "successor": "OFjUGUIK" - }, - "IQM1011": { - "claims": [ - "iQ/VXL90 TiQ2 P2" - ], - "successor": "OFOJPAAS" - }, - "IQM2": { - "claims": [ - "iQ/Material4Print ABS Natur P1" - ], - "successor": "OFJWKoYG" - }, - "IQM3": { - "claims": [ - "iQ/Polymaker PETG Polymax black P1" - ], - "successor": "OFaeIx7W" - }, - "IQM7": { - "claims": [ - "iQ/Fiberthree PACF Pro P2" - ], - "successor": "OF6kj4jI" - }, - "LHF_abs": { - "claims": [ - "LH/LHS ABS" - ], - "successor": "OFztQ7rO" - }, - "LHF_asa": { - "claims": [ - "LH/LHS ASA" - ], - "successor": "OFaP2SsH" - }, - "LHF_ftpuf": { - "claims": [ - "LH/LHS TPU Foamy 78A" - ], - "successor": "OFngcE81" - }, - "LHF_pccf": { - "claims": [ - "LH/LHS PC CF" - ], - "successor": "OFu0fjPJ" - }, - "LHF_pctg": { - "claims": [ - "LH/LHS PCTG" - ], - "successor": "OFBJAdLw" - }, - "LHF_petg": { - "claims": [ - "LH/LHS PETG" - ], - "successor": "OFRJ325z" - }, - "LHF_pla": { - "claims": [ - "LH/LHS PLA" - ], - "successor": "OFyoBZdm" - }, - "LHF_ptpu_pl": { - "claims": [ - "LH/LHS TPU" - ], - "successor": "OFIZMQwM" - }, - "NIT01": { - "claims": [ - "OrcaFilamentLibrary/NIT ABS" - ], - "successor": "OFhWc5Bv" - }, - "NIT02": { - "claims": [ - "OrcaFilamentLibrary/NIT PLA" - ], - "successor": "OFwRJ4g0" - }, - "NIT03": { - "claims": [ - "OrcaFilamentLibrary/NIT PETG" - ], - "successor": "OFJu1XwK" - }, - "OEABSB00": { - "claims": [ - "OrcaFilamentLibrary/Elegoo ABS" - ], - "successor": "OFxOHhZw" - }, - "OEASAB00": { - "claims": [ - "OrcaFilamentLibrary/Elegoo ASA" - ], - "successor": "OFobDOW5" - }, - "OEPAHTB0": { - "claims": [ - "OrcaFilamentLibrary/Elegoo PAHT-CF" - ], - "successor": "OF0h7ERL" - }, - "OEPCB00": { - "claims": [ - "OrcaFilamentLibrary/Elegoo PC" - ], - "successor": "OFUyDDNv" - }, - "OEPETGB0": { - "claims": [ - "OrcaFilamentLibrary/Elegoo PETG" - ], - "successor": "OFLcd093" - }, - "OEPLAB00": { - "claims": [ - "OrcaFilamentLibrary/Elegoo PLA" - ], - "successor": "OFvgE0Zh" - }, - "OETPUB00": { - "claims": [ - "OrcaFilamentLibrary/Elegoo TPU 95A" - ], - "successor": "OFmhJs5V" - }, - "OF016CJw": { - "claims": [ - "Sovol/Sovol SV08 ABS" - ], - "successor": "OFY9muEs" - }, - "OF0GIkJm": { - "claims": [ - "Tiertime/Tiertime Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OF0zx94L": { - "claims": [ - "Vzbot/Vzbot Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OF1Id239": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF1OZujR": { - "claims": [ - "Flashforge/Flashforge Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OF1bQyX2": { - "claims": [ - "Flashforge/Flashforge PLA Matte" - ], - "successor": "OF6qAuyi" - }, - "OF1daEUW": { - "claims": [ - "Anker/Anker Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OF1uR1t2": { - "claims": [ - "Tiertime/Tiertime Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF2RjrWH": { - "claims": [ - "Flashforge/FusRock Generic PAHT-GF" - ], - "successor": "OFcVLpNA" - }, - "OF2bZtyg": { - "claims": [ - "Flashforge/Flashforge PLA-CF" - ], - "successor": "OF9cAwMK" - }, - "OF2mgDsI": { - "claims": [ - "Vzbot/Vzbot Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OF3P0BQA": { - "claims": [ - "Anker/Anker Generic ABS", - "Anker/Anker Generic ABS 0.2 nozzle", - "Anker/Anker Generic ABS 0.25 nozzle" - ], - "successor": "OFY9muEs" - }, - "OF3s929u": { - "claims": [ - "Tiertime/Tiertime Generic PP" - ], - "successor": "OF1UNk9P" - }, - "OF3wxlw9": { - "claims": [ - "CoLiDo/CoLiDo Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF41jaTh": { - "claims": [ - "Flashforge/Flashforge TPU-90A" - ], - "successor": "OFwlZ7gH" - }, - "OF42ZDpN": { - "claims": [ - "Flashforge/FusRock PAHT" - ], - "successor": "OF7pjCsO" - }, - "OF48L671": { - "claims": [ - "Ratrig/RatRig Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OF4Mf5Gz": { - "claims": [ - "Creality/Creality Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF4XAUnp": { - "claims": [ - "Vzbot/Vzbot Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OF4oCRKe": { - "claims": [ - "DeltaMaker/DeltaMaker Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF4xhTuK": { - "claims": [ - "OrcaArena/OrcaArena Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OF4zzGwp": { - "claims": [ - "Flashforge/FusRock Generic PET-GF" - ], - "successor": "OFzwA5Z9" - }, - "OF51XQar": { - "claims": [ - "CONSTRUCT3D/C1 Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OF5E5KNA": { - "claims": [ - "SecKit/SecKit Generic PC" - ], - "successor": "OFLakOUI" - }, - "OF5NQFKI": { - "claims": [ - "Flashforge/Flashforge PLA Galaxy" - ], - "successor": "OFJJ0Ar3" - }, - "OF5Zk4e1": { - "claims": [ - "Anycubic/Anycubic Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OF5vzBhb": { - "claims": [ - "Chuanying/Chuanying Generic PLA", - "Chuanying/Chuanying PLA" - ], - "successor": "OFDSrzZ8" - }, - "OF5w29Kq": { - "claims": [ - "Flashforge/Flashforge HS PETG" - ], - "successor": "OFDxxTpW" - }, - "OF67EdL5": { - "claims": [ - "Sovol/Sovol SV06 ACE ABS" - ], - "successor": "OFY9muEs" - }, - "OF6Fpw1E": { - "claims": [ - "Comgrow/Comgrow Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OF6K467o": { - "claims": [ - "InfiMech/InfiMech Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OF6KELDx": { - "claims": [ - "Co Print/CoPrint Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OF6O67Xk": { - "claims": [ - "Lulzbot/Lulzbot 2.85mm ABS" - ], - "successor": "OFY9muEs" - }, - "OF6VgL2U": { - "claims": [ - "Phrozen/Phrozen PLA" - ], - "successor": "OFDSrzZ8" - }, - "OF6WddJ1": { - "claims": [ - "Flashforge/FusRock S-PAHT" - ], - "successor": "OFCn83wF" - }, - "OF6ooviO": { - "claims": [ - "FLSun/FLSun S1 TPU" - ], - "successor": "OFgbpcy9" - }, - "OF6rMr3U": { - "claims": [ - "Flashforge/FusRock Generic S-Multi" - ], - "successor": "OF0AquDh" - }, - "OF6tKa1Z": { - "claims": [ - "Anker/Anker Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OF6ueBwd": { - "claims": [ - "Flashforge/Flashforge PLA Pro" - ], - "successor": "OFm4SivL" - }, - "OF6vKLaU": { - "claims": [ - "Artillery/Artillery Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OF6xLvYg": { - "claims": [ - "InfiMech/InfiMech Generic PC" - ], - "successor": "OFLakOUI" - }, - "OF6zAVFj": { - "claims": [ - "Sovol/Sovol Zero TPU" - ], - "successor": "OFgbpcy9" - }, - "OF7VJMYM": { - "claims": [ - "Sovol/Sovol Zero PLA Basic" - ], - "successor": "OFDSrzZ8" - }, - "OF7g2vYQ": { - "claims": [ - "Co Print/CoPrint Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OF7uE5KB": { - "claims": [ - "Anker/Anker Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OF8CXrvm": { - "claims": [ - "SecKit/SecKit Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OF8bLDu7": { - "claims": [ - "Blocks/Blocks Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OF8eQjjt": { - "claims": [ - "Lulzbot/Lulzbot 2.85mm PETG" - ], - "successor": "OFYPdQJh" - }, - "OF97ru74": { - "claims": [ - "Prusa/Prusa Generic PC" - ], - "successor": "OFLakOUI" - }, - "OF995YXg": { - "claims": [ - "Flashforge/Flashforge TPU-64D" - ], - "successor": "OF8GtyKJ" - }, - "OF9fOPpd": { - "claims": [ - "Vzbot/Vzbot Generic PC" - ], - "successor": "OFLakOUI" - }, - "OF9z5LZ9": { - "claims": [ - "FLSun/FLSun S1 PETG" - ], - "successor": "OFYPdQJh" - }, - "OFACSw9O": { - "claims": [ - "Creality/Creality Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFAf9pJF": { - "claims": [ - "Flashforge/Flashforge TPU 95A" - ], - "successor": "OFSqIcJC" - }, - "OFB09fpe": { - "claims": [ - "Ratrig/RatRig Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFB0a3hT": { - "claims": [ - "Anker/Anker Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFB1Tv1E": { - "claims": [ - "Anycubic/Anycubic Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFB8wSps": { - "claims": [ - "Flashforge/FusRock PET-CF" - ], - "successor": "OFDu1qE7" - }, - "OFB9dx27": { - "claims": [ - "Blocks/Blocks Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFBC32Wb": { - "claims": [ - "Flashforge/FusRock PET" - ], - "successor": "OFKTGKJU" - }, - "OFBIadjM": { - "claims": [ - "Chuanying/Chuanying ASA", - "Chuanying/Chuanying Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFBK6zAi": { - "claims": [ - "Flashforge/Flashforge PETG-CF" - ], - "successor": "OFuFEtKX" - }, - "OFBpcB0a": { - "claims": [ - "TwoTrees/TwoTrees Generic HS PLA" - ], - "successor": "OFvxghTE" - }, - "OFBtlI8M": { - "claims": [ - "FlyingBear/FlyingBear Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFC20UMj": { - "claims": [ - "Flashforge/Flashforge Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFCEA7Nt": { - "claims": [ - "Sovol/Sovol SV06 Plus ACE ABS" - ], - "successor": "OFY9muEs" - }, - "OFCVUEaV": { - "claims": [ - "Tiertime/Tiertime Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFCaJHAA": { - "claims": [ - "Flashforge/FusRock Generic S-PAHT" - ], - "successor": "OFCn83wF" - }, - "OFCcsYtf": { - "claims": [ - "FLSun/FLSun Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFCu3jES": { - "claims": [], - "successor": null - }, - "OFD2JNS1": { - "claims": [ - "Dremel/Dremel Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFD6kN7F": { - "claims": [ - "OrcaArena/OrcaArena Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFDeTsJw": { - "claims": [ - "Chuanying/Chuanying Generic HIPS" - ], - "successor": "OFsFon5l" - }, - "OFEE1Dld": { - "claims": [ - "Artillery/Artillery Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFEMfQsX": { - "claims": [ - "Flashforge/Flashforge PETG Basic" - ], - "successor": "OFYYeMyQ" - }, - "OFENzGSm": { - "claims": [ - "FLSun/FLSun T1 TPU" - ], - "successor": "OFgbpcy9" - }, - "OFETFWx7": { - "claims": [ - "SecKit/SecKit Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFEZNNw1": { - "claims": [ - "Ratrig/RatRig Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFF73Bvp": { - "claims": [ - "SecKit/SecKit Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFFC0VqZ": { - "claims": [ - "Ratrig/RatRig BigNozzle PCTG" - ], - "successor": "OFYfAcLY" - }, - "OFFZ0BBL": { - "claims": [ - "FlyingBear/FlyingBear Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFFxZ7hZ": { - "claims": [ - "Chuanying/Chuanying Generic PLA-CF10" - ], - "successor": "OFX2zcrM" - }, - "OFGDaEHO": { - "claims": [ - "Tiertime/Tiertime Generic BVOH" - ], - "successor": "OFo2UF2C" - }, - "OFGGyAgJ": { - "claims": [ - "Vzbot/Vzbot Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFGKLoUm": { - "claims": [ - "Anycubic/Anycubic Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFGLeiNL": { - "claims": [], - "successor": null - }, - "OFGPJxnt": { - "claims": [ - "Anker/Anker Generic PC", - "Anker/Anker Generic PC 0.2 nozzle", - "Anker/Anker Generic PC 0.25 nozzle" - ], - "successor": "OFLakOUI" - }, - "OFGzUNbm": { - "claims": [ - "Tiertime/Tiertime Generic PPS-CF" - ], - "successor": "OF6rdQ6M" - }, - "OFH5UH6P": { - "claims": [ - "Flashforge/Flashforge ABS-GF" - ], - "successor": "OFojbdhR" - }, - "OFH6Pjxe": { - "claims": [ - "Flashforge/Flashforge PLA Matte" - ], - "successor": "OF6qAuyi" - }, - "OFHFZ1Te": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFHQUAoZ": { - "claims": [ - "FLSun/FLSun Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFHTVfaU": { - "claims": [ - "Sovol/Sovol Zero PETG" - ], - "successor": "OFYPdQJh" - }, - "OFHUnLY2": { - "claims": [ - "Vzbot/Vzbot Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFHa3RZT": { - "claims": [ - "Tiertime/Tiertime Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFI80Hct": { - "claims": [ - "Anycubic/Anycubic Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFIK0xFa": { - "claims": [ - "FLSun/FLSun S1 ASA" - ], - "successor": "OFLPAxz3" - }, - "OFIYTy8S": { - "claims": [ - "Anker/Anker Generic PLA+", - "Anker/Anker Generic PLA+ 0.2 nozzle", - "Anker/Anker Generic PLA+ 0.25 nozzle" - ], - "successor": "OFEWYR89" - }, - "OFIda816": { - "claims": [ - "Vzbot/Vzbot Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFIeCuXj": { - "claims": [ - "Peopoly/Peopoly Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFIieIka": { - "claims": [ - "Flashforge/Polymaker CoPA" - ], - "successor": "OFQyyO0l" - }, - "OFIxitiU": { - "claims": [ - "Flashforge/Flashforge PLA Basic" - ], - "successor": "OFJ3F2jm" - }, - "OFIy3kLw": { - "claims": [ - "Prusa/Prusa Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFJ80y1e": { - "claims": [ - "FLSun/FLSun T1 PETG" - ], - "successor": "OFYPdQJh" - }, - "OFJJpaLS": { - "claims": [ - "FLSun/FLSun Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFJSksUs": { - "claims": [ - "FLSun/FLSun Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFJVFpJz": { - "claims": [ - "Sovol/Sovol Zero PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFJfv07m": { - "claims": [ - "Sovol/Sovol SV06 ACE TPU" - ], - "successor": "OFgbpcy9" - }, - "OFK01afJ": { - "claims": [ - "Qidi/Qidi Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFK4LdYI": { - "claims": [ - "Prusa/Prusa Generic ASA HF" - ], - "successor": "OFzRtFM9" - }, - "OFK74HJD": { - "claims": [ - "Flashforge/Flashforge PLA Pro" - ], - "successor": "OFm4SivL" - }, - "OFKNAhls": { - "claims": [ - "Qidi/Qidi Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFKo87c6": { - "claims": [ - "Snapmaker/Snapmaker TPU 95A" - ], - "successor": "OFvmwTZE" - }, - "OFKpQTJI": { - "claims": [ - "Flashforge/Flashforge TPU 65D" - ], - "successor": "OFSDfduA" - }, - "OFKuTr12": { - "claims": [ - "Tiertime/Tiertime Generic PE" - ], - "successor": "OFPklMI1" - }, - "OFKyCgaK": { - "claims": [ - "Anycubic/Anycubic Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFLBUkwC": { - "claims": [ - "Vzbot/Vzbot Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFLDSqqi": { - "claims": [ - "Flashforge/Flashforge Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFLSBS99": { - "claims": [ - "OrcaFilamentLibrary/Generic SBS" - ], - "successor": "OFhQfUQY" - }, - "OFLYDIb8": { - "claims": [ - "Flashforge/Flashforge PLA Silk" - ], - "successor": "OFgjgN35" - }, - "OFLrdHse": { - "claims": [ - "Flashforge/Flashforge Generic HS PLA" - ], - "successor": "OFvxghTE" - }, - "OFLuczRG": { - "claims": [ - "Creality/Creality Generic ASA-CF" - ], - "successor": "OF53eLVD" - }, - "OFM87w9T": { - "claims": [ - "Tiertime/Tiertime Generic SBS" - ], - "successor": "OFhQfUQY" - }, - "OFMEbuBE": { - "claims": [ - "Blocks/Blocks Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFMIma8C": { - "claims": [ - "Flashforge/Flashforge PLA Luminous" - ], - "successor": "OFdqkWtz" - }, - "OFMIurFh": { - "claims": [ - "Creality/Creality HF Generic Speed PLA" - ], - "successor": "OFXmv5p0" - }, - "OFMTBcnz": { - "claims": [ - "Tiertime/Tiertime Generic PP-CF" - ], - "successor": "OFXkm8q1" - }, - "OFMZAoqa": { - "claims": [ - "Tiertime/Tiertime Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFMgJQCZ": { - "claims": [ - "Anker/Anker Generic PA", - "Anker/Anker Generic PA 0.2 nozzle", - "Anker/Anker Generic PA 0.25 nozzle" - ], - "successor": "OFg8ndtj" - }, - "OFMoLF46": { - "claims": [ - "FLSun/FLSun Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFMqYusc": { - "claims": [ - "Creality/Creality Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFMyLYV8": { - "claims": [ - "Flashforge/Flashforge PETG Transparent" - ], - "successor": "OFwjMiKL" - }, - "OFN7aNHe": { - "claims": [ - "Tiertime/Tiertime Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFNLXV8X": { - "claims": [ - "Tiertime/Tiertime Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFNOxcYl": { - "claims": [ - "Ratrig/RatRig Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFNW4ZTC": { - "claims": [ - "Creality/Creality Generic PLA Wood" - ], - "successor": "OFIKZxPF" - }, - "OFNWcJsM": { - "claims": [ - "Comgrow/Comgrow T300 PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFNWnx2c": { - "claims": [ - "Flashforge/Flashforge TPU-95A" - ], - "successor": "OFx0WlzS" - }, - "OFNX8GI1": { - "claims": [ - "Sovol/Sovol Zero ABS" - ], - "successor": "OFY9muEs" - }, - "OFNYewRS": { - "claims": [ - "Blocks/Blocks Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFNZYgLA": { - "claims": [ - "Qidi/Qidi Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFNZjrLo": { - "claims": [ - "Sovol/Sovol SV06 Plus ACE PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFNcdCrm": { - "claims": [ - "Anycubic/Anycubic Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFNiSLfL": { - "claims": [ - "OrcaFilamentLibrary/Generic PP-GF" - ], - "successor": "OFsijjtH" - }, - "OFNn21yM": { - "claims": [ - "Vzbot/Vzbot Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFOKYhi6": { - "claims": [ - "Prusa/Prusa Generic PETG HF" - ], - "successor": "OF7lOgYF" - }, - "OFPQfNAf": { - "claims": [ - "Flashforge/Flashforge PETG Pro" - ], - "successor": "OFXiArjA" - }, - "OFPdhDlK": { - "claims": [ - "Anycubic/Anycubic Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFPjOUtz": { - "claims": [ - "Flashforge/FusRock Generic PAHT-CF" - ], - "successor": "OFKW5hEW" - }, - "OFPryWt5": { - "claims": [ - "Lulzbot/Lulzbot 2.85mm PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFPy0Ogq": { - "claims": [ - "Qidi/Qidi Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFQ7I5vC": { - "claims": [ - "Prusa/Prusa Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFQ9qnkd": { - "claims": [ - "FLSun/FLSun T1 PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OFQC8Vna": { - "claims": [ - "Flashforge/Flashforge Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OFQTrLXB": { - "claims": [ - "Qidi/Qidi Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFQZeyZv": { - "claims": [ - "Flashforge/Flashforge PLA Buint Ti" - ], - "successor": "OF8O09RG" - }, - "OFQbqeN7": { - "claims": [ - "Qidi/Qidi Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFQiq4fb": { - "claims": [ - "Flashforge/Flashforge PVA" - ], - "successor": "OFaaddbQ" - }, - "OFQswlnF": { - "claims": [ - "Tiertime/Tiertime Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFRDLNM9": { - "claims": [ - "Peopoly/Peopoly Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFRPEs5o": { - "claims": [ - "Flashforge/Flashforge Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFRi7v0b": { - "claims": [ - "Sovol/Sovol SV08 PETG" - ], - "successor": "OFYPdQJh" - }, - "OFRiyes1": { - "claims": [ - "Anker/Anker Generic ASA", - "Anker/Anker Generic ASA 0.2 nozzle", - "Anker/Anker Generic ASA 0.25 nozzle" - ], - "successor": "OFLPAxz3" - }, - "OFRujL0v": { - "claims": [ - "Flashforge/FusRock Generic PET-CF" - ], - "successor": "OFDu1qE7" - }, - "OFRusgEn": { - "claims": [ - "Chuanying/Chuanying Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFRzsaDK": { - "claims": [ - "FlyingBear/FlyingBear Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFS8JF3S": { - "claims": [ - "Qidi/Qidi Generic PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OFSDFYs4": { - "claims": [ - "Creality/Creality Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFSGbf2I": { - "claims": [ - "Anycubic/Anycubic Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFSPdsuW": { - "claims": [ - "Tiertime/Tiertime Generic PPA-CF" - ], - "successor": "OF8tPByX" - }, - "OFSStjay": { - "claims": [ - "FLSun/FLSun S1 PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFSTCno1": { - "claims": [ - "re3D/re3D Greengate rPETG" - ], - "successor": "OFmCOW2Y" - }, - "OFShw1X8": { - "claims": [ - "Flashforge/Flashforge ABS Basic" - ], - "successor": "OFibWuBd" - }, - "OFTKFAZ4": { - "claims": [ - "Tiertime/Tiertime Generic PCTG" - ], - "successor": "OFu1evlr" - }, - "OFTvvox9": { - "claims": [ - "Sovol/Sovol SV06 ACE PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFU0n0zW": { - "claims": [ - "FLSun/FLSun T1 PLA Generic" - ], - "successor": "OFDSrzZ8" - }, - "OFU3zwPc": { - "claims": [ - "Prusa/Prusa Generic TPU HF" - ], - "successor": "OFnT7Qpb" - }, - "OFU5N9jI": { - "claims": [ - "OrcaArena/OrcaArena Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFU6fjbi": { - "claims": [ - "Co Print/CoPrint Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFUCpLaL": { - "claims": [ - "Flashforge/FlashForge PPS" - ], - "successor": "OFlgMgNM" - }, - "OFUScM0D": { - "claims": [ - "Flashforge/FusRock S-Multi" - ], - "successor": "OF0AquDh" - }, - "OFUWRqwb": { - "claims": [ - "Creality/Creality Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFUaVAdj": { - "claims": [ - "Tiertime/Tiertime Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFUrStd6": { - "claims": [ - "Ratrig/RatRig Generic PCTG" - ], - "successor": "OFu1evlr" - }, - "OFUtGagr": { - "claims": [ - "Artillery/Artillery Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFV0KrAG": { - "claims": [ - "FLSun/FLSun T1 ABS" - ], - "successor": "OFY9muEs" - }, - "OFVKADz5": { - "claims": [ - "Comgrow/Comgrow Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFVqZ2H0": { - "claims": [ - "FLSun/FLSun Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFW9uIkE": { - "claims": [ - "Tiertime/Tiertime Generic HIPS" - ], - "successor": "OFsFon5l" - }, - "OFWIr7ZE": { - "claims": [ - "CoLiDo/CoLiDo Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFWY6vBh": { - "claims": [ - "Anycubic/Anycubic Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFWadebJ": { - "claims": [ - "Tiertime/Tiertime Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OFWbbuRY": { - "claims": [ - "InfiMech/InfiMech Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFWnSvGu": { - "claims": [ - "Flashforge/Flashforge ASA-GF" - ], - "successor": "OFrZDhVt" - }, - "OFWof1Ap": { - "claims": [ - "FLSun/FLSun Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFWukXja": { - "claims": [ - "Qidi/Qidi Generic TPU 95A" - ], - "successor": "OFjiXpyf" - }, - "OFWzr7m0": { - "claims": [ - "Anycubic/Anycubic Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFXXUHSG": { - "claims": [ - "Chuanying/Chuanying Generic PETG-CF10" - ], - "successor": "OFO5djrM" - }, - "OFXhZ3uY": { - "claims": [ - "OrcaArena/OrcaArena Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFXuwtnq": { - "claims": [ - "Co Print/CoPrint Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFXyyfX6": { - "claims": [ - "Anker/Anker Generic PLA Silk", - "Anker/Anker Generic PLA Silk 0.2 nozzle", - "Anker/Anker Generic PLA Silk 0.25 nozzle" - ], - "successor": "OFesA6rF" - }, - "OFYHzKyS": { - "claims": [ - "Vzbot/Vzbot Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFYPdJ7t": { - "claims": [ - "Creality/Creality Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFYfAcLY": { - "claims": [ - "Ratrig/Generic PCTG BigNozzle" - ], - "successor": "OFXW4CDh" - }, - "OFYl0c8v": { - "claims": [ - "Flashforge/Flashforge Generic HIPS" - ], - "successor": "OFsFon5l" - }, - "OFYlZMmy": { - "claims": [ - "Chuanying/Chuanying Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFYlthXI": { - "claims": [ - "Flashforge/Flashforge Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFYtS9zg": { - "claims": [ - "Flashforge/FusRock PAHT-CF" - ], - "successor": "OFKW5hEW" - }, - "OFYvSO1W": { - "claims": [ - "Flashforge/Flashforge Generic PLA-Silk" - ], - "successor": "OFi6PfUM" - }, - "OFZ1hANN": { - "claims": [ - "Flashforge/FusRock Generic NexPA-CF25" - ], - "successor": "OFjt8dDO" - }, - "OFZ4fTO8": { - "claims": [ - "CONSTRUCT3D/C1 Generic High Flow PETG" - ], - "successor": "OFNjku08" - }, - "OFZHgTVI": { - "claims": [ - "Flashforge/Flashforge Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFZPlCck": { - "claims": [ - "Chuanying/Chuanying Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFZsChIG": { - "claims": [ - "Qidi/Qidi Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFa9X7yl": { - "claims": [ - "Flashforge/FusRock S-PAHT" - ], - "successor": "OFCn83wF" - }, - "OFaBwRvT": { - "claims": [ - "Flashforge/Flashforge ASA Basic" - ], - "successor": "OFFFg2Pf" - }, - "OFaFNP2U": { - "claims": [ - "Sovol/Sovol SV07 PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFaU2JxD": { - "claims": [ - "Dremel/Dremel Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFahE7HP": { - "claims": [ - "Blocks/Blocks Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFaz8VoR": { - "claims": [ - "Flashforge/Flashforge HIPS" - ], - "successor": "OFvaLVML" - }, - "OFbeeFkl": { - "claims": [ - "OrcaArena/OrcaArena Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFbenYUK": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFbjtPQy": { - "claims": [ - "FLSun/FLSun T1 ASA" - ], - "successor": "OFLPAxz3" - }, - "OFbt04e0": { - "claims": [ - "DeltaMaker/DeltaMaker Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFc0xiCz": { - "claims": [ - "InfiMech/InfiMech Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFcCzEkS": { - "claims": [ - "Prusa/Prusa Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFcJ7AKd": { - "claims": [ - "Sovol/Sovol SV08 PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFcdqaWI": { - "claims": [ - "Sovol/Sovol Zero PC" - ], - "successor": "OFLakOUI" - }, - "OFctbSkL": { - "claims": [ - "Blocks/Blocks Generic ASA-CF" - ], - "successor": "OF53eLVD" - }, - "OFd10YeG": { - "claims": [ - "Ratrig/RatRig Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFdEIwxy": { - "claims": [ - "Flashforge/Flashforge Generic PLA-CF10" - ], - "successor": "OFX2zcrM" - }, - "OFdHsxB4": { - "claims": [ - "TwoTrees/TwoTrees Generic 95A TPU" - ], - "successor": "OF6MMR8P" - }, - "OFdLdGgJ": { - "claims": [ - "OrcaArena/OrcaArena Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFdOWhCa": { - "claims": [ - "Ratrig/RatRig Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFdXgp2K": { - "claims": [ - "Chuanying/Chuanying Generic HS PLA", - "Chuanying/Chuanying HS PLA" - ], - "successor": "OFvxghTE" - }, - "OFdlGycb": { - "claims": [ - "CoLiDo/CoLiDo Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFe6sfXS": { - "claims": [ - "Flashforge/FlashForge PC" - ], - "successor": "OFWXCbVF" - }, - "OFe7Sx5B": { - "claims": [ - "Sovol/Sovol SV06 ACE PETG" - ], - "successor": "OFYPdQJh" - }, - "OFe8UJXH": { - "claims": [ - "Creality/Creality Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFeDfaCh": { - "claims": [ - "CoLiDo/CoLiDo Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFeJjoKF": { - "claims": [ - "FLSun/FLSun Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFeK2vkS": { - "claims": [ - "Chuanying/Chuanying Generic PLA-Silk", - "Chuanying/Chuanying PLA-SILK" - ], - "successor": "OFi6PfUM" - }, - "OFec7Qiw": { - "claims": [ - "Flashforge/Flashforge PLA Sparkle" - ], - "successor": "OFV5c8hG" - }, - "OFetENFF": { - "claims": [ - "OrcaArena/OrcaArena Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFfZ0lTS": { - "claims": [ - "Qidi/Qidi Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OFfegVpA": { - "claims": [ - "Flashforge/Polymaker Generic S1" - ], - "successor": "OFaDsTE0" - }, - "OFfxFQf9": { - "claims": [ - "Chuanying/Chuanying Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFfznI0Q": { - "claims": [ - "Prusa/Prusa Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFgSEwOZ": { - "claims": [ - "OrcaArena/OrcaArena Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFgSPtDn": { - "claims": [ - "MagicMaker/MM Generic PEEK" - ], - "successor": "OFz5oHgf" - }, - "OFgVJhVt": { - "claims": [ - "Tiertime/Tiertime Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFgcryz4": { - "claims": [ - "Ratrig/RatRig BigNozzle ASA" - ], - "successor": "OF4GM5qX" - }, - "OFgf4gZa": { - "claims": [ - "Flashforge/Flashforge PA" - ], - "successor": "OFEvEfw5" - }, - "OFgvOmM2": { - "claims": [ - "Anker/Anker Generic PETG", - "Anker/Anker Generic PETG 0.2 nozzle", - "Anker/Anker Generic PETG 0.25 nozzle" - ], - "successor": "OFYPdQJh" - }, - "OFhcrFw9": { - "claims": [ - "Creality/Creality Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFi7Bf0F": { - "claims": [ - "Flashforge/Flashforge ABS-CF" - ], - "successor": "OFYTIMbj" - }, - "OFiCHnso": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFiUSDih": { - "claims": [ - "Blocks/Blocks Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFifxPW1": { - "claims": [ - "DeltaMaker/DeltaMaker Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFiorRtJ": { - "claims": [ - "Blocks/Blocks Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFiuJSmy": { - "claims": [ - "Ratrig/RatRig BigNozzle PLA" - ], - "successor": "OFqFRiLb" - }, - "OFixgF4N": { - "claims": [ - "Flashforge/FusRock S-Multi" - ], - "successor": "OF0AquDh" - }, - "OFjoIVZ6": { - "claims": [ - "FlyingBear/FlyingBear Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFkUaDnU": { - "claims": [ - "Tiertime/Tiertime Generic PE-CF" - ], - "successor": "OFd0Fv0k" - }, - "OFkWaWRo": { - "claims": [ - "Sovol/Sovol SV06 Plus ACE TPU" - ], - "successor": "OFgbpcy9" - }, - "OFkYkQGO": { - "claims": [ - "Tiertime/Tiertime Generic PP-GF" - ], - "successor": "OFsijjtH" - }, - "OFkwIWwc": { - "claims": [ - "Flashforge/Flashforge PLA Color Change" - ], - "successor": "OFMkAW6r" - }, - "OFl2SXmv": { - "claims": [ - "Prusa/Prusa Generic FLEX" - ], - "successor": "OFbPuPKY" - }, - "OFl4ItvQ": { - "claims": [ - "Prusa/Prusa Generic PLA HF" - ], - "successor": "OFZr862X" - }, - "OFl7nOAf": { - "claims": [ - "Sovol/Sovol SV06 Plus ACE PETG" - ], - "successor": "OFYPdQJh" - }, - "OFlLmUeV": { - "claims": [ - "Ginger Additive/Ginger Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFlNWVr5": { - "claims": [ - "Flashforge/Flashforge Generic PETG-CF10" - ], - "successor": "OFO5djrM" - }, - "OFlXJxX1": { - "claims": [ - "Chuanying/Chuanying PETG" - ], - "successor": "OFYPdQJh" - }, - "OFlx52rn": { - "claims": [ - "Ratrig/RatRig Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFmQkb3c": { - "claims": [ - "Flashforge/Flashforge HS PLA Burnt Ti" - ], - "successor": "OF8O09RG" - }, - "OFma52eS": { - "claims": [ - "Blocks/Blocks Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFmexHIS": { - "claims": [ - "Ratrig/RatRig BigNozzle PETG" - ], - "successor": "OFvD0Qqt" - }, - "OFmhWhEf": { - "claims": [ - "Creality/Creality HF Generic PLA" - ], - "successor": "OFZr862X" - }, - "OFmnJNqY": { - "claims": [ - "OrcaArena/OrcaArena Generic PA" - ], - "successor": "OFg8ndtj" - }, - "OFmzftED": { - "claims": [ - "OrcaArena/OrcaArena Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFnMv3W5": { - "claims": [ - "Flashforge/Flashforge HS PLA" - ], - "successor": "OFIK2H3G" - }, - "OFndmfJ1": { - "claims": [ - "Anker/Anker Generic PLA", - "Anker/Anker Generic PLA 0.2 nozzle", - "Anker/Anker Generic PLA 0.25 nozzle" - ], - "successor": "OFDSrzZ8" - }, - "OFnfBvn5": { - "claims": [ - "Artillery/Artillery Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFnh79eM": { - "claims": [ - "SecKit/SecKit Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFoDgVnY": { - "claims": [ - "FLSun/FLSun S1 PLA Generic" - ], - "successor": "OFDSrzZ8" - }, - "OFoJcr46": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFoT8F7Y": { - "claims": [ - "Prusa/Prusa Generic PVA HF" - ], - "successor": "OFDwBwO5" - }, - "OFoVZg32": { - "claims": [ - "SecKit/SecKit Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OFodPDxO": { - "claims": [ - "Tiertime/Tiertime Generic PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OFogbnCb": { - "claims": [ - "Flashforge/FlashForge PPS-CF" - ], - "successor": "OFTSXxzE" - }, - "OFoqrHTw": { - "claims": [ - "FLSun/FLSun S1 PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OFp8gtPH": { - "claims": [ - "Creality/Creality Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFpAaY6w": { - "claims": [ - "Creality/Creality Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFpBV2Ma": { - "claims": [ - "Qidi/Tinmorry PETG-ECO" - ], - "successor": "OFYE7YZw" - }, - "OFpSYJLI": { - "claims": [ - "Creality/Creality Generic PLA Matte" - ], - "successor": "OFmY0l6t" - }, - "OFptvi3F": { - "claims": [ - "Tiertime/Tiertime Generic PPA-GF" - ], - "successor": "OF8Tlg47" - }, - "OFq5QANf": { - "claims": [ - "Prusa/Prusa Generic PC HF" - ], - "successor": "OFwwAQnA" - }, - "OFqKmLJe": { - "claims": [ - "Creality/Creality Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OFqOk9Ww": { - "claims": [ - "Peopoly/Peopoly Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFqS8fzK": { - "claims": [ - "SecKit/SecKit Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFrO2zyn": { - "claims": [ - "Creality/Creality Generic PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OFrQqCwL": { - "claims": [ - "InfiMech/InfiMech Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFrgGex8": { - "claims": [ - "Blocks/Blocks Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFrh4bBH": { - "claims": [ - "SecKit/SecKit Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFrnJJEa": { - "claims": [ - "Tiertime/Tiertime Generic EVA" - ], - "successor": "OFCD8qiU" - }, - "OFrnkURQ": { - "claims": [ - "Flashforge/Flashforge PLA Metal" - ], - "successor": "OFAebKg8" - }, - "OFrrMLDw": { - "claims": [ - "Flashforge/Flashforge Generic PLA-SILK" - ], - "successor": "OFkf1HHw" - }, - "OFs1sNLz": { - "claims": [ - "Chuanying/Chuanying ABS" - ], - "successor": "OFY9muEs" - }, - "OFs2ReMr": { - "claims": [ - "InfiMech/InfiMech Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFsCbVbN": { - "claims": [ - "Anker/Anker Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFsF96Gt": { - "claims": [ - "FLSun/FLSun Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFsGqI4y": { - "claims": [ - "Ginger Additive/Ginger Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFsNJjpc": { - "claims": [ - "Ratrig/RatRig BigNozzle TPU" - ], - "successor": "OF5tX6va" - }, - "OFsXOMoX": { - "claims": [ - "Qidi/Qidi Generic PLA+" - ], - "successor": "OFEWYR89" - }, - "OFsoQ12i": { - "claims": [ - "Comgrow/Comgrow Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFsxRSwr": { - "claims": [ - "Ratrig/RatRig Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFsxlLdo": { - "claims": [ - "Qidi/Qidi Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OFtP1rqJ": { - "claims": [ - "FLSun/FLSun Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFtTHNTj": { - "claims": [ - "Flashforge/Flashforge Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFtplX8o": { - "claims": [ - "Ratrig/RatRig BigNozzle ABS" - ], - "successor": "OFnyHfcv" - }, - "OFtsVp4v": { - "claims": [ - "SecKit/SecKit Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OFu79SUH": { - "claims": [ - "Qidi/Qidi Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFuFqYyG": { - "claims": [ - "Flashforge/Flashforge PAHT-CF" - ], - "successor": "OFKW5hEW" - }, - "OFuGRMNV": { - "claims": [ - "Flashforge/Flashforge PA-CF" - ], - "successor": "OFGxuI0n" - }, - "OFuSwKgm": { - "claims": [ - "Tiertime/Tiertime Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OFuUJyRx": { - "claims": [ - "FLSun/FLSun T1 PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFupq0tY": { - "claims": [ - "Blocks/Blocks Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFv4VZCd": { - "claims": [ - "Qidi/Qidi Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFvGc67v": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFvPomQf": { - "claims": [ - "Tiertime/Tiertime Generic PPS" - ], - "successor": "OFq9svOz" - }, - "OFvVxvzZ": { - "claims": [ - "Flashforge/Flashforge PLA Metal" - ], - "successor": "OFAebKg8" - }, - "OFwMFLAm": { - "claims": [ - "Artillery/Artillery Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFwpkvqf": { - "claims": [ - "OrcaArena/OrcaArena Generic PETG-CF" - ], - "successor": "OFoYSJKi" - }, - "OFwxpmHM": { - "claims": [ - "Flashforge/Polymaker Generic CoPA" - ], - "successor": "OFQyyO0l" - }, - "OFx0ZzFV": { - "claims": [ - "OrcaArena/OrcaArena Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OFxMGIPt": { - "claims": [ - "Flashforge/Flashforge PPS" - ], - "successor": "OFlgMgNM" - }, - "OFxTMg1d": { - "claims": [ - "FlyingBear/FlyingBear Generic PC" - ], - "successor": "OFLakOUI" - }, - "OFxg7n2G": { - "claims": [ - "Ratrig/RatRig Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFxvKuYW": { - "claims": [ - "Tiertime/Tiertime Generic PHA" - ], - "successor": "OF74KeQR" - }, - "OFy4ajVZ": { - "claims": [ - "Qidi/Qidi Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OFyCToOV": { - "claims": [ - "Sovol/Sovol SV08 TPU" - ], - "successor": "OFgbpcy9" - }, - "OFyFRojy": { - "claims": [ - "Ratrig/RatRig Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OFyK5Lt9": { - "claims": [ - "Artillery/Artillery Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFyeSq8A": { - "claims": [ - "Prusa/Prusa Generic ABS HF" - ], - "successor": "OF55jHAJ" - }, - "OFyySVby": { - "claims": [ - "SecKit/SecKit Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OFz3q5Xz": { - "claims": [ - "CONSTRUCT3D/C1 Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFzXURfo": { - "claims": [ - "FlyingBear/FlyingBear Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "OFzzmK2Q": { - "claims": [ - "FLSun/FLSun S1 ABS" - ], - "successor": "OFY9muEs" - }, - "OGFA00": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Basic" - ], - "successor": "OFoiVqVM" - }, - "OGFA01": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Matte" - ], - "successor": "OFXIbw5D" - }, - "OGFA02": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Metal" - ], - "successor": "OFrKLeE3" - }, - "OGFA03": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Impact" - ], - "successor": "OFTGHyNC" - }, - "OGFA05": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Silk" - ], - "successor": "OFEGNJD4" - }, - "OGFA06": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Silk+" - ], - "successor": "OFUanySo" - }, - "OGFA07": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Marble" - ], - "successor": "OF9OlTWH" - }, - "OGFA08": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Sparkle" - ], - "successor": "OFDxfPgH" - }, - "OGFA09": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Tough" - ], - "successor": "OFaQMgRH" - }, - "OGFA11": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Aero" - ], - "successor": "OFBSW57R" - }, - "OGFA12": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Glow" - ], - "successor": "OFEkPBwx" - }, - "OGFA13": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Dynamic" - ], - "successor": "OFDGigEI" - }, - "OGFA15": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Galaxy" - ], - "successor": "OFQ3e56w" - }, - "OGFA16": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA Wood" - ], - "successor": "OFMjtqTC" - }, - "OGFA50": { - "claims": [ - "OrcaFilamentLibrary/Bambu PLA-CF" - ], - "successor": "OFEswT5W" - }, - "OGFB00": { - "claims": [ - "OrcaFilamentLibrary/Bambu ABS" - ], - "successor": "OFhuaUQB" - }, - "OGFB01": { - "claims": [ - "OrcaFilamentLibrary/Bambu ASA" - ], - "successor": "OFfBpSRI" - }, - "OGFB02": { - "claims": [ - "OrcaFilamentLibrary/Bambu ASA-Aero" - ], - "successor": "OFXzQ4yL" - }, - "OGFB50": { - "claims": [ - "OrcaFilamentLibrary/Bambu ABS-GF" - ], - "successor": "OFknl9Iz" - }, - "OGFB51": { - "claims": [ - "OrcaFilamentLibrary/Bambu ASA-CF" - ], - "successor": "OF0wBGNx" - }, - "OGFB60": { - "claims": [ - "OrcaFilamentLibrary/PolyLite ABS" - ], - "successor": "OFOvv91M" - }, - "OGFB61": { - "claims": [ - "OrcaFilamentLibrary/PolyLite ASA" - ], - "successor": "OFvrXuV7" - }, - "OGFB98": { - "claims": [ - "Custom/Generic ASA", - "OrcaFilamentLibrary/Generic ASA" - ], - "successor": "OFLPAxz3" - }, - "OGFB99": { - "claims": [ - "Custom/Generic ABS", - "OrcaFilamentLibrary/Generic ABS", - "Sovol/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "OGFC00": { - "claims": [ - "OrcaFilamentLibrary/Bambu PC" - ], - "successor": "OFKhMPeX" - }, - "OGFC01": { - "claims": [ - "OrcaFilamentLibrary/Bambu PC FR" - ], - "successor": "OFg57Nmc" - }, - "OGFC99": { - "claims": [], - "successor": "OFLakOUI" - }, - "OGFG00": { - "claims": [ - "OrcaFilamentLibrary/Bambu PETG Basic" - ], - "successor": "OFFvzqcd" - }, - "OGFG01": { - "claims": [ - "OrcaFilamentLibrary/Bambu PETG Translucent" - ], - "successor": "OFwPrlCM" - }, - "OGFG02": { - "claims": [ - "OrcaFilamentLibrary/Bambu PETG HF" - ], - "successor": "OFovEIbw" - }, - "OGFG50": { - "claims": [ - "OrcaFilamentLibrary/Bambu PETG-CF" - ], - "successor": "OFTRZ8Y4" - }, - "OGFG60": { - "claims": [ - "OrcaFilamentLibrary/PolyLite PETG" - ], - "successor": "OF0UJcb6" - }, - "OGFG97": { - "claims": [ - "OrcaFilamentLibrary/Generic PCTG" - ], - "successor": "OFu1evlr" - }, - "OGFG99": { - "claims": [], - "successor": "OFYPdQJh" - }, - "OGFGG300": { - "claims": [ - "OrcaFilamentLibrary/GreenGate3D PETG" - ], - "successor": "OFhMO9Kh" - }, - "OGFL00": { - "claims": [ - "OrcaFilamentLibrary/PolyLite PLA" - ], - "successor": "OF5CgdDq" - }, - "OGFL00-1": { - "claims": [ - "OrcaFilamentLibrary/PolyTerra Dual PLA" - ], - "successor": "OFCccVrQ" - }, - "OGFL01": { - "claims": [ - "OrcaFilamentLibrary/PolyTerra PLA", - "Snapmaker/PolyTerra PLA" - ], - "successor": "OFW29a9R" - }, - "OGFL03": { - "claims": [ - "OrcaFilamentLibrary/eSUN PLA+" - ], - "successor": "OFqINlYj" - }, - "OGFL04": { - "claims": [ - "OrcaFilamentLibrary/Overture PLA" - ], - "successor": "OFc3xdm9" - }, - "OGFL05": { - "claims": [ - "OrcaFilamentLibrary/Overture Matte PLA" - ], - "successor": "OFBw6eEG" - }, - "OGFL06": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PETG-ESD" - ], - "successor": "OFcytyoA" - }, - "OGFL50": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PA6-CF" - ], - "successor": "OFkOviHk" - }, - "OGFL51": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PA6-GF" - ], - "successor": "OFwaYjL6" - }, - "OGFL52": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PA12-CF" - ], - "successor": "OFX0ycRQ" - }, - "OGFL53": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PA612-CF" - ], - "successor": "OFS2tn6G" - }, - "OGFL54": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PET-CF" - ], - "successor": "OFHWSM21" - }, - "OGFL55": { - "claims": [ - "OrcaFilamentLibrary/Fiberon PETG-rCF" - ], - "successor": "OFk8t9mz" - }, - "OGFL95": { - "claims": [ - "OrcaFilamentLibrary/Generic PLA High Speed" - ], - "successor": "OFmpMwxS" - }, - "OGFL96": { - "claims": [ - "Flashforge/Generic PLA Silk", - "Sovol/Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "OGFL98": { - "claims": [ - "OrcaFilamentLibrary/Generic PLA-CF" - ], - "successor": "OFWbdGsC" - }, - "OGFL99": { - "claims": [ - "Flashforge/Generic PLA", - "OrcaFilamentLibrary/Generic PLA", - "Sovol/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "OGFLC99": { - "claims": [ - "OrcaFilamentLibrary/Generic CoPE" - ], - "successor": "OFjt9en1" - }, - "OGFN03": { - "claims": [ - "OrcaFilamentLibrary/Bambu PA-CF" - ], - "successor": "OFFNYwWR" - }, - "OGFN04": { - "claims": [ - "OrcaFilamentLibrary/Bambu PAHT-CF" - ], - "successor": "OF2VFe4J" - }, - "OGFN05": { - "claims": [ - "OrcaFilamentLibrary/Bambu PA6-CF" - ], - "successor": "OFniMuTN" - }, - "OGFN06": { - "claims": [ - "OrcaFilamentLibrary/Bambu PPA-CF" - ], - "successor": "OF54B0S0" - }, - "OGFN08": { - "claims": [ - "OrcaFilamentLibrary/Bambu PA6-GF" - ], - "successor": "OFNk8bxk" - }, - "OGFN96": { - "claims": [ - "OrcaFilamentLibrary/Generic PPA-GF" - ], - "successor": "OF8Tlg47" - }, - "OGFN97": { - "claims": [ - "OrcaFilamentLibrary/Generic PPA-CF" - ], - "successor": "OF8tPByX" - }, - "OGFN98": { - "claims": [ - "Custom/Generic PA-CF", - "OrcaFilamentLibrary/Generic PA-CF" - ], - "successor": "OFQLcbps" - }, - "OGFN99": { - "claims": [], - "successor": "OFg8ndtj" - }, - "OGFNMK00": { - "claims": [ - "OrcaFilamentLibrary/Numakers PLA+" - ], - "successor": "OFqGRZyH" - }, - "OGFP97": { - "claims": [ - "OrcaFilamentLibrary/Generic PP" - ], - "successor": "OF1UNk9P" - }, - "OGFP99": { - "claims": [ - "OrcaFilamentLibrary/Generic PE" - ], - "successor": "OFPklMI1" - }, - "OGFPM001": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA" - ], - "successor": "OFsRDvTM" - }, - "OGFPM002": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Matte" - ], - "successor": "OFrOh600" - }, - "OGFPM003": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Marble" - ], - "successor": "OFKiSMWR" - }, - "OGFPM004": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Silk" - ], - "successor": "OFS8lTQt" - }, - "OGFPM005": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Satin" - ], - "successor": "OFPkCJKE" - }, - "OGFPM006": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Translucent" - ], - "successor": "OFCIUsWh" - }, - "OGFPM007": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Galaxy" - ], - "successor": "OFFkCLBl" - }, - "OGFPM008": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Celestial" - ], - "successor": "OFRiYgMK" - }, - "OGFPM009": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Starlight" - ], - "successor": "OFC78WGQ" - }, - "OGFPM010": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Glow" - ], - "successor": "OF0gGRWk" - }, - "OGFPM011": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Luminous" - ], - "successor": "OF0kCNDK" - }, - "OGFPM012": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Metallic" - ], - "successor": "OFjb0wos" - }, - "OGFPM013": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Neon" - ], - "successor": "OFO1GEq6" - }, - "OGFPM014": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA UV Shift" - ], - "successor": "OF1N1qMK" - }, - "OGFPM015": { - "claims": [ - "OrcaFilamentLibrary/Panchroma PLA Temp Shift" - ], - "successor": "OFhASRWj" - }, - "OGFPM016": { - "claims": [ - "OrcaFilamentLibrary/Panchroma CoPE" - ], - "successor": "OFqw2PQA" - }, - "OGFPM017": { - "claims": [ - "OrcaFilamentLibrary/Polymaker HT-PLA" - ], - "successor": "OFPoyiFs" - }, - "OGFPM018": { - "claims": [ - "OrcaFilamentLibrary/Polymaker HT-PLA-GF" - ], - "successor": "OFlwmqrC" - }, - "OGFPM019": { - "claims": [ - "OrcaFilamentLibrary/PolyLite PLA Pro" - ], - "successor": "OFF9OKoY" - }, - "OGFR00": { - "claims": [ - "OrcaFilamentLibrary/FusRock ABS-GF" - ], - "successor": "OFmn9NZL" - }, - "OGFR98": { - "claims": [ - "OrcaFilamentLibrary/Generic PHA" - ], - "successor": "OF74KeQR" - }, - "OGFR99": { - "claims": [ - "OrcaFilamentLibrary/Generic EVA" - ], - "successor": "OFCD8qiU" - }, - "OGFS00": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support W" - ], - "successor": "OFsHSVZc" - }, - "OGFS01": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support G" - ], - "successor": "OFQHiNJs" - }, - "OGFS02": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support For PLA" - ], - "successor": "OFAnyRUI" - }, - "OGFS03": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support For PA/PET" - ], - "successor": "OFMTK0UC" - }, - "OGFS04": { - "claims": [ - "OrcaFilamentLibrary/Bambu PVA" - ], - "successor": "OFzyIxba" - }, - "OGFS05": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support For PLA/PETG" - ], - "successor": "OFIfnzxC" - }, - "OGFS06": { - "claims": [ - "OrcaFilamentLibrary/Bambu Support for ABS" - ], - "successor": "OFf6mfQO" - }, - "OGFS97": { - "claims": [ - "Flashforge/Generic BVOH", - "OrcaFilamentLibrary/Generic BVOH" - ], - "successor": "OFo2UF2C" - }, - "OGFS98": { - "claims": [ - "OrcaFilamentLibrary/Generic HIPS" - ], - "successor": "OFsFon5l" - }, - "OGFS99": { - "claims": [ - "OrcaFilamentLibrary/Generic PVA" - ], - "successor": "OFDvXujf" - }, - "OGFSNL02": { - "claims": [ - "OrcaFilamentLibrary/SUNLU PLA Matte" - ], - "successor": "OFpW4gdi" - }, - "OGFSNL03": { - "claims": [ - "OrcaFilamentLibrary/SUNLU PLA+" - ], - "successor": "OFMUWNkp" - }, - "OGFSNL04": { - "claims": [ - "OrcaFilamentLibrary/SUNLU PLA+ 2.0" - ], - "successor": "OFHmPYRy" - }, - "OGFSNL05": { - "claims": [ - "OrcaFilamentLibrary/SUNLU Silk PLA+" - ], - "successor": "OFpPGSKG" - }, - "OGFSNL06": { - "claims": [ - "OrcaFilamentLibrary/SUNLU PLA Marble" - ], - "successor": "OFxUwUeW" - }, - "OGFSNL07": { - "claims": [ - "OrcaFilamentLibrary/SUNLU Wood PLA" - ], - "successor": "OFLJ8S6I" - }, - "OGFSNL08": { - "claims": [ - "Sovol/SUNLU PETG" - ], - "successor": "OF2GCW1l" - }, - "OGFT01": { - "claims": [ - "OrcaFilamentLibrary/Bambu PET-CF" - ], - "successor": "OFHa48An" - }, - "OGFT02": { - "claims": [], - "successor": null - }, - "OGFU00": { - "claims": [ - "OrcaFilamentLibrary/Bambu TPU 95A HF" - ], - "successor": "OFvKUnLh" - }, - "OGFU01": { - "claims": [ - "OrcaFilamentLibrary/Bambu TPU 95A" - ], - "successor": "OFVCkX5w" - }, - "OGFU99": { - "claims": [ - "OrcaFilamentLibrary/Generic TPU", - "Sovol/Generic TPU" - ], - "successor": "OFgbpcy9" - }, - "OVTABS08": { - "claims": [ - "OrcaFilamentLibrary/Overture ABS Basic" - ], - "successor": "OFDvqJ6n" - }, - "P1001": { - "claims": [ - "Creality/Panchroma PLA Satin" - ], - "successor": "OFPkCJKE" - }, - "P1002": { - "claims": [ - "Creality/PolySonic PLA Pro" - ], - "successor": "OFKbdiiJ" - }, - "P1003": { - "claims": [ - "Creality/Panchroma PLA Matte" - ], - "successor": "OFrOh600" - }, - "P1004": { - "claims": [ - "Creality/PolySonic PLA" - ], - "successor": "OF66KUAN" - }, - "P11851ba": { - "claims": [ - "Artillery/Artillery PET" - ], - "successor": "OFb5EEM3" - }, - "P284941e": { - "claims": [ - "Artillery/Artillery PETG", - "Artillery/Artillery PETG Basic" - ], - "successor": "OFilnglt" - }, - "P2fbf0c0": { - "claims": [ - "Artillery/Artillery TPU" - ], - "successor": "OFcJDtTx" - }, - "P39db358": { - "claims": [ - "Artillery/Artillery ABS" - ], - "successor": "OFgXgt98" - }, - "P510cfa0": { - "claims": [ - "Cubicon/Cubicon PLA" - ], - "successor": "OFEwRwmL" - }, - "P510cfa1": { - "claims": [ - "Cubicon/Cubicon PLA+" - ], - "successor": "OF7tt7DO" - }, - "P510cfa2": { - "claims": [ - "Cubicon/Cubicon PLAi21" - ], - "successor": "OFRhBryT" - }, - "P510cfb0": { - "claims": [ - "Cubicon/Cubicon ABS" - ], - "successor": "OFpDo5Ix" - }, - "P510cfb1": { - "claims": [ - "Cubicon/Cubicon ABS-A100" - ], - "successor": "OFy8tYJE" - }, - "P510cfb2": { - "claims": [ - "Cubicon/Cubicon ABSk" - ], - "successor": "OForhBi4" - }, - "P510cfc0": { - "claims": [ - "Cubicon/Cubicon PETG" - ], - "successor": "OFoBTKmn" - }, - "P510cfd0": { - "claims": [ - "Cubicon/Cubicon PA-CF" - ], - "successor": "OFiEz2XI" - }, - "P510eff9": { - "claims": [ - "Ginger Additive/Ginger Generic PETG" - ], - "successor": "OFsGqI4y" - }, - "P8163162": { - "claims": [ - "Artillery/Artillery PVA" - ], - "successor": "OFkx5MEe" - }, - "P87436f6": { - "claims": [ - "Artillery/Artillery ASA" - ], - "successor": "OF5YVJXH" - }, - "Pfcf9c4c": { - "claims": [ - "Artillery/Artillery PLA" - ], - "successor": "OFzY7N3Z" - }, - "Prusa Generic ABS @CORE One": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ABS @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusa Generic ABS" - ], - "successor": "OFvGc67v" - }, - "Prusa Generic ASA @CORE One": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic ASA @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusa Generic PETG @CORE One": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PETG @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusa Generic PETG" - ], - "successor": "OF1Id239" - }, - "Prusa Generic PLA @CORE One": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusa Generic PLA" - ], - "successor": "OFiCHnso" - }, - "Prusa Generic PLA Silk @CORE One": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Prusa Generic PLA Silk @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Prusa Generic PLA Silk @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic PLA Silk" - ], - "successor": "OFHFZ1Te" - }, - "Prusa Generic TPU @CORE One": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Prusa Generic TPU @CORE One 0.6": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Prusa Generic TPU @CORE One 0.8": { - "claims": [ - "Prusa/Prusa Generic TPU" - ], - "successor": "OFbenYUK" - }, - "Prusament ASA @CORE One": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One 0.6": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One 0.8": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusament ASA" - ], - "successor": "OFmFwUWM" - }, - "Prusament ASA @MK4S": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S 0.6": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S 0.8": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S HF0.4": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S HF0.5": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S HF0.6": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament ASA @MK4S HF0.8": { - "claims": [ - "Prusa/Prusa Generic ASA" - ], - "successor": "OFoJcr46" - }, - "Prusament PA-CF @CORE One": { - "claims": [ - "Prusa/Prusament PA-CF" - ], - "successor": "OF54SvEe" - }, - "Prusament PA-CF @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PA-CF" - ], - "successor": "OF54SvEe" - }, - "Prusament PA-CF @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PA-CF" - ], - "successor": "OF54SvEe" - }, - "Prusament PC Blend @CORE One": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC Blend @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusament PC Blend" - ], - "successor": "OFvDbkFq" - }, - "Prusament PC-CF @CORE One": { - "claims": [ - "Prusa/Prusament PC-CF" - ], - "successor": "OFjz0a3m" - }, - "Prusament PC-CF @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PC-CF" - ], - "successor": "OFjz0a3m" - }, - "Prusament PC-CF @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PC-CF" - ], - "successor": "OFjz0a3m" - }, - "Prusament PETG @CORE One": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PETG @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusament PETG" - ], - "successor": "OFkR8E2c" - }, - "Prusament PLA @CORE One": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One HF 0.4": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One HF 0.5": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One HF 0.6": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PLA @CORE One HF 0.8": { - "claims": [ - "Prusa/Prusament PLA" - ], - "successor": "OFnO4wnf" - }, - "Prusament PVB @CORE One": { - "claims": [ - "Prusa/Prusament PVB" - ], - "successor": "OFh7mvPO" - }, - "Prusament PVB @CORE One 0.6": { - "claims": [ - "Prusa/Prusament PVB" - ], - "successor": "OFh7mvPO" - }, - "Prusament PVB @CORE One 0.8": { - "claims": [ - "Prusa/Prusament PVB" - ], - "successor": "OFh7mvPO" - }, - "Prusament rPLA @CORE One": { - "claims": [ - "Prusa/Prusament rPLA" - ], - "successor": "OFWRITFw" - }, - "Prusament rPLA @CORE One 0.6": { - "claims": [ - "Prusa/Prusament rPLA" - ], - "successor": "OFWRITFw" - }, - "Prusament rPLA @CORE One 0.8": { - "claims": [ - "Prusa/Prusament rPLA" - ], - "successor": "OFWRITFw" - }, - "QD_0_1_1": { - "claims": [ - "Qidi/QIDI PLA Rapido" - ], - "successor": "OFKIQO2W" - }, - "QD_0_1_15": { - "claims": [ - "Qidi/QIDI TPU-GF" - ], - "successor": "OF9EHUKK" - }, - "QD_0_1_2": { - "claims": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "successor": "OF3IKafc" - }, - "QD_0_1_20": { - "claims": [ - "Qidi/QIDI ASA-CF" - ], - "successor": "OF1W7c76" - }, - "QD_0_1_24": { - "claims": [ - "Qidi/QIDI PA-Ultra" - ], - "successor": "OFlN6DL1" - }, - "QD_0_1_26": { - "claims": [ - "Qidi/QIDI UltraPA-CF25" - ], - "successor": "OF9PELEb" - }, - "QD_0_1_27": { - "claims": [ - "Qidi/QIDI PA12-CF" - ], - "successor": "OFn6WpN7" - }, - "QD_0_1_3": { - "claims": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "successor": "OFANFm4x" - }, - "QD_0_1_30": { - "claims": [ - "Qidi/QIDI PAHT-CF" - ], - "successor": "OFKgmsqE" - }, - "QD_0_1_31": { - "claims": [ - "Qidi/QIDI PAHT-GF" - ], - "successor": "OFo15hcT" - }, - "QD_0_1_32": { - "claims": [ - "Qidi/QIDI Support For PAHT" - ], - "successor": "OFXn3Vd9" - }, - "QD_0_1_33": { - "claims": [ - "Qidi/QIDI Support For PET/PA" - ], - "successor": "OFqcL5UF" - }, - "QD_0_1_34": { - "claims": [ - "Qidi/Qidi PC-ABS-FR" - ], - "successor": "OFjD3YTW" - }, - "QD_0_1_36": { - "claims": [ - "Qidi/QIDI PEBA 95A" - ], - "successor": "OFhiJE7Y" - }, - "QD_0_1_37": { - "claims": [ - "Qidi/QIDI PET-CF" - ], - "successor": "OFKfJTwL" - }, - "QD_0_1_38": { - "claims": [ - "Qidi/QIDI PET-GF" - ], - "successor": "OFhx4uOG" - }, - "QD_0_1_39": { - "claims": [ - "Qidi/QIDI PETG Basic" - ], - "successor": "OFuJ49uH" - }, - "QD_0_1_4": { - "claims": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "successor": "OFW5FqkL" - }, - "QD_0_1_40": { - "claims": [ - "Qidi/QIDI PETG Tough" - ], - "successor": "OFQ40XeN" - }, - "QD_0_1_41": { - "claims": [ - "Qidi/QIDI PETG Rapido" - ], - "successor": "OF4S3To3" - }, - "QD_0_1_42": { - "claims": [ - "Qidi/QIDI PETG-CF" - ], - "successor": "OF4iWKrE" - }, - "QD_0_1_43": { - "claims": [ - "Qidi/QIDI PETG-GF" - ], - "successor": "OFdtPd9h" - }, - "QD_0_1_44": { - "claims": [ - "Qidi/QIDI PPS-CF" - ], - "successor": "OFZOuWrO" - }, - "QD_0_1_45": { - "claims": [ - "Qidi/QIDI PETG Translucent" - ], - "successor": "OFf0MkD5" - }, - "QD_0_1_46": { - "claims": [ - "Qidi/QIDI PPS-GF" - ], - "successor": "OFp57RRC" - }, - "QD_0_1_49": { - "claims": [ - "Qidi/QIDI TPU-Aero" - ], - "successor": "OFMDHOcT" - }, - "QD_0_1_5": { - "claims": [ - "Qidi/QIDI PLA-CF" - ], - "successor": "OFhWrAuP" - }, - "QD_0_1_50": { - "claims": [ - "Qidi/Qidi TPU 95A-HF" - ], - "successor": "OFzAWsca" - }, - "QD_0_1_6": { - "claims": [ - "Qidi/QIDI WOOD Rapido" - ], - "successor": "OFvdZ2bx" - }, - "QD_0_1_7": { - "claims": [ - "Qidi/QIDI PLA Basic" - ], - "successor": "OF4nQ62r" - }, - "QD_0_1_8": { - "claims": [ - "Qidi/QIDI PLA Matte Basic" - ], - "successor": "OFughwKn" - }, - "QD_1_0_1": { - "claims": [ - "Qidi/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "QD_1_0_11": { - "claims": [ - "Qidi/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "QD_1_0_23": { - "claims": [ - "Qidi/Generic PC" - ], - "successor": "OFLakOUI" - }, - "QD_1_0_4": { - "claims": [ - "Qidi/Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "QD_1_0_41": { - "claims": [ - "Qidi/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "QD_1_0_50": { - "claims": [ - "Qidi/Generic TPU 95A" - ], - "successor": "OFjiXpyf" - }, - "QD_1_1_1": { - "claims": [ - "Qidi/QIDI PLA Rapido" - ], - "successor": "OFKIQO2W" - }, - "QD_1_1_11": { - "claims": [ - "Qidi/QIDI ABS Rapido" - ], - "successor": "OFT2jon4" - }, - "QD_1_1_12": { - "claims": [ - "Qidi/QIDI ABS-GF" - ], - "successor": "OFt3HtlG" - }, - "QD_1_1_13": { - "claims": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "successor": "OFeCJqxx" - }, - "QD_1_1_14": { - "claims": [ - "Qidi/QIDI ABS Odorless" - ], - "successor": "OFma5TXH" - }, - "QD_1_1_15": { - "claims": [ - "Qidi/QIDI TPU-GF" - ], - "successor": "OF9EHUKK" - }, - "QD_1_1_18": { - "claims": [ - "Qidi/QIDI ASA" - ], - "successor": "OFTsHNQi" - }, - "QD_1_1_19": { - "claims": [ - "Qidi/QIDI ASA-Aero" - ], - "successor": "OFu1E4ur" - }, - "QD_1_1_2": { - "claims": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "successor": "OF3IKafc" - }, - "QD_1_1_20": { - "claims": [ - "Qidi/QIDI ASA-CF" - ], - "successor": "OF1W7c76" - }, - "QD_1_1_24": { - "claims": [ - "Qidi/QIDI UltraPA" - ], - "successor": "OFWDe7YH" - }, - "QD_1_1_26": { - "claims": [ - "Qidi/QIDI UltraPA-CF25" - ], - "successor": "OF9PELEb" - }, - "QD_1_1_27": { - "claims": [ - "Qidi/QIDI PA12-CF" - ], - "successor": "OFn6WpN7" - }, - "QD_1_1_3": { - "claims": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "successor": "OFANFm4x" - }, - "QD_1_1_30": { - "claims": [ - "Qidi/QIDI PAHT-CF" - ], - "successor": "OFKgmsqE" - }, - "QD_1_1_31": { - "claims": [ - "Qidi/QIDI PAHT-GF" - ], - "successor": "OFo15hcT" - }, - "QD_1_1_32": { - "claims": [ - "Qidi/QIDI Support For PAHT" - ], - "successor": "OFXn3Vd9" - }, - "QD_1_1_33": { - "claims": [ - "Qidi/QIDI Support For PET/PA" - ], - "successor": "OFqcL5UF" - }, - "QD_1_1_34": { - "claims": [ - "Qidi/QIDI PC-ABS-FR" - ], - "successor": "OFFAWVf0" - }, - "QD_1_1_36": { - "claims": [ - "Qidi/QIDI PEBA 95A" - ], - "successor": "OFhiJE7Y" - }, - "QD_1_1_37": { - "claims": [ - "Qidi/QIDI PET-CF" - ], - "successor": "OFKfJTwL" - }, - "QD_1_1_38": { - "claims": [ - "Qidi/QIDI PET-GF" - ], - "successor": "OFhx4uOG" - }, - "QD_1_1_39": { - "claims": [ - "Qidi/QIDI PETG Basic" - ], - "successor": "OFuJ49uH" - }, - "QD_1_1_4": { - "claims": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "successor": "OFW5FqkL" - }, - "QD_1_1_40": { - "claims": [ - "Qidi/QIDI PETG Tough" - ], - "successor": "OFQ40XeN" - }, - "QD_1_1_41": { - "claims": [ - "Qidi/QIDI PETG Rapido" - ], - "successor": "OF4S3To3" - }, - "QD_1_1_42": { - "claims": [ - "Qidi/QIDI PETG-CF" - ], - "successor": "OF4iWKrE" - }, - "QD_1_1_43": { - "claims": [ - "Qidi/QIDI PETG-GF" - ], - "successor": "OFdtPd9h" - }, - "QD_1_1_44": { - "claims": [ - "Qidi/QIDI PPS-CF" - ], - "successor": "OFZOuWrO" - }, - "QD_1_1_45": { - "claims": [ - "Qidi/QIDI PETG Translucent" - ], - "successor": "OFf0MkD5" - }, - "QD_1_1_46": { - "claims": [ - "Qidi/QIDI PPS-GF" - ], - "successor": "OFp57RRC" - }, - "QD_1_1_49": { - "claims": [ - "Qidi/QIDI TPU-Aero" - ], - "successor": "OFMDHOcT" - }, - "QD_1_1_5": { - "claims": [ - "Qidi/QIDI PLA-CF" - ], - "successor": "OFhWrAuP" - }, - "QD_1_1_50": { - "claims": [ - "Qidi/QIDI TPU 95A-HF" - ], - "successor": "OFR1XLMN" - }, - "QD_1_1_6": { - "claims": [ - "Qidi/QIDI WOOD Rapido" - ], - "successor": "OFvdZ2bx" - }, - "QD_1_1_7": { - "claims": [ - "Qidi/QIDI PLA Basic" - ], - "successor": "OF4nQ62r" - }, - "QD_1_1_8": { - "claims": [ - "Qidi/QIDI PLA Matte Basic" - ], - "successor": "OFughwKn" - }, - "QD_2_0_1": { - "claims": [ - "Qidi/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "QD_2_0_11": { - "claims": [ - "Qidi/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "QD_2_0_23": { - "claims": [ - "Qidi/Generic PC" - ], - "successor": "OFLakOUI" - }, - "QD_2_0_4": { - "claims": [ - "Qidi/Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "QD_2_0_41": { - "claims": [ - "Qidi/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "QD_2_0_50": { - "claims": [ - "Qidi/Generic TPU 95A" - ], - "successor": "OFjiXpyf" - }, - "QD_2_1_1": { - "claims": [ - "Qidi/QIDI PLA Rapido" - ], - "successor": "OFKIQO2W" - }, - "QD_2_1_11": { - "claims": [ - "Qidi/QIDI ABS Rapido" - ], - "successor": "OFT2jon4" - }, - "QD_2_1_12": { - "claims": [ - "Qidi/QIDI ABS-GF" - ], - "successor": "OFt3HtlG" - }, - "QD_2_1_13": { - "claims": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "successor": "OFeCJqxx" - }, - "QD_2_1_14": { - "claims": [ - "Qidi/QIDI ABS Odorless" - ], - "successor": "OFma5TXH" - }, - "QD_2_1_15": { - "claims": [ - "Qidi/QIDI TPU-GF" - ], - "successor": "OF9EHUKK" - }, - "QD_2_1_18": { - "claims": [ - "Qidi/QIDI ASA" - ], - "successor": "OFTsHNQi" - }, - "QD_2_1_19": { - "claims": [ - "Qidi/QIDI ASA-Aero" - ], - "successor": "OFu1E4ur" - }, - "QD_2_1_2": { - "claims": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "successor": "OF3IKafc" - }, - "QD_2_1_20": { - "claims": [ - "Qidi/QIDI ASA-CF" - ], - "successor": "OF1W7c76" - }, - "QD_2_1_24": { - "claims": [ - "Qidi/QIDI UltraPA" - ], - "successor": "OFWDe7YH" - }, - "QD_2_1_26": { - "claims": [ - "Qidi/QIDI UltraPA-CF25" - ], - "successor": "OF9PELEb" - }, - "QD_2_1_27": { - "claims": [ - "Qidi/QIDI PA12-CF" - ], - "successor": "OFn6WpN7" - }, - "QD_2_1_3": { - "claims": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "successor": "OFANFm4x" - }, - "QD_2_1_30": { - "claims": [ - "Qidi/QIDI PAHT-CF" - ], - "successor": "OFKgmsqE" - }, - "QD_2_1_31": { - "claims": [ - "Qidi/QIDI PAHT-GF" - ], - "successor": "OFo15hcT" - }, - "QD_2_1_32": { - "claims": [ - "Qidi/QIDI Support For PAHT" - ], - "successor": "OFXn3Vd9" - }, - "QD_2_1_33": { - "claims": [ - "Qidi/QIDI Support For PET/PA" - ], - "successor": "OFqcL5UF" - }, - "QD_2_1_34": { - "claims": [ - "Qidi/QIDI PC-ABS-FR" - ], - "successor": "OFFAWVf0" - }, - "QD_2_1_36": { - "claims": [ - "Qidi/QIDI PEBA 95A" - ], - "successor": "OFhiJE7Y" - }, - "QD_2_1_37": { - "claims": [ - "Qidi/QIDI PET-CF" - ], - "successor": "OFKfJTwL" - }, - "QD_2_1_38": { - "claims": [ - "Qidi/QIDI PET-GF" - ], - "successor": "OFhx4uOG" - }, - "QD_2_1_39": { - "claims": [ - "Qidi/QIDI PETG Basic" - ], - "successor": "OFuJ49uH" - }, - "QD_2_1_4": { - "claims": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "successor": "OFW5FqkL" - }, - "QD_2_1_40": { - "claims": [ - "Qidi/QIDI PETG Tough" - ], - "successor": "OFQ40XeN" - }, - "QD_2_1_41": { - "claims": [ - "Qidi/QIDI PETG Rapido" - ], - "successor": "OF4S3To3" - }, - "QD_2_1_42": { - "claims": [ - "Qidi/QIDI PETG-CF" - ], - "successor": "OF4iWKrE" - }, - "QD_2_1_43": { - "claims": [ - "Qidi/QIDI PETG-GF" - ], - "successor": "OFdtPd9h" - }, - "QD_2_1_44": { - "claims": [ - "Qidi/QIDI PPS-CF" - ], - "successor": "OFZOuWrO" - }, - "QD_2_1_45": { - "claims": [ - "Qidi/QIDI PETG Translucent" - ], - "successor": "OFf0MkD5" - }, - "QD_2_1_46": { - "claims": [ - "Qidi/QIDI PPS-GF" - ], - "successor": "OFp57RRC" - }, - "QD_2_1_49": { - "claims": [ - "Qidi/QIDI TPU-Aero" - ], - "successor": "OFMDHOcT" - }, - "QD_2_1_5": { - "claims": [ - "Qidi/QIDI PLA-CF" - ], - "successor": "OFhWrAuP" - }, - "QD_2_1_50": { - "claims": [ - "Qidi/QIDI TPU 95A-HF" - ], - "successor": "OFR1XLMN" - }, - "QD_2_1_6": { - "claims": [ - "Qidi/QIDI WOOD Rapido" - ], - "successor": "OFvdZ2bx" - }, - "QD_2_1_7": { - "claims": [ - "Qidi/QIDI PLA Basic" - ], - "successor": "OF4nQ62r" - }, - "QD_2_1_8": { - "claims": [ - "Qidi/QIDI PLA Matte Basic" - ], - "successor": "OFughwKn" - }, - "QD_3_0_1": { - "claims": [ - "Qidi/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "QD_3_0_11": { - "claims": [ - "Qidi/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "QD_3_0_23": { - "claims": [ - "Qidi/Generic PC" - ], - "successor": "OFLakOUI" - }, - "QD_3_0_4": { - "claims": [ - "Qidi/Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "QD_3_0_41": { - "claims": [ - "Qidi/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "QD_3_0_50": { - "claims": [ - "Qidi/Generic TPU 95A" - ], - "successor": "OFjiXpyf" - }, - "QD_3_1_1": { - "claims": [ - "Qidi/QIDI PLA Rapido" - ], - "successor": "OFKIQO2W" - }, - "QD_3_1_11": { - "claims": [ - "Qidi/QIDI ABS Rapido" - ], - "successor": "OFT2jon4" - }, - "QD_3_1_12": { - "claims": [ - "Qidi/QIDI ABS-GF" - ], - "successor": "OFt3HtlG" - }, - "QD_3_1_13": { - "claims": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "successor": "OFeCJqxx" - }, - "QD_3_1_14": { - "claims": [ - "Qidi/QIDI ABS Odorless" - ], - "successor": "OFma5TXH" - }, - "QD_3_1_15": { - "claims": [ - "Qidi/QIDI TPU-GF" - ], - "successor": "OF9EHUKK" - }, - "QD_3_1_18": { - "claims": [ - "Qidi/QIDI ASA" - ], - "successor": "OFTsHNQi" - }, - "QD_3_1_19": { - "claims": [ - "Qidi/QIDI ASA-Aero" - ], - "successor": "OFu1E4ur" - }, - "QD_3_1_2": { - "claims": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "successor": "OF3IKafc" - }, - "QD_3_1_20": { - "claims": [ - "Qidi/QIDI ASA-CF" - ], - "successor": "OF1W7c76" - }, - "QD_3_1_24": { - "claims": [ - "Qidi/QIDI UltraPA" - ], - "successor": "OFWDe7YH" - }, - "QD_3_1_26": { - "claims": [ - "Qidi/QIDI UltraPA-CF25" - ], - "successor": "OF9PELEb" - }, - "QD_3_1_27": { - "claims": [ - "Qidi/QIDI PA12-CF" - ], - "successor": "OFn6WpN7" - }, - "QD_3_1_3": { - "claims": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "successor": "OFANFm4x" - }, - "QD_3_1_30": { - "claims": [ - "Qidi/QIDI PAHT-CF" - ], - "successor": "OFKgmsqE" - }, - "QD_3_1_31": { - "claims": [ - "Qidi/QIDI PAHT-GF" - ], - "successor": "OFo15hcT" - }, - "QD_3_1_32": { - "claims": [ - "Qidi/QIDI Support For PAHT" - ], - "successor": "OFXn3Vd9" - }, - "QD_3_1_33": { - "claims": [ - "Qidi/QIDI Support For PET/PA" - ], - "successor": "OFqcL5UF" - }, - "QD_3_1_34": { - "claims": [ - "Qidi/QIDI PC/ABS-FR" - ], - "successor": "OFDIrhbu" - }, - "QD_3_1_36": { - "claims": [ - "Qidi/QIDI PEBA 95A" - ], - "successor": "OFhiJE7Y" - }, - "QD_3_1_37": { - "claims": [ - "Qidi/QIDI PET-CF" - ], - "successor": "OFKfJTwL" - }, - "QD_3_1_38": { - "claims": [ - "Qidi/QIDI PET-GF" - ], - "successor": "OFhx4uOG" - }, - "QD_3_1_39": { - "claims": [ - "Qidi/QIDI PETG Basic" - ], - "successor": "OFuJ49uH" - }, - "QD_3_1_4": { - "claims": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "successor": "OFW5FqkL" - }, - "QD_3_1_40": { - "claims": [ - "Qidi/QIDI PETG Tough" - ], - "successor": "OFQ40XeN" - }, - "QD_3_1_41": { - "claims": [ - "Qidi/QIDI PETG Rapido" - ], - "successor": "OF4S3To3" - }, - "QD_3_1_42": { - "claims": [ - "Qidi/QIDI PETG-CF" - ], - "successor": "OF4iWKrE" - }, - "QD_3_1_43": { - "claims": [ - "Qidi/QIDI PETG-GF" - ], - "successor": "OFdtPd9h" - }, - "QD_3_1_44": { - "claims": [ - "Qidi/QIDI PPS-CF" - ], - "successor": "OFZOuWrO" - }, - "QD_3_1_45": { - "claims": [ - "Qidi/QIDI PETG Translucent" - ], - "successor": "OFf0MkD5" - }, - "QD_3_1_46": { - "claims": [ - "Qidi/QIDI PPS-GF" - ], - "successor": "OFp57RRC" - }, - "QD_3_1_49": { - "claims": [ - "Qidi/QIDI TPU-Aero" - ], - "successor": "OFMDHOcT" - }, - "QD_3_1_5": { - "claims": [ - "Qidi/QIDI PLA-CF" - ], - "successor": "OFhWrAuP" - }, - "QD_3_1_50": { - "claims": [ - "Qidi/QIDI TPU 95A-HF" - ], - "successor": "OFR1XLMN" - }, - "QD_3_1_6": { - "claims": [ - "Qidi/QIDI WOOD Rapido" - ], - "successor": "OFvdZ2bx" - }, - "QD_3_1_7": { - "claims": [ - "Qidi/QIDI PLA Basic" - ], - "successor": "OF4nQ62r" - }, - "QD_3_1_8": { - "claims": [ - "Qidi/QIDI PLA Matte Basic" - ], - "successor": "OFughwKn" - }, - "QD_4_0_1": { - "claims": [ - "Qidi/Generic PLA" - ], - "successor": "OFDSrzZ8" - }, - "QD_4_0_11": { - "claims": [ - "Qidi/Generic ABS" - ], - "successor": "OFY9muEs" - }, - "QD_4_0_23": { - "claims": [ - "Qidi/Generic PC" - ], - "successor": "OFLakOUI" - }, - "QD_4_0_4": { - "claims": [ - "Qidi/Generic PLA Silk" - ], - "successor": "OFesA6rF" - }, - "QD_4_0_41": { - "claims": [ - "Qidi/Generic PETG" - ], - "successor": "OFYPdQJh" - }, - "QD_4_0_50": { - "claims": [ - "Qidi/Generic TPU 95A" - ], - "successor": "OFjiXpyf" - }, - "QD_4_1_1": { - "claims": [ - "Qidi/QIDI PLA Rapido" - ], - "successor": "OFKIQO2W" - }, - "QD_4_1_11": { - "claims": [ - "Qidi/QIDI ABS Rapido" - ], - "successor": "OFT2jon4" - }, - "QD_4_1_12": { - "claims": [ - "Qidi/QIDI ABS-GF" - ], - "successor": "OFt3HtlG" - }, - "QD_4_1_13": { - "claims": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "successor": "OFeCJqxx" - }, - "QD_4_1_14": { - "claims": [ - "Qidi/QIDI ABS Odorless" - ], - "successor": "OFma5TXH" - }, - "QD_4_1_15": { - "claims": [ - "Qidi/QIDI TPU-GF" - ], - "successor": "OF9EHUKK" - }, - "QD_4_1_18": { - "claims": [ - "Qidi/QIDI ASA" - ], - "successor": "OFTsHNQi" - }, - "QD_4_1_19": { - "claims": [ - "Qidi/QIDI ASA-Aero" - ], - "successor": "OFu1E4ur" - }, - "QD_4_1_2": { - "claims": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "successor": "OF3IKafc" - }, - "QD_4_1_20": { - "claims": [ - "Qidi/QIDI ASA-CF" - ], - "successor": "OF1W7c76" - }, - "QD_4_1_24": { - "claims": [ - "Qidi/QIDI UltraPA" - ], - "successor": "OFWDe7YH" - }, - "QD_4_1_25": { - "claims": [ - "Qidi/QIDI PA6-CF" - ], - "successor": "OFZ3K2cL" - }, - "QD_4_1_26": { - "claims": [ - "Qidi/QIDI UltraPA-CF25" - ], - "successor": "OF9PELEb" - }, - "QD_4_1_27": { - "claims": [ - "Qidi/QIDI PA12-CF" - ], - "successor": "OFn6WpN7" - }, - "QD_4_1_3": { - "claims": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "successor": "OFANFm4x" - }, - "QD_4_1_30": { - "claims": [ - "Qidi/QIDI PAHT-CF" - ], - "successor": "OFKgmsqE" - }, - "QD_4_1_31": { - "claims": [ - "Qidi/QIDI PAHT-GF" - ], - "successor": "OFo15hcT" - }, - "QD_4_1_32": { - "claims": [ - "Qidi/QIDI Support For PAHT" - ], - "successor": "OFXn3Vd9" - }, - "QD_4_1_33": { - "claims": [ - "Qidi/QIDI Support For PET/PA" - ], - "successor": "OFqcL5UF" - }, - "QD_4_1_34": { - "claims": [ - "Qidi/QIDI PC/ABS-FR" - ], - "successor": "OFDIrhbu" - }, - "QD_4_1_36": { - "claims": [ - "Qidi/QIDI PEBA 95A" - ], - "successor": "OFhiJE7Y" - }, - "QD_4_1_37": { - "claims": [ - "Qidi/QIDI PET-CF" - ], - "successor": "OFKfJTwL" - }, - "QD_4_1_38": { - "claims": [ - "Qidi/QIDI PET-GF" - ], - "successor": "OFhx4uOG" - }, - "QD_4_1_39": { - "claims": [ - "Qidi/QIDI PETG Basic" - ], - "successor": "OFuJ49uH" - }, - "QD_4_1_4": { - "claims": [ - "Qidi/QIDI PLA Silk" - ], - "successor": "OF2TQpOO" - }, - "QD_4_1_40": { - "claims": [ - "Qidi/QIDI PETG Tough" - ], - "successor": "OFQ40XeN" - }, - "QD_4_1_41": { - "claims": [ - "Qidi/QIDI PETG Rapido" - ], - "successor": "OF4S3To3" - }, - "QD_4_1_42": { - "claims": [ - "Qidi/QIDI PETG-CF" - ], - "successor": "OF4iWKrE" - }, - "QD_4_1_43": { - "claims": [ - "Qidi/QIDI PETG-GF" - ], - "successor": "OFdtPd9h" - }, - "QD_4_1_44": { - "claims": [ - "Qidi/QIDI PPS-CF" - ], - "successor": "OFZOuWrO" - }, - "QD_4_1_45": { - "claims": [ - "Qidi/QIDI PETG Translucent" - ], - "successor": "OFf0MkD5" - }, - "QD_4_1_46": { - "claims": [ - "Qidi/QIDI PPS-GF" - ], - "successor": "OFp57RRC" - }, - "QD_4_1_49": { - "claims": [ - "Qidi/QIDI TPU-Aero" - ], - "successor": "OFMDHOcT" - }, - "QD_4_1_5": { - "claims": [ - "Qidi/QIDI PLA-CF" - ], - "successor": "OFhWrAuP" - }, - "QD_4_1_50": { - "claims": [ - "Qidi/QIDI TPU 95A-HF" - ], - "successor": "OFR1XLMN" - }, - "QD_4_1_6": { - "claims": [ - "Qidi/QIDI WOOD Rapido" - ], - "successor": "OFvdZ2bx" - }, - "QD_4_1_7": { - "claims": [ - "Qidi/QIDI PLA Basic" - ], - "successor": "OF4nQ62r" - }, - "QD_4_1_8": { - "claims": [ - "Qidi/QIDI PLA Matte Basic" - ], - "successor": "OFughwKn" - }, - "SMCFB001": { - "claims": [ - "SeeMeCNC/SeeMeCNC ABS" - ], - "successor": "OFR0gODA" - }, - "SMCFG001": { - "claims": [ - "SeeMeCNC/SeeMeCNC PETG" - ], - "successor": "OFxDHUX8" - }, - "SMCFG002": { - "claims": [ - "SeeMeCNC/SeeMeCNC PETG-CF" - ], - "successor": "OFaRjiIm" - }, - "SMCFL001": { - "claims": [ - "SeeMeCNC/SeeMeCNC PLA" - ], - "successor": "OFbSChKb" - }, - "SMCFN001": { - "claims": [ - "SeeMeCNC/SeeMeCNC PA-CF" - ], - "successor": "OF0b7M1z" - }, - "SMCFU001": { - "claims": [ - "SeeMeCNC/SeeMeCNC TPU" - ], - "successor": "OFyFyLIp" - }, - "VLMNT01": { - "claims": [ - "OrcaFilamentLibrary/Valment PLA" - ], - "successor": "OFDe8uyM" - }, - "VLMNT02": { - "claims": [ - "OrcaFilamentLibrary/Valment PLA Silk" - ], - "successor": "OFpBlrvY" - }, - "VLMNT03": { - "claims": [ - "OrcaFilamentLibrary/Valment PLA-CF" - ], - "successor": "OFfq5YXA" - }, - "VLMNT04": { - "claims": [ - "OrcaFilamentLibrary/Valment PLA Galaxy" - ], - "successor": "OFB5SmWk" - } - } -} diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 34ff667ed0..46a138253c 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -1,9 +1,9 @@ #!/usr/bin/env python3 """ Mint deterministic filament_id values for OrcaSlicer system filament products and -validate the tree against the sanctioned-state ledger. +validate the tree against the sanctioned-state snapshot. -Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan_v3.md): +Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md): * filament_id is a PRODUCT id: one commercial product line = one id, shared by all of that material's per-printer/per-nozzle variants in every bundle. OrcaFilamentLibrary (OFL) is the product catalog: a family's id is declared @@ -19,34 +19,22 @@ Policy (companion to assign_vendor_setting_ids.py; see filament_id_plan_v3.md): filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, "filament_product/<filament_vendor>/<filament_type>/<family_name>") ) 8 chars total, which satisfies the AMS length limit. Nobody invents ids by - hand; on the astronomically rare collision with any existing or retired id - the input is salted ("/1", "/2", ...) until free and the result is frozen - in file. Identity changes (a family rename, a filament_vendor/filament_type - fix) change the id BY DESIGN — the succession ledger keeps old ids - resolving. + hand; on the astronomically rare collision with an existing id the input + is salted ("/1", "/2", ...) until free and the result is frozen in file. + Identity changes (a family rename, a filament_vendor/filament_type fix) + change the id BY DESIGN. * Reserved id spaces that are never minted into or altered: - GF* Bambu AMS/RFID catalog (vendor BBL untouchable) - - QD_* Qidi device protocol (dissolved island, plan v4: - every shipped QD_* id is retired in the ledger and - the QidiPrinterAgent translates device-composed - QD_* ids through the succession walk; no preset - may ever declare one again) + - QD_* Qidi device protocol: the box composes these ids + at runtime, they are not preset ids, and no + preset may declare one - P + 7 hex chars (case-insensitive) and the literal "null" user-custom presets (CreatePresetsDialog.cpp) - every already-shipped id, grandfathered via scripts/filament_id_snapshot.json - * scripts/filament_id_snapshot.json is the sanctioned-state ledger (ids, + * scripts/filament_id_snapshot.json is the sanctioned-state snapshot (ids, claims and declared triples): it must exactly equal the tree-derived state at all times, so any id/claim/triple change shows up as a reviewable diff to - that file (the maintainer gate). Ids that fully vanish from the tree are - appended to the SHIPPED succession ledger - resources/profiles/retired_filament_ids.json as - {"claims": [...], "successor": <id|null>} — successor picked by the mode - rule over the vanished id's old claims — and the runtime follows those - chains (plus cross-island "hints" for ids Orca cannot retire, e.g. GF*) - on resolution miss. A retired id may never be used again for anything. - Vanished ids in a FOREIGN island's space (GF*) are released with a - hint instead of retired: the island's catalog owns them and may - legitimately (re)ship them. + that file (the maintainer gate). The effective-id resolution below is loader-faithful (PresetBundle.cpp load_vendor_configs_from_json): own filament_id key, else walk `inherits` within @@ -59,16 +47,7 @@ Run from anywhere: python3 scripts/assign_filament_ids.py rewrites a valid existing id; a no-op on a fully-idded tree --mint "Vendor/Type/Family" print the id that triple would mint; touches nothing - --update-snapshot regenerate the snapshot from the tree; retire vanished ids - with a mode-rule successor (--forget-never-shipped FILE - drops listed never-shipped ids from lineage instead) - --add-hint "OLD=NEW" - record a cross-island succession hint (standalone) - --retire "OLD=NEW" - retire a vanished non-island shipped id with an explicit - successor (standalone; for lineage the claim vote can no - longer see because the claims migrated while another - declarer kept the id alive) + --update-snapshot regenerate the snapshot from the tree --remint VENDOR re-derive VENDOR's declared ids from their triples and rewrite mismatches in place (repeatable) --drop-redundant-ids VENDOR @@ -96,10 +75,6 @@ FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) PROFILES_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "resources", "profiles")) SNAPSHOT_PATH = os.path.join(SCRIPTS_DIR, "filament_id_snapshot.json") -# The succession ledger ships with the app (resources/) so the runtime can -# follow retired->successor chains and cross-island hints on resolution miss. -RETIRED_PATH = os.path.join(PROFILES_DIR, "retired_filament_ids.json") -RETIRED_REL = "resources/profiles/retired_filament_ids.json" OFL = "OrcaFilamentLibrary" @@ -171,7 +146,7 @@ def generate_filament_id(filament_vendor, filament_type, family, salt=0): def mint_filament_id(filament_vendor, filament_type, family, taken): - """Mint the product's id, salting past any id in `taken` (existing + retired).""" + """Mint the product's id, salting past any id in `taken`.""" for salt in range(10000): candidate = generate_filament_id(filament_vendor, filament_type, family, salt) if candidate not in taken: @@ -193,7 +168,7 @@ def list_vendor_names(profiles_dir): """Vendor bundles = subdirectories with a matching <name>.json index file. (Ignores stray non-bundle entries such as the tracked "user" directory, - which has no user.json index, and the retired_filament_ids.json ledger.) + which has no user.json index.) """ profiles_dir = str(profiles_dir) return sorted( @@ -250,7 +225,7 @@ def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, vendor is re-tried against the OFL map keyed by its direct parent name. skip_own ignores the first preset's own filament_id key (used to compute the - id its inherits chain would resolve WITHOUT the declaration — check 7b drift). + id its inherits chain would resolve WITHOUT the declaration — check 6b drift). Returns (filament_id or None, source, ofl_entry) where source is one of "own"/"inherited"/"missing"/"dangling"/"cycle" and ofl_entry is the name of @@ -379,7 +354,6 @@ def analyze_tree(profiles_dir): triples = {} # fid -> set of triples of its non-island declarers declarer_triples = [] # (vendor, rec, fid, triple) per non-island declarer family_triples = {} # (vendor, family) -> {triple: [declarer names]} - renamed_claims = {} # "Vendor/OldFamily" -> set of ids the rename now carries for vendor, filaments in vendors.items(): occurring = vendor_ids.setdefault(vendor, set()) @@ -413,19 +387,12 @@ def analyze_tree(profiles_dir): continue occurring.add(eff) ids.setdefault(eff, set()).add(f"{vendor}/{base_name(rec['name'])}") - # A renamed preset keeps voting under the names it used to have, so - # the id its old family carried retires to the id the rename minted. - renamed = rec.get("renamed_from") - for old in (renamed if isinstance(renamed, str) else "").split(";"): - if old.strip(): - renamed_claims.setdefault( - f"{vendor}/{base_name(old.strip())}", set()).add(eff) if rec.get("filament_id"): instantiated_with_id.append(f"{vendor}/{rec['name']}") if vendor != OFL and rec["ofl_entry"] and eff in ofl_declared: alias_candidates.append((vendor, rec, rec["ofl_entry"], False)) - # Alias hygiene (check 5): a vendor preset that rides an OFL family (its id + # Alias hygiene (check 4): a vendor preset that rides an OFL family (its id # resolves through OFL) is matched to the OFL preset by ALIAS (base name); # renaming it re-exposes the OFL preset and creates a live duplicate, empty # compatible_printers cannot claim any printer, and declaring its own @@ -452,7 +419,7 @@ def analyze_tree(profiles_dir): "empty compatible_printers cannot shadow the OFL preset anywhere", rec["file"])) - # Cross-bundle triple divergence (check 8, warning only): the same family + # Cross-bundle triple divergence (check 7, warning only): the same family # name declared in several bundles with different triples cannot converge # on one id until the divergence is fixed. name_bundles = {} @@ -468,7 +435,6 @@ def analyze_tree(profiles_dir): "vendors": vendors, "read_errors": read_errors, "ids": {fid: sorted(claims) for fid, claims in ids.items()}, - "renamed_claims": {claim: sorted(fids) for claim, fids in renamed_claims.items()}, "vendor_ids": vendor_ids, "declared_ids": declared_ids, "instantiated_with_id": sorted(instantiated_with_id), @@ -488,7 +454,7 @@ def analyze_tree(profiles_dir): # --------------------------------------------------------------------------- -# Snapshot / succession-ledger IO +# Snapshot IO # --------------------------------------------------------------------------- def snapshot_from_analysis(analysis): @@ -515,102 +481,13 @@ def load_snapshot(path): return data -def load_ledger(path): - """The shipped succession ledger: - {"retired": {id: {"claims": [...], "successor": id|None}}, "hints": {id: id}}. - Empty maps when the file is absent. - """ - if not os.path.exists(path): - return {"retired": {}, "hints": {}} - data = load_json(path) - return {"retired": data.get("retired", {}), "hints": data.get("hints", {})} - - -def load_retired(path): - """The ledger's retired map (see load_ledger); {} when the file is absent.""" - return load_ledger(path)["retired"] - - -def write_ledger(path, obj): +def write_snapshot(path, obj): """Deterministic serialization: sorted keys, indent 1, LF, trailing newline.""" with open(path, "w", encoding="utf-8", newline="\n") as f: json.dump(obj, f, indent=1, ensure_ascii=False, sort_keys=True) f.write("\n") -def claim_effective_ids(analysis): - """Reverse of analysis["ids"]: claim "Vendor/Family" -> set of effective ids. - - A preset's "renamed_from" names count as claims of that preset too, so an id - whose family was renamed still finds a successor in the claim vote. - """ - claim_ids = {} - for fid, claims in analysis["ids"].items(): - for claim in claims: - claim_ids.setdefault(claim, set()).add(fid) - for claim, fids in analysis.get("renamed_claims", {}).items(): - if claim not in claim_ids: - claim_ids[claim] = set(fids) - return claim_ids - - -def successor_by_mode(claims, claim_ids): - """Mode rule for a retiring id's successor: every old claim whose family - still exists votes for the family's current effective id(s); most votes - wins, ties break to the lexicographically smallest id, no votes -> None. - Returns (successor_or_None, vote_counts). - """ - counts = {} - for claim in claims: - for fid in claim_ids.get(claim, ()): - counts[fid] = counts.get(fid, 0) + 1 - if not counts: - return None, counts - best = max(counts.values()) - return min(f for f, n in counts.items() if n == best), counts - - -def migrate_retired_entries(old_retired, claim_ids): - """One-shot v3 schema migration: list-valued entries {id: [claims]} become - {id: {"claims": [...], "successor": <mode-rule id|None>}}; object entries - pass through untouched. - """ - migrated = {} - for fid, entry in old_retired.items(): - if isinstance(entry, dict): - migrated[fid] = entry - continue - successor, _counts = successor_by_mode(entry, claim_ids) - migrated[fid] = {"claims": sorted(entry), "successor": successor} - return migrated - - -def follow_succession(fid, seen, retired, hints, live): - """Follow retired->successor / hints->target forwarding starting at `fid`. - - Returns (status, node): "null" (chain ended on an heirless retirement), - "live" (reached a live tree id), "cycle", or "dead-end" (an id that is - neither live nor forwarded anywhere). `seen` pre-seeds the cycle guard. - """ - seen = set(seen) - cur = fid - while True: - if cur is None: - return "null", None - if cur in seen: - return "cycle", cur - seen.add(cur) - if cur in live: - return "live", cur - entry = retired.get(cur) - if entry is not None: - cur = entry.get("successor") if isinstance(entry, dict) else None - elif cur in hints: - cur = hints[cur] - else: - return "dead-end", cur - - # --------------------------------------------------------------------------- # Reserved namespaces # --------------------------------------------------------------------------- @@ -631,7 +508,7 @@ def reserved_space_desc(fid, owner): if owner: return f"owned by {owner}" if fid.startswith("QD_"): - return "Qidi device protocol; dissolved island — ids are retired, never declarable" + return "Qidi device protocol; composed by the device, never a preset id" return "reserved for user-custom presets" @@ -639,8 +516,7 @@ def reserved_space_desc(fid, owner): # Checks (imported and called tree-wide by orca_extra_profile_check.py) # --------------------------------------------------------------------------- -def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - retired_path=RETIRED_PATH): +def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): """Validate filament_id state across every vendor. Returns the error count. 1. Format: every id occurring in the tree (declared or effective) must be in @@ -651,23 +527,19 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, 3. Mint conformance: a non-island OF-format declaration must equal the mint of the declarer's triple or a salted iteration, unless that exact (id, triple) pair is grandfathered in the snapshot. - 4. Retired ids may never occur again. - 5. Alias hygiene: a vendor preset riding an OFL family must keep the OFL + 4. Alias hygiene: a vendor preset riding an OFL family must keep the OFL base name, claim printers via non-empty compatible_printers, and declare no filament_id key of its own. - 6. Reserved namespaces (GF* for BBL; QD_*/P-hex/"null" for nobody) must not + 5. Reserved namespaces (GF* for BBL; QD_*/P-hex/"null" for nobody) must not be claimed by other vendors, except claims grandfathered in the snapshot. - 7. Structure ratchet: (a) no NEW instantiated preset carries its own + 6. Structure ratchet: (a) no NEW instantiated preset carries its own filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every instantiated filament resolves an effective id (a hard load error in C++). - 8. Triple integrity: (a) every non-island declarer resolves non-empty + 7. Triple integrity: (a) every non-island declarer resolves non-empty filament_vendor and filament_type (hard error, no grandfathering); (b) declarers of one (bundle, family) resolve identical triples, unless grandfathered in snapshot triple_exceptions; cross-bundle divergence on the same family name is a warning only. - 9. Succession integrity: retired successor chains terminate at a live id or - null without cycles; hint keys are live island-declared ids and hint - chains terminate live. """ _utf8_console() errors = 0 @@ -676,10 +548,6 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if snapshot is None: print_error(f"filament_id snapshot not found at {snapshot_path}; {UPDATE_HINT}") return 1 - ledger = load_ledger(retired_path) - retired = ledger["retired"] - hints = ledger["hints"] - for msg in analysis["read_errors"]: print_error(msg) errors += 1 @@ -717,8 +585,8 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, for fid in sorted(snap_ids): if fid not in tree_ids: print_error( - f'filament_id stability: snapshot id "{fid}" vanished from the tree ' - f"(shipped ids retire through the succession ledger); {UPDATE_HINT}") + f'filament_id stability: snapshot id "{fid}" vanished from the tree; ' + f"{UPDATE_HINT}") errors += 1 continue for claim in snap_ids[fid]: @@ -761,16 +629,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"family root (or, for an intentionally kept id, {UPDATE_HINT})") errors += 1 - # -- 4. retired ids may never come back --------------------------------- - for vendor in sorted(analysis["vendor_ids"]): - for fid in sorted(analysis["vendor_ids"][vendor]): - if fid in retired: - print_error( - f'filament_id "{fid}" ({vendor}) is retired ' - f"({RETIRED_REL}) and may never be reused") - errors += 1 - - # -- 5. alias hygiene for presets riding OFL families -------------------- + # -- 4. alias hygiene for presets riding OFL families -------------------- exceptions = set(snapshot["alias_exceptions"]) for vendor, name, entry, reason, file in analysis["alias_violations"]: if f"{vendor}/{name}" in exceptions: @@ -782,7 +641,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"gets its own minted id") errors += 1 - # -- 6. reserved namespaces ---------------------------------------------- + # -- 5. reserved namespaces ---------------------------------------------- for fid in sorted(tree_ids): is_reserved, owner = reserved_space_owner(fid) if not is_reserved: @@ -799,7 +658,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"({space}) and must not be claimed by system presets of other vendors") errors += 1 - # -- 7. structure ratchet ------------------------------------------------- + # -- 6. structure ratchet ------------------------------------------------- grandfathered = set(snapshot["instantiated_with_id"]) for key in analysis["instantiated_with_id"]: if key not in grandfathered: @@ -827,7 +686,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') errors += 1 - # -- 8. triple integrity --------------------------------------------------- + # -- 7. triple integrity --------------------------------------------------- for vendor, rec, fid, triple in sorted( analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): if triple[0] and triple[1]: @@ -860,62 +719,6 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"({detail}); bundles of one product converge on one id only once " f"their triples agree") - # -- 9. succession integrity (ledger-internal) ----------------------------- - live = set(tree_ids) - for fid in sorted(retired): - entry = retired[fid] - if (not isinstance(entry, dict) - or not isinstance(entry.get("claims", []), list) - or not (entry.get("successor") is None - or isinstance(entry.get("successor"), str))): - print_error( - f'retired entry "{fid}" ({RETIRED_REL}) is not of the form ' - f'{{"claims": [...], "successor": <id|null>}}') - errors += 1 - continue - status, node = follow_succession(entry.get("successor"), {fid}, retired, hints, live) - if status == "cycle": - print_error( - f'succession chain of retired id "{fid}" cycles at "{node}" ({RETIRED_REL})') - errors += 1 - elif status == "dead-end": - print_error( - f'succession chain of retired id "{fid}" dead-ends at "{node}", which is ' - f"neither a live tree id nor retired/hinted ({RETIRED_REL})") - errors += 1 - for key in sorted(hints): - target = hints[key] - _is_reserved, island = reserved_space_owner(key) - if island is None: - print_error( - f'hint key "{key}" ({RETIRED_REL}) is not in an island id space ' - f"(GF*); non-island ids are retired with a successor instead") - errors += 1 - continue - if key in retired: - print_error( - f'hint key "{key}" ({RETIRED_REL}) is also retired; an id is either ' - f"retired (Orca-owned) or hinted (island-owned), never both") - errors += 1 - continue - # A hint key may be absent from the tree (released to its island); when - # live, only island vendors may declare it. - outsiders = sorted( - v for v in analysis["declared_ids"] - if key in analysis["declared_ids"][v] and not is_island_declaration(v, key)) - if outsiders: - print_error( - f'hint key "{key}" ({RETIRED_REL}) is declared by non-island vendor(s) ' - f"{outsiders}; hints apply only once no non-island vendor declares the " - f"id — re-mint those declarers first") - errors += 1 - status, node = follow_succession(target, {key}, retired, hints, live) - if status != "live": - print_error( - f'hint "{key}" -> "{target}" ({RETIRED_REL}) must chain-terminate at a ' - f"live tree id (got {status} at \"{node}\")") - errors += 1 - return errors @@ -924,18 +727,8 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # --------------------------------------------------------------------------- def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - retired_path=RETIRED_PATH, allow_shared_catalog=False, - forget_path=None): - """Regenerate the snapshot from the tree; retire ids that fully vanished. - - Vanished ids gain a succession-ledger entry whose successor is picked by - the mode rule over their old claims (None when the family died heirless); - vanished ids in a foreign island's space (GF*) are released with a - hint instead — the island catalog owns them, so they must stay mintable - there and must never be blocked by check 4. - --forget-never-shipped lists ids to drop from lineage instead of retiring - (never shipped => nothing outside the tree references them); succession - chains through them are spliced to their mode-rule successor. + allow_shared_catalog=False): + """Regenerate the snapshot from the tree. Refuses to sanction NEW reserved-namespace ids (or new claims on them) for non-owner vendors unless --allow-shared-catalog is passed. Idempotent: a @@ -948,21 +741,6 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, old_snap = load_snapshot(snapshot_path) old_ids = old_snap["ids"] if old_snap else {} - forget = set() - if forget_path: - data = load_json(forget_path) - if not isinstance(data, list) or not all(isinstance(x, str) for x in data): - print_error(f"--forget-never-shipped expects a JSON list of ids: {forget_path}") - return 1 - forget = set(data) - still_live = sorted(forget & set(new_snap["ids"])) - if still_live: - for fid in still_live: - print_error( - f'--forget-never-shipped: id "{fid}" is still in the tree and can ' - f"neither be forgotten nor retired") - return 1 - # Gate: new reserved-namespace ids / claims for non-owner vendors. refusals = [] for fid, claims in sorted(new_snap["ids"].items()): @@ -990,72 +768,6 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"maintainer-approved shared-catalog families") return 1 - # Retirement is permanent: refuse to sanction a tree that resurrects a - # retired id (check 4 would reject the resulting snapshot forever anyway). - ledger = load_ledger(retired_path) - retired = ledger["retired"] - reused = sorted(set(new_snap["ids"]) & set(retired)) - if reused: - for fid in reused: - print_error( - f'refusing to sanction retired filament_id "{fid}" ' - f"({RETIRED_REL} is append-only; retired ids may " - f"never be reused — mint a fresh id for the family instead)") - return 1 - - # Retire ids that fully vanished from the tree (append-only ledger), with a - # mode-rule successor so devices and user presets keep resolving. Vanished - # ids in a FOREIGN island's reserved space (GF*) are never retired — - # the island's catalog still owns them and may legitimately (re)ship them — - # they are RELEASED, with a succession hint so they keep resolving on miss. - claim_ids = claim_effective_ids(analysis) - newly_retired = [] - forgotten = [] - released = [] - for fid in sorted(old_ids): - if fid in new_snap["ids"]: - continue - if fid in forget: - forgotten.append(fid) - print_info(f'forgotten (never shipped): "{fid}" — no retirement entry') - continue - _is_reserved, island = reserved_space_owner(fid) - if island is not None: - successor, _counts = successor_by_mode(old_ids[fid], claim_ids) - if successor and fid not in ledger["hints"]: - ledger["hints"][fid] = successor - released.append(fid) - print_info( - f'released to the {island} island space: "{fid}"' - + (f' — hint -> "{ledger["hints"][fid]}"' if fid in ledger["hints"] - else " (no successor computable; --add-hint if one is needed)")) - continue - entry = retired.get(fid) - if not isinstance(entry, dict): - successor, counts = successor_by_mode(old_ids[fid], claim_ids) - if len(counts) > 1: - losers = sorted(set(counts) - {successor}) - print_warning( - f'retiring "{fid}": successor "{successor}" won the claim vote ' - f"({counts[successor]}); losing candidate(s): {', '.join(losers)}") - entry = {"claims": list(entry) if entry else [], "successor": successor} - entry["claims"] = sorted(set(entry["claims"]) | set(old_ids[fid])) - retired[fid] = entry - newly_retired.append(fid) - - # Splice succession chains through forgotten ids so they stay live. - spliced = [] - for fid in sorted(retired): - entry = retired[fid] - successor = entry.get("successor") if isinstance(entry, dict) else None - if successor in forget: - new_successor, _counts = successor_by_mode(old_ids.get(successor, []), claim_ids) - entry["successor"] = new_successor - spliced.append(fid) - print_info( - f'spliced succession: "{fid}" -> {json.dumps(new_successor)} ' - f'(through forgotten "{successor}")') - # Diff summary. added_ids = sorted(set(new_snap["ids"]) - set(old_ids)) removed_ids = sorted(set(old_ids) - set(new_snap["ids"])) @@ -1071,22 +783,12 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, changed = new_snap != old_snap if changed: - write_ledger(snapshot_path, new_snap) - if newly_retired or spliced or released or not os.path.exists(retired_path): - write_ledger(retired_path, {"retired": retired, "hints": ledger["hints"]}) + write_snapshot(snapshot_path, new_snap) print_info(f"snapshot ids : {len(new_snap['ids'])} (+{len(added_ids)} / -{len(removed_ids)})") print_info(f"claims added : {added_claims}") print_info(f"claims removed : {removed_claims}") print_info(f"declared triples : {len(new_snap['triples'])}") - print_info(f"ids retired now : {len(newly_retired)}" + - (f" ({', '.join(newly_retired)})" if newly_retired else "")) - if forgotten: - print_info(f"ids forgotten : {len(forgotten)} ({', '.join(forgotten)})") - if released: - print_info(f"ids released : {len(released)} ({', '.join(released)})") - if spliced: - print_info(f"chains spliced : {len(spliced)} ({', '.join(spliced)})") for section in ("instantiated_with_id", "id_overrides", "alias_exceptions", "triple_exceptions"): before, after = len(old_snap.get(section, [])), len(new_snap[section]) @@ -1098,125 +800,6 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, return 0 -def add_hints(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): - """--add-hint "OLD=NEW": forward an island-space id to a live id. - - OLD must sit in an island id space (GF*), must not be retired, and — - when live in the tree — may be declared only by island vendors (Orca cannot - retire it). An absent OLD is fine: island catalogs own ids Orca never - shipped or has released. NEW must be live in the tree. All pairs validate - before anything is written. Returns 0 on success. - """ - _utf8_console() - analysis = analyze_tree(profiles_dir) - errors = 0 - for msg in analysis["read_errors"]: - print_error(msg) - errors += 1 - ledger = load_ledger(retired_path) - live = set(analysis["ids"]) - parsed = [] - for pair in pairs: - if "=" not in pair: - print_error(f'--add-hint expects "OLD=NEW", got "{pair}"') - errors += 1 - continue - old, new = pair.split("=", 1) - _is_reserved, island = reserved_space_owner(old) - outsiders = sorted( - v for v in analysis["declared_ids"] - if old in analysis["declared_ids"][v] and not is_island_declaration(v, old)) - if old in ledger["retired"]: - print_error(f'--add-hint: "{old}" is retired; its succession entry already forwards it') - errors += 1 - elif island is None: - print_error( - f'--add-hint: "{old}" is not in an island id space (GF*); ' - f"non-island ids are retired with a successor by --update-snapshot") - errors += 1 - elif outsiders: - print_error( - f'--add-hint: "{old}" is declared by non-island vendor(s) {outsiders}; ' - f"hints apply only once no non-island vendor declares the id — re-mint " - f"those declarers first") - errors += 1 - elif new not in live: - print_error(f'--add-hint: target "{new}" is not a live tree id') - errors += 1 - else: - parsed.append((old, new)) - if errors: - return 1 - for old, new in parsed: - ledger["hints"][old] = new - print_info(f'hint added: "{old}" -> "{new}"') - write_ledger(retired_path, {"retired": ledger["retired"], "hints": ledger["hints"]}) - return 0 - - -def retire_ids(pairs, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): - """--retire "OLD=NEW": retire a vanished non-island id with an explicit successor. - - For shipped ids whose lineage the claim vote can no longer see: the id - vanished from the tree in an earlier phase's shadow — another declarer kept - it alive while its claims migrated — so no --update-snapshot run ever saw - the id vanish while its claims could still vote. OLD must be absent from - the tree (declared or effective) and outside every reserved id space - (island ids forward via --add-hint; user-custom ids are never system ids), - and must not already be retired or hinted. NEW must be a live tree id. - Appends {"claims": [], "successor": NEW}. All pairs validate before - anything is written. Returns 0 on success. - """ - _utf8_console() - analysis = analyze_tree(profiles_dir) - errors = 0 - for msg in analysis["read_errors"]: - print_error(msg) - errors += 1 - ledger = load_ledger(retired_path) - live = set(analysis["ids"]) - declared_anywhere = set() - for vids in analysis["declared_ids"].values(): - declared_anywhere |= set(vids) - parsed = [] - for pair in pairs: - if "=" not in pair: - print_error(f'--retire expects "OLD=NEW", got "{pair}"') - errors += 1 - continue - old, new = pair.split("=", 1) - is_reserved, _island = reserved_space_owner(old) - if old in ledger["retired"]: - print_error(f'--retire: "{old}" is already retired') - errors += 1 - elif old in ledger["hints"]: - print_error(f'--retire: "{old}" is a hint key; it already forwards') - errors += 1 - elif is_reserved: - print_error( - f'--retire: "{old}" sits in a reserved id space; island ids ' - f"forward via --add-hint, user-custom ids are never retired") - errors += 1 - elif old in live or old in declared_anywhere: - print_error( - f'--retire: "{old}" still lives in the tree; re-mint or delete ' - f"its declarers first (an id that vanishes normally gets its " - f"successor voted by --update-snapshot)") - errors += 1 - elif new not in live: - print_error(f'--retire: successor "{new}" is not a live tree id') - errors += 1 - else: - parsed.append((old, new)) - if errors: - return 1 - for old, new in parsed: - ledger["retired"][old] = {"claims": [], "successor": new} - print_info(f'retired: "{old}" -> "{new}"') - write_ledger(retired_path, {"retired": ledger["retired"], "hints": ledger["hints"]}) - return 0 - - # --------------------------------------------------------------------------- # Byte-preserving profile edits # --------------------------------------------------------------------------- @@ -1313,8 +896,7 @@ def remove_filament_id(path, old_id): # Default run: mint + insert ids for id-less families # --------------------------------------------------------------------------- -def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - retired_path=RETIRED_PATH): +def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): """Mint + insert ids for id-less families. Never rewrites a valid existing id. A family = (vendor, base name) group over instantiated filaments with no @@ -1346,9 +928,9 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, "nothing to do (0 files changed)") return 0, errors - # Ids already spoken for: whole tree (declared or effective) + ledgers. + # Ids already spoken for: the whole tree (declared or effective) + snapshot. snapshot = load_snapshot(snapshot_path) or {"ids": {}} - taken = set(snapshot["ids"]) | set(load_retired(retired_path)) + taken = set(snapshot["ids"]) for occurring in analysis["vendor_ids"].values(): taken |= occurring @@ -1427,7 +1009,7 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # --remint / --drop-redundant-ids (v3.1/v3.2 migration modes) # --------------------------------------------------------------------------- -def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_PATH): +def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): """Re-derive every non-island declared id in the given vendors from its triple; rewrite mismatching declarations in place (byte-preserving). Never touches the snapshot — run --update-snapshot afterwards and review the diff. @@ -1435,8 +1017,8 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_ A declaration already equal to ANY salt iteration of its own triple is mint-conformant (check 3) and left alone — deliberate salt splits (distinct presets of one product kept apart for per-printer AMS matching) survive. - A candidate id is blocked when it is a retired key, a hints key, or occurs - in the tree with any triple set other than exactly {T}. Equal-triple reuse + A candidate id is blocked when it occurs in the tree with any triple set + other than exactly {T}. Equal-triple reuse is convergence: the same product must end up under the same id everywhere. Returns (rewritten, errors). """ @@ -1455,8 +1037,6 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_ print_error(f"--remint: unknown vendor {v!r}") return 0, errors + len(unknown) - ledger = load_ledger(retired_path) - blocked_keys = set(ledger["retired"]) | set(ledger["hints"]) occurring = set() for vids in analysis["vendor_ids"].values(): occurring |= vids @@ -1470,8 +1050,6 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR, retired_path=RETIRED_ return assigned[triple] for salt in range(10000): cand = generate_filament_id(*triple, salt=salt) - if cand in blocked_keys: - continue if cand in occurring and triple_sets.get(cand, set()) != {triple}: continue if run_taken.get(cand, triple) != triple: @@ -1570,27 +1148,13 @@ def main(argv=None): help="print the id the (filament_vendor, filament_type, " "family name) triple would mint; touches nothing") parser.add_argument("--update-snapshot", action="store_true", - help="regenerate scripts/filament_id_snapshot.json from the " - "tree; ids that fully vanished are retired with a " - "mode-rule successor") + help="regenerate scripts/filament_id_snapshot.json from " + "the tree") parser.add_argument("--check", action="store_true", help="run the filament_id checks; exit nonzero on errors") parser.add_argument("--allow-shared-catalog", action="store_true", help="with --update-snapshot: allow sanctioning new claims " "on reserved-namespace ids for non-owner vendors") - parser.add_argument("--forget-never-shipped", metavar="JSON_FILE", - help="with --update-snapshot: vanished ids listed in the file " - "(JSON list) are dropped without a retirement entry and " - "succession chains are spliced through them; refused if " - "a listed id is still in the tree") - parser.add_argument("--add-hint", metavar='"OLD=NEW"', action="append", - help="record a cross-island succession hint (island-owned " - "live id -> live id) in the shipped ledger; standalone, " - "repeatable") - parser.add_argument("--retire", metavar='"OLD=NEW"', action="append", - help="retire a vanished non-island shipped id with an " - "explicit successor (for lineage the claim vote can " - "no longer see); standalone, repeatable") parser.add_argument("--remint", metavar="VENDOR", action="append", help="re-derive VENDOR's declared filament_ids from their " "triples and rewrite mismatches in place; repeatable") @@ -1602,35 +1166,22 @@ def main(argv=None): help="profiles directory (default: resources/profiles)") args = parser.parse_args(argv) - if args.forget_never_shipped and not args.update_snapshot: - parser.error("--forget-never-shipped requires --update-snapshot") if args.mint: parts = args.mint.split("/", 2) if len(parts) != 3 or not all(parts): parser.error('--mint expects "filament_vendor/filament_type/family_name" ' - "with all three components non-empty (check 8 rejects empty " + "with all three components non-empty (check 7 rejects empty " "vendor/type in the tree)") snapshot = load_snapshot(SNAPSHOT_PATH) or {"ids": {}} - taken = set(snapshot["ids"]) | set(load_retired(RETIRED_PATH)) + taken = set(snapshot["ids"]) print(mint_filament_id(parts[0], parts[1], parts[2], taken)) return 0 - if args.add_hint: - if (args.update_snapshot or args.check or args.remint - or args.drop_redundant_ids or args.retire): - parser.error("--add-hint runs standalone") - return add_hints(args.add_hint, args.profiles, RETIRED_PATH) - - if args.retire: - if args.update_snapshot or args.check or args.remint or args.drop_redundant_ids: - parser.error("--retire runs standalone") - return retire_ids(args.retire, args.profiles, RETIRED_PATH) - if args.remint: if args.update_snapshot or args.check or args.drop_redundant_ids: parser.error("--remint cannot be combined with other modes") - _changed, errors = remint_vendors(args.remint, args.profiles, RETIRED_PATH) + _changed, errors = remint_vendors(args.remint, args.profiles) return 1 if errors else 0 if args.drop_redundant_ids: @@ -1640,19 +1191,18 @@ def main(argv=None): return 1 if errors else 0 if args.update_snapshot: - return update_snapshot(args.profiles, SNAPSHOT_PATH, RETIRED_PATH, - allow_shared_catalog=args.allow_shared_catalog, - forget_path=args.forget_never_shipped) + return update_snapshot(args.profiles, SNAPSHOT_PATH, + allow_shared_catalog=args.allow_shared_catalog) if args.check: - errors = check_filament_ids(args.profiles, SNAPSHOT_PATH, RETIRED_PATH) + errors = check_filament_ids(args.profiles, SNAPSHOT_PATH) if errors: print_error(f"filament_id check: {errors} error(s)") return 1 print_success("filament_id check: no errors") return 0 - _changed, errors = assign_missing_ids(args.profiles, SNAPSHOT_PATH, RETIRED_PATH) + _changed, errors = assign_missing_ids(args.profiles, SNAPSHOT_PATH) return 1 if errors else 0 diff --git a/scripts/check_profile.ps1 b/scripts/check_profile.ps1 index 9c9bb6c506..66ed33c31d 100644 --- a/scripts/check_profile.ps1 +++ b/scripts/check_profile.ps1 @@ -187,7 +187,7 @@ $ProfilesDir = (Resolve-Path -LiteralPath $ProfilesDir).Path # validator compares the <Vendor>.json stem case-sensitively, while Windows' case-insensitive # filesystem would let "creality" pass a path test and then match no vendor. A vendor is a # <name>.json with a sibling <name> directory; that pair is also what tells one apart from -# blacklist.json and retired_filament_ids.json, which sit in the same folder. +# blacklist.json, which sits in the same folder. if ($Vendor) { $found = $false $suggestion = '' diff --git a/scripts/check_profile.sh b/scripts/check_profile.sh index cb56258c9f..51c8599b60 100755 --- a/scripts/check_profile.sh +++ b/scripts/check_profile.sh @@ -138,7 +138,7 @@ PROFILES_DIR="$(cd -- "${PROFILES_DIR}" && pwd)" # validator compares the <Vendor>.json stem case-sensitively, while a case-insensitive filesystem # (macOS, Windows) would let "creality" pass a file test and then match no vendor. A vendor is a # <name>.json with a sibling <name>/ directory; that pair is also what tells one apart from -# blacklist.json and retired_filament_ids.json, which sit in the same folder. +# blacklist.json, which sits in the same folder. if [ -n "${VENDOR}" ]; then wanted="$(printf '%s' "${VENDOR}" | tr '[:upper:]' '[:lower:]')" found="" diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 41df9c582e..ef61992784 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -54,14 +54,13 @@ def preset(name, filament_id=None, inherits=None, instantiation=True, class SyntheticTree: - """A throwaway resources/profiles-shaped directory plus ledger paths.""" + """A throwaway resources/profiles-shaped directory plus a snapshot path.""" def __init__(self): self.dir = tempfile.mkdtemp(prefix="filament_id_test_") self.profiles = os.path.join(self.dir, "profiles") os.makedirs(self.profiles) self.snapshot = os.path.join(self.dir, "filament_id_snapshot.json") - self.retired = os.path.join(self.dir, "retired_filament_ids.json") def cleanup(self): shutil.rmtree(self.dir, ignore_errors=True) @@ -109,37 +108,31 @@ class SyntheticTree: with open(idx_path, "w", encoding="utf-8") as f: json.dump(index, f, indent=4, ensure_ascii=False) - def write_ledger(self, retired=None, hints=None): - afi.write_ledger(self.retired, {"retired": retired or {}, - "hints": hints or {}}) - # -- pipeline wrappers --------------------------------------------------- - def update_snapshot(self, allow_shared_catalog=False, forget_path=None): + def update_snapshot(self, allow_shared_catalog=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - rc = afi.update_snapshot(self.profiles, self.snapshot, self.retired, - allow_shared_catalog=allow_shared_catalog, - forget_path=forget_path) + rc = afi.update_snapshot(self.profiles, self.snapshot, + allow_shared_catalog=allow_shared_catalog) return rc, buf.getvalue() def check(self): buf = io.StringIO() with contextlib.redirect_stdout(buf): - errors = afi.check_filament_ids(self.profiles, self.snapshot, self.retired) + errors = afi.check_filament_ids(self.profiles, self.snapshot) return errors, buf.getvalue() def assign(self): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.assign_missing_ids(self.profiles, self.snapshot, - self.retired) + changed, errors = afi.assign_missing_ids(self.profiles, self.snapshot) return changed, errors, buf.getvalue() def remint(self, vendors): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.remint_vendors(vendors, self.profiles, self.retired) + changed, errors = afi.remint_vendors(vendors, self.profiles) return changed, errors, buf.getvalue() def drop_redundant(self, vendor): @@ -148,19 +141,6 @@ class SyntheticTree: dropped, errors = afi.drop_redundant_ids(vendor, self.profiles) return dropped, errors, buf.getvalue() - def add_hint(self, pairs): - buf = io.StringIO() - with contextlib.redirect_stdout(buf): - rc = afi.add_hints(pairs, self.profiles, self.retired) - return rc, buf.getvalue() - - def retire(self, pairs): - buf = io.StringIO() - with contextlib.redirect_stdout(buf): - rc = afi.retire_ids(pairs, self.profiles, self.retired) - return rc, buf.getvalue() - - def make_clean_tree(): """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic.""" t = SyntheticTree() @@ -196,7 +176,7 @@ class SyntheticTreeCase(unittest.TestCase): class TestMint(unittest.TestCase): def test_namespace_literal(self): - # Frozen: derived from the setting_id namespace; baked into the ledger. + # Frozen: derived from the setting_id namespace; baked into the snapshot. self.assertEqual(afi.FILAMENT_ID_NAMESPACE, uuid.UUID("c4d3ff49-4c32-5534-a3e3-00894157ab97")) @@ -401,7 +381,7 @@ class TestTripleResolution(unittest.TestCase): class TestReservedSpaces(unittest.TestCase): def test_owners(self): self.assertEqual(afi.reserved_space_owner("GFL99"), (True, "BBL")) - # dissolved island (plan v4): reserved, but no vendor may declare it + # Qidi device protocol: reserved, but no vendor may declare it self.assertEqual(afi.reserved_space_owner("QD_X4_PLA"), (True, None)) self.assertEqual(afi.reserved_space_owner("P1234abc"), (True, None)) self.assertEqual(afi.reserved_space_owner("pAbCdEf1"), (True, None)) # case-insensitive @@ -412,7 +392,7 @@ class TestReservedSpaces(unittest.TestCase): def test_island_declarations(self): self.assertTrue(afi.is_island_declaration("BBL", "GFL99")) self.assertTrue(afi.is_island_declaration("BBL", "OF5CgdDq")) - # dissolved island (plan v4): Qidi declarations mint like any other + # Qidi presets mint like any other vendor's: self.assertFalse(afi.is_island_declaration("Qidi", "QD_X4_PLA")) self.assertFalse(afi.is_island_declaration("Qidi", "OF5CgdDq")) self.assertFalse(afi.is_island_declaration("VendorA", "GFL99")) @@ -503,15 +483,7 @@ class TestChecks(SyntheticTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_check4_retired_id_reuse(self): - self.t.write_ledger(retired={"AX01": {"claims": ["VendorA/APLA"], - "successor": None}}) - errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn("retired", out) - self.assertIn("AX01", out) - - def test_check5_renamed_tuned_generic(self): + def test_check4_renamed_tuned_generic(self): self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="Generic PLA @System", compatible_printers=["P1"])) @@ -520,7 +492,7 @@ class TestChecks(SyntheticTreeCase): self.assertIn("rename re-exposes the OFL preset", out) self.assertIn("Tuned PLA @P1", out) - def test_check5_empty_compatible_printers(self): + def test_check4_empty_compatible_printers(self): self.t.write_preset("VendorA", preset("Generic PLA @P2", inherits="Generic PLA @System", compatible_printers=[])) @@ -528,7 +500,7 @@ class TestChecks(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn("cannot shadow the OFL preset", out) - def test_check5_own_id_key_on_ofl_rider(self): + def test_check4_own_id_key_on_ofl_rider(self): # A vendor root that declares its own id while inheriting an OFL family # forks the family off the catalog id. self.t.write_preset("VendorA", preset("GPLA @base", filament_id="AX77", @@ -540,7 +512,7 @@ class TestChecks(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn('declares its own filament_id "AX77"', out) - def test_check5_applies_to_non_generic_ofl_families(self): + def test_check4_applies_to_non_generic_ofl_families(self): fid = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") self.t.write_preset(OFL, preset("poly_pla_base", filament_id=fid, instantiation=False, @@ -559,7 +531,7 @@ class TestChecks(SyntheticTreeCase): self.assertIn("rename re-exposes the OFL preset", out) self.assertIn("PolyX PLA @P1", out) - def test_check5_exception_is_grandfathered(self): + def test_check4_exception_is_grandfathered(self): self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="Generic PLA @System", compatible_printers=["P1"])) @@ -568,9 +540,9 @@ class TestChecks(SyntheticTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_check6_reserved_namespace_claims(self): + def test_check5_reserved_namespace_claims(self): for fid, marker in [("GFX99", "owned by BBL"), - ("QD_X_PLA", "dissolved island"), + ("QD_X_PLA", "composed by the device"), ("P1a2b3c4", "user-custom"), ("null", "user-custom")]: with self.subTest(fid=fid): @@ -586,7 +558,7 @@ class TestChecks(SyntheticTreeCase): self.assertIn("reserved id space", out) self.assertIn(marker, out) - def test_check7a_instantiated_preset_with_own_key(self): + def test_check6a_instantiated_preset_with_own_key(self): self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX01", inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), @@ -595,7 +567,7 @@ class TestChecks(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn("declares its own filament_id key", out) - def test_check7b_declared_vs_inherited_drift(self): + def test_check6b_declared_vs_inherited_drift(self): self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX02", inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), @@ -604,7 +576,7 @@ class TestChecks(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn('declares filament_id "AX02" but its inherits chain resolves "AX01"', out) - def test_check7c_unresolvable_instantiated_filament(self): + def test_check6c_unresolvable_instantiated_filament(self): self.t.write_preset("VendorA", preset("DNEW @P1", compatible_printers=["P1"])) errors, out = self.t.check() self.assertGreater(errors, 0) @@ -618,8 +590,8 @@ class TestChecks(SyntheticTreeCase): self.assertIn("snapshot not found", out) -class TestCheck8(SyntheticTreeCase): - def test_8a_empty_vendor_is_hard_error(self): +class TestCheck7(SyntheticTreeCase): + def test_7a_empty_vendor_is_hard_error(self): fid = afi.generate_filament_id("", "PLA", "NVPLA") self.t.write_preset("VendorA", preset("NVPLA @base", filament_id=fid, instantiation=False, @@ -637,7 +609,7 @@ class TestCheck8(SyntheticTreeCase): self.assertEqual(errors, 1, out) self.assertIn("resolves empty filament_vendor", out) - def test_8b_divergent_family_triples(self): + def test_7b_divergent_family_triples(self): id1 = afi.generate_filament_id("MV", "PLA", "MPLA") id2 = afi.generate_filament_id("MV", "PETG", "MPLA") self.t.write_preset("VendorA", preset("MPLA @base1", filament_id=id1, @@ -660,7 +632,7 @@ class TestCheck8(SyntheticTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_8_cross_bundle_divergence_is_warning_only(self): + def test_7_cross_bundle_divergence_is_warning_only(self): fid = afi.generate_filament_id("BV", "PETG", "APLA") self.t.add_vendor("VendorB", [ preset("APLA @base", filament_id=fid, instantiation=False, @@ -677,125 +649,6 @@ class TestCheck8(SyntheticTreeCase): self.assertIn('"APLA"', out) -class TestCheck9(SyntheticTreeCase): - def test_ok_chain_null_and_live(self): - self.t.write_ledger(retired={ - "R1": {"claims": ["VendorA/Gone1"], "successor": "AX01"}, - "R2": {"claims": ["VendorA/Gone2"], "successor": "R1"}, - "R3": {"claims": ["VendorA/Gone3"], "successor": None}, - }) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_cycle_is_an_error(self): - self.t.write_ledger(retired={ - "C1": {"claims": [], "successor": "C2"}, - "C2": {"claims": [], "successor": "C1"}, - }) - errors, out = self.t.check() - self.assertEqual(errors, 2, out) - self.assertIn("cycles", out) - - def test_dead_end_is_an_error(self): - self.t.write_ledger(retired={ - "D1": {"claims": [], "successor": "OFnope99"}, - }) - errors, out = self.t.check() - self.assertEqual(errors, 1, out) - self.assertIn("dead-ends", out) - self.assertIn("OFnope99", out) - - def test_hint_key_must_be_in_island_space(self): - self.t.write_ledger(hints={"AX01": "OGFL99"}) - errors, out = self.t.check() - self.assertEqual(errors, 1, out) - self.assertIn("not in an island id space", out) - - def test_hint_key_may_be_absent_island_id(self): - # Released / never-shipped island-catalog ids are valid hint keys. - self.t.write_ledger(hints={"GFXX99": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_hint_key_must_not_be_retired_too(self): - self.t.write_ledger(retired={"GFXX99": {"claims": [], "successor": "AX01"}}, - hints={"GFXX99": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 1, out) - self.assertIn("never both", out) - - def test_live_hint_key_with_non_island_declarer_is_an_error(self): - self.t.write_preset("VendorA", preset( - "GPLA @base", filament_id="GFZZ01", instantiation=False, - filament_vendor="Generic", filament_type="PLA")) - self.t.write_preset("VendorA", preset( - "GPLA @P1", inherits="GPLA @base", - compatible_printers=["P1 0.4 nozzle"])) - rc, _out = self.t.update_snapshot(allow_shared_catalog=True) - self.assertEqual(rc, 0) - self.t.write_ledger(hints={"GFZZ01": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 1, out) - self.assertIn("re-mint those declarers first", out) - - def test_island_hint_ok_and_value_must_chain_live(self): - self.t.add_vendor("BBL", [ - preset("BPLA @base", filament_id="GFB01", instantiation=False), - preset("BPLA @X1C", inherits="BPLA @base", - compatible_printers=["X1C 0.4 nozzle"]), - ]) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.t.write_ledger(hints={"GFB01": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - # A hint chain ending on a null retirement is dead for the runtime. - self.t.write_ledger(retired={"R9": {"claims": [], "successor": None}}, - hints={"GFB01": "R9"}) - errors, out = self.t.check() - self.assertEqual(errors, 1, out) - self.assertIn("chain-terminate at a live tree id", out) - - -# --------------------------------------------------------------------------- -# successor mode rule + ledger schema migration -# --------------------------------------------------------------------------- - -class TestSuccessorMode(unittest.TestCase): - def test_majority_wins(self): - claim_ids = {"V/A": {"ID1"}, "V/B": {"ID1"}, "V/C": {"ID2"}} - succ, counts = afi.successor_by_mode(["V/A", "V/B", "V/C"], claim_ids) - self.assertEqual(succ, "ID1") - self.assertEqual(counts, {"ID1": 2, "ID2": 1}) - - def test_tie_breaks_lexicographically(self): - claim_ids = {"V/A": {"IDB"}, "V/B": {"IDA"}} - succ, counts = afi.successor_by_mode(["V/A", "V/B"], claim_ids) - self.assertEqual(succ, "IDA") - self.assertEqual(counts, {"IDA": 1, "IDB": 1}) - - def test_no_surviving_family_means_null(self): - self.assertEqual(afi.successor_by_mode(["V/GONE"], {}), (None, {})) - self.assertEqual(afi.successor_by_mode([], {"V/A": {"ID1"}}), (None, {})) - - -class TestLedgerMigration(SyntheticTreeCase): - def test_backfill_successors_via_mode_rule(self): - analysis = afi.analyze_tree(self.t.profiles) - claim_ids = afi.claim_effective_ids(analysis) - old = { - "X9": ["VendorA/APLA"], # family lives on - "Y9": ["VendorA/GONE"], # family died - "Z9": {"claims": ["kept"], "successor": "AX01"}, # already migrated - } - migrated = afi.migrate_retired_entries(old, claim_ids) - self.assertEqual(migrated["X9"], - {"claims": ["VendorA/APLA"], "successor": "AX01"}) - self.assertEqual(migrated["Y9"], - {"claims": ["VendorA/GONE"], "successor": None}) - self.assertEqual(migrated["Z9"], old["Z9"]) - - # --------------------------------------------------------------------------- # --update-snapshot # --------------------------------------------------------------------------- @@ -820,108 +673,6 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertEqual(snap["triples"]["OGFL99"], [["Generic", "PLA", "fdm_pla"]]) self.assertEqual(snap["triple_exceptions"], []) - def test_vanished_island_id_released_with_hint_not_retired(self): - self.t.write_preset("VendorA", preset( - "GPLA @base", filament_id="GFZZ01", instantiation=False, - filament_vendor="Generic", filament_type="PLA")) - self.t.write_preset("VendorA", preset( - "GPLA @P1", inherits="GPLA @base", - compatible_printers=["P1 0.4 nozzle"])) - rc, _out = self.t.update_snapshot(allow_shared_catalog=True) - self.assertEqual(rc, 0) - # The family re-mints away from the island id: released, not retired. - self.t.write_preset("VendorA", preset( - "GPLA @base", filament_id="OFaaaaaa", instantiation=False, - filament_vendor="Generic", filament_type="PLA"), register=False) - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.assertIn("released to the BBL island space", out) - ledger = afi.load_ledger(self.t.retired) - self.assertNotIn("GFZZ01", ledger["retired"]) - self.assertEqual(ledger["hints"].get("GFZZ01"), "OFaaaaaa") - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - # The island may legitimately (re)ship a released id later. - self.t.add_vendor("BBL", [ - preset("BPLA @base", filament_id="GFZZ01", instantiation=False), - preset("BPLA @X1C", inherits="BPLA @base", - compatible_printers=["X1C 0.4 nozzle"]), - ]) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_vanished_id_is_retired_with_null_successor(self): - self.t.remove_preset("VendorA", "APLA @base") - self.t.remove_preset("VendorA", "APLA @P1") - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.assertIn("AX01", out) - retired = load_json_file(self.t.retired)["retired"] - self.assertEqual(retired, - {"AX01": {"claims": ["VendorA/APLA"], "successor": None}}) - snap = load_json_file(self.t.snapshot) - self.assertNotIn("AX01", snap["ids"]) - self.assertNotIn("AX01", snap["triples"]) - # append-only + idempotent: a second run keeps the ledger intact - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.assertIn("nothing changed", out) - self.assertEqual(retired, load_json_file(self.t.retired)["retired"]) - # ... and a retired id may never be minted again - self.assertNotIn(afi.mint_filament_id("AVendor", "PLA", "APLA", - set(retired)), retired) - - def test_vanished_id_successor_follows_surviving_family(self): - # The family lives on under a new id (a re-mint): the mode rule finds it. - self.t.write_preset("VendorA", preset("APLA @base", filament_id="AXNEW", - instantiation=False, - filament_vendor="AVendor", - filament_type="PLA"), - register=False) - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0) - retired = load_json_file(self.t.retired)["retired"] - self.assertEqual(retired["AX01"], - {"claims": ["VendorA/APLA"], "successor": "AXNEW"}) - - def test_multi_candidate_retirement_warns_and_ties_break(self): - self.t.write_preset("VendorA", preset("SHRD @base", filament_id="SH01", - instantiation=False, - filament_vendor="SV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("CH1 @P1", inherits="SHRD @base", - compatible_printers=["P1"])) - self.t.write_preset("VendorA", preset("CH2 @P1", inherits="SHRD @base", - compatible_printers=["P1"])) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - # Split the two families onto their own roots and drop the shared id. - self.t.write_preset("VendorA", preset("CH1 @base", filament_id="SA01", - instantiation=False, - filament_vendor="SV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("CH2 @base", filament_id="SB01", - instantiation=False, - filament_vendor="SV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("CH1 @P1", inherits="CH1 @base", - compatible_printers=["P1"]), - register=False) - self.t.write_preset("VendorA", preset("CH2 @P1", inherits="CH2 @base", - compatible_printers=["P1"]), - register=False) - self.t.remove_preset("VendorA", "SHRD @base") - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.assertIn("[WARNING]", out) - self.assertIn("SB01", out) # the losing candidate is named - retired = load_json_file(self.t.retired)["retired"] - self.assertEqual(retired["SH01"]["successor"], "SA01") - self.assertEqual(retired["SH01"]["claims"], - ["VendorA/CH1", "VendorA/CH2"]) - def test_refuses_new_reserved_namespace_claims(self): self.t.write_preset("VendorA", preset("CNEW @base", filament_id="GFX99", instantiation=False, @@ -942,181 +693,6 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertEqual(snap["ids"]["GFX99"], ["VendorA/CNEW"]) -class TestForgetNeverShipped(SyntheticTreeCase): - def forget_file(self, ids): - path = os.path.join(self.t.dir, "forget.json") - with open(path, "w", encoding="utf-8") as f: - json.dump(ids, f) - return path - - def test_refuses_when_listed_id_is_live(self): - with open(self.t.snapshot, "rb") as f: - before = f.read() - rc, out = self.t.update_snapshot(forget_path=self.forget_file(["AX01"])) - self.assertEqual(rc, 1) - self.assertIn("still in the tree", out) - with open(self.t.snapshot, "rb") as f: - self.assertEqual(f.read(), before) - - def test_forgotten_id_is_not_retired(self): - self.t.write_preset("VendorA", preset("ZN @base", filament_id="Y999", - instantiation=False, - filament_vendor="ZV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("ZN @P1", inherits="ZN @base", - compatible_printers=["P1"])) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.t.remove_preset("VendorA", "ZN @base") - self.t.remove_preset("VendorA", "ZN @P1") - rc, out = self.t.update_snapshot(forget_path=self.forget_file(["Y999"])) - self.assertEqual(rc, 0) - self.assertIn("forgotten (never shipped)", out) - self.assertNotIn("Y999", load_json_file(self.t.retired)["retired"]) - self.assertNotIn("Y999", load_json_file(self.t.snapshot)["ids"]) - - def test_splices_chains_through_forgotten_id(self): - self.t.write_preset("VendorA", preset("ZN @base", filament_id="Y999", - instantiation=False, - filament_vendor="ZV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("ZN @P1", inherits="ZN @base", - compatible_printers=["P1"])) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - # A shipped id already forwards to Y999, which turns out never shipped. - self.t.write_ledger(retired={ - "OLD1": {"claims": ["VendorA/ZN"], "successor": "Y999"}}) - # The family re-mints to NEWZ and Y999 vanishes. - self.t.write_preset("VendorA", preset("ZN @base", filament_id="NEWZ", - instantiation=False, - filament_vendor="ZV", - filament_type="PLA"), - register=False) - rc, out = self.t.update_snapshot(forget_path=self.forget_file(["Y999"])) - self.assertEqual(rc, 0) - self.assertIn("spliced succession", out) - retired = load_json_file(self.t.retired)["retired"] - self.assertNotIn("Y999", retired) - self.assertEqual(retired["OLD1"], - {"claims": ["VendorA/ZN"], "successor": "NEWZ"}) - - -# --------------------------------------------------------------------------- -# --add-hint -# --------------------------------------------------------------------------- - -class TestAddHint(SyntheticTreeCase): - def add_bbl(self): - self.t.add_vendor("BBL", [ - preset("BPLA @base", filament_id="GFB01", instantiation=False), - preset("BPLA @X1C", inherits="BPLA @base", - compatible_printers=["X1C 0.4 nozzle"]), - ]) - rc, _out = self.t.update_snapshot() - assert rc == 0 - - def test_adds_island_hint(self): - self.add_bbl() - rc, out = self.t.add_hint(["GFB01=AX01"]) - self.assertEqual(rc, 0, out) - self.assertEqual(load_json_file(self.t.retired)["hints"], - {"GFB01": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_rejects_non_island_old(self): - rc, out = self.t.add_hint(["AX01=OGFL99"]) - self.assertEqual(rc, 1) - self.assertIn("not in an island id space", out) - self.assertEqual(afi.load_ledger(self.t.retired)["hints"], {}) - - def test_accepts_absent_island_old(self): - # Island catalogs own ids Orca never shipped (or has released). - rc, out = self.t.add_hint(["GFXX99=AX01"]) - self.assertEqual(rc, 0, out) - self.assertEqual(load_json_file(self.t.retired)["hints"], - {"GFXX99": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_rejects_retired_old(self): - self.t.write_ledger(retired={"ROLD": {"claims": [], "successor": None}}) - rc, out = self.t.add_hint(["ROLD=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("is retired", out) - - def test_rejects_dead_target(self): - self.add_bbl() - rc, out = self.t.add_hint(["GFB01=OFnope99"]) - self.assertEqual(rc, 1) - self.assertIn("not a live tree id", out) - - def test_rejects_malformed_pair(self): - rc, out = self.t.add_hint(["GFB01"]) - self.assertEqual(rc, 1) - self.assertIn('expects "OLD=NEW"', out) - - -class TestRetire(SyntheticTreeCase): - def test_retires_vanished_id_with_successor(self): - rc, out = self.t.retire(["OFOLD001=AX01"]) - self.assertEqual(rc, 0, out) - self.assertEqual(load_json_file(self.t.retired)["retired"]["OFOLD001"], - {"claims": [], "successor": "AX01"}) - errors, out = self.t.check() - self.assertEqual(errors, 0, out) - - def test_rejects_live_old(self): - rc, out = self.t.retire(["AX01=OGFL99"]) - self.assertEqual(rc, 1) - self.assertIn("still lives in the tree", out) - self.assertEqual(afi.load_ledger(self.t.retired)["retired"], {}) - - def test_rejects_declaration_only_old(self): - # The inert-fork case: an id declared by a claim-less root still lives - # in the tree; the declaration must be deleted before --retire. - self.t.write_preset("VendorA", preset("ZOLD @base", filament_id="ZDECL01", - instantiation=False, - filament_vendor="ZV", - filament_type="PLA")) - rc, out = self.t.retire(["ZDECL01=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("still lives in the tree", out) - - def test_rejects_island_space_old(self): - rc, out = self.t.retire(["GFXX99=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("reserved id space", out) - - def test_rejects_user_space_old(self): - rc, out = self.t.retire(["P1234ABC=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("reserved id space", out) - - def test_rejects_already_retired_old(self): - self.t.write_ledger(retired={"ROLD": {"claims": [], "successor": None}}) - rc, out = self.t.retire(["ROLD=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("already retired", out) - - def test_rejects_hinted_old(self): - self.t.write_ledger(hints={"HOLD": "AX01"}) - rc, out = self.t.retire(["HOLD=AX01"]) - self.assertEqual(rc, 1) - self.assertIn("hint key", out) - - def test_rejects_dead_successor(self): - rc, out = self.t.retire(["OFOLD001=OFnope99"]) - self.assertEqual(rc, 1) - self.assertIn("not a live tree id", out) - - def test_rejects_malformed_pair(self): - rc, out = self.t.retire(["OFOLD001"]) - self.assertEqual(rc, 1) - self.assertIn('expects "OLD=NEW"', out) - - # --------------------------------------------------------------------------- # default run: mint + insert # --------------------------------------------------------------------------- @@ -1373,24 +949,6 @@ class TestRemint(SyntheticTreeCase): a = load_json_file(self.t.preset_path("VendorA", "APLA @base")) self.assertEqual(a["filament_id"], want) - def test_blocked_by_retired_id(self): - want0 = afi.generate_filament_id(*self.TRIPLE) - self.t.write_ledger(retired={want0: {"claims": [], "successor": None}}) - changed, errors, _out = self.t.remint(["VendorA"]) - self.assertEqual((changed, errors), (1, 0)) - root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) - self.assertEqual(root["filament_id"], - afi.generate_filament_id(*self.TRIPLE, salt=1)) - - def test_blocked_by_hint_key(self): - want0 = afi.generate_filament_id(*self.TRIPLE) - self.t.write_ledger(hints={want0: "AX01"}) - changed, errors, _out = self.t.remint(["VendorA"]) - self.assertEqual((changed, errors), (1, 0)) - root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) - self.assertEqual(root["filament_id"], - afi.generate_filament_id(*self.TRIPLE, salt=1)) - def test_blocked_by_other_triple_occurrence(self): want0 = afi.generate_filament_id(*self.TRIPLE) self.t.add_vendor("VendorB", [ @@ -1481,63 +1039,11 @@ class TestRealTree(unittest.TestCase): self.assertEqual(analysis["missing_effective"], []) self.assertEqual(analysis["read_errors"], []) - # Code<->ledger lockstep for the Qidi box (plan v4 SS2): the QD_* literals - # QidiPrinterAgent::map_filament_type_to_setting_id returns must stay - # retired ledger keys whose chains end at a live preset id, because the - # agent resolves them through resolve_filament_id_succession() at runtime. - def test_qidi_agent_fallback_ids_resolve_through_ledger(self): - cpp = os.path.join(REPO_ROOT, "src", "slic3r", "Utils", "QidiPrinterAgent.cpp") - with open(cpp, encoding="utf-8") as f: - src = f.read() - m = re.search( - r"map_filament_type_to_setting_id\(const std::string& filament_type\)" - r"\s*\{(.*?)\n\}", src, re.DOTALL) - self.assertIsNotNone(m, "map_filament_type_to_setting_id not found in QidiPrinterAgent.cpp") - qd_ids = re.findall(r'return "(QD_[0-9_]+)";', m.group(1)) - self.assertTrue(qd_ids, "no QD_* literals parsed from map_filament_type_to_setting_id") - ledger = afi.load_ledger(afi.RETIRED_PATH) - live = set(afi.analyze_tree(REAL_PROFILES)["ids"]) - for fid in qd_ids: - self.assertIn(fid, ledger["retired"], f'"{fid}" must be a retired ledger key') - status, node = afi.follow_succession( - fid, set(), ledger["retired"], ledger["hints"], live) - self.assertEqual( - status, "live", - f'"{fid}" succession must end at a live id (got {status} at "{node}")') - - # --------------------------------------------------------------------------- # review-fix regressions # --------------------------------------------------------------------------- class TestReviewFixes(SyntheticTreeCase): - def test_update_snapshot_refuses_retired_id_reuse(self): - fid = afi.generate_filament_id("LV", "PLA", "LONER") - self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, - instantiation=False, - filament_vendor="LV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", - compatible_printers=["P1 0.4 nozzle"])) - rc, _ = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.t.remove_preset("VendorA", "LONER @base") - self.t.remove_preset("VendorA", "LONER @P1") - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 0, out) - self.assertIn(fid, afi.load_retired(self.t.retired)) - # Resurrect the same id: --update-snapshot must refuse, not sanction. - self.t.write_preset("VendorA", preset("LONER @base", filament_id=fid, - instantiation=False, - filament_vendor="LV", - filament_type="PLA")) - self.t.write_preset("VendorA", preset("LONER @P1", inherits="LONER @base", - compatible_printers=["P1 0.4 nozzle"])) - rc, out = self.t.update_snapshot() - self.assertEqual(rc, 1) - self.assertIn("retired", out) - self.assertNotIn(fid, load_json_file(self.t.snapshot)["ids"]) - def test_check3_skips_of_id_inherited_from_other_vendor(self): # An OFL family carries its own minted OF id and a vendor tunes it # correctly (same base name, non-empty printers). The new claim must @@ -1565,7 +1071,7 @@ class TestReviewFixes(SyntheticTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_check7c_prints_expected_mint(self): + def test_check6c_prints_expected_mint(self): self.t.write_preset("VendorA", preset("Orphan PLA @P1", compatible_printers=["P1 0.4 nozzle"], filament_vendor="OV", diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 7306d0db07..304c8957d5 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -572,60 +572,6 @@ std::string generate_preset_setting_id(const std::string& vendor, const std::str return std::string(out, 16); } -std::string follow_filament_id_succession(const std::string& id, const std::map<std::string, std::string>& forwards) -{ - auto it = forwards.find(id); - if (it == forwards.end()) - return std::string(); - std::set<std::string> visited { id }; - std::string current = id; - while (it != forwards.end() && visited.insert(it->second).second) { - current = it->second; - it = forwards.find(current); - } - // it == end(): current is the live end of the chain; otherwise the ledger is - // cyclic and current is the last id reached before a repeat. - return current; -} - -const std::map<std::string, std::string>& filament_id_succession_map() -{ - // Loaded once; C++11 magic-static initialization makes this thread-safe. - // Succession is a best-effort miss-path fallback, so a missing or corrupt - // ledger is not an error for the client - it just yields an empty map. - static const std::map<std::string, std::string> forwards = []() { - std::map<std::string, std::string> map; - const std::string path = Slic3r::resources_dir() + "/profiles/retired_filament_ids.json"; - boost::nowide::ifstream file(path.c_str()); - if (!file.is_open()) { - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": cannot open " << path; - return map; - } - try { - nlohmann::json ledger; - file >> ledger; - if (ledger.contains("retired") && ledger["retired"].is_object()) - for (auto& [old_id, entry] : ledger["retired"].items()) - if (entry.is_object() && entry.contains("successor") && entry["successor"].is_string()) - map[old_id] = entry["successor"].get<std::string>(); - if (ledger.contains("hints") && ledger["hints"].is_object()) - for (auto& [old_id, target] : ledger["hints"].items()) - if (target.is_string()) - map[old_id] = target.get<std::string>(); - } catch (...) { - BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ": failed to parse " << path; - map.clear(); - } - return map; - }(); - return forwards; -} - -std::string resolve_filament_id_succession(const std::string& id) -{ - return follow_filament_id_succession(id, filament_id_succession_map()); -} - std::string Preset::get_iot_type_string(Preset::Type type) { switch (type) { diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index ca1513a4bb..c9b3197a6f 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -101,23 +101,6 @@ std::string generate_preset_setting_id(const std::string& vendor, const std::string& type, const std::string& name); -// Succession forwarding for retired/renamed filament_ids, backed by the shipped -// ledger resources/profiles/retired_filament_ids.json. Consulted on a filament_id -// resolution miss only, so live ids always resolve natively first. -// -// Pure chain walk over `forwards` (old id -> successor). Returns the final id of the -// chain, or an empty string when `id` has no entry. Cycle-guarded: on a malformed -// cyclic ledger it stops at the last id reached before any repeat (a self-loop -// returns `id` itself). -std::string follow_filament_id_succession(const std::string& id, - const std::map<std::string, std::string>& forwards); -// Forwarding map loaded once (thread-safe) from the ledger, merging -// "retired" {id -> non-null successor} and "hints" {island-owned id -> live id}. -// A missing or corrupt file yields an empty map. -const std::map<std::string, std::string>& filament_id_succession_map(); -// Convenience: follow_filament_id_succession(id, filament_id_succession_map()). -std::string resolve_filament_id_succession(const std::string& id); - enum ConfigFileType { CONFIG_FILE_TYPE_UNKNOWN, diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index c6cd6d28dd..5542191964 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -801,12 +801,6 @@ std::optional<FilamentBaseInfo> PresetBundle::get_filament_by_filament_id(const } } } - // Miss: a retired/renamed id may forward to a live successor through the shipped - // succession ledger. resolve() returns a chain-final id, so the retry below cannot - // recurse further (a malformed cyclic ledger yields a non-final id, rejected here). - const std::string successor = resolve_filament_id_succession(filament_id); - if (!successor.empty() && resolve_filament_id_succession(successor).empty()) - return get_filament_by_filament_id(successor, printer_name); return std::nullopt; } @@ -3420,15 +3414,6 @@ void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info) auto iter = std::find_if(filaments.begin(), filaments.end(), [this, &filament_id](auto &f) { return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == filament_id; }); warn_ambiguous_filament_id_match(filaments, iter, filament_id); - if (iter == filaments.end()) { - // Retired/renamed ids forward to a live successor through the shipped succession ledger. - const std::string successor = resolve_filament_id_succession(filament_id); - if (!successor.empty()) { - iter = std::find_if(filaments.begin(), filaments.end(), - [this, &successor](auto &f) { return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == successor; }); - warn_ambiguous_filament_id_match(filaments, iter, successor); - } - } if (iter == filaments.end()) { BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << boost::format(": filament_id %1% not found or system or compatible") % filament_id; auto filament_type = ams.opt_string("filament_type", 0u); @@ -3532,16 +3517,6 @@ unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfi has_type |= f.config.opt_string("filament_type", 0u) == filament_type; return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == filament_id; }); warn_ambiguous_filament_id_match(filaments, iter, filament_id); - if (iter == filaments.end()) { - // Retired/renamed ids forward to a live successor through the shipped succession - // ledger (has_type is already complete: the miss above scanned every preset). - const std::string successor = resolve_filament_id_succession(filament_id); - if (!successor.empty()) { - iter = std::find_if(filaments.begin(), filaments.end(), [this, &successor](auto &f) { - return f.is_compatible && filaments.get_preset_base(f) == &f && f.filament_id == successor; }); - warn_ambiguous_filament_id_match(filaments, iter, successor); - } - } if (iter == filaments.end()) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": filament_id %1% not found or system or compatible") % filament_id; if (!filament_type.empty()) { diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 76e2ed0b2b..3ce8c1bb81 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -69,7 +69,7 @@ static wxString nozzle_id_code_to_string(int code) } } -static wxString get_preset_name_by_filament_id(std::string filament_id, bool follow_succession = true) +static wxString get_preset_name_by_filament_id(std::string filament_id) { auto preset_bundle = wxGetApp().preset_bundle; auto collection = &preset_bundle->filaments; @@ -103,12 +103,6 @@ static wxString get_preset_name_by_filament_id(std::string filament_id, bool fol } } } - if (preset_name.empty() && follow_succession) { - // Retired/renamed ids forward to a live successor through the shipped succession ledger. - const std::string successor = resolve_filament_id_succession(filament_id); - if (!successor.empty()) - preset_name = get_preset_name_by_filament_id(successor, false); - } return preset_name; } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 2e814a84e2..b28e410557 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2764,22 +2764,14 @@ std::string MachineObject::setting_id_to_type(std::string setting_id, std::strin std::string type; PresetBundle* preset_bundle = GUI::wxGetApp().preset_bundle; if (preset_bundle) { - auto lookup_system_type = [preset_bundle](const std::string &id) { - std::string display_filament_type; - for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { - if (it->filament_id.compare(id) == 0 && it->is_system) { - it->config.get_filament_type(display_filament_type); - break; - } + for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { + + if (it->filament_id.compare(setting_id) == 0 && it->is_system) { + std::string display_filament_type; + it->config.get_filament_type(display_filament_type); + type = display_filament_type; + break; } - return display_filament_type; - }; - type = lookup_system_type(setting_id); - if (type.empty()) { - // Retired/renamed ids forward to a live successor through the shipped succession ledger. - const std::string successor = resolve_filament_id_succession(setting_id); - if (!successor.empty()) - type = lookup_system_type(successor); } } diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 338095b462..837f4ebe0c 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -556,13 +556,6 @@ bool PresetComboBox::add_ams_filaments(std::string selected, bool alias_name) } auto iter = std::find_if(filaments.begin(), filaments.end(), [&filament_id, this](auto &f) { return f.is_compatible && m_collection->get_preset_base(f) == &f && f.filament_id == filament_id; }); - if (iter == filaments.end()) { - // Retired/renamed ids forward to a live successor through the shipped succession ledger. - const std::string successor = resolve_filament_id_succession(filament_id); - if (!successor.empty()) - iter = std::find_if(filaments.begin(), filaments.end(), - [&successor, this](auto &f) { return f.is_compatible && m_collection->get_preset_base(f) == &f && f.filament_id == successor; }); - } if (iter == filaments.end()) { auto filament_type = tray.opt_string("filament_type", 0u); if (!filament_type.empty()) { diff --git a/src/slic3r/Utils/QidiPrinterAgent.cpp b/src/slic3r/Utils/QidiPrinterAgent.cpp index 22b8d37735..6b05480194 100644 --- a/src/slic3r/Utils/QidiPrinterAgent.cpp +++ b/src/slic3r/Utils/QidiPrinterAgent.cpp @@ -188,13 +188,7 @@ bool QidiPrinterAgent::fetch_slot_info(const std::string& base_url, } else if (!setting_id.empty() && has_visible_base_preset(bundle->filaments, setting_id)) { tray.tray_info_idx = setting_id; } else { - // Retired QD_* protocol ids forward to their minted successors via the shipped ledger. - const std::string successor = setting_id.empty() ? std::string() - : resolve_filament_id_succession(setting_id); - if (!successor.empty() && has_visible_base_preset(bundle->filaments, successor)) - tray.tray_info_idx = successor; - else - tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); + tray.tray_info_idx = bundle->filaments.filament_id_by_type(tray.tray_type); } // Look up color from dictionary @@ -330,10 +324,6 @@ void QidiPrinterAgent::parse_filament_sections(const std::string& content, std:: std::string QidiPrinterAgent::map_filament_type_to_setting_id(const std::string& filament_type) { - // These QD_* protocol ids no longer appear on any preset: they are retired ledger keys - // that parse_box_status resolves through resolve_filament_id_succession(). Each literal - // must stay a ledger key whose chain ends at a live preset id — - // scripts/tests/test_filament_id.py parses this function and enforces that. const std::string upper = trim_and_upper(filament_type); if (upper == "PLA") { diff --git a/task.md b/task.md deleted file mode 100644 index b563759767..0000000000 --- a/task.md +++ /dev/null @@ -1,13 +0,0 @@ -check commit c2e91cb86ce013dc0486419f21620975c220c3be and it's related PR. -currently most of the system profiles didn't follow the Bambu's profiles rule of filemant id. -we want to come up a rule for filament id generation for all vendors and a fixing plan for existing system profiles so that there is no ambiguous filament ids for any given printer. - -We have two major goals: -### goal 1 -figure out a strategy or filament id generation rule. we want to follow bambu's rule but they only care about their own profiles while we need to consider generic. and the filament id generation rule should be easy to understand and maintain for not just us but other profiles creators too. either a determistic rule by using script like setting_id rule. or a documented rule so developers can refer when manually creating profiles. and figure out a way to fix migrate/fix existing filament ids in current profiles. note: bambu profiles shouldn't be touch to maintain interoperbitly with their AMS. - -### goal 2 -in existing system profiles, the ambiguous can caused by different error patterns: -1. legit sub type don't have unique filament id due to copy-paste when creating profiles. in this case, we should assign filament unique filament id to it. -2. generic and specific filament with legit same filament id adds same printer into it's compatible_printers. in this case we should remove the printer from the generic filament's compatible_printers. -3. we need to figure out more error patterns and figure out the fix strategy diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index 7093f44405..bf3981f519 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -16,7 +16,6 @@ add_executable(${_TEST_NAME}_tests test_toolordering_nozzle_group.cpp test_preset_bundle_loading.cpp test_preset_setting_id.cpp - test_filament_id_succession.cpp test_preset_diff.cpp test_vendor_cache.cpp test_elephant_foot_compensation.cpp diff --git a/tests/libslic3r/test_filament_id_succession.cpp b/tests/libslic3r/test_filament_id_succession.cpp deleted file mode 100644 index 12fa82f9bb..0000000000 --- a/tests/libslic3r/test_filament_id_succession.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include <catch2/catch_all.hpp> - -#include "libslic3r/Preset.hpp" - -using namespace Slic3r; - -// Pure-function coverage of the succession chain walk (follow_filament_id_succession). -// The ledger-file loader (filament_id_succession_map) is deliberately untested here so -// the test carries no resources-dir dependency. -TEST_CASE("filament_id succession follows forwarding chains", "[Preset][filament_id]") { - SECTION("empty map returns empty") { - const std::map<std::string, std::string> empty; - CHECK(follow_filament_id_succession("OFabc123", empty).empty()); - CHECK(follow_filament_id_succession("", empty).empty()); - } - - const std::map<std::string, std::string> forwards = { - {"OFold001", "OFnew001"}, - {"OFchainA", "OFchainB"}, - {"OFchainB", "OFchainC"}, - {"OFchainC", "OFlive00"}, - }; - - SECTION("absent id returns empty") { - CHECK(follow_filament_id_succession("GFL99", forwards).empty()); - } - - SECTION("single hop resolves to the successor") { - CHECK(follow_filament_id_succession("OFold001", forwards) == "OFnew001"); - } - - SECTION("multi-hop chain resolves to the live end") { - CHECK(follow_filament_id_succession("OFchainA", forwards) == "OFlive00"); - CHECK(follow_filament_id_succession("OFchainB", forwards) == "OFlive00"); - CHECK(follow_filament_id_succession("OFchainC", forwards) == "OFlive00"); - } - - // QidiPrinterAgent resolves device-composed QD_* protocol ids through this same walk; - // the map key format carries no OF assumption. - SECTION("device-protocol QD_* keys forward like any other id") { - const std::map<std::string, std::string> qd = {{"QD_2_1_11", "OFnew001"}}; - CHECK(follow_filament_id_succession("QD_2_1_11", qd) == "OFnew001"); - CHECK(follow_filament_id_succession("QD_2_1_12", qd).empty()); - } -} - -// Cycles are a ledger-validation error (script check 9) and never ship, but the client -// walk must still terminate on corrupt data: it stops at the last id reached before any -// id would repeat. -TEST_CASE("filament_id succession terminates on malformed cycles", "[Preset][filament_id]") { - SECTION("two-node cycle returns the last id before revisiting") { - const std::map<std::string, std::string> cycle = {{"A", "B"}, {"B", "A"}}; - CHECK(follow_filament_id_succession("A", cycle) == "B"); - CHECK(follow_filament_id_succession("B", cycle) == "A"); - } - - SECTION("cycle entered through a tail stops before re-entering it") { - // T -> A -> B -> C -> A: stops at C, the last id reached before repeating A. - const std::map<std::string, std::string> cycle = { - {"T", "A"}, {"A", "B"}, {"B", "C"}, {"C", "A"}}; - CHECK(follow_filament_id_succession("T", cycle) == "C"); - CHECK(follow_filament_id_succession("A", cycle) == "C"); - } - - SECTION("self-loop returns the id itself") { - const std::map<std::string, std::string> loop = {{"A", "A"}}; - CHECK(follow_filament_id_succession("A", loop) == "A"); - } -} From df101ead91da5643413a291eb2c8bccffa73d2db Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 00:29:52 +0800 Subject: [PATCH 122/164] fix more issues --- .../Creality/machine/Creality K1 SE.json | 2 +- .../Creality/machine/Creality K1C.json | 2 +- .../Creality/machine/Creality K2 Plus.json | 2 +- .../Creality/machine/Creality K2 Pro.json | 2 +- .../Creality/machine/Creality K2.json | 2 +- .../machine/Flashforge Guider 3 Ultra.json | 2 +- .../machine/D12 230 PRO M2 DIRECT.json | 2 +- .../machine/D12 230 PRO SMARTPAD DIRECT.json | 2 +- .../machine/D12 300 PRO M2 DIRECT.json | 2 +- .../machine/D12 300 PRO SMARTPAD DIRECT.json | 2 +- .../machine/D12 500 PRO M2 DIRECT.json | 2 +- .../machine/D12 500 PRO SMARTPAD DIRECT.json | 2 +- .../OrcaSlicer_profile_validator.cpp | 2 +- src/slic3r/Utils/CrealityPrintAgent.cpp | 79 ++++++++-- tests/slic3rutils/CMakeLists.txt | 1 + tests/slic3rutils/test_creality_cfs_match.cpp | 141 ++++++++++++++++++ 16 files changed, 218 insertions(+), 29 deletions(-) create mode 100644 tests/slic3rutils/test_creality_cfs_match.cpp diff --git a/resources/profiles/Creality/machine/Creality K1 SE.json b/resources/profiles/Creality/machine/Creality K1 SE.json index 9f6806ee46..1cb9769e0e 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE.json +++ b/resources/profiles/Creality/machine/Creality K1 SE.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1se_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ABS @K1 SE-all;Generic ASA @Creality K1-all;Generic ASA @K1 SE-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PETG @K1 SE-all;Generic PLA @Creality K1-all;Generic PLA @K1 SE-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic PLA-CF @K1 SE-all;Generic TPU @Creality K1-all;Generic TPU @K1 SE-all" } diff --git a/resources/profiles/Creality/machine/Creality K1C.json b/resources/profiles/Creality/machine/Creality K1C.json index 4283aabfd4..18e80dab92 100644 --- a/resources/profiles/Creality/machine/Creality K1C.json +++ b/resources/profiles/Creality/machine/Creality K1C.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k1c_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Generic ABS @Creality K1-all;Generic ASA @Creality K1-all;Generic PA-CF @Creality K1-all;Generic PC @Creality K1-all;Generic PETG @Creality K1-all;Generic PLA @Creality K1-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic TPU @Creality K1-all" + "default_materials": "Generic ABS @Creality K1-all;Generic ABS @K1C-all;Generic ASA @Creality K1-all;Generic ASA @K1C-all;Generic PA-CF @Creality K1-all;Generic PA-CF @K1C-all;Generic PC @Creality K1-all;Generic PC @K1C-all;Generic PETG @Creality K1-all;Generic PETG @K1C-all;Generic PLA @Creality K1-all;Generic PLA @K1C-all;Generic PLA High Speed @Creality K1-all;Generic PLA Matte @Creality K1-all;Generic PLA Silk @Creality K1-all;Generic PLA-CF @Creality K1-all;Generic PLA-CF @K1C-all;Generic TPU @Creality K1-all;Generic TPU @K1C-all" } diff --git a/resources/profiles/Creality/machine/Creality K2 Plus.json b/resources/profiles/Creality/machine/Creality K2 Plus.json index d70e5e517a..ea4430128a 100644 --- a/resources/profiles/Creality/machine/Creality K2 Plus.json +++ b/resources/profiles/Creality/machine/Creality K2 Plus.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k2plus_buildplate_texture.svg", "hotend_model": "", "default_bed_type": "Textured PEI Plate", - "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ABS @K2 Plus-all;Generic ASA @Creality K2-all;Generic ASA @K2 Plus-all;Generic PETG @Creality K2-all;Generic PETG @K2 Plus-all;Generic PLA @Creality K2-all;Generic PLA @K2 Plus-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality K2 Pro.json b/resources/profiles/Creality/machine/Creality K2 Pro.json index 3df797399b..937117d11d 100644 --- a/resources/profiles/Creality/machine/Creality K2 Pro.json +++ b/resources/profiles/Creality/machine/Creality K2 Pro.json @@ -9,5 +9,5 @@ "bed_texture": "creality_k2pro_buildplate_texture.svg", "default_bed_type": "Textured PEI Plate", "hotend_model": "", - "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ABS @K2 Pro-all;Generic ASA @Creality K2-all;Generic ASA @K2 Pro-all;Generic PETG @Creality K2-all;Generic PETG @K2 Pro-all;Generic PLA @Creality K2-all;Generic PLA @K2 Pro-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Creality/machine/Creality K2.json b/resources/profiles/Creality/machine/Creality K2.json index 3ea29942b7..cc852576fe 100644 --- a/resources/profiles/Creality/machine/Creality K2.json +++ b/resources/profiles/Creality/machine/Creality K2.json @@ -9,5 +9,5 @@ "default_bed_type": "Textured PEI Plate", "bed_texture": "creality_k2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic ABS @Creality K2-all;Generic ASA @Creality K2-all;Generic PETG @Creality K2-all;Generic PLA @Creality K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" + "default_materials": "Generic ABS @Creality K2-all;Generic ABS @K2-all;Generic ASA @Creality K2-all;Generic ASA @K2-all;Generic PETG @Creality K2-all;Generic PETG @K2-all;Generic PLA @Creality K2-all;Generic PLA @K2-all;Generic PLA High Speed @Creality K2-all;Generic PLA Matte @Creality K2-all;Generic PLA Silk @Creality K2-all" } diff --git a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json index c95215a762..a830f2db98 100644 --- a/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json +++ b/resources/profiles/Flashforge/machine/Flashforge Guider 3 Ultra.json @@ -8,5 +8,5 @@ "bed_model": "flashforge_g3u_buildplate_model.stl", "bed_texture": "flashforge_g3u_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic PVA @Flashforge;Generic HIPS @Flashforge;Generic PETG-CF @Flashforge G3U;Generic PETG @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA @Flashforge G3U;Generic ASA @Flashforge G3U;Generic ABS @Flashforge G3U;FusRock PET-CF;FusRock PAHT-CF;FusRock NexPA-CF25;FusRock S-Multi;FusRock S-PAHT;Polymaker CoPA;Polymaker S1" + "default_materials": "FusRock NexPA-CF25;FusRock PAHT-CF;FusRock PAHT-CF @G3U 0.6 Nozzle;FusRock PET-CF;FusRock PET-CF @G3U 0.6 Nozzle;FusRock S-Multi;FusRock S-PAHT;Generic ABS @Flashforge G3U;Generic ABS @Flashforge G3U 0.6 Nozzle;Generic ASA @Flashforge G3U;Generic ASA @Flashforge G3U 0.6 Nozzle;Generic HIPS @Flashforge;Generic HIPS @Flashforge G3U 0.6 Nozzle;Generic PETG @Flashforge G3U;Generic PETG @Flashforge G3U 0.6 Nozzle;Generic PETG @Flashforge G3U 0.8 Nozzle;Generic PETG-CF @Flashforge G3U;Generic PETG-CF @Flashforge G3U 0.6 Nozzle;Generic PETG-CF @Flashforge G3U 0.8 Nozzle;Generic PLA @Flashforge G3U;Generic PLA-CF @Flashforge G3U;Generic PLA-CF @Flashforge G3U 0.6 Nozzle;Generic PLA-CF @Flashforge G3U 0.8 Nozzle;Generic PVA @Flashforge;Polymaker CoPA;Polymaker S1" } diff --git a/resources/profiles/Wanhao France/machine/D12 230 PRO M2 DIRECT.json b/resources/profiles/Wanhao France/machine/D12 230 PRO M2 DIRECT.json index 45e7243ee3..cf912002ee 100644 --- a/resources/profiles/Wanhao France/machine/D12 230 PRO M2 DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 230 PRO M2 DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-230_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/resources/profiles/Wanhao France/machine/D12 230 PRO SMARTPAD DIRECT.json b/resources/profiles/Wanhao France/machine/D12 230 PRO SMARTPAD DIRECT.json index b74b11321e..24a798c531 100644 --- a/resources/profiles/Wanhao France/machine/D12 230 PRO SMARTPAD DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 230 PRO SMARTPAD DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-230_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/resources/profiles/Wanhao France/machine/D12 300 PRO M2 DIRECT.json b/resources/profiles/Wanhao France/machine/D12 300 PRO M2 DIRECT.json index a51f0bafbf..7447f4481b 100644 --- a/resources/profiles/Wanhao France/machine/D12 300 PRO M2 DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 300 PRO M2 DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-300_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/resources/profiles/Wanhao France/machine/D12 300 PRO SMARTPAD DIRECT.json b/resources/profiles/Wanhao France/machine/D12 300 PRO SMARTPAD DIRECT.json index 563d05ca53..8290a99d9e 100644 --- a/resources/profiles/Wanhao France/machine/D12 300 PRO SMARTPAD DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 300 PRO SMARTPAD DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-300_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/resources/profiles/Wanhao France/machine/D12 500 PRO M2 DIRECT.json b/resources/profiles/Wanhao France/machine/D12 500 PRO M2 DIRECT.json index d54d0d6e51..3c85fac7eb 100644 --- a/resources/profiles/Wanhao France/machine/D12 500 PRO M2 DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 500 PRO M2 DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-500_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/resources/profiles/Wanhao France/machine/D12 500 PRO SMARTPAD DIRECT.json b/resources/profiles/Wanhao France/machine/D12 500 PRO SMARTPAD DIRECT.json index 2fe6842bc8..3588797494 100644 --- a/resources/profiles/Wanhao France/machine/D12 500 PRO SMARTPAD DIRECT.json +++ b/resources/profiles/Wanhao France/machine/D12 500 PRO SMARTPAD DIRECT.json @@ -8,5 +8,5 @@ "bed_model": "Wanhao_D12-500_buildplate_model.stl", "bed_texture": "D12_texture.png", "hotend_model": "Wanhao D12-300_hotend.stl", - "default_materials": "YUMI PLA Bowden;YUMI PETG;" + "default_materials": "YUMI PLA Direct Drive;YUMI PETG;" } diff --git a/src/dev-utils/OrcaSlicer_profile_validator.cpp b/src/dev-utils/OrcaSlicer_profile_validator.cpp index 21c6b33180..67d0ba444d 100644 --- a/src/dev-utils/OrcaSlicer_profile_validator.cpp +++ b/src/dev-utils/OrcaSlicer_profile_validator.cpp @@ -392,7 +392,7 @@ int main(int argc, char* argv[]) ("generate_presets,g", po::value<bool>()->default_value(false), "Generate user presets for mock test") ("slice,s", po::bool_switch()->default_value(false), "Slice a two-colour cube through every printer to expand all custom g-code (catches placeholder/flow errors that static checks miss). Off unless this flag is present.") ("outdir,o", po::value<std::string>()->default_value(""), "With -s, also save each printer's g-code to this folder (as <vendor>__<printer>.gcode) for manual inspection. Optional.") - ("check_filament_subtypes,f", po::bool_switch()->default_value(false), "Also flag printers with duplicate (ambiguous) filament subtypes. Off unless this flag is present.") + ("check_filament_subtypes,f", po::bool_switch()->default_value(true), "Also flag printers with duplicate (ambiguous) filament subtypes. Off unless this flag is present.") ("log_level,l", po::value<int>()->default_value(2), "Log level. Optional, default is 2 (warning). Higher values produce more detailed logs."); // clang-format on diff --git a/src/slic3r/Utils/CrealityPrintAgent.cpp b/src/slic3r/Utils/CrealityPrintAgent.cpp index 55d99ff07b..9b3bd5843e 100644 --- a/src/slic3r/Utils/CrealityPrintAgent.cpp +++ b/src/slic3r/Utils/CrealityPrintAgent.cpp @@ -8,7 +8,9 @@ #include <nlohmann/json.hpp> #include <algorithm> +#include <cctype> #include <map> +#include <set> namespace Slic3r { @@ -16,6 +18,12 @@ namespace { constexpr const char* CrealityPrintAgent_VERSION = "0.1.0"; +std::string to_lower(std::string s) +{ + for (auto& c : s) c = static_cast<char>(std::tolower(static_cast<unsigned char>(c))); + return s; +} + bool has_visible_base_preset(const PresetCollection& filaments, const std::string& filament_id) { for (const auto& p : filaments.get_presets()) { @@ -27,19 +35,47 @@ bool has_visible_base_preset(const PresetCollection& filaments, const std::strin return false; } +// Lower-case words of a preset name with the "@scope" suffix dropped: +// "Generic PLA Matte @Creality K2-all" -> {"generic", "pla", "matte"}. +std::vector<std::string> name_words(const std::string& name) +{ + std::vector<std::string> words; + std::string word; + for (char c : name.substr(0, name.find('@'))) { + if (std::isalnum(static_cast<unsigned char>(c))) { + word += static_cast<char>(std::tolower(static_cast<unsigned char>(c))); + } else if (!word.empty()) { + words.push_back(word); + word.clear(); + } + } + if (!word.empty()) + words.push_back(word); + return words; +} + } // namespace // Score visible compatible filament presets against the CFS spool metadata and // return the best-matching filament_id. Scoring: // +20 preset name contains brand_name as a substring // (e.g. "Hyper PLA" in "Hyper PLA @Creality K2 0.4 nozzle") -// +10 preset name contains the vendor substring (e.g. "Creality") -// Tiebreak: prefer the SYSTEM (shipped) preset over user copies. Brand- -// specific system presets carry their own filament_id; user copies of -// generic presets inherit a generic filament_id from their parent, so -// preferring the user copy can collapse a brand-specific match back to -// "Generic PLA" via the inherited id. Plus: this code targets upstream -// OrcaSlicer where shipping the user's local tuning would be wrong. +// +10 the preset belongs to the spool's vendor - by its owning VendorProfile OR by +// its name. The profile test is what finds the vendor's own generics, which are +// named "Generic <material> @<scope>" and do not repeat the vendor; the name test +// still finds a third party filament shipped inside that vendor's bundle, which +// carries the bundle owner's profile but names its real brand. +// -5 per word of the preset name the spool never mentioned ("generic" excepted - +// it marks the unbranded base product rather than a qualifier), so the least +// specific preset that still explains the spool wins. Without it a spool +// reporting only "PLA" scores "Generic PLA High Speed" and "Generic PLA Matte" +// exactly as high as "Generic PLA"; those are three products with three +// filament_ids, so whichever sorted first won and the printer got the wrong +// one. Applied after the score gate, so it only reorders genuine matches. +// Tiebreak: prefer the SYSTEM (shipped) preset over user copies, then by name so the +// winner never depends on how std::sort leaves equal elements. User copies of generic +// presets inherit a generic filament_id from their parent, so preferring the user copy +// can collapse a brand-specific match back to "Generic PLA" via the inherited id. // Requires the preset's declared filament_type to equal the spool's base type // (PLA/PETG/ABS/...) so we never auto-pick a PETG preset for a PLA spool. // Falls back to filaments.filament_id_by_type(base_type) when nothing scores. @@ -48,15 +84,17 @@ std::string CrealityPrintAgent::match_filament_preset(const PresetCollection& fi const std::string& brand_name, const std::string& base_type) { - auto to_lower = [](std::string s) { - for (auto& c : s) c = static_cast<char>(std::tolower(static_cast<unsigned char>(c))); - return s; - }; - const std::string vendor_lower = to_lower(vendor); const std::string brand_lower = to_lower(brand_name); const std::string type_lower = to_lower(base_type); + // Everything the spool told us about itself, as words. A word in a preset's name + // that is not in here is a qualifier the spool never claimed. + std::set<std::string> spool_words{"generic"}; + for (const std::string& src : {brand_lower, vendor_lower, type_lower}) + for (auto& w : name_words(src)) + spool_words.insert(std::move(w)); + struct Match { const Preset* preset; int score; @@ -83,11 +121,20 @@ std::string CrealityPrintAgent::match_filament_preset(const PresetCollection& fi int score = 0; if (!brand_lower.empty() && name_lower.find(brand_lower) != std::string::npos) score += 20; - if (!vendor_lower.empty() && name_lower.find(vendor_lower) != std::string::npos) + // Profile OR name - neither alone covers both the vendor's own generics and the + // third party filaments shipped inside its bundle. See the header comment. + if (!vendor_lower.empty() + && ((p.vendor != nullptr && to_lower(p.vendor->name) == vendor_lower) + || name_lower.find(vendor_lower) != std::string::npos)) score += 10; - if (score > 0) - matches.push_back({&p, score, !p.is_system && !p.is_default}); + if (score == 0) continue; + + for (const auto& w : name_words(p.name)) + if (spool_words.count(w) == 0) + score -= 5; + + matches.push_back({&p, score, !p.is_system && !p.is_default}); } if (matches.empty()) { @@ -105,7 +152,7 @@ std::string CrealityPrintAgent::match_filament_preset(const PresetCollection& fi [](const Match& a, const Match& b) { if (a.score != b.score) return a.score > b.score; if (a.is_user != b.is_user) return !a.is_user; // prefer system over user - return false; + return a.preset->name < b.preset->name; // keep the winner deterministic }); BOOST_LOG_TRIVIAL(info) diff --git a/tests/slic3rutils/CMakeLists.txt b/tests/slic3rutils/CMakeLists.txt index ebbd62b820..eca1af2b86 100644 --- a/tests/slic3rutils/CMakeLists.txt +++ b/tests/slic3rutils/CMakeLists.txt @@ -1,6 +1,7 @@ get_filename_component(_TEST_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) add_executable(${_TEST_NAME}_tests ${_TEST_NAME}_tests_main.cpp + test_creality_cfs_match.cpp test_dev_mapping.cpp test_filament_bitmap_utils.cpp test_network_versions.cpp diff --git a/tests/slic3rutils/test_creality_cfs_match.cpp b/tests/slic3rutils/test_creality_cfs_match.cpp new file mode 100644 index 0000000000..06606684b7 --- /dev/null +++ b/tests/slic3rutils/test_creality_cfs_match.cpp @@ -0,0 +1,141 @@ +#include <catch2/catch_test_macros.hpp> + +#include "libslic3r/Preset.hpp" +#include "libslic3r/PresetBundle.hpp" +#include "libslic3r/PrintConfig.hpp" +#include "slic3r/Utils/CrealityPrintAgent.hpp" + +using namespace Slic3r; + +namespace { + +// A standalone filament collection, built the same way PresetBundle builds its own, so the +// CFS matcher can be exercised without loading the shipped profiles or touching a printer. +struct FilamentTestCollection : public PresetCollection +{ + FilamentTestCollection() + : PresetCollection(Preset::TYPE_FILAMENT, Preset::filament_options(), + static_cast<const PrintRegionConfig &>(FullPrintConfig::defaults())) + {} +}; + +struct FilamentSpec +{ + const char *name; + const char *filament_id; + const char *filament_type; + bool is_library = false; // belongs to the Orca Filament Library, not the printer vendor + bool is_system = true; +}; + +// Load the specs into the collection, then stamp the fields the matcher reads. Done in a second +// pass because load_preset() keeps m_presets sorted, so a reference taken during the first pass +// can be left dangling by a later load. +void populate(PresetCollection &filaments, const std::vector<FilamentSpec> &specs, + const VendorProfile &vendor, const VendorProfile &library) +{ + for (const FilamentSpec &spec : specs) { + DynamicPrintConfig config(filaments.default_preset().config); + config.option<ConfigOptionStrings>("filament_type", true)->values = {spec.filament_type}; + filaments.load_preset(std::string(), spec.name, config, /*select=*/false); + } + for (auto it = filaments.begin(); it != filaments.end(); ++it) { + const auto spec = std::find_if(specs.begin(), specs.end(), + [&](const FilamentSpec &s) { return it->name == s.name; }); + if (spec == specs.end()) + continue; + it->filament_id = spec->filament_id; + it->vendor = spec->is_library ? &library : &vendor; + it->is_system = spec->is_system; + it->is_default = false; + it->is_visible = true; + it->is_compatible = true; + } +} + +// What a stock K2 with a 0.4 nozzle sees after the filament_id rework: the vendor's plain generics +// carry no "Creality" in their name (they are "Generic <material> @<scope>"), while the subtype +// variants that do keep a vendor scope are separate products with their own filament_ids. +const std::vector<FilamentSpec> k2_stock_nozzle{ + {"AliZ PLA @System", "ALIZ-PLA", "PLA", /*is_library=*/true}, + {"Generic PETG @K2-all", "PETG-GENERIC", "PETG"}, + {"Generic PLA @K2-all", "PLA-GENERIC", "PLA"}, + {"Generic PLA High Speed @Creality K2-all","PLA-HS", "PLA"}, + {"Generic PLA Matte @Creality K2-all", "PLA-MATTE", "PLA"}, + {"Generic PLA Silk @Creality K2-all", "PLA-SILK", "PLA"}, + {"Hyper PLA @K2-all", "PLA-HYPER", "PLA"}, +}; + +std::string match(const std::vector<FilamentSpec> &specs, const std::string &spool_vendor, + const std::string &spool_name, const std::string &base_type) +{ + FilamentTestCollection filaments; + VendorProfile vendor("Creality"); + VendorProfile library(PresetBundle::ORCA_FILAMENT_LIBRARY); + vendor.name = "Creality"; + library.name = PresetBundle::ORCA_FILAMENT_LIBRARY; + populate(filaments, specs, vendor, library); + return CrealityPrintAgent::match_filament_preset(filaments, spool_vendor, spool_name, base_type); +} + +} // namespace + +// Orca: a CFS spool that names no recognised product must map to the vendor's plain generic. The +// subtype variants ("High Speed", "Matte", "Silk") score just as well on vendor alone, and since +// each is its own product with its own filament_id, letting one of them win sends the printer the +// id of a filament the user does not have loaded. +TEST_CASE("An unbranded CFS spool maps to the vendor's plain generic, not a subtype", "[CFS][Creality]") +{ + CHECK(match(k2_stock_nozzle, "Creality", "", "PLA") == "PLA-GENERIC"); +} + +// Orca: the vendor bonus reads the preset's owning VendorProfile. "Generic PETG @K2-all" does not +// repeat "Creality" anywhere in its name, so a name based vendor test scored nothing for it and the +// spool fell through to the collection wide first-of-type - an unrelated third party PETG. +TEST_CASE("A CFS spool matches its vendor's presets even when the name omits the vendor", "[CFS][Creality]") +{ + CHECK(match(k2_stock_nozzle, "Creality", "", "PETG") == "PETG-GENERIC"); +} + +TEST_CASE("A branded CFS spool still beats the generic", "[CFS][Creality]") +{ + CHECK(match(k2_stock_nozzle, "Creality", "Hyper PLA", "PLA") == "PLA-HYPER"); +} + +// Orca: the specificity penalty must not stop a spool that genuinely asks for a subtype from +// getting it - only unclaimed qualifiers are penalised. +TEST_CASE("A CFS spool that names a subtype gets that subtype", "[CFS][Creality]") +{ + CHECK(match(k2_stock_nozzle, "Creality", "Generic PLA Silk", "PLA") == "PLA-SILK"); + CHECK(match(k2_stock_nozzle, "Creality", "Generic PLA Matte", "PLA") == "PLA-MATTE"); +} + +// Orca: a third party spool matches no preset by brand or vendor, so it falls back to the first +// visible preset of the same type rather than returning nothing. Which one that is depends on the +// collection's ordering, so only the type is pinned here - what matters is that a PLA spool never +// comes back empty and never comes back as another material. +TEST_CASE("A CFS spool from an unknown vendor falls back to a preset of the same type", "[CFS][Creality]") +{ + const std::string matched = match(k2_stock_nozzle, "SomeOtherBrand", "", "PLA"); + REQUIRE_FALSE(matched.empty()); + const auto spec = std::find_if(k2_stock_nozzle.begin(), k2_stock_nozzle.end(), + [&](const FilamentSpec &s) { return matched == s.filament_id; }); + REQUIRE(spec != k2_stock_nozzle.end()); + CHECK(std::string(spec->filament_type) == "PLA"); +} + + +// Orca: Creality's bundle also ships third party filaments ("eSUN PLA+ @K2 Plus-all"). Those carry +// Creality's VendorProfile but name their real brand, so the vendor bonus has to accept a name +// match as well as a profile match - otherwise an eSUN spool stops matching its own preset. +TEST_CASE("A third party spool matches its preset inside the printer vendor's bundle", "[CFS][Creality]") +{ + const std::vector<FilamentSpec> with_third_party{ + {"Generic PLA @K2-all", "PLA-GENERIC", "PLA"}, + {"eSUN PLA+ @K2 Plus-all", "ESUN-PLA", "PLA"}, // shipped by Creality, branded eSUN + }; + CHECK(match(with_third_party, "eSUN", "", "PLA") == "ESUN-PLA"); + // ... and a Creality spool still prefers Creality's own generic over the eSUN preset, which + // carries Creality's profile too but adds a brand word the spool never claimed. + CHECK(match(with_third_party, "Creality", "", "PLA") == "PLA-GENERIC"); +} From a4382ce3b335c7be6367dfc996510d723ceaa0c1 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 01:06:04 +0800 Subject: [PATCH 123/164] reanme --- resources/profiles/TwoTrees.json | 4 ++-- ...K1.json => Generic TPU 95A @TwoTrees SK1.json} | 6 +++--- .../profiles/TwoTrees/machine/TwoTrees SK1.json | 2 +- scripts/filament_id_snapshot.json | 15 +++------------ 4 files changed, 9 insertions(+), 18 deletions(-) rename resources/profiles/TwoTrees/filament/{Generic 95A TPU @TwoTrees SK1.json => Generic TPU 95A @TwoTrees SK1.json} (85%) diff --git a/resources/profiles/TwoTrees.json b/resources/profiles/TwoTrees.json index 5c8349181f..3cd77c911b 100644 --- a/resources/profiles/TwoTrees.json +++ b/resources/profiles/TwoTrees.json @@ -81,8 +81,8 @@ ], "filament_list": [ { - "name": "Generic 95A TPU @TwoTrees SK1", - "sub_path": "filament/Generic 95A TPU @TwoTrees SK1.json" + "name": "Generic TPU 95A @TwoTrees SK1", + "sub_path": "filament/Generic TPU 95A @TwoTrees SK1.json" }, { "name": "Generic HS PLA @TwoTrees SK1", diff --git a/resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json b/resources/profiles/TwoTrees/filament/Generic TPU 95A @TwoTrees SK1.json similarity index 85% rename from resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json rename to resources/profiles/TwoTrees/filament/Generic TPU 95A @TwoTrees SK1.json index 46b9d1f100..6f0221b92c 100644 --- a/resources/profiles/TwoTrees/filament/Generic 95A TPU @TwoTrees SK1.json +++ b/resources/profiles/TwoTrees/filament/Generic TPU 95A @TwoTrees SK1.json @@ -1,11 +1,11 @@ { "type": "filament", - "name": "Generic 95A TPU @TwoTrees SK1", + "name": "Generic TPU 95A @TwoTrees SK1", "inherits": "fdm_filament_tpu", "renamed_from": "TwoTrees Generic 95A TPU @SK1;TwoTrees Generic 95A TPU SK1", "from": "system", - "setting_id": "LR7ufBEnGhieNdB7", - "filament_id": "OF6MMR8P", + "setting_id": "hAqaYYR7xzkcr2xC", + "filament_id": "OFjiXpyf", "instantiation": "true", "compatible_printers": [ "TwoTrees SK1 0.4 nozzle" diff --git a/resources/profiles/TwoTrees/machine/TwoTrees SK1.json b/resources/profiles/TwoTrees/machine/TwoTrees SK1.json index 964d47c813..5674e7c408 100644 --- a/resources/profiles/TwoTrees/machine/TwoTrees SK1.json +++ b/resources/profiles/TwoTrees/machine/TwoTrees SK1.json @@ -8,5 +8,5 @@ "bed_model": "TwoTrees SK1_buildplate_model.stl", "bed_texture": "TwoTrees SK1_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic 95A TPU @TwoTrees SK1;TwoTrees Generic PETG @SK1;Generic HS PLA @TwoTrees SK1;TwoTrees Generic PLA @SK1;TwoTrees Generic PLA-CF @SK1;TwoTrees Generic PLA Matte @SK1;TwoTrees Generic PLA Silk @SK1" + "default_materials": "Generic TPU 95A @TwoTrees SK1;TwoTrees Generic PETG @SK1;Generic HS PLA @TwoTrees SK1;TwoTrees Generic PLA @SK1;TwoTrees Generic PLA-CF @SK1;TwoTrees Generic PLA Matte @SK1;TwoTrees Generic PLA Silk @SK1" } diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index efaffb0654..9a4b4a2abd 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1776,9 +1776,6 @@ "Elegoo/Elegoo PETG Translucent", "OrcaFilamentLibrary/Elegoo PETG Translucent" ], - "OF6MMR8P": [ - "TwoTrees/Generic 95A TPU" - ], "OF6MOPWx": [ "Creality/Generic PET", "Elegoo/Generic PET", @@ -3662,7 +3659,8 @@ "Cubicon/Cubicon PLA" ], "OFjiXpyf": [ - "Qidi/Generic TPU 95A" + "Qidi/Generic TPU 95A", + "TwoTrees/Generic TPU 95A" ], "OFjkdnyN": [ "Snapmaker/Snapmaker Dual TPU" @@ -6879,8 +6877,8 @@ "Tiertime/Tiertime PVA@300HS", "Tiertime/Tiertime TPU 95A", "Tiertime/Tiertime TPU 95A@300HS", - "TwoTrees/Generic 95A TPU @TwoTrees SK1", "TwoTrees/Generic HS PLA @TwoTrees SK1", + "TwoTrees/Generic TPU 95A @TwoTrees SK1", "Volumic/Désactivé", "Volumic/PA6 CF20 (Performance)", "Volumic/PETG ESD (Performance)", @@ -7574,13 +7572,6 @@ "Elegoo PETG Translucent" ] ], - "OF6MMR8P": [ - [ - "Generic", - "TPU", - "Generic 95A TPU" - ] - ], "OF6MOPWx": [ [ "Generic", From 6a13cc2ab6a3a9ceb610aa5cfb481c881d6b3a7a Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Fri, 4 Sep 2026 00:25:21 +0300 Subject: [PATCH 124/164] Fix Detach from parent checkbox not updating visually (#15520) Refresh detach-from-parent checkbox state Allow the detach checkbox toggle event to propagate to the custom CheckBox control so it refreshes its bitmap after the value changes. --- src/slic3r/GUI/SavePresetDialog.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index b3f34a8cb9..65b75c3d92 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -149,7 +149,10 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox // Set initial state (unchecked by default) detach_checkbox->SetValue(m_detach); // Bind the checkbox event to update the detach state for this item - detach_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, detach_checkbox](wxCommandEvent&) { m_detach = detach_checkbox->GetValue(); }); + detach_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, detach_checkbox](wxCommandEvent& event) { + m_detach = detach_checkbox->GetValue(); + event.Skip(); // Let CheckBox update its bitmap for the new state. + }); detach_label->SetForegroundColour(wxColour("#363636")); From c57ea0ec67591fa986961dcc59b19185fe190ba6 Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Fri, 4 Sep 2026 00:28:26 +0300 Subject: [PATCH 125/164] Fix nozzle type undo and unsaved changes tracking (#15515) --- src/slic3r/GUI/Tab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 644c5258a1..e650c45126 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -5130,7 +5130,7 @@ void TabPrinter::build_fff() optgroup->append_single_option_line("adaptive_bed_mesh_margin", "printer_basic_information_adaptive_bed_mesh#mesh-margin"); optgroup = page->new_optgroup(L("Accessory"), "param_accessory"); - optgroup->append_single_option_line("nozzle_type", "printer_basic_information_accessory#nozzle-type"); + optgroup->append_single_option_line("nozzle_type", "printer_basic_information_accessory#nozzle-type", 0); optgroup->append_single_option_line("nozzle_hrc", "printer_basic_information_accessory#nozzle-hrc"); optgroup->append_single_option_line("auxiliary_fan", "printer_basic_information_accessory#auxiliary-part-cooling-fan"); optgroup->append_single_option_line("fan_direction"); From b370d8ef316f77bfe61ba651c3f5b07510fff56b Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Thu, 3 Sep 2026 16:35:10 -0500 Subject: [PATCH 126/164] build: clear 31 warnings - copy and move declarations (#15507) --- src/libslic3r/Measure.hpp | 9 --------- src/libslic3r/Orient.cpp | 1 - src/libslic3r/Point.hpp | 2 -- src/libslic3r/Preset.hpp | 14 +++++++------- src/libslic3r/SLA/Hollowing.hpp | 3 --- src/libslic3r/Support/SupportCommon.cpp | 4 ---- src/libslic3r/Support/TreeSupport.hpp | 5 +++-- src/libslic3r/calib.hpp | 20 +++----------------- src/slic3r/GUI/PartPlate.hpp | 10 ---------- 9 files changed, 13 insertions(+), 55 deletions(-) diff --git a/src/libslic3r/Measure.hpp b/src/libslic3r/Measure.hpp index 2f378f5778..0374c5d4aa 100644 --- a/src/libslic3r/Measure.hpp +++ b/src/libslic3r/Measure.hpp @@ -33,15 +33,6 @@ public: SurfaceFeature(const Vec3d& pt) : m_type{SurfaceFeatureType::Point}, m_pt1{pt} {} - SurfaceFeature(const SurfaceFeature& sf){ - this->clone(sf); - volume = sf.volume; - plane_indices = sf.plane_indices; - world_tran = sf.world_tran; - world_plane_features = sf.world_plane_features; - origin_surface_feature = sf.origin_surface_feature; - } - void clone(const SurfaceFeature &sf) { m_type = sf.get_type(); diff --git a/src/libslic3r/Orient.cpp b/src/libslic3r/Orient.cpp index ae1954087d..7d54048176 100644 --- a/src/libslic3r/Orient.cpp +++ b/src/libslic3r/Orient.cpp @@ -39,7 +39,6 @@ namespace orientation { float height_to_bottom_hull_ratio = 0; // affects stability, the lower the better float unprintability = 0; Eigen::VectorXf areas_cooling; - CostItems(CostItems const & other) = default; CostItems() = default; static std::string field_names() { return " overhang, bottom, bothull, contour, A_laf, A_prj, unprintability"; diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index 039f361eaa..21e5355fc5 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -195,7 +195,6 @@ public: Point(int64_t x, int32_t y) : Vec2crd(coord_t(x), coord_t(y)) {} Point(int32_t x, int64_t y) : Vec2crd(coord_t(x), coord_t(y)) {} Point(double x, double y) : Vec2crd(coord_t(std::round(x)), coord_t(std::round(y))) {} - Point(const Point &rhs) { *this = rhs; } explicit Point(const Vec2d& rhs) : Vec2crd(coord_t(std::round(rhs.x())), coord_t(std::round(rhs.y()))) {} // This constructor allows you to construct Point from Eigen expressions // This constructor has to be implicit (non-explicit) to allow implicit conversion from Eigen expressions. @@ -278,7 +277,6 @@ public: Point3(int32_t x, int32_t y, int32_t z = 0) : Vec3crd(coord_t(x), coord_t(y), coord_t(z)) {} Point3(int64_t x, int64_t y, int64_t z = 0) : Vec3crd(coord_t(x), coord_t(y), coord_t(z)) {} Point3(double x, double y, double z = 0.0) : Vec3crd(coord_t(std::round(x)), coord_t(std::round(y)), coord_t(std::round(z))) {} - Point3(const Point3 &rhs) { *this = rhs; } explicit Point3(const Vec2crd& vec2crd, coord_t z = 0) : Vec3crd(vec2crd.x(), vec2crd.y(), z) {} explicit Point3(const Vec3crd &vec3crd) : Vec3crd(vec3crd) {} // This constructor allows you to construct Point from Eigen expressions diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index c9b3197a6f..22089be0b6 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -840,13 +840,12 @@ public: protected: PresetCollection() = default; - // Copy constructor and copy operators are not to be used from outside PresetBundle, - // as the Profile::vendor points to an instance of VendorProfile stored at parent PresetBundle! - PresetCollection(const PresetCollection &other) = default; - //BBS: add operator= logic insteadof default + // Deleted by the std::recursive_mutex member. PresetBundle copies by assignment. + PresetCollection(const PresetCollection &other) = delete; + //BBS: hand-written because m_mutex cannot be copy-assigned. PresetCollection& operator=(const PresetCollection &other); - // After copying a collection with the default operators above, call this function - // to adjust Profile::vendor pointers. + // Copying leaves every Preset::vendor pointing into the source bundle's vendor map. + // This re-points them at the matching entries in vendors. void update_vendor_ptrs_after_copy(const VendorMap &vendors); // Select a preset, if it exists. If it does not exist, select an invalid (-1) index. @@ -984,7 +983,8 @@ public: bool only_default_printers() const; private: PrinterPresetCollection() = default; - PrinterPresetCollection(const PrinterPresetCollection &other) = default; + // Deleted along with the base copy constructor. + PrinterPresetCollection(const PrinterPresetCollection &other) = delete; PrinterPresetCollection& operator=(const PrinterPresetCollection &other) = default; friend class PresetBundle; diff --git a/src/libslic3r/SLA/Hollowing.hpp b/src/libslic3r/SLA/Hollowing.hpp index b57513fe72..f6beaadb24 100644 --- a/src/libslic3r/SLA/Hollowing.hpp +++ b/src/libslic3r/SLA/Hollowing.hpp @@ -44,9 +44,6 @@ struct DrainHole : pos(p), normal(n), radius(r), height(h), failed(fl) {} - DrainHole(const DrainHole& rhs) : - DrainHole(rhs.pos, rhs.normal, rhs.radius, rhs.height, rhs.failed) {} - bool operator==(const DrainHole &sp) const; bool operator!=(const DrainHole &sp) const { return !(sp == (*this)); } diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index 0c7a4b832e..b6df219866 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -1234,10 +1234,6 @@ static void modulate_extrusion_by_overlapping_layers( (fragment_end.is_start ? &polyline.points.front() : &polyline.points.back()); } private: - ExtrusionPathFragmentEndPointAccessor& operator=(const ExtrusionPathFragmentEndPointAccessor&) { - return *this; - } - const std::vector<ExtrusionPathFragment> &m_path_fragments; }; const coord_t search_radius = 7; diff --git a/src/libslic3r/Support/TreeSupport.hpp b/src/libslic3r/Support/TreeSupport.hpp index e0446ad5f1..61e030ef86 100644 --- a/src/libslic3r/Support/TreeSupport.hpp +++ b/src/libslic3r/Support/TreeSupport.hpp @@ -204,8 +204,9 @@ public: clear_nodes(); } - TreeSupportData(TreeSupportData&&) = default; - TreeSupportData& operator=(TreeSupportData&&) = default; + // Deleted by the tbb::spin_mutex member. + TreeSupportData(TreeSupportData&&) = delete; + TreeSupportData& operator=(TreeSupportData&&) = delete; TreeSupportData(const TreeSupportData&) = delete; TreeSupportData& operator=(const TreeSupportData&) = delete; diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp index ed0f76ee86..abca5e79dc 100644 --- a/src/libslic3r/calib.hpp +++ b/src/libslic3r/calib.hpp @@ -91,29 +91,15 @@ class CaliPresetInfo { public: int tray_id; - int extruder_id; - NozzleVolumeType nozzle_volume_type; - BedType bed_type; + int extruder_id = 0; + NozzleVolumeType nozzle_volume_type{nvtStandard}; + BedType bed_type{btDefault}; float nozzle_diameter; int nozzle_pos_id{-1}; std::string nozzle_sn; std::string filament_id; std::string setting_id; std::string name; - - CaliPresetInfo &operator=(const CaliPresetInfo &other) - { - this->tray_id = other.tray_id; - this->extruder_id = other.extruder_id; - this->nozzle_volume_type = other.nozzle_volume_type; - this->nozzle_diameter = other.nozzle_diameter; - this->nozzle_pos_id = other.nozzle_pos_id; - this->nozzle_sn = other.nozzle_sn; - this->filament_id = other.filament_id; - this->setting_id = other.setting_id; - this->name = other.name; - return *this; - } }; struct PrinterCaliInfo diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index 5760320b49..58c0f95b87 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -675,16 +675,6 @@ public: offset = Vec2d(0, 0); } - TexturePart(const TexturePart& part) { - this->x = part.x; - this->y = part.y; - this->w = part.w; - this->h = part.h; - this->offset = part.offset; - this->buffer = part.buffer; - this->filename = part.filename; - this->texture = part.texture; - } void update_pos(float xx, float yy, float ww, float hh) { x = xx; y = yy; From 7acea3ed09b19b58fe0e1fbe2980ad417ddc2764 Mon Sep 17 00:00:00 2001 From: TheLegendTubaGuy <95944177+thelegendtubaguy@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:42:31 -0500 Subject: [PATCH 127/164] Honor symbolic default bed types for new printers (#15273) Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- resources/profiles/Snapmaker.json | 2 +- .../profiles/Snapmaker/machine/fdm_U1.json | 2 +- src/libslic3r/Preset.cpp | 16 +++++--- src/libslic3r/PresetBundle.cpp | 10 +++++ .../libslic3r/test_preset_bundle_loading.cpp | 38 +++++++++++++++++++ 5 files changed, 60 insertions(+), 8 deletions(-) diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 9a6fab7942..65b1d12a3a 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.09", + "version": "02.04.00.10", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ diff --git a/resources/profiles/Snapmaker/machine/fdm_U1.json b/resources/profiles/Snapmaker/machine/fdm_U1.json index 717215b507..0b3d89a303 100644 --- a/resources/profiles/Snapmaker/machine/fdm_U1.json +++ b/resources/profiles/Snapmaker/machine/fdm_U1.json @@ -184,7 +184,7 @@ "nozzle_type": "undefine", "auxiliary_fan": "0", "support_multi_bed_types": "1", - "default_bed_type": "4", + "default_bed_type": "Textured PEI Plate", "printable_area": [ "0.5x1", "270.5x1", diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 304c8957d5..235ea66ad2 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -983,15 +983,19 @@ BedType Preset::get_default_bed_type(PresetBundle* preset_bundle) if (config.has("default_bed_type") && !config.opt_string("default_bed_type").empty()) { try { std::string str_bed_type = config.opt_string("default_bed_type"); - - // Try parsing as integer first (legacy format) + BedType bed_type; + if (ConfigOptionEnum<BedType>::from_string(str_bed_type, bed_type) && + bed_type > btDefault && bed_type < btCount) { + return bed_type; + } + + // Try parsing as integer (legacy format) int bed_type_value = atoi(str_bed_type.c_str()); - if (bed_type_value > 0) { + if (bed_type_value > 0 && bed_type_value < BedType::btCount) { return BedType(bed_type_value); } - else { - BOOST_LOG_TRIVIAL(error) << "default_bed_type: invalid bed type: " << str_bed_type; - } + + BOOST_LOG_TRIVIAL(error) << "default_bed_type: invalid bed type: " << str_bed_type; return BedType::btPEI; } catch(...) { diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 8e5d565c55..2dfc967e3f 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2920,6 +2920,16 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p // If executed due to a Config Wizard update, preferred_printer contains the first newly installed printer, otherwise nullptr. const Preset *preferred_printer = printers.find_system_preset_by_model_and_variant(preferred_selection.printer_model_id, preferred_selection.printer_variant); printers.select_preset_by_name(preferred_printer ? preferred_printer->name : initial_printer_profile_name, true); + Preset &selected_printer = printers.get_edited_preset(); + if (selected_printer.printer_technology() == ptFFF) { + BedType bed_type = selected_printer.get_default_bed_type(this); + const std::string saved_bed_type = config.get_printer_setting(selected_printer.name, "curr_bed_type"); + const int saved_bed_type_value = atoi(saved_bed_type.c_str()); + if (saved_bed_type_value > btDefault && saved_bed_type_value < btCount) + bed_type = static_cast<BedType>(saved_bed_type_value); + project_config.set_key_value("curr_bed_type", new ConfigOptionEnum<BedType>(bed_type)); + config.set("curr_bed_type", std::to_string(static_cast<int>(bed_type))); + } CNumericLocalesSetter locales_setter; // Orca: load from orca_presets diff --git a/tests/libslic3r/test_preset_bundle_loading.cpp b/tests/libslic3r/test_preset_bundle_loading.cpp index 55c18bfa9e..c75a05949e 100644 --- a/tests/libslic3r/test_preset_bundle_loading.cpp +++ b/tests/libslic3r/test_preset_bundle_loading.cpp @@ -184,6 +184,44 @@ TEST_CASE("Printer extruder count tolerates missing nozzle diameter", "[Preset][ CHECK(bundle.get_printer_extruder_count() == 2); } +TEST_CASE("Selected printer uses its default or saved bed type", "[Preset][Bundle]") +{ + PresetBundle bundle; + Preset& printer = add_inmemory_preset(bundle.printers, "Test Printer"); + printer.is_system = true; + printer.config.option<ConfigOptionString>("printer_model")->value = "TEST-MODEL"; + printer.config.option<ConfigOptionString>("printer_variant")->value = "0.4"; + printer.config.option<ConfigOptionString>("default_bed_type")->value = "Engineering Plate"; + + AppConfig app_config; + app_config.set("curr_bed_type", std::to_string(static_cast<int>(btPTE))); + PresetBundle::PresetPreferences preferred_selection; + BedType expected_bed_type; + + SECTION("New printer uses its symbolic default") { + expected_bed_type = btEP; + preferred_selection = {"TEST-MODEL", "0.4"}; + } + SECTION("Re-enabled printer uses its saved selection") { + expected_bed_type = btPC; + preferred_selection = {"TEST-MODEL", "0.4"}; + app_config.set_printer_setting("Test Printer", "curr_bed_type", + std::to_string(static_cast<int>(expected_bed_type))); + } + SECTION("Existing printer keeps its saved selection after presets reload") { + expected_bed_type = btPCT; + app_config.set("presets", PRESET_PRINTER_NAME, "Test Printer"); + app_config.set_printer_setting("Test Printer", "curr_bed_type", + std::to_string(static_cast<int>(expected_bed_type))); + } + + bundle.load_selections(app_config, preferred_selection); + bundle.export_selections(app_config); + + CHECK(bundle.project_config.opt_enum<BedType>("curr_bed_type") == expected_bed_type); + CHECK(app_config.get_printer_setting("Test Printer", "curr_bed_type") == std::to_string(static_cast<int>(expected_bed_type))); +} + TEST_CASE("find_preset resolves a system preset's renamed_from", "[Preset][Rename]") { RenameTestCollection coll; From 57ce18d70d0e6084884d2cb8bcf07792a852e74b Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Fri, 4 Sep 2026 11:31:42 +0800 Subject: [PATCH 128/164] [CLI]: CLI Argument Parsing Fixes (#15478) * Reject invalid CLI argument values instead of silently accepting them * Add read_cli accept/reject tests * Update Option Type for LogFile argument * Add read_cli vector option tests * Accept common bool spellings on the CLI, cover --logfile in tests * Add unit tests for truthy bool parsing --- src/OrcaSlicer.cpp | 2 +- src/libslic3r/Config.cpp | 53 +++++++- src/libslic3r/PrintConfig.cpp | 8 +- tests/libslic3r/test_config.cpp | 223 ++++++++++++++++++++++++++++++++ 4 files changed, 274 insertions(+), 12 deletions(-) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 33669abcf2..ab26a3f7c8 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -7384,7 +7384,7 @@ void CLI::print_help(bool include_print_options, PrinterTechnology printer_techn << std::endl << "Print setting priorities:" << std::endl << "\t1) setting values from the command line (highest priority)"<< std::endl - << "\t2) setting values loaded with --load_settings and --load_filaments" << std::endl + << "\t2) setting values loaded with --load-settings and --load-filaments" << std::endl << "\t3) setting values loaded from 3mf(lowest priority)" << std::endl; /*if (include_print_options) { diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index 242e4bb146..a2756a9f8e 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -1715,6 +1715,36 @@ const ConfigOption* DynamicConfig::optptr(const t_config_option_key &opt_key) co return (it == options.end()) ? nullptr : it->second.get(); } +// ConfigOptionBool(s)::deserialize only understands "1" and "0", but scripts commonly spell CLI +// flags as --opt=true or --opt=no. Map the usual spellings onto what deserialize() accepts, per +// comma-separated item so vector options keep working, and pass anything else through unchanged +// so a genuine typo is still reported as invalid. +static std::string normalize_cli_bool_value(const std::string &value) +{ + static const char* true_values[] = { "1", "true", "yes", "on", "enabled" }; + static const char* false_values[] = { "0", "false", "no", "off", "disabled" }; + + auto matches = [](const std::string &item, const char* const* candidates, size_t count) { + return std::any_of(candidates, candidates + count, [&item](const char* candidate) { return boost::iequals(item, candidate); }); + }; + + std::string normalized; + std::istringstream is(value); + std::string item; + while (std::getline(is, item, ',')) { + boost::trim(item); + if (! normalized.empty()) + normalized += ","; + if (matches(item, true_values, std::size(true_values))) + normalized += "1"; + else if (matches(item, false_values, std::size(false_values))) + normalized += "0"; + else + normalized += item; + } + return normalized; +} + bool DynamicConfig::read_cli(int argc, const char* const argv[], t_config_option_keys* extra, t_config_option_keys* keys) { // cache the CLI option => opt_key mapping @@ -1812,17 +1842,32 @@ bool DynamicConfig::read_cli(int argc, const char* const argv[], t_config_option // to the end of the value. if (opt_base->type() == coBools && value.empty()) static_cast<ConfigOptionBools*>(opt_base)->values.push_back(!no); - else + else { // Deserialize any other vector value (ConfigOptionInts, Floats, Percents, Points) the same way // they get deserialized from an .ini file. For ConfigOptionStrings, that means that the C-style unescape // will be applied for values enclosed in quotes, while values non-enclosed in quotes are left to be // unescaped by the calling shell. - opt_vector->deserialize(value, true); + const std::string vector_value = opt_base->type() == coBools ? normalize_cli_bool_value(value) : value; + bool deserialized = false; + try { + deserialized = opt_vector->deserialize(vector_value, true); + } catch (const std::exception &ex) { + // e.g. "nil" deserialized into a non-nullable vector option throws instead of + // returning false - treat that the same as any other invalid value here. + deserialized = false; + } + if (! deserialized) { + boost::nowide::cerr << "Invalid value for option --" << token.c_str() << std::endl; + return false; + } + } } else if (opt_base->type() == coBool) { if (value.empty()) static_cast<ConfigOptionBool*>(opt_base)->value = !no; - else - opt_base->deserialize(value); + else if (! opt_base->deserialize(normalize_cli_bool_value(value))) { + boost::nowide::cerr << "Invalid value for option --" << token.c_str() << std::endl; + return false; + } } else if (opt_base->type() == coString) { // Do not unescape single string values, the unescaping is left to the calling shell. static_cast<ConfigOptionString*>(opt_base)->value = value; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 29362fcf39..7d93341b98 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -11990,13 +11990,11 @@ CLIActionsConfigDef::CLIActionsConfigDef() def = this->add("load_defaultfila", coBool); def->label = L("Load default filaments"); def->tooltip = L("Load first filament as default for those not loaded."); - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(false)); def = this->add("min_save", coBool); def->label = L("Minimum save"); def->tooltip = L("Export 3MF with minimum size."); - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(false)); def = this->add("mtcpp", coInt); @@ -12022,7 +12020,6 @@ CLIActionsConfigDef::CLIActionsConfigDef() def = this->add("normative_check", coBool); def->label = L("Normative check"); def->tooltip = L("Check the normative items."); - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(true)); /*def = this->add("help_fff", coBool); @@ -12289,7 +12286,7 @@ CLIMiscConfigDef::CLIMiscConfigDef() def->cli_params = "level"; def->set_default_value(new ConfigOptionInt(1)); - def = this->add("logfile", coInt); + def = this->add("logfile", coString); def->label = L("Log file"); def->tooltip = L("Redirects debug logging to file.\n"); def->cli_params = "file"; @@ -12337,7 +12334,6 @@ CLIMiscConfigDef::CLIMiscConfigDef() def = this->add("skip_modified_gcodes", coBool); def->label = L("Skip modified G-code in 3MF"); def->tooltip = L("Skip the modified G-code in 3MF from printer or filament presets."); - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(false)); def = this->add("makerlab_name", coString); @@ -12367,14 +12363,12 @@ CLIMiscConfigDef::CLIMiscConfigDef() def = this->add("allow_newer_file", coBool); def->label = L("Allow 3MF with newer version to be sliced"); def->tooltip = L("Allow 3MF with newer version to be sliced."); - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(false)); def = this->add("allow_mix_temp", coBool); // internal use only, don't need translation def->label = "Allow filaments with high/low temperature to be printed together"; def->tooltip = "Allow filaments with high/low temperature to be printed together."; - def->cli_params = "option"; def->set_default_value(new ConfigOptionBool(false)); } diff --git a/tests/libslic3r/test_config.cpp b/tests/libslic3r/test_config.cpp index 12b161322d..2627c3cda0 100644 --- a/tests/libslic3r/test_config.cpp +++ b/tests/libslic3r/test_config.cpp @@ -828,3 +828,226 @@ SCENARIO("ConfigOptionVector::set_to_index throws on incompatible type", "[Confi } } } + +TEST_CASE("read_cli applies valid values and collects non-option arguments", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--nozzle-temperature", "210,190", "--reduce-crossing-wall=1", "model.3mf"}; + REQUIRE(config.read_cli(5, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionInts>("nozzle_temperature")->values == std::vector<int>{210, 190}); + REQUIRE(config.opt<ConfigOptionBool>("reduce_crossing_wall")->value); + REQUIRE(extra == t_config_option_keys{"model.3mf"}); + REQUIRE(keys == t_config_option_keys{"nozzle_temperature", "reduce_crossing_wall"}); +} + +TEST_CASE("read_cli rejects nil for a non-nullable vector option", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--nozzle-temperature", "nil"}; + REQUIRE_FALSE(config.read_cli(3, argv, &extra, &keys)); +} + +TEST_CASE("read_cli rejects an invalid boolean value", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--reduce-crossing-wall=maybe"}; + REQUIRE_FALSE(config.read_cli(2, argv, &extra, &keys)); +} + +TEST_CASE("read_cli accepts the common spellings of a boolean value", "[Config]") { + const auto [text, expected] = GENERATE(table<const char*, bool>({ + {"--reduce-crossing-wall=1", true }, + {"--reduce-crossing-wall=true", true }, + {"--reduce-crossing-wall=Yes", true }, + {"--reduce-crossing-wall=on", true }, + {"--reduce-crossing-wall=enabled", true }, + {"--reduce-crossing-wall=TRUE", true }, + {"--reduce-crossing-wall=oN", true }, + {"--reduce-crossing-wall=0", false}, + {"--reduce-crossing-wall=false", false}, + {"--reduce-crossing-wall=No", false}, + {"--reduce-crossing-wall=off", false}, + {"--reduce-crossing-wall=disabled", false}, + {"--reduce-crossing-wall=FALSE", false}, + {"--reduce-crossing-wall=DiSaBlEd", false}, + })); + + DYNAMIC_SECTION(text) { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", text}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBool>("reduce_crossing_wall")->value == expected); + } +} + +TEST_CASE("read_cli accepts the common boolean spellings inside a bools vector", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=true,no,1"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBools>("filament_soluble")->values == std::vector<unsigned char>{1, 0, 1}); +} + +TEST_CASE("read_cli trims whitespace around boolean spellings", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--reduce-crossing-wall= true ", "--filament-soluble= true , no ,1"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBool>("reduce_crossing_wall")->value); + REQUIRE(config.opt<ConfigOptionBools>("filament_soluble")->values == std::vector<unsigned char>{1, 0, 1}); +} + +TEST_CASE("read_cli normalizes boolean spellings when a bools vector is repeated", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=true", "--filament-soluble=off"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBools>("filament_soluble")->values == std::vector<unsigned char>{1, 0}); +} + +TEST_CASE("read_cli keeps nil alongside boolean spellings in a nullable bools vector", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--enable-overhang-speed=nil,yes,off"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + auto* opt = config.opt<ConfigOptionBoolsNullable>("enable_overhang_speed"); + REQUIRE(opt != nullptr); + REQUIRE(opt->values.size() == 3); + REQUIRE(opt->is_nil(0)); + REQUIRE(opt->values[1] == 1); + REQUIRE(opt->values[2] == 0); +} + +TEST_CASE("read_cli rejects an empty item inside a bools vector", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=true,,1"}; + REQUIRE_FALSE(config.read_cli(2, argv, &extra, &keys)); +} + +TEST_CASE("read_cli rejects an unknown spelling next to a valid one in a bools vector", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=true,affirmative"}; + REQUIRE_FALSE(config.read_cli(2, argv, &extra, &keys)); +} + +// The normalization lives in read_cli's boolean branches, so options of other types keep the +// value verbatim - a path named "on" or a colour named "true" must not turn into "1". +TEST_CASE("read_cli leaves boolean spellings alone for non-boolean options", "[Config]") { + SECTION("string option") { + Slic3r::DynamicPrintAndCLIConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--logfile=true"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionString>("logfile")->value == "true"); + } + SECTION("strings vector option") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-colour=on;off"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionStrings>("filament_colour")->values == std::vector<std::string>{"on", "off"}); + } +} + +TEST_CASE("read_cli treats a bare boolean flag as true without consuming the next argument", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--reduce-crossing-wall", "model.3mf"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBool>("reduce_crossing_wall")->value); + REQUIRE(extra == t_config_option_keys{"model.3mf"}); +} + +TEST_CASE("read_cli rejects an invalid scalar numeric value", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--top-shell-layers", "several"}; + REQUIRE_FALSE(config.read_cli(3, argv, &extra, &keys)); +} + +TEST_CASE("read_cli appends values when a vector option is repeated", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--nozzle-temperature", "210", "--nozzle-temperature", "190,200"}; + REQUIRE(config.read_cli(5, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionInts>("nozzle_temperature")->values == std::vector<int>{210, 190, 200}); + // the key is recorded once, on first use + REQUIRE(keys == t_config_option_keys{"nozzle_temperature"}); +} + +TEST_CASE("read_cli parses a bools vector given in the --flag=values form", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=1,0,1"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBools>("filament_soluble")->values == std::vector<unsigned char>{1, 0, 1}); +} + +TEST_CASE("read_cli rejects an invalid value inside a bools vector", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble=1,maybe"}; + REQUIRE_FALSE(config.read_cli(2, argv, &extra, &keys)); +} + +TEST_CASE("read_cli appends true for a bare bools vector flag", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-soluble"}; + REQUIRE(config.read_cli(2, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionBools>("filament_soluble")->values == std::vector<unsigned char>{1}); +} + +TEST_CASE("read_cli splits a strings vector on semicolons and unescapes quoted items", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-colour", "#FF0000;\"a\\nb\";#00FF00"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + auto& values = config.opt<ConfigOptionStrings>("filament_colour")->values; + REQUIRE(values == std::vector<std::string>{"#FF0000", "a\nb", "#00FF00"}); +} + +TEST_CASE("read_cli rejects a strings vector with an unterminated quote", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-colour", "\"oops"}; + REQUIRE_FALSE(config.read_cli(3, argv, &extra, &keys)); +} + +TEST_CASE("read_cli parses a points vector in the NxM coordinate form", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--printable-area", "0x0,200x0,200x200,0x200"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + auto& points = config.opt<ConfigOptionPoints>("printable_area")->values; + REQUIRE(points.size() == 4); + REQUIRE_THAT(points[1].x(), Catch::Matchers::WithinAbs(200.0, 1e-9)); + REQUIRE_THAT(points[1].y(), Catch::Matchers::WithinAbs(0.0, 1e-9)); + REQUIRE_THAT(points[3].x(), Catch::Matchers::WithinAbs(0.0, 1e-9)); + REQUIRE_THAT(points[3].y(), Catch::Matchers::WithinAbs(200.0, 1e-9)); +} + +// logfile is a CLI-only option, so it needs the config type whose def pulls in cli_misc_config_def. +TEST_CASE("read_cli stores the log file path as a string", "[Config]") { + Slic3r::DynamicPrintAndCLIConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--logfile", "orca.log"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + REQUIRE(config.opt<ConfigOptionString>("logfile")->value == "orca.log"); +} + +TEST_CASE("read_cli accepts nil entries for a nullable vector option", "[Config]") { + Slic3r::DynamicPrintConfig config; + t_config_option_keys extra, keys; + const char* argv[] = {"orca-slicer", "--filament-retraction-length", "nil,2.5"}; + REQUIRE(config.read_cli(3, argv, &extra, &keys)); + auto* opt = config.opt<ConfigOptionFloatsNullable>("filament_retraction_length"); + REQUIRE(opt != nullptr); + REQUIRE(opt->values.size() == 2); + REQUIRE(opt->is_nil(0)); + REQUIRE_FALSE(opt->is_nil(1)); + REQUIRE_THAT(opt->values[1], Catch::Matchers::WithinAbs(2.5, 1e-9)); +} From 25e020f5c927350a7491aef21c318604d00d1abc Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 13:31:19 +0800 Subject: [PATCH 129/164] Add the generated map from Orca filament ids to Bambu catalog ids scripts/update_bambu_filament_ids.py derives resources/printers/bambu_filament_ids.json from BambuStudio's own shipped BBL bundle (cloned from upstream, or read from a local checkout via --bambustudio-dir), pairing each Bambu catalog id with the Orca filament_id we already ship for that product where we ship one, else a freshly generated one. Nothing reads the map yet; later work uses it to translate ids at the Bambu printer boundary. --- resources/printers/bambu_filament_ids.json | 607 +++++++++++++++++++++ scripts/tests/test_filament_id.py | 133 +++++ scripts/update_bambu_filament_ids.py | 291 ++++++++++ 3 files changed, 1031 insertions(+) create mode 100644 resources/printers/bambu_filament_ids.json create mode 100644 scripts/update_bambu_filament_ids.py diff --git a/resources/printers/bambu_filament_ids.json b/resources/printers/bambu_filament_ids.json new file mode 100644 index 0000000000..b21946f1a3 --- /dev/null +++ b/resources/printers/bambu_filament_ids.json @@ -0,0 +1,607 @@ +{ + "bambustudio_commit": "66e405477", + "filaments": { + "OF0UJcb6": { + "bambu_id": "GFG60", + "name": "PolyLite PETG", + "type": "PETG", + "vendor": "Polymaker" + }, + "OF0wBGNx": { + "bambu_id": "GFB51", + "name": "Bambu ASA-CF", + "type": "ASA-CF", + "vendor": "Bambu Lab" + }, + "OF1UNk9P": { + "bambu_id": "GFP97", + "name": "Generic PP", + "type": "PP", + "vendor": "Generic" + }, + "OF2GCW1l": { + "bambu_id": "GFSNL08", + "name": "SUNLU PETG", + "type": "PETG", + "vendor": "SUNLU" + }, + "OF2VFe4J": { + "bambu_id": "GFN04", + "name": "Bambu PAHT-CF", + "type": "PA-CF", + "vendor": "Bambu Lab" + }, + "OF342jVN": { + "bambu_id": "GFA10", + "name": "Bambu PLA Tough+", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OF4RvVuU": { + "bambu_id": "GFT02", + "name": "Bambu PPS-CF", + "type": "PPS-CF", + "vendor": "Bambu Lab" + }, + "OF54B0S0": { + "bambu_id": "GFN06", + "name": "Bambu PPA-CF", + "type": "PPA-CF", + "vendor": "Bambu Lab" + }, + "OF5CgdDq": { + "bambu_id": "GFL00", + "name": "PolyLite PLA", + "type": "PLA", + "vendor": "Polymaker" + }, + "OF6rdQ6M": { + "bambu_id": "GFT98", + "name": "Generic PPS-CF", + "type": "PPS-CF", + "vendor": "Generic" + }, + "OF74KeQR": { + "bambu_id": "GFR98", + "name": "Generic PHA", + "type": "PHA", + "vendor": "Generic" + }, + "OF7lOgYF": { + "bambu_id": "GFG96", + "name": "Generic PETG HF", + "type": "PETG", + "vendor": "Generic" + }, + "OF8Tlg47": { + "bambu_id": "GFN96", + "name": "Generic PPA-GF", + "type": "PPA-GF", + "vendor": "Generic" + }, + "OF8tPByX": { + "bambu_id": "GFN97", + "name": "Generic PPA-CF", + "type": "PPA-CF", + "vendor": "Generic" + }, + "OF9OlTWH": { + "bambu_id": "GFA07", + "name": "Bambu PLA Marble", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFAnyRUI": { + "bambu_id": "GFS02", + "name": "Bambu Support For PLA", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFBSW57R": { + "bambu_id": "GFA11", + "name": "Bambu PLA Aero", + "type": "PLA-AERO", + "vendor": "Bambu Lab" + }, + "OFBw6eEG": { + "bambu_id": "GFL05", + "name": "Overture Matte PLA", + "type": "PLA", + "vendor": "Overture" + }, + "OFCD8qiU": { + "bambu_id": "GFR99", + "name": "Generic EVA", + "type": "EVA", + "vendor": "Generic" + }, + "OFDGigEI": { + "bambu_id": "GFA13", + "name": "Bambu PLA Dynamic", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFDSrzZ8": { + "bambu_id": "GFL99", + "name": "Generic PLA", + "type": "PLA", + "vendor": "Generic" + }, + "OFDvXujf": { + "bambu_id": "GFS99", + "name": "Generic PVA", + "type": "PVA", + "vendor": "Generic" + }, + "OFDxfPgH": { + "bambu_id": "GFA08", + "name": "Bambu PLA Sparkle", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFEGNJD4": { + "bambu_id": "GFA05", + "name": "Bambu PLA Silk", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFEkPBwx": { + "bambu_id": "GFA12", + "name": "Bambu PLA Glow", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFEswT5W": { + "bambu_id": "GFA50", + "name": "Bambu PLA-CF", + "type": "PLA-CF", + "vendor": "Bambu Lab" + }, + "OFFNYwWR": { + "bambu_id": "GFN03", + "name": "Bambu PA-CF", + "type": "PA-CF", + "vendor": "Bambu Lab" + }, + "OFFbSnCD": { + "bambu_id": "GFA17", + "name": "Bambu PLA Translucent", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFFvzqcd": { + "bambu_id": "GFG00", + "name": "Bambu PETG Basic", + "type": "PETG", + "vendor": "Bambu Lab" + }, + "OFHWSM21": { + "bambu_id": "GFL54", + "name": "Fiberon PET-CF", + "type": "PET-CF", + "vendor": "Polymaker" + }, + "OFHa48An": { + "bambu_id": "GFT01", + "name": "Bambu PET-CF", + "type": "PET-CF", + "vendor": "Bambu Lab" + }, + "OFHmPYRy": { + "bambu_id": "GFSNL04", + "name": "SUNLU PLA+ 2.0", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFIBbYO5": { + "bambu_id": "GFU02", + "name": "Bambu TPU for AMS", + "type": "TPU-AMS", + "vendor": "Bambu Lab" + }, + "OFIfnzxC": { + "bambu_id": "GFS05", + "name": "Bambu Support For PLA/PETG", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFKhMPeX": { + "bambu_id": "GFC00", + "name": "Bambu PC", + "type": "PC", + "vendor": "Bambu Lab" + }, + "OFLJ8S6I": { + "bambu_id": "GFSNL07", + "name": "SUNLU Wood PLA", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFLPAxz3": { + "bambu_id": "GFB98", + "name": "Generic ASA", + "type": "ASA", + "vendor": "Generic" + }, + "OFLakOUI": { + "bambu_id": "GFC99", + "name": "Generic PC", + "type": "PC", + "vendor": "Generic" + }, + "OFMTK0UC": { + "bambu_id": "GFS03", + "name": "Bambu Support For PA/PET", + "type": "PA", + "vendor": "Bambu Lab" + }, + "OFMUWNkp": { + "bambu_id": "GFSNL03", + "name": "SUNLU PLA+", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFMjtqTC": { + "bambu_id": "GFA16", + "name": "Bambu PLA Wood", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFNk8bxk": { + "bambu_id": "GFN08", + "name": "Bambu PA6-GF", + "type": "PA-GF", + "vendor": "Bambu Lab" + }, + "OFOvv91M": { + "bambu_id": "GFB60", + "name": "PolyLite ABS", + "type": "ABS", + "vendor": "Polymaker" + }, + "OFPklMI1": { + "bambu_id": "GFP99", + "name": "Generic PE", + "type": "PE", + "vendor": "Generic" + }, + "OFQ3e56w": { + "bambu_id": "GFA15", + "name": "Bambu PLA Galaxy", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFQHiNJs": { + "bambu_id": "GFS01", + "name": "Bambu Support G", + "type": "PA", + "vendor": "Bambu Lab" + }, + "OFQLcbps": { + "bambu_id": "GFN98", + "name": "Generic PA-CF", + "type": "PA-CF", + "vendor": "Generic" + }, + "OFS2tn6G": { + "bambu_id": "GFL53", + "name": "Fiberon PA612-CF", + "type": "PA", + "vendor": "Polymaker" + }, + "OFTHDCqA": { + "bambu_id": "GFA19", + "name": "Bambu PLA Pure", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFTRZ8Y4": { + "bambu_id": "GFG50", + "name": "Bambu PETG-CF", + "type": "PETG-CF", + "vendor": "Bambu Lab" + }, + "OFUanySo": { + "bambu_id": "GFA06", + "name": "Bambu PLA Silk+", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFVCkX5w": { + "bambu_id": "GFU01", + "name": "Bambu TPU 95A", + "type": "TPU", + "vendor": "Bambu Lab" + }, + "OFW29a9R": { + "bambu_id": "GFL01", + "name": "PolyTerra PLA", + "type": "PLA", + "vendor": "Polymaker" + }, + "OFWbdGsC": { + "bambu_id": "GFL98", + "name": "Generic PLA-CF", + "type": "PLA-CF", + "vendor": "Generic" + }, + "OFX0ycRQ": { + "bambu_id": "GFL52", + "name": "Fiberon PA12-CF", + "type": "PA-CF", + "vendor": "Polymaker" + }, + "OFXIbw5D": { + "bambu_id": "GFA01", + "name": "Bambu PLA Matte", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFXkm8q1": { + "bambu_id": "GFP96", + "name": "Generic PP-CF", + "type": "PP-CF", + "vendor": "Generic" + }, + "OFXzQ4yL": { + "bambu_id": "GFB02", + "name": "Bambu ASA-Aero", + "type": "ASA-AERO", + "vendor": "Bambu Lab" + }, + "OFY9muEs": { + "bambu_id": "GFB99", + "name": "Generic ABS", + "type": "ABS", + "vendor": "Generic" + }, + "OFYPdQJh": { + "bambu_id": "GFG99", + "name": "Generic PETG", + "type": "PETG", + "vendor": "Generic" + }, + "OFaQMgRH": { + "bambu_id": "GFA09", + "name": "Bambu PLA Tough", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFc3xdm9": { + "bambu_id": "GFL04", + "name": "Overture PLA", + "type": "PLA", + "vendor": "Overture" + }, + "OFcytyoA": { + "bambu_id": "GFL06", + "name": "Fiberon PETG-ESD", + "type": "PETG", + "vendor": "Polymaker" + }, + "OFd0Fv0k": { + "bambu_id": "GFP98", + "name": "Generic PE-CF", + "type": "PE-CF", + "vendor": "Generic" + }, + "OFdyfQvU": { + "bambu_id": "GFG03", + "name": "Bambu PETG Matte", + "type": "PETG", + "vendor": "Bambu Lab" + }, + "OFesA6rF": { + "bambu_id": "GFL96", + "name": "Generic PLA Silk", + "type": "PLA", + "vendor": "Generic" + }, + "OFf6mfQO": { + "bambu_id": "GFS06", + "name": "Bambu Support for ABS", + "type": "ABS", + "vendor": "Bambu Lab" + }, + "OFfBpSRI": { + "bambu_id": "GFB01", + "name": "Bambu ASA", + "type": "ASA", + "vendor": "Bambu Lab" + }, + "OFg57Nmc": { + "bambu_id": "GFC01", + "name": "Bambu PC FR", + "type": "PC", + "vendor": "Bambu Lab" + }, + "OFg8ndtj": { + "bambu_id": "GFN99", + "name": "Generic PA", + "type": "PA", + "vendor": "Generic" + }, + "OFgbpcy9": { + "bambu_id": "GFU99", + "name": "Generic TPU", + "type": "TPU", + "vendor": "Generic" + }, + "OFhuaUQB": { + "bambu_id": "GFB00", + "name": "Bambu ABS", + "type": "ABS", + "vendor": "Bambu Lab" + }, + "OFk8t9mz": { + "bambu_id": "GFL55", + "name": "Fiberon PETG-rCF", + "type": "PETG-CF", + "vendor": "Polymaker" + }, + "OFkOviHk": { + "bambu_id": "GFL50", + "name": "Fiberon PA6-CF", + "type": "PA6-CF", + "vendor": "Polymaker" + }, + "OFknl9Iz": { + "bambu_id": "GFB50", + "name": "Bambu ABS-GF", + "type": "ABS-GF", + "vendor": "Bambu Lab" + }, + "OFlfuj2k": { + "bambu_id": "GFU04", + "name": "Bambu TPU 85A", + "type": "TPU", + "vendor": "Bambu Lab" + }, + "OFmN2lvw": { + "bambu_id": "GFU98", + "name": "Generic TPU for AMS", + "type": "TPU-AMS", + "vendor": "Generic" + }, + "OFmpMwxS": { + "bambu_id": "GFL95", + "name": "Generic PLA High Speed", + "type": "PLA", + "vendor": "Generic" + }, + "OFnfxTvi": { + "bambu_id": "GFA18", + "name": "Bambu PLA Lite", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFniMuTN": { + "bambu_id": "GFN05", + "name": "Bambu PA6-CF", + "type": "PA6-CF", + "vendor": "Bambu Lab" + }, + "OFo2UF2C": { + "bambu_id": "GFS97", + "name": "Generic BVOH", + "type": "BVOH", + "vendor": "Generic" + }, + "OFoYSJKi": { + "bambu_id": "GFG98", + "name": "Generic PETG-CF", + "type": "PETG-CF", + "vendor": "Generic" + }, + "OFoiVqVM": { + "bambu_id": "GFA00", + "name": "Bambu PLA Basic", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFovEIbw": { + "bambu_id": "GFG02", + "name": "Bambu PETG HF", + "type": "PETG", + "vendor": "Bambu Lab" + }, + "OFpPGSKG": { + "bambu_id": "GFSNL05", + "name": "SUNLU Silk PLA+", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFpW4gdi": { + "bambu_id": "GFSNL02", + "name": "SUNLU PLA Matte", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFq9svOz": { + "bambu_id": "GFT97", + "name": "Generic PPS", + "type": "PPS", + "vendor": "Generic" + }, + "OFqINlYj": { + "bambu_id": "GFL03", + "name": "eSUN PLA+", + "type": "PLA", + "vendor": "eSUN" + }, + "OFrKLeE3": { + "bambu_id": "GFA02", + "name": "Bambu PLA Metal", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFsFon5l": { + "bambu_id": "GFS98", + "name": "Generic HIPS", + "type": "HIPS", + "vendor": "Generic" + }, + "OFsHSVZc": { + "bambu_id": "GFS00", + "name": "Bambu Support W", + "type": "PLA", + "vendor": "Bambu Lab" + }, + "OFsijjtH": { + "bambu_id": "GFP95", + "name": "Generic PP-GF", + "type": "PP-GF", + "vendor": "Generic" + }, + "OFtkLO6q": { + "bambu_id": "GFU03", + "name": "Bambu TPU 90A", + "type": "TPU", + "vendor": "Bambu Lab" + }, + "OFu1evlr": { + "bambu_id": "GFG97", + "name": "Generic PCTG", + "type": "PCTG", + "vendor": "Generic" + }, + "OFvKUnLh": { + "bambu_id": "GFU00", + "name": "Bambu TPU 95A HF", + "type": "TPU", + "vendor": "Bambu Lab" + }, + "OFvrXuV7": { + "bambu_id": "GFB61", + "name": "PolyLite ASA", + "type": "ASA", + "vendor": "Polymaker" + }, + "OFwPrlCM": { + "bambu_id": "GFG01", + "name": "Bambu PETG Translucent", + "type": "PETG", + "vendor": "Bambu Lab" + }, + "OFwaYjL6": { + "bambu_id": "GFL51", + "name": "Fiberon PA6-GF", + "type": "PA-GF", + "vendor": "Polymaker" + }, + "OFxUwUeW": { + "bambu_id": "GFSNL06", + "name": "SUNLU PLA Marble", + "type": "PLA", + "vendor": "SUNLU" + }, + "OFzyIxba": { + "bambu_id": "GFS04", + "name": "Bambu PVA", + "type": "PVA", + "vendor": "Bambu Lab" + } + }, + "generated": "2026-09-04", + "source": "https://github.com/bambulab/BambuStudio" +} diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index ef61992784..2ff0e42a7c 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -18,6 +18,7 @@ import uuid sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) import assign_filament_ids as afi # noqa: E402 +import update_bambu_filament_ids as ubfi # noqa: E402 REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) REAL_PROFILES = os.path.join(REPO_ROOT, "resources", "profiles") @@ -1081,5 +1082,137 @@ class TestReviewFixes(SyntheticTreeCase): self.assertIn(afi.generate_filament_id("OV", "PLA", "Orphan PLA"), out) +# --------------------------------------------------------------------------- +# scripts/update_bambu_filament_ids.py: the generated Bambu catalog id map +# --------------------------------------------------------------------------- + +class TestBambuMap(unittest.TestCase): + def _bs_tree(self, families): + # families: list of (family, bambu_id, vendor, type); builds a minimal BBL bundle + # with an @base per family carrying the id and one instantiated child. + t = SyntheticTree() + self.addCleanup(t.cleanup) + presets = [] + for family, bambu_id, vendor, ftype in families: + presets.append(preset(f"{family} @base", filament_id=bambu_id, + instantiation=False, filament_vendor=vendor, + filament_type=ftype)) + presets.append(preset(f"{family} @P1", inherits=f"{family} @base", + compatible_printers=["P1 0.4 nozzle"])) + t.add_vendor("BBL", presets) + filaments, errors = afi.load_vendor_filaments(t.profiles, "BBL") + self.assertEqual(errors, []) + return filaments + + def test_one_row_per_family(self): + rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")]), {}) + self.assertEqual(rows, {afi.generate_filament_id("Bambu Lab", "ABS", "Bambu ABS"): + {"bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS"}}) + + def test_shared_bambu_id_is_an_error(self): + with self.assertRaises(SystemExit): + ubfi.derive_rows(self._bs_tree([("A", "GFX00", "V", "PLA"), ("B", "GFX00", "V", "PLA")]), {}) + + def test_reuses_the_id_we_ship_for_that_triple(self): + rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")]), + {("Bambu Lab", "ABS", "Bambu ABS"): "OFsalted1"}) + self.assertIn("OFsalted1", rows) + + @unittest.skipUnless(os.path.isdir("/Users/lijiang/codes/BambuStudio/resources/profiles"), "no local clone") + def test_local_clone_yields_the_catalog(self): + rows = ubfi.derive_rows(afi.load_vendor_filaments("/Users/lijiang/codes/BambuStudio/resources/profiles", "BBL")[0], {}) + self.assertEqual(len(rows), 100) + self.assertEqual(len({r["bambu_id"] for r in rows.values()}), 100) + + +class TestOrcaTriplesFromAnalysis(unittest.TestCase): + def _tree(self): + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("VendorA", [ + # Same triple declared under two different ids on purpose: mirrors + # a real, sanctioned case (Cubicon's xCeler line keeps its own id + # per printer instead of inheriting the family's @base id). + # Ambiguous, but must stay harmless unless something needs it. + preset("Ambig PLA @base", filament_id="OF111111", instantiation=False, + filament_vendor="V", filament_type="PLA"), + preset("Ambig PLA @P1", filament_id="OF222222", inherits="Ambig PLA @base", + compatible_printers=["P1"]), + # An unambiguous family elsewhere in the same tree. + preset("Needed PLA @base", filament_id="OF333333", instantiation=False, + filament_vendor="V2", filament_type="PLA"), + preset("Needed PLA @P1", inherits="Needed PLA @base", + compatible_printers=["P1"]), + ]) + return afi.analyze_tree(t.profiles) + + def test_ambiguity_outside_needed_triples_is_ignored(self): + analysis = self._tree() + result = ubfi.orca_triples_from_analysis(analysis, {("V2", "PLA", "Needed PLA")}) + self.assertEqual(result, {("V2", "PLA", "Needed PLA"): "OF333333"}) + + def test_ambiguity_inside_needed_triples_is_an_error(self): + analysis = self._tree() + with self.assertRaises(SystemExit): + ubfi.orca_triples_from_analysis(analysis, {("V", "PLA", "Ambig PLA")}) + + +class TestWriteMap(unittest.TestCase): + def test_format(self): + d = tempfile.mkdtemp(prefix="bambu_map_test_") + self.addCleanup(shutil.rmtree, d, ignore_errors=True) + # nested, not-yet-existing directory: write_map must create it + path = os.path.join(d, "out", "bambu_filament_ids.json") + rows = {"OFabc123": {"bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS"}} + + ubfi.write_map(path, rows, "66e405477", "2026-09-04") + + with open(path, "rb") as f: + raw = f.read() + self.assertTrue(raw.endswith(b"\n")) + self.assertNotIn(b"\r", raw) + text = raw.decode("utf-8") + self.assertEqual(json.loads(text), { + "source": "https://github.com/bambulab/BambuStudio", + "bambustudio_commit": "66e405477", + "generated": "2026-09-04", + "filaments": rows, + }) + # sorted top-level keys + self.assertLess(text.index('"bambustudio_commit"'), text.index('"filaments"')) + self.assertLess(text.index('"filaments"'), text.index('"generated"')) + self.assertLess(text.index('"generated"'), text.index('"source"')) + + +class TestDriftReport(unittest.TestCase): + def test_reports_both_directions(self): + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("BBL", [ + preset("Match PLA @base", filament_id="GFX01", instantiation=False, + filament_vendor="V", filament_type="PLA"), + preset("Match PLA @P1", inherits="Match PLA @base", + compatible_printers=["P1"]), + preset("Orphan PLA @base", filament_id="GFX03", instantiation=False, + filament_vendor="V", filament_type="PLA"), + preset("Orphan PLA @P1", inherits="Orphan PLA @base", + compatible_printers=["P1"]), + ]) + rows = { + # matches the BBL bundle's "Match PLA" family: no drift either way + "OFmatch01": {"bambu_id": "GFX01", "vendor": "V", "type": "PLA", "name": "Match PLA"}, + # no family of this identity in the BBL bundle above + "OFghost01": {"bambu_id": "GFX02", "vendor": "V", "type": "PLA", "name": "Upstream Only PLA"}, + } + orca_analysis = afi.analyze_tree(t.profiles) + + lines = ubfi.drift_report(rows, orca_analysis) + + report = "\n".join(lines) + self.assertIn("Upstream Only PLA", report) + self.assertIn("Orca BBL families with no row: 1", report) + self.assertNotIn("Match PLA", report) # the matched family is not drift + + if __name__ == "__main__": unittest.main() diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py new file mode 100644 index 0000000000..744fcc0401 --- /dev/null +++ b/scripts/update_bambu_filament_ids.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 +""" +Generate resources/printers/bambu_filament_ids.json: the map from Orca's +content-addressed filament_id ("OF" + 6 base62 chars, see assign_filament_ids.py) +to Bambu Lab's own AMS/RFID catalog id ("GF..." etc.) for the subset of filament +products Bambu ships. + +The map is generated from BambuStudio's OWN shipped BBL bundle, never from +Orca's: Orca's BBL bundle is a fork of Bambu's, tuned and extended +independently, so it is not the source of truth for Bambu's catalog ids. +Nothing in OrcaSlicer consumes this map yet; it exists so a later change can +translate an id only where it crosses to or from a Bambu printer, without +hand-maintaining the correspondence. + +One row per BambuStudio filament PRODUCT: one commercial line = one +"@base"-declared filament_id, shared by every per-printer/per-nozzle +instantiation of it (BambuStudio follows the same one-product-one-id shape +Orca's own filament_id policy does). A row's key reuses whatever OF id Orca +already ships for that same (filament_vendor, filament_type, family) triple; +a triple Orca does not ship anywhere yet gets a freshly generated one. + +Map format: +{ + "source": "https://github.com/bambulab/BambuStudio", + "bambustudio_commit": "66e405477", + "generated": "2026-09-04", + "filaments": { + "OFhuaUQB": {"bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS"} + } +} + +Run from anywhere: python3 scripts/update_bambu_filament_ids.py + (default) shallow-clone BambuStudio's master branch (sparse: just + the BBL filament bundle) and regenerate the map + --bambustudio-dir DIR + read DIR (a BambuStudio resources/profiles checkout) + instead of cloning + --ref REF clone this BambuStudio ref instead of master + --output PATH write here instead of resources/printers/bambu_filament_ids.json + +After writing, an informational drift report is printed: BambuStudio families +Orca ships nothing with the same identity for, and a count of Orca's own BBL +families that matched no BambuStudio row. Neither blocks the write; both are +for a human to read. +""" + +import argparse +import json +import os +import shutil +import subprocess +import sys +import tempfile +import datetime + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from assign_filament_ids import ( # noqa: E402 + OFL, + OF_ID_RE, + PROFILES_DIR, + analyze_tree, + base_name, + generate_filament_id, + load_vendor_filaments, + print_error, + print_info, + print_success, + resolve_filament_id, + resolve_triple, +) + +SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) +BAMBU_MAP_PATH = os.path.normpath( + os.path.join(SCRIPTS_DIR, "..", "resources", "printers", "bambu_filament_ids.json")) + +BAMBUSTUDIO_REPO = "https://github.com/bambulab/BambuStudio" + + +# --------------------------------------------------------------------------- +# Row derivation +# --------------------------------------------------------------------------- + +def derive_rows(bs_filaments, orca_triples): + """orca_triples: {(vendor, type, family): orca_id} built from analyze_tree()["triples"].""" + by_family = {} # family -> (bambu_id, triple) + for rec in bs_filaments.values(): + if not rec["instantiation"]: + continue + bambu_id, _src, _entry = resolve_filament_id(rec["name"], bs_filaments, {}) + if not bambu_id: + continue + family = base_name(rec["name"]) + triple = resolve_triple(rec["name"], bs_filaments, {}) + prev = by_family.setdefault(family, (bambu_id, triple)) + if prev != (bambu_id, triple): + raise SystemExit(f"BambuStudio family {family!r} is not one product: {prev} vs {(bambu_id, triple)}") + rows, seen = {}, {} + for family, (bambu_id, triple) in sorted(by_family.items()): + if bambu_id in seen: + raise SystemExit(f"Bambu id {bambu_id} is shared by {seen[bambu_id]!r} and {family!r}") + seen[bambu_id] = family + orca_id = orca_triples.get(triple) or generate_filament_id(*triple) # reuse a salted id if we ship one + rows[orca_id] = {"bambu_id": bambu_id, "vendor": triple[0], "type": triple[1], "name": triple[2]} + return rows + + +def orca_triples_from_analysis(orca_analysis, needed_triples): + """{(vendor, type, family): orca_id}, inverted from analyze_tree()["triples"] + (id -> [[vendor, type, family], ...]) and restricted to `needed_triples` + (the triples BambuStudio's own bundle ships, i.e. the only ones derive_rows + will ever look up). + + Kept to ids matching the OF format: our own BBL bundle still declares + Bambu's GF ids today (analyze_tree already excludes those as BBL-island + declarations), but filtering here too means a future triple shipped under + a non-OF scheme can never key a map row, which must always be keyed by + the OF id the BBL bundle receives once it is re-minted onto the OF space. + + A needed triple owned by more than one OF id would make derive_rows's + reuse step a guess, so that is a hard error rather than a silent pick. + Restricting the scan to needed_triples matters for that check: elsewhere + in the tree one triple legitimately resolves two different ids on purpose + (e.g. Cubicon's xCeler line declares its own id per printer instead of + inheriting its family's, sanctioned in scripts/filament_id_snapshot.json) + and that pre-existing, Bambu-unrelated divergence must not block a map + that never reads it. + """ + needed_triples = set(needed_triples) + result = {} + for fid, triple_list in orca_analysis["triples"].items(): + if not OF_ID_RE.match(fid): + continue + for triple in triple_list: + triple = tuple(triple) + if triple not in needed_triples: + continue + owner = result.get(triple) + if owner and owner != fid: + raise SystemExit( + f"Orca triple {triple} resolves to more than one filament_id: " + f"{owner!r} and {fid!r}") + result[triple] = fid + return result + + +# --------------------------------------------------------------------------- +# Drift report (informational only) +# --------------------------------------------------------------------------- + +def drift_report(rows, orca_analysis): + """Two triple-identity comparisons between the map just derived and Orca's + own BBL bundle (never id-based: the two bundles assign filament_id + independently, so only the (vendor, type, name) identity is comparable). + + Returns print-ready lines: one per BambuStudio row triple with no + same-triple family in Orca's BBL bundle (upstream ships it, we ship + nothing with that identity there — sometimes a genuinely missing product, + sometimes a renamed one), then a count of Orca's own BBL families that + matched no BambuStudio row (Orca-only products, e.g. a name-drifted + duplicate of one already counted in the first list). + """ + row_triples = {(r["vendor"], r["type"], r["name"]) for r in rows.values()} + + bbl_filaments = orca_analysis["vendors"].get("BBL", {}) + ofl_filaments = orca_analysis["vendors"].get(OFL, {}) + orca_families = {} + for rec in bbl_filaments.values(): + if not rec["instantiation"]: + continue + triple = resolve_triple(rec["name"], bbl_filaments, ofl_filaments) + orca_families.setdefault(base_name(rec["name"]), triple) + + lines = [] + for triple in sorted(row_triples - set(orca_families.values())): + lines.append(f'upstream ships {triple[2]!r} ({triple[0]}/{triple[1]}), ' + "we ship nothing with that identity") + orca_only = [family for family, triple in orca_families.items() if triple not in row_triples] + lines.append(f"Orca BBL families with no row: {len(orca_only)} Orca-only product(s)") + return lines + + +# --------------------------------------------------------------------------- +# Map IO +# --------------------------------------------------------------------------- + +def write_map(path, rows, commit, date): + """Write the map: sorted keys, indent 2, LF, trailing newline.""" + payload = { + "source": BAMBUSTUDIO_REPO, + "bambustudio_commit": commit, + "generated": date, + "filaments": rows, + } + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8", newline="\n") as f: + json.dump(payload, f, indent=2, ensure_ascii=False, sort_keys=True) + f.write("\n") + + +# --------------------------------------------------------------------------- +# BambuStudio fetch +# --------------------------------------------------------------------------- + +def run(command, cwd=None): + """Run a command, streaming its output; raise SystemExit on failure.""" + print("+ " + " ".join(command)) + try: + subprocess.run(command, cwd=cwd, check=True) + except subprocess.CalledProcessError as e: + raise SystemExit(f"command failed ({e.returncode}): {' '.join(command)}") from e + + +def run_out(command, cwd=None): + """Run a command and return its stripped stdout; raise SystemExit on failure.""" + try: + result = subprocess.run(command, cwd=cwd, check=True, capture_output=True, text=True) + except subprocess.CalledProcessError as e: + raise SystemExit( + f"command failed ({e.returncode}): {' '.join(command)}\n{e.stderr}") from e + return result.stdout.strip() + + +def fetch_bambustudio(ref, workdir): + run(["git", "clone", "--depth=1", "--filter=blob:none", "--sparse", "--branch", ref, + BAMBUSTUDIO_REPO + ".git", workdir]) + run(["git", "-C", workdir, "sparse-checkout", "set", "--no-cone", + "resources/profiles/BBL.json", "resources/profiles/BBL/filament"]) + return os.path.join(workdir, "resources", "profiles"), run_out(["git", "-C", workdir, "rev-parse", "--short", "HEAD"]) + + +def local_dir_commit(dir_path): + """git rev-parse --short HEAD of dir_path, or "local" when it is not a repo.""" + result = subprocess.run(["git", "-C", dir_path, "rev-parse", "--short", "HEAD"], + capture_output=True, text=True) + return result.stdout.strip() if result.returncode == 0 else "local" + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + +def main(argv=None): + parser = argparse.ArgumentParser( + description="Regenerate resources/printers/bambu_filament_ids.json from " + "BambuStudio's shipped BBL bundle.") + source = parser.add_mutually_exclusive_group() + source.add_argument("--bambustudio-dir", metavar="DIR", + help="a BambuStudio resources/profiles directory to read " + "instead of cloning") + source.add_argument("--ref", default="master", + help='BambuStudio git ref to shallow-clone when ' + '--bambustudio-dir is not given (default: "master")') + parser.add_argument("--output", default=BAMBU_MAP_PATH, + help="output path (default: resources/printers/bambu_filament_ids.json)") + args = parser.parse_args(argv) + + workdir = None + if args.bambustudio_dir: + profiles_dir = args.bambustudio_dir + commit = local_dir_commit(profiles_dir) + else: + workdir = tempfile.mkdtemp(prefix="bambustudio_") + profiles_dir, commit = fetch_bambustudio(args.ref, workdir) + + try: + bs_filaments, errors = load_vendor_filaments(profiles_dir, "BBL") + if errors: + for e in errors: + print_error(e) + raise SystemExit("unreadable BambuStudio filament profile(s)") + + orca_analysis = analyze_tree(PROFILES_DIR) + needed_triples = {resolve_triple(rec["name"], bs_filaments, {}) + for rec in bs_filaments.values() if rec["instantiation"]} + orca_triples = orca_triples_from_analysis(orca_analysis, needed_triples) + + rows = derive_rows(bs_filaments, orca_triples) + write_map(args.output, rows, commit, datetime.date.today().isoformat()) + print_success(f"wrote {len(rows)} row(s) to {args.output} (BambuStudio @ {commit})") + + for line in drift_report(rows, orca_analysis): + print_info(line) + finally: + if workdir: + shutil.rmtree(workdir, ignore_errors=True) + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) From 40cc3340b1ccbc94a3aca9d7146641efd3cce021 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 14:25:00 +0800 Subject: [PATCH 130/164] Content-address Bambu filament ids and check profiles against the catalog map Every vendor's filament_id declarations, Bambu's own bundle included, are now minted and checked the same way: the GF* catalog space is reserved but ownerless, format is validated unconditionally with no snapshot or BBL exemption, and both --remint and the default assign pass treat a non-OF declaration as one needing a fresh mint (so a future BambuStudio sync self-heals instead of needing a manual pass). A new check validates resources/printers/bambu_filament_ids.json against the tree it describes: that it parses, carries its header, keys only OF ids, maps each Bambu id once, and agrees with the tree on every product it shares. The redundant BBL/OFL carve-out in the profile checker's length check is dropped too, so it runs the same way for every vendor. The BBL bundle itself hasn't been touched yet and still declares its old GF ids, so TestRealTree.test_shipped_snapshot_matches_tree is expected to fail here (209 declarations flagged) until the next commit re-mints the bundle onto OF ids. --- scripts/assign_filament_ids.py | 193 ++++++++++++++++++++-------- scripts/orca_extra_profile_check.py | 17 +-- scripts/tests/test_filament_id.py | 179 +++++++++++++++++++++----- 3 files changed, 297 insertions(+), 92 deletions(-) diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 46a138253c..cc3adeab4a 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -24,7 +24,10 @@ Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md) Identity changes (a family rename, a filament_vendor/filament_type fix) change the id BY DESIGN. * Reserved id spaces that are never minted into or altered: - - GF* Bambu AMS/RFID catalog (vendor BBL untouchable) + - GF* Bambu AMS/RFID catalog: frozen, no preset of any + vendor (including BBL) may declare one; the + generated resources/printers/bambu_filament_ids.json + carries the correspondence instead - QD_* Qidi device protocol: the box composes these ids at runtime, they are not preset ids, and no preset may declare one @@ -43,8 +46,9 @@ OFL it stays in OFL; a vendor chain that dead-ends id-less retries its direct parent in the OFL map. filament_vendor / filament_type resolve the same way. Run from anywhere: python3 scripts/assign_filament_ids.py - (default) mint + insert ids for id-less families; idempotent, never - rewrites a valid existing id; a no-op on a fully-idded tree + (default) mint + insert ids for id-less families, mint + replace + non-OF-format declarations; idempotent, never rewrites a + valid OF-format id; a no-op once every family has one --mint "Vendor/Type/Family" print the id that triple would mint; touches nothing --update-snapshot regenerate the snapshot from the tree @@ -75,6 +79,10 @@ FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) PROFILES_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "resources", "profiles")) SNAPSHOT_PATH = os.path.join(SCRIPTS_DIR, "filament_id_snapshot.json") +# Same path update_bambu_filament_ids.BAMBU_MAP_PATH computes; kept as a sibling +# constant (not imported) because that module imports FROM this one already. +BAMBU_MAP_PATH = os.path.normpath( + os.path.join(SCRIPTS_DIR, "..", "resources", "printers", "bambu_filament_ids.json")) OFL = "OrcaFilamentLibrary" @@ -89,6 +97,7 @@ BASE_NAME_RE = re.compile(r"\s?@.*$") MAX_CHECK_SALT = 8 UPDATE_HINT = 'run "python scripts/assign_filament_ids.py --update-snapshot" and commit the diff for maintainer review' +BAMBU_MAP_HINT = 'regenerate the map with "python scripts/update_bambu_filament_ids.py" and commit the diff for maintainer review' # Same output helpers/format as orca_extra_profile_check.py (not imported from @@ -304,12 +313,6 @@ def resolve_triple(name, filaments, ofl_filaments): base_name(name)) -def is_island_declaration(vendor, fid): - """Declarations frozen outside the OF mint domain: all of BBL (the QD_* - island was dissolved by plan v4 — Qidi declarations mint like any other).""" - return vendor == "BBL" - - def analyze_tree(profiles_dir): """Load every vendor bundle and derive the full filament_id state. @@ -351,8 +354,8 @@ def analyze_tree(profiles_dir): overrides = [] # (vendor, name, declared, inherited, file) missing_effective = [] # (vendor, name, file) instantiated presets resolving no id alias_candidates = [] # (vendor, rec, ofl_entry, own_key) presets riding an OFL family - triples = {} # fid -> set of triples of its non-island declarers - declarer_triples = [] # (vendor, rec, fid, triple) per non-island declarer + triples = {} # fid -> set of triples of its declarers + declarer_triples = [] # (vendor, rec, fid, triple) per declarer family_triples = {} # (vendor, family) -> {triple: [declarer names]} for vendor, filaments in vendors.items(): @@ -363,14 +366,13 @@ def analyze_tree(profiles_dir): occurring.add(fid) declared_ids.setdefault(vendor, set()).add(fid) ids.setdefault(fid, set()) - if not is_island_declaration(vendor, fid): - triple = resolve_triple(rec["name"], filaments, ofl_filaments) - rec["triple"] = triple - declarer_triples.append((vendor, rec, fid, triple)) - triples.setdefault(fid, set()).add(triple) - family_triples.setdefault( - (vendor, base_name(rec["name"])), {}).setdefault( - triple, []).append(rec["name"]) + triple = resolve_triple(rec["name"], filaments, ofl_filaments) + rec["triple"] = triple + declarer_triples.append((vendor, rec, fid, triple)) + triples.setdefault(fid, set()).add(triple) + family_triples.setdefault( + (vendor, base_name(rec["name"])), {}).setdefault( + triple, []).append(rec["name"]) if rec.get("inherits"): inherited, _src, skip_entry = resolve_filament_id( rec["name"], filaments, ofl_filaments, skip_own=True) @@ -495,7 +497,7 @@ def write_snapshot(path, obj): def reserved_space_owner(fid): """(is_reserved, owner_vendor or None) for the frozen id spaces.""" if fid.startswith("GF"): - return True, "BBL" + return True, None # Bambu AMS/RFID catalog: frozen, no vendor (not even BBL) may declare it if fid.startswith("QD_"): return True, None # dissolved Qidi device-protocol space: NO vendor may declare it if USER_CUSTOM_ID_RE.match(fid) or fid == "null": @@ -507,6 +509,8 @@ def reserved_space_desc(fid, owner): """Human description of a reserved space for error messages.""" if owner: return f"owned by {owner}" + if fid.startswith("GF"): + return "Bambu AMS/RFID catalog; frozen, no preset may declare it" if fid.startswith("QD_"): return "Qidi device protocol; composed by the device, never a preset id" return "reserved for user-custom presets" @@ -516,30 +520,35 @@ def reserved_space_desc(fid, owner): # Checks (imported and called tree-wide by orca_extra_profile_check.py) # --------------------------------------------------------------------------- -def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): +def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, + map_path=BAMBU_MAP_PATH): """Validate filament_id state across every vendor. Returns the error count. - 1. Format: every id occurring in the tree (declared or effective) must be in - the snapshot, or match ^OF[0-9A-Za-z]{6}$, or belong to vendor BBL. + 1. Format: every id occurring in the tree (declared or effective) must + match ^OF[0-9A-Za-z]{6}$. No exceptions: not the snapshot, not BBL. 2. Snapshot equality, both directions: the tree-derived id->families multimap AND the id->triples map of the declarers must equal the snapshot exactly (the snapshot diff is the maintainer gate). - 3. Mint conformance: a non-island OF-format declaration must equal the mint - of the declarer's triple or a salted iteration, unless that exact - (id, triple) pair is grandfathered in the snapshot. + 3. Mint conformance: an OF-format declaration must equal the mint of the + declarer's triple or a salted iteration, unless that exact (id, triple) + pair is grandfathered in the snapshot. 4. Alias hygiene: a vendor preset riding an OFL family must keep the OFL base name, claim printers via non-empty compatible_printers, and declare no filament_id key of its own. - 5. Reserved namespaces (GF* for BBL; QD_*/P-hex/"null" for nobody) must not - be claimed by other vendors, except claims grandfathered in the snapshot. + 5. Reserved namespaces (GF*/QD_*/P-hex/"null", all ownerless) must not be + claimed by any vendor, except claims grandfathered in the snapshot. 6. Structure ratchet: (a) no NEW instantiated preset carries its own filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every instantiated filament resolves an effective id (a hard load error in C++). - 7. Triple integrity: (a) every non-island declarer resolves non-empty - filament_vendor and filament_type (hard error, no grandfathering); - (b) declarers of one (bundle, family) resolve identical triples, unless - grandfathered in snapshot triple_exceptions; cross-bundle divergence on - the same family name is a warning only. + 7. Triple integrity: (a) every declarer resolves non-empty filament_vendor + and filament_type (hard error, no grandfathering); (b) declarers of one + (bundle, family) resolve identical triples, unless grandfathered in + snapshot triple_exceptions; cross-bundle divergence on the same family + name is a warning only. + 8. Bambu catalog map: resources/printers/bambu_filament_ids.json must parse, + carry source/bambustudio_commit/generated, key only OF-format ids, map + each Bambu id at most once, and for every row whose key the tree claims, + the tree's triple for that id must equal the row's (vendor, type, name). """ _utf8_console() errors = 0 @@ -558,14 +567,12 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): # -- 1. format ---------------------------------------------------------- for vendor in sorted(analysis["vendor_ids"]): for fid in sorted(analysis["vendor_ids"][vendor]): - if fid in snap_ids or OF_ID_RE.match(fid): - continue - if vendor == "BBL": + if OF_ID_RE.match(fid): continue print_error( - f'filament_id "{fid}" ({vendor}) is neither grandfathered in the ' - f'snapshot nor a minted "OF" id; new family ids must come from ' - f'"python scripts/assign_filament_ids.py" (see --mint)') + f'filament_id "{fid}" ({vendor}) is not a minted "OF" id; new ' + f'family ids must come from "python scripts/assign_filament_ids.py" ' + f'(see --mint)') errors += 1 # -- 2. snapshot equality (both directions) ----------------------------- @@ -719,6 +726,43 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): f"({detail}); bundles of one product converge on one id only once " f"their triples agree") + # -- 8. Bambu catalog map -------------------------------------------------- + try: + bambu_map = load_json(map_path) + except (OSError, ValueError) as e: + print_error(f"Bambu catalog map {map_path} does not parse ({e}); {BAMBU_MAP_HINT}") + errors += 1 + else: + for key in ("source", "bambustudio_commit", "generated"): + if not bambu_map.get(key): + print_error(f'Bambu catalog map {map_path} is missing "{key}"; {BAMBU_MAP_HINT}') + errors += 1 + rows = bambu_map.get("filaments", {}) + bambu_id_owners = {} + for fid, row in sorted(rows.items()): + if not OF_ID_RE.match(fid): + print_error(f'Bambu catalog map key "{fid}" is not a minted "OF" id; ' + f"{BAMBU_MAP_HINT}") + errors += 1 + bambu_id = row.get("bambu_id") + if bambu_id in bambu_id_owners: + print_error( + f'Bambu catalog map: Bambu id "{bambu_id}" is mapped by both ' + f'"{bambu_id_owners[bambu_id]}" and "{fid}"; {BAMBU_MAP_HINT}') + errors += 1 + else: + bambu_id_owners[bambu_id] = fid + claimed = tree_triples.get(fid) + if not claimed: + continue # a product BambuStudio ships that the tree does not (yet) + row_triple = [row.get("vendor", ""), row.get("type", ""), row.get("name", "")] + if row_triple not in claimed: + print_error( + f'Bambu catalog map row "{fid}" claims triple "{"/".join(row_triple)}" ' + f'but the tree declares "{"; ".join("/".join(t) for t in claimed)}" for ' + f"that id; {BAMBU_MAP_HINT}") + errors += 1 + return errors @@ -897,13 +941,25 @@ def remove_filament_id(path, old_id): # --------------------------------------------------------------------------- def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): - """Mint + insert ids for id-less families. Never rewrites a valid existing id. + """Mint + insert ids for id-less families; mint + replace non-OF-format + declarations. Never rewrites a valid (OF-format) existing id. A family = (vendor, base name) group over instantiated filaments with no effective id. The minted id is a pure function of the family's triple — (filament_vendor, filament_type) resolved on the root(s), family name — and is inserted into the family's root(s): the presets its members inherit that carry no id, or the member itself when it has no vendor-side parent. + + A declaration whose value is not OF-format (e.g. a vendor bundle synced + from an upstream source that ships its own catalog ids, such as BBL's GF*) + is treated the same as a missing family: a fresh id is minted for the + declarer's triple and the value is replaced in place (declarers that share + one triple across several per-printer roots converge on the same id, same + as the multi-root families above). This is what makes a future BBL sync + self-healing: upstream files arrive with GF ids, this pass replaces them, + and the generated Bambu catalog map (keyed by the ids this mints) already + knows the resulting rows. + Returns (files_changed, errors). """ analysis = analyze_tree(profiles_dir) @@ -923,9 +979,17 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): continue families.setdefault((vendor, base_name(name)), []).append(rec) - if not families: - print_success("every instantiated filament already resolves a filament_id; " - "nothing to do (0 files changed)") + # Declarations whose value is not OF-format: treated as missing too (see + # docstring). Grouped by triple, not by (vendor, family), so declarers + # that legitimately share one triple across several files converge on one + # freshly minted id instead of each getting their own. + non_of_declarers = [ + (vendor, rec, fid, triple) for vendor, rec, fid, triple in analysis["declarer_triples"] + if not OF_ID_RE.match(fid)] + + if not families and not non_of_declarers: + print_success("every instantiated filament already resolves an OF-format " + "filament_id; nothing to do (0 files changed)") return 0, errors # Ids already spoken for: the whole tree (declared or effective) + snapshot. @@ -998,7 +1062,34 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): files_changed += 1 print_info(f'family "{vendor}/{family}": filament_id "{new_id}" -> {root["file"]}') + # Non-OF-format declarations: mint once per triple, rewrite every declarer + # that shares it (see docstring). + declarations_reminted = 0 + assigned = {} # triple -> id chosen this run + for vendor, rec, fid, triple in sorted(non_of_declarers, key=lambda x: (x[0], x[1]["file"])): + fvendor, ftype, family = triple + if not fvendor or not ftype: + missing = " and ".join( + k for k, v in (("filament_vendor", fvendor), + ("filament_type", ftype)) if not v) + print_error( + f'cannot re-mint "{rec["file"]}" (non-OF filament_id "{fid}"): resolves ' + f'empty {missing}; the mint key needs both (generic materials use ' + f'filament_vendor "Generic")') + errors += 1 + continue + if triple not in assigned: + assigned[triple] = mint_filament_id(fvendor, ftype, family, taken) + taken.add(assigned[triple]) + new_id = assigned[triple] + rewrite_filament_id(rec["path"], fid, new_id) + files_changed += 1 + declarations_reminted += 1 + print_info(f'family "{vendor}/{family}": non-OF filament_id "{fid}" -> "{new_id}" ' + f'({rec["file"]})') + print_info(f"families minted : {families_minted}") + print_info(f"non-OF reminted : {declarations_reminted}") print_info(f"files changed : {files_changed}") if files_changed: print_warning(f"now {UPDATE_HINT}") @@ -1010,9 +1101,12 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): # --------------------------------------------------------------------------- def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): - """Re-derive every non-island declared id in the given vendors from its - triple; rewrite mismatching declarations in place (byte-preserving). Never - touches the snapshot — run --update-snapshot afterwards and review the diff. + """Re-derive every declared id in the given vendors from its triple; + rewrite mismatching declarations in place (byte-preserving). Never touches + the snapshot — run --update-snapshot afterwards and review the diff. + Accepts BBL like any other vendor: the GF* catalog is reserved and + ownerless, so BBL's own declarations mint OF ids the same as everyone + else's. A declaration already equal to ANY salt iteration of its own triple is mint-conformant (check 3) and left alone — deliberate salt splits (distinct @@ -1028,9 +1122,6 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): for msg in analysis["read_errors"]: print_error(msg) errors += 1 - if "BBL" in vendor_list: - print_error("--remint BBL is forbidden (the GF* catalog is frozen)") - return 0, errors + 1 unknown = sorted(set(vendor_list) - set(analysis["vendors"])) if unknown: for v in unknown: @@ -1067,8 +1158,6 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): key=lambda r: r["file"]) for rec in recs: fid = rec["filament_id"] - if is_island_declaration(vendor, fid): - continue scanned += 1 # Any salt iteration of the declarer's own triple is already # mint-conformant (check 3) — leave it. This keeps deliberate salt @@ -1117,7 +1206,7 @@ def drop_redundant_ids(vendor, profiles_dir=PROFILES_DIR): dropped = 0 for rec in sorted(vendor_map.values(), key=lambda r: r["file"]): fid = rec.get("filament_id") - if not fid or is_island_declaration(vendor, fid) or not rec.get("inherits"): + if not fid or not rec.get("inherits"): continue resolved, _src, entry = resolve_filament_id( rec["name"], vendor_map, ofl_map, skip_own=True) diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index 0bca29a985..62bd8c2916 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -290,19 +290,14 @@ def check_name_consistency(profiles_dir, vendor_name): return error_count, 0 -def check_filament_id(vendor, vendor_folder): +def check_filament_id(vendor_folder): """ - Make sure filament_id is not longer than 8 characters, otherwise AMS won't work properly + Make sure filament_id is not longer than 8 characters, otherwise AMS won't work properly. - NOTE: superseded by check_filament_ids (assign_filament_ids.py) for non-BBL/OFL - vendors, which validates format/uniqueness/structure tree-wide against the - grandfather snapshot. This length check stays scoped to BBL/OFL because other - vendors ship grandfathered >8-char ids (e.g. Prusa's 36-char name-ids), so it - cannot simply go tree-wide. + Runs tree-wide, every vendor alike: check_filament_ids (assign_filament_ids.py) + already requires every id in the tree to match the fixed-length "OF" format, + so this is a redundant belt-and-suspenders check, not a substitute for it. """ - if vendor not in ('BBL', 'OrcaFilamentLibrary'): - return 0 - error = 0 vendor_path = Path(vendor_folder) if not vendor_path.exists(): @@ -602,7 +597,7 @@ def main(): errors_found += check_vector_type_keys(profiles_dir, vendor_name) - errors_found += check_filament_id(vendor_name, vendor_path / "filament") + errors_found += check_filament_id(vendor_path / "filament") checked_vendor_count += 1 if args.vendor: diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 2ff0e42a7c..3d668d4fc3 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -118,10 +118,11 @@ class SyntheticTree: allow_shared_catalog=allow_shared_catalog) return rc, buf.getvalue() - def check(self): + def check(self, map_path=None): buf = io.StringIO() + kwargs = {} if map_path is None else {"map_path": map_path} with contextlib.redirect_stdout(buf): - errors = afi.check_filament_ids(self.profiles, self.snapshot) + errors = afi.check_filament_ids(self.profiles, self.snapshot, **kwargs) return errors, buf.getvalue() def assign(self): @@ -142,17 +143,24 @@ class SyntheticTree: dropped, errors = afi.drop_redundant_ids(vendor, self.profiles) return dropped, errors, buf.getvalue() -def make_clean_tree(): - """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic.""" +def make_clean_tree(apla_id="AX01", generic_id="OGFL99"): + """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic. + + apla_id/generic_id default to arbitrary non-OF placeholders (grandfathered + into the snapshot below) since most tests only need "already assigned, + don't touch". TestAssign passes real OF-format ids instead: assign_missing_ids + now treats a non-OF declaration as missing and remints it, so a non-OF + baseline would no longer be a no-op there. + """ t = SyntheticTree() t.add_vendor(OFL, [ - preset("fdm_pla", filament_id="OGFL99", instantiation=False, + preset("fdm_pla", filament_id=generic_id, instantiation=False, filament_vendor="Generic", filament_type="PLA"), preset("Generic PLA @System", inherits="fdm_pla", compatible_printers=[]), ]) t.add_vendor("VendorA", [ - preset("APLA @base", filament_id="AX01", instantiation=False, + preset("APLA @base", filament_id=apla_id, instantiation=False, filament_vendor="AVendor", filament_type="PLA"), preset("APLA @P1", inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), @@ -171,6 +179,21 @@ class SyntheticTreeCase(unittest.TestCase): self.addCleanup(self.t.cleanup) +class OfCleanTreeCase(unittest.TestCase): + """Like SyntheticTreeCase, but the baseline family/generic already carry + real OF-format ids (check 1 now rejects "AX01"/"OGFL99" unconditionally, + with no snapshot exemption), so an otherwise-untouched tree still passes + check_filament_ids. Tests that specifically need a non-OF baseline to + remint or drop (TestRemint, TestDropRedundantIds, TestUpdateSnapshot) keep + using SyntheticTreeCase instead. + """ + def setUp(self): + self.t = make_clean_tree( + apla_id=afi.generate_filament_id("AVendor", "PLA", "APLA"), + generic_id=afi.generate_filament_id("Generic", "PLA", "fdm_pla")) + self.addCleanup(self.t.cleanup) + + # --------------------------------------------------------------------------- # mint # --------------------------------------------------------------------------- @@ -376,12 +399,13 @@ class TestTripleResolution(unittest.TestCase): # --------------------------------------------------------------------------- -# reserved namespaces / islands +# reserved namespaces # --------------------------------------------------------------------------- class TestReservedSpaces(unittest.TestCase): def test_owners(self): - self.assertEqual(afi.reserved_space_owner("GFL99"), (True, "BBL")) + # Bambu AMS/RFID catalog: reserved, but no vendor (not even BBL) may declare it + self.assertEqual(afi.reserved_space_owner("GFL99"), (True, None)) # Qidi device protocol: reserved, but no vendor may declare it self.assertEqual(afi.reserved_space_owner("QD_X4_PLA"), (True, None)) self.assertEqual(afi.reserved_space_owner("P1234abc"), (True, None)) @@ -390,20 +414,15 @@ class TestReservedSpaces(unittest.TestCase): self.assertEqual(afi.reserved_space_owner("OF5CgdDq"), (False, None)) self.assertEqual(afi.reserved_space_owner("P1234abcd"), (False, None)) # 8 hex chars: not the user space - def test_island_declarations(self): - self.assertTrue(afi.is_island_declaration("BBL", "GFL99")) - self.assertTrue(afi.is_island_declaration("BBL", "OF5CgdDq")) - # Qidi presets mint like any other vendor's: - self.assertFalse(afi.is_island_declaration("Qidi", "QD_X4_PLA")) - self.assertFalse(afi.is_island_declaration("Qidi", "OF5CgdDq")) - self.assertFalse(afi.is_island_declaration("VendorA", "GFL99")) + def test_gf_is_reserved_and_ownerless(self): + self.assertEqual(afi.reserved_space_owner("GFA00"), (True, None)) # --------------------------------------------------------------------------- # checks on synthetic trees # --------------------------------------------------------------------------- -class TestChecks(SyntheticTreeCase): +class TestChecks(OfCleanTreeCase): def test_clean_tree_is_silent(self): errors, out = self.t.check() self.assertEqual(errors, 0, out) @@ -418,7 +437,7 @@ class TestChecks(SyntheticTreeCase): compatible_printers=["P1"])) errors, out = self.t.check() self.assertGreater(errors, 0) - self.assertIn("neither grandfathered in the snapshot", out) + self.assertIn('is not a minted "OF" id', out) self.assertIn("BOGUS_9", out) def test_check2_new_claim_needs_snapshot_update(self): @@ -437,7 +456,8 @@ class TestChecks(SyntheticTreeCase): self.assertIn('"VendorA/APLA"', out) def test_check2_triple_change_needs_snapshot_update(self): - self.t.write_preset("VendorA", preset("APLA @base", filament_id="AX01", + apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") + self.t.write_preset("VendorA", preset("APLA @base", filament_id=apla_id, instantiation=False, filament_vendor="AVendor", filament_type="PETG"), @@ -542,7 +562,7 @@ class TestChecks(SyntheticTreeCase): self.assertEqual(errors, 0, out) def test_check5_reserved_namespace_claims(self): - for fid, marker in [("GFX99", "owned by BBL"), + for fid, marker in [("GFX99", "Bambu AMS/RFID catalog"), ("QD_X_PLA", "composed by the device"), ("P1a2b3c4", "user-custom"), ("null", "user-custom")]: @@ -560,7 +580,10 @@ class TestChecks(SyntheticTreeCase): self.assertIn(marker, out) def test_check6a_instantiated_preset_with_own_key(self): - self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX01", + # Same value the child would already resolve through inherits: this + # isolates check 6a (own key present) from check 6b (value drift). + apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") + self.t.write_preset("VendorA", preset("APLA @P1", filament_id=apla_id, inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), register=False) @@ -569,13 +592,16 @@ class TestChecks(SyntheticTreeCase): self.assertIn("declares its own filament_id key", out) def test_check6b_declared_vs_inherited_drift(self): - self.t.write_preset("VendorA", preset("APLA @P1", filament_id="AX02", + apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") + drifted = afi.generate_filament_id("AVendor", "PLA", "APLA", salt=1) + self.t.write_preset("VendorA", preset("APLA @P1", filament_id=drifted, inherits="APLA @base", compatible_printers=["P1 0.4 nozzle"]), register=False) errors, out = self.t.check() self.assertGreater(errors, 0) - self.assertIn('declares filament_id "AX02" but its inherits chain resolves "AX01"', out) + self.assertIn(f'declares filament_id "{drifted}" but its inherits chain resolves ' + f'"{apla_id}"', out) def test_check6c_unresolvable_instantiated_filament(self): self.t.write_preset("VendorA", preset("DNEW @P1", compatible_printers=["P1"])) @@ -591,7 +617,7 @@ class TestChecks(SyntheticTreeCase): self.assertIn("snapshot not found", out) -class TestCheck7(SyntheticTreeCase): +class TestCheck7(OfCleanTreeCase): def test_7a_empty_vendor_is_hard_error(self): fid = afi.generate_filament_id("", "PLA", "NVPLA") self.t.write_preset("VendorA", preset("NVPLA @base", filament_id=fid, @@ -650,6 +676,43 @@ class TestCheck7(SyntheticTreeCase): self.assertIn('"APLA"', out) +class TestCheck8(OfCleanTreeCase): + def _write_map(self, rows): + path = os.path.join(self.t.dir, "bambu_filament_ids.json") + ubfi.write_map(path, rows, "testcommit", "2026-09-04") + return path + + def test_row_triple_must_match_tree(self): + fid = afi.generate_filament_id("V", "PLA", "Foo") + self.t.write_preset("VendorA", preset("Foo @base", filament_id=fid, + instantiation=False, + filament_vendor="V", filament_type="PLA")) + self.t.write_preset("VendorA", preset("Foo @P1", inherits="Foo @base", + compatible_printers=["P1"])) + map_path = self._write_map( + {fid: {"bambu_id": "GFZ00", "vendor": "V", "type": "PLA", "name": "Bar"}}) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn("regenerate the map", out) + + def test_duplicate_bambu_id_is_an_error(self): + map_path = self._write_map({ + "OFaaaaaa": {"bambu_id": "GFZ00", "vendor": "V", "type": "PLA", "name": "Foo"}, + "OFbbbbbb": {"bambu_id": "GFZ00", "vendor": "V", "type": "PETG", "name": "Bar"}, + }) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn("GFZ00", out) + + def test_row_for_unshipped_product_is_fine(self): + map_path = self._write_map({ + "OFcccccc": {"bambu_id": "GFZ99", "vendor": "Nobody", "type": "PLA", + "name": "Ships Nothing"}, + }) + errors, out = self.t.check(map_path) + self.assertEqual(errors, 0, out) + + # --------------------------------------------------------------------------- # --update-snapshot # --------------------------------------------------------------------------- @@ -698,7 +761,7 @@ class TestUpdateSnapshot(SyntheticTreeCase): # default run: mint + insert # --------------------------------------------------------------------------- -class TestAssign(SyntheticTreeCase): +class TestAssign(OfCleanTreeCase): def test_noop_on_fully_idded_tree(self): changed, errors, out = self.t.assign() self.assertEqual((changed, errors), (0, 0)) @@ -771,6 +834,56 @@ class TestAssign(SyntheticTreeCase): self.assertGreater(errors, 0) self.assertIn("shared with famil", out) + def test_non_of_declaration_is_treated_as_missing(self): + # A declaration that isn't OF-format (e.g. a vendor bundle synced from + # an upstream catalog, like BBL's GF ids) is reminted like a missing + # family, not left alone. + self.t.write_preset("VendorA", preset("Synced PLA @base", filament_id="GFZZ00", + instantiation=False, + filament_vendor="ZV", filament_type="PLA")) + self.t.write_preset("VendorA", preset("Synced PLA @P1", + inherits="Synced PLA @base", + compatible_printers=["P1"])) + changed, errors, out = self.t.assign() + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 1) + path = self.t.preset_path("VendorA", "Synced PLA @base") + root = load_json_file(path) + want = afi.generate_filament_id("ZV", "PLA", "Synced PLA") + self.assertEqual(root["filament_id"], want) + # the value was replaced in place, not appended as a second key + raw = open(path, encoding="utf-8").read() + self.assertEqual(raw.count('"filament_id"'), 1) + # idempotent: the id is OF-format now, so a second run is a no-op + changed, errors, _out = self.t.assign() + self.assertEqual((changed, errors), (0, 0)) + + def test_non_of_multi_root_family_converges_on_one_id(self): + # Two per-printer roots of one product (same triple), both carrying + # the SAME non-OF id — the shape a synced vendor bundle ships (e.g. + # BambuStudio's own per-printer @base files). They must converge on + # one freshly minted id, not split into two. + self.t.write_preset("VendorA", preset("Synced ABS @P1base", filament_id="GFSYNC0", + instantiation=False, + filament_vendor="ZV", filament_type="ABS")) + self.t.write_preset("VendorA", preset("Synced ABS @P2base", filament_id="GFSYNC0", + instantiation=False, + filament_vendor="ZV", filament_type="ABS")) + self.t.write_preset("VendorA", preset("Synced ABS @P1", + inherits="Synced ABS @P1base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("Synced ABS @P2", + inherits="Synced ABS @P2base", + compatible_printers=["P2"])) + changed, errors, out = self.t.assign() + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 2) + want = afi.generate_filament_id("ZV", "ABS", "Synced ABS") + b1 = load_json_file(self.t.preset_path("VendorA", "Synced ABS @P1base")) + b2 = load_json_file(self.t.preset_path("VendorA", "Synced ABS @P2base")) + self.assertEqual(b1["filament_id"], want) + self.assertEqual(b2["filament_id"], want) + # --------------------------------------------------------------------------- # byte-preserving profile edits @@ -962,11 +1075,19 @@ class TestRemint(SyntheticTreeCase): self.assertEqual(root["filament_id"], afi.generate_filament_id(*self.TRIPLE, salt=1)) - def test_bbl_is_forbidden(self): + def test_bbl_is_reminted_like_any_vendor(self): + self.t.add_vendor("BBL", [ + preset("Bambu ABS @base", filament_id="GFB00", instantiation=False, + filament_vendor="Bambu Lab", filament_type="ABS"), + preset("Bambu ABS @P1", inherits="Bambu ABS @base", + compatible_printers=["P1"]), + ]) changed, errors, out = self.t.remint(["BBL"]) - self.assertEqual(changed, 0) - self.assertGreater(errors, 0) - self.assertIn("forbidden", out) + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 1) + root = load_json_file(self.t.preset_path("BBL", "Bambu ABS @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id("Bambu Lab", "ABS", "Bambu ABS")) # --------------------------------------------------------------------------- @@ -1044,7 +1165,7 @@ class TestRealTree(unittest.TestCase): # review-fix regressions # --------------------------------------------------------------------------- -class TestReviewFixes(SyntheticTreeCase): +class TestReviewFixes(OfCleanTreeCase): def test_check3_skips_of_id_inherited_from_other_vendor(self): # An OFL family carries its own minted OF id and a vendor tunes it # correctly (same base name, non-empty printers). The new claim must From db3d684ee00fab86f817eaa6d858157c0cc735de Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 14:42:57 +0800 Subject: [PATCH 131/164] Scope the filament AMS length check to presets the vendor bundle references The tree-wide length check (freed from its BBL/OFL carve-out last commit) was flagging 21 pre-existing SeeMeCNC files that no vendor index references and that therefore never load, turning CI red for files with no bearing on what ships. The rule now only fires on presets a vendor's filament_list actually references; every .json under the vendor's filament directory is still parsed through the duplicate-key hook, so that coverage is unchanged. Also removed a duplicated BAMBU_MAP_PATH definition: update_bambu_filament_ids.py now imports the constant from assign_filament_ids.py, which it already imports several other constants from, instead of recomputing the same path independently. --- scripts/assign_filament_ids.py | 4 +-- scripts/orca_extra_profile_check.py | 37 +++++++++++++++++++++------- scripts/update_bambu_filament_ids.py | 5 +--- 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index cc3adeab4a..7ce907f816 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -79,8 +79,8 @@ FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) PROFILES_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "resources", "profiles")) SNAPSHOT_PATH = os.path.join(SCRIPTS_DIR, "filament_id_snapshot.json") -# Same path update_bambu_filament_ids.BAMBU_MAP_PATH computes; kept as a sibling -# constant (not imported) because that module imports FROM this one already. +# The single source of truth for the map path; update_bambu_filament_ids.py +# imports this rather than recomputing it. BAMBU_MAP_PATH = os.path.normpath( os.path.join(SCRIPTS_DIR, "..", "resources", "printers", "bambu_filament_ids.json")) diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index 62bd8c2916..285b2fbf64 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -290,19 +290,38 @@ def check_name_consistency(profiles_dir, vendor_name): return error_count, 0 -def check_filament_id(vendor_folder): +def check_filament_id(profiles_dir, vendor_name): """ Make sure filament_id is not longer than 8 characters, otherwise AMS won't work properly. - Runs tree-wide, every vendor alike: check_filament_ids (assign_filament_ids.py) - already requires every id in the tree to match the fixed-length "OF" format, - so this is a redundant belt-and-suspenders check, not a substitute for it. + Runs tree-wide, every vendor alike (BBL included: the id format is what + matters, not the vendor). Every .json file under the vendor's filament + directory is still parsed through the duplicate-key hook below, so that + coverage is unchanged; only the length rule itself is scoped to presets + the vendor's index (<vendor>.json filament_list) actually references. A + file the index does not reference never loads, so its filament_id length + cannot break AMS -- and some vendors (e.g. SeeMeCNC) ship such orphaned + files pre-dating this check, with no bearing on what ships. """ error = 0 - vendor_path = Path(vendor_folder) + vendor_path = profiles_dir / vendor_name / "filament" if not vendor_path.exists(): return 0 + referenced = set() + vendor_file = profiles_dir / (vendor_name + ".json") + if vendor_file.exists(): + try: + with open(vendor_file, 'r', encoding='UTF-8') as fp: + index = json.load(fp) + for entry in index.get('filament_list', []): + sub_path = entry.get('sub_path') + if sub_path: + referenced.add((profiles_dir / vendor_name / sub_path).resolve()) + except Exception as e: + print_error(f"Error loading vendor profile {vendor_file}: {e}") + error += 1 + # Use rglob to recursively find .json files. for file_path in vendor_path.rglob("*.json"): try: @@ -320,13 +339,13 @@ def check_filament_id(vendor_folder): if 'filament_id' not in data: continue - + filament_id = data['filament_id'] - if len(filament_id) > 8: + if len(filament_id) > 8 and file_path.resolve() in referenced: error += 1 print_error(f"Filament id too long \"{filament_id}\": {file_path}") - + return error def check_obsolete_keys(profiles_dir, vendor_name): @@ -597,7 +616,7 @@ def main(): errors_found += check_vector_type_keys(profiles_dir, vendor_name) - errors_found += check_filament_id(vendor_path / "filament") + errors_found += check_filament_id(profiles_dir, vendor_name) checked_vendor_count += 1 if args.vendor: diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py index 744fcc0401..cd5e05e3bc 100644 --- a/scripts/update_bambu_filament_ids.py +++ b/scripts/update_bambu_filament_ids.py @@ -55,6 +55,7 @@ import datetime sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from assign_filament_ids import ( # noqa: E402 + BAMBU_MAP_PATH, OFL, OF_ID_RE, PROFILES_DIR, @@ -69,10 +70,6 @@ from assign_filament_ids import ( # noqa: E402 resolve_triple, ) -SCRIPTS_DIR = os.path.dirname(os.path.abspath(__file__)) -BAMBU_MAP_PATH = os.path.normpath( - os.path.join(SCRIPTS_DIR, "..", "resources", "printers", "bambu_filament_ids.json")) - BAMBUSTUDIO_REPO = "https://github.com/bambulab/BambuStudio" From ec207e67a31784eaa9c803190a8f9db2abf7b3b8 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 15:01:58 +0800 Subject: [PATCH 132/164] Mint content-addressed ids for the Bambu bundle --- resources/profiles/BBL.json | 2 +- .../BBL/filament/BETA/BETA ABS @base.json | 2 +- .../BBL/filament/BETA/BETA ASA @base.json | 2 +- .../BBL/filament/BETA/BETA HIPS @base.json | 2 +- .../BBL/filament/BETA/BETA PAHT-CF @base.json | 2 +- .../filament/BETA/BETA PEBA 90A @base.json | 2 +- .../BBL/filament/BETA/BETA PETG @base.json | 2 +- .../BETA/BETA PETG Fluorescence @base.json | 2 +- .../BETA/BETA PETG Glitter @base.json | 2 +- .../filament/BETA/BETA PETG Glow @base.json | 2 +- .../BETA/BETA PETG Gradient @base.json | 2 +- .../BBL/filament/BETA/BETA PETG HF @base.json | 2 +- .../BETA PETG Heat Color Change @base.json | 2 +- .../filament/BETA/BETA PETG Marble @base.json | 2 +- .../filament/BETA/BETA PETG Matte @base.json | 2 +- .../BETA/BETA PETG Metallic @base.json | 2 +- .../BETA/BETA PETG Transparent @base.json | 2 +- .../BETA/BETA PETG UV Color Change @base.json | 2 +- .../BBL/filament/BETA/BETA PETG-CF @base.json | 2 +- .../BBL/filament/BETA/BETA PETG-GF @base.json | 2 +- .../filament/BETA/BETA PLA Basic @base.json | 2 +- .../BETA/BETA PLA Chameleon @base.json | 2 +- .../BETA/BETA PLA Fluorescence @base.json | 2 +- .../filament/BETA/BETA PLA Glitter @base.json | 2 +- .../filament/BETA/BETA PLA Glow @base.json | 2 +- .../BETA/BETA PLA Gradient @base.json | 2 +- .../BETA PLA Heat Color Change @base.json | 2 +- .../BETA/BETA PLA High Speed @base.json | 2 +- .../BETA/BETA PLA High Temp @base.json | 2 +- .../filament/BETA/BETA PLA Marble @base.json | 2 +- .../filament/BETA/BETA PLA Matte @base.json | 2 +- .../filament/BETA/BETA PLA Metal @base.json | 2 +- .../BETA/BETA PLA Metallic @base.json | 2 +- .../BBL/filament/BETA/BETA PLA PRO @base.json | 2 +- .../filament/BETA/BETA PLA Silk @base.json | 2 +- .../filament/BETA/BETA PLA Silk+ @base.json | 2 +- .../BETA/BETA PLA Transparent @base.json | 2 +- .../BETA/BETA PLA UV Color Change @base.json | 2 +- .../filament/BETA/BETA PLA Wood @base.json | 2 +- .../filament/BETA/BETA PLA Youth @base.json | 2 +- .../BBL/filament/BETA/BETA PLA-CF @base.json | 2 +- .../BBL/filament/BETA/BETA TPU 90A @base.json | 2 +- .../BBL/filament/BETA/BETA TPU 95A @base.json | 2 +- .../BBL/filament/BETA/BETA TPU 98A @base.json | 2 +- .../filament/BETA/BETA TPU Matte @base.json | 2 +- .../BBL/filament/Bambu ABS @base.json | 2 +- .../BBL/filament/Bambu ABS-GF @base.json | 2 +- .../BBL/filament/Bambu ASA @base.json | 2 +- .../BBL/filament/Bambu ASA-Aero @base.json | 2 +- .../BBL/filament/Bambu ASA-CF @base.json | 2 +- .../BBL/filament/Bambu PA-CF @base.json | 2 +- .../BBL/filament/Bambu PA6-CF @base.json | 2 +- .../BBL/filament/Bambu PA6-GF @base.json | 2 +- .../BBL/filament/Bambu PAHT-CF @base.json | 2 +- .../profiles/BBL/filament/Bambu PC @base.json | 2 +- .../BBL/filament/Bambu PC FR @base.json | 2 +- .../BBL/filament/Bambu PET-CF @base.json | 2 +- .../BBL/filament/Bambu PETG Basic @base.json | 2 +- .../BBL/filament/Bambu PETG HF @base.json | 2 +- .../Bambu PETG Translucent @base.json | 2 +- .../BBL/filament/Bambu PETG-CF @base.json | 2 +- .../BBL/filament/Bambu PLA Aero @base.json | 2 +- .../BBL/filament/Bambu PLA Basic @base.json | 2 +- .../BBL/filament/Bambu PLA Dynamic @base.json | 2 +- .../BBL/filament/Bambu PLA Galaxy @base.json | 2 +- .../BBL/filament/Bambu PLA Glow @base.json | 2 +- .../BBL/filament/Bambu PLA Lite @base.json | 2 +- .../BBL/filament/Bambu PLA Marble @base.json | 2 +- .../BBL/filament/Bambu PLA Matte @base.json | 2 +- .../BBL/filament/Bambu PLA Metal @base.json | 2 +- .../BBL/filament/Bambu PLA Pure @base.json | 2 +- .../BBL/filament/Bambu PLA Silk @base.json | 2 +- .../BBL/filament/Bambu PLA Silk+ @base.json | 2 +- .../BBL/filament/Bambu PLA Sparkle @base.json | 2 +- .../BBL/filament/Bambu PLA Tough @base.json | 2 +- .../BBL/filament/Bambu PLA Tough+ @base.json | 2 +- .../filament/Bambu PLA Translucent @base.json | 2 +- .../BBL/filament/Bambu PLA Wood @base.json | 2 +- .../BBL/filament/Bambu PLA-CF @base.json | 2 +- .../BBL/filament/Bambu PPA-CF @base.json | 2 +- .../BBL/filament/Bambu PPS-CF @base.json | 2 +- .../BBL/filament/Bambu PVA @base.json | 2 +- .../Bambu Support For PA PET @base.json | 2 +- .../filament/Bambu Support For PLA @base.json | 2 +- .../Bambu Support For PLA-PETG @base.json | 2 +- .../BBL/filament/Bambu Support G @base.json | 2 +- .../BBL/filament/Bambu Support W @base.json | 2 +- .../filament/Bambu Support for ABS @base.json | 2 +- .../BBL/filament/Bambu TPU 85A @base.json | 2 +- .../BBL/filament/Bambu TPU 90A @base.json | 2 +- .../BBL/filament/Bambu TPU 95A @base.json | 2 +- .../BBL/filament/Bambu TPU 95A HF @base.json | 2 +- .../BBL/filament/Bambu TPU for AMS @base.json | 2 +- .../FusRock/FusRock ABS-GF @base.json | 2 +- .../BBL/filament/Generic ABS @base.json | 2 +- .../BBL/filament/Generic ASA @base.json | 2 +- .../BBL/filament/Generic BVOH @base.json | 2 +- .../BBL/filament/Generic EVA @base.json | 2 +- .../BBL/filament/Generic HIPS @base.json | 2 +- .../BBL/filament/Generic PA @base.json | 2 +- .../BBL/filament/Generic PA-CF @base.json | 2 +- .../BBL/filament/Generic PC @base.json | 2 +- .../BBL/filament/Generic PCTG @base.json | 2 +- .../BBL/filament/Generic PE @base.json | 2 +- .../BBL/filament/Generic PE-CF @base.json | 2 +- .../BBL/filament/Generic PETG @base.json | 2 +- .../BBL/filament/Generic PETG HF @base.json | 2 +- .../BBL/filament/Generic PETG-CF @base.json | 2 +- .../BBL/filament/Generic PHA @base.json | 2 +- .../BBL/filament/Generic PLA @base.json | 2 +- .../Generic PLA High Speed @base.json | 2 +- .../BBL/filament/Generic PLA Silk @base.json | 2 +- .../BBL/filament/Generic PLA-CF @base.json | 2 +- .../BBL/filament/Generic PP @base.json | 2 +- .../BBL/filament/Generic PP-CF @base.json | 2 +- .../BBL/filament/Generic PP-GF @base.json | 2 +- .../BBL/filament/Generic PPA-CF @base.json | 2 +- .../BBL/filament/Generic PPA-GF @base.json | 2 +- .../BBL/filament/Generic PPS @base.json | 2 +- .../BBL/filament/Generic PPS-CF @base.json | 2 +- .../BBL/filament/Generic PVA @base.json | 2 +- .../BBL/filament/Generic SBS @base.json | 2 +- .../profiles/BBL/filament/Generic SBS.json | 2 +- .../BBL/filament/Generic TPU @base.json | 2 +- .../filament/Generic TPU for AMS @base.json | 2 +- .../Numakers/Numakers PLA+ @base.json | 2 +- .../Overture/Overture Matte PLA @base.json | 2 +- .../filament/Overture/Overture PLA @base.json | 2 +- .../Overture/Overture PLA Pro @base.json | 2 +- .../Polymaker/Fiberon PA12-CF @base.json | 2 +- .../Polymaker/Fiberon PA12-CF10 @base.json | 2 +- .../Polymaker/Fiberon PA6-CF @base.json | 2 +- .../Polymaker/Fiberon PA6-CF20 @base.json | 2 +- .../Polymaker/Fiberon PA6-GF @base.json | 2 +- .../Polymaker/Fiberon PA6-GF25 @base.json | 2 +- .../Polymaker/Fiberon PA612-CF @base.json | 2 +- .../Polymaker/Fiberon PA612-CF15 @base.json | 2 +- .../Polymaker/Fiberon PET-CF @base.json | 2 +- .../Polymaker/Fiberon PET-CF17 @base.json | 2 +- .../Polymaker/Fiberon PETG-ESD @base.json | 2 +- .../Polymaker/Fiberon PETG-rCF @base.json | 2 +- .../Polymaker/Fiberon PETG-rCF08 @base.json | 2 +- .../Polymaker/Panchroma CoPE @base.json | 2 +- .../Polymaker/Panchroma PLA @base.json | 2 +- .../Panchroma PLA Celestial @base.json | 2 +- .../Polymaker/Panchroma PLA Galaxy @base.json | 2 +- .../Polymaker/Panchroma PLA Glow @base.json | 2 +- .../Panchroma PLA Luminous @base.json | 2 +- .../Polymaker/Panchroma PLA Marble @base.json | 2 +- .../Polymaker/Panchroma PLA Matte @base.json | 2 +- .../Panchroma PLA Metallic @base.json | 2 +- .../Polymaker/Panchroma PLA Neon @base.json | 2 +- .../Polymaker/Panchroma PLA Satin @base.json | 2 +- .../Polymaker/Panchroma PLA Silk @base.json | 2 +- .../Panchroma PLA Starlight @base.json | 2 +- .../Panchroma PLA Temp Shift @base.json | 2 +- .../Panchroma PLA Translucent @base.json | 2 +- .../Panchroma PLA UV Shift @base.json | 2 +- .../Polymaker/PolyLite ABS @base.json | 2 +- .../Polymaker/PolyLite ASA @base.json | 2 +- .../Polymaker/PolyLite CosPLA @base.json | 2 +- .../Polymaker/PolyLite PETG @base.json | 2 +- .../Polymaker/PolyLite PLA @base.json | 2 +- .../Polymaker/PolyLite PLA Galaxy @base.json | 2 +- .../Polymaker/PolyLite PLA Glow @base.json | 2 +- .../PolyLite PLA Luminous @base.json | 2 +- .../Polymaker/PolyLite PLA Neon @base.json | 2 +- .../Polymaker/PolyLite PLA Pro @base.json | 2 +- .../PolyLite PLA Starlight @base.json | 2 +- .../PolyLite PLA Translucent @base.json | 2 +- .../Polymaker/PolyTerra PLA @base.json | 2 +- .../Polymaker/PolyTerra PLA Marble @base.json | 2 +- .../Polymaker/PolyTerra PLA+ @base.json | 2 +- .../Polymaker/Polymaker HT-PLA @base.json | 2 +- .../Polymaker/Polymaker HT-PLA-GF @base.json | 2 +- .../SUNLU/SUNLU Marble PLA @base.json | 2 +- .../BBL/filament/SUNLU/SUNLU PETG @base.json | 2 +- .../filament/SUNLU/SUNLU PLA Matte @base.json | 2 +- .../filament/SUNLU/SUNLU PLA+ 2.0 @base.json | 2 +- .../BBL/filament/SUNLU/SUNLU PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Silk PLA+ @base.json | 2 +- .../filament/SUNLU/SUNLU Wood PLA @base.json | 2 +- .../filament/addnorth/addnorth ABS rABS.json | 2 +- .../addnorth/addnorth PA Adura FDA.json | 2 +- .../filament/addnorth/addnorth PA Adura.json | 2 +- .../addnorth/addnorth PA-CF Adura X.json | 2 +- .../addnorth/addnorth PA6 Addlantis.json | 2 +- .../addnorth/addnorth PC BLend HT LCF.json | 2 +- .../filament/addnorth/addnorth PETG Base.json | 2 +- .../filament/addnorth/addnorth PETG ESD.json | 2 +- .../addnorth/addnorth PETG Economy.json | 2 +- .../addnorth/addnorth PETG Flame v0.json | 2 +- .../addnorth/addnorth PETG PRO Matte.json | 2 +- .../addnorth/addnorth PETG rPETG Matte.json | 2 +- .../addnorth/addnorth PETG-CF Rigid X.json | 2 +- .../filament/addnorth/addnorth PLA E-PLA.json | 2 +- .../addnorth/addnorth PLA Economy.json | 2 +- .../addnorth PLA HT-PLA PRO Matte.json | 2 +- .../addnorth/addnorth PLA Premium Silk.json | 2 +- .../addnorth/addnorth PLA Textura.json | 2 +- .../filament/addnorth/addnorth PLA Wood.json | 2 +- .../addnorth PLA X-PLA High Speed.json | 2 +- .../filament/addnorth/addnorth PLA X-PLA.json | 2 +- .../addnorth/addnorth PLA rPLA RE-ADD.json | 2 +- .../addnorth PLA-CF Carbon Fiber.json | 2 +- .../addnorth/addnorth PVDF Adamant S1.json | 2 +- .../addnorth/addnorth TPU EasyFlex.json | 2 +- .../addnorth/addnorth TPU Pro Matte 85A.json | 2 +- .../addnorth/addnorth TPU Pro Matte 95A.json | 2 +- .../BBL/filament/eSUN/eSUN PLA+ @base.json | 2 +- scripts/filament_id_snapshot.json | 1584 ++++++++++------- 211 files changed, 1167 insertions(+), 837 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index a2e72e00cb..723a907f52 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "02.01.00.23", + "version": "02.01.00.24", "force_update": "0", "description": "BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA ABS @base.json b/resources/profiles/BBL/filament/BETA/BETA ABS @base.json index 38e7aa5c12..bbed068703 100644 --- a/resources/profiles/BBL/filament/BETA/BETA ABS @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA ABS @base.json @@ -3,7 +3,7 @@ "name": "BETA ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "BABB00", + "filament_id": "OFjUXn67", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA ASA @base.json b/resources/profiles/BBL/filament/BETA/BETA ASA @base.json index a36f654b02..a525f16bb1 100644 --- a/resources/profiles/BBL/filament/BETA/BETA ASA @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA ASA @base.json @@ -3,7 +3,7 @@ "name": "BETA ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "BASB00", + "filament_id": "OFZqZMuv", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "eng_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA HIPS @base.json b/resources/profiles/BBL/filament/BETA/BETA HIPS @base.json index 2647bc3397..4d244f9fe1 100644 --- a/resources/profiles/BBL/filament/BETA/BETA HIPS @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA HIPS @base.json @@ -3,7 +3,7 @@ "name": "BETA HIPS @base", "inherits": "fdm_filament_hips", "from": "system", - "filament_id": "BHIB00", + "filament_id": "OFlmxlDG", "instantiation": "false", "filament_is_support": [ "1" diff --git a/resources/profiles/BBL/filament/BETA/BETA PAHT-CF @base.json b/resources/profiles/BBL/filament/BETA/BETA PAHT-CF @base.json index c0116f418c..1c140e3720 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PAHT-CF @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PAHT-CF @base.json @@ -3,7 +3,7 @@ "name": "BETA PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "BPAB00", + "filament_id": "OF6qw3Wb", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PEBA 90A @base.json b/resources/profiles/BBL/filament/BETA/BETA PEBA 90A @base.json index d92ceb29b1..fe1d3cd5b6 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PEBA 90A @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PEBA 90A @base.json @@ -3,7 +3,7 @@ "name": "BETA PEBA 90A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "BPBB00", + "filament_id": "OFI2MKy7", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG @base.json index 9d15c065f5..07a25f9233 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB00", + "filament_id": "OFrqMlGt", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Fluorescence @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Fluorescence @base.json index b9b0032612..b79699b9fc 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Fluorescence @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Fluorescence @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Fluorescence @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB02", + "filament_id": "OFYGrfHY", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Glitter @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Glitter @base.json index 70d84d21d3..c6b7b96de5 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Glitter @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Glitter @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Glitter @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB03", + "filament_id": "OFjogeYN", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Glow @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Glow @base.json index 7da99e23fc..30c8cc2783 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Glow @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Glow @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Glow @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB04", + "filament_id": "OFFfJ09N", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Gradient @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Gradient @base.json index 6f6e891503..cff77a0d6c 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Gradient @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Gradient @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Gradient @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB05", + "filament_id": "OFNk8AvA", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG HF @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG HF @base.json index 1ce6e4299e..b7aa43b6b5 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG HF @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG HF @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB06", + "filament_id": "OFxqf79Q", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Heat Color Change @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Heat Color Change @base.json index 32a62c63b7..254cf9e4c1 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Heat Color Change @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Heat Color Change @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Heat Color Change @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB01", + "filament_id": "OFyPTnSk", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Marble @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Marble @base.json index 30c79b2db5..335a3f59b2 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Marble @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Marble @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Marble @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB07", + "filament_id": "OF4XTfoI", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Matte @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Matte @base.json index c7278e20dd..52a838f323 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Matte @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Matte @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Matte @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB08", + "filament_id": "OFnpX8uh", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Metallic @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Metallic @base.json index b2d9ce8524..9c276bcf4d 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Metallic @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Metallic @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Metallic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB09", + "filament_id": "OFz1a1fy", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG Transparent @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG Transparent @base.json index 6378e0cfdd..781d69af3a 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG Transparent @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG Transparent @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG Transparent @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB10", + "filament_id": "OFmt513L", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG UV Color Change @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG UV Color Change @base.json index 53717f5be3..42fa3bd62b 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG UV Color Change @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG UV Color Change @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG UV Color Change @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB11", + "filament_id": "OFKyNkQz", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG-CF @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG-CF @base.json index 165d5a56b8..8e3514f0ad 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG-CF @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB12", + "filament_id": "OFtndTHe", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/BETA/BETA PETG-GF @base.json b/resources/profiles/BBL/filament/BETA/BETA PETG-GF @base.json index 6261eaa7d2..d530f7a1d7 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PETG-GF @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PETG-GF @base.json @@ -3,7 +3,7 @@ "name": "BETA PETG-GF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "BPGB13", + "filament_id": "OFSiCZP3", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Basic @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Basic @base.json index 1653813bc1..429ecceda1 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Basic @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB00", + "filament_id": "OFuvOt0r", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Chameleon @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Chameleon @base.json index cb618e7bd0..5054237514 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Chameleon @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Chameleon @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Chameleon @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB02", + "filament_id": "OFW8M3CY", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Fluorescence @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Fluorescence @base.json index 684ce8866f..d9198287aa 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Fluorescence @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Fluorescence @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Fluorescence @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB04", + "filament_id": "OF4PKvem", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Glitter @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Glitter @base.json index d180d4fb04..545a34dd92 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Glitter @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Glitter @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Glitter @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB05", + "filament_id": "OFcnWTJB", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Glow @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Glow @base.json index 05657ebd86..6be0a9da33 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Glow @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB06", + "filament_id": "OFGc9l16", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Gradient @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Gradient @base.json index f6cb4e3193..9609ff08d3 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Gradient @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Gradient @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Gradient @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB07", + "filament_id": "OF5LAnla", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Heat Color Change @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Heat Color Change @base.json index 6f55ffdab8..958b999d91 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Heat Color Change @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Heat Color Change @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Heat Color Change @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB03", + "filament_id": "OFSfm8iP", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA High Speed @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA High Speed @base.json index 604604cb04..7b93695099 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA High Speed @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA High Speed @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA High Speed @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB20", + "filament_id": "OF3PDEw3", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA High Temp @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA High Temp @base.json index 7ac72d59fa..d900b28794 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA High Temp @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA High Temp @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA High Temp @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB18", + "filament_id": "OF5BXhHF", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Marble @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Marble @base.json index c27f1b4fd1..a472446d9a 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Marble @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB08", + "filament_id": "OFKYBAWe", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Matte @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Matte @base.json index d67331d549..32bd79b43b 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Matte @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB09", + "filament_id": "OFwc74ck", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Metal @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Metal @base.json index 3a5668800d..607e20fa4e 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Metal @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB10", + "filament_id": "OF03RK6r", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Metallic @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Metallic @base.json index 5c1c8f3ddf..c03bc0a8c7 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Metallic @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Metallic @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Metallic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB11", + "filament_id": "OFkHbjUv", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA PRO @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA PRO @base.json index 340b2c88ec..6938382062 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA PRO @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA PRO @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA PRO @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB12", + "filament_id": "OFMzRg65", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Silk @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Silk @base.json index fb445eed6b..a0c61acd51 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Silk @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB13", + "filament_id": "OFeF4UNh", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Silk+ @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Silk+ @base.json index 3320396323..0bedc9186a 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Silk+ @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Silk+ @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Silk+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB01", + "filament_id": "OF8QdQwS", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Transparent @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Transparent @base.json index ce0c342852..be62c10734 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Transparent @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Transparent @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Transparent @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB14", + "filament_id": "OFJnEaCp", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA UV Color Change @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA UV Color Change @base.json index 033d1ef2ce..d95a0d8411 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA UV Color Change @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA UV Color Change @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA UV Color Change @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB15", + "filament_id": "OFpdjFI3", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Wood @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Wood @base.json index 471c5709cd..c5eeae9995 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Wood @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Wood @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Wood @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB19", + "filament_id": "OFGVxj2A", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA Youth @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA Youth @base.json index b63dc707e0..5fa118d566 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA Youth @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA Youth @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA Youth @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB16", + "filament_id": "OFF5o7b2", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/BETA/BETA PLA-CF @base.json b/resources/profiles/BBL/filament/BETA/BETA PLA-CF @base.json index 88028090da..f0f632adfa 100644 --- a/resources/profiles/BBL/filament/BETA/BETA PLA-CF @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "BETA PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "BPLB17", + "filament_id": "OFLqgSuX", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/BBL/filament/BETA/BETA TPU 90A @base.json b/resources/profiles/BBL/filament/BETA/BETA TPU 90A @base.json index 6664874f99..bba256fd74 100644 --- a/resources/profiles/BBL/filament/BETA/BETA TPU 90A @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA TPU 90A @base.json @@ -3,7 +3,7 @@ "name": "BETA TPU 90A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "BTUB00", + "filament_id": "OF6Yn69v", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA TPU 95A @base.json b/resources/profiles/BBL/filament/BETA/BETA TPU 95A @base.json index 2ec4a56075..87f7757c3f 100644 --- a/resources/profiles/BBL/filament/BETA/BETA TPU 95A @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA TPU 95A @base.json @@ -3,7 +3,7 @@ "name": "BETA TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "BTUB02", + "filament_id": "OFK7830e", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA TPU 98A @base.json b/resources/profiles/BBL/filament/BETA/BETA TPU 98A @base.json index 58ef5a5c21..cd106a6bf6 100644 --- a/resources/profiles/BBL/filament/BETA/BETA TPU 98A @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA TPU 98A @base.json @@ -3,7 +3,7 @@ "name": "BETA TPU 98A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "BTUB03", + "filament_id": "OFzaq7Yg", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/BETA/BETA TPU Matte @base.json b/resources/profiles/BBL/filament/BETA/BETA TPU Matte @base.json index 20d773373f..272e9be1ed 100644 --- a/resources/profiles/BBL/filament/BETA/BETA TPU Matte @base.json +++ b/resources/profiles/BBL/filament/BETA/BETA TPU Matte @base.json @@ -3,7 +3,7 @@ "name": "BETA TPU Matte @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "BTUB01", + "filament_id": "OF4QZANi", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu ABS @base.json b/resources/profiles/BBL/filament/Bambu ABS @base.json index 4940032f5e..5f395440eb 100644 --- a/resources/profiles/BBL/filament/Bambu ABS @base.json +++ b/resources/profiles/BBL/filament/Bambu ABS @base.json @@ -3,7 +3,7 @@ "name": "Bambu ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB00", + "filament_id": "OFhuaUQB", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu ABS-GF @base.json b/resources/profiles/BBL/filament/Bambu ABS-GF @base.json index b93c7e82cf..a14581034d 100644 --- a/resources/profiles/BBL/filament/Bambu ABS-GF @base.json +++ b/resources/profiles/BBL/filament/Bambu ABS-GF @base.json @@ -3,7 +3,7 @@ "name": "Bambu ABS-GF @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB50", + "filament_id": "OFknl9Iz", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu ASA @base.json b/resources/profiles/BBL/filament/Bambu ASA @base.json index 31d4c2d758..5e66d50419 100644 --- a/resources/profiles/BBL/filament/Bambu ASA @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB01", + "filament_id": "OFfBpSRI", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "eng_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json index 1a36118d7f..43c69be716 100644 --- a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA-Aero @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB02", + "filament_id": "OFXzQ4yL", "instantiation": "false", "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: ASA Aero Printing Guide.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu ASA-CF @base.json b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json index 69624032bb..bf957889b6 100644 --- a/resources/profiles/BBL/filament/Bambu ASA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu ASA-CF @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB51", + "filament_id": "OF0wBGNx", "instantiation": "false", "eng_plate_temp": [ "100" diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @base.json b/resources/profiles/BBL/filament/Bambu PA-CF @base.json index 587812d37b..47e1cc6ae1 100644 --- a/resources/profiles/BBL/filament/Bambu PA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN03", + "filament_id": "OFFNYwWR", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu PA6-CF @base.json b/resources/profiles/BBL/filament/Bambu PA6-CF @base.json index 10737491fe..0bb143c6ef 100644 --- a/resources/profiles/BBL/filament/Bambu PA6-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN05", + "filament_id": "OFniMuTN", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu PA6-GF @base.json b/resources/profiles/BBL/filament/Bambu PA6-GF @base.json index 1997ec6a1e..2f9a674e54 100644 --- a/resources/profiles/BBL/filament/Bambu PA6-GF @base.json +++ b/resources/profiles/BBL/filament/Bambu PA6-GF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PA6-GF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN08", + "filament_id": "OFNk8bxk", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json index 28b1391f84..80c0599caa 100644 --- a/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN04", + "filament_id": "OF2VFe4J", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu PC @base.json b/resources/profiles/BBL/filament/Bambu PC @base.json index 4bf37c3adb..ee235b17d6 100644 --- a/resources/profiles/BBL/filament/Bambu PC @base.json +++ b/resources/profiles/BBL/filament/Bambu PC @base.json @@ -3,7 +3,7 @@ "name": "Bambu PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC00", + "filament_id": "OFKhMPeX", "instantiation": "false", "filament_vendor": [ "Bambu Lab" diff --git a/resources/profiles/BBL/filament/Bambu PC FR @base.json b/resources/profiles/BBL/filament/Bambu PC FR @base.json index 5c10a4e424..0ee463d08f 100644 --- a/resources/profiles/BBL/filament/Bambu PC FR @base.json +++ b/resources/profiles/BBL/filament/Bambu PC FR @base.json @@ -3,7 +3,7 @@ "name": "Bambu PC FR @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC01", + "filament_id": "OFg57Nmc", "instantiation": "false", "filament_cost": [ "0" diff --git a/resources/profiles/BBL/filament/Bambu PET-CF @base.json b/resources/profiles/BBL/filament/Bambu PET-CF @base.json index ff8b40070f..c84d423f0e 100644 --- a/resources/profiles/BBL/filament/Bambu PET-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PET-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFT01", + "filament_id": "OFHa48An", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @base.json b/resources/profiles/BBL/filament/Bambu PETG Basic @base.json index fd33eb2191..619483a4b4 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @base.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG Basic @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG00", + "filament_id": "OFFvzqcd", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu PETG HF @base.json b/resources/profiles/BBL/filament/Bambu PETG HF @base.json index e05c34035b..1c12d679fd 100644 --- a/resources/profiles/BBL/filament/Bambu PETG HF @base.json +++ b/resources/profiles/BBL/filament/Bambu PETG HF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG02", + "filament_id": "OFovEIbw", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json b/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json index 8cb30c5583..372c2e5c26 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json +++ b/resources/profiles/BBL/filament/Bambu PETG Translucent @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG Translucent @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG01", + "filament_id": "OFwPrlCM", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @base.json b/resources/profiles/BBL/filament/Bambu PETG-CF @base.json index da39340dcb..9c1d80768d 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG50", + "filament_id": "OFTRZ8Y4", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json index ea1315636a..b941bed495 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Aero @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA11", + "filament_id": "OFBSW57R", "instantiation": "false", "description": "This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero).", "fan_min_speed": [ diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @base.json b/resources/profiles/BBL/filament/Bambu PLA Basic @base.json index f05bdb20e4..6d25d0ece0 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Basic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA00", + "filament_id": "OFoiVqVM", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json b/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json index a5a1306eef..b21b156082 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Dynamic @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Dynamic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA13", + "filament_id": "OFDGigEI", "instantiation": "false", "filament_cost": [ "31.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Galaxy @base.json b/resources/profiles/BBL/filament/Bambu PLA Galaxy @base.json index 046610b2e2..baeb6a1ab8 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Galaxy @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA15", + "filament_id": "OFQ3e56w", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Glow @base.json b/resources/profiles/BBL/filament/Bambu PLA Glow @base.json index 005d759df2..7556361f81 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Glow @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA12", + "filament_id": "OFEkPBwx", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Lite @base.json b/resources/profiles/BBL/filament/Bambu PLA Lite @base.json index 72c3bb4e4f..4a21717d9e 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Lite @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Lite @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Lite @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA18", + "filament_id": "OFnfxTvi", "instantiation": "false", "filament_cost": [ "0" diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @base.json b/resources/profiles/BBL/filament/Bambu PLA Marble @base.json index 6dd5f815dc..4c9ecb2ff5 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Marble @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA07", + "filament_id": "OF9OlTWH", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @base.json b/resources/profiles/BBL/filament/Bambu PLA Matte @base.json index 15fb527bde..e98b6c3633 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA01", + "filament_id": "OFXIbw5D", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json index 630ffcd61f..9a12d97f4d 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Metal @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA02", + "filament_id": "OFrKLeE3", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu PLA Pure @base.json b/resources/profiles/BBL/filament/Bambu PLA Pure @base.json index ae1b796a47..f947b2efaa 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Pure @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Pure @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Pure @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA19", + "filament_id": "OFTHDCqA", "instantiation": "false", "filament_cost": [ "21.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @base.json b/resources/profiles/BBL/filament/Bambu PLA Silk @base.json index cfe83dabdd..da20a689ee 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA05", + "filament_id": "OFEGNJD4", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json b/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json index c81147eb58..17a7e21b79 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk+ @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Silk+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA06", + "filament_id": "OFUanySo", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu PLA Sparkle @base.json b/resources/profiles/BBL/filament/Bambu PLA Sparkle @base.json index ae49d594fd..6ecad9584e 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Sparkle @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Sparkle @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Sparkle @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA08", + "filament_id": "OFDxfPgH", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json index 9710767264..09b71a842d 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Tough @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA09", + "filament_id": "OFaQMgRH", "instantiation": "false", "filament_cost": [ "28.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough+ @base.json b/resources/profiles/BBL/filament/Bambu PLA Tough+ @base.json index 9b1b0b167e..ccc534d02f 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough+ @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough+ @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Tough+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA10", + "filament_id": "OF342jVN", "instantiation": "false", "additional_cooling_fan_speed": [ "80" diff --git a/resources/profiles/BBL/filament/Bambu PLA Translucent @base.json b/resources/profiles/BBL/filament/Bambu PLA Translucent @base.json index d32d781e70..ada0a501fc 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Translucent @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Translucent @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Translucent @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA17", + "filament_id": "OFFbSnCD", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA Wood @base.json b/resources/profiles/BBL/filament/Bambu PLA Wood @base.json index 882e00dc0a..3ba638569b 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Wood @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Wood @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA Wood @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA16", + "filament_id": "OFMjtqTC", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @base.json b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json index e24e6a11af..5567889cae 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFA50", + "filament_id": "OFEswT5W", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/BBL/filament/Bambu PPA-CF @base.json b/resources/profiles/BBL/filament/Bambu PPA-CF @base.json index a7efc6a3c3..48355afad1 100644 --- a/resources/profiles/BBL/filament/Bambu PPA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PPA-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PPA-CF @base", "inherits": "fdm_filament_ppa", "from": "system", - "filament_id": "GFN06", + "filament_id": "OF54B0S0", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "impact_strength_z": [ diff --git a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json index a94234bb34..3985fcbe02 100644 --- a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json @@ -3,7 +3,7 @@ "name": "Bambu PPS-CF @base", "inherits": "fdm_filament_pps", "from": "system", - "filament_id": "GFT02", + "filament_id": "OF4RvVuU", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_max_speed": [ diff --git a/resources/profiles/BBL/filament/Bambu PVA @base.json b/resources/profiles/BBL/filament/Bambu PVA @base.json index fea0298ccc..1c6e0f2201 100644 --- a/resources/profiles/BBL/filament/Bambu PVA @base.json +++ b/resources/profiles/BBL/filament/Bambu PVA @base.json @@ -3,7 +3,7 @@ "name": "Bambu PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "GFS04", + "filament_id": "OFzyIxba", "instantiation": "false", "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json b/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json index d199cdb0a0..70724ff11f 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json +++ b/resources/profiles/BBL/filament/Bambu Support For PA PET @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PA/PET @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFS03", + "filament_id": "OFMTK0UC", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json index 9bfdef5bf9..495291a3cf 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFS02", + "filament_id": "OFAnyRUI", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json index 38443f5be3..6a6ff6aa6b 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support For PLA/PETG @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFS05", + "filament_id": "OFIfnzxC", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu Support G @base.json b/resources/profiles/BBL/filament/Bambu Support G @base.json index 9cb01972b8..38c7f500f5 100644 --- a/resources/profiles/BBL/filament/Bambu Support G @base.json +++ b/resources/profiles/BBL/filament/Bambu Support G @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support G @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFS01", + "filament_id": "OFQHiNJs", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Bambu Support W @base.json b/resources/profiles/BBL/filament/Bambu Support W @base.json index e847cd1865..1391587ef0 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @base.json +++ b/resources/profiles/BBL/filament/Bambu Support W @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support W @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFS00", + "filament_id": "OFsHSVZc", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json index bc8867db2a..25f62a07c3 100644 --- a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json +++ b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json @@ -3,7 +3,7 @@ "name": "Bambu Support for ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFS06", + "filament_id": "OFf6mfQO", "instantiation": "false", "description": "This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.", "fan_max_speed": [ diff --git a/resources/profiles/BBL/filament/Bambu TPU 85A @base.json b/resources/profiles/BBL/filament/Bambu TPU 85A @base.json index bc8c9f698c..fc7f67bc45 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 85A @base.json +++ b/resources/profiles/BBL/filament/Bambu TPU 85A @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 85A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU04", + "filament_id": "OFlfuj2k", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu TPU 90A @base.json b/resources/profiles/BBL/filament/Bambu TPU 90A @base.json index 191d06e562..2f2ae95b02 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 90A @base.json +++ b/resources/profiles/BBL/filament/Bambu TPU 90A @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 90A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU03", + "filament_id": "OFtkLO6q", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A @base.json b/resources/profiles/BBL/filament/Bambu TPU 95A @base.json index 2670e250e9..7d94b0256c 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 95A @base.json +++ b/resources/profiles/BBL/filament/Bambu TPU 95A @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU01", + "filament_id": "OFVCkX5w", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json b/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json index 7610fa2bf3..9f977eb5b2 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json +++ b/resources/profiles/BBL/filament/Bambu TPU 95A HF @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU 95A HF @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU00", + "filament_id": "OFvKUnLh", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json index 21a1e70fea..5f0b03329f 100644 --- a/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json @@ -3,7 +3,7 @@ "name": "Bambu TPU for AMS @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU02", + "filament_id": "OFIBbYO5", "instantiation": "false", "description": "If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/FusRock/FusRock ABS-GF @base.json b/resources/profiles/BBL/filament/FusRock/FusRock ABS-GF @base.json index e9e45915f4..95a8fd47ea 100644 --- a/resources/profiles/BBL/filament/FusRock/FusRock ABS-GF @base.json +++ b/resources/profiles/BBL/filament/FusRock/FusRock ABS-GF @base.json @@ -3,7 +3,7 @@ "name": "FusRock ABS-GF @base", "inherits": "fdm_filament_common", "from": "system", - "filament_id": "GFR00", + "filament_id": "OFmn9NZL", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials(https://wiki.fusrock.com).", "filament_extruder_variant": [ diff --git a/resources/profiles/BBL/filament/Generic ABS @base.json b/resources/profiles/BBL/filament/Generic ABS @base.json index 4a30d790f8..d15a7cdfea 100644 --- a/resources/profiles/BBL/filament/Generic ABS @base.json +++ b/resources/profiles/BBL/filament/Generic ABS @base.json @@ -3,7 +3,7 @@ "name": "Generic ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB99", + "filament_id": "OFY9muEs", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_flow_ratio": [ diff --git a/resources/profiles/BBL/filament/Generic ASA @base.json b/resources/profiles/BBL/filament/Generic ASA @base.json index e1acd0504d..699fc64f7c 100644 --- a/resources/profiles/BBL/filament/Generic ASA @base.json +++ b/resources/profiles/BBL/filament/Generic ASA @base.json @@ -3,7 +3,7 @@ "name": "Generic ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB98", + "filament_id": "OFLPAxz3", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "eng_plate_temp": [ diff --git a/resources/profiles/BBL/filament/Generic BVOH @base.json b/resources/profiles/BBL/filament/Generic BVOH @base.json index 848e67c6c9..4a0fdf358e 100644 --- a/resources/profiles/BBL/filament/Generic BVOH @base.json +++ b/resources/profiles/BBL/filament/Generic BVOH @base.json @@ -3,7 +3,7 @@ "name": "Generic BVOH @base", "inherits": "fdm_filament_bvoh", "from": "system", - "filament_id": "GFS97", + "filament_id": "OFo2UF2C", "instantiation": "false", "filament_adhesiveness_category": [ "797" diff --git a/resources/profiles/BBL/filament/Generic EVA @base.json b/resources/profiles/BBL/filament/Generic EVA @base.json index 8799903ab5..79308d5d37 100644 --- a/resources/profiles/BBL/filament/Generic EVA @base.json +++ b/resources/profiles/BBL/filament/Generic EVA @base.json @@ -3,7 +3,7 @@ "name": "Generic EVA @base", "inherits": "fdm_filament_eva", "from": "system", - "filament_id": "GFR99", + "filament_id": "OFCD8qiU", "instantiation": "false", "additional_cooling_fan_speed": [ "70" diff --git a/resources/profiles/BBL/filament/Generic HIPS @base.json b/resources/profiles/BBL/filament/Generic HIPS @base.json index c4147f8098..a0df005ecc 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @base.json +++ b/resources/profiles/BBL/filament/Generic HIPS @base.json @@ -3,7 +3,7 @@ "name": "Generic HIPS @base", "inherits": "fdm_filament_hips", "from": "system", - "filament_id": "GFS98", + "filament_id": "OFsFon5l", "instantiation": "false", "filament_is_support": [ "1" diff --git a/resources/profiles/BBL/filament/Generic PA @base.json b/resources/profiles/BBL/filament/Generic PA @base.json index fe819487b0..e6dad20449 100644 --- a/resources/profiles/BBL/filament/Generic PA @base.json +++ b/resources/profiles/BBL/filament/Generic PA @base.json @@ -3,7 +3,7 @@ "name": "Generic PA @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN99", + "filament_id": "OFg8ndtj", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "chamber_temperatures": [ diff --git a/resources/profiles/BBL/filament/Generic PA-CF @base.json b/resources/profiles/BBL/filament/Generic PA-CF @base.json index 6fdbd0c8bb..7c77ffe482 100644 --- a/resources/profiles/BBL/filament/Generic PA-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PA-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PA-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFN98", + "filament_id": "OFQLcbps", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_cooling_layer_time": [ diff --git a/resources/profiles/BBL/filament/Generic PC @base.json b/resources/profiles/BBL/filament/Generic PC @base.json index a98c5a4183..b61c2296b5 100644 --- a/resources/profiles/BBL/filament/Generic PC @base.json +++ b/resources/profiles/BBL/filament/Generic PC @base.json @@ -3,7 +3,7 @@ "name": "Generic PC @base", "inherits": "fdm_filament_pc", "from": "system", - "filament_id": "GFC99", + "filament_id": "OFLakOUI", "instantiation": "false", "description": "When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_flow_ratio": [ diff --git a/resources/profiles/BBL/filament/Generic PCTG @base.json b/resources/profiles/BBL/filament/Generic PCTG @base.json index e8b7c1ce0a..2eea3496a3 100644 --- a/resources/profiles/BBL/filament/Generic PCTG @base.json +++ b/resources/profiles/BBL/filament/Generic PCTG @base.json @@ -3,7 +3,7 @@ "name": "Generic PCTG @base", "inherits": "fdm_filament_pctg", "from": "system", - "filament_id": "GFG97", + "filament_id": "OFu1evlr", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Generic PE @base.json b/resources/profiles/BBL/filament/Generic PE @base.json index 22a5162c90..d9bdfc84a5 100644 --- a/resources/profiles/BBL/filament/Generic PE @base.json +++ b/resources/profiles/BBL/filament/Generic PE @base.json @@ -3,7 +3,7 @@ "name": "Generic PE @base", "inherits": "fdm_filament_pe", "from": "system", - "filament_id": "GFP99", + "filament_id": "OFPklMI1", "instantiation": "false", "filament_cost": [ "40.99" diff --git a/resources/profiles/BBL/filament/Generic PE-CF @base.json b/resources/profiles/BBL/filament/Generic PE-CF @base.json index 6dafa3535a..655a30e41e 100644 --- a/resources/profiles/BBL/filament/Generic PE-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PE-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PE-CF @base", "inherits": "fdm_filament_pe", "from": "system", - "filament_id": "GFP98", + "filament_id": "OFd0Fv0k", "instantiation": "false", "filament_cost": [ "65.99" diff --git a/resources/profiles/BBL/filament/Generic PETG @base.json b/resources/profiles/BBL/filament/Generic PETG @base.json index 8d59f692a3..9fce0893ce 100644 --- a/resources/profiles/BBL/filament/Generic PETG @base.json +++ b/resources/profiles/BBL/filament/Generic PETG @base.json @@ -3,7 +3,7 @@ "name": "Generic PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG99", + "filament_id": "OFYPdQJh", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Generic PETG HF @base.json b/resources/profiles/BBL/filament/Generic PETG HF @base.json index 6a5ce9f063..c756285013 100644 --- a/resources/profiles/BBL/filament/Generic PETG HF @base.json +++ b/resources/profiles/BBL/filament/Generic PETG HF @base.json @@ -3,7 +3,7 @@ "name": "Generic PETG HF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG96", + "filament_id": "OF7lOgYF", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @base.json b/resources/profiles/BBL/filament/Generic PETG-CF @base.json index c1d7338bd4..4f2f6ed3f9 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PETG-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG98", + "filament_id": "OFoYSJKi", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Generic PHA @base.json b/resources/profiles/BBL/filament/Generic PHA @base.json index 8e3a7e5f6a..fe2373ff7c 100644 --- a/resources/profiles/BBL/filament/Generic PHA @base.json +++ b/resources/profiles/BBL/filament/Generic PHA @base.json @@ -3,6 +3,6 @@ "name": "Generic PHA @base", "inherits": "fdm_filament_pha", "from": "system", - "filament_id": "GFR98", + "filament_id": "OF74KeQR", "instantiation": "false" } diff --git a/resources/profiles/BBL/filament/Generic PLA @base.json b/resources/profiles/BBL/filament/Generic PLA @base.json index f5c584bc3e..8e166fe212 100644 --- a/resources/profiles/BBL/filament/Generic PLA @base.json +++ b/resources/profiles/BBL/filament/Generic PLA @base.json @@ -3,7 +3,7 @@ "name": "Generic PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL99", + "filament_id": "OFDSrzZ8", "instantiation": "false", "description": "The generic presets are conservatively tuned for compatibility with a wider range of filaments. For higher printing quality and speeds, please use Bambu filaments with Bambu presets.", "filament_flow_ratio": [ diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @base.json b/resources/profiles/BBL/filament/Generic PLA High Speed @base.json index f03e30f5ec..9fd751ae44 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @base.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @base.json @@ -3,7 +3,7 @@ "name": "Generic PLA High Speed @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL95", + "filament_id": "OFmpMwxS", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/BBL/filament/Generic PLA Silk @base.json b/resources/profiles/BBL/filament/Generic PLA Silk @base.json index 4dfe033cb3..41bc486e88 100644 --- a/resources/profiles/BBL/filament/Generic PLA Silk @base.json +++ b/resources/profiles/BBL/filament/Generic PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Generic PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL96", + "filament_id": "OFesA6rF", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_flow_ratio": [ diff --git a/resources/profiles/BBL/filament/Generic PLA-CF @base.json b/resources/profiles/BBL/filament/Generic PLA-CF @base.json index 8f59df41a8..ffbcaad864 100644 --- a/resources/profiles/BBL/filament/Generic PLA-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PLA-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PLA-CF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL98", + "filament_id": "OFWbdGsC", "instantiation": "false", "additional_cooling_fan_speed": [ "0" diff --git a/resources/profiles/BBL/filament/Generic PP @base.json b/resources/profiles/BBL/filament/Generic PP @base.json index 14c266404a..94847d67e9 100644 --- a/resources/profiles/BBL/filament/Generic PP @base.json +++ b/resources/profiles/BBL/filament/Generic PP @base.json @@ -3,6 +3,6 @@ "name": "Generic PP @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "GFP97", + "filament_id": "OF1UNk9P", "instantiation": "false" } diff --git a/resources/profiles/BBL/filament/Generic PP-CF @base.json b/resources/profiles/BBL/filament/Generic PP-CF @base.json index 307793d371..e04ee56b6d 100644 --- a/resources/profiles/BBL/filament/Generic PP-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PP-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PP-CF @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "GFP96", + "filament_id": "OFXkm8q1", "instantiation": "false", "filament_cost": [ "77.99" diff --git a/resources/profiles/BBL/filament/Generic PP-GF @base.json b/resources/profiles/BBL/filament/Generic PP-GF @base.json index d17fa31d68..5d82e8223a 100644 --- a/resources/profiles/BBL/filament/Generic PP-GF @base.json +++ b/resources/profiles/BBL/filament/Generic PP-GF @base.json @@ -3,7 +3,7 @@ "name": "Generic PP-GF @base", "inherits": "fdm_filament_pp", "from": "system", - "filament_id": "GFP95", + "filament_id": "OFsijjtH", "instantiation": "false", "filament_cost": [ "59.99" diff --git a/resources/profiles/BBL/filament/Generic PPA-CF @base.json b/resources/profiles/BBL/filament/Generic PPA-CF @base.json index 6287533414..78ad9bca5e 100644 --- a/resources/profiles/BBL/filament/Generic PPA-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PPA-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PPA-CF @base", "inherits": "fdm_filament_ppa", "from": "system", - "filament_id": "GFN97", + "filament_id": "OF8tPByX", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "filament_max_volumetric_speed": [ diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @base.json b/resources/profiles/BBL/filament/Generic PPA-GF @base.json index 6220abbeef..72ff99cd16 100644 --- a/resources/profiles/BBL/filament/Generic PPA-GF @base.json +++ b/resources/profiles/BBL/filament/Generic PPA-GF @base.json @@ -3,7 +3,7 @@ "name": "Generic PPA-GF @base", "inherits": "fdm_filament_ppa", "from": "system", - "filament_id": "GFN96", + "filament_id": "OF8Tlg47", "instantiation": "false", "filament_max_volumetric_speed": [ "6" diff --git a/resources/profiles/BBL/filament/Generic PPS @base.json b/resources/profiles/BBL/filament/Generic PPS @base.json index 882fea94e0..08ba73cba8 100644 --- a/resources/profiles/BBL/filament/Generic PPS @base.json +++ b/resources/profiles/BBL/filament/Generic PPS @base.json @@ -3,7 +3,7 @@ "name": "Generic PPS @base", "inherits": "fdm_filament_pps", "from": "system", - "filament_id": "GFT97", + "filament_id": "OFq9svOz", "instantiation": "false", "filament_dev_chamber_drying_bed_temperature": [ "90" diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @base.json b/resources/profiles/BBL/filament/Generic PPS-CF @base.json index f003a7b470..76aab2de8b 100644 --- a/resources/profiles/BBL/filament/Generic PPS-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PPS-CF @base.json @@ -3,7 +3,7 @@ "name": "Generic PPS-CF @base", "inherits": "fdm_filament_pps", "from": "system", - "filament_id": "GFT98", + "filament_id": "OF6rdQ6M", "instantiation": "false", "description": "When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.", "fan_max_speed": [ diff --git a/resources/profiles/BBL/filament/Generic PVA @base.json b/resources/profiles/BBL/filament/Generic PVA @base.json index ca3dae82a4..4021f07f45 100644 --- a/resources/profiles/BBL/filament/Generic PVA @base.json +++ b/resources/profiles/BBL/filament/Generic PVA @base.json @@ -3,7 +3,7 @@ "name": "Generic PVA @base", "inherits": "fdm_filament_pva", "from": "system", - "filament_id": "GFS99", + "filament_id": "OFDvXujf", "instantiation": "false", "description": "This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.", "filament_flow_ratio": [ diff --git a/resources/profiles/BBL/filament/Generic SBS @base.json b/resources/profiles/BBL/filament/Generic SBS @base.json index 6decbf2213..fbf9b8a403 100644 --- a/resources/profiles/BBL/filament/Generic SBS @base.json +++ b/resources/profiles/BBL/filament/Generic SBS @base.json @@ -3,7 +3,7 @@ "name": "Generic SBS @base", "inherits": "fdm_filament_sbs", "from": "system", - "filament_id": "GFLSBS99", + "filament_id": "OFhQfUQY", "instantiation": "false", "filament_flow_ratio": [ "0.98" diff --git a/resources/profiles/BBL/filament/Generic SBS.json b/resources/profiles/BBL/filament/Generic SBS.json index 2e38a46fde..ffa36a9abb 100644 --- a/resources/profiles/BBL/filament/Generic SBS.json +++ b/resources/profiles/BBL/filament/Generic SBS.json @@ -4,7 +4,7 @@ "inherits": "Generic SBS @base", "from": "system", "setting_id": "BFLSBS99-1", - "filament_id": "BFLSBS99", + "filament_id": "OFhQfUQY", "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/BBL/filament/Generic TPU @base.json b/resources/profiles/BBL/filament/Generic TPU @base.json index 78fe4c1b1a..f2bc7049aa 100644 --- a/resources/profiles/BBL/filament/Generic TPU @base.json +++ b/resources/profiles/BBL/filament/Generic TPU @base.json @@ -3,7 +3,7 @@ "name": "Generic TPU @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU99", + "filament_id": "OFgbpcy9", "instantiation": "false", "description": "This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.", "filament_max_volumetric_speed": [ diff --git a/resources/profiles/BBL/filament/Generic TPU for AMS @base.json b/resources/profiles/BBL/filament/Generic TPU for AMS @base.json index eb42aa3df2..1432bdfbe2 100644 --- a/resources/profiles/BBL/filament/Generic TPU for AMS @base.json +++ b/resources/profiles/BBL/filament/Generic TPU for AMS @base.json @@ -3,7 +3,7 @@ "name": "Generic TPU for AMS @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "GFU98", + "filament_id": "OFmN2lvw", "instantiation": "false", "description": "If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/Numakers/Numakers PLA+ @base.json b/resources/profiles/BBL/filament/Numakers/Numakers PLA+ @base.json index 91080469cd..b77157064b 100644 --- a/resources/profiles/BBL/filament/Numakers/Numakers PLA+ @base.json +++ b/resources/profiles/BBL/filament/Numakers/Numakers PLA+ @base.json @@ -3,7 +3,7 @@ "name": "Numakers PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFNMK00", + "filament_id": "OFqGRZyH", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/BBL/filament/Overture/Overture Matte PLA @base.json b/resources/profiles/BBL/filament/Overture/Overture Matte PLA @base.json index 469116c778..bccfb1f17b 100644 --- a/resources/profiles/BBL/filament/Overture/Overture Matte PLA @base.json +++ b/resources/profiles/BBL/filament/Overture/Overture Matte PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture Matte PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL05", + "filament_id": "OFBw6eEG", "instantiation": "false", "filament_cost": [ "24.52" diff --git a/resources/profiles/BBL/filament/Overture/Overture PLA @base.json b/resources/profiles/BBL/filament/Overture/Overture PLA @base.json index c31f99f8c8..0f302d4798 100644 --- a/resources/profiles/BBL/filament/Overture/Overture PLA @base.json +++ b/resources/profiles/BBL/filament/Overture/Overture PLA @base.json @@ -3,7 +3,7 @@ "name": "Overture PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL04", + "filament_id": "OFc3xdm9", "instantiation": "false", "filament_cost": [ "24.15" diff --git a/resources/profiles/BBL/filament/Overture/Overture PLA Pro @base.json b/resources/profiles/BBL/filament/Overture/Overture PLA Pro @base.json index 80525e03b2..454c36e7b0 100644 --- a/resources/profiles/BBL/filament/Overture/Overture PLA Pro @base.json +++ b/resources/profiles/BBL/filament/Overture/Overture PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "Overture PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFOT001", + "filament_id": "OFxA1p01", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF @base.json index d98490f1d7..a5aa03bf9b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA12-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL52", + "filament_id": "OFX0ycRQ", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json index 368abf5570..674d5acb38 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA12-CF10 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA12-CF10 @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL56", + "filament_id": "OFvxIS9g", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF @base.json index d0424d164b..823e8a0ff1 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL50", + "filament_id": "OFkOviHk", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json index 65fee6a5bb..f28ee154b8 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-CF20 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-CF20 @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL57", + "filament_id": "OFEabreg", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF @base.json index 6ad501fdfc..607b1c8e00 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-GF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL51", + "filament_id": "OFwaYjL6", "instantiation": "false", "eng_plate_temp": [ "40" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json index af2b6d92e1..426e4175db 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA6-GF25 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA6-GF25 @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL58", + "filament_id": "OF5B9sUc", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF @base.json index bd7d52f415..3765f754f5 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA612-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL53", + "filament_id": "OFS2tn6G", "instantiation": "false", "fan_cooling_layer_time": [ "5" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json index dc7194aad0..310a2229d9 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PA612-CF15 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PA612-CF15 @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "GFL59", + "filament_id": "OFcBl0nJ", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF @base.json index 365ebb2fd7..2ca2a42d04 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PET-CF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFL54", + "filament_id": "OFHWSM21", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json index adcbf5c9ef..d55b7d2daf 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PET-CF17 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PET-CF17 @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFL60", + "filament_id": "OFAc0Pr3", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @base.json index 11c846ff78..b459cc68a1 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-ESD @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-ESD @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFL06", + "filament_id": "OFcytyoA", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF @base.json index f5674437e8..f052304624 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-rCF @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFL55", + "filament_id": "OFk8t9mz", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json index da9cdeb43c..fe8eca06cb 100644 --- a/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Fiberon PETG-rCF08 @base.json @@ -3,7 +3,7 @@ "name": "Fiberon PETG-rCF08 @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFL61", + "filament_id": "OFw4WD4T", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @base.json index b79b34db77..e3e21d17a1 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma CoPE @base.json @@ -3,7 +3,7 @@ "name": "Panchroma CoPE @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM016", + "filament_id": "OFqw2PQA", "instantiation": "false", "filament_cost": [ "19.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @base.json index 284ad94032..5f4c2682db 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM001", + "filament_id": "OFsRDvTM", "instantiation": "false", "filament_cost": [ "19.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @base.json index 5a1bfdd22a..18382eb7a0 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Celestial @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Celestial @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM008", + "filament_id": "OFRiYgMK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @base.json index 6cc9094d1a..bf84a536a4 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM007", + "filament_id": "OFFkCLBl", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @base.json index c1ded4c198..ab3032ad57 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM010", + "filament_id": "OF0gGRWk", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @base.json index 8c9a74ad88..14a805212e 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Luminous @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Luminous @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM011", + "filament_id": "OF0kCNDK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @base.json index cf1574fa9c..63680ba1b7 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM003", + "filament_id": "OFKiSMWR", "instantiation": "false", "filament_cost": [ "21.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @base.json index 71dda06b1e..33d880ac08 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM002", + "filament_id": "OFrOh600", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @base.json index 6cda256ff4..89ce745162 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Metallic @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Metallic @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM012", + "filament_id": "OFjb0wos", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @base.json index 3d8f857e56..bd8f5fc0d6 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Neon @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Neon @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM013", + "filament_id": "OFO1GEq6", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json index 6af2ad1bbe..c8ef69cf88 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Satin @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Satin @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM005", + "filament_id": "OFPkCJKE", "instantiation": "false", "filament_cost": [ "20.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @base.json index b21d127b41..94c2cb7c0b 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Silk @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Silk @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM004", + "filament_id": "OFS8lTQt", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @base.json index 57ddbd09b3..8622a109f2 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Starlight @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Starlight @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM009", + "filament_id": "OFC78WGQ", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Temp Shift @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Temp Shift @base.json index 322f91be2b..d0d6f6b057 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Temp Shift @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Temp Shift @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Temp Shift @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM015", + "filament_id": "OFhASRWj", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @base.json index 7c7e5eedb7..ac8842d912 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA Translucent @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA Translucent @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM006", + "filament_id": "OFCIUsWh", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @base.json b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @base.json index 5ab8d5b81c..986b46fd5d 100644 --- a/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Panchroma PLA UV Shift @base.json @@ -3,7 +3,7 @@ "name": "Panchroma PLA UV Shift @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM014", + "filament_id": "OF1N1qMK", "instantiation": "false", "filament_cost": [ "29.99" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite ABS @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite ABS @base.json index 8e1ec42a79..11be66397d 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite ABS @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite ABS @base.json @@ -3,7 +3,7 @@ "name": "PolyLite ABS @base", "inherits": "fdm_filament_abs", "from": "system", - "filament_id": "GFB60", + "filament_id": "OFOvv91M", "instantiation": "false", "filament_cost": [ "26.9" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite ASA @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite ASA @base.json index 88e453e0e5..026efbfb61 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite ASA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite ASA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite ASA @base", "inherits": "fdm_filament_asa", "from": "system", - "filament_id": "GFB61", + "filament_id": "OFvrXuV7", "instantiation": "false", "eng_plate_temp": [ "100" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json index 18f38f0c68..92739d13bb 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite CosPLA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite CosPLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL62", + "filament_id": "OFJgijky", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PETG @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PETG @base.json index 87e9a1194a..365f5f1460 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PETG @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PETG @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFG60", + "filament_id": "OF0UJcb6", "instantiation": "false", "cool_plate_temp": [ "0" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @base.json index cbfe608b4e..55ea664946 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL00", + "filament_id": "OF5CgdDq", "instantiation": "false", "filament_cost": [ "25.4" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json index 9480b33392..90996083f1 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Galaxy @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Galaxy @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL63", + "filament_id": "OFvyB0Bz", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json index ab4b717dbb..3a70d3a83f 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Glow @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Glow @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL64", + "filament_id": "OF5umxxT", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json index a6bb2746c1..14131c0348 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Luminous @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Luminous @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL65", + "filament_id": "OFBoSWxb", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json index 5a0ec60465..b9fc01a700 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Neon @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Neon @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL66", + "filament_id": "OFitS8al", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Pro @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Pro @base.json index bf2867a702..93c6cf8c9f 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Pro @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Pro @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Pro @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM019", + "filament_id": "OFF9OKoY", "instantiation": "false", "filament_cost": [ "24.99" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json index ecc73602c3..3c8a79ed3f 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Starlight @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Starlight @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL67", + "filament_id": "OFIxOuOu", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json index f5f9c89720..9a6155e283 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyLite PLA Translucent @base.json @@ -3,7 +3,7 @@ "name": "PolyLite PLA Translucent @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL68", + "filament_id": "OFy02QHU", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @base.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @base.json index e844afc545..3b13c5b55c 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA @base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL01", + "filament_id": "OFW29a9R", "instantiation": "false", "filament_cost": [ "25.4" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json index 2b64adc51c..ea65b41ec4 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA Marble @base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL69", + "filament_id": "OFxe4rXr", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json index 15fccef9e3..1d322a6c3e 100644 --- a/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json +++ b/resources/profiles/BBL/filament/Polymaker/PolyTerra PLA+ @base.json @@ -3,7 +3,7 @@ "name": "PolyTerra PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL70", + "filament_id": "OFEjbwqG", "instantiation": "false", "bed_type": [ "Cool Plate" diff --git a/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA @base.json b/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA @base.json index 22b1a0d5ce..94ab2b2fd9 100644 --- a/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA @base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM017", + "filament_id": "OFPoyiFs", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA-GF @base.json b/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA-GF @base.json index 55173547e9..585a6dd554 100644 --- a/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA-GF @base.json +++ b/resources/profiles/BBL/filament/Polymaker/Polymaker HT-PLA-GF @base.json @@ -3,7 +3,7 @@ "name": "Polymaker HT-PLA-GF @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFPM018", + "filament_id": "OFlwmqrC", "instantiation": "false", "filament_cost": [ "32.99" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json index 099f90ce9c..d2f34323a0 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Marble PLA @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA Marble @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL06", + "filament_id": "OFxUwUeW", "instantiation": "false", "filament_cost": [ "31.99" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json index 523468391e..6e3eaf356e 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PETG @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PETG @base", "inherits": "fdm_filament_pet", "from": "system", - "filament_id": "GFSNL08", + "filament_id": "OF2GCW1l", "instantiation": "false", "description": "To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.", "cool_plate_temp": [ diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json index f99bbc84bf..f3b92cdb2f 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA Matte @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA Matte @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL02", + "filament_id": "OFpW4gdi", "instantiation": "false", "filament_cost": [ "25.99" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json index 47f103af84..d2b1087f28 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ 2.0 @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ 2.0 @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL04", + "filament_id": "OFHmPYRy", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json index ffe454c74f..c46fb9affc 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL03", + "filament_id": "OFMUWNkp", "instantiation": "false", "filament_cost": [ "18.99" diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json index e83ae1a411..22e7994783 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Silk PLA+ @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Silk PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL05", + "filament_id": "OFpPGSKG", "instantiation": "false", "description": "To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.", "filament_cost": [ diff --git a/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json b/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json index 8cc3cd97a7..e13c06ceb8 100644 --- a/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json +++ b/resources/profiles/BBL/filament/SUNLU/SUNLU Wood PLA @base.json @@ -3,7 +3,7 @@ "name": "SUNLU Wood PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFSNL07", + "filament_id": "OFLJ8S6I", "instantiation": "false", "filament_cost": [ "26.99" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth ABS rABS.json b/resources/profiles/BBL/filament/addnorth/addnorth ABS rABS.json index 2889bc0a39..ecc4aa62f4 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth ABS rABS.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth ABS rABS.json @@ -4,7 +4,7 @@ "inherits": "Generic ABS @base", "from": "system", "setting_id": "GF_ANRA_00", - "filament_id": "GF_ANRA", + "filament_id": "OFzk5oAo", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PA Adura FDA.json b/resources/profiles/BBL/filament/addnorth/addnorth PA Adura FDA.json index 9da0cc2b6e..3d4fbe9c88 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PA Adura FDA.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PA Adura FDA.json @@ -4,7 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "GF_ANAF_00", - "filament_id": "GF_ANAF", + "filament_id": "OFSw6Mor", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PA Adura.json b/resources/profiles/BBL/filament/addnorth/addnorth PA Adura.json index 037ae82eed..5486b65d44 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PA Adura.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PA Adura.json @@ -4,7 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "GF_ANAD_00", - "filament_id": "GF_ANAD", + "filament_id": "OFWK0Y9A", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PA-CF Adura X.json b/resources/profiles/BBL/filament/addnorth/addnorth PA-CF Adura X.json index 3b8f50c799..1881e454f5 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PA-CF Adura X.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PA-CF Adura X.json @@ -4,7 +4,7 @@ "inherits": "Generic PA-CF @base", "from": "system", "setting_id": "GF_ANAX_00", - "filament_id": "GF_ANAX", + "filament_id": "OFBsbMMF", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PA6 Addlantis.json b/resources/profiles/BBL/filament/addnorth/addnorth PA6 Addlantis.json index dc5e815df5..e0696d14fe 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PA6 Addlantis.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PA6 Addlantis.json @@ -4,7 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "GF_ANLA_00", - "filament_id": "GF_ANLA", + "filament_id": "OF1ID4N1", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PC BLend HT LCF.json b/resources/profiles/BBL/filament/addnorth/addnorth PC BLend HT LCF.json index e1e67fbb71..d64bb0629e 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PC BLend HT LCF.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PC BLend HT LCF.json @@ -4,7 +4,7 @@ "inherits": "Generic PC @base", "from": "system", "setting_id": "GF_ANPBX_00", - "filament_id": "GF_ANPBX", + "filament_id": "OFhN09f0", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG Base.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG Base.json index 288368dd07..6a4af4f908 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG Base.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG Base.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANPE_00", - "filament_id": "GF_ANPE", + "filament_id": "OFHHwrd1", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG ESD.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG ESD.json index 060ffe6b56..ff647879dc 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG ESD.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG ESD.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANEG_00", - "filament_id": "GF_ANEG", + "filament_id": "OFUtiVRn", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG Economy.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG Economy.json index c83d353302..fdbaa361f2 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG Economy.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG Economy.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANGE_00", - "filament_id": "GF_ANGE", + "filament_id": "OFZGrQTU", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG Flame v0.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG Flame v0.json index 96aec4f471..12849a851d 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG Flame v0.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG Flame v0.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANPF_00", - "filament_id": "GF_ANPF", + "filament_id": "OF0EYBWQ", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG PRO Matte.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG PRO Matte.json index a73d5ae48a..bdbecc7722 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG PRO Matte.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG PRO Matte.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANPM_00", - "filament_id": "GF_ANPM", + "filament_id": "OFU5JPDy", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG rPETG Matte.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG rPETG Matte.json index 1c4f092d54..a466f88b0a 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG rPETG Matte.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG rPETG Matte.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG @base", "from": "system", "setting_id": "GF_ANRM_00", - "filament_id": "GF_ANRM", + "filament_id": "OFqTwtXM", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PETG-CF Rigid X.json b/resources/profiles/BBL/filament/addnorth/addnorth PETG-CF Rigid X.json index 927ef1ca6e..a5c78fe215 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PETG-CF Rigid X.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PETG-CF Rigid X.json @@ -4,7 +4,7 @@ "inherits": "Generic PETG-CF @base", "from": "system", "setting_id": "GF_ANRX_00", - "filament_id": "GF_ANRX", + "filament_id": "OFAcJkl1", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA E-PLA.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA E-PLA.json index d008217fcf..f32705ba65 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA E-PLA.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA E-PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANEP_00", - "filament_id": "GF_ANEP", + "filament_id": "OF71b7qO", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA Economy.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA Economy.json index 51b2924577..fa2c0e9ae0 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA Economy.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA Economy.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANPL_00", - "filament_id": "GF_ANPL", + "filament_id": "OFZJft47", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA HT-PLA PRO Matte.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA HT-PLA PRO Matte.json index 5ab0cc036a..1dc1796d4b 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA HT-PLA PRO Matte.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA HT-PLA PRO Matte.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANHTP_00", - "filament_id": "GF_ANHTP", + "filament_id": "OFVDWuxl", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA Premium Silk.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA Premium Silk.json index caa3fb10ed..f64767d1e3 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA Premium Silk.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA Premium Silk.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA Silk @base", "from": "system", "setting_id": "GF_ANPS_00", - "filament_id": "GF_ANPS", + "filament_id": "OFOQCfVa", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA Textura.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA Textura.json index 97c7026910..1bbfb305b2 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA Textura.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA Textura.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANTE_00", - "filament_id": "GF_ANTE", + "filament_id": "OFRFhdqy", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA Wood.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA Wood.json index faa711ee14..99ec158160 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA Wood.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA Wood.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANPLW_00", - "filament_id": "GF_ANPLW", + "filament_id": "OFN8QBhu", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA High Speed.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA High Speed.json index 3ffec96061..ffe91af773 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA High Speed.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA High Speed.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA High Speed @base", "from": "system", "setting_id": "GF_ANXPH_00", - "filament_id": "GF_ANXPH", + "filament_id": "OFLjDYxH", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA.json index b8016af159..073b96a224 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA X-PLA.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANXP_00", - "filament_id": "GF_ANXP", + "filament_id": "OFtdVZpV", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA rPLA RE-ADD.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA rPLA RE-ADD.json index ad47884179..b6a2695235 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA rPLA RE-ADD.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA rPLA RE-ADD.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA @base", "from": "system", "setting_id": "GF_ANRPL_00", - "filament_id": "GF_ANRPL", + "filament_id": "OFnBvPhb", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PLA-CF Carbon Fiber.json b/resources/profiles/BBL/filament/addnorth/addnorth PLA-CF Carbon Fiber.json index 608be46906..7910e3c772 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PLA-CF Carbon Fiber.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PLA-CF Carbon Fiber.json @@ -4,7 +4,7 @@ "inherits": "Generic PLA-CF @base", "from": "system", "setting_id": "GF_ANPCF_00", - "filament_id": "GF_ANPCF", + "filament_id": "OFcpa50Z", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth PVDF Adamant S1.json b/resources/profiles/BBL/filament/addnorth/addnorth PVDF Adamant S1.json index 8ca7e5e5ab..13604f5832 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth PVDF Adamant S1.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth PVDF Adamant S1.json @@ -4,7 +4,7 @@ "inherits": "Generic PA @base", "from": "system", "setting_id": "GF_ANPV_00", - "filament_id": "GF_ANPV", + "filament_id": "OFQ5TxZ2", "instantiation": "true", "activate_air_filtration": [ "1" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth TPU EasyFlex.json b/resources/profiles/BBL/filament/addnorth/addnorth TPU EasyFlex.json index 05c7af8947..d8a9ca5ca3 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth TPU EasyFlex.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth TPU EasyFlex.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @base", "from": "system", "setting_id": "GF_ANEF_00", - "filament_id": "GF_ANEF", + "filament_id": "OFO6GMJ3", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 85A.json b/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 85A.json index e6236ed79a..f4d1beac7d 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 85A.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 85A.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @base", "from": "system", "setting_id": "GF_ANTA_00", - "filament_id": "GF_ANTA", + "filament_id": "OFvcIGee", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 95A.json b/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 95A.json index 6b971b7d5c..61d6100a71 100644 --- a/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 95A.json +++ b/resources/profiles/BBL/filament/addnorth/addnorth TPU Pro Matte 95A.json @@ -4,7 +4,7 @@ "inherits": "Generic TPU @base", "from": "system", "setting_id": "GF_ANTM_00", - "filament_id": "GF_ANTM", + "filament_id": "OFyJjkek", "instantiation": "true", "activate_air_filtration": [ "0" diff --git a/resources/profiles/BBL/filament/eSUN/eSUN PLA+ @base.json b/resources/profiles/BBL/filament/eSUN/eSUN PLA+ @base.json index 544608b91a..6820e79489 100644 --- a/resources/profiles/BBL/filament/eSUN/eSUN PLA+ @base.json +++ b/resources/profiles/BBL/filament/eSUN/eSUN PLA+ @base.json @@ -3,7 +3,7 @@ "name": "eSUN PLA+ @base", "inherits": "fdm_filament_pla", "from": "system", - "filament_id": "GFL03", + "filament_id": "OFqINlYj", "instantiation": "false", "filament_cost": [ "22.99" diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 9a4b4a2abd..cf4d13c987 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -135,7 +135,6 @@ "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", "Artillery/Artillery TPU", "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "BBL/Generic SBS", "BBL/addnorth ABS rABS", "BBL/addnorth PA Adura", "BBL/addnorth PA Adura FDA", @@ -877,637 +876,18 @@ "Z-Bolt/Generic ABS HT @Z-Bolt Base" ], "ids": { - "BABB00": [ - "BBL/BETA ABS" - ], - "BASB00": [ - "BBL/BETA ASA" - ], - "BFLSBS99": [ - "BBL/Generic SBS" - ], - "BHIB00": [ - "BBL/BETA HIPS" - ], - "BPAB00": [ - "BBL/BETA PAHT-CF" - ], - "BPBB00": [ - "BBL/BETA PEBA 90A" - ], - "BPGB00": [ - "BBL/BETA PETG" - ], - "BPGB01": [ - "BBL/BETA PETG Heat Color Change" - ], - "BPGB02": [ - "BBL/BETA PETG Fluorescence" - ], - "BPGB03": [ - "BBL/BETA PETG Glitter" - ], - "BPGB04": [ - "BBL/BETA PETG Glow" - ], - "BPGB05": [ - "BBL/BETA PETG Gradient" - ], - "BPGB06": [ - "BBL/BETA PETG HF" - ], - "BPGB07": [ - "BBL/BETA PETG Marble" - ], - "BPGB08": [ - "BBL/BETA PETG Matte" - ], - "BPGB09": [ - "BBL/BETA PETG Metallic" - ], - "BPGB10": [ - "BBL/BETA PETG Transparent" - ], - "BPGB11": [ - "BBL/BETA PETG UV Color Change" - ], - "BPGB12": [ - "BBL/BETA PETG-CF" - ], - "BPGB13": [ - "BBL/BETA PETG-GF" - ], - "BPLB00": [ - "BBL/BETA PLA Basic" - ], - "BPLB01": [ - "BBL/BETA PLA Silk+" - ], - "BPLB02": [ - "BBL/BETA PLA Chameleon" - ], - "BPLB03": [ - "BBL/BETA PLA Heat Color Change" - ], - "BPLB04": [ - "BBL/BETA PLA Fluorescence" - ], - "BPLB05": [ - "BBL/BETA PLA Glitter" - ], - "BPLB06": [ - "BBL/BETA PLA Glow" - ], - "BPLB07": [ - "BBL/BETA PLA Gradient" - ], - "BPLB08": [ - "BBL/BETA PLA Marble" - ], - "BPLB09": [ - "BBL/BETA PLA Matte" - ], - "BPLB10": [ - "BBL/BETA PLA Metal" - ], - "BPLB11": [ - "BBL/BETA PLA Metallic" - ], - "BPLB12": [ - "BBL/BETA PLA PRO" - ], - "BPLB13": [ - "BBL/BETA PLA Silk" - ], - "BPLB14": [ - "BBL/BETA PLA Transparent" - ], - "BPLB15": [ - "BBL/BETA PLA UV Color Change" - ], - "BPLB16": [ - "BBL/BETA PLA Youth" - ], - "BPLB17": [ - "BBL/BETA PLA-CF" - ], - "BPLB18": [ - "BBL/BETA PLA High Temp" - ], - "BPLB19": [ - "BBL/BETA PLA Wood" - ], - "BPLB20": [ - "BBL/BETA PLA High Speed" - ], - "BTUB00": [ - "BBL/BETA TPU 90A" - ], - "BTUB01": [ - "BBL/BETA TPU Matte" - ], - "BTUB02": [ - "BBL/BETA TPU 95A" - ], - "BTUB03": [ - "BBL/BETA TPU 98A" - ], - "GFA00": [ - "BBL/Bambu PLA Basic" - ], - "GFA01": [ - "BBL/Bambu PLA Matte" - ], - "GFA02": [ - "BBL/Bambu PLA Metal" - ], - "GFA05": [ - "BBL/Bambu PLA Silk" - ], - "GFA06": [ - "BBL/Bambu PLA Silk+" - ], - "GFA07": [ - "BBL/Bambu PLA Marble" - ], - "GFA08": [ - "BBL/Bambu PLA Sparkle" - ], - "GFA09": [ - "BBL/Bambu PLA Tough" - ], - "GFA10": [ - "BBL/Bambu PLA Tough+" - ], - "GFA11": [ - "BBL/Bambu PLA Aero" - ], - "GFA12": [ - "BBL/Bambu PLA Glow" - ], - "GFA13": [ - "BBL/Bambu PLA Dynamic" - ], - "GFA15": [ - "BBL/Bambu PLA Galaxy" - ], - "GFA16": [ - "BBL/Bambu PLA Wood" - ], - "GFA17": [ - "BBL/Bambu PLA Translucent" - ], - "GFA18": [ - "BBL/Bambu PLA Lite" - ], - "GFA19": [ - "BBL/Bambu PLA Pure" - ], - "GFA50": [ - "BBL/Bambu PLA-CF" - ], - "GFB00": [ - "BBL/Bambu ABS" - ], - "GFB01": [ - "BBL/Bambu ASA" - ], - "GFB02": [ - "BBL/Bambu ASA-Aero" - ], - "GFB50": [ - "BBL/Bambu ABS-GF" - ], - "GFB51": [ - "BBL/Bambu ASA-CF" - ], - "GFB60": [ - "BBL/PolyLite ABS" - ], - "GFB61": [ - "BBL/PolyLite ASA" - ], - "GFB98": [ - "BBL/Generic ASA" - ], - "GFB99": [ - "BBL/Generic ABS" - ], - "GFC00": [ - "BBL/Bambu PC" - ], - "GFC01": [ - "BBL/Bambu PC FR" - ], - "GFC99": [ - "BBL/Generic PC" - ], - "GFG00": [ - "BBL/Bambu PETG Basic" - ], - "GFG01": [ - "BBL/Bambu PETG Translucent" - ], - "GFG02": [ - "BBL/Bambu PETG HF" - ], - "GFG50": [ - "BBL/Bambu PETG-CF" - ], - "GFG60": [ - "BBL/PolyLite PETG" - ], - "GFG96": [ - "BBL/Generic PETG HF" - ], - "GFG97": [ - "BBL/Generic PCTG" - ], - "GFG98": [ - "BBL/Generic PETG-CF" - ], - "GFG99": [ - "BBL/Generic PETG" - ], - "GFL00": [ - "BBL/PolyLite PLA" - ], - "GFL01": [ - "BBL/PolyTerra PLA" - ], - "GFL03": [ - "BBL/eSUN PLA+" - ], - "GFL04": [ - "BBL/Overture PLA" - ], - "GFL05": [ - "BBL/Overture Matte PLA" - ], - "GFL06": [ - "BBL/Fiberon PETG-ESD" - ], - "GFL50": [ - "BBL/Fiberon PA6-CF" - ], - "GFL51": [ - "BBL/Fiberon PA6-GF" - ], - "GFL52": [ - "BBL/Fiberon PA12-CF" - ], - "GFL53": [ - "BBL/Fiberon PA612-CF" - ], - "GFL54": [ - "BBL/Fiberon PET-CF" - ], - "GFL55": [ - "BBL/Fiberon PETG-rCF" - ], - "GFL56": [ - "BBL/Fiberon PA12-CF10" - ], - "GFL57": [ - "BBL/Fiberon PA6-CF20" - ], - "GFL58": [ - "BBL/Fiberon PA6-GF25" - ], - "GFL59": [ - "BBL/Fiberon PA612-CF15" - ], - "GFL60": [ - "BBL/Fiberon PET-CF17" - ], - "GFL61": [ - "BBL/Fiberon PETG-rCF08" - ], - "GFL62": [ - "BBL/PolyLite CosPLA" - ], - "GFL63": [ - "BBL/PolyLite PLA Galaxy" - ], - "GFL64": [ - "BBL/PolyLite PLA Glow" - ], - "GFL65": [ - "BBL/PolyLite PLA Luminous" - ], - "GFL66": [ - "BBL/PolyLite PLA Neon" - ], - "GFL67": [ - "BBL/PolyLite PLA Starlight" - ], - "GFL68": [ - "BBL/PolyLite PLA Translucent" - ], - "GFL69": [ - "BBL/PolyTerra PLA Marble" - ], - "GFL70": [ - "BBL/PolyTerra PLA+" - ], - "GFL95": [ - "BBL/Generic PLA High Speed" - ], - "GFL96": [ - "BBL/Generic PLA Silk" - ], - "GFL98": [ - "BBL/Generic PLA-CF" - ], - "GFL99": [ - "BBL/Generic PLA" - ], - "GFLSBS99": [], - "GFN03": [ - "BBL/Bambu PA-CF" - ], - "GFN04": [ - "BBL/Bambu PAHT-CF" - ], - "GFN05": [ - "BBL/Bambu PA6-CF" - ], - "GFN06": [ - "BBL/Bambu PPA-CF" - ], - "GFN08": [ - "BBL/Bambu PA6-GF" - ], - "GFN96": [ - "BBL/Generic PPA-GF" - ], - "GFN97": [ - "BBL/Generic PPA-CF" - ], - "GFN98": [ - "BBL/Generic PA-CF" - ], - "GFN99": [ - "BBL/Generic PA" - ], - "GFNMK00": [ - "BBL/Numakers PLA+" - ], - "GFOT001": [ - "BBL/Overture PLA Pro" - ], - "GFP95": [ - "BBL/Generic PP-GF" - ], - "GFP96": [ - "BBL/Generic PP-CF" - ], - "GFP97": [ - "BBL/Generic PP" - ], - "GFP98": [ - "BBL/Generic PE-CF" - ], - "GFP99": [ - "BBL/Generic PE" - ], - "GFPM001": [ - "BBL/Panchroma PLA" - ], - "GFPM002": [ - "BBL/Panchroma PLA Matte" - ], - "GFPM003": [ - "BBL/Panchroma PLA Marble" - ], - "GFPM004": [ - "BBL/Panchroma PLA Silk" - ], - "GFPM005": [ - "BBL/Panchroma PLA Satin" - ], - "GFPM006": [ - "BBL/Panchroma PLA Translucent" - ], - "GFPM007": [ - "BBL/Panchroma PLA Galaxy" - ], - "GFPM008": [ - "BBL/Panchroma PLA Celestial" - ], - "GFPM009": [ - "BBL/Panchroma PLA Starlight" - ], - "GFPM010": [ - "BBL/Panchroma PLA Glow" - ], - "GFPM011": [ - "BBL/Panchroma PLA Luminous" - ], - "GFPM012": [ - "BBL/Panchroma PLA Metallic" - ], - "GFPM013": [ - "BBL/Panchroma PLA Neon" - ], - "GFPM014": [ - "BBL/Panchroma PLA UV Shift" - ], - "GFPM015": [ - "BBL/Panchroma PLA Temp Shift" - ], - "GFPM016": [ - "BBL/Panchroma CoPE" - ], - "GFPM017": [ - "BBL/Polymaker HT-PLA" - ], - "GFPM018": [ - "BBL/Polymaker HT-PLA-GF" - ], - "GFPM019": [ - "BBL/PolyLite PLA Pro" - ], - "GFR00": [ - "BBL/FusRock ABS-GF" - ], - "GFR98": [ - "BBL/Generic PHA" - ], - "GFR99": [ - "BBL/Generic EVA" - ], - "GFS00": [ - "BBL/Bambu Support W" - ], - "GFS01": [ - "BBL/Bambu Support G" - ], - "GFS02": [ - "BBL/Bambu Support For PLA" - ], - "GFS03": [ - "BBL/Bambu Support For PA/PET" - ], - "GFS04": [ - "BBL/Bambu PVA" - ], - "GFS05": [ - "BBL/Bambu Support For PLA/PETG" - ], - "GFS06": [ - "BBL/Bambu Support for ABS" - ], - "GFS97": [ - "BBL/Generic BVOH" - ], - "GFS98": [ - "BBL/Generic HIPS" - ], - "GFS99": [ - "BBL/Generic PVA" - ], - "GFSNL02": [ - "BBL/SUNLU PLA Matte" - ], - "GFSNL03": [ - "BBL/SUNLU PLA+" - ], - "GFSNL04": [ - "BBL/SUNLU PLA+ 2.0" - ], - "GFSNL05": [ - "BBL/SUNLU Silk PLA+" - ], - "GFSNL06": [ - "BBL/SUNLU PLA Marble" - ], - "GFSNL07": [ - "BBL/SUNLU Wood PLA" - ], - "GFSNL08": [ - "BBL/SUNLU PETG" - ], - "GFT01": [ - "BBL/Bambu PET-CF" - ], - "GFT02": [ - "BBL/Bambu PPS-CF" - ], - "GFT97": [ - "BBL/Generic PPS" - ], - "GFT98": [ - "BBL/Generic PPS-CF" - ], - "GFU00": [ - "BBL/Bambu TPU 95A HF" - ], - "GFU01": [ - "BBL/Bambu TPU 95A" - ], - "GFU02": [ - "BBL/Bambu TPU for AMS" - ], - "GFU03": [ - "BBL/Bambu TPU 90A" - ], - "GFU04": [ - "BBL/Bambu TPU 85A" - ], - "GFU98": [ - "BBL/Generic TPU for AMS" - ], - "GFU99": [ - "BBL/Generic TPU" - ], - "GF_ANAD": [ - "BBL/addnorth PA Adura" - ], - "GF_ANAF": [ - "BBL/addnorth PA Adura FDA" - ], - "GF_ANAX": [ - "BBL/addnorth PA-CF Adura X" - ], - "GF_ANEF": [ - "BBL/addnorth TPU EasyFlex" - ], - "GF_ANEG": [ - "BBL/addnorth PETG ESD" - ], - "GF_ANEP": [ - "BBL/addnorth PLA E-PLA" - ], - "GF_ANGE": [ - "BBL/addnorth PETG Economy" - ], - "GF_ANHTP": [ - "BBL/addnorth PLA HT-PLA PRO Matte" - ], - "GF_ANLA": [ - "BBL/addnorth PA6 Addlantis" - ], - "GF_ANPBX": [ - "BBL/addnorth PC BLend HT LCF" - ], - "GF_ANPCF": [ - "BBL/addnorth PLA-CF Carbon Fiber" - ], - "GF_ANPE": [ - "BBL/addnorth PETG Base" - ], - "GF_ANPF": [ - "BBL/addnorth PETG Flame v0" - ], - "GF_ANPL": [ - "BBL/addnorth PLA Economy" - ], - "GF_ANPLW": [ - "BBL/addnorth PLA Wood" - ], - "GF_ANPM": [ - "BBL/addnorth PETG PRO Matte" - ], - "GF_ANPS": [ - "BBL/addnorth PLA Premium Silk" - ], - "GF_ANPV": [ - "BBL/addnorth PVDF Adamant S1" - ], - "GF_ANRA": [ - "BBL/addnorth ABS rABS" - ], - "GF_ANRM": [ - "BBL/addnorth PETG rPETG Matte" - ], - "GF_ANRPL": [ - "BBL/addnorth PLA rPLA RE-ADD" - ], - "GF_ANRX": [ - "BBL/addnorth PETG-CF Rigid X" - ], - "GF_ANTA": [ - "BBL/addnorth TPU Pro Matte 85A" - ], - "GF_ANTE": [ - "BBL/addnorth PLA Textura" - ], - "GF_ANTM": [ - "BBL/addnorth TPU Pro Matte 95A" - ], - "GF_ANXP": [ - "BBL/addnorth PLA X-PLA" - ], - "GF_ANXPH": [ - "BBL/addnorth PLA X-PLA High Speed" - ], "OF02UAVh": [ "Creality/Soleyin Ultra PLA" ], + "OF03RK6r": [ + "BBL/BETA PLA Metal" + ], "OF0AquDh": [ "Flashforge/FusRock S-Multi" ], + "OF0EYBWQ": [ + "BBL/addnorth PETG Flame v0" + ], "OF0FfcAG": [ "Anycubic/Anycubic TPU for ACE" ], @@ -1519,6 +899,7 @@ "Artillery/Artillery PLA Tough" ], "OF0UJcb6": [ + "BBL/PolyLite PETG", "OrcaFilamentLibrary/PolyLite PETG", "Snapmaker/PolyLite PETG" ], @@ -1535,6 +916,7 @@ "InfiMech/InfiMech ABS" ], "OF0gGRWk": [ + "BBL/Panchroma PLA Glow", "OrcaFilamentLibrary/Panchroma PLA Glow", "Snapmaker/Panchroma PLA Glow" ], @@ -1543,6 +925,7 @@ "OrcaFilamentLibrary/Elegoo PAHT-CF" ], "OF0kCNDK": [ + "BBL/Panchroma PLA Luminous", "OrcaFilamentLibrary/Panchroma PLA Luminous", "Snapmaker/Panchroma PLA Luminous" ], @@ -1557,6 +940,7 @@ "Qidi/QIDI ABS Rapido 0.8 nozzle" ], "OF0wBGNx": [ + "BBL/Bambu ASA-CF", "OrcaFilamentLibrary/Bambu ASA-CF" ], "OF0wz84w": [ @@ -1568,7 +952,11 @@ "OF112FvY": [ "Anycubic/Generic PETG Basic" ], + "OF1ID4N1": [ + "BBL/addnorth PA6 Addlantis" + ], "OF1N1qMK": [ + "BBL/Panchroma PLA UV Shift", "OrcaFilamentLibrary/Panchroma PLA UV Shift", "Snapmaker/Panchroma PLA UV Shift" ], @@ -1577,6 +965,7 @@ "OrcaFilamentLibrary/Overture Easy PLA" ], "OF1UNk9P": [ + "BBL/Generic PP", "Creality/Generic PP", "OrcaFilamentLibrary/Generic PP", "Tiertime/Generic PP" @@ -1604,6 +993,7 @@ "OrcaFilamentLibrary/FilAr PLA-mate Violeta" ], "OF2GCW1l": [ + "BBL/SUNLU PETG", "Flashforge/SUNLU PETG", "OrcaFilamentLibrary/SUNLU PETG", "Sovol/SUNLU PETG" @@ -1612,6 +1002,7 @@ "Qidi/QIDI PLA Silk" ], "OF2VFe4J": [ + "BBL/Bambu PAHT-CF", "OrcaFilamentLibrary/Bambu PAHT-CF" ], "OF2Z1nT5": [ @@ -1629,6 +1020,9 @@ "Elegoo/Elegoo Rapid TPU 95A", "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" ], + "OF342jVN": [ + "BBL/Bambu PLA Tough+" + ], "OF3F63OE": [ "re3D/re3D PETG" ], @@ -1638,6 +1032,9 @@ "OF3OMgrI": [ "Creality/CR-Silk" ], + "OF3PDEw3": [ + "BBL/BETA PLA High Speed" + ], "OF3WQaKK": [ "Creality/CR-PETG" ], @@ -1676,13 +1073,24 @@ "OF4Nhggz": [ "Artillery/Artillery PLA Basic+" ], - "OF4RvVuU": [], + "OF4PKvem": [ + "BBL/BETA PLA Fluorescence" + ], + "OF4QZANi": [ + "BBL/BETA TPU Matte" + ], + "OF4RvVuU": [ + "BBL/Bambu PPS-CF" + ], "OF4S3To3": [ "Qidi/QIDI PETG Rapido" ], "OF4WB37S": [ "Snapmaker/Snapmaker PETG" ], + "OF4XTfoI": [ + "BBL/BETA PETG Marble" + ], "OF4f8vVp": [ "WonderMaker/WonderMaker PET-CF" ], @@ -1701,6 +1109,7 @@ "Elegoo/Generic ASA-CF" ], "OF54B0S0": [ + "BBL/Bambu PPA-CF", "OrcaFilamentLibrary/Bambu PPA-CF" ], "OF54SvEe": [ @@ -1709,15 +1118,25 @@ "OF55jHAJ": [ "Prusa/Generic ABS HF" ], + "OF5B9sUc": [ + "BBL/Fiberon PA6-GF25" + ], "OF5BN24W": [ "Flashforge/Flashforge PPA-GF" ], + "OF5BXhHF": [ + "BBL/BETA PLA High Temp" + ], "OF5CgdDq": [ + "BBL/PolyLite PLA", "OrcaArena/PolyLite PLA", "OrcaFilamentLibrary/PolyLite PLA", "Qidi/PolyLite PLA", "Snapmaker/PolyLite PLA" ], + "OF5LAnla": [ + "BBL/BETA PLA Gradient" + ], "OF5NqBfC": [ "Wanhao France/YUMI PETG" ], @@ -1754,6 +1173,7 @@ "Ratrig/Generic TPU BigNozzle" ], "OF5umxxT": [ + "BBL/PolyLite PLA Glow", "Snapmaker/PolyLite PLA Glow" ], "OF5vgi2G": [ @@ -1785,23 +1205,34 @@ "Snapmaker/Snapmaker Breakaway Support For PLA", "Snapmaker/Snapmaker J1 PVA" ], + "OF6Yn69v": [ + "BBL/BETA TPU 90A" + ], "OF6kj4jI": [ "iQ/Fiberthree PACF Pro P2" ], "OF6qAuyi": [ "Flashforge/Flashforge PLA Matte" ], + "OF6qw3Wb": [ + "BBL/BETA PAHT-CF" + ], "OF6rdQ6M": [ + "BBL/Generic PPS-CF", "Creality/Generic PPS-CF", "Tiertime/Generic PPS-CF" ], "OF70zbGS": [ "Creality/Hyper L-W PLA" ], + "OF71b7qO": [ + "BBL/addnorth PLA E-PLA" + ], "OF72YYTd": [ "Snapmaker/Snapmaker ABS" ], "OF74KeQR": [ + "BBL/Generic PHA", "OrcaFilamentLibrary/Generic PHA", "Tiertime/Generic PHA" ], @@ -1821,6 +1252,7 @@ "Anycubic/Anycubic PLA Translucent" ], "OF7lOgYF": [ + "BBL/Generic PETG HF", "OrcaFilamentLibrary/Generic PETG HF", "Prusa/Generic PETG HF" ], @@ -1851,7 +1283,11 @@ "OF8O09RG": [ "Flashforge/Flashforge HS PLA Burnt Ti" ], + "OF8QdQwS": [ + "BBL/BETA PLA Silk+" + ], "OF8Tlg47": [ + "BBL/Generic PPA-GF", "OrcaFilamentLibrary/Generic PPA-GF", "Tiertime/Generic PPA-GF" ], @@ -1871,6 +1307,7 @@ "Eryone/Eryone PETG" ], "OF8tPByX": [ + "BBL/Generic PPA-CF", "OrcaFilamentLibrary/Generic PPA-CF", "Tiertime/Generic PPA-CF" ], @@ -1889,6 +1326,7 @@ "Afinia/Afinia PLA" ], "OF9OlTWH": [ + "BBL/Bambu PLA Marble", "OrcaFilamentLibrary/Bambu PLA Marble" ], "OF9PELEb": [ @@ -1924,10 +1362,17 @@ "OFAZllAN": [ "Artillery/Artillery PLA-CF" ], + "OFAc0Pr3": [ + "BBL/Fiberon PET-CF17" + ], + "OFAcJkl1": [ + "BBL/addnorth PETG-CF Rigid X" + ], "OFAebKg8": [ "Flashforge/Flashforge PLA Metal" ], "OFAnyRUI": [ + "BBL/Bambu Support For PLA", "OrcaFilamentLibrary/Bambu Support For PLA" ], "OFAt6ec0": [ @@ -1946,6 +1391,7 @@ "Creality/Soleyin Basic PETG" ], "OFBSW57R": [ + "BBL/Bambu PLA Aero", "OrcaFilamentLibrary/Bambu PLA Aero" ], "OFBUIlZ7": [ @@ -1956,9 +1402,14 @@ "Snapmaker/Snapmaker Dual PETG" ], "OFBoSWxb": [ + "BBL/PolyLite PLA Luminous", "Snapmaker/PolyLite PLA Luminous" ], + "OFBsbMMF": [ + "BBL/addnorth PA-CF Adura X" + ], "OFBw6eEG": [ + "BBL/Overture Matte PLA", "OrcaFilamentLibrary/Overture Matte PLA" ], "OFC1PzXz": [ @@ -1968,14 +1419,17 @@ "RH3D/Generic PCCF" ], "OFC78WGQ": [ + "BBL/Panchroma PLA Starlight", "OrcaFilamentLibrary/Panchroma PLA Starlight", "Snapmaker/Panchroma PLA Starlight" ], "OFCD8qiU": [ + "BBL/Generic EVA", "OrcaFilamentLibrary/Generic EVA", "Tiertime/Generic EVA" ], "OFCIUsWh": [ + "BBL/Panchroma PLA Translucent", "OrcaFilamentLibrary/Panchroma PLA Translucent", "Snapmaker/Panchroma PLA Translucent" ], @@ -2024,6 +1478,7 @@ "OrcaFilamentLibrary/eSUN PLA-Matte" ], "OFDGigEI": [ + "BBL/Bambu PLA Dynamic", "OrcaFilamentLibrary/Bambu PLA Dynamic" ], "OFDIrhbu": [ @@ -2046,6 +1501,7 @@ "Anker/Generic PLA", "Anycubic/Generic PLA", "Artillery/Generic PLA", + "BBL/Generic PLA", "Blocks/Generic PLA", "CONSTRUCT3D/Generic PLA", "Chuanying/Generic PLA", @@ -2099,6 +1555,7 @@ "OFDvXujf": [ "Anker/Generic PVA", "Anycubic/Generic PVA", + "BBL/Generic PVA", "Blocks/Generic PVA", "Chuanying/Generic PVA", "Creality/Generic PVA", @@ -2121,6 +1578,7 @@ "Prusa/Generic PVA HF" ], "OFDxfPgH": [ + "BBL/Bambu PLA Sparkle", "OrcaFilamentLibrary/Bambu PLA Sparkle" ], "OFDxxTpW": [ @@ -2131,6 +1589,7 @@ "OrcaFilamentLibrary/COEX TPU 60A" ], "OFEGNJD4": [ + "BBL/Bambu PLA Silk", "OrcaFilamentLibrary/Bambu PLA Silk" ], "OFEOnBj6": [ @@ -2148,6 +1607,7 @@ ], "OFEabreg": [ "Anycubic/Fiberon PA6-CF20", + "BBL/Fiberon PA6-CF20", "Snapmaker/Fiberon PA6-CF20" ], "OFEbIx49": [ @@ -2158,9 +1618,11 @@ "Cubicon/Cubicon PC" ], "OFEjbwqG": [ + "BBL/PolyTerra PLA+", "Snapmaker/PolyTerra PLA+" ], "OFEkPBwx": [ + "BBL/Bambu PLA Glow", "OrcaFilamentLibrary/Bambu PLA Glow" ], "OFEmsric": [ @@ -2170,6 +1632,7 @@ "Peopoly/Peopoly Lancer PLA-C" ], "OFEswT5W": [ + "BBL/Bambu PLA-CF", "OrcaFilamentLibrary/Bambu PLA-CF" ], "OFEvEfw5": [ @@ -2181,7 +1644,11 @@ "OFF3cuzT": [ "Creality/Generic TPU 64D" ], + "OFF5o7b2": [ + "BBL/BETA PLA Youth" + ], "OFF9OKoY": [ + "BBL/PolyLite PLA Pro", "OrcaFilamentLibrary/PolyLite PLA Pro", "Snapmaker/PolyLite PLA Pro" ], @@ -2195,6 +1662,7 @@ "Flashforge/Flashforge ASA Basic" ], "OFFNYwWR": [ + "BBL/Bambu PA-CF", "OrcaFilamentLibrary/Bambu PA-CF" ], "OFFP4ORR": [ @@ -2209,11 +1677,19 @@ "OFFbQscs": [ "Creality/eSUN PETG-Basic" ], + "OFFbSnCD": [ + "BBL/Bambu PLA Translucent" + ], + "OFFfJ09N": [ + "BBL/BETA PETG Glow" + ], "OFFkCLBl": [ + "BBL/Panchroma PLA Galaxy", "OrcaFilamentLibrary/Panchroma PLA Galaxy", "Snapmaker/Panchroma PLA Galaxy" ], "OFFvzqcd": [ + "BBL/Bambu PETG Basic", "OrcaFilamentLibrary/Bambu PETG Basic" ], "OFFwJWea": [ @@ -2235,6 +1711,12 @@ "OFGVwfK0": [ "OrcaFilamentLibrary/FilAr PLA-mate Gris" ], + "OFGVxj2A": [ + "BBL/BETA PLA Wood" + ], + "OFGc9l16": [ + "BBL/BETA PLA Glow" + ], "OFGcLA5R": [ "OrcaFilamentLibrary/FilAr PLA-mate Beige" ], @@ -2272,10 +1754,15 @@ "OFHAccHz": [ "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" ], + "OFHHwrd1": [ + "BBL/addnorth PETG Base" + ], "OFHWSM21": [ + "BBL/Fiberon PET-CF", "OrcaFilamentLibrary/Fiberon PET-CF" ], "OFHa48An": [ + "BBL/Bambu PET-CF", "OrcaFilamentLibrary/Bambu PET-CF" ], "OFHaYaB1": [ @@ -2292,15 +1779,22 @@ "Snapmaker/Polymaker PLA Pro Metallic" ], "OFHmPYRy": [ + "BBL/SUNLU PLA+ 2.0", "Flashforge/SUNLU PLA+ 2.0", "OrcaFilamentLibrary/SUNLU PLA+ 2.0" ], + "OFI2MKy7": [ + "BBL/BETA PEBA 90A" + ], "OFI6WZpn": [ "OrcaArena/Arena Support W" ], "OFIBXa0k": [ "OrcaFilamentLibrary/FilAr PLA-mate Rojo" ], + "OFIBbYO5": [ + "BBL/Bambu TPU for AMS" + ], "OFIE3vOf": [ "Anycubic/Anycubic PLA Matte" ], @@ -2332,12 +1826,14 @@ "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" ], "OFIfnzxC": [ + "BBL/Bambu Support For PLA/PETG", "OrcaFilamentLibrary/Bambu Support For PLA/PETG" ], "OFIgbDHq": [ "Anycubic/Anycubic PLA Luminous" ], "OFIxOuOu": [ + "BBL/PolyLite PLA Starlight", "Snapmaker/PolyLite PLA Starlight" ], "OFJ3F2jm": [ @@ -2368,11 +1864,15 @@ "Flashforge/Generic TPU-90A" ], "OFJgijky": [ + "BBL/PolyLite CosPLA", "Snapmaker/PolyLite CosPLA" ], "OFJhT2fd": [ "Snapmaker/Snapmaker Dual ABS" ], + "OFJnEaCp": [ + "BBL/BETA PLA Transparent" + ], "OFJrvXth": [ "Snapmaker/Snapmaker ABS Benchy" ], @@ -2385,6 +1885,9 @@ "OFJxSqO4": [ "Wanhao France/YUMI PLA Direct Drive" ], + "OFK7830e": [ + "BBL/BETA TPU 95A" + ], "OFK8XHPn": [ "Qidi/Overture ABS" ], @@ -2409,6 +1912,9 @@ "OFKWWgyp": [ "OrcaFilamentLibrary/FilAr PLA Carpincho" ], + "OFKYBAWe": [ + "BBL/BETA PLA Marble" + ], "OFKZ9skj": [ "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" ], @@ -2422,12 +1928,17 @@ "Qidi/QIDI PAHT-CF" ], "OFKhMPeX": [ + "BBL/Bambu PC", "OrcaFilamentLibrary/Bambu PC" ], "OFKiSMWR": [ + "BBL/Panchroma PLA Marble", "OrcaFilamentLibrary/Panchroma PLA Marble", "Snapmaker/Panchroma PLA Marble" ], + "OFKyNkQz": [ + "BBL/BETA PETG UV Color Change" + ], "OFL9aRjN": [ "Snapmaker/Snapmaker PETG HF" ], @@ -2438,6 +1949,7 @@ "Flashforge/Flashforge PPA-CF" ], "OFLJ8S6I": [ + "BBL/SUNLU Wood PLA", "Flashforge/SUNLU Wood PLA", "OrcaFilamentLibrary/SUNLU Wood PLA" ], @@ -2449,6 +1961,7 @@ "Anker/Generic ASA", "Anycubic/Generic ASA", "Artillery/Generic ASA", + "BBL/Generic ASA", "Blocks/Generic ASA", "Chuanying/Generic ASA", "Creality/Generic ASA", @@ -2479,6 +1992,7 @@ "OFLakOUI": [ "Anker/Generic PC", "Anycubic/Generic PC", + "BBL/Generic PC", "Blocks/Generic PC", "Creality/Generic PC", "Custom/Generic PC", @@ -2512,6 +2026,12 @@ "OFLgwqp2": [ "Creality/Hyper PETG-GF" ], + "OFLjDYxH": [ + "BBL/addnorth PLA X-PLA High Speed" + ], + "OFLqgSuX": [ + "BBL/BETA PLA-CF" + ], "OFLzx3J4": [ "Creality/Hyper Marble" ], @@ -2538,9 +2058,11 @@ "Artillery/Artillery PA" ], "OFMTK0UC": [ + "BBL/Bambu Support For PA/PET", "OrcaFilamentLibrary/Bambu Support For PA/PET" ], "OFMUWNkp": [ + "BBL/SUNLU PLA+", "Flashforge/SUNLU PLA+", "OrcaFilamentLibrary/SUNLU PLA+" ], @@ -2549,6 +2071,7 @@ "OrcaFilamentLibrary/Overture Rock PLA" ], "OFMjtqTC": [ + "BBL/Bambu PLA Wood", "OrcaFilamentLibrary/Bambu PLA Wood" ], "OFMkAW6r": [ @@ -2563,6 +2086,12 @@ "OFMuXBmO": [ "OrcaFilamentLibrary/Elas PLA Basic" ], + "OFMzRg65": [ + "BBL/BETA PLA PRO" + ], + "OFN8QBhu": [ + "BBL/addnorth PLA Wood" + ], "OFN9fefN": [ "Cubicon/Cubicon ABS-A100" ], @@ -2587,7 +2116,11 @@ "OFNjku08": [ "CONSTRUCT3D/Generic High Flow PETG" ], + "OFNk8AvA": [ + "BBL/BETA PETG Gradient" + ], "OFNk8bxk": [ + "BBL/Bambu PA6-GF", "OrcaFilamentLibrary/Bambu PA6-GF" ], "OFNstOna": [ @@ -2597,6 +2130,7 @@ "Creality/Hyper PPA-CF" ], "OFO1GEq6": [ + "BBL/Panchroma PLA Neon", "OrcaFilamentLibrary/Panchroma PLA Neon", "Snapmaker/Panchroma PLA Neon" ], @@ -2604,6 +2138,9 @@ "Chuanying/Generic PETG-CF10", "Flashforge/Generic PETG-CF10" ], + "OFO6GMJ3": [ + "BBL/addnorth TPU EasyFlex" + ], "OFOABq7t": [ "BBL/AliZ PETG-Metal", "OrcaFilamentLibrary/AliZ PETG-Metal" @@ -2620,6 +2157,9 @@ "OFOPU1xv": [ "Snapmaker/Snapmaker PLA Full Spectrum" ], + "OFOQCfVa": [ + "BBL/addnorth PLA Premium Silk" + ], "OFObG16Q": [ "InfiMech/InfiMech PLA Basic" ], @@ -2640,6 +2180,7 @@ "Qidi/QIDI ABS Rapido 0.2 nozzle" ], "OFOvv91M": [ + "BBL/PolyLite ABS", "OrcaFilamentLibrary/PolyLite ABS", "Qidi/PolyLite ABS" ], @@ -2668,15 +2209,18 @@ "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" ], "OFPkCJKE": [ + "BBL/Panchroma PLA Satin", "Creality/Panchroma PLA Satin", "OrcaFilamentLibrary/Panchroma PLA Satin", "Snapmaker/Panchroma PLA Satin" ], "OFPklMI1": [ + "BBL/Generic PE", "OrcaFilamentLibrary/Generic PE", "Tiertime/Generic PE" ], "OFPoyiFs": [ + "BBL/Polymaker HT-PLA", "OrcaFilamentLibrary/Polymaker HT-PLA", "Snapmaker/Polymaker HT-PLA" ], @@ -2690,11 +2234,15 @@ "Eryone/Eryone ABS-CF" ], "OFQ3e56w": [ + "BBL/Bambu PLA Galaxy", "OrcaFilamentLibrary/Bambu PLA Galaxy" ], "OFQ40XeN": [ "Qidi/QIDI PETG Tough" ], + "OFQ5TxZ2": [ + "BBL/addnorth PVDF Adamant S1" + ], "OFQEGL7z": [ "FlyingBear/FlyingBear PA-CF" ], @@ -2702,11 +2250,13 @@ "OrcaArena/Arena TPU 95A" ], "OFQHiNJs": [ + "BBL/Bambu Support G", "OrcaFilamentLibrary/Bambu Support G" ], "OFQLcbps": [ "Anker/Generic PA-CF", "Anycubic/Generic PA-CF", + "BBL/Generic PA-CF", "Blocks/Generic PA-CF", "Creality/Generic PA-CF", "Custom/Generic PA-CF", @@ -2753,6 +2303,9 @@ "OFR1XLMN": [ "Qidi/QIDI TPU 95A-HF" ], + "OFRFhdqy": [ + "BBL/addnorth PLA Textura" + ], "OFRJ325z": [ "LH/LHS PETG" ], @@ -2766,6 +2319,7 @@ "OrcaFilamentLibrary/Eolas Prints PETG Transition" ], "OFRiYgMK": [ + "BBL/Panchroma PLA Celestial", "OrcaFilamentLibrary/Panchroma PLA Celestial", "Snapmaker/Panchroma PLA Celestial" ], @@ -2788,12 +2342,14 @@ "OrcaFilamentLibrary/eSUN ePLA-LW" ], "OFS2tn6G": [ + "BBL/Fiberon PA612-CF", "OrcaFilamentLibrary/Fiberon PA612-CF" ], "OFS4jbj3": [ "Eryone/Eryone PA" ], "OFS8lTQt": [ + "BBL/Panchroma PLA Silk", "OrcaFilamentLibrary/Panchroma PLA Silk", "Snapmaker/Panchroma PLA Silk" ], @@ -2806,9 +2362,18 @@ "OFSbGfsz": [ "OrcaArena/Arena PLA Basic" ], + "OFSfm8iP": [ + "BBL/BETA PLA Heat Color Change" + ], + "OFSiCZP3": [ + "BBL/BETA PETG-GF" + ], "OFSqIcJC": [ "Flashforge/Flashforge TPU 95A" ], + "OFSw6Mor": [ + "BBL/addnorth PA Adura FDA" + ], "OFSwbBWS": [], "OFT2jon4": [ "Qidi/QIDI ABS Rapido" @@ -2816,10 +2381,14 @@ "OFTGHyNC": [ "OrcaFilamentLibrary/Bambu PLA Impact" ], + "OFTHDCqA": [ + "BBL/Bambu PLA Pure" + ], "OFTOPcx0": [ "OrcaFilamentLibrary/Eolas Prints TPU Transition" ], "OFTRZ8Y4": [ + "BBL/Bambu PETG-CF", "OrcaFilamentLibrary/Bambu PETG-CF" ], "OFTSXxzE": [ @@ -2856,6 +2425,9 @@ "OFU3QXL7": [ "re3D/re3D PC" ], + "OFU5JPDy": [ + "BBL/addnorth PETG PRO Matte" + ], "OFU7CKZt": [ "Volumic/Volumic ASA Ultra (Performance)" ], @@ -2875,11 +2447,15 @@ "Anycubic/Anycubic PEBA 95A" ], "OFUanySo": [ + "BBL/Bambu PLA Silk+", "OrcaFilamentLibrary/Bambu PLA Silk+" ], "OFUmS5z5": [ "Creality/eSUN ASA+" ], + "OFUtiVRn": [ + "BBL/addnorth PETG ESD" + ], "OFUyDDNv": [ "Elegoo/Elegoo PC", "OrcaFilamentLibrary/Elegoo PC" @@ -2900,8 +2476,12 @@ "OFV8Mxqx": [], "OFVBlUFH": [], "OFVCkX5w": [ + "BBL/Bambu TPU 95A", "OrcaFilamentLibrary/Bambu TPU 95A" ], + "OFVDWuxl": [ + "BBL/addnorth PLA HT-PLA PRO Matte" + ], "OFVHMFJX": [ "Qidi/QIDI PETG Tough 0.2 nozzle" ], @@ -2913,6 +2493,7 @@ "Eryone/Eryone ASA" ], "OFW29a9R": [ + "BBL/PolyTerra PLA", "OrcaArena/PolyTerra PLA", "OrcaFilamentLibrary/PolyTerra PLA", "Snapmaker/PolyTerra PLA" @@ -2920,12 +2501,18 @@ "OFW5FqkL": [ "Qidi/QIDI PLA Rapido Silk" ], + "OFW8M3CY": [ + "BBL/BETA PLA Chameleon" + ], "OFW8lqnb": [ "Snapmaker/Snapmaker PETG Translucent" ], "OFWDe7YH": [ "Qidi/QIDI UltraPA" ], + "OFWK0Y9A": [ + "BBL/addnorth PA Adura" + ], "OFWRITFw": [ "Prusa/Prusament rPLA" ], @@ -2952,6 +2539,7 @@ "Anker/Generic PLA-CF", "Anycubic/Generic PLA-CF", "Artillery/Generic PLA-CF", + "BBL/Generic PLA-CF", "Blocks/Generic PLA-CF", "Creality/Generic PLA-CF", "Custom/Generic PLA-CF", @@ -2976,6 +2564,7 @@ "re3D/re3D PETG" ], "OFX0ycRQ": [ + "BBL/Fiberon PA12-CF", "OrcaFilamentLibrary/Fiberon PA12-CF" ], "OFX2zcrM": [ @@ -2986,6 +2575,7 @@ "OrcaFilamentLibrary/Eolas Prints ABS" ], "OFXIbw5D": [ + "BBL/Bambu PLA Matte", "OrcaFilamentLibrary/Bambu PLA Matte" ], "OFXJ9iom": [ @@ -3010,6 +2600,7 @@ "Artillery/Artillery PLA Basic" ], "OFXkm8q1": [ + "BBL/Generic PP-CF", "Creality/Generic PP-CF", "OrcaFilamentLibrary/Generic PP-CF", "Tiertime/Generic PP-CF" @@ -3031,6 +2622,7 @@ "OrcaFilamentLibrary/Elegoo PLA Silk" ], "OFXzQ4yL": [ + "BBL/Bambu ASA-Aero", "OrcaFilamentLibrary/Bambu ASA-Aero" ], "OFY0F5qA": [ @@ -3046,6 +2638,7 @@ "Anker/Generic ABS", "Anycubic/Generic ABS", "Artillery/Generic ABS", + "BBL/Generic ABS", "Blocks/Generic ABS", "Chuanying/Generic ABS", "Co Print/Generic ABS", @@ -3082,10 +2675,14 @@ "OrcaFilamentLibrary/PolyLite Dual PLA", "Snapmaker/PolyLite Dual PLA" ], + "OFYGrfHY": [ + "BBL/BETA PETG Fluorescence" + ], "OFYPdQJh": [ "Anker/Generic PETG", "Anycubic/Generic PETG", "Artillery/Generic PETG", + "BBL/Generic PETG", "Blocks/Generic PETG", "CONSTRUCT3D/Generic PETG", "Chuanying/Generic PETG", @@ -3142,6 +2739,12 @@ "OFZ4QbfK": [ "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" ], + "OFZGrQTU": [ + "BBL/addnorth PETG Economy" + ], + "OFZJft47": [ + "BBL/addnorth PLA Economy" + ], "OFZLtWYs": [ "Qidi/QIDI ABS-GF25" ], @@ -3151,6 +2754,9 @@ "OFZivHGL": [ "Snapmaker/Snapmaker Dual PLA" ], + "OFZqZMuv": [ + "BBL/BETA ASA" + ], "OFZr862X": [ "Creality/Generic PLA HF", "Prusa/Generic PLA HF" @@ -3180,6 +2786,7 @@ "LH/LHS ASA" ], "OFaQMgRH": [ + "BBL/Bambu PLA Tough", "OrcaFilamentLibrary/Bambu PLA Tough" ], "OFaRjiIm": [ @@ -3222,6 +2829,7 @@ "Eryone/Eryone PP-CF" ], "OFc3xdm9": [ + "BBL/Overture PLA", "OrcaFilamentLibrary/Overture PLA", "Qidi/Overture PLA" ], @@ -3231,6 +2839,9 @@ "OFcBJQcC": [ "Snapmaker/Snapmaker Dual TPU High-Flow" ], + "OFcBl0nJ": [ + "BBL/Fiberon PA612-CF15" + ], "OFcJDtTx": [ "Artillery/Artillery TPU" ], @@ -3244,9 +2855,15 @@ "BBL/Overture Air PLA", "OrcaFilamentLibrary/Overture Air PLA" ], + "OFcnWTJB": [ + "BBL/BETA PLA Glitter" + ], "OFcogyWl": [ "WonderMaker/WonderMaker PLA Metal" ], + "OFcpa50Z": [ + "BBL/addnorth PLA-CF Carbon Fiber" + ], "OFctg8r1": [ "CoLiDo/CoLiDo PLA+" ], @@ -3255,10 +2872,12 @@ "OrcaFilamentLibrary/Overture TPU" ], "OFcytyoA": [ + "BBL/Fiberon PETG-ESD", "OrcaFilamentLibrary/Fiberon PETG-ESD", "Snapmaker/Fiberon PETG-ESD" ], "OFd0Fv0k": [ + "BBL/Generic PE-CF", "OrcaFilamentLibrary/Generic PE-CF", "Tiertime/Generic PE-CF" ], @@ -3313,6 +2932,9 @@ "OFeCJqxx": [ "Qidi/QIDI ABS Rapido Metal" ], + "OFeF4UNh": [ + "BBL/BETA PLA Silk" + ], "OFeIyhUx": [ "Anycubic/Anycubic PC-CF" ], @@ -3333,6 +2955,7 @@ ], "OFesA6rF": [ "Anker/Generic PLA Silk", + "BBL/Generic PLA Silk", "Creality/Generic PLA Silk", "FLSun/Generic PLA Silk", "Flashforge/Generic PLA Silk", @@ -3359,12 +2982,14 @@ "InfiMech/InfiMech PC" ], "OFf6mfQO": [ + "BBL/Bambu Support for ABS", "OrcaFilamentLibrary/Bambu Support for ABS" ], "OFf6ynfH": [ "FlyingBear/FlyingBear PETG Basic" ], "OFfBpSRI": [ + "BBL/Bambu ASA", "OrcaFilamentLibrary/Bambu ASA" ], "OFfD87Gy": [ @@ -3419,6 +3044,7 @@ "Snapmaker/Snapmaker Dual PLA Metal" ], "OFg57Nmc": [ + "BBL/Bambu PC FR", "OrcaFilamentLibrary/Bambu PC FR" ], "OFg8hMzT": [ @@ -3427,6 +3053,7 @@ "OFg8ndtj": [ "Anker/Generic PA", "Anycubic/Generic PA", + "BBL/Generic PA", "Blocks/Generic PA", "Creality/Generic PA", "Custom/Generic PA", @@ -3461,6 +3088,7 @@ "Anker/Generic TPU", "Anycubic/Generic TPU", "Artillery/Generic TPU", + "BBL/Generic TPU", "Blocks/Generic TPU", "Chuanying/Generic TPU", "Co Print/Generic TPU", @@ -3514,12 +3142,16 @@ "Creality/Generic PA6-GF" ], "OFhASRWj": [ + "BBL/Panchroma PLA Temp Shift", "OrcaFilamentLibrary/Panchroma PLA Temp Shift", "Snapmaker/Panchroma PLA Temp Shift" ], "OFhMO9Kh": [ "OrcaFilamentLibrary/GreenGate3D PETG" ], + "OFhN09f0": [ + "BBL/addnorth PC BLend HT LCF" + ], "OFhO5aEJ": [ "Ratrig/RatRig PunkFil ABS" ], @@ -3527,6 +3159,7 @@ "Snapmaker/Snapmaker PLA-CF" ], "OFhQfUQY": [ + "BBL/Generic SBS", "OrcaFilamentLibrary/Generic SBS", "Tiertime/Generic SBS" ], @@ -3570,6 +3203,7 @@ "Snapmaker/Snapmaker PLA Basic" ], "OFhuaUQB": [ + "BBL/Bambu ABS", "OrcaFilamentLibrary/Bambu ABS", "Qidi/Bambu ABS" ], @@ -3615,6 +3249,7 @@ "Creality/Generic Support for PLA" ], "OFitS8al": [ + "BBL/PolyLite PLA Neon", "Snapmaker/PolyLite PLA Neon" ], "OFiwEbze": [ @@ -3645,6 +3280,9 @@ "OFjUGUIK": [ "iQ/Fiberthree PACF Pro P1" ], + "OFjUXn67": [ + "BBL/BETA ABS" + ], "OFjVOWfJ": [ "Anycubic/Anycubic PLA High Speed" ], @@ -3652,6 +3290,7 @@ "OrcaArena/Arena PLA Impact" ], "OFjb0wos": [ + "BBL/Panchroma PLA Metallic", "OrcaFilamentLibrary/Panchroma PLA Metallic", "Snapmaker/Panchroma PLA Metallic" ], @@ -3668,6 +3307,9 @@ "OFjoAe0R": [ "Qidi/Qidi PLA-CF" ], + "OFjogeYN": [ + "BBL/BETA PETG Glitter" + ], "OFjorDcx": [ "OrcaFilamentLibrary/FDplast ABS" ], @@ -3681,6 +3323,7 @@ "Prusa/Prusament PC-CF" ], "OFk8t9mz": [ + "BBL/Fiberon PETG-rCF", "OrcaFilamentLibrary/Fiberon PETG-rCF" ], "OFkAltI8": [ @@ -3693,7 +3336,11 @@ "OFkGvN4d": [ "OrcaFilamentLibrary/FilAr PLA Verde Pixel" ], + "OFkHbjUv": [ + "BBL/BETA PLA Metallic" + ], "OFkOviHk": [ + "BBL/Fiberon PA6-CF", "OrcaFilamentLibrary/Fiberon PA6-CF" ], "OFkR8E2c": [ @@ -3711,6 +3358,7 @@ "InfiMech/Other PLA Hyper" ], "OFknl9Iz": [ + "BBL/Bambu ABS-GF", "OrcaFilamentLibrary/Bambu ABS-GF" ], "OFkoLUtR": [ @@ -3744,12 +3392,18 @@ "OFlSNkhc": [ "OrcaFilamentLibrary/Eolas Prints ASA" ], + "OFlfuj2k": [ + "BBL/Bambu TPU 85A" + ], "OFlgMgNM": [ "Flashforge/Flashforge PPS" ], "OFllmFhT": [ "Elegoo/Generic PETG PRO" ], + "OFlmxlDG": [ + "BBL/BETA HIPS" + ], "OFln72PT": [ "Elegoo/Elegoo PLA-CF", "OrcaFilamentLibrary/Elegoo PLA-CF" @@ -3762,6 +3416,7 @@ "Snapmaker/Snapmaker PLA" ], "OFlwmqrC": [ + "BBL/Polymaker HT-PLA-GF", "OrcaFilamentLibrary/Polymaker HT-PLA-GF", "Snapmaker/Polymaker HT-PLA-GF" ], @@ -3793,6 +3448,9 @@ "OFmKU2Ha": [ "Eryone/Eryone PLA" ], + "OFmN2lvw": [ + "BBL/Generic TPU for AMS" + ], "OFmY0l6t": [ "Creality/Generic PLA Matte", "Elegoo/Generic PLA Matte", @@ -3815,9 +3473,11 @@ "Anycubic/Anycubic PLA" ], "OFmn9NZL": [ + "BBL/FusRock ABS-GF", "OrcaFilamentLibrary/FusRock ABS-GF" ], "OFmpMwxS": [ + "BBL/Generic PLA High Speed", "Creality/Generic PLA High Speed", "FLSun/Generic PLA High Speed", "Flashforge/Generic PLA High Speed", @@ -3825,6 +3485,9 @@ "Qidi/Generic PLA High Speed", "Tiertime/Generic PLA High Speed" ], + "OFmt513L": [ + "BBL/BETA PETG Transparent" + ], "OFmveLWz": [ "Elegoo/Elegoo PETG-GF", "OrcaFilamentLibrary/Elegoo PETG-GF" @@ -3839,6 +3502,9 @@ "OFn6WpN7": [ "Qidi/QIDI PA12-CF" ], + "OFnBvPhb": [ + "BBL/addnorth PLA rPLA RE-ADD" + ], "OFnHc3D6": [ "Creality/eSUN PLA-CF" ], @@ -3869,15 +3535,22 @@ "OFnejEt4": [ "OrcaFilamentLibrary/FilAr PETG Cian" ], + "OFnfxTvi": [ + "BBL/Bambu PLA Lite" + ], "OFngcE81": [ "LH/LHS TPU Foamy 78A" ], "OFniMuTN": [ + "BBL/Bambu PA6-CF", "OrcaFilamentLibrary/Bambu PA6-CF" ], "OFnmp6rt": [ "Anycubic/Anycubic PLA+" ], + "OFnpX8uh": [ + "BBL/BETA PETG Matte" + ], "OFnyHfcv": [ "Ratrig/Generic ABS BigNozzle" ], @@ -3885,6 +3558,7 @@ "Qidi/QIDI PAHT-GF" ], "OFo2UF2C": [ + "BBL/Generic BVOH", "Creality/Generic BVOH", "Flashforge/Generic BVOH", "OrcaFilamentLibrary/Generic BVOH", @@ -3901,6 +3575,7 @@ ], "OFoYSJKi": [ "Anker/Generic PETG-CF", + "BBL/Generic PETG-CF", "Creality/Generic PETG-CF", "Elegoo/Generic PETG-CF", "Flashforge/Generic PETG-CF", @@ -3918,6 +3593,7 @@ "OrcaFilamentLibrary/AliZ PETG" ], "OFoiVqVM": [ + "BBL/Bambu PLA Basic", "OrcaFilamentLibrary/Bambu PLA Basic" ], "OFojbdhR": [ @@ -3927,6 +3603,7 @@ "Cubicon/Cubicon ABSk" ], "OFovEIbw": [ + "BBL/Bambu PETG HF", "OrcaFilamentLibrary/Bambu PETG HF" ], "OFp4ETDP": [ @@ -3945,6 +3622,7 @@ "Cubicon/Cubicon ABS" ], "OFpPGSKG": [ + "BBL/SUNLU Silk PLA+", "Flashforge/SUNLU Silk PLA+", "OrcaFilamentLibrary/SUNLU Silk PLA+" ], @@ -3952,9 +3630,13 @@ "Peopoly/Peopoly Lancer PETG-C" ], "OFpW4gdi": [ + "BBL/SUNLU PLA Matte", "Flashforge/SUNLU PLA Matte", "OrcaFilamentLibrary/SUNLU PLA Matte" ], + "OFpdjFI3": [ + "BBL/BETA PLA UV Color Change" + ], "OFpu74Qe": [ "Snapmaker/Snapmaker PLA Eco" ], @@ -3968,6 +3650,7 @@ "OrcaFilamentLibrary/FilAr PETG Negro Azabache" ], "OFq9svOz": [ + "BBL/Generic PPS", "Creality/Generic PPS", "Tiertime/Generic PPS" ], @@ -3975,12 +3658,17 @@ "Ratrig/Generic PLA BigNozzle" ], "OFqGRZyH": [ + "BBL/Numakers PLA+", "OrcaFilamentLibrary/Numakers PLA+" ], "OFqINlYj": [ + "BBL/eSUN PLA+", "Creality/eSUN PLA+", "OrcaFilamentLibrary/eSUN PLA+" ], + "OFqTwtXM": [ + "BBL/addnorth PETG rPETG Matte" + ], "OFqcL5UF": [ "Qidi/QIDI Support For PET/PA" ], @@ -3988,6 +3676,7 @@ "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" ], "OFqw2PQA": [ + "BBL/Panchroma CoPE", "OrcaFilamentLibrary/Panchroma CoPE", "Snapmaker/Panchroma CoPE" ], @@ -3998,6 +3687,7 @@ "Anycubic/Anycubic PLA Slik" ], "OFrKLeE3": [ + "BBL/Bambu PLA Metal", "OrcaFilamentLibrary/Bambu PLA Metal" ], "OFrLiqiM": [ @@ -4007,6 +3697,7 @@ "Creality/CR-PLA Carbon" ], "OFrOh600": [ + "BBL/Panchroma PLA Matte", "Creality/Panchroma PLA Matte", "OrcaFilamentLibrary/Panchroma PLA Matte", "Snapmaker/Panchroma PLA Matte" @@ -4020,6 +3711,9 @@ "OFrjacXf": [ "Flashforge/Flashforge PET-CF" ], + "OFrqMlGt": [ + "BBL/BETA PETG" + ], "OFrr67nG": [ "OrcaArena/Arena PC" ], @@ -4041,6 +3735,7 @@ "Volumic/Volumic PP Ultra" ], "OFsFon5l": [ + "BBL/Generic HIPS", "Chuanying/Generic HIPS", "Creality/Generic HIPS", "Flashforge/Generic HIPS", @@ -4048,6 +3743,7 @@ "Tiertime/Generic HIPS" ], "OFsHSVZc": [ + "BBL/Bambu Support W", "OrcaFilamentLibrary/Bambu Support W" ], "OFsP8PKH": [ @@ -4055,6 +3751,7 @@ ], "OFsRDvTM": [ "Anycubic/Panchroma PLA", + "BBL/Panchroma PLA", "OrcaFilamentLibrary/Panchroma PLA", "Snapmaker/Panchroma PLA" ], @@ -4062,6 +3759,7 @@ "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" ], "OFsijjtH": [ + "BBL/Generic PP-GF", "OrcaFilamentLibrary/Generic PP-GF", "Tiertime/Generic PP-GF" ], @@ -4096,9 +3794,18 @@ "OFtRn8X8": [ "OrcaFilamentLibrary/FDplast SBS" ], + "OFtdVZpV": [ + "BBL/addnorth PLA X-PLA" + ], "OFtefokm": [ "OrcaFilamentLibrary/FilAr PLA-mate Blanco" ], + "OFtkLO6q": [ + "BBL/Bambu TPU 90A" + ], + "OFtndTHe": [ + "BBL/BETA PETG-CF" + ], "OFtpXCCv": [ "BBL/COEX ASA PRIME", "OrcaFilamentLibrary/COEX ASA PRIME" @@ -4122,6 +3829,7 @@ "Qidi/QIDI ASA-Aero" ], "OFu1evlr": [ + "BBL/Generic PCTG", "Creality/Generic PCTG", "OrcaFilamentLibrary/Generic PCTG", "Ratrig/Generic PCTG", @@ -4168,6 +3876,9 @@ "OFusbWjj": [ "Creality/Hyper PETG-CF" ], + "OFuvOt0r": [ + "BBL/BETA PLA Basic" + ], "OFuxH0Uz": [ "Volumic/Volumic FLEX93 Ultra" ], @@ -4178,6 +3889,7 @@ "Prusa/Prusament PC Blend" ], "OFvKUnLh": [ + "BBL/Bambu TPU 95A HF", "OrcaFilamentLibrary/Bambu TPU 95A HF" ], "OFvLppPU": [ @@ -4196,6 +3908,9 @@ "OFvaLVML": [ "Flashforge/Flashforge HIPS" ], + "OFvcIGee": [ + "BBL/addnorth TPU Pro Matte 85A" + ], "OFvdZ2bx": [ "Qidi/QIDI WOOD Rapido" ], @@ -4207,9 +3922,11 @@ "Snapmaker/Snapmaker TPU 95A" ], "OFvrXuV7": [ + "BBL/PolyLite ASA", "OrcaFilamentLibrary/PolyLite ASA" ], "OFvxIS9g": [ + "BBL/Fiberon PA12-CF10", "Snapmaker/Fiberon PA12-CF10" ], "OFvxghTE": [ @@ -4218,16 +3935,21 @@ "TwoTrees/Generic HS PLA" ], "OFvyB0Bz": [ + "BBL/PolyLite PLA Galaxy", "Snapmaker/PolyLite PLA Galaxy" ], "OFvzvwCu": [ "OrcaFilamentLibrary/Eolas Prints PLA High Speed" ], + "OFw4WD4T": [ + "BBL/Fiberon PETG-rCF08" + ], "OFwJ0qu2": [], "OFwLBAGf": [ "Qidi/HATCHBOX ABS" ], "OFwPrlCM": [ + "BBL/Bambu PETG Translucent", "OrcaFilamentLibrary/Bambu PETG Translucent" ], "OFwRJ4g0": [ @@ -4238,11 +3960,15 @@ "InfiMech/Other TPU" ], "OFwaYjL6": [ + "BBL/Fiberon PA6-GF", "OrcaFilamentLibrary/Fiberon PA6-GF" ], "OFwbsgWj": [ "re3D/re3D PC" ], + "OFwc74ck": [ + "BBL/BETA PLA Matte" + ], "OFwhLMs4": [ "Snapmaker/Snapmaker PLA SnapSpeed" ], @@ -4269,6 +3995,7 @@ "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" ], "OFxA1p01": [ + "BBL/Overture PLA Pro", "OrcaFilamentLibrary/Overture PLA Pro" ], "OFxDHUX8": [ @@ -4282,6 +4009,7 @@ "OrcaFilamentLibrary/Elegoo ABS" ], "OFxUwUeW": [ + "BBL/SUNLU PLA Marble", "Flashforge/SUNLU PLA Marble", "OrcaFilamentLibrary/SUNLU PLA Marble" ], @@ -4289,9 +4017,14 @@ "Snapmaker/Snapmaker J1 PETG-CF" ], "OFxe4rXr": [ + "BBL/PolyTerra PLA Marble", "Snapmaker/PolyTerra PLA Marble" ], + "OFxqf79Q": [ + "BBL/BETA PETG HF" + ], "OFy02QHU": [ + "BBL/PolyLite PLA Translucent", "Snapmaker/PolyLite PLA Translucent" ], "OFy14TRA": [ @@ -4312,12 +4045,18 @@ "OFyHgT60": [ "OrcaArena/Arena PLA Sparkle" ], + "OFyJjkek": [ + "BBL/addnorth TPU Pro Matte 95A" + ], "OFyLWVF3": [ "Creality/Generic PETG-GF" ], "OFyPG8v2": [ "Snapmaker/Snapmaker Dual PLA Eco" ], + "OFyPTnSk": [ + "BBL/BETA PETG Heat Color Change" + ], "OFyQwdaM": [ "Volumic/Volumic ABS Ultra (Performance)" ], @@ -4356,6 +4095,9 @@ "BBL/AliZ PLA", "OrcaFilamentLibrary/AliZ PLA" ], + "OFz1a1fy": [ + "BBL/BETA PETG Metallic" + ], "OFz5oHgf": [ "MagicMaker/Generic PEEK" ], @@ -4374,6 +4116,12 @@ "OFzY7N3Z": [ "Artillery/Artillery PLA" ], + "OFzaq7Yg": [ + "BBL/BETA TPU 98A" + ], + "OFzk5oAo": [ + "BBL/addnorth ABS rABS" + ], "OFzrUUxc": [], "OFztQ7rO": [ "LH/LHS ABS" @@ -4382,6 +4130,7 @@ "Flashforge/FusRock PET-GF" ], "OFzyIxba": [ + "BBL/Bambu PVA", "OrcaFilamentLibrary/Bambu PVA" ] }, @@ -6977,6 +6726,13 @@ "Soleyin Ultra PLA" ] ], + "OF03RK6r": [ + [ + "BETA", + "PLA", + "BETA PLA Metal" + ] + ], "OF0AquDh": [ [ "FusRock", @@ -6984,6 +6740,13 @@ "FusRock S-Multi" ] ], + "OF0EYBWQ": [ + [ + "addnorth", + "PETG", + "addnorth PETG Flame v0" + ] + ], "OF0FfcAG": [ [ "Anycubic", @@ -7110,6 +6873,13 @@ "Generic PETG Basic" ] ], + "OF1ID4N1": [ + [ + "addnorth", + "PA6", + "addnorth PA6 Addlantis" + ] + ], "OF1N1qMK": [ [ "Polymaker", @@ -7236,6 +7006,13 @@ "Elegoo Rapid TPU 95A" ] ], + "OF342jVN": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Tough+" + ] + ], "OF3F63OE": [ [ "re3D", @@ -7257,6 +7034,13 @@ "CR-Silk" ] ], + "OF3PDEw3": [ + [ + "BETA", + "PLA", + "BETA PLA High Speed" + ] + ], "OF3WQaKK": [ [ "Creality", @@ -7348,6 +7132,20 @@ "Artillery PLA Basic+" ] ], + "OF4PKvem": [ + [ + "BETA", + "PLA", + "BETA PLA Fluorescence" + ] + ], + "OF4QZANi": [ + [ + "BETA", + "TPU", + "BETA TPU Matte" + ] + ], "OF4RvVuU": [ [ "Bambu Lab", @@ -7369,6 +7167,13 @@ "Snapmaker PETG" ] ], + "OF4XTfoI": [ + [ + "BETA", + "PETG", + "BETA PETG Marble" + ] + ], "OF4f8vVp": [ [ "WonderMaker", @@ -7425,6 +7230,13 @@ "Generic ABS HF" ] ], + "OF5B9sUc": [ + [ + "Polymaker", + "PA-GF", + "Fiberon PA6-GF25" + ] + ], "OF5BN24W": [ [ "Flashforge", @@ -7432,6 +7244,13 @@ "Flashforge PPA-GF" ] ], + "OF5BXhHF": [ + [ + "BETA", + "PLA", + "BETA PLA High Temp" + ] + ], "OF5CgdDq": [ [ "Polymaker", @@ -7439,6 +7258,13 @@ "PolyLite PLA" ] ], + "OF5LAnla": [ + [ + "BETA", + "PLA", + "BETA PLA Gradient" + ] + ], "OF5NqBfC": [ [ "Yumi", @@ -7586,6 +7412,13 @@ "Snapmaker J1 PVA" ] ], + "OF6Yn69v": [ + [ + "BETA", + "TPU", + "BETA TPU 90A" + ] + ], "OF6kj4jI": [ [ "iQ Materials", @@ -7600,6 +7433,13 @@ "Flashforge PLA Matte" ] ], + "OF6qw3Wb": [ + [ + "BETA", + "PA-CF", + "BETA PAHT-CF" + ] + ], "OF6rdQ6M": [ [ "Generic", @@ -7614,6 +7454,13 @@ "Hyper L-W PLA" ] ], + "OF71b7qO": [ + [ + "addnorth", + "PLA", + "addnorth PLA E-PLA" + ] + ], "OF72YYTd": [ [ "Snapmaker", @@ -7733,6 +7580,13 @@ "Flashforge HS PLA Burnt Ti" ] ], + "OF8QdQwS": [ + [ + "BETA", + "PLA", + "BETA PLA Silk+" + ] + ], "OF8Tlg47": [ [ "Generic", @@ -7901,6 +7755,20 @@ "Artillery PLA-CF" ] ], + "OFAc0Pr3": [ + [ + "Polymaker", + "PET-CF", + "Fiberon PET-CF17" + ] + ], + "OFAcJkl1": [ + [ + "addnorth", + "PETG-CF", + "addnorth PETG-CF Rigid X" + ] + ], "OFAebKg8": [ [ "Flashforge", @@ -7978,6 +7846,13 @@ "PolyLite PLA Luminous" ] ], + "OFBsbMMF": [ + [ + "addnorth", + "PA-CF", + "addnorth PA-CF Adura X" + ] + ], "OFBw6eEG": [ [ "Overture", @@ -8370,6 +8245,13 @@ "Generic TPU 64D" ] ], + "OFF5o7b2": [ + [ + "BETA", + "PLA", + "BETA PLA Youth" + ] + ], "OFF9OKoY": [ [ "Polymaker", @@ -8433,6 +8315,20 @@ "eSUN PETG-Basic" ] ], + "OFFbSnCD": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Translucent" + ] + ], + "OFFfJ09N": [ + [ + "BETA", + "PETG", + "BETA PETG Glow" + ] + ], "OFFkCLBl": [ [ "Polymaker", @@ -8489,6 +8385,20 @@ "FilAr PLA-mate Gris" ] ], + "OFGVxj2A": [ + [ + "BETA", + "PLA", + "BETA PLA Wood" + ] + ], + "OFGc9l16": [ + [ + "BETA", + "PLA", + "BETA PLA Glow" + ] + ], "OFGcLA5R": [ [ "FilAr", @@ -8573,6 +8483,13 @@ "FilAr PLA Blanco Antartida" ] ], + "OFHHwrd1": [ + [ + "addnorth", + "PETG", + "addnorth PETG Base" + ] + ], "OFHWSM21": [ [ "Polymaker", @@ -8622,6 +8539,13 @@ "SUNLU PLA+ 2.0" ] ], + "OFI2MKy7": [ + [ + "BETA", + "TPU", + "BETA PEBA 90A" + ] + ], "OFI6WZpn": [ [ "Orca Arena", @@ -8636,6 +8560,13 @@ "FilAr PLA-mate Rojo" ] ], + "OFIBbYO5": [ + [ + "Bambu Lab", + "TPU-AMS", + "Bambu TPU for AMS" + ] + ], "OFIE3vOf": [ [ "Anycubic", @@ -8811,6 +8742,13 @@ "Snapmaker Dual ABS" ] ], + "OFJnEaCp": [ + [ + "BETA", + "PLA", + "BETA PLA Transparent" + ] + ], "OFJrvXth": [ [ "Snapmaker", @@ -8839,6 +8777,13 @@ "YUMI PLA Direct Drive" ] ], + "OFK7830e": [ + [ + "BETA", + "TPU", + "BETA TPU 95A" + ] + ], "OFK8XHPn": [ [ "Overture", @@ -8895,6 +8840,13 @@ "FilAr PLA Carpincho" ] ], + "OFKYBAWe": [ + [ + "BETA", + "PLA", + "BETA PLA Marble" + ] + ], "OFKZ9skj": [ [ "FilAr", @@ -8937,6 +8889,13 @@ "Panchroma PLA Marble" ] ], + "OFKyNkQz": [ + [ + "BETA", + "PETG", + "BETA PETG UV Color Change" + ] + ], "OFL9aRjN": [ [ "Snapmaker", @@ -9049,6 +9008,20 @@ "Hyper PETG-GF" ] ], + "OFLjDYxH": [ + [ + "addnorth", + "PLA", + "addnorth PLA X-PLA High Speed" + ] + ], + "OFLqgSuX": [ + [ + "BETA", + "PLA-CF", + "BETA PLA-CF" + ] + ], "OFLzx3J4": [ [ "Creality", @@ -9161,6 +9134,20 @@ "Elas PLA Basic" ] ], + "OFMzRg65": [ + [ + "BETA", + "PLA", + "BETA PLA PRO" + ] + ], + "OFN8QBhu": [ + [ + "addnorth", + "PLA", + "addnorth PLA Wood" + ] + ], "OFN9fefN": [ [ "Cubicon", @@ -9217,6 +9204,13 @@ "Generic High Flow PETG" ] ], + "OFNk8AvA": [ + [ + "BETA", + "PETG", + "BETA PETG Gradient" + ] + ], "OFNk8bxk": [ [ "Bambu Lab", @@ -9252,6 +9246,13 @@ "Generic PETG-CF10" ] ], + "OFO6GMJ3": [ + [ + "addnorth", + "TPU", + "addnorth TPU EasyFlex" + ] + ], "OFOABq7t": [ [ "Aliz", @@ -9287,6 +9288,13 @@ "Snapmaker PLA Full Spectrum" ] ], + "OFOQCfVa": [ + [ + "addnorth", + "PLA", + "addnorth PLA Premium Silk" + ] + ], "OFObG16Q": [ [ "InfiMech", @@ -9448,6 +9456,13 @@ "QIDI PETG Tough" ] ], + "OFQ5TxZ2": [ + [ + "addnorth", + "PA", + "addnorth PVDF Adamant S1" + ] + ], "OFQEGL7z": [ [ "FlyingBear", @@ -9546,6 +9561,13 @@ "QIDI TPU 95A-HF" ] ], + "OFRFhdqy": [ + [ + "addnorth", + "PLA", + "addnorth PLA Textura" + ] + ], "OFRJ325z": [ [ "LH Stinger", @@ -9665,6 +9687,20 @@ "Arena PLA Basic" ] ], + "OFSfm8iP": [ + [ + "BETA", + "PLA", + "BETA PLA Heat Color Change" + ] + ], + "OFSiCZP3": [ + [ + "BETA", + "PETG-CF", + "BETA PETG-GF" + ] + ], "OFSqIcJC": [ [ "Flashforge", @@ -9672,6 +9708,13 @@ "Flashforge TPU 95A" ] ], + "OFSw6Mor": [ + [ + "addnorth", + "PA", + "addnorth PA Adura FDA" + ] + ], "OFSwbBWS": [ [ "DREMC", @@ -9693,6 +9736,13 @@ "Bambu PLA Impact" ] ], + "OFTHDCqA": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Pure" + ] + ], "OFTOPcx0": [ [ "Eolas Prints", @@ -9784,6 +9834,13 @@ "re3D PC" ] ], + "OFU5JPDy": [ + [ + "addnorth", + "PETG", + "addnorth PETG PRO Matte" + ] + ], "OFU7CKZt": [ [ "Volumic", @@ -9840,6 +9897,13 @@ "eSUN ASA+" ] ], + "OFUtiVRn": [ + [ + "addnorth", + "PETG", + "addnorth PETG ESD" + ] + ], "OFUyDDNv": [ [ "Elegoo", @@ -9896,6 +9960,13 @@ "Bambu TPU 95A" ] ], + "OFVDWuxl": [ + [ + "addnorth", + "PLA", + "addnorth PLA HT-PLA PRO Matte" + ] + ], "OFVHMFJX": [ [ "QIDI", @@ -9931,6 +10002,13 @@ "QIDI PLA Rapido Silk" ] ], + "OFW8M3CY": [ + [ + "BETA", + "PLA", + "BETA PLA Chameleon" + ] + ], "OFW8lqnb": [ [ "Snapmaker", @@ -9945,6 +10023,13 @@ "QIDI UltraPA" ] ], + "OFWK0Y9A": [ + [ + "addnorth", + "PA", + "addnorth PA Adura" + ] + ], "OFWRITFw": [ [ "Prusa Polymers", @@ -10197,6 +10282,13 @@ "PolyLite Dual PLA" ] ], + "OFYGrfHY": [ + [ + "BETA", + "PETG", + "BETA PETG Fluorescence" + ] + ], "OFYPdQJh": [ [ "Generic", @@ -10267,6 +10359,20 @@ "FilAr PLA Rosa Flamenco" ] ], + "OFZGrQTU": [ + [ + "addnorth", + "PETG", + "addnorth PETG Economy" + ] + ], + "OFZJft47": [ + [ + "addnorth", + "PLA", + "addnorth PLA Economy" + ] + ], "OFZLtWYs": [ [ "QIDI", @@ -10288,6 +10394,13 @@ "Snapmaker Dual PLA" ] ], + "OFZqZMuv": [ + [ + "BETA", + "ASA", + "BETA ASA" + ] + ], "OFZr862X": [ [ "Generic", @@ -10470,6 +10583,13 @@ "Snapmaker Dual TPU High-Flow" ] ], + "OFcBl0nJ": [ + [ + "Polymaker", + "PA-CF", + "Fiberon PA612-CF15" + ] + ], "OFcJDtTx": [ [ "Artillery", @@ -10498,6 +10618,13 @@ "Overture Air PLA" ] ], + "OFcnWTJB": [ + [ + "BETA", + "PLA", + "BETA PLA Glitter" + ] + ], "OFcogyWl": [ [ "WonderMaker", @@ -10505,6 +10632,13 @@ "WonderMaker PLA Metal" ] ], + "OFcpa50Z": [ + [ + "addnorth", + "PLA-CF", + "addnorth PLA-CF Carbon Fiber" + ] + ], "OFctg8r1": [ [ "CoLiDo", @@ -10652,6 +10786,13 @@ "QIDI ABS Rapido Metal" ] ], + "OFeF4UNh": [ + [ + "BETA", + "PLA", + "BETA PLA Silk" + ] + ], "OFeIyhUx": [ [ "Anycubic", @@ -11016,6 +11157,13 @@ "GreenGate3D PETG" ] ], + "OFhN09f0": [ + [ + "addnorth", + "PC", + "addnorth PC BLend HT LCF" + ] + ], "OFhO5aEJ": [ [ "RatRig", @@ -11289,6 +11437,13 @@ "Fiberthree PACF Pro P1" ] ], + "OFjUXn67": [ + [ + "BETA", + "ABS", + "BETA ABS" + ] + ], "OFjVOWfJ": [ [ "Anycubic", @@ -11338,6 +11493,13 @@ "Qidi PLA-CF" ] ], + "OFjogeYN": [ + [ + "BETA", + "PETG", + "BETA PETG Glitter" + ] + ], "OFjorDcx": [ [ "FDplast", @@ -11394,6 +11556,13 @@ "FilAr PLA Verde Pixel" ] ], + "OFkHbjUv": [ + [ + "BETA", + "PLA", + "BETA PLA Metallic" + ] + ], "OFkOviHk": [ [ "Polymaker", @@ -11506,6 +11675,13 @@ "Eolas Prints ASA" ] ], + "OFlfuj2k": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 85A" + ] + ], "OFlgMgNM": [ [ "Flashforge", @@ -11520,6 +11696,13 @@ "Generic PETG PRO" ] ], + "OFlmxlDG": [ + [ + "BETA", + "HIPS", + "BETA HIPS" + ] + ], "OFln72PT": [ [ "Elegoo", @@ -11611,6 +11794,13 @@ "Eryone PLA" ] ], + "OFmN2lvw": [ + [ + "Generic", + "TPU-AMS", + "Generic TPU for AMS" + ] + ], "OFmY0l6t": [ [ "Generic", @@ -11667,6 +11857,13 @@ "Generic PLA High Speed" ] ], + "OFmt513L": [ + [ + "BETA", + "PETG", + "BETA PETG Transparent" + ] + ], "OFmveLWz": [ [ "Elegoo", @@ -11695,6 +11892,13 @@ "QIDI PA12-CF" ] ], + "OFnBvPhb": [ + [ + "addnorth", + "PLA", + "addnorth PLA rPLA RE-ADD" + ] + ], "OFnHc3D6": [ [ "eSUN", @@ -11765,6 +11969,13 @@ "FilAr PETG Cian" ] ], + "OFnfxTvi": [ + [ + "Bambu Lab", + "PLA", + "Bambu PLA Lite" + ] + ], "OFngcE81": [ [ "LH Stinger", @@ -11786,6 +11997,13 @@ "Anycubic PLA+" ] ], + "OFnpX8uh": [ + [ + "BETA", + "PETG", + "BETA PETG Matte" + ] + ], "OFnyHfcv": [ [ "Generic", @@ -11933,6 +12151,13 @@ "SUNLU PLA Matte" ] ], + "OFpdjFI3": [ + [ + "BETA", + "PLA", + "BETA PLA UV Color Change" + ] + ], "OFpu74Qe": [ [ "Snapmaker", @@ -11989,6 +12214,13 @@ "eSUN PLA+" ] ], + "OFqTwtXM": [ + [ + "addnorth", + "PETG", + "addnorth PETG rPETG Matte" + ] + ], "OFqcL5UF": [ [ "QIDI", @@ -12073,6 +12305,13 @@ "Flashforge PET-CF" ] ], + "OFrqMlGt": [ + [ + "BETA", + "PETG", + "BETA PETG" + ] + ], "OFrr67nG": [ [ "Orca Arena", @@ -12234,6 +12473,13 @@ "FDplast SBS" ] ], + "OFtdVZpV": [ + [ + "addnorth", + "PLA", + "addnorth PLA X-PLA" + ] + ], "OFtefokm": [ [ "FilAr", @@ -12241,6 +12487,20 @@ "FilAr PLA-mate Blanco" ] ], + "OFtkLO6q": [ + [ + "Bambu Lab", + "TPU", + "Bambu TPU 90A" + ] + ], + "OFtndTHe": [ + [ + "BETA", + "PETG-CF", + "BETA PETG-CF" + ] + ], "OFtpXCCv": [ [ "COEX 3D", @@ -12388,6 +12648,13 @@ "Hyper PETG-CF" ] ], + "OFuvOt0r": [ + [ + "BETA", + "PLA", + "BETA PLA Basic" + ] + ], "OFuxH0Uz": [ [ "Volumic", @@ -12451,6 +12718,13 @@ "Flashforge HIPS" ] ], + "OFvcIGee": [ + [ + "addnorth", + "TPU", + "addnorth TPU Pro Matte 85A" + ] + ], "OFvdZ2bx": [ [ "QIDI", @@ -12507,6 +12781,13 @@ "Eolas Prints PLA High Speed" ] ], + "OFw4WD4T": [ + [ + "Polymaker", + "PETG-CF", + "Fiberon PETG-rCF08" + ] + ], "OFwJ0qu2": [ [ "DREMC", @@ -12556,6 +12837,13 @@ "re3D PC" ] ], + "OFwc74ck": [ + [ + "BETA", + "PLA", + "BETA PLA Matte" + ] + ], "OFwhLMs4": [ [ "Snapmaker", @@ -12661,6 +12949,13 @@ "PolyTerra PLA Marble" ] ], + "OFxqf79Q": [ + [ + "BETA", + "PETG", + "BETA PETG HF" + ] + ], "OFy02QHU": [ [ "Polymaker", @@ -12710,6 +13005,13 @@ "Arena PLA Sparkle" ] ], + "OFyJjkek": [ + [ + "addnorth", + "TPU", + "addnorth TPU Pro Matte 95A" + ] + ], "OFyLWVF3": [ [ "Generic", @@ -12724,6 +13026,13 @@ "Snapmaker Dual PLA Eco" ] ], + "OFyPTnSk": [ + [ + "BETA", + "PETG", + "BETA PETG Heat Color Change" + ] + ], "OFyQwdaM": [ [ "Volumic", @@ -12808,6 +13117,13 @@ "AliZ PLA" ] ], + "OFz1a1fy": [ + [ + "BETA", + "PETG", + "BETA PETG Metallic" + ] + ], "OFz5oHgf": [ [ "Generic", @@ -12850,6 +13166,20 @@ "Artillery PLA" ] ], + "OFzaq7Yg": [ + [ + "BETA", + "TPU", + "BETA TPU 98A" + ] + ], + "OFzk5oAo": [ + [ + "addnorth", + "ABS", + "addnorth ABS rABS" + ] + ], "OFzrUUxc": [ [ "DREMC", From df30e224272d026f5e7ce361ce4ac7bd7c55564e Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Fri, 4 Sep 2026 15:46:03 +0800 Subject: [PATCH 133/164] [CLI]: CLI Crash Guards (#15477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> Part 1 of 3 of the CLI-mode bug sweep, split out of #15452 per review feedback there. This PR contains the crash fixes. ## Fixes - **`--outputdir`/`--datadir` with a missing parent directory aborted** via unguarded `create_directory`. Directories are now created recursively, with a graceful early exit and a specific error message if creation fails. - **`--slice` + `--export-3mf` segfaulted on a from-scratch slice**: `ConfigOptionVector::get_at()` on an empty vector is `.front()` of an empty vector (UB). Guards added for `filament_color`/`filament_id` at the CLI call site, and inside `DynamicPrintConfig::get_filament_type` for `filament_type`/`filament_is_support`/`filament_id`. Only *empty* vectors are treated as missing — the existing clamp-to-front behavior for merely out-of-range indices is preserved, so GUI callers are unaffected. - **OOB heap write from stale `filament_self_index` on `--load-filaments`** (fixes #14181): a 3MF carrying more `filament_self_index` entries than loaded filaments wrote past the end of `old_variant_counts`. The guard validates both bounds — entries `> filament_count` *and* non-positive entries (`< 1`), since a single `0` in an otherwise-valid array indexes `old_variant_counts[-1]`. - **Wrong printable-area check** for non-rectangular beds: use the printable area's bounding box instead of a naive vertex calculation (fixes #15363). - **`nozzle_height` and `align_center` were not read into the arrange config** in CLI mode. # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. --> - Repro'd each crash on CLI before the fix; all resolved after. - `tests/libslic3r` suite passes; full binary builds clean on Linux. - Added `get_filament_type` unit tests <!-- > A guide for users on how to download the artifacts from this PR. --> [How to Download Pull Requests Artifacts for Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts) --- src/OrcaSlicer.cpp | 82 +++++++++++++++++++++++++++------ src/libslic3r/PrintConfig.cpp | 10 +++- src/libslic3r/utils.cpp | 6 ++- tests/libslic3r/test_config.cpp | 64 ++++++++++++++++++++----- 4 files changed, 134 insertions(+), 28 deletions(-) diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index ab26a3f7c8..3c45331c20 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -1793,8 +1793,9 @@ int CLI::run(int argc, char **argv) old_printable_area = config.option<ConfigOptionPoints>("printable_area", true)->values; old_exclude_area = config.option<ConfigOptionPoints>("bed_exclude_area", true)->values; if (old_printable_area.size() >= 4) { - old_printable_width = (int)(old_printable_area[2].x() - old_printable_area[0].x()); - old_printable_depth = (int)(old_printable_area[2].y() - old_printable_area[0].y()); + BoundingBoxf old_printable_bbox(old_printable_area); + old_printable_width = static_cast<int>(old_printable_bbox.size().x()); + old_printable_depth = static_cast<int>(old_printable_bbox.size().y()); } old_printable_height = (int)(config.opt_float("printable_height")); @@ -2343,8 +2344,9 @@ int CLI::run(int argc, char **argv) Pointfs orig_printable_area; orig_printable_area = config.option<ConfigOptionPoints>("printable_area", true)->values; if (orig_printable_area.size() >= 4) { - orig_printable_width = (int)(orig_printable_area[2].x() - orig_printable_area[0].x()); - orig_printable_depth = (int)(orig_printable_area[2].y() - orig_printable_area[0].y()); + BoundingBoxf orig_printable_bbox(orig_printable_area); + orig_printable_width = static_cast<int>(orig_printable_bbox.size().x()); + orig_printable_depth = static_cast<int>(orig_printable_bbox.size().y()); } orig_printable_height = (int)(config.opt_float("printable_height")); BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(":%1%, check printable size: old_printable_width=%2%, orig_printable_width=%3%, old_printable_depth=%4%, orig_printable_depth=%5%, old_printable_height=%6%, orig_printable_height=%7%") @@ -3138,7 +3140,25 @@ int CLI::run(int argc, char **argv) std::vector<int> old_variant_counts(filament_count, 1), new_variant_counts; ConfigOptionInts* filament_self_index_opt = m_print_config.option<ConfigOptionInts>("filament_self_index"); - if (!filament_self_index_opt) { + bool need_regenerate_self_index = !filament_self_index_opt; + if (filament_self_index_opt) { + // a filament_self_index carried over from a stale project can disagree with the + // current filament_count. old_start_indice/old_variant_counts below are sized to + // filament_count and walked with 1-based group indices, so an index above + // filament_count overruns old_start_indice[++k], and a non-positive first index + // writes old_variant_counts[-1] - both heap corruption. + int max_self_index = 0, min_self_index = 1; + for (int v : filament_self_index_opt->values) { + max_self_index = std::max(max_self_index, v); + min_self_index = std::min(min_self_index, v); + } + if (max_self_index > filament_count || min_self_index < 1) { + BOOST_LOG_TRIVIAL(warning) << boost::format("filament_self_index range [%1%, %2%] is invalid for filament_count %3%, regenerating") + % min_self_index % max_self_index % filament_count; + need_regenerate_self_index = true; + } + } + if (need_regenerate_self_index) { filament_self_index_opt = m_print_config.option<ConfigOptionInts>("filament_self_index", true); std::vector<int>& filament_self_indice = filament_self_index_opt->values; filament_self_indice.resize(filament_count); @@ -3732,6 +3752,8 @@ int CLI::run(int argc, char **argv) double height_to_lid = m_print_config.opt_float("extruder_clearance_height_to_lid"); double height_to_rod = m_print_config.opt_float("extruder_clearance_height_to_rod"); double clearance_radius = m_print_config.opt_float("extruder_clearance_radius"); + double nozzle_height = m_print_config.opt_float("nozzle_height"); + Vec2d align_center = m_print_config.option<ConfigOptionPoint>("best_object_pos")->value; int shared_printable_width = 0, shared_printable_depth = 0, shared_printable_height = 0, shared_center_x = 0, shared_center_y = 0; //double plate_stride; std::string bed_texture; @@ -3742,8 +3764,11 @@ int CLI::run(int argc, char **argv) if (m_print_config.opt<ConfigOptionFloatsNullable>("extruder_printable_height")) { current_extruder_print_heights = m_print_config.opt<ConfigOptionFloatsNullable>("extruder_printable_height")->values; } - current_printable_width = current_printable_area[2].x() - current_printable_area[0].x(); - current_printable_depth = current_printable_area[2].y() - current_printable_area[0].y(); + { + BoundingBoxf current_printable_bbox(current_printable_area); + current_printable_width = static_cast<int>(current_printable_bbox.size().x()); + current_printable_depth = static_cast<int>(current_printable_bbox.size().y()); + } current_printable_height = print_height; if (old_printable_width == 0) old_printable_width = current_printable_width; @@ -3944,6 +3969,11 @@ int CLI::run(int argc, char **argv) ConfigOptionFloats *wipe_x_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_x")); ConfigOptionFloats *wipe_y_option = dynamic_cast<ConfigOptionFloats *>(print_config.option("wipe_tower_y")); + // get_at() silently clamps an out-of-range index to entry 0 - make the reuse visible + if (static_cast<size_t>(plate_index) >= wipe_x_option->values.size() || static_cast<size_t>(plate_index) >= wipe_y_option->values.size()) { + BOOST_LOG_TRIVIAL(warning) << boost::format("plate %1%: wipe_tower_x/y only has %2%/%3% entries, reusing entry 0's position") + %(plate_index+1) %wipe_x_option->values.size() %wipe_y_option->values.size(); + } plate_obj_size_info.wipe_x = wipe_x_option->get_at(plate_index); plate_obj_size_info.wipe_y = wipe_y_option->get_at(plate_index); @@ -4139,8 +4169,9 @@ int CLI::run(int argc, char **argv) temp_extruder_print_heights = config.option<ConfigOptionFloatsNullable>("extruder_printable_height", true)->values; if (temp_printable_area.size() >= 4) { - printer_plate.printable_width = (int)(temp_printable_area[2].x() - temp_printable_area[0].x()); - printer_plate.printable_depth = (int)(temp_printable_area[2].y() - temp_printable_area[0].y()); + BoundingBoxf temp_printable_bbox(temp_printable_area); + printer_plate.printable_width = static_cast<int>(temp_printable_bbox.size().x()); + printer_plate.printable_depth = static_cast<int>(temp_printable_bbox.size().y()); printer_plate.printable_height = (int)(config.opt_float("printable_height")); } if (temp_exclude_area.size() >= 4) { @@ -4788,6 +4819,8 @@ int CLI::run(int argc, char **argv) arrange_cfg.clearance_height_to_rod = height_to_rod; arrange_cfg.clearance_height_to_lid = height_to_lid; arrange_cfg.clearance_radius = clearance_radius; + arrange_cfg.nozzle_height = nozzle_height; + arrange_cfg.align_center = align_center; arrange_cfg.printable_height = print_height; arrange_cfg.min_obj_distance = 0; if (arrange_cfg.is_seq_print) { @@ -5238,6 +5271,8 @@ int CLI::run(int argc, char **argv) arrange_cfg.clearance_height_to_rod = height_to_rod; arrange_cfg.clearance_height_to_lid = height_to_lid; arrange_cfg.clearance_radius = clearance_radius; + arrange_cfg.nozzle_height = nozzle_height; + arrange_cfg.align_center = align_center; arrange_cfg.printable_height = print_height; arrange_cfg.min_obj_distance = 0; if (arrange_cfg.is_seq_print) { @@ -6497,7 +6532,6 @@ int CLI::run(int argc, char **argv) bool need_create_thumbnail_group = false, need_create_no_light_group = false, need_create_top_group = false; // get type and color for platedata - auto* filament_types = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_type")); const ConfigOptionStrings* filament_color = dynamic_cast<const ConfigOptionStrings *>(m_print_config.option("filament_colour")); auto* filament_id = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_ids")); const ConfigOptionFloats* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("nozzle_diameter")); @@ -6516,10 +6550,11 @@ int CLI::run(int argc, char **argv) plate_data->nozzle_diameters = nozzle_diameter_str; for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) { + // get_at() on an empty vector option is UB - these can be unpopulated on a from-scratch slice std::string display_filament_type; it->type = m_print_config.get_filament_type(display_filament_type, it->id); - it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF"; - it->filament_id = filament_id?filament_id->get_at(it->id):""; + it->color = (filament_color && !filament_color->values.empty()) ? filament_color->get_at(it->id) : "#FFFFFF"; + it->filament_id = (filament_id && !filament_id->values.empty()) ? filament_id->get_at(it->id) : ""; } if (!plate_data->plate_thumbnail.is_valid()) { @@ -7311,6 +7346,10 @@ bool CLI::setup(int argc, char **argv) m_config.option(optdef.first, true); set_data_dir(m_config.opt_string("datadir")); + if (!data_dir().empty() && !boost::filesystem::exists(data_dir())) { + boost::nowide::cerr << "Could not create data directory: " << data_dir() << std::endl; + return false; + } //FIXME Validating at this stage most likely does not make sense, as the config is not fully initialized yet. if (!validity.empty()) { @@ -7423,6 +7462,10 @@ bool CLI::export_models(IO::ExportFormat format, std::string path_dir) for (ModelObject* model_object : model.objects) { const std::string path = this->output_filepath(*model_object, index++, format, path_dir); + if (path.empty()) { + boost::nowide::cerr << "Could not create output directory for STL export" << std::endl; + return false; + } success = Slic3r::store_stl(path.c_str(), model_object, true); if (success) BOOST_LOG_TRIVIAL(info) << "Model successfully exported to " << path << std::endl; @@ -7548,8 +7591,19 @@ std::string CLI::output_filepath(const ModelObject &object, unsigned int index, output_path = subdir + "/"+file_name; boost::filesystem::path subdir_path(subdir); - if (!boost::filesystem::exists(subdir_path)) - boost::filesystem::create_directory(subdir_path); + if (!boost::filesystem::exists(subdir_path)) { + try { + boost::filesystem::create_directories(subdir_path); + } catch (const boost::filesystem::filesystem_error &ex) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": failed to create output directory " << subdir_path.string() << ": " << ex.what(); + } + if (!boost::filesystem::exists(subdir_path)) { + // Directory creation failed and won't succeed on a retry (same path, same cause) - + // signal failure now instead of letting every object in the model repeat the same + // doomed attempt and fail with a less specific "export failed" error later. + return std::string(); + } + } return output_path; } diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 7d93341b98..100089fd24 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -9865,7 +9865,15 @@ std::string DynamicPrintConfig::get_filament_type(std::string &displayed_filamen auto* filament_type = dynamic_cast<const ConfigOptionStrings*>(this->option("filament_type")); auto* filament_is_support = dynamic_cast<const ConfigOptionBools*>(this->option("filament_is_support")); - if (!filament_type) + // get_at() on an empty vector option is undefined behavior (.front() of an empty vector), + // and e.g. filament_id is never populated on a CLI from-scratch slice - treat an empty + // option the same as a missing one. + if (filament_id && filament_id->values.empty()) + filament_id = nullptr; + if (filament_is_support && filament_is_support->values.empty()) + filament_is_support = nullptr; + + if (!filament_type || filament_type->values.empty()) return ""; if (!filament_is_support) { diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp index 58ec8318a6..5f4baac951 100644 --- a/src/libslic3r/utils.cpp +++ b/src/libslic3r/utils.cpp @@ -310,7 +310,11 @@ void set_data_dir(const std::string &dir) { g_data_dir = dir; if (!g_data_dir.empty() && !boost::filesystem::exists(g_data_dir)) { - boost::filesystem::create_directory(g_data_dir); + try { + boost::filesystem::create_directories(g_data_dir); + } catch (const boost::filesystem::filesystem_error &ex) { + BOOST_LOG_TRIVIAL(error) << "set_data_dir: failed to create data directory " << g_data_dir << ": " << ex.what(); + } } } diff --git a/tests/libslic3r/test_config.cpp b/tests/libslic3r/test_config.cpp index 2627c3cda0..bd147b5881 100644 --- a/tests/libslic3r/test_config.cpp +++ b/tests/libslic3r/test_config.cpp @@ -856,19 +856,19 @@ TEST_CASE("read_cli rejects an invalid boolean value", "[Config]") { TEST_CASE("read_cli accepts the common spellings of a boolean value", "[Config]") { const auto [text, expected] = GENERATE(table<const char*, bool>({ - {"--reduce-crossing-wall=1", true }, - {"--reduce-crossing-wall=true", true }, - {"--reduce-crossing-wall=Yes", true }, - {"--reduce-crossing-wall=on", true }, - {"--reduce-crossing-wall=enabled", true }, - {"--reduce-crossing-wall=TRUE", true }, - {"--reduce-crossing-wall=oN", true }, - {"--reduce-crossing-wall=0", false}, - {"--reduce-crossing-wall=false", false}, - {"--reduce-crossing-wall=No", false}, - {"--reduce-crossing-wall=off", false}, + {"--reduce-crossing-wall=1", true}, + {"--reduce-crossing-wall=true", true}, + {"--reduce-crossing-wall=Yes", true}, + {"--reduce-crossing-wall=on", true}, + {"--reduce-crossing-wall=enabled", true}, + {"--reduce-crossing-wall=TRUE", true}, + {"--reduce-crossing-wall=oN", true}, + {"--reduce-crossing-wall=0", false}, + {"--reduce-crossing-wall=false", false}, + {"--reduce-crossing-wall=No", false}, + {"--reduce-crossing-wall=off", false}, {"--reduce-crossing-wall=disabled", false}, - {"--reduce-crossing-wall=FALSE", false}, + {"--reduce-crossing-wall=FALSE", false}, {"--reduce-crossing-wall=DiSaBlEd", false}, })); @@ -1051,3 +1051,43 @@ TEST_CASE("read_cli accepts nil entries for a nullable vector option", "[Config] REQUIRE_FALSE(opt->is_nil(1)); REQUIRE_THAT(opt->values[1], Catch::Matchers::WithinAbs(2.5, 1e-9)); } + +// get_at() returns values.front() for an out-of-range index, so calling it on an empty vector +// option is UB. filament_id and filament_is_support are unpopulated on a CLI from-scratch slice. +TEST_CASE("get_filament_type treats empty vector options as absent", "[Config][Filament]") +{ + DynamicPrintConfig config; + std::string displayed; + + SECTION("an empty filament_type yields no type at all") + { + config.set_key_value("filament_type", new ConfigOptionStrings()); + REQUIRE(config.get_filament_type(displayed, 0) == ""); + } + + SECTION("an empty filament_is_support falls back to the plain filament type") + { + config.set_key_value("filament_type", new ConfigOptionStrings({"PETG"})); + config.set_key_value("filament_is_support", new ConfigOptionBools()); + REQUIRE(config.get_filament_type(displayed, 0) == "PETG"); + REQUIRE(displayed == "PETG"); + } + + SECTION("a support filament with an empty filament_id resolves from the type alone") + { + config.set_key_value("filament_type", new ConfigOptionStrings({"PLA"})); + config.set_key_value("filament_is_support", new ConfigOptionBools({true})); + config.set_key_value("filament_id", new ConfigOptionStrings()); + REQUIRE(config.get_filament_type(displayed, 0) == "PLA-S"); + REQUIRE(displayed == "Sup.PLA"); + } + + SECTION("a populated filament_id still selects the support type by id") + { + config.set_key_value("filament_type", new ConfigOptionStrings({"PETG"})); + config.set_key_value("filament_is_support", new ConfigOptionBools({true})); + config.set_key_value("filament_id", new ConfigOptionStrings({"GFS00"})); + REQUIRE(config.get_filament_type(displayed, 0) == "PLA-S"); + REQUIRE(displayed == "Sup.PLA"); + } +} From 1170b048e81a04b5a9700d2f3d3e9d5e41b06577 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Fri, 4 Sep 2026 23:24:59 +0800 Subject: [PATCH 134/164] [CLI]: Fix Plate Config Reading and BuildVolume Height Checks (#15479) * Fix incorrect early exit for CLI mode no-support preventing parameters from being read * Use PartPlate's m_height to allow CLI to perform proper BuildVolume check * Add safeguard against extruder_pintable_heights and extruder_areas vector size mismatch * Preserve printable_height precision in PartPlate/PartPlateList * Fixed multiple BuildVolume warning issue, and keep check_outside diff minimal --- src/OrcaSlicer.cpp | 3 +- src/libslic3r/BuildVolume.cpp | 10 ++++-- src/slic3r/GUI/PartPlate.cpp | 53 ++++++++++++++-------------- src/slic3r/GUI/PartPlate.hpp | 14 ++++---- src/slic3r/GUI/Plater.cpp | 3 +- tests/libslic3r/CMakeLists.txt | 1 + tests/libslic3r/test_buildvolume.cpp | 40 +++++++++++++++++++++ 7 files changed, 85 insertions(+), 39 deletions(-) create mode 100644 tests/libslic3r/test_buildvolume.cpp diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 3c45331c20..dcd5ec0082 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -5199,7 +5199,8 @@ int CLI::run(int argc, char **argv) Vec3d wipe_tower_size = cur_plate->estimate_wipe_tower_size(m_print_config, w, v, new_extruder_count, filaments_cnt, false, enable_wrapping); Vec3d plate_origin = cur_plate->get_origin(); - int plate_width, plate_depth, plate_height; + int plate_width, plate_depth; + double plate_height; partplate_list.get_plate_size(plate_width, plate_depth, plate_height); float depth = wipe_tower_size(1); float margin = 15.f, wp_brim_width = 0.f; diff --git a/src/libslic3r/BuildVolume.cpp b/src/libslic3r/BuildVolume.cpp index 1ac200d9c8..15e6668bae 100644 --- a/src/libslic3r/BuildVolume.cpp +++ b/src/libslic3r/BuildVolume.cpp @@ -13,7 +13,6 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double : m_bed_shape(printable_area), m_max_print_height(printable_height), m_extruder_shapes(extruder_areas), m_extruder_printable_height(extruder_printable_heights) { assert(printable_height >= 0); - //assert(extruder_printable_heights.size() == extruder_areas.size()); m_polygon = Polygon::new_scale(printable_area); assert(m_polygon.is_counter_clockwise()); @@ -86,6 +85,9 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double m_shared_volume.data[2] = m_bboxf.max.x(); m_shared_volume.data[3] = m_bboxf.max.y(); m_shared_volume.zs[1] = m_bboxf.max.z(); + if (extruder_printable_heights.size() < m_extruder_shapes.size()) + BOOST_LOG_TRIVIAL(warning) << boost::format("extruder_printable_height has only %1% entries but extruder_printable_area has %2%, falling back to the bed printable_height for the missing ones") + % extruder_printable_heights.size() % m_extruder_shapes.size(); for (unsigned int index = 0; index < m_extruder_shapes.size(); index++) { std::vector<Vec2d>& extruder_shape = m_extruder_shapes[index]; @@ -100,7 +102,9 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double return; } - if ((extruder_shape == printable_area)&&(extruder_printable_heights[index] == printable_height)) { + const double extruder_height = index < extruder_printable_heights.size() ? extruder_printable_heights[index] : printable_height; + + if ((extruder_shape == printable_area)&&(extruder_height == printable_height)) { extruder_volume.same_with_bed = true; extruder_volume.type = m_type; extruder_volume.bbox = m_bbox; @@ -113,7 +117,7 @@ BuildVolume::BuildVolume(const std::vector<Vec2d> &printable_area, const double double poly_area = poly.area(); extruder_volume.bbox = get_extents(poly); BoundingBoxf temp_bboxf = get_extents(extruder_shape); - extruder_volume.bboxf = BoundingBoxf3{ to_3d(temp_bboxf.min, 0.), to_3d(temp_bboxf.max, extruder_printable_heights[index]) }; + extruder_volume.bboxf = BoundingBoxf3{ to_3d(temp_bboxf.min, 0.), to_3d(temp_bboxf.max, extruder_height) }; if (extruder_shape.size() >= 4 && std::abs((poly_area - double(extruder_volume.bbox.size().x()) * double(extruder_volume.bbox.size().y()))) < sqr(SCALED_EPSILON)) { diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 59a857816e..849aa4e31a 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -157,7 +157,7 @@ PartPlate::PartPlate() init(); } -PartPlate::PartPlate(PartPlateList *partplate_list, Vec3d origin, int width, int depth, int height, Plater* platerObj, Model* modelObj, bool printable, PrinterTechnology tech) +PartPlate::PartPlate(PartPlateList *partplate_list, Vec3d origin, int width, int depth, double height, Plater* platerObj, Model* modelObj, bool printable, PrinterTechnology tech) :m_partplate_list(partplate_list), m_plater(platerObj), m_model(modelObj), printer_technology(tech), m_origin(origin), m_width(width), m_depth(depth), m_height(height), m_printable(printable) { init(); @@ -1757,26 +1757,25 @@ std::vector<int> PartPlate::get_extruders_under_cli(bool conside_custom_gcode, D else obj_support = glb_support; - if (!obj_support) - continue; + if (obj_support) { + int obj_support_intf_extr = 0; + const ConfigOption* support_intf_extr_opt = object->config.option("support_interface_filament"); + if (support_intf_extr_opt != nullptr) + obj_support_intf_extr = support_intf_extr_opt->getInt(); + if (obj_support_intf_extr != 0) + plate_extruders.push_back(obj_support_intf_extr); + else if (glb_support_intf_extr != 0) + plate_extruders.push_back(glb_support_intf_extr); - int obj_support_intf_extr = 0; - const ConfigOption* support_intf_extr_opt = object->config.option("support_interface_filament"); - if (support_intf_extr_opt != nullptr) - obj_support_intf_extr = support_intf_extr_opt->getInt(); - if (obj_support_intf_extr != 0) - plate_extruders.push_back(obj_support_intf_extr); - else if (glb_support_intf_extr != 0) - plate_extruders.push_back(glb_support_intf_extr); - - int obj_support_extr = 0; - const ConfigOption* support_extr_opt = object->config.option("support_filament"); - if (support_extr_opt != nullptr) - obj_support_extr = support_extr_opt->getInt(); - if (obj_support_extr != 0) - plate_extruders.push_back(obj_support_extr); - else if (glb_support_extr != 0) - plate_extruders.push_back(glb_support_extr); + int obj_support_extr = 0; + const ConfigOption* support_extr_opt = object->config.option("support_filament"); + if (support_extr_opt != nullptr) + obj_support_extr = support_extr_opt->getInt(); + if (obj_support_extr != 0) + plate_extruders.push_back(obj_support_extr); + else if (glb_support_extr != 0) + plate_extruders.push_back(glb_support_extr); + } int obj_outer_wall_extr = 0; if (const ConfigOption* wall_opt = object->config.option("outer_wall_filament_id"); wall_opt != nullptr) @@ -2473,7 +2472,7 @@ void PartPlate::clear(bool clear_sliced_result) /* size and position related functions*/ //set position and size -void PartPlate::set_pos_and_size(Vec3d& origin, int width, int depth, int height, bool with_instance_move, bool do_clear) +void PartPlate::set_pos_and_size(Vec3d& origin, int width, int depth, double height, bool with_instance_move, bool do_clear) { bool size_changed = false; //size changed means the machine changed bool pos_changed = false; @@ -2772,10 +2771,10 @@ bool PartPlate::check_outside(int obj_id, int instance_id, BoundingBoxf3* boundi if (instance_box.min.z() < SINKING_Z_THRESHOLD) { // Orca: For sinking object, we use a more expensive algorithm so part below build plate won't be considered - // m_plater is null in CLI mode. - if (m_plater && plate_box.intersects(instance_box)) { + // m_height mirrors the printer's printable height and is set in CLI mode too, unlike m_plater. + if (plate_box.intersects(instance_box)) { // TODO: FIXME: this does not take exclusion area into account - const BuildVolume build_volume(get_shape(), m_plater->build_volume().printable_height(), m_extruder_areas, m_extruder_heights); + const BuildVolume build_volume(get_shape(), m_height, m_extruder_areas, m_extruder_heights); const auto state = instance->calc_print_volume_state(build_volume); outside = state == ModelInstancePVS_Partly_Outside; } @@ -4099,7 +4098,7 @@ void PartPlate::on_filament_deleted(int filament_count, int filament_id) /* PartPlate List related functions*/ -PartPlateList::PartPlateList(int width, int depth, int height, Plater* platerObj, Model* modelObj, PrinterTechnology tech) +PartPlateList::PartPlateList(int width, int depth, double height, Plater* platerObj, Model* modelObj, PrinterTechnology tech) :m_plate_width(width), m_plate_depth(depth), m_plate_height(height), m_plater(platerObj), m_model(modelObj), printer_technology(tech), unprintable_plate(this, Vec3d(0.0 + width * (1. + LOGICAL_PART_PLATE_GAP), 0.0, 0.0), width, depth, height, platerObj, modelObj, false, tech) { @@ -4544,7 +4543,7 @@ void PartPlateList::set_default_wipe_tower_pos_for_plate(int plate_idx, bool ini } //this may be happened after machine changed -void PartPlateList::reset_size(int width, int depth, int height, bool reload_objects, bool update_shapes) +void PartPlateList::reset_size(int width, int depth, double height, bool reload_objects, bool update_shapes) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(":before size: plate_width %1%, plate_depth %2%, plate_height %3%") % m_plate_width % m_plate_depth % m_plate_height; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(":after size: plate_width %1%, plate_depth %2%, plate_height %3%") % width % depth % height; @@ -6699,7 +6698,7 @@ int PartPlateList::load_gcode_files() //BoundingBoxf3 print_volume = m_plate_list[i]->get_bounding_box(false); //print_volume.max(2) = this->m_plate_height; //print_volume.min(2) = -1e10; - m_model->update_print_volume_state({m_plate_list[i]->get_shape(), (double)this->m_plate_height, m_plate_list[i]->get_extruder_areas(), m_plate_list[i]->get_extruder_heights() }); + m_model->update_print_volume_state({m_plate_list[i]->get_shape(), this->m_plate_height, m_plate_list[i]->get_extruder_areas(), m_plate_list[i]->get_extruder_heights() }); if (!m_plate_list[i]->load_gcode_from_file(m_plate_list[i]->m_gcode_path_from_3mf)) ret ++; diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index 58c0f95b87..8ad2f4a7d1 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -96,7 +96,7 @@ private: Vec3d m_origin; int m_width; int m_depth; - int m_height; + double m_height; float m_height_to_lid; float m_height_to_rod; bool m_printable; @@ -227,7 +227,7 @@ public: static void load_render_colors(); PartPlate(); - PartPlate(PartPlateList *partplate_list, Vec3d origin, int width, int depth, int height, Plater* platerObj, Model* modelObj, bool printable=true, PrinterTechnology tech = ptFFF); + PartPlate(PartPlateList *partplate_list, Vec3d origin, int width, int depth, double height, Plater* platerObj, Model* modelObj, bool printable=true, PrinterTechnology tech = ptFFF); ~PartPlate(); bool operator<(PartPlate&) const; @@ -328,7 +328,7 @@ public: Vec3d get_center_origin(); /* size and position related functions*/ //set position and size - void set_pos_and_size(Vec3d& origin, int width, int depth, int height, bool with_instance_move, bool do_clear = true); + void set_pos_and_size(Vec3d& origin, int width, int depth, double height, bool with_instance_move, bool do_clear = true); // BBS Vec2d get_size() const { return Vec2d(m_width, m_depth); } @@ -590,7 +590,7 @@ class PartPlateList : public ObjectBase int m_plate_width; int m_plate_depth; - int m_plate_height; + double m_plate_height; float m_height_to_lid; float m_height_to_rod; @@ -698,12 +698,12 @@ public: static bool is_load_cali_texture; static bool is_load_extruder_only_area_textures; - PartPlateList(int width, int depth, int height, Plater* platerObj, Model* modelObj, PrinterTechnology tech = ptFFF); + PartPlateList(int width, int depth, double height, Plater* platerObj, Model* modelObj, PrinterTechnology tech = ptFFF); PartPlateList(Plater* platerObj, Model* modelObj, PrinterTechnology tech = ptFFF); ~PartPlateList(); //this may be happened after machine changed - void reset_size(int width, int depth, int height, bool reload_objects = true, bool update_shapes = false); + void reset_size(int width, int depth, double height, bool reload_objects = true, bool update_shapes = false); //clear all the instances in the plate, but keep the plates void clear(bool delete_plates = false, bool release_print_list = false, bool except_locked = false, int plate_index = -1); //clear all the instances in the plate, and delete the plates, only keep the first default plate @@ -717,7 +717,7 @@ public: //get the plate stride double plate_stride_x(); double plate_stride_y(); - void get_plate_size(int& width, int& depth, int& height) { + void get_plate_size(int& width, int& depth, double& height) { width = m_plate_width; depth = m_plate_depth; height = m_plate_height; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0347803dbc..156cc2388c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -8278,7 +8278,8 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ bool dlg_cont = true; bool is_user_cancel = false; bool translate_old = false; - int current_width = 0, current_depth = 0, current_height = 0, project_filament_count = 1; + int current_width = 0, current_depth = 0, project_filament_count = 1; + double current_height = 0; if (input_files.empty()) return std::vector<size_t>(); diff --git a/tests/libslic3r/CMakeLists.txt b/tests/libslic3r/CMakeLists.txt index bf3981f519..5d3e301ea7 100644 --- a/tests/libslic3r/CMakeLists.txt +++ b/tests/libslic3r/CMakeLists.txt @@ -8,6 +8,7 @@ add_executable(${_TEST_NAME}_tests test_arachne_walls.cpp test_arrange.cpp test_bambu_networking.cpp + test_buildvolume.cpp test_calib.cpp test_clipper_offset.cpp test_clipper_utils.cpp diff --git a/tests/libslic3r/test_buildvolume.cpp b/tests/libslic3r/test_buildvolume.cpp new file mode 100644 index 0000000000..b2e8040d68 --- /dev/null +++ b/tests/libslic3r/test_buildvolume.cpp @@ -0,0 +1,40 @@ +#include <catch2/catch_all.hpp> + +#include "libslic3r/BuildVolume.hpp" + +using namespace Slic3r; + +static std::vector<Vec2d> rect_area(double w, double d) +{ + return { { 0., 0. }, { w, 0. }, { w, d }, { 0., d } }; +} + +// extruder_printable_height and extruder_printable_area are independent config options, so a +// profile can leave the heights short. BuildVolume must not index past the end of the heights. +TEST_CASE("BuildVolume falls back to the bed height when extruder_printable_height is short", "[BuildVolume]") +{ + const std::vector<Vec2d> bed = rect_area(200., 200.); + const std::vector<std::vector<Vec2d>> areas = { rect_area(200., 200.), rect_area(100., 200.) }; + const std::vector<double> heights = { 180. }; + + const BuildVolume build_volume(bed, 250., areas, heights); + + REQUIRE(build_volume.get_extruder_area_count() == 2); + // The extruder with a height of its own keeps it, and differs from the bed, so it gets its own volume. + CHECK_THAT(build_volume.get_extruder_area_volume(0).bboxf.max.z(), Catch::Matchers::WithinAbs(180., 1e-6)); + // The extruder without one falls back to the bed's printable_height instead of reading out of range. + CHECK_THAT(build_volume.get_extruder_area_volume(1).bboxf.max.z(), Catch::Matchers::WithinAbs(250., 1e-6)); +} + +TEST_CASE("BuildVolume keeps per-extruder heights when both vectors match", "[BuildVolume]") +{ + const std::vector<Vec2d> bed = rect_area(200., 200.); + const std::vector<std::vector<Vec2d>> areas = { rect_area(120., 200.), rect_area(100., 200.) }; + const std::vector<double> heights = { 180., 200.5 }; + + const BuildVolume build_volume(bed, 250., areas, heights); + + REQUIRE(build_volume.get_extruder_area_count() == 2); + CHECK_THAT(build_volume.get_extruder_area_volume(0).bboxf.max.z(), Catch::Matchers::WithinAbs(180., 1e-6)); + CHECK_THAT(build_volume.get_extruder_area_volume(1).bboxf.max.z(), Catch::Matchers::WithinAbs(200.5, 1e-6)); +} From 134b9ad96e21500eccce9b7ce26a8fb16e4b1cf3 Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Sat, 5 Sep 2026 17:47:58 +0300 Subject: [PATCH 135/164] Fix organic tree support generating one less bottom interface layer than defined (#15525) --- src/libslic3r/Support/SupportCommon.cpp | 12 +++++++----- src/libslic3r/Support/TreeModelVolumes.cpp | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index b6df219866..8dae218da0 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -65,11 +65,13 @@ std::pair<SupportGeneratorLayersPtr, SupportGeneratorLayersPtr> generate_interfa const bool smooth_supports = support_params.support_style != smsGrid; SupportGeneratorLayersPtr &interface_layers = base_and_interface_layers.first; SupportGeneratorLayersPtr &base_interface_layers = base_and_interface_layers.second; - // The user-facing interface layer counts include the contact layer. Internally, - // contact layers are generated separately, so only the remaining layers are - // projected into intermediate interface/base-interface layers here. - const size_t num_top_interface_layers = support_params.has_top_contacts ? support_params.num_top_interface_layers - 1 : 0; - const size_t num_bottom_interface_layers = support_params.has_bottom_contacts ? support_params.num_bottom_interface_layers - 1 : 0; + // Contacts printed separately consume one requested interface layer. Organic + // bottom contacts are projection seeds and are not printed separately. + const bool organic_tree = support_params.support_style == smsTreeOrganic; + const size_t num_top_interface_layers = support_params.has_top_contacts ? + support_params.num_top_interface_layers - 1 : 0; + const size_t num_bottom_interface_layers = support_params.has_bottom_contacts ? + support_params.num_bottom_interface_layers - (organic_tree ? 0 : 1) : 0; const size_t num_top_base_interface_layers = std::min(support_params.num_top_base_interface_layers, num_top_interface_layers); const size_t num_bottom_base_interface_layers = std::min(support_params.num_bottom_base_interface_layers, num_bottom_interface_layers); const size_t num_top_interface_layers_only = num_top_interface_layers - num_top_base_interface_layers; diff --git a/src/libslic3r/Support/TreeModelVolumes.cpp b/src/libslic3r/Support/TreeModelVolumes.cpp index 7a769c77d1..70c33aab0d 100644 --- a/src/libslic3r/Support/TreeModelVolumes.cpp +++ b/src/libslic3r/Support/TreeModelVolumes.cpp @@ -32,7 +32,7 @@ namespace Slic3r::TreeSupport3D using namespace std::literals; // or warning -// had to use a define beacuse the macro processing inside macro BOOST_LOG_TRIVIAL() +// had to use a define because the macro processing inside macro BOOST_LOG_TRIVIAL() #define error_level_not_in_cache debug //FIXME Machine border is currently ignored. From 0224741105e2f6c52a171b3d975cbe68047c710d Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Sat, 5 Sep 2026 17:48:35 +0300 Subject: [PATCH 136/164] Fix organic support being printed into object top surfaces (#15539) --- src/libslic3r/Support/SupportCommon.cpp | 48 +++++++++++++------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index 8dae218da0..e734608803 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -1654,28 +1654,32 @@ void generate_support_toolpaths( if (top_contact_layer.could_merge(interface_layer) && ! raft_layer) top_contact_layer.merge(std::move(interface_layer)); } - if (!bottom_interfaces && support_params.can_merge_support_regions) { - if (base_layer.could_merge(bottom_contact_layer)) - base_layer.merge(std::move(bottom_contact_layer)); - else if (base_layer.empty() && ! bottom_contact_layer.empty() && ! bottom_contact_layer.layer->bridging) - base_layer = std::move(bottom_contact_layer); - } else if (bottom_contact_layer.could_merge(top_contact_layer) && ! raft_layer) { - if (top_interfaces && bottom_interfaces) { - top_contact_layer.merge(std::move(bottom_contact_layer)); - } else if (bottom_interfaces) { - top_contact_layer.set_polygons_to_extrude( - diff(top_contact_layer.polygons_to_extrude(), bottom_contact_layer.polygons_to_extrude())); - } else { - bottom_contact_layer.set_polygons_to_extrude( - diff(bottom_contact_layer.polygons_to_extrude(), top_contact_layer.polygons_to_extrude())); - } - } else if (bottom_contact_layer.could_merge(interface_layer) && ! organic_tree) { - const bool interface_layer_is_bottom = interface_layer.layer->layer_type == SupporLayerType::BottomInterface; - if (bottom_interfaces && interface_layer_is_bottom) { - bottom_contact_layer.merge(std::move(interface_layer)); - } else { - bottom_contact_layer.set_polygons_to_extrude( - diff(bottom_contact_layer.polygons_to_extrude(), interface_layer.polygons_to_extrude())); + // Orca: Organic bottom contacts are projection seeds, not same-layer toolpaths. + // Do not merge them into another same-layer support region. + if (!organic_tree) { + if (!bottom_interfaces && support_params.can_merge_support_regions) { + if (base_layer.could_merge(bottom_contact_layer)) + base_layer.merge(std::move(bottom_contact_layer)); + else if (base_layer.empty() && ! bottom_contact_layer.empty() && ! bottom_contact_layer.layer->bridging) + base_layer = std::move(bottom_contact_layer); + } else if (bottom_contact_layer.could_merge(top_contact_layer) && ! raft_layer) { + if (top_interfaces && bottom_interfaces) { + top_contact_layer.merge(std::move(bottom_contact_layer)); + } else if (bottom_interfaces) { + top_contact_layer.set_polygons_to_extrude( + diff(top_contact_layer.polygons_to_extrude(), bottom_contact_layer.polygons_to_extrude())); + } else { + bottom_contact_layer.set_polygons_to_extrude( + diff(bottom_contact_layer.polygons_to_extrude(), top_contact_layer.polygons_to_extrude())); + } + } else if (bottom_contact_layer.could_merge(interface_layer)) { + const bool interface_layer_is_bottom = interface_layer.layer->layer_type == SupporLayerType::BottomInterface; + if (bottom_interfaces && interface_layer_is_bottom) { + bottom_contact_layer.merge(std::move(interface_layer)); + } else { + bottom_contact_layer.set_polygons_to_extrude( + diff(bottom_contact_layer.polygons_to_extrude(), interface_layer.polygons_to_extrude())); + } } } From 2ad9c87dda2624af447903663a0562e6ee5ce89e Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sat, 5 Sep 2026 12:08:38 -0500 Subject: [PATCH 137/164] fix: GIT_COMMIT_HASH forces full rebuilds and defeats compiler caching (#15537) --- CMakeLists.txt | 27 -------------- build_win.bat | 2 +- src/dev-utils/BaseException.cpp | 3 +- src/libslic3r/libslic3r_version.h.in | 3 -- src/slic3r/CMakeLists.txt | 14 ++++++++ src/slic3r/GUI/AboutDialog.cpp | 3 +- src/slic3r/GUI/BuildCommit.cpp | 9 +++++ src/slic3r/GUI/BuildCommit.hpp | 15 ++++++++ src/slic3r/GUI/GUI_App.cpp | 3 +- src/slic3r/GUI/TroubleshootDialog.cpp | 7 ++-- src/slic3r/GitCommitHash.cmake | 51 +++++++++++++++++++++++++++ 11 files changed, 100 insertions(+), 37 deletions(-) create mode 100644 src/slic3r/GUI/BuildCommit.cpp create mode 100644 src/slic3r/GUI/BuildCommit.hpp create mode 100644 src/slic3r/GitCommitHash.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 972627d0c2..78dd2586da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,33 +95,6 @@ else () add_compile_definitions("$<$<CONFIG:Release>:WXINSPECTOR_DISABLE>") endif () -find_package(Git) -if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "") - message(STATUS "Specified git commit hash: $ENV{git_commit_hash}") - if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") - # Convert the given hash to short hash - execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}" - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - else() - # No .git directory (e.g., Flatpak sandbox) — truncate directly - string(SUBSTRING "$ENV{git_commit_hash}" 0 7 GIT_COMMIT_HASH) - endif() - add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") -elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") - # Check current Git commit hash - execute_process( - COMMAND ${GIT_EXECUTABLE} log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") -endif() - if(DEFINED ENV{SLIC3R_STATIC}) set(SLIC3R_STATIC_INITIAL $ENV{SLIC3R_STATIC}) else() diff --git a/build_win.bat b/build_win.bat index 15399d5e3d..c447d8a71f 100644 --- a/build_win.bat +++ b/build_win.bat @@ -875,7 +875,7 @@ REM get_str_len <string> -> length in %ret% echo ORCA_DEPS_CMAKE_ARGS Extra arguments for the deps configure echo ORCA_SLICER_CMAKE_ARGS Extra arguments for the slicer configure echo ORCA_UPDATER_SIG_KEY Update signing key baked into the slicer - echo git_commit_hash Revision to stamp, so a commit does not rebuild everything + echo git_commit_hash Revision to stamp into the build, as CI does echo NINJA_STATUS Ninja progress format, if you want your own echo debugscript Set to ON to trace this script echo. diff --git a/src/dev-utils/BaseException.cpp b/src/dev-utils/BaseException.cpp index efb7a98245..048eadf151 100644 --- a/src/dev-utils/BaseException.cpp +++ b/src/dev-utils/BaseException.cpp @@ -9,6 +9,7 @@ #include <boost/format.hpp> #include <mutex> +#include "git_commit_hash.h" #include "libslic3r_version.h" static std::string g_log_folder; @@ -39,7 +40,7 @@ CBaseException::CBaseException(HANDLE hProcess, WORD wPID, LPCTSTR lpSymbolPath, output_file->open(log_filename, std::ios::out | std::ios::app); // Output app build info in crash log so we could look for the correct PDB files - OutputString(_T("%s\n\n"), _T(SLIC3R_APP_NAME " " SoftFever_VERSION " Build " GIT_COMMIT_HASH)); + OutputString(_T("%s\n\n"), _T(SLIC3R_APP_NAME " " SoftFever_VERSION " Build " GIT_COMMIT_HASH GIT_COMMIT_SUFFIX)); } } diff --git a/src/libslic3r/libslic3r_version.h.in b/src/libslic3r/libslic3r_version.h.in index 750e092d28..df83e813c9 100644 --- a/src/libslic3r/libslic3r_version.h.in +++ b/src/libslic3r/libslic3r_version.h.in @@ -5,9 +5,6 @@ #define SLIC3R_APP_KEY "@SLIC3R_APP_KEY@" #define SLIC3R_VERSION "@SLIC3R_VERSION@" #define SoftFever_VERSION "@SoftFever_VERSION@" -#ifndef GIT_COMMIT_HASH - #define GIT_COMMIT_HASH "0000000" // 0000000 means uninitialized -#endif #define SLIC3R_BUILD_ID "@SLIC3R_BUILD_ID@" //#define SLIC3R_RC_VERSION "@SLIC3R_VERSION@" #define BBL_INTERNAL_TESTING @BBL_INTERNAL_TESTING@ diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 140b1cec39..1e39e30b0d 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -63,6 +63,8 @@ set(SLIC3R_GUI_SOURCES GUI/BitmapComboBox.hpp GUI/BonjourDialog.cpp GUI/BonjourDialog.hpp + GUI/BuildCommit.cpp + GUI/BuildCommit.hpp GUI/CrealityDiscoveryDialog.cpp GUI/CrealityDiscoveryDialog.hpp GUI/calib_dlg.cpp @@ -845,6 +847,18 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SLIC3R_GUI_SOURCES}) encoding_check(libslic3r_gui) +# Only BuildCommit.cpp includes the generated header, plus BaseException.cpp on +# Windows. Both build into libslic3r_gui, so the header only has to exist before +# that target builds. +set(_git_commit_hash_header "${CMAKE_CURRENT_BINARY_DIR}/git_commit_hash.h") +add_custom_target(git_commit_hash_header + BYPRODUCTS "${_git_commit_hash_header}" + COMMAND ${CMAKE_COMMAND} + "-DSOURCE_DIR=${CMAKE_SOURCE_DIR}" + "-DOUT_FILE=${_git_commit_hash_header}" + -P "${CMAKE_CURRENT_LIST_DIR}/GitCommitHash.cmake" + COMMENT "Resolving the git commit hash") +add_dependencies(libslic3r_gui git_commit_hash_header) if(APPLE AND CMAKE_VERSION VERSION_GREATER_EQUAL "4.0") set(_opengl_link_lib "") diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index a4f0f06d65..9e1cefbc84 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -3,6 +3,7 @@ #include "libslic3r/Utils.hpp" #include "libslic3r/Color.hpp" +#include "BuildCommit.hpp" #include "GUI.hpp" #include "GUI_App.hpp" #include "MainFrame.hpp" @@ -245,7 +246,7 @@ AboutDialog::AboutDialog() vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5)); auto version_string = std::string(SoftFever_VERSION); // _L("Orca Slicer ") + " " + std::string(SoftFever_VERSION); wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize); - wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, wxString::Format("Build %s", std::string(GIT_COMMIT_HASH)), wxDefaultPosition, wxDefaultSize); + wxStaticText* credits_string = new wxStaticText(this, wxID_ANY, wxString::Format("Build %s", build_commit_label), wxDefaultPosition, wxDefaultSize); credits_string->SetFont(_build_string_font); wxFont version_font = GetFont(); version_font = version_font.Scaled(1.85f); // SetPointSize(20) not works on macOS because it uses a 72 PPI reference diff --git a/src/slic3r/GUI/BuildCommit.cpp b/src/slic3r/GUI/BuildCommit.cpp new file mode 100644 index 0000000000..adfe66af68 --- /dev/null +++ b/src/slic3r/GUI/BuildCommit.cpp @@ -0,0 +1,9 @@ +#include "BuildCommit.hpp" +#include "git_commit_hash.h" + +namespace Slic3r { namespace GUI { + +const char *const build_commit_hash = GIT_COMMIT_HASH; +const char *const build_commit_label = GIT_COMMIT_HASH GIT_COMMIT_SUFFIX; + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/BuildCommit.hpp b/src/slic3r/GUI/BuildCommit.hpp new file mode 100644 index 0000000000..0450e710c9 --- /dev/null +++ b/src/slic3r/GUI/BuildCommit.hpp @@ -0,0 +1,15 @@ +#pragma once + +// Read these rather than including git_commit_hash.h, which changes with every +// commit and rebuilds everything that includes it. + +namespace Slic3r { namespace GUI { + +// The commit alone, safe to use in a commit URL. +extern const char *const build_commit_hash; + +// The same, with "-dirty" when the build had uncommitted changes. Use this +// wherever the build is shown to a person. +extern const char *const build_commit_label; + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index d661b012a3..5b80a866ca 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -9,6 +9,7 @@ #include "slic3r/GUI/TaskManager.hpp" #include "format.hpp" #include "libslic3r_version.h" +#include "BuildCommit.hpp" #include "Downloader.hpp" #include <boost/chrono/duration.hpp> #include <boost/log/detail/native_typeof.hpp> @@ -2580,7 +2581,7 @@ void GUI_App::init_app_config() set_log_path_and_level(log_filename, 3); #endif - BOOST_LOG_TRIVIAL(info) << boost::format("gui mode, Current OrcaSlicer Version %1% build %2%") % SoftFever_VERSION % GIT_COMMIT_HASH; + BOOST_LOG_TRIVIAL(info) << boost::format("gui mode, Current OrcaSlicer Version %1% build %2%") % SoftFever_VERSION % build_commit_label; //BBS: remove GCodeViewer as seperate APP logic if (!app_config) diff --git a/src/slic3r/GUI/TroubleshootDialog.cpp b/src/slic3r/GUI/TroubleshootDialog.cpp index a8c36eb975..5acb75c6ea 100644 --- a/src/slic3r/GUI/TroubleshootDialog.cpp +++ b/src/slic3r/GUI/TroubleshootDialog.cpp @@ -1,6 +1,7 @@ #include "TroubleshootDialog.hpp" #include "I18N.hpp" +#include "BuildCommit.hpp" #include "GUI.hpp" #include "GUI_App.hpp" #include "MainFrame.hpp" @@ -137,9 +138,9 @@ TroubleshootDialog::TroubleshootDialog() version->SetFont(version_font); version->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); - auto build = new Button(this, wxString(GIT_COMMIT_HASH)); + auto build = new Button(this, wxString(build_commit_label)); build->SetStyle(ButtonStyle::Regular, ButtonType::Window); - auto hash_url = "https://github.com/OrcaSlicer/OrcaSlicer/commit/" + wxString(GIT_COMMIT_HASH); + auto hash_url = "https://github.com/OrcaSlicer/OrcaSlicer/commit/" + wxString(build_commit_hash); build->SetToolTip(hash_url); build->Bind(wxEVT_BUTTON, [hash_url](wxCommandEvent &e) { wxLaunchDefaultBrowser(hash_url); @@ -371,7 +372,7 @@ wxString TroubleshootDialog::GetSysInfoAll() { wxString info; info += "Version : " + wxString(SoftFever_VERSION) + "\n" - + "Build : " + wxString(GIT_COMMIT_HASH) + "\n" + + "Build : " + wxString(build_commit_label) + "\n" + "Package : " + GetPackageType() + "\n" + "Platform : " + GetOSinfo() + "\n" + "Processor : " + GetCPUinfo() + "\n" diff --git a/src/slic3r/GitCommitHash.cmake b/src/slic3r/GitCommitHash.cmake new file mode 100644 index 0000000000..9302885e6a --- /dev/null +++ b/src/slic3r/GitCommitHash.cmake @@ -0,0 +1,51 @@ +# Writes GIT_COMMIT_HASH and GIT_COMMIT_SUFFIX into a generated header. +# GIT_COMMIT_SUFFIX is "-dirty" for a build with uncommitted changes, and empty +# otherwise. +# +# A custom target runs this at the start of every build, which picks up a new +# commit without a reconfigure. The header is rewritten only when the value +# changes. +# +# Inputs: SOURCE_DIR, OUT_FILE. + +find_package(Git QUIET) + +set(HASH "") +set(SUFFIX "") + +if (DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "") + if (GIT_FOUND AND EXISTS "${SOURCE_DIR}/.git") + execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}" + WORKING_DIRECTORY ${SOURCE_DIR} OUTPUT_VARIABLE HASH OUTPUT_STRIP_TRAILING_WHITESPACE) + else () + # No .git directory (e.g. Flatpak sandbox) - truncate directly + string(SUBSTRING "$ENV{git_commit_hash}" 0 7 HASH) + endif () +elseif (GIT_FOUND AND EXISTS "${SOURCE_DIR}/.git") + execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h + WORKING_DIRECTORY ${SOURCE_DIR} OUTPUT_VARIABLE HASH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${GIT_EXECUTABLE} diff --quiet HEAD + WORKING_DIRECTORY ${SOURCE_DIR} RESULT_VARIABLE DIRTY ERROR_QUIET) + if (DIRTY EQUAL 1) + set(SUFFIX "-dirty") + endif () +endif () + +if (NOT HASH) + set(HASH "0000000") # uninitialized +endif () + +message(STATUS "Build commit: ${HASH}${SUFFIX}") + +string(CONCAT CONTENT + "#pragma once\n" + "#define GIT_COMMIT_HASH \"${HASH}\"\n" + "#define GIT_COMMIT_SUFFIX \"${SUFFIX}\"\n") + +set(OLD "") +if (EXISTS "${OUT_FILE}") + file(READ "${OUT_FILE}" OLD) +endif () +if (NOT OLD STREQUAL CONTENT) + file(WRITE "${OUT_FILE}" "${CONTENT}") +endif () From 067dfa35c6b2f15f82554f9eeb72b510df2e7218 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sat, 5 Sep 2026 12:14:59 -0500 Subject: [PATCH 138/164] fix: make Windows debug builds work (#15353) Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- deps/python3/python3.cmake | 8 ++------ deps/python3/stage_windows.cmake | 20 +++----------------- src/CMakeLists.txt | 13 ++++++++++++- src/slic3r/plugin/PluginAuditManager.hpp | 3 ++- src/slic3r/plugin/PythonInterpreter.hpp | 3 ++- 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/deps/python3/python3.cmake b/deps/python3/python3.cmake index e93045fe45..d926c7e888 100644 --- a/deps/python3/python3.cmake +++ b/deps/python3/python3.cmake @@ -53,12 +53,9 @@ if(WIN32) set(_python_pcbuild_output_dir win32) endif() + # pybind11 undefines _DEBUG around Python.h so a debug build links the + # release python3xx.lib; Py_DEBUG could not load release plugin modules. set(_python_pcbuild_config Release) - set(_python_layout_debug OFF) - if(DEFINED DEP_DEBUG AND DEP_DEBUG) - set(_python_pcbuild_config Debug) - set(_python_layout_debug ON) - endif() # CPython's PCbuild needs a 64-bit-hosted toolchain: find_msbuild.bat picks the # 32-bit Bin\MSBuild.exe, whose x86 cl.exe/link.exe run out of address space @@ -101,7 +98,6 @@ if(WIN32) -DPYTHON_BUILD_DIR=<SOURCE_DIR>/PCbuild/${_python_pcbuild_output_dir} -DPYTHON_DEST_DIR=${DESTDIR}/libpython -DPYTHON_LAYOUT_ARCH=${_python_layout_arch} - -DPYTHON_DEBUG=${_python_layout_debug} -P ${CMAKE_CURRENT_LIST_DIR}/stage_windows.cmake ) elseif(APPLE) diff --git a/deps/python3/stage_windows.cmake b/deps/python3/stage_windows.cmake index b127f06b68..758e0be9f3 100644 --- a/deps/python3/stage_windows.cmake +++ b/deps/python3/stage_windows.cmake @@ -9,9 +9,6 @@ foreach(_var PYTHON_SOURCE_DIR PYTHON_BUILD_DIR PYTHON_DEST_DIR PYTHON_LAYOUT_AR endforeach() set(_python_exe "${PYTHON_BUILD_DIR}/python.exe") -if(PYTHON_DEBUG) - set(_python_exe "${PYTHON_BUILD_DIR}/python_d.exe") -endif() if(NOT EXISTS "${_python_exe}") message(FATAL_ERROR "Built Python executable not found: ${_python_exe}") @@ -49,22 +46,11 @@ endif() set(_required_files "${PYTHON_DEST_DIR}/Lib/encodings/__init__.py" "${PYTHON_DEST_DIR}/include/Python.h" + "${PYTHON_DEST_DIR}/python.exe" + "${PYTHON_DEST_DIR}/python${_python_abi}.dll" + "${PYTHON_DEST_DIR}/libs/python${_python_abi}.lib" ) -if(PYTHON_DEBUG) - list(APPEND _required_files - "${PYTHON_DEST_DIR}/python_d.exe" - "${PYTHON_DEST_DIR}/python${_python_abi}_d.dll" - "${PYTHON_DEST_DIR}/libs/python${_python_abi}_d.lib" - ) -else() - list(APPEND _required_files - "${PYTHON_DEST_DIR}/python.exe" - "${PYTHON_DEST_DIR}/python${_python_abi}.dll" - "${PYTHON_DEST_DIR}/libs/python${_python_abi}.lib" - ) -endif() - foreach(_required_file IN LISTS _required_files) if(NOT EXISTS "${_required_file}") message(FATAL_ERROR "Staged Python file missing: ${_required_file}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0036af0a8c..f0de57f12c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -33,7 +33,8 @@ if (SLIC3R_GUI) set (wxWidgets_CONFIG_OPTIONS "--toolkit=gtk${SLIC3R_GTK}") find_package(wxWidgets 3.3 REQUIRED COMPONENTS base core adv html gl aui net media webview) else () - find_package(wxWidgets 3.3 CONFIG REQUIRED COMPONENTS html adv gl core base webview aui net media) + # propgrid is required by wxInspector. + find_package(wxWidgets 3.3 CONFIG REQUIRED COMPONENTS html adv gl core base webview aui net media propgrid) endif () if(UNIX) @@ -90,6 +91,16 @@ if (SLIC3R_GUI) # list(REMOVE_ITEM wxWidgets_LIBRARIES oleacc) find_package(wxInspector REQUIRED) + + # wxInspector's exported interface names the release wxWidgets import + # libraries, which a Debug build cannot link. wx is linked above instead. + get_target_property(_wxinspector_interface wxInspector::wxInspector INTERFACE_LINK_LIBRARIES) + if (_wxinspector_interface) + list(FILTER _wxinspector_interface EXCLUDE REGEX "wx(base|msw)3[0-9]u[_.]") + set_target_properties(wxInspector::wxInspector PROPERTIES + INTERFACE_LINK_LIBRARIES "${_wxinspector_interface}") + endif () + list(APPEND wxWidgets_LIBRARIES "wxInspector::wxInspector") message(STATUS "wx libs: ${wxWidgets_LIBRARIES}") diff --git a/src/slic3r/plugin/PluginAuditManager.hpp b/src/slic3r/plugin/PluginAuditManager.hpp index d6751a57fd..153f9d6107 100644 --- a/src/slic3r/plugin/PluginAuditManager.hpp +++ b/src/slic3r/plugin/PluginAuditManager.hpp @@ -1,7 +1,8 @@ #ifndef slic3r_PluginAuditManager_hpp_ #define slic3r_PluginAuditManager_hpp_ -#include <Python.h> +// Via pybind11 so this file requests the same python3xx.lib as everything else. +#include <pybind11/conduit/wrap_include_python_h.h> #include <memory> #include <mutex> #include <string> diff --git a/src/slic3r/plugin/PythonInterpreter.hpp b/src/slic3r/plugin/PythonInterpreter.hpp index ff69ce6846..e15aa91598 100644 --- a/src/slic3r/plugin/PythonInterpreter.hpp +++ b/src/slic3r/plugin/PythonInterpreter.hpp @@ -1,7 +1,8 @@ #ifndef slic3r_PythonInterpreter_hpp_ #define slic3r_PythonInterpreter_hpp_ -#include <Python.h> +// Via pybind11 so this file requests the same python3xx.lib as everything else. +#include <pybind11/conduit/wrap_include_python_h.h> #include <pytypedefs.h> #include <atomic> #include <functional> From cd011e6385c9a86977108c5820b02688f8925acd Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Sat, 5 Sep 2026 15:22:05 -0300 Subject: [PATCH 139/164] Fix CHB parciall bridge (#15387) --- src/libslic3r/PerimeterGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 9037118f0c..a6b38889a5 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -2127,7 +2127,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim bridgeable_filtered = union_ex(offset_ex(remaining, perimeter_spacing), bridgeable_filtered); bridgeable_filtered = offset_ex(bridgeable_filtered, -perimeter_spacing); bridgeable_filtered = diff_ex(bridgeable_filtered, remaining, ApplySafetyOffset::Yes); - bridgeable_filtered = opening_ex(bridgeable_filtered, perimeter_spacing); // filter noise from the diff_ex + bridgeable_filtered = opening_ex(bridgeable_filtered, ext_perimeter_width / 2); // filter noise from the diff_ex bridgeable_filtered = offset_ex(bridgeable_filtered, perimeter_spacing); // restore the size to the original bridgeable area // Safety measure: Keep the bridge mask from intruding deeper into the // supported anchor region than the explicit anchor overlap. From 5302f703c07f63c456cb8dd8da2746c224e40e64 Mon Sep 17 00:00:00 2001 From: Wegerich <neurostatic+github@gmail.com> Date: Sat, 5 Sep 2026 19:36:10 +0100 Subject: [PATCH 140/164] Automatically disable scarf seams when activating retraction calibration (#15543) --- src/slic3r/GUI/Plater.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 156cc2388c..7f1e6ab400 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -16268,6 +16268,7 @@ void Plater::calib_retraction(const Calib_Params& params) obj->config.set_key_value("wall_sequence", new ConfigOptionEnum<WallSequence>(WallSequence::InnerOuter)); obj->config.set_key_value("overhang_reverse", new ConfigOptionBool(false)); obj->config.set_key_value("precise_z_height", new ConfigOptionBool(false)); + obj->config.set_key_value("seam_slope_type", new ConfigOptionEnum<SeamScarfType>(SeamScarfType::None)); changed_objects({ 0 }); From 6014f3fb43502ce9dcbfd2abb6f087f6eef76033 Mon Sep 17 00:00:00 2001 From: ocidburn <79639602+ocidburn@users.noreply.github.com> Date: Sat, 5 Sep 2026 22:05:11 +0200 Subject: [PATCH 141/164] Fix: guard the fifth null deref of the same kind, on the project-settings path (#15451) --- src/libslic3r/Config.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index a2756a9f8e..394cfb5b74 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -1049,7 +1049,8 @@ int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContex std::vector<std::string>& different_settings = this->option<ConfigOptionStrings>("different_settings_to_system", true)->values; size_t size = different_settings.size(); if (size == 0) { - size = this->option<ConfigOptionStrings>("filament_settings_id")->values.size() + 2; + const auto *filament_ids = this->option<ConfigOptionStrings>("filament_settings_id"); + size = (filament_ids ? filament_ids->values.size() : 0) + 2; different_settings.resize(size); } From 71e4e191917d70a7a508a1a3f322730b6a79d86d Mon Sep 17 00:00:00 2001 From: yw4z <ywsyildiz@gmail.com> Date: Sun, 6 Sep 2026 00:17:42 +0300 Subject: [PATCH 142/164] Fix crash on startup if mixed filament has invalid component (#15432) --- src/slic3r/GUI/Plater.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 7f1e6ab400..90206a438c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3988,16 +3988,16 @@ void Sidebar::update_mixed_filament_list() p->m_panel_mixed_warning->Show(false); // Show/dismiss 3D canvas notification for broken mixed filaments - if (has_mixed && !broken_set.empty()) { - auto* notify = wxGetApp().plater()->get_notification_manager(); - if (notify) + auto* notify = plater->get_notification_manager(); + GLCanvas3D* view3d_canvas = plater->get_view3D_canvas3D(); + if(view3d_canvas && view3d_canvas->is_initialized() && notify){ + if (has_mixed && !broken_set.empty()) { notify->push_notification(NotificationType::BBLMixedFilamentBroken, NotificationManager::NotificationLevel::ErrorNotificationLevel, _u8L("Mixed filament has invalid or mismatched components. Please re-edit affected entries.")); - } else { - auto* notify = wxGetApp().plater()->get_notification_manager(); - if (notify) + } else { notify->close_notification_of_type(NotificationType::BBLMixedFilamentBroken); + } } if (has_mixed) { From c0c2cc5068bff9ef5e5f4e4138fa25fa1f4e65d2 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sat, 5 Sep 2026 20:11:40 -0500 Subject: [PATCH 143/164] fix: Virtual Camera Tools install downloads the network plugin (#15540) --- src/slic3r/GUI/MediaPlayCtrl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index 71fbcb054b..0d75c3770d 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -494,13 +494,13 @@ void MediaPlayCtrl::ToggleStream() DownloadProgressDialog2(MediaPlayCtrl *ctrl) : DownloadProgressDialog(_L("Downloading Virtual Camera Tools")), ctrl(ctrl) {} struct UpgradeNetworkJob2 : UpgradeNetworkJob { - UpgradeNetworkJob2(std::shared_ptr<ProgressIndicator> pri) : UpgradeNetworkJob() { + UpgradeNetworkJob2() { name = "cameratools"; package_name = "camera_tools.zip"; } }; - std::shared_ptr<UpgradeNetworkJob> make_job(std::shared_ptr<ProgressIndicator> pri) - { return std::make_shared<UpgradeNetworkJob2>(pri); } + std::unique_ptr<UpgradeNetworkJob> make_job() override + { return std::make_unique<UpgradeNetworkJob2>(); } void on_finish() override { ctrl->CallAfter([ctrl = this->ctrl] { ctrl->ToggleStream(); }); From 4aa0e1d60b6f32ea84a4cfebbf1cfa93f87988e5 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Fri, 4 Sep 2026 22:10:48 +0800 Subject: [PATCH 144/164] Translate filament ids at the printer boundary Orca content-addresses every system filament, Bambu's included, but a printer, its AMS and its vendor's cloud know only that vendor's own catalog ids. The printer agent now translates between the two: outbound MQTT and FTP traffic, the AMS mapping sent with a print job, and the ids written into a 3mf bound for the printer all leave in the printer's own ids, while status messages, loaded projects and SD-card prints arrive in Orca's. An id with no mapping passes through unchanged, and an agent whose printers already speak Orca's ids translates nothing at all. Bambu's map is generated from BambuStudio's own shipped bundle; a missing or unreadable file leaves every lookup an identity rather than taking the app down. The profile check validates the map's shape, and profile CI now runs on the paths that can change it. docs/HLSD/filament_id.md records the places the map deliberately does not reach. --- .github/workflows/check_profiles.yml | 4 + docs/HLSD/filament_id.md | 223 +++++++++++++++--- scripts/assign_filament_ids.py | 19 +- scripts/tests/test_filament_id.py | 55 +++++ scripts/update_bambu_filament_ids.py | 6 +- src/OrcaSlicer.cpp | 22 ++ src/slic3r/GUI/AMSDryControl.cpp | 15 +- src/slic3r/GUI/AMSMaterialsSetting.cpp | 10 +- src/slic3r/GUI/ColorDecomposeSupport.cpp | 44 +++- .../GUI/DeviceCore/DevFilaBlackList.cpp | 7 +- src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp | 15 +- src/slic3r/GUI/DeviceManager.cpp | 11 +- src/slic3r/GUI/Plater.cpp | 9 + src/slic3r/GUI/PresetComboBoxes.cpp | 9 +- src/slic3r/GUI/SelectMachine.cpp | 16 +- src/slic3r/Utils/BBLPrinterAgent.cpp | 117 ++++++++- src/slic3r/Utils/BBLPrinterAgent.hpp | 14 ++ src/slic3r/Utils/CalibUtils.cpp | 26 +- src/slic3r/Utils/IPrinterAgent.hpp | 10 + src/slic3r/Utils/NetworkAgent.cpp | 14 ++ src/slic3r/Utils/NetworkAgent.hpp | 2 + tests/slic3rutils/CMakeLists.txt | 1 + tests/slic3rutils/test_bambu_filament_ids.cpp | 81 +++++++ 23 files changed, 652 insertions(+), 78 deletions(-) create mode 100644 tests/slic3rutils/test_bambu_filament_ids.cpp diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index 0c0750c610..b855d09da7 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -9,6 +9,10 @@ on: - release/* paths: - 'resources/profiles/**' + # The extra JSON check also validates resources/printers/bambu_filament_ids.json, + # and lives in scripts/, so a PR touching only those must still run this workflow. + - 'resources/printers/**' + - 'scripts/**' - ".github/workflows/check_profiles.yml" workflow_dispatch: diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md index 980d830d7d..4c1c1f7443 100644 --- a/docs/HLSD/filament_id.md +++ b/docs/HLSD/filament_id.md @@ -64,14 +64,15 @@ failing that, any compatible system preset, else the slot is skipped — every f selection surfaces a user-visible notice. Today only the Bambu AMS integration follows this pattern end to end — the device itself -reports the id, and the pipeline does all the matching. The other device integrations still -synthesize a preset id client-side in their agents (by type, brand, or color lookups against -the loaded presets) before the pipeline runs; they are intended to converge on the same -pattern, with the device-reported tray material id flowing through the shared matcher. +reports the id, `BBLPrinterAgent` translates it out of Bambu's catalog into ours, and the +pipeline does all the matching. The other device integrations still synthesize a preset id +client-side in their agents (by type, brand, or color lookups against the loaded presets) +before the pipeline runs; they are intended to converge on the same pattern, with the +device-reported tray material id flowing through the shared matcher. | Ecosystem | Where the tray id comes from today | | --- | --- | -| Bambu AMS | the device itself (RFID / user tray setting) — the `GF*` catalog | +| Bambu AMS | the device itself (RFID / user tray setting), in Bambu's own `GF*` catalog; `BBLPrinterAgent` rewrites it into our id before the matcher sees it (see [The Bambu catalog map](#the-bambu-catalog-map)) | | Qidi box | composed at runtime as `QD_<series>_<vendor>_<typeidx>` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name. No preset carries a `QD_*` value, so the slot currently resolves by filament type; mapping the composed id onto the family's minted id belongs in the agent | | Creality CFS | runtime brand/type scoring returns the winning preset's id | | Klipper (AFC / Happy Hare) | runtime lookup by filament type | @@ -205,20 +206,23 @@ python scripts/assign_filament_ids.py --check # 4. verify — the sam # 5. Commit the profile edits together with scripts/filament_id_snapshot.json. ``` -The default run is idempotent and never rewrites a valid existing id; it edits profile files -byte-preservingly (indentation, BOM, and line endings intact) and re-parses them to fail -loudly. `--mint "filament_vendor/filament_type/family_name"` prints the id a **new** mint of -that triple would get, without touching anything — note that for a triple whose id already -exists it prints the next *free* salt iteration, not the live id (asking for +The default run mints ids for id-less families and replaces any declaration that is not in +`OF` format; it never rewrites a valid `OF` id, so it is idempotent and a no-op once every +family has one. It edits profile files byte-preservingly (indentation, BOM, and line endings +intact) and re-parses them to fail loudly. +`--mint "filament_vendor/filament_type/family_name"` prints the id a **new** mint of that +triple would get, without touching anything — note that for a triple whose id already exists +it prints the next *free* salt iteration, not the live id (asking for `Polymaker/PLA/PolyLite PLA` today prints the salt-1 id, because `OF5CgdDq` is taken). Maintenance modes (`--remint` is also the step for identity fixes — see the FAQ; the rest are normally only used by id migrations): -- `--remint VENDOR` re-derives a vendor's declared ids from their triples. A declaration - already equal to a salt iteration of its own triple is conformant and left alone, so - deliberate salt splits survive; convergence onto an id another bundle already uses for the - *same* triple is legal by design — that is the point. +- `--remint VENDOR` re-derives a vendor's declared ids from their triples — any vendor, BBL + included, since no bundle is exempt from the mint rule. A declaration already equal to a + salt iteration of its own triple is conformant and left alone, so deliberate salt splits + survive; convergence onto an id another bundle already uses for the *same* triple is legal + by design — that is the point. - `--drop-redundant-ids VENDOR` deletes declarations that merely re-declare an inherited OrcaFilamentLibrary id. - `--profiles DIR` points the tooling at a different profile tree (default @@ -231,22 +235,26 @@ diff. ## Reserved namespaces — never mint or hand-write into -An **island** is a frozen id namespace exempt from the mint rule because an external catalog -or device contract owns it. +A **reserved namespace** is an id space no system profile may declare, because an external +catalog or a device protocol owns the values. None of them has an owning vendor: there is no +bundle — not even the one whose printers use the catalog — that may write one into a profile. | Space | Status | Rule | | --- | --- | --- | -| `GF*` | Bambu AMS/RFID catalog — the one remaining *island* | BBL vendor only; a claim by anyone else is refused unless the snapshot sanctions that exact claim (via `--allow-shared-catalog` — see the CI section) | +| `GF*` | Bambu AMS/RFID catalog | declarable by **nobody**, BBL included: Bambu's own ids live in the generated catalog map, never in a profile | | `QD_*` | Qidi device protocol | declarable by **nobody**, Qidi included: the box composes these ids at runtime and they are not preset ids | | `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | | every already-shipped id | frozen in the snapshot (grandfathered) | frozen as-is; new claims need maintainer sign-off | The two device namespaces, in detail: -- **BBL (`GF*`).** Bambu's device/RFID/cloud catalog is external and opaque, so BBL - declarations are frozen as-is and never re-minted. BBL also carries several dozen - grandfathered legacy codes that are neither `GF*` nor `OF*` (the `BETA` family's `B*` ids, - plus `Generic SBS`'s legacy `BFLSBS99`) — frozen the same way, via the snapshot. +- **Bambu (`GF*`).** Bambu's device/RFID/cloud catalog is external and opaque, which is a + reason to keep it out of the profiles rather than to let one bundle own it. Every BBL family + mints an `OF` id from its triple like every other vendor's, and the correspondence to Bambu's + catalog ids lives in one generated file the app applies at the printer boundary — the next + section. Nothing under `resources/profiles/**` carries a `GF*` id today and the snapshot + grandfathers none, so a `GF*` id appearing anywhere in the tree is a mistake, whoever wrote + it. - **Qidi (`QD_*`).** `QD_*` is a device-*protocol* namespace, not a preset id space: the Qidi box path composes `QD_<series>_<vendor>_<typeidx>` ids at runtime (slot vendor and type indices reported by the device, the series digit inferred client-side from the printer @@ -256,6 +264,142 @@ The two device namespaces, in detail: protocol ids as preset ids — would put one product under five ids (`QIDI PLA Rapido` would be `QD_0_1_1` through `QD_4_1_1`), exactly the fragmentation the mint rule removes. +## The Bambu catalog map + +Bambu's printers, its AMS and its cloud know only Bambu's own catalog ids. Our profiles carry +minted `OF` ids like every other vendor's, so one generated file records the correspondence and +the app applies it **only where an id crosses to or from a Bambu printer**. + +**The file** is `resources/printers/bambu_filament_ids.json` — a header plus one row per +catalogued product, keyed by our id: + +```json +{ + "source": "https://github.com/bambulab/BambuStudio", + "bambustudio_commit": "66e405477", + "generated": "2026-09-04", + "filaments": { + "OFhuaUQB": { "bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS" } + } +} +``` + +It ships in `resources/printers/`, next to `filaments_blacklist.json` — deliberately not in +`resources/profiles/`, where the loader reads every top-level `.json` as a vendor index. It +holds 100 rows today, one per product BambuStudio ships, and the correspondence is +one-to-one in both directions. + +**It is generated, never hand-edited.** `python scripts/update_bambu_filament_ids.py` rebuilds +it from **BambuStudio's own shipped BBL bundle** — a sparse shallow clone of upstream `master`, +or `--bambustudio-dir <a BambuStudio resources/profiles checkout>`. Our BBL bundle is a fork of +Bambu's, tuned and extended independently, so it is not the source of truth for Bambu's ids. +A row's key is whatever id our tree already mints for that same +`(filament_vendor, filament_type, family)` triple; a product we do not ship gets a freshly +generated key and the row sits inert until some bundle claims that triple — `OFdyfQvU` / +`GFG03`, "Bambu PETG Matte", is such a row today. + +**Regenerate it in the same commit as every BBL profile sync**, and read the drift report it +prints. Two lines, both informational, neither blocking the write: + +```text +upstream ships 'Bambu PETG Matte' (Bambu Lab/PETG), we ship nothing with that identity +Orca BBL families with no row: 135 Orca-only product(s) +``` + +The first names each upstream product our BBL bundle has no same-identity family for — +sometimes a genuinely missing product, sometimes a name drift a follow-up rename would +converge. The second counts our own BBL families that matched no row: 135 of 234 today, of +which 109 send an `OF` id on the wire and 26 already rode `OF` ids inherited from the +OrcaFilamentLibrary. **135 is the number to expect at every regeneration** — 109 was the +one-off size of the transition and stopped being computable from the tree once the BBL bundle +was re-minted, so do not "fix" the report to print it. + +**Check 8** lives in `check_filament_ids`, so profile CI runs it alongside the other seven. It +holds the file to its contract: it parses, carries `source` / `bambustudio_commit` / +`generated`, keys only `OF`-format ids, maps each Bambu id at most once, and — for every row +whose key the tree actually claims — agrees with the tree on that id's `(vendor, type, name)` +triple. A row for a product we do not ship is skipped, not an error. The remedy it prints is +always the same: regenerate the map and commit the diff for review. + +### The runtime rule: swap on hit + +Outbound, our id with a row becomes Bambu's; inbound, Bambu's id with a row becomes ours. +Everything else is forwarded untouched — an `OF` id with no row, a Bambu id for a product we do +not ship, a `P`-hex user id, `"null"`, an empty string. Translation is confined to the +boundary: nothing between the boundaries ever holds a Bambu id. + +Translating one value is a capability of the printer agent: `IPrinterAgent` declares +`to_orca_filament_id` and `from_orca_filament_id` returning their argument, and `BBLPrinterAgent` +overrides them with Bambu's map, so an agent whose printers already speak our ids inherits the +identity default and translates nothing. `NetworkAgent` forwards both to the live agent, so the +comparison sites below reach them through `wxGetApp().getAgent()` and leave an id untranslated +while no agent is live. Whole documents are Bambu's business alone: +`BBLPrinterAgent::to_orca_payload` and `from_orca_payload` rewrite every string under +`tray_info_idx`, `filament_id` or `filamentId` at any depth; text that does not parse, or carries +none of those keys, comes back unchanged. The map is loaded once, lazily; a missing or malformed +file degrades to identity with a log line rather than failing. + +| Boundary | Where it translates | +| --- | --- | +| Everything the agent sends | `BBLPrinterAgent::send_message` and `send_message_to_printer`, plus `PrintParams::ams_mapping_info` in `dispatch_start` — the funnel all five `start_*` calls share | +| Everything the agent receives | `set_on_message_fn` and `set_on_local_message_fn` wrap their callback, so `MachineObject::parse_json` and everything downstream see our ids only | +| 3mf export | `Plater::export_3mf` writes Bambu's ids into `slice_info.config`, gated on `preset_bundle.is_bbl_vendor()` — the printer reads that file and knows only its own catalog, and no other vendor's export is affected. The CLI has its own writer in `OrcaSlicer.cpp`; it does the same, gated on the `printer_model` prefix that already decides `Print::is_BBL_printer()` for that run | +| Project ingest | `Plater::priv::load_files` reverse-maps the project's `filament_ids` before the bundle ingests them, so a project saved by an older Orca or by BambuStudio still resolves the same presets | +| Prints from the printer's SD card | `SelectMachineDialog::update_print_required_data` reverse-maps each plate's slice-info ids as it adopts the plates, so the AMS mapping dialog pairs them with trays | +| Bambu-specific comparisons | `CalibUtils.cpp`, `DeviceManager.cpp`, `DeviceCore/DevFilaSystem.cpp`, `DeviceCore/DevFilaBlackList.cpp`, `SelectMachine.cpp`, `AMSDryControl.cpp`, `AMSMaterialsSetting.cpp`, `PresetComboBoxes.cpp`, `ColorDecomposeSupport.cpp` | + +That last row is the rule to follow when a new Bambu-specific behaviour is added: **translate +the value you are about to compare, never the table you compare it against.** The shipped data +those sites read is Bambu's and stays verbatim — `white_fila_ids` in +`resources/printers/filaments_blacklist.json`, the calibration id lists in +`resources/printers/<model>.json`, `fila_id` in +`resources/profiles/BBL/filament/filaments_color_codes.json`. + +`tests/slic3rutils/test_bambu_filament_ids.cpp` covers the lookups, the payload rewrite and the +Bambu-specific rules. `orcaslicer_discover_tests` registers a Catch2 tag as a CTest **label**, +not as part of the test name, so `-R` matches nothing here and the filter is `-L`: + +```bash +ctest --test-dir <build dir>/tests/slic3rutils -L BambuFilamentIds +``` + +### Three places the map deliberately does not reach + +The map and its lookups live in the GUI library, which libslic3r cannot link against and which a +GUI-less build does not link at all. Three consequences are known and documented; none is worth +pulling the map down into libslic3r for. + +- **The support display type in `PrintConfig.cpp`.** `DynamicPrintConfig::get_filament_type` + picks `PLA-S` / `Sup.PLA` and `PA-S` / `Sup.PA` for a support filament by testing + `filament_id` against `GFS00` and `GFS01`, and otherwise falls back on `filament_type` — a + fallback that returns those same two pairs for `"PLA"` and `"PA"`. Bambu Support W inherits + `fdm_filament_pla` and Bambu Support G inherits `fdm_filament_pa`, so with their `OF` ids the + fallback produces exactly what the id branches produced. (The only config that ever carries a + singular `filament_id` key is the AMS tray config built in `Plater.cpp`, and that one never + reaches this function.) These two lines are the only mention of a Bambu id anywhere in + libslic3r, and they need no change. +- **Config imports.** `PresetBundle::import_presets` (File ▸ Import ▸ Import Configs, for + `.json` / `.zip` / `.orca_filament` / `.orca_printer` / `.orca_bundle`) and + `PresetBundle::load_config_file` (the CLI's `--load-settings` of a G-code file with an + embedded config) both parse inside libslic3r, out of the GUI's reach, so a Bambu id carried + in such a file lands on the imported preset untranslated. The effect is bounded: that preset + does not auto-match an AMS tray while the stale id is live, and the id does not survive + being saved — `Preset::save` writes a `filament_id` key only for a preset whose `inherits` is + empty, and on the next load an inheriting preset takes its parent's id. A known gap, and not + a regression: nothing forwarded a stale id before either. +- **A build configured without the GUI.** `target_link_libraries(OrcaSlicer libslic3r_gui)` sits + inside `if (SLIC3R_GUI)` in `src/CMakeLists.txt`, so the lookups are not linkable when the GUI + is off. The CLI's 3mf writer in `src/OrcaSlicer.cpp` therefore guards its translation with + `#ifdef SLIC3R_GUI`, and a 3mf that such a build slices for a Bambu printer carries our `OF` + ids in `slice_info.config` rather than Bambu's. Every shipped build enables the GUI, so this + reaches only a purpose-built GUI-less binary. + +One more thing worth recording before it is rediscovered: +`SyncAmsInfoDialog::update_print_required_data` is a structural twin of the SD-card function +above and carries no translation. It has no callers today and its plate list is only ever read +for `printer_model_id`, so it is not a live gap — but wiring it up without adding the reverse +map would silently reproduce the bug. + ## How CI enforces this Profile CI (`check_profiles.yml`) runs `check_filament_ids()` tree-wide via @@ -271,7 +415,8 @@ checks ratchet all new profiles to the clean rules. The checks, in brief: -- **Format** — every id is either in the snapshot, `OF` + 6 base62 chars, or BBL's. +- **Format** — every id occurring in the tree is `OF` + 6 base62 chars. No exceptions: not a + grandfathered snapshot entry, not BBL. - **Snapshot equality** — tree claims == snapshot claims **and** tree triples == snapshot triples, both directions: any `filament_vendor`/`filament_type`/family-name change surfaces as a snapshot diff. @@ -282,22 +427,34 @@ The checks, in brief: base name (a rename re-exposes the library preset, since alias shadowing is name-based), a non-empty `compatible_printers` (an empty one shadows nothing), and no own id key (structure rule 4). -- **Triple integrity** — every declarer outside the BBL island must resolve a non-empty - `filament_vendor` and `filament_type` (generics use `"Generic"`), and all declarers of one - family within a bundle must agree on the triple. -- **Reserved namespaces** — `GF*` outside BBL, `P<7-hex>` or `"null"` anywhere, unless that - exact claim is grandfathered in the snapshot; `QD_*` anywhere, with no exception. +- **Triple integrity** — every declarer must resolve a non-empty `filament_vendor` and + `filament_type` (generics use `"Generic"`), and all declarers of one family within a + bundle must agree on the triple. +- **Reserved namespaces** — `GF*`, `QD_*`, `P<7-hex>` or `"null"` claimed by any vendor, + BBL and Qidi included, unless that exact claim is grandfathered in the snapshot (none is + today). - **Structure** — no `filament_id` key on newly instantiated presets; no new declared-vs-inherited id drift; every instantiated system filament must resolve an effective id through its `inherits` chain (recall: an id-less one is a hard load error in C++ that discards the whole vendor bundle). +- **Bambu catalog map** — `resources/printers/bambu_filament_ids.json` parses, carries its + `source` / `bambustudio_commit` / `generated` header, keys only `OF`-format ids, maps each + Bambu id at most once, and agrees with the tree on the triple of every row whose key the + tree claims. See [The Bambu catalog map](#the-bambu-catalog-map); the remedy is always to + regenerate, never to hand-edit. -Sharing a **reserved-catalog** id with a new family or vendor (e.g. shipping a Bambu-cataloged -product under another vendor with its authentic `GF*` id) is refused by `--update-snapshot` -unless you pass `--allow-shared-catalog` — and it still lands in the snapshot diff for -maintainer review. Any other new sharing via a *declared* id is caught by the mint-conformance -check; sharing through inheritance carries no declaration to check and surfaces only as a new -claim in the snapshot diff — which is exactly why that diff is the gate. +Any new claim on a **reserved namespace** — a profile that declares a `GF*`, `QD_*` or +`P<7-hex>` id, whatever its vendor — is refused by `--update-snapshot` unless you pass +`--allow-shared-catalog`, and even then it lands in the snapshot diff for maintainer review. +There is no such claim in the tree today and adding one should be a last resort: for a +Bambu-cataloged product, the catalog map is where the correspondence belongs. Any other new +sharing via a *declared* id is caught by the mint-conformance check; sharing through +inheritance carries no declaration to check and surfaces only as a new claim in the snapshot +diff — which is exactly why that diff is the gate. + +`orca_extra_profile_check.py` separately holds every declared id to the AMS 8-character limit, +tree-wide and for every vendor alike, scoped to the presets a vendor's index actually +references (a file the index never loads cannot break AMS matching). Complementing the Python checks, CI also runs the C++ profile validator with `-f` (`check_filament_subtypes`): it loads the bundle exactly as the app does and flags any printer diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index 7ce907f816..d410242277 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -729,6 +729,8 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # -- 8. Bambu catalog map -------------------------------------------------- try: bambu_map = load_json(map_path) + if not isinstance(bambu_map, dict): + raise ValueError("top level is not a JSON object") except (OSError, ValueError) as e: print_error(f"Bambu catalog map {map_path} does not parse ({e}); {BAMBU_MAP_HINT}") errors += 1 @@ -737,7 +739,15 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, if not bambu_map.get(key): print_error(f'Bambu catalog map {map_path} is missing "{key}"; {BAMBU_MAP_HINT}') errors += 1 - rows = bambu_map.get("filaments", {}) + rows = bambu_map.get("filaments") + # An empty or absent section is not a well-formed map: it makes every runtime + # translation silently degrade to identity (BBLPrinterAgent logs nothing for it), + # and it is what a regeneration against the wrong --bambustudio-dir writes. + if not isinstance(rows, dict) or not rows: + print_error(f'Bambu catalog map {map_path} declares no "filaments" rows; ' + f"{BAMBU_MAP_HINT}") + errors += 1 + rows = {} bambu_id_owners = {} for fid, row in sorted(rows.items()): if not OF_ID_RE.match(fid): @@ -745,7 +755,12 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"{BAMBU_MAP_HINT}") errors += 1 bambu_id = row.get("bambu_id") - if bambu_id in bambu_id_owners: + if not bambu_id: + # An empty id would map the empty string to a real filament at runtime. + print_error(f'Bambu catalog map row "{fid}" declares no "bambu_id"; ' + f"{BAMBU_MAP_HINT}") + errors += 1 + elif bambu_id in bambu_id_owners: print_error( f'Bambu catalog map: Bambu id "{bambu_id}" is mapped by both ' f'"{bambu_id_owners[bambu_id]}" and "{fid}"; {BAMBU_MAP_HINT}') diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 3d668d4fc3..b9291e9433 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -682,6 +682,13 @@ class TestCheck8(OfCleanTreeCase): ubfi.write_map(path, rows, "testcommit", "2026-09-04") return path + def _write_raw_map(self, payload): + """Write a map write_map() would never produce (hand-edited or mis-generated).""" + path = os.path.join(self.t.dir, "bambu_filament_ids.json") + with open(path, "w", encoding="utf-8", newline="\n") as f: + json.dump(payload, f, indent=2, ensure_ascii=False, sort_keys=True) + return path + def test_row_triple_must_match_tree(self): fid = afi.generate_filament_id("V", "PLA", "Foo") self.t.write_preset("VendorA", preset("Foo @base", filament_id=fid, @@ -712,6 +719,54 @@ class TestCheck8(OfCleanTreeCase): errors, out = self.t.check(map_path) self.assertEqual(errors, 0, out) + def test_non_object_top_level_is_a_clean_error(self): + # A hand-edited map that is a list (or any non-object) must report the map, + # not raise AttributeError out of the check. + map_path = self._write_raw_map([{"bambu_id": "GFZ00"}]) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn("does not parse", out) + self.assertIn("regenerate the map", out) + + def test_empty_filaments_section_is_an_error(self): + # What a regeneration against the wrong --bambustudio-dir writes: a well-formed + # header with zero rows. At runtime every translation silently becomes identity. + map_path = self._write_map({}) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn('no "filaments" rows', out) + + def test_absent_filaments_section_is_an_error(self): + map_path = self._write_raw_map({ + "source": "https://github.com/bambulab/BambuStudio", + "bambustudio_commit": "testcommit", + "generated": "2026-09-04", + }) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn('no "filaments" rows', out) + + def test_row_without_bambu_id_is_an_error(self): + # Two such rows used to collide on None and be reported as a duplicate id. + map_path = self._write_map({ + "OFaaaaaa": {"vendor": "V", "type": "PLA", "name": "Foo"}, + "OFbbbbbb": {"vendor": "V", "type": "PETG", "name": "Bar"}, + }) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn('"OFaaaaaa" declares no "bambu_id"', out) + self.assertIn('"OFbbbbbb" declares no "bambu_id"', out) + self.assertNotIn("mapped by both", out) + + def test_empty_bambu_id_is_an_error(self): + # "" would land in the runtime map and translate an empty tray id into a filament. + map_path = self._write_map({ + "OFaaaaaa": {"bambu_id": "", "vendor": "V", "type": "PLA", "name": "Foo"}, + }) + errors, out = self.t.check(map_path) + self.assertGreater(errors, 0) + self.assertIn('declares no "bambu_id"', out) + # --------------------------------------------------------------------------- # --update-snapshot diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py index cd5e05e3bc..fc195a3f9c 100644 --- a/scripts/update_bambu_filament_ids.py +++ b/scripts/update_bambu_filament_ids.py @@ -8,9 +8,9 @@ products Bambu ships. The map is generated from BambuStudio's OWN shipped BBL bundle, never from Orca's: Orca's BBL bundle is a fork of Bambu's, tuned and extended independently, so it is not the source of truth for Bambu's catalog ids. -Nothing in OrcaSlicer consumes this map yet; it exists so a later change can -translate an id only where it crosses to or from a Bambu printer, without -hand-maintaining the correspondence. +src/slic3r/Utils/BBLPrinterAgent.cpp loads it at runtime and translates an id +only where it crosses to or from a Bambu printer, so the correspondence never +has to be hand-maintained. See docs/HLSD/filament_id.md. One row per BambuStudio filament PRODUCT: one commercial line = one "@base"-declared filament_id, shared by every per-printer/per-nozzle diff --git a/src/OrcaSlicer.cpp b/src/OrcaSlicer.cpp index 33669abcf2..2e39f802cf 100644 --- a/src/OrcaSlicer.cpp +++ b/src/OrcaSlicer.cpp @@ -100,6 +100,10 @@ using namespace nlohmann; #ifdef SLIC3R_GUI #include "slic3r/GUI/GUI_Init.hpp" + // BBLPrinterAgent::from_orca_filament_id(); the map and its lookups live in libslic3r_gui, + // which only a SLIC3R_GUI build links (see target_link_libraries(OrcaSlicer libslic3r_gui) + // in CMakeLists). + #include "slic3r/Utils/BBLPrinterAgent.hpp" #endif /* SLIC3R_GUI */ using namespace Slic3r; @@ -6504,6 +6508,20 @@ int CLI::run(int argc, char **argv) std::string nozzle_diameter_str; if (nozzle_diameter_option) nozzle_diameter_str = nozzle_diameter_option->serialize(); +#ifdef SLIC3R_GUI + // A Bambu printer reads slice_info.config and knows only its own catalog ids. The GUI + // gates the same translation on PresetBundle::is_bbl_vendor(); the CLI has no + // PresetBundle, so reuse the printer_model prefix that already decides + // Print::is_BBL_printer() for this same run. + auto* printer_model_option = dynamic_cast<const ConfigOptionString*>(m_print_config.option("printer_model")); + const bool is_bbl_printer = printer_model_option && printer_model_option->value.compare(0, 9, "Bambu Lab") == 0; + // No wxApp on the CLI path, so there is no live agent to ask; the translator is stateless + // over a lazily loaded map, so one instance serves every plate and filament below. + // ORCA TODO: this assumes Bambu's is the only agent with a catalog of its own. Once another + // agent carries one, resolve the agent from the selected printer the way + // GUI_App::resolve_printer_agent_id does, rather than hard-coding BBLPrinterAgent here. + const BBLPrinterAgent bbl_agent; +#endif /* SLIC3R_GUI */ for (int i = 0; i < plate_data_list.size(); i++) { PlateData *plate_data = plate_data_list[i]; @@ -6520,6 +6538,10 @@ int CLI::run(int argc, char **argv) it->type = m_print_config.get_filament_type(display_filament_type, it->id); it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF"; it->filament_id = filament_id?filament_id->get_at(it->id):""; +#ifdef SLIC3R_GUI + if (is_bbl_printer) + it->filament_id = bbl_agent.from_orca_filament_id(it->filament_id); +#endif /* SLIC3R_GUI */ } if (!plate_data->plate_thumbnail.is_valid()) { diff --git a/src/slic3r/GUI/AMSDryControl.cpp b/src/slic3r/GUI/AMSDryControl.cpp index a668a33c76..c191e24eac 100644 --- a/src/slic3r/GUI/AMSDryControl.cpp +++ b/src/slic3r/GUI/AMSDryControl.cpp @@ -1511,6 +1511,10 @@ void AMSDryCtrWin::update_filament_guide_info(DevAms* dev_ams) m_temperature_input->GetValue().ToLong(&input_temp); bool can_start = true; + // "GFA00" is Bambu's PLA id; GetFilamentDryingPreset is keyed by our OF ids. + auto* agent = wxGetApp().getAgent(); + const std::string pla_filament_id = agent ? agent->to_orca_filament_id("GFA00") : std::string("GFA00"); + int slot_count = 0, empty_count = 0; for (auto& tray_pair : dev_ams->GetTrays()) { if (!tray_pair.second) { @@ -1526,13 +1530,15 @@ void AMSDryCtrWin::update_filament_guide_info(DevAms* dev_ams) wxString filament_type = tray_pair.second->get_display_filament_type(); DevFilamentDryingPreset preset; if (filament_type.IsEmpty()) { - auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset("GFA00"); + auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset(pla_filament_id); + if (!fallback_preset) continue; // no PLA preset (e.g. the id map is missing): skip, don't throw preset = fallback_preset.value(); filament_type = "?"; } else if (preset_opt.has_value()) { preset = preset_opt.value(); } else { - auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset("GFA00"); + auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset(pla_filament_id); + if (!fallback_preset) continue; preset = fallback_preset.value(); } std::string icon_path = "dev_ams_dry_ctr_enable"; @@ -1683,9 +1689,10 @@ int AMSDryCtrWin::update_filament_list(DevAms* dev_ams, MachineObject* obj) // Select recommended drying temperature and default filament float min_dry_temp = std::numeric_limits<float>::max(); - std::string default_filament_id = "GFA00"; + auto* agent = wxGetApp().getAgent(); + std::string default_filament_id = agent ? agent->to_orca_filament_id("GFA00") : std::string("GFA00"); // compared against m_tray_ids[i].filament_id (our OF ids) below bool has_ready = false; - const auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset("GFA00"); + const auto fallback_preset = DevUtilBackend::GetFilamentDryingPreset(default_filament_id); for (const auto& tray_pair : dev_ams->GetTrays()) { if (!tray_pair.second || !tray_pair.second->is_tray_info_ready()) continue; has_ready = true; diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index ed532e91a8..1748617789 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -815,7 +815,10 @@ void AMSMaterialsSetting::set_color(wxColour color) fila_color.m_colors.insert(color); fila_color.EndSet(m_clr_picker->ctype); auto clr_query = GUI::wxGetApp().get_filament_color_code_query(); - m_clr_name->SetLabelText(clr_query->GetFilaColorName(ams_filament_id, fila_color)); + // ams_filament_id is our OF id; GetFilaColorName looks up filaments_color_codes.json, + // downloaded from Bambu and keyed by the printer's own ids, so translate for this lookup only. + auto* agent = GUI::wxGetApp().getAgent(); + m_clr_name->SetLabelText(clr_query->GetFilaColorName(agent ? agent->from_orca_filament_id(ams_filament_id) : ams_filament_id, fila_color)); } void AMSMaterialsSetting::set_empty_color(wxColour color) @@ -836,7 +839,10 @@ void AMSMaterialsSetting::set_colors(std::vector<wxColour> colors) for (const auto& clr : colors) { fila_color.m_colors.insert(clr); } fila_color.EndSet(m_clr_picker->ctype); auto clr_query = GUI::wxGetApp().get_filament_color_code_query(); - m_clr_name->SetLabelText(clr_query->GetFilaColorName(ams_filament_id, fila_color)); + // ams_filament_id is our OF id; GetFilaColorName looks up filaments_color_codes.json, + // downloaded from Bambu and keyed by the printer's own ids, so translate for this lookup only. + auto* agent = GUI::wxGetApp().getAgent(); + m_clr_name->SetLabelText(clr_query->GetFilaColorName(agent ? agent->from_orca_filament_id(ams_filament_id) : ams_filament_id, fila_color)); } } diff --git a/src/slic3r/GUI/ColorDecomposeSupport.cpp b/src/slic3r/GUI/ColorDecomposeSupport.cpp index e8fb4c9082..6621b97059 100644 --- a/src/slic3r/GUI/ColorDecomposeSupport.cpp +++ b/src/slic3r/GUI/ColorDecomposeSupport.cpp @@ -62,10 +62,16 @@ std::string decompose_basic_type_from_source(size_t source_config_idx, auto& project_config = wxGetApp().preset_bundle->project_config; if (auto* filament_id_opt = project_config.option<ConfigOptionStrings>("filament_id")) { if (source_config_idx < filament_id_opt->values.size()) { - const std::string& filament_id = filament_id_opt->values[source_config_idx]; - if (filament_id == kDecomposePetgFilamentId) + // Dead in practice: "filament_id" is not in PresetBundle's s_project_options, so this + // option() lookup (create=false) always returns null and the block never runs. Kept as + // found, with the translation the values would need: they would be our OF ids, and the + // two constants are the printer's own ids. + auto* agent = wxGetApp().getAgent(); + const std::string& orca_filament_id = filament_id_opt->values[source_config_idx]; + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(orca_filament_id) : orca_filament_id; + if (printer_filament_id == kDecomposePetgFilamentId) return kDecomposePetgBasicType; - if (filament_id == kDecomposePlaFilamentId) + if (printer_filament_id == kDecomposePlaFilamentId) return kDecomposePlaBasicType; } } @@ -82,9 +88,14 @@ std::string decompose_basic_type_from_source(size_t source_config_idx, std::string decompose_basic_filament_id(const std::string& basic_type) { - if (basic_type == kDecomposePetgBasicType) - return kDecomposePetgFilamentId; - return kDecomposePlaFilamentId; + // The result becomes DecomposeOfficialComponent::filament_id, which the rest of this file + // reads as one of our OF ids (translating back before it compares against the printer's + // ids), so translate on the way out; kDecompose*FilamentId itself stays the printer-side + // literal. The only place that would carry it further, project_config's "filament_id", is + // dead code: that key is not in PresetBundle's s_project_options. + const std::string printer_filament_id = basic_type == kDecomposePetgBasicType ? kDecomposePetgFilamentId : kDecomposePlaFilamentId; + auto* agent = wxGetApp().getAgent(); + return agent ? agent->to_orca_filament_id(printer_filament_id) : printer_filament_id; } void set_created_standard_component_metadata(size_t config_idx, const DecomposeOfficialComponent& component) @@ -98,8 +109,11 @@ void set_created_standard_component_metadata(size_t config_idx, const DecomposeO } } - const std::string type = component.filament_id == kDecomposePetgFilamentId ? kDecomposePetgShortType : - component.filament_id == kDecomposePlaFilamentId ? kDecomposePlaShortType : ""; + // component.filament_id is our OF id; the two constants are the printer's own ids. + auto* agent = wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(component.filament_id) : component.filament_id; + const std::string type = printer_filament_id == kDecomposePetgFilamentId ? kDecomposePetgShortType : + printer_filament_id == kDecomposePlaFilamentId ? kDecomposePlaShortType : ""; if (!type.empty()) { if (auto* type_opt = project_config.option<ConfigOptionStrings>("filament_type")) { while (type_opt->values.size() <= config_idx) @@ -151,7 +165,12 @@ DecomposeOfficialComponent lookup_decompose_official_component( continue; if (item.contains("fila_color") && item["fila_color"].is_array() && !item["fila_color"].empty()) result.color_hex = decompose_normalize_color_hex(item["fila_color"][0].get<std::string>()); - result.filament_id = item.value("fila_id", result.filament_id); + // fila_id from this shipped, Bambu-keyed color table is a printer-side id; translate it so + // result.filament_id stays an OF id like the rest of this struct (the fallback default, + // result.filament_id, is already OF and passes through unchanged). + const std::string fila_id = item.value("fila_id", result.filament_id); + auto* agent = wxGetApp().getAgent(); + result.filament_id = agent ? agent->to_orca_filament_id(fila_id) : fila_id; return result; } } @@ -211,8 +230,11 @@ int find_existing_decompose_component( auto* type_opt = project_config.option<ConfigOptionStrings>("filament_type"); const PresetBundle& preset_bundle = *wxGetApp().preset_bundle; const size_t num_physical = physical_colors.size(); - const std::string expected_basic_type = component.filament_id == kDecomposePetgFilamentId ? kDecomposePetgBasicType : - component.filament_id == kDecomposePlaFilamentId ? kDecomposePlaBasicType : ""; + // component.filament_id is our OF id; the two constants are the printer's own ids. + auto* agent = wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(component.filament_id) : component.filament_id; + const std::string expected_basic_type = printer_filament_id == kDecomposePetgFilamentId ? kDecomposePetgBasicType : + printer_filament_id == kDecomposePlaFilamentId ? kDecomposePlaBasicType : ""; const std::string expected_short_type = expected_basic_type == kDecomposePetgBasicType ? kDecomposePetgShortType : expected_basic_type == kDecomposePlaBasicType ? kDecomposePlaShortType : ""; const std::string expected_preset_part = expected_basic_type.empty() ? "" : std::string(kDecomposeBambuPresetPrefix) + expected_basic_type; diff --git a/src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp b/src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp index e75622720c..b59499d9d9 100644 --- a/src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp +++ b/src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp @@ -241,8 +241,11 @@ void check_filaments(const DevFilaBlacklist::CheckFilamentInfo& check_info, DevF std::set<std::string> white_fila_ids = filament_item.contains("white_fila_ids") ? filament_item["white_fila_ids"].get<std::set<std::string>>() : std::set<std::string>(); if (!white_fila_ids.empty() && !check_info.fila_id.empty()) { - auto it = std::find_if(white_fila_ids.begin(), white_fila_ids.end(), [&check_info](const std::string& white_fila_id) { - return white_fila_id == check_info.fila_id; + // check_info.fila_id is our OF id; white_fila_ids in filaments_blacklist.json holds the printer's own. + auto* agent = Slic3r::GUI::wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(check_info.fila_id) : check_info.fila_id; + auto it = std::find_if(white_fila_ids.begin(), white_fila_ids.end(), [&printer_filament_id](const std::string& white_fila_id) { + return white_fila_id == printer_filament_id; }); if (it != white_fila_ids.end()) { continue; } } diff --git a/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp b/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp index 806af9d5f0..e0a230969b 100644 --- a/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp +++ b/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp @@ -5,6 +5,7 @@ // TODO: remove this include #include "slic3r/GUI/DeviceManager.hpp" #include "slic3r/GUI/I18N.hpp" +#include "slic3r/GUI/GUI_App.hpp" #include "DevUtil.h" #include "DevUtilBackend.h" @@ -95,7 +96,12 @@ std::string DevAmsTray::get_filament_type() if (m_fila_type == "Sup.ABS") { return "ABS-S"; } if (m_fila_type == "Support W") { return "PLA-S"; } if (m_fila_type == "Support G") { return "PA-S"; } - if (m_fila_type == "Support") { if (setting_id == "GFS00") { m_fila_type = "PLA-S"; } else if (setting_id == "GFS01") { m_fila_type = "PA-S"; } else { return "PLA-S"; } } + // setting_id is our OF id; GFS00/GFS01 are the printer's own support-filament ids. + if (m_fila_type == "Support") { + auto* agent = GUI::wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(setting_id) : setting_id; + if (printer_filament_id == "GFS00") { m_fila_type = "PLA-S"; } else if (printer_filament_id == "GFS01") { m_fila_type = "PA-S"; } else { return "PLA-S"; } + } return m_fila_type; } @@ -654,11 +660,14 @@ void DevFilaSystemParser::ParseV1_0(const json& jj, MachineObject* obj, DevFilaS curr_tray->setting_id = (*tray_it)["tray_info_idx"].get<std::string>(); //std::string type = (*tray_it)["tray_type"].get<std::string>(); std::string type = MachineObject::setting_id_to_type(curr_tray->setting_id, (*tray_it)["tray_type"].get<std::string>()); - if (curr_tray->setting_id == "GFS00") + // curr_tray->setting_id is our OF id; GFS00/GFS01 are the printer's own support-filament ids. + auto* agent = GUI::wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(curr_tray->setting_id) : curr_tray->setting_id; + if (printer_filament_id == "GFS00") { curr_tray->m_fila_type = "PLA-S"; } - else if (curr_tray->setting_id == "GFS01") + else if (printer_filament_id == "GFS01") { curr_tray->m_fila_type = "PA-S"; } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index b28e410557..782574c220 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -110,7 +110,9 @@ bool Slic3r::is_stringing_prone_filament(const std::string& filament_id, float n if (filament_id.empty()) return false; const auto* set = pick_stringing_set(nozzle_diameter); if (!set) return false; - return set->count(filament_id) > 0; + // filament_id is one of our content-addressed OF ids; the table above is keyed by the printer's own. + auto* agent = Slic3r::GUI::wxGetApp().getAgent(); + return set->count(agent ? agent->from_orca_filament_id(filament_id) : filament_id) > 0; } wxString Slic3r::get_stage_string(int stage) @@ -5048,10 +5050,13 @@ DevAmsTray MachineObject::parse_vt_tray(json vtray) vt_tray.setting_id = vtray["tray_info_idx"].get<std::string>(); //std::string type = vtray["tray_type"].get<std::string>(); std::string type = setting_id_to_type(vt_tray.setting_id, vtray["tray_type"].get<std::string>()); - if (vt_tray.setting_id == "GFS00") { + // vt_tray.setting_id is our OF id (translated on the way in); the two support ids below are the printer's own. + auto* agent = GUI::wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(vt_tray.setting_id) : vt_tray.setting_id; + if (printer_filament_id == "GFS00") { vt_tray.m_fila_type = "PLA-S"; } - else if (vt_tray.setting_id == "GFS01") { + else if (printer_filament_id == "GFS01") { vt_tray.m_fila_type = "PA-S"; } else { diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0347803dbc..ff10b26b6d 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -8823,6 +8823,11 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_ if (wipe_tower_y_opt) file_wipe_tower_y = *wipe_tower_y_opt; + if (auto* agent = wxGetApp().getAgent()) { + if (auto* ids = config.opt<ConfigOptionStrings>("filament_ids")) + for (std::string& id : ids->values) + id = agent->to_orca_filament_id(id); + } preset_bundle->load_config_model(filename.string(), std::move(config), file_version); ConfigOption* bed_type_opt = preset_bundle->project_config.option("curr_bed_type"); @@ -18669,6 +18674,8 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy nozzle_diameter_str = nozzle_diameter_option->serialize(); std::string printer_model_id = preset_bundle.printers.get_edited_preset().get_printer_type(&preset_bundle); + // The printer reads slice_info.config and knows only its own catalog ids. + auto* id_agent = preset_bundle.is_bbl_vendor() ? wxGetApp().getAgent() : nullptr; for (int i = 0; i < plate_data_list.size(); i++) { PlateData *plate_data = plate_data_list[i]; @@ -18678,6 +18685,8 @@ int Plater::export_3mf(const boost::filesystem::path& output_path, SaveStrategy std::string display_filament_type; it->type = cfg.get_filament_type(display_filament_type, it->id); it->filament_id = filament_id_opt ? filament_id_opt->get_at(it->id) : ""; + if (id_agent) + it->filament_id = id_agent->from_orca_filament_id(it->filament_id); it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF"; // save filament info used in curr plate int index = p->partplate_list.get_curr_plate_index(); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 837f4ebe0c..ac419073d7 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -873,10 +873,15 @@ PlaterPresetComboBox::PlaterPresetComboBox(wxWindow *parent, Preset::Type preset auto fila_type = Preset::remove_suffix_modified(GetValue().ToUTF8().data()); bool is_official = boost::algorithm::starts_with(fila_type, "Bambu"); if (is_official) { - // Get filament_id from filament_presets + // Get filament_id from filament_presets. FilamentPickerDialog looks up + // filaments_color_codes.json, which is downloaded from Bambu and keyed by the + // printer's own ids, so translate our OF id (the "GFA00" fallback is already one). const std::string& preset_name = m_preset_bundle->filament_presets[m_filament_idx]; const Preset* selected_preset = m_collection->find_preset(preset_name); - wxString fila_id = selected_preset ? wxString::FromUTF8(selected_preset->filament_id) : "GFA00"; + auto* agent = wxGetApp().getAgent(); + wxString fila_id = "GFA00"; + if (selected_preset) + fila_id = wxString::FromUTF8(agent ? agent->from_orca_filament_id(selected_preset->filament_id) : selected_preset->filament_id); FilamentColor fila_color = get_cur_color_info(); // Show filament picker dialog diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 199de9236e..e70ba84225 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3845,8 +3845,12 @@ int SelectMachineDialog::update_print_required_data(Slic3r::DynamicPrintConfig c m_required_data_config = config; m_required_data_model = model; //m_required_data_plate_data_list = plate_data_list; + auto* agent = wxGetApp().getAgent(); for (auto i = 0; i < plate_data_list.size(); i++) { if (!plate_data_list[i]->gcode_file.empty()) { + if (agent) + for (auto& info : plate_data_list[i]->slice_filaments_info) + info.filament_id = agent->to_orca_filament_id(info.filament_id); m_required_data_plate_data_list.push_back(plate_data_list[i]); } } @@ -5051,8 +5055,11 @@ void SelectMachineDialog::update_show_status(MachineObject* obj_) const auto& warning_tpu_filaments = DevPrinterConfigUtil::get_value_from_config<std::vector<std::string>>(obj_->printer_type, "auto_on_cali_warning_tpu_filaments"); if (!warning_tpu_filaments.empty()) { + auto* agent = wxGetApp().getAgent(); for (const auto& fila : m_ams_mapping_result) { - if (std::find(warning_tpu_filaments.begin(), warning_tpu_filaments.end(), fila.filament_id) != warning_tpu_filaments.end()) { + // fila.filament_id is our OF id; the printer config list holds the printer's own. + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(fila.filament_id) : fila.filament_id; + if (std::find(warning_tpu_filaments.begin(), warning_tpu_filaments.end(), printer_filament_id) != warning_tpu_filaments.end()) { show_status(PrintDialogStatus::PrintStatusTPUUnsuggestCali, { _L("If 'Dynamic Flow Calibration' is set to Auto/On, the system will use the manual calibration value or the default value and skip the flow calibration process. You can perform a manual flow calibration for TPU filament on the 'Calibration' page.") }); break; @@ -5208,9 +5215,12 @@ bool SelectMachineDialog::can_support_pa_auto_cali() std::vector<std::string> unsupport_auto_cali_filaments = DevPrinterConfigUtil::get_unsupport_auto_cali_filaments(obj->printer_type); if (!unsupport_auto_cali_filaments.empty()) { + auto* agent = wxGetApp().getAgent(); auto iter = std::find_if(m_filaments.begin(), m_filaments.end(), - [&unsupport_auto_cali_filaments](const FilamentInfo &item) { - auto iter = std::find(unsupport_auto_cali_filaments.begin(), unsupport_auto_cali_filaments.end(), item.filament_id); + [&unsupport_auto_cali_filaments, agent](const FilamentInfo &item) { + // item.filament_id is our OF id; the printer config list holds the printer's own. + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(item.filament_id) : item.filament_id; + auto iter = std::find(unsupport_auto_cali_filaments.begin(), unsupport_auto_cali_filaments.end(), printer_filament_id); return iter != unsupport_auto_cali_filaments.end(); }); diff --git a/src/slic3r/Utils/BBLPrinterAgent.cpp b/src/slic3r/Utils/BBLPrinterAgent.cpp index ef85e0a1ff..5e73edf84c 100644 --- a/src/slic3r/Utils/BBLPrinterAgent.cpp +++ b/src/slic3r/Utils/BBLPrinterAgent.cpp @@ -1,11 +1,121 @@ #include "BBLPrinterAgent.hpp" #include "BBLNetworkPlugin.hpp" #include "NetworkAgentFactory.hpp" +#include "libslic3r/Utils.hpp" #include <boost/log/trivial.hpp> +#include <boost/nowide/fstream.hpp> +#include <nlohmann/json.hpp> +using json = nlohmann::json; + +#include <unordered_map> namespace Slic3r { +namespace { + +// Bambu's own catalog ids for every filament this app ships, Bambu's own included, since Orca +// content-addresses those too. Keyed both ways so each of the four translation entry points +// below is a single lookup. Loaded once per process, on first use. A missing or malformed file +// logs once and leaves both maps empty, so every translation degrades to identity. Same shape +// as DevFilaBlacklist::load_filaments_blacklist_config. +struct BambuFilamentIdMap { std::unordered_map<std::string, std::string> to_bambu, to_orca; }; + +const BambuFilamentIdMap& bambu_filament_id_map() +{ + static const BambuFilamentIdMap map = [] { + BambuFilamentIdMap m; + const std::string path = resources_dir() + "/printers/bambu_filament_ids.json"; + try { + boost::nowide::ifstream file(path); + if (!file.is_open()) { + BOOST_LOG_TRIVIAL(warning) << "Bambu filament id map not found, ids pass through untranslated: " << path; + return m; + } + json doc; + file >> doc; + for (const auto& [orca_filament_id, row] : doc.at("filaments").items()) { + const std::string bambu_id = row.at("bambu_id").get<std::string>(); + m.to_bambu.emplace(orca_filament_id, bambu_id); + m.to_orca.emplace(bambu_id, orca_filament_id); + } + } catch (const std::exception& e) { + BOOST_LOG_TRIVIAL(error) << "Bambu filament id map unreadable, ids pass through untranslated: " << e.what(); + m = {}; + } + return m; + }(); + return map; +} + +// Rewrites every string under "tray_info_idx", "filament_id" or "filamentId", at any depth, in place. +void rewrite_filament_ids(json& j, const std::unordered_map<std::string, std::string>& map) +{ + if (j.is_object()) { + for (auto& [key, value] : j.items()) { + if (value.is_string() && (key == "tray_info_idx" || key == "filament_id" || key == "filamentId")) { + auto it = map.find(value.get_ref<const std::string&>()); + if (it != map.end()) + value = it->second; + } else + rewrite_filament_ids(value, map); + } + } else if (j.is_array()) + for (auto& element : j) + rewrite_filament_ids(element, map); +} + +// Text that does not parse as JSON, or that mentions none of the id keys, comes back byte-identical. +std::string rewrite_filament_ids(std::string text, const std::unordered_map<std::string, std::string>& map) +{ + if (map.empty() || (text.find("tray_info_idx") == std::string::npos && text.find("filament_id") == std::string::npos && + text.find("filamentId") == std::string::npos)) + return text; // nothing to map, skip the parse (moved, not copied) + try { + json j = json::parse(text); + rewrite_filament_ids(j, map); + return j.dump(); + } catch (const std::exception&) { + return text; // not JSON: forward as received + } +} + +// Wraps an inbound message callback so every Bambu id it delivers arrives already translated. +// A null fn is a deregistration (see GUI_App.cpp's shutdown phase 1 and NetworkAgent::apply_printer_callbacks +// clearing callbacks with {}), and must stay null rather than become a live wrapper around an empty target. +OnMessageFn to_orca_messages(OnMessageFn fn) +{ + if (!fn) + return fn; + return [fn = std::move(fn)](std::string dev_id, std::string msg) { fn(std::move(dev_id), BBLPrinterAgent::to_orca_payload(std::move(msg))); }; +} + +} // namespace + +std::string BBLPrinterAgent::to_orca_filament_id(const std::string& printer_filament_id) const +{ + const auto& map = bambu_filament_id_map().to_orca; + auto it = map.find(printer_filament_id); + return it != map.end() ? it->second : printer_filament_id; +} + +std::string BBLPrinterAgent::from_orca_filament_id(const std::string& orca_filament_id) const +{ + const auto& map = bambu_filament_id_map().to_bambu; + auto it = map.find(orca_filament_id); + return it != map.end() ? it->second : orca_filament_id; +} + +std::string BBLPrinterAgent::to_orca_payload(std::string json_text) +{ + return rewrite_filament_ids(std::move(json_text), bambu_filament_id_map().to_orca); +} + +std::string BBLPrinterAgent::from_orca_payload(std::string json_text) +{ + return rewrite_filament_ids(std::move(json_text), bambu_filament_id_map().to_bambu); +} + BBLPrinterAgent::BBLPrinterAgent() = default; BBLPrinterAgent::~BBLPrinterAgent() = default; @@ -22,6 +132,7 @@ void BBLPrinterAgent::set_cloud_agent(std::shared_ptr<ICloudServiceAgent> cloud) int BBLPrinterAgent::send_message(std::string dev_id, std::string json_str, int qos, int flag) { + json_str = from_orca_payload(std::move(json_str)); auto& plugin = BBLNetworkPlugin::instance(); auto agent = plugin.get_agent(); auto func = plugin.get_send_message(); @@ -67,6 +178,7 @@ int BBLPrinterAgent::disconnect_printer() int BBLPrinterAgent::send_message_to_printer(std::string dev_id, std::string json_str, int qos, int flag) { + json_str = from_orca_payload(std::move(json_str)); auto& plugin = BBLNetworkPlugin::instance(); auto agent = plugin.get_agent(); auto func = plugin.get_send_message_to_printer(); @@ -321,6 +433,7 @@ int dispatch_start(CurrentFn func, PrintParams& params, const CallbackFns&... ca auto agent = plugin.get_agent(); if (!func || !agent) return -1; + params.ams_mapping_info = BBLPrinterAgent::from_orca_payload(std::move(params.ams_mapping_info)); switch (plugin.network_abi()) { case NetworkAbi::Legacy: return reinterpret_cast<LegacyFn>(func)(agent, BBLNetworkPlugin::as_legacy(params), callbacks...); @@ -408,7 +521,7 @@ int BBLPrinterAgent::set_on_message_fn(OnMessageFn fn) auto agent = plugin.get_agent(); auto func = plugin.get_set_on_message_fn(); if (func && agent) { - return func(agent, fn); + return func(agent, to_orca_messages(std::move(fn))); } return -1; } @@ -441,7 +554,7 @@ int BBLPrinterAgent::set_on_local_message_fn(OnMessageFn fn) auto agent = plugin.get_agent(); auto func = plugin.get_set_on_local_message_fn(); if (func && agent) { - return func(agent, fn); + return func(agent, to_orca_messages(std::move(fn))); } return -1; } diff --git a/src/slic3r/Utils/BBLPrinterAgent.hpp b/src/slic3r/Utils/BBLPrinterAgent.hpp index a8880bf6bf..83e21bb6d8 100644 --- a/src/slic3r/Utils/BBLPrinterAgent.hpp +++ b/src/slic3r/Utils/BBLPrinterAgent.hpp @@ -84,6 +84,20 @@ public: int set_queue_on_main_fn(QueueOnMainFn fn) override; FilamentSyncMode get_filament_sync_mode() const override; + // Bambu's own catalog ids. Orca content-addresses every system filament, Bambu's included; + // the printer, the AMS and Bambu's cloud know only Bambu's ids, so this agent translates at + // the boundary through resources/printers/bambu_filament_ids.json (generated by + // scripts/update_bambu_filament_ids.py). An id without a map row is returned as it is. + std::string to_orca_filament_id(const std::string& printer_filament_id) const override; + std::string from_orca_filament_id(const std::string& orca_filament_id) const override; + + // Rewrite every string under "tray_info_idx", "filament_id" or "filamentId", at any depth, + // in a JSON document (an MQTT payload or PrintParams::ams_mapping_info). Text that does not + // parse, or contains none of the keys, is returned unchanged. + // Taken by value: most outbound traffic carries no filament id and is moved straight back out. + static std::string to_orca_payload(std::string json_text); + static std::string from_orca_payload(std::string json_text); + private: std::shared_ptr<ICloudServiceAgent> m_cloud_agent; }; diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index 473f62337f..499228d13c 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -62,22 +62,29 @@ std::vector<std::string> not_support_auto_pa_cali_filaments = { void get_default_k_n_value(const std::string &filament_id, float &k, float &n) { - if (filament_id.compare("GFU01") == 0) { + // filament_id is our OF id; the literals below are the printer's own. An id the agent has + // no mapping for (e.g. a caller still on the old id) passes through unchanged. + auto* agent = wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(filament_id) : filament_id; + if (printer_filament_id.compare("GFU01") == 0) { /* TPU 95A */ k = 0.25; n = 1.0; - } else if (filament_id.compare("GFU03") == 0) { + } else if (printer_filament_id.compare("GFU03") == 0) { /* TPU 90A */ k = 0.35; n = 1.0; - } else if (filament_id.compare("GFU04") == 0) { + } else if (printer_filament_id.compare("GFU04") == 0) { /* TPU 85A */ k = 0.65; n = 1.0; - } else if (filament_id.compare("GFG00") == 0 || filament_id.compare("GFG01") == 0 || filament_id.compare("GFG60") == 0 || filament_id.compare("GFL06") == 0 || - filament_id.compare("GFL55") == 0 || filament_id.compare("GFG99") == 0 || filament_id.compare("GFG98") == 0 || filament_id.compare("GFG97") == 0 || - filament_id.compare("GFG50") == 0 || filament_id.compare("GFU02") == 0 || filament_id.compare("GFU98") == 0 || filament_id.compare("GFS00") == 0 || - filament_id.compare("GFS02") == 0) { + } else if (printer_filament_id.compare("GFG00") == 0 || printer_filament_id.compare("GFG01") == 0 || + printer_filament_id.compare("GFG60") == 0 || printer_filament_id.compare("GFL06") == 0 || + printer_filament_id.compare("GFL55") == 0 || printer_filament_id.compare("GFG99") == 0 || + printer_filament_id.compare("GFG98") == 0 || printer_filament_id.compare("GFG97") == 0 || + printer_filament_id.compare("GFG50") == 0 || printer_filament_id.compare("GFU02") == 0 || + printer_filament_id.compare("GFU98") == 0 || printer_filament_id.compare("GFS00") == 0 || + printer_filament_id.compare("GFS02") == 0) { /* 0.04 filaments */ k = 0.04; n = 1.0; @@ -1393,7 +1400,10 @@ void CalibUtils::calib_retraction(const CalibInfo &calib_info, wxString &error_m bool CalibUtils::is_support_auto_pa_cali(std::string filament_id) { - auto iter = std::find(not_support_auto_pa_cali_filaments.begin(), not_support_auto_pa_cali_filaments.end(), filament_id); + // filament_id is our OF id; not_support_auto_pa_cali_filaments holds the printer's own ids. + auto* agent = wxGetApp().getAgent(); + const std::string printer_filament_id = agent ? agent->from_orca_filament_id(filament_id) : filament_id; + auto iter = std::find(not_support_auto_pa_cali_filaments.begin(), not_support_auto_pa_cali_filaments.end(), printer_filament_id); if (iter != not_support_auto_pa_cali_filaments.end()) { return false; } diff --git a/src/slic3r/Utils/IPrinterAgent.hpp b/src/slic3r/Utils/IPrinterAgent.hpp index 0fa3616344..1f0d45dc1e 100644 --- a/src/slic3r/Utils/IPrinterAgent.hpp +++ b/src/slic3r/Utils/IPrinterAgent.hpp @@ -290,6 +290,16 @@ public: * Populates the MachineObject's DevFilaSystem with fetched filament data. */ virtual bool fetch_filament_info(std::string dev_id) { return false; } + + /** + * Translate one filament id across the printer boundary. + * + * Orca content-addresses every system filament; a printer, its AMS and its vendor cloud + * know only that vendor's own catalog ids. An agent whose printers already speak Orca's + * ids leaves them alone, and so does an id with no mapping. + */ + virtual std::string to_orca_filament_id(const std::string& printer_filament_id) const { return printer_filament_id; } + virtual std::string from_orca_filament_id(const std::string& orca_filament_id) const { return orca_filament_id; } }; } // namespace Slic3r diff --git a/src/slic3r/Utils/NetworkAgent.cpp b/src/slic3r/Utils/NetworkAgent.cpp index 0d77e5e660..b15e10c591 100644 --- a/src/slic3r/Utils/NetworkAgent.cpp +++ b/src/slic3r/Utils/NetworkAgent.cpp @@ -929,6 +929,20 @@ bool NetworkAgent::fetch_filament_info(std::string dev_id) return false; } +std::string NetworkAgent::to_orca_filament_id(const std::string& printer_filament_id) const +{ + if (m_printer_agent) + return m_printer_agent->to_orca_filament_id(printer_filament_id); + return printer_filament_id; +} + +std::string NetworkAgent::from_orca_filament_id(const std::string& orca_filament_id) const +{ + if (m_printer_agent) + return m_printer_agent->from_orca_filament_id(orca_filament_id); + return orca_filament_id; +} + int NetworkAgent::request_bind_ticket(std::string* ticket) { if (m_printer_agent) diff --git a/src/slic3r/Utils/NetworkAgent.hpp b/src/slic3r/Utils/NetworkAgent.hpp index d7032b7a20..76128073a4 100644 --- a/src/slic3r/Utils/NetworkAgent.hpp +++ b/src/slic3r/Utils/NetworkAgent.hpp @@ -165,6 +165,8 @@ public: int start_sdcard_print(PrintParams params, OnUpdateStatusFn update_fn, WasCancelledFn cancel_fn); FilamentSyncMode get_filament_sync_mode() const; bool fetch_filament_info(std::string dev_id); + std::string to_orca_filament_id(const std::string& printer_filament_id) const; + std::string from_orca_filament_id(const std::string& orca_filament_id) const; int request_bind_ticket(std::string* ticket); int get_hms_snapshot(std::string dev_id, std::string file_name, std::function<void(std::string, int)> callback); diff --git a/tests/slic3rutils/CMakeLists.txt b/tests/slic3rutils/CMakeLists.txt index eca1af2b86..2ab78f56de 100644 --- a/tests/slic3rutils/CMakeLists.txt +++ b/tests/slic3rutils/CMakeLists.txt @@ -1,6 +1,7 @@ get_filename_component(_TEST_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) add_executable(${_TEST_NAME}_tests ${_TEST_NAME}_tests_main.cpp + test_bambu_filament_ids.cpp test_creality_cfs_match.cpp test_dev_mapping.cpp test_filament_bitmap_utils.cpp diff --git a/tests/slic3rutils/test_bambu_filament_ids.cpp b/tests/slic3rutils/test_bambu_filament_ids.cpp new file mode 100644 index 0000000000..5f6215d7ca --- /dev/null +++ b/tests/slic3rutils/test_bambu_filament_ids.cpp @@ -0,0 +1,81 @@ +#include <catch2/catch_all.hpp> +#include <boost/filesystem.hpp> +#include <boost/nowide/fstream.hpp> +#include <nlohmann/json.hpp> + +#include "libslic3r/Utils.hpp" +#include "slic3r/Utils/BBLPrinterAgent.hpp" +#include "slic3r/Utils/OrcaPrinterAgent.hpp" + +using json = nlohmann::json; +using namespace Slic3r; + +namespace { + +// Point resources_dir() at the repo's own tree for the lifetime of a test and restore it +// afterwards, mirroring ScopedResourcesDir (which only ever makes a throwaway directory). +// PROFILES_DIR is <repo>/resources/profiles; the map lives in <repo>/resources/printers. +struct ScopedRepoResourcesDir +{ + std::string previous{resources_dir()}; + + ScopedRepoResourcesDir() { set_resources_dir(boost::filesystem::path(PROFILES_DIR).parent_path().string()); } + ~ScopedRepoResourcesDir() { set_resources_dir(previous); } + + ScopedRepoResourcesDir(const ScopedRepoResourcesDir&) = delete; + ScopedRepoResourcesDir& operator=(const ScopedRepoResourcesDir&) = delete; +}; + +std::string orca_id_of(const std::string& bambu_id) +{ + boost::nowide::ifstream file(resources_dir() + "/printers/bambu_filament_ids.json"); + json doc; + file >> doc; + for (const auto& [orca_id, row] : doc["filaments"].items()) + if (row["bambu_id"] == bambu_id) + return orca_id; + FAIL("no map row for " << bambu_id); + return {}; +} + +} // namespace + +TEST_CASE("Bambu filament id map is one-to-one and leaves unmapped ids alone", "[BambuFilamentIds]") +{ + const ScopedRepoResourcesDir repo_resources; + const BBLPrinterAgent bbl; + const std::string abs = orca_id_of("GFB00"); // Bambu ABS + REQUIRE(abs.rfind("OF", 0) == 0); + CHECK(bbl.from_orca_filament_id(abs) == "GFB00"); + CHECK(bbl.to_orca_filament_id("GFB00") == abs); + CHECK(bbl.from_orca_filament_id("OFnotarow") == "OFnotarow"); + CHECK(bbl.to_orca_filament_id("GFZZ99") == "GFZZ99"); // Bambu id we do not ship + CHECK(bbl.to_orca_filament_id("P1234567") == "P1234567"); // user root + CHECK(bbl.from_orca_filament_id("") == ""); + + // An agent whose printers already speak our ids inherits IPrinterAgent's identity default. + const OrcaPrinterAgent other{""}; + CHECK(other.from_orca_filament_id(abs) == abs); + CHECK(other.to_orca_filament_id("GFB00") == "GFB00"); +} + +TEST_CASE("Payload rewrite covers nested trays, calibration lists and mapping info", "[BambuFilamentIds]") +{ + const ScopedRepoResourcesDir repo_resources; + const std::string abs = orca_id_of("GFB00"), pla = orca_id_of("GFA00"); + const std::string status = + R"({"print":{"ams":{"ams":[{"tray":[{"tray_info_idx":"GFB00"},{"tray_info_idx":"GFZZ99"}]}]},)" + R"("vt_tray":{"tray_info_idx":"GFA00"},"filaments":[{"filament_id":"GFA00","setting_id":"GFB00"}]}})"; + json inbound = json::parse(BBLPrinterAgent::to_orca_payload(status)); + CHECK(inbound["print"]["ams"]["ams"][0]["tray"][0]["tray_info_idx"] == abs); + CHECK(inbound["print"]["ams"]["ams"][0]["tray"][1]["tray_info_idx"] == "GFZZ99"); // no row: untouched + CHECK(inbound["print"]["vt_tray"]["tray_info_idx"] == pla); + CHECK(inbound["print"]["filaments"][0]["filament_id"] == pla); + CHECK(inbound["print"]["filaments"][0]["setting_id"] == "GFB00"); // not an id key: has a map row but must stay put + CHECK(json::parse(BBLPrinterAgent::from_orca_payload(inbound.dump())) == json::parse(status)); // round trip + + const std::string mapping = R"([{"ams":0,"filamentId":")" + abs + R"(","filamentType":"ABS"}])"; + CHECK(BBLPrinterAgent::from_orca_payload(mapping) == R"([{"ams":0,"filamentId":"GFB00","filamentType":"ABS"}])"); + CHECK(BBLPrinterAgent::from_orca_payload("not json") == "not json"); + CHECK(BBLPrinterAgent::from_orca_payload(R"({"print":{"command":"pushall"}})") == R"({"print":{"command":"pushall"}})"); +} From bf20b041e273f435649b1d6be969e20d41ba09dd Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Sat, 5 Sep 2026 23:07:49 +0800 Subject: [PATCH 145/164] Make a filament's id depend only on the filament itself MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A filament_id is now exactly what the preset's own filament_vendor, filament_type and filament name mint, wherever it inherits from. Inheriting settings no longer limits what a preset may claim, so the checks that policed inheritance are gone, and so are the four grandfather lists that held thousands of presets as permanent exceptions. The snapshot records sanctioned state rather than excuses: one entry per id, carrying the product it names beside the presets claiming it. Profiles that disagreed are corrected instead of excused. The Elegoo TPU and PAHT roots were named for a different product than all of their variants and become TPU 95A and PAHT-CF; Elegoo PET-CF gains the filament_type its variants already set; the Snapmaker breakaway support presets get an id of their own rather than riding the PVA chain; and a BBL preset name carrying a doubled space is fixed behind renamed_from. Their ids re-mint from the corrected identities. The tooling and the design note also drop the word "family", which invited reading a brand's Lite and Pro spools as one id. No change to slicing output — only filament_id values, three preset names, the inherits lines following those renames and the vendor indexes move. --- docs/HLSD/filament_id.md | 195 +- resources/profiles/BBL.json | 2 +- .../COEX/COEX NYLEX UNFILLED @BBL X1C.json | 3 +- resources/profiles/Elegoo.json | 8 +- ...T @base.json => Elegoo PAHT-CF @base.json} | 4 +- .../filament/BASE/Elegoo PET-CF @base.json | 7 +- .../BASE/Elegoo Rapid TPU 95A @base.json | 2 +- ...U @base.json => Elegoo TPU 95A @base.json} | 4 +- .../filament/EC/Elegoo PAHT-CF @EC.json | 2 +- .../filament/EC/Elegoo TPU 95A @EC.json | 2 +- .../filament/EC2/Elegoo PAHT-CF @EC2.json | 2 +- .../filament/EC2/Elegoo TPU 95A @EC2.json | 2 +- .../filament/ECC/Elegoo PAHT-CF @ECC.json | 2 +- .../filament/ECC/Elegoo TPU 95A @ECC.json | 2 +- .../filament/ECC2/Elegoo PAHT-CF @ECC2.json | 2 +- .../filament/ECC2/Elegoo TPU 95A @ECC2.json | 2 +- .../EN3SERIES/Elegoo TPU 95A @EN3 Series.json | 2 +- .../EN4SERIES/Elegoo TPU 95A @EN4 Series.json | 2 +- resources/profiles/OrcaFilamentLibrary.json | 8 +- .../Elegoo/Elegoo PAHT-CF @System.json | 2 +- ...T @base.json => Elegoo PAHT-CF @base.json} | 4 +- .../filament/Elegoo/Elegoo PET-CF @base.json | 7 +- .../Elegoo/Elegoo Rapid TPU 95A @base.json | 2 +- .../Elegoo/Elegoo TPU 95A @System.json | 2 +- ...U @base.json => Elegoo TPU 95A @base.json} | 4 +- ...akaway Support For PLA @U1 0.2 nozzle.json | 1 + ...akaway Support For PLA @U1 0.6 nozzle.json | 1 + ...akaway Support For PLA @U1 0.8 nozzle.json | 1 + ...apmaker Breakaway Support For PLA @U1.json | 1 + scripts/assign_filament_ids.py | 574 +- scripts/filament_id_snapshot.json | 21107 ++++++---------- scripts/tests/test_filament_id.py | 290 +- scripts/update_bambu_filament_ids.py | 47 +- 33 files changed, 8463 insertions(+), 13833 deletions(-) rename resources/profiles/Elegoo/filament/BASE/{Elegoo PAHT @base.json => Elegoo PAHT-CF @base.json} (94%) rename resources/profiles/Elegoo/filament/BASE/{Elegoo TPU @base.json => Elegoo TPU 95A @base.json} (85%) rename resources/profiles/OrcaFilamentLibrary/filament/Elegoo/{Elegoo PAHT @base.json => Elegoo PAHT-CF @base.json} (95%) rename resources/profiles/OrcaFilamentLibrary/filament/Elegoo/{Elegoo TPU @base.json => Elegoo TPU 95A @base.json} (89%) diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md index 4c1c1f7443..eaf9de4a6c 100644 --- a/docs/HLSD/filament_id.md +++ b/docs/HLSD/filament_id.md @@ -1,19 +1,21 @@ # Filament IDs (`filament_id`) -`filament_id` identifies a **material family**: one commercial product line = one id, shared by -all of that material's per-printer / per-nozzle variants, in every profile bundle that ships it. +`filament_id` identifies one **filament product**: one named spool product = one id, shared by +all of that product's per-printer / per-nozzle variants, in every profile bundle that ships it. Devices use it to match a physical spool or tray to a filament preset. It is never per-color, per-printer, per-nozzle, or per-preset (per-preset identity is `setting_id`), and it is never per-bundle either — PolyLite PLA carries the same id whether the preset lives in the -OrcaFilamentLibrary (OFL), Qidi, or Snapmaker bundle. +OrcaFilamentLibrary (OFL), Qidi, or Snapmaker bundle. The granularity is the name on the spool, +not the brand behind it: `AAA PLA Lite` and `AAA PLA Pro` are two filaments with two ids, not +variants of one. **How it is generated:** an id is computed, never invented. `scripts/assign_filament_ids.py` mints it as a deterministic hash of the product's identity — the triple -`(filament_vendor, filament_type, family name)`, where the family name is the preset name +`(filament_vendor, filament_type, filament name)`, where the filament name is the preset name with its `@...` variant suffix stripped — producing an 8-character `OF*` code that is the same for that product in every bundle, in every PR, on every machine. For example, Polymaker's PolyLite PLA presets (`PolyLite PLA @base`, `PolyLite PLA@Q2-Series`, …) resolve -`filament_vendor` `Polymaker`, `filament_type` `PLA`, and family name `PolyLite PLA`; hashing +`filament_vendor` `Polymaker`, `filament_type` `PLA`, and filament name `PolyLite PLA`; hashing `filament_product/Polymaker/PLA/PolyLite PLA` yields `OF5CgdDq`, and that is the id the OrcaFilamentLibrary, OrcaArena, Qidi, and Snapmaker bundles all arrive at independently (derivation details in the Minting section). @@ -31,8 +33,8 @@ This page is the rule for authoring `filament_id` in system profiles (`resources/profiles/**`). CI enforces everything below; the short version is: > [!IMPORTANT] -> **Never write a `filament_id` value by hand.** New families get their id from -> `python scripts/assign_filament_ids.py`; existing families already have one — inherit it. +> **Never write a `filament_id` value by hand.** A new filament gets its id from +> `python scripts/assign_filament_ids.py`; one already in the tree has one — inherit it. ## The design, in two pieces @@ -47,7 +49,7 @@ the system is built to make them impossible: number, and no way to get it wrong by hand, because you never write it by hand. 2. **A sanctioned snapshot.** The complete id landscape derived from the tree must equal `scripts/filament_id_snapshot.json` exactly, so every change to ids, claims (which bundles - ship which id, and for which family), or product identity surfaces as a reviewable diff to + ship which id, and for which filament), or product identity surfaces as a reviewable diff to one file — the maintainer gate. ## Who consumes the id @@ -55,7 +57,7 @@ the system is built to make them impossible: The canonical consumer is tray-to-preset matching: a device reports a tray material id (`tray_info_idx`), and the shared matching pipeline (`PresetBundle::sync_ams_list` and friends) resolves it to a preset. The matcher is printer-scoped and first-match-wins: -scanning only compatible family roots — system roots plus user-made custom filaments, which +scanning only compatible root presets — system roots plus user-made custom filaments, which are user roots carrying their own `P*` ids; a preset derived from another resolves through its root and never matches directly — it picks the first one whose `filament_id` equals the tray's. On a miss it falls back by filament type: a system `Generic <type>` preset @@ -73,7 +75,7 @@ device-reported tray material id flowing through the shared matcher. | Ecosystem | Where the tray id comes from today | | --- | --- | | Bambu AMS | the device itself (RFID / user tray setting), in Bambu's own `GF*` catalog; `BBLPrinterAgent` rewrites it into our id before the matcher sees it (see [The Bambu catalog map](#the-bambu-catalog-map)) | -| Qidi box | composed at runtime as `QD_<series>_<vendor>_<typeidx>` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name. No preset carries a `QD_*` value, so the slot currently resolves by filament type; mapping the composed id onto the family's minted id belongs in the agent | +| Qidi box | composed at runtime as `QD_<series>_<vendor>_<typeidx>` — vendor and type indices from the device's per-slot saved variables, the series digit inferred client-side from the printer model/name. No preset carries a `QD_*` value, so the slot currently resolves by filament type; mapping the composed id onto the filament's minted id belongs in the agent | | Creality CFS | runtime brand/type scoring returns the winning preset's id | | Klipper (AFC / Happy Hare) | runtime lookup by filament type | | Snapmaker | runtime color/vendor/type match | @@ -115,45 +117,47 @@ Two more consumer-side facts worth knowing: > **Would a user consider this a different spool product than anything already in the tree?** Different polymer, different sub-brand (Basic / Matte / Silk / HF), fiber-filled sibling, or a -second selectable diameter → **new family, new id**. The same spool tuned for another printer -or nozzle → **join the existing family** (inherit its `@base`, write no id key). Tuning a -generic material → **join the OrcaFilamentLibrary family** (inherit `Generic X @System`, keep -the `Generic X` base name, write no id key). +second selectable diameter → **new filament, new id**. The same spool tuned for another printer +or nozzle → **join the existing filament** (keep its base name and inherit it; no id +key needed). Tuning a generic material → **join the OrcaFilamentLibrary filament** (inherit +`Generic X @System` and keep the `Generic X` base name; no id key needed). | Situation | id | | --- | --- | -| Per-printer / per-nozzle variant of an existing material | same id (inherit, never write the key) | +| Per-printer / per-nozzle variant of an existing material | same id (inherit it) | | Sub-brand or product line (PLA vs PLA Matte vs PLA Silk vs PLA HF) | new id each | | Color | never a new id | -| Second diameter of the same product (1.75 + 2.85) | sibling family, new id | +| Second diameter of the same product (1.75 + 2.85) | sibling filament, new id | | "High-speed" tuned for a *different printer model* | same id (it is a printer variant) | | "High-speed" selectable *alongside* the normal preset on one printer | new id (it is a product line) | ## Structure rules -1. **Only family roots carry the key.** Root presets (any preset *not* marked - `"instantiation": "true"`, typically `<Family> @base` with `"instantiation": "false"`) - declare `filament_id`; instantiated variants inherit a root and never write the key. - A family may have several roots — Qidi's PolyLite PLA has four per-series roots - (`PolyLite PLA@Q2-Series`, `@Q2C-Series`, `@X-Max 4-Series`, `@X-Plus 5-Series`) — and all - of them must declare the *identical* id. This is the authoring rule for new work; a large - grandfathered tail of older presets breaks it in two ways — keys written on instantiated - presets (frozen in the snapshot's `instantiated_with_id` list) and keys that override the - id the preset would inherit from its family (frozen in `id_overrides`) — and CI ratchets - so no new preset joins either tail. -2. **The family name is the base name**: the preset name with everything from the first +1. **Every preset carries the id of its own product, wherever it gets it from.** The id is a + function of the preset's own triple (rule 5), and `inherits` carries settings, never + identity. So a preset may declare the key itself or inherit it from any ancestor — a + `<Filament> @base` root, a real (instantiated) preset of the same filament, an + OrcaFilamentLibrary preset — and CI checks one thing: the id it ends up with equals the + mint of *its* triple. The usual shape is one `@base` root (`"instantiation": "false"`) + declaring the key and the per-printer variants inheriting it; a filament may have several + roots — Qidi's PolyLite PLA has four per-series roots (`PolyLite PLA@Q2-Series`, + `@Q2C-Series`, `@X-Max 4-Series`, `@X-Plus 5-Series`) — which then all declare the identical + id. A branded filament that borrows a generic's settings (`Flashforge ABS Basic @FF C5` + inherits `Generic ABS @System`) declares its own id, because its triple is its own. +2. **The filament name is the base name**: the preset name with everything from the first (optionally space-preceded) `@` stripped. `MyBrand PLA @Orca 3D Fuse1` and `MyBrand PLA@HS` - both belong to family `MyBrand PLA`. -3. **Within a family, variants' `compatible_printers` are pairwise disjoint** — per printer, + are both the filament `MyBrand PLA`. +3. **Within one filament, variants' `compatible_printers` are pairwise disjoint** — per printer, at most one compatible instantiated preset per id, or AMS matching turns ambiguous. The C++ validator's `-f` check enforces this. 4. **Generics belong to OrcaFilamentLibrary.** A vendor tuning a generic material inherits `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library - preset on your printers), sets a non-empty `compatible_printers`, and writes no id key — - e.g. `Generic PLA @Sovol SV08 MAX` inherits `Generic PLA @System` and lists three Sovol - nozzles. A vendor-*branded* filament never rides a generic family id. + preset on your printers, and it is what makes its triple — and so its id — the library's) + and sets a non-empty `compatible_printers` — e.g. `Generic PLA @Sovol SV08 MAX` inherits + `Generic PLA @System` and lists three Sovol nozzles. Renaming such a preset makes it a + different product by rule 5, so it then needs its own id. 5. **Ids follow the product identity.** The id is a pure function of the product triple - `(filament_vendor, filament_type, family name)`, so correcting any of them re-mints the id + `(filament_vendor, filament_type, filament name)`, so correcting any of them re-mints the id **by design** (via `--remint <Vendor>`; the exact sequence is in the FAQ). Nothing forwards the old value, so anything outside the tree that stored it — a device tray, a calibration record, a saved project — falls back to matching by filament type until the user re-selects @@ -169,48 +173,48 @@ New ids are deterministic, computed exactly like the `setting_id` precedent FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") = c4d3ff49-4c32-5534-a3e3-00894157ab97 filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, - "filament_product/<filament_vendor>/<filament_type>/<family_name>") ) + "filament_product/<filament_vendor>/<filament_type>/<filament_name>") ) ``` `base62_6` is the low 6 base62 digits (alphabet `0-9A-Za-z`) of the UUID taken as a big-endian integer, most-significant digit first; with the `OF` prefix the full id is 8 chars, within the -AMS length limit. The triple comes from the family root's *flattened* config: +AMS length limit. The triple comes from the root preset's *flattened* config: `<filament_vendor>` is the filament **manufacturer** (`"Polymaker"`, or `"Generic"` for generics — never the printer brand), -`<filament_type>` the material type, `<family_name>` the root's base name; the two config +`<filament_type>` the material type, `<filament_name>` the root's base name; the two config values are inheritable list options and the first element counts. Content-addressing on that triple is what makes the whole system converge. The key contains no -bundle name, so the same product mints the same id in every bundle — hoisting a family into +bundle name, so the same product mints the same id in every bundle — moving a filament into OrcaFilamentLibrary never changes its id, and two vendors independently shipping the same product arrive at the same id without coordinating. `Polymaker/PLA/PolyLite PLA` mints `OF5CgdDq`, and that one id is declared by the OrcaFilamentLibrary, OrcaArena, Qidi, and Snapmaker bundles alike; the OFL generic `Generic/PLA/Generic PLA` mints `OFDSrzZ8`, claimed -by ten bundles — most by independent declarations converging on the same mint, the rest -purely through inheritance from the OFL family. +by 35 bundles — most by independent declarations converging on the same mint, the rest +purely through inheritance from the OFL preset. On the rare collision with an existing id, the minter salts the input (`…/1`, `…/2`, …) until free, and the result is frozen in the profile file. Salting is also used deliberately: a *salt split* keeps two presets of one product on distinct ids where a single id would be AMS-ambiguous on the same printer — the "selectable alongside" situation from the -table above, resolved without inventing a second family name. The tooling recognizes salt +table above, resolved without inventing a second filament name. The tooling recognizes salt iterations of a triple as conformant and preserves such splits across re-mints. -Workflow for a new family: +Workflow for a new filament: ```bash -# 1. Author the family with NO filament_id key anywhere. -python scripts/assign_filament_ids.py # 2. mint + insert ids into the family root(s) +# 1. Author the filament with NO filament_id key anywhere. +python scripts/assign_filament_ids.py # 2. mint + insert ids into the root preset(s) python scripts/assign_filament_ids.py --update-snapshot # 3. record the new claims in the snapshot python scripts/assign_filament_ids.py --check # 4. verify — the same checks CI runs # 5. Commit the profile edits together with scripts/filament_id_snapshot.json. ``` -The default run mints ids for id-less families and replaces any declaration that is not in +The default run mints ids for id-less filaments and replaces any declaration that is not in `OF` format; it never rewrites a valid `OF` id, so it is idempotent and a no-op once every -family has one. It edits profile files byte-preservingly (indentation, BOM, and line endings +filament has one. It edits profile files byte-preservingly (indentation, BOM, and line endings intact) and re-parses them to fail loudly. -`--mint "filament_vendor/filament_type/family_name"` prints the id a **new** mint of that +`--mint "filament_vendor/filament_type/filament_name"` prints the id a **new** mint of that triple would get, without touching anything — note that for a triple whose id already exists it prints the next *free* salt iteration, not the live id (asking for `Polymaker/PLA/PolyLite PLA` today prints the salt-1 id, because `OF5CgdDq` is taken). @@ -228,7 +232,7 @@ normally only used by id migrations): - `--profiles DIR` points the tooling at a different profile tree (default `resources/profiles`). -If you skip the tooling, CI fails and prints the remedy: the expected id for your family and +If you skip the tooling, CI fails and prints the remedy: the expected id for your filament and the instruction to run `python scripts/assign_filament_ids.py`; once the id is minted, the snapshot checks likewise point at `--update-snapshot` and tell you to commit the resulting diff. @@ -244,23 +248,21 @@ bundle — not even the one whose printers use the catalog — that may write on | `GF*` | Bambu AMS/RFID catalog | declarable by **nobody**, BBL included: Bambu's own ids live in the generated catalog map, never in a profile | | `QD_*` | Qidi device protocol | declarable by **nobody**, Qidi included: the box composes these ids at runtime and they are not preset ids | | `P` + 7 hex chars (case-insensitive), `"null"` | user-created custom filaments (`CreatePresetsDialog.cpp`) | never appears in system profiles | -| every already-shipped id | frozen in the snapshot (grandfathered) | frozen as-is; new claims need maintainer sign-off | The two device namespaces, in detail: - **Bambu (`GF*`).** Bambu's device/RFID/cloud catalog is external and opaque, which is a - reason to keep it out of the profiles rather than to let one bundle own it. Every BBL family + reason to keep it out of the profiles rather than to let one bundle own it. Every BBL filament mints an `OF` id from its triple like every other vendor's, and the correspondence to Bambu's catalog ids lives in one generated file the app applies at the printer boundary — the next - section. Nothing under `resources/profiles/**` carries a `GF*` id today and the snapshot - grandfathers none, so a `GF*` id appearing anywhere in the tree is a mistake, whoever wrote - it. + section. Nothing under `resources/profiles/**` carries a `GF*` id today and nothing can be + exempted, so a `GF*` id appearing anywhere in the tree is a mistake, whoever wrote it. - **Qidi (`QD_*`).** `QD_*` is a device-*protocol* namespace, not a preset id space: the Qidi box path composes `QD_<series>_<vendor>_<typeidx>` ids at runtime (slot vendor and type indices reported by the device, the series digit inferred client-side from the printer model/name). Qidi presets carry ordinary minted `OF*` ids (generics share the OFL ids), so a composed id matches no preset and the slot falls back to filament type; translating it to - the family's id belongs in `QidiPrinterAgent`. The alternative — treating per-series + the filament's id belongs in `QidiPrinterAgent`. The alternative — treating per-series protocol ids as preset ids — would put one product under five ids (`QIDI PLA Rapido` would be `QD_0_1_1` through `QD_4_1_1`), exactly the fragmentation the mint rule removes. @@ -294,7 +296,7 @@ it from **BambuStudio's own shipped BBL bundle** — a sparse shallow clone of u or `--bambustudio-dir <a BambuStudio resources/profiles checkout>`. Our BBL bundle is a fork of Bambu's, tuned and extended independently, so it is not the source of truth for Bambu's ids. A row's key is whatever id our tree already mints for that same -`(filament_vendor, filament_type, family)` triple; a product we do not ship gets a freshly +`(filament_vendor, filament_type, filament name)` triple; a product we do not ship gets a freshly generated key and the row sits inert until some bundle claims that triple — `OFdyfQvU` / `GFG03`, "Bambu PETG Matte", is such a row today. @@ -303,18 +305,18 @@ prints. Two lines, both informational, neither blocking the write: ```text upstream ships 'Bambu PETG Matte' (Bambu Lab/PETG), we ship nothing with that identity -Orca BBL families with no row: 135 Orca-only product(s) +Orca BBL filaments with no row: 135 Orca-only product(s) ``` -The first names each upstream product our BBL bundle has no same-identity family for — +The first names each upstream product our BBL bundle has no same-identity filament for — sometimes a genuinely missing product, sometimes a name drift a follow-up rename would -converge. The second counts our own BBL families that matched no row: 135 of 234 today, of +converge. The second counts our own BBL filaments that matched no row: 135 of 234 today, of which 109 send an `OF` id on the wire and 26 already rode `OF` ids inherited from the OrcaFilamentLibrary. **135 is the number to expect at every regeneration** — 109 was the one-off size of the transition and stopped being computable from the tree once the BBL bundle was re-minted, so do not "fix" the report to print it. -**Check 8** lives in `check_filament_ids`, so profile CI runs it alongside the other seven. It +**Check 6** lives in `check_filament_ids`, so profile CI runs it alongside the other five. It holds the file to its contract: it parses, carries `source` / `bambustudio_commit` / `generated`, keys only `OF`-format ids, maps each Bambu id at most once, and — for every row whose key the tree actually claims — agrees with the tree on that id's `(vendor, type, name)` @@ -408,49 +410,41 @@ Profile CI (`check_profiles.yml`) runs `check_filament_ids()` tree-wide via tree must equal the snapshot exactly, in both directions. Any change to the id landscape therefore surfaces as a diff to that file, and **that snapshot diff is what maintainers review and gate in a PR**. Never edit the snapshot by hand — `--update-snapshot` regenerates it -deterministically (running it twice changes nothing). Besides the live `ids` and `triples` -maps, the snapshot carries grandfather lists (`instantiated_with_id`, `id_overrides`, -`alias_exceptions`, `triple_exceptions`) that freeze pre-existing structure debt while the -checks ratchet all new profiles to the clean rules. +deterministically (running it twice changes nothing). The snapshot holds one map, `ids`: each +entry is the product the id is minted from (`filament_vendor`, `filament_type`, `name`) and the +`filaments` claiming it (`Vendor/Filament`), and it sanctions *state*, never exceptions: no check +consults it to excuse a preset from a rule, and there is no grandfather list of any kind. The checks, in brief: - **Format** — every id occurring in the tree is `OF` + 6 base62 chars. No exceptions: not a - grandfathered snapshot entry, not BBL. -- **Snapshot equality** — tree claims == snapshot claims **and** tree triples == snapshot - triples, both directions: any `filament_vendor`/`filament_type`/family-name change surfaces - as a snapshot diff. -- **Mint conformance** — a non-grandfathered `OF*` id must equal the mint (or a low salt - iteration) of its declarer's product triple; the error prints the expected id to paste into - the family root. -- **Alias hygiene** — a vendor preset riding an OFL family id must keep the library preset's - base name (a rename re-exposes the library preset, since alias shadowing is name-based), - a non-empty `compatible_printers` (an empty one shadows nothing), and no own id key - (structure rule 4). -- **Triple integrity** — every declarer must resolve a non-empty `filament_vendor` and - `filament_type` (generics use `"Generic"`), and all declarers of one family within a - bundle must agree on the triple. + snapshot entry, not BBL. +- **Snapshot equality** — tree claims == snapshot claims **and** each id's declared triple == + its snapshot entry, both directions: any `filament_vendor`/`filament_type`/name change + surfaces as a snapshot diff. +- **Identity** — the id is a function of the triple alone. A declared `OF*` id must equal the + mint (or a low salt iteration) of its declarer's own triple; the id an instantiated preset + *inherits* must equal the mint of *its* own triple, however it inherits it (a root, a real + filament, a library preset — structure rule 1); and every instantiated system filament must + resolve an effective id at all (recall: an id-less one is a hard load error in C++ that + discards the whole vendor bundle). The errors print the expected id. - **Reserved namespaces** — `GF*`, `QD_*`, `P<7-hex>` or `"null"` claimed by any vendor, - BBL and Qidi included, unless that exact claim is grandfathered in the snapshot (none is - today). -- **Structure** — no `filament_id` key on newly instantiated presets; no new - declared-vs-inherited id drift; every instantiated system filament must resolve an - effective id through its `inherits` chain (recall: an id-less one is a hard load error in - C++ that discards the whole vendor bundle). + BBL and Qidi included. +- **Triple integrity** — every declarer must resolve a non-empty `filament_vendor` and + `filament_type` (generics use `"Generic"`), and all declarers of one filament within a + bundle must agree on the triple. - **Bambu catalog map** — `resources/printers/bambu_filament_ids.json` parses, carries its `source` / `bambustudio_commit` / `generated` header, keys only `OF`-format ids, maps each Bambu id at most once, and agrees with the tree on the triple of every row whose key the tree claims. See [The Bambu catalog map](#the-bambu-catalog-map); the remedy is always to regenerate, never to hand-edit. -Any new claim on a **reserved namespace** — a profile that declares a `GF*`, `QD_*` or -`P<7-hex>` id, whatever its vendor — is refused by `--update-snapshot` unless you pass -`--allow-shared-catalog`, and even then it lands in the snapshot diff for maintainer review. -There is no such claim in the tree today and adding one should be a last resort: for a -Bambu-cataloged product, the catalog map is where the correspondence belongs. Any other new -sharing via a *declared* id is caught by the mint-conformance check; sharing through -inheritance carries no declaration to check and surfaces only as a new claim in the snapshot -diff — which is exactly why that diff is the gate. +A profile that declares a **reserved-namespace** id — `GF*`, `QD_*` or `P<7-hex>`, whatever +its vendor — cannot pass the format check, so `--update-snapshot` refuses to sanction it +rather than hide the mistake until CI. For a Bambu-cataloged product, the catalog map is where +the correspondence belongs. Any other new sharing via a *declared* id is caught by the identity +check; sharing through inheritance carries no declaration to check and surfaces only as a new +claim in the snapshot diff — which is exactly why that diff is the gate. `orca_extra_profile_check.py` separately holds every declared id to the AMS 8-character limit, tree-wide and for every vendor alike, scoped to the presets a vendor's index actually @@ -463,24 +457,27 @@ ambiguity check behind structure rule 3. ## FAQ -- **A new color of an existing product?** Never a new id — colors are not families. -- **A second diameter (1.75 mm and 2.85 mm) of the same product?** A sibling family with its +- **A new color of an existing product?** Never a new id — colors are not filaments. +- **A second diameter (1.75 mm and 2.85 mm) of the same product?** A sibling filament with its own id: two diameters are separately selectable spool products. -- **A high-speed tune of an existing material for another printer model?** Same family: - inherit the family's root, write no id key. +- **A high-speed tune of an existing material for another printer model?** Same filament: + keep the base name and inherit its root; no id key needed. - **A tuned generic ("our profile for Generic PLA")?** Inherit `Generic PLA @System`, keep the - `Generic PLA` base name, set `compatible_printers`, write no id key. -- **I need to fix a family's `filament_vendor` or `filament_type`.** Fix the config, run + `Generic PLA` base name, set `compatible_printers`; no id key needed. +- **A branded filament that borrows a generic's settings?** Fine — inherit `Generic X @System` + (or any real filament) for the settings and declare the id of your own filament; run + `python scripts/assign_filament_ids.py` to mint it. Inheritance never changes the id. +- **I need to fix a filament's `filament_vendor` or `filament_type`.** Fix the config, run `--remint <Vendor>` then `--update-snapshot`, and commit the profile and snapshot diffs together. The id re-derives from the corrected identity, and nothing forwards the old value, so a tray or record still holding it falls back to matching by filament type. -- **I need to rename a family.** Rename the presets (adding `renamed_from`, which keeps the +- **I need to rename a filament.** Rename the presets (adding `renamed_from`, which keeps the preset *name* resolving), then `--remint <Vendor>`, then `--update-snapshot`. The id follows - the new family name; as with any identity fix, the old id is not forwarded. + the new filament name; as with any identity fix, the old id is not forwarded. - **Can I reuse a `QD_*` id for a Qidi profile?** No — nobody can. It is the device protocol's own id space: the box composes those values at runtime and no preset carries one. Author Qidi filaments like any other vendor's. -- **CI says my family needs an id.** Run `python scripts/assign_filament_ids.py`, then +- **CI says my filament needs an id.** Run `python scripts/assign_filament_ids.py`, then `--update-snapshot`, and commit both diffs. Do not type an id by hand. For general profile authoring, see the profile development guide on the diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 723a907f52..9641788cf7 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -9510,7 +9510,7 @@ "sub_path": "filament/COEX/COEX NYLEX PA6-CF @BBL X1C.json" }, { - "name": "COEX NYLEX UNFILLED @BBL X1C", + "name": "COEX NYLEX UNFILLED @BBL X1C", "sub_path": "filament/COEX/COEX NYLEX UNFILLED @BBL X1C.json" }, { diff --git a/resources/profiles/BBL/filament/COEX/COEX NYLEX UNFILLED @BBL X1C.json b/resources/profiles/BBL/filament/COEX/COEX NYLEX UNFILLED @BBL X1C.json index 507a7050fb..082948c7ec 100644 --- a/resources/profiles/BBL/filament/COEX/COEX NYLEX UNFILLED @BBL X1C.json +++ b/resources/profiles/BBL/filament/COEX/COEX NYLEX UNFILLED @BBL X1C.json @@ -1,6 +1,7 @@ { "type": "filament", - "name": "COEX NYLEX UNFILLED @BBL X1C", + "name": "COEX NYLEX UNFILLED @BBL X1C", + "renamed_from": "COEX NYLEX UNFILLED @BBL X1C", "inherits": "COEX NYLEX UNFILLED @base", "from": "system", "setting_id": "CXPAUB21_01", diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index c5412c53bd..f85e19bb76 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -1241,8 +1241,8 @@ "sub_path": "filament/BASE/Generic ASA @base.json" }, { - "name": "Elegoo TPU @base", - "sub_path": "filament/BASE/Elegoo TPU @base.json" + "name": "Elegoo TPU 95A @base", + "sub_path": "filament/BASE/Elegoo TPU 95A @base.json" }, { "name": "Elegoo PETG @base", @@ -1261,8 +1261,8 @@ "sub_path": "filament/BASE/Elegoo ABS @base.json" }, { - "name": "Elegoo PAHT @base", - "sub_path": "filament/BASE/Elegoo PAHT @base.json" + "name": "Elegoo PAHT-CF @base", + "sub_path": "filament/BASE/Elegoo PAHT-CF @base.json" }, { "name": "Elegoo PC @base", diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT-CF @base.json similarity index 94% rename from resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json rename to resources/profiles/Elegoo/filament/BASE/Elegoo PAHT-CF @base.json index a05ee2347c..95bc595f90 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PAHT-CF @base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Elegoo PAHT @base", + "name": "Elegoo PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OF0h7ERL", + "filament_id": "OF20kXr5", "instantiation": "false", "filament_density": [ "1.25" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json index c1b9e78897..5f9561f5a9 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo PET-CF @base.json @@ -3,6 +3,9 @@ "name": "Elegoo PET-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFV5tNw6", - "instantiation": "false" + "filament_id": "OFe98A1y", + "instantiation": "false", + "filament_type": [ + "PET-CF" + ] } diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json index 58cec037c3..3ffd591fdc 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo Rapid TPU 95A @base.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo Rapid TPU 95A @base", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "filament_id": "OF30Ftju", "instantiation": "false" diff --git a/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json b/resources/profiles/Elegoo/filament/BASE/Elegoo TPU 95A @base.json similarity index 85% rename from resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json rename to resources/profiles/Elegoo/filament/BASE/Elegoo TPU 95A @base.json index 08bd3d93af..70cdc0faa0 100644 --- a/resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json +++ b/resources/profiles/Elegoo/filament/BASE/Elegoo TPU 95A @base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Elegoo TPU @base", + "name": "Elegoo TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OFmhJs5V", + "filament_id": "OFqHQNoZ", "instantiation": "false", "filament_max_volumetric_speed": [ "3.6" diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo PAHT-CF @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo PAHT-CF @EC.json index d1e05a1372..0b01b2feb3 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo PAHT-CF @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo PAHT-CF @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PAHT-CF @EC", - "inherits": "Elegoo PAHT @base", + "inherits": "Elegoo PAHT-CF @base", "from": "system", "setting_id": "ZRd4WPQrh8nC8n7G", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json b/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json index 6e9944b30c..ef850ee0d8 100644 --- a/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json +++ b/resources/profiles/Elegoo/filament/EC/Elegoo TPU 95A @EC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @EC", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "hqmWADQDYWBuniTB", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo PAHT-CF @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo PAHT-CF @EC2.json index 10d7202698..e1da626c9a 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo PAHT-CF @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo PAHT-CF @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PAHT-CF @EC2", - "inherits": "Elegoo PAHT @base", + "inherits": "Elegoo PAHT-CF @base", "from": "system", "setting_id": "miv95d8rXD4CAgjC", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EC2/Elegoo TPU 95A @EC2.json b/resources/profiles/Elegoo/filament/EC2/Elegoo TPU 95A @EC2.json index 1389221bce..255eaf6a1a 100644 --- a/resources/profiles/Elegoo/filament/EC2/Elegoo TPU 95A @EC2.json +++ b/resources/profiles/Elegoo/filament/EC2/Elegoo TPU 95A @EC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @EC2", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "6LUQGjzmx0y5A6Qn", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo PAHT-CF @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo PAHT-CF @ECC.json index bf0363b0d7..de12de0612 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo PAHT-CF @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo PAHT-CF @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PAHT-CF @ECC", - "inherits": "Elegoo PAHT @base", + "inherits": "Elegoo PAHT-CF @base", "from": "system", "setting_id": "iDRlRpUzPNVYv0lY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json b/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json index 870f4dc8ac..7f707f2371 100644 --- a/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json +++ b/resources/profiles/Elegoo/filament/ECC/Elegoo TPU 95A @ECC.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @ECC", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "cOI05FCm8wrkqtDD", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PAHT-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PAHT-CF @ECC2.json index 5c41f76588..7d52aface9 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PAHT-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PAHT-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PAHT-CF @ECC2", - "inherits": "Elegoo PAHT @base", + "inherits": "Elegoo PAHT-CF @base", "from": "system", "setting_id": "hmTwVvyCAIZI7rSY", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json index 86eccaff03..215b9beec9 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @ECC2", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "v0Qj3xMBkUGnxZPi", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json index 864845cb2f..8d4c0d5976 100644 --- a/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json +++ b/resources/profiles/Elegoo/filament/EN3SERIES/Elegoo TPU 95A @EN3 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @EN3 Series", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "4W6ZheJxNPUPxe1s", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json index 392812ff9a..60f5b55a19 100644 --- a/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json +++ b/resources/profiles/Elegoo/filament/EN4SERIES/Elegoo TPU 95A @EN4 Series.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @EN4 Series", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "6pp381J3ahRYYtFE", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 2f9e6a7f02..c7b203d5f1 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -525,8 +525,8 @@ "sub_path": "filament/DREMC/DREMC PA6-CF @base.json" }, { - "name": "Elegoo PAHT @base", - "sub_path": "filament/Elegoo/Elegoo PAHT @base.json" + "name": "Elegoo PAHT-CF @base", + "sub_path": "filament/Elegoo/Elegoo PAHT-CF @base.json" }, { "name": "FILL3D PA @base", @@ -1169,8 +1169,8 @@ "sub_path": "filament/DREMC/DREMC TPU 95A @base.json" }, { - "name": "Elegoo TPU @base", - "sub_path": "filament/Elegoo/Elegoo TPU @base.json" + "name": "Elegoo TPU 95A @base", + "sub_path": "filament/Elegoo/Elegoo TPU 95A @base.json" }, { "name": "Eolas Prints TPU D60 UV Resistant @System", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json index 7d22d28387..d07ac1dd64 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PAHT-CF @System", - "inherits": "Elegoo PAHT @base", + "inherits": "Elegoo PAHT-CF @base", "from": "system", "setting_id": "S073oXCeOlTEqh6L", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @base.json similarity index 95% rename from resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json rename to resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @base.json index d85796e7b1..7c3abd1cdd 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PAHT-CF @base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Elegoo PAHT @base", + "name": "Elegoo PAHT-CF @base", "inherits": "fdm_filament_pa", "from": "system", - "filament_id": "OF0h7ERL", + "filament_id": "OF20kXr5", "instantiation": "false", "activate_air_filtration": [ "1" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json index c1b9e78897..5f9561f5a9 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo PET-CF @base.json @@ -3,6 +3,9 @@ "name": "Elegoo PET-CF @base", "inherits": "Elegoo PETG @base", "from": "system", - "filament_id": "OFV5tNw6", - "instantiation": "false" + "filament_id": "OFe98A1y", + "instantiation": "false", + "filament_type": [ + "PET-CF" + ] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json index 58cec037c3..3ffd591fdc 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo Rapid TPU 95A @base.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo Rapid TPU 95A @base", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "filament_id": "OF30Ftju", "instantiation": "false" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @System.json index fb4260fae0..020bb85945 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @System.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @System", - "inherits": "Elegoo TPU @base", + "inherits": "Elegoo TPU 95A @base", "from": "system", "setting_id": "SLcn59fIZPDl2brJ", "instantiation": "true", diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @base.json similarity index 89% rename from resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json rename to resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @base.json index e2fe95548a..4380ee77ce 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/Elegoo/Elegoo TPU 95A @base.json @@ -1,9 +1,9 @@ { "type": "filament", - "name": "Elegoo TPU @base", + "name": "Elegoo TPU 95A @base", "inherits": "fdm_filament_tpu", "from": "system", - "filament_id": "OFmhJs5V", + "filament_id": "OFqHQNoZ", "instantiation": "false", "filament_density": [ "1.21" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json index db331b0daa..19dc66df4e 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.2 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Breakaway Support @base", "from": "system", "setting_id": "mJoaud6wulT4p8SA", + "filament_id": "OFnmp2pO", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.2 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json index 248c57f6d0..6f800f7b98 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.6 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Breakaway Support @base", "from": "system", "setting_id": "rKUUREJNhstIU0I2", + "filament_id": "OFnmp2pO", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.6 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json index 47cf80d076..c7a2b01351 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1 0.8 nozzle.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Breakaway Support @base", "from": "system", "setting_id": "hQ8jQ5GKQKGKuPew", + "filament_id": "OFnmp2pO", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.8 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json index 9e5d63a63c..eff74ae5ab 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker Breakaway Support For PLA @U1.json @@ -4,6 +4,7 @@ "inherits": "Snapmaker Breakaway Support @base", "from": "system", "setting_id": "5DqT3CYUgp1oJD1V", + "filament_id": "OFnmp2pO", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/scripts/assign_filament_ids.py b/scripts/assign_filament_ids.py index d410242277..e10dbe138e 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/assign_filament_ids.py @@ -4,24 +4,25 @@ Mint deterministic filament_id values for OrcaSlicer system filament products an validate the tree against the sanctioned-state snapshot. Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md): - * filament_id is a PRODUCT id: one commercial product line = one id, shared by - all of that material's per-printer/per-nozzle variants in every bundle. - OrcaFilamentLibrary (OFL) is the product catalog: a family's id is declared - once, on its family root (instantiation != "true"); vendor bundles carry - only specializations of OFL families — same base name, non-empty - compatible_printers, no filament_id key — which resolve the OFL id through - the loader's inherits/base-bundle walk. Products OFL does not carry mint - their id in the vendor bundle with the same rule; the key is - bundle-independent, so hoisting a family into OFL never changes its id. - * New ids are content-addressed by the product triple, resolved from the - declaring preset's flattened config (filament_vendor and filament_type are - inheritable list options — first element; family name = preset base name): + * filament_id is a PRODUCT id: one named spool product = one id, shared by all + of that product's per-printer/per-nozzle variants in every bundle. The + granularity is the name on the spool, not the brand: "AAA PLA Lite" and + "AAA PLA Pro" are two products with two ids, not variants of one. The + id is a pure function of the product triple (below), so WHERE a preset gets + it from is irrelevant: it may declare the key itself or inherit it from any + ancestor — a root preset, a real (instantiated) filament, an + OrcaFilamentLibrary (OFL) preset — as long as the id it ends up with is the + mint of its OWN triple. Inheritance carries settings, never identity; the + key is bundle-independent, so moving a filament into OFL never changes it. + * Ids are content-addressed by the product triple, resolved from the preset's + flattened config (filament_vendor and filament_type are inheritable list + options — first element; filament name = preset base name): filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, - "filament_product/<filament_vendor>/<filament_type>/<family_name>") ) + "filament_product/<filament_vendor>/<filament_type>/<filament_name>") ) 8 chars total, which satisfies the AMS length limit. Nobody invents ids by hand; on the astronomically rare collision with an existing id the input is salted ("/1", "/2", ...) until free and the result is frozen in file. - Identity changes (a family rename, a filament_vendor/filament_type fix) + Identity changes (a filament rename, a filament_vendor/filament_type fix) change the id BY DESIGN. * Reserved id spaces that are never minted into or altered: - GF* Bambu AMS/RFID catalog: frozen, no preset of any @@ -33,11 +34,12 @@ Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md) preset may declare one - P + 7 hex chars (case-insensitive) and the literal "null" user-custom presets (CreatePresetsDialog.cpp) - - every already-shipped id, grandfathered via scripts/filament_id_snapshot.json - * scripts/filament_id_snapshot.json is the sanctioned-state snapshot (ids, - claims and declared triples): it must exactly equal the tree-derived state - at all times, so any id/claim/triple change shows up as a reviewable diff to - that file (the maintainer gate). + * scripts/filament_id_snapshot.json is the sanctioned-state snapshot: one + entry per id, carrying the product triple it is minted from and the + "Vendor/Filament" presets claiming it. It must exactly equal the tree-derived + state at all times, so any id/claim/triple change shows up as a reviewable + diff to that file (the maintainer gate). It sanctions state, never + exceptions: no check consults it to excuse a preset from the rules above. The effective-id resolution below is loader-faithful (PresetBundle.cpp load_vendor_configs_from_json): own filament_id key, else walk `inherits` within @@ -46,10 +48,10 @@ OFL it stays in OFL; a vendor chain that dead-ends id-less retries its direct parent in the OFL map. filament_vendor / filament_type resolve the same way. Run from anywhere: python3 scripts/assign_filament_ids.py - (default) mint + insert ids for id-less families, mint + replace + (default) mint + insert ids for id-less filaments, mint + replace non-OF-format declarations; idempotent, never rewrites a - valid OF-format id; a no-op once every family has one - --mint "Vendor/Type/Family" + valid OF-format id; a no-op once every filament has one + --mint "Vendor/Type/Filament" print the id that triple would mint; touches nothing --update-snapshot regenerate the snapshot from the tree --remint VENDOR re-derive VENDOR's declared ids from their triples and @@ -90,10 +92,10 @@ OF_ID_RE = re.compile(r"^OF[0-9A-Za-z]{6}$") # User-custom id space minted by CreatePresetsDialog.cpp ("P" + md5(name)[0:7]); # reserved case-insensitively, together with its "null" sentinel. USER_CUSTOM_ID_RE = re.compile(r"^P[0-9A-Fa-f]{7}$", re.IGNORECASE) -# Family name = preset base name: strip the first "@..." suffix. The space before +# Filament name = preset base name: strip the first "@..." suffix. The space before # "@" is optional because names like "Afinia PLA@HS" exist. BASE_NAME_RE = re.compile(r"\s?@.*$") -# Salt iterations accepted by the mint-conformance check (check 3). +# Salt iterations accepted by the identity check (check 3). MAX_CHECK_SALT = 8 UPDATE_HINT = 'run "python scripts/assign_filament_ids.py --update-snapshot" and commit the diff for maintainer review' @@ -130,19 +132,19 @@ def _utf8_console(): # --------------------------------------------------------------------------- def base_name(name): - """Family name of a preset: name with the first "@..." suffix stripped.""" + """Filament name of a preset: name with the first "@..." suffix stripped.""" return BASE_NAME_RE.sub("", name, count=1) -def generate_filament_id(filament_vendor, filament_type, family, salt=0): +def generate_filament_id(filament_vendor, filament_type, filament_name, salt=0): """Deterministic "OF" + 6-char base62 filament_id for a filament product. - input = "filament_product/<filament_vendor>/<filament_type>/<family_name>" + input = "filament_product/<filament_vendor>/<filament_type>/<filament_name>" (+ "/<salt>" when salted); u = uuid5(FILAMENT_ID_NAMESPACE, input); the id tail is the low FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), most-significant first — the same derivation as generate_preset_setting_id. """ - key = f"filament_product/{filament_vendor}/{filament_type}/{family}" + key = f"filament_product/{filament_vendor}/{filament_type}/{filament_name}" if salt: key = f"{key}/{salt}" u = uuid.uuid5(FILAMENT_ID_NAMESPACE, key) @@ -154,14 +156,19 @@ def generate_filament_id(filament_vendor, filament_type, family, salt=0): return "OF" + "".join(reversed(digits)) -def mint_filament_id(filament_vendor, filament_type, family, taken): +def mint_filament_id(filament_vendor, filament_type, filament_name, taken): """Mint the product's id, salting past any id in `taken`.""" for salt in range(10000): - candidate = generate_filament_id(filament_vendor, filament_type, family, salt) + candidate = generate_filament_id(filament_vendor, filament_type, filament_name, salt) if candidate not in taken: return candidate raise RuntimeError( - f"could not mint a free filament_id for {filament_vendor}/{filament_type}/{family}") + f"could not mint a free filament_id for {filament_vendor}/{filament_type}/{filament_name}") + + +def mint_iterations(triple): + """The ids that count as the mint of `triple`: salt 0..MAX_CHECK_SALT.""" + return {generate_filament_id(*triple, salt=s) for s in range(MAX_CHECK_SALT + 1)} # --------------------------------------------------------------------------- @@ -234,7 +241,8 @@ def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, vendor is re-tried against the OFL map keyed by its direct parent name. skip_own ignores the first preset's own filament_id key (used to compute the - id its inherits chain would resolve WITHOUT the declaration — check 6b drift). + id its inherits chain would resolve WITHOUT the declaration — the + --drop-redundant-ids redundancy test). Returns (filament_id or None, source, ofl_entry) where source is one of "own"/"inherited"/"missing"/"dangling"/"cycle" and ofl_entry is the name of @@ -307,7 +315,7 @@ def resolve_filament_field(name, field, filaments, ofl_filaments, seen=None, in_ def resolve_triple(name, filaments, ofl_filaments): - """The preset's mint-key triple (filament_vendor, filament_type, family).""" + """The preset's mint-key triple (filament_vendor, filament_type, filament name).""" return (resolve_filament_field(name, "filament_vendor", filaments, ofl_filaments), resolve_filament_field(name, "filament_type", filaments, ofl_filaments), base_name(name)) @@ -317,7 +325,7 @@ def analyze_tree(profiles_dir): """Load every vendor bundle and derive the full filament_id state. Returns a dict with the tree-derived snapshot sections plus the working data - the checks and the assign pass need. All claims are "Vendor/Family" strings + the checks and the assign pass need. All claims are "Vendor/Filament" strings over INSTANTIATED system filaments, tree-wide including OFL and BBL. """ profiles_dir = str(profiles_dir) @@ -325,7 +333,6 @@ def analyze_tree(profiles_dir): ofl_filaments, ofl_errors = ( load_vendor_filaments(profiles_dir, OFL) if OFL in vendor_names else ({}, []) ) - ofl_declared = {r["filament_id"] for r in ofl_filaments.values() if r.get("filament_id")} vendors = {} read_errors = list(ofl_errors) @@ -336,51 +343,39 @@ def analyze_tree(profiles_dir): filaments, errs = load_vendor_filaments(profiles_dir, vendor) read_errors.extend(errs) for rec in filaments.values(): - eff, src, ofl_entry = resolve_filament_id(rec["name"], filaments, ofl_filaments) + eff, src, _entry = resolve_filament_id(rec["name"], filaments, ofl_filaments) rec["eff_filament_id"] = eff rec["id_source"] = src - rec["ofl_entry"] = ofl_entry vendors[vendor] = filaments - # id -> set of "Vendor/Family" claims over instantiated presets. Every id + # id -> set of "Vendor/Filament" claims over instantiated presets. Every id # occurring in the tree is a key; ids only ever DECLARED (e.g. on a root - # whose children all override them) keep an empty claim list, so that the - # snapshot exactly equals the tree-derived state and the format/retirement - # checks can grandfather them. + # none of whose descendants instantiate) keep an empty claim list, so that + # the snapshot exactly equals the tree-derived state. ids = {} vendor_ids = {} # vendor -> set of ids occurring there (declared or effective) declared_ids = {} # vendor -> set of ids DECLARED in that vendor's own files - instantiated_with_id = [] # "Vendor/PresetName" (own filament_id key on an instantiated preset) - overrides = [] # (vendor, name, declared, inherited, file) missing_effective = [] # (vendor, name, file) instantiated presets resolving no id - alias_candidates = [] # (vendor, rec, ofl_entry, own_key) presets riding an OFL family + inherited = [] # (vendor, rec, eff, triple) instantiated presets inheriting an OF id triples = {} # fid -> set of triples of its declarers declarer_triples = [] # (vendor, rec, fid, triple) per declarer - family_triples = {} # (vendor, family) -> {triple: [declarer names]} + filament_triples = {} # (vendor, filament_name) -> {triple: [declarers]} for vendor, filaments in vendors.items(): occurring = vendor_ids.setdefault(vendor, set()) for rec in filaments.values(): + triple = resolve_triple(rec["name"], filaments, ofl_filaments) + rec["triple"] = triple if rec.get("filament_id"): fid = rec["filament_id"] occurring.add(fid) declared_ids.setdefault(vendor, set()).add(fid) ids.setdefault(fid, set()) - triple = resolve_triple(rec["name"], filaments, ofl_filaments) - rec["triple"] = triple declarer_triples.append((vendor, rec, fid, triple)) triples.setdefault(fid, set()).add(triple) - family_triples.setdefault( + filament_triples.setdefault( (vendor, base_name(rec["name"])), {}).setdefault( triple, []).append(rec["name"]) - if rec.get("inherits"): - inherited, _src, skip_entry = resolve_filament_id( - rec["name"], filaments, ofl_filaments, skip_own=True) - if inherited and inherited != fid: - overrides.append((vendor, rec["name"], fid, inherited, rec["file"])) - if (vendor != OFL and skip_entry and inherited - and inherited in ofl_declared): - alias_candidates.append((vendor, rec, skip_entry, True)) if not rec["instantiation"]: continue eff = rec.get("eff_filament_id") @@ -389,47 +384,28 @@ def analyze_tree(profiles_dir): continue occurring.add(eff) ids.setdefault(eff, set()).add(f"{vendor}/{base_name(rec['name'])}") - if rec.get("filament_id"): - instantiated_with_id.append(f"{vendor}/{rec['name']}") - if vendor != OFL and rec["ofl_entry"] and eff in ofl_declared: - alias_candidates.append((vendor, rec, rec["ofl_entry"], False)) + if not rec.get("filament_id") and OF_ID_RE.match(eff): + inherited.append((vendor, rec, eff, triple)) - # Alias hygiene (check 4): a vendor preset that rides an OFL family (its id - # resolves through OFL) is matched to the OFL preset by ALIAS (base name); - # renaming it re-exposes the OFL preset and creates a live duplicate, empty - # compatible_printers cannot claim any printer, and declaring its own - # filament_id key forks the family off the catalog id. - alias_violations = [] # (vendor, name, ofl_entry, reason, file) - for vendor, rec, entry, own_key in alias_candidates: - expected = base_name(entry) - own_base = base_name(rec["name"]) - if own_key: - alias_violations.append(( - vendor, rec["name"], entry, - f'declares its own filament_id "{rec["filament_id"]}" — dropping the key ' - f"lets it resolve the OFL family's id through inherits", - rec["file"])) - elif own_base != expected: - alias_violations.append(( - vendor, rec["name"], entry, - f'base name "{own_base}" != "{expected}" — the rename re-exposes the ' - f"OFL preset on its printers (alias shadowing is name-based)", - rec["file"])) - elif not rec["compatible_printers"]: - alias_violations.append(( - vendor, rec["name"], entry, - "empty compatible_printers cannot shadow the OFL preset anywhere", - rec["file"])) + # Identity (check 3b): an inherited id must be the mint of the preset's + # OWN triple. A declared id is held to the same rule as a declarer (3a), + # and an id whose declarer already fails 3a is reported there once, not + # again under every preset inheriting it. + unminted = {fid for _v, _r, fid, triple in declarer_triples + if OF_ID_RE.match(fid) and fid not in mint_iterations(triple)} + id_mismatches = [ + (vendor, rec, eff, triple) for vendor, rec, eff, triple in inherited + if eff not in unminted and eff not in mint_iterations(triple)] - # Cross-bundle triple divergence (check 7, warning only): the same family + # Cross-bundle triple divergence (check 5, warning only): the same filament # name declared in several bundles with different triples cannot converge # on one id until the divergence is fixed. name_bundles = {} - for (vendor, family), tmap in family_triples.items(): - name_bundles.setdefault(family, {})[vendor] = frozenset(tmap) + for (vendor, filament_name), tmap in filament_triples.items(): + name_bundles.setdefault(filament_name, {})[vendor] = frozenset(tmap) cross_bundle_triples = [ - (family, {v: sorted(ts) for v, ts in per_vendor.items()}) - for family, per_vendor in sorted(name_bundles.items()) + (filament_name, {v: sorted(ts) for v, ts in per_vendor.items()}) + for filament_name, per_vendor in sorted(name_bundles.items()) if len(per_vendor) > 1 and len(set(per_vendor.values())) > 1 ] @@ -439,18 +415,12 @@ def analyze_tree(profiles_dir): "ids": {fid: sorted(claims) for fid, claims in ids.items()}, "vendor_ids": vendor_ids, "declared_ids": declared_ids, - "instantiated_with_id": sorted(instantiated_with_id), - "overrides": overrides, - "id_overrides": sorted(f"{v}/{n}" for v, n, _d, _i, _f in overrides), "missing_effective": sorted(missing_effective), - "alias_violations": alias_violations, - "alias_exceptions": sorted(f"{v}/{n}" for v, n, _e, _r, _f in alias_violations), + "id_mismatches": id_mismatches, "triples": {fid: sorted(list(t) for t in ts) for fid, ts in triples.items()}, "triple_sets": triples, "declarer_triples": declarer_triples, - "family_triples": family_triples, - "triple_exceptions": sorted( - f"{v}/{f}" for (v, f), tmap in family_triples.items() if len(tmap) > 1), + "filament_triples": filament_triples, "cross_bundle_triples": cross_bundle_triples, } @@ -460,14 +430,19 @@ def analyze_tree(profiles_dir): # --------------------------------------------------------------------------- def snapshot_from_analysis(analysis): - return { - "ids": {fid: sorted(claims) for fid, claims in analysis["ids"].items()}, - "instantiated_with_id": analysis["instantiated_with_id"], - "id_overrides": analysis["id_overrides"], - "alias_exceptions": analysis["alias_exceptions"], - "triples": analysis["triples"], - "triple_exceptions": analysis["triple_exceptions"], - } + """One entry per id, in id order: the product triple it is minted from and + the "Vendor/Filament" claims on it. Requires exactly one declared triple per + id (update_snapshot refuses any other state; check 3 rejects it anyway).""" + ids = {} + for fid, claims in sorted(analysis["ids"].items()): + [(vendor, ftype, filament_name)] = analysis["triples"][fid] + ids[fid] = {"filaments": sorted(claims), "name": filament_name, + "filament_type": ftype, "filament_vendor": vendor} + return {"ids": ids} + + +def snapshot_triple(entry): + return [entry["filament_vendor"], entry["filament_type"], entry["name"]] def load_snapshot(path): @@ -475,18 +450,15 @@ def load_snapshot(path): if not os.path.exists(path): return None data = load_json(path) - for key in ("ids", "triples"): - data.setdefault(key, {}) - for key in ("instantiated_with_id", "id_overrides", "alias_exceptions", - "triple_exceptions"): - data.setdefault(key, []) + data.setdefault("ids", {}) return data def write_snapshot(path, obj): - """Deterministic serialization: sorted keys, indent 1, LF, trailing newline.""" + """Deterministic serialization: snapshot_from_analysis order, indent 1, LF, + trailing newline.""" with open(path, "w", encoding="utf-8", newline="\n") as f: - json.dump(obj, f, indent=1, ensure_ascii=False, sort_keys=True) + json.dump(obj, f, indent=1, ensure_ascii=False) f.write("\n") @@ -526,29 +498,27 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, 1. Format: every id occurring in the tree (declared or effective) must match ^OF[0-9A-Za-z]{6}$. No exceptions: not the snapshot, not BBL. - 2. Snapshot equality, both directions: the tree-derived id->families multimap - AND the id->triples map of the declarers must equal the snapshot exactly - (the snapshot diff is the maintainer gate). - 3. Mint conformance: an OF-format declaration must equal the mint of the - declarer's triple or a salted iteration, unless that exact (id, triple) - pair is grandfathered in the snapshot. - 4. Alias hygiene: a vendor preset riding an OFL family must keep the OFL - base name, claim printers via non-empty compatible_printers, and declare - no filament_id key of its own. - 5. Reserved namespaces (GF*/QD_*/P-hex/"null", all ownerless) must not be - claimed by any vendor, except claims grandfathered in the snapshot. - 6. Structure ratchet: (a) no NEW instantiated preset carries its own - filament_id key; (b) no NEW declared-vs-inherited id drift; (c) every - instantiated filament resolves an effective id (a hard load error in C++). - 7. Triple integrity: (a) every declarer resolves non-empty filament_vendor - and filament_type (hard error, no grandfathering); (b) declarers of one - (bundle, family) resolve identical triples, unless grandfathered in - snapshot triple_exceptions; cross-bundle divergence on the same family - name is a warning only. - 8. Bambu catalog map: resources/printers/bambu_filament_ids.json must parse, + 2. Snapshot equality, both directions: every id in the tree, the filaments + claiming it and the triple its declarers resolve must equal the snapshot + entry exactly (the snapshot diff is the maintainer gate). + 3. Identity: the id is a function of the triple alone. (a) A declared id + must equal the mint of the declarer's own triple or a salted iteration; + (b) the id an instantiated preset inherits must equal the mint of ITS + own triple — how it inherits it (a root, a real filament, an OFL + preset) is irrelevant; (c) every instantiated filament resolves an + effective id at all (an id-less one is a hard load error in C++). + 4. Reserved namespaces (GF*/QD_*/P-hex/"null", all ownerless) must not be + claimed by any vendor. + 5. Triple integrity: (a) every declarer resolves non-empty filament_vendor + and filament_type; (b) declarers of one (bundle, filament) resolve + identical triples; cross-bundle divergence on the same filament name is a + warning only. + 6. Bambu catalog map: resources/printers/bambu_filament_ids.json must parse, carry source/bambustudio_commit/generated, key only OF-format ids, map each Bambu id at most once, and for every row whose key the tree claims, the tree's triple for that id must equal the row's (vendor, type, name). + + Nothing is grandfathered: the snapshot sanctions state, never exceptions. """ _utf8_console() errors = 0 @@ -571,24 +541,36 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, continue print_error( f'filament_id "{fid}" ({vendor}) is not a minted "OF" id; new ' - f'family ids must come from "python scripts/assign_filament_ids.py" ' + f'filament ids must come from "python scripts/assign_filament_ids.py" ' f'(see --mint)') errors += 1 # -- 2. snapshot equality (both directions) ----------------------------- + tree_triples = analysis["triples"] for fid in sorted(tree_ids): - if fid not in snap_ids: + entry = snap_ids.get(fid) + if entry is None: print_error( f'filament_id "{fid}" is not sanctioned by ' f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") errors += 1 continue for claim in tree_ids[fid]: - if claim not in snap_ids[fid]: + if claim not in entry["filaments"]: print_error( f'filament_id "{fid}" claim "{claim}" is not sanctioned by ' f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") errors += 1 + # Every tree id has at least one declarer; the snapshot records one + # triple per id, so a divergent declarer is a mismatch in both directions. + sanctioned = snapshot_triple(entry) + for t in tree_triples[fid]: + if t != sanctioned: + print_error( + f'filament_id "{fid}" triple "{"/".join(t)}" is not sanctioned by ' + f'scripts/filament_id_snapshot.json, which records ' + f'"{"/".join(sanctioned)}"; {UPDATE_HINT}') + errors += 1 for fid in sorted(snap_ids): if fid not in tree_ids: print_error( @@ -596,91 +578,31 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"{UPDATE_HINT}") errors += 1 continue - for claim in snap_ids[fid]: + for claim in snap_ids[fid]["filaments"]: if claim not in tree_ids[fid]: print_error( f'filament_id stability: snapshot claim "{claim}" of id "{fid}" ' f"vanished from the tree; {UPDATE_HINT}") errors += 1 - # ... and the declared triples, both directions. - snap_triples = snapshot["triples"] - tree_triples = analysis["triples"] - for fid in sorted(tree_triples): - for t in tree_triples[fid]: - if t not in snap_triples.get(fid, []): - print_error( - f'filament_id "{fid}" triple "{"/".join(t)}" is not sanctioned by ' - f"scripts/filament_id_snapshot.json; {UPDATE_HINT}") - errors += 1 - for fid in sorted(snap_triples): - for t in snap_triples[fid]: - if t not in tree_triples.get(fid, []): - print_error( - f'filament_id triple stability: snapshot triple "{"/".join(t)}" of ' - f'id "{fid}" vanished from the tree; {UPDATE_HINT}') - errors += 1 - # -- 3. mint conformance for OF-format declarations ---------------------- + # -- 3. identity: the id is a function of the triple alone --------------- for vendor, rec, fid, triple in sorted( analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): - if not OF_ID_RE.match(fid): - continue - if list(triple) in snap_triples.get(fid, []): - continue # grandfathered (id, triple) pair - minted = [generate_filament_id(*triple, salt=s) for s in range(MAX_CHECK_SALT + 1)] - if fid not in minted: - print_error( - f'filament_id "{fid}" declared by "{rec["name"]}" ({rec["file"]}) does ' - f'not match the mint of its triple "{"/".join(triple)}": expected ' - f'"{minted[0]}" (or a salted iteration); paste the expected id into the ' - f"family root (or, for an intentionally kept id, {UPDATE_HINT})") - errors += 1 - - # -- 4. alias hygiene for presets riding OFL families -------------------- - exceptions = set(snapshot["alias_exceptions"]) - for vendor, name, entry, reason, file in analysis["alias_violations"]: - if f"{vendor}/{name}" in exceptions: + if not OF_ID_RE.match(fid) or fid in mint_iterations(triple): continue print_error( - f'preset "{name}" ({file}) rides the OFL family "{entry}" but {reason}; ' - f"a vendor specialization keeps the OFL base name, sets non-empty " - f"compatible_printers and declares no filament_id key — or the family " - f"gets its own minted id") + f'filament_id "{fid}" declared by "{rec["name"]}" ({rec["file"]}) does ' + f'not match the mint of its triple "{"/".join(triple)}": expected ' + f'"{generate_filament_id(*triple)}" (or a salted iteration); paste the ' + f"expected id, or fix the triple and --remint the vendor") errors += 1 - - # -- 5. reserved namespaces ---------------------------------------------- - for fid in sorted(tree_ids): - is_reserved, owner = reserved_space_owner(fid) - if not is_reserved: - continue - for claim in tree_ids[fid]: - vendor = claim.split("/", 1)[0] - if vendor == owner: - continue - if claim in snap_ids.get(fid, []): - continue # grandfathered - space = reserved_space_desc(fid, owner) - print_error( - f'filament_id "{fid}" of "{claim}" is in a reserved id space ' - f"({space}) and must not be claimed by system presets of other vendors") - errors += 1 - - # -- 6. structure ratchet ------------------------------------------------- - grandfathered = set(snapshot["instantiated_with_id"]) - for key in analysis["instantiated_with_id"]: - if key not in grandfathered: - print_error( - f'instantiated preset "{key}" declares its own filament_id key; the key ' - f"belongs on the family root preset only (variants inherit it)") - errors += 1 - grandfathered = set(snapshot["id_overrides"]) - for vendor, name, declared, inherited, file in analysis["overrides"]: - if f"{vendor}/{name}" in grandfathered: - continue + for vendor, rec, eff, triple in sorted( + analysis["id_mismatches"], key=lambda x: (x[0], x[1]["file"])): print_error( - f'preset "{name}" ({file}) declares filament_id "{declared}" but its ' - f'inherits chain resolves "{inherited}"; a preset must not override its ' - f"family's id") + f'preset "{rec["name"]}" ({rec["file"]}) inherits filament_id "{eff}" but ' + f'its own triple "{"/".join(triple)}" mints "{generate_filament_id(*triple)}"; ' + f"a preset carries the id of its own product: inherit a preset of the " + f"same filament, or declare its own key") errors += 1 ofl_map = analysis["vendors"].get(OFL, {}) for vendor, name, file in analysis["missing_effective"]: @@ -689,11 +611,26 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, print_error( f'instantiated filament "{name}" ({file}) resolves no filament_id anywhere ' f"in its inherits chain — this is a hard load error in the C++ loader; " - f'run "python scripts/assign_filament_ids.py" (expected id for family ' + f'run "python scripts/assign_filament_ids.py" (expected id for filament ' f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') errors += 1 - # -- 7. triple integrity --------------------------------------------------- + # -- 4. reserved namespaces ---------------------------------------------- + for fid in sorted(tree_ids): + is_reserved, owner = reserved_space_owner(fid) + if not is_reserved: + continue + for claim in tree_ids[fid]: + vendor = claim.split("/", 1)[0] + if vendor == owner: + continue + space = reserved_space_desc(fid, owner) + print_error( + f'filament_id "{fid}" of "{claim}" is in a reserved id space ' + f"({space}) and must not be claimed by system presets of other vendors") + errors += 1 + + # -- 5. triple integrity --------------------------------------------------- for vendor, rec, fid, triple in sorted( analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): if triple[0] and triple[1]: @@ -706,27 +643,27 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f"resolves empty {missing}; the mint key needs both (generic materials " f'use filament_vendor "Generic")') errors += 1 - triple_exceptions = set(snapshot["triple_exceptions"]) - for (vendor, family), tmap in sorted(analysis["family_triples"].items()): - if len(tmap) < 2 or f"{vendor}/{family}" in triple_exceptions: + for (vendor, filament_name), tmap in sorted(analysis["filament_triples"].items()): + if len(tmap) < 2: continue detail = "; ".join( f'"{"/".join(t)}" ({", ".join(sorted(names))})' for t, names in sorted(tmap.items())) print_error( - f'family "{vendor}/{family}" declarers resolve divergent triples: {detail}; ' - f"declarers of one family must agree on (filament_vendor, filament_type)") + f'filament "{vendor}/{filament_name}" declarers resolve divergent triples: ' + f"{detail}; declarers of one filament must agree on " + f"(filament_vendor, filament_type)") errors += 1 - for family, per_vendor in analysis["cross_bundle_triples"]: + for filament_name, per_vendor in analysis["cross_bundle_triples"]: detail = "; ".join( f'{v}: {", ".join("/".join(t) for t in ts)}' for v, ts in sorted(per_vendor.items())) print_warning( - f'family name "{family}" resolves different triples across bundles ' + f'filament name "{filament_name}" resolves different triples across bundles ' f"({detail}); bundles of one product converge on one id only once " f"their triples agree") - # -- 8. Bambu catalog map -------------------------------------------------- + # -- 6. Bambu catalog map -------------------------------------------------- try: bambu_map = load_json(map_path) if not isinstance(bambu_map, dict): @@ -785,61 +722,52 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # --update-snapshot # --------------------------------------------------------------------------- -def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - allow_shared_catalog=False): +def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): """Regenerate the snapshot from the tree. - Refuses to sanction NEW reserved-namespace ids (or new claims on them) for - non-owner vendors unless --allow-shared-catalog is passed. Idempotent: a - second run over an unchanged tree changes nothing. Returns 0 on success. + Refuses to sanction a reserved-namespace id (or a claim on one) and an id + declared under more than one triple: neither can ever pass --check, so + writing it into the snapshot would only hide the mistake until CI. + Idempotent: a second run over an unchanged tree changes nothing. Returns 0 + on success. """ analysis = analyze_tree(profiles_dir) for msg in analysis["read_errors"]: print_error(msg) + + refusals = 0 + for vendor in sorted(analysis["vendor_ids"]): + for fid in sorted(analysis["vendor_ids"][vendor]): + is_reserved, owner = reserved_space_owner(fid) + if is_reserved and vendor != owner: + print_error( + f'refusing to sanction filament_id "{fid}" ({vendor}): reserved id ' + f"space, {reserved_space_desc(fid, owner)}") + refusals += 1 + for fid, ts in sorted(analysis["triples"].items()): + if len(ts) > 1: + print_error( + f'refusing to sanction filament_id "{fid}": declared under {len(ts)} ' + f'triples ({"; ".join("/".join(t) for t in ts)}); one id names one ' + f"product (check 3)") + refusals += 1 + if refusals: + return 1 + new_snap = snapshot_from_analysis(analysis) old_snap = load_snapshot(snapshot_path) old_ids = old_snap["ids"] if old_snap else {} - # Gate: new reserved-namespace ids / claims for non-owner vendors. - refusals = [] - for fid, claims in sorted(new_snap["ids"].items()): - is_reserved, owner = reserved_space_owner(fid) - if not is_reserved: - continue - for claim in claims: - if claim in old_ids.get(fid, []): - continue - vendor = claim.split("/", 1)[0] - if vendor == owner: - continue - refusals.append((fid, claim, owner)) - if not claims and fid not in old_ids: - # Declared-only new id: attribute it to its declaring vendor(s). - for vendor in sorted(analysis["vendor_ids"]): - if fid in analysis["vendor_ids"][vendor] and vendor != owner: - refusals.append((fid, f"{vendor}/(declared only)", owner)) - if refusals and not allow_shared_catalog: - for fid, claim, owner in refusals: - space = reserved_space_desc(fid, owner) - print_error( - f'refusing to sanction new claim "{claim}" on reserved-namespace id ' - f'"{fid}" ({space}); pass --allow-shared-catalog only for ' - f"maintainer-approved shared-catalog families") - return 1 - # Diff summary. added_ids = sorted(set(new_snap["ids"]) - set(old_ids)) removed_ids = sorted(set(old_ids) - set(new_snap["ids"])) added_claims = sum( - len(set(claims) - set(old_ids.get(fid, []))) - for fid, claims in new_snap["ids"].items()) + len(set(entry["filaments"]) - set(old_ids.get(fid, {}).get("filaments", []))) + for fid, entry in new_snap["ids"].items()) removed_claims = sum( - len(set(claims) - set(new_snap["ids"].get(fid, []))) - for fid, claims in old_ids.items()) - old_snap = old_snap or {"ids": {}, "instantiated_with_id": [], "id_overrides": [], - "alias_exceptions": [], "triples": {}, - "triple_exceptions": []} - changed = new_snap != old_snap + len(set(entry["filaments"]) - set(new_snap["ids"].get(fid, {}).get("filaments", []))) + for fid, entry in old_ids.items()) + changed = new_snap != (old_snap or {"ids": {}}) if changed: write_snapshot(snapshot_path, new_snap) @@ -847,11 +775,6 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, print_info(f"snapshot ids : {len(new_snap['ids'])} (+{len(added_ids)} / -{len(removed_ids)})") print_info(f"claims added : {added_claims}") print_info(f"claims removed : {removed_claims}") - print_info(f"declared triples : {len(new_snap['triples'])}") - for section in ("instantiated_with_id", "id_overrides", "alias_exceptions", - "triple_exceptions"): - before, after = len(old_snap.get(section, [])), len(new_snap[section]) - print_info(f"{section:<18}: {after} ({after - before:+d})") if changed: print_success(f"snapshot written to {snapshot_path}") else: @@ -952,25 +875,26 @@ def remove_filament_id(path, old_id): # --------------------------------------------------------------------------- -# Default run: mint + insert ids for id-less families +# Default run: mint + insert ids for id-less filaments # --------------------------------------------------------------------------- def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): - """Mint + insert ids for id-less families; mint + replace non-OF-format + """Mint + insert ids for id-less filaments; mint + replace non-OF-format declarations. Never rewrites a valid (OF-format) existing id. - A family = (vendor, base name) group over instantiated filaments with no - effective id. The minted id is a pure function of the family's triple — - (filament_vendor, filament_type) resolved on the root(s), family name — and - is inserted into the family's root(s): the presets its members inherit that - carry no id, or the member itself when it has no vendor-side parent. + A filament = (vendor, base name) group over instantiated presets with no + effective id. The minted id is a pure function of the filament's triple — + (filament_vendor, filament_type) resolved on the root(s), filament name — + and is inserted into the filament's root(s): the id-less presets of the + SAME filament its members inherit, or the member itself otherwise (a parent + of another filament cannot carry this filament's id — check 3). A declaration whose value is not OF-format (e.g. a vendor bundle synced from an upstream source that ships its own catalog ids, such as BBL's GF*) - is treated the same as a missing family: a fresh id is minted for the + is treated the same as a missing filament: a fresh id is minted for the declarer's triple and the value is replaced in place (declarers that share one triple across several per-printer roots converge on the same id, same - as the multi-root families above). This is what makes a future BBL sync + as the multi-root filaments above). This is what makes a future BBL sync self-healing: upstream files arrive with GF ids, this pass replaces them, and the generated Bambu catalog map (keyed by the ids this mints) already knows the resulting rows. @@ -983,8 +907,8 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): print_error(msg) errors += 1 - # Group id-less instantiated presets into families. - families = {} # (vendor, family) -> [rec] + # Group id-less instantiated presets by filament. + filaments = {} # (vendor, filament_name) -> [rec] for vendor, name, _file in analysis["missing_effective"]: rec = analysis["vendors"][vendor][name] if rec["id_source"] in ("cycle", "dangling"): @@ -992,17 +916,17 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): f'({rec["id_source"]})') errors += 1 continue - families.setdefault((vendor, base_name(name)), []).append(rec) + filaments.setdefault((vendor, base_name(name)), []).append(rec) # Declarations whose value is not OF-format: treated as missing too (see - # docstring). Grouped by triple, not by (vendor, family), so declarers + # docstring). Grouped by triple, not by (vendor, filament), so declarers # that legitimately share one triple across several files converge on one # freshly minted id instead of each getting their own. non_of_declarers = [ (vendor, rec, fid, triple) for vendor, rec, fid, triple in analysis["declarer_triples"] if not OF_ID_RE.match(fid)] - if not families and not non_of_declarers: + if not filaments and not non_of_declarers: print_success("every instantiated filament already resolves an OF-format " "filament_id; nothing to do (0 files changed)") return 0, errors @@ -1013,46 +937,34 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): for occurring in analysis["vendor_ids"].values(): taken |= occurring - # Family root(s): the direct vendor-side parents of the members (id-less by - # construction), or the member itself when it has none. - roots = {} # (vendor, family) -> {preset name: rec} - root_claims = {} # (vendor, root name) -> set of families wanting to write it - for key, members in sorted(families.items()): - vendor = key[0] + # Root preset(s): the direct vendor-side parents of the members (id-less by + # construction) that belong to the same filament, or the member itself. + roots = {} # (vendor, filament_name) -> {preset name: rec} + for key, members in sorted(filaments.items()): + vendor, filament_name = key vendor_map = analysis["vendors"][vendor] - family_roots = {} + filament_roots = {} for rec in members: parent = rec.get("inherits") root = vendor_map.get(parent) if parent else None - if root is None or root.get("filament_id"): + if (root is None or root.get("filament_id") + or base_name(root["name"]) != filament_name): root = rec # root-less member carries the id itself - family_roots[root["name"]] = root - root_claims.setdefault((vendor, root["name"]), set()).add(key) - roots[key] = family_roots + filament_roots[root["name"]] = root + roots[key] = filament_roots ofl_map = analysis["vendors"].get(OFL, {}) files_changed = 0 - families_minted = 0 - for key, family_roots in sorted(roots.items()): - vendor, family = key - shared = [n for n in family_roots - if len(root_claims[(vendor, n)]) > 1] - if shared: - others = sorted({f"{v}/{f}" for n in shared - for (v, f) in root_claims[(vendor, n)] if (v, f) != key}) - print_error( - f'cannot mint for family "{vendor}/{family}": root(s) ' - f"{sorted(shared)} are shared with famil(ies) {others}; split the " - f"roots so each family has its own") - errors += 1 - continue + filaments_minted = 0 + for key, filament_roots in sorted(roots.items()): + vendor, filament_name = key vendor_map = analysis["vendors"][vendor] fields = {(resolve_filament_field(n, "filament_vendor", vendor_map, ofl_map), resolve_filament_field(n, "filament_type", vendor_map, ofl_map)) - for n in family_roots} + for n in filament_roots} if len(fields) > 1: print_error( - f'cannot mint for family "{vendor}/{family}": its roots resolve ' + f'cannot mint for filament "{vendor}/{filament_name}": its roots resolve ' f"divergent (filament_vendor, filament_type) pairs {sorted(fields)}; " f"align the fields first") errors += 1 @@ -1063,26 +975,27 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): k for k, v in (("filament_vendor", fvendor), ("filament_type", ftype)) if not v) print_error( - f'cannot mint for family "{vendor}/{family}": it resolves empty ' + f'cannot mint for filament "{vendor}/{filament_name}": it resolves empty ' f'{missing}; the mint key needs both (generic materials use ' f'filament_vendor "Generic")') errors += 1 continue - new_id = mint_filament_id(fvendor, ftype, family, taken) + new_id = mint_filament_id(fvendor, ftype, filament_name, taken) taken.add(new_id) - families_minted += 1 - for name in sorted(family_roots): - root = family_roots[name] + filaments_minted += 1 + for name in sorted(filament_roots): + root = filament_roots[name] write_filament_id(root["path"], new_id) files_changed += 1 - print_info(f'family "{vendor}/{family}": filament_id "{new_id}" -> {root["file"]}') + print_info(f'filament "{vendor}/{filament_name}": filament_id "{new_id}" ' + f'-> {root["file"]}') # Non-OF-format declarations: mint once per triple, rewrite every declarer # that shares it (see docstring). declarations_reminted = 0 assigned = {} # triple -> id chosen this run for vendor, rec, fid, triple in sorted(non_of_declarers, key=lambda x: (x[0], x[1]["file"])): - fvendor, ftype, family = triple + fvendor, ftype, filament_name = triple if not fvendor or not ftype: missing = " and ".join( k for k, v in (("filament_vendor", fvendor), @@ -1094,16 +1007,16 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): errors += 1 continue if triple not in assigned: - assigned[triple] = mint_filament_id(fvendor, ftype, family, taken) + assigned[triple] = mint_filament_id(fvendor, ftype, filament_name, taken) taken.add(assigned[triple]) new_id = assigned[triple] rewrite_filament_id(rec["path"], fid, new_id) files_changed += 1 declarations_reminted += 1 - print_info(f'family "{vendor}/{family}": non-OF filament_id "{fid}" -> "{new_id}" ' - f'({rec["file"]})') + print_info(f'filament "{vendor}/{filament_name}": non-OF filament_id "{fid}" ' + f'-> "{new_id}" ({rec["file"]})') - print_info(f"families minted : {families_minted}") + print_info(f"filaments minted : {filaments_minted}") print_info(f"non-OF reminted : {declarations_reminted}") print_info(f"files changed : {files_changed}") if files_changed: @@ -1178,8 +1091,7 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): # mint-conformant (check 3) — leave it. This keeps deliberate salt # splits (two presets of one product that must stay distinct for # per-printer AMS matching, validator -f) stable across re-mints. - if fid in {generate_filament_id(*rec["triple"], salt=s) - for s in range(MAX_CHECK_SALT + 1)}: + if fid in mint_iterations(rec["triple"]): continue want = want_id(rec["triple"]) if fid == want: @@ -1197,8 +1109,8 @@ def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): def drop_redundant_ids(vendor, profiles_dir=PROFILES_DIR): """Delete filament_id declarations in `vendor` that merely re-declare an OFL - family's id path: ignoring its own key, the preset's inherits chain enters - OFL and resolves an OFL-declared id, and the preset keeps the OFL family's + filament's id path: ignoring its own key, the preset's inherits chain enters + OFL and resolves an OFL-declared id, and the preset keeps the OFL filament's base name. Such a preset is a specialization and rides the OFL id (v3.2(b)). Never touches the snapshot. Returns (dropped, errors). """ @@ -1246,25 +1158,22 @@ def drop_redundant_ids(vendor, profiles_dir=PROFILES_DIR): def main(argv=None): _utf8_console() parser = argparse.ArgumentParser( - description="Mint deterministic filament_id values for id-less filament " - "families and validate the tree against the sanctioned snapshot.") - parser.add_argument("--mint", metavar='"Vendor/Type/Family"', + description="Mint deterministic filament_id values for id-less filaments " + "and validate the tree against the sanctioned snapshot.") + parser.add_argument("--mint", metavar='"Vendor/Type/Filament"', help="print the id the (filament_vendor, filament_type, " - "family name) triple would mint; touches nothing") + "filament name) triple would mint; touches nothing") parser.add_argument("--update-snapshot", action="store_true", help="regenerate scripts/filament_id_snapshot.json from " "the tree") parser.add_argument("--check", action="store_true", help="run the filament_id checks; exit nonzero on errors") - parser.add_argument("--allow-shared-catalog", action="store_true", - help="with --update-snapshot: allow sanctioning new claims " - "on reserved-namespace ids for non-owner vendors") parser.add_argument("--remint", metavar="VENDOR", action="append", help="re-derive VENDOR's declared filament_ids from their " "triples and rewrite mismatches in place; repeatable") parser.add_argument("--drop-redundant-ids", metavar="VENDOR", help="delete filament_id declarations in VENDOR that " - "re-declare the OFL family id they already resolve " + "re-declare the OFL filament id they already resolve " "through inherits") parser.add_argument("--profiles", default=PROFILES_DIR, help="profiles directory (default: resources/profiles)") @@ -1274,8 +1183,8 @@ def main(argv=None): if args.mint: parts = args.mint.split("/", 2) if len(parts) != 3 or not all(parts): - parser.error('--mint expects "filament_vendor/filament_type/family_name" ' - "with all three components non-empty (check 7 rejects empty " + parser.error('--mint expects "filament_vendor/filament_type/filament_name" ' + "with all three components non-empty (check 5 rejects empty " "vendor/type in the tree)") snapshot = load_snapshot(SNAPSHOT_PATH) or {"ids": {}} taken = set(snapshot["ids"]) @@ -1295,8 +1204,7 @@ def main(argv=None): return 1 if errors else 0 if args.update_snapshot: - return update_snapshot(args.profiles, SNAPSHOT_PATH, - allow_shared_catalog=args.allow_shared_catalog) + return update_snapshot(args.profiles, SNAPSHOT_PATH) if args.check: errors = check_filament_ids(args.profiles, SNAPSHOT_PATH) diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index cf4d13c987..9b0c64f473 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1,13212 +1,7903 @@ { - "alias_exceptions": [ - "BBL/COEX NYLEX UNFILLED @BBL X1C", - "Flashforge/Flashforge ABS Basic @FF C5", - "Flashforge/Flashforge ABS Basic @FF C5P", - "Flashforge/Flashforge ABS-GF @FF C5", - "Flashforge/Flashforge ABS-GF @FF C5P", - "Flashforge/Flashforge ASA Basic @FF C5", - "Flashforge/Flashforge ASA Basic @FF C5P", - "Flashforge/Flashforge ASA-CF @FF C5", - "Flashforge/Flashforge ASA-CF @FF C5P", - "Flashforge/Flashforge ASA-GF @FF C5", - "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge HIPS @FF C5", - "Flashforge/Flashforge HIPS @FF C5P", - "Flashforge/Flashforge HS PETG @FF C5", - "Flashforge/Flashforge HS PETG @FF C5P", - "Flashforge/Flashforge HS PLA @FF C5", - "Flashforge/Flashforge HS PLA @FF C5P", - "Flashforge/Flashforge PA-CF @FF C5", - "Flashforge/Flashforge PA-CF @FF C5P", - "Flashforge/Flashforge PET-CF @FF C5", - "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG Pro @FF C5", - "Flashforge/Flashforge PETG Pro @FF C5P", - "Flashforge/Flashforge PETG Transparent @FF C5", - "Flashforge/Flashforge PETG Transparent @FF C5P", - "Flashforge/Flashforge PETG-CF @FF C5", - "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PLA Basic @FF C5", - "Flashforge/Flashforge PLA Basic @FF C5P", - "Flashforge/Flashforge PLA Color Change @FF C5", - "Flashforge/Flashforge PLA Color Change @FF C5P", - "Flashforge/Flashforge PLA Galaxy @FF C5", - "Flashforge/Flashforge PLA Galaxy @FF C5P", - "Flashforge/Flashforge PLA Luminous @FF C5", - "Flashforge/Flashforge PLA Luminous @FF C5P", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", - "Flashforge/Flashforge PLA Silk @FF C5", - "Flashforge/Flashforge PLA Silk @FF C5P", - "Flashforge/Flashforge PLA-CF @FF C5", - "Flashforge/Flashforge PLA-CF @FF C5P", - "Flashforge/Flashforge PPA-CF @FF C5", - "Flashforge/Flashforge PPA-CF @FF C5P", - "Flashforge/Flashforge PPS-CF @FF C5", - "Flashforge/Flashforge PPS-CF @FF C5P", - "Flashforge/Flashforge PVA @FF C5", - "Flashforge/Flashforge PVA @FF C5P", - "Flashforge/Flashforge TPU-64D @FF C5", - "Flashforge/Flashforge TPU-64D @FF C5P", - "Flashforge/Flashforge TPU-90A @FF C5", - "Flashforge/Flashforge TPU-90A @FF C5P", - "Flashforge/Flashforge TPU-95A @FF C5", - "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock PAHT-CF @FF C5", - "Flashforge/FusRock PAHT-CF @FF C5P", - "Flashforge/FusRock S-Multi @FF C5", - "Flashforge/FusRock S-Multi @FF C5P", - "Flashforge/FusRock S-PAHT @FF C5", - "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/Generic TPU-64D @FF C5", - "Flashforge/Generic TPU-64D @FF C5P", - "Flashforge/Generic TPU-90A @FF C5", - "Flashforge/Generic TPU-90A @FF C5P", - "Flashforge/Generic TPU-95A @FF C5", - "Flashforge/Generic TPU-95A @FF C5P", - "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", - "Snapmaker/PolyTerra J1 PLA", - "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", - "Sovol/Generic PLA Silk @Sovol SV08 MAX", - "Sovol/Polymaker PETG @Sovol SV08 MAX", - "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk HS Nozzle" - ], - "id_overrides": [ - "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Artillery/Artillery ABS", - "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PET @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PETG", - "Artillery/Artillery PETG @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Basic", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Matte", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Silk", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Tough", - "Artillery/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery TPU", - "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "BBL/addnorth ABS rABS", - "BBL/addnorth PA Adura", - "BBL/addnorth PA Adura FDA", - "BBL/addnorth PA-CF Adura X", - "BBL/addnorth PA6 Addlantis", - "BBL/addnorth PC BLend HT LCF", - "BBL/addnorth PETG Base", - "BBL/addnorth PETG ESD", - "BBL/addnorth PETG Economy", - "BBL/addnorth PETG Flame v0", - "BBL/addnorth PETG PRO Matte", - "BBL/addnorth PETG rPETG Matte", - "BBL/addnorth PETG-CF Rigid X", - "BBL/addnorth PLA E-PLA", - "BBL/addnorth PLA Economy", - "BBL/addnorth PLA HT-PLA PRO Matte", - "BBL/addnorth PLA Premium Silk", - "BBL/addnorth PLA Textura", - "BBL/addnorth PLA Wood", - "BBL/addnorth PLA X-PLA", - "BBL/addnorth PLA X-PLA High Speed", - "BBL/addnorth PLA rPLA RE-ADD", - "BBL/addnorth PLA-CF Carbon Fiber", - "BBL/addnorth PVDF Adamant S1", - "BBL/addnorth TPU EasyFlex", - "BBL/addnorth TPU Pro Matte 85A", - "BBL/addnorth TPU Pro Matte 95A", - "Chuanying/Generic HIPS @Chuanying", - "Chuanying/Generic PVA @Chuanying", - "Co Print/Generic ABS @CoPrint", - "Co Print/Generic PETG @CoPrint", - "Co Print/Generic TPU @CoPrint", - "Creality/Generic ASA-CF @Creality Hi-all", - "Creality/Generic PETG-CF @Creality Hi-all", - "Creality/Generic PLA High Speed @Creality Ender-3V3-all", - "Creality/Generic PLA High Speed @Creality Hi-all", - "Creality/Generic PLA High Speed @Creality K1-all", - "Creality/Generic PLA High Speed @Creality K2-all", - "Creality/Generic PLA Matte @Creality Ender-3V3-all", - "Creality/Generic PLA Matte @Creality Hi-all", - "Creality/Generic PLA Matte @Creality K1-all", - "Creality/Generic PLA Matte @Creality K2-all", - "Creality/Generic PLA Silk @Creality Ender-3V3-all", - "Creality/Generic PLA Silk @Creality Hi-all", - "Creality/Generic PLA Silk @Creality K1-all", - "Creality/Generic PLA Silk @Creality K2-all", - "Creality/Generic PLA Wood @Creality Hi-all", - "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @base", - "Cubicon/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABSk @base", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PC @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA+ @base", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @base", - "Elegoo/Elegoo ASA-CF @base", - "Elegoo/Elegoo PC-FR @base", - "Elegoo/Elegoo PET-CF @base", - "Elegoo/Elegoo PETG HF @base", - "Elegoo/Elegoo PETG PRO @base", - "Elegoo/Elegoo PETG Translucent @base", - "Elegoo/Elegoo PETG-CF @base", - "Elegoo/Elegoo PETG-GF @base", - "Elegoo/Elegoo PLA Basic @base", - "Elegoo/Elegoo PLA Galaxy @base", - "Elegoo/Elegoo PLA Glow @base", - "Elegoo/Elegoo PLA Marble @base", - "Elegoo/Elegoo PLA Matte @base", - "Elegoo/Elegoo PLA PRO @base", - "Elegoo/Elegoo PLA Silk @base", - "Elegoo/Elegoo PLA Sparkle @base", - "Elegoo/Elegoo PLA Translucent2 @base", - "Elegoo/Elegoo PLA Wood @base", - "Elegoo/Elegoo PLA+ @base", - "Elegoo/Elegoo PLA-CF @base", - "Elegoo/Elegoo Rapid PETG @base", - "Elegoo/Elegoo Rapid PLA+ @base", - "Elegoo/Elegoo Rapid TPU 95A @base", - "Elegoo/Generic ABS-CF @Elegoo Centauri", - "Elegoo/Generic ASA-CF @Elegoo Centauri", - "Elegoo/Generic PA6-CF @Elegoo", - "Elegoo/Generic PC-CF @Elegoo", - "Elegoo/Generic PET-CF @Elegoo Centauri", - "Elegoo/Generic PETG PRO @Elegoo", - "Elegoo/Generic PETG-CF @Elegoo Centauri", - "Elegoo/Generic PLA Matte @Elegoo", - "Flashforge/Flashforge ABS @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge ABS Basic", - "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge ABS Basic @FF C5", - "Flashforge/Flashforge ABS Basic @FF C5P", - "Flashforge/Flashforge ABS Basic @FF G4", - "Flashforge/Flashforge ABS Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 HF", - "Flashforge/Flashforge ABS Basic @FF G4P", - "Flashforge/Flashforge ABS Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P HF", - "Flashforge/Flashforge ABS-CF @FF G4", - "Flashforge/Flashforge ABS-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge ABS-CF @FF G4P", - "Flashforge/Flashforge ABS-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ABS-GF @FF C5", - "Flashforge/Flashforge ABS-GF @FF C5P", - "Flashforge/Flashforge ASA @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge ASA Basic", - "Flashforge/Flashforge ASA Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge ASA Basic @FF C5", - "Flashforge/Flashforge ASA Basic @FF C5P", - "Flashforge/Flashforge ASA Basic @FF G4", - "Flashforge/Flashforge ASA Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 HF", - "Flashforge/Flashforge ASA Basic @FF G4P", - "Flashforge/Flashforge ASA Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P HF", - "Flashforge/Flashforge ASA-CF", - "Flashforge/Flashforge ASA-CF @FF C5", - "Flashforge/Flashforge ASA-CF @FF C5P", - "Flashforge/Flashforge ASA-CF @FF G4", - "Flashforge/Flashforge ASA-CF @FF G4P", - "Flashforge/Flashforge ASA-GF @FF C5", - "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge HIPS @FF C5", - "Flashforge/Flashforge HIPS @FF C5P", - "Flashforge/Flashforge HIPS @FF G4", - "Flashforge/Flashforge HIPS @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4 0.6 nozzle", - "Flashforge/Flashforge HIPS @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4 HF", - "Flashforge/Flashforge HIPS @FF G4P", - "Flashforge/Flashforge HIPS @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HIPS @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4P HF", - "Flashforge/Flashforge HS PETG", - "Flashforge/Flashforge HS PETG @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X", - "Flashforge/Flashforge HS PETG @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge HS PETG @FF C5", - "Flashforge/Flashforge HS PETG @FF C5P", - "Flashforge/Flashforge HS PETG @FF G4", - "Flashforge/Flashforge HS PETG @FF G4 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4 HF", - "Flashforge/Flashforge HS PETG @FF G4P", - "Flashforge/Flashforge HS PETG @FF G4P 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4P HF", - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge HS PLA @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X", - "Flashforge/Flashforge HS PLA @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge HS PLA @FF C5", - "Flashforge/Flashforge HS PLA @FF C5P", - "Flashforge/Flashforge HS PLA @FF G4", - "Flashforge/Flashforge HS PLA @FF G4 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4 HF", - "Flashforge/Flashforge HS PLA @FF G4P", - "Flashforge/Flashforge HS PLA @FF G4P 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4P HF", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 HF", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P HF", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PA @FF G4", - "Flashforge/Flashforge PA @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PA @FF G4 HF", - "Flashforge/Flashforge PA @FF G4P", - "Flashforge/Flashforge PA @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PA @FF G4P HF", - "Flashforge/Flashforge PA-CF @FF C5", - "Flashforge/Flashforge PA-CF @FF C5P", - "Flashforge/Flashforge PA-CF @FF G4", - "Flashforge/Flashforge PA-CF @FF G4P", - "Flashforge/Flashforge PA12-CF", - "Flashforge/Flashforge PA6-CF", - "Flashforge/Flashforge PA66-CF", - "Flashforge/Flashforge PC @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PC @FF G4 0.6 nozzle", - "Flashforge/Flashforge PC @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PC @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PC @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PC @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PET-CF", - "Flashforge/Flashforge PET-CF @FF C5", - "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge PETG Basic", - "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Pro", - "Flashforge/Flashforge PETG Pro @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG Pro @FF C5", - "Flashforge/Flashforge PETG Pro @FF C5P", - "Flashforge/Flashforge PETG Pro @FF G4", - "Flashforge/Flashforge PETG Pro @FF G4 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 HF", - "Flashforge/Flashforge PETG Pro @FF G4P", - "Flashforge/Flashforge PETG Pro @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P HF", - "Flashforge/Flashforge PETG Transparent", - "Flashforge/Flashforge PETG Transparent @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG Transparent @FF C5", - "Flashforge/Flashforge PETG Transparent @FF C5P", - "Flashforge/Flashforge PETG Transparent @FF G4", - "Flashforge/Flashforge PETG Transparent @FF G4 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 HF", - "Flashforge/Flashforge PETG Transparent @FF G4P", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P HF", - "Flashforge/Flashforge PETG-CF", - "Flashforge/Flashforge PETG-CF @FF AD5X", - "Flashforge/Flashforge PETG-CF @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG-CF @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG-CF @FF C5", - "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PETG-CF @FF G4", - "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG-CF @FF G4P", - "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Basic @FF C5", - "Flashforge/Flashforge PLA Basic @FF C5P", - "Flashforge/Flashforge PLA Basic @FF G4", - "Flashforge/Flashforge PLA Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 HF", - "Flashforge/Flashforge PLA Basic @FF G4P", - "Flashforge/Flashforge PLA Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P HF", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Color Change @FF C5", - "Flashforge/Flashforge PLA Color Change @FF C5P", - "Flashforge/Flashforge PLA Color Change @FF G4", - "Flashforge/Flashforge PLA Color Change @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 HF", - "Flashforge/Flashforge PLA Color Change @FF G4P", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P HF", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF C5", - "Flashforge/Flashforge PLA Galaxy @FF C5P", - "Flashforge/Flashforge PLA Galaxy @FF G4", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 HF", - "Flashforge/Flashforge PLA Galaxy @FF G4P", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P HF", - "Flashforge/Flashforge PLA Luminous", - "Flashforge/Flashforge PLA Luminous @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Luminous @FF C5", - "Flashforge/Flashforge PLA Luminous @FF C5P", - "Flashforge/Flashforge PLA Luminous @FF G4", - "Flashforge/Flashforge PLA Luminous @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 HF", - "Flashforge/Flashforge PLA Luminous @FF G4P", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P HF", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Matte @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Matte @FF G4", - "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 HF", - "Flashforge/Flashforge PLA Matte @FF G4P", - "Flashforge/Flashforge PLA Matte @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P HF", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Metal @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Metal @FF G4", - "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 HF", - "Flashforge/Flashforge PLA Metal @FF G4P", - "Flashforge/Flashforge PLA Metal @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P HF", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Pro @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", - "Flashforge/Flashforge PLA Pro @FF G4", - "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 HF", - "Flashforge/Flashforge PLA Pro @FF G4P", - "Flashforge/Flashforge PLA Pro @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P HF", - "Flashforge/Flashforge PLA Silk", - "Flashforge/Flashforge PLA Silk @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Silk @FF C5", - "Flashforge/Flashforge PLA Silk @FF C5P", - "Flashforge/Flashforge PLA Silk @FF G4", - "Flashforge/Flashforge PLA Silk @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 HF", - "Flashforge/Flashforge PLA Silk @FF G4P", - "Flashforge/Flashforge PLA Silk @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P HF", - "Flashforge/Flashforge PLA Sparkle", - "Flashforge/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 HF", - "Flashforge/Flashforge PLA Sparkle @FF G4P", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P HF", - "Flashforge/Flashforge PLA-CF", - "Flashforge/Flashforge PLA-CF @FF AD5X", - "Flashforge/Flashforge PLA-CF @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA-CF @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA-CF @FF C5", - "Flashforge/Flashforge PLA-CF @FF C5P", - "Flashforge/Flashforge PLA-CF @FF G4", - "Flashforge/Flashforge PLA-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA-CF @FF G4P", - "Flashforge/Flashforge PLA-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Flashforge PPA-CF", - "Flashforge/Flashforge PPA-CF @FF C5", - "Flashforge/Flashforge PPA-CF @FF C5P", - "Flashforge/Flashforge PPA-GF", - "Flashforge/Flashforge PPS @FF G4", - "Flashforge/Flashforge PPS @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PPS @FF G4 0.6 nozzle", - "Flashforge/Flashforge PPS @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PPS @FF G4P", - "Flashforge/Flashforge PPS @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PPS @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PPS @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PPS-CF", - "Flashforge/Flashforge PPS-CF @FF C5", - "Flashforge/Flashforge PPS-CF @FF C5P", - "Flashforge/Flashforge PPS-CF @FF G4", - "Flashforge/Flashforge PPS-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PPS-CF @FF G4P", - "Flashforge/Flashforge PPS-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PVA @FF C5", - "Flashforge/Flashforge PVA @FF C5P", - "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4 0.6 nozzle", - "Flashforge/Flashforge TPU 65D @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.6 nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge TPU 95A", - "Flashforge/Flashforge TPU 95A @FF AD5X", - "Flashforge/Flashforge TPU 95A @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4", - "Flashforge/Flashforge TPU 95A @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P", - "Flashforge/Flashforge TPU 95A @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge TPU-64D @FF C5", - "Flashforge/Flashforge TPU-64D @FF C5P", - "Flashforge/Flashforge TPU-90A @FF C5", - "Flashforge/Flashforge TPU-90A @FF C5P", - "Flashforge/Flashforge TPU-95A @FF C5", - "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock NexPA-CF25", - "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", - "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", - "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", - "Flashforge/FusRock PAHT-CF", - "Flashforge/FusRock PAHT-CF @FF C5", - "Flashforge/FusRock PAHT-CF @FF C5P", - "Flashforge/FusRock PAHT-CF @FF G4", - "Flashforge/FusRock PAHT-CF @FF G4P", - "Flashforge/FusRock PAHT-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock PAHT-GF", - "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", - "Flashforge/FusRock PET-CF", - "Flashforge/FusRock PET-CF @FF G4", - "Flashforge/FusRock PET-CF @FF G4P", - "Flashforge/FusRock PET-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock PET-GF", - "Flashforge/FusRock S-Multi", - "Flashforge/FusRock S-Multi @FF C5", - "Flashforge/FusRock S-Multi @FF C5P", - "Flashforge/FusRock S-Multi @G3U 0.6 Nozzle", - "Flashforge/FusRock S-PAHT", - "Flashforge/FusRock S-PAHT @FF C5", - "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/FusRock S-PAHT @G3U 0.6 Nozzle", - "Flashforge/Generic ASA @Flashforge G3U", - "Flashforge/Generic HIPS @Flashforge", - "Flashforge/Generic HIPS @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PET @FF G4", - "Flashforge/Generic PET @FF G4 0.6 HF nozzle", - "Flashforge/Generic PET @FF G4 0.6 nozzle", - "Flashforge/Generic PET @FF G4 0.8 HF nozzle", - "Flashforge/Generic PET @FF G4P", - "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", - "Flashforge/Generic PET @FF G4P 0.6 nozzle", - "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", - "Flashforge/Generic PETG-CF @Flashforge G3U", - "Flashforge/Generic PETG-CF @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PETG-CF @Flashforge G3U 0.8 Nozzle", - "Flashforge/Generic PLA High Speed @Flashforge AD4", - "Flashforge/Generic PLA Silk @Flashforge AD4", - "Flashforge/Generic PLA-CF @Flashforge G3U", - "Flashforge/Generic PLA-CF @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PLA-CF @Flashforge G3U 0.8 Nozzle", - "Flashforge/Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Generic PVA @Flashforge", - "Flashforge/Generic TPU 85A @FF AD5X", - "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", - "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", - "Flashforge/Generic TPU-64D @FF C5", - "Flashforge/Generic TPU-64D @FF C5P", - "Flashforge/Generic TPU-90A @FF C5", - "Flashforge/Generic TPU-90A @FF C5P", - "Flashforge/Generic TPU-95A @FF C5", - "Flashforge/Generic TPU-95A @FF C5P", - "Flashforge/Polymaker CoPA", - "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", - "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", - "Flashforge/Polymaker S1", - "OrcaFilamentLibrary/AliZ PETG-CF @base", - "OrcaFilamentLibrary/AliZ PETG-Metal @base", - "OrcaFilamentLibrary/Elegoo ASA-CF @base", - "OrcaFilamentLibrary/Elegoo PC-FR @base", - "OrcaFilamentLibrary/Elegoo PET-CF @base", - "OrcaFilamentLibrary/Elegoo PETG HF @base", - "OrcaFilamentLibrary/Elegoo PETG PRO @base", - "OrcaFilamentLibrary/Elegoo PETG Translucent @base", - "OrcaFilamentLibrary/Elegoo PETG-CF @base", - "OrcaFilamentLibrary/Elegoo PETG-GF @base", - "OrcaFilamentLibrary/Elegoo PLA Basic @base", - "OrcaFilamentLibrary/Elegoo PLA Galaxy @base", - "OrcaFilamentLibrary/Elegoo PLA Glow @base", - "OrcaFilamentLibrary/Elegoo PLA Marble @base", - "OrcaFilamentLibrary/Elegoo PLA Matte @base", - "OrcaFilamentLibrary/Elegoo PLA PRO @base", - "OrcaFilamentLibrary/Elegoo PLA Silk @base", - "OrcaFilamentLibrary/Elegoo PLA Sparkle @base", - "OrcaFilamentLibrary/Elegoo PLA Translucent2 @base", - "OrcaFilamentLibrary/Elegoo PLA Wood @base", - "OrcaFilamentLibrary/Elegoo PLA+ @base", - "OrcaFilamentLibrary/Elegoo PLA-CF @base", - "OrcaFilamentLibrary/Elegoo Rapid PETG @base", - "OrcaFilamentLibrary/Elegoo Rapid PLA+ @base", - "OrcaFilamentLibrary/Elegoo Rapid TPU 95A @base", - "OrcaFilamentLibrary/FilAr PETG Amarillo Lima", - "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante", - "OrcaFilamentLibrary/FilAr PETG Azul Boreal", - "OrcaFilamentLibrary/FilAr PETG Azul Francia", - "OrcaFilamentLibrary/FilAr PETG Azul Imperial", - "OrcaFilamentLibrary/FilAr PETG Blanco Antartida", - "OrcaFilamentLibrary/FilAr PETG Cian", - "OrcaFilamentLibrary/FilAr PETG Coral", - "OrcaFilamentLibrary/FilAr PETG Cristal", - "OrcaFilamentLibrary/FilAr PETG Gris Ceniza", - "OrcaFilamentLibrary/FilAr PETG Gris Plata", - "OrcaFilamentLibrary/FilAr PETG Magenta", - "OrcaFilamentLibrary/FilAr PETG Negro Azabache", - "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi", - "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio", - "OrcaFilamentLibrary/FilAr PLA Azul Francia", - "OrcaFilamentLibrary/FilAr PLA Blanco Antartida", - "OrcaFilamentLibrary/FilAr PLA Blanco Calido", - "OrcaFilamentLibrary/FilAr PLA Bronce", - "OrcaFilamentLibrary/FilAr PLA Cafe con Leche", - "OrcaFilamentLibrary/FilAr PLA Carpincho", - "OrcaFilamentLibrary/FilAr PLA Celeste Cielo", - "OrcaFilamentLibrary/FilAr PLA Cobre", - "OrcaFilamentLibrary/FilAr PLA Dorado", - "OrcaFilamentLibrary/FilAr PLA Gris Ceniza", - "OrcaFilamentLibrary/FilAr PLA Gris Pizarra", - "OrcaFilamentLibrary/FilAr PLA Gris Plata", - "OrcaFilamentLibrary/FilAr PLA Manteca", - "OrcaFilamentLibrary/FilAr PLA Marron Oxido", - "OrcaFilamentLibrary/FilAr PLA Naranja Tigre", - "OrcaFilamentLibrary/FilAr PLA Negro Azabache", - "OrcaFilamentLibrary/FilAr PLA Oro", - "OrcaFilamentLibrary/FilAr PLA Piel", - "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras", - "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto", - "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco", - "OrcaFilamentLibrary/FilAr PLA Tabaco", - "OrcaFilamentLibrary/FilAr PLA Titanio", - "OrcaFilamentLibrary/FilAr PLA Verde FilAr", - "OrcaFilamentLibrary/FilAr PLA Verde Manzana", - "OrcaFilamentLibrary/FilAr PLA Verde Oliva", - "OrcaFilamentLibrary/FilAr PLA Verde Pixel", - "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda", - "OrcaFilamentLibrary/FilAr PLA-mate Amarillo", - "OrcaFilamentLibrary/FilAr PLA-mate Azul", - "OrcaFilamentLibrary/FilAr PLA-mate Beige", - "OrcaFilamentLibrary/FilAr PLA-mate Blanco", - "OrcaFilamentLibrary/FilAr PLA-mate Bordo", - "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo", - "OrcaFilamentLibrary/FilAr PLA-mate Chocolate", - "OrcaFilamentLibrary/FilAr PLA-mate Gris", - "OrcaFilamentLibrary/FilAr PLA-mate Marron", - "OrcaFilamentLibrary/FilAr PLA-mate Naranja", - "OrcaFilamentLibrary/FilAr PLA-mate Negro", - "OrcaFilamentLibrary/FilAr PLA-mate Piel", - "OrcaFilamentLibrary/FilAr PLA-mate Rojo", - "OrcaFilamentLibrary/FilAr PLA-mate Rosa", - "OrcaFilamentLibrary/FilAr PLA-mate Uva", - "OrcaFilamentLibrary/FilAr PLA-mate Verde", - "OrcaFilamentLibrary/FilAr PLA-mate Violeta", - "OrcaFilamentLibrary/PolyLite Dual PLA @base", - "OrcaFilamentLibrary/PolyTerra Dual PLA @System", - "Prusa/Generic PLA Silk @Prusa MK4S", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS Rapido 0.2 nozzle", - "Qidi/QIDI ABS Rapido 0.6 nozzle", - "Qidi/QIDI ABS Rapido 0.8 nozzle", - "Qidi/QIDI PETG Tough 0.2 nozzle", - "Qidi/QIDI PETG Tough 0.6 nozzle", - "Qidi/QIDI PETG Tough 0.8 nozzle", - "Qidi/QIDI PLA Rapido 0.2 nozzle", - "Qidi/QIDI PLA Rapido 0.8 nozzle", - "Qidi/QIDI PLA-CF @0.6 nozzle", - "Qidi/QIDI PLA-CF @0.8 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "Snapmaker/PolyLite Dual PLA @0.2 nozzle", - "Snapmaker/PolyLite J1 PLA", - "Snapmaker/PolyLite J1 PLA @0.2 nozzle", - "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", - "Snapmaker/PolyTerra J1 PLA", - "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", - "Snapmaker/Polymaker General PLA Family @U1", - "Snapmaker/Polymaker Silk PLA Family @U1", - "Snapmaker/Polymaker Tough PLA Family @U1", - "Snapmaker/Snapmaker ABS Benchy @U1", - "Snapmaker/Snapmaker Dual ABS Benchy", - "Snapmaker/Snapmaker Dual TPE", - "Snapmaker/Snapmaker Dual TPU High-Flow", - "Snapmaker/Snapmaker J1 ABS Benchy", - "Snapmaker/Snapmaker J1 TPE", - "Snapmaker/Snapmaker J1 TPU High-Flow", - "Snapmaker/Snapmaker PET @Dual", - "Snapmaker/Snapmaker PLA Full Spectrum @U1 0.4 nozzle", - "Snapmaker/Snapmaker PLA Matte @U1", - "Snapmaker/Snapmaker PLA Silk @U1", - "Snapmaker/Snapmaker PLA Silk @U1 0.2 nozzle", - "Snapmaker/Snapmaker PLA Silk @U1 0.6 nozzle", - "Snapmaker/Snapmaker PLA Silk @U1 0.8 nozzle", - "Snapmaker/Snapmaker TPE", - "Snapmaker/Snapmaker TPE @U1", - "Snapmaker/Snapmaker TPU High-Flow @U1", - "Sovol/Generic PLA Silk @Sovol SV08 MAX", - "Sovol/Polymaker PETG @Sovol SV08 MAX", - "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Wanhao France/YUMI PETG", - "Wanhao France/YUMI PLA Bowden", - "Wanhao France/YUMI PLA Direct Drive", - "Z-Bolt/Generic ABS HT @Z-Bolt Base" - ], "ids": { - "OF02UAVh": [ - "Creality/Soleyin Ultra PLA" - ], - "OF03RK6r": [ - "BBL/BETA PLA Metal" - ], - "OF0AquDh": [ - "Flashforge/FusRock S-Multi" - ], - "OF0EYBWQ": [ - "BBL/addnorth PETG Flame v0" - ], - "OF0FfcAG": [ - "Anycubic/Anycubic TPU for ACE" - ], - "OF0NgY1y": [ - "BBL/COEX NYLEX PA6-CF", - "OrcaFilamentLibrary/COEX NYLEX PA6-CF" - ], - "OF0R5Wc7": [ - "Artillery/Artillery PLA Tough" - ], - "OF0UJcb6": [ - "BBL/PolyLite PETG", - "OrcaFilamentLibrary/PolyLite PETG", - "Snapmaker/PolyLite PETG" - ], - "OF0VpkBM": [ - "Snapmaker/PolyLite PETG Translucent" - ], - "OF0Vtzaw": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" - ], - "OF0b7M1z": [ - "SeeMeCNC/SeeMeCNC PA-CF" - ], - "OF0c7mnL": [ - "InfiMech/InfiMech ABS" - ], - "OF0gGRWk": [ - "BBL/Panchroma PLA Glow", - "OrcaFilamentLibrary/Panchroma PLA Glow", - "Snapmaker/Panchroma PLA Glow" - ], - "OF0h7ERL": [ - "Elegoo/Elegoo PAHT-CF", - "OrcaFilamentLibrary/Elegoo PAHT-CF" - ], - "OF0kCNDK": [ - "BBL/Panchroma PLA Luminous", - "OrcaFilamentLibrary/Panchroma PLA Luminous", - "Snapmaker/Panchroma PLA Luminous" - ], - "OF0omtEb": [ - "Snapmaker/Fiberon ASA-CF08" - ], - "OF0pzFLc": [ - "BBL/COEX PLA+Silk", - "OrcaFilamentLibrary/COEX PLA+Silk" - ], - "OF0w7OpJ": [ - "Qidi/QIDI ABS Rapido 0.8 nozzle" - ], - "OF0wBGNx": [ - "BBL/Bambu ASA-CF", - "OrcaFilamentLibrary/Bambu ASA-CF" - ], - "OF0wz84w": [ - "Qidi/QIDI ABS Rapido 0.6 nozzle" - ], - "OF0yFLkY": [ - "Anycubic/Anycubic ASA" - ], - "OF112FvY": [ - "Anycubic/Generic PETG Basic" - ], - "OF1ID4N1": [ - "BBL/addnorth PA6 Addlantis" - ], - "OF1N1qMK": [ - "BBL/Panchroma PLA UV Shift", - "OrcaFilamentLibrary/Panchroma PLA UV Shift", - "Snapmaker/Panchroma PLA UV Shift" - ], - "OF1Pke8t": [ - "BBL/Overture Easy PLA", - "OrcaFilamentLibrary/Overture Easy PLA" - ], - "OF1UNk9P": [ - "BBL/Generic PP", - "Creality/Generic PP", - "OrcaFilamentLibrary/Generic PP", - "Tiertime/Generic PP" - ], - "OF1W7c76": [ - "Qidi/QIDI ASA-CF" - ], - "OF1d7c3A": [ - "Snapmaker/Snapmaker ASA" - ], - "OF1dpPrW": [ - "Qidi/Bambu PLA" - ], - "OF1hznGB": [ - "Elegoo/Elegoo PLA PRO", - "OrcaFilamentLibrary/Elegoo PLA PRO" - ], - "OF223rZv": [ - "Anycubic/Anycubic ABS" - ], - "OF2EB9Iz": [ - "Volumic/Volumic ASA Ultra" - ], - "OF2EK9F1": [ - "OrcaFilamentLibrary/FilAr PLA-mate Violeta" - ], - "OF2GCW1l": [ - "BBL/SUNLU PETG", - "Flashforge/SUNLU PETG", - "OrcaFilamentLibrary/SUNLU PETG", - "Sovol/SUNLU PETG" - ], - "OF2TQpOO": [ - "Qidi/QIDI PLA Silk" - ], - "OF2VFe4J": [ - "BBL/Bambu PAHT-CF", - "OrcaFilamentLibrary/Bambu PAHT-CF" - ], - "OF2Z1nT5": [ - "OrcaFilamentLibrary/FilAr PETG Azul Imperial" - ], - "OF2hfMcG": [ - "OrcaArena/Arena PLA-CF" - ], - "OF2pj5l5": [ - "BBL/Overture Super PLA+", - "OrcaFilamentLibrary/Overture Super PLA+" - ], - "OF2xccEe": [], - "OF30Ftju": [ - "Elegoo/Elegoo Rapid TPU 95A", - "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" - ], - "OF342jVN": [ - "BBL/Bambu PLA Tough+" - ], - "OF3F63OE": [ - "re3D/re3D PETG" - ], - "OF3IKafc": [ - "Qidi/QIDI PLA Rapido Matte" - ], - "OF3OMgrI": [ - "Creality/CR-Silk" - ], - "OF3PDEw3": [ - "BBL/BETA PLA High Speed" - ], - "OF3WQaKK": [ - "Creality/CR-PETG" - ], - "OF3dJf4E": [ - "Volumic/Volumic PLA Ultra (Performance)" - ], - "OF3fwO8b": [ - "FlyingBear/FlyingBear PLA Basic" - ], - "OF3kBrdA": [ - "Creality/eSUN PETG", - "OrcaFilamentLibrary/eSUN PETG" - ], - "OF3msXEa": [ - "Snapmaker/Snapmaker Dual PETG-CF" - ], - "OF3ydJTT": [ - "InfiMech/InfiMech PLA Hyper" - ], - "OF43Raws": [ - "Snapmaker/PolyTerra J1 PLA" - ], - "OF44ERDr": [ - "Snapmaker/Polymaker General PLA Family" - ], - "OF44VYzK": [ - "OrcaFilamentLibrary/FilAr PETG Azul Francia" - ], - "OF4APyxe": [ - "Creality/Hyper PAHT-CF" - ], - "OF4GM5qX": [ - "Ratrig/Generic ASA BigNozzle" - ], - "OF4KsW72": [], - "OF4Nhggz": [ - "Artillery/Artillery PLA Basic+" - ], - "OF4PKvem": [ - "BBL/BETA PLA Fluorescence" - ], - "OF4QZANi": [ - "BBL/BETA TPU Matte" - ], - "OF4RvVuU": [ - "BBL/Bambu PPS-CF" - ], - "OF4S3To3": [ - "Qidi/QIDI PETG Rapido" - ], - "OF4WB37S": [ - "Snapmaker/Snapmaker PETG" - ], - "OF4XTfoI": [ - "BBL/BETA PETG Marble" - ], - "OF4f8vVp": [ - "WonderMaker/WonderMaker PET-CF" - ], - "OF4iWKrE": [ - "Qidi/QIDI PETG-CF" - ], - "OF4nQ62r": [ - "Qidi/QIDI PLA Basic" - ], - "OF4ulo9Y": [ - "WonderMaker/WonderMaker PVA" - ], - "OF53eLVD": [ - "Blocks/Generic ASA-CF", - "Creality/Generic ASA-CF", - "Elegoo/Generic ASA-CF" - ], - "OF54B0S0": [ - "BBL/Bambu PPA-CF", - "OrcaFilamentLibrary/Bambu PPA-CF" - ], - "OF54SvEe": [ - "Prusa/Prusament PA-CF" - ], - "OF55jHAJ": [ - "Prusa/Generic ABS HF" - ], - "OF5B9sUc": [ - "BBL/Fiberon PA6-GF25" - ], - "OF5BN24W": [ - "Flashforge/Flashforge PPA-GF" - ], - "OF5BXhHF": [ - "BBL/BETA PLA High Temp" - ], - "OF5CgdDq": [ - "BBL/PolyLite PLA", - "OrcaArena/PolyLite PLA", - "OrcaFilamentLibrary/PolyLite PLA", - "Qidi/PolyLite PLA", - "Snapmaker/PolyLite PLA" - ], - "OF5LAnla": [ - "BBL/BETA PLA Gradient" - ], - "OF5NqBfC": [ - "Wanhao France/YUMI PETG" - ], - "OF5P4jgA": [ - "OrcaFilamentLibrary/FilAr PLA Dorado" - ], - "OF5PtjTp": [ - "Anycubic/Anycubic PLA Glow" - ], - "OF5SJ3jz": [ - "Flashforge/Flashforge ABS" - ], - "OF5YVJXH": [ - "Artillery/Artillery ASA" - ], - "OF5c6nq3": [ - "Flashforge/Generic TPU-64D" - ], - "OF5lGPup": [ - "WonderMaker/WonderMaker PETG Basic" - ], - "OF5nlfKY": [ - "OrcaFilamentLibrary/FilAr PLA Oro" - ], - "OF5oNRED": [ - "Eryone/Eryone PP" - ], - "OF5oXk4M": [ - "Anycubic/Polymaker PLA Pro", - "Snapmaker/Polymaker PLA Pro" - ], - "OF5rnhjh": [], - "OF5tX6va": [ - "Ratrig/Generic TPU BigNozzle" - ], - "OF5umxxT": [ - "BBL/PolyLite PLA Glow", - "Snapmaker/PolyLite PLA Glow" - ], - "OF5vgi2G": [ - "OrcaFilamentLibrary/FilAr PLA-mate Azul" - ], - "OF65InrS": [ - "Snapmaker/Snapmaker TPU" - ], - "OF66KUAN": [ - "Creality/PolySonic PLA" - ], - "OF6ATsCF": [ - "Snapmaker/Snapmaker Dual PLA-CF" - ], - "OF6H51Xx": [ - "Snapmaker/Polymaker PETG", - "Sovol/Polymaker PETG" - ], - "OF6Ll8lK": [ - "Elegoo/Elegoo PETG Translucent", - "OrcaFilamentLibrary/Elegoo PETG Translucent" - ], - "OF6MOPWx": [ - "Creality/Generic PET", - "Elegoo/Generic PET", - "Flashforge/Generic PET" - ], - "OF6TuVAg": [ - "Snapmaker/Snapmaker Breakaway Support For PLA", - "Snapmaker/Snapmaker J1 PVA" - ], - "OF6Yn69v": [ - "BBL/BETA TPU 90A" - ], - "OF6kj4jI": [ - "iQ/Fiberthree PACF Pro P2" - ], - "OF6qAuyi": [ - "Flashforge/Flashforge PLA Matte" - ], - "OF6qw3Wb": [ - "BBL/BETA PAHT-CF" - ], - "OF6rdQ6M": [ - "BBL/Generic PPS-CF", - "Creality/Generic PPS-CF", - "Tiertime/Generic PPS-CF" - ], - "OF70zbGS": [ - "Creality/Hyper L-W PLA" - ], - "OF71b7qO": [ - "BBL/addnorth PLA E-PLA" - ], - "OF72YYTd": [ - "Snapmaker/Snapmaker ABS" - ], - "OF74KeQR": [ - "BBL/Generic PHA", - "OrcaFilamentLibrary/Generic PHA", - "Tiertime/Generic PHA" - ], - "OF79Fbo6": [ - "Cubicon/Cubicon PC" - ], - "OF7H3VJM": [ - "OrcaFilamentLibrary/eSUN PLA-Marble" - ], - "OF7OqDp3": [ - "Tiertime/Tiertime PLA-CF" - ], - "OF7SliVn": [ - "Snapmaker/PolyLite J1 PLA" - ], - "OF7c9fln": [ - "Anycubic/Anycubic PLA Translucent" - ], - "OF7lOgYF": [ - "BBL/Generic PETG HF", - "OrcaFilamentLibrary/Generic PETG HF", - "Prusa/Generic PETG HF" - ], - "OF7lwj52": [ - "CoLiDo/CoLiDo PETG" - ], - "OF7nBAd3": [ - "Eryone/Eryone Silk PLA" - ], - "OF7pjCsO": [ - "Flashforge/FusRock PAHT" - ], - "OF7tt7DO": [ - "Cubicon/Cubicon PLA+" - ], - "OF8GnyFU": [ - "Creality/Hyper ABS" - ], - "OF8GtyKJ": [ - "Flashforge/Flashforge TPU-64D" - ], - "OF8Hx3Pi": [ - "Cubicon/Cubicon PETG" - ], - "OF8Jl6NT": [ - "Snapmaker/Snapmaker J1 PET" - ], - "OF8O09RG": [ - "Flashforge/Flashforge HS PLA Burnt Ti" - ], - "OF8QdQwS": [ - "BBL/BETA PLA Silk+" - ], - "OF8Tlg47": [ - "BBL/Generic PPA-GF", - "OrcaFilamentLibrary/Generic PPA-GF", - "Tiertime/Generic PPA-GF" - ], - "OF8aFWfQ": [ - "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" - ], - "OF8dCquh": [ - "Snapmaker/Snapmaker J1 ABS Benchy" - ], - "OF8eaY7j": [ - "Creality/Generic PA612-CF" - ], - "OF8jh0Lk": [ - "OrcaFilamentLibrary/FilAr PLA-mate Marron" - ], - "OF8kJys9": [ - "Eryone/Eryone PETG" - ], - "OF8tPByX": [ - "BBL/Generic PPA-CF", - "OrcaFilamentLibrary/Generic PPA-CF", - "Tiertime/Generic PPA-CF" - ], - "OF8wE5l7": [ - "Artillery/Artillery PETG Basic" - ], - "OF99UMPq": [ - "BBL/COEX ABS", - "OrcaFilamentLibrary/COEX ABS" - ], - "OF99vXPs": [], - "OF9EHUKK": [ - "Qidi/QIDI TPU-GF" - ], - "OF9HCdyQ": [ - "Afinia/Afinia PLA" - ], - "OF9OlTWH": [ - "BBL/Bambu PLA Marble", - "OrcaFilamentLibrary/Bambu PLA Marble" - ], - "OF9PELEb": [ - "Qidi/QIDI UltraPA-CF25" - ], - "OF9UJOGF": [ - "Anycubic/Anycubic PETG-CF" - ], - "OF9cAwMK": [ - "Flashforge/Flashforge PLA-CF" - ], - "OF9emAI9": [ - "Ratrig/RatRig PunkFil PETG" - ], - "OFA026vt": [ - "OrcaArena/Arena PA-CF" - ], - "OFAC7Wyu": [ - "Artillery/Artillery PLA Matte" - ], - "OFAIBCLJ": [ - "Elegoo/Generic ABS-CF" - ], - "OFAIrQXu": [ - "Creality/Creality Hyper PLA" - ], - "OFANFm4x": [ - "Qidi/QIDI PLA Rapido Metal" - ], - "OFAO9A7J": [ - "Sovol/Sovol Zero PLA Silk HS Nozzle" - ], - "OFAZllAN": [ - "Artillery/Artillery PLA-CF" - ], - "OFAc0Pr3": [ - "BBL/Fiberon PET-CF17" - ], - "OFAcJkl1": [ - "BBL/addnorth PETG-CF Rigid X" - ], - "OFAebKg8": [ - "Flashforge/Flashforge PLA Metal" - ], - "OFAnyRUI": [ - "BBL/Bambu Support For PLA", - "OrcaFilamentLibrary/Bambu Support For PLA" - ], - "OFAt6ec0": [ - "OrcaFilamentLibrary/FilAr PLA Marron Oxido" - ], - "OFB5SmWk": [ - "OrcaFilamentLibrary/Valment PLA Galaxy" - ], - "OFBBgw7B": [ - "WonderMaker/WonderMaker PLA Wood" - ], - "OFBJAdLw": [ - "LH/LHS PCTG" - ], - "OFBLktDy": [ - "Creality/Soleyin Basic PETG" - ], - "OFBSW57R": [ - "BBL/Bambu PLA Aero", - "OrcaFilamentLibrary/Bambu PLA Aero" - ], - "OFBUIlZ7": [ - "Elegoo/Elegoo PLA+", - "OrcaFilamentLibrary/Elegoo PLA+" - ], - "OFBlFMVp": [ - "Snapmaker/Snapmaker Dual PETG" - ], - "OFBoSWxb": [ - "BBL/PolyLite PLA Luminous", - "Snapmaker/PolyLite PLA Luminous" - ], - "OFBsbMMF": [ - "BBL/addnorth PA-CF Adura X" - ], - "OFBw6eEG": [ - "BBL/Overture Matte PLA", - "OrcaFilamentLibrary/Overture Matte PLA" - ], - "OFC1PzXz": [ - "Creality/Hyper Luminous" - ], - "OFC5f4Ay": [ - "RH3D/Generic PCCF" - ], - "OFC78WGQ": [ - "BBL/Panchroma PLA Starlight", - "OrcaFilamentLibrary/Panchroma PLA Starlight", - "Snapmaker/Panchroma PLA Starlight" - ], - "OFCD8qiU": [ - "BBL/Generic EVA", - "OrcaFilamentLibrary/Generic EVA", - "Tiertime/Generic EVA" - ], - "OFCIUsWh": [ - "BBL/Panchroma PLA Translucent", - "OrcaFilamentLibrary/Panchroma PLA Translucent", - "Snapmaker/Panchroma PLA Translucent" - ], - "OFCJpR7a": [ - "Creality/HP Ultra PLA" - ], - "OFCZsqXg": [ - "Creality/Hyper PLA" - ], - "OFCccVrQ": [ - "OrcaFilamentLibrary/PolyTerra Dual PLA", - "Snapmaker/PolyTerra Dual PLA" - ], - "OFCidU7j": [ - "OrcaFilamentLibrary/DREMC ABS-GF" - ], - "OFCjG251": [ - "OrcaFilamentLibrary/FilAr PLA-mate Verde" - ], - "OFCn83wF": [ - "Flashforge/FusRock S-PAHT" - ], - "OFCnywiC": [ - "Tiertime/Tiertime PET-CF" - ], - "OFCoRobU": [ - "OrcaFilamentLibrary/Elas ASA" - ], - "OFCp3Bgo": [ - "Anycubic/Anycubic PLA SE" - ], - "OFCuaCer": [ - "Volumic/Désactivé" - ], - "OFD21ije": [ - "Cubicon/Cubicon PA-CF" - ], - "OFD8loeT": [ - "re3D/re3D rPETG" - ], - "OFD9taow": [ - "FlyingBear/FlyingBear PLA Hyper" - ], - "OFDETOM6": [ - "Creality/eSUN PLA-Matte", - "OrcaFilamentLibrary/eSUN PLA-Matte" - ], - "OFDGigEI": [ - "BBL/Bambu PLA Dynamic", - "OrcaFilamentLibrary/Bambu PLA Dynamic" - ], - "OFDIrhbu": [ - "Qidi/QIDI PC/ABS-FR" - ], - "OFDJU6R3": [ - "Afinia/Afinia TPU" - ], - "OFDKIKyw": [ - "Snapmaker/Snapmaker Dual PVA" - ], - "OFDKgoqx": [ - "Flashforge/Flashforge PLA" - ], - "OFDRpXLZ": [ - "FlyingBear/Other PETG", - "InfiMech/Other PETG" - ], - "OFDSrzZ8": [ - "Anker/Generic PLA", - "Anycubic/Generic PLA", - "Artillery/Generic PLA", - "BBL/Generic PLA", - "Blocks/Generic PLA", - "CONSTRUCT3D/Generic PLA", - "Chuanying/Generic PLA", - "Co Print/Generic PLA", - "CoLiDo/Generic PLA", - "Comgrow/Generic PLA", - "Creality/Generic PLA", - "Custom/Generic PLA", - "DeltaMaker/Generic PLA", - "Dremel/Generic PLA", - "Elegoo/Generic PLA", - "FLSun/Generic PLA", - "Flashforge/Generic PLA", - "FlyingBear/Generic PLA", - "Ginger Additive/Generic PLA", - "InfiMech/Generic PLA", - "LONGER/Generic PLA", - "Lulzbot/Generic PLA", - "OrcaArena/Generic PLA", - "OrcaFilamentLibrary/Generic PLA", - "Peopoly/Generic PLA", - "Phrozen/Generic PLA", - "Prusa/Generic PLA", - "Qidi/Generic PLA", - "RH3D/Generic PLA", - "Ratrig/Generic PLA", - "SecKit/Generic PLA", - "Sovol/Generic PLA", - "Tiertime/Generic PLA", - "Vzbot/Generic PLA", - "Z-Bolt/Generic PLA" - ], - "OFDdEaoL": [ - "re3D/re3D PLA" - ], - "OFDe8uyM": [ - "OrcaFilamentLibrary/Valment PLA" - ], - "OFDgQaca": [ - "FlyingBear/FlyingBear PETG" - ], - "OFDpW3J8": [ - "OrcaFilamentLibrary/FILL3D PLA Basic" - ], - "OFDtop41": [ - "Creality/Generic Support for PA" - ], - "OFDu1qE7": [ - "Flashforge/FusRock PET-CF" - ], - "OFDvXujf": [ - "Anker/Generic PVA", - "Anycubic/Generic PVA", - "BBL/Generic PVA", - "Blocks/Generic PVA", - "Chuanying/Generic PVA", - "Creality/Generic PVA", - "Custom/Generic PVA", - "FLSun/Generic PVA", - "Flashforge/Generic PVA", - "OrcaArena/Generic PVA", - "OrcaFilamentLibrary/Generic PVA", - "Prusa/Generic PVA", - "Qidi/Generic PVA", - "Ratrig/Generic PVA", - "SecKit/Generic PVA", - "Tiertime/Generic PVA", - "Vzbot/Generic PVA" - ], - "OFDvqJ6n": [ - "OrcaFilamentLibrary/Overture ABS Basic" - ], - "OFDwBwO5": [ - "Prusa/Generic PVA HF" - ], - "OFDxfPgH": [ - "BBL/Bambu PLA Sparkle", - "OrcaFilamentLibrary/Bambu PLA Sparkle" - ], - "OFDxxTpW": [ - "Flashforge/Flashforge HS PETG" - ], - "OFE0NFRh": [ - "BBL/COEX TPU 60A", - "OrcaFilamentLibrary/COEX TPU 60A" - ], - "OFEGNJD4": [ - "BBL/Bambu PLA Silk", - "OrcaFilamentLibrary/Bambu PLA Silk" - ], - "OFEOnBj6": [ - "Snapmaker/Snapmaker PLA Lite" - ], - "OFEWYR89": [ - "Anker/Generic PLA+", - "Qidi/Generic PLA+" - ], - "OFEZ449N": [ - "OrcaFilamentLibrary/FilAr PLA-mate Uva" - ], - "OFEZpel7": [ - "Volumic/PPS Carbone (Performance)" - ], - "OFEabreg": [ - "Anycubic/Fiberon PA6-CF20", - "BBL/Fiberon PA6-CF20", - "Snapmaker/Fiberon PA6-CF20" - ], - "OFEbIx49": [ - "WonderMaker/WonderMaker PLA Marble" - ], - "OFEhuUNq": [], - "OFEj7sca": [ - "Cubicon/Cubicon PC" - ], - "OFEjbwqG": [ - "BBL/PolyTerra PLA+", - "Snapmaker/PolyTerra PLA+" - ], - "OFEkPBwx": [ - "BBL/Bambu PLA Glow", - "OrcaFilamentLibrary/Bambu PLA Glow" - ], - "OFEmsric": [ - "Snapmaker/Snapmaker PA-CF" - ], - "OFEnbt6D": [ - "Peopoly/Peopoly Lancer PLA-C" - ], - "OFEswT5W": [ - "BBL/Bambu PLA-CF", - "OrcaFilamentLibrary/Bambu PLA-CF" - ], - "OFEvEfw5": [ - "Flashforge/Flashforge PA" - ], - "OFEwRwmL": [ - "Cubicon/Cubicon PLA" - ], - "OFF3cuzT": [ - "Creality/Generic TPU 64D" - ], - "OFF5o7b2": [ - "BBL/BETA PLA Youth" - ], - "OFF9OKoY": [ - "BBL/PolyLite PLA Pro", - "OrcaFilamentLibrary/PolyLite PLA Pro", - "Snapmaker/PolyLite PLA Pro" - ], - "OFF9cgY5": [ - "Snapmaker/Snapmaker PLA Matte" - ], - "OFFAWVf0": [ - "Qidi/QIDI PC-ABS-FR" - ], - "OFFFg2Pf": [ - "Flashforge/Flashforge ASA Basic" - ], - "OFFNYwWR": [ - "BBL/Bambu PA-CF", - "OrcaFilamentLibrary/Bambu PA-CF" - ], - "OFFP4ORR": [ - "Creality/Creality Hyper ABS" - ], - "OFFX1DRD": [ - "FlyingBear/FlyingBear PC" - ], - "OFFZ458u": [ - "Snapmaker/Fiberon PA612-ESD" - ], - "OFFbQscs": [ - "Creality/eSUN PETG-Basic" - ], - "OFFbSnCD": [ - "BBL/Bambu PLA Translucent" - ], - "OFFfJ09N": [ - "BBL/BETA PETG Glow" - ], - "OFFkCLBl": [ - "BBL/Panchroma PLA Galaxy", - "OrcaFilamentLibrary/Panchroma PLA Galaxy", - "Snapmaker/Panchroma PLA Galaxy" - ], - "OFFvzqcd": [ - "BBL/Bambu PETG Basic", - "OrcaFilamentLibrary/Bambu PETG Basic" - ], - "OFFwJWea": [ - "Anycubic/Anycubic PLA Silk" - ], - "OFG0kOKX": [ - "Volumic/Volumic PETG Ultra" - ], - "OFG2RkhN": [ - "Creality/CR-TPU" - ], - "OFG4do34": [ - "Qidi/Qidi ASA-Aero" - ], - "OFGJ1nxs": [ - "FlyingBear/Other PLA", - "InfiMech/Other PLA" - ], - "OFGVwfK0": [ - "OrcaFilamentLibrary/FilAr PLA-mate Gris" - ], - "OFGVxj2A": [ - "BBL/BETA PLA Wood" - ], - "OFGc9l16": [ - "BBL/BETA PLA Glow" - ], - "OFGcLA5R": [ - "OrcaFilamentLibrary/FilAr PLA-mate Beige" - ], - "OFGcMkEB": [ - "Creality/HP-TPU" - ], - "OFGdP6Na": [ - "Volumic/Volumic PVA" - ], - "OFGkyftV": [ - "BBL/Overture Silk PLA", - "OrcaFilamentLibrary/Overture Silk PLA" - ], - "OFGwT5Av": [ - "Creality/Creality Hyper PLA-CF" - ], - "OFGwZmgS": [ - "Creality/CR-ABS" - ], - "OFGxC8gB": [ - "Creality/CR-Wood" - ], - "OFGxuI0n": [ - "Flashforge/Flashforge PA-CF" - ], - "OFH2nN08": [ - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" - ], - "OFH57ibH": [ - "Snapmaker/Polymaker Silk PLA Family" - ], - "OFH7b12v": [ - "Creality/Generic PAHT-CF" - ], - "OFHAccHz": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" - ], - "OFHHwrd1": [ - "BBL/addnorth PETG Base" - ], - "OFHWSM21": [ - "BBL/Fiberon PET-CF", - "OrcaFilamentLibrary/Fiberon PET-CF" - ], - "OFHa48An": [ - "BBL/Bambu PET-CF", - "OrcaFilamentLibrary/Bambu PET-CF" - ], - "OFHaYaB1": [ - "Creality/eSUN PET-Basic" - ], - "OFHf2lKK": [ - "FlyingBear/FlyingBear TPU Basic" - ], - "OFHfzQXo": [ - "OrcaFilamentLibrary/Eolas Prints PLA Transition" - ], - "OFHknN4v": [ - "Anycubic/Polymaker PLA Pro Metallic", - "Snapmaker/Polymaker PLA Pro Metallic" - ], - "OFHmPYRy": [ - "BBL/SUNLU PLA+ 2.0", - "Flashforge/SUNLU PLA+ 2.0", - "OrcaFilamentLibrary/SUNLU PLA+ 2.0" - ], - "OFI2MKy7": [ - "BBL/BETA PEBA 90A" - ], - "OFI6WZpn": [ - "OrcaArena/Arena Support W" - ], - "OFIBXa0k": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rojo" - ], - "OFIBbYO5": [ - "BBL/Bambu TPU for AMS" - ], - "OFIE3vOf": [ - "Anycubic/Anycubic PLA Matte" - ], - "OFIK2H3G": [ - "Flashforge/Flashforge HS PLA" - ], - "OFIKZxPF": [ - "Creality/Generic PLA Wood" - ], - "OFIPjqHt": [ - "OrcaArena/Arena Support G" - ], - "OFIRUqWi": [ - "Creality/eSUN PLA-Silk" - ], - "OFIVWJPm": [ - "InfiMech/InfiMech TPU" - ], - "OFIWMSGX": [ - "Qidi/HATCHBOX PETG" - ], - "OFIZMQwM": [ - "LH/LHS TPU" - ], - "OFIamQnD": [ - "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" - ], - "OFIegjmD": [ - "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" - ], - "OFIfnzxC": [ - "BBL/Bambu Support For PLA/PETG", - "OrcaFilamentLibrary/Bambu Support For PLA/PETG" - ], - "OFIgbDHq": [ - "Anycubic/Anycubic PLA Luminous" - ], - "OFIxOuOu": [ - "BBL/PolyLite PLA Starlight", - "Snapmaker/PolyLite PLA Starlight" - ], - "OFJ3F2jm": [ - "Flashforge/Flashforge PLA Basic" - ], - "OFJ3HRsR": [ - "OrcaArena/Arena ABS" - ], - "OFJHBEGD": [], - "OFJJ0Ar3": [ - "Flashforge/Flashforge PLA Galaxy" - ], - "OFJNeELv": [ - "OrcaFilamentLibrary/FILL3D PA" - ], - "OFJOFnOZ": [ - "BBL/AliZ PETG-CF", - "OrcaFilamentLibrary/AliZ PETG-CF" - ], - "OFJQDUk3": [ - "OrcaFilamentLibrary/FilAr PETG Cristal" - ], - "OFJS560n": [], - "OFJWKoYG": [ - "iQ/Material4Print ABS Natur P1" - ], - "OFJYpVAQ": [ - "Flashforge/Generic TPU-90A" - ], - "OFJgijky": [ - "BBL/PolyLite CosPLA", - "Snapmaker/PolyLite CosPLA" - ], - "OFJhT2fd": [ - "Snapmaker/Snapmaker Dual ABS" - ], - "OFJnEaCp": [ - "BBL/BETA PLA Transparent" - ], - "OFJrvXth": [ - "Snapmaker/Snapmaker ABS Benchy" - ], - "OFJs1ToM": [ - "BBL/COEX NYLEX UNFILLED " - ], - "OFJu1XwK": [ - "OrcaFilamentLibrary/NIT PETG" - ], - "OFJxSqO4": [ - "Wanhao France/YUMI PLA Direct Drive" - ], - "OFK7830e": [ - "BBL/BETA TPU 95A" - ], - "OFK8XHPn": [ - "Qidi/Overture ABS" - ], - "OFKIQO2W": [ - "Qidi/QIDI PLA Rapido" - ], - "OFKKajh6": [ - "OrcaFilamentLibrary/FilAr PLA Gris Plata" - ], - "OFKTGKJU": [ - "Flashforge/FusRock PET" - ], - "OFKTSiYF": [ - "OrcaFilamentLibrary/FilAr PLA Blanco Calido" - ], - "OFKUEXPA": [ - "Snapmaker/Snapmaker Dual ASA" - ], - "OFKW5hEW": [ - "Flashforge/FusRock PAHT-CF" - ], - "OFKWWgyp": [ - "OrcaFilamentLibrary/FilAr PLA Carpincho" - ], - "OFKYBAWe": [ - "BBL/BETA PLA Marble" - ], - "OFKZ9skj": [ - "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" - ], - "OFKbdiiJ": [ - "Creality/PolySonic PLA Pro" - ], - "OFKfJTwL": [ - "Qidi/QIDI PET-CF" - ], - "OFKgmsqE": [ - "Qidi/QIDI PAHT-CF" - ], - "OFKhMPeX": [ - "BBL/Bambu PC", - "OrcaFilamentLibrary/Bambu PC" - ], - "OFKiSMWR": [ - "BBL/Panchroma PLA Marble", - "OrcaFilamentLibrary/Panchroma PLA Marble", - "Snapmaker/Panchroma PLA Marble" - ], - "OFKyNkQz": [ - "BBL/BETA PETG UV Color Change" - ], - "OFL9aRjN": [ - "Snapmaker/Snapmaker PETG HF" - ], - "OFLAXKqP": [ - "WonderMaker/WonderMaker TPU 95A" - ], - "OFLC1oRH": [ - "Flashforge/Flashforge PPA-CF" - ], - "OFLJ8S6I": [ - "BBL/SUNLU Wood PLA", - "Flashforge/SUNLU Wood PLA", - "OrcaFilamentLibrary/SUNLU Wood PLA" - ], - "OFLNgV3C": [], - "OFLOf6Sc": [ - "Tiertime/Tiertime TPU 95A" - ], - "OFLPAxz3": [ - "Anker/Generic ASA", - "Anycubic/Generic ASA", - "Artillery/Generic ASA", - "BBL/Generic ASA", - "Blocks/Generic ASA", - "Chuanying/Generic ASA", - "Creality/Generic ASA", - "Custom/Generic ASA", - "Elegoo/Generic ASA", - "FLSun/Generic ASA", - "Flashforge/Generic ASA", - "OrcaArena/Generic ASA", - "OrcaFilamentLibrary/Generic ASA", - "Prusa/Generic ASA", - "Qidi/Generic ASA", - "RH3D/Generic ASA", - "Ratrig/Generic ASA", - "SecKit/Generic ASA", - "Tiertime/Generic ASA", - "Vzbot/Generic ASA" - ], - "OFLTYJW0": [ - "Snapmaker/Snapmaker PLA Translucent" - ], - "OFLXvuMr": [ - "Elegoo/Elegoo Rapid PETG", - "OrcaFilamentLibrary/Elegoo Rapid PETG" - ], - "OFLYDngx": [ - "Qidi/Bambu PETG" - ], - "OFLakOUI": [ - "Anker/Generic PC", - "Anycubic/Generic PC", - "BBL/Generic PC", - "Blocks/Generic PC", - "Creality/Generic PC", - "Custom/Generic PC", - "Elegoo/Generic PC", - "FLSun/Generic PC", - "FlyingBear/Generic PC", - "InfiMech/Generic PC", - "OrcaArena/Generic PC", - "OrcaFilamentLibrary/Generic PC", - "Prusa/Generic PC", - "Qidi/Generic PC", - "Ratrig/Generic PC", - "SecKit/Generic PC", - "Sovol/Generic PC", - "Tiertime/Generic PC", - "Vzbot/Generic PC" - ], - "OFLbXwoL": [ - "Artillery/Artillery PLA Silk" - ], - "OFLbdkrE": [ - "Snapmaker/Snapmaker J1 PLA Eco" - ], - "OFLcd093": [ - "Elegoo/Elegoo PETG", - "OrcaFilamentLibrary/Elegoo PETG" - ], - "OFLfywkp": [ - "Afinia/Afinia ABS+" - ], - "OFLgwqp2": [ - "Creality/Hyper PETG-GF" - ], - "OFLjDYxH": [ - "BBL/addnorth PLA X-PLA High Speed" - ], - "OFLqgSuX": [ - "BBL/BETA PLA-CF" - ], - "OFLzx3J4": [ - "Creality/Hyper Marble" - ], - "OFM0xjBG": [ - "Creality/CR-PLA Matte" - ], - "OFM4iJlv": [ - "Creality/Generic PA12-CF" - ], - "OFM91vZs": [ - "BBL/Overture ASA", - "OrcaFilamentLibrary/Overture ASA" - ], - "OFMDHOcT": [ - "Qidi/QIDI TPU-Aero" - ], - "OFMK5gVo": [ - "WonderMaker/WonderMaker PLA Basic" - ], - "OFML2aVd": [ - "Anycubic/Anycubic TPU 95A" - ], - "OFMSvS8z": [ - "Artillery/Artillery PA" - ], - "OFMTK0UC": [ - "BBL/Bambu Support For PA/PET", - "OrcaFilamentLibrary/Bambu Support For PA/PET" - ], - "OFMUWNkp": [ - "BBL/SUNLU PLA+", - "Flashforge/SUNLU PLA+", - "OrcaFilamentLibrary/SUNLU PLA+" - ], - "OFMZvH0z": [ - "BBL/Overture Rock PLA", - "OrcaFilamentLibrary/Overture Rock PLA" - ], - "OFMjtqTC": [ - "BBL/Bambu PLA Wood", - "OrcaFilamentLibrary/Bambu PLA Wood" - ], - "OFMkAW6r": [ - "Flashforge/Flashforge PLA Color Change" - ], - "OFMpxamb": [ - "Flashforge/Flashforge PETG" - ], - "OFMsDGbs": [ - "Anycubic/Anycubic TPU" - ], - "OFMuXBmO": [ - "OrcaFilamentLibrary/Elas PLA Basic" - ], - "OFMzRg65": [ - "BBL/BETA PLA PRO" - ], - "OFN8QBhu": [ - "BBL/addnorth PLA Wood" - ], - "OFN9fefN": [ - "Cubicon/Cubicon ABS-A100" - ], - "OFNBlAPT": [ - "OrcaArena/Arena PETG Basic" - ], - "OFNGTH3w": [ - "Tiertime/Tiertime PLA" - ], - "OFNQKF0M": [ - "Tiertime/Tiertime ABS" - ], - "OFNSYu5h": [ - "Volumic/Volumic PP Ultra (Performance)" - ], - "OFNU9YIW": [ - "OrcaFilamentLibrary/FilAr PETG Azul Boreal" - ], - "OFNemJM6": [ - "OrcaFilamentLibrary/FilAr PLA Cobre" - ], - "OFNjku08": [ - "CONSTRUCT3D/Generic High Flow PETG" - ], - "OFNk8AvA": [ - "BBL/BETA PETG Gradient" - ], - "OFNk8bxk": [ - "BBL/Bambu PA6-GF", - "OrcaFilamentLibrary/Bambu PA6-GF" - ], - "OFNstOna": [ - "Eryone/Eryone PETG-CF" - ], - "OFNvBIL0": [ - "Creality/Hyper PPA-CF" - ], - "OFO1GEq6": [ - "BBL/Panchroma PLA Neon", - "OrcaFilamentLibrary/Panchroma PLA Neon", - "Snapmaker/Panchroma PLA Neon" - ], - "OFO5djrM": [ - "Chuanying/Generic PETG-CF10", - "Flashforge/Generic PETG-CF10" - ], - "OFO6GMJ3": [ - "BBL/addnorth TPU EasyFlex" - ], - "OFOABq7t": [ - "BBL/AliZ PETG-Metal", - "OrcaFilamentLibrary/AliZ PETG-Metal" - ], - "OFOAdMCB": [ - "OrcaArena/Arena PLA Metal" - ], - "OFOHOf2F": [ - "Creality/eSUN PLA-HS" - ], - "OFOJPAAS": [ - "iQ/VXL90 TiQ2 P2" - ], - "OFOPU1xv": [ - "Snapmaker/Snapmaker PLA Full Spectrum" - ], - "OFOQCfVa": [ - "BBL/addnorth PLA Premium Silk" - ], - "OFObG16Q": [ - "InfiMech/InfiMech PLA Basic" - ], - "OFObyktP": [ - "Tiertime/Tiertime PETG" - ], - "OFOiJfLM": [ - "OrcaFilamentLibrary/FILL3D PETG CF" - ], - "OFOnSNt3": [ - "Artillery/Artillery PETG-CF" - ], - "OFOsHDnB": [ - "Elegoo/Elegoo PETG PRO", - "OrcaFilamentLibrary/Elegoo PETG PRO" - ], - "OFOuEEvv": [ - "Qidi/QIDI ABS Rapido 0.2 nozzle" - ], - "OFOvv91M": [ - "BBL/PolyLite ABS", - "OrcaFilamentLibrary/PolyLite ABS", - "Qidi/PolyLite ABS" - ], - "OFOwQuZM": [ - "Snapmaker/Snapmaker PETG-CF" - ], - "OFOzwywz": [ - "Eryone/Eryone ABS" - ], - "OFP26zNb": [ - "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" - ], - "OFPHLnoe": [ - "Creality/HP-ASA" - ], - "OFPWPlSC": [ - "OrcaFilamentLibrary/FILL3D PP" - ], - "OFPYDWgC": [ - "Peopoly/Peopoly Lancer PET-CF" - ], - "OFPbyOSk": [ - "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" - ], - "OFPc4zVY": [ - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" - ], - "OFPkCJKE": [ - "BBL/Panchroma PLA Satin", - "Creality/Panchroma PLA Satin", - "OrcaFilamentLibrary/Panchroma PLA Satin", - "Snapmaker/Panchroma PLA Satin" - ], - "OFPklMI1": [ - "BBL/Generic PE", - "OrcaFilamentLibrary/Generic PE", - "Tiertime/Generic PE" - ], - "OFPoyiFs": [ - "BBL/Polymaker HT-PLA", - "OrcaFilamentLibrary/Polymaker HT-PLA", - "Snapmaker/Polymaker HT-PLA" - ], - "OFPqX3x2": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" - ], - "OFQ1KzO8": [ - "Snapmaker/Snapmaker J1 PLA Silk" - ], - "OFQ1zgm3": [ - "Eryone/Eryone ABS-CF" - ], - "OFQ3e56w": [ - "BBL/Bambu PLA Galaxy", - "OrcaFilamentLibrary/Bambu PLA Galaxy" - ], - "OFQ40XeN": [ - "Qidi/QIDI PETG Tough" - ], - "OFQ5TxZ2": [ - "BBL/addnorth PVDF Adamant S1" - ], - "OFQEGL7z": [ - "FlyingBear/FlyingBear PA-CF" - ], - "OFQGvU2G": [ - "OrcaArena/Arena TPU 95A" - ], - "OFQHiNJs": [ - "BBL/Bambu Support G", - "OrcaFilamentLibrary/Bambu Support G" - ], - "OFQLcbps": [ - "Anker/Generic PA-CF", - "Anycubic/Generic PA-CF", - "BBL/Generic PA-CF", - "Blocks/Generic PA-CF", - "Creality/Generic PA-CF", - "Custom/Generic PA-CF", - "FLSun/Generic PA-CF", - "FlyingBear/Generic PA-CF", - "InfiMech/Generic PA-CF", - "OrcaArena/Generic PA-CF", - "OrcaFilamentLibrary/Generic PA-CF", - "Prusa/Generic PA-CF", - "Qidi/Generic PA-CF", - "Ratrig/Generic PA-CF", - "SecKit/Generic PA-CF", - "Tiertime/Generic PA-CF", - "Vzbot/Generic PA-CF" - ], - "OFQMTRc8": [ - "Snapmaker/Snapmaker J1 PETG" - ], - "OFQMsFfF": [ - "Qidi/QIDI ABS-GF10" - ], - "OFQWIKbV": [ - "OrcaFilamentLibrary/FilAr PLA Titanio" - ], - "OFQYaiGg": [ - "Snapmaker/Snapmaker PET" - ], - "OFQbjX3s": [ - "OrcaFilamentLibrary/FILL3D PETG" - ], - "OFQdaVZS": [ - "Creality/Generic PET-CF", - "Elegoo/Generic PET-CF" - ], - "OFQe7sAx": [ - "Anycubic/Anycubic PA6-CF" - ], - "OFQyyO0l": [ - "Flashforge/Polymaker CoPA" - ], - "OFR0gODA": [ - "SeeMeCNC/SeeMeCNC ABS" - ], - "OFR1XLMN": [ - "Qidi/QIDI TPU 95A-HF" - ], - "OFRFhdqy": [ - "BBL/addnorth PLA Textura" - ], - "OFRJ325z": [ - "LH/LHS PETG" - ], - "OFRhBryT": [ - "Cubicon/Cubicon PLAi21" - ], - "OFRhCTUg": [ - "Anycubic/Anycubic PET-CF" - ], - "OFRiFnfQ": [ - "OrcaFilamentLibrary/Eolas Prints PETG Transition" - ], - "OFRiYgMK": [ - "BBL/Panchroma PLA Celestial", - "OrcaFilamentLibrary/Panchroma PLA Celestial", - "Snapmaker/Panchroma PLA Celestial" - ], - "OFRkjhxK": [ - "Volumic/Volumic PVA-BVOH (Performance)" - ], - "OFRmGKVX": [ - "Cubicon/Cubicon PLA+" - ], - "OFRooa0F": [ - "Snapmaker/Snapmaker Dual PA-CF" - ], - "OFRpAZ1P": [ - "DeltaMaker/DeltaMaker Brand PLA" - ], - "OFRyOsZj": [ - "re3D/re3D PLA" - ], - "OFRzR5mi": [ - "OrcaFilamentLibrary/eSUN ePLA-LW" - ], - "OFS2tn6G": [ - "BBL/Fiberon PA612-CF", - "OrcaFilamentLibrary/Fiberon PA612-CF" - ], - "OFS4jbj3": [ - "Eryone/Eryone PA" - ], - "OFS8lTQt": [ - "BBL/Panchroma PLA Silk", - "OrcaFilamentLibrary/Panchroma PLA Silk", - "Snapmaker/Panchroma PLA Silk" - ], - "OFSDfduA": [ - "Flashforge/Flashforge TPU 65D" - ], - "OFSa39yP": [ - "Snapmaker/Snapmaker J1 PLA" - ], - "OFSbGfsz": [ - "OrcaArena/Arena PLA Basic" - ], - "OFSfm8iP": [ - "BBL/BETA PLA Heat Color Change" - ], - "OFSiCZP3": [ - "BBL/BETA PETG-GF" - ], - "OFSqIcJC": [ - "Flashforge/Flashforge TPU 95A" - ], - "OFSw6Mor": [ - "BBL/addnorth PA Adura FDA" - ], - "OFSwbBWS": [], - "OFT2jon4": [ - "Qidi/QIDI ABS Rapido" - ], - "OFTGHyNC": [ - "OrcaFilamentLibrary/Bambu PLA Impact" - ], - "OFTHDCqA": [ - "BBL/Bambu PLA Pure" - ], - "OFTOPcx0": [ - "OrcaFilamentLibrary/Eolas Prints TPU Transition" - ], - "OFTRZ8Y4": [ - "BBL/Bambu PETG-CF", - "OrcaFilamentLibrary/Bambu PETG-CF" - ], - "OFTSXxzE": [ - "Flashforge/Flashforge PPS-CF" - ], - "OFTXduCM": [ - "Creality/eSUN ABS+" - ], - "OFTcE0nA": [ - "OrcaFilamentLibrary/eSUN PLA-Basic" - ], - "OFTdauIq": [ - "Volumic/Volumic PCTG Ultra (Performance)" - ], - "OFTkj6DR": [ - "Anycubic/Anycubic PVA" - ], - "OFTlRzpe": [ - "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" - ], - "OFTnWzBs": [ - "Creality/Hyper PLA-CF" - ], - "OFTs8peJ": [ - "Snapmaker/Snapmaker Dual TPE" - ], - "OFTsHNQi": [ - "Qidi/QIDI ASA" - ], - "OFU1zPxE": [ - "Elegoo/Elegoo PLA Galaxy", - "OrcaFilamentLibrary/Elegoo PLA Galaxy" - ], - "OFU3QXL7": [ - "re3D/re3D PC" - ], - "OFU5JPDy": [ - "BBL/addnorth PETG PRO Matte" - ], - "OFU7CKZt": [ - "Volumic/Volumic ASA Ultra (Performance)" - ], - "OFUF7oA4": [ - "Creality/Hyper PC" - ], - "OFUH1aee": [ - "Volumic/Volumic FLEX93 Ultra (Performance)" - ], - "OFUIfGoh": [ - "Snapmaker/Snapmaker Dual PET" - ], - "OFUYCqtB": [ - "InfiMech/InfiMech PLA" - ], - "OFUaHEO9": [ - "Anycubic/Anycubic PEBA 95A" - ], - "OFUanySo": [ - "BBL/Bambu PLA Silk+", - "OrcaFilamentLibrary/Bambu PLA Silk+" - ], - "OFUmS5z5": [ - "Creality/eSUN ASA+" - ], - "OFUtiVRn": [ - "BBL/addnorth PETG ESD" - ], - "OFUyDDNv": [ - "Elegoo/Elegoo PC", - "OrcaFilamentLibrary/Elegoo PC" - ], - "OFV5Q7j2": [ - "Snapmaker/Snapmaker J1 TPE" - ], - "OFV5c8hG": [ - "Flashforge/Flashforge PLA Sparkle" - ], - "OFV5tNw6": [ - "Elegoo/Elegoo PET-CF", - "OrcaFilamentLibrary/Elegoo PET-CF" - ], - "OFV5wEMe": [ - "Afinia/Afinia ABS" - ], - "OFV8Mxqx": [], - "OFVBlUFH": [], - "OFVCkX5w": [ - "BBL/Bambu TPU 95A", - "OrcaFilamentLibrary/Bambu TPU 95A" - ], - "OFVDWuxl": [ - "BBL/addnorth PLA HT-PLA PRO Matte" - ], - "OFVHMFJX": [ - "Qidi/QIDI PETG Tough 0.2 nozzle" - ], - "OFVptRxp": [ - "BBL/COEX TPE 30D", - "OrcaFilamentLibrary/COEX TPE 30D" - ], - "OFVtIasg": [ - "Eryone/Eryone ASA" - ], - "OFW29a9R": [ - "BBL/PolyTerra PLA", - "OrcaArena/PolyTerra PLA", - "OrcaFilamentLibrary/PolyTerra PLA", - "Snapmaker/PolyTerra PLA" - ], - "OFW5FqkL": [ - "Qidi/QIDI PLA Rapido Silk" - ], - "OFW8M3CY": [ - "BBL/BETA PLA Chameleon" - ], - "OFW8lqnb": [ - "Snapmaker/Snapmaker PETG Translucent" - ], - "OFWDe7YH": [ - "Qidi/QIDI UltraPA" - ], - "OFWK0Y9A": [ - "BBL/addnorth PA Adura" - ], - "OFWRITFw": [ - "Prusa/Prusament rPLA" - ], - "OFWTAEjH": [ - "Snapmaker/Snapmaker TPE" - ], - "OFWTRJ1K": [ - "OrcaFilamentLibrary/FilAr PLA Bronce" - ], - "OFWXCbVF": [ - "Flashforge/Flashforge PC" - ], - "OFWYtgCa": [ - "Elegoo/Elegoo PLA Wood", - "OrcaFilamentLibrary/Elegoo PLA Wood" - ], - "OFWa0NiB": [ - "Volumic/Volumic NYLON Ultra" - ], - "OFWao3Ic": [ - "Creality/Ender-PLA" - ], - "OFWbdGsC": [ - "Anker/Generic PLA-CF", - "Anycubic/Generic PLA-CF", - "Artillery/Generic PLA-CF", - "BBL/Generic PLA-CF", - "Blocks/Generic PLA-CF", - "Creality/Generic PLA-CF", - "Custom/Generic PLA-CF", - "FLSun/Generic PLA-CF", - "Flashforge/Generic PLA-CF", - "OrcaArena/Generic PLA-CF", - "OrcaFilamentLibrary/Generic PLA-CF", - "Prusa/Generic PLA-CF", - "Qidi/Generic PLA-CF", - "Ratrig/Generic PLA-CF", - "SecKit/Generic PLA-CF", - "Tiertime/Generic PLA-CF", - "Vzbot/Generic PLA-CF" - ], - "OFWgFOjn": [ - "Snapmaker/Snapmaker PLA Silk" - ], - "OFWwF7K7": [ - "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" - ], - "OFX0etlv": [ - "re3D/re3D PETG" - ], - "OFX0ycRQ": [ - "BBL/Fiberon PA12-CF", - "OrcaFilamentLibrary/Fiberon PA12-CF" - ], - "OFX2zcrM": [ - "Chuanying/Generic PLA-CF10", - "Flashforge/Generic PLA-CF10" - ], - "OFXCBZTA": [ - "OrcaFilamentLibrary/Eolas Prints ABS" - ], - "OFXIbw5D": [ - "BBL/Bambu PLA Matte", - "OrcaFilamentLibrary/Bambu PLA Matte" - ], - "OFXJ9iom": [ - "iQ/Grauts HPP4GF25 P1" - ], - "OFXSvqOX": [ - "Snapmaker/Snapmaker TPU 95A HF" - ], - "OFXTPuqV": [ - "OrcaFilamentLibrary/Elas PETG Basic" - ], - "OFXW4CDh": [ - "Ratrig/Generic PCTG BigNozzle" - ], - "OFXi59OX": [ - "Afinia/Afinia Value ABS" - ], - "OFXiArjA": [ - "Flashforge/Flashforge PETG Pro" - ], - "OFXk1emJ": [ - "Artillery/Artillery PLA Basic" - ], - "OFXkm8q1": [ - "BBL/Generic PP-CF", - "Creality/Generic PP-CF", - "OrcaFilamentLibrary/Generic PP-CF", - "Tiertime/Generic PP-CF" - ], - "OFXmv5p0": [ - "Creality/Generic Speed PLA" - ], - "OFXn3Vd9": [ - "Qidi/QIDI Support For PAHT" - ], - "OFXnToSX": [ - "Creality/Hyper Stardust" - ], - "OFXuGxvQ": [ - "Volumic/Volumic PLA Ultra" - ], - "OFXz7Mwx": [ - "Elegoo/Elegoo PLA Silk", - "OrcaFilamentLibrary/Elegoo PLA Silk" - ], - "OFXzQ4yL": [ - "BBL/Bambu ASA-Aero", - "OrcaFilamentLibrary/Bambu ASA-Aero" - ], - "OFY0F5qA": [ - "Volumic/Volumic PETG Ultra carbone (Performance)" - ], - "OFY3AB7j": [ - "Snapmaker/Snapmaker J1 PLA Matte" - ], - "OFY7jxcS": [ - "Snapmaker/Snapmaker TPU 90A" - ], - "OFY9muEs": [ - "Anker/Generic ABS", - "Anycubic/Generic ABS", - "Artillery/Generic ABS", - "BBL/Generic ABS", - "Blocks/Generic ABS", - "Chuanying/Generic ABS", - "Co Print/Generic ABS", - "CoLiDo/Generic ABS", - "Comgrow/Generic ABS", - "Creality/Generic ABS", - "Custom/Generic ABS", - "Elegoo/Generic ABS", - "FLSun/Generic ABS", - "Flashforge/Generic ABS", - "FlyingBear/Generic ABS", - "InfiMech/Generic ABS", - "Lulzbot/Generic ABS", - "OrcaArena/Generic ABS", - "OrcaFilamentLibrary/Generic ABS", - "Peopoly/Generic ABS", - "Prusa/Generic ABS", - "Qidi/Generic ABS", - "RH3D/Generic ABS", - "Ratrig/Generic ABS", - "SecKit/Generic ABS", - "Sovol/Generic ABS", - "Tiertime/Generic ABS", - "Vzbot/Generic ABS", - "Z-Bolt/Generic ABS" - ], - "OFYE7YZw": [ - "Qidi/Tinmorry PETG-ECO" - ], - "OFYEtXuk": [ - "Snapmaker/Snapmaker J1 PA-CF" - ], - "OFYGbPHX": [ - "OrcaFilamentLibrary/PolyLite Dual PLA", - "Snapmaker/PolyLite Dual PLA" - ], - "OFYGrfHY": [ - "BBL/BETA PETG Fluorescence" - ], - "OFYPdQJh": [ - "Anker/Generic PETG", - "Anycubic/Generic PETG", - "Artillery/Generic PETG", - "BBL/Generic PETG", - "Blocks/Generic PETG", - "CONSTRUCT3D/Generic PETG", - "Chuanying/Generic PETG", - "Co Print/Generic PETG", - "CoLiDo/Generic PETG", - "Comgrow/Generic PETG", - "Creality/Generic PETG", - "Custom/Generic PETG", - "DeltaMaker/Generic PETG", - "Elegoo/Generic PETG", - "FLSun/Generic PETG", - "Flashforge/Generic PETG", - "FlyingBear/Generic PETG", - "Ginger Additive/Generic PETG", - "InfiMech/Generic PETG", - "LONGER/Generic PETG", - "Lulzbot/Generic PETG", - "OrcaArena/Generic PETG", - "OrcaFilamentLibrary/Generic PETG", - "Peopoly/Generic PETG", - "Prusa/Generic PETG", - "Qidi/Generic PETG", - "RH3D/Generic PETG", - "Ratrig/Generic PETG", - "SecKit/Generic PETG", - "Sovol/Generic PETG", - "Tiertime/Generic PETG", - "Vzbot/Generic PETG", - "Z-Bolt/Generic PETG" - ], - "OFYTIMbj": [ - "Flashforge/Flashforge ABS-CF" - ], - "OFYYeMyQ": [ - "Flashforge/Flashforge PETG Basic" - ], - "OFYd5uS3": [], - "OFYezc6s": [ - "FlyingBear/FlyingBear TPU" - ], - "OFYuowge": [ - "FlyingBear/Other ABS", - "InfiMech/Other ABS" - ], - "OFZ0mR5b": [ - "Anycubic/Anycubic PLA-CF" - ], - "OFZ2LuAi": [ - "Wanhao France/YUMI PLA Bowden" - ], - "OFZ3K2cL": [ - "Qidi/QIDI PA6-CF" - ], - "OFZ4QbfK": [ - "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" - ], - "OFZGrQTU": [ - "BBL/addnorth PETG Economy" - ], - "OFZJft47": [ - "BBL/addnorth PLA Economy" - ], - "OFZLtWYs": [ - "Qidi/QIDI ABS-GF25" - ], - "OFZOuWrO": [ - "Qidi/QIDI PPS-CF" - ], - "OFZivHGL": [ - "Snapmaker/Snapmaker Dual PLA" - ], - "OFZqZMuv": [ - "BBL/BETA ASA" - ], - "OFZr862X": [ - "Creality/Generic PLA HF", - "Prusa/Generic PLA HF" - ], - "OFZtOQtl": [ - "Flashforge/Flashforge PA6-CF" - ], - "OFZtkHRq": [ - "Anycubic/Anycubic PC" - ], - "OFaDOaNt": [ - "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" - ], - "OFaDsTE0": [ - "Flashforge/Polymaker S1" - ], - "OFaEesXQ": [ - "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" - ], - "OFaEuvNF": [ - "Anycubic/Anycubic PAHT-CF" - ], - "OFaHjk1V": [ - "Volumic/Volumic PC" - ], - "OFaP2SsH": [ - "LH/LHS ASA" - ], - "OFaQMgRH": [ - "BBL/Bambu PLA Tough", - "OrcaFilamentLibrary/Bambu PLA Tough" - ], - "OFaRjiIm": [ - "SeeMeCNC/SeeMeCNC PETG-CF" - ], - "OFaYz8iE": [ - "OrcaFilamentLibrary/Elas PLA Pro" - ], - "OFaaddbQ": [ - "Flashforge/Flashforge PVA" - ], - "OFaeIx7W": [ - "iQ/Polymaker PETG Polymax black P1" - ], - "OFafO6VM": [ - "Elegoo/Generic PC-CF" - ], - "OFafocjw": [ - "Cubicon/Cubicon ABS" - ], - "OFausr3F": [ - "OrcaFilamentLibrary/FilAr PLA-mate Rosa" - ], - "OFb5EEM3": [ - "Artillery/Artillery PET" - ], - "OFbP8zEO": [ - "OrcaFilamentLibrary/Eolas Prints PLA Silk" - ], - "OFbPuPKY": [ - "Prusa/Generic FLEX" - ], - "OFbSChKb": [ - "SeeMeCNC/SeeMeCNC PLA" - ], - "OFbSZBOi": [ - "InfiMech/InfiMech TPU Basic" - ], - "OFbh7HcA": [ - "Eryone/Eryone PP-CF" - ], - "OFc3xdm9": [ - "BBL/Overture PLA", - "OrcaFilamentLibrary/Overture PLA", - "Qidi/Overture PLA" - ], - "OFc87pL3": [ - "OrcaArena/Arena PET-CF" - ], - "OFcBJQcC": [ - "Snapmaker/Snapmaker Dual TPU High-Flow" - ], - "OFcBl0nJ": [ - "BBL/Fiberon PA612-CF15" - ], - "OFcJDtTx": [ - "Artillery/Artillery TPU" - ], - "OFcKtw8W": [ - "Volumic/PA6 CF20 (Performance)" - ], - "OFcVLpNA": [ - "Flashforge/FusRock PAHT-GF" - ], - "OFcfQk4h": [ - "BBL/Overture Air PLA", - "OrcaFilamentLibrary/Overture Air PLA" - ], - "OFcnWTJB": [ - "BBL/BETA PLA Glitter" - ], - "OFcogyWl": [ - "WonderMaker/WonderMaker PLA Metal" - ], - "OFcpa50Z": [ - "BBL/addnorth PLA-CF Carbon Fiber" - ], - "OFctg8r1": [ - "CoLiDo/CoLiDo PLA+" - ], - "OFcvKkrs": [ - "BBL/Overture TPU", - "OrcaFilamentLibrary/Overture TPU" - ], - "OFcytyoA": [ - "BBL/Fiberon PETG-ESD", - "OrcaFilamentLibrary/Fiberon PETG-ESD", - "Snapmaker/Fiberon PETG-ESD" - ], - "OFd0Fv0k": [ - "BBL/Generic PE-CF", - "OrcaFilamentLibrary/Generic PE-CF", - "Tiertime/Generic PE-CF" - ], - "OFd2vX0G": [ - "BBL/COEX PLA PRIME", - "OrcaFilamentLibrary/COEX PLA PRIME" - ], - "OFd4zw5l": [ - "BBL/AliZ PA-CF", - "OrcaFilamentLibrary/AliZ PA-CF" - ], - "OFdD5Wbu": [ - "Snapmaker/Snapmaker J1 PLA-CF" - ], - "OFdI4zMo": [], - "OFdXVjGZ": [ - "Tiertime/Tiertime PC" - ], - "OFdb8YNz": [ - "OrcaFilamentLibrary/FilAr PLA Verde Manzana" - ], - "OFdd8ZqJ": [ - "Snapmaker/Snapmaker PLA Wood" - ], - "OFdkWDiy": [ - "Cubicon/Cubicon PLAi21" - ], - "OFdqkWtz": [ - "Flashforge/Flashforge PLA Luminous" - ], - "OFdrYBmI": [ - "Tiertime/Tiertime ASA" - ], - "OFdtPd9h": [ - "Qidi/QIDI PETG-GF" - ], - "OFdzlrhi": [ - "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" - ], - "OFe61n6v": [ - "Ratrig/RatRig PunkFil PETG CF" - ], - "OFe8tuNb": [ - "Tiertime/Tiertime PA6-CF" - ], - "OFe8yBMG": [ - "Qidi/QIDI PETG Tough 0.6 nozzle" - ], - "OFeAxvEt": [ - "Snapmaker/Snapmaker Dual ABS Benchy" - ], - "OFeCJqxx": [ - "Qidi/QIDI ABS Rapido Metal" - ], - "OFeF4UNh": [ - "BBL/BETA PLA Silk" - ], - "OFeIyhUx": [ - "Anycubic/Anycubic PC-CF" - ], - "OFeTATC7": [ - "Snapmaker/Snapmaker J1 Breakaway" - ], - "OFeVzkSU": [ - "Snapmaker/Fiberon PPS-GF20" - ], - "OFeelsSM": [ - "Qidi/HATCHBOX PLA" - ], - "OFelDBgv": [ - "Snapmaker/Polymaker PLA" - ], - "OFepU7Tl": [ - "WonderMaker/WonderMaker PLA Matte" - ], - "OFesA6rF": [ - "Anker/Generic PLA Silk", - "BBL/Generic PLA Silk", - "Creality/Generic PLA Silk", - "FLSun/Generic PLA Silk", - "Flashforge/Generic PLA Silk", - "OrcaArena/Generic PLA Silk", - "OrcaFilamentLibrary/Generic PLA Silk", - "Prusa/Generic PLA Silk", - "Qidi/Generic PLA Silk", - "Sovol/Generic PLA Silk", - "Tiertime/Generic PLA Silk" - ], - "OFexaZU2": [ - "OrcaFilamentLibrary/FilAr PLA Manteca" - ], - "OFf0MkD5": [ - "Qidi/QIDI PETG Translucent" - ], - "OFf52D4e": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "OFf5awy4": [ - "OrcaFilamentLibrary/Eolas Prints PLA Matte" - ], - "OFf6ZEvu": [ - "InfiMech/InfiMech PC" - ], - "OFf6mfQO": [ - "BBL/Bambu Support for ABS", - "OrcaFilamentLibrary/Bambu Support for ABS" - ], - "OFf6ynfH": [ - "FlyingBear/FlyingBear PETG Basic" - ], - "OFfBpSRI": [ - "BBL/Bambu ASA", - "OrcaFilamentLibrary/Bambu ASA" - ], - "OFfD87Gy": [ - "Snapmaker/Snapmaker PLA Glow" - ], - "OFfHGM1D": [ - "re3D/re3D rPP" - ], - "OFfJSCzm": [ - "OrcaFilamentLibrary/FDplast PETG" - ], - "OFfSqS4R": [ - "Creality/ENDER FAST PLA" - ], - "OFfYHK5z": [ - "Qidi/Polymaker PLA-HT" - ], - "OFfZcoKr": [ - "OrcaFilamentLibrary/FilAr PLA-mate Piel" - ], - "OFfb10SK": [ - "Artillery/Artillery PC" - ], - "OFfmHUkQ": [ - "Snapmaker/Snapmaker Dual Breakaway" - ], - "OFfmZrI3": [ - "OrcaFilamentLibrary/FDplast TPU" - ], - "OFfnXFie": [ - "BBL/COEX TPE 40D", - "OrcaFilamentLibrary/COEX TPE 40D" - ], - "OFfq5YXA": [ - "OrcaFilamentLibrary/Valment PLA-CF" - ], - "OFfr4XNO": [ - "BBL/COEX TPE 60D", - "OrcaFilamentLibrary/COEX TPE 60D" - ], - "OFfr6JDF": [ - "Qidi/QIDI PETG Tough 0.8 nozzle" - ], - "OFfuhviw": [ - "Elegoo/Elegoo PLA Marble", - "OrcaFilamentLibrary/Elegoo PLA Marble" - ], - "OFfuih8e": [ - "Creality/Creality Silk PLA" - ], - "OFg3cWVt": [ - "Snapmaker/Snapmaker Dual PLA Metal" - ], - "OFg57Nmc": [ - "BBL/Bambu PC FR", - "OrcaFilamentLibrary/Bambu PC FR" - ], - "OFg8hMzT": [ - "OrcaFilamentLibrary/FILL3D PPCF" - ], - "OFg8ndtj": [ - "Anker/Generic PA", - "Anycubic/Generic PA", - "BBL/Generic PA", - "Blocks/Generic PA", - "Creality/Generic PA", - "Custom/Generic PA", - "Elegoo/Generic PA", - "FLSun/Generic PA", - "OrcaArena/Generic PA", - "OrcaFilamentLibrary/Generic PA", - "Prusa/Generic PA", - "Qidi/Generic PA", - "Ratrig/Generic PA", - "SecKit/Generic PA", - "Tiertime/Generic PA", - "Vzbot/Generic PA", - "Z-Bolt/Generic PA" - ], - "OFgHh8ly": [ - "Afinia/Afinia Value PLA" - ], - "OFgMWJ8T": [ - "OrcaFilamentLibrary/FilAr PLA Negro Azabache" - ], - "OFgSbX7E": [ - "Volumic/Volumic PC (Performance)" - ], - "OFgVQkqW": [ - "Cubicon/Cubicon ABSk" - ], - "OFgXgt98": [ - "Artillery/Artillery ABS" - ], - "OFgbpcy9": [ - "Anker/Generic TPU", - "Anycubic/Generic TPU", - "Artillery/Generic TPU", - "BBL/Generic TPU", - "Blocks/Generic TPU", - "Chuanying/Generic TPU", - "Co Print/Generic TPU", - "CoLiDo/Generic TPU", - "Creality/Generic TPU", - "Custom/Generic TPU", - "DeltaMaker/Generic TPU", - "FLSun/Generic TPU", - "Flashforge/Generic TPU", - "FlyingBear/Generic TPU", - "InfiMech/Generic TPU", - "OrcaArena/Generic TPU", - "OrcaFilamentLibrary/Generic TPU", - "Prusa/Generic TPU", - "Qidi/Generic TPU", - "RH3D/Generic TPU", - "Ratrig/Generic TPU", - "SecKit/Generic TPU", - "Sovol/Generic TPU", - "Tiertime/Generic TPU", - "Vzbot/Generic TPU" - ], - "OFgdaBOt": [ - "Snapmaker/Polymaker Tough PLA Family" - ], - "OFgeM7nD": [ - "Flashforge/Flashforge PA12-CF" - ], - "OFgjgN35": [ - "Flashforge/Flashforge PLA Silk" - ], - "OFglhKLM": [ - "Qidi/QIDI PLA Rapido 0.8 nozzle" - ], - "OFgpLTMR": [ - "OrcaFilamentLibrary/FilAr PETG Gris Plata" - ], - "OFgpQwkk": [ - "Creality/CR-PLA Fluo" - ], - "OFgptDSf": [ - "OrcaArena/Arena PLA Matte" - ], - "OFgyPlwU": [ - "Snapmaker/Snapmaker TPU High-Flow" - ], - "OFh7mvPO": [ - "Prusa/Prusament PVB" - ], - "OFh9u9c0": [ - "Creality/Generic PA6-GF" - ], - "OFhASRWj": [ - "BBL/Panchroma PLA Temp Shift", - "OrcaFilamentLibrary/Panchroma PLA Temp Shift", - "Snapmaker/Panchroma PLA Temp Shift" - ], - "OFhMO9Kh": [ - "OrcaFilamentLibrary/GreenGate3D PETG" - ], - "OFhN09f0": [ - "BBL/addnorth PC BLend HT LCF" - ], - "OFhO5aEJ": [ - "Ratrig/RatRig PunkFil ABS" - ], - "OFhQf8ou": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "OFhQfUQY": [ - "BBL/Generic SBS", - "OrcaFilamentLibrary/Generic SBS", - "Tiertime/Generic SBS" - ], - "OFhTPf6L": [ - "Creality/Generic PA6-CF", - "Elegoo/Generic PA6-CF" - ], - "OFhUjPA5": [ - "Eryone/Eryone TPU" - ], - "OFhWc5Bv": [ - "OrcaFilamentLibrary/NIT ABS" - ], - "OFhWhL1i": [ - "OrcaFilamentLibrary/Eolas Prints PETG" - ], - "OFhWrAuP": [ - "Qidi/QIDI PLA-CF" - ], - "OFhbolij": [ - "Creality/eSUN PLA-Lite" - ], - "OFhcYzR8": [ - "Elegoo/Elegoo PLA Sparkle", - "OrcaFilamentLibrary/Elegoo PLA Sparkle" - ], - "OFhfd722": [ - "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" - ], - "OFhiJE7Y": [ - "Qidi/QIDI PEBA 95A" - ], - "OFhkN0a7": [ - "Creality/Hyper PA612-CF" - ], - "OFhlCNqq": [ - "BBL/COEX PLA", - "OrcaFilamentLibrary/COEX PLA" - ], - "OFhmxnYw": [ - "Snapmaker/Snapmaker PLA Basic" - ], - "OFhuaUQB": [ - "BBL/Bambu ABS", - "OrcaFilamentLibrary/Bambu ABS", - "Qidi/Bambu ABS" - ], - "OFhwiZ50": [ - "Qidi/QIDI PLA Rapido 0.2 nozzle" - ], - "OFhx4uOG": [ - "Qidi/QIDI PET-GF" - ], - "OFi5RSve": [ - "Creality/eSUN PLA-LW" - ], - "OFi6PfUM": [ - "Chuanying/Generic PLA-Silk", - "Creality/Generic PLA-Silk", - "Flashforge/Generic PLA-Silk" - ], - "OFi90KlM": [ - "Volumic/Volumic NYLON Ultra (Performance)" - ], - "OFiDpM1B": [ - "OrcaFilamentLibrary/FilAr PLA-mate Bordo" - ], - "OFiEz2XI": [ - "Cubicon/Cubicon PA-CF" - ], - "OFiWaoqD": [ - "OrcaFilamentLibrary/DREMC PPA-CF" - ], - "OFibWuBd": [ - "Flashforge/Flashforge ABS Basic" - ], - "OFilAA3b": [ - "Eryone/Eryone PLA-CF" - ], - "OFilD4bP": [ - "FlyingBear/FlyingBear PLA" - ], - "OFilnglt": [ - "Artillery/Artillery PETG" - ], - "OFin64Qg": [ - "Creality/Generic Support for PLA" - ], - "OFitS8al": [ - "BBL/PolyLite PLA Neon", - "Snapmaker/PolyLite PLA Neon" - ], - "OFiwEbze": [ - "Volumic/PETG ESD (Performance)" - ], - "OFj3bTjw": [ - "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" - ], - "OFj64R5U": [ - "Peopoly/Peopoly Lancer ABS-GF" - ], - "OFjD3YTW": [ - "Qidi/Qidi PC-ABS-FR" - ], - "OFjHrAX0": [ - "WonderMaker/WonderMaker ABS" - ], - "OFjLAYgO": [ - "Anycubic/Anycubic PEBA" - ], - "OFjPXrXO": [ - "Elegoo/Elegoo PLA Glow", - "OrcaFilamentLibrary/Elegoo PLA Glow" - ], - "OFjT9PkZ": [ - "OrcaFilamentLibrary/FilAr PLA Tabaco" - ], - "OFjUGUIK": [ - "iQ/Fiberthree PACF Pro P1" - ], - "OFjUXn67": [ - "BBL/BETA ABS" - ], - "OFjVOWfJ": [ - "Anycubic/Anycubic PLA High Speed" - ], - "OFjXrKFO": [ - "OrcaArena/Arena PLA Impact" - ], - "OFjb0wos": [ - "BBL/Panchroma PLA Metallic", - "OrcaFilamentLibrary/Panchroma PLA Metallic", - "Snapmaker/Panchroma PLA Metallic" - ], - "OFjcwUEm": [ - "Cubicon/Cubicon PLA" - ], - "OFjiXpyf": [ - "Qidi/Generic TPU 95A", - "TwoTrees/Generic TPU 95A" - ], - "OFjkdnyN": [ - "Snapmaker/Snapmaker Dual TPU" - ], - "OFjoAe0R": [ - "Qidi/Qidi PLA-CF" - ], - "OFjogeYN": [ - "BBL/BETA PETG Glitter" - ], - "OFjorDcx": [ - "OrcaFilamentLibrary/FDplast ABS" - ], - "OFjt8dDO": [ - "Flashforge/FusRock NexPA-CF25" - ], - "OFjt9en1": [ - "OrcaFilamentLibrary/Generic CoPE" - ], - "OFjz0a3m": [ - "Prusa/Prusament PC-CF" - ], - "OFk8t9mz": [ - "BBL/Fiberon PETG-rCF", - "OrcaFilamentLibrary/Fiberon PETG-rCF" - ], - "OFkAltI8": [ - "FlyingBear/Other PA-CF", - "InfiMech/Other PA-CF" - ], - "OFkGp50Y": [ - "Volumic/Volumic UNIVERSAL Ultra (Performance)" - ], - "OFkGvN4d": [ - "OrcaFilamentLibrary/FilAr PLA Verde Pixel" - ], - "OFkHbjUv": [ - "BBL/BETA PLA Metallic" - ], - "OFkOviHk": [ - "BBL/Fiberon PA6-CF", - "OrcaFilamentLibrary/Fiberon PA6-CF" - ], - "OFkR8E2c": [ - "Prusa/Prusament PETG" - ], - "OFkf1HHw": [ - "Flashforge/Generic PLA-SILK" - ], - "OFkhhUS0": [ - "Elegoo/Elegoo Rapid PLA+", - "OrcaFilamentLibrary/Elegoo Rapid PLA+" - ], - "OFklJcWK": [ - "FlyingBear/Other PLA Hyper", - "InfiMech/Other PLA Hyper" - ], - "OFknl9Iz": [ - "BBL/Bambu ABS-GF", - "OrcaFilamentLibrary/Bambu ABS-GF" - ], - "OFkoLUtR": [ - "OrcaFilamentLibrary/FilAr PLA Verde Oliva" - ], - "OFkq7rPy": [ - "Eryone/Eryone PA-GF" - ], - "OFks6esg": [ - "Creality/EN-PLA+" - ], - "OFkx5MEe": [ - "Artillery/Artillery PVA" - ], - "OFkzr35f": [ - "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" - ], - "OFlBoEfL": [ - "Snapmaker/Snapmaker J1 TPU High-Flow" - ], - "OFlIsW6f": [ - "Snapmaker/Snapmaker Dual PLA Matte" - ], - "OFlN6DL1": [ - "Qidi/QIDI PA-Ultra" - ], - "OFlP3KWq": [ - "Elegoo/Elegoo PETG HF", - "OrcaFilamentLibrary/Elegoo PETG HF" - ], - "OFlSNkhc": [ - "OrcaFilamentLibrary/Eolas Prints ASA" - ], - "OFlfuj2k": [ - "BBL/Bambu TPU 85A" - ], - "OFlgMgNM": [ - "Flashforge/Flashforge PPS" - ], - "OFllmFhT": [ - "Elegoo/Generic PETG PRO" - ], - "OFlmxlDG": [ - "BBL/BETA HIPS" - ], - "OFln72PT": [ - "Elegoo/Elegoo PLA-CF", - "OrcaFilamentLibrary/Elegoo PLA-CF" - ], - "OFlsTpJG": [ - "Elegoo/Elegoo PC-FR", - "OrcaFilamentLibrary/Elegoo PC-FR" - ], - "OFlufQpZ": [ - "Snapmaker/Snapmaker PLA" - ], - "OFlwmqrC": [ - "BBL/Polymaker HT-PLA-GF", - "OrcaFilamentLibrary/Polymaker HT-PLA-GF", - "Snapmaker/Polymaker HT-PLA-GF" - ], - "OFm06H6V": [ - "Elegoo/Elegoo PLA Basic", - "OrcaFilamentLibrary/Elegoo PLA Basic" - ], - "OFm4SivL": [ - "Flashforge/Flashforge PLA Pro" - ], - "OFm4ysMO": [ - "FlyingBear/FlyingBear ABS" - ], - "OFm70lLt": [ - "CoLiDo/CoLiDo PLA" - ], - "OFm8rqoY": [ - "re3D/re3D rPP" - ], - "OFmCOW2Y": [ - "re3D/re3D rPETG" - ], - "OFmFwUWM": [ - "Prusa/Prusament ASA" - ], - "OFmJAd3A": [ - "OrcaFilamentLibrary/FDplast HIPS" - ], - "OFmKU2Ha": [ - "Eryone/Eryone PLA" - ], - "OFmN2lvw": [ - "BBL/Generic TPU for AMS" - ], - "OFmY0l6t": [ - "Creality/Generic PLA Matte", - "Elegoo/Generic PLA Matte", - "OrcaFilamentLibrary/Generic PLA Matte" - ], - "OFma5TXH": [ - "Qidi/QIDI ABS Odorless" - ], - "OFmaeU4a": [ - "OrcaFilamentLibrary/FilAr PLA-mate Naranja" - ], - "OFmfizbq": [ - "OrcaArena/Arena PLA Silk" - ], - "OFmhJs5V": [ - "Elegoo/Elegoo TPU 95A", - "OrcaFilamentLibrary/Elegoo TPU 95A" - ], - "OFmjN2bc": [ - "Anycubic/Anycubic PLA" - ], - "OFmn9NZL": [ - "BBL/FusRock ABS-GF", - "OrcaFilamentLibrary/FusRock ABS-GF" - ], - "OFmpMwxS": [ - "BBL/Generic PLA High Speed", - "Creality/Generic PLA High Speed", - "FLSun/Generic PLA High Speed", - "Flashforge/Generic PLA High Speed", - "OrcaFilamentLibrary/Generic PLA High Speed", - "Qidi/Generic PLA High Speed", - "Tiertime/Generic PLA High Speed" - ], - "OFmt513L": [ - "BBL/BETA PETG Transparent" - ], - "OFmveLWz": [ - "Elegoo/Elegoo PETG-GF", - "OrcaFilamentLibrary/Elegoo PETG-GF" - ], - "OFn1QaY3": [ - "Elegoo/Elegoo PLA Translucent2", - "OrcaFilamentLibrary/Elegoo PLA Translucent2" - ], - "OFn2GlhY": [ - "Creality/Hyper PA6-CF" - ], - "OFn6WpN7": [ - "Qidi/QIDI PA12-CF" - ], - "OFnBvPhb": [ - "BBL/addnorth PLA rPLA RE-ADD" - ], - "OFnHc3D6": [ - "Creality/eSUN PLA-CF" - ], - "OFnO4wnf": [ - "Prusa/Prusament PLA" - ], - "OFnSeLHk": [ - "CoLiDo/CoLiDo PLA Silk" - ], - "OFnT7Qpb": [ - "Prusa/Generic TPU HF" - ], - "OFnXrkhA": [ - "InfiMech/InfiMech PA-CF" - ], - "OFnXwW8l": [ - "Snapmaker/PolyLite PLA Pro Metallic" - ], - "OFnYVFk2": [ - "OrcaFilamentLibrary/FilAr PLA Azul Francia" - ], - "OFncpm7O": [ - "WonderMaker/WonderMaker PLA Silk" - ], - "OFneOFWe": [ - "CoLiDo/CoLiDo ABS" - ], - "OFnejEt4": [ - "OrcaFilamentLibrary/FilAr PETG Cian" - ], - "OFnfxTvi": [ - "BBL/Bambu PLA Lite" - ], - "OFngcE81": [ - "LH/LHS TPU Foamy 78A" - ], - "OFniMuTN": [ - "BBL/Bambu PA6-CF", - "OrcaFilamentLibrary/Bambu PA6-CF" - ], - "OFnmp6rt": [ - "Anycubic/Anycubic PLA+" - ], - "OFnpX8uh": [ - "BBL/BETA PETG Matte" - ], - "OFnyHfcv": [ - "Ratrig/Generic ABS BigNozzle" - ], - "OFo15hcT": [ - "Qidi/QIDI PAHT-GF" - ], - "OFo2UF2C": [ - "BBL/Generic BVOH", - "Creality/Generic BVOH", - "Flashforge/Generic BVOH", - "OrcaFilamentLibrary/Generic BVOH", - "Tiertime/Generic BVOH" - ], - "OFo6n2pB": [ - "Anycubic/Anycubic PETG" - ], - "OFoBTKmn": [ - "Cubicon/Cubicon PETG" - ], - "OFoSknDB": [ - "OrcaFilamentLibrary/FILL3D PLA Turbo" - ], - "OFoYSJKi": [ - "Anker/Generic PETG-CF", - "BBL/Generic PETG-CF", - "Creality/Generic PETG-CF", - "Elegoo/Generic PETG-CF", - "Flashforge/Generic PETG-CF", - "OrcaArena/Generic PETG-CF", - "OrcaFilamentLibrary/Generic PETG-CF", - "Qidi/Generic PETG-CF", - "Tiertime/Generic PETG-CF" - ], - "OFobDOW5": [ - "Elegoo/Elegoo ASA", - "OrcaFilamentLibrary/Elegoo ASA" - ], - "OFocyw69": [ - "BBL/AliZ PETG", - "OrcaFilamentLibrary/AliZ PETG" - ], - "OFoiVqVM": [ - "BBL/Bambu PLA Basic", - "OrcaFilamentLibrary/Bambu PLA Basic" - ], - "OFojbdhR": [ - "Flashforge/Flashforge ABS-GF" - ], - "OForhBi4": [ - "Cubicon/Cubicon ABSk" - ], - "OFovEIbw": [ - "BBL/Bambu PETG HF", - "OrcaFilamentLibrary/Bambu PETG HF" - ], - "OFp4ETDP": [ - "Creality/CR-PLA" - ], - "OFp57RRC": [ - "Qidi/QIDI PPS-GF" - ], - "OFp9wdmf": [ - "Eryone/Eryone PA-CF" - ], - "OFpBlrvY": [ - "OrcaFilamentLibrary/Valment PLA Silk" - ], - "OFpDo5Ix": [ - "Cubicon/Cubicon ABS" - ], - "OFpPGSKG": [ - "BBL/SUNLU Silk PLA+", - "Flashforge/SUNLU Silk PLA+", - "OrcaFilamentLibrary/SUNLU Silk PLA+" - ], - "OFpPJSHE": [ - "Peopoly/Peopoly Lancer PETG-C" - ], - "OFpW4gdi": [ - "BBL/SUNLU PLA Matte", - "Flashforge/SUNLU PLA Matte", - "OrcaFilamentLibrary/SUNLU PLA Matte" - ], - "OFpdjFI3": [ - "BBL/BETA PLA UV Color Change" - ], - "OFpu74Qe": [ - "Snapmaker/Snapmaker PLA Eco" - ], - "OFpumhCM": [ - "Volumic/Volumic UNIVERSAL Ultra" - ], - "OFq0TY7C": [ - "Flashforge/Flashforge ASA-CF" - ], - "OFq8gfS4": [ - "OrcaFilamentLibrary/FilAr PETG Negro Azabache" - ], - "OFq9svOz": [ - "BBL/Generic PPS", - "Creality/Generic PPS", - "Tiertime/Generic PPS" - ], - "OFqFRiLb": [ - "Ratrig/Generic PLA BigNozzle" - ], - "OFqGRZyH": [ - "BBL/Numakers PLA+", - "OrcaFilamentLibrary/Numakers PLA+" - ], - "OFqINlYj": [ - "BBL/eSUN PLA+", - "Creality/eSUN PLA+", - "OrcaFilamentLibrary/eSUN PLA+" - ], - "OFqTwtXM": [ - "BBL/addnorth PETG rPETG Matte" - ], - "OFqcL5UF": [ - "Qidi/QIDI Support For PET/PA" - ], - "OFqtx549": [ - "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" - ], - "OFqw2PQA": [ - "BBL/Panchroma CoPE", - "OrcaFilamentLibrary/Panchroma CoPE", - "Snapmaker/Panchroma CoPE" - ], - "OFrFBEfd": [ - "OrcaFilamentLibrary/Eolas Prints PLA Neon" - ], - "OFrGJ4tR": [ - "Anycubic/Anycubic PLA Slik" - ], - "OFrKLeE3": [ - "BBL/Bambu PLA Metal", - "OrcaFilamentLibrary/Bambu PLA Metal" - ], - "OFrLiqiM": [ - "InfiMech/InfiMech PETG" - ], - "OFrM4hdm": [ - "Creality/CR-PLA Carbon" - ], - "OFrOh600": [ - "BBL/Panchroma PLA Matte", - "Creality/Panchroma PLA Matte", - "OrcaFilamentLibrary/Panchroma PLA Matte", - "Snapmaker/Panchroma PLA Matte" - ], - "OFrZDhVt": [ - "Flashforge/Flashforge ASA-GF" - ], - "OFrdZ0cK": [ - "Creality/eSUN PETG+HS" - ], - "OFrjacXf": [ - "Flashforge/Flashforge PET-CF" - ], - "OFrqMlGt": [ - "BBL/BETA PETG" - ], - "OFrr67nG": [ - "OrcaArena/Arena PC" - ], - "OFryjl35": [ - "Elegoo/Elegoo ASA-CF", - "OrcaFilamentLibrary/Elegoo ASA-CF" - ], - "OFsB2lxm": [ - "Elegoo/Elegoo PLA Matte", - "OrcaFilamentLibrary/Elegoo PLA Matte" - ], - "OFsD974q": [ - "Volumic/Volumic PETG Ultra (Performance)" - ], - "OFsDXRpS": [ - "OrcaFilamentLibrary/FilAr PLA Piel" - ], - "OFsFo7ms": [ - "Volumic/Volumic PP Ultra" - ], - "OFsFon5l": [ - "BBL/Generic HIPS", - "Chuanying/Generic HIPS", - "Creality/Generic HIPS", - "Flashforge/Generic HIPS", - "OrcaFilamentLibrary/Generic HIPS", - "Tiertime/Generic HIPS" - ], - "OFsHSVZc": [ - "BBL/Bambu Support W", - "OrcaFilamentLibrary/Bambu Support W" - ], - "OFsP8PKH": [ - "Z-Bolt/Generic ABS HT" - ], - "OFsRDvTM": [ - "Anycubic/Panchroma PLA", - "BBL/Panchroma PLA", - "OrcaFilamentLibrary/Panchroma PLA", - "Snapmaker/Panchroma PLA" - ], - "OFsXQXbs": [ - "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" - ], - "OFsijjtH": [ - "BBL/Generic PP-GF", - "OrcaFilamentLibrary/Generic PP-GF", - "Tiertime/Generic PP-GF" - ], - "OFsoykbm": [ - "OrcaFilamentLibrary/DREMC PA6-CF" - ], - "OFt0JbR7": [ - "Snapmaker/Snapmaker J1 PLA Metal" - ], - "OFt3HtlG": [ - "Qidi/QIDI ABS-GF" - ], - "OFt6e0US": [ - "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" - ], - "OFt7SngH": [ - "Snapmaker/Snapmaker J1 ASA" - ], - "OFtFtiS0": [ - "Snapmaker/Polymaker PETG Galaxy" - ], - "OFtGC1ye": [ - "Artillery/Artillery PA-CF" - ], - "OFtKeKa9": [ - "OrcaArena/Arena PLA Tough" - ], - "OFtOPlK6": [ - "OrcaArena/Arena PAHT-CF" - ], - "OFtOoWIj": [], - "OFtRn8X8": [ - "OrcaFilamentLibrary/FDplast SBS" - ], - "OFtdVZpV": [ - "BBL/addnorth PLA X-PLA" - ], - "OFtefokm": [ - "OrcaFilamentLibrary/FilAr PLA-mate Blanco" - ], - "OFtkLO6q": [ - "BBL/Bambu TPU 90A" - ], - "OFtndTHe": [ - "BBL/BETA PETG-CF" - ], - "OFtpXCCv": [ - "BBL/COEX ASA PRIME", - "OrcaFilamentLibrary/COEX ASA PRIME" - ], - "OFtr8eZw": [ - "OrcaFilamentLibrary/FDplast PLA" - ], - "OFtudokz": [ - "OrcaFilamentLibrary/Eolas Prints PLA Premium" - ], - "OFtybfNX": [ - "Snapmaker/Snapmaker PLA Metal" - ], - "OFu08yGN": [ - "Volumic/Volumic PETG Ultra carbone" - ], - "OFu0fjPJ": [ - "LH/LHS PC CF" - ], - "OFu1E4ur": [ - "Qidi/QIDI ASA-Aero" - ], - "OFu1evlr": [ - "BBL/Generic PCTG", - "Creality/Generic PCTG", - "OrcaFilamentLibrary/Generic PCTG", - "Ratrig/Generic PCTG", - "Tiertime/Generic PCTG" - ], - "OFuFEtKX": [ - "Flashforge/Flashforge PETG-CF" - ], - "OFuJ49uH": [ - "Qidi/QIDI PETG Basic" - ], - "OFuO0cAP": [ - "OrcaArena/Arena PETG-CF" - ], - "OFuUuIhR": [ - "Elegoo/Elegoo PETG-CF", - "OrcaFilamentLibrary/Elegoo PETG-CF" - ], - "OFuV79ru": [ - "Flashforge/Flashforge PA66-CF" - ], - "OFuWCQXN": [ - "BBL/COEX ABS PRIME", - "OrcaFilamentLibrary/COEX ABS PRIME" - ], - "OFuehn62": [ - "OrcaArena/Arena PLA Marble" - ], - "OFufTAK9": [ - "OrcaFilamentLibrary/FilAr PLA-mate Negro" - ], - "OFughwKn": [ - "Qidi/QIDI PLA Matte Basic" - ], - "OFujZSdh": [ - "Creality/Hyper PETG" - ], - "OFulOdT2": [ - "Flashforge/Generic TPU 85A" - ], - "OFurdQxc": [ - "OrcaFilamentLibrary/FilAr PETG Magenta" - ], - "OFusbWjj": [ - "Creality/Hyper PETG-CF" - ], - "OFuvOt0r": [ - "BBL/BETA PLA Basic" - ], - "OFuxH0Uz": [ - "Volumic/Volumic FLEX93 Ultra" - ], - "OFvD0Qqt": [ - "Ratrig/Generic PETG BigNozzle" - ], - "OFvDbkFq": [ - "Prusa/Prusament PC Blend" - ], - "OFvKUnLh": [ - "BBL/Bambu TPU 95A HF", - "OrcaFilamentLibrary/Bambu TPU 95A HF" - ], - "OFvLppPU": [ - "Creality/CR-Nylon" - ], - "OFvPPMxL": [ - "OrcaFilamentLibrary/FilAr PLA Verde FilAr" - ], - "OFvTVZc3": [ - "BBL/COEX PETG", - "OrcaFilamentLibrary/COEX PETG" - ], - "OFvVy7yo": [ - "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" - ], - "OFvaLVML": [ - "Flashforge/Flashforge HIPS" - ], - "OFvcIGee": [ - "BBL/addnorth TPU Pro Matte 85A" - ], - "OFvdZ2bx": [ - "Qidi/QIDI WOOD Rapido" - ], - "OFvgE0Zh": [ - "Elegoo/Elegoo PLA", - "OrcaFilamentLibrary/Elegoo PLA" - ], - "OFvmwTZE": [ - "Snapmaker/Snapmaker TPU 95A" - ], - "OFvrXuV7": [ - "BBL/PolyLite ASA", - "OrcaFilamentLibrary/PolyLite ASA" - ], - "OFvxIS9g": [ - "BBL/Fiberon PA12-CF10", - "Snapmaker/Fiberon PA12-CF10" - ], - "OFvxghTE": [ - "Chuanying/Generic HS PLA", - "Flashforge/Generic HS PLA", - "TwoTrees/Generic HS PLA" - ], - "OFvyB0Bz": [ - "BBL/PolyLite PLA Galaxy", - "Snapmaker/PolyLite PLA Galaxy" - ], - "OFvzvwCu": [ - "OrcaFilamentLibrary/Eolas Prints PLA High Speed" - ], - "OFw4WD4T": [ - "BBL/Fiberon PETG-rCF08" - ], - "OFwJ0qu2": [], - "OFwLBAGf": [ - "Qidi/HATCHBOX ABS" - ], - "OFwPrlCM": [ - "BBL/Bambu PETG Translucent", - "OrcaFilamentLibrary/Bambu PETG Translucent" - ], - "OFwRJ4g0": [ - "OrcaFilamentLibrary/NIT PLA" - ], - "OFwVVKEV": [ - "FlyingBear/Other TPU", - "InfiMech/Other TPU" - ], - "OFwaYjL6": [ - "BBL/Fiberon PA6-GF", - "OrcaFilamentLibrary/Fiberon PA6-GF" - ], - "OFwbsgWj": [ - "re3D/re3D PC" - ], - "OFwc74ck": [ - "BBL/BETA PLA Matte" - ], - "OFwhLMs4": [ - "Snapmaker/Snapmaker PLA SnapSpeed" - ], - "OFwjMiKL": [ - "Flashforge/Flashforge PETG Transparent" - ], - "OFwlZ7gH": [ - "Flashforge/Flashforge TPU-90A" - ], - "OFwu7IAG": [ - "BBL/COEX PCTG PRIME", - "OrcaFilamentLibrary/COEX PCTG PRIME" - ], - "OFwwAQnA": [ - "Prusa/Generic PC HF" - ], - "OFwyt1xt": [ - "Eryone/Eryone ASA-CF" - ], - "OFx0WlzS": [ - "Flashforge/Flashforge TPU-95A" - ], - "OFx8Lmsd": [ - "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" - ], - "OFxA1p01": [ - "BBL/Overture PLA Pro", - "OrcaFilamentLibrary/Overture PLA Pro" - ], - "OFxDHUX8": [ - "SeeMeCNC/SeeMeCNC PETG" - ], - "OFxJRuVF": [ - "Anycubic/Anycubic PC-GF" - ], - "OFxOHhZw": [ - "Elegoo/Elegoo ABS", - "OrcaFilamentLibrary/Elegoo ABS" - ], - "OFxUwUeW": [ - "BBL/SUNLU PLA Marble", - "Flashforge/SUNLU PLA Marble", - "OrcaFilamentLibrary/SUNLU PLA Marble" - ], - "OFxYB4Sw": [ - "Snapmaker/Snapmaker J1 PETG-CF" - ], - "OFxe4rXr": [ - "BBL/PolyTerra PLA Marble", - "Snapmaker/PolyTerra PLA Marble" - ], - "OFxqf79Q": [ - "BBL/BETA PETG HF" - ], - "OFy02QHU": [ - "BBL/PolyLite PLA Translucent", - "Snapmaker/PolyLite PLA Translucent" - ], - "OFy14TRA": [ - "Snapmaker/Snapmaker J1 ABS" - ], - "OFy3sW6j": [ - "WonderMaker/WonderMaker ASA" - ], - "OFy48TOp": [ - "Flashforge/Generic TPU-95A" - ], - "OFy8tYJE": [ - "Cubicon/Cubicon ABS-A100" - ], - "OFyFyLIp": [ - "SeeMeCNC/SeeMeCNC TPU" - ], - "OFyHgT60": [ - "OrcaArena/Arena PLA Sparkle" - ], - "OFyJjkek": [ - "BBL/addnorth TPU Pro Matte 95A" - ], - "OFyLWVF3": [ - "Creality/Generic PETG-GF" - ], - "OFyPG8v2": [ - "Snapmaker/Snapmaker Dual PLA Eco" - ], - "OFyPTnSk": [ - "BBL/BETA PETG Heat Color Change" - ], - "OFyQwdaM": [ - "Volumic/Volumic ABS Ultra (Performance)" - ], - "OFyRCIMh": [ - "FlyingBear/Other PC", - "InfiMech/Other PC" - ], - "OFyUJI3q": [ - "Volumic/Volumic ABS Ultra" - ], - "OFybzvQN": [ - "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" - ], - "OFyhjiNs": [ - "Snapmaker/Snapmaker PVA" - ], - "OFyj3m13": [ - "Snapmaker/Snapmaker Dual PLA Silk" - ], - "OFymnal9": [ - "Sovol/Sovol Zero PETG HS Nozzle" - ], - "OFyoBZdm": [ - "LH/LHS PLA" - ], - "OFyreocX": [ - "Tiertime/Tiertime PVA" - ], - "OFyrnlUn": [ - "Snapmaker/Snapmaker J1 TPU" - ], - "OFysxCep": [ - "OrcaFilamentLibrary/FilAr PETG Coral" - ], - "OFyxayW4": [ - "BBL/AliZ PLA", - "OrcaFilamentLibrary/AliZ PLA" - ], - "OFz1a1fy": [ - "BBL/BETA PETG Metallic" - ], - "OFz5oHgf": [ - "MagicMaker/Generic PEEK" - ], - "OFzAWsca": [ - "Qidi/Qidi TPU 95A-HF" - ], - "OFzB4uOs": [ - "Sovol/Sovol Zero PLA Basic HS Nozzle" - ], - "OFzRtFM9": [ - "Prusa/Generic ASA HF" - ], - "OFzS7zt4": [ - "Anycubic/Anycubic PA" - ], - "OFzY7N3Z": [ - "Artillery/Artillery PLA" - ], - "OFzaq7Yg": [ - "BBL/BETA TPU 98A" - ], - "OFzk5oAo": [ - "BBL/addnorth ABS rABS" - ], - "OFzrUUxc": [], - "OFztQ7rO": [ - "LH/LHS ABS" - ], - "OFzwA5Z9": [ - "Flashforge/FusRock PET-GF" - ], - "OFzyIxba": [ - "BBL/Bambu PVA", - "OrcaFilamentLibrary/Bambu PVA" - ] - }, - "instantiated_with_id": [ - "Afinia/Afinia ABS+@HS", - "Afinia/Afinia ABS@HS", - "Afinia/Afinia PLA@HS", - "Afinia/Afinia TPU@HS", - "Afinia/Afinia Value ABS@HS", - "Afinia/Afinia Value PLA@HS", - "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic ABS @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic ASA @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PA6-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PAHT-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PC-GF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PEBA 95A @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PEBA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PET-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PETG-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Neo 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Plus 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 2 Pro 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.2 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra Neo 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.25 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Glow @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA High Speed @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Luminous @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Matte @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA SE @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA Silk @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA Slik @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA Translucent @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PLA+ @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PLA-CF @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic PVA @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic PVA @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic TPU 95A @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic TPU 95A @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.6 nozzle", - "Anycubic/Anycubic TPU @Anycubic Kobra 3 Max 0.8 nozzle", - "Anycubic/Anycubic TPU @Anycubic Kobra S1 0.4 nozzle", - "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.6 nozzle", - "Anycubic/Anycubic TPU for ACE @Anycubic Kobra S1 Max 0.8 nozzle", - "Anycubic/Anycubic TPU for ACE @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Fiberon PA6-CF20 @Anycubic Kobra S1", - "Anycubic/Generic ABS @Anycubic", - "Anycubic/Generic ABS @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Generic ASA @Anycubic", - "Anycubic/Generic PA @Anycubic", - "Anycubic/Generic PA-CF @Anycubic", - "Anycubic/Generic PC @Anycubic", - "Anycubic/Generic PETG @Anycubic", - "Anycubic/Generic PETG @Anycubic Kobra S1 Max 0.4 nozzle", - "Anycubic/Generic PETG @Anycubic Kobra X 0.4 nozzle", - "Anycubic/Generic PETG Basic @Anycubic Kobra 3 Max 0.4 nozzle", - "Anycubic/Generic PLA @Anycubic", - "Anycubic/Generic PLA-CF @Anycubic", - "Anycubic/Generic PVA @Anycubic", - "Anycubic/Generic TPU @Anycubic", - "Anycubic/Generic TPU @Anycubic Kobra 3 0.4 nozzle", - "Anycubic/Panchroma PLA @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro @Anycubic Kobra S1", - "Anycubic/Polymaker PLA Pro Metallic @Anycubic Kobra S1", - "Artillery/Artillery ABS", - "Artillery/Artillery ABS @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery ABS @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery ABS @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery ABS @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery ASA @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery ASA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery ASA @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery ASA @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PA-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PC @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PET @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PET @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PET @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PET @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PETG", - "Artillery/Artillery PETG @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PETG @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PETG @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PETG @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PETG Basic @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PETG-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Basic", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Basic @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Basic+ @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Matte", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Matte @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Silk", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PLA Silk @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery PLA Tough", - "Artillery/Artillery PLA-CF @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PVA @Artillery M1 Pro 0.2 nozzle", - "Artillery/Artillery PVA @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery PVA @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery PVA @Artillery M1 Pro 0.8 nozzle", - "Artillery/Artillery TPU", - "Artillery/Artillery TPU @Artillery M1 Pro 0.4 nozzle", - "Artillery/Artillery TPU @Artillery M1 Pro 0.6 nozzle", - "Artillery/Artillery TPU @Artillery M1 Pro 0.8 nozzle", - "Artillery/Generic ABS @Artillery", - "Artillery/Generic ASA @Artillery", - "Artillery/Generic PETG @Artillery", - "Artillery/Generic PLA @Artillery", - "Artillery/Generic PLA-CF @Artillery", - "Artillery/Generic TPU @Artillery", - "BBL/Generic SBS", - "BBL/addnorth ABS rABS", - "BBL/addnorth PA Adura", - "BBL/addnorth PA Adura FDA", - "BBL/addnorth PA-CF Adura X", - "BBL/addnorth PA6 Addlantis", - "BBL/addnorth PC BLend HT LCF", - "BBL/addnorth PETG Base", - "BBL/addnorth PETG ESD", - "BBL/addnorth PETG Economy", - "BBL/addnorth PETG Flame v0", - "BBL/addnorth PETG PRO Matte", - "BBL/addnorth PETG rPETG Matte", - "BBL/addnorth PETG-CF Rigid X", - "BBL/addnorth PLA E-PLA", - "BBL/addnorth PLA Economy", - "BBL/addnorth PLA HT-PLA PRO Matte", - "BBL/addnorth PLA Premium Silk", - "BBL/addnorth PLA Textura", - "BBL/addnorth PLA Wood", - "BBL/addnorth PLA X-PLA", - "BBL/addnorth PLA X-PLA High Speed", - "BBL/addnorth PLA rPLA RE-ADD", - "BBL/addnorth PLA-CF Carbon Fiber", - "BBL/addnorth PVDF Adamant S1", - "BBL/addnorth TPU EasyFlex", - "BBL/addnorth TPU Pro Matte 85A", - "BBL/addnorth TPU Pro Matte 95A", - "Blocks/Generic ABS @Blocks", - "Blocks/Generic ASA @Blocks", - "Blocks/Generic ASA-CF @Blocks", - "Blocks/Generic PA @Blocks", - "Blocks/Generic PA-CF @Blocks", - "Blocks/Generic PC @Blocks", - "Blocks/Generic PETG @Blocks", - "Blocks/Generic PLA @Blocks", - "Blocks/Generic PLA-CF @Blocks", - "Blocks/Generic PVA @Blocks", - "Blocks/Generic TPU @Blocks", - "CONSTRUCT3D/Generic High Flow PETG @C1", - "CONSTRUCT3D/Generic PETG @C1", - "CONSTRUCT3D/Generic PLA @C1", - "Chuanying/Generic ABS @Chuanying", - "Chuanying/Generic ASA @Chuanying", - "Chuanying/Generic HIPS @Chuanying", - "Chuanying/Generic HS PLA @Chuanying", - "Chuanying/Generic PETG @Chuanying", - "Chuanying/Generic PETG-CF10 @Chuanying", - "Chuanying/Generic PLA @Chuanying", - "Chuanying/Generic PLA-CF10 @Chuanying", - "Chuanying/Generic PLA-Silk @Chuanying", - "Chuanying/Generic PVA @Chuanying", - "Chuanying/Generic TPU @Chuanying", - "Co Print/Generic ABS @CoPrint", - "Co Print/Generic PETG @CoPrint", - "Co Print/Generic PLA @CoPrint", - "Co Print/Generic TPU @CoPrint", - "CoLiDo/CoLiDo ABS @CoLiDo SR1", - "CoLiDo/CoLiDo PETG @CoLiDo SR1", - "CoLiDo/CoLiDo PLA @CoLiDo SR1", - "CoLiDo/CoLiDo PLA Silk @CoLiDo SR1", - "CoLiDo/CoLiDo PLA+ @CoLiDo DIY 4.0 V2", - "CoLiDo/Generic ABS @CoLiDo DIY 4.0", - "CoLiDo/Generic ABS @CoLiDo X16", - "CoLiDo/Generic PETG @CoLiDo DIY 4.0", - "CoLiDo/Generic PETG @CoLiDo X16", - "CoLiDo/Generic PLA @CoLiDo DIY 4.0", - "CoLiDo/Generic PLA @CoLiDo X16", - "CoLiDo/Generic TPU @CoLiDo DIY 4.0", - "CoLiDo/Generic TPU @CoLiDo X16", - "Comgrow/Generic ABS @Comgrow", - "Comgrow/Generic PETG @Comgrow", - "Comgrow/Generic PLA @Comgrow", - "Creality/CR-ABS @Ender-3 V4-all", - "Creality/CR-ABS @Hi-all", - "Creality/CR-ABS @K1 Max_CFS-C-all", - "Creality/CR-ABS @K1 SE-all", - "Creality/CR-ABS @K1 SE_CFS-C-all", - "Creality/CR-ABS @K1C-all", - "Creality/CR-ABS @K1C_CFS-C-all", - "Creality/CR-ABS @K1_CFS-C-all", - "Creality/CR-ABS @K2 Plus-all", - "Creality/CR-ABS @K2 Pro-all", - "Creality/CR-ABS @K2 SE-all", - "Creality/CR-ABS @K2-all", - "Creality/CR-Nylon @K1 Max_CFS-C-all", - "Creality/CR-Nylon @K1C-all", - "Creality/CR-Nylon @K1C_CFS-C-all", - "Creality/CR-Nylon @K1_CFS-C-all", - "Creality/CR-Nylon @K2 Plus-all", - "Creality/CR-PETG @Ender-3 V4-all", - "Creality/CR-PETG @Hi-all", - "Creality/CR-PETG @K1 Max_CFS-C-all", - "Creality/CR-PETG @K1 SE-all", - "Creality/CR-PETG @K1 SE_CFS-C-all", - "Creality/CR-PETG @K1C-all", - "Creality/CR-PETG @K1C_CFS-C-all", - "Creality/CR-PETG @K1_CFS-C-all", - "Creality/CR-PETG @K2 Plus-all", - "Creality/CR-PETG @K2 Pro-all", - "Creality/CR-PETG @K2 SE-all", - "Creality/CR-PETG @K2-all", - "Creality/CR-PETG @SPARKX i7-all", - "Creality/CR-PLA @Ender-3 V4-all", - "Creality/CR-PLA @Hi-all", - "Creality/CR-PLA @K1 Max_CFS-C-all", - "Creality/CR-PLA @K1 SE-all", - "Creality/CR-PLA @K1 SE_CFS-C-all", - "Creality/CR-PLA @K1C-all", - "Creality/CR-PLA @K1C_CFS-C-all", - "Creality/CR-PLA @K1_CFS-C-all", - "Creality/CR-PLA @K2 Plus-all", - "Creality/CR-PLA @K2 Pro-all", - "Creality/CR-PLA @K2 SE-all", - "Creality/CR-PLA @K2-all", - "Creality/CR-PLA @SPARKX i7-all", - "Creality/CR-PLA Carbon @K1 Max_CFS-C-all", - "Creality/CR-PLA Carbon @K1C-all", - "Creality/CR-PLA Carbon @K1C_CFS-C-all", - "Creality/CR-PLA Carbon @K1_CFS-C-all", - "Creality/CR-PLA Carbon @K2 Plus-all", - "Creality/CR-PLA Fluo @K1 Max_CFS-C-all", - "Creality/CR-PLA Fluo @K1C-all", - "Creality/CR-PLA Fluo @K1C_CFS-C-all", - "Creality/CR-PLA Fluo @K1_CFS-C-all", - "Creality/CR-PLA Fluo @K2 Plus-all", - "Creality/CR-PLA Fluo @K2 Pro-all", - "Creality/CR-PLA Fluo @K2-all", - "Creality/CR-PLA Fluo @SPARKX i7-all", - "Creality/CR-PLA Matte @Ender-3 V4-all", - "Creality/CR-PLA Matte @K1 Max_CFS-C-all", - "Creality/CR-PLA Matte @K1C-all", - "Creality/CR-PLA Matte @K1C_CFS-C-all", - "Creality/CR-PLA Matte @K1_CFS-C-all", - "Creality/CR-PLA Matte @K2 Plus-all", - "Creality/CR-PLA Matte @K2 Pro-all", - "Creality/CR-PLA Matte @K2-all", - "Creality/CR-PLA Matte @SPARKX i7-all", - "Creality/CR-Silk @Ender-3 V4-all", - "Creality/CR-Silk @Hi-all", - "Creality/CR-Silk @K1 Max_CFS-C-all", - "Creality/CR-Silk @K1 SE-all", - "Creality/CR-Silk @K1 SE_CFS-C-all", - "Creality/CR-Silk @K1C-all", - "Creality/CR-Silk @K1C_CFS-C-all", - "Creality/CR-Silk @K1_CFS-C-all", - "Creality/CR-Silk @K2 Plus-all", - "Creality/CR-Silk @K2 Pro-all", - "Creality/CR-Silk @K2 SE-all", - "Creality/CR-Silk @K2-all", - "Creality/CR-Silk @SPARKX i7-all", - "Creality/CR-TPU @K1 Max_CFS-C-all", - "Creality/CR-TPU @K1C-all", - "Creality/CR-TPU @K1C_CFS-C-all", - "Creality/CR-TPU @K1_CFS-C-all", - "Creality/CR-TPU @K2 Plus-all", - "Creality/CR-TPU @K2 Pro-all", - "Creality/CR-TPU @K2-all", - "Creality/CR-TPU @SPARKX i7-all", - "Creality/CR-Wood @K1 Max_CFS-C-all", - "Creality/CR-Wood @K1C-all", - "Creality/CR-Wood @K1C_CFS-C-all", - "Creality/CR-Wood @K1_CFS-C-all", - "Creality/CR-Wood @K2 Plus-all", - "Creality/Creality Hyper ABS @Ender-5Max-all", - "Creality/Creality Hyper PLA @Ender-5Max-all", - "Creality/Creality Hyper PLA-CF @Ender-5Max-all", - "Creality/Creality Silk PLA @Ender-5Max-all", - "Creality/EN-PLA+ @K1 Max_CFS-C-all", - "Creality/EN-PLA+ @K1C-all", - "Creality/EN-PLA+ @K1C_CFS-C-all", - "Creality/EN-PLA+ @K1_CFS-C-all", - "Creality/EN-PLA+ @K2 Plus-all", - "Creality/EN-PLA+ @K2 Pro-all", - "Creality/EN-PLA+ @K2-all", - "Creality/EN-PLA+ @SPARKX i7-all", - "Creality/ENDER FAST PLA @Hi-all", - "Creality/ENDER FAST PLA @K2 Plus-all", - "Creality/ENDER FAST PLA @K2 Pro-all", - "Creality/ENDER FAST PLA @K2-all", - "Creality/ENDER FAST PLA @SPARKX i7-all", - "Creality/Ender-PLA @Ender-3 V4-all", - "Creality/Ender-PLA @Hi-all", - "Creality/Ender-PLA @K1 Max_CFS-C-all", - "Creality/Ender-PLA @K1C-all", - "Creality/Ender-PLA @K1C_CFS-C-all", - "Creality/Ender-PLA @K1_CFS-C-all", - "Creality/Ender-PLA @K2 Plus-all", - "Creality/Ender-PLA @K2 Pro-all", - "Creality/Ender-PLA @K2-all", - "Creality/Ender-PLA @SPARKX i7-all", - "Creality/Generic ABS @Creality", - "Creality/Generic ABS @Creality Ender-5Max-all", - "Creality/Generic ABS @Ender-3 V4-all", - "Creality/Generic ABS @Hi-all", - "Creality/Generic ABS @K1 Max_CFS-C-all", - "Creality/Generic ABS @K1 SE-all", - "Creality/Generic ABS @K1 SE_CFS-C-all", - "Creality/Generic ABS @K1C-all", - "Creality/Generic ABS @K1C_CFS-C-all", - "Creality/Generic ABS @K1_CFS-C-all", - "Creality/Generic ABS @K2 Plus-all", - "Creality/Generic ABS @K2 Pro-all", - "Creality/Generic ABS @K2 SE-all", - "Creality/Generic ABS @K2-all", - "Creality/Generic ASA @Creality", - "Creality/Generic ASA @Creality Ender-5Max-all", - "Creality/Generic ASA @K1 Max_CFS-C-all", - "Creality/Generic ASA @K1 SE-all", - "Creality/Generic ASA @K1 SE_CFS-C-all", - "Creality/Generic ASA @K1C-all", - "Creality/Generic ASA @K1C_CFS-C-all", - "Creality/Generic ASA @K1_CFS-C-all", - "Creality/Generic ASA @K2 Plus-all", - "Creality/Generic ASA @K2 Pro-all", - "Creality/Generic ASA @K2 SE-all", - "Creality/Generic ASA @K2-all", - "Creality/Generic ASA-CF @Creality Hi-all", - "Creality/Generic ASA-CF @K2 Plus-all", - "Creality/Generic BVOH @Hi-all", - "Creality/Generic BVOH @K1 Max_CFS-C-all", - "Creality/Generic BVOH @K1C-all", - "Creality/Generic BVOH @K1C_CFS-C-all", - "Creality/Generic BVOH @K1_CFS-C-all", - "Creality/Generic BVOH @K2 Plus-all", - "Creality/Generic BVOH @K2 Pro-all", - "Creality/Generic BVOH @K2-all", - "Creality/Generic HIPS @K1 Max_CFS-C-all", - "Creality/Generic HIPS @K1C-all", - "Creality/Generic HIPS @K1C_CFS-C-all", - "Creality/Generic HIPS @K1_CFS-C-all", - "Creality/Generic HIPS @K2 Plus-all", - "Creality/Generic PA @Creality Ender-5Max-all", - "Creality/Generic PA @K1 Max_CFS-C-all", - "Creality/Generic PA @K1C-all", - "Creality/Generic PA @K1C_CFS-C-all", - "Creality/Generic PA @K1_CFS-C-all", - "Creality/Generic PA @K2 Plus-all", - "Creality/Generic PA @K2 Pro-all", - "Creality/Generic PA @K2-all", - "Creality/Generic PA-CF @Creality", - "Creality/Generic PA-CF @K1 Max_CFS-C-all", - "Creality/Generic PA-CF @K1C-all", - "Creality/Generic PA-CF @K1C_CFS-C-all", - "Creality/Generic PA-CF @K1_CFS-C-all", - "Creality/Generic PA-CF @K2 Plus-all", - "Creality/Generic PA12-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K1 Max_CFS-C-all", - "Creality/Generic PA6-CF @K1C-all", - "Creality/Generic PA6-CF @K1C_CFS-C-all", - "Creality/Generic PA6-CF @K1_CFS-C-all", - "Creality/Generic PA6-CF @K2 Plus-all", - "Creality/Generic PA6-CF @K2 Pro-all", - "Creality/Generic PA6-GF @K2 Plus-all", - "Creality/Generic PA612-CF @K2 Plus-all", - "Creality/Generic PA612-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K1 Max_CFS-C-all", - "Creality/Generic PAHT-CF @K1C-all", - "Creality/Generic PAHT-CF @K1C_CFS-C-all", - "Creality/Generic PAHT-CF @K1_CFS-C-all", - "Creality/Generic PAHT-CF @K2 Plus-all", - "Creality/Generic PAHT-CF @K2 Pro-all", - "Creality/Generic PAHT-CF @K2-all", - "Creality/Generic PC @K1 Max_CFS-C-all", - "Creality/Generic PC @K1C-all", - "Creality/Generic PC @K1C_CFS-C-all", - "Creality/Generic PC @K1_CFS-C-all", - "Creality/Generic PC @K2 Plus-all", - "Creality/Generic PC @K2 Pro-all", - "Creality/Generic PCTG @K2 Plus-all", - "Creality/Generic PET @K1 Max_CFS-C-all", - "Creality/Generic PET @K1C-all", - "Creality/Generic PET @K1C_CFS-C-all", - "Creality/Generic PET @K1_CFS-C-all", - "Creality/Generic PET @K2 Plus-all", - "Creality/Generic PET @K2 Pro-all", - "Creality/Generic PET @K2-all", - "Creality/Generic PET-CF @K1 Max_CFS-C-all", - "Creality/Generic PET-CF @K1C-all", - "Creality/Generic PET-CF @K1C_CFS-C-all", - "Creality/Generic PET-CF @K1_CFS-C-all", - "Creality/Generic PET-CF @K2 Plus-all", - "Creality/Generic PET-CF @K2 Pro-all", - "Creality/Generic PETG @Creality", - "Creality/Generic PETG @Creality Ender-5Max-all", - "Creality/Generic PETG @Ender-3 V4-all", - "Creality/Generic PETG @Hi-all", - "Creality/Generic PETG @K1 Max_CFS-C-all", - "Creality/Generic PETG @K1 SE-all", - "Creality/Generic PETG @K1 SE_CFS-C-all", - "Creality/Generic PETG @K1C-all", - "Creality/Generic PETG @K1C_CFS-C-all", - "Creality/Generic PETG @K1_CFS-C-all", - "Creality/Generic PETG @K2 Plus-all", - "Creality/Generic PETG @K2 Pro-all", - "Creality/Generic PETG @K2 SE-all", - "Creality/Generic PETG @K2-all", - "Creality/Generic PETG @SPARKX i7-all", - "Creality/Generic PETG-CF @Creality Hi-all", - "Creality/Generic PETG-CF @K1 Max_CFS-C-all", - "Creality/Generic PETG-CF @K1C-all", - "Creality/Generic PETG-CF @K1C_CFS-C-all", - "Creality/Generic PETG-CF @K1_CFS-C-all", - "Creality/Generic PETG-CF @K2 Plus-all", - "Creality/Generic PETG-CF @K2 Pro-all", - "Creality/Generic PETG-CF @K2-all", - "Creality/Generic PETG-CF @SPARKX i7-all", - "Creality/Generic PETG-GF @K2 Plus-all", - "Creality/Generic PETG-GF @K2 Pro-all", - "Creality/Generic PETG-GF @K2-all", - "Creality/Generic PLA @Creality", - "Creality/Generic PLA @Creality Ender-5Max-all", - "Creality/Generic PLA @Ender-3 V4-all", - "Creality/Generic PLA @Hi-all", - "Creality/Generic PLA @K1 Max_CFS-C-all", - "Creality/Generic PLA @K1 SE-all", - "Creality/Generic PLA @K1 SE_CFS-C-all", - "Creality/Generic PLA @K1C-all", - "Creality/Generic PLA @K1C_CFS-C-all", - "Creality/Generic PLA @K1_CFS-C-all", - "Creality/Generic PLA @K2 Plus-all", - "Creality/Generic PLA @K2 Pro-all", - "Creality/Generic PLA @K2 SE-all", - "Creality/Generic PLA @K2-all", - "Creality/Generic PLA @SPARKX i7-all", - "Creality/Generic PLA HF @Creality", - "Creality/Generic PLA High Speed @Creality Ender-3V3-all", - "Creality/Generic PLA High Speed @Creality Hi-all", - "Creality/Generic PLA High Speed @Creality K1-all", - "Creality/Generic PLA High Speed @Creality K2-all", - "Creality/Generic PLA Matte @Creality Ender-3V3-all", - "Creality/Generic PLA Matte @Creality Hi-all", - "Creality/Generic PLA Matte @Creality K1-all", - "Creality/Generic PLA Matte @Creality K2-all", - "Creality/Generic PLA Silk @Creality Ender-3V3-all", - "Creality/Generic PLA Silk @Creality Hi-all", - "Creality/Generic PLA Silk @Creality K1-all", - "Creality/Generic PLA Silk @Creality K2-all", - "Creality/Generic PLA Wood @Creality Hi-all", - "Creality/Generic PLA-CF @Creality", - "Creality/Generic PLA-CF @Ender-3 V4-all", - "Creality/Generic PLA-CF @K1 Max_CFS-C-all", - "Creality/Generic PLA-CF @K1 SE-all", - "Creality/Generic PLA-CF @K1 SE_CFS-C-all", - "Creality/Generic PLA-CF @K1C-all", - "Creality/Generic PLA-CF @K1C_CFS-C-all", - "Creality/Generic PLA-CF @K1_CFS-C-all", - "Creality/Generic PLA-CF @K2 Plus-all", - "Creality/Generic PLA-CF @K2 Pro-all", - "Creality/Generic PLA-CF @K2 SE-all", - "Creality/Generic PLA-CF @K2-all", - "Creality/Generic PLA-CF @SPARKX i7-all", - "Creality/Generic PLA-Silk @Ender-3 V4-all", - "Creality/Generic PLA-Silk @Hi-all", - "Creality/Generic PLA-Silk @K1 Max_CFS-C-all", - "Creality/Generic PLA-Silk @K1 SE-all", - "Creality/Generic PLA-Silk @K1 SE_CFS-C-all", - "Creality/Generic PLA-Silk @K1C-all", - "Creality/Generic PLA-Silk @K1C_CFS-C-all", - "Creality/Generic PLA-Silk @K1_CFS-C-all", - "Creality/Generic PLA-Silk @K2 Plus-all", - "Creality/Generic PLA-Silk @K2 Pro-all", - "Creality/Generic PLA-Silk @K2 SE-all", - "Creality/Generic PLA-Silk @K2-all", - "Creality/Generic PLA-Silk @SPARKX i7-all", - "Creality/Generic PP @K1 Max_CFS-C-all", - "Creality/Generic PP @K1C-all", - "Creality/Generic PP @K1C_CFS-C-all", - "Creality/Generic PP @K1_CFS-C-all", - "Creality/Generic PP @K2 Plus-all", - "Creality/Generic PP @K2 Pro-all", - "Creality/Generic PP @K2-all", - "Creality/Generic PP-CF @K2 Plus-all", - "Creality/Generic PPS @K1 Max_CFS-C-all", - "Creality/Generic PPS @K1C-all", - "Creality/Generic PPS @K1C_CFS-C-all", - "Creality/Generic PPS @K1_CFS-C-all", - "Creality/Generic PPS @K2 Plus-all", - "Creality/Generic PPS-CF @K1 Max_CFS-C-all", - "Creality/Generic PPS-CF @K1C-all", - "Creality/Generic PPS-CF @K1C_CFS-C-all", - "Creality/Generic PPS-CF @K1_CFS-C-all", - "Creality/Generic PPS-CF @K2 Plus-all", - "Creality/Generic PVA @Hi-all", - "Creality/Generic PVA @K1 Max_CFS-C-all", - "Creality/Generic PVA @K1C-all", - "Creality/Generic PVA @K1C_CFS-C-all", - "Creality/Generic PVA @K1_CFS-C-all", - "Creality/Generic PVA @K2 Plus-all", - "Creality/Generic PVA @K2 Pro-all", - "Creality/Generic PVA @K2-all", - "Creality/Generic Speed PLA @Creality HF", - "Creality/Generic Support for PA @K2 Plus-all", - "Creality/Generic Support for PLA @K2 Plus-all", - "Creality/Generic TPU 64D @K2 Plus-all", - "Creality/Generic TPU 64D @SPARKX i7-all", - "Creality/Generic TPU @Creality", - "Creality/Generic TPU @Creality Ender-5Max-all", - "Creality/Generic TPU @Ender-3 V4-all", - "Creality/Generic TPU @K1 Max_CFS-C-all", - "Creality/Generic TPU @K1 SE-all", - "Creality/Generic TPU @K1 SE_CFS-C-all", - "Creality/Generic TPU @K1C-all", - "Creality/Generic TPU @K1C_CFS-C-all", - "Creality/Generic TPU @K1_CFS-C-all", - "Creality/Generic TPU @K2 Plus-all", - "Creality/Generic TPU @K2 Pro-all", - "Creality/Generic TPU @K2 SE-all", - "Creality/Generic TPU @K2-all", - "Creality/Generic TPU @SPARKX i7-all", - "Creality/HP Ultra PLA @K1 Max_CFS-C-all", - "Creality/HP Ultra PLA @K1C-all", - "Creality/HP Ultra PLA @K1C_CFS-C-all", - "Creality/HP Ultra PLA @K1_CFS-C-all", - "Creality/HP Ultra PLA @K2 Plus-all", - "Creality/HP-ASA @K1 Max_CFS-C-all", - "Creality/HP-ASA @K1C-all", - "Creality/HP-ASA @K1C_CFS-C-all", - "Creality/HP-ASA @K1_CFS-C-all", - "Creality/HP-ASA @K2 Plus-all", - "Creality/HP-ASA @K2 Pro-all", - "Creality/HP-ASA @K2 SE-all", - "Creality/HP-ASA @K2-all", - "Creality/HP-TPU @Ender-3 V4-all", - "Creality/HP-TPU @Hi-all", - "Creality/HP-TPU @K1 Max_CFS-C-all", - "Creality/HP-TPU @K1 SE-all", - "Creality/HP-TPU @K1 SE_CFS-C-all", - "Creality/HP-TPU @K1C-all", - "Creality/HP-TPU @K1C_CFS-C-all", - "Creality/HP-TPU @K1_CFS-C-all", - "Creality/HP-TPU @K2 Plus-all", - "Creality/HP-TPU @K2 Pro-all", - "Creality/HP-TPU @K2 SE-all", - "Creality/HP-TPU @K2-all", - "Creality/HP-TPU @SPARKX i7-all", - "Creality/Hyper ABS @Ender-3 V4-all", - "Creality/Hyper ABS @Hi-all", - "Creality/Hyper ABS @K1 Max_CFS-C-all", - "Creality/Hyper ABS @K1 SE-all", - "Creality/Hyper ABS @K1 SE_CFS-C-all", - "Creality/Hyper ABS @K1C-all", - "Creality/Hyper ABS @K1C_CFS-C-all", - "Creality/Hyper ABS @K1_CFS-C-all", - "Creality/Hyper ABS @K2 Plus-all", - "Creality/Hyper ABS @K2 Pro-all", - "Creality/Hyper ABS @K2 SE-all", - "Creality/Hyper ABS @K2-all", - "Creality/Hyper L-W PLA @Hi-all", - "Creality/Hyper L-W PLA @K1 Max_CFS-C-all", - "Creality/Hyper L-W PLA @K1 SE-all", - "Creality/Hyper L-W PLA @K1 SE_CFS-C-all", - "Creality/Hyper L-W PLA @K1C-all", - "Creality/Hyper L-W PLA @K1C_CFS-C-all", - "Creality/Hyper L-W PLA @K1_CFS-C-all", - "Creality/Hyper L-W PLA @K2 Plus-all", - "Creality/Hyper L-W PLA @K2 Pro-all", - "Creality/Hyper L-W PLA @K2-all", - "Creality/Hyper Luminous @Hi-all", - "Creality/Hyper Luminous @K1C-all", - "Creality/Hyper Luminous @K2 Plus-all", - "Creality/Hyper Luminous @K2 Pro-all", - "Creality/Hyper Luminous @K2-all", - "Creality/Hyper Luminous @SPARKX i7-all", - "Creality/Hyper Marble @Hi-all", - "Creality/Hyper Marble @K1 Max_CFS-C-all", - "Creality/Hyper Marble @K1C-all", - "Creality/Hyper Marble @K1C_CFS-C-all", - "Creality/Hyper Marble @K1_CFS-C-all", - "Creality/Hyper Marble @K2 Plus-all", - "Creality/Hyper Marble @K2 Pro-all", - "Creality/Hyper Marble @K2 SE-all", - "Creality/Hyper Marble @K2-all", - "Creality/Hyper Marble @SPARKX i7-all", - "Creality/Hyper PA6-CF @K2 Plus-all", - "Creality/Hyper PA6-CF @K2 Pro-all", - "Creality/Hyper PA612-CF @K2 Plus-all", - "Creality/Hyper PA612-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K1 Max_CFS-C-all", - "Creality/Hyper PAHT-CF @K1C-all", - "Creality/Hyper PAHT-CF @K1C_CFS-C-all", - "Creality/Hyper PAHT-CF @K1_CFS-C-all", - "Creality/Hyper PAHT-CF @K2 Plus-all", - "Creality/Hyper PAHT-CF @K2 Pro-all", - "Creality/Hyper PAHT-CF @K2-all", - "Creality/Hyper PC @K2 Plus-all", - "Creality/Hyper PC @K2 Pro-all", - "Creality/Hyper PETG @Ender-3 V4-all", - "Creality/Hyper PETG @Hi-all", - "Creality/Hyper PETG @K1 Max_CFS-C-all", - "Creality/Hyper PETG @K1 SE-all", - "Creality/Hyper PETG @K1 SE_CFS-C-all", - "Creality/Hyper PETG @K1C-all", - "Creality/Hyper PETG @K1C_CFS-C-all", - "Creality/Hyper PETG @K1_CFS-C-all", - "Creality/Hyper PETG @K2 Plus-all", - "Creality/Hyper PETG @K2 Pro-all", - "Creality/Hyper PETG @K2 SE-all", - "Creality/Hyper PETG @K2-all", - "Creality/Hyper PETG @SPARKX i7-all", - "Creality/Hyper PETG-CF @K1 Max_CFS-C-all", - "Creality/Hyper PETG-CF @K1C-all", - "Creality/Hyper PETG-CF @K1C_CFS-C-all", - "Creality/Hyper PETG-CF @K1_CFS-C-all", - "Creality/Hyper PETG-CF @K2 Plus-all", - "Creality/Hyper PETG-CF @K2 Pro-all", - "Creality/Hyper PETG-CF @K2-all", - "Creality/Hyper PETG-CF @SPARKX i7-all", - "Creality/Hyper PETG-GF @K1C-all", - "Creality/Hyper PETG-GF @K2 Plus-all", - "Creality/Hyper PETG-GF @K2 Pro-all", - "Creality/Hyper PETG-GF @K2-all", - "Creality/Hyper PLA @Ender-3 V4-all", - "Creality/Hyper PLA @Hi-all", - "Creality/Hyper PLA @K1 Max_CFS-C-all", - "Creality/Hyper PLA @K1 SE-all", - "Creality/Hyper PLA @K1 SE_CFS-C-all", - "Creality/Hyper PLA @K1C-all", - "Creality/Hyper PLA @K1C_CFS-C-all", - "Creality/Hyper PLA @K1_CFS-C-all", - "Creality/Hyper PLA @K2 Plus-all", - "Creality/Hyper PLA @K2 Pro-all", - "Creality/Hyper PLA @K2 SE-all", - "Creality/Hyper PLA @K2-all", - "Creality/Hyper PLA @SPARKX i7-all", - "Creality/Hyper PLA-CF @Ender-3 V4-all", - "Creality/Hyper PLA-CF @Hi-all", - "Creality/Hyper PLA-CF @K1 Max_CFS-C-all", - "Creality/Hyper PLA-CF @K1 SE-all", - "Creality/Hyper PLA-CF @K1 SE_CFS-C-all", - "Creality/Hyper PLA-CF @K1C-all", - "Creality/Hyper PLA-CF @K1C_CFS-C-all", - "Creality/Hyper PLA-CF @K1_CFS-C-all", - "Creality/Hyper PLA-CF @K2 Plus-all", - "Creality/Hyper PLA-CF @K2 Pro-all", - "Creality/Hyper PLA-CF @K2 SE-all", - "Creality/Hyper PLA-CF @K2-all", - "Creality/Hyper PLA-CF @SPARKX i7-all", - "Creality/Hyper PPA-CF @K2 Plus-all", - "Creality/Hyper PPA-CF @K2 Pro-all", - "Creality/Hyper Stardust @Hi-all", - "Creality/Hyper Stardust @K1 Max_CFS-C-all", - "Creality/Hyper Stardust @K1C-all", - "Creality/Hyper Stardust @K1C_CFS-C-all", - "Creality/Hyper Stardust @K1_CFS-C-all", - "Creality/Hyper Stardust @K2 Plus-all", - "Creality/Hyper Stardust @K2 Pro-all", - "Creality/Hyper Stardust @K2 SE-all", - "Creality/Hyper Stardust @K2-all", - "Creality/Hyper Stardust @SPARKX i7-all", - "Creality/Panchroma PLA Matte @K2 Plus-all", - "Creality/Panchroma PLA Satin @K2 Plus-all", - "Creality/PolySonic PLA @K2 Plus-all", - "Creality/PolySonic PLA Pro @K2 Plus-all", - "Creality/Soleyin Basic PETG @Hi-all", - "Creality/Soleyin Basic PETG @K1C-all", - "Creality/Soleyin Basic PETG @K2 Plus-all", - "Creality/Soleyin Basic PETG @K2 Pro-all", - "Creality/Soleyin Basic PETG @K2-all", - "Creality/Soleyin Basic PETG @SPARKX i7-all", - "Creality/Soleyin Ultra PLA @Ender-3 V4-all", - "Creality/Soleyin Ultra PLA @Hi-all", - "Creality/Soleyin Ultra PLA @K1 Max_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1C-all", - "Creality/Soleyin Ultra PLA @K1C_CFS-C-all", - "Creality/Soleyin Ultra PLA @K1_CFS-C-all", - "Creality/Soleyin Ultra PLA @K2 Plus-all", - "Creality/Soleyin Ultra PLA @K2 Pro-all", - "Creality/Soleyin Ultra PLA @K2 SE-all", - "Creality/Soleyin Ultra PLA @K2-all", - "Creality/Soleyin Ultra PLA @SPARKX i7-all", - "Creality/eSUN ABS+ @K2 Plus-all", - "Creality/eSUN ASA+ @K2 Plus-all", - "Creality/eSUN PET-Basic @K2 Plus-all", - "Creality/eSUN PETG @K2 Plus-all", - "Creality/eSUN PETG+HS @K2 Plus-all", - "Creality/eSUN PETG-Basic @K2 Plus-all", - "Creality/eSUN PLA+ @K2 Plus-all", - "Creality/eSUN PLA-CF @K2 Plus-all", - "Creality/eSUN PLA-HS @K2 Plus-all", - "Creality/eSUN PLA-LW @K2 Plus-all", - "Creality/eSUN PLA-Lite @K2 Plus-all", - "Creality/eSUN PLA-Matte @K2 Plus-all", - "Creality/eSUN PLA-Silk @K2 Plus-all", - "Cubicon/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABS @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABS @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABS @base", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABS-A100 @base", - "Cubicon/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon ABSk @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon ABSk @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon ABSk @base", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PA-CF @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PA-CF @base", - "Cubicon/Cubicon PC @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PC @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PC @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PC @base", - "Cubicon/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PETG @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PETG @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PETG @base", - "Cubicon/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA @base", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLA+ @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLA+ @base", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Mini 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @Cubicon xCeler-Plus 0.4 nozzle", - "Cubicon/Cubicon PLAi21 @base", - "DeltaMaker/DeltaMaker Brand PLA", - "DeltaMaker/Generic PETG @DeltaMaker", - "DeltaMaker/Generic PLA @DeltaMaker", - "DeltaMaker/Generic TPU @DeltaMaker", - "Dremel/Generic PLA @Dremel 3D20 all", - "Dremel/Generic PLA @Dremel 3D40 all", - "Dremel/Generic PLA @Dremel 3D45 all", - "Elegoo/Generic ABS-CF @Elegoo Centauri", - "Elegoo/Generic ASA-CF @Elegoo Centauri", - "Elegoo/Generic PA6-CF @Elegoo", - "Elegoo/Generic PC-CF @Elegoo", - "Elegoo/Generic PET-CF @Elegoo Centauri", - "Elegoo/Generic PETG PRO @Elegoo", - "Elegoo/Generic PETG-CF @Elegoo Centauri", - "Elegoo/Generic PLA Matte @Elegoo", - "Eryone/Eryone ABS", - "Eryone/Eryone ABS-CF", - "Eryone/Eryone ASA", - "Eryone/Eryone ASA-CF", - "Eryone/Eryone PA", - "Eryone/Eryone PA-CF", - "Eryone/Eryone PA-GF", - "Eryone/Eryone PETG", - "Eryone/Eryone PETG-CF", - "Eryone/Eryone PLA", - "Eryone/Eryone PLA-CF", - "Eryone/Eryone PP", - "Eryone/Eryone PP-CF", - "Eryone/Eryone Silk PLA", - "Eryone/Eryone TPU", - "FLSun/Generic ABS @FLSun", - "FLSun/Generic ASA @FLSun", - "FLSun/Generic PA @FLSun", - "FLSun/Generic PA-CF @FLSun", - "FLSun/Generic PC @FLSun", - "FLSun/Generic PETG @FLSun", - "FLSun/Generic PLA @FLSun", - "FLSun/Generic PLA @FLSun S1", - "FLSun/Generic PLA @FLSun T1", - "FLSun/Generic PLA-CF @FLSun", - "FLSun/Generic PVA @FLSun", - "FLSun/Generic TPU @FLSun", - "Flashforge/Flashforge ABS", - "Flashforge/Flashforge ABS Basic", - "Flashforge/Flashforge ABS Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge ABS Basic @FF C5", - "Flashforge/Flashforge ABS Basic @FF C5P", - "Flashforge/Flashforge ABS Basic @FF G4", - "Flashforge/Flashforge ABS Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4 HF", - "Flashforge/Flashforge ABS Basic @FF G4P", - "Flashforge/Flashforge ABS Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge ABS Basic @FF G4P HF", - "Flashforge/Flashforge ABS-CF @FF G4", - "Flashforge/Flashforge ABS-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge ABS-CF @FF G4P", - "Flashforge/Flashforge ABS-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ABS-GF @FF C5", - "Flashforge/Flashforge ABS-GF @FF C5P", - "Flashforge/Flashforge ASA Basic", - "Flashforge/Flashforge ASA Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge ASA Basic @FF C5", - "Flashforge/Flashforge ASA Basic @FF C5P", - "Flashforge/Flashforge ASA Basic @FF G4", - "Flashforge/Flashforge ASA Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4 HF", - "Flashforge/Flashforge ASA Basic @FF G4P", - "Flashforge/Flashforge ASA Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge ASA Basic @FF G4P HF", - "Flashforge/Flashforge ASA-CF", - "Flashforge/Flashforge ASA-CF @FF C5", - "Flashforge/Flashforge ASA-CF @FF C5P", - "Flashforge/Flashforge ASA-CF @FF G4", - "Flashforge/Flashforge ASA-CF @FF G4P", - "Flashforge/Flashforge ASA-GF @FF C5", - "Flashforge/Flashforge ASA-GF @FF C5P", - "Flashforge/Flashforge HIPS @FF C5", - "Flashforge/Flashforge HIPS @FF C5P", - "Flashforge/Flashforge HIPS @FF G4", - "Flashforge/Flashforge HIPS @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4 0.6 nozzle", - "Flashforge/Flashforge HIPS @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4 HF", - "Flashforge/Flashforge HIPS @FF G4P", - "Flashforge/Flashforge HIPS @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HIPS @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HIPS @FF G4P HF", - "Flashforge/Flashforge HS PETG", - "Flashforge/Flashforge HS PETG @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X", - "Flashforge/Flashforge HS PETG @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge HS PETG @FF C5", - "Flashforge/Flashforge HS PETG @FF C5P", - "Flashforge/Flashforge HS PETG @FF G4", - "Flashforge/Flashforge HS PETG @FF G4 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4 HF", - "Flashforge/Flashforge HS PETG @FF G4P", - "Flashforge/Flashforge HS PETG @FF G4P 0.25 nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PETG @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HS PETG @FF G4P HF", - "Flashforge/Flashforge HS PLA", - "Flashforge/Flashforge HS PLA @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X", - "Flashforge/Flashforge HS PLA @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge HS PLA @FF C5", - "Flashforge/Flashforge HS PLA @FF C5P", - "Flashforge/Flashforge HS PLA @FF G4", - "Flashforge/Flashforge HS PLA @FF G4 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4 HF", - "Flashforge/Flashforge HS PLA @FF G4P", - "Flashforge/Flashforge HS PLA @FF G4P 0.25 nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PLA @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA @FF G4P HF", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4 HF", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti @FF G4P HF", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.6 nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4 0.8 HF nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.6 nozzle", - "Flashforge/Flashforge HS PLA Burnt Ti@FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PA @FF G4", - "Flashforge/Flashforge PA @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PA @FF G4 HF", - "Flashforge/Flashforge PA @FF G4P", - "Flashforge/Flashforge PA @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PA @FF G4P HF", - "Flashforge/Flashforge PA-CF @FF C5", - "Flashforge/Flashforge PA-CF @FF C5P", - "Flashforge/Flashforge PA-CF @FF G4", - "Flashforge/Flashforge PA-CF @FF G4P", - "Flashforge/Flashforge PA12-CF", - "Flashforge/Flashforge PA6-CF", - "Flashforge/Flashforge PA66-CF", - "Flashforge/Flashforge PC @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PC @FF G4 0.6 nozzle", - "Flashforge/Flashforge PC @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PC @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PC @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PC @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PET-CF", - "Flashforge/Flashforge PET-CF @FF C5", - "Flashforge/Flashforge PET-CF @FF C5P", - "Flashforge/Flashforge PETG", - "Flashforge/Flashforge PETG Basic", - "Flashforge/Flashforge PETG Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Pro", - "Flashforge/Flashforge PETG Pro @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG Pro @FF C5", - "Flashforge/Flashforge PETG Pro @FF C5P", - "Flashforge/Flashforge PETG Pro @FF G4", - "Flashforge/Flashforge PETG Pro @FF G4 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4 HF", - "Flashforge/Flashforge PETG Pro @FF G4P", - "Flashforge/Flashforge PETG Pro @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PETG Pro @FF G4P HF", - "Flashforge/Flashforge PETG Transparent", - "Flashforge/Flashforge PETG Transparent @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG Transparent @FF C5", - "Flashforge/Flashforge PETG Transparent @FF C5P", - "Flashforge/Flashforge PETG Transparent @FF G4", - "Flashforge/Flashforge PETG Transparent @FF G4 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4 HF", - "Flashforge/Flashforge PETG Transparent @FF G4P", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PETG Transparent @FF G4P HF", - "Flashforge/Flashforge PETG-CF", - "Flashforge/Flashforge PETG-CF @FF AD5X", - "Flashforge/Flashforge PETG-CF @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PETG-CF @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PETG-CF @FF C5", - "Flashforge/Flashforge PETG-CF @FF C5P", - "Flashforge/Flashforge PETG-CF @FF G4", - "Flashforge/Flashforge PETG-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PETG-CF @FF G4P", - "Flashforge/Flashforge PETG-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA", - "Flashforge/Flashforge PLA Basic", - "Flashforge/Flashforge PLA Basic @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Basic @FF C5", - "Flashforge/Flashforge PLA Basic @FF C5P", - "Flashforge/Flashforge PLA Basic @FF G4", - "Flashforge/Flashforge PLA Basic @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4 HF", - "Flashforge/Flashforge PLA Basic @FF G4P", - "Flashforge/Flashforge PLA Basic @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Basic @FF G4P HF", - "Flashforge/Flashforge PLA Color Change", - "Flashforge/Flashforge PLA Color Change @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Color Change @FF C5", - "Flashforge/Flashforge PLA Color Change @FF C5P", - "Flashforge/Flashforge PLA Color Change @FF G4", - "Flashforge/Flashforge PLA Color Change @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4 HF", - "Flashforge/Flashforge PLA Color Change @FF G4P", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Color Change @FF G4P HF", - "Flashforge/Flashforge PLA Galaxy", - "Flashforge/Flashforge PLA Galaxy @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF C5", - "Flashforge/Flashforge PLA Galaxy @FF C5P", - "Flashforge/Flashforge PLA Galaxy @FF G4", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4 HF", - "Flashforge/Flashforge PLA Galaxy @FF G4P", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Galaxy @FF G4P HF", - "Flashforge/Flashforge PLA Luminous", - "Flashforge/Flashforge PLA Luminous @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Luminous @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Luminous @FF C5", - "Flashforge/Flashforge PLA Luminous @FF C5P", - "Flashforge/Flashforge PLA Luminous @FF G4", - "Flashforge/Flashforge PLA Luminous @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4 HF", - "Flashforge/Flashforge PLA Luminous @FF G4P", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Luminous @FF G4P HF", - "Flashforge/Flashforge PLA Matte", - "Flashforge/Flashforge PLA Matte @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Matte @FF C5", - "Flashforge/Flashforge PLA Matte @FF C5P", - "Flashforge/Flashforge PLA Matte @FF G4", - "Flashforge/Flashforge PLA Matte @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4 HF", - "Flashforge/Flashforge PLA Matte @FF G4P", - "Flashforge/Flashforge PLA Matte @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Matte @FF G4P HF", - "Flashforge/Flashforge PLA Metal", - "Flashforge/Flashforge PLA Metal @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Metal @FF C5", - "Flashforge/Flashforge PLA Metal @FF C5P", - "Flashforge/Flashforge PLA Metal @FF G4", - "Flashforge/Flashforge PLA Metal @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4 HF", - "Flashforge/Flashforge PLA Metal @FF G4P", - "Flashforge/Flashforge PLA Metal @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Metal @FF G4P HF", - "Flashforge/Flashforge PLA Pro", - "Flashforge/Flashforge PLA Pro @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Pro @FF C5", - "Flashforge/Flashforge PLA Pro @FF C5P", - "Flashforge/Flashforge PLA Pro @FF G4", - "Flashforge/Flashforge PLA Pro @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4 HF", - "Flashforge/Flashforge PLA Pro @FF G4P", - "Flashforge/Flashforge PLA Pro @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Pro @FF G4P HF", - "Flashforge/Flashforge PLA Silk", - "Flashforge/Flashforge PLA Silk @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Silk @FF C5", - "Flashforge/Flashforge PLA Silk @FF C5P", - "Flashforge/Flashforge PLA Silk @FF G4", - "Flashforge/Flashforge PLA Silk @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4 HF", - "Flashforge/Flashforge PLA Silk @FF G4P", - "Flashforge/Flashforge PLA Silk @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PLA Silk @FF G4P HF", - "Flashforge/Flashforge PLA Sparkle", - "Flashforge/Flashforge PLA Sparkle @FF AD5M 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4 HF", - "Flashforge/Flashforge PLA Sparkle @FF G4P", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.25 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PLA Sparkle @FF G4P HF", - "Flashforge/Flashforge PLA-CF", - "Flashforge/Flashforge PLA-CF @FF AD5X", - "Flashforge/Flashforge PLA-CF @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge PLA-CF @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge PLA-CF @FF C5", - "Flashforge/Flashforge PLA-CF @FF C5P", - "Flashforge/Flashforge PLA-CF @FF G4", - "Flashforge/Flashforge PLA-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PLA-CF @FF G4P", - "Flashforge/Flashforge PLA-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PPA-CF", - "Flashforge/Flashforge PPA-CF @FF C5", - "Flashforge/Flashforge PPA-CF @FF C5P", - "Flashforge/Flashforge PPA-GF", - "Flashforge/Flashforge PPS @FF G4", - "Flashforge/Flashforge PPS @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge PPS @FF G4 0.6 nozzle", - "Flashforge/Flashforge PPS @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge PPS @FF G4P", - "Flashforge/Flashforge PPS @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge PPS @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PPS @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge PPS-CF", - "Flashforge/Flashforge PPS-CF @FF C5", - "Flashforge/Flashforge PPS-CF @FF C5P", - "Flashforge/Flashforge PPS-CF @FF G4", - "Flashforge/Flashforge PPS-CF @FF G4 0.6 nozzle", - "Flashforge/Flashforge PPS-CF @FF G4P", - "Flashforge/Flashforge PPS-CF @FF G4P 0.6 nozzle", - "Flashforge/Flashforge PVA @FF C5", - "Flashforge/Flashforge PVA @FF C5P", - "Flashforge/Flashforge TPU 65D @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4 0.6 nozzle", - "Flashforge/Flashforge TPU 65D @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.6 nozzle", - "Flashforge/Flashforge TPU 65D @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge TPU 95A", - "Flashforge/Flashforge TPU 95A @FF AD5X", - "Flashforge/Flashforge TPU 95A @FF AD5X 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF AD5X 0.8 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4", - "Flashforge/Flashforge TPU 95A @FF G4 0.6 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4 0.8 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P", - "Flashforge/Flashforge TPU 95A @FF G4P 0.6 HF nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P 0.6 nozzle", - "Flashforge/Flashforge TPU 95A @FF G4P 0.8 HF nozzle", - "Flashforge/Flashforge TPU-64D @FF C5", - "Flashforge/Flashforge TPU-64D @FF C5P", - "Flashforge/Flashforge TPU-90A @FF C5", - "Flashforge/Flashforge TPU-90A @FF C5P", - "Flashforge/Flashforge TPU-95A @FF C5", - "Flashforge/Flashforge TPU-95A @FF C5P", - "Flashforge/FusRock NexPA-CF25", - "Flashforge/FusRock PAHT @FF G4 0.6 HF nozzle", - "Flashforge/FusRock PAHT @FF G4 0.6 nozzle", - "Flashforge/FusRock PAHT @FF G4 0.8 HF nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.6 HF nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.6 nozzle", - "Flashforge/FusRock PAHT @FF G4P 0.8 HF nozzle", - "Flashforge/FusRock PAHT-CF", - "Flashforge/FusRock PAHT-CF @FF C5", - "Flashforge/FusRock PAHT-CF @FF C5P", - "Flashforge/FusRock PAHT-CF @FF G4", - "Flashforge/FusRock PAHT-CF @FF G4 0.6 nozzle", - "Flashforge/FusRock PAHT-CF @FF G4P", - "Flashforge/FusRock PAHT-CF @FF G4P 0.6 nozzle", - "Flashforge/FusRock PAHT-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock PAHT-GF", - "Flashforge/FusRock PET @FF G4P 0.8 HF nozzle", - "Flashforge/FusRock PET-CF", - "Flashforge/FusRock PET-CF @FF G4", - "Flashforge/FusRock PET-CF @FF G4 0.6 nozzle", - "Flashforge/FusRock PET-CF @FF G4P", - "Flashforge/FusRock PET-CF @FF G4P 0.6 nozzle", - "Flashforge/FusRock PET-CF @G3U 0.6 Nozzle", - "Flashforge/FusRock PET-GF", - "Flashforge/FusRock S-Multi", - "Flashforge/FusRock S-Multi @FF C5", - "Flashforge/FusRock S-Multi @FF C5P", - "Flashforge/FusRock S-Multi @G3U 0.6 Nozzle", - "Flashforge/FusRock S-PAHT", - "Flashforge/FusRock S-PAHT @FF C5", - "Flashforge/FusRock S-PAHT @FF C5P", - "Flashforge/FusRock S-PAHT @G3U 0.6 Nozzle", - "Flashforge/Generic ABS @FF AD5M 0.25 Nozzle", - "Flashforge/Generic ABS @Flashforge", - "Flashforge/Generic ABS @Flashforge AD4", - "Flashforge/Generic ABS @Flashforge G3U", - "Flashforge/Generic ABS @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic ASA @FF AD5M 0.25 Nozzle", - "Flashforge/Generic ASA @Flashforge", - "Flashforge/Generic ASA @Flashforge AD4", - "Flashforge/Generic ASA @Flashforge G3U", - "Flashforge/Generic ASA @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic HIPS @Flashforge", - "Flashforge/Generic HIPS @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic HS PLA @FF AD5M 0.25 Nozzle", - "Flashforge/Generic HS PLA @Flashforge", - "Flashforge/Generic PET @FF G4", - "Flashforge/Generic PET @FF G4 0.6 HF nozzle", - "Flashforge/Generic PET @FF G4 0.6 nozzle", - "Flashforge/Generic PET @FF G4 0.8 HF nozzle", - "Flashforge/Generic PET @FF G4P", - "Flashforge/Generic PET @FF G4P 0.6 HF nozzle", - "Flashforge/Generic PET @FF G4P 0.6 nozzle", - "Flashforge/Generic PET @FF G4P 0.8 HF nozzle", - "Flashforge/Generic PETG @FF AD5M 0.25 Nozzle", - "Flashforge/Generic PETG @Flashforge", - "Flashforge/Generic PETG @Flashforge AD4", - "Flashforge/Generic PETG @Flashforge Artemis", - "Flashforge/Generic PETG @Flashforge G3U", - "Flashforge/Generic PETG @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PETG @Flashforge G3U 0.8 Nozzle", - "Flashforge/Generic PETG-CF @Flashforge G3U", - "Flashforge/Generic PETG-CF @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PETG-CF @Flashforge G3U 0.8 Nozzle", - "Flashforge/Generic PETG-CF10 @Flashforge", - "Flashforge/Generic PETG-CF10 @Flashforge AD4", - "Flashforge/Generic PLA @Flashforge", - "Flashforge/Generic PLA @Flashforge AD4", - "Flashforge/Generic PLA @Flashforge G3U", - "Flashforge/Generic PLA High Speed @Flashforge AD4", - "Flashforge/Generic PLA Silk @Flashforge AD4", - "Flashforge/Generic PLA-CF @Flashforge G3U", - "Flashforge/Generic PLA-CF @Flashforge G3U 0.6 Nozzle", - "Flashforge/Generic PLA-CF @Flashforge G3U 0.8 Nozzle", - "Flashforge/Generic PLA-CF10 @Flashforge", - "Flashforge/Generic PLA-CF10 @Flashforge AD4", - "Flashforge/Generic PLA-SILK @FF AD5M 0.25 Nozzle", - "Flashforge/Generic PLA-Silk @Flashforge", - "Flashforge/Generic PVA @Flashforge", - "Flashforge/Generic TPU 85A @FF AD5X", - "Flashforge/Generic TPU 85A @FF AD5X 0.6 nozzle", - "Flashforge/Generic TPU 85A @FF AD5X 0.8 nozzle", - "Flashforge/Generic TPU @Flashforge", - "Flashforge/Generic TPU @Flashforge AD4", - "Flashforge/Generic TPU-64D @FF C5", - "Flashforge/Generic TPU-64D @FF C5P", - "Flashforge/Generic TPU-90A @FF C5", - "Flashforge/Generic TPU-90A @FF C5P", - "Flashforge/Generic TPU-95A @FF C5", - "Flashforge/Generic TPU-95A @FF C5P", - "Flashforge/Polymaker CoPA", - "Flashforge/Polymaker CoPA @FF G4 0.6 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4 0.6 nozzle", - "Flashforge/Polymaker CoPA @FF G4 0.8 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.6 HF nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.6 nozzle", - "Flashforge/Polymaker CoPA @FF G4P 0.8 HF nozzle", - "Flashforge/Polymaker S1", - "FlyingBear/FlyingBear ABS @Ghost7", - "FlyingBear/FlyingBear ABS @S1", - "FlyingBear/FlyingBear PA-CF @Ghost7", - "FlyingBear/FlyingBear PA-CF @S1", - "FlyingBear/FlyingBear PC @Ghost7", - "FlyingBear/FlyingBear PC @S1", - "FlyingBear/FlyingBear PETG @S1", - "FlyingBear/FlyingBear PETG Basic @Ghost7", - "FlyingBear/FlyingBear PLA @S1", - "FlyingBear/FlyingBear PLA Basic @Ghost7", - "FlyingBear/FlyingBear PLA Hyper", - "FlyingBear/FlyingBear PLA Hyper @Ghost7", - "FlyingBear/FlyingBear PLA Hyper @S1", - "FlyingBear/FlyingBear TPU @S1", - "FlyingBear/FlyingBear TPU Basic @Ghost7", - "FlyingBear/Generic ABS @FlyingBear", - "FlyingBear/Generic PA-CF @FlyingBear", - "FlyingBear/Generic PC @FlyingBear", - "FlyingBear/Generic PETG @FlyingBear", - "FlyingBear/Generic PLA @FlyingBear", - "FlyingBear/Generic TPU @FlyingBear", - "FlyingBear/Other ABS @S1", - "FlyingBear/Other PA-CF @S1", - "FlyingBear/Other PC @S1", - "FlyingBear/Other PETG @S1", - "FlyingBear/Other PLA @S1", - "FlyingBear/Other PLA Hyper @S1", - "FlyingBear/Other TPU @S1", - "Ginger Additive/Generic PETG @Ginger", - "Ginger Additive/Generic PLA @Ginger", - "InfiMech/Generic ABS @InfiMech", - "InfiMech/Generic PA-CF @InfiMech", - "InfiMech/Generic PC @InfiMech", - "InfiMech/Generic PETG @InfiMech", - "InfiMech/Generic PLA @InfiMech", - "InfiMech/Generic TPU @InfiMech", - "InfiMech/InfiMech ABS @EX", - "InfiMech/InfiMech ABS @EX+APS", - "InfiMech/InfiMech ABS @HSN", - "InfiMech/InfiMech PA-CF @EX", - "InfiMech/InfiMech PA-CF @EX+APS", - "InfiMech/InfiMech PA-CF @HSN", - "InfiMech/InfiMech PC @EX", - "InfiMech/InfiMech PC @EX+APS", - "InfiMech/InfiMech PC @HSN", - "InfiMech/InfiMech PETG @EX", - "InfiMech/InfiMech PETG @EX+APS", - "InfiMech/InfiMech PETG @HSN", - "InfiMech/InfiMech PLA @HSN", - "InfiMech/InfiMech PLA Basic @EX", - "InfiMech/InfiMech PLA Basic @EX+APS", - "InfiMech/InfiMech PLA Hyper", - "InfiMech/InfiMech PLA Hyper @EX", - "InfiMech/InfiMech PLA Hyper @EX+APS", - "InfiMech/InfiMech PLA Hyper @HSN", - "InfiMech/InfiMech TPU @HSN", - "InfiMech/InfiMech TPU Basic @EX", - "InfiMech/InfiMech TPU Basic @EX+APS", - "InfiMech/Other ABS", - "InfiMech/Other ABS @HSN", - "InfiMech/Other PA-CF", - "InfiMech/Other PA-CF @HSN", - "InfiMech/Other PC", - "InfiMech/Other PC @HSN", - "InfiMech/Other PETG", - "InfiMech/Other PETG @HSN", - "InfiMech/Other PLA", - "InfiMech/Other PLA @HSN", - "InfiMech/Other PLA Hyper", - "InfiMech/Other PLA Hyper @HSN", - "InfiMech/Other TPU", - "InfiMech/Other TPU @HSN", - "LH/LHS ABS", - "LH/LHS ASA", - "LH/LHS PC CF", - "LH/LHS PCTG", - "LH/LHS PETG", - "LH/LHS PLA", - "LH/LHS TPU", - "LH/LHS TPU Foamy 78A", - "LONGER/Generic PETG @LONGER LK10", - "LONGER/Generic PETG @LONGER LK10 Plus", - "LONGER/Generic PLA @LONGER LK10", - "LONGER/Generic PLA @LONGER LK10 Plus", - "MagicMaker/Generic PEEK @MM", - "OrcaArena/Generic PA @OrcaArena", - "OrcaArena/Generic PA-CF @OrcaArena", - "OrcaArena/Generic TPU @OrcaArena", - "OrcaFilamentLibrary/Eolas Prints ABS @System", - "OrcaFilamentLibrary/Eolas Prints ASA @System", - "OrcaFilamentLibrary/Eolas Prints PETG @System", - "OrcaFilamentLibrary/Eolas Prints PETG Transition @System", - "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant @System", - "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial @System", - "OrcaFilamentLibrary/Eolas Prints PLA High Speed @System", - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850 @System", - "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870 @System", - "OrcaFilamentLibrary/Eolas Prints PLA Matte @System", - "OrcaFilamentLibrary/Eolas Prints PLA Neon @System", - "OrcaFilamentLibrary/Eolas Prints PLA Premium @System", - "OrcaFilamentLibrary/Eolas Prints PLA Silk @System", - "OrcaFilamentLibrary/Eolas Prints PLA Transition @System", - "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant @System", - "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A @System", - "OrcaFilamentLibrary/Eolas Prints TPU Flex D53 @System", - "OrcaFilamentLibrary/Eolas Prints TPU Transition @System", - "OrcaFilamentLibrary/FilAr PETG Amarillo Lima", - "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante", - "OrcaFilamentLibrary/FilAr PETG Azul Boreal", - "OrcaFilamentLibrary/FilAr PETG Azul Francia", - "OrcaFilamentLibrary/FilAr PETG Azul Imperial", - "OrcaFilamentLibrary/FilAr PETG Blanco Antartida", - "OrcaFilamentLibrary/FilAr PETG Cian", - "OrcaFilamentLibrary/FilAr PETG Coral", - "OrcaFilamentLibrary/FilAr PETG Cristal", - "OrcaFilamentLibrary/FilAr PETG Gris Ceniza", - "OrcaFilamentLibrary/FilAr PETG Gris Plata", - "OrcaFilamentLibrary/FilAr PETG Magenta", - "OrcaFilamentLibrary/FilAr PETG Negro Azabache", - "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi", - "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio", - "OrcaFilamentLibrary/FilAr PLA Azul Francia", - "OrcaFilamentLibrary/FilAr PLA Blanco Antartida", - "OrcaFilamentLibrary/FilAr PLA Blanco Calido", - "OrcaFilamentLibrary/FilAr PLA Bronce", - "OrcaFilamentLibrary/FilAr PLA Cafe con Leche", - "OrcaFilamentLibrary/FilAr PLA Carpincho", - "OrcaFilamentLibrary/FilAr PLA Celeste Cielo", - "OrcaFilamentLibrary/FilAr PLA Cobre", - "OrcaFilamentLibrary/FilAr PLA Dorado", - "OrcaFilamentLibrary/FilAr PLA Gris Ceniza", - "OrcaFilamentLibrary/FilAr PLA Gris Pizarra", - "OrcaFilamentLibrary/FilAr PLA Gris Plata", - "OrcaFilamentLibrary/FilAr PLA Manteca", - "OrcaFilamentLibrary/FilAr PLA Marron Oxido", - "OrcaFilamentLibrary/FilAr PLA Naranja Tigre", - "OrcaFilamentLibrary/FilAr PLA Negro Azabache", - "OrcaFilamentLibrary/FilAr PLA Oro", - "OrcaFilamentLibrary/FilAr PLA Piel", - "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras", - "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto", - "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco", - "OrcaFilamentLibrary/FilAr PLA Tabaco", - "OrcaFilamentLibrary/FilAr PLA Titanio", - "OrcaFilamentLibrary/FilAr PLA Verde FilAr", - "OrcaFilamentLibrary/FilAr PLA Verde Manzana", - "OrcaFilamentLibrary/FilAr PLA Verde Oliva", - "OrcaFilamentLibrary/FilAr PLA Verde Pixel", - "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda", - "OrcaFilamentLibrary/FilAr PLA-mate Amarillo", - "OrcaFilamentLibrary/FilAr PLA-mate Azul", - "OrcaFilamentLibrary/FilAr PLA-mate Beige", - "OrcaFilamentLibrary/FilAr PLA-mate Blanco", - "OrcaFilamentLibrary/FilAr PLA-mate Bordo", - "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo", - "OrcaFilamentLibrary/FilAr PLA-mate Chocolate", - "OrcaFilamentLibrary/FilAr PLA-mate Gris", - "OrcaFilamentLibrary/FilAr PLA-mate Marron", - "OrcaFilamentLibrary/FilAr PLA-mate Naranja", - "OrcaFilamentLibrary/FilAr PLA-mate Negro", - "OrcaFilamentLibrary/FilAr PLA-mate Piel", - "OrcaFilamentLibrary/FilAr PLA-mate Rojo", - "OrcaFilamentLibrary/FilAr PLA-mate Rosa", - "OrcaFilamentLibrary/FilAr PLA-mate Uva", - "OrcaFilamentLibrary/FilAr PLA-mate Verde", - "OrcaFilamentLibrary/FilAr PLA-mate Violeta", - "OrcaFilamentLibrary/Generic ABS @System", - "OrcaFilamentLibrary/Generic ASA @System", - "OrcaFilamentLibrary/Generic BVOH @System", - "OrcaFilamentLibrary/Generic CoPE @System", - "OrcaFilamentLibrary/Generic EVA @System", - "OrcaFilamentLibrary/Generic HIPS @System", - "OrcaFilamentLibrary/Generic PA @System", - "OrcaFilamentLibrary/Generic PA-CF @System", - "OrcaFilamentLibrary/Generic PC @System", - "OrcaFilamentLibrary/Generic PCTG @System", - "OrcaFilamentLibrary/Generic PE @System", - "OrcaFilamentLibrary/Generic PETG @System", - "OrcaFilamentLibrary/Generic PHA @System", - "OrcaFilamentLibrary/Generic PLA @System", - "OrcaFilamentLibrary/Generic PLA High Speed @System", - "OrcaFilamentLibrary/Generic PLA Silk @System", - "OrcaFilamentLibrary/Generic PLA-CF @System", - "OrcaFilamentLibrary/Generic PP @System", - "OrcaFilamentLibrary/Generic PPA-CF @System", - "OrcaFilamentLibrary/Generic PPA-GF @System", - "OrcaFilamentLibrary/Generic PVA @System", - "OrcaFilamentLibrary/Generic SBS @System", - "OrcaFilamentLibrary/Generic TPU @System", - "OrcaFilamentLibrary/PolyLite PLA @System", - "OrcaFilamentLibrary/PolyTerra Dual PLA @System", - "OrcaFilamentLibrary/eSUN ePLA-LW @System", - "Peopoly/Generic ABS @Peopoly", - "Peopoly/Generic PETG @Peopoly", - "Peopoly/Generic PLA @Peopoly", - "Peopoly/Peopoly Lancer ABS-GF", - "Peopoly/Peopoly Lancer PET-CF", - "Peopoly/Peopoly Lancer PETG-C", - "Peopoly/Peopoly Lancer PLA-C", - "Prusa/Generic ABS @Prusa CORE One", - "Prusa/Generic ABS @Prusa CORE One 0.6", - "Prusa/Generic ABS @Prusa CORE One 0.8", - "Prusa/Generic ABS @Prusa CORE One HF 0.4", - "Prusa/Generic ABS @Prusa CORE One HF 0.5", - "Prusa/Generic ABS @Prusa CORE One HF 0.6", - "Prusa/Generic ABS @Prusa CORE One HF 0.8", - "Prusa/Generic ABS @Prusa MK3.5", - "Prusa/Generic ABS @Prusa MK3.5 0.25", - "Prusa/Generic ABS @Prusa MK3.5 0.6", - "Prusa/Generic ABS @Prusa MK3.5 0.8", - "Prusa/Generic ABS @Prusa MK4S", - "Prusa/Generic ABS @Prusa MK4S 0.6", - "Prusa/Generic ABS @Prusa MK4S 0.8", - "Prusa/Generic ABS @Prusa MK4S HF0.4", - "Prusa/Generic ABS @Prusa MK4S HF0.5", - "Prusa/Generic ABS @Prusa MK4S HF0.6", - "Prusa/Generic ABS @Prusa MK4S HF0.8", - "Prusa/Generic ABS HF @Prusa MK3.5", - "Prusa/Generic ABS HF @Prusa MK3.5 0.6", - "Prusa/Generic ABS HF @Prusa MK3.5 0.8", - "Prusa/Generic ASA @Prusa", - "Prusa/Generic ASA @Prusa CORE One", - "Prusa/Generic ASA @Prusa CORE One 0.6", - "Prusa/Generic ASA @Prusa CORE One 0.8", - "Prusa/Generic ASA @Prusa CORE One HF 0.4", - "Prusa/Generic ASA @Prusa CORE One HF 0.5", - "Prusa/Generic ASA @Prusa CORE One HF 0.6", - "Prusa/Generic ASA @Prusa CORE One HF 0.8", - "Prusa/Generic ASA @Prusa MINIIS", - "Prusa/Generic ASA @Prusa MINIIS 0.25", - "Prusa/Generic ASA @Prusa MINIIS 0.6", - "Prusa/Generic ASA @Prusa MINIIS 0.8", - "Prusa/Generic ASA @Prusa MK3.5", - "Prusa/Generic ASA @Prusa MK3.5 0.25", - "Prusa/Generic ASA @Prusa MK3.5 0.6", - "Prusa/Generic ASA @Prusa MK3.5 0.8", - "Prusa/Generic ASA @Prusa MK4", - "Prusa/Generic ASA @Prusa MK4S", - "Prusa/Generic ASA @Prusa MK4S 0.6", - "Prusa/Generic ASA @Prusa MK4S 0.8", - "Prusa/Generic ASA @Prusa MK4S HF0.4", - "Prusa/Generic ASA @Prusa MK4S HF0.5", - "Prusa/Generic ASA @Prusa MK4S HF0.6", - "Prusa/Generic ASA @Prusa MK4S HF0.8", - "Prusa/Generic ASA HF @Prusa MK3.5", - "Prusa/Generic ASA HF @Prusa MK3.5 0.6", - "Prusa/Generic ASA HF @Prusa MK3.5 0.8", - "Prusa/Generic FLEX @Prusa XL", - "Prusa/Generic FLEX @Prusa XL 5T", - "Prusa/Generic PA @Prusa MK3.5", - "Prusa/Generic PA @Prusa MK3.5 0.25", - "Prusa/Generic PA @Prusa MK3.5 0.6", - "Prusa/Generic PA @Prusa MK3.5 0.8", - "Prusa/Generic PA-CF @Prusa MK3.5", - "Prusa/Generic PA-CF @Prusa MK3.5 0.25", - "Prusa/Generic PA-CF @Prusa MK3.5 0.6", - "Prusa/Generic PA-CF @Prusa MK3.5 0.8", - "Prusa/Generic PC @Prusa", - "Prusa/Generic PC @Prusa MINIIS", - "Prusa/Generic PC @Prusa MINIIS 0.25", - "Prusa/Generic PC @Prusa MINIIS 0.6", - "Prusa/Generic PC @Prusa MINIIS 0.8", - "Prusa/Generic PC @Prusa MK3.5", - "Prusa/Generic PC @Prusa MK3.5 0.25", - "Prusa/Generic PC @Prusa MK3.5 0.6", - "Prusa/Generic PC @Prusa MK3.5 0.8", - "Prusa/Generic PC HF @Prusa MK3.5", - "Prusa/Generic PC HF @Prusa MK3.5 0.6", - "Prusa/Generic PC HF @Prusa MK3.5 0.8", - "Prusa/Generic PETG @Prusa CORE One", - "Prusa/Generic PETG @Prusa CORE One 0.6", - "Prusa/Generic PETG @Prusa CORE One 0.8", - "Prusa/Generic PETG @Prusa CORE One HF 0.4", - "Prusa/Generic PETG @Prusa CORE One HF 0.5", - "Prusa/Generic PETG @Prusa CORE One HF 0.6", - "Prusa/Generic PETG @Prusa CORE One HF 0.8", - "Prusa/Generic PETG @Prusa MK3.5", - "Prusa/Generic PETG @Prusa MK3.5 0.25", - "Prusa/Generic PETG @Prusa MK3.5 0.6", - "Prusa/Generic PETG @Prusa MK3.5 0.8", - "Prusa/Generic PETG @Prusa MK4S", - "Prusa/Generic PETG @Prusa MK4S 0.6", - "Prusa/Generic PETG @Prusa MK4S 0.8", - "Prusa/Generic PETG @Prusa MK4S HF0.4", - "Prusa/Generic PETG @Prusa MK4S HF0.5", - "Prusa/Generic PETG @Prusa MK4S HF0.6", - "Prusa/Generic PETG @Prusa MK4S HF0.8", - "Prusa/Generic PETG HF @Prusa MK3.5", - "Prusa/Generic PETG HF @Prusa MK3.5 0.6", - "Prusa/Generic PETG HF @Prusa MK3.5 0.8", - "Prusa/Generic PLA @Prusa CORE One", - "Prusa/Generic PLA @Prusa CORE One 0.6", - "Prusa/Generic PLA @Prusa CORE One 0.8", - "Prusa/Generic PLA @Prusa CORE One HF 0.4", - "Prusa/Generic PLA @Prusa CORE One HF 0.5", - "Prusa/Generic PLA @Prusa CORE One HF 0.6", - "Prusa/Generic PLA @Prusa CORE One HF 0.8", - "Prusa/Generic PLA @Prusa MK3.5", - "Prusa/Generic PLA @Prusa MK3.5 0.25", - "Prusa/Generic PLA @Prusa MK3.5 0.6", - "Prusa/Generic PLA @Prusa MK3.5 0.8", - "Prusa/Generic PLA @Prusa MK4S", - "Prusa/Generic PLA @Prusa MK4S 0.6", - "Prusa/Generic PLA @Prusa MK4S 0.8", - "Prusa/Generic PLA @Prusa MK4S HF0.4", - "Prusa/Generic PLA @Prusa MK4S HF0.5", - "Prusa/Generic PLA @Prusa MK4S HF0.6", - "Prusa/Generic PLA @Prusa MK4S HF0.8", - "Prusa/Generic PLA HF @Prusa MK3.5", - "Prusa/Generic PLA HF @Prusa MK3.5 0.6", - "Prusa/Generic PLA HF @Prusa MK3.5 0.8", - "Prusa/Generic PLA Silk @Prusa CORE One", - "Prusa/Generic PLA Silk @Prusa CORE One 0.6", - "Prusa/Generic PLA Silk @Prusa CORE One 0.8", - "Prusa/Generic PLA Silk @Prusa MK4S", - "Prusa/Generic PLA Silk @Prusa MK4S 0.6", - "Prusa/Generic PLA Silk @Prusa MK4S 0.8", - "Prusa/Generic PLA-CF @Prusa MK3.5", - "Prusa/Generic PLA-CF @Prusa MK3.5 0.25", - "Prusa/Generic PLA-CF @Prusa MK3.5 0.6", - "Prusa/Generic PLA-CF @Prusa MK3.5 0.8", - "Prusa/Generic PVA @Prusa MK3.5", - "Prusa/Generic PVA @Prusa MK3.5 0.25", - "Prusa/Generic PVA @Prusa MK3.5 0.6", - "Prusa/Generic PVA @Prusa MK3.5 0.8", - "Prusa/Generic PVA HF @Prusa MK3.5", - "Prusa/Generic PVA HF @Prusa MK3.5 0.6", - "Prusa/Generic PVA HF @Prusa MK3.5 0.8", - "Prusa/Generic TPU @Prusa CORE One", - "Prusa/Generic TPU @Prusa CORE One 0.6", - "Prusa/Generic TPU @Prusa CORE One 0.8", - "Prusa/Generic TPU @Prusa MK3.5", - "Prusa/Generic TPU @Prusa MK4S", - "Prusa/Generic TPU @Prusa MK4S 0.6", - "Prusa/Generic TPU @Prusa MK4S 0.8", - "Prusa/Generic TPU HF @Prusa MK3.5", - "Prusa/Prusament ASA @CORE One", - "Prusa/Prusament ASA @CORE One 0.6", - "Prusa/Prusament ASA @CORE One 0.8", - "Prusa/Prusament ASA @CORE One HF 0.4", - "Prusa/Prusament ASA @CORE One HF 0.5", - "Prusa/Prusament ASA @CORE One HF 0.6", - "Prusa/Prusament ASA @CORE One HF 0.8", - "Prusa/Prusament ASA @XL", - "Prusa/Prusament ASA @XL 5T", - "Prusa/Prusament PA-CF @CORE One", - "Prusa/Prusament PA-CF @CORE One 0.6", - "Prusa/Prusament PA-CF @CORE One 0.8", - "Prusa/Prusament PA-CF @XL", - "Prusa/Prusament PA-CF @XL 5T", - "Prusa/Prusament PC Blend @CORE One", - "Prusa/Prusament PC Blend @CORE One 0.6", - "Prusa/Prusament PC Blend @CORE One 0.8", - "Prusa/Prusament PC Blend @CORE One HF 0.4", - "Prusa/Prusament PC Blend @CORE One HF 0.5", - "Prusa/Prusament PC Blend @CORE One HF 0.6", - "Prusa/Prusament PC Blend @CORE One HF 0.8", - "Prusa/Prusament PC Blend @XL", - "Prusa/Prusament PC Blend @XL 5T", - "Prusa/Prusament PC-CF @CORE One", - "Prusa/Prusament PC-CF @CORE One 0.6", - "Prusa/Prusament PC-CF @CORE One 0.8", - "Prusa/Prusament PC-CF @XL", - "Prusa/Prusament PC-CF @XL 5T", - "Prusa/Prusament PETG @CORE One", - "Prusa/Prusament PETG @CORE One 0.6", - "Prusa/Prusament PETG @CORE One 0.8", - "Prusa/Prusament PETG @CORE One HF 0.4", - "Prusa/Prusament PETG @CORE One HF 0.5", - "Prusa/Prusament PETG @CORE One HF 0.6", - "Prusa/Prusament PETG @CORE One HF 0.8", - "Prusa/Prusament PLA @CORE One", - "Prusa/Prusament PLA @CORE One 0.6", - "Prusa/Prusament PLA @CORE One 0.8", - "Prusa/Prusament PLA @CORE One HF 0.4", - "Prusa/Prusament PLA @CORE One HF 0.5", - "Prusa/Prusament PLA @CORE One HF 0.6", - "Prusa/Prusament PLA @CORE One HF 0.8", - "Prusa/Prusament PVB @CORE One", - "Prusa/Prusament PVB @CORE One 0.6", - "Prusa/Prusament PVB @CORE One 0.8", - "Prusa/Prusament PVB @XL", - "Prusa/Prusament PVB @XL 5T", - "Prusa/Prusament rPLA @CORE One", - "Prusa/Prusament rPLA @CORE One 0.6", - "Prusa/Prusament rPLA @CORE One 0.8", - "Qidi/Bambu ABS", - "Qidi/Bambu ABS @0.2 nozzle", - "Qidi/Bambu ABS @0.6 nozzle", - "Qidi/Bambu ABS @0.8 nozzle", - "Qidi/Bambu ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Bambu ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Bambu ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Bambu ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Bambu ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Bambu ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Bambu ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Bambu ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Bambu PETG", - "Qidi/Bambu PETG @0.2 nozzle", - "Qidi/Bambu PETG @0.6 nozzle", - "Qidi/Bambu PETG @0.8 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Bambu PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Bambu PETG @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Bambu PLA", - "Qidi/Bambu PLA @0.2 nozzle", - "Qidi/Bambu PLA @0.6 nozzle", - "Qidi/Bambu PLA @0.8 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Bambu PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Bambu PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic ABS @Qidi", - "Qidi/Generic ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic ABS @Qidi X-Max 3 0.2 nozzle", - "Qidi/Generic ABS @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Generic ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic ABS @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Generic ASA @Qidi", - "Qidi/Generic ASA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic ASA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic ASA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic ASA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic ASA @Qidi X-Max 3 0.2 nozzle", - "Qidi/Generic ASA @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Generic ASA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic ASA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic ASA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic ASA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic ASA @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Generic PA @Qidi", - "Qidi/Generic PA-CF @Qidi", - "Qidi/Generic PC @Qidi", - "Qidi/Generic PC @Qidi 0.2 nozzle", - "Qidi/Generic PC @Qidi 0.8 nozzle", - "Qidi/Generic PC @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic PC @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic PC @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic PC @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic PC @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PC @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PC @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PC @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic PETG @Qidi", - "Qidi/Generic PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic PETG @Qidi X-Max 3 0.2 nozzle", - "Qidi/Generic PETG @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Generic PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PETG @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic PETG @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Generic PETG-CF @Qidi", - "Qidi/Generic PLA @Qidi", - "Qidi/Generic PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic PLA @Qidi X-Max 3 0.2 nozzle", - "Qidi/Generic PLA @Qidi X-Max 3 0.6 nozzle", - "Qidi/Generic PLA @Qidi X-Max 3 0.8 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 3 0.6 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 3 0.8 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic PLA @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Generic PLA @Qidi X-Smart 3 0.6 nozzle", - "Qidi/Generic PLA @Qidi X-Smart 3 0.8 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PLA High Speed @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic PLA Silk @Qidi", - "Qidi/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PLA+ @Qidi", - "Qidi/Generic PLA+ @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Generic PLA+ @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic PLA+ @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Generic PLA+ @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic PLA+ @Qidi X-Max 3 0.2 nozzle", - "Qidi/Generic PLA+ @Qidi X-Max 3 0.6 nozzle", - "Qidi/Generic PLA+ @Qidi X-Max 3 0.8 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 3 0.2 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 3 0.6 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 3 0.8 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Generic PLA+ @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic PLA+ @Qidi X-Smart 3 0.2 nozzle", - "Qidi/Generic PLA+ @Qidi X-Smart 3 0.6 nozzle", - "Qidi/Generic PLA+ @Qidi X-Smart 3 0.8 nozzle", - "Qidi/Generic PLA-CF @Qidi", - "Qidi/Generic PVA @Qidi", - "Qidi/Generic TPU 95A @Qidi", - "Qidi/Generic TPU 95A @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Generic TPU 95A @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Generic TPU @Qidi", - "Qidi/Generic TPU @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Generic TPU @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX ABS @Qidi", - "Qidi/HATCHBOX ABS @Qidi 0.2 nozzle", - "Qidi/HATCHBOX ABS @Qidi 0.6 nozzle", - "Qidi/HATCHBOX ABS @Qidi 0.8 nozzle", - "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/HATCHBOX ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/HATCHBOX ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/HATCHBOX PETG @0.2 nozzle", - "Qidi/HATCHBOX PETG @0.6 nozzle", - "Qidi/HATCHBOX PETG @0.8 nozzle", - "Qidi/HATCHBOX PETG @Qidi", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.2 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.4 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.6 nozzle", - "Qidi/HATCHBOX PETG @Qidi Q1 Pro 0.8 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.2 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.6 nozzle", - "Qidi/HATCHBOX PETG @Qidi X-Plus 4 0.8 nozzle", - "Qidi/HATCHBOX PLA @0.2 nozzle", - "Qidi/HATCHBOX PLA @0.6 nozzle", - "Qidi/HATCHBOX PLA @0.8 nozzle", - "Qidi/HATCHBOX PLA @Qidi", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/HATCHBOX PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/HATCHBOX PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Overture ABS @Qidi", - "Qidi/Overture ABS @Qidi 0.2 nozzle", - "Qidi/Overture ABS @Qidi 0.6 nozzle", - "Qidi/Overture ABS @Qidi 0.8 nozzle", - "Qidi/Overture ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Overture ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Overture ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Overture ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Overture ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Overture ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Overture ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Overture ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Overture PLA @Qidi", - "Qidi/Overture PLA @Qidi 0.2 nozzle", - "Qidi/Overture PLA @Qidi 0.6 nozzle", - "Qidi/Overture PLA @Qidi 0.8 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Overture PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Overture PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/PolyLite ABS @Qidi", - "Qidi/PolyLite ABS @Qidi 0.2 nozzle", - "Qidi/PolyLite ABS @Qidi 0.6 nozzle", - "Qidi/PolyLite ABS @Qidi 0.8 nozzle", - "Qidi/PolyLite ABS @Qidi Q1 Pro 0.2 nozzle", - "Qidi/PolyLite ABS @Qidi Q1 Pro 0.4 nozzle", - "Qidi/PolyLite ABS @Qidi Q1 Pro 0.6 nozzle", - "Qidi/PolyLite ABS @Qidi Q1 Pro 0.8 nozzle", - "Qidi/PolyLite ABS @Qidi X-Plus 4 0.2 nozzle", - "Qidi/PolyLite ABS @Qidi X-Plus 4 0.4 nozzle", - "Qidi/PolyLite ABS @Qidi X-Plus 4 0.6 nozzle", - "Qidi/PolyLite ABS @Qidi X-Plus 4 0.8 nozzle", - "Qidi/PolyLite PLA @Qidi", - "Qidi/PolyLite PLA @Qidi 0.2 nozzle", - "Qidi/PolyLite PLA @Qidi 0.6 nozzle", - "Qidi/PolyLite PLA @Qidi 0.8 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/PolyLite PLA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/PolyLite PLA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS Odorless", - "Qidi/QIDI ABS Odorless @0.2 nozzle", - "Qidi/QIDI ABS Odorless @0.6 nozzle", - "Qidi/QIDI ABS Odorless @0.8 nozzle", - "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS Rapido", - "Qidi/QIDI ABS Rapido 0.2 nozzle", - "Qidi/QIDI ABS Rapido 0.6 nozzle", - "Qidi/QIDI ABS Rapido 0.8 nozzle", - "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS Rapido Metal", - "Qidi/QIDI ABS Rapido Metal @0.2 nozzle", - "Qidi/QIDI ABS Rapido Metal @0.6 nozzle", - "Qidi/QIDI ABS Rapido Metal @0.8 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS-GF", - "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS-GF10", - "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS-GF10 @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS-GF10 @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ABS-GF25", - "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ABS-GF25 @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ABS-GF25 @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ASA", - "Qidi/QIDI ASA @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI ASA @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ASA @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ASA @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ASA @Qidi X-Max 3 0.2 nozzle", - "Qidi/QIDI ASA @Qidi X-Plus 3 0.2 nozzle", - "Qidi/QIDI ASA @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI ASA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI ASA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI ASA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI ASA @Qidi X-Smart 3 0.2 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Max 3 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Plus 3 0.8 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.4 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.6 nozzle", - "Qidi/QIDI ASA-CF @Qidi X-Smart 3 0.8 nozzle", - "Qidi/QIDI PA-Ultra", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PA12-CF", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PA12-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PA12-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-CF", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PAHT-GF", - "Qidi/QIDI PAHT-GF @0.6 nozzle", - "Qidi/QIDI PAHT-GF @0.8 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PAHT-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PAHT-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PEBA 95A", - "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PEBA 95A @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-CF", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PET-GF", - "Qidi/QIDI PET-GF @0.6 nozzle", - "Qidi/QIDI PET-GF @0.8 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PET-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PET-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Basic", - "Qidi/QIDI PETG Basic @0.2 nozzle", - "Qidi/QIDI PETG Basic @0.6 nozzle", - "Qidi/QIDI PETG Basic @0.8 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Basic @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Rapido", - "Qidi/QIDI PETG Rapido @0.2 nozzle", - "Qidi/QIDI PETG Rapido @0.6 nozzle", - "Qidi/QIDI PETG Rapido @0.8 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Rapido @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Tough", - "Qidi/QIDI PETG Tough 0.2 nozzle", - "Qidi/QIDI PETG Tough 0.6 nozzle", - "Qidi/QIDI PETG Tough 0.8 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG Translucent", - "Qidi/QIDI PETG Translucent @0.2 nozzle", - "Qidi/QIDI PETG Translucent @0.6 nozzle", - "Qidi/QIDI PETG Translucent @0.8 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG Translucent @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG Translucent @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-CF", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PETG-GF", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PETG-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PETG-GF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Basic", - "Qidi/QIDI PLA Basic @0.2 nozzle", - "Qidi/QIDI PLA Basic @0.6 nozzle", - "Qidi/QIDI PLA Basic @0.8 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Basic @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Matte Basic", - "Qidi/QIDI PLA Matte Basic @0.2 nozzle", - "Qidi/QIDI PLA Matte Basic @0.6 nozzle", - "Qidi/QIDI PLA Matte Basic @0.8 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Matte Basic @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido", - "Qidi/QIDI PLA Rapido 0.2 nozzle", - "Qidi/QIDI PLA Rapido 0.8 nozzle", - "Qidi/QIDI PLA Rapido @0.6 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte", - "Qidi/QIDI PLA Rapido Matte @0.2 nozzle", - "Qidi/QIDI PLA Rapido Matte @0.6 nozzle", - "Qidi/QIDI PLA Rapido Matte @0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Metal", - "Qidi/QIDI PLA Rapido Metal @0.2 nozzle", - "Qidi/QIDI PLA Rapido Metal @0.6 nozzle", - "Qidi/QIDI PLA Rapido Metal @0.8 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PLA Rapido Silk", - "Qidi/QIDI PLA Rapido Silk @0.6 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA-CF @0.6 nozzle", - "Qidi/QIDI PLA-CF @0.8 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-CF", - "Qidi/QIDI PPS-CF @0.6 nozzle", - "Qidi/QIDI PPS-CF @0.8 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI PPS-GF", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI PPS-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI Support For PAHT", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI Support For PAHT @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI Support For PET/PA", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI Support For PET/PA @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI TPU-Aero", - "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI TPU-Aero @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI TPU-Aero @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI TPU-GF", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI TPU-GF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI UltraPA-CF25", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI UltraPA-CF25 @Qidi X-Plus 4 0.8 nozzle", - "Qidi/QIDI WOOD Rapido", - "Qidi/QIDI WOOD Rapido @0.6 nozzle", - "Qidi/QIDI WOOD Rapido @0.8 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.4 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.6 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi Q1 Pro 0.8 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.4 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.6 nozzle", - "Qidi/QIDI WOOD Rapido @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi ASA-Aero", - "Qidi/Qidi ASA-Aero @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi ASA-Aero @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi PC-ABS-FR", - "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.6 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.6 nozzle", - "Qidi/Qidi PC-ABS-FR @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Qidi PLA-CF", - "Qidi/Qidi TPU 95A-HF", - "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.4 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.4 nozzle", - "Qidi/Qidi TPU 95A-HF @Qidi X-Plus 4 0.8 nozzle", - "Qidi/Tinmorry PETG-ECO", - "RH3D/Generic ABS @E3NG v1.2S", - "RH3D/Generic ASA @E3NG v1.2S", - "RH3D/Generic PCCF @E3NG v1.2S", - "RH3D/Generic PETG @E3NG v1.2S", - "RH3D/Generic PLA @E3NG v1.2S", - "RH3D/Generic TPU @E3NG v1.2S", - "Ratrig/Generic ABS @RatRig", - "Ratrig/Generic ABS BigNozzle @RatRig", - "Ratrig/Generic ASA @RatRig", - "Ratrig/Generic ASA BigNozzle @RatRig", - "Ratrig/Generic PA @RatRig", - "Ratrig/Generic PA-CF @RatRig", - "Ratrig/Generic PC @RatRig", - "Ratrig/Generic PCTG @RatRig", - "Ratrig/Generic PCTG BigNozzle @RatRig", - "Ratrig/Generic PETG @RatRig", - "Ratrig/Generic PETG BigNozzle @RatRig", - "Ratrig/Generic PLA @RatRig", - "Ratrig/Generic PLA BigNozzle @RatRig", - "Ratrig/Generic PLA-CF @RatRig", - "Ratrig/Generic PVA @RatRig", - "Ratrig/Generic TPU @RatRig", - "Ratrig/Generic TPU BigNozzle @RatRig", - "Ratrig/RatRig PunkFil ABS", - "Ratrig/RatRig PunkFil PETG", - "Ratrig/RatRig PunkFil PETG CF", - "SecKit/Generic ABS @SecKit", - "SecKit/Generic ASA @SecKit", - "SecKit/Generic PA @SecKit", - "SecKit/Generic PA-CF @SecKit", - "SecKit/Generic PC @SecKit", - "SecKit/Generic PETG @SecKit", - "SecKit/Generic PLA @SecKit", - "SecKit/Generic PLA-CF @SecKit", - "SecKit/Generic PVA @SecKit", - "SecKit/Generic TPU @SecKit", - "SeeMeCNC/SeeMeCNC ABS", - "SeeMeCNC/SeeMeCNC PA-CF", - "SeeMeCNC/SeeMeCNC PETG", - "SeeMeCNC/SeeMeCNC PETG-CF", - "SeeMeCNC/SeeMeCNC PLA", - "SeeMeCNC/SeeMeCNC TPU", - "Snapmaker/PolyLite Dual PLA @0.2 nozzle", - "Snapmaker/PolyLite J1 PLA", - "Snapmaker/PolyLite J1 PLA @0.2 nozzle", - "Snapmaker/PolyTerra Dual PLA @0.2 nozzle", - "Snapmaker/PolyTerra J1 PLA", - "Snapmaker/PolyTerra J1 PLA @0.2 nozzle", - "Snapmaker/Polymaker General PLA Family @U1", - "Snapmaker/Polymaker Silk PLA Family @U1", - "Snapmaker/Polymaker Tough PLA Family @U1", - "Snapmaker/Snapmaker ABS Benchy @U1", - "Snapmaker/Snapmaker Dual ABS Benchy", - "Snapmaker/Snapmaker Dual TPE", - "Snapmaker/Snapmaker Dual TPU High-Flow", - "Snapmaker/Snapmaker J1 ABS Benchy", - "Snapmaker/Snapmaker J1 TPE", - "Snapmaker/Snapmaker J1 TPU High-Flow", - "Snapmaker/Snapmaker PET @Dual", - "Snapmaker/Snapmaker PLA Full Spectrum @U1 0.4 nozzle", - "Snapmaker/Snapmaker PLA Matte @U1", - "Snapmaker/Snapmaker PLA Silk @U1", - "Snapmaker/Snapmaker PLA Silk @U1 0.2 nozzle", - "Snapmaker/Snapmaker PLA Silk @U1 0.6 nozzle", - "Snapmaker/Snapmaker PLA Silk @U1 0.8 nozzle", - "Snapmaker/Snapmaker PLA Wood @U1 0.4 nozzle", - "Snapmaker/Snapmaker PLA Wood @U1 0.6 nozzle", - "Snapmaker/Snapmaker PLA Wood @U1 0.8 nozzle", - "Snapmaker/Snapmaker PLA-CF @U1 0.4 nozzle", - "Snapmaker/Snapmaker PLA-CF @U1 0.6 nozzle", - "Snapmaker/Snapmaker PLA-CF @U1 0.8 nozzle", - "Snapmaker/Snapmaker TPE", - "Snapmaker/Snapmaker TPE @U1", - "Snapmaker/Snapmaker TPU 90A @U1", - "Snapmaker/Snapmaker TPU 90A @U1 0.6 nozzle", - "Snapmaker/Snapmaker TPU 90A @U1 0.8 nozzle", - "Snapmaker/Snapmaker TPU 95A HF @U1", - "Snapmaker/Snapmaker TPU 95A HF @U1 0.6 nozzle", - "Snapmaker/Snapmaker TPU 95A HF @U1 0.8 nozzle", - "Snapmaker/Snapmaker TPU High-Flow @U1", - "Sovol/Generic PLA Silk @Sovol SV08 MAX", - "Sovol/Polymaker PETG @Sovol SV08 MAX", - "Sovol/SUNLU PETG @Sovol SV08 MAX", - "Sovol/Sovol Zero PETG HS Nozzle", - "Sovol/Sovol Zero PLA Basic HS Nozzle", - "Sovol/Sovol Zero PLA Silk HS Nozzle", - "Tiertime/Generic ABS @Tiertime", - "Tiertime/Generic ABS @Tiertime 300HS", - "Tiertime/Generic ASA @Tiertime", - "Tiertime/Generic ASA @Tiertime 300HS", - "Tiertime/Generic BVOH @Tiertime", - "Tiertime/Generic BVOH @Tiertime 300HS", - "Tiertime/Generic EVA @Tiertime", - "Tiertime/Generic EVA @Tiertime 300HS", - "Tiertime/Generic HIPS @Tiertime", - "Tiertime/Generic HIPS @Tiertime 300HS", - "Tiertime/Generic PA @Tiertime", - "Tiertime/Generic PA @Tiertime 300HS", - "Tiertime/Generic PA-CF @Tiertime", - "Tiertime/Generic PA-CF @Tiertime 300HS", - "Tiertime/Generic PC @Tiertime", - "Tiertime/Generic PC @Tiertime 300HS", - "Tiertime/Generic PCTG @Tiertime", - "Tiertime/Generic PCTG @Tiertime 300HS", - "Tiertime/Generic PE @Tiertime", - "Tiertime/Generic PE @Tiertime 300HS", - "Tiertime/Generic PE-CF @Tiertime", - "Tiertime/Generic PE-CF @Tiertime 300HS", - "Tiertime/Generic PETG @Tiertime", - "Tiertime/Generic PETG @Tiertime 300HS", - "Tiertime/Generic PETG-CF @Tiertime", - "Tiertime/Generic PETG-CF @Tiertime 300HS", - "Tiertime/Generic PHA @Tiertime", - "Tiertime/Generic PHA @Tiertime 300HS", - "Tiertime/Generic PLA @Tiertime", - "Tiertime/Generic PLA @Tiertime 300HS", - "Tiertime/Generic PLA High Speed @Tiertime", - "Tiertime/Generic PLA High Speed @Tiertime 300HS", - "Tiertime/Generic PLA Silk @Tiertime", - "Tiertime/Generic PLA Silk @Tiertime 300HS", - "Tiertime/Generic PLA-CF @Tiertime", - "Tiertime/Generic PLA-CF @Tiertime 300HS", - "Tiertime/Generic PP @Tiertime", - "Tiertime/Generic PP @Tiertime 300HS", - "Tiertime/Generic PP-CF @Tiertime", - "Tiertime/Generic PP-CF @Tiertime 300HS", - "Tiertime/Generic PP-GF @Tiertime", - "Tiertime/Generic PP-GF @Tiertime 300HS", - "Tiertime/Generic PPA-CF @Tiertime", - "Tiertime/Generic PPA-CF @Tiertime 300HS", - "Tiertime/Generic PPA-GF @Tiertime", - "Tiertime/Generic PPA-GF @Tiertime 300HS", - "Tiertime/Generic PPS @Tiertime", - "Tiertime/Generic PPS @Tiertime 300HS", - "Tiertime/Generic PPS-CF @Tiertime", - "Tiertime/Generic PPS-CF @Tiertime 300HS", - "Tiertime/Generic PVA @Tiertime", - "Tiertime/Generic PVA @Tiertime 300HS", - "Tiertime/Generic SBS @Tiertime", - "Tiertime/Generic SBS @Tiertime 300HS", - "Tiertime/Generic TPU @Tiertime", - "Tiertime/Generic TPU @Tiertime 300HS", - "Tiertime/Tiertime ABS", - "Tiertime/Tiertime ABS@300HS", - "Tiertime/Tiertime ASA", - "Tiertime/Tiertime ASA@300HS", - "Tiertime/Tiertime PA6-CF", - "Tiertime/Tiertime PA6-CF@300HS", - "Tiertime/Tiertime PC", - "Tiertime/Tiertime PC@300HS", - "Tiertime/Tiertime PET-CF", - "Tiertime/Tiertime PET-CF@300HS", - "Tiertime/Tiertime PETG", - "Tiertime/Tiertime PETG@300HS", - "Tiertime/Tiertime PLA", - "Tiertime/Tiertime PLA-CF", - "Tiertime/Tiertime PLA-CF@300HS", - "Tiertime/Tiertime PLA@300HS", - "Tiertime/Tiertime PVA", - "Tiertime/Tiertime PVA@300HS", - "Tiertime/Tiertime TPU 95A", - "Tiertime/Tiertime TPU 95A@300HS", - "TwoTrees/Generic HS PLA @TwoTrees SK1", - "TwoTrees/Generic TPU 95A @TwoTrees SK1", - "Volumic/Désactivé", - "Volumic/PA6 CF20 (Performance)", - "Volumic/PETG ESD (Performance)", - "Volumic/PPS Carbone (Performance)", - "Volumic/Volumic ABS Ultra", - "Volumic/Volumic ABS Ultra (Performance)", - "Volumic/Volumic ASA Ultra", - "Volumic/Volumic ASA Ultra (Performance)", - "Volumic/Volumic FLEX93 Ultra", - "Volumic/Volumic FLEX93 Ultra (Performance)", - "Volumic/Volumic NYLON Ultra", - "Volumic/Volumic NYLON Ultra (Performance)", - "Volumic/Volumic PC", - "Volumic/Volumic PC (Performance)", - "Volumic/Volumic PCTG Ultra (Performance)", - "Volumic/Volumic PETG Ultra", - "Volumic/Volumic PETG Ultra (Performance)", - "Volumic/Volumic PETG Ultra carbone", - "Volumic/Volumic PETG Ultra carbone (Performance)", - "Volumic/Volumic PLA Ultra", - "Volumic/Volumic PLA Ultra (Performance)", - "Volumic/Volumic PP Ultra", - "Volumic/Volumic PP Ultra (Performance)", - "Volumic/Volumic PVA", - "Volumic/Volumic PVA-BVOH (Performance)", - "Volumic/Volumic UNIVERSAL Ultra", - "Volumic/Volumic UNIVERSAL Ultra (Performance)", - "Vzbot/Generic ABS @Vzbot", - "Vzbot/Generic ASA @Vzbot", - "Vzbot/Generic PA @Vzbot", - "Vzbot/Generic PA-CF @Vzbot", - "Vzbot/Generic PC @Vzbot", - "Vzbot/Generic PETG @Vzbot", - "Vzbot/Generic PLA @Vzbot", - "Vzbot/Generic PLA-CF @Vzbot", - "Vzbot/Generic PVA @Vzbot", - "Vzbot/Generic TPU @Vzbot", - "Wanhao France/YUMI PETG", - "Wanhao France/YUMI PLA Bowden", - "Wanhao France/YUMI PLA Direct Drive", - "WonderMaker/WonderMaker ABS", - "WonderMaker/WonderMaker ASA", - "WonderMaker/WonderMaker PET-CF", - "WonderMaker/WonderMaker PETG Basic", - "WonderMaker/WonderMaker PLA Basic", - "WonderMaker/WonderMaker PLA Marble", - "WonderMaker/WonderMaker PLA Matte", - "WonderMaker/WonderMaker PLA Metal", - "WonderMaker/WonderMaker PLA Silk", - "WonderMaker/WonderMaker PLA Wood", - "WonderMaker/WonderMaker PVA", - "WonderMaker/WonderMaker TPU 95A", - "Z-Bolt/Generic ABS @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic ABS @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic ABS @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic ABS HT @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PA @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic PA @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PA @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PETG @Z-Bolt 0.8 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt 0.4 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt 0.6 nozzle", - "Z-Bolt/Generic PLA @Z-Bolt 0.8 nozzle", - "iQ/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle", - "iQ/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle", - "iQ/Grauts HPP4GF25 P1 @iQ TiQ2 0.4 Nozzle", - "iQ/Material4Print ABS Natur P1 @iQ TiQ8 0.4 Nozzle", - "iQ/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle", - "iQ/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle", - "re3D/re3D PC", - "re3D/re3D PC @0.4 nozzle", - "re3D/re3D PC @0.8 nozzle", - "re3D/re3D PETG", - "re3D/re3D PETG @0.4 nozzle", - "re3D/re3D PETG @0.8 nozzle", - "re3D/re3D PLA", - "re3D/re3D PLA @0.4 nozzle", - "re3D/re3D PLA @0.8 nozzle", - "re3D/re3D rPETG", - "re3D/re3D rPETG @0.8 nozzle", - "re3D/re3D rPETG @1.75 nozzle", - "re3D/re3D rPP", - "re3D/re3D rPP @0.8 nozzle", - "re3D/re3D rPP @1.75 nozzle" - ], - "triple_exceptions": [], - "triples": { - "OF02UAVh": [ - [ - "Creality", - "PLA", - "Soleyin Ultra PLA" - ] - ], - "OF03RK6r": [ - [ - "BETA", - "PLA", - "BETA PLA Metal" - ] - ], - "OF0AquDh": [ - [ - "FusRock", - "PA", - "FusRock S-Multi" - ] - ], - "OF0EYBWQ": [ - [ - "addnorth", - "PETG", - "addnorth PETG Flame v0" - ] - ], - "OF0FfcAG": [ - [ - "Anycubic", - "TPU", - "Anycubic TPU for ACE" - ] - ], - "OF0NgY1y": [ - [ - "COEX 3D", - "PA-CF", - "COEX NYLEX PA6-CF" - ] - ], - "OF0R5Wc7": [ - [ - "Artillery", - "PLA Tough", - "Artillery PLA Tough" - ] - ], - "OF0UJcb6": [ - [ - "Polymaker", - "PETG", - "PolyLite PETG" - ] - ], - "OF0VpkBM": [ - [ - "Polymaker", - "PETG", - "PolyLite PETG Translucent" - ] - ], - "OF0Vtzaw": [ - [ - "FilAr", - "PETG", - "FilAr PETG Amarillo Radiante" - ] - ], - "OF0b7M1z": [ - [ - "SeeMeCNC", - "PA-CF", - "SeeMeCNC PA-CF" - ] - ], - "OF0c7mnL": [ - [ - "InfiMech", - "ABS", - "InfiMech ABS" - ] - ], - "OF0gGRWk": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Glow" - ] - ], - "OF0h7ERL": [ - [ - "Elegoo", - "PA", - "Elegoo PAHT" - ] - ], - "OF0kCNDK": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Luminous" - ] - ], - "OF0omtEb": [ - [ - "Polymaker", - "ASA", - "Fiberon ASA-CF08" - ] - ], - "OF0pzFLc": [ - [ - "COEX 3D", - "PLA", - "COEX PLA+Silk" - ] - ], - "OF0w7OpJ": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido 0.8 nozzle" - ] - ], - "OF0wBGNx": [ - [ - "Bambu Lab", - "ASA-CF", - "Bambu ASA-CF" - ] - ], - "OF0wz84w": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido 0.6 nozzle" - ] - ], - "OF0yFLkY": [ - [ - "Anycubic", - "ASA", - "Anycubic ASA" - ] - ], - "OF112FvY": [ - [ - "Generic", - "PETG", - "Generic PETG Basic" - ] - ], - "OF1ID4N1": [ - [ - "addnorth", - "PA6", - "addnorth PA6 Addlantis" - ] - ], - "OF1N1qMK": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA UV Shift" - ] - ], - "OF1Pke8t": [ - [ - "Overture", - "PLA", - "Overture Easy PLA" - ] - ], - "OF1UNk9P": [ - [ - "Generic", - "PP", - "Generic PP" - ] - ], - "OF1W7c76": [ - [ - "QIDI", - "ASA-CF", - "QIDI ASA-CF" - ] - ], - "OF1d7c3A": [ - [ - "Snapmaker", - "ASA", - "Snapmaker ASA" - ] - ], - "OF1dpPrW": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA" - ] - ], - "OF1hznGB": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA PRO" - ] - ], - "OF223rZv": [ - [ - "Anycubic", - "ABS", - "Anycubic ABS" - ] - ], - "OF2EB9Iz": [ - [ - "Volumic", - "ASA", - "Volumic ASA Ultra" - ] - ], - "OF2EK9F1": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Violeta" - ] - ], - "OF2GCW1l": [ - [ - "SUNLU", - "PETG", - "SUNLU PETG" - ] - ], - "OF2TQpOO": [ - [ - "QIDI", - "PLA", - "QIDI PLA Silk" - ] - ], - "OF2VFe4J": [ - [ - "Bambu Lab", - "PA-CF", - "Bambu PAHT-CF" - ] - ], - "OF2Z1nT5": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Imperial" - ] - ], - "OF2hfMcG": [ - [ - "Orca Arena", - "PLA-CF", - "Arena PLA-CF" - ] - ], - "OF2pj5l5": [ - [ - "Overture", - "PLA", - "Overture Super PLA+" - ] - ], - "OF2xccEe": [ - [ - "DREMC", - "ASA", - "DREMC ASA GF" - ] - ], - "OF30Ftju": [ - [ - "Elegoo", - "TPU", - "Elegoo Rapid TPU 95A" - ] - ], - "OF342jVN": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Tough+" - ] - ], - "OF3F63OE": [ - [ - "re3D", - "PETG", - "re3D PETG" - ] - ], - "OF3IKafc": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Matte" - ] - ], - "OF3OMgrI": [ - [ - "Creality", - "PLA", - "CR-Silk" - ] - ], - "OF3PDEw3": [ - [ - "BETA", - "PLA", - "BETA PLA High Speed" - ] - ], - "OF3WQaKK": [ - [ - "Creality", - "PETG", - "CR-PETG" - ] - ], - "OF3dJf4E": [ - [ - "Volumic", - "PLA", - "Volumic PLA Ultra (Performance)" - ] - ], - "OF3fwO8b": [ - [ - "FlyingBear", - "PLA", - "FlyingBear PLA Basic" - ] - ], - "OF3kBrdA": [ - [ - "eSUN", - "PETG", - "eSUN PETG" - ] - ], - "OF3msXEa": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker Dual PETG-CF" - ] - ], - "OF3ydJTT": [ - [ - "InfiMech", - "PLA", - "InfiMech PLA Hyper" - ] - ], - "OF43Raws": [ - [ - "Polymaker", - "PLA", - "PolyTerra J1 PLA" - ] - ], - "OF44ERDr": [ - [ - "Polymaker", - "PLA", - "Polymaker General PLA Family" - ] - ], - "OF44VYzK": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Francia" - ] - ], - "OF4APyxe": [ - [ - "Creality", - "PA-CF", - "Hyper PAHT-CF" - ] - ], - "OF4GM5qX": [ - [ - "Generic", - "ASA", - "Generic ASA BigNozzle" - ] - ], - "OF4KsW72": [ - [ - "FilAr", - "PLA", - "FilAr PLA" - ] - ], - "OF4Nhggz": [ - [ - "Artillery", - "PLA Basic+", - "Artillery PLA Basic+" - ] - ], - "OF4PKvem": [ - [ - "BETA", - "PLA", - "BETA PLA Fluorescence" - ] - ], - "OF4QZANi": [ - [ - "BETA", - "TPU", - "BETA TPU Matte" - ] - ], - "OF4RvVuU": [ - [ - "Bambu Lab", - "PPS-CF", - "Bambu PPS-CF" - ] - ], - "OF4S3To3": [ - [ - "QIDI", - "PETG", - "QIDI PETG Rapido" - ] - ], - "OF4WB37S": [ - [ - "Snapmaker", - "PETG", - "Snapmaker PETG" - ] - ], - "OF4XTfoI": [ - [ - "BETA", - "PETG", - "BETA PETG Marble" - ] - ], - "OF4f8vVp": [ - [ - "WonderMaker", - "PET-CF", - "WonderMaker PET-CF" - ] - ], - "OF4iWKrE": [ - [ - "QIDI", - "PETG-CF", - "QIDI PETG-CF" - ] - ], - "OF4nQ62r": [ - [ - "QIDI", - "PLA", - "QIDI PLA Basic" - ] - ], - "OF4ulo9Y": [ - [ - "WonderMaker", - "PVA", - "WonderMaker PVA" - ] - ], - "OF53eLVD": [ - [ - "Generic", - "ASA-CF", - "Generic ASA-CF" - ] - ], - "OF54B0S0": [ - [ - "Bambu Lab", - "PPA-CF", - "Bambu PPA-CF" - ] - ], - "OF54SvEe": [ - [ - "Prusa Polymers", - "PA11-CF", - "Prusament PA-CF" - ] - ], - "OF55jHAJ": [ - [ - "Generic", - "ABS", - "Generic ABS HF" - ] - ], - "OF5B9sUc": [ - [ - "Polymaker", - "PA-GF", - "Fiberon PA6-GF25" - ] - ], - "OF5BN24W": [ - [ - "Flashforge", - "PPA-GF", - "Flashforge PPA-GF" - ] - ], - "OF5BXhHF": [ - [ - "BETA", - "PLA", - "BETA PLA High Temp" - ] - ], - "OF5CgdDq": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA" - ] - ], - "OF5LAnla": [ - [ - "BETA", - "PLA", - "BETA PLA Gradient" - ] - ], - "OF5NqBfC": [ - [ - "Yumi", - "PETG", - "YUMI PETG" - ] - ], - "OF5P4jgA": [ - [ - "FilAr", - "PLA", - "FilAr PLA Dorado" - ] - ], - "OF5PtjTp": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Glow" - ] - ], - "OF5SJ3jz": [ - [ - "Flashforge", - "ABS", - "Flashforge ABS" - ] - ], - "OF5YVJXH": [ - [ - "Artillery", - "ASA", - "Artillery ASA" - ] - ], - "OF5c6nq3": [ - [ - "Generic", - "TPU-64D", - "Generic TPU-64D" - ] - ], - "OF5lGPup": [ - [ - "WonderMaker", - "PETG", - "WonderMaker PETG Basic" - ] - ], - "OF5nlfKY": [ - [ - "FilAr", - "PLA", - "FilAr PLA Oro" - ] - ], - "OF5oNRED": [ - [ - "Eryone", - "PP", - "Eryone PP" - ] - ], - "OF5oXk4M": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA Pro" - ] - ], - "OF5rnhjh": [ - [ - "FilAr", - "PETG", - "FilAr PETG" - ] - ], - "OF5tX6va": [ - [ - "Generic", - "TPU", - "Generic TPU BigNozzle" - ] - ], - "OF5umxxT": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Glow" - ] - ], - "OF5vgi2G": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Azul" - ] - ], - "OF65InrS": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU" - ] - ], - "OF66KUAN": [ - [ - "Polymaker", - "PLA", - "PolySonic PLA" - ] - ], - "OF6ATsCF": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker Dual PLA-CF" - ] - ], - "OF6H51Xx": [ - [ - "Polymaker", - "PETG", - "Polymaker PETG" - ] - ], - "OF6Ll8lK": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG Translucent" - ] - ], - "OF6MOPWx": [ - [ - "Generic", - "PET", - "Generic PET" - ] - ], - "OF6TuVAg": [ - [ - "Snapmaker", - "PVA", - "Snapmaker J1 PVA" - ] - ], - "OF6Yn69v": [ - [ - "BETA", - "TPU", - "BETA TPU 90A" - ] - ], - "OF6kj4jI": [ - [ - "iQ Materials", - "PACF Pro", - "Fiberthree PACF Pro P2" - ] - ], - "OF6qAuyi": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Matte" - ] - ], - "OF6qw3Wb": [ - [ - "BETA", - "PA-CF", - "BETA PAHT-CF" - ] - ], - "OF6rdQ6M": [ - [ - "Generic", - "PPS-CF", - "Generic PPS-CF" - ] - ], - "OF70zbGS": [ - [ - "Creality", - "PLA", - "Hyper L-W PLA" - ] - ], - "OF71b7qO": [ - [ - "addnorth", - "PLA", - "addnorth PLA E-PLA" - ] - ], - "OF72YYTd": [ - [ - "Snapmaker", - "ABS", - "Snapmaker ABS" - ] - ], - "OF74KeQR": [ - [ - "Generic", - "PHA", - "Generic PHA" - ] - ], - "OF79Fbo6": [ - [ - "Cubicon", - "PC", - "Cubicon PC" - ] - ], - "OF7H3VJM": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Marble" - ] - ], - "OF7OqDp3": [ - [ - "Tiertime", - "PLA-CF", - "Tiertime PLA-CF" - ] - ], - "OF7SliVn": [ - [ - "Polymaker", - "PLA", - "PolyLite J1 PLA" - ] - ], - "OF7c9fln": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Translucent" - ] - ], - "OF7lOgYF": [ - [ - "Generic", - "PETG", - "Generic PETG HF" - ] - ], - "OF7lwj52": [ - [ - "CoLiDo", - "PETG", - "CoLiDo PETG" - ] - ], - "OF7nBAd3": [ - [ - "Eryone", - "PLA Silk", - "Eryone Silk PLA" - ] - ], - "OF7pjCsO": [ - [ - "FusRock", - "PAHT", - "FusRock PAHT" - ] - ], - "OF7tt7DO": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA+" - ] - ], - "OF8GnyFU": [ - [ - "Creality", - "ABS", - "Hyper ABS" - ] - ], - "OF8GtyKJ": [ - [ - "Flashforge", - "TPU-64D", - "Flashforge TPU-64D" - ] - ], - "OF8Hx3Pi": [ - [ - "Cubicon", - "PETG", - "Cubicon PETG" - ] - ], - "OF8Jl6NT": [ - [ - "Snapmaker", - "PET", - "Snapmaker J1 PET" - ] - ], - "OF8O09RG": [ - [ - "Flashforge", - "PLA", - "Flashforge HS PLA Burnt Ti" - ] - ], - "OF8QdQwS": [ - [ - "BETA", - "PLA", - "BETA PLA Silk+" - ] - ], - "OF8Tlg47": [ - [ - "Generic", - "PPA-GF", - "Generic PPA-GF" - ] - ], - "OF8aFWfQ": [ - [ - "FilAr", - "PLA", - "FilAr PLA Amarillo Lirio" - ] - ], - "OF8dCquh": [ - [ - "Snapmaker", - "ABS", - "Snapmaker J1 ABS Benchy" - ] - ], - "OF8eaY7j": [ - [ - "Generic", - "PA-CF", - "Generic PA612-CF" - ] - ], - "OF8jh0Lk": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Marron" - ] - ], - "OF8kJys9": [ - [ - "Eryone", - "PETG", - "Eryone PETG" - ] - ], - "OF8tPByX": [ - [ - "Generic", - "PPA-CF", - "Generic PPA-CF" - ] - ], - "OF8wE5l7": [ - [ - "Artillery", - "PETG Basic", - "Artillery PETG Basic" - ] - ], - "OF99UMPq": [ - [ - "COEX 3D", - "ABS", - "COEX ABS" - ] - ], - "OF99vXPs": [ - [ - "DREMC", - "ABS", - "DREMC ABS+" - ] - ], - "OF9EHUKK": [ - [ - "QIDI", - "TPU-GF", - "QIDI TPU-GF" - ] - ], - "OF9HCdyQ": [ - [ - "Afinia", - "PLA", - "Afinia PLA" - ] - ], - "OF9OlTWH": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Marble" - ] - ], - "OF9PELEb": [ - [ - "QIDI", - "UltraPA-CF25", - "QIDI UltraPA-CF25" - ] - ], - "OF9UJOGF": [ - [ - "Anycubic", - "PETG-CF", - "Anycubic PETG-CF" - ] - ], - "OF9cAwMK": [ - [ - "Flashforge", - "PLA-CF", - "Flashforge PLA-CF" - ] - ], - "OF9emAI9": [ - [ - "RatRig", - "PETG", - "RatRig PunkFil PETG" - ] - ], - "OFA026vt": [ - [ - "Orca Arena", - "PA-CF", - "Arena PA-CF" - ] - ], - "OFAC7Wyu": [ - [ - "Artillery", - "PLA Matte", - "Artillery PLA Matte" - ] - ], - "OFAIBCLJ": [ - [ - "Generic", - "ABS-CF", - "Generic ABS-CF" - ] - ], - "OFAIrQXu": [ - [ - "Creality", - "PLA", - "Creality Hyper PLA" - ] - ], - "OFANFm4x": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Metal" - ] - ], - "OFAO9A7J": [ - [ - "Generic", - "PLA", - "Sovol Zero PLA Silk HS Nozzle" - ] - ], - "OFAZllAN": [ - [ - "Artillery", - "PLA-CF", - "Artillery PLA-CF" - ] - ], - "OFAc0Pr3": [ - [ - "Polymaker", - "PET-CF", - "Fiberon PET-CF17" - ] - ], - "OFAcJkl1": [ - [ - "addnorth", - "PETG-CF", - "addnorth PETG-CF Rigid X" - ] - ], - "OFAebKg8": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Metal" - ] - ], - "OFAnyRUI": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support For PLA" - ] - ], - "OFAt6ec0": [ - [ - "FilAr", - "PLA", - "FilAr PLA Marron Oxido" - ] - ], - "OFB5SmWk": [ - [ - "Valment", - "PLA", - "Valment PLA Galaxy" - ] - ], - "OFBBgw7B": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Wood" - ] - ], - "OFBJAdLw": [ - [ - "LH Stinger", - "PCTG", - "LHS PCTG" - ] - ], - "OFBLktDy": [ - [ - "Creality", - "PETG", - "Soleyin Basic PETG" - ] - ], - "OFBSW57R": [ - [ - "Bambu Lab", - "PLA-AERO", - "Bambu PLA Aero" - ] - ], - "OFBUIlZ7": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA+" - ] - ], - "OFBlFMVp": [ - [ - "Snapmaker", - "PETG", - "Snapmaker Dual PETG" - ] - ], - "OFBoSWxb": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Luminous" - ] - ], - "OFBsbMMF": [ - [ - "addnorth", - "PA-CF", - "addnorth PA-CF Adura X" - ] - ], - "OFBw6eEG": [ - [ - "Overture", - "PLA", - "Overture Matte PLA" - ] - ], - "OFC1PzXz": [ - [ - "Creality", - "PLA", - "Hyper Luminous" - ] - ], - "OFC5f4Ay": [ - [ - "Generic", - "PC-CF", - "Generic PCCF" - ] - ], - "OFC78WGQ": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Starlight" - ] - ], - "OFCD8qiU": [ - [ - "Generic", - "EVA", - "Generic EVA" - ] - ], - "OFCIUsWh": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Translucent" - ] - ], - "OFCJpR7a": [ - [ - "Creality", - "PLA", - "HP Ultra PLA" - ] - ], - "OFCZsqXg": [ - [ - "Creality", - "PLA", - "Hyper PLA" - ] - ], - "OFCccVrQ": [ - [ - "Polymaker", - "PLA", - "PolyTerra Dual PLA" - ] - ], - "OFCidU7j": [ - [ - "DREMC", - "ABS-GF", - "DREMC ABS-GF" - ] - ], - "OFCjG251": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Verde" - ] - ], - "OFCn83wF": [ - [ - "FusRock", - "PAHT", - "FusRock S-PAHT" - ] - ], - "OFCnywiC": [ - [ - "Tiertime", - "PET-CF", - "Tiertime PET-CF" - ] - ], - "OFCoRobU": [ - [ - "Elas", - "ASA", - "Elas ASA" - ] - ], - "OFCp3Bgo": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA SE" - ] - ], - "OFCuaCer": [ - [ - "Volumic", - "PLA", - "Désactivé" - ] - ], - "OFD21ije": [ - [ - "Cubicon", - "PA", - "Cubicon PA-CF" - ] - ], - "OFD8loeT": [ - [ - "re3D", - "PETG", - "re3D rPETG" - ] - ], - "OFD9taow": [ - [ - "FlyingBear", - "PLA", - "FlyingBear PLA Hyper" - ] - ], - "OFDETOM6": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Matte" - ] - ], - "OFDGigEI": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Dynamic" - ] - ], - "OFDIrhbu": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC/ABS-FR" - ] - ], - "OFDJU6R3": [ - [ - "Afinia", - "TPU", - "Afinia TPU" - ] - ], - "OFDKIKyw": [ - [ - "Snapmaker", - "PVA", - "Snapmaker Dual PVA" - ] - ], - "OFDKgoqx": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA" - ] - ], - "OFDRpXLZ": [ - [ - "Other", - "PETG", - "Other PETG" - ] - ], - "OFDSrzZ8": [ - [ - "Generic", - "PLA", - "Generic PLA" - ] - ], - "OFDdEaoL": [ - [ - "re3D", - "PLA", - "re3D PLA" - ] - ], - "OFDe8uyM": [ - [ - "Valment", - "PLA", - "Valment PLA" - ] - ], - "OFDgQaca": [ - [ - "FlyingBear", - "PETG", - "FlyingBear PETG" - ] - ], - "OFDpW3J8": [ - [ - "FILL3D", - "PLA", - "FILL3D PLA Basic" - ] - ], - "OFDtop41": [ - [ - "Generic", - "PA", - "Generic Support for PA" - ] - ], - "OFDu1qE7": [ - [ - "FusRock", - "PET-CF", - "FusRock PET-CF" - ] - ], - "OFDvXujf": [ - [ - "Generic", - "PVA", - "Generic PVA" - ] - ], - "OFDvqJ6n": [ - [ - "Overture", - "ABS", - "Overture ABS Basic" - ] - ], - "OFDwBwO5": [ - [ - "Generic", - "PVA", - "Generic PVA HF" - ] - ], - "OFDxfPgH": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Sparkle" - ] - ], - "OFDxxTpW": [ - [ - "Flashforge", - "PETG", - "Flashforge HS PETG" - ] - ], - "OFE0NFRh": [ - [ - "COEX 3D", - "TPU", - "COEX TPU 60A" - ] - ], - "OFEGNJD4": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Silk" - ] - ], - "OFEOnBj6": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Lite" - ] - ], - "OFEWYR89": [ - [ - "Generic", - "PLA", - "Generic PLA+" - ] - ], - "OFEZ449N": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Uva" - ] - ], - "OFEZpel7": [ - [ - "Volumic", - "PPS-CF", - "PPS Carbone (Performance)" - ] - ], - "OFEabreg": [ - [ - "Polymaker", - "PA6-CF", - "Fiberon PA6-CF20" - ] - ], - "OFEbIx49": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Marble" - ] - ], - "OFEhuUNq": [ - [ - "DREMC", - "PA-CF", - "DREMC PA12-CF" - ] - ], - "OFEj7sca": [ - [ - "Cubicon", - "PC", - "Cubicon PC" - ] - ], - "OFEjbwqG": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA+" - ] - ], - "OFEkPBwx": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Glow" - ] - ], - "OFEmsric": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker PA-CF" - ] - ], - "OFEnbt6D": [ - [ - "Peopoly", - "PLA", - "Peopoly Lancer PLA-C" - ] - ], - "OFEswT5W": [ - [ - "Bambu Lab", - "PLA-CF", - "Bambu PLA-CF" - ] - ], - "OFEvEfw5": [ - [ - "Flashforge", - "PA", - "Flashforge PA" - ] - ], - "OFEwRwmL": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA" - ] - ], - "OFF3cuzT": [ - [ - "Generic", - "TPU", - "Generic TPU 64D" - ] - ], - "OFF5o7b2": [ - [ - "BETA", - "PLA", - "BETA PLA Youth" - ] - ], - "OFF9OKoY": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Pro" - ] - ], - "OFF9cgY5": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Matte" - ] - ], - "OFFAWVf0": [ - [ - "QIDI", - "PC-ABS-FR", - "QIDI PC-ABS-FR" - ] - ], - "OFFFg2Pf": [ - [ - "Flashforge", - "ASA", - "Flashforge ASA Basic" - ] - ], - "OFFNYwWR": [ - [ - "Bambu Lab", - "PA-CF", - "Bambu PA-CF" - ] - ], - "OFFP4ORR": [ - [ - "Creality", - "ABS", - "Creality Hyper ABS" - ] - ], - "OFFX1DRD": [ - [ - "FlyingBear", - "PC", - "FlyingBear PC" - ] - ], - "OFFZ458u": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA612-ESD" - ] - ], - "OFFbQscs": [ - [ - "eSUN", - "PETG", - "eSUN PETG-Basic" - ] - ], - "OFFbSnCD": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Translucent" - ] - ], - "OFFfJ09N": [ - [ - "BETA", - "PETG", - "BETA PETG Glow" - ] - ], - "OFFkCLBl": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Galaxy" - ] - ], - "OFFvzqcd": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG Basic" - ] - ], - "OFFwJWea": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Silk" - ] - ], - "OFG0kOKX": [ - [ - "Volumic", - "PETG", - "Volumic PETG Ultra" - ] - ], - "OFG2RkhN": [ - [ - "Creality", - "TPU", - "CR-TPU" - ] - ], - "OFG4do34": [ - [ - "QIDI", - "ASA-AERO", - "Qidi ASA-Aero" - ] - ], - "OFGJ1nxs": [ - [ - "Other", - "PLA", - "Other PLA" - ] - ], - "OFGVwfK0": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Gris" - ] - ], - "OFGVxj2A": [ - [ - "BETA", - "PLA", - "BETA PLA Wood" - ] - ], - "OFGc9l16": [ - [ - "BETA", - "PLA", - "BETA PLA Glow" - ] - ], - "OFGcLA5R": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Beige" - ] - ], - "OFGcMkEB": [ - [ - "Creality", - "TPU", - "HP-TPU" - ] - ], - "OFGdP6Na": [ - [ - "Volumic", - "PVA", - "Volumic PVA" - ] - ], - "OFGkyftV": [ - [ - "Overture", - "PLA", - "Overture Silk PLA" - ] - ], - "OFGwT5Av": [ - [ - "Creality", - "PLA-CF", - "Creality Hyper PLA-CF" - ] - ], - "OFGwZmgS": [ - [ - "Creality", - "ABS", - "CR-ABS" - ] - ], - "OFGxC8gB": [ - [ - "Creality", - "PLA", - "CR-Wood" - ] - ], - "OFGxuI0n": [ - [ - "Flashforge", - "PA-CF", - "Flashforge PA-CF" - ] - ], - "OFH2nN08": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA INGEO 850" - ] - ], - "OFH57ibH": [ - [ - "Polymaker", - "PLA", - "Polymaker Silk PLA Family" - ] - ], - "OFH7b12v": [ - [ - "Generic", - "PA-CF", - "Generic PAHT-CF" - ] - ], - "OFHAccHz": [ - [ - "FilAr", - "PLA", - "FilAr PLA Blanco Antartida" - ] - ], - "OFHHwrd1": [ - [ - "addnorth", - "PETG", - "addnorth PETG Base" - ] - ], - "OFHWSM21": [ - [ - "Polymaker", - "PET-CF", - "Fiberon PET-CF" - ] - ], - "OFHa48An": [ - [ - "Bambu Lab", - "PET-CF", - "Bambu PET-CF" - ] - ], - "OFHaYaB1": [ - [ - "eSUN", - "PET", - "eSUN PET-Basic" - ] - ], - "OFHf2lKK": [ - [ - "FlyingBear", - "TPU", - "FlyingBear TPU Basic" - ] - ], - "OFHfzQXo": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Transition" - ] - ], - "OFHknN4v": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA Pro Metallic" - ] - ], - "OFHmPYRy": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+ 2.0" - ] - ], - "OFI2MKy7": [ - [ - "BETA", - "TPU", - "BETA PEBA 90A" - ] - ], - "OFI6WZpn": [ - [ - "Orca Arena", - "PLA", - "Arena Support W" - ] - ], - "OFIBXa0k": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Rojo" - ] - ], - "OFIBbYO5": [ - [ - "Bambu Lab", - "TPU-AMS", - "Bambu TPU for AMS" - ] - ], - "OFIE3vOf": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Matte" - ] - ], - "OFIK2H3G": [ - [ - "Flashforge", - "PLA", - "Flashforge HS PLA" - ] - ], - "OFIKZxPF": [ - [ - "Generic", - "PLA", - "Generic PLA Wood" - ] - ], - "OFIPjqHt": [ - [ - "Orca Arena", - "PA", - "Arena Support G" - ] - ], - "OFIRUqWi": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Silk" - ] - ], - "OFIVWJPm": [ - [ - "InfiMech", - "TPU", - "InfiMech TPU" - ] - ], - "OFIWMSGX": [ - [ - "HATCHBOX", - "PETG", - "HATCHBOX PETG" - ] - ], - "OFIZMQwM": [ - [ - "LH Stinger", - "TPU", - "LHS TPU" - ] - ], - "OFIamQnD": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Ceniza" - ] - ], - "OFIegjmD": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Flex D53" - ] - ], - "OFIfnzxC": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support For PLA/PETG" - ] - ], - "OFIgbDHq": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Luminous" - ] - ], - "OFIxOuOu": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Starlight" - ] - ], - "OFJ3F2jm": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Basic" - ] - ], - "OFJ3HRsR": [ - [ - "Orca Arena", - "ABS", - "Arena ABS" - ] - ], - "OFJHBEGD": [ - [ - "DREMC", - "PLA", - "DREMC PLA+ HS" - ] - ], - "OFJJ0Ar3": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Galaxy" - ] - ], - "OFJNeELv": [ - [ - "FILL3D", - "PA", - "FILL3D PA" - ] - ], - "OFJOFnOZ": [ - [ - "Aliz", - "PETG-CF", - "AliZ PETG-CF" - ] - ], - "OFJQDUk3": [ - [ - "FilAr", - "PETG", - "FilAr PETG Cristal" - ] - ], - "OFJS560n": [ - [ - "Flashforge", - "ASA", - "Flashforge ASA" - ] - ], - "OFJWKoYG": [ - [ - "iQ Materials", - "ABS Material4Print Natur", - "Material4Print ABS Natur P1" - ] - ], - "OFJYpVAQ": [ - [ - "Generic", - "TPU-90A", - "Generic TPU-90A" - ] - ], - "OFJgijky": [ - [ - "Polymaker", - "PLA", - "PolyLite CosPLA" - ] - ], - "OFJhT2fd": [ - [ - "Snapmaker", - "ABS", - "Snapmaker Dual ABS" - ] - ], - "OFJnEaCp": [ - [ - "BETA", - "PLA", - "BETA PLA Transparent" - ] - ], - "OFJrvXth": [ - [ - "Snapmaker", - "ABS", - "Snapmaker ABS Benchy" - ] - ], - "OFJs1ToM": [ - [ - "COEX 3D", - "PA", - "COEX NYLEX UNFILLED" - ] - ], - "OFJu1XwK": [ - [ - "NIT", - "PETG", - "NIT PETG" - ] - ], - "OFJxSqO4": [ - [ - "Yumi", - "PLA", - "YUMI PLA Direct Drive" - ] - ], - "OFK7830e": [ - [ - "BETA", - "TPU", - "BETA TPU 95A" - ] - ], - "OFK8XHPn": [ - [ - "Overture", - "ABS", - "Overture ABS" - ] - ], - "OFKIQO2W": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido" - ] - ], - "OFKKajh6": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Plata" - ] - ], - "OFKTGKJU": [ - [ - "FusRock", - "PET", - "FusRock PET" - ] - ], - "OFKTSiYF": [ - [ - "FilAr", - "PLA", - "FilAr PLA Blanco Calido" - ] - ], - "OFKUEXPA": [ - [ - "Snapmaker", - "ASA", - "Snapmaker Dual ASA" - ] - ], - "OFKW5hEW": [ - [ - "FusRock", - "PAHT-CF", - "FusRock PAHT-CF" - ] - ], - "OFKWWgyp": [ - [ - "FilAr", - "PLA", - "FilAr PLA Carpincho" - ] - ], - "OFKYBAWe": [ - [ - "BETA", - "PLA", - "BETA PLA Marble" - ] - ], - "OFKZ9skj": [ - [ - "FilAr", - "PLA", - "FilAr PLA Naranja Tigre" - ] - ], - "OFKbdiiJ": [ - [ - "Polymaker", - "PLA", - "PolySonic PLA Pro" - ] - ], - "OFKfJTwL": [ - [ - "QIDI", - "PET-CF", - "QIDI PET-CF" - ] - ], - "OFKgmsqE": [ - [ - "QIDI", - "PAHT-CF", - "QIDI PAHT-CF" - ] - ], - "OFKhMPeX": [ - [ - "Bambu Lab", - "PC", - "Bambu PC" - ] - ], - "OFKiSMWR": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Marble" - ] - ], - "OFKyNkQz": [ - [ - "BETA", - "PETG", - "BETA PETG UV Color Change" - ] - ], - "OFL9aRjN": [ - [ - "Snapmaker", - "PETG", - "Snapmaker PETG HF" - ] - ], - "OFLAXKqP": [ - [ - "WonderMaker", - "TPU", - "WonderMaker TPU 95A" - ] - ], - "OFLC1oRH": [ - [ - "Flashforge", - "PPA-CF", - "Flashforge PPA-CF" - ] - ], - "OFLJ8S6I": [ - [ - "SUNLU", - "PLA", - "SUNLU Wood PLA" - ] - ], - "OFLNgV3C": [ - [ - "DREMC", - "ASA", - "DREMC ASA" - ] - ], - "OFLOf6Sc": [ - [ - "Tiertime", - "TPU", - "Tiertime TPU 95A" - ] - ], - "OFLPAxz3": [ - [ - "Generic", - "ASA", - "Generic ASA" - ] - ], - "OFLTYJW0": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Translucent" - ] - ], - "OFLXvuMr": [ - [ - "Elegoo", - "PETG", - "Elegoo Rapid PETG" - ] - ], - "OFLYDngx": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG" - ] - ], - "OFLakOUI": [ - [ - "Generic", - "PC", - "Generic PC" - ] - ], - "OFLbXwoL": [ - [ - "Artillery", - "PLA Silk", - "Artillery PLA Silk" - ] - ], - "OFLbdkrE": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Eco" - ] - ], - "OFLcd093": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG" - ] - ], - "OFLfywkp": [ - [ - "Afinia", - "ABS", - "Afinia ABS+" - ] - ], - "OFLgwqp2": [ - [ - "Creality", - "PETG-GF", - "Hyper PETG-GF" - ] - ], - "OFLjDYxH": [ - [ - "addnorth", - "PLA", - "addnorth PLA X-PLA High Speed" - ] - ], - "OFLqgSuX": [ - [ - "BETA", - "PLA-CF", - "BETA PLA-CF" - ] - ], - "OFLzx3J4": [ - [ - "Creality", - "PLA", - "Hyper Marble" - ] - ], - "OFM0xjBG": [ - [ - "Creality", - "PLA", - "CR-PLA Matte" - ] - ], - "OFM4iJlv": [ - [ - "Generic", - "PA-CF", - "Generic PA12-CF" - ] - ], - "OFM91vZs": [ - [ - "Overture", - "ASA", - "Overture ASA" - ] - ], - "OFMDHOcT": [ - [ - "QIDI", - "TPU-AERO", - "QIDI TPU-Aero" - ] - ], - "OFMK5gVo": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Basic" - ] - ], - "OFML2aVd": [ - [ - "Anycubic", - "TPU", - "Anycubic TPU 95A" - ] - ], - "OFMSvS8z": [ - [ - "Artillery", - "PA", - "Artillery PA" - ] - ], - "OFMTK0UC": [ - [ - "Bambu Lab", - "PA", - "Bambu Support For PA/PET" - ] - ], - "OFMUWNkp": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA+" - ] - ], - "OFMZvH0z": [ - [ - "Overture", - "PLA", - "Overture Rock PLA" - ] - ], - "OFMjtqTC": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Wood" - ] - ], - "OFMkAW6r": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Color Change" - ] - ], - "OFMpxamb": [ - [ - "Flashforge", - "PETG", - "Flashforge PETG" - ] - ], - "OFMsDGbs": [ - [ - "Anycubic", - "TPU", - "Anycubic TPU" - ] - ], - "OFMuXBmO": [ - [ - "Elas", - "PLA", - "Elas PLA Basic" - ] - ], - "OFMzRg65": [ - [ - "BETA", - "PLA", - "BETA PLA PRO" - ] - ], - "OFN8QBhu": [ - [ - "addnorth", - "PLA", - "addnorth PLA Wood" - ] - ], - "OFN9fefN": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS-A100" - ] - ], - "OFNBlAPT": [ - [ - "Orca Arena", - "PETG", - "Arena PETG Basic" - ] - ], - "OFNGTH3w": [ - [ - "Tiertime", - "PLA", - "Tiertime PLA" - ] - ], - "OFNQKF0M": [ - [ - "Tiertime", - "ABS", - "Tiertime ABS" - ] - ], - "OFNSYu5h": [ - [ - "Volumic", - "PP", - "Volumic PP Ultra (Performance)" - ] - ], - "OFNU9YIW": [ - [ - "FilAr", - "PETG", - "FilAr PETG Azul Boreal" - ] - ], - "OFNemJM6": [ - [ - "FilAr", - "PLA", - "FilAr PLA Cobre" - ] - ], - "OFNjku08": [ - [ - "Generic", - "PETG", - "Generic High Flow PETG" - ] - ], - "OFNk8AvA": [ - [ - "BETA", - "PETG", - "BETA PETG Gradient" - ] - ], - "OFNk8bxk": [ - [ - "Bambu Lab", - "PA-GF", - "Bambu PA6-GF" - ] - ], - "OFNstOna": [ - [ - "Eryone", - "PETG-CF", - "Eryone PETG-CF" - ] - ], - "OFNvBIL0": [ - [ - "Creality", - "PA-CF", - "Hyper PPA-CF" - ] - ], - "OFO1GEq6": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Neon" - ] - ], - "OFO5djrM": [ - [ - "Generic", - "PETG-CF", - "Generic PETG-CF10" - ] - ], - "OFO6GMJ3": [ - [ - "addnorth", - "TPU", - "addnorth TPU EasyFlex" - ] - ], - "OFOABq7t": [ - [ - "Aliz", - "PETG", - "AliZ PETG-Metal" - ] - ], - "OFOAdMCB": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Metal" - ] - ], - "OFOHOf2F": [ - [ - "eSUN", - "PLA", - "eSUN PLA-HS" - ] - ], - "OFOJPAAS": [ - [ - "iQ Materials", - "VXL90 Xioneer", - "VXL90 TiQ2 P2" - ] - ], - "OFOPU1xv": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Full Spectrum" - ] - ], - "OFOQCfVa": [ - [ - "addnorth", - "PLA", - "addnorth PLA Premium Silk" - ] - ], - "OFObG16Q": [ - [ - "InfiMech", - "PLA", - "InfiMech PLA Basic" - ] - ], - "OFObyktP": [ - [ - "Tiertime", - "PETG", - "Tiertime PETG" - ] - ], - "OFOiJfLM": [ - [ - "FILL3D", - "PETG-CF", - "FILL3D PETG CF" - ] - ], - "OFOnSNt3": [ - [ - "Artillery", - "PETG-CF", - "Artillery PETG-CF" - ] - ], - "OFOsHDnB": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG PRO" - ] - ], - "OFOuEEvv": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido 0.2 nozzle" - ] - ], - "OFOvv91M": [ - [ - "Polymaker", - "ABS", - "PolyLite ABS" - ] - ], - "OFOwQuZM": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker PETG-CF" - ] - ], - "OFOzwywz": [ - [ - "Eryone", - "ABS", - "Eryone ABS" - ] - ], - "OFP26zNb": [ - [ - "FilAr", - "PLA", - "FilAr PLA Violeta Jacaranda" - ] - ], - "OFPHLnoe": [ - [ - "Creality", - "ASA", - "HP-ASA" - ] - ], - "OFPWPlSC": [ - [ - "FILL3D", - "PP", - "FILL3D PP" - ] - ], - "OFPYDWgC": [ - [ - "Peopoly", - "PET-CF", - "Peopoly Lancer PET-CF" - ] - ], - "OFPbyOSk": [ - [ - "FilAr", - "PETG", - "FilAr PETG Rojo Carmesi" - ] - ], - "OFPc4zVY": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA INGEO 870" - ] - ], - "OFPkCJKE": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Satin" - ] - ], - "OFPklMI1": [ - [ - "Generic", - "PE", - "Generic PE" - ] - ], - "OFPoyiFs": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA" - ] - ], - "OFPqX3x2": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rosa Amaranto" - ] - ], - "OFQ1KzO8": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Silk" - ] - ], - "OFQ1zgm3": [ - [ - "Eryone", - "ABS-CF", - "Eryone ABS-CF" - ] - ], - "OFQ3e56w": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Galaxy" - ] - ], - "OFQ40XeN": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough" - ] - ], - "OFQ5TxZ2": [ - [ - "addnorth", - "PA", - "addnorth PVDF Adamant S1" - ] - ], - "OFQEGL7z": [ - [ - "FlyingBear", - "PA-CF", - "FlyingBear PA-CF" - ] - ], - "OFQGvU2G": [ - [ - "Orca Arena", - "TPU", - "Arena TPU 95A" - ] - ], - "OFQHiNJs": [ - [ - "Bambu Lab", - "PA", - "Bambu Support G" - ] - ], - "OFQLcbps": [ - [ - "Generic", - "PA-CF", - "Generic PA-CF" - ] - ], - "OFQMTRc8": [ - [ - "Snapmaker", - "PETG", - "Snapmaker J1 PETG" - ] - ], - "OFQMsFfF": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF10" - ] - ], - "OFQWIKbV": [ - [ - "FilAr", - "PLA", - "FilAr PLA Titanio" - ] - ], - "OFQYaiGg": [ - [ - "Snapmaker", - "PET", - "Snapmaker PET" - ] - ], - "OFQbjX3s": [ - [ - "FILL3D", - "PETG", - "FILL3D PETG" - ] - ], - "OFQdaVZS": [ - [ - "Generic", - "PET-CF", - "Generic PET-CF" - ] - ], - "OFQe7sAx": [ - [ - "Anycubic", - "PA6-CF", - "Anycubic PA6-CF" - ] - ], - "OFQyyO0l": [ - [ - "Polymaker", - "PA", - "Polymaker CoPA" - ] - ], - "OFR0gODA": [ - [ - "SeeMeCNC", - "ABS", - "SeeMeCNC ABS" - ] - ], - "OFR1XLMN": [ - [ - "QIDI", - "TPU", - "QIDI TPU 95A-HF" - ] - ], - "OFRFhdqy": [ - [ - "addnorth", - "PLA", - "addnorth PLA Textura" - ] - ], - "OFRJ325z": [ - [ - "LH Stinger", - "PETG", - "LHS PETG" - ] - ], - "OFRhBryT": [ - [ - "Cubicon", - "PLA", - "Cubicon PLAi21" - ] - ], - "OFRhCTUg": [ - [ - "Anycubic", - "PET-CF", - "Anycubic PET-CF" - ] - ], - "OFRiFnfQ": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG Transition" - ] - ], - "OFRiYgMK": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Celestial" - ] - ], - "OFRkjhxK": [ - [ - "Volumic", - "PVA", - "Volumic PVA-BVOH (Performance)" - ] - ], - "OFRmGKVX": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA+" - ] - ], - "OFRooa0F": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker Dual PA-CF" - ] - ], - "OFRpAZ1P": [ - [ - "DeltaMaker", - "PLA", - "DeltaMaker Brand PLA" - ] - ], - "OFRyOsZj": [ - [ - "re3D", - "PLA", - "re3D PLA" - ] - ], - "OFRzR5mi": [ - [ - "eSUN", - "PLA-AERO", - "eSUN ePLA-LW" - ] - ], - "OFS2tn6G": [ - [ - "Polymaker", - "PA", - "Fiberon PA612-CF" - ] - ], - "OFS4jbj3": [ - [ - "Eryone", - "PA", - "Eryone PA" - ] - ], - "OFS8lTQt": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Silk" - ] - ], - "OFSDfduA": [ - [ - "Flashforge", - "TPU", - "Flashforge TPU 65D" - ] - ], - "OFSa39yP": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA" - ] - ], - "OFSbGfsz": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Basic" - ] - ], - "OFSfm8iP": [ - [ - "BETA", - "PLA", - "BETA PLA Heat Color Change" - ] - ], - "OFSiCZP3": [ - [ - "BETA", - "PETG-CF", - "BETA PETG-GF" - ] - ], - "OFSqIcJC": [ - [ - "Flashforge", - "TPU", - "Flashforge TPU 95A" - ] - ], - "OFSw6Mor": [ - [ - "addnorth", - "PA", - "addnorth PA Adura FDA" - ] - ], - "OFSwbBWS": [ - [ - "DREMC", - "PLA", - "DREMC PLA+" - ] - ], - "OFT2jon4": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido" - ] - ], - "OFTGHyNC": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Impact" - ] - ], - "OFTHDCqA": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Pure" - ] - ], - "OFTOPcx0": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Transition" - ] - ], - "OFTRZ8Y4": [ - [ - "Bambu Lab", - "PETG-CF", - "Bambu PETG-CF" - ] - ], - "OFTSXxzE": [ - [ - "Flashforge", - "PPS-CF", - "Flashforge PPS-CF" - ] - ], - "OFTXduCM": [ - [ - "eSUN", - "ABS", - "eSUN ABS+" - ] - ], - "OFTcE0nA": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Basic" - ] - ], - "OFTdauIq": [ - [ - "Volumic", - "PETG", - "Volumic PCTG Ultra (Performance)" - ] - ], - "OFTkj6DR": [ - [ - "Anycubic", - "PVA", - "Anycubic PVA" - ] - ], - "OFTlRzpe": [ - [ - "FilAr", - "PLA", - "FilAr PLA Gris Pizarra" - ] - ], - "OFTnWzBs": [ - [ - "Creality", - "PLA-CF", - "Hyper PLA-CF" - ] - ], - "OFTs8peJ": [ - [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPE" - ] - ], - "OFTsHNQi": [ - [ - "QIDI", - "ASA", - "QIDI ASA" - ] - ], - "OFU1zPxE": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Galaxy" - ] - ], - "OFU3QXL7": [ - [ - "re3D", - "PC", - "re3D PC" - ] - ], - "OFU5JPDy": [ - [ - "addnorth", - "PETG", - "addnorth PETG PRO Matte" - ] - ], - "OFU7CKZt": [ - [ - "Volumic", - "ASA", - "Volumic ASA Ultra (Performance)" - ] - ], - "OFUF7oA4": [ - [ - "Creality", - "PC", - "Hyper PC" - ] - ], - "OFUH1aee": [ - [ - "Volumic", - "TPU", - "Volumic FLEX93 Ultra (Performance)" - ] - ], - "OFUIfGoh": [ - [ - "Snapmaker", - "PET", - "Snapmaker Dual PET" - ] - ], - "OFUYCqtB": [ - [ - "InfiMech", - "PLA", - "InfiMech PLA" - ] - ], - "OFUaHEO9": [ - [ - "Anycubic", - "PEBA", - "Anycubic PEBA 95A" - ] - ], - "OFUanySo": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Silk+" - ] - ], - "OFUmS5z5": [ - [ - "eSUN", - "ASA", - "eSUN ASA+" - ] - ], - "OFUtiVRn": [ - [ - "addnorth", - "PETG", - "addnorth PETG ESD" - ] - ], - "OFUyDDNv": [ - [ - "Elegoo", - "PC", - "Elegoo PC" - ] - ], - "OFV5Q7j2": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPE" - ] - ], - "OFV5c8hG": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Sparkle" - ] - ], - "OFV5tNw6": [ - [ - "Elegoo", - "PETG", - "Elegoo PET-CF" - ] - ], - "OFV5wEMe": [ - [ - "Afinia", - "ABS", - "Afinia ABS" - ] - ], - "OFV8Mxqx": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA-SILK" - ] - ], - "OFVBlUFH": [ - [ - "DREMC", - "PETG", - "DREMC PETG" - ] - ], - "OFVCkX5w": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 95A" - ] - ], - "OFVDWuxl": [ - [ - "addnorth", - "PLA", - "addnorth PLA HT-PLA PRO Matte" - ] - ], - "OFVHMFJX": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough 0.2 nozzle" - ] - ], - "OFVptRxp": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 30D" - ] - ], - "OFVtIasg": [ - [ - "Eryone", - "ASA", - "Eryone ASA" - ] - ], - "OFW29a9R": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA" - ] - ], - "OFW5FqkL": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido Silk" - ] - ], - "OFW8M3CY": [ - [ - "BETA", - "PLA", - "BETA PLA Chameleon" - ] - ], - "OFW8lqnb": [ - [ - "Snapmaker", - "PETG", - "Snapmaker PETG Translucent" - ] - ], - "OFWDe7YH": [ - [ - "QIDI", - "UltraPA", - "QIDI UltraPA" - ] - ], - "OFWK0Y9A": [ - [ - "addnorth", - "PA", - "addnorth PA Adura" - ] - ], - "OFWRITFw": [ - [ - "Prusa Polymers", - "PLA", - "Prusament rPLA" - ] - ], - "OFWTAEjH": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPE" - ] - ], - "OFWTRJ1K": [ - [ - "FilAr", - "PLA", - "FilAr PLA Bronce" - ] - ], - "OFWXCbVF": [ - [ - "Flashforge", - "PC", - "Flashforge PC" - ] - ], - "OFWYtgCa": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Wood" - ] - ], - "OFWa0NiB": [ - [ - "Volumic", - "PA", - "Volumic NYLON Ultra" - ] - ], - "OFWao3Ic": [ - [ - "Creality", - "PLA", - "Ender-PLA" - ] - ], - "OFWbdGsC": [ - [ - "Generic", - "PLA-CF", - "Generic PLA-CF" - ] - ], - "OFWgFOjn": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Silk" - ] - ], - "OFWwF7K7": [ - [ - "FilAr", - "PLA", - "FilAr PLA Cafe con Leche" - ] - ], - "OFX0etlv": [ - [ - "re3D", - "PETG", - "re3D PETG" - ] - ], - "OFX0ycRQ": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA12-CF" - ] - ], - "OFX2zcrM": [ - [ - "Generic", - "PLA-CF", - "Generic PLA-CF10" - ] - ], - "OFXCBZTA": [ - [ - "Eolas Prints", - "ABS", - "Eolas Prints ABS" - ] - ], - "OFXIbw5D": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Matte" - ] - ], - "OFXJ9iom": [ - [ - "iQ Materials", - "HPP4GF25", - "Grauts HPP4GF25 P1" - ] - ], - "OFXSvqOX": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU 95A HF" - ] - ], - "OFXTPuqV": [ - [ - "Elas", - "PETG", - "Elas PETG Basic" - ] - ], - "OFXW4CDh": [ - [ - "Generic", - "PCTG", - "Generic PCTG BigNozzle" - ] - ], - "OFXi59OX": [ - [ - "Afinia", - "ABS", - "Afinia Value ABS" - ] - ], - "OFXiArjA": [ - [ - "Flashforge", - "PETG", - "Flashforge PETG Pro" - ] - ], - "OFXk1emJ": [ - [ - "Artillery", - "PLA Basic", - "Artillery PLA Basic" - ] - ], - "OFXkm8q1": [ - [ - "Generic", - "PP-CF", - "Generic PP-CF" - ] - ], - "OFXmv5p0": [ - [ - "Generic", - "PLA", - "Generic Speed PLA" - ] - ], - "OFXn3Vd9": [ - [ - "QIDI", - "PAHT-S", - "QIDI Support For PAHT" - ] - ], - "OFXnToSX": [ - [ - "Creality", - "PLA", - "Hyper Stardust" - ] - ], - "OFXuGxvQ": [ - [ - "Volumic", - "PLA", - "Volumic PLA Ultra" - ] - ], - "OFXz7Mwx": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Silk" - ] - ], - "OFXzQ4yL": [ - [ - "Bambu Lab", - "ASA-AERO", - "Bambu ASA-Aero" - ] - ], - "OFY0F5qA": [ - [ - "Volumic", - "PETG", - "Volumic PETG Ultra carbone (Performance)" - ] - ], - "OFY3AB7j": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Matte" - ] - ], - "OFY7jxcS": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU 90A" - ] - ], - "OFY9muEs": [ - [ - "Generic", - "ABS", - "Generic ABS" - ] - ], - "OFYE7YZw": [ - [ - "Tinmorry", - "PETG", - "Tinmorry PETG-ECO" - ] - ], - "OFYEtXuk": [ - [ - "Snapmaker", - "PA-CF", - "Snapmaker J1 PA-CF" - ] - ], - "OFYGbPHX": [ - [ - "Polymaker", - "PLA", - "PolyLite Dual PLA" - ] - ], - "OFYGrfHY": [ - [ - "BETA", - "PETG", - "BETA PETG Fluorescence" - ] - ], - "OFYPdQJh": [ - [ - "Generic", - "PETG", - "Generic PETG" - ] - ], - "OFYTIMbj": [ - [ - "Flashforge", - "ABS-CF", - "Flashforge ABS-CF" - ] - ], - "OFYYeMyQ": [ - [ - "Flashforge", - "PETG", - "Flashforge PETG Basic" - ] - ], - "OFYd5uS3": [ - [ - "DREMC", - "TPU", - "DREMC TPU 95A" - ] - ], - "OFYezc6s": [ - [ - "FlyingBear", - "TPU", - "FlyingBear TPU" - ] - ], - "OFYuowge": [ - [ - "Other", - "ABS", - "Other ABS" - ] - ], - "OFZ0mR5b": [ - [ - "Anycubic", - "PLA-CF", - "Anycubic PLA-CF" - ] - ], - "OFZ2LuAi": [ - [ - "Yumi", - "PLA", - "YUMI PLA Bowden" - ] - ], - "OFZ3K2cL": [ - [ - "QIDI", - "PA6-CF", - "QIDI PA6-CF" - ] - ], - "OFZ4QbfK": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rosa Flamenco" - ] - ], - "OFZGrQTU": [ - [ - "addnorth", - "PETG", - "addnorth PETG Economy" - ] - ], - "OFZJft47": [ - [ - "addnorth", - "PLA", - "addnorth PLA Economy" - ] - ], - "OFZLtWYs": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF25" - ] - ], - "OFZOuWrO": [ - [ - "QIDI", - "PPS-CF", - "QIDI PPS-CF" - ] - ], - "OFZivHGL": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA" - ] - ], - "OFZqZMuv": [ - [ - "BETA", - "ASA", - "BETA ASA" - ] - ], - "OFZr862X": [ - [ - "Generic", - "PLA", - "Generic PLA HF" - ] - ], - "OFZtOQtl": [ - [ - "Flashforge", - "PA6-CF", - "Flashforge PA6-CF" - ] - ], - "OFZtkHRq": [ - [ - "Anycubic", - "PC", - "Anycubic PC" - ] - ], - "OFaDOaNt": [ - [ - "FilAr", - "PLA", - "FilAr PLA Celeste Cielo" - ] - ], - "OFaDsTE0": [ - [ - "Polymaker", - "PA", - "Polymaker S1" - ] - ], - "OFaEesXQ": [ - [ - "FilAr", - "PLA", - "FilAr PLA Rojo de Carreras" - ] - ], - "OFaEuvNF": [ - [ - "Anycubic", - "PAHT-CF", - "Anycubic PAHT-CF" - ] - ], - "OFaHjk1V": [ - [ - "Volumic", - "PC", - "Volumic PC" - ] - ], - "OFaP2SsH": [ - [ - "LH Stinger", - "ASA", - "LHS ASA" - ] - ], - "OFaQMgRH": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Tough" - ] - ], - "OFaRjiIm": [ - [ - "SeeMeCNC", - "PETG-CF", - "SeeMeCNC PETG-CF" - ] - ], - "OFaYz8iE": [ - [ - "Elas", - "PLA", - "Elas PLA Pro" - ] - ], - "OFaaddbQ": [ - [ - "Flashforge", - "PVA", - "Flashforge PVA" - ] - ], - "OFaeIx7W": [ - [ - "iQ Materials", - "PETG Polymax", - "Polymaker PETG Polymax black P1" - ] - ], - "OFafO6VM": [ - [ - "Generic", - "PC-CF", - "Generic PC-CF" - ] - ], - "OFafocjw": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS" - ] - ], - "OFausr3F": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Rosa" - ] - ], - "OFb5EEM3": [ - [ - "Artillery", - "PET", - "Artillery PET" - ] - ], - "OFbP8zEO": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Silk" - ] - ], - "OFbPuPKY": [ - [ - "Generic", - "FLEX", - "Generic FLEX" - ] - ], - "OFbSChKb": [ - [ - "SeeMeCNC", - "PLA", - "SeeMeCNC PLA" - ] - ], - "OFbSZBOi": [ - [ - "InfiMech", - "TPU", - "InfiMech TPU Basic" - ] - ], - "OFbh7HcA": [ - [ - "Eryone", - "PP-CF", - "Eryone PP-CF" - ] - ], - "OFc3xdm9": [ - [ - "Overture", - "PLA", - "Overture PLA" - ] - ], - "OFc87pL3": [ - [ - "Orca Arena", - "PET-CF", - "Arena PET-CF" - ] - ], - "OFcBJQcC": [ - [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPU High-Flow" - ] - ], - "OFcBl0nJ": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA612-CF15" - ] - ], - "OFcJDtTx": [ - [ - "Artillery", - "TPU", - "Artillery TPU" - ] - ], - "OFcKtw8W": [ - [ - "Volumic", - "PA6-CF", - "PA6 CF20 (Performance)" - ] - ], - "OFcVLpNA": [ - [ - "FusRock", - "PAHT-GF", - "FusRock PAHT-GF" - ] - ], - "OFcfQk4h": [ - [ - "Overture", - "PLA", - "Overture Air PLA" - ] - ], - "OFcnWTJB": [ - [ - "BETA", - "PLA", - "BETA PLA Glitter" - ] - ], - "OFcogyWl": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Metal" - ] - ], - "OFcpa50Z": [ - [ - "addnorth", - "PLA-CF", - "addnorth PLA-CF Carbon Fiber" - ] - ], - "OFctg8r1": [ - [ - "CoLiDo", - "PLA", - "CoLiDo PLA+" - ] - ], - "OFcvKkrs": [ - [ - "Overture", - "TPU", - "Overture TPU" - ] - ], - "OFcytyoA": [ - [ - "Polymaker", - "PETG", - "Fiberon PETG-ESD" - ] - ], - "OFd0Fv0k": [ - [ - "Generic", - "PE-CF", - "Generic PE-CF" - ] - ], - "OFd2vX0G": [ - [ - "COEX 3D", - "PLA", - "COEX PLA PRIME" - ] - ], - "OFd4zw5l": [ - [ - "Aliz", - "PA-CF", - "AliZ PA-CF" - ] - ], - "OFdD5Wbu": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker J1 PLA-CF" - ] - ], - "OFdI4zMo": [ - [ - "DREMC", - "ASA", - "DREMC ASA CF" - ] - ], - "OFdXVjGZ": [ - [ - "Tiertime", - "PC", - "Tiertime PC" - ] - ], - "OFdb8YNz": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Manzana" - ] - ], - "OFdd8ZqJ": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Wood" - ] - ], - "OFdkWDiy": [ - [ - "Cubicon", - "PLA", - "Cubicon PLAi21" - ] - ], - "OFdqkWtz": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Luminous" - ] - ], - "OFdrYBmI": [ - [ - "Tiertime", - "ASA", - "Tiertime ASA" - ] - ], - "OFdtPd9h": [ - [ - "QIDI", - "PETG-GF", - "QIDI PETG-GF" - ] - ], - "OFdzlrhi": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Chocolate" - ] - ], - "OFe61n6v": [ - [ - "RatRig", - "PETG-CF10", - "RatRig PunkFil PETG CF" - ] - ], - "OFe8tuNb": [ - [ - "Tiertime", - "PA6-CF", - "Tiertime PA6-CF" - ] - ], - "OFe8yBMG": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough 0.6 nozzle" - ] - ], - "OFeAxvEt": [ - [ - "Snapmaker", - "ABS", - "Snapmaker Dual ABS Benchy" - ] - ], - "OFeCJqxx": [ - [ - "QIDI", - "ABS", - "QIDI ABS Rapido Metal" - ] - ], - "OFeF4UNh": [ - [ - "BETA", - "PLA", - "BETA PLA Silk" - ] - ], - "OFeIyhUx": [ - [ - "Anycubic", - "PC-CF", - "Anycubic PC-CF" - ] - ], - "OFeTATC7": [ - [ - "Snapmaker", - "Breakaway Support", - "Snapmaker J1 Breakaway" - ] - ], - "OFeVzkSU": [ - [ - "Polymaker", - "ABS", - "Fiberon PPS-GF20" - ] - ], - "OFeelsSM": [ - [ - "HATCHBOX", - "PLA", - "HATCHBOX PLA" - ] - ], - "OFelDBgv": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA" - ] - ], - "OFepU7Tl": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Matte" - ] - ], - "OFesA6rF": [ - [ - "Generic", - "PLA", - "Generic PLA Silk" - ] - ], - "OFexaZU2": [ - [ - "FilAr", - "PLA", - "FilAr PLA Manteca" - ] - ], - "OFf0MkD5": [ - [ - "QIDI", - "PETG", - "QIDI PETG Translucent" - ] - ], - "OFf52D4e": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker PLA-CF" - ] - ], - "OFf5awy4": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Matte" - ] - ], - "OFf6ZEvu": [ - [ - "InfiMech", - "PC", - "InfiMech PC" - ] - ], - "OFf6mfQO": [ - [ - "Bambu Lab", - "ABS", - "Bambu Support for ABS" - ] - ], - "OFf6ynfH": [ - [ - "FlyingBear", - "PETG Basic", - "FlyingBear PETG Basic" - ] - ], - "OFfBpSRI": [ - [ - "Bambu Lab", - "ASA", - "Bambu ASA" - ] - ], - "OFfD87Gy": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Glow" - ] - ], - "OFfHGM1D": [ - [ - "re3D", - "PP", - "re3D rPP" - ] - ], - "OFfJSCzm": [ - [ - "FDplast", - "PETG", - "FDplast PETG" - ] - ], - "OFfSqS4R": [ - [ - "Creality", - "PLA", - "ENDER FAST PLA" - ] - ], - "OFfYHK5z": [ - [ - "Polymaker", - "PLA", - "Polymaker PLA-HT" - ] - ], - "OFfZcoKr": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Piel" - ] - ], - "OFfb10SK": [ - [ - "Artillery", - "PC", - "Artillery PC" - ] - ], - "OFfmHUkQ": [ - [ - "Snapmaker", - "Breakaway Support", - "Snapmaker Dual Breakaway" - ] - ], - "OFfmZrI3": [ - [ - "FDplast", - "TPU", - "FDplast TPU" - ] - ], - "OFfnXFie": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 40D" - ] - ], - "OFfq5YXA": [ - [ - "Valment", - "PLA-CF", - "Valment PLA-CF" - ] - ], - "OFfr4XNO": [ - [ - "COEX 3D", - "TPU", - "COEX TPE 60D" - ] - ], - "OFfr6JDF": [ - [ - "QIDI", - "PETG", - "QIDI PETG Tough 0.8 nozzle" - ] - ], - "OFfuhviw": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Marble" - ] - ], - "OFfuih8e": [ - [ - "Creality", - "PLA", - "Creality Silk PLA" - ] - ], - "OFg3cWVt": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Metal" - ] - ], - "OFg57Nmc": [ - [ - "Bambu Lab", - "PC", - "Bambu PC FR" - ] - ], - "OFg8hMzT": [ - [ - "FILL3D", - "PP", - "FILL3D PPCF" - ] - ], - "OFg8ndtj": [ - [ - "Generic", - "PA", - "Generic PA" - ] - ], - "OFgHh8ly": [ - [ - "Afinia", - "PLA", - "Afinia Value PLA" - ] - ], - "OFgMWJ8T": [ - [ - "FilAr", - "PLA", - "FilAr PLA Negro Azabache" - ] - ], - "OFgSbX7E": [ - [ - "Volumic", - "PC", - "Volumic PC (Performance)" - ] - ], - "OFgVQkqW": [ - [ - "Cubicon", - "ABS", - "Cubicon ABSk" - ] - ], - "OFgXgt98": [ - [ - "Artillery", - "ABS", - "Artillery ABS" - ] - ], - "OFgbpcy9": [ - [ - "Generic", - "TPU", - "Generic TPU" - ] - ], - "OFgdaBOt": [ - [ - "Polymaker", - "PLA", - "Polymaker Tough PLA Family" - ] - ], - "OFgeM7nD": [ - [ - "Flashforge", - "PA-CF", - "Flashforge PA12-CF" - ] - ], - "OFgjgN35": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Silk" - ] - ], - "OFglhKLM": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido 0.8 nozzle" - ] - ], - "OFgpLTMR": [ - [ - "FilAr", - "PETG", - "FilAr PETG Gris Plata" - ] - ], - "OFgpQwkk": [ - [ - "Creality", - "PLA", - "CR-PLA Fluo" - ] - ], - "OFgptDSf": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Matte" - ] - ], - "OFgyPlwU": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU High-Flow" - ] - ], - "OFh7mvPO": [ - [ - "Prusa Polymers", - "PVB", - "Prusament PVB" - ] - ], - "OFh9u9c0": [ - [ - "Generic", - "PA-GF", - "Generic PA6-GF" - ] - ], - "OFhASRWj": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Temp Shift" - ] - ], - "OFhMO9Kh": [ - [ - "GreenGate3D", - "PETG", - "GreenGate3D PETG" - ] - ], - "OFhN09f0": [ - [ - "addnorth", - "PC", - "addnorth PC BLend HT LCF" - ] - ], - "OFhO5aEJ": [ - [ - "RatRig", - "ABS", - "RatRig PunkFil ABS" - ] - ], - "OFhQf8ou": [ - [ - "Snapmaker", - "PLA-CF", - "Snapmaker PLA-CF" - ] - ], - "OFhQfUQY": [ - [ - "Generic", - "SBS", - "Generic SBS" - ] - ], - "OFhTPf6L": [ - [ - "Generic", - "PA6-CF", - "Generic PA6-CF" - ] - ], - "OFhUjPA5": [ - [ - "Eryone", - "TPU", - "Eryone TPU" - ] - ], - "OFhWc5Bv": [ - [ - "NIT", - "ABS", - "NIT ABS" - ] - ], - "OFhWhL1i": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG" - ] - ], - "OFhWrAuP": [ - [ - "QIDI", - "PLA-CF", - "QIDI PLA-CF" - ] - ], - "OFhbolij": [ - [ - "eSUN", - "PLA", - "eSUN PLA-Lite" - ] - ], - "OFhcYzR8": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Sparkle" - ] - ], - "OFhfd722": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU Flex 93A" - ] - ], - "OFhiJE7Y": [ - [ - "QIDI", - "PEBA", - "QIDI PEBA 95A" - ] - ], - "OFhkN0a7": [ - [ - "Creality", - "PA-CF", - "Hyper PA612-CF" - ] - ], - "OFhlCNqq": [ - [ - "COEX 3D", - "PLA", - "COEX PLA" - ] - ], - "OFhmxnYw": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Basic" - ] - ], - "OFhuaUQB": [ - [ - "Bambu Lab", - "ABS", - "Bambu ABS" - ] - ], - "OFhwiZ50": [ - [ - "QIDI", - "PLA", - "QIDI PLA Rapido 0.2 nozzle" - ] - ], - "OFhx4uOG": [ - [ - "QIDI", - "PET-GF", - "QIDI PET-GF" - ] - ], - "OFi5RSve": [ - [ - "eSUN", - "PLA", - "eSUN PLA-LW" - ] - ], - "OFi6PfUM": [ - [ - "Generic", - "PLA", - "Generic PLA-Silk" - ] - ], - "OFi90KlM": [ - [ - "Volumic", - "PA", - "Volumic NYLON Ultra (Performance)" - ] - ], - "OFiDpM1B": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Bordo" - ] - ], - "OFiEz2XI": [ - [ - "Cubicon", - "PA", - "Cubicon PA-CF" - ] - ], - "OFiWaoqD": [ - [ - "DREMC", - "PPA-CF", - "DREMC PPA-CF" - ] - ], - "OFibWuBd": [ - [ - "Flashforge", - "ABS", - "Flashforge ABS Basic" - ] - ], - "OFilAA3b": [ - [ - "Eryone", - "PLA-CF", - "Eryone PLA-CF" - ] - ], - "OFilD4bP": [ - [ - "FlyingBear", - "PLA", - "FlyingBear PLA" - ] - ], - "OFilnglt": [ - [ - "Artillery", - "PETG", - "Artillery PETG" - ] - ], - "OFin64Qg": [ - [ - "Generic", - "PLA", - "Generic Support for PLA" - ] - ], - "OFitS8al": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Neon" - ] - ], - "OFiwEbze": [ - [ - "Volumic", - "PETG-ESD", - "PETG ESD (Performance)" - ] - ], - "OFj3bTjw": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Amarillo" - ] - ], - "OFj64R5U": [ - [ - "Peopoly", - "ABS", - "Peopoly Lancer ABS-GF" - ] - ], - "OFjD3YTW": [ - [ - "QIDI", - "PC-ABS-FR", - "Qidi PC-ABS-FR" - ] - ], - "OFjHrAX0": [ - [ - "WonderMaker", - "ABS", - "WonderMaker ABS" - ] - ], - "OFjLAYgO": [ - [ - "Anycubic", - "PEBA", - "Anycubic PEBA" - ] - ], - "OFjPXrXO": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Glow" - ] - ], - "OFjT9PkZ": [ - [ - "FilAr", - "PLA", - "FilAr PLA Tabaco" - ] - ], - "OFjUGUIK": [ - [ - "iQ Materials", - "PACF Pro", - "Fiberthree PACF Pro P1" - ] - ], - "OFjUXn67": [ - [ - "BETA", - "ABS", - "BETA ABS" - ] - ], - "OFjVOWfJ": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA High Speed" - ] - ], - "OFjXrKFO": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Impact" - ] - ], - "OFjb0wos": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Metallic" - ] - ], - "OFjcwUEm": [ - [ - "Cubicon", - "PLA", - "Cubicon PLA" - ] - ], - "OFjiXpyf": [ - [ - "Generic", - "TPU", - "Generic TPU 95A" - ] - ], - "OFjkdnyN": [ - [ - "Snapmaker", - "TPU", - "Snapmaker Dual TPU" - ] - ], - "OFjoAe0R": [ - [ - "QIDI", - "PLA-CF", - "Qidi PLA-CF" - ] - ], - "OFjogeYN": [ - [ - "BETA", - "PETG", - "BETA PETG Glitter" - ] - ], - "OFjorDcx": [ - [ - "FDplast", - "ABS", - "FDplast ABS" - ] - ], - "OFjt8dDO": [ - [ - "FusRock", - "PA-CF", - "FusRock NexPA-CF25" - ] - ], - "OFjt9en1": [ - [ - "Generic", - "CoPE", - "Generic CoPE" - ] - ], - "OFjz0a3m": [ - [ - "Prusa Polymers", - "PC-CF", - "Prusament PC-CF" - ] - ], - "OFk8t9mz": [ - [ - "Polymaker", - "PETG-CF", - "Fiberon PETG-rCF" - ] - ], - "OFkAltI8": [ - [ - "Other", - "PA-CF", - "Other PA-CF" - ] - ], - "OFkGp50Y": [ - [ - "Volumic", - "UNIV", - "Volumic UNIVERSAL Ultra (Performance)" - ] - ], - "OFkGvN4d": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Pixel" - ] - ], - "OFkHbjUv": [ - [ - "BETA", - "PLA", - "BETA PLA Metallic" - ] - ], - "OFkOviHk": [ - [ - "Polymaker", - "PA6-CF", - "Fiberon PA6-CF" - ] - ], - "OFkR8E2c": [ - [ - "Prusa Polymers", - "PETG", - "Prusament PETG" - ] - ], - "OFkf1HHw": [ - [ - "Generic", - "PLA", - "Generic PLA-SILK" - ] - ], - "OFkhhUS0": [ - [ - "Elegoo", - "PLA", - "Elegoo Rapid PLA+" - ] - ], - "OFklJcWK": [ - [ - "Other", - "PLA", - "Other PLA Hyper" - ] - ], - "OFknl9Iz": [ - [ - "Bambu Lab", - "ABS-GF", - "Bambu ABS-GF" - ] - ], - "OFkoLUtR": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde Oliva" - ] - ], - "OFkq7rPy": [ - [ - "Eryone", - "PA-GF", - "Eryone PA-GF" - ] - ], - "OFks6esg": [ - [ - "Creality", - "PLA", - "EN-PLA+" - ] - ], - "OFkx5MEe": [ - [ - "Artillery", - "PVA", - "Artillery PVA" - ] - ], - "OFkzr35f": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Antibacterial" - ] - ], - "OFlBoEfL": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPU High-Flow" - ] - ], - "OFlIsW6f": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Matte" - ] - ], - "OFlN6DL1": [ - [ - "QIDI", - "UltraPA", - "QIDI PA-Ultra" - ] - ], - "OFlP3KWq": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG HF" - ] - ], - "OFlSNkhc": [ - [ - "Eolas Prints", - "ASA", - "Eolas Prints ASA" - ] - ], - "OFlfuj2k": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 85A" - ] - ], - "OFlgMgNM": [ - [ - "Flashforge", - "PPS", - "Flashforge PPS" - ] - ], - "OFllmFhT": [ - [ - "Generic", - "PETG", - "Generic PETG PRO" - ] - ], - "OFlmxlDG": [ - [ - "BETA", - "HIPS", - "BETA HIPS" - ] - ], - "OFln72PT": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA-CF" - ] - ], - "OFlsTpJG": [ - [ - "Elegoo", - "PC", - "Elegoo PC-FR" - ] - ], - "OFlufQpZ": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA" - ] - ], - "OFlwmqrC": [ - [ - "Polymaker", - "PLA", - "Polymaker HT-PLA-GF" - ] - ], - "OFm06H6V": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Basic" - ] - ], - "OFm4SivL": [ - [ - "Flashforge", - "PLA", - "Flashforge PLA Pro" - ] - ], - "OFm4ysMO": [ - [ - "FlyingBear", - "ABS", - "FlyingBear ABS" - ] - ], - "OFm70lLt": [ - [ - "CoLiDo", - "PLA", - "CoLiDo PLA" - ] - ], - "OFm8rqoY": [ - [ - "re3D", - "PP", - "re3D rPP" - ] - ], - "OFmCOW2Y": [ - [ - "re3D", - "PETG", - "re3D rPETG" - ] - ], - "OFmFwUWM": [ - [ - "Prusa Polymers", - "ASA", - "Prusament ASA" - ] - ], - "OFmJAd3A": [ - [ - "FDplast", - "HIPS", - "FDplast HIPS" - ] - ], - "OFmKU2Ha": [ - [ - "Eryone", - "PLA", - "Eryone PLA" - ] - ], - "OFmN2lvw": [ - [ - "Generic", - "TPU-AMS", - "Generic TPU for AMS" - ] - ], - "OFmY0l6t": [ - [ - "Generic", - "PLA", - "Generic PLA Matte" - ] - ], - "OFma5TXH": [ - [ - "QIDI", - "ABS", - "QIDI ABS Odorless" - ] - ], - "OFmaeU4a": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Naranja" - ] - ], - "OFmfizbq": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Silk" - ] - ], - "OFmhJs5V": [ - [ - "Elegoo", - "TPU", - "Elegoo TPU" - ] - ], - "OFmjN2bc": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA" - ] - ], - "OFmn9NZL": [ - [ - "FusRock", - "ABS-GF", - "FusRock ABS-GF" - ] - ], - "OFmpMwxS": [ - [ - "Generic", - "PLA", - "Generic PLA High Speed" - ] - ], - "OFmt513L": [ - [ - "BETA", - "PETG", - "BETA PETG Transparent" - ] - ], - "OFmveLWz": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG-GF" - ] - ], - "OFn1QaY3": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Translucent2" - ] - ], - "OFn2GlhY": [ - [ - "Creality", - "PA-CF", - "Hyper PA6-CF" - ] - ], - "OFn6WpN7": [ - [ - "QIDI", - "PA12-CF", - "QIDI PA12-CF" - ] - ], - "OFnBvPhb": [ - [ - "addnorth", - "PLA", - "addnorth PLA rPLA RE-ADD" - ] - ], - "OFnHc3D6": [ - [ - "eSUN", - "PLA-CF", - "eSUN PLA-CF" - ] - ], - "OFnO4wnf": [ - [ - "Prusa Polymers", - "PLA", - "Prusament PLA" - ] - ], - "OFnSeLHk": [ - [ - "CoLiDo", - "PLA", - "CoLiDo PLA Silk" - ] - ], - "OFnT7Qpb": [ - [ - "Generic", - "TPU", - "Generic TPU HF" - ] - ], - "OFnXrkhA": [ - [ - "InfiMech", - "PA-CF", - "InfiMech PA-CF" - ] - ], - "OFnXwW8l": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Pro Metallic" - ] - ], - "OFnYVFk2": [ - [ - "FilAr", - "PLA", - "FilAr PLA Azul Francia" - ] - ], - "OFncpm7O": [ - [ - "WonderMaker", - "PLA", - "WonderMaker PLA Silk" - ] - ], - "OFneOFWe": [ - [ - "CoLiDo", - "ABS", - "CoLiDo ABS" - ] - ], - "OFnejEt4": [ - [ - "FilAr", - "PETG", - "FilAr PETG Cian" - ] - ], - "OFnfxTvi": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Lite" - ] - ], - "OFngcE81": [ - [ - "LH Stinger", - "TPU", - "LHS TPU Foamy 78A" - ] - ], - "OFniMuTN": [ - [ - "Bambu Lab", - "PA6-CF", - "Bambu PA6-CF" - ] - ], - "OFnmp6rt": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA+" - ] - ], - "OFnpX8uh": [ - [ - "BETA", - "PETG", - "BETA PETG Matte" - ] - ], - "OFnyHfcv": [ - [ - "Generic", - "ABS", - "Generic ABS BigNozzle" - ] - ], - "OFo15hcT": [ - [ - "QIDI", - "PAHT-GF", - "QIDI PAHT-GF" - ] - ], - "OFo2UF2C": [ - [ - "Generic", - "BVOH", - "Generic BVOH" - ] - ], - "OFo6n2pB": [ - [ - "Anycubic", - "PETG", - "Anycubic PETG" - ] - ], - "OFoBTKmn": [ - [ - "Cubicon", - "PETG", - "Cubicon PETG" - ] - ], - "OFoSknDB": [ - [ - "FILL3D", - "PLA", - "FILL3D PLA Turbo" - ] - ], - "OFoYSJKi": [ - [ - "Generic", - "PETG-CF", - "Generic PETG-CF" - ] - ], - "OFobDOW5": [ - [ - "Elegoo", - "ASA", - "Elegoo ASA" - ] - ], - "OFocyw69": [ - [ - "Aliz", - "PETG", - "AliZ PETG" - ] - ], - "OFoiVqVM": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Basic" - ] - ], - "OFojbdhR": [ - [ - "Flashforge", - "ABS-GF", - "Flashforge ABS-GF" - ] - ], - "OForhBi4": [ - [ - "Cubicon", - "ABS", - "Cubicon ABSk" - ] - ], - "OFovEIbw": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG HF" - ] - ], - "OFp4ETDP": [ - [ - "Creality", - "PLA", - "CR-PLA" - ] - ], - "OFp57RRC": [ - [ - "QIDI", - "PPS-GF", - "QIDI PPS-GF" - ] - ], - "OFp9wdmf": [ - [ - "Eryone", - "PA-CF", - "Eryone PA-CF" - ] - ], - "OFpBlrvY": [ - [ - "Valment", - "PLA", - "Valment PLA Silk" - ] - ], - "OFpDo5Ix": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS" - ] - ], - "OFpPGSKG": [ - [ - "SUNLU", - "PLA", - "SUNLU Silk PLA+" - ] - ], - "OFpPJSHE": [ - [ - "Peopoly", - "PETG", - "Peopoly Lancer PETG-C" - ] - ], - "OFpW4gdi": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Matte" - ] - ], - "OFpdjFI3": [ - [ - "BETA", - "PLA", - "BETA PLA UV Color Change" - ] - ], - "OFpu74Qe": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Eco" - ] - ], - "OFpumhCM": [ - [ - "Volumic", - "UNIV", - "Volumic UNIVERSAL Ultra" - ] - ], - "OFq0TY7C": [ - [ - "Flashforge", - "ASA-CF", - "Flashforge ASA-CF" - ] - ], - "OFq8gfS4": [ - [ - "FilAr", - "PETG", - "FilAr PETG Negro Azabache" - ] - ], - "OFq9svOz": [ - [ - "Generic", - "PPS", - "Generic PPS" - ] - ], - "OFqFRiLb": [ - [ - "Generic", - "PLA", - "Generic PLA BigNozzle" - ] - ], - "OFqGRZyH": [ - [ - "Numakers", - "PLA", - "Numakers PLA+" - ] - ], - "OFqINlYj": [ - [ - "eSUN", - "PLA", - "eSUN PLA+" - ] - ], - "OFqTwtXM": [ - [ - "addnorth", - "PETG", - "addnorth PETG rPETG Matte" - ] - ], - "OFqcL5UF": [ - [ - "QIDI", - "PA-S", - "QIDI Support For PET/PA" - ] - ], - "OFqtx549": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Celeste Cielo" - ] - ], - "OFqw2PQA": [ - [ - "Polymaker", - "PLA", - "Panchroma CoPE" - ] - ], - "OFrFBEfd": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Neon" - ] - ], - "OFrGJ4tR": [ - [ - "Anycubic", - "PLA", - "Anycubic PLA Slik" - ] - ], - "OFrKLeE3": [ - [ - "Bambu Lab", - "PLA", - "Bambu PLA Metal" - ] - ], - "OFrLiqiM": [ - [ - "InfiMech", - "PETG", - "InfiMech PETG" - ] - ], - "OFrM4hdm": [ - [ - "Creality", - "PLA-CF", - "CR-PLA Carbon" - ] - ], - "OFrOh600": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA Matte" - ] - ], - "OFrZDhVt": [ - [ - "Flashforge", - "ASA-GF", - "Flashforge ASA-GF" - ] - ], - "OFrdZ0cK": [ - [ - "eSUN", - "PETG", - "eSUN PETG+HS" - ] - ], - "OFrjacXf": [ - [ - "Flashforge", - "PET-CF", - "Flashforge PET-CF" - ] - ], - "OFrqMlGt": [ - [ - "BETA", - "PETG", - "BETA PETG" - ] - ], - "OFrr67nG": [ - [ - "Orca Arena", - "PC", - "Arena PC" - ] - ], - "OFryjl35": [ - [ - "Elegoo", - "ASA", - "Elegoo ASA-CF" - ] - ], - "OFsB2lxm": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA Matte" - ] - ], - "OFsD974q": [ - [ - "Volumic", - "PETG", - "Volumic PETG Ultra (Performance)" - ] - ], - "OFsDXRpS": [ - [ - "FilAr", - "PLA", - "FilAr PLA Piel" - ] - ], - "OFsFo7ms": [ - [ - "Volumic", - "PP", - "Volumic PP Ultra" - ] - ], - "OFsFon5l": [ - [ - "Generic", - "HIPS", - "Generic HIPS" - ] - ], - "OFsHSVZc": [ - [ - "Bambu Lab", - "PLA", - "Bambu Support W" - ] - ], - "OFsP8PKH": [ - [ - "Generic", - "ABS", - "Generic ABS HT" - ] - ], - "OFsRDvTM": [ - [ - "Polymaker", - "PLA", - "Panchroma PLA" - ] - ], - "OFsXQXbs": [ - [ - "FilAr", - "PETG", - "FilAr PETG Blanco Antartida" - ] - ], - "OFsijjtH": [ - [ - "Generic", - "PP-GF", - "Generic PP-GF" - ] - ], - "OFsoykbm": [ - [ - "DREMC", - "PA6-CF", - "DREMC PA6-CF" - ] - ], - "OFt0JbR7": [ - [ - "Snapmaker", - "PLA", - "Snapmaker J1 PLA Metal" - ] - ], - "OFt3HtlG": [ - [ - "QIDI", - "ABS-GF", - "QIDI ABS-GF" - ] - ], - "OFt6e0US": [ - [ - "FilAr", - "PETG", - "FilAr PETG Amarillo Lima" - ] - ], - "OFt7SngH": [ - [ - "Snapmaker", - "ASA", - "Snapmaker J1 ASA" - ] - ], - "OFtFtiS0": [ - [ - "Polymaker", - "PETG", - "Polymaker PETG Galaxy" - ] - ], - "OFtGC1ye": [ - [ - "Artillery", - "PA-CF", - "Artillery PA-CF" - ] - ], - "OFtKeKa9": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Tough" - ] - ], - "OFtOPlK6": [ - [ - "Orca Arena", - "PA-CF", - "Arena PAHT-CF" - ] - ], - "OFtOoWIj": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate" - ] - ], - "OFtRn8X8": [ - [ - "FDplast", - "SBS", - "FDplast SBS" - ] - ], - "OFtdVZpV": [ - [ - "addnorth", - "PLA", - "addnorth PLA X-PLA" - ] - ], - "OFtefokm": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Blanco" - ] - ], - "OFtkLO6q": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 90A" - ] - ], - "OFtndTHe": [ - [ - "BETA", - "PETG-CF", - "BETA PETG-CF" - ] - ], - "OFtpXCCv": [ - [ - "COEX 3D", - "ASA", - "COEX ASA PRIME" - ] - ], - "OFtr8eZw": [ - [ - "FDplast", - "PLA", - "FDplast PLA" - ] - ], - "OFtudokz": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA Premium" - ] - ], - "OFtybfNX": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA Metal" - ] - ], - "OFu08yGN": [ - [ - "Volumic", - "PETG", - "Volumic PETG Ultra carbone" - ] - ], - "OFu0fjPJ": [ - [ - "LH Stinger", - "PC", - "LHS PC CF" - ] - ], - "OFu1E4ur": [ - [ - "QIDI", - "ASA-AERO", - "QIDI ASA-Aero" - ] - ], - "OFu1evlr": [ - [ - "Generic", - "PCTG", - "Generic PCTG" - ] - ], - "OFuFEtKX": [ - [ - "Flashforge", - "PETG-CF", - "Flashforge PETG-CF" - ] - ], - "OFuJ49uH": [ - [ - "QIDI", - "PETG", - "QIDI PETG Basic" - ] - ], - "OFuO0cAP": [ - [ - "Orca Arena", - "PETG-CF", - "Arena PETG-CF" - ] - ], - "OFuUuIhR": [ - [ - "Elegoo", - "PETG", - "Elegoo PETG-CF" - ] - ], - "OFuV79ru": [ - [ - "Flashforge", - "PA-CF", - "Flashforge PA66-CF" - ] - ], - "OFuWCQXN": [ - [ - "COEX 3D", - "ABS", - "COEX ABS PRIME" - ] - ], - "OFuehn62": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Marble" - ] - ], - "OFufTAK9": [ - [ - "FilAr", - "PLA", - "FilAr PLA-mate Negro" - ] - ], - "OFughwKn": [ - [ - "QIDI", - "PLA", - "QIDI PLA Matte Basic" - ] - ], - "OFujZSdh": [ - [ - "Creality", - "PETG", - "Hyper PETG" - ] - ], - "OFulOdT2": [ - [ - "Generic", - "TPU", - "Generic TPU 85A" - ] - ], - "OFurdQxc": [ - [ - "FilAr", - "PETG", - "FilAr PETG Magenta" - ] - ], - "OFusbWjj": [ - [ - "Creality", - "PETG-CF", - "Hyper PETG-CF" - ] - ], - "OFuvOt0r": [ - [ - "BETA", - "PLA", - "BETA PLA Basic" - ] - ], - "OFuxH0Uz": [ - [ - "Volumic", - "TPU", - "Volumic FLEX93 Ultra" - ] - ], - "OFvD0Qqt": [ - [ - "Generic", - "PETG", - "Generic PETG BigNozzle" - ] - ], - "OFvDbkFq": [ - [ - "Prusa Polymers", - "PC", - "Prusament PC Blend" - ] - ], - "OFvKUnLh": [ - [ - "Bambu Lab", - "TPU", - "Bambu TPU 95A HF" - ] - ], - "OFvLppPU": [ - [ - "Creality", - "PA", - "CR-Nylon" - ] - ], - "OFvPPMxL": [ - [ - "FilAr", - "PLA", - "FilAr PLA Verde FilAr" - ] - ], - "OFvTVZc3": [ - [ - "COEX 3D", - "PETG", - "COEX PETG" - ] - ], - "OFvVy7yo": [ - [ - "Eolas Prints", - "TPU", - "Eolas Prints TPU D60 UV Resistant" - ] - ], - "OFvaLVML": [ - [ - "Flashforge", - "HIPS", - "Flashforge HIPS" - ] - ], - "OFvcIGee": [ - [ - "addnorth", - "TPU", - "addnorth TPU Pro Matte 85A" - ] - ], - "OFvdZ2bx": [ - [ - "QIDI", - "PLA", - "QIDI WOOD Rapido" - ] - ], - "OFvgE0Zh": [ - [ - "Elegoo", - "PLA", - "Elegoo PLA" - ] - ], - "OFvmwTZE": [ - [ - "Snapmaker", - "TPU", - "Snapmaker TPU 95A" - ] - ], - "OFvrXuV7": [ - [ - "Polymaker", - "ASA", - "PolyLite ASA" - ] - ], - "OFvxIS9g": [ - [ - "Polymaker", - "PA-CF", - "Fiberon PA12-CF10" - ] - ], - "OFvxghTE": [ - [ - "Generic", - "PLA", - "Generic HS PLA" - ] - ], - "OFvyB0Bz": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Galaxy" - ] - ], - "OFvzvwCu": [ - [ - "Eolas Prints", - "PLA", - "Eolas Prints PLA High Speed" - ] - ], - "OFw4WD4T": [ - [ - "Polymaker", - "PETG-CF", - "Fiberon PETG-rCF08" - ] - ], - "OFwJ0qu2": [ - [ - "DREMC", - "PET-CF", - "DREMC PET-CF" - ] - ], - "OFwLBAGf": [ - [ - "HATCHBOX", - "ABS", - "HATCHBOX ABS" - ] - ], - "OFwPrlCM": [ - [ - "Bambu Lab", - "PETG", - "Bambu PETG Translucent" - ] - ], - "OFwRJ4g0": [ - [ - "NIT", - "PLA", - "NIT PLA" - ] - ], - "OFwVVKEV": [ - [ - "Other", - "TPU", - "Other TPU" - ] - ], - "OFwaYjL6": [ - [ - "Polymaker", - "PA-GF", - "Fiberon PA6-GF" - ] - ], - "OFwbsgWj": [ - [ - "re3D", - "PC", - "re3D PC" - ] - ], - "OFwc74ck": [ - [ - "BETA", - "PLA", - "BETA PLA Matte" - ] - ], - "OFwhLMs4": [ - [ - "Snapmaker", - "PLA", - "Snapmaker PLA SnapSpeed" - ] - ], - "OFwjMiKL": [ - [ - "Flashforge", - "PETG", - "Flashforge PETG Transparent" - ] - ], - "OFwlZ7gH": [ - [ - "Flashforge", - "TPU-90A", - "Flashforge TPU-90A" - ] - ], - "OFwu7IAG": [ - [ - "COEX 3D", - "PCTG", - "COEX PCTG PRIME" - ] - ], - "OFwwAQnA": [ - [ - "Generic", - "PC", - "Generic PC HF" - ] - ], - "OFwyt1xt": [ - [ - "Eryone", - "ASA-CF", - "Eryone ASA-CF" - ] - ], - "OFx0WlzS": [ - [ - "Flashforge", - "TPU-95A", - "Flashforge TPU-95A" - ] - ], - "OFx8Lmsd": [ - [ - "Eolas Prints", - "PETG", - "Eolas Prints PETG UV Resistant" - ] - ], - "OFxA1p01": [ - [ - "Overture", - "PLA", - "Overture PLA Pro" - ] - ], - "OFxDHUX8": [ - [ - "SeeMeCNC", - "PETG", - "SeeMeCNC PETG" - ] - ], - "OFxJRuVF": [ - [ - "Anycubic", - "PC-GF", - "Anycubic PC-GF" - ] - ], - "OFxOHhZw": [ - [ - "Elegoo", - "ABS", - "Elegoo ABS" - ] - ], - "OFxUwUeW": [ - [ - "SUNLU", - "PLA", - "SUNLU PLA Marble" - ] - ], - "OFxYB4Sw": [ - [ - "Snapmaker", - "PETG-CF", - "Snapmaker J1 PETG-CF" - ] - ], - "OFxe4rXr": [ - [ - "Polymaker", - "PLA", - "PolyTerra PLA Marble" - ] - ], - "OFxqf79Q": [ - [ - "BETA", - "PETG", - "BETA PETG HF" - ] - ], - "OFy02QHU": [ - [ - "Polymaker", - "PLA", - "PolyLite PLA Translucent" - ] - ], - "OFy14TRA": [ - [ - "Snapmaker", - "ABS", - "Snapmaker J1 ABS" - ] - ], - "OFy3sW6j": [ - [ - "WonderMaker", - "ASA", - "WonderMaker ASA" - ] - ], - "OFy48TOp": [ - [ - "Generic", - "TPU-95A", - "Generic TPU-95A" - ] - ], - "OFy8tYJE": [ - [ - "Cubicon", - "ABS", - "Cubicon ABS-A100" - ] - ], - "OFyFyLIp": [ - [ - "SeeMeCNC", - "TPU", - "SeeMeCNC TPU" - ] - ], - "OFyHgT60": [ - [ - "Orca Arena", - "PLA", - "Arena PLA Sparkle" - ] - ], - "OFyJjkek": [ - [ - "addnorth", - "TPU", - "addnorth TPU Pro Matte 95A" - ] - ], - "OFyLWVF3": [ - [ - "Generic", - "PETG-GF", - "Generic PETG-GF" - ] - ], - "OFyPG8v2": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Eco" - ] - ], - "OFyPTnSk": [ - [ - "BETA", - "PETG", - "BETA PETG Heat Color Change" - ] - ], - "OFyQwdaM": [ - [ - "Volumic", - "ABS", - "Volumic ABS Ultra (Performance)" - ] - ], - "OFyRCIMh": [ - [ - "Other", - "PC", - "Other PC" - ] - ], - "OFyUJI3q": [ - [ - "Volumic", - "ABS", - "Volumic ABS Ultra" - ] - ], - "OFybzvQN": [ - [ - "FilAr", - "PETG", - "FilAr PETG Gris Ceniza" - ] - ], - "OFyhjiNs": [ - [ - "Snapmaker", - "PVA", - "Snapmaker PVA" - ] - ], - "OFyj3m13": [ - [ - "Snapmaker", - "PLA", - "Snapmaker Dual PLA Silk" - ] - ], - "OFymnal9": [ - [ - "Generic", - "PETG", - "Sovol Zero PETG HS Nozzle" - ] - ], - "OFyoBZdm": [ - [ - "LH Stinger", - "PLA", - "LHS PLA" - ] - ], - "OFyreocX": [ - [ - "Tiertime", - "PVA", - "Tiertime PVA" - ] - ], - "OFyrnlUn": [ - [ - "Snapmaker", - "TPU", - "Snapmaker J1 TPU" - ] - ], - "OFysxCep": [ - [ - "FilAr", - "PETG", - "FilAr PETG Coral" - ] - ], - "OFyxayW4": [ - [ - "Aliz", - "PLA", - "AliZ PLA" - ] - ], - "OFz1a1fy": [ - [ - "BETA", - "PETG", - "BETA PETG Metallic" - ] - ], - "OFz5oHgf": [ - [ - "Generic", - "PEEK", - "Generic PEEK" - ] - ], - "OFzAWsca": [ - [ - "QIDI", - "TPU", - "Qidi TPU 95A-HF" - ] - ], - "OFzB4uOs": [ - [ - "Generic", - "PLA", - "Sovol Zero PLA Basic HS Nozzle" - ] - ], - "OFzRtFM9": [ - [ - "Generic", - "ASA", - "Generic ASA HF" - ] - ], - "OFzS7zt4": [ - [ - "Anycubic", - "PA", - "Anycubic PA" - ] - ], - "OFzY7N3Z": [ - [ - "Artillery", - "PLA", - "Artillery PLA" - ] - ], - "OFzaq7Yg": [ - [ - "BETA", - "TPU", - "BETA TPU 98A" - ] - ], - "OFzk5oAo": [ - [ - "addnorth", - "ABS", - "addnorth ABS rABS" - ] - ], - "OFzrUUxc": [ - [ - "DREMC", - "ABS", - "DREMC ABS" - ] - ], - "OFztQ7rO": [ - [ - "LH Stinger", - "ASA", - "LHS ABS" - ] - ], - "OFzwA5Z9": [ - [ - "FusRock", - "PET-GF", - "FusRock PET-GF" - ] - ], - "OFzyIxba": [ - [ - "Bambu Lab", - "PVA", - "Bambu PVA" - ] - ] + "OF02UAVh": { + "filaments": [ + "Creality/Soleyin Ultra PLA" + ], + "name": "Soleyin Ultra PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OF03RK6r": { + "filaments": [ + "BBL/BETA PLA Metal" + ], + "name": "BETA PLA Metal", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF0AquDh": { + "filaments": [ + "Flashforge/FusRock S-Multi" + ], + "name": "FusRock S-Multi", + "filament_type": "PA", + "filament_vendor": "FusRock" + }, + "OF0EYBWQ": { + "filaments": [ + "BBL/addnorth PETG Flame v0" + ], + "name": "addnorth PETG Flame v0", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OF0FfcAG": { + "filaments": [ + "Anycubic/Anycubic TPU for ACE" + ], + "name": "Anycubic TPU for ACE", + "filament_type": "TPU", + "filament_vendor": "Anycubic" + }, + "OF0NgY1y": { + "filaments": [ + "BBL/COEX NYLEX PA6-CF", + "OrcaFilamentLibrary/COEX NYLEX PA6-CF" + ], + "name": "COEX NYLEX PA6-CF", + "filament_type": "PA-CF", + "filament_vendor": "COEX 3D" + }, + "OF0R5Wc7": { + "filaments": [ + "Artillery/Artillery PLA Tough" + ], + "name": "Artillery PLA Tough", + "filament_type": "PLA Tough", + "filament_vendor": "Artillery" + }, + "OF0UJcb6": { + "filaments": [ + "BBL/PolyLite PETG", + "OrcaFilamentLibrary/PolyLite PETG", + "Snapmaker/PolyLite PETG" + ], + "name": "PolyLite PETG", + "filament_type": "PETG", + "filament_vendor": "Polymaker" + }, + "OF0VpkBM": { + "filaments": [ + "Snapmaker/PolyLite PETG Translucent" + ], + "name": "PolyLite PETG Translucent", + "filament_type": "PETG", + "filament_vendor": "Polymaker" + }, + "OF0Vtzaw": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Radiante" + ], + "name": "FilAr PETG Amarillo Radiante", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OF0b7M1z": { + "filaments": [ + "SeeMeCNC/SeeMeCNC PA-CF" + ], + "name": "SeeMeCNC PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "SeeMeCNC" + }, + "OF0c7mnL": { + "filaments": [ + "InfiMech/InfiMech ABS" + ], + "name": "InfiMech ABS", + "filament_type": "ABS", + "filament_vendor": "InfiMech" + }, + "OF0gGRWk": { + "filaments": [ + "BBL/Panchroma PLA Glow", + "OrcaFilamentLibrary/Panchroma PLA Glow", + "Snapmaker/Panchroma PLA Glow" + ], + "name": "Panchroma PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF0kCNDK": { + "filaments": [ + "BBL/Panchroma PLA Luminous", + "OrcaFilamentLibrary/Panchroma PLA Luminous", + "Snapmaker/Panchroma PLA Luminous" + ], + "name": "Panchroma PLA Luminous", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF0omtEb": { + "filaments": [ + "Snapmaker/Fiberon ASA-CF08" + ], + "name": "Fiberon ASA-CF08", + "filament_type": "ASA", + "filament_vendor": "Polymaker" + }, + "OF0pzFLc": { + "filaments": [ + "BBL/COEX PLA+Silk", + "OrcaFilamentLibrary/COEX PLA+Silk" + ], + "name": "COEX PLA+Silk", + "filament_type": "PLA", + "filament_vendor": "COEX 3D" + }, + "OF0w7OpJ": { + "filaments": [ + "Qidi/QIDI ABS Rapido 0.8 nozzle" + ], + "name": "QIDI ABS Rapido 0.8 nozzle", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OF0wBGNx": { + "filaments": [ + "BBL/Bambu ASA-CF", + "OrcaFilamentLibrary/Bambu ASA-CF" + ], + "name": "Bambu ASA-CF", + "filament_type": "ASA-CF", + "filament_vendor": "Bambu Lab" + }, + "OF0wz84w": { + "filaments": [ + "Qidi/QIDI ABS Rapido 0.6 nozzle" + ], + "name": "QIDI ABS Rapido 0.6 nozzle", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OF0yFLkY": { + "filaments": [ + "Anycubic/Anycubic ASA" + ], + "name": "Anycubic ASA", + "filament_type": "ASA", + "filament_vendor": "Anycubic" + }, + "OF112FvY": { + "filaments": [ + "Anycubic/Generic PETG Basic" + ], + "name": "Generic PETG Basic", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OF1ID4N1": { + "filaments": [ + "BBL/addnorth PA6 Addlantis" + ], + "name": "addnorth PA6 Addlantis", + "filament_type": "PA6", + "filament_vendor": "addnorth" + }, + "OF1N1qMK": { + "filaments": [ + "BBL/Panchroma PLA UV Shift", + "OrcaFilamentLibrary/Panchroma PLA UV Shift", + "Snapmaker/Panchroma PLA UV Shift" + ], + "name": "Panchroma PLA UV Shift", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF1Pke8t": { + "filaments": [ + "BBL/Overture Easy PLA", + "OrcaFilamentLibrary/Overture Easy PLA" + ], + "name": "Overture Easy PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OF1UNk9P": { + "filaments": [ + "BBL/Generic PP", + "Creality/Generic PP", + "OrcaFilamentLibrary/Generic PP", + "Tiertime/Generic PP" + ], + "name": "Generic PP", + "filament_type": "PP", + "filament_vendor": "Generic" + }, + "OF1W7c76": { + "filaments": [ + "Qidi/QIDI ASA-CF" + ], + "name": "QIDI ASA-CF", + "filament_type": "ASA-CF", + "filament_vendor": "QIDI" + }, + "OF1d7c3A": { + "filaments": [ + "Snapmaker/Snapmaker ASA" + ], + "name": "Snapmaker ASA", + "filament_type": "ASA", + "filament_vendor": "Snapmaker" + }, + "OF1dpPrW": { + "filaments": [ + "Qidi/Bambu PLA" + ], + "name": "Bambu PLA", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OF1hznGB": { + "filaments": [ + "Elegoo/Elegoo PLA PRO", + "OrcaFilamentLibrary/Elegoo PLA PRO" + ], + "name": "Elegoo PLA PRO", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OF20kXr5": { + "filaments": [ + "Elegoo/Elegoo PAHT-CF", + "OrcaFilamentLibrary/Elegoo PAHT-CF" + ], + "name": "Elegoo PAHT-CF", + "filament_type": "PA", + "filament_vendor": "Elegoo" + }, + "OF223rZv": { + "filaments": [ + "Anycubic/Anycubic ABS" + ], + "name": "Anycubic ABS", + "filament_type": "ABS", + "filament_vendor": "Anycubic" + }, + "OF2EB9Iz": { + "filaments": [ + "Volumic/Volumic ASA Ultra" + ], + "name": "Volumic ASA Ultra", + "filament_type": "ASA", + "filament_vendor": "Volumic" + }, + "OF2EK9F1": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Violeta" + ], + "name": "FilAr PLA-mate Violeta", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF2GCW1l": { + "filaments": [ + "BBL/SUNLU PETG", + "Flashforge/SUNLU PETG", + "OrcaFilamentLibrary/SUNLU PETG", + "Sovol/SUNLU PETG" + ], + "name": "SUNLU PETG", + "filament_type": "PETG", + "filament_vendor": "SUNLU" + }, + "OF2TQpOO": { + "filaments": [ + "Qidi/QIDI PLA Silk" + ], + "name": "QIDI PLA Silk", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OF2VFe4J": { + "filaments": [ + "BBL/Bambu PAHT-CF", + "OrcaFilamentLibrary/Bambu PAHT-CF" + ], + "name": "Bambu PAHT-CF", + "filament_type": "PA-CF", + "filament_vendor": "Bambu Lab" + }, + "OF2Z1nT5": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Azul Imperial" + ], + "name": "FilAr PETG Azul Imperial", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OF2hfMcG": { + "filaments": [ + "OrcaArena/Arena PLA-CF" + ], + "name": "Arena PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Orca Arena" + }, + "OF2pj5l5": { + "filaments": [ + "BBL/Overture Super PLA+", + "OrcaFilamentLibrary/Overture Super PLA+" + ], + "name": "Overture Super PLA+", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OF2xccEe": { + "filaments": [], + "name": "DREMC ASA GF", + "filament_type": "ASA", + "filament_vendor": "DREMC" + }, + "OF30Ftju": { + "filaments": [ + "Elegoo/Elegoo Rapid TPU 95A", + "OrcaFilamentLibrary/Elegoo Rapid TPU 95A" + ], + "name": "Elegoo Rapid TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Elegoo" + }, + "OF342jVN": { + "filaments": [ + "BBL/Bambu PLA Tough+" + ], + "name": "Bambu PLA Tough+", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OF3F63OE": { + "filaments": [ + "re3D/re3D PETG" + ], + "name": "re3D PETG", + "filament_type": "PETG", + "filament_vendor": "re3D" + }, + "OF3IKafc": { + "filaments": [ + "Qidi/QIDI PLA Rapido Matte" + ], + "name": "QIDI PLA Rapido Matte", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OF3OMgrI": { + "filaments": [ + "Creality/CR-Silk" + ], + "name": "CR-Silk", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OF3PDEw3": { + "filaments": [ + "BBL/BETA PLA High Speed" + ], + "name": "BETA PLA High Speed", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF3WQaKK": { + "filaments": [ + "Creality/CR-PETG" + ], + "name": "CR-PETG", + "filament_type": "PETG", + "filament_vendor": "Creality" + }, + "OF3dJf4E": { + "filaments": [ + "Volumic/Volumic PLA Ultra (Performance)" + ], + "name": "Volumic PLA Ultra (Performance)", + "filament_type": "PLA", + "filament_vendor": "Volumic" + }, + "OF3fwO8b": { + "filaments": [ + "FlyingBear/FlyingBear PLA Basic" + ], + "name": "FlyingBear PLA Basic", + "filament_type": "PLA", + "filament_vendor": "FlyingBear" + }, + "OF3kBrdA": { + "filaments": [ + "Creality/eSUN PETG", + "OrcaFilamentLibrary/eSUN PETG" + ], + "name": "eSUN PETG", + "filament_type": "PETG", + "filament_vendor": "eSUN" + }, + "OF3msXEa": { + "filaments": [ + "Snapmaker/Snapmaker Dual PETG-CF" + ], + "name": "Snapmaker Dual PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Snapmaker" + }, + "OF3ydJTT": { + "filaments": [ + "InfiMech/InfiMech PLA Hyper" + ], + "name": "InfiMech PLA Hyper", + "filament_type": "PLA", + "filament_vendor": "InfiMech" + }, + "OF43Raws": { + "filaments": [ + "Snapmaker/PolyTerra J1 PLA" + ], + "name": "PolyTerra J1 PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF44ERDr": { + "filaments": [ + "Snapmaker/Polymaker General PLA Family" + ], + "name": "Polymaker General PLA Family", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF44VYzK": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Azul Francia" + ], + "name": "FilAr PETG Azul Francia", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OF4APyxe": { + "filaments": [ + "Creality/Hyper PAHT-CF" + ], + "name": "Hyper PAHT-CF", + "filament_type": "PA-CF", + "filament_vendor": "Creality" + }, + "OF4GM5qX": { + "filaments": [ + "Ratrig/Generic ASA BigNozzle" + ], + "name": "Generic ASA BigNozzle", + "filament_type": "ASA", + "filament_vendor": "Generic" + }, + "OF4KsW72": { + "filaments": [], + "name": "FilAr PLA", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF4Nhggz": { + "filaments": [ + "Artillery/Artillery PLA Basic+" + ], + "name": "Artillery PLA Basic+", + "filament_type": "PLA Basic+", + "filament_vendor": "Artillery" + }, + "OF4PKvem": { + "filaments": [ + "BBL/BETA PLA Fluorescence" + ], + "name": "BETA PLA Fluorescence", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF4QZANi": { + "filaments": [ + "BBL/BETA TPU Matte" + ], + "name": "BETA TPU Matte", + "filament_type": "TPU", + "filament_vendor": "BETA" + }, + "OF4RvVuU": { + "filaments": [ + "BBL/Bambu PPS-CF" + ], + "name": "Bambu PPS-CF", + "filament_type": "PPS-CF", + "filament_vendor": "Bambu Lab" + }, + "OF4S3To3": { + "filaments": [ + "Qidi/QIDI PETG Rapido" + ], + "name": "QIDI PETG Rapido", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OF4WB37S": { + "filaments": [ + "Snapmaker/Snapmaker PETG" + ], + "name": "Snapmaker PETG", + "filament_type": "PETG", + "filament_vendor": "Snapmaker" + }, + "OF4XTfoI": { + "filaments": [ + "BBL/BETA PETG Marble" + ], + "name": "BETA PETG Marble", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OF4f8vVp": { + "filaments": [ + "WonderMaker/WonderMaker PET-CF" + ], + "name": "WonderMaker PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "WonderMaker" + }, + "OF4iWKrE": { + "filaments": [ + "Qidi/QIDI PETG-CF" + ], + "name": "QIDI PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "QIDI" + }, + "OF4nQ62r": { + "filaments": [ + "Qidi/QIDI PLA Basic" + ], + "name": "QIDI PLA Basic", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OF4ulo9Y": { + "filaments": [ + "WonderMaker/WonderMaker PVA" + ], + "name": "WonderMaker PVA", + "filament_type": "PVA", + "filament_vendor": "WonderMaker" + }, + "OF53eLVD": { + "filaments": [ + "Blocks/Generic ASA-CF", + "Creality/Generic ASA-CF", + "Elegoo/Generic ASA-CF" + ], + "name": "Generic ASA-CF", + "filament_type": "ASA-CF", + "filament_vendor": "Generic" + }, + "OF54B0S0": { + "filaments": [ + "BBL/Bambu PPA-CF", + "OrcaFilamentLibrary/Bambu PPA-CF" + ], + "name": "Bambu PPA-CF", + "filament_type": "PPA-CF", + "filament_vendor": "Bambu Lab" + }, + "OF54SvEe": { + "filaments": [ + "Prusa/Prusament PA-CF" + ], + "name": "Prusament PA-CF", + "filament_type": "PA11-CF", + "filament_vendor": "Prusa Polymers" + }, + "OF55jHAJ": { + "filaments": [ + "Prusa/Generic ABS HF" + ], + "name": "Generic ABS HF", + "filament_type": "ABS", + "filament_vendor": "Generic" + }, + "OF5B9sUc": { + "filaments": [ + "BBL/Fiberon PA6-GF25" + ], + "name": "Fiberon PA6-GF25", + "filament_type": "PA-GF", + "filament_vendor": "Polymaker" + }, + "OF5BN24W": { + "filaments": [ + "Flashforge/Flashforge PPA-GF" + ], + "name": "Flashforge PPA-GF", + "filament_type": "PPA-GF", + "filament_vendor": "Flashforge" + }, + "OF5BXhHF": { + "filaments": [ + "BBL/BETA PLA High Temp" + ], + "name": "BETA PLA High Temp", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF5CgdDq": { + "filaments": [ + "BBL/PolyLite PLA", + "OrcaArena/PolyLite PLA", + "OrcaFilamentLibrary/PolyLite PLA", + "Qidi/PolyLite PLA", + "Snapmaker/PolyLite PLA" + ], + "name": "PolyLite PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF5LAnla": { + "filaments": [ + "BBL/BETA PLA Gradient" + ], + "name": "BETA PLA Gradient", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF5NqBfC": { + "filaments": [ + "Wanhao France/YUMI PETG" + ], + "name": "YUMI PETG", + "filament_type": "PETG", + "filament_vendor": "Yumi" + }, + "OF5P4jgA": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Dorado" + ], + "name": "FilAr PLA Dorado", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF5PtjTp": { + "filaments": [ + "Anycubic/Anycubic PLA Glow" + ], + "name": "Anycubic PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OF5SJ3jz": { + "filaments": [ + "Flashforge/Flashforge ABS" + ], + "name": "Flashforge ABS", + "filament_type": "ABS", + "filament_vendor": "Flashforge" + }, + "OF5YVJXH": { + "filaments": [ + "Artillery/Artillery ASA" + ], + "name": "Artillery ASA", + "filament_type": "ASA", + "filament_vendor": "Artillery" + }, + "OF5c6nq3": { + "filaments": [ + "Flashforge/Generic TPU-64D" + ], + "name": "Generic TPU-64D", + "filament_type": "TPU-64D", + "filament_vendor": "Generic" + }, + "OF5lGPup": { + "filaments": [ + "WonderMaker/WonderMaker PETG Basic" + ], + "name": "WonderMaker PETG Basic", + "filament_type": "PETG", + "filament_vendor": "WonderMaker" + }, + "OF5nlfKY": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Oro" + ], + "name": "FilAr PLA Oro", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF5oNRED": { + "filaments": [ + "Eryone/Eryone PP" + ], + "name": "Eryone PP", + "filament_type": "PP", + "filament_vendor": "Eryone" + }, + "OF5oXk4M": { + "filaments": [ + "Anycubic/Polymaker PLA Pro", + "Snapmaker/Polymaker PLA Pro" + ], + "name": "Polymaker PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF5rnhjh": { + "filaments": [], + "name": "FilAr PETG", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OF5tX6va": { + "filaments": [ + "Ratrig/Generic TPU BigNozzle" + ], + "name": "Generic TPU BigNozzle", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OF5umxxT": { + "filaments": [ + "BBL/PolyLite PLA Glow", + "Snapmaker/PolyLite PLA Glow" + ], + "name": "PolyLite PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF5vgi2G": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Azul" + ], + "name": "FilAr PLA-mate Azul", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF65InrS": { + "filaments": [ + "Snapmaker/Snapmaker TPU" + ], + "name": "Snapmaker TPU", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OF66KUAN": { + "filaments": [ + "Creality/PolySonic PLA" + ], + "name": "PolySonic PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF6ATsCF": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA-CF" + ], + "name": "Snapmaker Dual PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Snapmaker" + }, + "OF6H51Xx": { + "filaments": [ + "Snapmaker/Polymaker PETG", + "Sovol/Polymaker PETG" + ], + "name": "Polymaker PETG", + "filament_type": "PETG", + "filament_vendor": "Polymaker" + }, + "OF6Ll8lK": { + "filaments": [ + "Elegoo/Elegoo PETG Translucent", + "OrcaFilamentLibrary/Elegoo PETG Translucent" + ], + "name": "Elegoo PETG Translucent", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OF6MOPWx": { + "filaments": [ + "Creality/Generic PET", + "Elegoo/Generic PET", + "Flashforge/Generic PET" + ], + "name": "Generic PET", + "filament_type": "PET", + "filament_vendor": "Generic" + }, + "OF6TuVAg": { + "filaments": [ + "Snapmaker/Snapmaker J1 PVA" + ], + "name": "Snapmaker J1 PVA", + "filament_type": "PVA", + "filament_vendor": "Snapmaker" + }, + "OF6Yn69v": { + "filaments": [ + "BBL/BETA TPU 90A" + ], + "name": "BETA TPU 90A", + "filament_type": "TPU", + "filament_vendor": "BETA" + }, + "OF6kj4jI": { + "filaments": [ + "iQ/Fiberthree PACF Pro P2" + ], + "name": "Fiberthree PACF Pro P2", + "filament_type": "PACF Pro", + "filament_vendor": "iQ Materials" + }, + "OF6qAuyi": { + "filaments": [ + "Flashforge/Flashforge PLA Matte" + ], + "name": "Flashforge PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OF6qw3Wb": { + "filaments": [ + "BBL/BETA PAHT-CF" + ], + "name": "BETA PAHT-CF", + "filament_type": "PA-CF", + "filament_vendor": "BETA" + }, + "OF6rdQ6M": { + "filaments": [ + "BBL/Generic PPS-CF", + "Creality/Generic PPS-CF", + "Tiertime/Generic PPS-CF" + ], + "name": "Generic PPS-CF", + "filament_type": "PPS-CF", + "filament_vendor": "Generic" + }, + "OF70zbGS": { + "filaments": [ + "Creality/Hyper L-W PLA" + ], + "name": "Hyper L-W PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OF71b7qO": { + "filaments": [ + "BBL/addnorth PLA E-PLA" + ], + "name": "addnorth PLA E-PLA", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OF72YYTd": { + "filaments": [ + "Snapmaker/Snapmaker ABS" + ], + "name": "Snapmaker ABS", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OF74KeQR": { + "filaments": [ + "BBL/Generic PHA", + "OrcaFilamentLibrary/Generic PHA", + "Tiertime/Generic PHA" + ], + "name": "Generic PHA", + "filament_type": "PHA", + "filament_vendor": "Generic" + }, + "OF79Fbo6": { + "filaments": [ + "Cubicon/Cubicon PC" + ], + "name": "Cubicon PC", + "filament_type": "PC", + "filament_vendor": "Cubicon" + }, + "OF7H3VJM": { + "filaments": [ + "OrcaFilamentLibrary/eSUN PLA-Marble" + ], + "name": "eSUN PLA-Marble", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OF7OqDp3": { + "filaments": [ + "Tiertime/Tiertime PLA-CF" + ], + "name": "Tiertime PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Tiertime" + }, + "OF7SliVn": { + "filaments": [ + "Snapmaker/PolyLite J1 PLA" + ], + "name": "PolyLite J1 PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OF7c9fln": { + "filaments": [ + "Anycubic/Anycubic PLA Translucent" + ], + "name": "Anycubic PLA Translucent", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OF7lOgYF": { + "filaments": [ + "BBL/Generic PETG HF", + "OrcaFilamentLibrary/Generic PETG HF", + "Prusa/Generic PETG HF" + ], + "name": "Generic PETG HF", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OF7lwj52": { + "filaments": [ + "CoLiDo/CoLiDo PETG" + ], + "name": "CoLiDo PETG", + "filament_type": "PETG", + "filament_vendor": "CoLiDo" + }, + "OF7nBAd3": { + "filaments": [ + "Eryone/Eryone Silk PLA" + ], + "name": "Eryone Silk PLA", + "filament_type": "PLA Silk", + "filament_vendor": "Eryone" + }, + "OF7pjCsO": { + "filaments": [ + "Flashforge/FusRock PAHT" + ], + "name": "FusRock PAHT", + "filament_type": "PAHT", + "filament_vendor": "FusRock" + }, + "OF7tt7DO": { + "filaments": [ + "Cubicon/Cubicon PLA+" + ], + "name": "Cubicon PLA+", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OF8GnyFU": { + "filaments": [ + "Creality/Hyper ABS" + ], + "name": "Hyper ABS", + "filament_type": "ABS", + "filament_vendor": "Creality" + }, + "OF8GtyKJ": { + "filaments": [ + "Flashforge/Flashforge TPU-64D" + ], + "name": "Flashforge TPU-64D", + "filament_type": "TPU-64D", + "filament_vendor": "Flashforge" + }, + "OF8Hx3Pi": { + "filaments": [ + "Cubicon/Cubicon PETG" + ], + "name": "Cubicon PETG", + "filament_type": "PETG", + "filament_vendor": "Cubicon" + }, + "OF8Jl6NT": { + "filaments": [ + "Snapmaker/Snapmaker J1 PET" + ], + "name": "Snapmaker J1 PET", + "filament_type": "PET", + "filament_vendor": "Snapmaker" + }, + "OF8O09RG": { + "filaments": [ + "Flashforge/Flashforge HS PLA Burnt Ti" + ], + "name": "Flashforge HS PLA Burnt Ti", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OF8QdQwS": { + "filaments": [ + "BBL/BETA PLA Silk+" + ], + "name": "BETA PLA Silk+", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OF8Tlg47": { + "filaments": [ + "BBL/Generic PPA-GF", + "OrcaFilamentLibrary/Generic PPA-GF", + "Tiertime/Generic PPA-GF" + ], + "name": "Generic PPA-GF", + "filament_type": "PPA-GF", + "filament_vendor": "Generic" + }, + "OF8aFWfQ": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Amarillo Lirio" + ], + "name": "FilAr PLA Amarillo Lirio", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF8dCquh": { + "filaments": [ + "Snapmaker/Snapmaker J1 ABS Benchy" + ], + "name": "Snapmaker J1 ABS Benchy", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OF8eaY7j": { + "filaments": [ + "Creality/Generic PA612-CF" + ], + "name": "Generic PA612-CF", + "filament_type": "PA-CF", + "filament_vendor": "Generic" + }, + "OF8jh0Lk": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Marron" + ], + "name": "FilAr PLA-mate Marron", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OF8kJys9": { + "filaments": [ + "Eryone/Eryone PETG" + ], + "name": "Eryone PETG", + "filament_type": "PETG", + "filament_vendor": "Eryone" + }, + "OF8tPByX": { + "filaments": [ + "BBL/Generic PPA-CF", + "OrcaFilamentLibrary/Generic PPA-CF", + "Tiertime/Generic PPA-CF" + ], + "name": "Generic PPA-CF", + "filament_type": "PPA-CF", + "filament_vendor": "Generic" + }, + "OF8wE5l7": { + "filaments": [ + "Artillery/Artillery PETG Basic" + ], + "name": "Artillery PETG Basic", + "filament_type": "PETG Basic", + "filament_vendor": "Artillery" + }, + "OF99UMPq": { + "filaments": [ + "BBL/COEX ABS", + "OrcaFilamentLibrary/COEX ABS" + ], + "name": "COEX ABS", + "filament_type": "ABS", + "filament_vendor": "COEX 3D" + }, + "OF99vXPs": { + "filaments": [], + "name": "DREMC ABS+", + "filament_type": "ABS", + "filament_vendor": "DREMC" + }, + "OF9EHUKK": { + "filaments": [ + "Qidi/QIDI TPU-GF" + ], + "name": "QIDI TPU-GF", + "filament_type": "TPU-GF", + "filament_vendor": "QIDI" + }, + "OF9HCdyQ": { + "filaments": [ + "Afinia/Afinia PLA" + ], + "name": "Afinia PLA", + "filament_type": "PLA", + "filament_vendor": "Afinia" + }, + "OF9OlTWH": { + "filaments": [ + "BBL/Bambu PLA Marble", + "OrcaFilamentLibrary/Bambu PLA Marble" + ], + "name": "Bambu PLA Marble", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OF9PELEb": { + "filaments": [ + "Qidi/QIDI UltraPA-CF25" + ], + "name": "QIDI UltraPA-CF25", + "filament_type": "UltraPA-CF25", + "filament_vendor": "QIDI" + }, + "OF9UJOGF": { + "filaments": [ + "Anycubic/Anycubic PETG-CF" + ], + "name": "Anycubic PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Anycubic" + }, + "OF9cAwMK": { + "filaments": [ + "Flashforge/Flashforge PLA-CF" + ], + "name": "Flashforge PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Flashforge" + }, + "OF9emAI9": { + "filaments": [ + "Ratrig/RatRig PunkFil PETG" + ], + "name": "RatRig PunkFil PETG", + "filament_type": "PETG", + "filament_vendor": "RatRig" + }, + "OFA026vt": { + "filaments": [ + "OrcaArena/Arena PA-CF" + ], + "name": "Arena PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Orca Arena" + }, + "OFAC7Wyu": { + "filaments": [ + "Artillery/Artillery PLA Matte" + ], + "name": "Artillery PLA Matte", + "filament_type": "PLA Matte", + "filament_vendor": "Artillery" + }, + "OFAIBCLJ": { + "filaments": [ + "Elegoo/Generic ABS-CF" + ], + "name": "Generic ABS-CF", + "filament_type": "ABS-CF", + "filament_vendor": "Generic" + }, + "OFAIrQXu": { + "filaments": [ + "Creality/Creality Hyper PLA" + ], + "name": "Creality Hyper PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFANFm4x": { + "filaments": [ + "Qidi/QIDI PLA Rapido Metal" + ], + "name": "QIDI PLA Rapido Metal", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFAO9A7J": { + "filaments": [ + "Sovol/Sovol Zero PLA Silk HS Nozzle" + ], + "name": "Sovol Zero PLA Silk HS Nozzle", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFAZllAN": { + "filaments": [ + "Artillery/Artillery PLA-CF" + ], + "name": "Artillery PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Artillery" + }, + "OFAc0Pr3": { + "filaments": [ + "BBL/Fiberon PET-CF17" + ], + "name": "Fiberon PET-CF17", + "filament_type": "PET-CF", + "filament_vendor": "Polymaker" + }, + "OFAcJkl1": { + "filaments": [ + "BBL/addnorth PETG-CF Rigid X" + ], + "name": "addnorth PETG-CF Rigid X", + "filament_type": "PETG-CF", + "filament_vendor": "addnorth" + }, + "OFAebKg8": { + "filaments": [ + "Flashforge/Flashforge PLA Metal" + ], + "name": "Flashforge PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFAnyRUI": { + "filaments": [ + "BBL/Bambu Support For PLA", + "OrcaFilamentLibrary/Bambu Support For PLA" + ], + "name": "Bambu Support For PLA", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFAt6ec0": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Marron Oxido" + ], + "name": "FilAr PLA Marron Oxido", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFB5SmWk": { + "filaments": [ + "OrcaFilamentLibrary/Valment PLA Galaxy" + ], + "name": "Valment PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Valment" + }, + "OFBBgw7B": { + "filaments": [ + "WonderMaker/WonderMaker PLA Wood" + ], + "name": "WonderMaker PLA Wood", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFBJAdLw": { + "filaments": [ + "LH/LHS PCTG" + ], + "name": "LHS PCTG", + "filament_type": "PCTG", + "filament_vendor": "LH Stinger" + }, + "OFBLktDy": { + "filaments": [ + "Creality/Soleyin Basic PETG" + ], + "name": "Soleyin Basic PETG", + "filament_type": "PETG", + "filament_vendor": "Creality" + }, + "OFBSW57R": { + "filaments": [ + "BBL/Bambu PLA Aero", + "OrcaFilamentLibrary/Bambu PLA Aero" + ], + "name": "Bambu PLA Aero", + "filament_type": "PLA-AERO", + "filament_vendor": "Bambu Lab" + }, + "OFBUIlZ7": { + "filaments": [ + "Elegoo/Elegoo PLA+", + "OrcaFilamentLibrary/Elegoo PLA+" + ], + "name": "Elegoo PLA+", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFBlFMVp": { + "filaments": [ + "Snapmaker/Snapmaker Dual PETG" + ], + "name": "Snapmaker Dual PETG", + "filament_type": "PETG", + "filament_vendor": "Snapmaker" + }, + "OFBoSWxb": { + "filaments": [ + "BBL/PolyLite PLA Luminous", + "Snapmaker/PolyLite PLA Luminous" + ], + "name": "PolyLite PLA Luminous", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFBsbMMF": { + "filaments": [ + "BBL/addnorth PA-CF Adura X" + ], + "name": "addnorth PA-CF Adura X", + "filament_type": "PA-CF", + "filament_vendor": "addnorth" + }, + "OFBw6eEG": { + "filaments": [ + "BBL/Overture Matte PLA", + "OrcaFilamentLibrary/Overture Matte PLA" + ], + "name": "Overture Matte PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFC1PzXz": { + "filaments": [ + "Creality/Hyper Luminous" + ], + "name": "Hyper Luminous", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFC5f4Ay": { + "filaments": [ + "RH3D/Generic PCCF" + ], + "name": "Generic PCCF", + "filament_type": "PC-CF", + "filament_vendor": "Generic" + }, + "OFC78WGQ": { + "filaments": [ + "BBL/Panchroma PLA Starlight", + "OrcaFilamentLibrary/Panchroma PLA Starlight", + "Snapmaker/Panchroma PLA Starlight" + ], + "name": "Panchroma PLA Starlight", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFCD8qiU": { + "filaments": [ + "BBL/Generic EVA", + "OrcaFilamentLibrary/Generic EVA", + "Tiertime/Generic EVA" + ], + "name": "Generic EVA", + "filament_type": "EVA", + "filament_vendor": "Generic" + }, + "OFCIUsWh": { + "filaments": [ + "BBL/Panchroma PLA Translucent", + "OrcaFilamentLibrary/Panchroma PLA Translucent", + "Snapmaker/Panchroma PLA Translucent" + ], + "name": "Panchroma PLA Translucent", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFCJpR7a": { + "filaments": [ + "Creality/HP Ultra PLA" + ], + "name": "HP Ultra PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFCZsqXg": { + "filaments": [ + "Creality/Hyper PLA" + ], + "name": "Hyper PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFCccVrQ": { + "filaments": [ + "OrcaFilamentLibrary/PolyTerra Dual PLA", + "Snapmaker/PolyTerra Dual PLA" + ], + "name": "PolyTerra Dual PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFCidU7j": { + "filaments": [ + "OrcaFilamentLibrary/DREMC ABS-GF" + ], + "name": "DREMC ABS-GF", + "filament_type": "ABS-GF", + "filament_vendor": "DREMC" + }, + "OFCjG251": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Verde" + ], + "name": "FilAr PLA-mate Verde", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFCn83wF": { + "filaments": [ + "Flashforge/FusRock S-PAHT" + ], + "name": "FusRock S-PAHT", + "filament_type": "PAHT", + "filament_vendor": "FusRock" + }, + "OFCnywiC": { + "filaments": [ + "Tiertime/Tiertime PET-CF" + ], + "name": "Tiertime PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Tiertime" + }, + "OFCoRobU": { + "filaments": [ + "OrcaFilamentLibrary/Elas ASA" + ], + "name": "Elas ASA", + "filament_type": "ASA", + "filament_vendor": "Elas" + }, + "OFCp3Bgo": { + "filaments": [ + "Anycubic/Anycubic PLA SE" + ], + "name": "Anycubic PLA SE", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFCuaCer": { + "filaments": [ + "Volumic/Désactivé" + ], + "name": "Désactivé", + "filament_type": "PLA", + "filament_vendor": "Volumic" + }, + "OFD21ije": { + "filaments": [ + "Cubicon/Cubicon PA-CF" + ], + "name": "Cubicon PA-CF", + "filament_type": "PA", + "filament_vendor": "Cubicon" + }, + "OFD8loeT": { + "filaments": [ + "re3D/re3D rPETG" + ], + "name": "re3D rPETG", + "filament_type": "PETG", + "filament_vendor": "re3D" + }, + "OFD9taow": { + "filaments": [ + "FlyingBear/FlyingBear PLA Hyper" + ], + "name": "FlyingBear PLA Hyper", + "filament_type": "PLA", + "filament_vendor": "FlyingBear" + }, + "OFDETOM6": { + "filaments": [ + "Creality/eSUN PLA-Matte", + "OrcaFilamentLibrary/eSUN PLA-Matte" + ], + "name": "eSUN PLA-Matte", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFDGigEI": { + "filaments": [ + "BBL/Bambu PLA Dynamic", + "OrcaFilamentLibrary/Bambu PLA Dynamic" + ], + "name": "Bambu PLA Dynamic", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFDIrhbu": { + "filaments": [ + "Qidi/QIDI PC/ABS-FR" + ], + "name": "QIDI PC/ABS-FR", + "filament_type": "PC-ABS-FR", + "filament_vendor": "QIDI" + }, + "OFDJU6R3": { + "filaments": [ + "Afinia/Afinia TPU" + ], + "name": "Afinia TPU", + "filament_type": "TPU", + "filament_vendor": "Afinia" + }, + "OFDKIKyw": { + "filaments": [ + "Snapmaker/Snapmaker Dual PVA" + ], + "name": "Snapmaker Dual PVA", + "filament_type": "PVA", + "filament_vendor": "Snapmaker" + }, + "OFDKgoqx": { + "filaments": [ + "Flashforge/Flashforge PLA" + ], + "name": "Flashforge PLA", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFDRpXLZ": { + "filaments": [ + "FlyingBear/Other PETG", + "InfiMech/Other PETG" + ], + "name": "Other PETG", + "filament_type": "PETG", + "filament_vendor": "Other" + }, + "OFDSrzZ8": { + "filaments": [ + "Anker/Generic PLA", + "Anycubic/Generic PLA", + "Artillery/Generic PLA", + "BBL/Generic PLA", + "Blocks/Generic PLA", + "CONSTRUCT3D/Generic PLA", + "Chuanying/Generic PLA", + "Co Print/Generic PLA", + "CoLiDo/Generic PLA", + "Comgrow/Generic PLA", + "Creality/Generic PLA", + "Custom/Generic PLA", + "DeltaMaker/Generic PLA", + "Dremel/Generic PLA", + "Elegoo/Generic PLA", + "FLSun/Generic PLA", + "Flashforge/Generic PLA", + "FlyingBear/Generic PLA", + "Ginger Additive/Generic PLA", + "InfiMech/Generic PLA", + "LONGER/Generic PLA", + "Lulzbot/Generic PLA", + "OrcaArena/Generic PLA", + "OrcaFilamentLibrary/Generic PLA", + "Peopoly/Generic PLA", + "Phrozen/Generic PLA", + "Prusa/Generic PLA", + "Qidi/Generic PLA", + "RH3D/Generic PLA", + "Ratrig/Generic PLA", + "SecKit/Generic PLA", + "Sovol/Generic PLA", + "Tiertime/Generic PLA", + "Vzbot/Generic PLA", + "Z-Bolt/Generic PLA" + ], + "name": "Generic PLA", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFDdEaoL": { + "filaments": [ + "re3D/re3D PLA" + ], + "name": "re3D PLA", + "filament_type": "PLA", + "filament_vendor": "re3D" + }, + "OFDe8uyM": { + "filaments": [ + "OrcaFilamentLibrary/Valment PLA" + ], + "name": "Valment PLA", + "filament_type": "PLA", + "filament_vendor": "Valment" + }, + "OFDgQaca": { + "filaments": [ + "FlyingBear/FlyingBear PETG" + ], + "name": "FlyingBear PETG", + "filament_type": "PETG", + "filament_vendor": "FlyingBear" + }, + "OFDpW3J8": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PLA Basic" + ], + "name": "FILL3D PLA Basic", + "filament_type": "PLA", + "filament_vendor": "FILL3D" + }, + "OFDtop41": { + "filaments": [ + "Creality/Generic Support for PA" + ], + "name": "Generic Support for PA", + "filament_type": "PA", + "filament_vendor": "Generic" + }, + "OFDu1qE7": { + "filaments": [ + "Flashforge/FusRock PET-CF" + ], + "name": "FusRock PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "FusRock" + }, + "OFDvXujf": { + "filaments": [ + "Anker/Generic PVA", + "Anycubic/Generic PVA", + "BBL/Generic PVA", + "Blocks/Generic PVA", + "Chuanying/Generic PVA", + "Creality/Generic PVA", + "Custom/Generic PVA", + "FLSun/Generic PVA", + "Flashforge/Generic PVA", + "OrcaArena/Generic PVA", + "OrcaFilamentLibrary/Generic PVA", + "Prusa/Generic PVA", + "Qidi/Generic PVA", + "Ratrig/Generic PVA", + "SecKit/Generic PVA", + "Tiertime/Generic PVA", + "Vzbot/Generic PVA" + ], + "name": "Generic PVA", + "filament_type": "PVA", + "filament_vendor": "Generic" + }, + "OFDvqJ6n": { + "filaments": [ + "OrcaFilamentLibrary/Overture ABS Basic" + ], + "name": "Overture ABS Basic", + "filament_type": "ABS", + "filament_vendor": "Overture" + }, + "OFDwBwO5": { + "filaments": [ + "Prusa/Generic PVA HF" + ], + "name": "Generic PVA HF", + "filament_type": "PVA", + "filament_vendor": "Generic" + }, + "OFDxfPgH": { + "filaments": [ + "BBL/Bambu PLA Sparkle", + "OrcaFilamentLibrary/Bambu PLA Sparkle" + ], + "name": "Bambu PLA Sparkle", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFDxxTpW": { + "filaments": [ + "Flashforge/Flashforge HS PETG" + ], + "name": "Flashforge HS PETG", + "filament_type": "PETG", + "filament_vendor": "Flashforge" + }, + "OFE0NFRh": { + "filaments": [ + "BBL/COEX TPU 60A", + "OrcaFilamentLibrary/COEX TPU 60A" + ], + "name": "COEX TPU 60A", + "filament_type": "TPU", + "filament_vendor": "COEX 3D" + }, + "OFEGNJD4": { + "filaments": [ + "BBL/Bambu PLA Silk", + "OrcaFilamentLibrary/Bambu PLA Silk" + ], + "name": "Bambu PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFEOnBj6": { + "filaments": [ + "Snapmaker/Snapmaker PLA Lite" + ], + "name": "Snapmaker PLA Lite", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFEWYR89": { + "filaments": [ + "Anker/Generic PLA+", + "Qidi/Generic PLA+" + ], + "name": "Generic PLA+", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFEZ449N": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Uva" + ], + "name": "FilAr PLA-mate Uva", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFEZpel7": { + "filaments": [ + "Volumic/PPS Carbone (Performance)" + ], + "name": "PPS Carbone (Performance)", + "filament_type": "PPS-CF", + "filament_vendor": "Volumic" + }, + "OFEabreg": { + "filaments": [ + "Anycubic/Fiberon PA6-CF20", + "BBL/Fiberon PA6-CF20", + "Snapmaker/Fiberon PA6-CF20" + ], + "name": "Fiberon PA6-CF20", + "filament_type": "PA6-CF", + "filament_vendor": "Polymaker" + }, + "OFEbIx49": { + "filaments": [ + "WonderMaker/WonderMaker PLA Marble" + ], + "name": "WonderMaker PLA Marble", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFEhuUNq": { + "filaments": [], + "name": "DREMC PA12-CF", + "filament_type": "PA-CF", + "filament_vendor": "DREMC" + }, + "OFEj7sca": { + "filaments": [ + "Cubicon/Cubicon PC" + ], + "name": "Cubicon PC", + "filament_type": "PC", + "filament_vendor": "Cubicon" + }, + "OFEjbwqG": { + "filaments": [ + "BBL/PolyTerra PLA+", + "Snapmaker/PolyTerra PLA+" + ], + "name": "PolyTerra PLA+", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFEkPBwx": { + "filaments": [ + "BBL/Bambu PLA Glow", + "OrcaFilamentLibrary/Bambu PLA Glow" + ], + "name": "Bambu PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFEmsric": { + "filaments": [ + "Snapmaker/Snapmaker PA-CF" + ], + "name": "Snapmaker PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Snapmaker" + }, + "OFEnbt6D": { + "filaments": [ + "Peopoly/Peopoly Lancer PLA-C" + ], + "name": "Peopoly Lancer PLA-C", + "filament_type": "PLA", + "filament_vendor": "Peopoly" + }, + "OFEswT5W": { + "filaments": [ + "BBL/Bambu PLA-CF", + "OrcaFilamentLibrary/Bambu PLA-CF" + ], + "name": "Bambu PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Bambu Lab" + }, + "OFEvEfw5": { + "filaments": [ + "Flashforge/Flashforge PA" + ], + "name": "Flashforge PA", + "filament_type": "PA", + "filament_vendor": "Flashforge" + }, + "OFEwRwmL": { + "filaments": [ + "Cubicon/Cubicon PLA" + ], + "name": "Cubicon PLA", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OFF3cuzT": { + "filaments": [ + "Creality/Generic TPU 64D" + ], + "name": "Generic TPU 64D", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OFF5o7b2": { + "filaments": [ + "BBL/BETA PLA Youth" + ], + "name": "BETA PLA Youth", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFF9OKoY": { + "filaments": [ + "BBL/PolyLite PLA Pro", + "OrcaFilamentLibrary/PolyLite PLA Pro", + "Snapmaker/PolyLite PLA Pro" + ], + "name": "PolyLite PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFF9cgY5": { + "filaments": [ + "Snapmaker/Snapmaker PLA Matte" + ], + "name": "Snapmaker PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFFAWVf0": { + "filaments": [ + "Qidi/QIDI PC-ABS-FR" + ], + "name": "QIDI PC-ABS-FR", + "filament_type": "PC-ABS-FR", + "filament_vendor": "QIDI" + }, + "OFFFg2Pf": { + "filaments": [ + "Flashforge/Flashforge ASA Basic" + ], + "name": "Flashforge ASA Basic", + "filament_type": "ASA", + "filament_vendor": "Flashforge" + }, + "OFFNYwWR": { + "filaments": [ + "BBL/Bambu PA-CF", + "OrcaFilamentLibrary/Bambu PA-CF" + ], + "name": "Bambu PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Bambu Lab" + }, + "OFFP4ORR": { + "filaments": [ + "Creality/Creality Hyper ABS" + ], + "name": "Creality Hyper ABS", + "filament_type": "ABS", + "filament_vendor": "Creality" + }, + "OFFX1DRD": { + "filaments": [ + "FlyingBear/FlyingBear PC" + ], + "name": "FlyingBear PC", + "filament_type": "PC", + "filament_vendor": "FlyingBear" + }, + "OFFZ458u": { + "filaments": [ + "Snapmaker/Fiberon PA612-ESD" + ], + "name": "Fiberon PA612-ESD", + "filament_type": "PA-CF", + "filament_vendor": "Polymaker" + }, + "OFFbQscs": { + "filaments": [ + "Creality/eSUN PETG-Basic" + ], + "name": "eSUN PETG-Basic", + "filament_type": "PETG", + "filament_vendor": "eSUN" + }, + "OFFbSnCD": { + "filaments": [ + "BBL/Bambu PLA Translucent" + ], + "name": "Bambu PLA Translucent", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFFfJ09N": { + "filaments": [ + "BBL/BETA PETG Glow" + ], + "name": "BETA PETG Glow", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFFkCLBl": { + "filaments": [ + "BBL/Panchroma PLA Galaxy", + "OrcaFilamentLibrary/Panchroma PLA Galaxy", + "Snapmaker/Panchroma PLA Galaxy" + ], + "name": "Panchroma PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFFvzqcd": { + "filaments": [ + "BBL/Bambu PETG Basic", + "OrcaFilamentLibrary/Bambu PETG Basic" + ], + "name": "Bambu PETG Basic", + "filament_type": "PETG", + "filament_vendor": "Bambu Lab" + }, + "OFFwJWea": { + "filaments": [ + "Anycubic/Anycubic PLA Silk" + ], + "name": "Anycubic PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFG0kOKX": { + "filaments": [ + "Volumic/Volumic PETG Ultra" + ], + "name": "Volumic PETG Ultra", + "filament_type": "PETG", + "filament_vendor": "Volumic" + }, + "OFG2RkhN": { + "filaments": [ + "Creality/CR-TPU" + ], + "name": "CR-TPU", + "filament_type": "TPU", + "filament_vendor": "Creality" + }, + "OFG4do34": { + "filaments": [ + "Qidi/Qidi ASA-Aero" + ], + "name": "Qidi ASA-Aero", + "filament_type": "ASA-AERO", + "filament_vendor": "QIDI" + }, + "OFGJ1nxs": { + "filaments": [ + "FlyingBear/Other PLA", + "InfiMech/Other PLA" + ], + "name": "Other PLA", + "filament_type": "PLA", + "filament_vendor": "Other" + }, + "OFGVwfK0": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Gris" + ], + "name": "FilAr PLA-mate Gris", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFGVxj2A": { + "filaments": [ + "BBL/BETA PLA Wood" + ], + "name": "BETA PLA Wood", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFGc9l16": { + "filaments": [ + "BBL/BETA PLA Glow" + ], + "name": "BETA PLA Glow", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFGcLA5R": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Beige" + ], + "name": "FilAr PLA-mate Beige", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFGcMkEB": { + "filaments": [ + "Creality/HP-TPU" + ], + "name": "HP-TPU", + "filament_type": "TPU", + "filament_vendor": "Creality" + }, + "OFGdP6Na": { + "filaments": [ + "Volumic/Volumic PVA" + ], + "name": "Volumic PVA", + "filament_type": "PVA", + "filament_vendor": "Volumic" + }, + "OFGkyftV": { + "filaments": [ + "BBL/Overture Silk PLA", + "OrcaFilamentLibrary/Overture Silk PLA" + ], + "name": "Overture Silk PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFGwT5Av": { + "filaments": [ + "Creality/Creality Hyper PLA-CF" + ], + "name": "Creality Hyper PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Creality" + }, + "OFGwZmgS": { + "filaments": [ + "Creality/CR-ABS" + ], + "name": "CR-ABS", + "filament_type": "ABS", + "filament_vendor": "Creality" + }, + "OFGxC8gB": { + "filaments": [ + "Creality/CR-Wood" + ], + "name": "CR-Wood", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFGxuI0n": { + "filaments": [ + "Flashforge/Flashforge PA-CF" + ], + "name": "Flashforge PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Flashforge" + }, + "OFH2nN08": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 850" + ], + "name": "Eolas Prints PLA INGEO 850", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFH57ibH": { + "filaments": [ + "Snapmaker/Polymaker Silk PLA Family" + ], + "name": "Polymaker Silk PLA Family", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFH7b12v": { + "filaments": [ + "Creality/Generic PAHT-CF" + ], + "name": "Generic PAHT-CF", + "filament_type": "PA-CF", + "filament_vendor": "Generic" + }, + "OFHAccHz": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Antartida" + ], + "name": "FilAr PLA Blanco Antartida", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFHHwrd1": { + "filaments": [ + "BBL/addnorth PETG Base" + ], + "name": "addnorth PETG Base", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OFHWSM21": { + "filaments": [ + "BBL/Fiberon PET-CF", + "OrcaFilamentLibrary/Fiberon PET-CF" + ], + "name": "Fiberon PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Polymaker" + }, + "OFHa48An": { + "filaments": [ + "BBL/Bambu PET-CF", + "OrcaFilamentLibrary/Bambu PET-CF" + ], + "name": "Bambu PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Bambu Lab" + }, + "OFHaYaB1": { + "filaments": [ + "Creality/eSUN PET-Basic" + ], + "name": "eSUN PET-Basic", + "filament_type": "PET", + "filament_vendor": "eSUN" + }, + "OFHf2lKK": { + "filaments": [ + "FlyingBear/FlyingBear TPU Basic" + ], + "name": "FlyingBear TPU Basic", + "filament_type": "TPU", + "filament_vendor": "FlyingBear" + }, + "OFHfzQXo": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Transition" + ], + "name": "Eolas Prints PLA Transition", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFHknN4v": { + "filaments": [ + "Anycubic/Polymaker PLA Pro Metallic", + "Snapmaker/Polymaker PLA Pro Metallic" + ], + "name": "Polymaker PLA Pro Metallic", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFHmPYRy": { + "filaments": [ + "BBL/SUNLU PLA+ 2.0", + "Flashforge/SUNLU PLA+ 2.0", + "OrcaFilamentLibrary/SUNLU PLA+ 2.0" + ], + "name": "SUNLU PLA+ 2.0", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFI2MKy7": { + "filaments": [ + "BBL/BETA PEBA 90A" + ], + "name": "BETA PEBA 90A", + "filament_type": "TPU", + "filament_vendor": "BETA" + }, + "OFI6WZpn": { + "filaments": [ + "OrcaArena/Arena Support W" + ], + "name": "Arena Support W", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFIBXa0k": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rojo" + ], + "name": "FilAr PLA-mate Rojo", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFIBbYO5": { + "filaments": [ + "BBL/Bambu TPU for AMS" + ], + "name": "Bambu TPU for AMS", + "filament_type": "TPU-AMS", + "filament_vendor": "Bambu Lab" + }, + "OFIE3vOf": { + "filaments": [ + "Anycubic/Anycubic PLA Matte" + ], + "name": "Anycubic PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFIK2H3G": { + "filaments": [ + "Flashforge/Flashforge HS PLA" + ], + "name": "Flashforge HS PLA", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFIKZxPF": { + "filaments": [ + "Creality/Generic PLA Wood" + ], + "name": "Generic PLA Wood", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFIPjqHt": { + "filaments": [ + "OrcaArena/Arena Support G" + ], + "name": "Arena Support G", + "filament_type": "PA", + "filament_vendor": "Orca Arena" + }, + "OFIRUqWi": { + "filaments": [ + "Creality/eSUN PLA-Silk" + ], + "name": "eSUN PLA-Silk", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFIVWJPm": { + "filaments": [ + "InfiMech/InfiMech TPU" + ], + "name": "InfiMech TPU", + "filament_type": "TPU", + "filament_vendor": "InfiMech" + }, + "OFIWMSGX": { + "filaments": [ + "Qidi/HATCHBOX PETG" + ], + "name": "HATCHBOX PETG", + "filament_type": "PETG", + "filament_vendor": "HATCHBOX" + }, + "OFIZMQwM": { + "filaments": [ + "LH/LHS TPU" + ], + "name": "LHS TPU", + "filament_type": "TPU", + "filament_vendor": "LH Stinger" + }, + "OFIamQnD": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Gris Ceniza" + ], + "name": "FilAr PLA Gris Ceniza", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFIegjmD": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex D53" + ], + "name": "Eolas Prints TPU Flex D53", + "filament_type": "TPU", + "filament_vendor": "Eolas Prints" + }, + "OFIfnzxC": { + "filaments": [ + "BBL/Bambu Support For PLA/PETG", + "OrcaFilamentLibrary/Bambu Support For PLA/PETG" + ], + "name": "Bambu Support For PLA/PETG", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFIgbDHq": { + "filaments": [ + "Anycubic/Anycubic PLA Luminous" + ], + "name": "Anycubic PLA Luminous", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFIxOuOu": { + "filaments": [ + "BBL/PolyLite PLA Starlight", + "Snapmaker/PolyLite PLA Starlight" + ], + "name": "PolyLite PLA Starlight", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFJ3F2jm": { + "filaments": [ + "Flashforge/Flashforge PLA Basic" + ], + "name": "Flashforge PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFJ3HRsR": { + "filaments": [ + "OrcaArena/Arena ABS" + ], + "name": "Arena ABS", + "filament_type": "ABS", + "filament_vendor": "Orca Arena" + }, + "OFJHBEGD": { + "filaments": [], + "name": "DREMC PLA+ HS", + "filament_type": "PLA", + "filament_vendor": "DREMC" + }, + "OFJJ0Ar3": { + "filaments": [ + "Flashforge/Flashforge PLA Galaxy" + ], + "name": "Flashforge PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFJNeELv": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PA" + ], + "name": "FILL3D PA", + "filament_type": "PA", + "filament_vendor": "FILL3D" + }, + "OFJOFnOZ": { + "filaments": [ + "BBL/AliZ PETG-CF", + "OrcaFilamentLibrary/AliZ PETG-CF" + ], + "name": "AliZ PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Aliz" + }, + "OFJQDUk3": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Cristal" + ], + "name": "FilAr PETG Cristal", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFJS560n": { + "filaments": [], + "name": "Flashforge ASA", + "filament_type": "ASA", + "filament_vendor": "Flashforge" + }, + "OFJWKoYG": { + "filaments": [ + "iQ/Material4Print ABS Natur P1" + ], + "name": "Material4Print ABS Natur P1", + "filament_type": "ABS Material4Print Natur", + "filament_vendor": "iQ Materials" + }, + "OFJYpVAQ": { + "filaments": [ + "Flashforge/Generic TPU-90A" + ], + "name": "Generic TPU-90A", + "filament_type": "TPU-90A", + "filament_vendor": "Generic" + }, + "OFJgijky": { + "filaments": [ + "BBL/PolyLite CosPLA", + "Snapmaker/PolyLite CosPLA" + ], + "name": "PolyLite CosPLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFJhT2fd": { + "filaments": [ + "Snapmaker/Snapmaker Dual ABS" + ], + "name": "Snapmaker Dual ABS", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OFJnEaCp": { + "filaments": [ + "BBL/BETA PLA Transparent" + ], + "name": "BETA PLA Transparent", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFJrvXth": { + "filaments": [ + "Snapmaker/Snapmaker ABS Benchy" + ], + "name": "Snapmaker ABS Benchy", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OFJs1ToM": { + "filaments": [ + "BBL/COEX NYLEX UNFILLED" + ], + "name": "COEX NYLEX UNFILLED", + "filament_type": "PA", + "filament_vendor": "COEX 3D" + }, + "OFJu1XwK": { + "filaments": [ + "OrcaFilamentLibrary/NIT PETG" + ], + "name": "NIT PETG", + "filament_type": "PETG", + "filament_vendor": "NIT" + }, + "OFJxSqO4": { + "filaments": [ + "Wanhao France/YUMI PLA Direct Drive" + ], + "name": "YUMI PLA Direct Drive", + "filament_type": "PLA", + "filament_vendor": "Yumi" + }, + "OFK7830e": { + "filaments": [ + "BBL/BETA TPU 95A" + ], + "name": "BETA TPU 95A", + "filament_type": "TPU", + "filament_vendor": "BETA" + }, + "OFK8XHPn": { + "filaments": [ + "Qidi/Overture ABS" + ], + "name": "Overture ABS", + "filament_type": "ABS", + "filament_vendor": "Overture" + }, + "OFKIQO2W": { + "filaments": [ + "Qidi/QIDI PLA Rapido" + ], + "name": "QIDI PLA Rapido", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFKKajh6": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Gris Plata" + ], + "name": "FilAr PLA Gris Plata", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFKTGKJU": { + "filaments": [ + "Flashforge/FusRock PET" + ], + "name": "FusRock PET", + "filament_type": "PET", + "filament_vendor": "FusRock" + }, + "OFKTSiYF": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Blanco Calido" + ], + "name": "FilAr PLA Blanco Calido", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFKUEXPA": { + "filaments": [ + "Snapmaker/Snapmaker Dual ASA" + ], + "name": "Snapmaker Dual ASA", + "filament_type": "ASA", + "filament_vendor": "Snapmaker" + }, + "OFKW5hEW": { + "filaments": [ + "Flashforge/FusRock PAHT-CF" + ], + "name": "FusRock PAHT-CF", + "filament_type": "PAHT-CF", + "filament_vendor": "FusRock" + }, + "OFKWWgyp": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Carpincho" + ], + "name": "FilAr PLA Carpincho", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFKYBAWe": { + "filaments": [ + "BBL/BETA PLA Marble" + ], + "name": "BETA PLA Marble", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFKZ9skj": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Naranja Tigre" + ], + "name": "FilAr PLA Naranja Tigre", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFKbdiiJ": { + "filaments": [ + "Creality/PolySonic PLA Pro" + ], + "name": "PolySonic PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFKfJTwL": { + "filaments": [ + "Qidi/QIDI PET-CF" + ], + "name": "QIDI PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "QIDI" + }, + "OFKgmsqE": { + "filaments": [ + "Qidi/QIDI PAHT-CF" + ], + "name": "QIDI PAHT-CF", + "filament_type": "PAHT-CF", + "filament_vendor": "QIDI" + }, + "OFKhMPeX": { + "filaments": [ + "BBL/Bambu PC", + "OrcaFilamentLibrary/Bambu PC" + ], + "name": "Bambu PC", + "filament_type": "PC", + "filament_vendor": "Bambu Lab" + }, + "OFKiSMWR": { + "filaments": [ + "BBL/Panchroma PLA Marble", + "OrcaFilamentLibrary/Panchroma PLA Marble", + "Snapmaker/Panchroma PLA Marble" + ], + "name": "Panchroma PLA Marble", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFKyNkQz": { + "filaments": [ + "BBL/BETA PETG UV Color Change" + ], + "name": "BETA PETG UV Color Change", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFL9aRjN": { + "filaments": [ + "Snapmaker/Snapmaker PETG HF" + ], + "name": "Snapmaker PETG HF", + "filament_type": "PETG", + "filament_vendor": "Snapmaker" + }, + "OFLAXKqP": { + "filaments": [ + "WonderMaker/WonderMaker TPU 95A" + ], + "name": "WonderMaker TPU 95A", + "filament_type": "TPU", + "filament_vendor": "WonderMaker" + }, + "OFLC1oRH": { + "filaments": [ + "Flashforge/Flashforge PPA-CF" + ], + "name": "Flashforge PPA-CF", + "filament_type": "PPA-CF", + "filament_vendor": "Flashforge" + }, + "OFLJ8S6I": { + "filaments": [ + "BBL/SUNLU Wood PLA", + "Flashforge/SUNLU Wood PLA", + "OrcaFilamentLibrary/SUNLU Wood PLA" + ], + "name": "SUNLU Wood PLA", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFLNgV3C": { + "filaments": [], + "name": "DREMC ASA", + "filament_type": "ASA", + "filament_vendor": "DREMC" + }, + "OFLOf6Sc": { + "filaments": [ + "Tiertime/Tiertime TPU 95A" + ], + "name": "Tiertime TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Tiertime" + }, + "OFLPAxz3": { + "filaments": [ + "Anker/Generic ASA", + "Anycubic/Generic ASA", + "Artillery/Generic ASA", + "BBL/Generic ASA", + "Blocks/Generic ASA", + "Chuanying/Generic ASA", + "Creality/Generic ASA", + "Custom/Generic ASA", + "Elegoo/Generic ASA", + "FLSun/Generic ASA", + "Flashforge/Generic ASA", + "OrcaArena/Generic ASA", + "OrcaFilamentLibrary/Generic ASA", + "Prusa/Generic ASA", + "Qidi/Generic ASA", + "RH3D/Generic ASA", + "Ratrig/Generic ASA", + "SecKit/Generic ASA", + "Tiertime/Generic ASA", + "Vzbot/Generic ASA" + ], + "name": "Generic ASA", + "filament_type": "ASA", + "filament_vendor": "Generic" + }, + "OFLTYJW0": { + "filaments": [ + "Snapmaker/Snapmaker PLA Translucent" + ], + "name": "Snapmaker PLA Translucent", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFLXvuMr": { + "filaments": [ + "Elegoo/Elegoo Rapid PETG", + "OrcaFilamentLibrary/Elegoo Rapid PETG" + ], + "name": "Elegoo Rapid PETG", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFLYDngx": { + "filaments": [ + "Qidi/Bambu PETG" + ], + "name": "Bambu PETG", + "filament_type": "PETG", + "filament_vendor": "Bambu Lab" + }, + "OFLakOUI": { + "filaments": [ + "Anker/Generic PC", + "Anycubic/Generic PC", + "BBL/Generic PC", + "Blocks/Generic PC", + "Creality/Generic PC", + "Custom/Generic PC", + "Elegoo/Generic PC", + "FLSun/Generic PC", + "FlyingBear/Generic PC", + "InfiMech/Generic PC", + "OrcaArena/Generic PC", + "OrcaFilamentLibrary/Generic PC", + "Prusa/Generic PC", + "Qidi/Generic PC", + "Ratrig/Generic PC", + "SecKit/Generic PC", + "Sovol/Generic PC", + "Tiertime/Generic PC", + "Vzbot/Generic PC" + ], + "name": "Generic PC", + "filament_type": "PC", + "filament_vendor": "Generic" + }, + "OFLbXwoL": { + "filaments": [ + "Artillery/Artillery PLA Silk" + ], + "name": "Artillery PLA Silk", + "filament_type": "PLA Silk", + "filament_vendor": "Artillery" + }, + "OFLbdkrE": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA Eco" + ], + "name": "Snapmaker J1 PLA Eco", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFLcd093": { + "filaments": [ + "Elegoo/Elegoo PETG", + "OrcaFilamentLibrary/Elegoo PETG" + ], + "name": "Elegoo PETG", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFLfywkp": { + "filaments": [ + "Afinia/Afinia ABS+" + ], + "name": "Afinia ABS+", + "filament_type": "ABS", + "filament_vendor": "Afinia" + }, + "OFLgwqp2": { + "filaments": [ + "Creality/Hyper PETG-GF" + ], + "name": "Hyper PETG-GF", + "filament_type": "PETG-GF", + "filament_vendor": "Creality" + }, + "OFLjDYxH": { + "filaments": [ + "BBL/addnorth PLA X-PLA High Speed" + ], + "name": "addnorth PLA X-PLA High Speed", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFLqgSuX": { + "filaments": [ + "BBL/BETA PLA-CF" + ], + "name": "BETA PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "BETA" + }, + "OFLzx3J4": { + "filaments": [ + "Creality/Hyper Marble" + ], + "name": "Hyper Marble", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFM0xjBG": { + "filaments": [ + "Creality/CR-PLA Matte" + ], + "name": "CR-PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFM4iJlv": { + "filaments": [ + "Creality/Generic PA12-CF" + ], + "name": "Generic PA12-CF", + "filament_type": "PA-CF", + "filament_vendor": "Generic" + }, + "OFM91vZs": { + "filaments": [ + "BBL/Overture ASA", + "OrcaFilamentLibrary/Overture ASA" + ], + "name": "Overture ASA", + "filament_type": "ASA", + "filament_vendor": "Overture" + }, + "OFMDHOcT": { + "filaments": [ + "Qidi/QIDI TPU-Aero" + ], + "name": "QIDI TPU-Aero", + "filament_type": "TPU-AERO", + "filament_vendor": "QIDI" + }, + "OFMK5gVo": { + "filaments": [ + "WonderMaker/WonderMaker PLA Basic" + ], + "name": "WonderMaker PLA Basic", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFML2aVd": { + "filaments": [ + "Anycubic/Anycubic TPU 95A" + ], + "name": "Anycubic TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Anycubic" + }, + "OFMSvS8z": { + "filaments": [ + "Artillery/Artillery PA" + ], + "name": "Artillery PA", + "filament_type": "PA", + "filament_vendor": "Artillery" + }, + "OFMTK0UC": { + "filaments": [ + "BBL/Bambu Support For PA/PET", + "OrcaFilamentLibrary/Bambu Support For PA/PET" + ], + "name": "Bambu Support For PA/PET", + "filament_type": "PA", + "filament_vendor": "Bambu Lab" + }, + "OFMUWNkp": { + "filaments": [ + "BBL/SUNLU PLA+", + "Flashforge/SUNLU PLA+", + "OrcaFilamentLibrary/SUNLU PLA+" + ], + "name": "SUNLU PLA+", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFMZvH0z": { + "filaments": [ + "BBL/Overture Rock PLA", + "OrcaFilamentLibrary/Overture Rock PLA" + ], + "name": "Overture Rock PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFMjtqTC": { + "filaments": [ + "BBL/Bambu PLA Wood", + "OrcaFilamentLibrary/Bambu PLA Wood" + ], + "name": "Bambu PLA Wood", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFMkAW6r": { + "filaments": [ + "Flashforge/Flashforge PLA Color Change" + ], + "name": "Flashforge PLA Color Change", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFMpxamb": { + "filaments": [ + "Flashforge/Flashforge PETG" + ], + "name": "Flashforge PETG", + "filament_type": "PETG", + "filament_vendor": "Flashforge" + }, + "OFMsDGbs": { + "filaments": [ + "Anycubic/Anycubic TPU" + ], + "name": "Anycubic TPU", + "filament_type": "TPU", + "filament_vendor": "Anycubic" + }, + "OFMuXBmO": { + "filaments": [ + "OrcaFilamentLibrary/Elas PLA Basic" + ], + "name": "Elas PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Elas" + }, + "OFMzRg65": { + "filaments": [ + "BBL/BETA PLA PRO" + ], + "name": "BETA PLA PRO", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFN8QBhu": { + "filaments": [ + "BBL/addnorth PLA Wood" + ], + "name": "addnorth PLA Wood", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFN9fefN": { + "filaments": [ + "Cubicon/Cubicon ABS-A100" + ], + "name": "Cubicon ABS-A100", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFNBlAPT": { + "filaments": [ + "OrcaArena/Arena PETG Basic" + ], + "name": "Arena PETG Basic", + "filament_type": "PETG", + "filament_vendor": "Orca Arena" + }, + "OFNGTH3w": { + "filaments": [ + "Tiertime/Tiertime PLA" + ], + "name": "Tiertime PLA", + "filament_type": "PLA", + "filament_vendor": "Tiertime" + }, + "OFNQKF0M": { + "filaments": [ + "Tiertime/Tiertime ABS" + ], + "name": "Tiertime ABS", + "filament_type": "ABS", + "filament_vendor": "Tiertime" + }, + "OFNSYu5h": { + "filaments": [ + "Volumic/Volumic PP Ultra (Performance)" + ], + "name": "Volumic PP Ultra (Performance)", + "filament_type": "PP", + "filament_vendor": "Volumic" + }, + "OFNU9YIW": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Azul Boreal" + ], + "name": "FilAr PETG Azul Boreal", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFNemJM6": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Cobre" + ], + "name": "FilAr PLA Cobre", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFNjku08": { + "filaments": [ + "CONSTRUCT3D/Generic High Flow PETG" + ], + "name": "Generic High Flow PETG", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OFNk8AvA": { + "filaments": [ + "BBL/BETA PETG Gradient" + ], + "name": "BETA PETG Gradient", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFNk8bxk": { + "filaments": [ + "BBL/Bambu PA6-GF", + "OrcaFilamentLibrary/Bambu PA6-GF" + ], + "name": "Bambu PA6-GF", + "filament_type": "PA-GF", + "filament_vendor": "Bambu Lab" + }, + "OFNstOna": { + "filaments": [ + "Eryone/Eryone PETG-CF" + ], + "name": "Eryone PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Eryone" + }, + "OFNvBIL0": { + "filaments": [ + "Creality/Hyper PPA-CF" + ], + "name": "Hyper PPA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Creality" + }, + "OFO1GEq6": { + "filaments": [ + "BBL/Panchroma PLA Neon", + "OrcaFilamentLibrary/Panchroma PLA Neon", + "Snapmaker/Panchroma PLA Neon" + ], + "name": "Panchroma PLA Neon", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFO5djrM": { + "filaments": [ + "Chuanying/Generic PETG-CF10", + "Flashforge/Generic PETG-CF10" + ], + "name": "Generic PETG-CF10", + "filament_type": "PETG-CF", + "filament_vendor": "Generic" + }, + "OFO6GMJ3": { + "filaments": [ + "BBL/addnorth TPU EasyFlex" + ], + "name": "addnorth TPU EasyFlex", + "filament_type": "TPU", + "filament_vendor": "addnorth" + }, + "OFOABq7t": { + "filaments": [ + "BBL/AliZ PETG-Metal", + "OrcaFilamentLibrary/AliZ PETG-Metal" + ], + "name": "AliZ PETG-Metal", + "filament_type": "PETG", + "filament_vendor": "Aliz" + }, + "OFOAdMCB": { + "filaments": [ + "OrcaArena/Arena PLA Metal" + ], + "name": "Arena PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFOHOf2F": { + "filaments": [ + "Creality/eSUN PLA-HS" + ], + "name": "eSUN PLA-HS", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFOJPAAS": { + "filaments": [ + "iQ/VXL90 TiQ2 P2" + ], + "name": "VXL90 TiQ2 P2", + "filament_type": "VXL90 Xioneer", + "filament_vendor": "iQ Materials" + }, + "OFOPU1xv": { + "filaments": [ + "Snapmaker/Snapmaker PLA Full Spectrum" + ], + "name": "Snapmaker PLA Full Spectrum", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFOQCfVa": { + "filaments": [ + "BBL/addnorth PLA Premium Silk" + ], + "name": "addnorth PLA Premium Silk", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFObG16Q": { + "filaments": [ + "InfiMech/InfiMech PLA Basic" + ], + "name": "InfiMech PLA Basic", + "filament_type": "PLA", + "filament_vendor": "InfiMech" + }, + "OFObyktP": { + "filaments": [ + "Tiertime/Tiertime PETG" + ], + "name": "Tiertime PETG", + "filament_type": "PETG", + "filament_vendor": "Tiertime" + }, + "OFOiJfLM": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PETG CF" + ], + "name": "FILL3D PETG CF", + "filament_type": "PETG-CF", + "filament_vendor": "FILL3D" + }, + "OFOnSNt3": { + "filaments": [ + "Artillery/Artillery PETG-CF" + ], + "name": "Artillery PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Artillery" + }, + "OFOsHDnB": { + "filaments": [ + "Elegoo/Elegoo PETG PRO", + "OrcaFilamentLibrary/Elegoo PETG PRO" + ], + "name": "Elegoo PETG PRO", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFOuEEvv": { + "filaments": [ + "Qidi/QIDI ABS Rapido 0.2 nozzle" + ], + "name": "QIDI ABS Rapido 0.2 nozzle", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OFOvv91M": { + "filaments": [ + "BBL/PolyLite ABS", + "OrcaFilamentLibrary/PolyLite ABS", + "Qidi/PolyLite ABS" + ], + "name": "PolyLite ABS", + "filament_type": "ABS", + "filament_vendor": "Polymaker" + }, + "OFOwQuZM": { + "filaments": [ + "Snapmaker/Snapmaker PETG-CF" + ], + "name": "Snapmaker PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Snapmaker" + }, + "OFOzwywz": { + "filaments": [ + "Eryone/Eryone ABS" + ], + "name": "Eryone ABS", + "filament_type": "ABS", + "filament_vendor": "Eryone" + }, + "OFP26zNb": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Violeta Jacaranda" + ], + "name": "FilAr PLA Violeta Jacaranda", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFPHLnoe": { + "filaments": [ + "Creality/HP-ASA" + ], + "name": "HP-ASA", + "filament_type": "ASA", + "filament_vendor": "Creality" + }, + "OFPWPlSC": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PP" + ], + "name": "FILL3D PP", + "filament_type": "PP", + "filament_vendor": "FILL3D" + }, + "OFPYDWgC": { + "filaments": [ + "Peopoly/Peopoly Lancer PET-CF" + ], + "name": "Peopoly Lancer PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Peopoly" + }, + "OFPbyOSk": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Rojo Carmesi" + ], + "name": "FilAr PETG Rojo Carmesi", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFPc4zVY": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA INGEO 870" + ], + "name": "Eolas Prints PLA INGEO 870", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFPkCJKE": { + "filaments": [ + "BBL/Panchroma PLA Satin", + "Creality/Panchroma PLA Satin", + "OrcaFilamentLibrary/Panchroma PLA Satin", + "Snapmaker/Panchroma PLA Satin" + ], + "name": "Panchroma PLA Satin", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFPklMI1": { + "filaments": [ + "BBL/Generic PE", + "OrcaFilamentLibrary/Generic PE", + "Tiertime/Generic PE" + ], + "name": "Generic PE", + "filament_type": "PE", + "filament_vendor": "Generic" + }, + "OFPoyiFs": { + "filaments": [ + "BBL/Polymaker HT-PLA", + "OrcaFilamentLibrary/Polymaker HT-PLA", + "Snapmaker/Polymaker HT-PLA" + ], + "name": "Polymaker HT-PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFPqX3x2": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Amaranto" + ], + "name": "FilAr PLA Rosa Amaranto", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFQ1KzO8": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA Silk" + ], + "name": "Snapmaker J1 PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFQ1zgm3": { + "filaments": [ + "Eryone/Eryone ABS-CF" + ], + "name": "Eryone ABS-CF", + "filament_type": "ABS-CF", + "filament_vendor": "Eryone" + }, + "OFQ3e56w": { + "filaments": [ + "BBL/Bambu PLA Galaxy", + "OrcaFilamentLibrary/Bambu PLA Galaxy" + ], + "name": "Bambu PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFQ40XeN": { + "filaments": [ + "Qidi/QIDI PETG Tough" + ], + "name": "QIDI PETG Tough", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFQ5TxZ2": { + "filaments": [ + "BBL/addnorth PVDF Adamant S1" + ], + "name": "addnorth PVDF Adamant S1", + "filament_type": "PA", + "filament_vendor": "addnorth" + }, + "OFQEGL7z": { + "filaments": [ + "FlyingBear/FlyingBear PA-CF" + ], + "name": "FlyingBear PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "FlyingBear" + }, + "OFQGvU2G": { + "filaments": [ + "OrcaArena/Arena TPU 95A" + ], + "name": "Arena TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Orca Arena" + }, + "OFQHiNJs": { + "filaments": [ + "BBL/Bambu Support G", + "OrcaFilamentLibrary/Bambu Support G" + ], + "name": "Bambu Support G", + "filament_type": "PA", + "filament_vendor": "Bambu Lab" + }, + "OFQLcbps": { + "filaments": [ + "Anker/Generic PA-CF", + "Anycubic/Generic PA-CF", + "BBL/Generic PA-CF", + "Blocks/Generic PA-CF", + "Creality/Generic PA-CF", + "Custom/Generic PA-CF", + "FLSun/Generic PA-CF", + "FlyingBear/Generic PA-CF", + "InfiMech/Generic PA-CF", + "OrcaArena/Generic PA-CF", + "OrcaFilamentLibrary/Generic PA-CF", + "Prusa/Generic PA-CF", + "Qidi/Generic PA-CF", + "Ratrig/Generic PA-CF", + "SecKit/Generic PA-CF", + "Tiertime/Generic PA-CF", + "Vzbot/Generic PA-CF" + ], + "name": "Generic PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Generic" + }, + "OFQMTRc8": { + "filaments": [ + "Snapmaker/Snapmaker J1 PETG" + ], + "name": "Snapmaker J1 PETG", + "filament_type": "PETG", + "filament_vendor": "Snapmaker" + }, + "OFQMsFfF": { + "filaments": [ + "Qidi/QIDI ABS-GF10" + ], + "name": "QIDI ABS-GF10", + "filament_type": "ABS-GF", + "filament_vendor": "QIDI" + }, + "OFQWIKbV": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Titanio" + ], + "name": "FilAr PLA Titanio", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFQYaiGg": { + "filaments": [ + "Snapmaker/Snapmaker PET" + ], + "name": "Snapmaker PET", + "filament_type": "PET", + "filament_vendor": "Snapmaker" + }, + "OFQbjX3s": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PETG" + ], + "name": "FILL3D PETG", + "filament_type": "PETG", + "filament_vendor": "FILL3D" + }, + "OFQdaVZS": { + "filaments": [ + "Creality/Generic PET-CF", + "Elegoo/Generic PET-CF" + ], + "name": "Generic PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Generic" + }, + "OFQe7sAx": { + "filaments": [ + "Anycubic/Anycubic PA6-CF" + ], + "name": "Anycubic PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Anycubic" + }, + "OFQyyO0l": { + "filaments": [ + "Flashforge/Polymaker CoPA" + ], + "name": "Polymaker CoPA", + "filament_type": "PA", + "filament_vendor": "Polymaker" + }, + "OFR0gODA": { + "filaments": [ + "SeeMeCNC/SeeMeCNC ABS" + ], + "name": "SeeMeCNC ABS", + "filament_type": "ABS", + "filament_vendor": "SeeMeCNC" + }, + "OFR1XLMN": { + "filaments": [ + "Qidi/QIDI TPU 95A-HF" + ], + "name": "QIDI TPU 95A-HF", + "filament_type": "TPU", + "filament_vendor": "QIDI" + }, + "OFRFhdqy": { + "filaments": [ + "BBL/addnorth PLA Textura" + ], + "name": "addnorth PLA Textura", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFRJ325z": { + "filaments": [ + "LH/LHS PETG" + ], + "name": "LHS PETG", + "filament_type": "PETG", + "filament_vendor": "LH Stinger" + }, + "OFRhBryT": { + "filaments": [ + "Cubicon/Cubicon PLAi21" + ], + "name": "Cubicon PLAi21", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OFRhCTUg": { + "filaments": [ + "Anycubic/Anycubic PET-CF" + ], + "name": "Anycubic PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Anycubic" + }, + "OFRiFnfQ": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PETG Transition" + ], + "name": "Eolas Prints PETG Transition", + "filament_type": "PETG", + "filament_vendor": "Eolas Prints" + }, + "OFRiYgMK": { + "filaments": [ + "BBL/Panchroma PLA Celestial", + "OrcaFilamentLibrary/Panchroma PLA Celestial", + "Snapmaker/Panchroma PLA Celestial" + ], + "name": "Panchroma PLA Celestial", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFRkjhxK": { + "filaments": [ + "Volumic/Volumic PVA-BVOH (Performance)" + ], + "name": "Volumic PVA-BVOH (Performance)", + "filament_type": "PVA", + "filament_vendor": "Volumic" + }, + "OFRmGKVX": { + "filaments": [ + "Cubicon/Cubicon PLA+" + ], + "name": "Cubicon PLA+", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OFRooa0F": { + "filaments": [ + "Snapmaker/Snapmaker Dual PA-CF" + ], + "name": "Snapmaker Dual PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Snapmaker" + }, + "OFRpAZ1P": { + "filaments": [ + "DeltaMaker/DeltaMaker Brand PLA" + ], + "name": "DeltaMaker Brand PLA", + "filament_type": "PLA", + "filament_vendor": "DeltaMaker" + }, + "OFRyOsZj": { + "filaments": [ + "re3D/re3D PLA" + ], + "name": "re3D PLA", + "filament_type": "PLA", + "filament_vendor": "re3D" + }, + "OFRzR5mi": { + "filaments": [ + "OrcaFilamentLibrary/eSUN ePLA-LW" + ], + "name": "eSUN ePLA-LW", + "filament_type": "PLA-AERO", + "filament_vendor": "eSUN" + }, + "OFS2tn6G": { + "filaments": [ + "BBL/Fiberon PA612-CF", + "OrcaFilamentLibrary/Fiberon PA612-CF" + ], + "name": "Fiberon PA612-CF", + "filament_type": "PA", + "filament_vendor": "Polymaker" + }, + "OFS4jbj3": { + "filaments": [ + "Eryone/Eryone PA" + ], + "name": "Eryone PA", + "filament_type": "PA", + "filament_vendor": "Eryone" + }, + "OFS8lTQt": { + "filaments": [ + "BBL/Panchroma PLA Silk", + "OrcaFilamentLibrary/Panchroma PLA Silk", + "Snapmaker/Panchroma PLA Silk" + ], + "name": "Panchroma PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFSDfduA": { + "filaments": [ + "Flashforge/Flashforge TPU 65D" + ], + "name": "Flashforge TPU 65D", + "filament_type": "TPU", + "filament_vendor": "Flashforge" + }, + "OFSa39yP": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA" + ], + "name": "Snapmaker J1 PLA", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFSbGfsz": { + "filaments": [ + "OrcaArena/Arena PLA Basic" + ], + "name": "Arena PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFSfm8iP": { + "filaments": [ + "BBL/BETA PLA Heat Color Change" + ], + "name": "BETA PLA Heat Color Change", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFSiCZP3": { + "filaments": [ + "BBL/BETA PETG-GF" + ], + "name": "BETA PETG-GF", + "filament_type": "PETG-CF", + "filament_vendor": "BETA" + }, + "OFSqIcJC": { + "filaments": [ + "Flashforge/Flashforge TPU 95A" + ], + "name": "Flashforge TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Flashforge" + }, + "OFSw6Mor": { + "filaments": [ + "BBL/addnorth PA Adura FDA" + ], + "name": "addnorth PA Adura FDA", + "filament_type": "PA", + "filament_vendor": "addnorth" + }, + "OFSwbBWS": { + "filaments": [], + "name": "DREMC PLA+", + "filament_type": "PLA", + "filament_vendor": "DREMC" + }, + "OFT2jon4": { + "filaments": [ + "Qidi/QIDI ABS Rapido" + ], + "name": "QIDI ABS Rapido", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OFTGHyNC": { + "filaments": [ + "OrcaFilamentLibrary/Bambu PLA Impact" + ], + "name": "Bambu PLA Impact", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFTHDCqA": { + "filaments": [ + "BBL/Bambu PLA Pure" + ], + "name": "Bambu PLA Pure", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFTOPcx0": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints TPU Transition" + ], + "name": "Eolas Prints TPU Transition", + "filament_type": "TPU", + "filament_vendor": "Eolas Prints" + }, + "OFTRZ8Y4": { + "filaments": [ + "BBL/Bambu PETG-CF", + "OrcaFilamentLibrary/Bambu PETG-CF" + ], + "name": "Bambu PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Bambu Lab" + }, + "OFTSXxzE": { + "filaments": [ + "Flashforge/Flashforge PPS-CF" + ], + "name": "Flashforge PPS-CF", + "filament_type": "PPS-CF", + "filament_vendor": "Flashforge" + }, + "OFTXduCM": { + "filaments": [ + "Creality/eSUN ABS+" + ], + "name": "eSUN ABS+", + "filament_type": "ABS", + "filament_vendor": "eSUN" + }, + "OFTcE0nA": { + "filaments": [ + "OrcaFilamentLibrary/eSUN PLA-Basic" + ], + "name": "eSUN PLA-Basic", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFTdauIq": { + "filaments": [ + "Volumic/Volumic PCTG Ultra (Performance)" + ], + "name": "Volumic PCTG Ultra (Performance)", + "filament_type": "PETG", + "filament_vendor": "Volumic" + }, + "OFTkj6DR": { + "filaments": [ + "Anycubic/Anycubic PVA" + ], + "name": "Anycubic PVA", + "filament_type": "PVA", + "filament_vendor": "Anycubic" + }, + "OFTlRzpe": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Gris Pizarra" + ], + "name": "FilAr PLA Gris Pizarra", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFTnWzBs": { + "filaments": [ + "Creality/Hyper PLA-CF" + ], + "name": "Hyper PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Creality" + }, + "OFTs8peJ": { + "filaments": [ + "Snapmaker/Snapmaker Dual TPE" + ], + "name": "Snapmaker Dual TPE", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFTsHNQi": { + "filaments": [ + "Qidi/QIDI ASA" + ], + "name": "QIDI ASA", + "filament_type": "ASA", + "filament_vendor": "QIDI" + }, + "OFU1zPxE": { + "filaments": [ + "Elegoo/Elegoo PLA Galaxy", + "OrcaFilamentLibrary/Elegoo PLA Galaxy" + ], + "name": "Elegoo PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFU3QXL7": { + "filaments": [ + "re3D/re3D PC" + ], + "name": "re3D PC", + "filament_type": "PC", + "filament_vendor": "re3D" + }, + "OFU5JPDy": { + "filaments": [ + "BBL/addnorth PETG PRO Matte" + ], + "name": "addnorth PETG PRO Matte", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OFU7CKZt": { + "filaments": [ + "Volumic/Volumic ASA Ultra (Performance)" + ], + "name": "Volumic ASA Ultra (Performance)", + "filament_type": "ASA", + "filament_vendor": "Volumic" + }, + "OFUF7oA4": { + "filaments": [ + "Creality/Hyper PC" + ], + "name": "Hyper PC", + "filament_type": "PC", + "filament_vendor": "Creality" + }, + "OFUH1aee": { + "filaments": [ + "Volumic/Volumic FLEX93 Ultra (Performance)" + ], + "name": "Volumic FLEX93 Ultra (Performance)", + "filament_type": "TPU", + "filament_vendor": "Volumic" + }, + "OFUIfGoh": { + "filaments": [ + "Snapmaker/Snapmaker Dual PET" + ], + "name": "Snapmaker Dual PET", + "filament_type": "PET", + "filament_vendor": "Snapmaker" + }, + "OFUYCqtB": { + "filaments": [ + "InfiMech/InfiMech PLA" + ], + "name": "InfiMech PLA", + "filament_type": "PLA", + "filament_vendor": "InfiMech" + }, + "OFUaHEO9": { + "filaments": [ + "Anycubic/Anycubic PEBA 95A" + ], + "name": "Anycubic PEBA 95A", + "filament_type": "PEBA", + "filament_vendor": "Anycubic" + }, + "OFUanySo": { + "filaments": [ + "BBL/Bambu PLA Silk+", + "OrcaFilamentLibrary/Bambu PLA Silk+" + ], + "name": "Bambu PLA Silk+", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFUmS5z5": { + "filaments": [ + "Creality/eSUN ASA+" + ], + "name": "eSUN ASA+", + "filament_type": "ASA", + "filament_vendor": "eSUN" + }, + "OFUtiVRn": { + "filaments": [ + "BBL/addnorth PETG ESD" + ], + "name": "addnorth PETG ESD", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OFUyDDNv": { + "filaments": [ + "Elegoo/Elegoo PC", + "OrcaFilamentLibrary/Elegoo PC" + ], + "name": "Elegoo PC", + "filament_type": "PC", + "filament_vendor": "Elegoo" + }, + "OFV5Q7j2": { + "filaments": [ + "Snapmaker/Snapmaker J1 TPE" + ], + "name": "Snapmaker J1 TPE", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFV5c8hG": { + "filaments": [ + "Flashforge/Flashforge PLA Sparkle" + ], + "name": "Flashforge PLA Sparkle", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFV5wEMe": { + "filaments": [ + "Afinia/Afinia ABS" + ], + "name": "Afinia ABS", + "filament_type": "ABS", + "filament_vendor": "Afinia" + }, + "OFV8Mxqx": { + "filaments": [], + "name": "Flashforge PLA-SILK", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFVBlUFH": { + "filaments": [], + "name": "DREMC PETG", + "filament_type": "PETG", + "filament_vendor": "DREMC" + }, + "OFVCkX5w": { + "filaments": [ + "BBL/Bambu TPU 95A", + "OrcaFilamentLibrary/Bambu TPU 95A" + ], + "name": "Bambu TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Bambu Lab" + }, + "OFVDWuxl": { + "filaments": [ + "BBL/addnorth PLA HT-PLA PRO Matte" + ], + "name": "addnorth PLA HT-PLA PRO Matte", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFVHMFJX": { + "filaments": [ + "Qidi/QIDI PETG Tough 0.2 nozzle" + ], + "name": "QIDI PETG Tough 0.2 nozzle", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFVptRxp": { + "filaments": [ + "BBL/COEX TPE 30D", + "OrcaFilamentLibrary/COEX TPE 30D" + ], + "name": "COEX TPE 30D", + "filament_type": "TPU", + "filament_vendor": "COEX 3D" + }, + "OFVtIasg": { + "filaments": [ + "Eryone/Eryone ASA" + ], + "name": "Eryone ASA", + "filament_type": "ASA", + "filament_vendor": "Eryone" + }, + "OFW29a9R": { + "filaments": [ + "BBL/PolyTerra PLA", + "OrcaArena/PolyTerra PLA", + "OrcaFilamentLibrary/PolyTerra PLA", + "Snapmaker/PolyTerra PLA" + ], + "name": "PolyTerra PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFW5FqkL": { + "filaments": [ + "Qidi/QIDI PLA Rapido Silk" + ], + "name": "QIDI PLA Rapido Silk", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFW8M3CY": { + "filaments": [ + "BBL/BETA PLA Chameleon" + ], + "name": "BETA PLA Chameleon", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFW8lqnb": { + "filaments": [ + "Snapmaker/Snapmaker PETG Translucent" + ], + "name": "Snapmaker PETG Translucent", + "filament_type": "PETG", + "filament_vendor": "Snapmaker" + }, + "OFWDe7YH": { + "filaments": [ + "Qidi/QIDI UltraPA" + ], + "name": "QIDI UltraPA", + "filament_type": "UltraPA", + "filament_vendor": "QIDI" + }, + "OFWK0Y9A": { + "filaments": [ + "BBL/addnorth PA Adura" + ], + "name": "addnorth PA Adura", + "filament_type": "PA", + "filament_vendor": "addnorth" + }, + "OFWRITFw": { + "filaments": [ + "Prusa/Prusament rPLA" + ], + "name": "Prusament rPLA", + "filament_type": "PLA", + "filament_vendor": "Prusa Polymers" + }, + "OFWTAEjH": { + "filaments": [ + "Snapmaker/Snapmaker TPE" + ], + "name": "Snapmaker TPE", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFWTRJ1K": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Bronce" + ], + "name": "FilAr PLA Bronce", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFWXCbVF": { + "filaments": [ + "Flashforge/Flashforge PC" + ], + "name": "Flashforge PC", + "filament_type": "PC", + "filament_vendor": "Flashforge" + }, + "OFWYtgCa": { + "filaments": [ + "Elegoo/Elegoo PLA Wood", + "OrcaFilamentLibrary/Elegoo PLA Wood" + ], + "name": "Elegoo PLA Wood", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFWa0NiB": { + "filaments": [ + "Volumic/Volumic NYLON Ultra" + ], + "name": "Volumic NYLON Ultra", + "filament_type": "PA", + "filament_vendor": "Volumic" + }, + "OFWao3Ic": { + "filaments": [ + "Creality/Ender-PLA" + ], + "name": "Ender-PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFWbdGsC": { + "filaments": [ + "Anker/Generic PLA-CF", + "Anycubic/Generic PLA-CF", + "Artillery/Generic PLA-CF", + "BBL/Generic PLA-CF", + "Blocks/Generic PLA-CF", + "Creality/Generic PLA-CF", + "Custom/Generic PLA-CF", + "FLSun/Generic PLA-CF", + "Flashforge/Generic PLA-CF", + "OrcaArena/Generic PLA-CF", + "OrcaFilamentLibrary/Generic PLA-CF", + "Prusa/Generic PLA-CF", + "Qidi/Generic PLA-CF", + "Ratrig/Generic PLA-CF", + "SecKit/Generic PLA-CF", + "Tiertime/Generic PLA-CF", + "Vzbot/Generic PLA-CF" + ], + "name": "Generic PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Generic" + }, + "OFWgFOjn": { + "filaments": [ + "Snapmaker/Snapmaker PLA Silk" + ], + "name": "Snapmaker PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFWwF7K7": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Cafe con Leche" + ], + "name": "FilAr PLA Cafe con Leche", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFX0etlv": { + "filaments": [ + "re3D/re3D PETG" + ], + "name": "re3D PETG", + "filament_type": "PETG", + "filament_vendor": "re3D" + }, + "OFX0ycRQ": { + "filaments": [ + "BBL/Fiberon PA12-CF", + "OrcaFilamentLibrary/Fiberon PA12-CF" + ], + "name": "Fiberon PA12-CF", + "filament_type": "PA-CF", + "filament_vendor": "Polymaker" + }, + "OFX2zcrM": { + "filaments": [ + "Chuanying/Generic PLA-CF10", + "Flashforge/Generic PLA-CF10" + ], + "name": "Generic PLA-CF10", + "filament_type": "PLA-CF", + "filament_vendor": "Generic" + }, + "OFXCBZTA": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints ABS" + ], + "name": "Eolas Prints ABS", + "filament_type": "ABS", + "filament_vendor": "Eolas Prints" + }, + "OFXIbw5D": { + "filaments": [ + "BBL/Bambu PLA Matte", + "OrcaFilamentLibrary/Bambu PLA Matte" + ], + "name": "Bambu PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFXJ9iom": { + "filaments": [ + "iQ/Grauts HPP4GF25 P1" + ], + "name": "Grauts HPP4GF25 P1", + "filament_type": "HPP4GF25", + "filament_vendor": "iQ Materials" + }, + "OFXSvqOX": { + "filaments": [ + "Snapmaker/Snapmaker TPU 95A HF" + ], + "name": "Snapmaker TPU 95A HF", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFXTPuqV": { + "filaments": [ + "OrcaFilamentLibrary/Elas PETG Basic" + ], + "name": "Elas PETG Basic", + "filament_type": "PETG", + "filament_vendor": "Elas" + }, + "OFXW4CDh": { + "filaments": [ + "Ratrig/Generic PCTG BigNozzle" + ], + "name": "Generic PCTG BigNozzle", + "filament_type": "PCTG", + "filament_vendor": "Generic" + }, + "OFXi59OX": { + "filaments": [ + "Afinia/Afinia Value ABS" + ], + "name": "Afinia Value ABS", + "filament_type": "ABS", + "filament_vendor": "Afinia" + }, + "OFXiArjA": { + "filaments": [ + "Flashforge/Flashforge PETG Pro" + ], + "name": "Flashforge PETG Pro", + "filament_type": "PETG", + "filament_vendor": "Flashforge" + }, + "OFXk1emJ": { + "filaments": [ + "Artillery/Artillery PLA Basic" + ], + "name": "Artillery PLA Basic", + "filament_type": "PLA Basic", + "filament_vendor": "Artillery" + }, + "OFXkm8q1": { + "filaments": [ + "BBL/Generic PP-CF", + "Creality/Generic PP-CF", + "OrcaFilamentLibrary/Generic PP-CF", + "Tiertime/Generic PP-CF" + ], + "name": "Generic PP-CF", + "filament_type": "PP-CF", + "filament_vendor": "Generic" + }, + "OFXmv5p0": { + "filaments": [ + "Creality/Generic Speed PLA" + ], + "name": "Generic Speed PLA", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFXn3Vd9": { + "filaments": [ + "Qidi/QIDI Support For PAHT" + ], + "name": "QIDI Support For PAHT", + "filament_type": "PAHT-S", + "filament_vendor": "QIDI" + }, + "OFXnToSX": { + "filaments": [ + "Creality/Hyper Stardust" + ], + "name": "Hyper Stardust", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFXuGxvQ": { + "filaments": [ + "Volumic/Volumic PLA Ultra" + ], + "name": "Volumic PLA Ultra", + "filament_type": "PLA", + "filament_vendor": "Volumic" + }, + "OFXz7Mwx": { + "filaments": [ + "Elegoo/Elegoo PLA Silk", + "OrcaFilamentLibrary/Elegoo PLA Silk" + ], + "name": "Elegoo PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFXzQ4yL": { + "filaments": [ + "BBL/Bambu ASA-Aero", + "OrcaFilamentLibrary/Bambu ASA-Aero" + ], + "name": "Bambu ASA-Aero", + "filament_type": "ASA-AERO", + "filament_vendor": "Bambu Lab" + }, + "OFY0F5qA": { + "filaments": [ + "Volumic/Volumic PETG Ultra carbone (Performance)" + ], + "name": "Volumic PETG Ultra carbone (Performance)", + "filament_type": "PETG", + "filament_vendor": "Volumic" + }, + "OFY3AB7j": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA Matte" + ], + "name": "Snapmaker J1 PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFY7jxcS": { + "filaments": [ + "Snapmaker/Snapmaker TPU 90A" + ], + "name": "Snapmaker TPU 90A", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFY9muEs": { + "filaments": [ + "Anker/Generic ABS", + "Anycubic/Generic ABS", + "Artillery/Generic ABS", + "BBL/Generic ABS", + "Blocks/Generic ABS", + "Chuanying/Generic ABS", + "Co Print/Generic ABS", + "CoLiDo/Generic ABS", + "Comgrow/Generic ABS", + "Creality/Generic ABS", + "Custom/Generic ABS", + "Elegoo/Generic ABS", + "FLSun/Generic ABS", + "Flashforge/Generic ABS", + "FlyingBear/Generic ABS", + "InfiMech/Generic ABS", + "Lulzbot/Generic ABS", + "OrcaArena/Generic ABS", + "OrcaFilamentLibrary/Generic ABS", + "Peopoly/Generic ABS", + "Prusa/Generic ABS", + "Qidi/Generic ABS", + "RH3D/Generic ABS", + "Ratrig/Generic ABS", + "SecKit/Generic ABS", + "Sovol/Generic ABS", + "Tiertime/Generic ABS", + "Vzbot/Generic ABS", + "Z-Bolt/Generic ABS" + ], + "name": "Generic ABS", + "filament_type": "ABS", + "filament_vendor": "Generic" + }, + "OFYE7YZw": { + "filaments": [ + "Qidi/Tinmorry PETG-ECO" + ], + "name": "Tinmorry PETG-ECO", + "filament_type": "PETG", + "filament_vendor": "Tinmorry" + }, + "OFYEtXuk": { + "filaments": [ + "Snapmaker/Snapmaker J1 PA-CF" + ], + "name": "Snapmaker J1 PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Snapmaker" + }, + "OFYGbPHX": { + "filaments": [ + "OrcaFilamentLibrary/PolyLite Dual PLA", + "Snapmaker/PolyLite Dual PLA" + ], + "name": "PolyLite Dual PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFYGrfHY": { + "filaments": [ + "BBL/BETA PETG Fluorescence" + ], + "name": "BETA PETG Fluorescence", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFYPdQJh": { + "filaments": [ + "Anker/Generic PETG", + "Anycubic/Generic PETG", + "Artillery/Generic PETG", + "BBL/Generic PETG", + "Blocks/Generic PETG", + "CONSTRUCT3D/Generic PETG", + "Chuanying/Generic PETG", + "Co Print/Generic PETG", + "CoLiDo/Generic PETG", + "Comgrow/Generic PETG", + "Creality/Generic PETG", + "Custom/Generic PETG", + "DeltaMaker/Generic PETG", + "Elegoo/Generic PETG", + "FLSun/Generic PETG", + "Flashforge/Generic PETG", + "FlyingBear/Generic PETG", + "Ginger Additive/Generic PETG", + "InfiMech/Generic PETG", + "LONGER/Generic PETG", + "Lulzbot/Generic PETG", + "OrcaArena/Generic PETG", + "OrcaFilamentLibrary/Generic PETG", + "Peopoly/Generic PETG", + "Prusa/Generic PETG", + "Qidi/Generic PETG", + "RH3D/Generic PETG", + "Ratrig/Generic PETG", + "SecKit/Generic PETG", + "Sovol/Generic PETG", + "Tiertime/Generic PETG", + "Vzbot/Generic PETG", + "Z-Bolt/Generic PETG" + ], + "name": "Generic PETG", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OFYTIMbj": { + "filaments": [ + "Flashforge/Flashforge ABS-CF" + ], + "name": "Flashforge ABS-CF", + "filament_type": "ABS-CF", + "filament_vendor": "Flashforge" + }, + "OFYYeMyQ": { + "filaments": [ + "Flashforge/Flashforge PETG Basic" + ], + "name": "Flashforge PETG Basic", + "filament_type": "PETG", + "filament_vendor": "Flashforge" + }, + "OFYd5uS3": { + "filaments": [], + "name": "DREMC TPU 95A", + "filament_type": "TPU", + "filament_vendor": "DREMC" + }, + "OFYezc6s": { + "filaments": [ + "FlyingBear/FlyingBear TPU" + ], + "name": "FlyingBear TPU", + "filament_type": "TPU", + "filament_vendor": "FlyingBear" + }, + "OFYuowge": { + "filaments": [ + "FlyingBear/Other ABS", + "InfiMech/Other ABS" + ], + "name": "Other ABS", + "filament_type": "ABS", + "filament_vendor": "Other" + }, + "OFZ0mR5b": { + "filaments": [ + "Anycubic/Anycubic PLA-CF" + ], + "name": "Anycubic PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Anycubic" + }, + "OFZ2LuAi": { + "filaments": [ + "Wanhao France/YUMI PLA Bowden" + ], + "name": "YUMI PLA Bowden", + "filament_type": "PLA", + "filament_vendor": "Yumi" + }, + "OFZ3K2cL": { + "filaments": [ + "Qidi/QIDI PA6-CF" + ], + "name": "QIDI PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "QIDI" + }, + "OFZ4QbfK": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Rosa Flamenco" + ], + "name": "FilAr PLA Rosa Flamenco", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFZGrQTU": { + "filaments": [ + "BBL/addnorth PETG Economy" + ], + "name": "addnorth PETG Economy", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OFZJft47": { + "filaments": [ + "BBL/addnorth PLA Economy" + ], + "name": "addnorth PLA Economy", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFZLtWYs": { + "filaments": [ + "Qidi/QIDI ABS-GF25" + ], + "name": "QIDI ABS-GF25", + "filament_type": "ABS-GF", + "filament_vendor": "QIDI" + }, + "OFZOuWrO": { + "filaments": [ + "Qidi/QIDI PPS-CF" + ], + "name": "QIDI PPS-CF", + "filament_type": "PPS-CF", + "filament_vendor": "QIDI" + }, + "OFZivHGL": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA" + ], + "name": "Snapmaker Dual PLA", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFZqZMuv": { + "filaments": [ + "BBL/BETA ASA" + ], + "name": "BETA ASA", + "filament_type": "ASA", + "filament_vendor": "BETA" + }, + "OFZr862X": { + "filaments": [ + "Creality/Generic PLA HF", + "Prusa/Generic PLA HF" + ], + "name": "Generic PLA HF", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFZtOQtl": { + "filaments": [ + "Flashforge/Flashforge PA6-CF" + ], + "name": "Flashforge PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Flashforge" + }, + "OFZtkHRq": { + "filaments": [ + "Anycubic/Anycubic PC" + ], + "name": "Anycubic PC", + "filament_type": "PC", + "filament_vendor": "Anycubic" + }, + "OFaDOaNt": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Celeste Cielo" + ], + "name": "FilAr PLA Celeste Cielo", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFaDsTE0": { + "filaments": [ + "Flashforge/Polymaker S1" + ], + "name": "Polymaker S1", + "filament_type": "PA", + "filament_vendor": "Polymaker" + }, + "OFaEesXQ": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Rojo de Carreras" + ], + "name": "FilAr PLA Rojo de Carreras", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFaEuvNF": { + "filaments": [ + "Anycubic/Anycubic PAHT-CF" + ], + "name": "Anycubic PAHT-CF", + "filament_type": "PAHT-CF", + "filament_vendor": "Anycubic" + }, + "OFaHjk1V": { + "filaments": [ + "Volumic/Volumic PC" + ], + "name": "Volumic PC", + "filament_type": "PC", + "filament_vendor": "Volumic" + }, + "OFaP2SsH": { + "filaments": [ + "LH/LHS ASA" + ], + "name": "LHS ASA", + "filament_type": "ASA", + "filament_vendor": "LH Stinger" + }, + "OFaQMgRH": { + "filaments": [ + "BBL/Bambu PLA Tough", + "OrcaFilamentLibrary/Bambu PLA Tough" + ], + "name": "Bambu PLA Tough", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFaRjiIm": { + "filaments": [ + "SeeMeCNC/SeeMeCNC PETG-CF" + ], + "name": "SeeMeCNC PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "SeeMeCNC" + }, + "OFaYz8iE": { + "filaments": [ + "OrcaFilamentLibrary/Elas PLA Pro" + ], + "name": "Elas PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Elas" + }, + "OFaaddbQ": { + "filaments": [ + "Flashforge/Flashforge PVA" + ], + "name": "Flashforge PVA", + "filament_type": "PVA", + "filament_vendor": "Flashforge" + }, + "OFaeIx7W": { + "filaments": [ + "iQ/Polymaker PETG Polymax black P1" + ], + "name": "Polymaker PETG Polymax black P1", + "filament_type": "PETG Polymax", + "filament_vendor": "iQ Materials" + }, + "OFafO6VM": { + "filaments": [ + "Elegoo/Generic PC-CF" + ], + "name": "Generic PC-CF", + "filament_type": "PC-CF", + "filament_vendor": "Generic" + }, + "OFafocjw": { + "filaments": [ + "Cubicon/Cubicon ABS" + ], + "name": "Cubicon ABS", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFausr3F": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Rosa" + ], + "name": "FilAr PLA-mate Rosa", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFb5EEM3": { + "filaments": [ + "Artillery/Artillery PET" + ], + "name": "Artillery PET", + "filament_type": "PET", + "filament_vendor": "Artillery" + }, + "OFbP8zEO": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Silk" + ], + "name": "Eolas Prints PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFbPuPKY": { + "filaments": [ + "Prusa/Generic FLEX" + ], + "name": "Generic FLEX", + "filament_type": "FLEX", + "filament_vendor": "Generic" + }, + "OFbSChKb": { + "filaments": [ + "SeeMeCNC/SeeMeCNC PLA" + ], + "name": "SeeMeCNC PLA", + "filament_type": "PLA", + "filament_vendor": "SeeMeCNC" + }, + "OFbSZBOi": { + "filaments": [ + "InfiMech/InfiMech TPU Basic" + ], + "name": "InfiMech TPU Basic", + "filament_type": "TPU", + "filament_vendor": "InfiMech" + }, + "OFbh7HcA": { + "filaments": [ + "Eryone/Eryone PP-CF" + ], + "name": "Eryone PP-CF", + "filament_type": "PP-CF", + "filament_vendor": "Eryone" + }, + "OFc3xdm9": { + "filaments": [ + "BBL/Overture PLA", + "OrcaFilamentLibrary/Overture PLA", + "Qidi/Overture PLA" + ], + "name": "Overture PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFc87pL3": { + "filaments": [ + "OrcaArena/Arena PET-CF" + ], + "name": "Arena PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Orca Arena" + }, + "OFcBJQcC": { + "filaments": [ + "Snapmaker/Snapmaker Dual TPU High-Flow" + ], + "name": "Snapmaker Dual TPU High-Flow", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFcBl0nJ": { + "filaments": [ + "BBL/Fiberon PA612-CF15" + ], + "name": "Fiberon PA612-CF15", + "filament_type": "PA-CF", + "filament_vendor": "Polymaker" + }, + "OFcJDtTx": { + "filaments": [ + "Artillery/Artillery TPU" + ], + "name": "Artillery TPU", + "filament_type": "TPU", + "filament_vendor": "Artillery" + }, + "OFcKtw8W": { + "filaments": [ + "Volumic/PA6 CF20 (Performance)" + ], + "name": "PA6 CF20 (Performance)", + "filament_type": "PA6-CF", + "filament_vendor": "Volumic" + }, + "OFcVLpNA": { + "filaments": [ + "Flashforge/FusRock PAHT-GF" + ], + "name": "FusRock PAHT-GF", + "filament_type": "PAHT-GF", + "filament_vendor": "FusRock" + }, + "OFcfQk4h": { + "filaments": [ + "BBL/Overture Air PLA", + "OrcaFilamentLibrary/Overture Air PLA" + ], + "name": "Overture Air PLA", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFcnWTJB": { + "filaments": [ + "BBL/BETA PLA Glitter" + ], + "name": "BETA PLA Glitter", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFcogyWl": { + "filaments": [ + "WonderMaker/WonderMaker PLA Metal" + ], + "name": "WonderMaker PLA Metal", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFcpa50Z": { + "filaments": [ + "BBL/addnorth PLA-CF Carbon Fiber" + ], + "name": "addnorth PLA-CF Carbon Fiber", + "filament_type": "PLA-CF", + "filament_vendor": "addnorth" + }, + "OFctg8r1": { + "filaments": [ + "CoLiDo/CoLiDo PLA+" + ], + "name": "CoLiDo PLA+", + "filament_type": "PLA", + "filament_vendor": "CoLiDo" + }, + "OFcvKkrs": { + "filaments": [ + "BBL/Overture TPU", + "OrcaFilamentLibrary/Overture TPU" + ], + "name": "Overture TPU", + "filament_type": "TPU", + "filament_vendor": "Overture" + }, + "OFcytyoA": { + "filaments": [ + "BBL/Fiberon PETG-ESD", + "OrcaFilamentLibrary/Fiberon PETG-ESD", + "Snapmaker/Fiberon PETG-ESD" + ], + "name": "Fiberon PETG-ESD", + "filament_type": "PETG", + "filament_vendor": "Polymaker" + }, + "OFd0Fv0k": { + "filaments": [ + "BBL/Generic PE-CF", + "OrcaFilamentLibrary/Generic PE-CF", + "Tiertime/Generic PE-CF" + ], + "name": "Generic PE-CF", + "filament_type": "PE-CF", + "filament_vendor": "Generic" + }, + "OFd2vX0G": { + "filaments": [ + "BBL/COEX PLA PRIME", + "OrcaFilamentLibrary/COEX PLA PRIME" + ], + "name": "COEX PLA PRIME", + "filament_type": "PLA", + "filament_vendor": "COEX 3D" + }, + "OFd4zw5l": { + "filaments": [ + "BBL/AliZ PA-CF", + "OrcaFilamentLibrary/AliZ PA-CF" + ], + "name": "AliZ PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Aliz" + }, + "OFdD5Wbu": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA-CF" + ], + "name": "Snapmaker J1 PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Snapmaker" + }, + "OFdI4zMo": { + "filaments": [], + "name": "DREMC ASA CF", + "filament_type": "ASA", + "filament_vendor": "DREMC" + }, + "OFdXVjGZ": { + "filaments": [ + "Tiertime/Tiertime PC" + ], + "name": "Tiertime PC", + "filament_type": "PC", + "filament_vendor": "Tiertime" + }, + "OFdb8YNz": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Verde Manzana" + ], + "name": "FilAr PLA Verde Manzana", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFdd8ZqJ": { + "filaments": [ + "Snapmaker/Snapmaker PLA Wood" + ], + "name": "Snapmaker PLA Wood", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFdkWDiy": { + "filaments": [ + "Cubicon/Cubicon PLAi21" + ], + "name": "Cubicon PLAi21", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OFdqkWtz": { + "filaments": [ + "Flashforge/Flashforge PLA Luminous" + ], + "name": "Flashforge PLA Luminous", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFdrYBmI": { + "filaments": [ + "Tiertime/Tiertime ASA" + ], + "name": "Tiertime ASA", + "filament_type": "ASA", + "filament_vendor": "Tiertime" + }, + "OFdtPd9h": { + "filaments": [ + "Qidi/QIDI PETG-GF" + ], + "name": "QIDI PETG-GF", + "filament_type": "PETG-GF", + "filament_vendor": "QIDI" + }, + "OFdzlrhi": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Chocolate" + ], + "name": "FilAr PLA-mate Chocolate", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFe61n6v": { + "filaments": [ + "Ratrig/RatRig PunkFil PETG CF" + ], + "name": "RatRig PunkFil PETG CF", + "filament_type": "PETG-CF10", + "filament_vendor": "RatRig" + }, + "OFe8tuNb": { + "filaments": [ + "Tiertime/Tiertime PA6-CF" + ], + "name": "Tiertime PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Tiertime" + }, + "OFe8yBMG": { + "filaments": [ + "Qidi/QIDI PETG Tough 0.6 nozzle" + ], + "name": "QIDI PETG Tough 0.6 nozzle", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFe98A1y": { + "filaments": [ + "Elegoo/Elegoo PET-CF", + "OrcaFilamentLibrary/Elegoo PET-CF" + ], + "name": "Elegoo PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Elegoo" + }, + "OFeAxvEt": { + "filaments": [ + "Snapmaker/Snapmaker Dual ABS Benchy" + ], + "name": "Snapmaker Dual ABS Benchy", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OFeCJqxx": { + "filaments": [ + "Qidi/QIDI ABS Rapido Metal" + ], + "name": "QIDI ABS Rapido Metal", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OFeF4UNh": { + "filaments": [ + "BBL/BETA PLA Silk" + ], + "name": "BETA PLA Silk", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFeIyhUx": { + "filaments": [ + "Anycubic/Anycubic PC-CF" + ], + "name": "Anycubic PC-CF", + "filament_type": "PC-CF", + "filament_vendor": "Anycubic" + }, + "OFeTATC7": { + "filaments": [ + "Snapmaker/Snapmaker J1 Breakaway" + ], + "name": "Snapmaker J1 Breakaway", + "filament_type": "Breakaway Support", + "filament_vendor": "Snapmaker" + }, + "OFeVzkSU": { + "filaments": [ + "Snapmaker/Fiberon PPS-GF20" + ], + "name": "Fiberon PPS-GF20", + "filament_type": "ABS", + "filament_vendor": "Polymaker" + }, + "OFeelsSM": { + "filaments": [ + "Qidi/HATCHBOX PLA" + ], + "name": "HATCHBOX PLA", + "filament_type": "PLA", + "filament_vendor": "HATCHBOX" + }, + "OFelDBgv": { + "filaments": [ + "Snapmaker/Polymaker PLA" + ], + "name": "Polymaker PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFepU7Tl": { + "filaments": [ + "WonderMaker/WonderMaker PLA Matte" + ], + "name": "WonderMaker PLA Matte", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFesA6rF": { + "filaments": [ + "Anker/Generic PLA Silk", + "BBL/Generic PLA Silk", + "Creality/Generic PLA Silk", + "FLSun/Generic PLA Silk", + "Flashforge/Generic PLA Silk", + "OrcaArena/Generic PLA Silk", + "OrcaFilamentLibrary/Generic PLA Silk", + "Prusa/Generic PLA Silk", + "Qidi/Generic PLA Silk", + "Sovol/Generic PLA Silk", + "Tiertime/Generic PLA Silk" + ], + "name": "Generic PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFexaZU2": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Manteca" + ], + "name": "FilAr PLA Manteca", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFf0MkD5": { + "filaments": [ + "Qidi/QIDI PETG Translucent" + ], + "name": "QIDI PETG Translucent", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFf52D4e": { + "filaments": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "name": "Snapmaker PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Snapmaker" + }, + "OFf5awy4": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Matte" + ], + "name": "Eolas Prints PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFf6ZEvu": { + "filaments": [ + "InfiMech/InfiMech PC" + ], + "name": "InfiMech PC", + "filament_type": "PC", + "filament_vendor": "InfiMech" + }, + "OFf6mfQO": { + "filaments": [ + "BBL/Bambu Support for ABS", + "OrcaFilamentLibrary/Bambu Support for ABS" + ], + "name": "Bambu Support for ABS", + "filament_type": "ABS", + "filament_vendor": "Bambu Lab" + }, + "OFf6ynfH": { + "filaments": [ + "FlyingBear/FlyingBear PETG Basic" + ], + "name": "FlyingBear PETG Basic", + "filament_type": "PETG Basic", + "filament_vendor": "FlyingBear" + }, + "OFfBpSRI": { + "filaments": [ + "BBL/Bambu ASA", + "OrcaFilamentLibrary/Bambu ASA" + ], + "name": "Bambu ASA", + "filament_type": "ASA", + "filament_vendor": "Bambu Lab" + }, + "OFfD87Gy": { + "filaments": [ + "Snapmaker/Snapmaker PLA Glow" + ], + "name": "Snapmaker PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFfHGM1D": { + "filaments": [ + "re3D/re3D rPP" + ], + "name": "re3D rPP", + "filament_type": "PP", + "filament_vendor": "re3D" + }, + "OFfJSCzm": { + "filaments": [ + "OrcaFilamentLibrary/FDplast PETG" + ], + "name": "FDplast PETG", + "filament_type": "PETG", + "filament_vendor": "FDplast" + }, + "OFfSqS4R": { + "filaments": [ + "Creality/ENDER FAST PLA" + ], + "name": "ENDER FAST PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFfYHK5z": { + "filaments": [ + "Qidi/Polymaker PLA-HT" + ], + "name": "Polymaker PLA-HT", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFfZcoKr": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Piel" + ], + "name": "FilAr PLA-mate Piel", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFfb10SK": { + "filaments": [ + "Artillery/Artillery PC" + ], + "name": "Artillery PC", + "filament_type": "PC", + "filament_vendor": "Artillery" + }, + "OFfmHUkQ": { + "filaments": [ + "Snapmaker/Snapmaker Dual Breakaway" + ], + "name": "Snapmaker Dual Breakaway", + "filament_type": "Breakaway Support", + "filament_vendor": "Snapmaker" + }, + "OFfmZrI3": { + "filaments": [ + "OrcaFilamentLibrary/FDplast TPU" + ], + "name": "FDplast TPU", + "filament_type": "TPU", + "filament_vendor": "FDplast" + }, + "OFfnXFie": { + "filaments": [ + "BBL/COEX TPE 40D", + "OrcaFilamentLibrary/COEX TPE 40D" + ], + "name": "COEX TPE 40D", + "filament_type": "TPU", + "filament_vendor": "COEX 3D" + }, + "OFfq5YXA": { + "filaments": [ + "OrcaFilamentLibrary/Valment PLA-CF" + ], + "name": "Valment PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Valment" + }, + "OFfr4XNO": { + "filaments": [ + "BBL/COEX TPE 60D", + "OrcaFilamentLibrary/COEX TPE 60D" + ], + "name": "COEX TPE 60D", + "filament_type": "TPU", + "filament_vendor": "COEX 3D" + }, + "OFfr6JDF": { + "filaments": [ + "Qidi/QIDI PETG Tough 0.8 nozzle" + ], + "name": "QIDI PETG Tough 0.8 nozzle", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFfuhviw": { + "filaments": [ + "Elegoo/Elegoo PLA Marble", + "OrcaFilamentLibrary/Elegoo PLA Marble" + ], + "name": "Elegoo PLA Marble", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFfuih8e": { + "filaments": [ + "Creality/Creality Silk PLA" + ], + "name": "Creality Silk PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFg3cWVt": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA Metal" + ], + "name": "Snapmaker Dual PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFg57Nmc": { + "filaments": [ + "BBL/Bambu PC FR", + "OrcaFilamentLibrary/Bambu PC FR" + ], + "name": "Bambu PC FR", + "filament_type": "PC", + "filament_vendor": "Bambu Lab" + }, + "OFg8hMzT": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PPCF" + ], + "name": "FILL3D PPCF", + "filament_type": "PP", + "filament_vendor": "FILL3D" + }, + "OFg8ndtj": { + "filaments": [ + "Anker/Generic PA", + "Anycubic/Generic PA", + "BBL/Generic PA", + "Blocks/Generic PA", + "Creality/Generic PA", + "Custom/Generic PA", + "Elegoo/Generic PA", + "FLSun/Generic PA", + "OrcaArena/Generic PA", + "OrcaFilamentLibrary/Generic PA", + "Prusa/Generic PA", + "Qidi/Generic PA", + "Ratrig/Generic PA", + "SecKit/Generic PA", + "Tiertime/Generic PA", + "Vzbot/Generic PA", + "Z-Bolt/Generic PA" + ], + "name": "Generic PA", + "filament_type": "PA", + "filament_vendor": "Generic" + }, + "OFgHh8ly": { + "filaments": [ + "Afinia/Afinia Value PLA" + ], + "name": "Afinia Value PLA", + "filament_type": "PLA", + "filament_vendor": "Afinia" + }, + "OFgMWJ8T": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Negro Azabache" + ], + "name": "FilAr PLA Negro Azabache", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFgSbX7E": { + "filaments": [ + "Volumic/Volumic PC (Performance)" + ], + "name": "Volumic PC (Performance)", + "filament_type": "PC", + "filament_vendor": "Volumic" + }, + "OFgVQkqW": { + "filaments": [ + "Cubicon/Cubicon ABSk" + ], + "name": "Cubicon ABSk", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFgXgt98": { + "filaments": [ + "Artillery/Artillery ABS" + ], + "name": "Artillery ABS", + "filament_type": "ABS", + "filament_vendor": "Artillery" + }, + "OFgbpcy9": { + "filaments": [ + "Anker/Generic TPU", + "Anycubic/Generic TPU", + "Artillery/Generic TPU", + "BBL/Generic TPU", + "Blocks/Generic TPU", + "Chuanying/Generic TPU", + "Co Print/Generic TPU", + "CoLiDo/Generic TPU", + "Creality/Generic TPU", + "Custom/Generic TPU", + "DeltaMaker/Generic TPU", + "FLSun/Generic TPU", + "Flashforge/Generic TPU", + "FlyingBear/Generic TPU", + "InfiMech/Generic TPU", + "OrcaArena/Generic TPU", + "OrcaFilamentLibrary/Generic TPU", + "Prusa/Generic TPU", + "Qidi/Generic TPU", + "RH3D/Generic TPU", + "Ratrig/Generic TPU", + "SecKit/Generic TPU", + "Sovol/Generic TPU", + "Tiertime/Generic TPU", + "Vzbot/Generic TPU" + ], + "name": "Generic TPU", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OFgdaBOt": { + "filaments": [ + "Snapmaker/Polymaker Tough PLA Family" + ], + "name": "Polymaker Tough PLA Family", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFgeM7nD": { + "filaments": [ + "Flashforge/Flashforge PA12-CF" + ], + "name": "Flashforge PA12-CF", + "filament_type": "PA-CF", + "filament_vendor": "Flashforge" + }, + "OFgjgN35": { + "filaments": [ + "Flashforge/Flashforge PLA Silk" + ], + "name": "Flashforge PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFglhKLM": { + "filaments": [ + "Qidi/QIDI PLA Rapido 0.8 nozzle" + ], + "name": "QIDI PLA Rapido 0.8 nozzle", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFgpLTMR": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Gris Plata" + ], + "name": "FilAr PETG Gris Plata", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFgpQwkk": { + "filaments": [ + "Creality/CR-PLA Fluo" + ], + "name": "CR-PLA Fluo", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFgptDSf": { + "filaments": [ + "OrcaArena/Arena PLA Matte" + ], + "name": "Arena PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFgyPlwU": { + "filaments": [ + "Snapmaker/Snapmaker TPU High-Flow" + ], + "name": "Snapmaker TPU High-Flow", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFh7mvPO": { + "filaments": [ + "Prusa/Prusament PVB" + ], + "name": "Prusament PVB", + "filament_type": "PVB", + "filament_vendor": "Prusa Polymers" + }, + "OFh9u9c0": { + "filaments": [ + "Creality/Generic PA6-GF" + ], + "name": "Generic PA6-GF", + "filament_type": "PA-GF", + "filament_vendor": "Generic" + }, + "OFhASRWj": { + "filaments": [ + "BBL/Panchroma PLA Temp Shift", + "OrcaFilamentLibrary/Panchroma PLA Temp Shift", + "Snapmaker/Panchroma PLA Temp Shift" + ], + "name": "Panchroma PLA Temp Shift", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFhMO9Kh": { + "filaments": [ + "OrcaFilamentLibrary/GreenGate3D PETG" + ], + "name": "GreenGate3D PETG", + "filament_type": "PETG", + "filament_vendor": "GreenGate3D" + }, + "OFhN09f0": { + "filaments": [ + "BBL/addnorth PC BLend HT LCF" + ], + "name": "addnorth PC BLend HT LCF", + "filament_type": "PC", + "filament_vendor": "addnorth" + }, + "OFhO5aEJ": { + "filaments": [ + "Ratrig/RatRig PunkFil ABS" + ], + "name": "RatRig PunkFil ABS", + "filament_type": "ABS", + "filament_vendor": "RatRig" + }, + "OFhQf8ou": { + "filaments": [ + "Snapmaker/Snapmaker PLA-CF" + ], + "name": "Snapmaker PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Snapmaker" + }, + "OFhQfUQY": { + "filaments": [ + "BBL/Generic SBS", + "OrcaFilamentLibrary/Generic SBS", + "Tiertime/Generic SBS" + ], + "name": "Generic SBS", + "filament_type": "SBS", + "filament_vendor": "Generic" + }, + "OFhTPf6L": { + "filaments": [ + "Creality/Generic PA6-CF", + "Elegoo/Generic PA6-CF" + ], + "name": "Generic PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Generic" + }, + "OFhUjPA5": { + "filaments": [ + "Eryone/Eryone TPU" + ], + "name": "Eryone TPU", + "filament_type": "TPU", + "filament_vendor": "Eryone" + }, + "OFhWc5Bv": { + "filaments": [ + "OrcaFilamentLibrary/NIT ABS" + ], + "name": "NIT ABS", + "filament_type": "ABS", + "filament_vendor": "NIT" + }, + "OFhWhL1i": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PETG" + ], + "name": "Eolas Prints PETG", + "filament_type": "PETG", + "filament_vendor": "Eolas Prints" + }, + "OFhWrAuP": { + "filaments": [ + "Qidi/QIDI PLA-CF" + ], + "name": "QIDI PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "QIDI" + }, + "OFhbolij": { + "filaments": [ + "Creality/eSUN PLA-Lite" + ], + "name": "eSUN PLA-Lite", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFhcYzR8": { + "filaments": [ + "Elegoo/Elegoo PLA Sparkle", + "OrcaFilamentLibrary/Elegoo PLA Sparkle" + ], + "name": "Elegoo PLA Sparkle", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFhfd722": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints TPU Flex 93A" + ], + "name": "Eolas Prints TPU Flex 93A", + "filament_type": "TPU", + "filament_vendor": "Eolas Prints" + }, + "OFhiJE7Y": { + "filaments": [ + "Qidi/QIDI PEBA 95A" + ], + "name": "QIDI PEBA 95A", + "filament_type": "PEBA", + "filament_vendor": "QIDI" + }, + "OFhkN0a7": { + "filaments": [ + "Creality/Hyper PA612-CF" + ], + "name": "Hyper PA612-CF", + "filament_type": "PA-CF", + "filament_vendor": "Creality" + }, + "OFhlCNqq": { + "filaments": [ + "BBL/COEX PLA", + "OrcaFilamentLibrary/COEX PLA" + ], + "name": "COEX PLA", + "filament_type": "PLA", + "filament_vendor": "COEX 3D" + }, + "OFhmxnYw": { + "filaments": [ + "Snapmaker/Snapmaker PLA Basic" + ], + "name": "Snapmaker PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFhuaUQB": { + "filaments": [ + "BBL/Bambu ABS", + "OrcaFilamentLibrary/Bambu ABS", + "Qidi/Bambu ABS" + ], + "name": "Bambu ABS", + "filament_type": "ABS", + "filament_vendor": "Bambu Lab" + }, + "OFhwiZ50": { + "filaments": [ + "Qidi/QIDI PLA Rapido 0.2 nozzle" + ], + "name": "QIDI PLA Rapido 0.2 nozzle", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFhx4uOG": { + "filaments": [ + "Qidi/QIDI PET-GF" + ], + "name": "QIDI PET-GF", + "filament_type": "PET-GF", + "filament_vendor": "QIDI" + }, + "OFi5RSve": { + "filaments": [ + "Creality/eSUN PLA-LW" + ], + "name": "eSUN PLA-LW", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFi6PfUM": { + "filaments": [ + "Chuanying/Generic PLA-Silk", + "Creality/Generic PLA-Silk", + "Flashforge/Generic PLA-Silk" + ], + "name": "Generic PLA-Silk", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFi90KlM": { + "filaments": [ + "Volumic/Volumic NYLON Ultra (Performance)" + ], + "name": "Volumic NYLON Ultra (Performance)", + "filament_type": "PA", + "filament_vendor": "Volumic" + }, + "OFiDpM1B": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Bordo" + ], + "name": "FilAr PLA-mate Bordo", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFiEz2XI": { + "filaments": [ + "Cubicon/Cubicon PA-CF" + ], + "name": "Cubicon PA-CF", + "filament_type": "PA", + "filament_vendor": "Cubicon" + }, + "OFiWaoqD": { + "filaments": [ + "OrcaFilamentLibrary/DREMC PPA-CF" + ], + "name": "DREMC PPA-CF", + "filament_type": "PPA-CF", + "filament_vendor": "DREMC" + }, + "OFibWuBd": { + "filaments": [ + "Flashforge/Flashforge ABS Basic" + ], + "name": "Flashforge ABS Basic", + "filament_type": "ABS", + "filament_vendor": "Flashforge" + }, + "OFilAA3b": { + "filaments": [ + "Eryone/Eryone PLA-CF" + ], + "name": "Eryone PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "Eryone" + }, + "OFilD4bP": { + "filaments": [ + "FlyingBear/FlyingBear PLA" + ], + "name": "FlyingBear PLA", + "filament_type": "PLA", + "filament_vendor": "FlyingBear" + }, + "OFilnglt": { + "filaments": [ + "Artillery/Artillery PETG" + ], + "name": "Artillery PETG", + "filament_type": "PETG", + "filament_vendor": "Artillery" + }, + "OFin64Qg": { + "filaments": [ + "Creality/Generic Support for PLA" + ], + "name": "Generic Support for PLA", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFitS8al": { + "filaments": [ + "BBL/PolyLite PLA Neon", + "Snapmaker/PolyLite PLA Neon" + ], + "name": "PolyLite PLA Neon", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFiwEbze": { + "filaments": [ + "Volumic/PETG ESD (Performance)" + ], + "name": "PETG ESD (Performance)", + "filament_type": "PETG-ESD", + "filament_vendor": "Volumic" + }, + "OFj3bTjw": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Amarillo" + ], + "name": "FilAr PLA-mate Amarillo", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFj64R5U": { + "filaments": [ + "Peopoly/Peopoly Lancer ABS-GF" + ], + "name": "Peopoly Lancer ABS-GF", + "filament_type": "ABS", + "filament_vendor": "Peopoly" + }, + "OFjD3YTW": { + "filaments": [ + "Qidi/Qidi PC-ABS-FR" + ], + "name": "Qidi PC-ABS-FR", + "filament_type": "PC-ABS-FR", + "filament_vendor": "QIDI" + }, + "OFjHrAX0": { + "filaments": [ + "WonderMaker/WonderMaker ABS" + ], + "name": "WonderMaker ABS", + "filament_type": "ABS", + "filament_vendor": "WonderMaker" + }, + "OFjLAYgO": { + "filaments": [ + "Anycubic/Anycubic PEBA" + ], + "name": "Anycubic PEBA", + "filament_type": "PEBA", + "filament_vendor": "Anycubic" + }, + "OFjPXrXO": { + "filaments": [ + "Elegoo/Elegoo PLA Glow", + "OrcaFilamentLibrary/Elegoo PLA Glow" + ], + "name": "Elegoo PLA Glow", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFjT9PkZ": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Tabaco" + ], + "name": "FilAr PLA Tabaco", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFjUGUIK": { + "filaments": [ + "iQ/Fiberthree PACF Pro P1" + ], + "name": "Fiberthree PACF Pro P1", + "filament_type": "PACF Pro", + "filament_vendor": "iQ Materials" + }, + "OFjUXn67": { + "filaments": [ + "BBL/BETA ABS" + ], + "name": "BETA ABS", + "filament_type": "ABS", + "filament_vendor": "BETA" + }, + "OFjVOWfJ": { + "filaments": [ + "Anycubic/Anycubic PLA High Speed" + ], + "name": "Anycubic PLA High Speed", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFjXrKFO": { + "filaments": [ + "OrcaArena/Arena PLA Impact" + ], + "name": "Arena PLA Impact", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFjb0wos": { + "filaments": [ + "BBL/Panchroma PLA Metallic", + "OrcaFilamentLibrary/Panchroma PLA Metallic", + "Snapmaker/Panchroma PLA Metallic" + ], + "name": "Panchroma PLA Metallic", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFjcwUEm": { + "filaments": [ + "Cubicon/Cubicon PLA" + ], + "name": "Cubicon PLA", + "filament_type": "PLA", + "filament_vendor": "Cubicon" + }, + "OFjiXpyf": { + "filaments": [ + "Qidi/Generic TPU 95A", + "TwoTrees/Generic TPU 95A" + ], + "name": "Generic TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OFjkdnyN": { + "filaments": [ + "Snapmaker/Snapmaker Dual TPU" + ], + "name": "Snapmaker Dual TPU", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFjoAe0R": { + "filaments": [ + "Qidi/Qidi PLA-CF" + ], + "name": "Qidi PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "QIDI" + }, + "OFjogeYN": { + "filaments": [ + "BBL/BETA PETG Glitter" + ], + "name": "BETA PETG Glitter", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFjorDcx": { + "filaments": [ + "OrcaFilamentLibrary/FDplast ABS" + ], + "name": "FDplast ABS", + "filament_type": "ABS", + "filament_vendor": "FDplast" + }, + "OFjt8dDO": { + "filaments": [ + "Flashforge/FusRock NexPA-CF25" + ], + "name": "FusRock NexPA-CF25", + "filament_type": "PA-CF", + "filament_vendor": "FusRock" + }, + "OFjt9en1": { + "filaments": [ + "OrcaFilamentLibrary/Generic CoPE" + ], + "name": "Generic CoPE", + "filament_type": "CoPE", + "filament_vendor": "Generic" + }, + "OFjz0a3m": { + "filaments": [ + "Prusa/Prusament PC-CF" + ], + "name": "Prusament PC-CF", + "filament_type": "PC-CF", + "filament_vendor": "Prusa Polymers" + }, + "OFk8t9mz": { + "filaments": [ + "BBL/Fiberon PETG-rCF", + "OrcaFilamentLibrary/Fiberon PETG-rCF" + ], + "name": "Fiberon PETG-rCF", + "filament_type": "PETG-CF", + "filament_vendor": "Polymaker" + }, + "OFkAltI8": { + "filaments": [ + "FlyingBear/Other PA-CF", + "InfiMech/Other PA-CF" + ], + "name": "Other PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Other" + }, + "OFkGp50Y": { + "filaments": [ + "Volumic/Volumic UNIVERSAL Ultra (Performance)" + ], + "name": "Volumic UNIVERSAL Ultra (Performance)", + "filament_type": "UNIV", + "filament_vendor": "Volumic" + }, + "OFkGvN4d": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Verde Pixel" + ], + "name": "FilAr PLA Verde Pixel", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFkHbjUv": { + "filaments": [ + "BBL/BETA PLA Metallic" + ], + "name": "BETA PLA Metallic", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFkOviHk": { + "filaments": [ + "BBL/Fiberon PA6-CF", + "OrcaFilamentLibrary/Fiberon PA6-CF" + ], + "name": "Fiberon PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Polymaker" + }, + "OFkR8E2c": { + "filaments": [ + "Prusa/Prusament PETG" + ], + "name": "Prusament PETG", + "filament_type": "PETG", + "filament_vendor": "Prusa Polymers" + }, + "OFkf1HHw": { + "filaments": [ + "Flashforge/Generic PLA-SILK" + ], + "name": "Generic PLA-SILK", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFkhhUS0": { + "filaments": [ + "Elegoo/Elegoo Rapid PLA+", + "OrcaFilamentLibrary/Elegoo Rapid PLA+" + ], + "name": "Elegoo Rapid PLA+", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFklJcWK": { + "filaments": [ + "FlyingBear/Other PLA Hyper", + "InfiMech/Other PLA Hyper" + ], + "name": "Other PLA Hyper", + "filament_type": "PLA", + "filament_vendor": "Other" + }, + "OFknl9Iz": { + "filaments": [ + "BBL/Bambu ABS-GF", + "OrcaFilamentLibrary/Bambu ABS-GF" + ], + "name": "Bambu ABS-GF", + "filament_type": "ABS-GF", + "filament_vendor": "Bambu Lab" + }, + "OFkoLUtR": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Verde Oliva" + ], + "name": "FilAr PLA Verde Oliva", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFkq7rPy": { + "filaments": [ + "Eryone/Eryone PA-GF" + ], + "name": "Eryone PA-GF", + "filament_type": "PA-GF", + "filament_vendor": "Eryone" + }, + "OFks6esg": { + "filaments": [ + "Creality/EN-PLA+" + ], + "name": "EN-PLA+", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFkx5MEe": { + "filaments": [ + "Artillery/Artillery PVA" + ], + "name": "Artillery PVA", + "filament_type": "PVA", + "filament_vendor": "Artillery" + }, + "OFkzr35f": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Antibacterial" + ], + "name": "Eolas Prints PLA Antibacterial", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFlBoEfL": { + "filaments": [ + "Snapmaker/Snapmaker J1 TPU High-Flow" + ], + "name": "Snapmaker J1 TPU High-Flow", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFlIsW6f": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA Matte" + ], + "name": "Snapmaker Dual PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFlN6DL1": { + "filaments": [ + "Qidi/QIDI PA-Ultra" + ], + "name": "QIDI PA-Ultra", + "filament_type": "UltraPA", + "filament_vendor": "QIDI" + }, + "OFlP3KWq": { + "filaments": [ + "Elegoo/Elegoo PETG HF", + "OrcaFilamentLibrary/Elegoo PETG HF" + ], + "name": "Elegoo PETG HF", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFlSNkhc": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints ASA" + ], + "name": "Eolas Prints ASA", + "filament_type": "ASA", + "filament_vendor": "Eolas Prints" + }, + "OFlfuj2k": { + "filaments": [ + "BBL/Bambu TPU 85A" + ], + "name": "Bambu TPU 85A", + "filament_type": "TPU", + "filament_vendor": "Bambu Lab" + }, + "OFlgMgNM": { + "filaments": [ + "Flashforge/Flashforge PPS" + ], + "name": "Flashforge PPS", + "filament_type": "PPS", + "filament_vendor": "Flashforge" + }, + "OFllmFhT": { + "filaments": [ + "Elegoo/Generic PETG PRO" + ], + "name": "Generic PETG PRO", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OFlmxlDG": { + "filaments": [ + "BBL/BETA HIPS" + ], + "name": "BETA HIPS", + "filament_type": "HIPS", + "filament_vendor": "BETA" + }, + "OFln72PT": { + "filaments": [ + "Elegoo/Elegoo PLA-CF", + "OrcaFilamentLibrary/Elegoo PLA-CF" + ], + "name": "Elegoo PLA-CF", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFlsTpJG": { + "filaments": [ + "Elegoo/Elegoo PC-FR", + "OrcaFilamentLibrary/Elegoo PC-FR" + ], + "name": "Elegoo PC-FR", + "filament_type": "PC", + "filament_vendor": "Elegoo" + }, + "OFlufQpZ": { + "filaments": [ + "Snapmaker/Snapmaker PLA" + ], + "name": "Snapmaker PLA", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFlwmqrC": { + "filaments": [ + "BBL/Polymaker HT-PLA-GF", + "OrcaFilamentLibrary/Polymaker HT-PLA-GF", + "Snapmaker/Polymaker HT-PLA-GF" + ], + "name": "Polymaker HT-PLA-GF", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFm06H6V": { + "filaments": [ + "Elegoo/Elegoo PLA Basic", + "OrcaFilamentLibrary/Elegoo PLA Basic" + ], + "name": "Elegoo PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFm4SivL": { + "filaments": [ + "Flashforge/Flashforge PLA Pro" + ], + "name": "Flashforge PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Flashforge" + }, + "OFm4ysMO": { + "filaments": [ + "FlyingBear/FlyingBear ABS" + ], + "name": "FlyingBear ABS", + "filament_type": "ABS", + "filament_vendor": "FlyingBear" + }, + "OFm70lLt": { + "filaments": [ + "CoLiDo/CoLiDo PLA" + ], + "name": "CoLiDo PLA", + "filament_type": "PLA", + "filament_vendor": "CoLiDo" + }, + "OFm8rqoY": { + "filaments": [ + "re3D/re3D rPP" + ], + "name": "re3D rPP", + "filament_type": "PP", + "filament_vendor": "re3D" + }, + "OFmCOW2Y": { + "filaments": [ + "re3D/re3D rPETG" + ], + "name": "re3D rPETG", + "filament_type": "PETG", + "filament_vendor": "re3D" + }, + "OFmFwUWM": { + "filaments": [ + "Prusa/Prusament ASA" + ], + "name": "Prusament ASA", + "filament_type": "ASA", + "filament_vendor": "Prusa Polymers" + }, + "OFmJAd3A": { + "filaments": [ + "OrcaFilamentLibrary/FDplast HIPS" + ], + "name": "FDplast HIPS", + "filament_type": "HIPS", + "filament_vendor": "FDplast" + }, + "OFmKU2Ha": { + "filaments": [ + "Eryone/Eryone PLA" + ], + "name": "Eryone PLA", + "filament_type": "PLA", + "filament_vendor": "Eryone" + }, + "OFmN2lvw": { + "filaments": [ + "BBL/Generic TPU for AMS" + ], + "name": "Generic TPU for AMS", + "filament_type": "TPU-AMS", + "filament_vendor": "Generic" + }, + "OFmY0l6t": { + "filaments": [ + "Creality/Generic PLA Matte", + "Elegoo/Generic PLA Matte", + "OrcaFilamentLibrary/Generic PLA Matte" + ], + "name": "Generic PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFma5TXH": { + "filaments": [ + "Qidi/QIDI ABS Odorless" + ], + "name": "QIDI ABS Odorless", + "filament_type": "ABS", + "filament_vendor": "QIDI" + }, + "OFmaeU4a": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Naranja" + ], + "name": "FilAr PLA-mate Naranja", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFmfizbq": { + "filaments": [ + "OrcaArena/Arena PLA Silk" + ], + "name": "Arena PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFmjN2bc": { + "filaments": [ + "Anycubic/Anycubic PLA" + ], + "name": "Anycubic PLA", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFmn9NZL": { + "filaments": [ + "BBL/FusRock ABS-GF", + "OrcaFilamentLibrary/FusRock ABS-GF" + ], + "name": "FusRock ABS-GF", + "filament_type": "ABS-GF", + "filament_vendor": "FusRock" + }, + "OFmpMwxS": { + "filaments": [ + "BBL/Generic PLA High Speed", + "Creality/Generic PLA High Speed", + "FLSun/Generic PLA High Speed", + "Flashforge/Generic PLA High Speed", + "OrcaFilamentLibrary/Generic PLA High Speed", + "Qidi/Generic PLA High Speed", + "Tiertime/Generic PLA High Speed" + ], + "name": "Generic PLA High Speed", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFmt513L": { + "filaments": [ + "BBL/BETA PETG Transparent" + ], + "name": "BETA PETG Transparent", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFmveLWz": { + "filaments": [ + "Elegoo/Elegoo PETG-GF", + "OrcaFilamentLibrary/Elegoo PETG-GF" + ], + "name": "Elegoo PETG-GF", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFn1QaY3": { + "filaments": [ + "Elegoo/Elegoo PLA Translucent2", + "OrcaFilamentLibrary/Elegoo PLA Translucent2" + ], + "name": "Elegoo PLA Translucent2", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFn2GlhY": { + "filaments": [ + "Creality/Hyper PA6-CF" + ], + "name": "Hyper PA6-CF", + "filament_type": "PA-CF", + "filament_vendor": "Creality" + }, + "OFn6WpN7": { + "filaments": [ + "Qidi/QIDI PA12-CF" + ], + "name": "QIDI PA12-CF", + "filament_type": "PA12-CF", + "filament_vendor": "QIDI" + }, + "OFnBvPhb": { + "filaments": [ + "BBL/addnorth PLA rPLA RE-ADD" + ], + "name": "addnorth PLA rPLA RE-ADD", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFnHc3D6": { + "filaments": [ + "Creality/eSUN PLA-CF" + ], + "name": "eSUN PLA-CF", + "filament_type": "PLA-CF", + "filament_vendor": "eSUN" + }, + "OFnO4wnf": { + "filaments": [ + "Prusa/Prusament PLA" + ], + "name": "Prusament PLA", + "filament_type": "PLA", + "filament_vendor": "Prusa Polymers" + }, + "OFnSeLHk": { + "filaments": [ + "CoLiDo/CoLiDo PLA Silk" + ], + "name": "CoLiDo PLA Silk", + "filament_type": "PLA", + "filament_vendor": "CoLiDo" + }, + "OFnT7Qpb": { + "filaments": [ + "Prusa/Generic TPU HF" + ], + "name": "Generic TPU HF", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OFnXrkhA": { + "filaments": [ + "InfiMech/InfiMech PA-CF" + ], + "name": "InfiMech PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "InfiMech" + }, + "OFnXwW8l": { + "filaments": [ + "Snapmaker/PolyLite PLA Pro Metallic" + ], + "name": "PolyLite PLA Pro Metallic", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFnYVFk2": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Azul Francia" + ], + "name": "FilAr PLA Azul Francia", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFncpm7O": { + "filaments": [ + "WonderMaker/WonderMaker PLA Silk" + ], + "name": "WonderMaker PLA Silk", + "filament_type": "PLA", + "filament_vendor": "WonderMaker" + }, + "OFneOFWe": { + "filaments": [ + "CoLiDo/CoLiDo ABS" + ], + "name": "CoLiDo ABS", + "filament_type": "ABS", + "filament_vendor": "CoLiDo" + }, + "OFnejEt4": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Cian" + ], + "name": "FilAr PETG Cian", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFnfxTvi": { + "filaments": [ + "BBL/Bambu PLA Lite" + ], + "name": "Bambu PLA Lite", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFngcE81": { + "filaments": [ + "LH/LHS TPU Foamy 78A" + ], + "name": "LHS TPU Foamy 78A", + "filament_type": "TPU", + "filament_vendor": "LH Stinger" + }, + "OFniMuTN": { + "filaments": [ + "BBL/Bambu PA6-CF", + "OrcaFilamentLibrary/Bambu PA6-CF" + ], + "name": "Bambu PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "Bambu Lab" + }, + "OFnmp2pO": { + "filaments": [ + "Snapmaker/Snapmaker Breakaway Support For PLA" + ], + "name": "Snapmaker Breakaway Support For PLA", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFnmp6rt": { + "filaments": [ + "Anycubic/Anycubic PLA+" + ], + "name": "Anycubic PLA+", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFnpX8uh": { + "filaments": [ + "BBL/BETA PETG Matte" + ], + "name": "BETA PETG Matte", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFnyHfcv": { + "filaments": [ + "Ratrig/Generic ABS BigNozzle" + ], + "name": "Generic ABS BigNozzle", + "filament_type": "ABS", + "filament_vendor": "Generic" + }, + "OFo15hcT": { + "filaments": [ + "Qidi/QIDI PAHT-GF" + ], + "name": "QIDI PAHT-GF", + "filament_type": "PAHT-GF", + "filament_vendor": "QIDI" + }, + "OFo2UF2C": { + "filaments": [ + "BBL/Generic BVOH", + "Creality/Generic BVOH", + "Flashforge/Generic BVOH", + "OrcaFilamentLibrary/Generic BVOH", + "Tiertime/Generic BVOH" + ], + "name": "Generic BVOH", + "filament_type": "BVOH", + "filament_vendor": "Generic" + }, + "OFo6n2pB": { + "filaments": [ + "Anycubic/Anycubic PETG" + ], + "name": "Anycubic PETG", + "filament_type": "PETG", + "filament_vendor": "Anycubic" + }, + "OFoBTKmn": { + "filaments": [ + "Cubicon/Cubicon PETG" + ], + "name": "Cubicon PETG", + "filament_type": "PETG", + "filament_vendor": "Cubicon" + }, + "OFoSknDB": { + "filaments": [ + "OrcaFilamentLibrary/FILL3D PLA Turbo" + ], + "name": "FILL3D PLA Turbo", + "filament_type": "PLA", + "filament_vendor": "FILL3D" + }, + "OFoYSJKi": { + "filaments": [ + "Anker/Generic PETG-CF", + "BBL/Generic PETG-CF", + "Creality/Generic PETG-CF", + "Elegoo/Generic PETG-CF", + "Flashforge/Generic PETG-CF", + "OrcaArena/Generic PETG-CF", + "OrcaFilamentLibrary/Generic PETG-CF", + "Qidi/Generic PETG-CF", + "Tiertime/Generic PETG-CF" + ], + "name": "Generic PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Generic" + }, + "OFobDOW5": { + "filaments": [ + "Elegoo/Elegoo ASA", + "OrcaFilamentLibrary/Elegoo ASA" + ], + "name": "Elegoo ASA", + "filament_type": "ASA", + "filament_vendor": "Elegoo" + }, + "OFocyw69": { + "filaments": [ + "BBL/AliZ PETG", + "OrcaFilamentLibrary/AliZ PETG" + ], + "name": "AliZ PETG", + "filament_type": "PETG", + "filament_vendor": "Aliz" + }, + "OFoiVqVM": { + "filaments": [ + "BBL/Bambu PLA Basic", + "OrcaFilamentLibrary/Bambu PLA Basic" + ], + "name": "Bambu PLA Basic", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFojbdhR": { + "filaments": [ + "Flashforge/Flashforge ABS-GF" + ], + "name": "Flashforge ABS-GF", + "filament_type": "ABS-GF", + "filament_vendor": "Flashforge" + }, + "OForhBi4": { + "filaments": [ + "Cubicon/Cubicon ABSk" + ], + "name": "Cubicon ABSk", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFovEIbw": { + "filaments": [ + "BBL/Bambu PETG HF", + "OrcaFilamentLibrary/Bambu PETG HF" + ], + "name": "Bambu PETG HF", + "filament_type": "PETG", + "filament_vendor": "Bambu Lab" + }, + "OFp4ETDP": { + "filaments": [ + "Creality/CR-PLA" + ], + "name": "CR-PLA", + "filament_type": "PLA", + "filament_vendor": "Creality" + }, + "OFp57RRC": { + "filaments": [ + "Qidi/QIDI PPS-GF" + ], + "name": "QIDI PPS-GF", + "filament_type": "PPS-GF", + "filament_vendor": "QIDI" + }, + "OFp9wdmf": { + "filaments": [ + "Eryone/Eryone PA-CF" + ], + "name": "Eryone PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Eryone" + }, + "OFpBlrvY": { + "filaments": [ + "OrcaFilamentLibrary/Valment PLA Silk" + ], + "name": "Valment PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Valment" + }, + "OFpDo5Ix": { + "filaments": [ + "Cubicon/Cubicon ABS" + ], + "name": "Cubicon ABS", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFpPGSKG": { + "filaments": [ + "BBL/SUNLU Silk PLA+", + "Flashforge/SUNLU Silk PLA+", + "OrcaFilamentLibrary/SUNLU Silk PLA+" + ], + "name": "SUNLU Silk PLA+", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFpPJSHE": { + "filaments": [ + "Peopoly/Peopoly Lancer PETG-C" + ], + "name": "Peopoly Lancer PETG-C", + "filament_type": "PETG", + "filament_vendor": "Peopoly" + }, + "OFpW4gdi": { + "filaments": [ + "BBL/SUNLU PLA Matte", + "Flashforge/SUNLU PLA Matte", + "OrcaFilamentLibrary/SUNLU PLA Matte" + ], + "name": "SUNLU PLA Matte", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFpdjFI3": { + "filaments": [ + "BBL/BETA PLA UV Color Change" + ], + "name": "BETA PLA UV Color Change", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFpu74Qe": { + "filaments": [ + "Snapmaker/Snapmaker PLA Eco" + ], + "name": "Snapmaker PLA Eco", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFpumhCM": { + "filaments": [ + "Volumic/Volumic UNIVERSAL Ultra" + ], + "name": "Volumic UNIVERSAL Ultra", + "filament_type": "UNIV", + "filament_vendor": "Volumic" + }, + "OFq0TY7C": { + "filaments": [ + "Flashforge/Flashforge ASA-CF" + ], + "name": "Flashforge ASA-CF", + "filament_type": "ASA-CF", + "filament_vendor": "Flashforge" + }, + "OFq8gfS4": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Negro Azabache" + ], + "name": "FilAr PETG Negro Azabache", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFq9svOz": { + "filaments": [ + "BBL/Generic PPS", + "Creality/Generic PPS", + "Tiertime/Generic PPS" + ], + "name": "Generic PPS", + "filament_type": "PPS", + "filament_vendor": "Generic" + }, + "OFqFRiLb": { + "filaments": [ + "Ratrig/Generic PLA BigNozzle" + ], + "name": "Generic PLA BigNozzle", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFqGRZyH": { + "filaments": [ + "BBL/Numakers PLA+", + "OrcaFilamentLibrary/Numakers PLA+" + ], + "name": "Numakers PLA+", + "filament_type": "PLA", + "filament_vendor": "Numakers" + }, + "OFqHQNoZ": { + "filaments": [ + "Elegoo/Elegoo TPU 95A", + "OrcaFilamentLibrary/Elegoo TPU 95A" + ], + "name": "Elegoo TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Elegoo" + }, + "OFqINlYj": { + "filaments": [ + "BBL/eSUN PLA+", + "Creality/eSUN PLA+", + "OrcaFilamentLibrary/eSUN PLA+" + ], + "name": "eSUN PLA+", + "filament_type": "PLA", + "filament_vendor": "eSUN" + }, + "OFqTwtXM": { + "filaments": [ + "BBL/addnorth PETG rPETG Matte" + ], + "name": "addnorth PETG rPETG Matte", + "filament_type": "PETG", + "filament_vendor": "addnorth" + }, + "OFqcL5UF": { + "filaments": [ + "Qidi/QIDI Support For PET/PA" + ], + "name": "QIDI Support For PET/PA", + "filament_type": "PA-S", + "filament_vendor": "QIDI" + }, + "OFqtx549": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Celeste Cielo" + ], + "name": "FilAr PLA-mate Celeste Cielo", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFqw2PQA": { + "filaments": [ + "BBL/Panchroma CoPE", + "OrcaFilamentLibrary/Panchroma CoPE", + "Snapmaker/Panchroma CoPE" + ], + "name": "Panchroma CoPE", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFrFBEfd": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Neon" + ], + "name": "Eolas Prints PLA Neon", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFrGJ4tR": { + "filaments": [ + "Anycubic/Anycubic PLA Slik" + ], + "name": "Anycubic PLA Slik", + "filament_type": "PLA", + "filament_vendor": "Anycubic" + }, + "OFrKLeE3": { + "filaments": [ + "BBL/Bambu PLA Metal", + "OrcaFilamentLibrary/Bambu PLA Metal" + ], + "name": "Bambu PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFrLiqiM": { + "filaments": [ + "InfiMech/InfiMech PETG" + ], + "name": "InfiMech PETG", + "filament_type": "PETG", + "filament_vendor": "InfiMech" + }, + "OFrM4hdm": { + "filaments": [ + "Creality/CR-PLA Carbon" + ], + "name": "CR-PLA Carbon", + "filament_type": "PLA-CF", + "filament_vendor": "Creality" + }, + "OFrOh600": { + "filaments": [ + "BBL/Panchroma PLA Matte", + "Creality/Panchroma PLA Matte", + "OrcaFilamentLibrary/Panchroma PLA Matte", + "Snapmaker/Panchroma PLA Matte" + ], + "name": "Panchroma PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFrZDhVt": { + "filaments": [ + "Flashforge/Flashforge ASA-GF" + ], + "name": "Flashforge ASA-GF", + "filament_type": "ASA-GF", + "filament_vendor": "Flashforge" + }, + "OFrdZ0cK": { + "filaments": [ + "Creality/eSUN PETG+HS" + ], + "name": "eSUN PETG+HS", + "filament_type": "PETG", + "filament_vendor": "eSUN" + }, + "OFrjacXf": { + "filaments": [ + "Flashforge/Flashforge PET-CF" + ], + "name": "Flashforge PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "Flashforge" + }, + "OFrqMlGt": { + "filaments": [ + "BBL/BETA PETG" + ], + "name": "BETA PETG", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFrr67nG": { + "filaments": [ + "OrcaArena/Arena PC" + ], + "name": "Arena PC", + "filament_type": "PC", + "filament_vendor": "Orca Arena" + }, + "OFryjl35": { + "filaments": [ + "Elegoo/Elegoo ASA-CF", + "OrcaFilamentLibrary/Elegoo ASA-CF" + ], + "name": "Elegoo ASA-CF", + "filament_type": "ASA", + "filament_vendor": "Elegoo" + }, + "OFsB2lxm": { + "filaments": [ + "Elegoo/Elegoo PLA Matte", + "OrcaFilamentLibrary/Elegoo PLA Matte" + ], + "name": "Elegoo PLA Matte", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFsD974q": { + "filaments": [ + "Volumic/Volumic PETG Ultra (Performance)" + ], + "name": "Volumic PETG Ultra (Performance)", + "filament_type": "PETG", + "filament_vendor": "Volumic" + }, + "OFsDXRpS": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Piel" + ], + "name": "FilAr PLA Piel", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFsFo7ms": { + "filaments": [ + "Volumic/Volumic PP Ultra" + ], + "name": "Volumic PP Ultra", + "filament_type": "PP", + "filament_vendor": "Volumic" + }, + "OFsFon5l": { + "filaments": [ + "BBL/Generic HIPS", + "Chuanying/Generic HIPS", + "Creality/Generic HIPS", + "Flashforge/Generic HIPS", + "OrcaFilamentLibrary/Generic HIPS", + "Tiertime/Generic HIPS" + ], + "name": "Generic HIPS", + "filament_type": "HIPS", + "filament_vendor": "Generic" + }, + "OFsHSVZc": { + "filaments": [ + "BBL/Bambu Support W", + "OrcaFilamentLibrary/Bambu Support W" + ], + "name": "Bambu Support W", + "filament_type": "PLA", + "filament_vendor": "Bambu Lab" + }, + "OFsP8PKH": { + "filaments": [ + "Z-Bolt/Generic ABS HT" + ], + "name": "Generic ABS HT", + "filament_type": "ABS", + "filament_vendor": "Generic" + }, + "OFsRDvTM": { + "filaments": [ + "Anycubic/Panchroma PLA", + "BBL/Panchroma PLA", + "OrcaFilamentLibrary/Panchroma PLA", + "Snapmaker/Panchroma PLA" + ], + "name": "Panchroma PLA", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFsXQXbs": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Blanco Antartida" + ], + "name": "FilAr PETG Blanco Antartida", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFsijjtH": { + "filaments": [ + "BBL/Generic PP-GF", + "OrcaFilamentLibrary/Generic PP-GF", + "Tiertime/Generic PP-GF" + ], + "name": "Generic PP-GF", + "filament_type": "PP-GF", + "filament_vendor": "Generic" + }, + "OFsoykbm": { + "filaments": [ + "OrcaFilamentLibrary/DREMC PA6-CF" + ], + "name": "DREMC PA6-CF", + "filament_type": "PA6-CF", + "filament_vendor": "DREMC" + }, + "OFt0JbR7": { + "filaments": [ + "Snapmaker/Snapmaker J1 PLA Metal" + ], + "name": "Snapmaker J1 PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFt3HtlG": { + "filaments": [ + "Qidi/QIDI ABS-GF" + ], + "name": "QIDI ABS-GF", + "filament_type": "ABS-GF", + "filament_vendor": "QIDI" + }, + "OFt6e0US": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Amarillo Lima" + ], + "name": "FilAr PETG Amarillo Lima", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFt7SngH": { + "filaments": [ + "Snapmaker/Snapmaker J1 ASA" + ], + "name": "Snapmaker J1 ASA", + "filament_type": "ASA", + "filament_vendor": "Snapmaker" + }, + "OFtFtiS0": { + "filaments": [ + "Snapmaker/Polymaker PETG Galaxy" + ], + "name": "Polymaker PETG Galaxy", + "filament_type": "PETG", + "filament_vendor": "Polymaker" + }, + "OFtGC1ye": { + "filaments": [ + "Artillery/Artillery PA-CF" + ], + "name": "Artillery PA-CF", + "filament_type": "PA-CF", + "filament_vendor": "Artillery" + }, + "OFtKeKa9": { + "filaments": [ + "OrcaArena/Arena PLA Tough" + ], + "name": "Arena PLA Tough", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFtOPlK6": { + "filaments": [ + "OrcaArena/Arena PAHT-CF" + ], + "name": "Arena PAHT-CF", + "filament_type": "PA-CF", + "filament_vendor": "Orca Arena" + }, + "OFtOoWIj": { + "filaments": [], + "name": "FilAr PLA-mate", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFtRn8X8": { + "filaments": [ + "OrcaFilamentLibrary/FDplast SBS" + ], + "name": "FDplast SBS", + "filament_type": "SBS", + "filament_vendor": "FDplast" + }, + "OFtdVZpV": { + "filaments": [ + "BBL/addnorth PLA X-PLA" + ], + "name": "addnorth PLA X-PLA", + "filament_type": "PLA", + "filament_vendor": "addnorth" + }, + "OFtefokm": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Blanco" + ], + "name": "FilAr PLA-mate Blanco", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFtkLO6q": { + "filaments": [ + "BBL/Bambu TPU 90A" + ], + "name": "Bambu TPU 90A", + "filament_type": "TPU", + "filament_vendor": "Bambu Lab" + }, + "OFtndTHe": { + "filaments": [ + "BBL/BETA PETG-CF" + ], + "name": "BETA PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "BETA" + }, + "OFtpXCCv": { + "filaments": [ + "BBL/COEX ASA PRIME", + "OrcaFilamentLibrary/COEX ASA PRIME" + ], + "name": "COEX ASA PRIME", + "filament_type": "ASA", + "filament_vendor": "COEX 3D" + }, + "OFtr8eZw": { + "filaments": [ + "OrcaFilamentLibrary/FDplast PLA" + ], + "name": "FDplast PLA", + "filament_type": "PLA", + "filament_vendor": "FDplast" + }, + "OFtudokz": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA Premium" + ], + "name": "Eolas Prints PLA Premium", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFtybfNX": { + "filaments": [ + "Snapmaker/Snapmaker PLA Metal" + ], + "name": "Snapmaker PLA Metal", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFu08yGN": { + "filaments": [ + "Volumic/Volumic PETG Ultra carbone" + ], + "name": "Volumic PETG Ultra carbone", + "filament_type": "PETG", + "filament_vendor": "Volumic" + }, + "OFu0fjPJ": { + "filaments": [ + "LH/LHS PC CF" + ], + "name": "LHS PC CF", + "filament_type": "PC", + "filament_vendor": "LH Stinger" + }, + "OFu1E4ur": { + "filaments": [ + "Qidi/QIDI ASA-Aero" + ], + "name": "QIDI ASA-Aero", + "filament_type": "ASA-AERO", + "filament_vendor": "QIDI" + }, + "OFu1evlr": { + "filaments": [ + "BBL/Generic PCTG", + "Creality/Generic PCTG", + "OrcaFilamentLibrary/Generic PCTG", + "Ratrig/Generic PCTG", + "Tiertime/Generic PCTG" + ], + "name": "Generic PCTG", + "filament_type": "PCTG", + "filament_vendor": "Generic" + }, + "OFuFEtKX": { + "filaments": [ + "Flashforge/Flashforge PETG-CF" + ], + "name": "Flashforge PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Flashforge" + }, + "OFuJ49uH": { + "filaments": [ + "Qidi/QIDI PETG Basic" + ], + "name": "QIDI PETG Basic", + "filament_type": "PETG", + "filament_vendor": "QIDI" + }, + "OFuO0cAP": { + "filaments": [ + "OrcaArena/Arena PETG-CF" + ], + "name": "Arena PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Orca Arena" + }, + "OFuUuIhR": { + "filaments": [ + "Elegoo/Elegoo PETG-CF", + "OrcaFilamentLibrary/Elegoo PETG-CF" + ], + "name": "Elegoo PETG-CF", + "filament_type": "PETG", + "filament_vendor": "Elegoo" + }, + "OFuV79ru": { + "filaments": [ + "Flashforge/Flashforge PA66-CF" + ], + "name": "Flashforge PA66-CF", + "filament_type": "PA-CF", + "filament_vendor": "Flashforge" + }, + "OFuWCQXN": { + "filaments": [ + "BBL/COEX ABS PRIME", + "OrcaFilamentLibrary/COEX ABS PRIME" + ], + "name": "COEX ABS PRIME", + "filament_type": "ABS", + "filament_vendor": "COEX 3D" + }, + "OFuehn62": { + "filaments": [ + "OrcaArena/Arena PLA Marble" + ], + "name": "Arena PLA Marble", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFufTAK9": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA-mate Negro" + ], + "name": "FilAr PLA-mate Negro", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFughwKn": { + "filaments": [ + "Qidi/QIDI PLA Matte Basic" + ], + "name": "QIDI PLA Matte Basic", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFujZSdh": { + "filaments": [ + "Creality/Hyper PETG" + ], + "name": "Hyper PETG", + "filament_type": "PETG", + "filament_vendor": "Creality" + }, + "OFulOdT2": { + "filaments": [ + "Flashforge/Generic TPU 85A" + ], + "name": "Generic TPU 85A", + "filament_type": "TPU", + "filament_vendor": "Generic" + }, + "OFurdQxc": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Magenta" + ], + "name": "FilAr PETG Magenta", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFusbWjj": { + "filaments": [ + "Creality/Hyper PETG-CF" + ], + "name": "Hyper PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Creality" + }, + "OFuvOt0r": { + "filaments": [ + "BBL/BETA PLA Basic" + ], + "name": "BETA PLA Basic", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFuxH0Uz": { + "filaments": [ + "Volumic/Volumic FLEX93 Ultra" + ], + "name": "Volumic FLEX93 Ultra", + "filament_type": "TPU", + "filament_vendor": "Volumic" + }, + "OFvD0Qqt": { + "filaments": [ + "Ratrig/Generic PETG BigNozzle" + ], + "name": "Generic PETG BigNozzle", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OFvDbkFq": { + "filaments": [ + "Prusa/Prusament PC Blend" + ], + "name": "Prusament PC Blend", + "filament_type": "PC", + "filament_vendor": "Prusa Polymers" + }, + "OFvKUnLh": { + "filaments": [ + "BBL/Bambu TPU 95A HF", + "OrcaFilamentLibrary/Bambu TPU 95A HF" + ], + "name": "Bambu TPU 95A HF", + "filament_type": "TPU", + "filament_vendor": "Bambu Lab" + }, + "OFvLppPU": { + "filaments": [ + "Creality/CR-Nylon" + ], + "name": "CR-Nylon", + "filament_type": "PA", + "filament_vendor": "Creality" + }, + "OFvPPMxL": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PLA Verde FilAr" + ], + "name": "FilAr PLA Verde FilAr", + "filament_type": "PLA", + "filament_vendor": "FilAr" + }, + "OFvTVZc3": { + "filaments": [ + "BBL/COEX PETG", + "OrcaFilamentLibrary/COEX PETG" + ], + "name": "COEX PETG", + "filament_type": "PETG", + "filament_vendor": "COEX 3D" + }, + "OFvVy7yo": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints TPU D60 UV Resistant" + ], + "name": "Eolas Prints TPU D60 UV Resistant", + "filament_type": "TPU", + "filament_vendor": "Eolas Prints" + }, + "OFvaLVML": { + "filaments": [ + "Flashforge/Flashforge HIPS" + ], + "name": "Flashforge HIPS", + "filament_type": "HIPS", + "filament_vendor": "Flashforge" + }, + "OFvcIGee": { + "filaments": [ + "BBL/addnorth TPU Pro Matte 85A" + ], + "name": "addnorth TPU Pro Matte 85A", + "filament_type": "TPU", + "filament_vendor": "addnorth" + }, + "OFvdZ2bx": { + "filaments": [ + "Qidi/QIDI WOOD Rapido" + ], + "name": "QIDI WOOD Rapido", + "filament_type": "PLA", + "filament_vendor": "QIDI" + }, + "OFvgE0Zh": { + "filaments": [ + "Elegoo/Elegoo PLA", + "OrcaFilamentLibrary/Elegoo PLA" + ], + "name": "Elegoo PLA", + "filament_type": "PLA", + "filament_vendor": "Elegoo" + }, + "OFvmwTZE": { + "filaments": [ + "Snapmaker/Snapmaker TPU 95A" + ], + "name": "Snapmaker TPU 95A", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFvrXuV7": { + "filaments": [ + "BBL/PolyLite ASA", + "OrcaFilamentLibrary/PolyLite ASA" + ], + "name": "PolyLite ASA", + "filament_type": "ASA", + "filament_vendor": "Polymaker" + }, + "OFvxIS9g": { + "filaments": [ + "BBL/Fiberon PA12-CF10", + "Snapmaker/Fiberon PA12-CF10" + ], + "name": "Fiberon PA12-CF10", + "filament_type": "PA-CF", + "filament_vendor": "Polymaker" + }, + "OFvxghTE": { + "filaments": [ + "Chuanying/Generic HS PLA", + "Flashforge/Generic HS PLA", + "TwoTrees/Generic HS PLA" + ], + "name": "Generic HS PLA", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFvyB0Bz": { + "filaments": [ + "BBL/PolyLite PLA Galaxy", + "Snapmaker/PolyLite PLA Galaxy" + ], + "name": "PolyLite PLA Galaxy", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFvzvwCu": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PLA High Speed" + ], + "name": "Eolas Prints PLA High Speed", + "filament_type": "PLA", + "filament_vendor": "Eolas Prints" + }, + "OFw4WD4T": { + "filaments": [ + "BBL/Fiberon PETG-rCF08" + ], + "name": "Fiberon PETG-rCF08", + "filament_type": "PETG-CF", + "filament_vendor": "Polymaker" + }, + "OFwJ0qu2": { + "filaments": [], + "name": "DREMC PET-CF", + "filament_type": "PET-CF", + "filament_vendor": "DREMC" + }, + "OFwLBAGf": { + "filaments": [ + "Qidi/HATCHBOX ABS" + ], + "name": "HATCHBOX ABS", + "filament_type": "ABS", + "filament_vendor": "HATCHBOX" + }, + "OFwPrlCM": { + "filaments": [ + "BBL/Bambu PETG Translucent", + "OrcaFilamentLibrary/Bambu PETG Translucent" + ], + "name": "Bambu PETG Translucent", + "filament_type": "PETG", + "filament_vendor": "Bambu Lab" + }, + "OFwRJ4g0": { + "filaments": [ + "OrcaFilamentLibrary/NIT PLA" + ], + "name": "NIT PLA", + "filament_type": "PLA", + "filament_vendor": "NIT" + }, + "OFwVVKEV": { + "filaments": [ + "FlyingBear/Other TPU", + "InfiMech/Other TPU" + ], + "name": "Other TPU", + "filament_type": "TPU", + "filament_vendor": "Other" + }, + "OFwaYjL6": { + "filaments": [ + "BBL/Fiberon PA6-GF", + "OrcaFilamentLibrary/Fiberon PA6-GF" + ], + "name": "Fiberon PA6-GF", + "filament_type": "PA-GF", + "filament_vendor": "Polymaker" + }, + "OFwbsgWj": { + "filaments": [ + "re3D/re3D PC" + ], + "name": "re3D PC", + "filament_type": "PC", + "filament_vendor": "re3D" + }, + "OFwc74ck": { + "filaments": [ + "BBL/BETA PLA Matte" + ], + "name": "BETA PLA Matte", + "filament_type": "PLA", + "filament_vendor": "BETA" + }, + "OFwhLMs4": { + "filaments": [ + "Snapmaker/Snapmaker PLA SnapSpeed" + ], + "name": "Snapmaker PLA SnapSpeed", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFwjMiKL": { + "filaments": [ + "Flashforge/Flashforge PETG Transparent" + ], + "name": "Flashforge PETG Transparent", + "filament_type": "PETG", + "filament_vendor": "Flashforge" + }, + "OFwlZ7gH": { + "filaments": [ + "Flashforge/Flashforge TPU-90A" + ], + "name": "Flashforge TPU-90A", + "filament_type": "TPU-90A", + "filament_vendor": "Flashforge" + }, + "OFwu7IAG": { + "filaments": [ + "BBL/COEX PCTG PRIME", + "OrcaFilamentLibrary/COEX PCTG PRIME" + ], + "name": "COEX PCTG PRIME", + "filament_type": "PCTG", + "filament_vendor": "COEX 3D" + }, + "OFwwAQnA": { + "filaments": [ + "Prusa/Generic PC HF" + ], + "name": "Generic PC HF", + "filament_type": "PC", + "filament_vendor": "Generic" + }, + "OFwyt1xt": { + "filaments": [ + "Eryone/Eryone ASA-CF" + ], + "name": "Eryone ASA-CF", + "filament_type": "ASA-CF", + "filament_vendor": "Eryone" + }, + "OFx0WlzS": { + "filaments": [ + "Flashforge/Flashforge TPU-95A" + ], + "name": "Flashforge TPU-95A", + "filament_type": "TPU-95A", + "filament_vendor": "Flashforge" + }, + "OFx8Lmsd": { + "filaments": [ + "OrcaFilamentLibrary/Eolas Prints PETG UV Resistant" + ], + "name": "Eolas Prints PETG UV Resistant", + "filament_type": "PETG", + "filament_vendor": "Eolas Prints" + }, + "OFxA1p01": { + "filaments": [ + "BBL/Overture PLA Pro", + "OrcaFilamentLibrary/Overture PLA Pro" + ], + "name": "Overture PLA Pro", + "filament_type": "PLA", + "filament_vendor": "Overture" + }, + "OFxDHUX8": { + "filaments": [ + "SeeMeCNC/SeeMeCNC PETG" + ], + "name": "SeeMeCNC PETG", + "filament_type": "PETG", + "filament_vendor": "SeeMeCNC" + }, + "OFxJRuVF": { + "filaments": [ + "Anycubic/Anycubic PC-GF" + ], + "name": "Anycubic PC-GF", + "filament_type": "PC-GF", + "filament_vendor": "Anycubic" + }, + "OFxOHhZw": { + "filaments": [ + "Elegoo/Elegoo ABS", + "OrcaFilamentLibrary/Elegoo ABS" + ], + "name": "Elegoo ABS", + "filament_type": "ABS", + "filament_vendor": "Elegoo" + }, + "OFxUwUeW": { + "filaments": [ + "BBL/SUNLU PLA Marble", + "Flashforge/SUNLU PLA Marble", + "OrcaFilamentLibrary/SUNLU PLA Marble" + ], + "name": "SUNLU PLA Marble", + "filament_type": "PLA", + "filament_vendor": "SUNLU" + }, + "OFxYB4Sw": { + "filaments": [ + "Snapmaker/Snapmaker J1 PETG-CF" + ], + "name": "Snapmaker J1 PETG-CF", + "filament_type": "PETG-CF", + "filament_vendor": "Snapmaker" + }, + "OFxe4rXr": { + "filaments": [ + "BBL/PolyTerra PLA Marble", + "Snapmaker/PolyTerra PLA Marble" + ], + "name": "PolyTerra PLA Marble", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFxqf79Q": { + "filaments": [ + "BBL/BETA PETG HF" + ], + "name": "BETA PETG HF", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFy02QHU": { + "filaments": [ + "BBL/PolyLite PLA Translucent", + "Snapmaker/PolyLite PLA Translucent" + ], + "name": "PolyLite PLA Translucent", + "filament_type": "PLA", + "filament_vendor": "Polymaker" + }, + "OFy14TRA": { + "filaments": [ + "Snapmaker/Snapmaker J1 ABS" + ], + "name": "Snapmaker J1 ABS", + "filament_type": "ABS", + "filament_vendor": "Snapmaker" + }, + "OFy3sW6j": { + "filaments": [ + "WonderMaker/WonderMaker ASA" + ], + "name": "WonderMaker ASA", + "filament_type": "ASA", + "filament_vendor": "WonderMaker" + }, + "OFy48TOp": { + "filaments": [ + "Flashforge/Generic TPU-95A" + ], + "name": "Generic TPU-95A", + "filament_type": "TPU-95A", + "filament_vendor": "Generic" + }, + "OFy8tYJE": { + "filaments": [ + "Cubicon/Cubicon ABS-A100" + ], + "name": "Cubicon ABS-A100", + "filament_type": "ABS", + "filament_vendor": "Cubicon" + }, + "OFyFyLIp": { + "filaments": [ + "SeeMeCNC/SeeMeCNC TPU" + ], + "name": "SeeMeCNC TPU", + "filament_type": "TPU", + "filament_vendor": "SeeMeCNC" + }, + "OFyHgT60": { + "filaments": [ + "OrcaArena/Arena PLA Sparkle" + ], + "name": "Arena PLA Sparkle", + "filament_type": "PLA", + "filament_vendor": "Orca Arena" + }, + "OFyJjkek": { + "filaments": [ + "BBL/addnorth TPU Pro Matte 95A" + ], + "name": "addnorth TPU Pro Matte 95A", + "filament_type": "TPU", + "filament_vendor": "addnorth" + }, + "OFyLWVF3": { + "filaments": [ + "Creality/Generic PETG-GF" + ], + "name": "Generic PETG-GF", + "filament_type": "PETG-GF", + "filament_vendor": "Generic" + }, + "OFyPG8v2": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA Eco" + ], + "name": "Snapmaker Dual PLA Eco", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFyPTnSk": { + "filaments": [ + "BBL/BETA PETG Heat Color Change" + ], + "name": "BETA PETG Heat Color Change", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFyQwdaM": { + "filaments": [ + "Volumic/Volumic ABS Ultra (Performance)" + ], + "name": "Volumic ABS Ultra (Performance)", + "filament_type": "ABS", + "filament_vendor": "Volumic" + }, + "OFyRCIMh": { + "filaments": [ + "FlyingBear/Other PC", + "InfiMech/Other PC" + ], + "name": "Other PC", + "filament_type": "PC", + "filament_vendor": "Other" + }, + "OFyUJI3q": { + "filaments": [ + "Volumic/Volumic ABS Ultra" + ], + "name": "Volumic ABS Ultra", + "filament_type": "ABS", + "filament_vendor": "Volumic" + }, + "OFybzvQN": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Gris Ceniza" + ], + "name": "FilAr PETG Gris Ceniza", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFyhjiNs": { + "filaments": [ + "Snapmaker/Snapmaker PVA" + ], + "name": "Snapmaker PVA", + "filament_type": "PVA", + "filament_vendor": "Snapmaker" + }, + "OFyj3m13": { + "filaments": [ + "Snapmaker/Snapmaker Dual PLA Silk" + ], + "name": "Snapmaker Dual PLA Silk", + "filament_type": "PLA", + "filament_vendor": "Snapmaker" + }, + "OFymnal9": { + "filaments": [ + "Sovol/Sovol Zero PETG HS Nozzle" + ], + "name": "Sovol Zero PETG HS Nozzle", + "filament_type": "PETG", + "filament_vendor": "Generic" + }, + "OFyoBZdm": { + "filaments": [ + "LH/LHS PLA" + ], + "name": "LHS PLA", + "filament_type": "PLA", + "filament_vendor": "LH Stinger" + }, + "OFyreocX": { + "filaments": [ + "Tiertime/Tiertime PVA" + ], + "name": "Tiertime PVA", + "filament_type": "PVA", + "filament_vendor": "Tiertime" + }, + "OFyrnlUn": { + "filaments": [ + "Snapmaker/Snapmaker J1 TPU" + ], + "name": "Snapmaker J1 TPU", + "filament_type": "TPU", + "filament_vendor": "Snapmaker" + }, + "OFysxCep": { + "filaments": [ + "OrcaFilamentLibrary/FilAr PETG Coral" + ], + "name": "FilAr PETG Coral", + "filament_type": "PETG", + "filament_vendor": "FilAr" + }, + "OFyxayW4": { + "filaments": [ + "BBL/AliZ PLA", + "OrcaFilamentLibrary/AliZ PLA" + ], + "name": "AliZ PLA", + "filament_type": "PLA", + "filament_vendor": "Aliz" + }, + "OFz1a1fy": { + "filaments": [ + "BBL/BETA PETG Metallic" + ], + "name": "BETA PETG Metallic", + "filament_type": "PETG", + "filament_vendor": "BETA" + }, + "OFz5oHgf": { + "filaments": [ + "MagicMaker/Generic PEEK" + ], + "name": "Generic PEEK", + "filament_type": "PEEK", + "filament_vendor": "Generic" + }, + "OFzAWsca": { + "filaments": [ + "Qidi/Qidi TPU 95A-HF" + ], + "name": "Qidi TPU 95A-HF", + "filament_type": "TPU", + "filament_vendor": "QIDI" + }, + "OFzB4uOs": { + "filaments": [ + "Sovol/Sovol Zero PLA Basic HS Nozzle" + ], + "name": "Sovol Zero PLA Basic HS Nozzle", + "filament_type": "PLA", + "filament_vendor": "Generic" + }, + "OFzRtFM9": { + "filaments": [ + "Prusa/Generic ASA HF" + ], + "name": "Generic ASA HF", + "filament_type": "ASA", + "filament_vendor": "Generic" + }, + "OFzS7zt4": { + "filaments": [ + "Anycubic/Anycubic PA" + ], + "name": "Anycubic PA", + "filament_type": "PA", + "filament_vendor": "Anycubic" + }, + "OFzY7N3Z": { + "filaments": [ + "Artillery/Artillery PLA" + ], + "name": "Artillery PLA", + "filament_type": "PLA", + "filament_vendor": "Artillery" + }, + "OFzaq7Yg": { + "filaments": [ + "BBL/BETA TPU 98A" + ], + "name": "BETA TPU 98A", + "filament_type": "TPU", + "filament_vendor": "BETA" + }, + "OFzk5oAo": { + "filaments": [ + "BBL/addnorth ABS rABS" + ], + "name": "addnorth ABS rABS", + "filament_type": "ABS", + "filament_vendor": "addnorth" + }, + "OFzrUUxc": { + "filaments": [], + "name": "DREMC ABS", + "filament_type": "ABS", + "filament_vendor": "DREMC" + }, + "OFztQ7rO": { + "filaments": [ + "LH/LHS ABS" + ], + "name": "LHS ABS", + "filament_type": "ASA", + "filament_vendor": "LH Stinger" + }, + "OFzwA5Z9": { + "filaments": [ + "Flashforge/FusRock PET-GF" + ], + "name": "FusRock PET-GF", + "filament_type": "PET-GF", + "filament_vendor": "FusRock" + }, + "OFzyIxba": { + "filaments": [ + "BBL/Bambu PVA", + "OrcaFilamentLibrary/Bambu PVA" + ], + "name": "Bambu PVA", + "filament_type": "PVA", + "filament_vendor": "Bambu Lab" + } } } diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index b9291e9433..37c7d16772 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -111,11 +111,10 @@ class SyntheticTree: # -- pipeline wrappers --------------------------------------------------- - def update_snapshot(self, allow_shared_catalog=False): + def update_snapshot(self): buf = io.StringIO() with contextlib.redirect_stdout(buf): - rc = afi.update_snapshot(self.profiles, self.snapshot, - allow_shared_catalog=allow_shared_catalog) + rc = afi.update_snapshot(self.profiles, self.snapshot) return rc, buf.getvalue() def check(self, map_path=None): @@ -144,19 +143,18 @@ class SyntheticTree: return dropped, errors, buf.getvalue() def make_clean_tree(apla_id="AX01", generic_id="OGFL99"): - """Baseline tree: OFL base+generic, a vendor family, a clean tuned generic. + """Baseline tree: OFL base+generic, a vendor filament, a clean tuned generic. - apla_id/generic_id default to arbitrary non-OF placeholders (grandfathered - into the snapshot below) since most tests only need "already assigned, - don't touch". TestAssign passes real OF-format ids instead: assign_missing_ids - now treats a non-OF declaration as missing and remints it, so a non-OF - baseline would no longer be a no-op there. + apla_id/generic_id default to arbitrary non-OF placeholders (sanctioned by + the snapshot below) since most tests only need "already assigned, don't + touch" and never run the checks. TestAssign and the check tests pass real + OF-format ids instead (OfCleanTreeCase). """ t = SyntheticTree() t.add_vendor(OFL, [ - preset("fdm_pla", filament_id=generic_id, instantiation=False, + preset("Generic PLA @base", filament_id=generic_id, instantiation=False, filament_vendor="Generic", filament_type="PLA"), - preset("Generic PLA @System", inherits="fdm_pla", + preset("Generic PLA @System", inherits="Generic PLA @base", compatible_printers=[]), ]) t.add_vendor("VendorA", [ @@ -180,7 +178,7 @@ class SyntheticTreeCase(unittest.TestCase): class OfCleanTreeCase(unittest.TestCase): - """Like SyntheticTreeCase, but the baseline family/generic already carry + """Like SyntheticTreeCase, but the baseline filament/generic already carry real OF-format ids (check 1 now rejects "AX01"/"OGFL99" unconditionally, with no snapshot exemption), so an otherwise-untouched tree still passes check_filament_ids. Tests that specifically need a non-OF baseline to @@ -190,7 +188,7 @@ class OfCleanTreeCase(unittest.TestCase): def setUp(self): self.t = make_clean_tree( apla_id=afi.generate_filament_id("AVendor", "PLA", "APLA"), - generic_id=afi.generate_filament_id("Generic", "PLA", "fdm_pla")) + generic_id=afi.generate_filament_id("Generic", "PLA", "Generic PLA")) self.addCleanup(self.t.cleanup) @@ -206,7 +204,7 @@ class TestMint(unittest.TestCase): def test_known_vector(self): # Hardcoded, independently computed vectors: freeze prefix, input string - # layout ("filament_product/<vendor>/<type>/<family>") and base62 tail. + # layout ("filament_product/<vendor>/<type>/<name>") and base62 tail. self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA"), "OF5CgdDq") self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA", @@ -247,7 +245,7 @@ class TestMint(unittest.TestCase): class TestBaseName(unittest.TestCase): - def test_family_derivation(self): + def test_filament_name_derivation(self): cases = [ ("X @base", "X"), ("Afinia PLA@HS", "Afinia PLA"), @@ -256,8 +254,8 @@ class TestBaseName(unittest.TestCase): ("A @B @C", "A"), # first @ wins ("Filár PLA 拓竹 @0.4 nozzle", "Filár PLA 拓竹"), ] - for name, family in cases: - self.assertEqual(afi.base_name(name), family, msg=name) + for name, filament_name in cases: + self.assertEqual(afi.base_name(name), filament_name, msg=name) # --------------------------------------------------------------------------- @@ -465,7 +463,17 @@ class TestChecks(OfCleanTreeCase): errors, out = self.t.check() self.assertGreater(errors, 0) self.assertIn('triple "AVendor/PETG/APLA" is not sanctioned', out) - self.assertIn('triple stability: snapshot triple "AVendor/PLA/APLA"', out) + self.assertIn('which records "AVendor/PLA/APLA"', out) + # Sanctioning the new triple is not enough: the old id is no longer its + # mint (check 3, nothing grandfathered) — the identity fix is a re-mint, + # reported once on the root, not again under the variant inheriting it. + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + self.assertIn("does not match the mint of its triple", out) + _changed, errors, out = self.t.remint(["VendorA"]) + self.assertEqual(errors, 0, out) rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() @@ -492,8 +500,8 @@ class TestChecks(OfCleanTreeCase): _errors, out = self.t.check() # check 2 still wants a snapshot update self.assertNotIn("does not match the mint", out) - def test_check3_grandfathered_id_triple_pair(self): - # A non-conforming (id, triple) pair sanctioned by the snapshot passes. + def test_check3_no_grandfathering_of_a_wrong_declaration(self): + # Sanctioning the tree does not excuse a declaration from its mint. self.t.write_preset("VendorA", preset("CNEW @base", filament_id="OFZZZZZZ", instantiation=False, filament_vendor="CV", filament_type="PLA")) @@ -502,66 +510,72 @@ class TestChecks(OfCleanTreeCase): rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() - self.assertEqual(errors, 0, out) + self.assertEqual(errors, 1, out) + self.assertIn("does not match the mint of its triple", out) - def test_check4_renamed_tuned_generic(self): + def test_check3_inherited_id_must_be_the_mint_of_own_triple(self): + # A preset of another filament inheriting APLA's root takes APLA's id, + # which is not the mint of ITS triple (AVendor/PLA/Tuned PLA). + self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="APLA @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn('"Tuned PLA @P1" (VendorA/filament/Tuned PLA @P1.json) inherits ' + 'filament_id "%s"' % afi.generate_filament_id("AVendor", "PLA", "APLA"), + out) + self.assertIn('mints "%s"' % afi.generate_filament_id("AVendor", "PLA", "Tuned PLA"), + out) + # ... and sanctioning the tree does not excuse it either. + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 1, out) + + def test_check3_renamed_tuned_generic_is_an_identity_error(self): + # Riding the OFL generic under another base name: same rule, same error. self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="Generic PLA @System", compatible_printers=["P1"])) errors, out = self.t.check() self.assertGreater(errors, 0) - self.assertIn("rename re-exposes the OFL preset", out) self.assertIn("Tuned PLA @P1", out) + self.assertIn("inherits filament_id", out) - def test_check4_empty_compatible_printers(self): - self.t.write_preset("VendorA", preset("Generic PLA @P2", - inherits="Generic PLA @System", - compatible_printers=[])) + def test_check3_own_key_on_an_instantiated_preset_is_fine(self): + # Where the id comes from is irrelevant: a variant may carry the key. + apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") + self.t.write_preset("VendorA", preset("APLA @P1", filament_id=apla_id, + inherits="APLA @base", + compatible_printers=["P1 0.4 nozzle"]), + register=False) errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn("cannot shadow the OFL preset", out) + self.assertEqual(errors, 0, out) - def test_check4_own_id_key_on_ofl_rider(self): - # A vendor root that declares its own id while inheriting an OFL family - # forks the family off the catalog id. - self.t.write_preset("VendorA", preset("GPLA @base", filament_id="AX77", - instantiation=False, - inherits="Generic PLA @System")) - self.t.write_preset("VendorA", preset("GPLA @P1", inherits="GPLA @base", - compatible_printers=["P1"])) - errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn('declares its own filament_id "AX77"', out) - - def test_check4_applies_to_non_generic_ofl_families(self): - fid = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") - self.t.write_preset(OFL, preset("poly_pla_base", filament_id=fid, - instantiation=False, - filament_vendor="Polymaker", - filament_type="PLA")) - self.t.write_preset(OFL, preset("PolyLite PLA @System", - inherits="poly_pla_base", - compatible_printers=[])) - rc, _out = self.t.update_snapshot() - self.assertEqual(rc, 0) - self.t.write_preset("VendorA", preset("PolyX PLA @P1", - inherits="PolyLite PLA @System", - compatible_printers=["P1"])) - errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn("rename re-exposes the OFL preset", out) - self.assertIn("PolyX PLA @P1", out) - - def test_check4_exception_is_grandfathered(self): - self.t.write_preset("VendorA", preset("Tuned PLA @P1", + def test_check3_inheriting_a_real_filament_of_another_product_is_fine(self): + # A branded product may inherit the OFL generic (an instantiated + # preset) for its settings; it declares its own triple's id. + fid = afi.generate_filament_id("BV", "PLA", "Branded PLA") + self.t.write_preset("VendorA", preset("Branded PLA @P1", filament_id=fid, inherits="Generic PLA @System", + filament_vendor="BV", compatible_printers=["P1"])) rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() self.assertEqual(errors, 0, out) + # With a wrong key it is a plain mint mismatch: the parent plays no + # part in the verdict. + drifted = afi.generate_filament_id("AVendor", "PLA", "APLA") + self.t.write_preset("VendorA", preset("Branded PLA @P1", filament_id=drifted, + inherits="Generic PLA @System", + filament_vendor="BV", + compatible_printers=["P1"]), + register=False) + errors, out = self.t.check() + self.assertGreater(errors, 0) + self.assertIn("does not match the mint of its triple", out) - def test_check5_reserved_namespace_claims(self): + def test_check4_reserved_namespace_claims(self): for fid, marker in [("GFX99", "Bambu AMS/RFID catalog"), ("QD_X_PLA", "composed by the device"), ("P1a2b3c4", "user-custom"), @@ -579,31 +593,7 @@ class TestChecks(OfCleanTreeCase): self.assertIn("reserved id space", out) self.assertIn(marker, out) - def test_check6a_instantiated_preset_with_own_key(self): - # Same value the child would already resolve through inherits: this - # isolates check 6a (own key present) from check 6b (value drift). - apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") - self.t.write_preset("VendorA", preset("APLA @P1", filament_id=apla_id, - inherits="APLA @base", - compatible_printers=["P1 0.4 nozzle"]), - register=False) - errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn("declares its own filament_id key", out) - - def test_check6b_declared_vs_inherited_drift(self): - apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") - drifted = afi.generate_filament_id("AVendor", "PLA", "APLA", salt=1) - self.t.write_preset("VendorA", preset("APLA @P1", filament_id=drifted, - inherits="APLA @base", - compatible_printers=["P1 0.4 nozzle"]), - register=False) - errors, out = self.t.check() - self.assertGreater(errors, 0) - self.assertIn(f'declares filament_id "{drifted}" but its inherits chain resolves ' - f'"{apla_id}"', out) - - def test_check6c_unresolvable_instantiated_filament(self): + def test_check3c_unresolvable_instantiated_filament(self): self.t.write_preset("VendorA", preset("DNEW @P1", compatible_printers=["P1"])) errors, out = self.t.check() self.assertGreater(errors, 0) @@ -617,8 +607,8 @@ class TestChecks(OfCleanTreeCase): self.assertIn("snapshot not found", out) -class TestCheck7(OfCleanTreeCase): - def test_7a_empty_vendor_is_hard_error(self): +class TestCheck5(OfCleanTreeCase): + def test_5a_empty_vendor_is_hard_error(self): fid = afi.generate_filament_id("", "PLA", "NVPLA") self.t.write_preset("VendorA", preset("NVPLA @base", filament_id=fid, instantiation=False, @@ -629,14 +619,14 @@ class TestCheck7(OfCleanTreeCase): self.assertGreater(errors, 0) self.assertIn("resolves empty filament_vendor", out) self.assertIn('filament_vendor "Generic"', out) - # No grandfathering: sanctioning the tree does not silence check 8a. + # No grandfathering: sanctioning the tree does not silence check 5a. rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() self.assertEqual(errors, 1, out) self.assertIn("resolves empty filament_vendor", out) - def test_7b_divergent_family_triples(self): + def test_5b_divergent_filament_triples(self): id1 = afi.generate_filament_id("MV", "PLA", "MPLA") id2 = afi.generate_filament_id("MV", "PETG", "MPLA") self.t.write_preset("VendorA", preset("MPLA @base1", filament_id=id1, @@ -652,14 +642,14 @@ class TestCheck7(OfCleanTreeCase): self.assertIn("divergent triples", out) self.assertIn("MV/PLA/MPLA", out) self.assertIn("MV/PETG/MPLA", out) - # ... until --update-snapshot grandfathers the family in triple_exceptions. + # No grandfathering: sanctioning the tree does not silence check 5b. rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) - self.assertIn("VendorA/MPLA", load_json_file(self.t.snapshot)["triple_exceptions"]) errors, out = self.t.check() - self.assertEqual(errors, 0, out) + self.assertEqual(errors, 1, out) + self.assertIn("divergent triples", out) - def test_7_cross_bundle_divergence_is_warning_only(self): + def test_5_cross_bundle_divergence_is_warning_only(self): fid = afi.generate_filament_id("BV", "PETG", "APLA") self.t.add_vendor("VendorB", [ preset("APLA @base", filament_id=fid, instantiation=False, @@ -676,7 +666,7 @@ class TestCheck7(OfCleanTreeCase): self.assertIn('"APLA"', out) -class TestCheck8(OfCleanTreeCase): +class TestCheck6(OfCleanTreeCase): def _write_map(self, rows): path = os.path.join(self.t.dir, "bambu_filament_ids.json") ubfi.write_map(path, rows, "testcommit", "2026-09-04") @@ -784,15 +774,36 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertTrue(first.endswith(b"\n")) self.assertNotIn(b"\r", first) snap = json.loads(first.decode("utf-8")) + self.assertEqual(list(snap), ["ids"]) # state only, no exception lists self.assertEqual(list(snap["ids"]), sorted(snap["ids"])) - self.assertEqual(snap["ids"]["AX01"], ["VendorA/APLA"]) - self.assertEqual(snap["ids"]["OGFL99"], - ["OrcaFilamentLibrary/Generic PLA", "VendorA/Generic PLA"]) - self.assertEqual(snap["triples"]["AX01"], [["AVendor", "PLA", "APLA"]]) - self.assertEqual(snap["triples"]["OGFL99"], [["Generic", "PLA", "fdm_pla"]]) - self.assertEqual(snap["triple_exceptions"], []) + self.assertEqual(snap["ids"]["AX01"], { + "filaments": ["VendorA/APLA"], "name": "APLA", + "filament_type": "PLA", "filament_vendor": "AVendor"}) + self.assertEqual(snap["ids"]["OGFL99"], { + "filaments": ["OrcaFilamentLibrary/Generic PLA", "VendorA/Generic PLA"], + "name": "Generic PLA", "filament_type": "PLA", "filament_vendor": "Generic"}) + # Key order is part of the on-disk format. + self.assertEqual(list(snap["ids"]["AX01"]), + ["filaments", "name", "filament_type", "filament_vendor"]) - def test_refuses_new_reserved_namespace_claims(self): + def test_refuses_an_id_declared_under_two_triples(self): + # VendorB re-declares APLA's id for a different product: one id, two + # triples. No single entry can describe it, and check 3 rejects it anyway. + self.t.add_vendor("VendorB", [ + preset("BPLA @base", filament_id="AX01", instantiation=False, + filament_vendor="BVendor", filament_type="PLA"), + preset("BPLA @P1", inherits="BPLA @base", compatible_printers=["P1"]), + ]) + with open(self.t.snapshot, "rb") as f: + before = f.read() + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 1) + self.assertIn('refusing to sanction filament_id "AX01": declared under 2 triples ' + '(AVendor/PLA/APLA; BVendor/PLA/BPLA)', out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), before) # nothing written on refusal + + def test_refuses_reserved_namespace_ids(self): self.t.write_preset("VendorA", preset("CNEW @base", filament_id="GFX99", instantiation=False, filament_vendor="CV", @@ -806,10 +817,6 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertIn("refusing to sanction", out) with open(self.t.snapshot, "rb") as f: self.assertEqual(f.read(), before) # nothing written on refusal - rc, _out = self.t.update_snapshot(allow_shared_catalog=True) - self.assertEqual(rc, 0) - snap = load_json_file(self.t.snapshot) - self.assertEqual(snap["ids"]["GFX99"], ["VendorA/CNEW"]) # --------------------------------------------------------------------------- @@ -822,7 +829,7 @@ class TestAssign(OfCleanTreeCase): self.assertEqual((changed, errors), (0, 0)) self.assertIn("nothing to do (0 files changed)", out) - def test_mints_into_family_root_and_rootless_member(self): + def test_mints_into_filament_root_and_rootless_member(self): self.t.write_preset("VendorA", preset("FNEW @base", instantiation=False, filament_vendor="FV", filament_type="PLA")) @@ -850,7 +857,7 @@ class TestAssign(OfCleanTreeCase): self.assertEqual((changed, errors), (0, 0)) self.assertIn("nothing to do", out) - def test_refuses_family_with_incomplete_triple(self): + def test_refuses_filament_with_incomplete_triple(self): self.t.write_preset("VendorA", preset("ENEW @base", instantiation=False)) self.t.write_preset("VendorA", preset("ENEW @P1", inherits="ENEW @base", compatible_printers=["P1"])) @@ -860,7 +867,7 @@ class TestAssign(OfCleanTreeCase): self.assertIn("resolves empty filament_vendor and filament_type", out) self.assertIn("mint key needs both", out) - def test_refuses_family_with_divergent_root_fields(self): + def test_refuses_filament_with_divergent_root_fields(self): self.t.write_preset("VendorA", preset("HNEW @base1", instantiation=False, filament_vendor="HV", filament_type="PLA")) @@ -876,7 +883,10 @@ class TestAssign(OfCleanTreeCase): self.assertGreater(errors, 0) self.assertIn("divergent (filament_vendor, filament_type)", out) - def test_shared_root_between_families_is_refused(self): + def test_parent_of_another_filament_never_receives_the_key(self): + # Members whose id-less parent belongs to another filament (here one + # parent shared by two filaments) carry the key themselves: the + # parent's own triple would mint a different id (check 3). self.t.write_preset("VendorA", preset("shared_base", instantiation=False, filament_vendor="SV", filament_type="PLA")) @@ -885,14 +895,24 @@ class TestAssign(OfCleanTreeCase): self.t.write_preset("VendorA", preset("INEW @P1", inherits="shared_base", compatible_printers=["P1"])) changed, errors, out = self.t.assign() - self.assertEqual(changed, 0) - self.assertGreater(errors, 0) - self.assertIn("shared with famil", out) + self.assertEqual(errors, 0, out) + self.assertEqual(changed, 2) + for filament_name in ("HNEW", "INEW"): + member = load_json_file(self.t.preset_path("VendorA", f"{filament_name} @P1")) + self.assertEqual(member["filament_id"], + afi.generate_filament_id("SV", "PLA", filament_name)) + parent = load_json_file(self.t.preset_path("VendorA", "shared_base")) + self.assertNotIn("filament_id", parent) + # ... and the tree they leave behind passes the identity check. + rc, _out = self.t.update_snapshot() + self.assertEqual(rc, 0) + errors, out = self.t.check() + self.assertEqual(errors, 0, out) def test_non_of_declaration_is_treated_as_missing(self): # A declaration that isn't OF-format (e.g. a vendor bundle synced from # an upstream catalog, like BBL's GF ids) is reminted like a missing - # family, not left alone. + # filament, not left alone. self.t.write_preset("VendorA", preset("Synced PLA @base", filament_id="GFZZ00", instantiation=False, filament_vendor="ZV", filament_type="PLA")) @@ -913,7 +933,7 @@ class TestAssign(OfCleanTreeCase): changed, errors, _out = self.t.assign() self.assertEqual((changed, errors), (0, 0)) - def test_non_of_multi_root_family_converges_on_one_id(self): + def test_non_of_multi_root_filament_converges_on_one_id(self): # Two per-printer roots of one product (same triple), both carrying # the SAME non-OF id — the shape a synced vendor bundle ships (e.g. # BambuStudio's own per-printer @base files). They must converge on @@ -1068,7 +1088,7 @@ class TestRemint(SyntheticTreeCase): root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) self.assertEqual(root["filament_id"], want) # OFL was not part of the run - ofl_root = load_json_file(self.t.preset_path(OFL, "fdm_pla")) + ofl_root = load_json_file(self.t.preset_path(OFL, "Generic PLA @base")) self.assertEqual(ofl_root["filament_id"], "OGFL99") # idempotent: a second run over the same vendor rewrites nothing changed, errors, _out = self.t.remint(["VendorA"]) @@ -1170,7 +1190,7 @@ class TestDropRedundantIds(SyntheticTreeCase): self.assertNotIn("filament_id", gone) kept = load_json_file(self.t.preset_path("VendorA", "Tuned PLA @P3")) self.assertEqual(kept["filament_id"], "OGFL99") - # vendor-rooted families are untouched + # vendor-rooted filaments are untouched root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) self.assertEqual(root["filament_id"], "AX01") @@ -1196,7 +1216,7 @@ class TestMintCli(unittest.TestCase): def test_requires_exactly_three_parts(self): with self.assertRaises(SystemExit), \ contextlib.redirect_stderr(io.StringIO()): - afi.main(["--mint", "Vendor/Family"]) + afi.main(["--mint", "Vendor/Filament"]) # --------------------------------------------------------------------------- @@ -1222,7 +1242,7 @@ class TestRealTree(unittest.TestCase): class TestReviewFixes(OfCleanTreeCase): def test_check3_skips_of_id_inherited_from_other_vendor(self): - # An OFL family carries its own minted OF id and a vendor tunes it + # An OFL filament carries its own minted OF id and a vendor tunes it # correctly (same base name, non-empty printers). The new claim must # trip only the snapshot gate, never mint conformance. fid = afi.generate_filament_id("Generic", "PLA", "Generic PLA Matte") @@ -1248,7 +1268,7 @@ class TestReviewFixes(OfCleanTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_check6c_prints_expected_mint(self): + def test_check3c_prints_expected_mint(self): self.t.write_preset("VendorA", preset("Orphan PLA @P1", compatible_printers=["P1 0.4 nozzle"], filament_vendor="OV", @@ -1263,24 +1283,24 @@ class TestReviewFixes(OfCleanTreeCase): # --------------------------------------------------------------------------- class TestBambuMap(unittest.TestCase): - def _bs_tree(self, families): - # families: list of (family, bambu_id, vendor, type); builds a minimal BBL bundle - # with an @base per family carrying the id and one instantiated child. + def _bs_tree(self, filaments): + # filaments: list of (name, bambu_id, vendor, type); builds a minimal BBL + # bundle with an @base per filament carrying the id and one instantiated child. t = SyntheticTree() self.addCleanup(t.cleanup) presets = [] - for family, bambu_id, vendor, ftype in families: - presets.append(preset(f"{family} @base", filament_id=bambu_id, + for filament_name, bambu_id, vendor, ftype in filaments: + presets.append(preset(f"{filament_name} @base", filament_id=bambu_id, instantiation=False, filament_vendor=vendor, filament_type=ftype)) - presets.append(preset(f"{family} @P1", inherits=f"{family} @base", + presets.append(preset(f"{filament_name} @P1", inherits=f"{filament_name} @base", compatible_printers=["P1 0.4 nozzle"])) t.add_vendor("BBL", presets) filaments, errors = afi.load_vendor_filaments(t.profiles, "BBL") self.assertEqual(errors, []) return filaments - def test_one_row_per_family(self): + def test_one_row_per_filament(self): rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")]), {}) self.assertEqual(rows, {afi.generate_filament_id("Bambu Lab", "ABS", "Bambu ABS"): {"bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS"}}) @@ -1308,13 +1328,13 @@ class TestOrcaTriplesFromAnalysis(unittest.TestCase): t.add_vendor("VendorA", [ # Same triple declared under two different ids on purpose: mirrors # a real, sanctioned case (Cubicon's xCeler line keeps its own id - # per printer instead of inheriting the family's @base id). + # per printer instead of inheriting the filament's @base id). # Ambiguous, but must stay harmless unless something needs it. preset("Ambig PLA @base", filament_id="OF111111", instantiation=False, filament_vendor="V", filament_type="PLA"), preset("Ambig PLA @P1", filament_id="OF222222", inherits="Ambig PLA @base", compatible_printers=["P1"]), - # An unambiguous family elsewhere in the same tree. + # An unambiguous filament elsewhere in the same tree. preset("Needed PLA @base", filament_id="OF333333", instantiation=False, filament_vendor="V2", filament_type="PLA"), preset("Needed PLA @P1", inherits="Needed PLA @base", @@ -1375,9 +1395,9 @@ class TestDriftReport(unittest.TestCase): compatible_printers=["P1"]), ]) rows = { - # matches the BBL bundle's "Match PLA" family: no drift either way + # matches the BBL bundle's "Match PLA" filament: no drift either way "OFmatch01": {"bambu_id": "GFX01", "vendor": "V", "type": "PLA", "name": "Match PLA"}, - # no family of this identity in the BBL bundle above + # no filament of this identity in the BBL bundle above "OFghost01": {"bambu_id": "GFX02", "vendor": "V", "type": "PLA", "name": "Upstream Only PLA"}, } orca_analysis = afi.analyze_tree(t.profiles) @@ -1386,8 +1406,8 @@ class TestDriftReport(unittest.TestCase): report = "\n".join(lines) self.assertIn("Upstream Only PLA", report) - self.assertIn("Orca BBL families with no row: 1", report) - self.assertNotIn("Match PLA", report) # the matched family is not drift + self.assertIn("Orca BBL filaments with no row: 1", report) + self.assertNotIn("Match PLA", report) # the matched filament is not drift if __name__ == "__main__": diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py index fc195a3f9c..7a4a67d2a3 100644 --- a/scripts/update_bambu_filament_ids.py +++ b/scripts/update_bambu_filament_ids.py @@ -12,11 +12,11 @@ src/slic3r/Utils/BBLPrinterAgent.cpp loads it at runtime and translates an id only where it crosses to or from a Bambu printer, so the correspondence never has to be hand-maintained. See docs/HLSD/filament_id.md. -One row per BambuStudio filament PRODUCT: one commercial line = one +One row per BambuStudio filament PRODUCT: one named spool product = one "@base"-declared filament_id, shared by every per-printer/per-nozzle instantiation of it (BambuStudio follows the same one-product-one-id shape Orca's own filament_id policy does). A row's key reuses whatever OF id Orca -already ships for that same (filament_vendor, filament_type, family) triple; +already ships for that same (filament_vendor, filament_type, filament) triple; a triple Orca does not ship anywhere yet gets a freshly generated one. Map format: @@ -38,9 +38,9 @@ Run from anywhere: python3 scripts/update_bambu_filament_ids.py --ref REF clone this BambuStudio ref instead of master --output PATH write here instead of resources/printers/bambu_filament_ids.json -After writing, an informational drift report is printed: BambuStudio families +After writing, an informational drift report is printed: BambuStudio filaments Orca ships nothing with the same identity for, and a count of Orca's own BBL -families that matched no BambuStudio row. Neither blocks the write; both are +filaments that matched no BambuStudio row. Neither blocks the write; both are for a human to read. """ @@ -78,32 +78,34 @@ BAMBUSTUDIO_REPO = "https://github.com/bambulab/BambuStudio" # --------------------------------------------------------------------------- def derive_rows(bs_filaments, orca_triples): - """orca_triples: {(vendor, type, family): orca_id} built from analyze_tree()["triples"].""" - by_family = {} # family -> (bambu_id, triple) + """orca_triples: {(vendor, type, name): orca_id} from analyze_tree()["triples"].""" + by_filament = {} # filament_name -> (bambu_id, triple) for rec in bs_filaments.values(): if not rec["instantiation"]: continue bambu_id, _src, _entry = resolve_filament_id(rec["name"], bs_filaments, {}) if not bambu_id: continue - family = base_name(rec["name"]) + filament_name = base_name(rec["name"]) triple = resolve_triple(rec["name"], bs_filaments, {}) - prev = by_family.setdefault(family, (bambu_id, triple)) + prev = by_filament.setdefault(filament_name, (bambu_id, triple)) if prev != (bambu_id, triple): - raise SystemExit(f"BambuStudio family {family!r} is not one product: {prev} vs {(bambu_id, triple)}") + raise SystemExit(f"BambuStudio filament {filament_name!r} is not one " + f"product: {prev} vs {(bambu_id, triple)}") rows, seen = {}, {} - for family, (bambu_id, triple) in sorted(by_family.items()): + for filament_name, (bambu_id, triple) in sorted(by_filament.items()): if bambu_id in seen: - raise SystemExit(f"Bambu id {bambu_id} is shared by {seen[bambu_id]!r} and {family!r}") - seen[bambu_id] = family + raise SystemExit(f"Bambu id {bambu_id} is shared by " + f"{seen[bambu_id]!r} and {filament_name!r}") + seen[bambu_id] = filament_name orca_id = orca_triples.get(triple) or generate_filament_id(*triple) # reuse a salted id if we ship one rows[orca_id] = {"bambu_id": bambu_id, "vendor": triple[0], "type": triple[1], "name": triple[2]} return rows def orca_triples_from_analysis(orca_analysis, needed_triples): - """{(vendor, type, family): orca_id}, inverted from analyze_tree()["triples"] - (id -> [[vendor, type, family], ...]) and restricted to `needed_triples` + """{(vendor, type, name): orca_id}, inverted from analyze_tree()["triples"] + (id -> [[vendor, type, name], ...]) and restricted to `needed_triples` (the triples BambuStudio's own bundle ships, i.e. the only ones derive_rows will ever look up). @@ -118,7 +120,7 @@ def orca_triples_from_analysis(orca_analysis, needed_triples): Restricting the scan to needed_triples matters for that check: elsewhere in the tree one triple legitimately resolves two different ids on purpose (e.g. Cubicon's xCeler line declares its own id per printer instead of - inheriting its family's, sanctioned in scripts/filament_id_snapshot.json) + inheriting its root's, sanctioned in scripts/filament_id_snapshot.json) and that pre-existing, Bambu-unrelated divergence must not block a map that never reads it. """ @@ -150,9 +152,9 @@ def drift_report(rows, orca_analysis): independently, so only the (vendor, type, name) identity is comparable). Returns print-ready lines: one per BambuStudio row triple with no - same-triple family in Orca's BBL bundle (upstream ships it, we ship + same-triple filament in Orca's BBL bundle (upstream ships it, we ship nothing with that identity there — sometimes a genuinely missing product, - sometimes a renamed one), then a count of Orca's own BBL families that + sometimes a renamed one), then a count of Orca's own BBL filaments that matched no BambuStudio row (Orca-only products, e.g. a name-drifted duplicate of one already counted in the first list). """ @@ -160,19 +162,20 @@ def drift_report(rows, orca_analysis): bbl_filaments = orca_analysis["vendors"].get("BBL", {}) ofl_filaments = orca_analysis["vendors"].get(OFL, {}) - orca_families = {} + orca_filaments = {} for rec in bbl_filaments.values(): if not rec["instantiation"]: continue triple = resolve_triple(rec["name"], bbl_filaments, ofl_filaments) - orca_families.setdefault(base_name(rec["name"]), triple) + orca_filaments.setdefault(base_name(rec["name"]), triple) lines = [] - for triple in sorted(row_triples - set(orca_families.values())): + for triple in sorted(row_triples - set(orca_filaments.values())): lines.append(f'upstream ships {triple[2]!r} ({triple[0]}/{triple[1]}), ' "we ship nothing with that identity") - orca_only = [family for family, triple in orca_families.items() if triple not in row_triples] - lines.append(f"Orca BBL families with no row: {len(orca_only)} Orca-only product(s)") + orca_only = [name for name, triple in orca_filaments.items() + if triple not in row_triples] + lines.append(f"Orca BBL filaments with no row: {len(orca_only)} Orca-only product(s)") return lines From 0b6bbd85bd269277e940f09b906481ae9b16ac0c Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sun, 6 Sep 2026 09:08:57 -0500 Subject: [PATCH 146/164] build: clear 75 warnings - hidden base overloads (#15542) --- src/libslic3r/Int128.hpp | 1 - src/slic3r/GUI/AMSMaterialsSetting.cpp | 5 --- src/slic3r/GUI/AMSMaterialsSetting.hpp | 1 - src/slic3r/GUI/AMSSetting.cpp | 4 +- src/slic3r/GUI/AMSSetting.hpp | 2 +- .../GUI/DeviceTab/uiAMSBestPositionPopup.cpp | 2 +- .../GUI/DeviceTab/uiAMSBestPositionPopup.hpp | 2 +- .../GUI/DeviceTab/uiAmsHumidityPopup.cpp | 2 +- src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h | 4 +- .../GUI/DeviceTab/wgtDeviceNozzleRack.cpp | 4 +- .../GUI/DeviceTab/wgtDeviceNozzleRack.h | 2 +- .../GUI/DeviceTab/wgtDeviceNozzleSelect.cpp | 2 +- src/slic3r/GUI/FilamentMapPanel.cpp | 44 +++++-------------- src/slic3r/GUI/FilamentMapPanel.hpp | 11 ++--- src/slic3r/GUI/SelectMachine.cpp | 4 +- src/slic3r/GUI/SendToPrinter.cpp | 2 +- .../GUI/SlicingProgressNotification.cpp | 12 ++--- .../GUI/SlicingProgressNotification.hpp | 4 +- src/slic3r/GUI/Widgets/AMSControl.cpp | 4 +- src/slic3r/GUI/Widgets/AnimaController.cpp | 2 +- src/slic3r/GUI/Widgets/AnimaController.hpp | 2 +- src/slic3r/GUI/Widgets/ErrorMsgStaticText.hpp | 2 +- src/slic3r/GUI/Widgets/MultiNozzleSync.cpp | 2 +- src/slic3r/GUI/Widgets/RadioBox.cpp | 5 --- src/slic3r/GUI/Widgets/RadioBox.hpp | 4 -- 25 files changed, 45 insertions(+), 84 deletions(-) diff --git a/src/libslic3r/Int128.hpp b/src/libslic3r/Int128.hpp index f8951f20f9..e7238ca745 100644 --- a/src/libslic3r/Int128.hpp +++ b/src/libslic3r/Int128.hpp @@ -125,7 +125,6 @@ public: /******************************************** Splitting the 128bit number into two 64bit words *********************************************/ Int128(int64_t lo = 0) : m_lo((uint64_t)lo), m_hi((lo < 0) ? -1 : 0) {} - Int128(const Int128 &val) : m_lo(val.m_lo), m_hi(val.m_hi) {} Int128(const int64_t& hi, const uint64_t& lo) : m_lo(lo), m_hi(hi) {} Int128& operator = (const int64_t &val) diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 2e436e8462..e0b7f1ddeb 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -1938,11 +1938,6 @@ void ColorPickerPopup::paintEvent(wxPaintEvent& evt) void ColorPickerPopup::OnDismiss() {} -void ColorPickerPopup::Popup() -{ - PopupWindow::Popup(); -} - bool ColorPickerPopup::ProcessLeftDown(wxMouseEvent& event) { return PopupWindow::ProcessLeftDown(event); } diff --git a/src/slic3r/GUI/AMSMaterialsSetting.hpp b/src/slic3r/GUI/AMSMaterialsSetting.hpp index 81167884a7..2cbd58e9a9 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.hpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.hpp @@ -85,7 +85,6 @@ public: void set_ams_colours(std::vector<wxColour> ams); void set_def_colour(wxColour col); void paintEvent(wxPaintEvent& evt); - void Popup(); virtual void OnDismiss() wxOVERRIDE; virtual bool ProcessLeftDown(wxMouseEvent& event) wxOVERRIDE; diff --git a/src/slic3r/GUI/AMSSetting.cpp b/src/slic3r/GUI/AMSSetting.cpp index d8760cfcf6..9ba9031f19 100644 --- a/src/slic3r/GUI/AMSSetting.cpp +++ b/src/slic3r/GUI/AMSSetting.cpp @@ -292,7 +292,7 @@ void AMSSetting::UpdateByObj(MachineObject* obj) update_ams_img(obj); - m_ams_type->Update(obj); + m_ams_type->UpdateInfo(obj); //m_ams_arrange_order->Update(obj); update_insert_material_read_mode(obj); m_sizer_remain_block->Show(obj->is_support_update_remain); @@ -624,7 +624,7 @@ void AMSSettingTypePanel::CreateGui() Fit(); } -void AMSSettingTypePanel::Update(const MachineObject* obj) +void AMSSettingTypePanel::UpdateInfo(const MachineObject* obj) { if (!obj) { Show(false); diff --git a/src/slic3r/GUI/AMSSetting.hpp b/src/slic3r/GUI/AMSSetting.hpp index 69630c59d2..e157c947ae 100644 --- a/src/slic3r/GUI/AMSSetting.hpp +++ b/src/slic3r/GUI/AMSSetting.hpp @@ -110,7 +110,7 @@ public: ~AMSSettingTypePanel(); public: - void Update(const MachineObject* obj); + void UpdateInfo(const MachineObject* obj); private: void CreateGui(); diff --git a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp index a258a2178a..8505a559d6 100644 --- a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp +++ b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.cpp @@ -705,7 +705,7 @@ ReselectMachineDialog::ReselectMachineDialog(wxWindow* parent) Centre(); } -void ReselectMachineDialog::Update(MachineObject* obj, const std::map<int, int>& best_pos_map, const std::vector<FilamentInfo>& ams_mapping, wxString save_time) +void ReselectMachineDialog::UpdateInfo(MachineObject* obj, const std::map<int, int>& best_pos_map, const std::vector<FilamentInfo>& ams_mapping, wxString save_time) { if (suggestText) diff --git a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp index be8f957c94..265666bb12 100644 --- a/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp +++ b/src/slic3r/GUI/DeviceTab/uiAMSBestPositionPopup.hpp @@ -188,7 +188,7 @@ class ReselectMachineDialog : public wxDialog public: ReselectMachineDialog(wxWindow* parent); ~ReselectMachineDialog(); - void Update(MachineObject* obj, + void UpdateInfo(MachineObject* obj, const std::map<int, int>& best_pos_map, const std::vector<FilamentInfo>& ams_mapping, wxString save_time); diff --git a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp index 259506612d..e33987af33 100644 --- a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp +++ b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp @@ -98,7 +98,7 @@ void uiAmsPercentHumidityDryPopup::Create() Refresh(); } -void uiAmsPercentHumidityDryPopup::Update(int humidiy_level, int humidity_percent, int left_dry_time, float current_temperature) +void uiAmsPercentHumidityDryPopup::UpdateInfo(int humidiy_level, int humidity_percent, int left_dry_time, float current_temperature) { if (m_humidity_level != humidiy_level || m_humidity_percent != humidity_percent || m_left_dry_time != left_dry_time || m_current_temperature != current_temperature) diff --git a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h index a109381c86..867e6ac118 100644 --- a/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h +++ b/src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h @@ -38,14 +38,14 @@ public: ~uiAmsPercentHumidityDryPopup() = default; public: - void Update(uiAmsHumidityInfo *info) { m_ams_id = info->ams_id; Update(info->humidity_display_idx, info->humidity_percent, info->left_dry_time, info->current_temperature); }; + void UpdateInfo(uiAmsHumidityInfo *info) { m_ams_id = info->ams_id; UpdateInfo(info->humidity_display_idx, info->humidity_percent, info->left_dry_time, info->current_temperature); }; std::string get_owner_ams_id() const { return m_ams_id; } void msw_rescale(); private: - void Update(int humidiy_level, int humidity_percent, int left_dry_time, float current_temperature); + void UpdateInfo(int humidiy_level, int humidity_percent, int left_dry_time, float current_temperature); void UpdateContents(); void Create(); diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.cpp b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.cpp index 1e40a71150..44394866c8 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.cpp +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.cpp @@ -399,7 +399,7 @@ void wgtDeviceNozzleRackArea::UpdateNozzleItems(const std::unordered_map<int, wg { for (auto iter : nozzle_items) { - iter.second->Update(nozzle_rack); + iter.second->UpdateInfo(nozzle_rack); } /*update nozzle possition and background*/ @@ -837,7 +837,7 @@ void wgtDeviceNozzleRackNozzleItem::SetSelected(bool selected) } } -void wgtDeviceNozzleRackNozzleItem::Update(const std::shared_ptr<DevNozzleRack> rack, bool on_rack /*= true*/) +void wgtDeviceNozzleRackNozzleItem::UpdateInfo(const std::shared_ptr<DevNozzleRack> rack, bool on_rack /*= true*/) { m_rack = rack; diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h index 385fa6be48..16cd311120 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h @@ -200,7 +200,7 @@ public: wgtDeviceNozzleRackNozzleItem(wxWindow* parent, int nozzle_id); public: - void Update(const std::shared_ptr<DevNozzleRack> rack, bool on_rack = true); // on_rack is false means extruder nozzle + void UpdateInfo(const std::shared_ptr<DevNozzleRack> rack, bool on_rack = true); // on_rack is false means extruder nozzle int GetNozzleId() const { return m_nozzle_id; } void SetDisplayIdText(const wxString& text) { m_nozzle_label_id->SetLabel(text);}; diff --git a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp index 4dc072d721..f351e7af2b 100644 --- a/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp +++ b/src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp @@ -114,7 +114,7 @@ static void s_update_nozzle_info(wgtDeviceNozzleRackNozzleItem* item, std::shared_ptr<DevNozzleRack> rack, const DevNozzle& nozzle_info) { - item->Update(rack, nozzle_info.IsOnRack()); + item->UpdateInfo(rack, nozzle_info.IsOnRack()); if (nozzle_info.IsUnknown()) { if (item->GetToolTipText() != _L("Nozzle information needs to be read")) { item->SetToolTip(_L("Nozzle information needs to be read")); diff --git a/src/slic3r/GUI/FilamentMapPanel.cpp b/src/slic3r/GUI/FilamentMapPanel.cpp index ed63016438..81117bc2a6 100644 --- a/src/slic3r/GUI/FilamentMapPanel.cpp +++ b/src/slic3r/GUI/FilamentMapPanel.cpp @@ -642,19 +642,12 @@ void FilamentMapBtnPanel::Select(bool selected) Refresh(); } -void GUI::FilamentMapBtnPanel::Hide() +bool GUI::FilamentMapBtnPanel::Show(bool show) { - m_btn->Hide(); - m_label->Hide(); - m_detail->Hide(); - wxPanel::Hide(); -} -void GUI::FilamentMapBtnPanel::Show() -{ - m_btn->Show(); - m_label->Show(); - m_detail->Show(); - wxPanel::Show(); + m_btn->Show(show); + m_label->Show(show); + m_detail->Show(show); + return wxPanel::Show(show); } FilamentMapAutoPanel::FilamentMapAutoPanel(wxWindow *parent, FilamentMapMode mode, bool machine_synced) : wxPanel(parent) @@ -694,18 +687,11 @@ FilamentMapAutoPanel::FilamentMapAutoPanel(wxWindow *parent, FilamentMapMode mod Layout(); GUI::wxGetApp().UpdateDarkUIWin(this); } -void FilamentMapAutoPanel::Hide() +bool FilamentMapAutoPanel::Show(bool show) { - m_flush_panel->Hide(); - m_match_panel->Hide(); - wxPanel::Hide(); -} - -void FilamentMapAutoPanel::Show() -{ - m_flush_panel->Show(); - m_match_panel->Show(); - wxPanel::Show(); + m_flush_panel->Show(show); + m_match_panel->Show(show); + return wxPanel::Show(show); } void FilamentMapAutoPanel::UpdateStatus() @@ -743,16 +729,10 @@ FilamentMapDefaultPanel::FilamentMapDefaultPanel(wxWindow *parent) : wxPanel(par GUI::wxGetApp().UpdateDarkUIWin(this); } -void FilamentMapDefaultPanel::Hide() +bool FilamentMapDefaultPanel::Show(bool show) { - m_label->Hide(); - wxPanel::Hide(); -} - -void FilamentMapDefaultPanel::Show() -{ - m_label->Show(); - wxPanel::Show(); + m_label->Show(show); + return wxPanel::Show(show); } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/FilamentMapPanel.hpp b/src/slic3r/GUI/FilamentMapPanel.hpp index a0caf8e78b..ce7c8010a3 100644 --- a/src/slic3r/GUI/FilamentMapPanel.hpp +++ b/src/slic3r/GUI/FilamentMapPanel.hpp @@ -69,10 +69,9 @@ class FilamentMapBtnPanel : public wxPanel { public: FilamentMapBtnPanel(wxWindow *parent, const wxString &label, const wxString &detail, const std::string &icon_path); - void Hide(); - void Show(); + bool Show(bool show = true) override; void Select(bool selected); - bool Enable(bool enable); + bool Enable(bool enable) override; bool IsEnabled() const { return m_enabled; } protected: void OnPaint(wxPaintEvent &event); @@ -99,8 +98,7 @@ class FilamentMapAutoPanel : public wxPanel { public: FilamentMapAutoPanel(wxWindow *parent, FilamentMapMode mode, bool machine_synced); - void Hide(); - void Show(); + bool Show(bool show = true) override; FilamentMapMode GetMode() const { return m_mode; } private: @@ -116,8 +114,7 @@ class FilamentMapDefaultPanel : public wxPanel { public: FilamentMapDefaultPanel(wxWindow *parent); - void Hide(); - void Show(); + bool Show(bool show = true) override; private: Label *m_label; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 199de9236e..ddd352a582 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2176,7 +2176,7 @@ void SelectMachineDialog::on_reselect_dialog_btn_clicked(wxMouseEvent&) best_pos_map[slot.id] = pos.value(); } } - m_best_pos_dialog->Update(obj, best_pos_map, m_ams_mapping_result, text); + m_best_pos_dialog->UpdateInfo(obj, best_pos_map, m_ams_mapping_result, text); m_best_pos_dialog->ShowModal(); } @@ -2201,7 +2201,7 @@ void SelectMachineDialog::update_best_pos_dialog(wxCommandEvent& evt) best_pos_map[slot.id] = pos.value(); } } - m_best_pos_dialog->Update(obj_, best_pos_map, m_ams_mapping_result, text); + m_best_pos_dialog->UpdateInfo(obj_, best_pos_map, m_ams_mapping_result, text); } void SelectMachineDialog::show_status(PrintDialogStatus status, std::vector<wxString> params, wxString wiki_url) diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index a63d96ffce..c4db0423ab 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -1391,7 +1391,7 @@ void SendToPrinterDialog::show_status(PrintDialogStatus status, std::vector<wxSt update_print_status_msg(wxEmptyString, true, true); m_connecting_panel->Show(); m_animaicon->Stop(); - m_animaicon->Enable(); + m_animaicon->ShowEnabledIcon(); Layout(); Enable_Send_Button(false); diff --git a/src/slic3r/GUI/SlicingProgressNotification.cpp b/src/slic3r/GUI/SlicingProgressNotification.cpp index 6d7c6d7ecd..539da41024 100644 --- a/src/slic3r/GUI/SlicingProgressNotification.cpp +++ b/src/slic3r/GUI/SlicingProgressNotification.cpp @@ -259,8 +259,8 @@ void NotificationManager::SlicingProgressNotification::render(GLCanvas3D& canvas // ImVec2 view_dailytips_text_pos = m_window_pos + ImVec2(text_left_margin_x, m_window_height / 2.0f + m_line_height * 0.2f); // bbl_render_left_sign(imgui, m_window_width, m_window_height, m_window_pos.x + m_window_width, m_window_pos.y); - // render_text(text_pos); - // render_close_button(button_pos, button_size); + // render_progress_text(text_pos); + // render_progress_close_button(button_pos, button_size); // render_show_dailytips(view_dailytips_text_pos); //} @@ -278,8 +278,8 @@ void NotificationManager::SlicingProgressNotification::render(GLCanvas3D& canvas ImVec2 button_pos = child_window_pos + ImVec2(progress_panel_width - button_size.x, progress_panel_height - text_bottom - button_size.y / 2.0f); ImVec2 text_pos = ImVec2(progress_bar_pos.x, progress_bar_pos.y - m_line_height * (1.2f + m_lines_count - 1)); - render_text(text_pos); - render_close_button(button_pos, button_size); + render_progress_text(text_pos); + render_progress_close_button(button_pos, button_size); if (m_sp_state == SlicingProgressState::SP_PROGRESS) { render_bar(progress_bar_pos, progress_bar_size); render_cancel_button(button_pos, button_size); @@ -319,7 +319,7 @@ void NotificationManager::SlicingProgressNotification::render(GLCanvas3D& canvas ImGui::PopStyleColor(3); } -void Slic3r::GUI::NotificationManager::SlicingProgressNotification::render_text(const ImVec2& pos) +void Slic3r::GUI::NotificationManager::SlicingProgressNotification::render_progress_text(const ImVec2& pos) { ImGuiWrapper& imgui = *wxGetApp().imgui(); float scale = imgui.get_font_size() / 15.0f; @@ -462,7 +462,7 @@ void Slic3r::GUI::NotificationManager::SlicingProgressNotification::render_cance } } -void NotificationManager::SlicingProgressNotification::render_close_button(const ImVec2& pos, const ImVec2& size) +void NotificationManager::SlicingProgressNotification::render_progress_close_button(const ImVec2& pos, const ImVec2& size) { if (m_sp_state == SlicingProgressState::SP_CANCELLED || m_sp_state == SlicingProgressState::SP_COMPLETED) { ImGuiWrapper& imgui = *wxGetApp().imgui(); diff --git a/src/slic3r/GUI/SlicingProgressNotification.hpp b/src/slic3r/GUI/SlicingProgressNotification.hpp index 44f2bbd32b..6a7ede1e2e 100644 --- a/src/slic3r/GUI/SlicingProgressNotification.hpp +++ b/src/slic3r/GUI/SlicingProgressNotification.hpp @@ -53,10 +53,10 @@ protected: void init() override; void render(GLCanvas3D& canvas, float initial_y, bool move_from_overlay, float overlay_width, float right_margin) override; /* PARAMS: pos is relative to screen */ - void render_text(const ImVec2& pos); + void render_progress_text(const ImVec2& pos); void render_bar(const ImVec2& pos, const ImVec2& size); void render_cancel_button(const ImVec2& pos, const ImVec2& size); - void render_close_button(const ImVec2& pos, const ImVec2& size); + void render_progress_close_button(const ImVec2& pos, const ImVec2& size); void render_dailytips_panel(const ImVec2& pos, const ImVec2& size); void render_show_dailytips(const ImVec2& pos); diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 41f14b6a11..7ba24fd991 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -278,7 +278,7 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons m_ams_dry_ctr_win->Move(popup_pos); m_ams_dry_ctr_win->ShowModal(); } else { - m_percent_humidity_dry_popup->Update(info); + m_percent_humidity_dry_popup->UpdateInfo(info); wxPoint img_pos = ClientToScreen(wxPoint(0, 0)); wxPoint popup_pos(img_pos.x - m_percent_humidity_dry_popup->GetSize().GetWidth() + FromDIP(150), img_pos.y - FromDIP(80)); @@ -1034,7 +1034,7 @@ void AMSControl::UpdateAms(const std::string &series_name, humidity_info.humidity_percent = the_info.humidity_raw; humidity_info.left_dry_time = the_info.left_dray_time; humidity_info.current_temperature = the_info.current_temperature; - m_percent_humidity_dry_popup->Update(&humidity_info); + m_percent_humidity_dry_popup->UpdateInfo(&humidity_info); break; } } diff --git a/src/slic3r/GUI/Widgets/AnimaController.cpp b/src/slic3r/GUI/Widgets/AnimaController.cpp index acf78c01f5..d5f665cde1 100644 --- a/src/slic3r/GUI/Widgets/AnimaController.cpp +++ b/src/slic3r/GUI/Widgets/AnimaController.cpp @@ -78,7 +78,7 @@ void AnimaIcon::Stop() m_timer->Stop(); } -void AnimaIcon::Enable() +void AnimaIcon::ShowEnabledIcon() { if (m_bitmap) { m_bitmap->SetBitmap(m_image_enable); } } diff --git a/src/slic3r/GUI/Widgets/AnimaController.hpp b/src/slic3r/GUI/Widgets/AnimaController.hpp index e2f67ff8a6..daf8f95314 100644 --- a/src/slic3r/GUI/Widgets/AnimaController.hpp +++ b/src/slic3r/GUI/Widgets/AnimaController.hpp @@ -13,7 +13,7 @@ public: void Play(); void Stop(); - void Enable(); + void ShowEnabledIcon(); bool IsPlaying() const { return IsRunning(); }; bool IsRunning() const; diff --git a/src/slic3r/GUI/Widgets/ErrorMsgStaticText.hpp b/src/slic3r/GUI/Widgets/ErrorMsgStaticText.hpp index 735a118a20..63968a57c5 100644 --- a/src/slic3r/GUI/Widgets/ErrorMsgStaticText.hpp +++ b/src/slic3r/GUI/Widgets/ErrorMsgStaticText.hpp @@ -17,7 +17,7 @@ public: void paintEvent(wxPaintEvent &evt); - void SetLabel(wxString msg){m_msg = msg;}; + void SetLabel(const wxString &msg) override { m_msg = msg; } }; #endif diff --git a/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp b/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp index 518bda1d19..20944df553 100644 --- a/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp +++ b/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp @@ -600,7 +600,7 @@ StaticBox* HotEndTable::CreateNozzleBox(const std::vector<int>& nozzle_indices) void HotEndTable::UpdateNozzleItems(const std::unordered_map<int, wgtDeviceNozzleRackNozzleItem*>& nozzle_items, std::shared_ptr<DevNozzleRack> nozzle_rack) { for (auto& item : nozzle_items) - item.second->Update(nozzle_rack); + item.second->UpdateInfo(nozzle_rack); } void HotEndTable::OnPaint(wxPaintEvent& evt) diff --git a/src/slic3r/GUI/Widgets/RadioBox.cpp b/src/slic3r/GUI/Widgets/RadioBox.cpp index 7f20b8724c..f00447e0ec 100644 --- a/src/slic3r/GUI/Widgets/RadioBox.cpp +++ b/src/slic3r/GUI/Widgets/RadioBox.cpp @@ -36,11 +36,6 @@ void RadioBox::SetValue(bool value) update(); } -bool RadioBox::GetValue() -{ - return wxBitmapToggleButton::GetValue(); -} - void RadioBox::Rescale() { diff --git a/src/slic3r/GUI/Widgets/RadioBox.hpp b/src/slic3r/GUI/Widgets/RadioBox.hpp index b2c03aae15..a34bd594dd 100644 --- a/src/slic3r/GUI/Widgets/RadioBox.hpp +++ b/src/slic3r/GUI/Widgets/RadioBox.hpp @@ -15,14 +15,10 @@ public: public: void SetValue(bool value) override; - bool GetValue(); void Rescale(); bool Disable() { return wxBitmapToggleButton::Disable(); } - bool Enable() { - return wxBitmapToggleButton::Enable(); - } private: void update(); From 85dc86642588eb5c872ad6e0278b16ad70027fef Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Sun, 6 Sep 2026 11:36:23 -0300 Subject: [PATCH 147/164] Spiral Inset infill (spiral-concentric infill) (#15085) Co-authored-by: Ian Bassi <ian.bassi@outlook.com> --- resources/images/param_spiralinset.svg | 1 + src/libslic3r/CMakeLists.txt | 2 + src/libslic3r/Fill/Fill.cpp | 6 +- src/libslic3r/Fill/FillBase.cpp | 2 + src/libslic3r/Fill/FillSpiralInset.cpp | 426 ++++++++++++++++++ src/libslic3r/Fill/FillSpiralInset.hpp | 37 ++ src/libslic3r/Layer.cpp | 1 + src/libslic3r/PrintConfig.cpp | 10 +- src/libslic3r/PrintConfig.hpp | 4 +- src/libslic3r/Support/SupportParameters.hpp | 2 + src/slic3r/GUI/ConfigManipulation.cpp | 13 +- tests/fff_print/test_fill.cpp | 207 +++++++++ .../test_config_variant_expansion.cpp | 6 + 13 files changed, 708 insertions(+), 9 deletions(-) create mode 100644 resources/images/param_spiralinset.svg create mode 100644 src/libslic3r/Fill/FillSpiralInset.cpp create mode 100644 src/libslic3r/Fill/FillSpiralInset.hpp diff --git a/resources/images/param_spiralinset.svg b/resources/images/param_spiralinset.svg new file mode 100644 index 0000000000..6ec1ab36aa --- /dev/null +++ b/resources/images/param_spiralinset.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12.00,12.00 L12.00,11.96 L12.01,11.92 L12.03,11.89 L12.05,11.85 L12.08,11.82 L12.12,11.80 L12.16,11.78 L12.20,11.76 L12.25,11.75 L12.30,11.75 L12.35,11.75 L12.40,11.77 L12.46,11.79 L12.51,11.81 L12.56,11.85 L12.61,11.89 L12.66,11.94 L12.70,12.00 L12.74,12.06 L12.77,12.14 L12.79,12.21 L12.80,12.29 L12.81,12.38 L12.81,12.47 L12.80,12.56 L12.77,12.65 L12.74,12.74 L12.70,12.83 L12.65,12.92 L12.58,13.01 L12.51,13.09 L12.43,13.17 L12.33,13.24 L12.23,13.30 L12.12,13.36 L12.00,13.40 L11.87,13.43 L11.74,13.46 L11.61,13.46 L11.47,13.46 L11.33,13.45 L11.18,13.41 L11.04,13.37 L10.90,13.31 L10.76,13.24 L10.63,13.15 L10.50,13.05 L10.38,12.93 L10.27,12.81 L10.17,12.67 L10.08,12.51 L10.01,12.35 L9.95,12.18 L9.90,12.00 L9.87,11.81 L9.86,11.62 L9.86,11.43 L9.88,11.23 L9.92,11.03 L9.98,10.83 L10.06,10.64 L10.15,10.45 L10.27,10.27 L10.40,10.09 L10.55,9.93 L10.72,9.78 L10.90,9.64 L11.10,9.52 L11.31,9.41 L11.53,9.32 L11.76,9.25 L12.00,9.20 L12.25,9.17 L12.50,9.17 L12.75,9.18 L13.01,9.22 L13.27,9.29 L13.52,9.37 L13.76,9.48 L14.00,9.62 L14.23,9.77 L14.44,9.95 L14.64,10.15 L14.83,10.37 L15.00,10.60 L15.14,10.86 L15.27,11.12 L15.37,11.41 L15.45,11.70 L15.50,12.00 L15.53,12.31 L15.52,12.62 L15.49,12.94 L15.44,13.25 L15.35,13.56 L15.23,13.87 L15.09,14.16 L14.92,14.45 L14.72,14.72 L14.50,14.98 L14.25,15.22 L13.98,15.44 L13.69,15.63 L13.38,15.80 L13.06,15.94 L12.72,16.06 L12.36,16.15 L12.00,16.20 L11.63,16.22 L11.26,16.21 L10.88,16.17 L10.51,16.09 L10.14,15.98 L9.78,15.84 L9.43,15.66 L9.10,15.46 L8.78,15.22 L8.48,14.95 L8.21,14.65 L7.96,14.33 L7.74,13.99 L7.54,13.62 L7.38,13.24 L7.25,12.84 L7.16,12.42 L7.10,12.00 L7.08,11.57 L7.10,11.14 L7.15,10.70 L7.25,10.27 L7.38,9.85 L7.55,9.43 L7.76,9.03 L8.01,8.65 L8.29,8.29 L8.60,7.95 L8.94,7.64 L9.32,7.35 L9.72,7.10 L10.14,6.88 L10.58,6.70 L11.04,6.56 L11.52,6.46 L12.00,6.40 L12.49,6.38 L12.99,6.41 L13.48,6.48 L13.97,6.59 L14.45,6.75 L14.92,6.95 L15.37,7.19 L15.80,7.47 L16.21,7.79 L16.59,8.15 L16.94,8.54 L17.25,8.97 L17.53,9.42 L17.77,9.90 L17.97,10.40 L18.13,10.92 L18.24,11.45 L18.30,12.00 L18.31,12.55 L18.28,13.11 L18.20,13.66 L18.07,14.21 L17.89,14.74 L17.66,15.27 L17.38,15.77 L17.06,16.25 L16.70,16.70 L16.30,17.12 L15.86,17.51 L15.38,17.86 L14.88,18.17 L14.34,18.43 L13.78,18.65 L13.20,18.82 L12.61,18.93 L12.00,19.00 L11.39,19.01 L10.77,18.97 L10.16,18.87 L9.55,18.72 L8.96,18.52 L8.38,18.26 L7.83,17.96 L7.30,17.60 L6.80,17.20 L6.34,16.75 L5.92,16.26 L5.53,15.73 L5.20,15.17 L4.91,14.58 L4.68,13.96 L4.49,13.32 L4.37,12.67 L4.30,12.00 L4.29,11.33 L4.34,10.65 L4.45,9.98 L4.62,9.31 L4.85,8.66 L5.13,8.03 L5.47,7.43 L5.86,6.85 L6.31,6.31 L6.80,5.80 L7.34,5.34 L7.92,4.93 L8.53,4.56 L9.18,4.25 L9.86,4.00 L10.55,3.80 L11.27,3.67 L12.00,3.60" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><rect x="1.5" y="1.5" width="21" height="21" rx="2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/></svg> \ No newline at end of file diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index 2880a3cc6b..c33b7be429 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -147,6 +147,8 @@ set(lisbslic3r_sources Fill/FillBase.hpp Fill/FillConcentric.cpp Fill/FillConcentric.hpp + Fill/FillSpiralInset.cpp + Fill/FillSpiralInset.hpp Fill/FillConcentricInternal.cpp Fill/FillConcentricInternal.hpp Fill/FillCornerSmoothing.cpp diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 0888e1bb55..dc772580ca 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -950,7 +950,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer, LockRegionParam &lock_p params.extruder = region_config.internal_solid_filament_id; // Orca: forced fill order applies only to top/bottom surfaces filled with a // center-based pattern; everything else stays at Default to keep batching together. - if (params.pattern == ipConcentric || params.pattern == ipArchimedeanChords || params.pattern == ipOctagramSpiral) { + if (params.pattern == ipConcentric || params.pattern == ipSpiralInset || params.pattern == ipArchimedeanChords || params.pattern == ipOctagramSpiral) { if (params.extrusion_role == erTopSolidInfill) params.fill_order = region_config.top_surface_fill_order.value; else if (params.extrusion_role == erBottomSurface) @@ -1332,7 +1332,8 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: params.anchor_length = surface_fill.params.anchor_length; params.anchor_length_max = surface_fill.params.anchor_length_max; params.resolution = resolution; - params.use_arachne = surface_fill.params.pattern == ipConcentric || surface_fill.params.pattern == ipConcentricInternal; + params.use_arachne = surface_fill.params.pattern == ipConcentric || surface_fill.params.pattern == ipSpiralInset || + surface_fill.params.pattern == ipConcentricInternal; params.layer_height = layerm->layer()->height; params.lateral_lattice_angle_1 = surface_fill.params.lateral_lattice_angle_1; params.lateral_lattice_angle_2 = surface_fill.params.lateral_lattice_angle_2; @@ -1515,6 +1516,7 @@ Polylines Layer::generate_sparse_infill_polylines_for_anchoring(FillAdaptive::Oc case ipCubic: case ipLine: case ipConcentric: + case ipSpiralInset: case ipHoneycomb: case ipLateralHoneycomb: case ip3DHoneycomb: diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 45157ec42d..2b307007b8 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -15,6 +15,7 @@ #include "FillBase.hpp" #include "FillConcentric.hpp" +#include "FillSpiralInset.hpp" #include "FillHoneycomb.hpp" #include "Fill3DHoneycomb.hpp" #include "FillGyroid.hpp" @@ -41,6 +42,7 @@ Fill* Fill::new_from_type(const InfillPattern type) { switch (type) { case ipConcentric: return new FillConcentric(); + case ipSpiralInset: return new FillSpiralInset(); case ipHoneycomb: return new FillHoneycomb(); case ipLateralHoneycomb: return new FillLateralHoneycomb(); case ip3DHoneycomb: return new Fill3DHoneycomb(); diff --git a/src/libslic3r/Fill/FillSpiralInset.cpp b/src/libslic3r/Fill/FillSpiralInset.cpp new file mode 100644 index 0000000000..e6323c2572 --- /dev/null +++ b/src/libslic3r/Fill/FillSpiralInset.cpp @@ -0,0 +1,426 @@ +#include "../ClipperUtils.hpp" +#include "../ExPolygon.hpp" +#include "../Surface.hpp" +#include "../VariableWidth.hpp" +#include "Arachne/WallToolPaths.hpp" + +#include "FillSpiralInset.hpp" + +#include <algorithm> +#include <cmath> +#include <functional> + +namespace Slic3r { + +// Index of the corner the spiral should start at. Every following loop is split at the point nearest +// the end of the one before it, so this choice propagates inwards and decides where the whole spiral +// hands over from ring to ring. A tight corner is the worst place for it: there the next ring +// retreats along the bisector by spacing/sin(angle), so the spiral has to strike out several spacings +// to reach it instead of stepping across to a ring running parallel one spacing away. +// +// A right angle is taken first when the loop has one. It clips cleanly, since the trimming below +// scales with 1/sin(angle) and so is at its shortest and least sensitive there, and it holds its +// shape as the loop is offset inwards, which keeps the handover in the same place ring after ring. +// Failing that the widest corner is the flattest stretch on offer, which is the next best handover. +// A straight point is no corner at all and only turns up as an artefact of the offsetting, so it is +// skipped. +static int find_spiral_start_corner(const Polygon& loop) +{ + const size_t n = loop.points.size(); + if (n < 3) + return 0; + + // cos(85 deg): a corner within five degrees of square counts as a right angle. + static const double right_angle_cos = 0.08716; + // cos(179 deg): anything flatter than this counts as a straight point rather than a corner. + static const double straight_cos = -0.99985; + + // Only convex corners qualify. A reflex corner spans the same angle between its two edges but + // bulges the other way, so the next ring in steps away from it along the bisector instead of + // hugging it, and starting there hands over across a long diagonal on every single ring. Loops + // arrive counter-clockwise, in which case a convex corner turns left, but check the winding + // rather than trust it. A closed loop always has at least one convex corner. + const double convex_turn = loop.is_counter_clockwise() ? 1.0 : -1.0; + + double best_right_cos = right_angle_cos; + int best_right = -1; + double best_wide_cos = 1.0; + int best_wide = -1; + for (size_t i = 0; i < n; ++i) { + const Point& p_prev = loop.points[(i - 1 + n) % n]; + const Point& p = loop.points[i]; + const Point& p_next = loop.points[(i + 1) % n]; + + Vec2d e_in = (p - p_prev).cast<double>(); + Vec2d e_out = (p_next - p).cast<double>(); + double len1 = e_in.norm(); + double len2 = e_out.norm(); + if (len1 < 1e-6 || len2 < 1e-6) + continue; + if (convex_turn * (e_in.x() * e_out.y() - e_in.y() * e_out.x()) <= 0.0) + continue; + + // Cosine of the angle the two edges span at the corner: 1 at a spike, 0 square, -1 straight. + double cos_val = -e_in.dot(e_out) / (len1 * len2); + if (std::abs(cos_val) < best_right_cos) { + best_right_cos = std::abs(cos_val); + best_right = int(i); + } + if (cos_val > straight_cos && cos_val < best_wide_cos) { + best_wide_cos = cos_val; + best_wide = int(i); + } + } + if (best_right >= 0) + return best_right; + // A loop smooth enough to have no corner at all, a circle say, hands over equally well anywhere. + return best_wide < 0 ? 0 : best_wide; +} + +// Length to trim off the end of a loop so that it does not overlap the start of the next one. +// The theoretical gap is distance/sin(alpha), alpha being the angle between the last segment of the +// loop and the first segment of the next one. +static double loop_clip_length(const Polyline& loop_path, const double gap) +{ + const Point& p_prev = loop_path.points[loop_path.points.size() - 2]; + const Point& p_last = loop_path.points.back(); + const Point& p_next = loop_path.points[1]; + Vec2d v1 = (p_last - p_prev).cast<double>(); + Vec2d v2 = (p_next - p_last).cast<double>(); + if (v1.norm() < 1e-6 || v2.norm() < 1e-6) + return gap; + + double alpha = std::atan2(std::abs(v1.x() * v2.y() - v1.y() * v2.x()), v1.dot(v2)); + // Outside 45deg < alpha < 120deg the 1/sin(alpha) term would clip far too much, so fall back to the plain gap. + return (alpha > M_PI / 4 && alpha < 2 * M_PI / 3) ? gap / std::sin(alpha) : gap; +} + +// The chaining below drives two kinds of loop: the plain offset polygons of the classic path, and +// Arachne's variable width walls. These are the only four steps that differ between them. Widths run +// two per segment, so every point added or removed takes a pair with it. +static Polyline open_loop(const Polygon& loop, int start_index) { return loop.split_at_index(start_index); } + +static ThickPolyline open_loop(const Arachne::ExtrusionLine& loop, int start_index) +{ + ThickPolyline path = Arachne::to_thick_polyline(loop); + // start_at_index() rotates a closed path, and wants it closed with a matching width at both ends. + if (path.points.front() != path.points.back()) { + const coordf_t w_first = path.width.front(), w_last = path.width.back(); + path.points.emplace_back(path.points.front()); + path.width.emplace_back(w_last); + path.width.emplace_back(w_first); + } + path.start_at_index(start_index); + return path; +} + +static void clip_path_end(Polyline& path, double distance) { path.clip_end(distance); } + +static void clip_path_end(ThickPolyline& path, double distance) +{ + // Polyline::clip_end() knows nothing about the widths, so walk back trimming the two together. + while (distance > 0 && path.points.size() >= 2) { + const Point last = path.points.back(); + const coordf_t w_end = path.width.back(); + path.points.pop_back(); + path.width.pop_back(); + const coordf_t w_start = path.width.back(); + path.width.pop_back(); + + const Vec2d v = (path.points.back() - last).cast<double>(); + const double len = v.norm(); + if (len > distance) { + const double t = distance / len; + path.points.emplace_back((last.cast<double>() + v * t).cast<coord_t>()); + path.width.emplace_back(w_start); + path.width.emplace_back(w_start + (w_end - w_start) * (1.0 - t)); + return; + } + distance -= len; + } + path.clear(); +} + +static void append_path(Polyline& dst, Polyline&& src) { dst.append(std::move(src)); } + +static void append_path(ThickPolyline& dst, ThickPolyline&& src) +{ + if (dst.empty()) { + dst = std::move(src); + return; + } + if (dst.points.back() == src.points.front()) { + // Carrying straight on from the same point, so there is no run across to give a width to. + src.points.erase(src.points.begin()); + src.width.erase(src.width.begin(), src.width.begin() + 2); + } else { + // The run across to the next loop tapers between the two ends it joins. + const coordf_t w_from = dst.width.back(), w_to = src.width.front(); + dst.width.emplace_back(w_from); + dst.width.emplace_back(w_to); + } + append(dst.points, std::move(src.points)); + append(dst.width, std::move(src.width)); +} + +// The classic loops all carry the same width, so the innermost one of an island can still ring an +// unfilled pin hole, which the spiral plugs by running into the middle. Arachne's walls widen to take +// up whatever is left over, so there is nothing there to plug and the stub would only double back +// over the wall that just filled it. +static bool leaves_a_centre_hole(const Polygon&) { return true; } +static bool leaves_a_centre_hole(const Arachne::ExtrusionLine&) { return false; } + +static void append_path_point(Polyline& path, const Point& point) { path.points.emplace_back(point); } + +static void append_path_point(ThickPolyline& path, const Point& point) +{ + const coordf_t w = path.width.back(); + path.points.emplace_back(point); + path.width.emplace_back(w); + path.width.emplace_back(w); +} + +// Chain the loops of one surface into as few continuous spirals as its shape allows. The loops arrive +// ordered outside in, depth first, each paired with its outline in loop_outlines; every decision here +// is made on those outlines, so the two kinds of loop take exactly the same route. +template<class LoopType, class PathType> +static std::vector<PathType> generate_spiral_insets(const FillParams& params, + const std::vector<const LoopType*>& loops, + const Polygons& loop_outlines, + const coord_t distance, + const ExPolygon& original_expoly) +{ + std::vector<PathType> output; + PathType spiral; + Point current_pos(0, 0); + // Index into loops of the innermost loop appended to the spiral currently being built. + int innermost_loop = -1; + + // Whether the spiral can run straight from one point to the other. The run across is extruded, + // not travelled, so it has to be a genuine step over to the ring alongside: + // - up to a ring spacing and a half it cannot leave the material, and needs no check at all, + // which covers all but a few of the loops; + // - beyond that it is tested against the surface, which catches the points that are close in a + // straight line but separated by a hole or a notch; + // - past four spacings it is refused outright. A handover does stretch at a corner, where the + // next ring retreats along the bisector by spacing/sin(angle), but four spacings is already a + // fifteen degree wedge, and down a wedge that tight the run across would trace the bisector, + // which is where the tail is filled from anyway. Anything longer is a traverse across the + // surface that prints over what it crosses. Breaking the spiral leaves the G-code to travel it. + const double free_hop = 1.5 * double(distance); + const double max_hop = 4.0 * double(distance); + auto reachable = [&](const Point& from, const Point& to) { + const double hop = from.distance_to(to); + if (hop > max_hop) + return false; + return hop <= free_hop || original_expoly.contains(Line(from, to)); + }; + + // The centre point plugs the pin hole left in the middle of an island, it is not meant to + // traverse it, so it is only worth adding when the innermost loop has shrunk to about a ring. + const double max_center_stub = 2.0 * double(distance); + + // Emit the spiral built so far as one path and start over on a fresh island. + auto flush_spiral = [&]() { + if (spiral.empty()) + return; + // Run into the middle of the innermost loop so the island's centre is filled instead of being + // left as a pin hole. Only where there is a hole to fill: the loop has to still enclose open + // space once its own bead is accounted for, or the stub just runs back over that bead. And + // the point has to sit inside the loop and be reachable, or it runs off across the surface. + if (innermost_loop >= 0 && leaves_a_centre_hole(*loops[innermost_loop])) { + const Polygon& innermost = loop_outlines[innermost_loop]; + const Point centroid = innermost.centroid(); + if (!offset(innermost, -float(0.5 * double(distance))).empty() && centroid != spiral.last_point() && + spiral.last_point().distance_to(centroid) <= max_center_stub && innermost.contains(centroid) && + reachable(spiral.last_point(), centroid)) + append_path_point(spiral, centroid); + } + output.emplace_back(std::move(spiral)); + spiral.clear(); + innermost_loop = -1; + current_pos = Point(0, 0); + }; + + for (size_t i = 0; i < loops.size(); ++i) { + const Polygon& outline = loop_outlines[i]; + if (outline.points.empty()) + continue; + + // The loop is opened into a path with the split point repeated at both ends, so a usable one + // has at least 3 points. Both kinds of loop share the outline's indices, hence its start point. + PathType loop_path = open_loop(*loops[i], spiral.empty() ? find_spiral_start_corner(outline) : + current_pos.nearest_point_index(outline.points)); + if (loop_path.size() < 3) + continue; + + // Island jumping: the loops are ordered by their nesting, depth first, so the next one + // continues the current spiral exactly when it lies inside the one just laid down. Distance + // cannot stand in for that test: at a sharp corner the next ring retreats along the bisector + // by spacing/sin(angle), which leaves it several spacings away while still being the very + // next ring in, and the spiral would break off at every spike. + const bool same_island = innermost_loop >= 0 && loop_outlines[innermost_loop].contains(loop_path.points.front()); + if (!spiral.empty() && (!same_island || !reachable(spiral.last_point(), loop_path.points.front()))) { + flush_spiral(); + loop_path = open_loop(*loops[i], find_spiral_start_corner(outline)); + if (loop_path.size() < 3) + continue; + } + + // Clip the end of the loop to leave room for the run into the next one. The last loop of the + // surface has no successor, so it only gives up half of the gap. + clip_path_end(loop_path, loop_clip_length(loop_path, (i + 1 == loops.size() ? 0.5 : 1.0) * double(distance))); + // Clipping empties the path when the loop is shorter than the clipping length, which happens + // on the degenerate slivers that offsetting leaves behind. Such a loop carries no extrusion. + if (loop_path.size() < 2) + continue; + + append_path(spiral, std::move(loop_path)); + innermost_loop = int(i); + current_pos = spiral.last_point(); + } + + flush_spiral(); + + // An outward fill order runs every spiral from its centre to its outer edge, innermost island first. + if (params.fill_order != SurfaceFillOrder::Inward) { + for (PathType& path : output) + path.reverse(); + std::reverse(output.begin(), output.end()); + } + + return output; +} + +void FillSpiralInset::_fill_surface_single(const FillParams& params, + unsigned int thickness_layers, + const std::pair<float, Point>& direction, + ExPolygon expolygon, + Polylines& polylines_out) +{ + BoundingBox bounding_box = expolygon.contour.bounding_box(); + + coord_t min_spacing = scale_(this->spacing); + coord_t distance = coord_t(min_spacing / params.density); + + if (params.density > 0.9999f && !params.dont_adjust) { + distance = this->_adjust_solid_spacing(bounding_box.size()(0), distance); + this->spacing = unscale<double>(distance); + } + + Polygons loops = to_polygons(expolygon); + + ExPolygons last{std::move(expolygon)}; + while (!last.empty()) { + last = offset2_ex(last, -(distance + min_spacing / 2), +min_spacing / 2); + append(loops, to_polygons(last)); + } + + // Orders the loops outside in, depth first, which is the order the chaining below expects. + loops = union_pt_chained_outside_in(loops); + + std::vector<const Polygon*> loop_refs; + loop_refs.reserve(loops.size()); + for (const Polygon& loop : loops) + loop_refs.emplace_back(&loop); + + Polylines spiral_result = generate_spiral_insets<Polygon, Polyline>(params, loop_refs, loops, distance, expolygon); + + append(polylines_out, spiral_result); +} + +void FillSpiralInset::_fill_surface_single(const FillParams& params, + unsigned int thickness_layers, + const std::pair<float, Point>& direction, + ExPolygon expolygon, + ThickPolylines& thick_polylines_out) +{ + assert(params.use_arachne); + assert(this->print_config != nullptr && this->print_object_config != nullptr); + + // Only a solid surface is worth the variable width walls; a sparse one falls back to plain loops. + if (params.density <= 0.9999f || params.dont_adjust) { + Polylines polylines; + this->_fill_surface_single(params, thickness_layers, direction, expolygon, polylines); + append(thick_polylines_out, to_thick_polylines(std::move(polylines), scaled<coord_t>(this->spacing))); + return; + } + + // no rotation is supported for this infill pattern + Point bbox_size = expolygon.contour.bounding_box().size(); + coord_t min_spacing = scaled<coord_t>(this->spacing); + + coord_t loops_count = std::max(bbox_size.x(), bbox_size.y()) / min_spacing + 1; + Polygons polygons = offset(expolygon, float(min_spacing) / 2.f); + + double min_nozzle_diameter = *std::min_element(print_config->nozzle_diameter.values.begin(), print_config->nozzle_diameter.values.end()); + Arachne::WallToolPathsParams input_params; + input_params.min_bead_width = 0.85 * min_nozzle_diameter; + input_params.min_feature_size = 0.25 * min_nozzle_diameter; + input_params.wall_transition_length = 1.0 * min_nozzle_diameter; + input_params.wall_transition_angle = 10; + input_params.wall_transition_filter_deviation = 0.25 * min_nozzle_diameter; + input_params.wall_distribution_count = 1; + + Arachne::WallToolPaths wallToolPaths(polygons, min_spacing, min_spacing, loops_count, 0, params.layer_height, input_params); + std::vector<Arachne::VariableWidthLines> walls_by_inset = wallToolPaths.getToolPaths(); + + // Open walls are the thin features Arachne fits between the closed ones. They cannot join a + // spiral, so they go out as they are; leaving them behind is what would put the gaps back. + std::vector<const Arachne::ExtrusionLine*> walls; + Polygons wall_outlines; + ThickPolylines open_walls; + for (const Arachne::VariableWidthLines& inset : walls_by_inset) + for (const Arachne::ExtrusionLine& wall : inset) { + if (wall.empty()) + continue; + if (wall.is_closed) { + walls.emplace_back(&wall); + wall_outlines.emplace_back(wall.toPolygon()); + } else { + open_walls.emplace_back(Arachne::to_thick_polyline(wall)); + } + } + + // Arachne hands the walls back grouped by inset, which is not their nesting: around a hole the + // wall of a given inset lies inside the wall of that same inset around the contour. Nest them by + // containment instead, so the spiral follows one island all the way in before starting the next, + // the same order union_pt_chained_outside_in gives the classic path above. + const size_t wall_count = walls.size(); + std::vector<int> nesting_depth(wall_count, 0), parent(wall_count, -1); + std::vector<char> inside(wall_count * wall_count, 0); + for (size_t i = 0; i < wall_count; ++i) + for (size_t j = 0; j < wall_count; ++j) + if (i != j && wall_outlines[j].contains(walls[i]->junctions.front().p)) { + inside[i * wall_count + j] = 1; + ++nesting_depth[i]; + } + // The innermost of the walls containing this one, which is the deepest of them, is its parent. + for (size_t i = 0; i < wall_count; ++i) + for (size_t j = 0; j < wall_count; ++j) + if (inside[i * wall_count + j] && (parent[i] < 0 || nesting_depth[parent[i]] < nesting_depth[j])) + parent[i] = int(j); + + std::vector<const Arachne::ExtrusionLine*> ordered; + Polygons outlines; + ordered.reserve(wall_count); + outlines.reserve(wall_count); + std::function<void(int)> descend = [&](int idx) { + ordered.emplace_back(walls[idx]); + outlines.emplace_back(wall_outlines[idx]); + for (size_t k = 0; k < wall_count; ++k) + if (parent[k] == idx) + descend(int(k)); + }; + for (size_t i = 0; i < wall_count; ++i) + if (parent[i] < 0) + descend(int(i)); + + ThickPolylines spiral_result = + generate_spiral_insets<Arachne::ExtrusionLine, ThickPolyline>(params, ordered, outlines, min_spacing, expolygon); + + append(thick_polylines_out, std::move(spiral_result)); + append(thick_polylines_out, std::move(open_walls)); +} + +} // namespace Slic3r diff --git a/src/libslic3r/Fill/FillSpiralInset.hpp b/src/libslic3r/Fill/FillSpiralInset.hpp new file mode 100644 index 0000000000..eb799ec2f3 --- /dev/null +++ b/src/libslic3r/Fill/FillSpiralInset.hpp @@ -0,0 +1,37 @@ +#ifndef slic3r_FillSpiralInset_hpp_ +#define slic3r_FillSpiralInset_hpp_ + +#include "FillBase.hpp" + +namespace Slic3r { + +class FillSpiralInset : public Fill +{ +public: + ~FillSpiralInset() override = default; + bool is_self_crossing() override { return false; } + +protected: + Fill* clone() const override { return new FillSpiralInset(*this); }; + void _fill_surface_single( + const FillParams ¶ms, + unsigned int thickness_layers, + const std::pair<float, Point> &direction, + ExPolygon expolygon, + Polylines &polylines_out) override; + + // Orca: solid surfaces are filled with Arachne's variable width walls, which widen to take up + // whatever the fixed width loops above would have left over as gaps. + void _fill_surface_single( + const FillParams ¶ms, + unsigned int thickness_layers, + const std::pair<float, Point> &direction, + ExPolygon expolygon, + ThickPolylines &thick_polylines_out) override; + + bool no_sort() const override { return true; } +}; + +} // namespace Slic3r + +#endif // slic3r_FillSpiralInset_hpp_ diff --git a/src/libslic3r/Layer.cpp b/src/libslic3r/Layer.cpp index 87ad11bcf8..1d6c2b0703 100644 --- a/src/libslic3r/Layer.cpp +++ b/src/libslic3r/Layer.cpp @@ -419,6 +419,7 @@ coordf_t Layer::get_sparse_infill_max_void_area() double spacing = flow.scaled_spacing() * (100 - density) / density; switch (pattern) { case ipConcentric: + case ipSpiralInset: case ipRectilinear: case ipLine: case ipGyroid: diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 100089fd24..1db476eede 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -275,6 +275,7 @@ static t_config_enum_values s_keys_map_InfillPattern { { "tpmsfk", ipTpmsFK }, { "gyroid", ipGyroid }, { "concentric", ipConcentric }, + { "spiralinset", ipSpiralInset }, { "hilbertcurve", ipHilbertCurve }, { "archimedeanchords", ipArchimedeanChords }, { "octagramspiral", ipOctagramSpiral } @@ -371,6 +372,7 @@ static t_config_enum_values s_keys_map_SupportMaterialInterfacePattern { { "auto", smipAuto }, { "rectilinear", smipRectilinear }, { "concentric", smipConcentric }, + { "spiralinset", smipSpiralInset }, { "rectilinear_interlaced", smipRectilinearInterlaced}, { "grid", smipGrid } }; @@ -2292,6 +2294,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("rectilinear"); def->enum_values.push_back("alignedrectilinear"); def->enum_values.push_back("concentric"); + def->enum_values.push_back("spiralinset"); def->enum_values.push_back("hilbertcurve"); def->enum_values.push_back("archimedeanchords"); def->enum_values.push_back("octagramspiral"); @@ -2300,6 +2303,7 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Aligned Rectilinear")); def->enum_labels.push_back(L("Concentric")); + def->enum_labels.push_back(L("Spiral Inset")); def->enum_labels.push_back(L("Hilbert Curve")); def->enum_labels.push_back(L("Archimedean Chords")); def->enum_labels.push_back(L("Octagram Spiral")); @@ -2382,7 +2386,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Top surface fill order"); def->category = L("Strength"); def->tooltip = L("Direction in which top surfaces are filled when using a center-based pattern " - "(Concentric, Archimedean Chords, Octagram Spiral).\n" + "(Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed " "towards the edge where it is least visible. Inward starts at the edge and ends " "with the tight curves at the center.\n" @@ -2401,7 +2405,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Bottom surface fill order"); def->category = L("Strength"); def->tooltip = L("Direction in which bottom surfaces are filled when using a center-based pattern " - "(Concentric, Archimedean Chords, Octagram Spiral).\n" + "(Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer " "adhesion on build plates where the tight curves at the center may not stick. " "Outward starts at the center, pushing any excess material towards the edge.\n" @@ -6963,11 +6967,13 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("auto"); def->enum_values.push_back("rectilinear"); def->enum_values.push_back("concentric"); + def->enum_values.push_back("spiralinset"); def->enum_values.push_back("rectilinear_interlaced"); def->enum_values.push_back("grid"); def->enum_labels.push_back(L("Default")); def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Concentric")); + def->enum_labels.push_back(L("Spiral Inset")); def->enum_labels.push_back(L("Rectilinear Interlaced")); def->enum_labels.push_back(L("Grid")); def->mode = comAdvanced; diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 330151c4d3..f7cbe8b2e5 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -113,7 +113,7 @@ enum InfillPattern : int { ipCubic, ipAdaptiveCubic, ipQuarterCubic, ipSupportCubic, ipLightning, ipHoneycomb, ip3DHoneycomb, ipLateralHoneycomb, ipLateralLattice, ipCrossHatch, ipTpmsD, ipTpmsFK, ipGyroid, - ipConcentric, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, + ipConcentric, ipSpiralInset, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, ipSupportBase, ipConcentricInternal, ipCount, }; @@ -271,7 +271,7 @@ enum LongRectrationLevel }; enum SupportMaterialInterfacePattern { - smipAuto, smipRectilinear, smipConcentric, smipRectilinearInterlaced, smipGrid + smipAuto, smipRectilinear, smipConcentric, smipSpiralInset, smipRectilinearInterlaced, smipGrid }; // BBS diff --git a/src/libslic3r/Support/SupportParameters.hpp b/src/libslic3r/Support/SupportParameters.hpp index dc0e94ed03..8d43edb444 100644 --- a/src/libslic3r/Support/SupportParameters.hpp +++ b/src/libslic3r/Support/SupportParameters.hpp @@ -141,6 +141,8 @@ struct SupportParameters { this->contact_fill_pattern = ipGrid; else if (object_config.support_interface_pattern == smipRectilinearInterlaced) this->contact_fill_pattern = ipRectilinear; + else if (object_config.support_interface_pattern == smipSpiralInset) + this->contact_fill_pattern = ipSpiralInset; else this->contact_fill_pattern = (object_config.support_interface_pattern == smipAuto && zero_gap_contact_interface) || diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 09b7fcfad4..8eab1c785c 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -741,14 +741,21 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in bool have_infill = config->option<ConfigOptionPercent>("sparse_infill_density")->value > 0; // sparse_infill_filament_id uses the same logic as in Print::extruders() for (auto el : { "sparse_infill_pattern", "infill_combination", "fill_multiline","infill_direction", - "minimum_sparse_infill_area", "sparse_infill_filament_id", "infill_anchor", "infill_anchor_max","infill_shift_step","sparse_infill_rotate_template","symmetric_infill_y_axis"}) + "minimum_sparse_infill_area", "sparse_infill_filament_id","infill_shift_step","sparse_infill_rotate_template","symmetric_infill_y_axis"}) toggle_line(el, have_infill); + InfillPattern pattern = config->opt_enum<InfillPattern>("sparse_infill_pattern"); + + // Orca: the concentric patterns follow the surface outline instead of crossing it, so there is + // nothing for an infill anchor to attach to. Hide the anchor settings for them. + bool have_infill_anchor = have_infill && pattern != ipConcentric && pattern != ipSpiralInset; + toggle_line("infill_anchor", have_infill_anchor); + toggle_line("infill_anchor_max", have_infill_anchor); + bool have_combined_infill = config->opt_bool("infill_combination") && have_infill; toggle_line("infill_combination_max_layer_height", have_combined_infill); // Infill patterns that support multiline infill. - InfillPattern pattern = config->opt_enum<InfillPattern>("sparse_infill_pattern"); bool have_multiline_infill_pattern = pattern == ipGyroid || pattern == ipGrid || pattern == ipRectilinear || pattern == ipTpmsD || pattern == ipTpmsFK || pattern == ipCrossHatch || pattern == ipHoneycomb || pattern == ipLateralLattice || pattern == ipLateralHoneycomb || pattern == ipConcentric || pattern == ipCubic || pattern == ipStars || pattern == ipAlignedRectilinear || pattern == ipLightning || pattern == ip3DHoneycomb || pattern == ipAdaptiveCubic || pattern == ipSupportCubic|| pattern == ipTriangles || pattern == ipQuarterCubic|| pattern == ipArchimedeanChords || pattern == ipHilbertCurve || pattern == ipOctagramSpiral; @@ -831,7 +838,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, in toggle_line("separated_infills", is_internal_infill_separable); // Fill order is only meaningful for the center-based surface fill patterns; hide it otherwise. - auto is_centered_fill = [](InfillPattern p) { return p == ipConcentric || p == ipArchimedeanChords || p == ipOctagramSpiral; }; + auto is_centered_fill = [](InfillPattern p) { return p == ipConcentric || p == ipSpiralInset || p == ipArchimedeanChords || p == ipOctagramSpiral; }; toggle_line("top_surface_fill_order", has_top_shell && is_centered_fill(config->opt_enum<InfillPattern>("top_surface_pattern"))); toggle_line("bottom_surface_fill_order", has_bottom_shell && is_centered_fill(config->opt_enum<InfillPattern>("bottom_surface_pattern"))); diff --git a/tests/fff_print/test_fill.cpp b/tests/fff_print/test_fill.cpp index d26639c659..04e5b61831 100644 --- a/tests/fff_print/test_fill.cpp +++ b/tests/fff_print/test_fill.cpp @@ -699,6 +699,213 @@ TEST_CASE("Solid infill direction offsets every layer when no template is set", } } +// Orca: the spiral inset pattern chains the concentric loops into a single continuous path per +// island, so it has to cope with the degenerate loops offsetting leaves behind and it must not join +// loops that only look adjacent. +namespace { + +Slic3r::Polylines spiral_inset_fill(const Slic3r::ExPolygon &surface_shape, double spacing) +{ + std::unique_ptr<Slic3r::Fill> filler(Slic3r::Fill::new_from_type("spiralinset")); + filler->spacing = spacing; + // Cancel the half-spacing contraction fill_surface() applies, so the filler sees the shape as given. + filler->overlap = 0.5 * spacing; + + Slic3r::FillParams fill_params; + fill_params.density = 1.f; + fill_params.dont_adjust = true; + + Slic3r::Surface surface(Slic3r::stBottom, surface_shape); + return filler->fill_surface(&surface, fill_params); +} + +Slic3r::ExPolygon rectangle(double x, double y, double w, double h) +{ + return Slic3r::ExPolygon({Slic3r::Point::new_scale(x, y), Slic3r::Point::new_scale(x + w, y), + Slic3r::Point::new_scale(x + w, y + h), Slic3r::Point::new_scale(x, y + h)}); +} + +// Area of the surface the toolpaths fail to cover, and the largest single patch of it, in mm2. Each +// bead is measured at its own width so the variable width walls are not sold short. +std::pair<double, double> uncovered_area(const Slic3r::ExPolygon &surface_shape, const Slic3r::Polygons &covered) +{ + double total = 0, biggest = 0; + for (const Slic3r::ExPolygon &gap : Slic3r::diff_ex(Slic3r::ExPolygons{surface_shape}, Slic3r::union_(covered))) { + const double area = unscale<double>(unscale<double>(gap.area())); + total += area; + biggest = std::max(biggest, area); + } + return {total, biggest}; +} + +Slic3r::Polygons beads_of(const Slic3r::Polylines &paths, double width) +{ + return Slic3r::offset(paths, float(scale_(0.5 * width))); +} + +Slic3r::Polygons beads_of(const Slic3r::ThickPolylines &paths) +{ + Slic3r::Polygons covered; + for (const Slic3r::ThickPolyline &path : paths) + for (size_t i = 0; i + 1 < path.points.size(); ++i) { + Slic3r::Polyline segment; + segment.points = {path.points[i], path.points[i + 1]}; + Slic3r::append(covered, Slic3r::offset(Slic3r::Polylines{segment}, + float(0.5 * std::max(path.width[2 * i], path.width[2 * i + 1])))); + } + return covered; +} + +} // namespace + +TEST_CASE("Spiral inset fill drops loops shorter than the end clipping", "[Fill][Regression]") +{ + // A sliver whose whole perimeter is shorter than the length clipped off the end of a loop, so the + // clipping consumes the path entirely. Such a loop carries no extrusion and must be dropped + // rather than kept as an empty path and read back from. + const double spacing = 0.45; + + Slic3r::Polylines paths; + REQUIRE_NOTHROW(paths = spiral_inset_fill(rectangle(0, 0, 0.05, 0.05), spacing)); + for (const Slic3r::Polyline &path : paths) + CHECK(path.size() >= 2); + + // The same surface at a size the clipping cannot swallow still gets filled. + REQUIRE_NOTHROW(paths = spiral_inset_fill(rectangle(0, 0, 5, 5), spacing)); + REQUIRE(paths.size() == 1); + CHECK(paths.front().size() >= 2); +} + +TEST_CASE("Spiral inset fill keeps separate islands on separate paths", "[Fill]") +{ + // Two lobes joined by a neck narrower than the loop spacing: the inward offsets break the surface + // into two islands, which cannot share one spiral, and no path may leave the surface. + const double spacing = 0.45; + Slic3r::ExPolygon dumbbell = rectangle(0, 0, 6, 6); + dumbbell = Slic3r::union_ex(Slic3r::ExPolygons{dumbbell, rectangle(6, 2.9, 4, 0.2), rectangle(10, 0, 6, 6)}).front(); + + const Slic3r::Polylines paths = spiral_inset_fill(dumbbell, spacing); + REQUIRE(paths.size() >= 2); + + // Inflate by a hair so that loops sitting exactly on the outline still count as contained. + const Slic3r::ExPolygons within = Slic3r::offset_ex(dumbbell, float(SCALED_EPSILON)); + REQUIRE(within.size() == 1); + for (const Slic3r::Polyline &path : paths) { + CHECK(path.size() >= 2); + CHECK(within.front().contains(path)); + } +} + + +TEST_CASE("Spiral inset fill stays connected across sharp corners", "[Fill][Regression]") +{ + // At a corner of half-angle a, the next ring inward retreats along the bisector by spacing/sin(a), + // which leaves it several spacings from the end of the ring it continues. Judging the break by + // distance broke the spiral into loose rings at every spike; nesting is what decides the island. + const double spacing = 0.45; + const Slic3r::ExPolygon spike({Slic3r::Point::new_scale(0, 0), Slic3r::Point::new_scale(30, 0), + Slic3r::Point::new_scale(15, 4)}); + + const Slic3r::Polylines paths = spiral_inset_fill(spike, spacing); + CHECK(paths.size() == 1); + + const Slic3r::ExPolygons within = Slic3r::offset_ex(spike, float(SCALED_EPSILON)); + REQUIRE(within.size() == 1); + for (const Slic3r::Polyline &path : paths) + CHECK(within.front().contains(path)); +} + +TEST_CASE("Spiral inset fill starts on a convex corner", "[Fill][Regression]") +{ + // The only right angle on this outline is the reflex one: the two edges meeting at the origin + // span 90 degrees exactly as a square corner would, but the material lies outside them. The next + // ring in steps away from a reflex corner along the bisector instead of hugging it, so starting + // the spiral there sent it across a long diagonal on every single ring. + const double spacing = 0.45; + const Slic3r::ExPolygon notched({Slic3r::Point::new_scale(0, 0), Slic3r::Point::new_scale(0, 10), + Slic3r::Point::new_scale(-16, 18), Slic3r::Point::new_scale(-16, -2), + Slic3r::Point::new_scale(-8, -16), Slic3r::Point::new_scale(18, -16), + Slic3r::Point::new_scale(10, 0)}); + + const Slic3r::Polylines paths = spiral_inset_fill(notched, spacing); + REQUIRE(paths.size() >= 1); + + // Every edge of the outline is at least 45 degrees off the bisector of that reflex corner, and + // so is every ring offset from it. A long segment running along the bisector can therefore only + // be the spiral striking out across the rings to reach the next one. + for (const Slic3r::Polyline &path : paths) + for (const Slic3r::Line &segment : path.lines()) { + const Vec2d v = (segment.b - segment.a).cast<double>(); + const double direction = std::fmod(std::atan2(v.y(), v.x()) * 180.0 / M_PI + 180.0, 180.0); + if (std::abs(direction - 45.0) > 25.0) + continue; + CAPTURE(direction, unscale<double>(segment.length())); + CHECK(segment.length() <= scale_(1.5 * spacing)); + } +} + +TEST_CASE("Spiral inset fill closes the gaps with variable width walls", "[Fill]") +{ + // Fixed width loops cannot fill a region that is not a whole number of lines across and leave the + // remainder open, which on a ring shows up as a wedge several lines wide. Plain concentric avoids + // that by building solid surfaces out of Arachne's variable width walls, and so must this pattern. + const double spacing = 0.45; + Slic3r::ExPolygon ring = rectangle(0, 0, 24, 24); + Slic3r::Polygon hole; + for (int i = 0; i < 64; ++i) { + const double angle = -2.0 * PI * i / 64.0; // clockwise, so it reads as a hole + hole.points.emplace_back(Slic3r::Point::new_scale(12 + 7.3 * std::cos(angle), 12 + 7.3 * std::sin(angle))); + } + ring.holes.emplace_back(hole); + + Slic3r::PrintConfig print_config; + Slic3r::PrintObjectConfig object_config; + auto make_filler = [&]() { + std::unique_ptr<Slic3r::Fill> filler(Slic3r::Fill::new_from_type("spiralinset")); + filler->spacing = spacing; + filler->overlap = 0.5 * spacing; // cancel the contraction, so both see the same surface + filler->print_config = &print_config; + filler->print_object_config = &object_config; + return filler; + }; + + Slic3r::FillParams params; + params.density = 1.f; + params.dont_adjust = false; + params.layer_height = 0.2; + + const Slic3r::Surface surface(Slic3r::stTop, ring); + + std::unique_ptr<Slic3r::Fill> fixed = make_filler(); + const Slic3r::Polylines fixed_width = fixed->fill_surface(&surface, params); + REQUIRE(!fixed_width.empty()); + const auto fixed_gaps = uncovered_area(ring, beads_of(fixed_width, fixed->spacing)); + + params.use_arachne = true; + std::unique_ptr<Slic3r::Fill> variable = make_filler(); + const Slic3r::ThickPolylines variable_width = variable->fill_surface_arachne(&surface, params); + REQUIRE(!variable_width.empty()); + const auto variable_gaps = uncovered_area(ring, beads_of(variable_width)); + + CAPTURE(fixed_gaps.first, fixed_gaps.second, variable_gaps.first, variable_gaps.second); + // The wedges the fixed width loops leave behind are what the variable width walls take up. + CHECK(variable_gaps.second < 0.5 * fixed_gaps.second); + CHECK(variable_gaps.first < fixed_gaps.first); + + // And it is still a spiral: far fewer paths than the ring has loops. + // And the walls are still chained into spirals rather than printed one path per wall. The ring is + // at its narrowest (12 - 7.3) mm across and is filled from both sides, so it is at least this many + // walls thick there and thicker elsewhere. Arachne's short thin feature walls cannot join a spiral, + // so only the substantial paths count towards this. + const size_t walls_across = size_t(2.0 * (12.0 - 7.3) / spacing); + size_t spirals = 0; + for (const Slic3r::ThickPolyline &path : variable_width) + if (path.length() > scale_(10.0 * spacing)) + ++spirals; + CAPTURE(spirals, walls_across, variable_width.size(), fixed_width.size()); + CHECK(2 * spirals < walls_across); +} + TEST_CASE("Honeycomb infill rounds its cell corners with the smooth factor", "[Fill]") { // A cell whose sides are several times the line width, so that the corners have room to be rounded. diff --git a/tests/libslic3r/test_config_variant_expansion.cpp b/tests/libslic3r/test_config_variant_expansion.cpp index 28901702cc..2469789d5b 100644 --- a/tests/libslic3r/test_config_variant_expansion.cpp +++ b/tests/libslic3r/test_config_variant_expansion.cpp @@ -130,6 +130,12 @@ TEST_CASE("get_config_index_base resolves (volume type, extruder type, id) to a } } +TEST_CASE("support interface pattern registry includes spiral inset", "[Config]") +{ + const auto &values = ConfigOptionEnum<SupportMaterialInterfacePattern>::get_enum_values(); + REQUIRE(values.at("spiralinset") == SupportMaterialInterfacePattern::smipSpiralInset); +} + TEST_CASE("get_extruder_nozzle_volume_count reads the per-extruder volume-type layout", "[Config]") { std::vector<std::vector<NozzleVolumeType>> nozzle_volume_types; From 0365304ae03b537eaca6c7445947a9116bfcb496 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sun, 6 Sep 2026 13:42:57 -0500 Subject: [PATCH 148/164] fix: G-code preview drops comment text and cuts non-ASCII lines short (#15448) --- src/slic3r/GUI/GCodeViewer.cpp | 37 +++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index e5a88e4ea4..49477ac7dd 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -785,6 +785,19 @@ void GCodeViewer::SequentialView::GCodeWindow::load_gcode(const std::string& fil } } +// Byte offset just past the first count characters of str, or its length if it is shorter. +static size_t utf8_offset(const std::string& str, size_t count) +{ + const char* const begin = str.c_str(); + const char* const end = begin + str.size(); + const char* pos = begin; + for (size_t i = 0; i < count && pos < end; ++i) { + unsigned int codepoint = 0; + pos += ImTextCharFromUtf8(&codepoint, pos, end); + } + return pos - begin; +} + //BBS: GUI refactor: move to right void GCodeViewer::SequentialView::GCodeWindow::render(float top, float bottom, float right, uint64_t curr_line_id) const { @@ -796,23 +809,27 @@ void GCodeViewer::SequentialView::GCodeWindow::render(float top, float bottom, f // read line from file const size_t start = id == 1 ? 0 : m_lines_ends[id - 2]; const size_t original_len = m_lines_ends[id - 1] - start; - const size_t len = std::min(original_len, (size_t) 55); + // A character is four bytes at most, so 55 of them always fit in 220. + const size_t len = std::min(original_len, (size_t) 55 * 4); std::string gline(m_file.data() + start, len); - // If original line is longer than 55 characters, truncate and append "..." - if (original_len > 55) - gline = gline.substr(0, 52) + "..."; + // If original line is longer than 55 characters, truncate and append "...". + // The cut must land on a character boundary or it leaves half a character behind. + if (len < original_len || utf8_offset(gline, 55) < gline.size()) + gline = gline.substr(0, utf8_offset(gline, 52)) + "..."; std::string command, parameters, comment; - // extract comment - std::vector<std::string> tokens; - boost::split(tokens, gline, boost::is_any_of(";"), boost::token_compress_on); - command = tokens.front(); - if (tokens.size() > 1) - comment = ";" + tokens.back(); + const size_t comment_start = gline.find(';'); + if (comment_start == std::string::npos) + command = gline; + else { + command = gline.substr(0, comment_start); + comment = gline.substr(comment_start); + } // extract gcode command and parameters if (!command.empty()) { + std::vector<std::string> tokens; boost::split(tokens, command, boost::is_any_of(" "), boost::token_compress_on); command = tokens.front(); if (tokens.size() > 1) { From 43ce8c5e46c2e82b937f48aa96ce2ea1ac215383 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sun, 6 Sep 2026 16:06:18 -0500 Subject: [PATCH 149/164] fix: SLIC3R_PCH=OFF now builds on Windows, allowing compiler caching (#15552) --- build_win.bat | 66 ++++++++++++++++++++++- scripts/test_build_win.ps1 | 52 +++++++++++++++++- src/libslic3r/BlacklistedLibraryCheck.cpp | 1 + src/libslic3r/CMakeLists.txt | 7 +++ src/libslic3r/MultiPoint.hpp | 1 + src/libslic3r/Print.cpp | 5 ++ src/libslic3r/SLA/Hollowing.cpp | 1 + src/slic3r/CMakeLists.txt | 3 ++ src/slic3r/GUI/DragCanvas.hpp | 1 + src/slic3r/GUI/GUI_App.cpp | 1 + src/slic3r/GUI/OptionsGroup.hpp | 2 +- src/slic3r/GUI/wxMediaCtrl3.h | 3 ++ src/slic3r/Utils/Bonjour.hpp | 1 + src/slic3r/win_platform.hpp | 19 +++++++ 14 files changed, 159 insertions(+), 4 deletions(-) create mode 100644 src/slic3r/win_platform.hpp diff --git a/build_win.bat b/build_win.bat index c447d8a71f..840279e4f3 100644 --- a/build_win.bat +++ b/build_win.bat @@ -52,6 +52,7 @@ call :add_section "Build configuration" call :add_arg config string "" config "release, debug, relwithdebinfo or minsizerel (default: release)" call :add_arg target_arch string "" arch "x64 or arm64 (default: the host architecture)" call :add_arg slicer_asan bool a asan "Build the slicer with ASAN enabled" +call :add_arg no_pch bool "" no-pch "Build without the precompiled header, implied by --cache" call :add_section "Toolchain" call :add_arg use_clang_cl bool l clang-cl "Use clang-cl as the compiler" @@ -60,6 +61,7 @@ call :add_arg use_ninja bool x ninja "Use the Ninja Multi-Config generator" call :add_arg use_msbuild bool "" msbuild "Use the Visual Studio generator (default)" call :add_arg vs_version string "" vs "Visual Studio release: 2019, 2022 or 2026 (default: autodetect)" call :add_arg clang_path string "" clang-path "Path to clang-cl.exe, requires -x (default: the one from Visual Studio)" +call :add_arg cache string "" cache "Compiler cache: ccache, sccache or off, requires -l -x (default: off)" call :add_section "How much gets rebuilt" call :add_arg slicer_target string "" slicer-target "Build one slicer target instead of all, e.g. libslic3r" @@ -391,6 +393,49 @@ if not "%clang_path%" == "" if not "%using_ninja%" == "ON" ( exit /b 1 ) +set "cache_args=" +if "%cache%" == "" goto :cache_ready +if /I "%cache%" == "off" goto :cache_ready +if /I "%cache%" == "ccache" goto :cache_named +if /I "%cache%" == "sccache" goto :cache_named +echo Unknown --cache value "%cache%". Expected ccache, sccache or off. +exit /b 1 + +REM CMake accepts a compiler launcher under any generator but only runs it +REM under Makefile and Ninja. ccache also refuses cl.exe because the build +REM passes /Zi. +:cache_named +REM Only a configure records the launcher, so --no-configure needs none. +if "%no_configure%" == "ON" goto :cache_ready +if "%build_deps%%build_slicer%" == "" goto :cache_ready +if not "%using_ninja%" == "ON" goto :cache_needs_clang +if not "%use_clang_cl%" == "ON" goto :cache_needs_clang +goto :cache_tool + +:cache_needs_clang +echo --cache needs clang-cl and Ninja; add -l -x. +exit /b 1 + +REM Name a full path, so the recorded launcher does not depend on PATH. +:cache_tool +set "cache_exe=" +for /f "tokens=*" %%i in ('where %cache% 2^>nul') do ( + if not defined cache_exe set "cache_exe=%%i" +) +if not defined cache_exe ( + echo %cache% is not on PATH. Install it, or leave --cache off. + exit /b 1 +) +REM Forward slashes, so CMake does not read a backslash as an escape. +set "cache_exe=%cache_exe:\=/%" +set "cache_args=-DCMAKE_C_COMPILER_LAUNCHER="%cache_exe%" -DCMAKE_CXX_COMPILER_LAUNCHER="%cache_exe%"" +REM Neither cache stores a compile that uses a precompiled header. sccache +REM refuses /Fp outright. ccache does too unless its sloppiness is loosened, +REM and even then most hits fall back to the slower preprocessed mode. +set "no_pch=ON" + +:cache_ready + REM Ninja prints [123/456] by default, which says nothing about how far REM along it is or how long is left. %p is a percentage, %w and %W are REM elapsed and remaining, but those two arrived in ninja 1.12 and an @@ -474,6 +519,8 @@ REM real path rather than one glued onto the repository root. for %%p in ("!build_dir!") do set "build_full=%%~fp" echo Configuration: %build_type%, %arch% if not "%clang_exe%" == "" echo Compiler: %clang_exe% +if "%no_pch%" == "ON" echo Precompiled header: off +if not "%cache_args%" == "" echo Compiler cache: %cache_exe% set "SIG_FLAG=" if defined ORCA_UPDATER_SIG_KEY set "SIG_FLAG=-DORCA_UPDATER_SIG_KEY=%ORCA_UPDATER_SIG_KEY%" @@ -570,6 +617,10 @@ if "%build_deps%" == "ON" ( %error_check% ) + if not "!cache_args!" == "" ( + set "deps_args=!deps_args! !cache_args!" + ) + if not "%no_configure%" == "ON" ( call :print_and_run cmake -S deps -B "!DEP_TREE!" -G "%generator%" %gen_args% -DCMAKE_BUILD_TYPE=%build_type% !deps_args! %ORCA_DEPS_CMAKE_ARGS% %error_check% @@ -641,6 +692,16 @@ if "%build_slicer%" == "ON" ( set "slicer_args=!slicer_args! -DSLIC3R_ASAN=ON" ) + REM A later -DSLIC3R_PCH=ON in ORCA_SLICER_CMAKE_ARGS still wins, because + REM CMake takes the last definition on the command line. + if "%no_pch%" == "ON" ( + set "slicer_args=!slicer_args! -DSLIC3R_PCH=OFF" + ) + + if not "!cache_args!" == "" ( + set "slicer_args=!slicer_args! !cache_args!" + ) + REM Configuring against a tree that was never built fails deep inside REM package resolution. Name it here instead. Skipped when -d is about to REM build it in this same run, and under a dry run, which configures @@ -870,6 +931,7 @@ REM get_str_len <string> -> length in %ret% echo %script_name% -s --no-configure -j 8 Rebuild quickly while iterating echo %script_name% -s --slicer-target glad Compile one target to check the toolchain echo %script_name% -l -x --run-tests Test that toolchain's build, not the default one + echo %script_name% -s -l -x --cache ccache Rebuild through a compiler cache echo. echo Environment: echo ORCA_DEPS_CMAKE_ARGS Extra arguments for the deps configure @@ -879,8 +941,8 @@ REM get_str_len <string> -> length in %ret% echo NINJA_STATUS Ninja progress format, if you want your own echo debugscript Set to ON to trace this script echo. - echo set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_PCH=OFF -DSLIC3R_MSVC_PDB=OFF - echo $env:ORCA_SLICER_CMAKE_ARGS = '-DSLIC3R_PCH=OFF' (PowerShell) + echo set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_BUILD_SANDBOXES=ON -DSLIC3R_WARNINGS=OFF + echo $env:ORCA_SLICER_CMAKE_ARGS = '-DSLIC3R_BUILD_SANDBOXES=ON' (PowerShell) echo. echo --deps-args and --slicer-args cannot carry a value with spaces; use echo these instead. Neither form supports a value containing an ampersand. diff --git a/scripts/test_build_win.ps1 b/scripts/test_build_win.ps1 index 563430559f..34f64117af 100644 --- a/scripts/test_build_win.ps1 +++ b/scripts/test_build_win.ps1 @@ -92,6 +92,12 @@ New-Item -ItemType Directory -Force -Path $clangDir | Out-Null Copy-Item "$env:SystemRoot\System32\where.exe" (Join-Path $clangDir 'clang-cl.exe') -Force $clangOnPath = "$clangDir;$env:PATH" +# A ccache that only has to exist. Nothing runs it; the script only locates it. +$cacheDir = Join-Path $fixtures 'cache' +New-Item -ItemType Directory -Force -Path $cacheDir | Out-Null +Copy-Item "$env:SystemRoot\System32\where.exe" (Join-Path $cacheDir 'ccache.exe') -Force +$ccacheOnPath = "$cacheDir;$env:PATH" + # ProgramFiles(x86) is where the script looks for vswhere, so an empty one # stands in for a machine whose Visual Studio has no clang toolset. $noVs = Join-Path $fixtures 'no-vs' @@ -121,7 +127,7 @@ $cases = @( 'Examples:', 'Environment:') } @{ Name = 'the environment section shows what to set'; Args = @('--help'); DryRun = $false Contains = @('ORCA_DEPS_CMAKE_ARGS', 'ORCA_SLICER_CMAKE_ARGS', 'ORCA_UPDATER_SIG_KEY', 'NINJA_STATUS', - 'set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_PCH=OFF', '(PowerShell)', 'debugscript') } + 'set ORCA_SLICER_CMAKE_ARGS=-DSLIC3R_BUILD_SANDBOXES=ON', '(PowerShell)', 'debugscript') } @{ Name = 'section headers do not widen the flag column'; Args = @('--help'); DryRun = $false Match = @('^ -d, --deps +Download') } # Windows Terminal opens at 120 columns and wraps at 120, so 119 is the @@ -294,6 +300,14 @@ $cases = @( Contains = @('-DBUILD_TESTS=ON') } @{ Name = '-a enables ASAN for the slicer'; Args = @('-s', '-a') Contains = @('-DSLIC3R_ASAN=ON') } + @{ Name = '--no-pch turns the precompiled header off'; Args = @('-s', '--no-pch') + Contains = @('-DSLIC3R_PCH=OFF') } + @{ Name = '--no-pch says so in the banner'; Args = @('-s', '--no-pch') + Contains = @('Precompiled header: off') } + @{ Name = 'the precompiled header is on unless asked'; Args = @('-s') + NotContains = @('SLIC3R_PCH') } + @{ Name = '--no-pch works without a cache'; Args = @('-s', '--no-pch') + NotContains = @('COMPILER_LAUNCHER') } @{ Name = 'the slicer build runs gettext'; Args = @('-s') Contains = @('run_gettext.bat') } # tools\7z.exe needs a 7z.dll beside it, which the repo does not carry, @@ -324,6 +338,42 @@ $cases = @( @{ Name = 'deps and slicer build in one invocation'; Args = @('-d', '-s', '-x', '-l') Contains = @('cmake -S deps', 'cmake -B "build-clang" ') } + 'the compiler cache' + @{ Name = '--cache needs clang-cl and Ninja'; Args = @('-s', '--cache', 'ccache'); ExpectExit = 1 + Contains = @('needs clang-cl and Ninja') } + # cl.exe is out of scope, since ccache refuses every compile under /Zi. + @{ Name = '--cache under Ninja still needs clang-cl'; Args = @('-s', '-x', '--cache', 'ccache'); ExpectExit = 1 + Contains = @('needs clang-cl and Ninja') } + @{ Name = 'an unknown --cache value is rejected'; Args = @('-s', '-x', '--cache', 'nope'); ExpectExit = 1 + Contains = @('Expected ccache, sccache or off') } + # A bare PATH, since the machine running the tests may have sccache installed. + @{ Name = 'a --cache tool that is not there is caught early'; Args = @('-s', '-l', '-x', '--cache', 'sccache'); ExpectExit = 1 + Env = @{ PATH = 'C:\Windows\system32;C:\Windows' } + Contains = @('is not on PATH') } + @{ Name = '--cache takes any casing'; Args = @('-s', '-l', '-x', '--cache', 'CCACHE') + Env = @{ PATH = $ccacheOnPath } + Contains = @('ccache.exe') } + @{ Name = '--cache off asks for no launcher'; Args = @('-s', '-x', '--cache', 'off') + NotContains = @('COMPILER_LAUNCHER') } + @{ Name = 'no --cache asks for no launcher'; Args = @('-s', '-x') + NotContains = @('COMPILER_LAUNCHER') } + @{ Name = '--cache turns the precompiled header off'; Args = @('-s', '-l', '-x', '--cache', 'ccache') + Env = @{ PATH = $ccacheOnPath } + Contains = @('-DSLIC3R_PCH=OFF', 'COMPILER_LAUNCHER') } + # The resolved path, not the bare name, so PATH cannot change it later. + @{ Name = '--cache names the resolved path in the banner'; Args = @('-s', '-l', '-x', '--cache', 'ccache') + Env = @{ PATH = $ccacheOnPath } + Match = @('^Compiler cache: .*/ccache\.exe$') } + @{ Name = '--cache reaches the dependency configure too'; Args = @('-d', '-l', '-x', '--cache', 'ccache') + Env = @{ PATH = $ccacheOnPath } + Contains = @('-DCMAKE_C_COMPILER_LAUNCHER=') } + # Nothing records a launcher without a configure, so the tool is not needed. + # Reaching the cmake check on a bare PATH is what proves it was skipped. + @{ Name = '--no-configure asks for no cache tool'; Args = @('-s', '-l', '-x', '--no-configure', '--cache', 'ccache'); ExpectExit = 1 + Env = @{ PATH = 'C:\Windows\system32;C:\Windows' } + Contains = @('CMake was not found') + NotContains = @('is not on PATH') } + 'the developer loop' @{ Name = '--slicer-target builds one target'; Args = @('-s', '--slicer-target', 'libslic3r') Contains = @('--config Release --target libslic3r') } diff --git a/src/libslic3r/BlacklistedLibraryCheck.cpp b/src/libslic3r/BlacklistedLibraryCheck.cpp index 938f542497..cf7e6da2aa 100644 --- a/src/libslic3r/BlacklistedLibraryCheck.cpp +++ b/src/libslic3r/BlacklistedLibraryCheck.cpp @@ -1,6 +1,7 @@ #include "BlacklistedLibraryCheck.hpp" #include <cstdio> +#include <boost/filesystem/path.hpp> #include <boost/nowide/convert.hpp> #ifdef WIN32 diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index c33b7be429..d07c42d8f6 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -665,6 +665,13 @@ if(SLIC3R_PROFILE) target_link_libraries(libslic3r PRIVATE Shiny) endif() +if (WIN32) + # Public, since BlacklistedLibraryCheck.hpp includes windows.h. Empty + # WIN32_LEAN_AND_MEAN matches the sources that define it themselves; bare + # NOMINMAX matches the one libigl already passes. + target_compile_definitions(libslic3r PUBLIC "WIN32_LEAN_AND_MEAN=" "NOMINMAX") +endif () + if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r pchheader.hpp FORCEINCLUDE) endif () diff --git a/src/libslic3r/MultiPoint.hpp b/src/libslic3r/MultiPoint.hpp index de386b501c..096230d22c 100644 --- a/src/libslic3r/MultiPoint.hpp +++ b/src/libslic3r/MultiPoint.hpp @@ -24,6 +24,7 @@ public: explicit MultiPoint(const Points &_points) : points(_points) {} MultiPoint& operator=(const MultiPoint &other) { points = other.points; return *this; } MultiPoint& operator=(MultiPoint &&other) { points = std::move(other.points); return *this; } + virtual ~MultiPoint() = default; void scale(double factor); void scale(double factor_x, double factor_y); void translate(double x, double y) { this->translate(Point(coord_t(x), coord_t(y))); } diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index e96304e874..aee50db534 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1,3 +1,8 @@ +#ifdef _WIN32 +// Keep this first. A header below reaches boost/regex, whose w32_regex_traits +// needs the Win32 types declared already. +#include <Windows.h> +#endif #include "Config.hpp" #include "Exception.hpp" #include "Print.hpp" diff --git a/src/libslic3r/SLA/Hollowing.cpp b/src/libslic3r/SLA/Hollowing.cpp index df62127770..f50cdbced2 100644 --- a/src/libslic3r/SLA/Hollowing.cpp +++ b/src/libslic3r/SLA/Hollowing.cpp @@ -1,4 +1,5 @@ #include <functional> +#include <numeric> #include <optional> #include <libslic3r/OpenVDBUtils.hpp> diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 1e39e30b0d..83ad94e563 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -916,6 +916,9 @@ endif () if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE) +elseif (MSVC) + # Puts the Windows headers first when the PCH is off. + target_compile_options(libslic3r_gui PRIVATE "/FIslic3r/win_platform.hpp") endif () if (APPLE) diff --git a/src/slic3r/GUI/DragCanvas.hpp b/src/slic3r/GUI/DragCanvas.hpp index aa8d8ddfa8..f39e836673 100644 --- a/src/slic3r/GUI/DragCanvas.hpp +++ b/src/slic3r/GUI/DragCanvas.hpp @@ -3,6 +3,7 @@ #include "wx/bitmap.h" #include "wx/dragimag.h" +#include "wx/panel.h" namespace Slic3r { namespace GUI { diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 5b80a866ca..3500493329 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -12,6 +12,7 @@ #include "BuildCommit.hpp" #include "Downloader.hpp" #include <boost/chrono/duration.hpp> +#include <boost/locale/encoding_utf.hpp> #include <boost/log/detail/native_typeof.hpp> #include <libslic3r/Config.hpp> #include <mutex> diff --git a/src/slic3r/GUI/OptionsGroup.hpp b/src/slic3r/GUI/OptionsGroup.hpp index c808545145..b20d16aca9 100644 --- a/src/slic3r/GUI/OptionsGroup.hpp +++ b/src/slic3r/GUI/OptionsGroup.hpp @@ -199,7 +199,7 @@ public: OptionsGroup(wxWindow *_parent, const wxString &title, const wxString &icon, bool is_tab_opt = false, column_t extra_clmn = nullptr); - ~OptionsGroup() { clear(true); } + virtual ~OptionsGroup() { clear(true); } wxGridSizer* get_grid_sizer() { return m_grid_sizer; } const std::vector<Line>& get_lines() { return m_lines; } diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index 1d64955ffd..ff4595ad32 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -8,6 +8,9 @@ #ifndef wxMediaCtrl3_h #define wxMediaCtrl3_h +#include <chrono> +#include "wx/window.h" +#include "wx/bitmap.h" #include "wx/uri.h" #include "wx/mediactrl.h" diff --git a/src/slic3r/Utils/Bonjour.hpp b/src/slic3r/Utils/Bonjour.hpp index 50b71791fa..3ef8f0e1a2 100644 --- a/src/slic3r/Utils/Bonjour.hpp +++ b/src/slic3r/Utils/Bonjour.hpp @@ -115,6 +115,7 @@ class UdpSession { public: UdpSession(Bonjour::ReplyFn rfn); + virtual ~UdpSession() = default; virtual void handle_receive(const boost::system::error_code& error, size_t bytes) = 0; std::vector<char> buffer; boost::asio::ip::udp::endpoint remote_endpoint; diff --git a/src/slic3r/win_platform.hpp b/src/slic3r/win_platform.hpp new file mode 100644 index 0000000000..0c5a8e81b2 --- /dev/null +++ b/src/slic3r/win_platform.hpp @@ -0,0 +1,19 @@ +#pragma once + +// Force-included into libslic3r_gui when SLIC3R_PCH is OFF, standing in for +// pchheader.hpp, which includes <Windows.h> before anything else. Arriving +// late and transitively, rpcndr.h defines a global `byte` that collides with +// std::byte under `using namespace std`, and the control and URL moniker +// types the GUI uses are never declared. +#ifdef _WIN32 + #ifndef WIN32_LEAN_AND_MEAN + #define WIN32_LEAN_AND_MEAN + #endif + #ifndef NOMINMAX + #define NOMINMAX + #endif + #include <Windows.h> + #include <CommCtrl.h> + #include <urlmon.h> +#endif // _WIN32 + From 8d44b680bdc174f3da4a7adfeba62b33fbc7e084 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sun, 6 Sep 2026 18:23:47 -0500 Subject: [PATCH 150/164] fix: bumping the bundled uv version rebuilds the whole GUI library (#15553) --- src/slic3r/CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 83ad94e563..7c25792bb3 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -984,10 +984,6 @@ endif () # Add a definition so that we can tell we are compiling slic3r. target_compile_definitions(libslic3r_gui PRIVATE SLIC3R_CURRENTLY_COMPILING_GUI_MODULE) -if(ORCA_BUNDLED_UV_EXECUTABLE_CONFIG) - target_compile_definitions(libslic3r_gui PRIVATE "ORCA_BUNDLED_UV_EXECUTABLE=\"${ORCA_BUNDLED_UV_EXECUTABLE_CONFIG}\"") -endif() - if (ORCA_BUILD_PYTHON_STUBGEN_MODULE) add_library(orca_stubgen MODULE plugin/PythonPluginBridge.cpp From 3500a1e588fb3618ec1393f094310f181709d4ee Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 10:46:59 +0800 Subject: [PATCH 151/164] unify id generation scripts --- .github/pull_request_template.md | 2 +- docs/HLSD/filament_id.md | 86 +- scripts/assign_vendor_setting_ids.py | 258 ----- scripts/orca_extra_profile_check.py | 20 +- ...assign_filament_ids.py => orca_id_tool.py} | 1009 +++++++++++------ scripts/tests/test_filament_id.py | 696 ++++++++++-- scripts/tests/test_setting_id.py | 902 +++++++++++++++ scripts/update_bambu_filament_ids.py | 4 +- src/libslic3r/Preset.cpp | 2 +- src/libslic3r/Preset.hpp | 4 +- src/libslic3r/PresetBundle.cpp | 4 +- tests/libslic3r/test_preset_setting_id.cpp | 6 +- 12 files changed, 2230 insertions(+), 763 deletions(-) delete mode 100644 scripts/assign_vendor_setting_ids.py rename scripts/{assign_filament_ids.py => orca_id_tool.py} (54%) create mode 100644 scripts/tests/test_setting_id.py diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8b82f51730..cf9799df19 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -20,7 +20,7 @@ > Please describe the tests that you have conducted to verify the changes made in this PR. --> -- [ ] New filament/material profiles: I wrote **no** `filament_id` key by hand — I ran `python scripts/assign_filament_ids.py` and `--update-snapshot` and committed both diffs (see `doc/developer-reference/filament_id.md`) +- [ ] New filament/material profiles: I wrote **no** `filament_id` key by hand — I ran `python scripts/orca_id_tool.py --generate` and `--update-snapshot` and committed both diffs (see [docs/HLSD/filament_id.md](docs/HLSD/filament_id.md)) <!-- > A guide for users on how to download the artifacts from this PR. diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md index eaf9de4a6c..92d75ca8ca 100644 --- a/docs/HLSD/filament_id.md +++ b/docs/HLSD/filament_id.md @@ -9,7 +9,7 @@ OrcaFilamentLibrary (OFL), Qidi, or Snapmaker bundle. The granularity is the nam not the brand behind it: `AAA PLA Lite` and `AAA PLA Pro` are two filaments with two ids, not variants of one. -**How it is generated:** an id is computed, never invented. `scripts/assign_filament_ids.py` +**How it is generated:** an id is computed, never invented. `scripts/orca_id_tool.py` mints it as a deterministic hash of the product's identity — the triple `(filament_vendor, filament_type, filament name)`, where the filament name is the preset name with its `@...` variant suffix stripped — producing an 8-character `OF*` code that is the @@ -34,7 +34,7 @@ This page is the rule for authoring `filament_id` in system profiles > [!IMPORTANT] > **Never write a `filament_id` value by hand.** A new filament gets its id from -> `python scripts/assign_filament_ids.py`; one already in the tree has one — inherit it. +> `python scripts/orca_id_tool.py --generate`; one already in the tree has one — inherit it. ## The design, in two pieces @@ -158,7 +158,8 @@ key needed). Tuning a generic material → **join the OrcaFilamentLibrary filame different product by rule 5, so it then needs its own id. 5. **Ids follow the product identity.** The id is a pure function of the product triple `(filament_vendor, filament_type, filament name)`, so correcting any of them re-mints the id - **by design** (via `--remint <Vendor>`; the exact sequence is in the FAQ). Nothing forwards + **by design**, applied by `--generate` (preview with `--dry-run`, confine with `--vendor`) and + gated by the `--update-snapshot` diff; the exact sequence is in the FAQ. Nothing forwards the old value, so anything outside the tree that stored it — a device tray, a calibration record, a saved project — falls back to matching by filament type until the user re-selects the filament. Re-mint deliberately, and only to fix a genuinely wrong identity. @@ -167,7 +168,7 @@ key needed). Tuning a generic material → **join the OrcaFilamentLibrary filame ## Minting — nobody invents ids New ids are deterministic, computed exactly like the `setting_id` precedent -(`scripts/assign_vendor_setting_ids.py`): +(the `setting_id` half of `scripts/orca_id_tool.py`): ```text FILAMENT_ID_NAMESPACE = uuid5(setting-id NAMESPACE, "filament_id") @@ -204,36 +205,49 @@ Workflow for a new filament: ```bash # 1. Author the filament with NO filament_id key anywhere. -python scripts/assign_filament_ids.py # 2. mint + insert ids into the root preset(s) -python scripts/assign_filament_ids.py --update-snapshot # 3. record the new claims in the snapshot -python scripts/assign_filament_ids.py --check # 4. verify — the same checks CI runs -# 5. Commit the profile edits together with scripts/filament_id_snapshot.json. +python scripts/orca_id_tool.py --dry-run # 2. preview the ids — writes nothing +python scripts/orca_id_tool.py --generate # 3. apply them to the profile file(s) +python scripts/orca_id_tool.py --update-snapshot # 4. record the new claims in the snapshot +python scripts/orca_id_tool.py --check # 5. validate the filament_id state +python scripts/orca_extra_profile_check.py # 6. ...and everything else CI checks +# 7. Commit the profile edits together with scripts/filament_id_snapshot.json, for review. ``` -The default run mints ids for id-less filaments and replaces any declaration that is not in -`OF` format; it never rewrites a valid `OF` id, so it is idempotent and a no-op once every -filament has one. It edits profile files byte-preservingly (indentation, BOM, and line endings -intact) and re-parses them to fail loudly. -`--mint "filament_vendor/filament_type/filament_name"` prints the id a **new** mint of that -triple would get, without touching anything — note that for a triple whose id already exists -it prints the next *free* salt iteration, not the live id (asking for -`Polymaker/PLA/PolyLite PLA` today prints the salt-1 id, because `OF5CgdDq` is taken). +`--generate` makes every filament's id equal the mint of its own +`(filament_vendor, filament_type, filament name)` triple: it inserts one where an instantiated +filament resolves none, and re-derives one that does not match. A preset that *inherits* a +mismatching id is the one case left to the author — check 3b names it, and the fix is to inherit +a preset of the same filament or to give the preset its own key. It converges on an id the same +product already holds and salts only past ids *other* products hold, so an id already equal to a +salt iteration of its own triple is left alone and deliberate salt splits survive. The same run +assigns `generate_preset_setting_id(vendor, type, name)` to every instantiated filament, process +and machine preset of every vendor except BBL, which keeps its authoritative `G*` ids, strips +`setting_id` from base profiles, and fixes the misspelled `settings_id` key — dropped, or, for +BBL, whose ids have no formula to fall back on, restored under the correct name. It is idempotent and +byte-preserving (indentation, BOM, and line endings intact, every edited file re-parsed to fail +loudly), and a no-op on a tree that already passes `scripts/orca_extra_profile_check.py` — the +check CI runs over both id kinds, of which `--check` is the `filament_id` half. -Maintenance modes (`--remint` is also the step for identity fixes — see the FAQ; the rest are -normally only used by id migrations): - -- `--remint VENDOR` re-derives a vendor's declared ids from their triples — any vendor, BBL - included, since no bundle is exempt from the mint rule. A declaration already equal to a - salt iteration of its own triple is conformant and left alone, so deliberate salt splits - survive; convergence onto an id another bundle already uses for the *same* triple is legal - by design — that is the point. -- `--drop-redundant-ids VENDOR` deletes declarations that merely re-declare an inherited - OrcaFilamentLibrary id. +- `--filament-id` limits the run to `filament_id`. +- `--setting-id` limits the run to `setting_id`. The two exclude each other; pass neither to + write both. +- `--vendor VENDOR` confines the run to that bundle; repeatable. The ids are still derived + tree-wide, so a narrowed run writes exactly what a full one would — and reports any duplicate + it was not allowed to clear, since only a run covering both bundles can. +- `--dry-run` reports what `--generate` would do and writes nothing; with no mode of its own it + implies `--generate`, so `--dry-run --vendor <Vendor>` previews just that bundle. - `--profiles DIR` points the tooling at a different profile tree (default - `resources/profiles`). + `resources/profiles`). `--check` and `--update-snapshot` read and write the sanctioned state of + the tree they are given, so pointing them elsewhere needs `--snapshot PATH` for that tree too — + `scripts/filament_id_snapshot.json` describes `resources/profiles` and no other tree. + +**Identity fixes need no separate mode.** `--generate` re-derives an id that no longer matches its +triple exactly the way it fills in a missing one, so a rename or a `filament_vendor` / +`filament_type` correction is just: fix the config, run `--generate` (confine it with `--vendor`, +preview it with `--dry-run`), then `--update-snapshot` and review the diff. If you skip the tooling, CI fails and prints the remedy: the expected id for your filament and -the instruction to run `python scripts/assign_filament_ids.py`; once the id is minted, the +the instruction to run `python scripts/orca_id_tool.py --generate`; once the id is minted, the snapshot checks likewise point at `--update-snapshot` and tell you to commit the resulting diff. @@ -466,18 +480,20 @@ ambiguity check behind structure rule 3. `Generic PLA` base name, set `compatible_printers`; no id key needed. - **A branded filament that borrows a generic's settings?** Fine — inherit `Generic X @System` (or any real filament) for the settings and declare the id of your own filament; run - `python scripts/assign_filament_ids.py` to mint it. Inheritance never changes the id. + `python scripts/orca_id_tool.py --generate` to mint it. Inheritance never changes the id. - **I need to fix a filament's `filament_vendor` or `filament_type`.** Fix the config, run - `--remint <Vendor>` then `--update-snapshot`, and commit the profile and snapshot diffs - together. The id re-derives from the corrected identity, and nothing forwards the old - value, so a tray or record still holding it falls back to matching by filament type. + `--generate --vendor <Vendor>` (preview with `--dry-run`), then `--update-snapshot`, and commit + the profile and snapshot diffs together. The id re-derives from the corrected identity, and + nothing forwards the old value, so a tray or record still holding it falls back to matching by + filament type. - **I need to rename a filament.** Rename the presets (adding `renamed_from`, which keeps the - preset *name* resolving), then `--remint <Vendor>`, then `--update-snapshot`. The id follows - the new filament name; as with any identity fix, the old id is not forwarded. + preset *name* resolving), then `--generate --vendor <Vendor>` (preview with `--dry-run`), then + `--update-snapshot`. The id follows the new filament name; as with any identity fix, the old id + is not forwarded. - **Can I reuse a `QD_*` id for a Qidi profile?** No — nobody can. It is the device protocol's own id space: the box composes those values at runtime and no preset carries one. Author Qidi filaments like any other vendor's. -- **CI says my filament needs an id.** Run `python scripts/assign_filament_ids.py`, then +- **CI says my filament needs an id.** Run `python scripts/orca_id_tool.py --generate`, then `--update-snapshot`, and commit both diffs. Do not type an id by hand. For general profile authoring, see the profile development guide on the diff --git a/scripts/assign_vendor_setting_ids.py b/scripts/assign_vendor_setting_ids.py deleted file mode 100644 index 8ed607f591..0000000000 --- a/scripts/assign_vendor_setting_ids.py +++ /dev/null @@ -1,258 +0,0 @@ -#!/usr/bin/env python3 -""" -Assign deterministic, globally-unique setting_id to OrcaSlicer system profiles. - -Policy (see AGENTS.md "Critical Constraints"): - * A preset's setting_id is a pure function of its identity: - setting_id = base62_16( uuid5(NAMESPACE, "<vendor>/<type>/<name>") ) - The same value is recomputed on the fly by the C++ app - (Slic3r::generate_preset_setting_id); the two MUST stay byte-identical. The rule - (generate_preset_setting_id, below) is also imported by the validator - (orca_extra_profile_check.py). Uniqueness is therefore automatic: two presets - collide only if they share vendor + type + name, which the validator flags. - * Bambu (BBL) owns the authoritative "G*" id space and is the only reserved vendor: - its ids are never rewritten (preserves backward-compat with Bambu-synced presets). - Every other vendor - including OrcaFilamentLibrary and Custom - follows the - deterministic rule. - * Only instantiated presets (instantiation == "true") carry a setting_id; base / - template profiles do not. - -Only setting_id is rewritten. filament_id is deliberately left untouched: it is a -per-material id, shared across a filament's nozzle variants and inherited from base -templates, so it must not be made per-file unique. - -Run from anywhere: python3 scripts/assign_vendor_setting_ids.py -The script is idempotent: a second run over an unchanged tree produces no diff. -""" - -import json -import os -import re -import sys -import uuid - - -# Deterministic preset setting_id rule. Imported by the validator -# (orca_extra_profile_check.py) and kept byte-identical to the C++ -# Slic3r::generate_preset_setting_id. Dedicated namespace, distinct from the cloud -# namespace (f47ac10b-...) so the two id spaces never coincide; this constant is baked -# into both languages - never change it. -NAMESPACE = uuid.UUID("c1f4d9e2-7a3b-5c8d-9e0f-1a2b3c4d5e6f") -ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" -ID_LENGTH = 16 - - -def generate_preset_setting_id(vendor, type_name, name): - """Deterministic 16-char base62 setting_id for a preset. - - input = f"{vendor}/{type_name}/{name}"; u = uuid5(NAMESPACE, input); - id = the low ID_LENGTH base62 digits of int(u.bytes, "big"), most-significant first. - """ - u = uuid.uuid5(NAMESPACE, f"{vendor}/{type_name}/{name}") - n = int.from_bytes(u.bytes, "big") - digits = [] - for _ in range(ID_LENGTH): - digits.append(ALPHABET[n % 62]) - n //= 62 - return "".join(reversed(digits)) - - -PROFILES_DIR = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "resources", "profiles")) - -# Bambu (BBL) is the only reserved vendor: it keeps its authoritative "G*" cloud ids. -RESERVED_VENDORS = {"BBL"} - -PROFILE_SUBDIRS = ("filament", "process", "machine") - - -def iter_profile_files(vendor_dir): - """Yield (json path, type) under a vendor, in a deterministic order. - - type is the subdir name ("filament"/"process"/"machine"), which matches - Preset::get_type_string() on the C++ side. - """ - for sub in PROFILE_SUBDIRS: - base = os.path.join(vendor_dir, sub) - if not os.path.isdir(base): - continue - for root, dirs, files in os.walk(base): - dirs.sort() # deterministic traversal across filesystems - for name in sorted(files): - if name.endswith(".json"): - yield os.path.join(root, name), sub - - -def read_profile(path): - """Return (setting_id, instantiation, name) as present (or None).""" - try: - with open(path, "rb") as f: - data = json.loads(f.read()) - except (ValueError, OSError): - return None, None, None - if not isinstance(data, dict): - return None, None, None - return data.get("setting_id"), data.get("instantiation"), data.get("name") - - -def list_vendors(): - return sorted( - d for d in os.listdir(PROFILES_DIR) - if os.path.isdir(os.path.join(PROFILES_DIR, d)) - ) - - -_JSON_STR = r'"(?:[^"\\]|\\.)*"' - - -def remove_key_line(text, key): - """Remove a top-level `"key": "..."` member, preserving formatting. - - Handles both the common case (member has a trailing comma) and the member - being the LAST in its object (consume the preceding comma instead, so no - dangling comma is left). Returns (new_text, count). - """ - # Member followed by a comma (not the last in the object). - trailing = re.compile( - r'[ \t]*"' + re.escape(key) + r'"[ \t]*:[ \t]*' + _JSON_STR + r'[ \t]*,[ \t]*\r?\n' - ) - new, n = trailing.subn("", text, count=1) - if n: - return new, n - # Member is the last one: drop the preceding comma and the member itself. - leading = re.compile( - r',[ \t]*\r?\n[ \t]*"' + re.escape(key) + r'"[ \t]*:[ \t]*' + _JSON_STR - ) - return leading.subn("", text, count=1) - - -def _remove_key_in_tree(key, should_remove): - """Remove `key` from files where should_remove(sid, inst, text) is True.""" - removed = 0 - for vendor in list_vendors(): - for path, _type in iter_profile_files(os.path.join(PROFILES_DIR, vendor)): - with open(path, "rb") as f: - text = f.read().decode("utf-8") - sid, inst, _name = read_profile(path) - if not should_remove(sid, inst, text): - continue - new_text, n = remove_key_line(text, key) - if n == 0: - raise RuntimeError(f"Could not locate {key} line to remove: {path}") - json.loads(new_text) # fail loudly if removal broke the JSON - with open(path, "wb") as f: - f.write(new_text.encode("utf-8")) - removed += 1 - return removed - - -def remove_misspelled_settings_id(): - """Delete the misspelled "settings_id" key (extra "s") wherever it appears. - - The app never reads that key, so those presets effectively had no setting_id - and get a correct one assigned by the normal pass; here we drop the junk key. - """ - return _remove_key_in_tree( - "settings_id", lambda sid, inst, text: '"settings_id"' in text - ) - - -def strip_base_setting_ids(): - """Remove setting_id from every base profile (instantiation != "true"). - - Convention: only instantiated, user-selectable presets carry a setting_id; - base/template profiles do not. Applied across all vendors. - """ - return _remove_key_in_tree( - "setting_id", lambda sid, inst, text: bool(sid) and inst != "true" - ) - - -def replace_id_value(text, key, new_value): - """Replace the first top-level `"key": "..."` value, preserving all formatting.""" - pattern = re.compile(r'("' + re.escape(key) + r'"\s*:\s*)"(?:[^"\\]|\\.)*"') - repl = lambda m: m.group(1) + json.dumps(new_value, ensure_ascii=False) - new_text, n = pattern.subn(repl, text, count=1) - return new_text, n - - -def insert_setting_id(text, new_id): - """Insert a `"setting_id"` line into a preset that lacks one. - - Placed just before `filament_id` (or, failing that, `instantiation`) so it - matches the canonical key order, reusing that anchor line's indentation and - line ending. Only setting_id is added; filament_id is left untouched. - """ - for key in ("filament_id", "instantiation"): - m = re.search(r'^([ \t]*)"' + key + r'"[ \t]*:.*?(\r?\n)', text, re.MULTILINE) - if m: - line = f'{m.group(1)}"setting_id": {json.dumps(new_id, ensure_ascii=False)},{m.group(2)}' - return text[:m.start()] + line + text[m.start():], 1 - return text, 0 - - -def rewrite_file(path, new_id, has_setting_id): - """Set the preset's setting_id to new_id (replacing or inserting as needed). - - filament_id is intentionally left untouched. Uses binary IO so the file's - original line endings (LF or CRLF) and exact formatting are preserved - byte-for-byte apart from the changed/added line. The result is re-parsed to - guarantee it is still valid JSON. - """ - with open(path, "rb") as f: - text = f.read().decode("utf-8") - if has_setting_id: - text, n = replace_id_value(text, "setting_id", new_id) - else: - text, n = insert_setting_id(text, new_id) - if n == 0: - raise RuntimeError(f"Could not set setting_id on {path}") - json.loads(text) # fail loudly if the edit broke the JSON - with open(path, "wb") as f: - f.write(text.encode("utf-8")) - return True - - -def main(): - # 0. Drop the misspelled "settings_id" key wherever it appears. - typos = remove_misspelled_settings_id() - - # 1. Strip setting_id from base profiles everywhere (only instantiated presets keep one). - stripped = strip_base_setting_ids() - - # 2. Assign the deterministic setting_id to every instantiated preset of every - # non-reserved vendor. - changed = added = 0 - vendors_touched = [] - for vendor in list_vendors(): - if vendor in RESERVED_VENDORS: - continue - vendor_changed = 0 - for path, type_name in iter_profile_files(os.path.join(PROFILES_DIR, vendor)): - sid, inst, name = read_profile(path) - if inst != "true": - continue - if not name: - raise RuntimeError(f"instantiated preset has no \"name\": {path}") - new_id = generate_preset_setting_id(vendor, type_name, name) - if sid == new_id: - continue # already correct - idempotent - rewrite_file(path, new_id, has_setting_id=sid is not None) - changed += 1 - vendor_changed += 1 - if sid is None: - added += 1 - if vendor_changed: - vendors_touched.append((vendor, vendor_changed)) - - print(f"Misspelled settings_id removed : {typos}") - print(f"Base setting_ids stripped : {stripped}") - print(f"Reserved vendors : {sorted(RESERVED_VENDORS)}") - print(f"Vendors updated : {len(vendors_touched)}") - for v, n in vendors_touched: - print(f" {v} ({n} files)") - print(f"Files rewritten : {changed} (of which newly assigned: {added})") - return 0 - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index 285b2fbf64..e95e2c29e8 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -3,8 +3,7 @@ import json import argparse from pathlib import Path -from assign_vendor_setting_ids import generate_preset_setting_id -from assign_filament_ids import check_filament_ids +from orca_id_tool import generate_preset_setting_id, check_filament_ids OBSOLETE_KEYS = { "acceleration", "scale", "rotate", "duplicate", "duplicate_grid", @@ -488,10 +487,11 @@ PROFILE_SUBDIRS = ("filament", "process", "machine") def check_setting_id_uniqueness(profiles_dir): """ - Validate setting_id across every vendor (see scripts/assign_vendor_setting_ids.py): + Validate setting_id across every vendor (see scripts/orca_id_tool.py): 1. Every instantiated preset must HAVE a setting_id. (all vendors) 2. A stored setting_id must equal generate_preset_setting_id(vendor, type, name); a stale - value means the JSON was edited without rerunning assign_vendor_setting_ids.py. + value means the JSON was edited without rerunning + "python scripts/orca_id_tool.py --generate --setting-id". (all vendors EXCEPT the formula-exempt ones, e.g. BBL) 3. Base profiles (instantiation != "true") must not carry a setting_id. (all vendors) 4. setting_id must be globally unique - no two files may share one. (all vendors) @@ -523,7 +523,8 @@ def check_setting_id_uniqueness(profiles_dir): errors += 1 print_error( f'profile {rel} uses the misspelled key "settings_id" ' - f'(should be "setting_id"); run assign_vendor_setting_ids.py' + f'(should be "setting_id"); run ' + f'"python scripts/orca_id_tool.py --generate --setting-id"' ) sid = data.get("setting_id") instantiated = data.get("instantiation") == "true" @@ -533,7 +534,8 @@ def check_setting_id_uniqueness(profiles_dir): errors += 1 print_error( f'base profile {rel} (instantiation != "true") must not have a ' - f'setting_id ("{sid}"); run assign_vendor_setting_ids.py' + f'setting_id ("{sid}"); run ' + f'"python scripts/orca_id_tool.py --generate --setting-id"' ) continue # Rule 1: every instantiated preset must have a setting_id. @@ -541,7 +543,7 @@ def check_setting_id_uniqueness(profiles_dir): errors += 1 print_error( f"instantiated preset {rel} is missing a setting_id; " - f"run assign_vendor_setting_ids.py" + f'run "python scripts/orca_id_tool.py --generate --setting-id"' ) continue # Rule 2: the stored id must match the deterministic rule. BBL keeps its @@ -553,7 +555,7 @@ def check_setting_id_uniqueness(profiles_dir): print_error( f'setting_id "{sid}" in {rel} does not match the expected ' f'"{expected}" for {vendor}/{sub}/{data.get("name", "")}; ' - f"run assign_vendor_setting_ids.py" + f'run "python scripts/orca_id_tool.py --generate --setting-id"' ) continue # Rule 4: collect for the global-uniqueness check below. @@ -631,7 +633,7 @@ def main(): # Runs once over the whole tree regardless of the --vendor filter. errors_found += check_setting_id_uniqueness(profiles_dir) - # Global filament_id check (see scripts/assign_filament_ids.py): effective ids + # Global filament_id check (see scripts/orca_id_tool.py): effective ids # are resolved loader-faithfully and validated against the sanctioned snapshot # (scripts/filament_id_snapshot.json). Runs once over the whole tree. errors_found += check_filament_ids(profiles_dir) diff --git a/scripts/assign_filament_ids.py b/scripts/orca_id_tool.py similarity index 54% rename from scripts/assign_filament_ids.py rename to scripts/orca_id_tool.py index e10dbe138e..8d08bde4ab 100755 --- a/scripts/assign_filament_ids.py +++ b/scripts/orca_id_tool.py @@ -1,9 +1,13 @@ #!/usr/bin/env python3 """ -Mint deterministic filament_id values for OrcaSlicer system filament products and -validate the tree against the sanctioned-state snapshot. +Assign and validate the deterministic ids of OrcaSlicer system profiles: the +per-product filament_id and the per-preset setting_id. -Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md): +Both ids are pure functions of the thing they name, so nothing here is ever +invented: the tool only writes the id the rules below already imply, and a tree +that already satisfies them is left untouched. + +filament_id policy (see docs/HLSD/filament_id.md): * filament_id is a PRODUCT id: one named spool product = one id, shared by all of that product's per-printer/per-nozzle variants in every bundle. The granularity is the name on the spool, not the brand: "AAA PLA Lite" and @@ -20,8 +24,8 @@ Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md) filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, "filament_product/<filament_vendor>/<filament_type>/<filament_name>") ) 8 chars total, which satisfies the AMS length limit. Nobody invents ids by - hand; on the astronomically rare collision with an existing id the input - is salted ("/1", "/2", ...) until free and the result is frozen in file. + hand; on the astronomically rare collision with another product's id the + input is salted ("/1", "/2", ...) until free and the result is frozen in file. Identity changes (a filament rename, a filament_vendor/filament_type fix) change the id BY DESIGN. * Reserved id spaces that are never minted into or altered: @@ -41,25 +45,34 @@ Policy (companion to assign_vendor_setting_ids.py; see docs/HLSD/filament_id.md) diff to that file (the maintainer gate). It sanctions state, never exceptions: no check consults it to excuse a preset from the rules above. +setting_id policy (see AGENTS.md "Critical Constraints"): + * setting_id is a PRESET id, a pure function of the preset's identity: + setting_id = base62_16( uuid5(NAMESPACE, "<vendor>/<type>/<name>") ) + The same value is recomputed on the fly by the C++ app + (Slic3r::generate_preset_setting_id); the two MUST stay byte-identical, and + the validator (orca_extra_profile_check.py) imports the rule from here. + Uniqueness is therefore automatic: two presets collide only if they share + vendor + type + name, which the validator flags. + * Only instantiated presets (instantiation == "true") carry a setting_id; + base / template profiles do not. + * Bambu (BBL) owns the authoritative "G*" setting_id space and is the only + reserved vendor: its setting_ids are never rewritten, which keeps + Bambu-synced presets backward compatible. filament_id has no such exemption + — the GF* catalog space is frozen and ownerless, so BBL's filament_ids are + minted like every other vendor's. + The effective-id resolution below is loader-faithful (PresetBundle.cpp load_vendor_configs_from_json): own filament_id key, else walk `inherits` within the vendor map, with OrcaFilamentLibrary base-bundle fallback; once a chain enters OFL it stays in OFL; a vendor chain that dead-ends id-less retries its direct parent in the OFL map. filament_vendor / filament_type resolve the same way. -Run from anywhere: python3 scripts/assign_filament_ids.py - (default) mint + insert ids for id-less filaments, mint + replace - non-OF-format declarations; idempotent, never rewrites a - valid OF-format id; a no-op once every filament has one - --mint "Vendor/Type/Filament" - print the id that triple would mint; touches nothing - --update-snapshot regenerate the snapshot from the tree - --remint VENDOR re-derive VENDOR's declared ids from their triples and - rewrite mismatches in place (repeatable) - --drop-redundant-ids VENDOR - delete declarations that re-declare an inherited OFL id - --check run the validation checks (also run by CI through - orca_extra_profile_check.py); exit nonzero on errors +Run from anywhere: + python scripts/orca_id_tool.py --generate write the ids every profile should carry + python scripts/orca_id_tool.py --dry-run preview that; writes nothing + python scripts/orca_id_tool.py --check validate filament_id state (what CI runs) + python scripts/orca_id_tool.py --update-snapshot re-record the sanctioned filament_id state +Narrow --generate with --filament-id / --setting-id and --vendor VENDOR (repeatable). """ import argparse @@ -69,11 +82,15 @@ import re import sys import uuid -sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) -from assign_vendor_setting_ids import ALPHABET, NAMESPACE # noqa: E402 +# The id namespace baked into both Python and C++ (Slic3r::generate_preset_setting_id). +# Dedicated, distinct from the cloud namespace (f47ac10b-...) so the two id spaces never +# coincide; it is the root of BOTH id rules below — never change it. +NAMESPACE = uuid.UUID("c1f4d9e2-7a3b-5c8d-9e0f-1a2b3c4d5e6f") +ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" +SETTING_ID_LENGTH = 16 -# Dedicated namespace for filament_id, derived from the setting_id namespace baked -# into both Python and C++ (assign_vendor_setting_ids.NAMESPACE). Never change it. +# Dedicated namespace for filament_id, derived from the setting_id namespace above. +# Never change it. # FILAMENT_ID_NAMESPACE == UUID("c4d3ff49-4c32-5534-a3e3-00894157ab97") FILAMENT_ID_NAMESPACE = uuid.uuid5(NAMESPACE, "filament_id") FILAMENT_ID_LENGTH = 6 # base62 digits after the "OF" prefix -> 8 chars total @@ -88,6 +105,14 @@ BAMBU_MAP_PATH = os.path.normpath( OFL = "OrcaFilamentLibrary" +# Bambu (BBL) is the only vendor exempt from the setting_id rule: it keeps its +# authoritative "G*" cloud ids. No vendor is exempt from the filament_id rule. +RESERVED_VENDORS = {"BBL"} + +# The profile types that carry a setting_id; the subdir name is also the type +# name, matching Preset::get_type_string() on the C++ side. +PROFILE_SUBDIRS = ("filament", "process", "machine") + OF_ID_RE = re.compile(r"^OF[0-9A-Za-z]{6}$") # User-custom id space minted by CreatePresetsDialog.cpp ("P" + md5(name)[0:7]); # reserved case-insensitively, together with its "null" sentinel. @@ -97,8 +122,11 @@ USER_CUSTOM_ID_RE = re.compile(r"^P[0-9A-Fa-f]{7}$", re.IGNORECASE) BASE_NAME_RE = re.compile(r"\s?@.*$") # Salt iterations accepted by the identity check (check 3). MAX_CHECK_SALT = 8 +# A JSON string literal, for the byte-preserving key edits. +_JSON_STR = r'"(?:[^"\\]|\\.)*"' -UPDATE_HINT = 'run "python scripts/assign_filament_ids.py --update-snapshot" and commit the diff for maintainer review' +GENERATE_CMD = "python scripts/orca_id_tool.py --generate" +UPDATE_HINT = 'run "python scripts/orca_id_tool.py --update-snapshot" and commit the diff for maintainer review' BAMBU_MAP_HINT = 'regenerate the map with "python scripts/update_bambu_filament_ids.py" and commit the diff for maintainer review' @@ -131,6 +159,32 @@ def _utf8_console(): # Minting # --------------------------------------------------------------------------- +def _base62_tail(n, length): + """The low `length` base62 digits of n, most-significant first. + + The shared tail of both id rules. Its output bytes are pinned by the C++ + golden vectors (tests/libslic3r/test_preset_setting_id.cpp) and by the + filament_id snapshot — never change it. + """ + digits = [] + for _ in range(length): + digits.append(ALPHABET[n % 62]) + n //= 62 + return "".join(reversed(digits)) + + +def generate_preset_setting_id(vendor, type_name, name): + """Deterministic 16-char base62 setting_id for a preset. + + input = f"{vendor}/{type_name}/{name}"; u = uuid5(NAMESPACE, input); + id = the low SETTING_ID_LENGTH base62 digits of int(u.bytes, "big"), + most-significant first. Kept byte-identical to the C++ + Slic3r::generate_preset_setting_id. + """ + u = uuid.uuid5(NAMESPACE, f"{vendor}/{type_name}/{name}") + return _base62_tail(int.from_bytes(u.bytes, "big"), SETTING_ID_LENGTH) + + def base_name(name): """Filament name of a preset: name with the first "@..." suffix stripped.""" return BASE_NAME_RE.sub("", name, count=1) @@ -148,22 +202,24 @@ def generate_filament_id(filament_vendor, filament_type, filament_name, salt=0): if salt: key = f"{key}/{salt}" u = uuid.uuid5(FILAMENT_ID_NAMESPACE, key) - n = int.from_bytes(u.bytes, "big") - digits = [] - for _ in range(FILAMENT_ID_LENGTH): - digits.append(ALPHABET[n % 62]) - n //= 62 - return "OF" + "".join(reversed(digits)) + return "OF" + _base62_tail(int.from_bytes(u.bytes, "big"), FILAMENT_ID_LENGTH) def mint_filament_id(filament_vendor, filament_type, filament_name, taken): - """Mint the product's id, salting past any id in `taken`.""" - for salt in range(10000): + """Mint the product's id: the first salt iteration not in `taken`. + + Bounded by MAX_CHECK_SALT, the last iteration the identity check accepts, so + the tool can never write an id its own --check would reject. Exhausting it + would take nine base62 collisions on one triple; it means something is wrong + with `taken`, not that a tenth salt is needed. + """ + for salt in range(MAX_CHECK_SALT + 1): candidate = generate_filament_id(filament_vendor, filament_type, filament_name, salt) if candidate not in taken: return candidate raise RuntimeError( - f"could not mint a free filament_id for {filament_vendor}/{filament_type}/{filament_name}") + f"could not mint a free filament_id for {filament_vendor}/{filament_type}/" + f"{filament_name}: salts 0..{MAX_CHECK_SALT} are all taken") def mint_iterations(triple): @@ -194,6 +250,33 @@ def list_vendor_names(profiles_dir): ) +def list_profile_dirs(profiles_dir): + """Every vendor directory under the tree, index or not. + + What the setting_id pass walks, and what orca_extra_profile_check.py walks: + setting_id is a per-file property, so a bundle whose index has not landed yet + must still be assignable — otherwise the validator flags files the tool + refuses to touch. (filament_id is driven by each bundle's filament_list + instead, hence list_vendor_names above.) + """ + profiles_dir = str(profiles_dir) + return sorted(d for d in os.listdir(profiles_dir) + if os.path.isdir(os.path.join(profiles_dir, d))) + + +def iter_profile_files(vendor_dir): + """Yield (json path, type) under a vendor bundle, in a deterministic order.""" + for sub in PROFILE_SUBDIRS: + base = os.path.join(vendor_dir, sub) + if not os.path.isdir(base): + continue + for root, dirs, files in os.walk(base): + dirs.sort() # deterministic traversal across filesystems + for name in sorted(files): + if name.endswith(".json"): + yield os.path.join(root, name), sub + + def load_vendor_filaments(profiles_dir, vendor): """Load a vendor's filament presets from its index's filament_list. @@ -230,7 +313,7 @@ def load_vendor_filaments(profiles_dir, vendor): return presets, errors -def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, skip_own=False): +def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False): """Walk the inherits chain for the effective filament_id, loader-faithfully. Mirrors PresetBundle.cpp load_vendor_configs_from_json: a hop resolves in the @@ -240,10 +323,6 @@ def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, hops). Additionally, a vendor preset that never resolves an id inside the vendor is re-tried against the OFL map keyed by its direct parent name. - skip_own ignores the first preset's own filament_id key (used to compute the - id its inherits chain would resolve WITHOUT the declaration — the - --drop-redundant-ids redundancy test). - Returns (filament_id or None, source, ofl_entry) where source is one of "own"/"inherited"/"missing"/"dangling"/"cycle" and ofl_entry is the name of the OFL preset through which a vendor chain entered OFL (None when the id was @@ -263,7 +342,7 @@ def resolve_filament_id(name, filaments, ofl_filaments, seen=None, in_ofl=False, rec, in_ofl, entry = ofl_filaments[name], True, name if rec is None: return None, "dangling", None - if rec.get("filament_id") and not skip_own: + if rec.get("filament_id"): return rec["filament_id"], "own" if len(seen) == 1 else "inherited", entry parent = rec.get("inherits") if parent: @@ -541,8 +620,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, continue print_error( f'filament_id "{fid}" ({vendor}) is not a minted "OF" id; new ' - f'filament ids must come from "python scripts/assign_filament_ids.py" ' - f'(see --mint)') + f'filament ids must come from "{GENERATE_CMD}"') errors += 1 # -- 2. snapshot equality (both directions) ----------------------------- @@ -594,7 +672,8 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f'filament_id "{fid}" declared by "{rec["name"]}" ({rec["file"]}) does ' f'not match the mint of its triple "{"/".join(triple)}": expected ' f'"{generate_filament_id(*triple)}" (or a salted iteration); paste the ' - f"expected id, or fix the triple and --remint the vendor") + f'expected id, or fix the triple and run "{GENERATE_CMD} --vendor {vendor}" ' + f"(preview with --dry-run), then --update-snapshot") errors += 1 for vendor, rec, eff, triple in sorted( analysis["id_mismatches"], key=lambda x: (x[0], x[1]["file"])): @@ -611,7 +690,7 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, print_error( f'instantiated filament "{name}" ({file}) resolves no filament_id anywhere ' f"in its inherits chain — this is a hard load error in the C++ loader; " - f'run "python scripts/assign_filament_ids.py" (expected id for filament ' + f'run "{GENERATE_CMD}" (expected id for filament ' f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') errors += 1 @@ -722,20 +801,24 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, # --update-snapshot # --------------------------------------------------------------------------- -def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): +def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, dry_run=False): """Regenerate the snapshot from the tree. - Refuses to sanction a reserved-namespace id (or a claim on one) and an id - declared under more than one triple: neither can ever pass --check, so - writing it into the snapshot would only hide the mistake until CI. + Refuses to sanction a tree it could not read whole, a reserved-namespace id + (or a claim on one) and an id declared under more than one triple: none of + them can ever pass --check, so writing them into the snapshot would only + hide the mistake until CI. Idempotent: a second run over an unchanged tree changes nothing. Returns 0 on success. """ analysis = analyze_tree(profiles_dir) + # A tree that could not be read whole cannot be sanctioned: the snapshot + # would silently drop the unreadable bundle's ids and claims, and the diff + # would read as a deliberate removal. + refusals = len(analysis["read_errors"]) for msg in analysis["read_errors"]: print_error(msg) - refusals = 0 for vendor in sorted(analysis["vendor_ids"]): for fid in sorted(analysis["vendor_ids"][vendor]): is_reserved, owner = reserved_space_owner(fid) @@ -769,13 +852,15 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): for fid, entry in old_ids.items()) changed = new_snap != (old_snap or {"ids": {}}) - if changed: + if changed and not dry_run: write_snapshot(snapshot_path, new_snap) print_info(f"snapshot ids : {len(new_snap['ids'])} (+{len(added_ids)} / -{len(removed_ids)})") print_info(f"claims added : {added_claims}") print_info(f"claims removed : {removed_claims}") - if changed: + if changed and dry_run: + print_success(f"dry run: {snapshot_path} would be rewritten; nothing written") + elif changed: print_success(f"snapshot written to {snapshot_path}") else: print_success("snapshot already up to date; nothing changed") @@ -785,61 +870,92 @@ def update_snapshot(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): # --------------------------------------------------------------------------- # Byte-preserving profile edits # --------------------------------------------------------------------------- +# Binary IO throughout: a profile keeps its original line endings (LF or CRLF), +# its BOM and its exact formatting apart from the one line being touched. + +def insert_key_line(text, key, value, before=(), after=()): + """Insert a `"key": value` line into a preset that lacks one. + + Placed just before the first `before` anchor the file has (matching the + canonical key order), else just after the first `after` anchor, reusing that + anchor line's indentation and line ending. Returns (text, insertions made). + """ + def line(m): + return (f'{m.group(1)}"{key}": {json.dumps(value, ensure_ascii=False)},' + f'{m.group(2)}') + + for anchors, at_start in ((before, True), (after, False)): + for anchor in anchors: + m = re.search(r'^([ \t]*)"' + re.escape(anchor) + r'"[ \t]*:.*?(\r?\n)', + text, re.MULTILINE) + if m: + cut = m.start() if at_start else m.end() + return text[:cut] + line(m) + text[cut:], 1 + return text, 0 + + +def replace_key_value(text, key, new_value, old_value=None): + """Swap the JSON string VALUE on the `"key"` line, byte-preserving the rest. + + When old_value is given the line must carry exactly that value, so a stale + rewrite fails loudly instead of clobbering an unexpected id. + Returns (text, replacements made). + """ + value = (re.escape(json.dumps(old_value, ensure_ascii=False)) + if old_value is not None else _JSON_STR) + pattern = re.compile( + r'(^[ \t]*"' + re.escape(key) + r'"[ \t]*:[ \t]*)' + value, re.MULTILINE) + return pattern.subn( + lambda m: m.group(1) + json.dumps(new_value, ensure_ascii=False), text, count=1) + + +def delete_key_line(text, key, old_value=None): + """Delete the `"key"` line, byte-preserving the rest. + + Handles both the canonical layout (trailing comma) and a last-property + layout (comma on the preceding line, consumed so no dangling comma is left). + Returns (text, deletions made). + """ + value = (re.escape(json.dumps(old_value, ensure_ascii=False)) + if old_value is not None else _JSON_STR) + member = r'"' + re.escape(key) + r'"[ \t]*:[ \t]*' + value + m = re.search(r'^[ \t]*' + member + r'[ \t]*,[ \t]*\r?\n', text, re.MULTILINE) + if m: + return text[:m.start()] + text[m.end():], 1 + m = re.search(r',[ \t]*\r?\n[ \t]*' + member + r'[ \t]*(?=\r?\n)', text) + if m: + return text[:m.start()] + text[m.end():], 1 + return text, 0 + def insert_filament_id(text, new_id): - """Insert a `"filament_id"` line into a preset that lacks one. - - Placed just before `instantiation` (or, failing that, after the `name` line) - so it matches the canonical key order, reusing that anchor line's indentation - and line ending. Same byte-preserving approach as assign_vendor_setting_ids. - """ - m = re.search(r'^([ \t]*)"instantiation"[ \t]*:.*?(\r?\n)', text, re.MULTILINE) - if m: - line = f'{m.group(1)}"filament_id": {json.dumps(new_id, ensure_ascii=False)},{m.group(2)}' - return text[:m.start()] + line + text[m.start():], 1 - m = re.search(r'^([ \t]*)"name"[ \t]*:.*?(\r?\n)', text, re.MULTILINE) - if m: - line = f'{m.group(1)}"filament_id": {json.dumps(new_id, ensure_ascii=False)},{m.group(2)}' - return text[:m.end()] + line + text[m.end():], 1 - return text, 0 + """Insert a `"filament_id"` line before `instantiation`, else after `name`.""" + return insert_key_line(text, "filament_id", new_id, + before=("instantiation",), after=("name",)) def replace_filament_id_value(text, old_id, new_id): - """Swap the JSON string VALUE on the `"filament_id"` line, byte-preserving - everything else. Returns (text, replacements made). + """Swap the value on the `"filament_id"` line; it must carry old_id.""" + return replace_key_value(text, "filament_id", new_id, old_value=old_id) + + +def insert_setting_id(text, new_id): + """Insert a `"setting_id"` line before `filament_id`, else `instantiation`. + + Falls back to `name` — the one key every preset has — so the anchor does not + depend on whether filament_id has been written yet: a dry run, which does not + write it, must reach the same verdict as the real run that does. """ - pattern = re.compile( - r'(^[ \t]*"filament_id"[ \t]*:[ \t]*)' - + re.escape(json.dumps(old_id, ensure_ascii=False)), - re.MULTILINE) - return pattern.subn( - lambda m: m.group(1) + json.dumps(new_id, ensure_ascii=False), text, count=1) + return insert_key_line(text, "setting_id", new_id, + before=("filament_id", "instantiation"), after=("name",)) -def delete_filament_id_line(text, old_id): - """Delete the `"filament_id"` line, byte-preserving the rest. - - Handles both the canonical layout (trailing comma) and a last-property - layout (comma on the preceding line). Returns (text, deletions made). - """ - val = re.escape(json.dumps(old_id, ensure_ascii=False)) - m = re.search(r'^[ \t]*"filament_id"[ \t]*:[ \t]*' + val + r'[ \t]*,[ \t]*\r?\n', - text, re.MULTILINE) - if m: - return text[:m.start()] + text[m.end():], 1 - m = re.search(r',[ \t]*\r?\n[ \t]*"filament_id"[ \t]*:[ \t]*' + val + r'[ \t]*(?=\r?\n)', - text) - if m: - return text[:m.start()] + text[m.end():], 1 - return text, 0 - - -def _edit_profile(path, edit): +def _edit_profile(path, edit, dry_run=False, what="edit"): """Apply `edit(text) -> (text, n)` to the profile at path, byte-preserving. - Binary IO keeps the file's original line endings (LF or CRLF), BOM and exact - formatting apart from the edit; the result is re-parsed and returned so the - caller can verify the outcome. Raises when the edit found no anchor. + The result is re-parsed and returned so the caller can verify the outcome — + in a dry run too, where only the write itself is skipped. Raises when the + edit found no anchor or produced invalid JSON. """ with open(path, "rb") as f: raw = f.read() @@ -847,69 +963,177 @@ def _edit_profile(path, edit): text = raw.decode("utf-8-sig") text, n = edit(text) if n == 0: - raise RuntimeError(f"could not apply filament_id edit to {path}") - data = json.loads(text) # fail loudly if the edit broke the JSON - with open(path, "wb") as f: - f.write((b"\xef\xbb\xbf" if bom else b"") + text.encode("utf-8")) + raise RuntimeError(f"could not apply {what} to {path}") + try: + data = json.loads(text) # fail loudly if the edit broke the JSON + except ValueError as e: + raise RuntimeError(f"{what} broke the JSON in {path}: {e}") from None + if not dry_run: + with open(path, "wb") as f: + f.write((b"\xef\xbb\xbf" if bom else b"") + text.encode("utf-8")) return data -def write_filament_id(path, new_id): +def write_filament_id(path, new_id, dry_run=False): """Insert new_id into the profile at path, byte-preserving everything else.""" - _edit_profile(path, lambda text: insert_filament_id(text, new_id)) + _edit_profile(path, lambda text: insert_filament_id(text, new_id), + dry_run, "filament_id insert") -def rewrite_filament_id(path, old_id, new_id): +def rewrite_filament_id(path, old_id, new_id, dry_run=False): """Replace the filament_id value old_id -> new_id; re-parses to verify.""" - data = _edit_profile(path, lambda text: replace_filament_id_value(text, old_id, new_id)) + data = _edit_profile(path, lambda text: replace_filament_id_value(text, old_id, new_id), + dry_run, "filament_id rewrite") if data.get("filament_id") != new_id: raise RuntimeError(f'rewrite of filament_id "{old_id}" -> "{new_id}" in {path} ' f"did not take effect") -def remove_filament_id(path, old_id): - """Delete the filament_id declaration line; re-parses to verify.""" - data = _edit_profile(path, lambda text: delete_filament_id_line(text, old_id)) - if "filament_id" in data: - raise RuntimeError(f'deletion of filament_id "{old_id}" from {path} did not take effect') - - # --------------------------------------------------------------------------- -# Default run: mint + insert ids for id-less filaments +# --generate # --------------------------------------------------------------------------- -def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): - """Mint + insert ids for id-less filaments; mint + replace non-OF-format - declarations. Never rewrites a valid (OF-format) existing id. +def make_want_id(analysis, snapshot=None): + """Build the id policy: want_id(triple) -> the id that triple must carry. - A filament = (vendor, base name) group over instantiated presets with no - effective id. The minted id is a pure function of the filament's triple — - (filament_vendor, filament_type) resolved on the root(s), filament name — - and is inserted into the filament's root(s): the id-less presets of the - SAME filament its members inherit, or the member itself otherwise (a parent - of another filament cannot carry this filament's id — check 3). + A triple's id is its first mint iteration that no OTHER product holds. An id + is blocked when the tree or the snapshot records it under a triple set other + than exactly {triple}, or when this run already handed it to a different + triple. Same-triple reuse is therefore convergence — one product, one id in + every bundle — and salting only ever steps past another product's id. - A declaration whose value is not OF-format (e.g. a vendor bundle synced - from an upstream source that ships its own catalog ids, such as BBL's GF*) - is treated the same as a missing filament: a fresh id is minted for the - declarer's triple and the value is replaced in place (declarers that share - one triple across several per-printer roots converge on the same id, same - as the multi-root filaments above). This is what makes a future BBL sync - self-healing: upstream files arrive with GF ids, this pass replaces them, - and the generated Bambu catalog map (keyed by the ids this mints) already - knows the resulting rows. - - Returns (files_changed, errors). + Only a CONFORMANT record holds an id: a declaration whose value is not a mint + iteration of its own triple is transient — this run rewrites it — so it must + not block the product that legitimately mints the id it is squatting on. That + also makes the policy independent of which vendors a run writes, so a + --vendor-narrowed run picks the same ids as a full one. """ + holders = {} # id -> the set of triples that legitimately hold it + for fid, ts in analysis["triple_sets"].items(): + conformant = {t for t in ts if fid in mint_iterations(t)} + if conformant: + holders[fid] = conformant + for fid, entry in (snapshot or {}).get("ids", {}).items(): + triple = tuple(snapshot_triple(entry)) + if fid in mint_iterations(triple): + holders.setdefault(fid, set()).add(triple) + + assigned = {} # triple -> the id chosen for it this run + run_taken = {} # id -> the triple this run gave it to + + def want_id(triple): + if triple not in assigned: + blocked = {fid for fid, ts in holders.items() if ts != {triple}} + blocked |= {fid for fid, t in run_taken.items() if t != triple} + cand = mint_filament_id(*triple, taken=blocked) + assigned[triple] = cand + run_taken[cand] = triple + return assigned[triple] + + return want_id + + +def _incomplete_triple(triple): + """The name(s) of the empty mint-key fields, or "" when both are present.""" + return " and ".join(k for k, v in (("filament_vendor", triple[0]), + ("filament_type", triple[1])) if not v) + + +def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, + vendors=None, dry_run=False, changed_paths=None): + """Make every filament carry the id its own triple mints. + + One rule, applied to declarations and to id-less filaments alike: + * a declared id that is not a mint iteration of the declarer's own triple — + a wrong OF id, or a foreign one such as a Bambu "GF*" arriving with an + upstream sync — is replaced in place; + * an instantiated filament that resolves no id at all gets one inserted + into its root(s): the id-less presets of the SAME filament its members + inherit, or the member itself (a parent of another filament cannot carry + this filament's id — check 3). + An id already equal to ANY salt iteration of its own triple is conformant + (check 3) and left alone, so deliberate salt splits — distinct presets of one + product kept apart for per-printer AMS matching — survive. + + `vendors` restricts what is WRITTEN; the analysis and the id policy always + span the whole tree, so a narrowed run mints exactly what a full one would. + `changed_paths`, when a set is passed, collects the files that changed. A + file whose layout offers no anchor for the edit is reported and counted as an + error, so one odd profile cannot abort the pass over all the others. + Never touches the snapshot — run --update-snapshot afterwards and review the + diff. Returns (files_changed, errors). + """ + _utf8_console() analysis = analyze_tree(profiles_dir) errors = 0 for msg in analysis["read_errors"]: print_error(msg) errors += 1 + wanted = None + if vendors is not None: + wanted = set(vendors) + # A vendor directory without a bundle index simply has no filaments to + # process; only a name that is no directory at all is an error. + unknown = sorted(wanted - set(list_profile_dirs(profiles_dir))) + if unknown: + for v in unknown: + print_error(f'unknown vendor "{v}" in {profiles_dir}') + return 0, errors + len(unknown) - # Group id-less instantiated presets by filament. - filaments = {} # (vendor, filament_name) -> [rec] + want_id = make_want_id(analysis, load_snapshot(snapshot_path)) + verb = "would " if dry_run else "" + files_changed = 0 + reminted = 0 + inserted = 0 + held_here = set() # ids the filaments this run may write legitimately hold + left_standing = {} # id -> files still declaring one non-conformantly + + # 1. Declarations that are not the mint of their own triple. + for vendor, rec, fid, triple in sorted( + analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): + in_scope = wanted is None or vendor in wanted + if fid in mint_iterations(triple): + if in_scope: + held_here.add(fid) + continue + if not in_scope: + left_standing.setdefault(fid, []).append(rec["file"]) + continue + missing = _incomplete_triple(triple) + if missing: + print_error( + f'cannot re-mint "{rec["file"]}" (filament_id "{fid}"): resolves empty ' + f'{missing}; the mint key needs both (generic materials use ' + f'filament_vendor "Generic")') + errors += 1 + left_standing.setdefault(fid, []).append(rec["file"]) + continue + want = want_id(triple) + if fid == want: + continue + try: + rewrite_filament_id(rec["path"], fid, want, dry_run) + except (OSError, RuntimeError, ValueError) as e: + print_error(str(e)) + errors += 1 + left_standing.setdefault(fid, []).append(rec["file"]) + continue + files_changed += 1 + reminted += 1 + held_here.add(want) + if changed_paths is not None: + # Index sub_paths are "/"-joined even on Windows, where the + # setting_id pass reaches the same file through os.walk: normalize + # or one file touched by both passes counts as two. + changed_paths.add(os.path.normpath(rec["path"])) + print_info(f'{verb}rewrite {rec["file"]}: "{fid}" -> "{want}" ' + f'(triple "{"/".join(triple)}")') + + # 2. Instantiated filaments that resolve no id at all, grouped by filament. + filaments = {} # (vendor, filament name) -> [rec] for vendor, name, _file in analysis["missing_effective"]: + if wanted is not None and vendor not in wanted: + continue rec = analysis["vendors"][vendor][name] if rec["id_source"] in ("cycle", "dangling"): print_error(f'cannot mint for "{vendor}/{name}": broken inherits chain ' @@ -918,50 +1142,22 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): continue filaments.setdefault((vendor, base_name(name)), []).append(rec) - # Declarations whose value is not OF-format: treated as missing too (see - # docstring). Grouped by triple, not by (vendor, filament), so declarers - # that legitimately share one triple across several files converge on one - # freshly minted id instead of each getting their own. - non_of_declarers = [ - (vendor, rec, fid, triple) for vendor, rec, fid, triple in analysis["declarer_triples"] - if not OF_ID_RE.match(fid)] - - if not filaments and not non_of_declarers: - print_success("every instantiated filament already resolves an OF-format " - "filament_id; nothing to do (0 files changed)") - return 0, errors - - # Ids already spoken for: the whole tree (declared or effective) + snapshot. - snapshot = load_snapshot(snapshot_path) or {"ids": {}} - taken = set(snapshot["ids"]) - for occurring in analysis["vendor_ids"].values(): - taken |= occurring - - # Root preset(s): the direct vendor-side parents of the members (id-less by - # construction) that belong to the same filament, or the member itself. - roots = {} # (vendor, filament_name) -> {preset name: rec} - for key, members in sorted(filaments.items()): - vendor, filament_name = key + ofl_map = analysis["vendors"].get(OFL, {}) + for (vendor, filament_name), members in sorted(filaments.items()): vendor_map = analysis["vendors"][vendor] - filament_roots = {} + # Root preset(s): the direct vendor-side parents of the members (id-less + # by construction) that belong to the same filament, or the member itself. + roots = {} for rec in members: parent = rec.get("inherits") root = vendor_map.get(parent) if parent else None if (root is None or root.get("filament_id") or base_name(root["name"]) != filament_name): root = rec # root-less member carries the id itself - filament_roots[root["name"]] = root - roots[key] = filament_roots - - ofl_map = analysis["vendors"].get(OFL, {}) - files_changed = 0 - filaments_minted = 0 - for key, filament_roots in sorted(roots.items()): - vendor, filament_name = key - vendor_map = analysis["vendors"][vendor] + roots[root["name"]] = root fields = {(resolve_filament_field(n, "filament_vendor", vendor_map, ofl_map), resolve_filament_field(n, "filament_type", vendor_map, ofl_map)) - for n in filament_roots} + for n in roots} if len(fields) > 1: print_error( f'cannot mint for filament "{vendor}/{filament_name}": its roots resolve ' @@ -969,252 +1165,321 @@ def assign_missing_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH): f"align the fields first") errors += 1 continue - fvendor, ftype = next(iter(fields)) - if not fvendor or not ftype: - missing = " and ".join( - k for k, v in (("filament_vendor", fvendor), - ("filament_type", ftype)) if not v) + triple = (*next(iter(fields)), filament_name) + missing = _incomplete_triple(triple) + if missing: print_error( f'cannot mint for filament "{vendor}/{filament_name}": it resolves empty ' f'{missing}; the mint key needs both (generic materials use ' f'filament_vendor "Generic")') errors += 1 continue - new_id = mint_filament_id(fvendor, ftype, filament_name, taken) - taken.add(new_id) - filaments_minted += 1 - for name in sorted(filament_roots): - root = filament_roots[name] - write_filament_id(root["path"], new_id) + new_id = want_id(triple) + for name in sorted(roots): + root = roots[name] + try: + write_filament_id(root["path"], new_id, dry_run) + except (OSError, RuntimeError, ValueError) as e: + print_error(str(e)) + errors += 1 + continue files_changed += 1 - print_info(f'filament "{vendor}/{filament_name}": filament_id "{new_id}" ' - f'-> {root["file"]}') + inserted += 1 + held_here.add(new_id) + if changed_paths is not None: + changed_paths.add(os.path.normpath(root["path"])) + print_info(f'{verb}insert filament "{vendor}/{filament_name}": filament_id ' + f'"{new_id}" -> {root["file"]}') - # Non-OF-format declarations: mint once per triple, rewrite every declarer - # that shares it (see docstring). - declarations_reminted = 0 - assigned = {} # triple -> id chosen this run - for vendor, rec, fid, triple in sorted(non_of_declarers, key=lambda x: (x[0], x[1]["file"])): - fvendor, ftype, filament_name = triple - if not fvendor or not ftype: - missing = " and ".join( - k for k, v in (("filament_vendor", fvendor), - ("filament_type", ftype)) if not v) - print_error( - f'cannot re-mint "{rec["file"]}" (non-OF filament_id "{fid}"): resolves ' - f'empty {missing}; the mint key needs both (generic materials use ' - f'filament_vendor "Generic")') - errors += 1 - continue - if triple not in assigned: - assigned[triple] = mint_filament_id(fvendor, ftype, filament_name, taken) - taken.add(assigned[triple]) - new_id = assigned[triple] - rewrite_filament_id(rec["path"], fid, new_id) - files_changed += 1 - declarations_reminted += 1 - print_info(f'filament "{vendor}/{filament_name}": non-OF filament_id "{fid}" ' - f'-> "{new_id}" ({rec["file"]})') + # A declaration that is not the mint of its own triple holds no id, so it + # never blocks the product the id belongs to — that is what makes a narrowed + # run mint exactly what a full one would. When the run is not allowed to + # rewrite that declaration, though, it stays behind on an id just handed to + # its rightful owner, and only a run that covers both can clear it. + for fid in sorted(held_here & set(left_standing)): + print_error( + f'filament_id "{fid}" belongs to a filament this run covers but is also ' + f'declared by {", ".join(sorted(left_standing[fid]))}, which it did not ' + f'rewrite; run "{GENERATE_CMD}" over both to clear the duplicate') + errors += 1 - print_info(f"filaments minted : {filaments_minted}") - print_info(f"non-OF reminted : {declarations_reminted}") - print_info(f"files changed : {files_changed}") - if files_changed: - print_warning(f"now {UPDATE_HINT}") + print_info(f"filament_ids inserted : {inserted}") + print_info(f"filament_ids re-minted : {reminted}") return files_changed, errors -# --------------------------------------------------------------------------- -# --remint / --drop-redundant-ids (v3.1/v3.2 migration modes) -# --------------------------------------------------------------------------- +def generate_setting_ids(profiles_dir=PROFILES_DIR, vendors=None, dry_run=False, + changed_paths=None): + """Make every preset carry the setting_id its identity mints. -def remint_vendors(vendor_list, profiles_dir=PROFILES_DIR): - """Re-derive every declared id in the given vendors from its triple; - rewrite mismatching declarations in place (byte-preserving). Never touches - the snapshot — run --update-snapshot afterwards and review the diff. - Accepts BBL like any other vendor: the GF* catalog is reserved and - ownerless, so BBL's own declarations mint OF ids the same as everyone - else's. - - A declaration already equal to ANY salt iteration of its own triple is - mint-conformant (check 3) and left alone — deliberate salt splits (distinct - presets of one product kept apart for per-printer AMS matching) survive. - A candidate id is blocked when it occurs in the tree with any triple set - other than exactly {T}. Equal-triple reuse - is convergence: the same product must end up under the same id everywhere. - Returns (rewritten, errors). + One walk over filament/, process/ and machine/ of every vendor bundle, and + one composite edit per file: drop the misspelled "settings_id" key (the app + never reads it), strip setting_id from base profiles (only instantiated + presets carry one), and set generate_preset_setting_id(vendor, type, name) on + instantiated presets — except BBL's, which keep their authoritative "G*" + cloud ids. `changed_paths`, when a set is passed, collects the files that + changed. Returns (files_changed, errors). """ _utf8_console() - analysis = analyze_tree(profiles_dir) + profiles_dir = str(profiles_dir) errors = 0 - for msg in analysis["read_errors"]: - print_error(msg) - errors += 1 - unknown = sorted(set(vendor_list) - set(analysis["vendors"])) - if unknown: - for v in unknown: - print_error(f"--remint: unknown vendor {v!r}") - return 0, errors + len(unknown) + names = list_profile_dirs(profiles_dir) + if vendors is not None: + wanted = set(vendors) + unknown = sorted(wanted - set(names)) + if unknown: + for v in unknown: + print_error(f'unknown vendor "{v}" in {profiles_dir}') + return 0, len(unknown) + names = [v for v in names if v in wanted] + for v in sorted(wanted & RESERVED_VENDORS): + print_info(f'{v} keeps its authoritative "G*" setting_ids; only its base ' + f"declarations are stripped") - occurring = set() - for vids in analysis["vendor_ids"].values(): - occurring |= vids - triple_sets = analysis["triple_sets"] - - assigned = {} # triple -> id chosen this run (all declarers converge) - run_taken = {} # id -> triple (a run-local mint may not collide either) - - def want_id(triple): - if triple in assigned: - return assigned[triple] - for salt in range(10000): - cand = generate_filament_id(*triple, salt=salt) - if cand in occurring and triple_sets.get(cand, set()) != {triple}: + verb = "would " if dry_run else "" + files_changed = 0 + counts = {"typos": 0, "stripped": 0, "assigned": 0} + for vendor in names: + for path, type_name in iter_profile_files(os.path.join(profiles_dir, vendor)): + try: + with open(path, "rb") as f: + data = json.loads(f.read().decode("utf-8-sig")) + if not isinstance(data, dict): + raise ValueError("top level is not a JSON object") + except (OSError, ValueError) as e: + print_error(f"unreadable profile {path}: {e}") + errors += 1 continue - if run_taken.get(cand, triple) != triple: + + sid = data.get("setting_id") + # Strictly "true", exactly as orca_extra_profile_check.py tests it: + # a preset the validator calls a base profile must not be given an id + # here, or the two would fight over it forever. + instantiated = data.get("instantiation") == "true" + edits = [] # (counter key, description, edit function) + if "settings_id" in data: + edits.append(("typos", 'drop the misspelled "settings_id"', + lambda text: delete_key_line(text, "settings_id"))) + typo = data["settings_id"] + if (vendor in RESERVED_VENDORS and instantiated and sid is None + and isinstance(typo, str) and typo): + # A reserved vendor's ids are authoritative, so there is no + # formula to fall back on: correct the key and keep the + # value, or the drop would leave an instantiated preset with + # no setting_id and nothing able to give it one. + edits.append(("assigned", 'restore its value as "setting_id"', + lambda text, new=typo: insert_setting_id(text, new))) + if not instantiated: + if sid is not None: + edits.append(("stripped", "strip the base profile's setting_id", + lambda text, old=sid: delete_key_line( + text, "setting_id", old))) + elif vendor not in RESERVED_VENDORS: + name = data.get("name") + if not name: + # Report and carry on: an edit already queued for this file + # (a misspelled key) is still worth applying. + print_error(f'instantiated preset has no "name": {path}') + errors += 1 + else: + new_id = generate_preset_setting_id(vendor, type_name, name) + if sid is None: + edits.append(("assigned", "insert the setting_id", + lambda text, new=new_id: insert_setting_id(text, new))) + elif sid != new_id: + edits.append(("assigned", "replace the setting_id", + lambda text, new=new_id, old=sid: replace_key_value( + text, "setting_id", new, old))) + if not edits: continue - assigned[triple] = cand - run_taken[cand] = triple - return cand - raise RuntimeError(f"could not mint a free filament_id for triple {triple}") - scanned = 0 - rewritten = 0 - for vendor in sorted(set(vendor_list)): - recs = sorted( - (rec for rec in analysis["vendors"][vendor].values() if rec.get("filament_id")), - key=lambda r: r["file"]) - for rec in recs: - fid = rec["filament_id"] - scanned += 1 - # Any salt iteration of the declarer's own triple is already - # mint-conformant (check 3) — leave it. This keeps deliberate salt - # splits (two presets of one product that must stay distinct for - # per-printer AMS matching, validator -f) stable across re-mints. - if fid in mint_iterations(rec["triple"]): + def apply(text, _edits=edits, _path=path): + for _key, what, edit in _edits: + text, n = edit(text) + if n == 0: + raise RuntimeError(f"could not {what} in {_path}") + return text, len(_edits) + + try: + _edit_profile(path, apply, dry_run) + except (OSError, RuntimeError, ValueError) as e: + print_error(str(e)) + errors += 1 continue - want = want_id(rec["triple"]) - if fid == want: - continue - rewrite_filament_id(rec["path"], fid, want) - rewritten += 1 - print_info(f'{rec["file"]}: "{fid}" -> "{want}" ' - f'(triple "{"/".join(rec["triple"])}")') - print_info(f"declarations scanned : {scanned}") - print_info(f"declarations reminted: {rewritten}") - if rewritten: - print_warning(f"now {UPDATE_HINT}") - return rewritten, errors + files_changed += 1 + if changed_paths is not None: + changed_paths.add(os.path.normpath(path)) + for key, _what, _edit in edits: + counts[key] += 1 + rel = os.path.relpath(path, profiles_dir).replace(os.sep, "/") + print_info(f"{verb}update {rel}: " + f"{', '.join(what for _key, what, _edit in edits)}") - -def drop_redundant_ids(vendor, profiles_dir=PROFILES_DIR): - """Delete filament_id declarations in `vendor` that merely re-declare an OFL - filament's id path: ignoring its own key, the preset's inherits chain enters - OFL and resolves an OFL-declared id, and the preset keeps the OFL filament's - base name. Such a preset is a specialization and rides the OFL id (v3.2(b)). - Never touches the snapshot. Returns (dropped, errors). - """ - _utf8_console() - analysis = analyze_tree(profiles_dir) - errors = 0 - for msg in analysis["read_errors"]: - print_error(msg) - errors += 1 - if vendor == "BBL": - print_error("--drop-redundant-ids BBL is forbidden (the GF* catalog is frozen)") - return 0, errors + 1 - if vendor not in analysis["vendors"]: - print_error(f"--drop-redundant-ids: unknown vendor {vendor!r}") - return 0, errors + 1 - - vendor_map = analysis["vendors"][vendor] - ofl_map = analysis["vendors"].get(OFL, {}) - ofl_declared = {r["filament_id"] for r in ofl_map.values() if r.get("filament_id")} - dropped = 0 - for rec in sorted(vendor_map.values(), key=lambda r: r["file"]): - fid = rec.get("filament_id") - if not fid or not rec.get("inherits"): - continue - resolved, _src, entry = resolve_filament_id( - rec["name"], vendor_map, ofl_map, skip_own=True) - if not (entry and resolved and resolved in ofl_declared): - continue - if base_name(rec["name"]) != base_name(entry): - continue - remove_filament_id(rec["path"], fid) - dropped += 1 - print_info(f'{rec["file"]}: dropped filament_id "{fid}" ' - f'(rides OFL "{entry}", id "{resolved}")') - print_info(f"declarations dropped : {dropped}") - if dropped: - print_warning(f"now {UPDATE_HINT}") - return dropped, errors + print_info(f'misspelled "settings_id" dropped : {counts["typos"]}') + print_info(f'base setting_ids stripped : {counts["stripped"]}') + print_info(f'setting_ids assigned : {counts["assigned"]}') + return files_changed, errors # --------------------------------------------------------------------------- # CLI # --------------------------------------------------------------------------- -def main(argv=None): - _utf8_console() +EXAMPLES = """\ +examples: + orca_id_tool.py --generate + give every profile the id its identity mints, in every vendor bundle + orca_id_tool.py --dry-run + preview exactly that; writes nothing + orca_id_tool.py --generate --setting-id + setting_id only (filament, process and machine presets) + orca_id_tool.py --generate --filament-id --vendor Creality --vendor Elegoo + filament_id only, and only in those two bundles + orca_id_tool.py --check + validate filament_id state against the snapshot (the filament_id half + of scripts/orca_extra_profile_check.py, which is what CI runs) + orca_id_tool.py --update-snapshot + re-record the sanctioned filament_id state after a --generate run + +a maintenance round: + --dry-run -> --generate -> --update-snapshot -> --check -> commit the diff +""" + + +def build_parser(): parser = argparse.ArgumentParser( - description="Mint deterministic filament_id values for id-less filaments " - "and validate the tree against the sanctioned snapshot.") - parser.add_argument("--mint", metavar='"Vendor/Type/Filament"', - help="print the id the (filament_vendor, filament_type, " - "filament name) triple would mint; touches nothing") - parser.add_argument("--update-snapshot", action="store_true", - help="regenerate scripts/filament_id_snapshot.json from " - "the tree") - parser.add_argument("--check", action="store_true", - help="run the filament_id checks; exit nonzero on errors") - parser.add_argument("--remint", metavar="VENDOR", action="append", - help="re-derive VENDOR's declared filament_ids from their " - "triples and rewrite mismatches in place; repeatable") - parser.add_argument("--drop-redundant-ids", metavar="VENDOR", - help="delete filament_id declarations in VENDOR that " - "re-declare the OFL filament id they already resolve " - "through inherits") + prog="orca_id_tool.py", allow_abbrev=False, + formatter_class=argparse.RawDescriptionHelpFormatter, + description="Assign and validate the deterministic ids of OrcaSlicer system\n" + "profiles: the per-product filament_id and the per-preset setting_id.\n" + "\n" + "Both are pure functions of the profile's own identity, so this tool\n" + "never invents an id: it writes the one the rules already imply, and\n" + "leaves a conforming tree alone.", + epilog=EXAMPLES) + modes = parser.add_argument_group("modes (pick one; no mode prints this help)") + modes.add_argument("--generate", action="store_true", + help="write the id every profile should carry: filament_id from " + "each filament's (filament_vendor, filament_type, name) " + "triple, setting_id from each preset's (vendor, type, name). " + "Idempotent and byte-preserving") + modes.add_argument("--check", action="store_true", + help="validate filament_id state against " + "scripts/filament_id_snapshot.json; exit nonzero on errors") + modes.add_argument("--update-snapshot", action="store_true", + help="re-record the sanctioned filament_id state in " + "scripts/filament_id_snapshot.json; commit the diff for " + "maintainer review") + narrow = parser.add_argument_group("narrowing --generate") + narrow.add_argument("--filament-id", action="store_true", + help="write filament_id only, skipping setting_id") + narrow.add_argument("--setting-id", action="store_true", + help="write setting_id only, skipping filament_id") + narrow.add_argument("--vendor", metavar="VENDOR", action="append", default=[], + help="write only in this vendor bundle; repeatable. The ids are " + "still derived tree-wide, so a narrowed run writes exactly " + "what a full one would, and reports what it was not allowed " + "to fix") + parser.add_argument("--dry-run", "--dryrun", dest="dry_run", action="store_true", + help="report what would change and write nothing; with no mode of " + "its own it previews --generate") parser.add_argument("--profiles", default=PROFILES_DIR, help="profiles directory (default: resources/profiles)") + parser.add_argument("--snapshot", default=None, metavar="PATH", + help="the sanctioned filament_id state of that tree (default: " + "scripts/filament_id_snapshot.json, which describes " + "resources/profiles and no other tree)") + return parser + + +def main(argv=None): + _utf8_console() + argv = sys.argv[1:] if argv is None else list(argv) + parser = build_parser() + if not argv: + parser.print_help() + return 0 args = parser.parse_args(argv) + modes = [flag for flag, on in (("--generate", args.generate), + ("--check", args.check), + ("--update-snapshot", args.update_snapshot)) if on] + if len(modes) > 1: + parser.error(f"{' and '.join(modes)} cannot be combined; pick one mode") + if args.filament_id and args.setting_id: + parser.error("--filament-id and --setting-id each exclude the other; " + "pass neither to write both") + narrowing = [flag for flag, on in (("--filament-id", args.filament_id), + ("--setting-id", args.setting_id), + ("--vendor", bool(args.vendor))) if on] + if not modes: + if args.dry_run: + mode = "--generate" # --dry-run previews the writing mode + elif narrowing: + parser.error(f"{', '.join(narrowing)} narrows --generate; " + f"add --generate (or --dry-run to preview it)") + else: + parser.print_help() + return 0 + else: + mode = modes[0] + if narrowing and mode != "--generate": + parser.error(f"{', '.join(narrowing)} applies to --generate, not {mode}") - if args.mint: - parts = args.mint.split("/", 2) - if len(parts) != 3 or not all(parts): - parser.error('--mint expects "filament_vendor/filament_type/filament_name" ' - "with all three components non-empty (check 5 rejects empty " - "vendor/type in the tree)") - snapshot = load_snapshot(SNAPSHOT_PATH) or {"ids": {}} - taken = set(snapshot["ids"]) - print(mint_filament_id(parts[0], parts[1], parts[2], taken)) - return 0 + snapshot_path = args.snapshot or SNAPSHOT_PATH + if (args.snapshot is None and mode in ("--check", "--update-snapshot") + and os.path.abspath(args.profiles) != os.path.abspath(PROFILES_DIR)): + # The repo snapshot is the sanctioned state of resources/profiles alone: + # checking another tree against it is meaningless, and re-recording one + # into it would overwrite the tracked file with a foreign tree's state. + parser.error(f"{mode} reads and writes the sanctioned state of the tree it is " + f"given, so --profiles needs --snapshot PATH for that tree too") - if args.remint: - if args.update_snapshot or args.check or args.drop_redundant_ids: - parser.error("--remint cannot be combined with other modes") - _changed, errors = remint_vendors(args.remint, args.profiles) - return 1 if errors else 0 - - if args.drop_redundant_ids: - if args.update_snapshot or args.check: - parser.error("--drop-redundant-ids cannot be combined with other modes") - _changed, errors = drop_redundant_ids(args.drop_redundant_ids, args.profiles) - return 1 if errors else 0 - - if args.update_snapshot: - return update_snapshot(args.profiles, SNAPSHOT_PATH) - - if args.check: - errors = check_filament_ids(args.profiles, SNAPSHOT_PATH) + if mode == "--check": + errors = check_filament_ids(args.profiles, snapshot_path) if errors: print_error(f"filament_id check: {errors} error(s)") return 1 print_success("filament_id check: no errors") return 0 - _changed, errors = assign_missing_ids(args.profiles, SNAPSHOT_PATH) + if mode == "--update-snapshot": + return update_snapshot(args.profiles, snapshot_path, dry_run=args.dry_run) + + vendors = sorted(set(args.vendor)) or None + if vendors: + unknown = sorted(set(vendors) - set(list_profile_dirs(args.profiles))) + if unknown: + for v in unknown: + print_error(f'unknown vendor "{v}" in {args.profiles}') + return 1 + + # Both by default. filament_id runs first so its keys are in place before the + # setting_id pass reads the files back. + do_filament = args.filament_id or not args.setting_id + do_setting = args.setting_id or not args.filament_id + changed = set() # one file the two passes both touch is still one file + filament_files = errors = 0 + if do_filament: + filament_files, e = generate_filament_ids( + args.profiles, snapshot_path, vendors, args.dry_run, changed) + errors += e + if do_setting: + _n, e = generate_setting_ids(args.profiles, vendors, args.dry_run, changed) + errors += e + + summary = (f"dry run: {len(changed)} file(s) would change; nothing written" + if args.dry_run else f"{len(changed)} file(s) changed") + if errors: + print_error(f"{summary}; {errors} error(s)") + else: + print_success(summary) + if filament_files and not args.dry_run: + # A filament_id write may or may not move the sanctioned state (an id + # repaired back to the value the snapshot already records does not), so + # regenerate and let the diff — empty or not — say. + print_warning('now run "python scripts/orca_id_tool.py --update-snapshot" ' + "and commit any resulting diff for maintainer review") return 1 if errors else 0 diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index 37c7d16772..b7646c4b64 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Tests for scripts/assign_filament_ids.py (stdlib unittest, no external deps). +"""Tests for scripts/orca_id_tool.py (stdlib unittest, no external deps). Run from the repo root: python -m unittest discover -s scripts/tests -v """ @@ -17,7 +17,7 @@ import uuid sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) -import assign_filament_ids as afi # noqa: E402 +import orca_id_tool as afi # noqa: E402 import update_bambu_filament_ids as ubfi # noqa: E402 REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) @@ -99,6 +99,17 @@ class SyntheticTree: if register: self.add_to_index(vendor, data["name"]) + def set_sub_path(self, vendor, name, sub_path): + """Rewrite one index entry's sub_path (the file itself does not move).""" + idx_path = os.path.join(self.profiles, vendor + ".json") + with open(idx_path, encoding="utf-8") as f: + index = json.load(f) + for entry in index["filament_list"]: + if entry["name"] == name: + entry["sub_path"] = sub_path + with open(idx_path, "w", encoding="utf-8") as f: + json.dump(index, f, indent=4, ensure_ascii=False) + def remove_preset(self, vendor, name): os.remove(self.preset_path(vendor, name)) idx_path = os.path.join(self.profiles, vendor + ".json") @@ -109,12 +120,25 @@ class SyntheticTree: with open(idx_path, "w", encoding="utf-8") as f: json.dump(index, f, indent=4, ensure_ascii=False) + def bytes_map(self): + """{relative path -> file bytes} over every .json in the tree.""" + raw = {} + for root, dirs, files in os.walk(self.profiles): + dirs.sort() + for name in sorted(files): + if not name.endswith(".json"): + continue + path = os.path.join(root, name) + with open(path, "rb") as f: + raw[os.path.relpath(path, self.profiles)] = f.read() + return raw + # -- pipeline wrappers --------------------------------------------------- - def update_snapshot(self): + def update_snapshot(self, dry_run=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - rc = afi.update_snapshot(self.profiles, self.snapshot) + rc = afi.update_snapshot(self.profiles, self.snapshot, dry_run) return rc, buf.getvalue() def check(self, map_path=None): @@ -124,23 +148,32 @@ class SyntheticTree: errors = afi.check_filament_ids(self.profiles, self.snapshot, **kwargs) return errors, buf.getvalue() - def assign(self): + # assign() and remint() are the same one pass over the tree — every filament + # ends up with the id its own triple mints, whether that means inserting a + # missing key or rewriting a non-conformant one. Both names are kept because + # they read differently at the call sites. + def assign(self, vendors=None, dry_run=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.assign_missing_ids(self.profiles, self.snapshot) + changed, errors = afi.generate_filament_ids( + self.profiles, self.snapshot, vendors, dry_run) return changed, errors, buf.getvalue() - def remint(self, vendors): + def remint(self, vendors, dry_run=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.remint_vendors(vendors, self.profiles) + changed, errors = afi.generate_filament_ids( + self.profiles, self.snapshot, vendors, dry_run) return changed, errors, buf.getvalue() - def drop_redundant(self, vendor): + def cli(self, *flags): + """Run main() against this tree, capturing stdout.""" buf = io.StringIO() with contextlib.redirect_stdout(buf): - dropped, errors = afi.drop_redundant_ids(vendor, self.profiles) - return dropped, errors, buf.getvalue() + rc = afi.main([*flags, "--profiles", self.profiles, + "--snapshot", self.snapshot]) + return rc, buf.getvalue() + def make_clean_tree(apla_id="AX01", generic_id="OGFL99"): """Baseline tree: OFL base+generic, a vendor filament, a clean tuned generic. @@ -182,8 +215,8 @@ class OfCleanTreeCase(unittest.TestCase): real OF-format ids (check 1 now rejects "AX01"/"OGFL99" unconditionally, with no snapshot exemption), so an otherwise-untouched tree still passes check_filament_ids. Tests that specifically need a non-OF baseline to - remint or drop (TestRemint, TestDropRedundantIds, TestUpdateSnapshot) keep - using SyntheticTreeCase instead. + remint (TestRemint, TestUpdateSnapshot) keep using SyntheticTreeCase + instead. """ def setUp(self): self.t = make_clean_tree( @@ -243,6 +276,81 @@ class TestMint(unittest.TestCase): self.assertEqual(afi.mint_filament_id(*triple, set()), afi.generate_filament_id(*triple)) + def test_mint_never_returns_a_salt_the_identity_check_rejects(self): + # mint_filament_id stops at MAX_CHECK_SALT, the last iteration check 3 + # accepts, so the tool can never write an id its own --check rejects. + triple = ("Polymaker", "PLA", "PolyLite PLA") + all_taken = afi.mint_iterations(triple) + self.assertEqual(len(all_taken), afi.MAX_CHECK_SALT + 1) + last = afi.mint_filament_id(*triple, all_taken - {afi.generate_filament_id( + *triple, salt=afi.MAX_CHECK_SALT)}) + self.assertIn(last, afi.mint_iterations(triple)) + with self.assertRaises(RuntimeError): + afi.mint_filament_id(*triple, all_taken) + + def test_want_id_policy(self): + # The whole id policy: a triple's id is its first mint iteration that no + # OTHER product holds, in the tree or in the snapshot. + triple = ("Polymaker", "PLA", "PolyLite PLA") + other = ("Elegoo", "PETG", "Rapid PETG") + salt0 = afi.generate_filament_id(*triple) + salt1 = afi.generate_filament_id(*triple, salt=1) + + def snapshot(**entries): + return {"ids": {fid: {"filaments": [], "name": t[2], + "filament_type": t[1], "filament_vendor": t[0]} + for fid, t in entries.items()}} + + # nobody holds it: salt 0 + self.assertEqual(afi.make_want_id({"triple_sets": {}})(triple), salt0) + # the tree holds it under this very triple: reuse is convergence + self.assertEqual( + afi.make_want_id({"triple_sets": {salt0: {triple}}})(triple), salt0) + # Another triple "holds" it, but salt0 is not a mint iteration of THAT + # triple, so the holder is a wrong declaration this very run rewrites. + # A transient squatter must not push a product off its own id. + self.assertEqual( + afi.make_want_id({"triple_sets": {salt0: {other}}})(triple), salt0) + self.assertEqual( + afi.make_want_id({"triple_sets": {salt0: {triple, other}}})(triple), salt0) + # The snapshot is read the same way: only a conformant record holds. + self.assertEqual( + afi.make_want_id({"triple_sets": {}}, snapshot(**{salt0: other}))(triple), + salt0) + # ... and the snapshot's own triple reuses it + self.assertEqual( + afi.make_want_id({"triple_sets": {}}, snapshot(**{salt0: triple}))(triple), + salt0) + # Unused here, but salting must still be reachable: see + # test_want_id_salts_past_a_genuine_collision. + self.assertNotEqual(salt0, salt1) + # memoized: one triple keeps one id for the whole run + want_id = afi.make_want_id({"triple_sets": {}}) + self.assertEqual(want_id(triple), want_id(triple)) + # ... and a second triple never gets the id this run already handed out + self.assertNotEqual(want_id(triple), want_id(other)) + + def test_want_id_salts_past_a_genuine_collision(self): + # Salting exists for one case only: two products whose triples mint the + # same id. That needs a base62 collision, so force one — salt 0 of every + # triple collapses to a single value while the salted iterations stay + # distinct. `other` then CONFORMANTLY holds the shared salt-0 id, and + # `triple` must step past it instead of stealing it. + triple = ("V", "PLA", "X") + other = ("W", "ABS", "Y") + real = afi.generate_filament_id + + def colliding(vendor, ftype, name, salt=0): + return "OFcolid" if salt == 0 else real(vendor, ftype, name, salt) + + afi.generate_filament_id = colliding + try: + self.assertIn("OFcolid", afi.mint_iterations(other)) # holder conforms + got = afi.make_want_id({"triple_sets": {"OFcolid": {other}}})(triple) + finally: + afi.generate_filament_id = real + self.assertEqual(got, real(*triple, salt=1)) + class TestBaseName(unittest.TestCase): def test_filament_name_derivation(self): @@ -258,6 +366,27 @@ class TestBaseName(unittest.TestCase): self.assertEqual(afi.base_name(name), filament_name, msg=name) +# --------------------------------------------------------------------------- +# vendor discovery +# --------------------------------------------------------------------------- + +class TestVendorDiscovery(unittest.TestCase): + def test_a_bundle_is_a_subdir_with_a_matching_index(self): + # Neither half alone makes a bundle: resources/profiles tracks a "user" + # directory with no user.json, and an index without its directory is a + # leftover. Both are skipped, tree-wide. + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("VendorA", []) + os.makedirs(os.path.join(t.profiles, "user", "filament")) + with open(os.path.join(t.profiles, "Orphan.json"), "w", + encoding="utf-8") as f: + json.dump({"name": "Orphan", "filament_list": []}, f) + self.assertEqual(afi.list_vendor_names(t.profiles), ["VendorA"]) + self.assertEqual(sorted(afi.analyze_tree(t.profiles)["vendors"]), + ["VendorA"]) + + # --------------------------------------------------------------------------- # resolver (loader-faithful semantics) # --------------------------------------------------------------------------- @@ -323,12 +452,6 @@ class TestResolver(unittest.TestCase): fid, src, _e = self.resolve("A", [self.rec("A")], []) self.assertEqual((fid, src), (None, "missing")) - def test_skip_own_resolves_inherited(self): - fid, _src, _e = self.resolve( - "A", [self.rec("A", "OWN", inherits="B"), self.rec("B", "PARENT")], [], - skip_own=True) - self.assertEqual(fid, "PARENT") - class TestTripleResolution(unittest.TestCase): @staticmethod @@ -692,6 +815,16 @@ class TestCheck6(OfCleanTreeCase): self.assertGreater(errors, 0) self.assertIn("regenerate the map", out) + def test_non_of_map_key_is_an_error(self): + # The map is keyed by OUR ids; a Bambu id in the key column means the + # map was generated or hand-edited the wrong way round. + map_path = self._write_map({ + "GFB00": {"bambu_id": "GFB00", "vendor": "V", "type": "PLA", + "name": "Foo"}}) + errors, out = self.t.check(map_path) + self.assertEqual(errors, 1, out) + self.assertIn('"GFB00" is not a minted "OF" id', out) + def test_duplicate_bambu_id_is_an_error(self): map_path = self._write_map({ "OFaaaaaa": {"bambu_id": "GFZ00", "vendor": "V", "type": "PLA", "name": "Foo"}, @@ -786,6 +919,21 @@ class TestUpdateSnapshot(SyntheticTreeCase): self.assertEqual(list(snap["ids"]["AX01"]), ["filaments", "name", "filament_type", "filament_vendor"]) + def test_refuses_a_tree_it_could_not_read(self): + # A bundle that does not parse contributes no ids, so sanctioning the + # rest would record the loss as a deliberate removal. + with open(self.t.snapshot, "rb") as f: + before = f.read() + with open(os.path.join(self.t.profiles, "VendorA", + "filament", "APLA @base.json"), "w", + encoding="utf-8") as f: + f.write("{ not json") + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 1, out) + self.assertIn("unreadable filament profile", out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), before) + def test_refuses_an_id_declared_under_two_triples(self): # VendorB re-declares APLA's id for a different product: one id, two # triples. No single entry can describe it, and check 3 rejects it anyway. @@ -818,16 +966,36 @@ class TestUpdateSnapshot(SyntheticTreeCase): with open(self.t.snapshot, "rb") as f: self.assertEqual(f.read(), before) # nothing written on refusal + def test_dry_run_reports_without_writing(self): + self.t.write_preset("VendorA", preset("ANEW @P2", inherits="APLA @base", + compatible_printers=["P2"])) + with open(self.t.snapshot, "rb") as f: + before = f.read() + rc, out = self.t.update_snapshot(dry_run=True) + self.assertEqual(rc, 0) + self.assertIn("would be rewritten", out) + self.assertIn("claims added : 1", out) + with open(self.t.snapshot, "rb") as f: + self.assertEqual(f.read(), before) + # the real run writes exactly what the dry run reported + rc, out = self.t.update_snapshot() + self.assertEqual(rc, 0) + self.assertIn("snapshot written", out) + snap = load_json_file(self.t.snapshot) + self.assertEqual(snap["ids"]["AX01"]["filaments"], + ["VendorA/ANEW", "VendorA/APLA"]) + # --------------------------------------------------------------------------- -# default run: mint + insert +# --generate: one rule for inserts and rewrites alike # --------------------------------------------------------------------------- class TestAssign(OfCleanTreeCase): def test_noop_on_fully_idded_tree(self): changed, errors, out = self.t.assign() self.assertEqual((changed, errors), (0, 0)) - self.assertIn("nothing to do (0 files changed)", out) + self.assertIn("filament_ids inserted : 0", out) + self.assertIn("filament_ids re-minted : 0", out) def test_mints_into_filament_root_and_rootless_member(self): self.t.write_preset("VendorA", preset("FNEW @base", instantiation=False, @@ -855,7 +1023,7 @@ class TestAssign(OfCleanTreeCase): # idempotent: second run is a no-op changed, errors, out = self.t.assign() self.assertEqual((changed, errors), (0, 0)) - self.assertIn("nothing to do", out) + self.assertIn("filament_ids inserted : 0", out) def test_refuses_filament_with_incomplete_triple(self): self.t.write_preset("VendorA", preset("ENEW @base", instantiation=False)) @@ -867,6 +1035,21 @@ class TestAssign(OfCleanTreeCase): self.assertIn("resolves empty filament_vendor and filament_type", out) self.assertIn("mint key needs both", out) + def test_refuses_to_re_mint_a_declaration_with_an_incomplete_triple(self): + # The rewrite half of the same guard: a declared id that is not its + # triple's mint still cannot be re-derived without a filament_vendor. + self.t.write_preset("VendorA", preset("QNEW @base", filament_id="OFZZZZZZ", + instantiation=False, + filament_type="PLA")) + self.t.write_preset("VendorA", preset("QNEW @P1", inherits="QNEW @base", + compatible_printers=["P1"])) + before = self.t.bytes_map() + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (0, 1), out) + self.assertIn("resolves empty filament_vendor", out) + self.assertIn("mint key needs both", out) + self.assertEqual(self.t.bytes_map(), before) + def test_refuses_filament_with_divergent_root_fields(self): self.t.write_preset("VendorA", preset("HNEW @base1", instantiation=False, filament_vendor="HV", @@ -909,10 +1092,10 @@ class TestAssign(OfCleanTreeCase): errors, out = self.t.check() self.assertEqual(errors, 0, out) - def test_non_of_declaration_is_treated_as_missing(self): + def test_non_of_declaration_is_re_minted(self): # A declaration that isn't OF-format (e.g. a vendor bundle synced from - # an upstream catalog, like BBL's GF ids) is reminted like a missing - # filament, not left alone. + # an upstream catalog, like BBL's GF ids) is not the mint of its own + # triple, so the same pass rewrites it in place. self.t.write_preset("VendorA", preset("Synced PLA @base", filament_id="GFZZ00", instantiation=False, filament_vendor="ZV", filament_type="PLA")) @@ -927,9 +1110,10 @@ class TestAssign(OfCleanTreeCase): want = afi.generate_filament_id("ZV", "PLA", "Synced PLA") self.assertEqual(root["filament_id"], want) # the value was replaced in place, not appended as a second key - raw = open(path, encoding="utf-8").read() + with open(path, encoding="utf-8") as f: + raw = f.read() self.assertEqual(raw.count('"filament_id"'), 1) - # idempotent: the id is OF-format now, so a second run is a no-op + # idempotent: the id is its triple's mint now, so a second run is a no-op changed, errors, _out = self.t.assign() self.assertEqual((changed, errors), (0, 0)) @@ -959,6 +1143,148 @@ class TestAssign(OfCleanTreeCase): self.assertEqual(b1["filament_id"], want) self.assertEqual(b2["filament_id"], want) + def test_converges_on_an_existing_tree_id_for_the_same_triple(self): + # BEHAVIOUR CHANGE: an id-less filament whose product is already shipped + # (with its conforming id) in another bundle converges on that id + # instead of salting past it. One product, one id, in every bundle. + want = afi.generate_filament_id("CV", "PLA", "CPLA") + self.t.add_vendor("VendorB", [ + preset("CPLA @base", filament_id=want, instantiation=False, + filament_vendor="CV", filament_type="PLA"), + preset("CPLA @PB", inherits="CPLA @base", + compatible_printers=["PB 0.4 nozzle"]), + ]) + self.t.write_preset("VendorA", preset("CPLA @base", instantiation=False, + filament_vendor="CV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("CPLA @P1", inherits="CPLA @base", + compatible_printers=["P1"])) + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (1, 0), out) + root = load_json_file(self.t.preset_path("VendorA", "CPLA @base")) + self.assertEqual(root["filament_id"], want) + + def test_a_squatted_id_is_still_minted_for_its_own_product(self): + # VendorB's "Other" declares the id that belongs to VendorA's "DPLA" — + # a copy-paste, not a real claim, since it is not the mint of Other's + # own triple. That declaration is transient (--generate rewrites it), so + # it must NOT push DPLA onto a salted id: DPLA gets its canonical one. + want0 = afi.generate_filament_id("DV", "PLA", "DPLA") + self.t.add_vendor("VendorB", [ + preset("Other @base", filament_id=want0, instantiation=False, + filament_vendor="OV", filament_type="ABS"), + ]) + self.t.write_preset("VendorA", preset("DPLA @base", instantiation=False, + filament_vendor="DV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("DPLA @P1", inherits="DPLA @base", + compatible_printers=["P1"])) + changed, errors, out = self.t.assign(["VendorA"]) + # VendorB is outside the write set, so the id DPLA just took is still + # declared there: the run says so rather than leaving a silent duplicate. + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("declared by VendorB/filament/Other @base.json", out) + # ...and keeps saying so until a run that covers VendorB clears it. + self.assertEqual(self.t.assign(["VendorA"])[:2], (0, 1)) + root = load_json_file(self.t.preset_path("VendorA", "DPLA @base")) + self.assertEqual(root["filament_id"], want0) + # A full run re-mints Other to its own triple and the duplicate is gone. + other = load_json_file(self.t.preset_path("VendorB", "Other @base")) + self.assertEqual(other["filament_id"], want0) + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (1, 0), out) + other = load_json_file(self.t.preset_path("VendorB", "Other @base")) + self.assertEqual(other["filament_id"], + afi.generate_filament_id("OV", "ABS", "Other")) + + def test_mismatching_of_declaration_is_re_derived(self): + # BEHAVIOUR CHANGE: the default run used to leave an OF-format id alone + # and needed a separate mode to fix it. One rule now: an id that is not + # a mint iteration of its own triple is rewritten. + self.t.write_preset("VendorA", preset("KNEW @base", filament_id="OFZZZZZZ", + instantiation=False, + filament_vendor="KV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("KNEW @P1", inherits="KNEW @base", + compatible_printers=["P1"])) + want = afi.generate_filament_id("KV", "PLA", "KNEW") + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (1, 0), out) + self.assertIn('"OFZZZZZZ" -> "%s"' % want, out) + root = load_json_file(self.t.preset_path("VendorA", "KNEW @base")) + self.assertEqual(root["filament_id"], want) + changed, errors, _out = self.t.assign() + self.assertEqual((changed, errors), (0, 0)) + + def test_vendor_filter_limits_rewrites_and_inserts_alike(self): + # A mismatching declarer in VendorA and an id-less filament in VendorB; + # only VendorA is written, and VendorB's bytes are untouched. + self.t.write_preset("VendorA", preset("LNEW @base", filament_id="OFZZZZZZ", + instantiation=False, + filament_vendor="LV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("LNEW @P1", inherits="LNEW @base", + compatible_printers=["P1"])) + self.t.add_vendor("VendorB", [ + preset("MNEW @base", instantiation=False, + filament_vendor="MV", filament_type="PLA"), + preset("MNEW @PB", inherits="MNEW @base", + compatible_printers=["PB 0.4 nozzle"]), + ]) + before = self.t.bytes_map() + changed, errors, out = self.t.assign(["VendorA"]) + self.assertEqual((changed, errors), (1, 0), out) + root = load_json_file(self.t.preset_path("VendorA", "LNEW @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id("LV", "PLA", "LNEW")) + after = self.t.bytes_map() + for rel, raw in before.items(): + if rel.split(os.sep)[0].startswith("VendorB"): + self.assertEqual(after[rel], raw, rel) + # ... and the deferred half is exactly what a VendorB run then writes + changed, errors, out = self.t.assign(["VendorB"]) + self.assertEqual((changed, errors), (1, 0), out) + b_root = load_json_file(self.t.preset_path("VendorB", "MNEW @base")) + self.assertEqual(b_root["filament_id"], + afi.generate_filament_id("MV", "PLA", "MNEW")) + + def test_unknown_vendor_reports_and_writes_nothing(self): + # A real insert is pending, so "wrote nothing" means the unknown vendor + # aborted the run before any write — not that the tree was already done. + self.t.write_preset("VendorA", preset("PNEW @base", instantiation=False, + filament_vendor="PV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("PNEW @P1", inherits="PNEW @base", + compatible_printers=["P1"])) + before = self.t.bytes_map() + changed, errors, out = self.t.assign(["Nope"]) + self.assertEqual((changed, errors), (0, 1)) + self.assertIn("unknown vendor", out) + self.assertEqual(self.t.bytes_map(), before) + # ... and that pending insert is real: a known-vendor run makes it. + changed, errors, out = self.t.assign(["VendorA"]) + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual( + load_json_file(self.t.preset_path("VendorA", "PNEW @base"))["filament_id"], + afi.generate_filament_id("PV", "PLA", "PNEW")) + + def test_dry_run_reports_the_real_run_and_writes_nothing(self): + self.t.write_preset("VendorA", preset("NNEW @base", instantiation=False, + filament_vendor="NV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("NNEW @P1", inherits="NNEW @base", + compatible_printers=["P1"])) + before = self.t.bytes_map() + dry_changed, errors, out = self.t.assign(dry_run=True) + self.assertEqual((dry_changed, errors), (1, 0), out) + self.assertIn("would insert", out) + self.assertEqual(self.t.bytes_map(), before) + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (dry_changed, 0), out) + root = load_json_file(self.t.preset_path("VendorA", "NNEW @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id("NV", "PLA", "NNEW")) + # --------------------------------------------------------------------------- # byte-preserving profile edits @@ -1056,7 +1382,7 @@ class TestInsertEditing(unittest.TestCase): afi.rewrite_filament_id(path, "OFold123", "OFxxx999") # stale old id def test_delete_line_with_trailing_comma(self): - text, n = afi.delete_filament_id_line(self.CRLF_WITH_ID, "OFold123") + text, n = afi.delete_key_line(self.CRLF_WITH_ID, "filament_id", "OFold123") self.assertEqual(n, 1) self.assertNotIn("filament_id", json.loads(text)) self.assertEqual(text, self.CRLF_WITH_ID.replace( @@ -1065,15 +1391,40 @@ class TestInsertEditing(unittest.TestCase): def test_delete_last_property_line(self): lf_text = ('{\n "name": "K @base",\n "instantiation": "false",\n' ' "filament_id": "OFold123"\n}\n') - text, n = afi.delete_filament_id_line(lf_text, "OFold123") + text, n = afi.delete_key_line(lf_text, "filament_id", "OFold123") self.assertEqual(n, 1) data = json.loads(text) self.assertNotIn("filament_id", data) self.assertEqual(data["instantiation"], "false") + # the preceding comma goes with it, and nothing else moves + self.assertEqual(text, '{\n "name": "K @base",\n' + ' "instantiation": "false"\n}\n') + + def test_dry_run_edits_verify_but_write_nothing(self): + t = SyntheticTree() + self.addCleanup(t.cleanup) + t.add_vendor("VendorA", []) + fresh = t.preset_path("VendorA", "JNEW @base") + with open(fresh, "wb") as f: + f.write(self.CRLF_TEXT.encode("utf-8")) + idded = t.preset_path("VendorA", "JOLD @base") + with open(idded, "wb") as f: + f.write(self.CRLF_WITH_ID.encode("utf-8")) + + afi.write_filament_id(fresh, "OFabc123", dry_run=True) + afi.rewrite_filament_id(idded, "OFold123", "OFnew456", dry_run=True) + with open(fresh, "rb") as f: + self.assertEqual(f.read(), self.CRLF_TEXT.encode("utf-8")) + with open(idded, "rb") as f: + self.assertEqual(f.read(), self.CRLF_WITH_ID.encode("utf-8")) + # the edit is still applied and verified in memory: only the write is + # skipped, so a stale old id fails just as loudly + with self.assertRaises(RuntimeError): + afi.rewrite_filament_id(idded, "OFstale1", "OFnew456", dry_run=True) # --------------------------------------------------------------------------- -# --remint +# --generate: re-minting non-conformant declarations # --------------------------------------------------------------------------- class TestRemint(SyntheticTreeCase): @@ -1138,17 +1489,23 @@ class TestRemint(SyntheticTreeCase): a = load_json_file(self.t.preset_path("VendorA", "APLA @base")) self.assertEqual(a["filament_id"], want) - def test_blocked_by_other_triple_occurrence(self): + def test_not_blocked_by_a_non_conformant_occurrence(self): + # VendorB carries APLA's id under a PETG triple of its own, so that + # declaration is wrong and this run's job is to rewrite it. It must not + # cost VendorA's APLA the id its triple actually mints. want0 = afi.generate_filament_id(*self.TRIPLE) self.t.add_vendor("VendorB", [ preset("BPLA @base", filament_id=want0, instantiation=False, filament_vendor="BV", filament_type="PETG"), ]) - changed, errors, _out = self.t.remint(["VendorA"]) - self.assertEqual((changed, errors), (1, 0)) + changed, errors, out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("declared by VendorB/filament/BPLA @base.json", out) root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) - self.assertEqual(root["filament_id"], - afi.generate_filament_id(*self.TRIPLE, salt=1)) + self.assertEqual(root["filament_id"], want0) + # Widening the run to both bundles clears it. + changed, errors, out = self.t.remint(["VendorA", "VendorB"]) + self.assertEqual((changed, errors), (1, 0), out) def test_bbl_is_reminted_like_any_vendor(self): self.t.add_vendor("BBL", [ @@ -1164,59 +1521,195 @@ class TestRemint(SyntheticTreeCase): self.assertEqual(root["filament_id"], afi.generate_filament_id("Bambu Lab", "ABS", "Bambu ABS")) - -# --------------------------------------------------------------------------- -# --drop-redundant-ids -# --------------------------------------------------------------------------- - -class TestDropRedundantIds(SyntheticTreeCase): - def test_drops_only_ofl_riding_same_base_name_declarations(self): - # Redundant: same base name, rides the OFL generic, re-declares its id. - self.t.write_preset("VendorA", preset("Generic PLA @P2", - inherits="Generic PLA @System", - compatible_printers=["P2"], - filament_id="OGFL99")) - # Renamed rider: not dropped (a repoint worksheet decision, not a drop). - self.t.write_preset("VendorA", preset("Tuned PLA @P3", - inherits="Generic PLA @System", - compatible_printers=["P3"], - filament_id="OGFL99")) - dropped, errors, out = self.t.drop_redundant("VendorA") - self.assertEqual(errors, 0, out) - self.assertEqual(dropped, 1) - self.assertIn('dropped filament_id "OGFL99"', out) - self.assertIn('rides OFL "Generic PLA @System"', out) - gone = load_json_file(self.t.preset_path("VendorA", "Generic PLA @P2")) - self.assertNotIn("filament_id", gone) - kept = load_json_file(self.t.preset_path("VendorA", "Tuned PLA @P3")) - self.assertEqual(kept["filament_id"], "OGFL99") - # vendor-rooted filaments are untouched + def test_dry_run_leaves_every_file_untouched(self): + before = self.t.bytes_map() + changed, errors, out = self.t.remint(["VendorA"], dry_run=True) + self.assertEqual((changed, errors), (1, 0), out) + self.assertIn("would rewrite", out) + self.assertEqual(self.t.bytes_map(), before) + # the real run then makes exactly that one change + changed, errors, _out = self.t.remint(["VendorA"]) + self.assertEqual((changed, errors), (1, 0)) root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) - self.assertEqual(root["filament_id"], "AX01") - - def test_bbl_is_forbidden(self): - dropped, errors, out = self.t.drop_redundant("BBL") - self.assertEqual(dropped, 0) - self.assertGreater(errors, 0) - self.assertIn("forbidden", out) + self.assertEqual(root["filament_id"], + afi.generate_filament_id(*self.TRIPLE)) # --------------------------------------------------------------------------- -# --mint CLI +# CLI # --------------------------------------------------------------------------- -class TestMintCli(unittest.TestCase): - def test_prints_an_of_id(self): +class TestCli(unittest.TestCase): + """main(argv) over a synthetic tree. The clean tree's baseline ids are + deliberately non-conformant ("AX01"/"OGFL99"), so a --generate run always + has both a filament_id rewrite and setting_id inserts to do.""" + + def setUp(self): + self.t = make_clean_tree() + self.addCleanup(self.t.cleanup) + + def test_bare_invocation_prints_help(self): buf = io.StringIO() with contextlib.redirect_stdout(buf): - rc = afi.main(["--mint", "Polymaker/PLA/PolyLite PLA"]) + rc = afi.main([]) self.assertEqual(rc, 0) - self.assertRegex(buf.getvalue().strip(), r"^OF[0-9A-Za-z]{6}$") + self.assertIn("usage:", buf.getvalue()) + self.assertIn("--generate", buf.getvalue()) + # ... and so does any invocation naming no mode: help, and no work + before = self.t.bytes_map() + rc, out = self.t.cli() + self.assertEqual(rc, 0) + self.assertIn("usage:", out) + self.assertEqual(self.t.bytes_map(), before) - def test_requires_exactly_three_parts(self): - with self.assertRaises(SystemExit), \ - contextlib.redirect_stderr(io.StringIO()): - afi.main(["--mint", "Vendor/Filament"]) + def test_another_tree_needs_its_own_snapshot(self): + # --profiles retargets the tree, but the sanctioned state of that tree + # is not the repo snapshot: checking against it is meaningless and + # re-recording into it would overwrite the tracked file. + with open(afi.SNAPSHOT_PATH, "rb") as f: + repo_snapshot = f.read() + for mode in ("--check", "--update-snapshot"): + with self.assertRaises(SystemExit) as caught: + with contextlib.redirect_stderr(io.StringIO()): + afi.main([mode, "--profiles", self.t.profiles]) + self.assertEqual(caught.exception.code, 2, mode) + with open(afi.SNAPSHOT_PATH, "rb") as f: + self.assertEqual(f.read(), repo_snapshot) + # Named explicitly, both modes run against that tree. + rc, out = self.t.cli("--update-snapshot") + self.assertEqual(rc, 0, out) + # --generate only reads the snapshot as a list of ids not to reuse, so + # it keeps working without one. + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.main(["--dry-run", "--profiles", self.t.profiles]) + self.assertEqual(rc, 0, buf.getvalue()) + + def test_filament_id_and_setting_id_together_are_rejected(self): + # Each flag's help promises it skips the other kind, so the pair cannot + # quietly mean "both". + with self.assertRaises(SystemExit) as caught: + with contextlib.redirect_stderr(io.StringIO()): + afi.main(["--generate", "--filament-id", "--setting-id", + "--profiles", self.t.profiles]) + self.assertEqual(caught.exception.code, 2) + + def test_a_run_with_errors_does_not_report_success(self): + # An unreadable profile must not be buried under a green summary line. + path = self.t.preset_path("VendorA", "APLA @base") + with open(path, "w", encoding="utf-8") as f: + f.write("{ not json") + rc, out = self.t.cli("--generate") + self.assertEqual(rc, 1, out) + self.assertIn("error(s)", out) + self.assertNotIn("SUCCESS", out) + + def test_dry_run_alone_previews_generate(self): + before = self.t.bytes_map() + rc, out = self.t.cli("--dry-run") + self.assertEqual(rc, 0, out) + self.assertIn("would ", out) + self.assertIn("nothing written", out) + self.assertEqual(self.t.bytes_map(), before) + + def test_the_reported_count_is_files_not_edits(self): + # A file both passes touch is still one file. "SoloPLA @P1" needs a + # filament_id rewrite AND a setting_id insert, so an edit-counting + # summary would over-report the tree. + self.t.write_preset("VendorA", preset( + "SoloPLA @P1", filament_id="AX01", filament_vendor="AVendor", + filament_type="PLA", compatible_printers=["P1"])) + before = self.t.bytes_map() + + rc, out = self.t.cli("--generate") + + self.assertEqual(rc, 0, out) + after = self.t.bytes_map() + touched = {p for p in after if after[p] != before.get(p)} + self.assertIn("VendorA/filament/SoloPLA @P1.json".replace("/", os.sep), touched) + self.assertIn("rewrite VendorA/filament/SoloPLA @P1.json", out) + self.assertIn("update VendorA/filament/SoloPLA @P1.json", out) + summary = [l for l in out.splitlines() if "file(s) changed" in l] + self.assertEqual(len(summary), 1, out) + self.assertIn(f"{len(touched)} file(s) changed", summary[0]) + + def test_dryrun_is_the_same_flag(self): + before = self.t.bytes_map() + rc, out = self.t.cli("--dryrun") + self.assertEqual(rc, 0, out) + self.assertIn("would ", out) # the same preview, not a silent no-op + self.assertIn("nothing written", out) + self.assertEqual(self.t.bytes_map(), before) + + def test_generate_vendor_writes_only_in_that_bundle(self): + before = self.t.bytes_map() + rc, out = self.t.cli("--generate", "--vendor", "VendorA") + self.assertEqual(rc, 0, out) + after = self.t.bytes_map() + changed = sorted(rel for rel in before if after[rel] != before[rel]) + self.assertTrue(changed, out) + for rel in changed: + self.assertTrue(rel.startswith("VendorA" + os.sep), rel) + # The bundles it spared were not simply already conformant: the + # un-narrowed run goes on to write in them too. + rc, out = self.t.cli("--generate") + self.assertEqual(rc, 0, out) + final = self.t.bytes_map() + self.assertTrue(any(final[rel] != after[rel] for rel in after + if not rel.startswith("VendorA" + os.sep)), out) + + def test_generate_unknown_vendor_returns_1(self): + before = self.t.bytes_map() + rc, out = self.t.cli("--generate", "--vendor", "Nope") + self.assertEqual(rc, 1) + self.assertIn("unknown vendor", out) + self.assertEqual(self.t.bytes_map(), before) + + def test_setting_id_only_leaves_filament_ids_alone(self): + rc, out = self.t.cli("--generate", "--setting-id") + self.assertEqual(rc, 0, out) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], "AX01") # not re-minted + member = load_json_file(self.t.preset_path("VendorA", "APLA @P1")) + self.assertNotIn("filament_id", member) + self.assertEqual(member["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", + "APLA @P1")) + + def test_filament_id_only_inserts_no_setting_id(self): + rc, out = self.t.cli("--generate", "--filament-id") + self.assertEqual(rc, 0, out) + root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) + self.assertEqual(root["filament_id"], + afi.generate_filament_id("AVendor", "PLA", "APLA")) + for name in ("APLA @base", "APLA @P1"): + self.assertNotIn( + "setting_id", load_json_file(self.t.preset_path("VendorA", name))) + + def test_check_mode_returns_1_on_errors(self): + # What CI keys off: --check exits nonzero when the tree does not match + # the snapshot it is validated against. + before = self.t.bytes_map() + rc, out = self.t.cli("--check") + self.assertEqual(rc, 1) + self.assertIn("error(s)", out) + self.assertEqual(self.t.bytes_map(), before) # --check never writes + + def test_removed_and_conflicting_flags_are_rejected(self): + for argv in (["--remint", "VendorA"], # removed mode + ["--mint", "A/B/C"], # removed mode + ["--drop-redundant-ids", "VendorA"], # removed mode + ["--assign"], # removed mode + ["--generate", "--check"], # two modes + ["--vendor", "VendorA"], # narrowing without a mode + ["--filament-id"], # narrowing without a mode + ["--check", "--vendor", "VendorA"]): # narrowing on --check + with self.subTest(argv=argv): + with self.assertRaises(SystemExit) as cm, \ + contextlib.redirect_stdout(io.StringIO()), \ + contextlib.redirect_stderr(io.StringIO()): + afi.main([*argv, "--profiles", self.t.profiles]) + self.assertEqual(cm.exception.code, 2) # --------------------------------------------------------------------------- @@ -1231,6 +1724,13 @@ class TestRealTree(unittest.TestCase): errors = afi.check_filament_ids(REAL_PROFILES) self.assertEqual(errors, 0, buf.getvalue()) + def test_check_cli_returns_0(self): + # The exact CI invocation, return code included. + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.main(["--check"]) + self.assertEqual(rc, 0, buf.getvalue()) + def test_every_instantiated_filament_resolves_an_id(self): analysis = afi.analyze_tree(REAL_PROFILES) self.assertEqual(analysis["missing_effective"], []) @@ -1241,6 +1741,46 @@ class TestRealTree(unittest.TestCase): # --------------------------------------------------------------------------- class TestReviewFixes(OfCleanTreeCase): + def test_one_file_reached_by_two_spellings_counts_once(self): + # The filament pass reaches a file through its index sub_path, the + # setting_id pass through os.walk. Those two spellings differ whenever + # the sub_path is not already normalized - always, on Windows, where + # every sub_path keeps the "/" the index stores. One file is one file. + # One preset per write path: SoloPLA has no id (inserted), WrongPLA + # declares one that is not its own mint (rewritten). Both are + # instantiated, so the setting_id pass reaches them too. + self.t.write_preset("VendorA", preset("SoloPLA @P1", + compatible_printers=["P1 0.4 nozzle"], + filament_vendor="SV", + filament_type="PLA")) + self.t.write_preset("VendorA", preset( + "WrongPLA @P1", filament_id=afi.generate_filament_id("WV", "PLA", "Nope"), + compatible_printers=["P1 0.4 nozzle"], + filament_vendor="WV", filament_type="PLA")) + for name in ("SoloPLA @P1", "WrongPLA @P1"): + self.t.set_sub_path("VendorA", name, f"filament/./{name}.json") + touched = set() + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + afi.generate_filament_ids(self.t.profiles, self.t.snapshot, + None, False, touched) + afi.generate_setting_ids(self.t.profiles, None, False, touched) + for name in ("SoloPLA @P1", "WrongPLA @P1"): + self.assertEqual([t for t in touched if t.endswith(name + ".json")], + [self.t.preset_path("VendorA", name)], sorted(touched)) + self.assertEqual(sorted(touched), + sorted(os.path.normpath(t) for t in touched)) + + def test_a_broken_edit_names_the_file(self): + # An edit that produces invalid JSON is refused, and the message has to + # say which of ~12,000 files it was: a bare JSONDecodeError does not. + path = self.t.preset_path("VendorA", "APLA @base") + with self.assertRaises(RuntimeError) as caught: + afi._edit_profile(path, lambda text: (text.replace("{", "{,", 1), 1), + what="test edit") + self.assertIn(path, str(caught.exception)) + self.assertIn("test edit", str(caught.exception)) + def test_check3_skips_of_id_inherited_from_other_vendor(self): # An OFL filament carries its own minted OF id and a vendor tunes it # correctly (same base name, non-empty printers). The new claim must diff --git a/scripts/tests/test_setting_id.py b/scripts/tests/test_setting_id.py new file mode 100644 index 0000000000..ad9d06a2f0 --- /dev/null +++ b/scripts/tests/test_setting_id.py @@ -0,0 +1,902 @@ +#!/usr/bin/env python3 +"""Tests for the setting_id half of scripts/orca_id_tool.py (stdlib unittest, no +external deps). + +Run from the repo root: python -m unittest discover -s scripts/tests -v +""" + +import contextlib +import io +import json +import os +import shutil +import sys +import tempfile +import unittest +import uuid + +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) + +import orca_id_tool as afi # noqa: E402 + +REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) +REAL_PROFILES = os.path.join(REPO_ROOT, "resources", "profiles") + + +# --------------------------------------------------------------------------- +# helpers: synthetic profile trees +# --------------------------------------------------------------------------- + +def preset(name, instantiation=True, setting_id=None, settings_id=None, + filament_id=None, type_name="filament", **extra): + """A preset in the canonical key order the shipped profiles use.""" + data = {"type": type_name, "name": name, "from": "system"} + if setting_id is not None: + data["setting_id"] = setting_id + if settings_id is not None: + data["settings_id"] = settings_id + if filament_id is not None: + data["filament_id"] = filament_id + data["instantiation"] = "true" if instantiation else "false" + data.update(extra) + return data + + +class SettingTree: + """A throwaway resources/profiles-shaped directory of setting_id-bearing bundles. + + A bundle is a `<vendor>/` directory plus the sibling `<vendor>.json` index + that makes list_vendor_names() see it; presets live under filament/, + process/ and machine/, the three subdirs generate_setting_ids walks. + + write() also registers filament presets in the index's filament_list, the + way a shipped bundle does. generate_setting_ids never reads that list, but + generate_filament_ids does: without it the filament half of the tool is a + no-op on this tree, and the tests that assert --setting-id leaves + filament_ids alone would hold for the wrong reason. + """ + + def __init__(self): + self.dir = tempfile.mkdtemp(prefix="setting_id_test_") + self.profiles = os.path.join(self.dir, "profiles") + os.makedirs(self.profiles) + + def cleanup(self): + shutil.rmtree(self.dir, ignore_errors=True) + + def index_path(self, vendor): + return os.path.join(self.profiles, vendor + ".json") + + def add_vendor(self, vendor): + """Create the bundle dir and its index; idempotent, keeps the list.""" + for sub in afi.PROFILE_SUBDIRS: + os.makedirs(os.path.join(self.profiles, vendor, sub), exist_ok=True) + if not os.path.exists(self.index_path(vendor)): + self._write_index(vendor, {"name": vendor, "version": "01.00.00.00", + "filament_list": []}) + + def _write_index(self, vendor, index): + with open(self.index_path(vendor), "w", encoding="utf-8", + newline="\n") as f: + json.dump(index, f, indent=4, ensure_ascii=False) + + def register(self, vendor, subdir, name): + """Add a filament preset to the bundle index's filament_list.""" + with open(self.index_path(vendor), encoding="utf-8") as f: + index = json.load(f) + sub_path = os.path.join(subdir, name + ".json").replace(os.sep, "/") + index["filament_list"].append({"name": name, "sub_path": sub_path}) + self._write_index(vendor, index) + + def path(self, vendor, subdir, name): + return os.path.join(self.profiles, vendor, subdir, name + ".json") + + def write(self, vendor, subdir, data, name=None): + """Write a preset as indented LF JSON; returns its path.""" + self.add_vendor(vendor) + file_name = name if name is not None else data["name"] + path = self.path(vendor, subdir, file_name) + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8", newline="\n") as f: + json.dump(data, f, indent=4, ensure_ascii=False) + f.write("\n") + if subdir.split(os.sep)[0] == "filament" and data.get("name"): + self.register(vendor, subdir, file_name) + return path + + def write_raw(self, vendor, subdir, name, raw): + """Write exact bytes (BOM, CRLF, tabs, broken JSON); returns its path.""" + self.add_vendor(vendor) + path = self.path(vendor, subdir, name) + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "wb") as f: + f.write(raw) + return path + + def read(self, vendor, subdir, name): + with open(self.path(vendor, subdir, name), encoding="utf-8-sig") as f: + return json.load(f) + + def raw(self, vendor, subdir, name): + with open(self.path(vendor, subdir, name), "rb") as f: + return f.read() + + def bytes_map(self): + """relative path -> bytes, for every file in the tree.""" + out = {} + for root, dirs, files in os.walk(self.profiles): + dirs.sort() + for name in sorted(files): + path = os.path.join(root, name) + with open(path, "rb") as f: + out[os.path.relpath(path, self.profiles)] = f.read() + return out + + # -- pipeline wrappers --------------------------------------------------- + + def run(self, vendors=None, dry_run=False): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + changed, errors = afi.generate_setting_ids(self.profiles, vendors, dry_run) + return changed, errors, buf.getvalue() + + def run_filament_ids(self, vendors=None, dry_run=False): + """The OTHER half of --generate, against this tree's own (absent) + snapshot, so the id policy never consults the repo's real one.""" + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + changed, errors = afi.generate_filament_ids( + self.profiles, os.path.join(self.dir, "filament_id_snapshot.json"), + vendors, dry_run) + return changed, errors, buf.getvalue() + + +class SettingTreeCase(unittest.TestCase): + def setUp(self): + self.t = SettingTree() + self.addCleanup(self.t.cleanup) + + +# --------------------------------------------------------------------------- +# mint: the C++/Python byte-identity contract +# --------------------------------------------------------------------------- + +class TestSettingIdMint(unittest.TestCase): + # Copied verbatim from tests/libslic3r/test_preset_setting_id.cpp: the C++ + # generate_preset_setting_id() recomputes these ids on the fly, so the two + # implementations must stay byte-identical. + GOLDEN = [ + ("Afinia", "filament", "Afinia ABS @Afinia H400", "TL34qSVkppBvMvgH"), + ("Afinia", "process", "0.20mm Standard @Afinia H400", "FzmtNsy7XQvpd7w0"), + ("Afinia", "machine", "Afinia H400 0.4 nozzle", "r4FZagW0S8uoaJPd"), + ("Anycubic", "filament", "Generic PLA @Anycubic Kobra 2", "YIWGGLQ8Oepd30Fv"), + ("Creality", "process", "0.16mm Optimal @Creality Ender-3 V3", "2Nrbq8PxssUPBLza"), + ("Elegoo", "machine", "Elegoo Neptune 4 0.4 nozzle", "69QdWuRQwAZk9rFu"), + ] + + def test_golden_vectors(self): + for vendor, type_name, name, expected in self.GOLDEN: + with self.subTest(name=name): + self.assertEqual( + afi.generate_preset_setting_id(vendor, type_name, name), expected) + + def test_namespace_and_length_are_frozen(self): + # Baked into the C++ side and into every shipped profile; never change it. + self.assertEqual(afi.NAMESPACE, + uuid.UUID("c1f4d9e2-7a3b-5c8d-9e0f-1a2b3c4d5e6f")) + self.assertEqual(afi.SETTING_ID_LENGTH, 16) + self.assertEqual( + afi.ALPHABET, + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") + self.assertEqual(len(afi.ALPHABET), 62) + + def test_format_is_sixteen_alphabet_chars(self): + for vendor, type_name, name in [("Creality", "filament", "CR PLA @Ender"), + ("Elegoo", "machine", "Elegoo Neptune 4"), + ("拓竹", "filament", "拓竹 PLA @P1")]: + with self.subTest(name=name): + sid = afi.generate_preset_setting_id(vendor, type_name, name) + self.assertEqual(len(sid), afi.SETTING_ID_LENGTH) + self.assertTrue(set(sid) <= set(afi.ALPHABET), sid) + + def test_is_the_low_base62_digits_of_the_uuid5(self): + # Independent re-implementation of the whole rule, key layout included. + for vendor, type_name, name, _expected in self.GOLDEN: + u = uuid.uuid5(afi.NAMESPACE, f"{vendor}/{type_name}/{name}") + n = int.from_bytes(u.bytes, "big") + digits = "" + for _ in range(afi.SETTING_ID_LENGTH): + digits = afi.ALPHABET[n % 62] + digits + n //= 62 + self.assertEqual(afi.generate_preset_setting_id(vendor, type_name, name), + digits) + + def test_deterministic(self): + a = afi.generate_preset_setting_id("VendorX", "filament", "My PLA") + self.assertEqual(a, afi.generate_preset_setting_id("VendorX", "filament", "My PLA")) + + def test_every_identity_component_changes_the_id(self): + base = afi.generate_preset_setting_id("VendorX", "filament", "My PLA") + self.assertNotEqual(base, afi.generate_preset_setting_id("VendorY", "filament", "My PLA")) + self.assertNotEqual(base, afi.generate_preset_setting_id("VendorX", "process", "My PLA")) + self.assertNotEqual(base, afi.generate_preset_setting_id("VendorX", "filament", "My PETG")) + + def test_key_is_a_flat_slash_join(self): + # The mint key is "<vendor>/<type>/<name>" with no escaping, so a "/" in + # a component shifts the split — harmless in practice (vendor is a + # directory name and type is one of PROFILE_SUBDIRS), but it is what the + # C++ side does too and the two must agree byte for byte. + self.assertEqual(afi.generate_preset_setting_id("A/B", "filament", "C"), + afi.generate_preset_setting_id("A", "B/filament", "C")) + + +class TestBase62Tail(unittest.TestCase): + def test_hand_computed_digits(self): + self.assertEqual(afi._base62_tail(0, 4), "0000") + self.assertEqual(afi._base62_tail(61, 1), "z") # last alphabet char + self.assertEqual(afi._base62_tail(62, 2), "10") # 1*62 + 0 + self.assertEqual(afi._base62_tail(3843, 2), "zz") # 61*62 + 61 + self.assertEqual(afi._base62_tail(3907, 3), "111") # 62^2 + 62 + 1 + + def test_keeps_only_the_low_digits(self): + self.assertEqual(afi._base62_tail(62, 1), "0") # high digit dropped + self.assertEqual(afi._base62_tail(3907, 2), "11") + + +# --------------------------------------------------------------------------- +# assignment +# --------------------------------------------------------------------------- + +class TestAssignment(SettingTreeCase): + def test_instantiation_is_read_exactly_as_the_validator_reads_it(self): + # orca_extra_profile_check.py tests `instantiation == "true"` strictly. + # Anything looser here would hand an id to a preset the validator calls + # a base profile, and the two would fight over it on every run. + for name, value in [("Boolean", True), ("Capitalised", "True"), + ("Numeric", 1), ("Absent", None)]: + with self.subTest(instantiation=value): + data = {"type": "filament", "name": name, "from": "system"} + if value is not None: + data["instantiation"] = value + self.t.write("VendorA", "filament", data) + before = self.t.bytes_map() + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (0, 0), out) + self.assertEqual(self.t.bytes_map(), before) + + def test_a_bundle_without_an_index_is_still_assigned(self): + # setting_id is a per-file property, and the validator walks every + # directory. A bundle whose index has not landed yet must be fixable, + # or the validator flags files this tool refuses to touch. + path = os.path.join(self.t.profiles, "Noindex", "process", "Q.json") + os.makedirs(os.path.dirname(path)) + with open(path, "w", encoding="utf-8", newline="\n") as f: + json.dump(preset("Q", type_name="process"), f, indent=4) + self.assertFalse(os.path.exists(self.t.index_path("Noindex"))) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + with open(path, encoding="utf-8") as f: + self.assertEqual(json.load(f)["setting_id"], + afi.generate_preset_setting_id("Noindex", "process", "Q")) + + def test_assigns_across_every_profile_subdir(self): + self.t.write("VendorA", "filament", preset("A PLA @P1")) + self.t.write("VendorA", "process", + preset("0.20mm Standard @P1", type_name="process")) + self.t.write("VendorA", "machine", + preset("P1 0.4 nozzle", type_name="machine")) + # os.walk recursion: a preset in a nested directory is walked too. + self.t.write("VendorA", os.path.join("filament", "nested"), + preset("A PETG @P1")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (4, 0), out) + for subdir, type_name, name in [ + ("filament", "filament", "A PLA @P1"), + ("process", "process", "0.20mm Standard @P1"), + ("machine", "machine", "P1 0.4 nozzle"), + (os.path.join("filament", "nested"), "filament", "A PETG @P1")]: + self.assertEqual( + self.t.read("VendorA", subdir, name)["setting_id"], + afi.generate_preset_setting_id("VendorA", type_name, name), + msg=name) + + def test_type_comes_from_the_subdirectory_not_the_type_field(self): + # The subdir name is the type name (Preset::get_type_string()); a stale + # "type" field inside the file does not enter the id. + self.t.write("VendorA", "process", preset("Odd @P1", type_name="filament")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual(self.t.read("VendorA", "process", "Odd @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "process", "Odd @P1")) + + def test_idempotent(self): + self.t.write("VendorA", "filament", preset("A PLA @P1")) + self.t.write("VendorA", "process", + preset("0.20mm Standard @P1", type_name="process")) + self.t.write("VendorA", "filament", preset("A PLA @base", instantiation=False, + setting_id="LEFTOVER00000000")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (3, 0), out) + + after_first = self.t.bytes_map() + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (0, 0), out) + self.assertEqual(self.t.bytes_map(), after_first) + + def test_stale_value_is_replaced_in_place(self): + path = self.t.write("VendorA", "filament", + preset("A PLA @P1", setting_id="0000000000000000", + filament_id="OFabc123")) + before = self.t.raw("VendorA", "filament", "A PLA @P1") + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + want = afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1") + self.assertEqual(self.t.read("VendorA", "filament", "A PLA @P1")["setting_id"], + want) + raw = self.t.raw("VendorA", "filament", "A PLA @P1") + self.assertEqual(raw.count(b'"setting_id"'), 1) # replaced, not appended + self.assertEqual(raw, before.replace(b'"0000000000000000"', + b'"%s"' % want.encode())) + self.assertTrue(os.path.isfile(path)) + + def test_missing_value_is_inserted_before_filament_id(self): + self.t.write("VendorA", "filament", + preset("A PLA @P1", filament_id="OFabc123")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + text = self.t.raw("VendorA", "filament", "A PLA @P1").decode("utf-8") + want = afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1") + self.assertIn(f'"setting_id": "{want}"', text) + self.assertLess(text.index('"setting_id"'), text.index('"filament_id"')) + + def test_base_profiles_are_stripped(self): + self.t.write("VendorA", "filament", + preset("A PLA @base", instantiation=False, + setting_id="0000000000000000", filament_id="OFabc123")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + data = self.t.read("VendorA", "filament", "A PLA @base") + self.assertNotIn("setting_id", data) + self.assertEqual(data["filament_id"], "OFabc123") # nothing else touched + self.assertEqual(data["instantiation"], "false") + + def test_base_profile_without_instantiation_key_is_stripped(self): + # No "instantiation" key at all == not instantiated (str(None) != "true"). + data = {"type": "filament", "name": "A PLA @root", "from": "system", + "setting_id": "0000000000000000"} + self.t.write("VendorA", "filament", data) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + self.assertNotIn("setting_id", self.t.read("VendorA", "filament", "A PLA @root")) + + def test_misspelled_settings_id_is_dropped(self): + self.t.write("VendorA", "filament", + preset("A PLA @base", instantiation=False, + settings_id="0000000000000000")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + data = self.t.read("VendorA", "filament", "A PLA @base") + self.assertNotIn("settings_id", data) + self.assertNotIn("setting_id", data) + + def test_typo_drop_and_assignment_are_one_file_change(self): + self.t.write("VendorA", "filament", + preset("A PLA @P1", settings_id="0000000000000000", + filament_id="OFabc123")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) # ONE counted file change + data = self.t.read("VendorA", "filament", "A PLA @P1") + self.assertNotIn("settings_id", data) + self.assertEqual(data["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1")) + + def test_reserved_vendor_keeps_instantiated_ids_and_loses_base_ones(self): + # BBL owns the authoritative "G*" cloud id space: its instantiated + # presets are never rewritten, its base declarations still are stripped. + self.t.write("BBL", "filament", + preset("Bambu ABS @BBL A1", setting_id="GFSB00_07")) + self.t.write("BBL", "filament", preset("Bambu ABS @P1 no id")) + self.t.write("BBL", "filament", + preset("Bambu ABS @base", instantiation=False, + setting_id="GFSB00_00")) + kept = self.t.raw("BBL", "filament", "Bambu ABS @BBL A1") + kept_idless = self.t.raw("BBL", "filament", "Bambu ABS @P1 no id") + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) # only the base profile + self.assertEqual(self.t.raw("BBL", "filament", "Bambu ABS @BBL A1"), kept) + self.assertEqual(self.t.raw("BBL", "filament", "Bambu ABS @P1 no id"), + kept_idless) + self.assertNotIn("setting_id", + self.t.read("BBL", "filament", "Bambu ABS @base")) + + def test_reserved_vendors_misspelled_key_is_corrected_not_dropped(self): + # A reserved vendor's id is authoritative, so there is no formula to + # fall back on. Dropping the typo and stopping there would leave the + # preset with no setting_id at all and no way for the tool to give it + # one - a validator error nothing can clear. Fix the key, keep the value. + self.t.write("BBL", "filament", + preset("Bambu PLA @P1", settings_id="GFSA00_01")) + # A base profile still just loses the key; it may not carry an id. + self.t.write("BBL", "filament", + preset("Bambu PLA @base", instantiation=False, + settings_id="GFSA00_00")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (2, 0), out) + fixed = self.t.read("BBL", "filament", "Bambu PLA @P1") + self.assertNotIn("settings_id", fixed) + self.assertEqual(fixed["setting_id"], "GFSA00_01") + base = self.t.read("BBL", "filament", "Bambu PLA @base") + self.assertNotIn("settings_id", base) + self.assertNotIn("setting_id", base) + # Idempotent: the corrected file is what the next run expects to see. + self.assertEqual(self.t.run()[:2], (0, 0)) + + def test_a_managed_vendors_misspelled_key_is_still_replaced_by_the_mint(self): + self.t.write("VendorA", "filament", + preset("A PLA @P1", settings_id="whatever")) + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + data = self.t.read("VendorA", "filament", "A PLA @P1") + self.assertNotIn("settings_id", data) + self.assertEqual(data["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1")) + + def test_reserved_vendors_constant(self): + self.assertEqual(afi.RESERVED_VENDORS, {"BBL"}) + self.assertEqual(afi.PROFILE_SUBDIRS, ("filament", "process", "machine")) + + +# --------------------------------------------------------------------------- +# --vendor narrowing +# --------------------------------------------------------------------------- + +class TestVendorNarrowing(SettingTreeCase): + def setUp(self): + super().setUp() + self.t.write("VendorA", "filament", preset("A PLA @P1")) + self.t.write("VendorB", "filament", preset("B PLA @P1")) + + def test_restricts_writes_to_the_named_vendor(self): + before = self.t.bytes_map() + + changed, errors, out = self.t.run(vendors=["VendorA"]) + + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual(self.t.read("VendorA", "filament", "A PLA @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1")) + self.assertEqual(self.t.raw("VendorB", "filament", "B PLA @P1"), + before[os.path.join("VendorB", "filament", "B PLA @P1.json")]) + # ... and the vendor left out is written by a later run, unchanged in kind. + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual(self.t.read("VendorB", "filament", "B PLA @P1")["setting_id"], + afi.generate_preset_setting_id("VendorB", "filament", "B PLA @P1")) + + def test_unknown_vendor_reports_and_writes_nothing(self): + before = self.t.bytes_map() + + changed, errors, out = self.t.run(vendors=["Nope"]) + + self.assertEqual((changed, errors), (0, 1)) + self.assertIn("Nope", out) + self.assertEqual(self.t.bytes_map(), before) + + def test_unknown_vendor_blocks_the_known_ones_too(self): + before = self.t.bytes_map() + changed, errors, _out = self.t.run(vendors=["VendorA", "Nope"]) + self.assertEqual((changed, errors), (0, 1)) + self.assertEqual(self.t.bytes_map(), before) + + +# --------------------------------------------------------------------------- +# --dry-run +# --------------------------------------------------------------------------- + +class TestDryRun(SettingTreeCase): + def test_writes_nothing_and_previews_the_real_run(self): + self.t.write("VendorA", "filament", preset("A PLA @P1")) + self.t.write("VendorA", "process", + preset("0.20mm Standard @P1", type_name="process")) + self.t.write("VendorA", "filament", + preset("A PLA @base", instantiation=False, + setting_id="0000000000000000")) + before = self.t.bytes_map() + + dry_changed, dry_errors, out = self.t.run(dry_run=True) + + self.assertEqual((dry_changed, dry_errors), (3, 0), out) + self.assertIn("would", out) + self.assertEqual(self.t.bytes_map(), before) # nothing written + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (dry_changed, dry_errors), out) + self.assertNotEqual(self.t.bytes_map(), before) + + +# --------------------------------------------------------------------------- +# byte preservation +# --------------------------------------------------------------------------- + +class TestBytePreservation(SettingTreeCase): + CRLF_TEXT = ( + '{\r\n' + '\t"type": "filament",\r\n' + '\t"name": "CRLF PLA @P1",\r\n' + '\t"from": "system",\r\n' + '\t"filament_id": "OFabc123",\r\n' + '\t"instantiation": "true",\r\n' + '\t"filament_type": [\r\n' + '\t\t"PLA"\r\n' + '\t]\r\n' + '}\r\n' + ) + + def test_crlf_and_tab_indentation_survive(self): + self.t.write_raw("VendorA", "filament", "CRLF PLA @P1", + self.CRLF_TEXT.encode("utf-8")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + raw = self.t.raw("VendorA", "filament", "CRLF PLA @P1") + self.assertEqual(raw.count(b"\n"), raw.count(b"\r\n")) # still CRLF-only + want = afi.generate_preset_setting_id("VendorA", "filament", "CRLF PLA @P1") + inserted = ('\t"setting_id": "%s",\r\n' % want).encode("utf-8") + # Every original byte survives: dropping the inserted line restores the file. + self.assertEqual(raw.replace(inserted, b"", 1), + self.CRLF_TEXT.encode("utf-8")) + + def test_bom_survives(self): + raw_in = b"\xef\xbb\xbf" + json.dumps( + preset("BOM PLA @P1", filament_id="OFabc123"), + indent=4, ensure_ascii=False).encode("utf-8") + b"\n" + self.t.write_raw("VendorA", "filament", "BOM PLA @P1", raw_in) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + raw = self.t.raw("VendorA", "filament", "BOM PLA @P1") + self.assertTrue(raw.startswith(b"\xef\xbb\xbf")) + self.assertEqual(raw.count(b"\xef\xbb\xbf"), 1) + want = afi.generate_preset_setting_id("VendorA", "filament", "BOM PLA @P1") + self.assertEqual(self.t.read("VendorA", "filament", "BOM PLA @P1")["setting_id"], + want) + self.assertEqual( + raw.replace((' "setting_id": "%s",\n' % want).encode("utf-8"), b"", 1), + raw_in) + + def test_non_ascii_name_round_trips(self): + name = "拓竹 PLA @P1 0.4 nozzle" + raw_in = (json.dumps(preset(name, filament_id="OFabc123"), indent=4, + ensure_ascii=False).encode("utf-8") + b"\n") + self.t.write_raw("VendorA", "filament", name, raw_in) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + raw = self.t.raw("VendorA", "filament", name) + self.assertIn(name.encode("utf-8"), raw) # not escaped to \uXXXX + data = self.t.read("VendorA", "filament", name) + self.assertEqual(data["name"], name) + self.assertEqual(data["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", name)) + + def test_surrounding_formatting_is_untouched_on_a_strip(self): + text = ('{\r\n' + '\t"type": "filament",\r\n' + '\t"name": "Odd @base",\r\n' + '\t"setting_id": "0000000000000000",\r\n' + '\t"instantiation": "false",\r\n' + '\t"compatible_printers": []\r\n' + '}\r\n') + self.t.write_raw("VendorA", "filament", "Odd @base", text.encode("utf-8")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual( + self.t.raw("VendorA", "filament", "Odd @base").decode("utf-8"), + text.replace('\t"setting_id": "0000000000000000",\r\n', "", 1)) + + +# --------------------------------------------------------------------------- +# byte-preserving key edits +# --------------------------------------------------------------------------- + +class TestInsertAnchor(unittest.TestCase): + WITH_BOTH = ('{\n "name": "K @P1",\n "filament_id": "OFabc123",\n' + ' "instantiation": "true"\n}\n') + WITH_INSTANTIATION = ('{\n "name": "K @P1",\n' + ' "instantiation": "true"\n}\n') + + def test_inserts_before_filament_id(self): + text, n = afi.insert_setting_id(self.WITH_BOTH, "0123456789abcdef") + self.assertEqual(n, 1) + json.loads(text) + self.assertEqual(text, self.WITH_BOTH.replace( + ' "filament_id"', + ' "setting_id": "0123456789abcdef",\n "filament_id"', 1)) + + def test_falls_back_to_instantiation(self): + text, n = afi.insert_setting_id(self.WITH_INSTANTIATION, "0123456789abcdef") + self.assertEqual(n, 1) + json.loads(text) + self.assertIn('"setting_id": "0123456789abcdef",\n "instantiation"', text) + + def test_falls_back_to_name(self): + # Last-resort anchor: every preset has a name, so the insert does not + # depend on filament_id having been written first — a dry run, which + # writes none, must reach the same verdict as the real run. + text, n = afi.insert_setting_id('{\n "name": "K",\n "x": 1\n}\n', + "0123456789abcdef") + self.assertEqual(n, 1) + json.loads(text) + self.assertIn('"name": "K",\n "setting_id": "0123456789abcdef",', text) + + def test_no_anchor_returns_zero(self): + src = '{\n "type": "filament"\n}\n' + text, n = afi.insert_setting_id(src, "0123456789abcdef") + self.assertEqual(n, 0) + self.assertEqual(text, src) + + +class TestKeyLineHelpers(unittest.TestCase): + def test_delete_trailing_comma_form(self): + text = ('{\n "name": "K",\n "setting_id": "OLD0000000000000",\n' + ' "instantiation": "false"\n}\n') + out, n = afi.delete_key_line(text, "setting_id") + self.assertEqual(n, 1) + self.assertEqual(json.loads(out), {"name": "K", "instantiation": "false"}) + self.assertEqual(out, text.replace( + ' "setting_id": "OLD0000000000000",\n', "", 1)) + + def test_delete_last_property_form_consumes_the_preceding_comma(self): + text = ('{\n "name": "K",\n "instantiation": "false",\n' + ' "setting_id": "OLD0000000000000"\n}\n') + out, n = afi.delete_key_line(text, "setting_id") + self.assertEqual(n, 1) + self.assertEqual(json.loads(out), {"name": "K", "instantiation": "false"}) + self.assertEqual(out, '{\n "name": "K",\n "instantiation": "false"\n}\n') + + def test_delete_requires_the_exact_old_value(self): + text = ('{\n "name": "K",\n "setting_id": "OLD0000000000000",\n' + ' "instantiation": "false"\n}\n') + out, n = afi.delete_key_line(text, "setting_id", old_value="OTHER") + self.assertEqual((out, n), (text, 0)) + _out, n = afi.delete_key_line(text, "setting_id", + old_value="OLD0000000000000") + self.assertEqual(n, 1) + + def test_delete_missing_key_returns_zero(self): + text = '{\n "name": "K"\n}\n' + self.assertEqual(afi.delete_key_line(text, "setting_id"), (text, 0)) + + def test_delete_does_not_confuse_the_two_spellings(self): + text = ('{\n "name": "K",\n "settings_id": "TYPO000000000000",\n' + ' "setting_id": "REAL000000000000",\n' + ' "instantiation": "true"\n}\n') + out, n = afi.delete_key_line(text, "settings_id") + self.assertEqual(n, 1) + self.assertEqual(json.loads(out)["setting_id"], "REAL000000000000") + + def test_replace_refuses_a_stale_old_value(self): + text = '{\n "setting_id": "OLD0000000000000"\n}\n' + out, n = afi.replace_key_value(text, "setting_id", "NEW0000000000000", + old_value="NOTTHIS000000000") + self.assertEqual((out, n), (text, 0)) + out, n = afi.replace_key_value(text, "setting_id", "NEW0000000000000", + old_value="OLD0000000000000") + self.assertEqual(n, 1) + self.assertEqual(json.loads(out)["setting_id"], "NEW0000000000000") + + def test_insert_key_line_prefers_before_over_after(self): + text = ('{\n "name": "K",\n "filament_id": "OFabc123",\n' + ' "instantiation": "true"\n}\n') + out, n = afi.insert_key_line(text, "setting_id", "V", + before=("filament_id", "instantiation"), + after=("name",)) + self.assertEqual(n, 1) + self.assertLess(out.index('"setting_id"'), out.index('"filament_id"')) + self.assertGreater(out.index('"setting_id"'), out.index('"name"')) + # The `before` tuple's own order decides, not the order in the file. + out, _n = afi.insert_key_line(text, "setting_id", "V", + before=("instantiation", "filament_id")) + self.assertGreater(out.index('"setting_id"'), out.index('"filament_id"')) + + def test_insert_key_line_falls_back_to_after(self): + text = '{\n "name": "K",\n "from": "system"\n}\n' + out, n = afi.insert_key_line(text, "setting_id", "V", + before=("filament_id",), after=("name",)) + self.assertEqual(n, 1) + self.assertEqual(out, '{\n "name": "K",\n "setting_id": "V",\n' + ' "from": "system"\n}\n') + + def test_insert_key_line_without_any_anchor(self): + text = '{\n "from": "system"\n}\n' + self.assertEqual( + afi.insert_key_line(text, "setting_id", "V", before=("filament_id",), + after=("name",)), + (text, 0)) + + +# --------------------------------------------------------------------------- +# error paths: reported and counted, never raised +# --------------------------------------------------------------------------- + +class TestErrorPaths(SettingTreeCase): + def test_unparsable_profile_is_reported_and_the_run_continues(self): + broken = b'{\n "name": "Broken @P1",\n oops\n}\n' + self.t.write_raw("VendorA", "filament", "Broken @P1", broken) + self.t.write("VendorA", "filament", preset("Good @P1")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("Broken @P1", out) + self.assertEqual(self.t.raw("VendorA", "filament", "Broken @P1"), broken) + self.assertEqual(self.t.read("VendorA", "filament", "Good @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "Good @P1")) + + def test_non_object_top_level_is_reported(self): + raw = b'[\n {"name": "K"}\n]\n' + self.t.write_raw("VendorA", "filament", "List @P1", raw) + self.t.write("VendorA", "filament", preset("Good @P1")) + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("List @P1", out) + self.assertEqual(self.t.raw("VendorA", "filament", "List @P1"), raw) + + def test_nameless_instantiated_preset_is_reported(self): + nameless = {"type": "filament", "from": "system", "instantiation": "true"} + self.t.write("VendorA", "filament", nameless, name="Nameless") + self.t.write("VendorA", "filament", preset("Good @P1")) + before = self.t.raw("VendorA", "filament", "Nameless") + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("Nameless", out) + self.assertEqual(self.t.raw("VendorA", "filament", "Nameless"), before) + self.assertEqual(self.t.read("VendorA", "filament", "Good @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "Good @P1")) + + def test_a_nameless_preset_still_gets_its_misspelled_key_dropped(self): + # The nameless-preset error must not abandon an edit already queued for + # the same file: leaving "settings_id" behind would keep the validator + # red with no way for this tool to clear it. + nameless = {"type": "filament", "from": "system", "settings_id": "JUNK123", + "instantiation": "true"} + self.t.write("VendorA", "filament", nameless, name="Nameless") + + changed, errors, out = self.t.run() + + self.assertEqual((changed, errors), (1, 1), out) + self.assertNotIn("settings_id", self.t.read("VendorA", "filament", "Nameless")) + self.assertNotIn("setting_id", self.t.read("VendorA", "filament", "Nameless")) + self.assertIn('misspelled "settings_id" dropped : 1', out) + + def test_an_unanchorable_file_is_reported_not_raised(self): + # One oddly formatted profile must not abort the pass over all the + # others, and it must fail the same way in a dry run as in a real one. + raw = b'{ "type":"filament", "name":"Flat @P1", "instantiation":"true" }\n' + self.t.write_raw("VendorA", "filament", "Flat @P1", raw) + self.t.write("VendorA", "filament", preset("Good @P1")) + + dry_changed, dry_errors, dry_out = self.t.run(dry_run=True) + changed, errors, out = self.t.run() + + self.assertEqual((dry_changed, dry_errors), (changed, errors), dry_out) + self.assertEqual((changed, errors), (1, 1), out) + self.assertIn("Flat @P1", out) + self.assertEqual(self.t.raw("VendorA", "filament", "Flat @P1"), raw) + self.assertEqual(self.t.read("VendorA", "filament", "Good @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "Good @P1")) + + def test_nameless_base_preset_is_fine(self): + # Only instantiated presets need an identity; a nameless base profile is + # simply left alone. + nameless = {"type": "filament", "from": "system", "instantiation": "false"} + self.t.write("VendorA", "filament", nameless, name="Nameless base") + before = self.t.bytes_map() + changed, errors, out = self.t.run() + self.assertEqual((changed, errors), (0, 0), out) + self.assertEqual(self.t.bytes_map(), before) + + +# --------------------------------------------------------------------------- +# the real tree +# --------------------------------------------------------------------------- + +@unittest.skipUnless(os.path.isdir(REAL_PROFILES), "resources/profiles not present") +class TestRealTree(unittest.TestCase): + def test_shipped_tree_needs_no_setting_id_change(self): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + changed, errors = afi.generate_setting_ids(REAL_PROFILES, dry_run=True) + self.assertEqual((changed, errors), (0, 0), buf.getvalue()) + + +# --------------------------------------------------------------------------- +# CLI +# --------------------------------------------------------------------------- + +class TestCli(SettingTreeCase): + def main(self, argv): + buf = io.StringIO() + with contextlib.redirect_stdout(buf): + rc = afi.main(argv) + return rc, buf.getvalue() + + def test_setting_id_only_run_touches_no_filament_id(self): + # "OFZZZZZZ" is not the mint of the preset's own triple, so the filament + # half of --generate has real work waiting on this tree (proven at the + # end): leaving the id alone is the narrowing's doing, not an idle tree. + self.t.write("VendorA", "filament", + preset("A PLA @P1", filament_id="OFZZZZZZ", + filament_vendor=["AV"], filament_type=["PLA"])) + self.t.write("VendorA", "machine", + preset("P1 0.4 nozzle", type_name="machine")) + + rc, out = self.main(["--generate", "--setting-id", + "--profiles", self.t.profiles]) + + self.assertEqual(rc, 0, out) + filament = self.t.read("VendorA", "filament", "A PLA @P1") + self.assertEqual(filament["filament_id"], "OFZZZZZZ") + self.assertEqual(filament["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", "A PLA @P1")) + machine = self.t.read("VendorA", "machine", "P1 0.4 nozzle") + self.assertNotIn("filament_id", machine) + self.assertEqual(machine["setting_id"], + afi.generate_preset_setting_id("VendorA", "machine", "P1 0.4 nozzle")) + # ... and the skipped half does re-mint that id when it is allowed to run. + changed, errors, out = self.t.run_filament_ids() + self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual( + self.t.read("VendorA", "filament", "A PLA @P1")["filament_id"], + afi.generate_filament_id("AV", "PLA", "A PLA")) + + def test_dry_run_setting_id_writes_nothing(self): + self.t.write("VendorA", "filament", preset("A PLA @P1")) + before = self.t.bytes_map() + rc, out = self.main(["--generate", "--setting-id", "--dry-run", + "--profiles", self.t.profiles]) + self.assertEqual(rc, 0, out) + self.assertIn("1 file(s) would change", out) # there WAS one to write + self.assertEqual(self.t.bytes_map(), before) + # the real run then writes exactly it + rc, out = self.main(["--generate", "--setting-id", + "--profiles", self.t.profiles]) + self.assertEqual(rc, 0, out) + self.assertIn("1 file(s) changed", out) + self.assertEqual(self.t.read("VendorA", "filament", "A PLA @P1")["setting_id"], + afi.generate_preset_setting_id("VendorA", "filament", + "A PLA @P1")) + + def test_setting_id_without_generate_is_a_usage_error(self): + with contextlib.redirect_stderr(io.StringIO()), \ + self.assertRaises(SystemExit) as cm: + afi.main(["--setting-id", "--profiles", self.t.profiles]) + self.assertEqual(cm.exception.code, 2) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py index 7a4a67d2a3..93047895e1 100644 --- a/scripts/update_bambu_filament_ids.py +++ b/scripts/update_bambu_filament_ids.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ Generate resources/printers/bambu_filament_ids.json: the map from Orca's -content-addressed filament_id ("OF" + 6 base62 chars, see assign_filament_ids.py) +content-addressed filament_id ("OF" + 6 base62 chars, see orca_id_tool.py) to Bambu Lab's own AMS/RFID catalog id ("GF..." etc.) for the subset of filament products Bambu ships. @@ -54,7 +54,7 @@ import tempfile import datetime sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) -from assign_filament_ids import ( # noqa: E402 +from orca_id_tool import ( # noqa: E402 BAMBU_MAP_PATH, OFL, OF_ID_RE, diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 235ea66ad2..de17a678ce 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -545,7 +545,7 @@ std::string generate_preset_setting_id(const std::string& vendor, const std::str return ""; // Dedicated namespace for preset setting_ids, distinct from the cloud per-user - // namespace (OrcaCloudServiceAgent). Keep in sync with scripts/assign_vendor_setting_ids.py; + // namespace (OrcaCloudServiceAgent). Keep in sync with scripts/orca_id_tool.py; // never change this constant. static const boost::uuids::uuid vendor_namespace = boost::uuids::string_generator()("c1f4d9e2-7a3b-5c8d-9e0f-1a2b3c4d5e6f"); diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 22089be0b6..e0728d7fa2 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -93,8 +93,8 @@ class PresetBundle; // Deterministic preset setting_id: uuid5(vendor/type/name) -> 16 base62 chars. // Pure function of a system preset's identity, so the value can be assigned by -// scripts/assign_vendor_setting_ids.py and recomputed here when a profile ships -// without it. MUST stay byte-identical to scripts/assign_vendor_setting_ids.py. +// scripts/orca_id_tool.py and recomputed here when a profile ships without it. +// MUST stay byte-identical to scripts/orca_id_tool.py. // This is NOT the per-user cloud-sync setting_id // (OrcaCloudServiceAgent::generate_uuid_for_setting_id) - do not conflate them. std::string generate_preset_setting_id(const std::string& vendor, diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 42ae7b6216..29bccf0966 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -5293,8 +5293,8 @@ std::string PresetBundle::load_vendor_preset( loaded.description = entry.description; loaded.setting_id = entry.setting_id; // Derive the preset setting_id on the fly when a profile ships without one, - // matching scripts/assign_vendor_setting_ids.py. Only instantiated presets - // carry an id; non-instantiated base profiles return earlier above. This never + // matching scripts/orca_id_tool.py. Only instantiated presets carry an id; + // non-instantiated base profiles return earlier above. This never // touches the per-user cloud-sync setting_id written into user .info files. if (loaded.setting_id.empty() && entry.instantiation == "true") loaded.setting_id = generate_preset_setting_id( diff --git a/tests/libslic3r/test_preset_setting_id.cpp b/tests/libslic3r/test_preset_setting_id.cpp index b0e340ead5..8347fa7089 100644 --- a/tests/libslic3r/test_preset_setting_id.cpp +++ b/tests/libslic3r/test_preset_setting_id.cpp @@ -5,10 +5,10 @@ using namespace Slic3r; // Golden vectors from the Python reference generate_preset_setting_id (defined in -// scripts/assign_vendor_setting_ids.py). The C++ generate_preset_setting_id() MUST stay -// byte-identical to it, otherwise app-side on-the-fly ids would diverge from the +// scripts/orca_id_tool.py). The C++ generate_preset_setting_id() MUST stay byte-identical +// to it, otherwise app-side on-the-fly ids would diverge from the // script-assigned ones in the profiles. Regenerate a vector with: -// python3 -c "from assign_vendor_setting_ids import generate_preset_setting_id as g; print(g('Afinia','filament','Afinia ABS @Afinia H400'))" +// python3 -c "import sys; sys.path.insert(0, 'scripts'); from orca_id_tool import generate_preset_setting_id as g; print(g('Afinia','filament','Afinia ABS @Afinia H400'))" TEST_CASE("preset setting_id matches the Python reference", "[Preset][setting_id]") { struct Vec { const char* vendor; const char* type; const char* name; const char* expected; }; const Vec vectors[] = { From eebc82cc9575ee6fc5501dca4591d523a18a5328 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 12:14:05 +0800 Subject: [PATCH 152/164] clean up --- .github/pull_request_template.md | 2 -- src/slic3r/GUI/DeviceCore/DevFilaSystem.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index cf9799df19..575b8f17fe 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -20,8 +20,6 @@ > Please describe the tests that you have conducted to verify the changes made in this PR. --> -- [ ] New filament/material profiles: I wrote **no** `filament_id` key by hand — I ran `python scripts/orca_id_tool.py --generate` and `--update-snapshot` and committed both diffs (see [docs/HLSD/filament_id.md](docs/HLSD/filament_id.md)) - <!-- > A guide for users on how to download the artifacts from this PR. --> diff --git a/src/slic3r/GUI/DeviceCore/DevFilaSystem.h b/src/slic3r/GUI/DeviceCore/DevFilaSystem.h index 36354cebbf..51fb744f72 100644 --- a/src/slic3r/GUI/DeviceCore/DevFilaSystem.h +++ b/src/slic3r/GUI/DeviceCore/DevFilaSystem.h @@ -58,7 +58,7 @@ public: std::string id; std::string tag_uid; // tag_uid - std::string setting_id; // tray_info_idx + std::string setting_id; // tray_info_idx, map to the filament_id std::string filament_setting_id; // setting_id std::string m_fila_type; std::string sub_brands; From 494d50bd55dd30f9bfeda2125bae6bdc3fb6e5a0 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Mon, 7 Sep 2026 01:16:45 -0500 Subject: [PATCH 153/164] fix: restore Ctrl+drag panning on macOS (#15312) On macOS wxWidgets reports Ctrl+left as a synthetic right button, which is what made Ctrl+drag pan the canvas. #14999 added an unconditional correction of the event's button state from wxGetMouseState(), which reports the physical buttons and knows nothing about that synthesis, so the synthetic right button was overwritten with a plain left button on every event. Ctrl+drag then matched the left button mapping and rotated instead of panning. Apply the correction only when the event carries no button state at all. On macOS wx populates button state only for the mouse-down and mouse-dragged event types, which are also the only ones the Ctrl+left translation touches, so the ImGui capture fix keeps every event it was added for. Fixes #15214 Co-authored-by: Noisyfox <timemanager.rick@gmail.com> --- src/slic3r/GUI/GLCanvas3D.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 7db7e01e9c..6cdc27ed65 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -4168,7 +4168,8 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) // https://github.com/OrcaSlicer/OrcaSlicer/pull/14999#issuecomment-5151344759 // We solve this by correcting the state of the event from the actual mouse state querying with `wxGetMouseState()` // so it works like on other platforms. - { + // Only fill in state the event does not carry, to preserve wx's synthetic right button for Ctrl+left. + if (!evt.ButtonIsDown(wxMOUSE_BTN_ANY)) { const auto state = wxGetMouseState(); evt.SetLeftDown(state.LeftIsDown()); evt.SetMiddleDown(state.MiddleIsDown()); From 6943b6ddc3de741d2997fe0f49ef47e6dafb2923 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 15:45:29 +0800 Subject: [PATCH 154/164] Make Cubicon's "@base" filament presets true base profiles Cubicon's nine "@base" presets were the only instantiated ones of the 196 "@base" filament presets in the library; the other 187 are instantiation:false. Being selectable, and claiming xCeler-I and xCeler-Plus, they put two presets of one product on those two printers - which is what forced the nine filament_id salt splits: one product deliberately kept on two ids so AMS matching stayed unambiguous. Flip them to instantiation:false and drop the compatible_printers, setting_id and filament_settings_id that a base has no use for, matching what the other 150 bases carry. The three "@Cubicon xCeler-{I,Mini,Plus} 0.4 nozzle" variants keep one printer each, so every printer still sees exactly one preset per product and they converge on its single id; the nine salted ids retire. A base is not added to the preset collection, so user presets that inherited the selectable "@base" - the v2.3.2-v2.4.2 fixtures have one per material - would lose their parent. renamed_from on the xCeler-I variant, the first model the base ever claimed, redirects them; a preset built on "@base" while printing on an xCeler-Plus narrows to the xCeler-I. The six default_materials / default_filament_profile fields named "Cubicon PLA @Cubicon xCeler-<model>", dropping the " 0.4 nozzle" the presets actually carry, so none of them ever resolved; each model now names its own variant. Claude-Session: https://claude.ai/code/session_01Q3zm9HuyskkSb4hynviV99 --- resources/profiles/Cubicon.json | 2 +- ...icon ABS @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon ABS @base.json | 12 +--- ...ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../filament/Cubicon ABS-A100 @base.json | 12 +--- ...con ABSk @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon ABSk @base.json | 12 +--- ...on PA-CF @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PA-CF @base.json | 12 +--- ...bicon PC @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PC @base.json | 12 +--- ...con PETG @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PETG @base.json | 12 +--- ...icon PLA @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PLA @base.json | 12 +--- ...con PLA+ @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../Cubicon/filament/Cubicon PLA+ @base.json | 12 +--- ...n PLAi21 @Cubicon xCeler-I 0.4 nozzle.json | 1 + .../filament/Cubicon PLAi21 @base.json | 12 +--- .../machine/Cubicon xCeler-I 0.4 nozzle.json | 2 +- .../Cubicon/machine/Cubicon xCeler-I.json | 2 +- .../Cubicon xCeler-Mini 0.4 nozzle.json | 2 +- .../Cubicon/machine/Cubicon xCeler-Mini.json | 2 +- .../Cubicon xCeler-Plus 0.4 nozzle.json | 2 +- .../Cubicon/machine/Cubicon xCeler-Plus.json | 2 +- scripts/filament_id_snapshot.json | 72 ------------------- 26 files changed, 34 insertions(+), 169 deletions(-) diff --git a/resources/profiles/Cubicon.json b/resources/profiles/Cubicon.json index 1fca49355c..ffb363c807 100644 --- a/resources/profiles/Cubicon.json +++ b/resources/profiles/Cubicon.json @@ -1,6 +1,6 @@ { "name": "Cubicon", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Cubicon configurations", "machine_model_list": [ diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json index 52deadf521..93949a7c80 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon ABS @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS @base", + "renamed_from": "Cubicon ABS @base", "setting_id": "VJEyK87ZYvHmamB9", "filament_id": "OFpDo5Ix", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json index 998588dbac..31efe73b11 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon ABS @base", "inherits": "fdm_filament_abs", - "setting_id": "aZRVIlDze62Bbw81", - "filament_id": "OFafocjw", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFpDo5Ix", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon ABS @base" - ], "filament_vendor": [ "Cubicon" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json index cc34341ceb..2788688e1b 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon ABS-A100 @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABS-A100 @base", + "renamed_from": "Cubicon ABS-A100 @base", "setting_id": "OfiOryklf7FDVCz8", "filament_id": "OFy8tYJE", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json index a943b60a8b..5c64ed0fa5 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon ABS-A100 @base", "inherits": "Cubicon ABS @base", - "setting_id": "vGIT4KZvqojIh2up", - "filament_id": "OFN9fefN", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFy8tYJE", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon ABS-A100 @base" - ], "filament_type": [ "ABS" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json index 0deea7e69f..cdb6324af1 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon ABSk @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon ABSk @base", + "renamed_from": "Cubicon ABSk @base", "setting_id": "TXcodZkab4fofnEn", "filament_id": "OForhBi4", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json index a042ecbea3..46a8f2d48c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon ABSk @base", "inherits": "Cubicon ABS @base", - "setting_id": "UbOUO0K3Y2iRPBtf", - "filament_id": "OFgVQkqW", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OForhBi4", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon ABSk @base" - ], "filament_type": [ "ABS" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json index c8e56eaa13..09a5d917f4 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PA-CF @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PA-CF @base", + "renamed_from": "Cubicon PA-CF @base", "setting_id": "nupuIJggdc1EKDqG", "filament_id": "OFiEz2XI", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json index daf2b62754..b9ac6cf4c9 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PA-CF @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon PA-CF @base", "inherits": "fdm_filament_pa", - "setting_id": "55cJDyCoEudfOePY", - "filament_id": "OFD21ije", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFiEz2XI", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon PA-CF @base" - ], "filament_type": [ "PA" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json index d115a6da70..e37f5f063c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PC @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PC @base", + "renamed_from": "Cubicon PC @base", "setting_id": "c0sUPS0SRYUNjEpB", "filament_id": "OFEj7sca", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @base.json b/resources/profiles/Cubicon/filament/Cubicon PC @base.json index 83e3afb15b..001434a2b1 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon PC @base", "inherits": "fdm_filament_pc", - "setting_id": "Mzg6jfwb2nqfGkdV", - "filament_id": "OF79Fbo6", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFEj7sca", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon PC @base" - ], "filament_type": [ "PC" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json index 001b4ecf54..db9a90c42d 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PETG @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PETG @base", + "renamed_from": "Cubicon PETG @base", "setting_id": "dsX01tCkd2Usk104", "filament_id": "OFoBTKmn", "instantiation": "true", diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json index cf4ac7a4af..61fc5c647a 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon PETG @base", "inherits": "fdm_filament_pet", - "setting_id": "bGfz4phwIdqSz0Hx", - "filament_id": "OF8Hx3Pi", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFoBTKmn", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon PETG @base" - ], "filament_type": [ "PETG" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json index 5110547028..3b3c9b1d4c 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PLA @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PLA @base", + "renamed_from": "Cubicon PLA @base", "from": "system", "setting_id": "xXJgHAeNf1JdCitr", "filament_id": "OFEwRwmL", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json index 7dd06c3498..53df18afc5 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json @@ -3,17 +3,9 @@ "name": "Cubicon PLA @base", "inherits": "fdm_filament_pla", "from": "system", - "setting_id": "ypwdJAu0NlEsWpf4", - "filament_id": "OFjcwUEm", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFEwRwmL", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "CBC_MTC_0" - ], "filament_type": [ "PLA" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json index 3acad023d0..3674c61e3f 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PLA+ @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PLA+ @base", + "renamed_from": "Cubicon PLA+ @base", "from": "system", "setting_id": "fNR2Bw3e4TGcWhq0", "filament_id": "OF7tt7DO", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json index 5b98d6fcf8..5e7c8dc10b 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json @@ -2,19 +2,11 @@ "type": "filament", "name": "Cubicon PLA+ @base", "inherits": "Cubicon PLA @base", - "setting_id": "ETnuhiOZRh1jxrVk", - "filament_id": "OFRmGKVX", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OF7tt7DO", + "instantiation": "false", "default_filament_colour": [ "" ], - "filament_settings_id": [ - "Cubicon PLA+ @base" - ], "filament_type": [ "PLA" ], diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json index 865d1af0c3..74bff5f995 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "Cubicon PLAi21 @Cubicon xCeler-I 0.4 nozzle", "inherits": "Cubicon PLAi21 @base", + "renamed_from": "Cubicon PLAi21 @base", "from": "system", "setting_id": "vcLVF3cglagBfVAF", "filament_id": "OFRhBryT", diff --git a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json index 7c851e2a34..39b5b31430 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLAi21 @base.json @@ -2,17 +2,9 @@ "type": "filament", "name": "Cubicon PLAi21 @base", "inherits": "Cubicon PLA @base", - "setting_id": "mnwC7ijXXV72lBOt", - "filament_id": "OFdkWDiy", - "instantiation": "true", - "compatible_printers": [ - "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" - ], + "filament_id": "OFRhBryT", + "instantiation": "false", "default_filament_colour": "", - "filament_settings_id": [ - "Cubicon PLAi21 @base" - ], "filament_type": [ "PLA" ], diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-I 0.4 nozzle.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-I 0.4 nozzle.json index 140b31986c..2844a543a4 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-I 0.4 nozzle.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-I 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Cubicon PLA @Cubicon xCeler-I" + "Cubicon PLA @Cubicon xCeler-I 0.4 nozzle" ], "default_print_profile": "cubicon default @base", "deretraction_speed": [ diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-I.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-I.json index 0377e94716..64d00c37c4 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-I.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-I.json @@ -6,5 +6,5 @@ "bed_texture": "Cubicon xCeler-I_bed_texture.svg", "family": "Cubicon", "machine_tech": "FFF", - "default_materials": "Cubicon PLA @Cubicon xCeler-I" + "default_materials": "Cubicon PLA @Cubicon xCeler-I 0.4 nozzle" } diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini 0.4 nozzle.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini 0.4 nozzle.json index 451e4716d2..85bd7be03f 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini 0.4 nozzle.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Cubicon PLA @Cubicon xCeler-Mini" + "Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle" ], "default_print_profile": "cubicon default @base", "deretraction_speed": [ diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini.json index af43717058..bb55969134 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-Mini.json @@ -6,5 +6,5 @@ "bed_texture": "Cubicon xCeler-I_bed_texture.svg", "family": "Cubicon", "machine_tech": "FFF", - "default_materials": "Cubicon PLA @Cubicon xCeler-Mini" + "default_materials": "Cubicon PLA @Cubicon xCeler-Mini 0.4 nozzle" } diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json index 483c82be07..9c38452bf5 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json @@ -23,7 +23,7 @@ "cooling_tube_length": "0", "cooling_tube_retraction": "0", "default_filament_profile": [ - "Cubicon PLA @Cubicon xCeler-Plus" + "Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle" ], "default_print_profile": "cubicon default @base", "deretraction_speed": [ diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus.json index 28bdd1ce65..41bac9acc1 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus.json @@ -6,5 +6,5 @@ "bed_texture": "Cubicon xCeler-I_bed_texture.svg", "family": "Cubicon", "machine_tech": "FFF", - "default_materials": "Cubicon PLA @Cubicon xCeler-Plus" + "default_materials": "Cubicon PLA @Cubicon xCeler-Plus 0.4 nozzle" } diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 9b0c64f473..76c078a55d 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -899,14 +899,6 @@ "filament_type": "PHA", "filament_vendor": "Generic" }, - "OF79Fbo6": { - "filaments": [ - "Cubicon/Cubicon PC" - ], - "name": "Cubicon PC", - "filament_type": "PC", - "filament_vendor": "Cubicon" - }, "OF7H3VJM": { "filaments": [ "OrcaFilamentLibrary/eSUN PLA-Marble" @@ -997,14 +989,6 @@ "filament_type": "TPU-64D", "filament_vendor": "Flashforge" }, - "OF8Hx3Pi": { - "filaments": [ - "Cubicon/Cubicon PETG" - ], - "name": "Cubicon PETG", - "filament_type": "PETG", - "filament_vendor": "Cubicon" - }, "OF8Jl6NT": { "filaments": [ "Snapmaker/Snapmaker J1 PET" @@ -1477,14 +1461,6 @@ "filament_type": "PLA", "filament_vendor": "Volumic" }, - "OFD21ije": { - "filaments": [ - "Cubicon/Cubicon PA-CF" - ], - "name": "Cubicon PA-CF", - "filament_type": "PA", - "filament_vendor": "Cubicon" - }, "OFD8loeT": { "filaments": [ "re3D/re3D rPETG" @@ -2950,14 +2926,6 @@ "filament_type": "PLA", "filament_vendor": "addnorth" }, - "OFN9fefN": { - "filaments": [ - "Cubicon/Cubicon ABS-A100" - ], - "name": "Cubicon ABS-A100", - "filament_type": "ABS", - "filament_vendor": "Cubicon" - }, "OFNBlAPT": { "filaments": [ "OrcaArena/Arena PETG Basic" @@ -3514,14 +3482,6 @@ "filament_type": "PVA", "filament_vendor": "Volumic" }, - "OFRmGKVX": { - "filaments": [ - "Cubicon/Cubicon PLA+" - ], - "name": "Cubicon PLA+", - "filament_type": "PLA", - "filament_vendor": "Cubicon" - }, "OFRooa0F": { "filaments": [ "Snapmaker/Snapmaker Dual PA-CF" @@ -4623,14 +4583,6 @@ "filament_type": "PC-CF", "filament_vendor": "Generic" }, - "OFafocjw": { - "filaments": [ - "Cubicon/Cubicon ABS" - ], - "name": "Cubicon ABS", - "filament_type": "ABS", - "filament_vendor": "Cubicon" - }, "OFausr3F": { "filaments": [ "OrcaFilamentLibrary/FilAr PLA-mate Rosa" @@ -4871,14 +4823,6 @@ "filament_type": "PLA", "filament_vendor": "Snapmaker" }, - "OFdkWDiy": { - "filaments": [ - "Cubicon/Cubicon PLAi21" - ], - "name": "Cubicon PLAi21", - "filament_type": "PLA", - "filament_vendor": "Cubicon" - }, "OFdqkWtz": { "filaments": [ "Flashforge/Flashforge PLA Luminous" @@ -5296,14 +5240,6 @@ "filament_type": "PC", "filament_vendor": "Volumic" }, - "OFgVQkqW": { - "filaments": [ - "Cubicon/Cubicon ABSk" - ], - "name": "Cubicon ABSk", - "filament_type": "ABS", - "filament_vendor": "Cubicon" - }, "OFgXgt98": { "filaments": [ "Artillery/Artillery ABS" @@ -5807,14 +5743,6 @@ "filament_type": "PLA", "filament_vendor": "Polymaker" }, - "OFjcwUEm": { - "filaments": [ - "Cubicon/Cubicon PLA" - ], - "name": "Cubicon PLA", - "filament_type": "PLA", - "filament_vendor": "Cubicon" - }, "OFjiXpyf": { "filaments": [ "Qidi/Generic TPU 95A", From eec4ae1e876b75142faa7aede8136b079f70933a Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 14:46:26 +0800 Subject: [PATCH 155/164] Retire the untuned re3D umbrella presets superseded by the nozzle variants "Update re:3D profiles" (#13750) added the tuned "@0.4/@0.8 nozzle" and "@0.8/@1.75 nozzle" variants but kept the five original un-suffixed presets, trimming each to a stub that overrides only filament_vendor while still claiming every printer of both nozzles. On any re3D printer the stub was selectable alongside the ~50-key variant that actually tunes the material, which is what forced five filament_id salt splits to keep the pair apart. Drop the stubs. The variants already carry the products' ids, so nothing is re-minted; renamed_from redirects each retired name to the smaller-nozzle variant, and "re3D rPETG @0.8 nozzle" additionally takes over the "re3D Greengate rPETG" mapping that lived on the deleted umbrella. Each printer model's default_materials now lists the variants for its own nozzles rather than the stub. --- resources/profiles/re3D.json | 22 +--------- .../re3D/filament/re3D PC @0.4 nozzle.json | 1 + resources/profiles/re3D/filament/re3D PC.json | 23 ----------- .../re3D/filament/re3D PETG @0.4 nozzle.json | 1 + .../profiles/re3D/filament/re3D PETG.json | 23 ----------- .../re3D/filament/re3D PLA @0.4 nozzle.json | 1 + .../profiles/re3D/filament/re3D PLA.json | 23 ----------- .../re3D/filament/re3D rPETG @0.8 nozzle.json | 2 +- .../profiles/re3D/filament/re3D rPETG.json | 24 ----------- .../re3D/filament/re3D rPP @0.8 nozzle.json | 1 + .../profiles/re3D/filament/re3D rPP.json | 23 ----------- .../machine/re3D Gigabot 4 0.4 nozzle.json | 2 +- .../machine/re3D Gigabot 4 0.8 nozzle.json | 2 +- .../re3D Gigabot 4 XLT 0.4 nozzle.json | 2 +- .../re3D Gigabot 4 XLT 0.8 nozzle.json | 2 +- .../re3D/machine/re3D Gigabot 4 XLT.json | 2 +- .../profiles/re3D/machine/re3D Gigabot 4.json | 2 +- .../re3D/machine/re3D GigabotX 2 XLT.json | 2 +- .../re3D/machine/re3D GigabotX 2.json | 2 +- .../machine/re3D Terabot 4 0.4 nozzle.json | 2 +- .../machine/re3D Terabot 4 0.8 nozzle.json | 2 +- .../profiles/re3D/machine/re3D Terabot 4.json | 2 +- .../re3D/machine/re3D TerabotX 2.json | 2 +- scripts/filament_id_snapshot.json | 40 ------------------- 24 files changed, 18 insertions(+), 190 deletions(-) delete mode 100644 resources/profiles/re3D/filament/re3D PC.json delete mode 100644 resources/profiles/re3D/filament/re3D PETG.json delete mode 100644 resources/profiles/re3D/filament/re3D PLA.json delete mode 100644 resources/profiles/re3D/filament/re3D rPETG.json delete mode 100644 resources/profiles/re3D/filament/re3D rPP.json diff --git a/resources/profiles/re3D.json b/resources/profiles/re3D.json index 9a00807c1a..7a66cb4ce1 100644 --- a/resources/profiles/re3D.json +++ b/resources/profiles/re3D.json @@ -1,7 +1,7 @@ { "name": "re3D", "url": "", - "version": "03.00.09", + "version": "03.00.10", "force_update": "0", "description": "re3D configurations", "machine_model_list": [ @@ -93,26 +93,6 @@ "name": "fdm_filament_pc", "sub_path": "filament/fdm_filament_pc.json" }, - { - "name": "re3D PLA", - "sub_path": "filament/re3D PLA.json" - }, - { - "name": "re3D PETG", - "sub_path": "filament/re3D PETG.json" - }, - { - "name": "re3D PC", - "sub_path": "filament/re3D PC.json" - }, - { - "name": "re3D rPETG", - "sub_path": "filament/re3D rPETG.json" - }, - { - "name": "re3D rPP", - "sub_path": "filament/re3D rPP.json" - }, { "name": "re3D PLA @0.4 nozzle", "sub_path": "filament/re3D PLA @0.4 nozzle.json" diff --git a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json index 518e61bb32..aa4a0baa91 100644 --- a/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PC @0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "re3D PC @0.4 nozzle", "from": "system", + "renamed_from": "re3D PC", "instantiation": "true", "inherits": "fdm_filament_pc", "filament_id": "OFU3QXL7", diff --git a/resources/profiles/re3D/filament/re3D PC.json b/resources/profiles/re3D/filament/re3D PC.json deleted file mode 100644 index dbd43758de..0000000000 --- a/resources/profiles/re3D/filament/re3D PC.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "re3D PC", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pc", - "filament_id": "OFwbsgWj", - "setting_id": "eSR00TZTotTvJs8l", - "filament_settings_id": [ - "re3D PC" - ], - "compatible_printers": [ - "re3D Gigabot 4 0.4 nozzle", - "re3D Gigabot 4 XLT 0.4 nozzle", - "re3D Terabot 4 0.4 nozzle", - "re3D Gigabot 4 0.8 nozzle", - "re3D Gigabot 4 XLT 0.8 nozzle", - "re3D Terabot 4 0.8 nozzle" - ], - "filament_vendor": [ - "re3D" - ] -} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json index 19c315897a..444fa42c55 100644 --- a/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PETG @0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "re3D PETG @0.4 nozzle", "from": "system", + "renamed_from": "re3D PETG", "instantiation": "true", "inherits": "fdm_filament_pet", "filament_id": "OF3F63OE", diff --git a/resources/profiles/re3D/filament/re3D PETG.json b/resources/profiles/re3D/filament/re3D PETG.json deleted file mode 100644 index 273ef5165b..0000000000 --- a/resources/profiles/re3D/filament/re3D PETG.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "re3D PETG", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "filament_id": "OFX0etlv", - "setting_id": "msXDK31R8KOvqNqK", - "filament_settings_id": [ - "re3D PETG" - ], - "compatible_printers": [ - "re3D Gigabot 4 0.4 nozzle", - "re3D Gigabot 4 XLT 0.4 nozzle", - "re3D Terabot 4 0.4 nozzle", - "re3D Gigabot 4 0.8 nozzle", - "re3D Gigabot 4 XLT 0.8 nozzle", - "re3D Terabot 4 0.8 nozzle" - ], - "filament_vendor": [ - "re3D" - ] -} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json index a5a2868975..0314778218 100644 --- a/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json +++ b/resources/profiles/re3D/filament/re3D PLA @0.4 nozzle.json @@ -2,6 +2,7 @@ "type": "filament", "name": "re3D PLA @0.4 nozzle", "from": "system", + "renamed_from": "re3D PLA", "instantiation": "true", "inherits": "fdm_filament_pla", "filament_id": "OFRyOsZj", diff --git a/resources/profiles/re3D/filament/re3D PLA.json b/resources/profiles/re3D/filament/re3D PLA.json deleted file mode 100644 index 7637049e80..0000000000 --- a/resources/profiles/re3D/filament/re3D PLA.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "re3D PLA", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pla", - "filament_id": "OFDdEaoL", - "setting_id": "nPpDwvFg7WQr7K3t", - "filament_settings_id": [ - "re3D PLA" - ], - "compatible_printers": [ - "re3D Gigabot 4 0.4 nozzle", - "re3D Gigabot 4 XLT 0.4 nozzle", - "re3D Terabot 4 0.4 nozzle", - "re3D Gigabot 4 0.8 nozzle", - "re3D Gigabot 4 XLT 0.8 nozzle", - "re3D Terabot 4 0.8 nozzle" - ], - "filament_vendor": [ - "re3D" - ] -} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json index ffe4277113..5bc3c037bf 100644 --- a/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPETG @0.8 nozzle.json @@ -4,7 +4,7 @@ "setting_id": "WlELqPVnuL7DaTxs", "name": "re3D rPETG @0.8 nozzle", "from": "system", - "renamed_from": "re3D Greengate rPETG @0.8 nozzle", + "renamed_from": "re3D Greengate rPETG @0.8 nozzle;re3D rPETG;re3D Greengate rPETG", "instantiation": "true", "inherits": "fdm_filament_pet", "nozzle_temperature_initial_layer": [ diff --git a/resources/profiles/re3D/filament/re3D rPETG.json b/resources/profiles/re3D/filament/re3D rPETG.json deleted file mode 100644 index 85f359d828..0000000000 --- a/resources/profiles/re3D/filament/re3D rPETG.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "type": "filament", - "name": "re3D rPETG", - "from": "system", - "renamed_from": "re3D Greengate rPETG", - "instantiation": "true", - "inherits": "fdm_filament_pet", - "filament_id": "OFD8loeT", - "setting_id": "6aESuJ2S2Kogd4Lq", - "filament_settings_id": [ - "re3D rPETG" - ], - "compatible_printers": [ - "re3D GigabotX 2 0.8 nozzle", - "re3D GigabotX 2 XLT 0.8 nozzle", - "re3D TerabotX 2 0.8 nozzle", - "re3D GigabotX 2 1.75 nozzle", - "re3D GigabotX 2 XLT 1.75 nozzle", - "re3D TerabotX 2 1.75 nozzle" - ], - "filament_vendor": [ - "re3D" - ] -} \ No newline at end of file diff --git a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json index ed12ec1a0d..0b8b99eda1 100644 --- a/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json +++ b/resources/profiles/re3D/filament/re3D rPP @0.8 nozzle.json @@ -4,6 +4,7 @@ "setting_id": "i9ii0b7qFYWnkGSq", "name": "re3D rPP @0.8 nozzle", "from": "system", + "renamed_from": "re3D rPP", "instantiation": "true", "inherits": "fdm_filament_pp", "filament_type": [ diff --git a/resources/profiles/re3D/filament/re3D rPP.json b/resources/profiles/re3D/filament/re3D rPP.json deleted file mode 100644 index c4d2d776a9..0000000000 --- a/resources/profiles/re3D/filament/re3D rPP.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "type": "filament", - "name": "re3D rPP", - "from": "system", - "instantiation": "true", - "inherits": "fdm_filament_pp", - "filament_id": "OFm8rqoY", - "setting_id": "8PB62qm5Cd3SHLf4", - "filament_settings_id": [ - "re3D rPP" - ], - "compatible_printers": [ - "re3D GigabotX 2 0.8 nozzle", - "re3D GigabotX 2 XLT 0.8 nozzle", - "re3D TerabotX 2 0.8 nozzle", - "re3D GigabotX 2 1.75 nozzle", - "re3D GigabotX 2 XLT 1.75 nozzle", - "re3D TerabotX 2 1.75 nozzle" - ], - "filament_vendor": [ - "re3D" - ] -} \ No newline at end of file diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json index d14d3c260e..6ab8f4ed61 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 0.4 nozzle.json @@ -7,7 +7,7 @@ "model_id": "GB4", "printer_model": "re3D Gigabot 4", "bed_texture": "re3D Gigabot 4_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.4 nozzle;re3D PLA @0.4 nozzle;re3D PC @0.4 nozzle", "printable_area": [ "0x0", "590x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json index 9bc78b36ad..e87cdacef1 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 0.8 nozzle.json @@ -7,7 +7,7 @@ "model_id": "GB4", "printer_model": "re3D Gigabot 4", "bed_texture": "re3D Gigabot 4_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.8 nozzle;re3D PLA @0.8 nozzle;re3D PC @0.8 nozzle", "printable_area": [ "0x0", "590x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json index 56b4030476..dedb29c3e8 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.4 nozzle.json @@ -7,7 +7,7 @@ "model_id": "GB4", "printer_model": "re3D Gigabot 4 XLT", "bed_texture": "re3D Gigabot 4 XLT_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.4 nozzle;re3D PLA @0.4 nozzle;re3D PC @0.4 nozzle", "printable_area": [ "0x0", "590x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json index a14e730b30..f34890289c 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT 0.8 nozzle.json @@ -7,7 +7,7 @@ "model_id": "GB4", "printer_model": "re3D Gigabot 4 XLT", "bed_texture": "re3D Gigabot 4 XLT_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.8 nozzle;re3D PLA @0.8 nozzle;re3D PC @0.8 nozzle", "printable_area": [ "0x0", "590x0", diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT.json b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT.json index fcad038e3d..fd7858de60 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4 XLT.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4 XLT.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D Gigabot 4 XLT_buildplate_texture.svg", "hotend_model": "GB-HOTEND.stl", - "default_materials": "re3D PLA;re3D PETG;re3D PC;" + "default_materials": "re3D PLA @0.4 nozzle;re3D PLA @0.8 nozzle;re3D PETG @0.4 nozzle;re3D PETG @0.8 nozzle;re3D PC @0.4 nozzle;re3D PC @0.8 nozzle" } diff --git a/resources/profiles/re3D/machine/re3D Gigabot 4.json b/resources/profiles/re3D/machine/re3D Gigabot 4.json index 642fabc7d8..67531b1214 100644 --- a/resources/profiles/re3D/machine/re3D Gigabot 4.json +++ b/resources/profiles/re3D/machine/re3D Gigabot 4.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D Gigabot 4_buildplate_texture.svg", "hotend_model": "GB-HOTEND.stl", - "default_materials": "re3D PLA;re3D PETG;re3D PC;" + "default_materials": "re3D PLA @0.4 nozzle;re3D PLA @0.8 nozzle;re3D PETG @0.4 nozzle;re3D PETG @0.8 nozzle;re3D PC @0.4 nozzle;re3D PC @0.8 nozzle" } diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json index 99800331d9..1b77360139 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2 XLT.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D GigabotX 2 XLT_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D rPETG;re3D rPP;" + "default_materials": "re3D rPETG @0.8 nozzle;re3D rPETG @1.75 nozzle;re3D rPP @0.8 nozzle;re3D rPP @1.75 nozzle" } diff --git a/resources/profiles/re3D/machine/re3D GigabotX 2.json b/resources/profiles/re3D/machine/re3D GigabotX 2.json index 3a1db130b0..20ec4ff207 100644 --- a/resources/profiles/re3D/machine/re3D GigabotX 2.json +++ b/resources/profiles/re3D/machine/re3D GigabotX 2.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D GigabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D rPETG;re3D rPP;" + "default_materials": "re3D rPETG @0.8 nozzle;re3D rPETG @1.75 nozzle;re3D rPP @0.8 nozzle;re3D rPP @1.75 nozzle" } diff --git a/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json b/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json index d24ba564a2..e57e4058af 100644 --- a/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Terabot 4 0.4 nozzle.json @@ -7,7 +7,7 @@ "model_id": "TB4", "printer_model": "re3D Terabot 4", "bed_texture": "re3D Terabot 4_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.4 nozzle;re3D PLA @0.4 nozzle;re3D PC @0.4 nozzle", "printable_area": [ "0x0", "915x0", diff --git a/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json b/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json index 6255e84896..c15ac1f8b9 100644 --- a/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json +++ b/resources/profiles/re3D/machine/re3D Terabot 4 0.8 nozzle.json @@ -7,7 +7,7 @@ "model_id": "TB4", "printer_model": "re3D Terabot 4", "bed_texture": "re3D Terabot 4_buildplate_texture.svg", - "default_materials": "re3D PETG;re3D PLA;re3D PC", + "default_materials": "re3D PETG @0.8 nozzle;re3D PLA @0.8 nozzle;re3D PC @0.8 nozzle", "printable_area": [ "0x0", "915x0", diff --git a/resources/profiles/re3D/machine/re3D Terabot 4.json b/resources/profiles/re3D/machine/re3D Terabot 4.json index 725f67470e..eaca67fba0 100644 --- a/resources/profiles/re3D/machine/re3D Terabot 4.json +++ b/resources/profiles/re3D/machine/re3D Terabot 4.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D Terabot 4_buildplate_texture.svg", "hotend_model": "GB-HOTEND.stl", - "default_materials": "re3D PLA;re3D PETG;re3D PC;" + "default_materials": "re3D PLA @0.4 nozzle;re3D PLA @0.8 nozzle;re3D PETG @0.4 nozzle;re3D PETG @0.8 nozzle;re3D PC @0.4 nozzle;re3D PC @0.8 nozzle" } diff --git a/resources/profiles/re3D/machine/re3D TerabotX 2.json b/resources/profiles/re3D/machine/re3D TerabotX 2.json index f541a62ad7..177c1e05d0 100644 --- a/resources/profiles/re3D/machine/re3D TerabotX 2.json +++ b/resources/profiles/re3D/machine/re3D TerabotX 2.json @@ -9,5 +9,5 @@ "bed_model": "", "bed_texture": "re3D TerabotX 2_buildplate_texture.svg", "hotend_model": "GBX-HOTEND.stl", - "default_materials": "re3D rPETG;re3D rPP;" + "default_materials": "re3D rPETG @0.8 nozzle;re3D rPETG @1.75 nozzle;re3D rPP @0.8 nozzle;re3D rPP @1.75 nozzle" } diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 76c078a55d..34eb407ef5 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -1461,14 +1461,6 @@ "filament_type": "PLA", "filament_vendor": "Volumic" }, - "OFD8loeT": { - "filaments": [ - "re3D/re3D rPETG" - ], - "name": "re3D rPETG", - "filament_type": "PETG", - "filament_vendor": "re3D" - }, "OFD9taow": { "filaments": [ "FlyingBear/FlyingBear PLA Hyper" @@ -1578,14 +1570,6 @@ "filament_type": "PLA", "filament_vendor": "Generic" }, - "OFDdEaoL": { - "filaments": [ - "re3D/re3D PLA" - ], - "name": "re3D PLA", - "filament_type": "PLA", - "filament_vendor": "re3D" - }, "OFDe8uyM": { "filaments": [ "OrcaFilamentLibrary/Valment PLA" @@ -4049,14 +4033,6 @@ "filament_type": "PLA", "filament_vendor": "FilAr" }, - "OFX0etlv": { - "filaments": [ - "re3D/re3D PETG" - ], - "name": "re3D PETG", - "filament_type": "PETG", - "filament_vendor": "re3D" - }, "OFX0ycRQ": { "filaments": [ "BBL/Fiberon PA12-CF", @@ -6084,14 +6060,6 @@ "filament_type": "PLA", "filament_vendor": "CoLiDo" }, - "OFm8rqoY": { - "filaments": [ - "re3D/re3D rPP" - ], - "name": "re3D rPP", - "filament_type": "PP", - "filament_vendor": "re3D" - }, "OFmCOW2Y": { "filaments": [ "re3D/re3D rPETG" @@ -7387,14 +7355,6 @@ "filament_type": "PA-GF", "filament_vendor": "Polymaker" }, - "OFwbsgWj": { - "filaments": [ - "re3D/re3D PC" - ], - "name": "re3D PC", - "filament_type": "PC", - "filament_vendor": "re3D" - }, "OFwc74ck": { "filaments": [ "BBL/BETA PLA Matte" From 886d43d37a7eb98db7d090fe8cb8399089800b69 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Mon, 7 Sep 2026 16:35:36 +0800 Subject: [PATCH 156/164] Fix Support Fill Cost Thresholds Being Frozen By The First Call (#15564) Fix support fill cost thresholds being frozen by the first call --- src/libslic3r/Fill/FillBase.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 2b307007b8..f4615dc640 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -2467,9 +2467,11 @@ void Fill::connect_base_support(Polylines &&infill_ordered, const std::vector<co #endif // INFILL_DEBUG_OUTPUT const std::vector<SupportArcCost> arches = evaluate_support_arches(infill_ordered, graph, spacing, params); - static const double cost_low = line_spacing * 1.3; - static const double cost_high = line_spacing * 2.; - static const double cost_veryhigh = line_spacing * 3.; + // Must not be static: line_spacing varies per call (base vs interface fills differ), + // and a static here would fix these to whichever call ran first, order depending on thread count. + const double cost_low = line_spacing * 1.3; + const double cost_high = line_spacing * 2.; + const double cost_veryhigh = line_spacing * 3.; { std::vector<const SupportArcCost*> selected; From b394ca891f9faa140dbb0480d50d313252b30e76 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 17:29:38 +0800 Subject: [PATCH 157/164] Retire the superseded Snapmaker PLA-CF preset for the U1 0.4 nozzle "Snapmaker PLA-CF @U1" and "Snapmaker PLA-CF @U1 0.4 nozzle" are the same product on the same printer: both pin "Snapmaker U1 (0.4 nozzle)", and only a filament_id salt split kept them apart. The first came with the original U1 profiles (#10225); the second with the tool-changer rework (#15039), which added the 0.4/0.6/0.8 nozzle variants and left the older preset behind. Drop the older one and re-mint the 0.4 variant onto OFhQf8ou, the id its 0.6 and 0.8 siblings already carry, so the product holds one id across the three nozzles; renamed_from redirects the retired name. Users of the retired preset get the #15039 tuning - 39 keys differ, including nozzle 230 -> 240 C, plate 55 -> 65 C and vitrification 150 -> 45 C - which is what the 0.6 and 0.8 variants already ship. "Snapmaker PLA-CF @U1 base" stays. #15039 orphaned it by having the nozzle variants inherit fdm_filament_pla directly, so it is unreferenced, but it is a base in the vendor's own convention - 10 of the 14 @U1 families with nozzle variants wire them to one - and it holds U1 loading and cooling values the variants never set. Wiring them to it would change slicing output, which is Snapmaker's call to make, not this PR's. Claude-Session: https://claude.ai/code/session_01Q3zm9HuyskkSb4hynviV99 --- resources/profiles/Snapmaker.json | 6 +----- .../filament/Snapmaker PLA-CF @U1 0.4 nozzle.json | 3 ++- .../Snapmaker/filament/Snapmaker PLA-CF @U1.json | 14 -------------- scripts/filament_id_snapshot.json | 8 -------- 4 files changed, 3 insertions(+), 28 deletions(-) delete mode 100644 resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json diff --git a/resources/profiles/Snapmaker.json b/resources/profiles/Snapmaker.json index 50aaad2715..0407dca2ec 100644 --- a/resources/profiles/Snapmaker.json +++ b/resources/profiles/Snapmaker.json @@ -1,6 +1,6 @@ { "name": "Snapmaker", - "version": "02.04.00.11", + "version": "02.04.00.12", "force_update": "0", "description": "Snapmaker configurations", "machine_model_list": [ @@ -1572,10 +1572,6 @@ "name": "Snapmaker PLA Silk @0.2 nozzle", "sub_path": "filament/Snapmaker PLA Silk @0.2 nozzle.json" }, - { - "name": "Snapmaker PLA-CF @U1", - "sub_path": "filament/Snapmaker PLA-CF @U1.json" - }, { "name": "Snapmaker PLA-CF", "sub_path": "filament/Snapmaker PLA-CF.json" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json index 44aeab2a48..9ce38a9782 100644 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json +++ b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1 0.4 nozzle.json @@ -3,8 +3,9 @@ "name": "Snapmaker PLA-CF @U1 0.4 nozzle", "inherits": "fdm_filament_pla", "from": "system", + "renamed_from": "Snapmaker PLA-CF @U1", "setting_id": "2INwruC3ZVkBTdUT", - "filament_id": "OFf52D4e", + "filament_id": "OFhQf8ou", "instantiation": "true", "compatible_printers": [ "Snapmaker U1 (0.4 nozzle)" diff --git a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json b/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json deleted file mode 100644 index 9091258467..0000000000 --- a/resources/profiles/Snapmaker/filament/Snapmaker PLA-CF @U1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Snapmaker PLA-CF @U1", - "inherits": "Snapmaker PLA-CF @U1 base", - "from": "system", - "setting_id": "eyNYjz24xQYyAQcv", - "instantiation": "true", - "compatible_printers": [ - "Snapmaker U1 (0.4 nozzle)" - ], - "filament_retract_length_toolchange": [ - "5" - ] -} diff --git a/scripts/filament_id_snapshot.json b/scripts/filament_id_snapshot.json index 34eb407ef5..5b45e5ca7e 100644 --- a/scripts/filament_id_snapshot.json +++ b/scripts/filament_id_snapshot.json @@ -4970,14 +4970,6 @@ "filament_type": "PETG", "filament_vendor": "QIDI" }, - "OFf52D4e": { - "filaments": [ - "Snapmaker/Snapmaker PLA-CF" - ], - "name": "Snapmaker PLA-CF", - "filament_type": "PLA-CF", - "filament_vendor": "Snapmaker" - }, "OFf5awy4": { "filaments": [ "OrcaFilamentLibrary/Eolas Prints PLA Matte" From fcb128c51b424976ca262fb6ed9af91129107171 Mon Sep 17 00:00:00 2001 From: TheLegendTubaGuy <95944177+thelegendtubaguy@users.noreply.github.com> Date: Mon, 7 Sep 2026 05:57:09 -0500 Subject: [PATCH 158/164] Fix Traditional Chinese language selection (#15567) Use the zh_TW-specific wxWidgets language enum so the packaged Traditional Chinese catalog passes the Preferences language filter.\n\nFixes #15561 --- src/slic3r/GUI/Preferences.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 355c4a26a8..08483f3100 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -347,7 +347,7 @@ wxBoxSizer *PreferencesDialog::create_item_language_combobox(wxString title, wxS wxLanguage supported_languages[]{ wxLANGUAGE_ENGLISH, wxLANGUAGE_CHINESE_SIMPLIFIED, - wxLANGUAGE_CHINESE, + wxLANGUAGE_CHINESE_TRADITIONAL, wxLANGUAGE_GERMAN, wxLANGUAGE_CZECH, wxLANGUAGE_FRENCH, @@ -407,7 +407,7 @@ wxBoxSizer *PreferencesDialog::create_item_language_combobox(wxString title, wxS if (vlist[i] == wxLocale::GetLanguageInfo(wxLANGUAGE_CHINESE_SIMPLIFIED)) { language_name = wxString::FromUTF8("\xe4\xb8\xad\xe6\x96\x87\x28\xe7\xae\x80\xe4\xbd\x93\x29"); } - else if (vlist[i] == wxLocale::GetLanguageInfo(wxLANGUAGE_CHINESE)) { + else if (vlist[i] == wxLocale::GetLanguageInfo(wxLANGUAGE_CHINESE_TRADITIONAL)) { language_name = wxString::FromUTF8("\xe4\xb8\xad\xe6\x96\x87\x28\xe7\xb9\x81\xe9\xab\x94\x29"); } else if (vlist[i] == wxLocale::GetLanguageInfo(wxLANGUAGE_SPANISH)) { From 9e1b000e7f08531eabd9efb7a932a983a7421438 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 14:53:06 +0800 Subject: [PATCH 159/164] Hold every filament product to exactly one id, with no exceptions filament_id is the plain mint of the product triple (filament_vendor, filament_type, filament name), and nothing else feeds it. The tooling used to accept any salt iteration of a preset's own triple, and its minting policy stepped past ids that other products held in the tree or in the snapshot, so which id a product got could depend on history. Every "salt split" in the tree masked a redundant preset rather than a real need, and no shipped id is salted, so salting goes entirely: no salt parameter, no id policy object, and --generate no longer reads the snapshot. --check now holds every declared and every inherited id to that one value and lists each preset that misses it, variants under a wrong root included, instead of folding them into the root's error. Two products whose triples mint one id is reported as a collision naming both, and --generate refuses to write it; the remedy is a rename so the triples differ. The Bambu catalog map generator keys its rows by the same mint rather than by what the tree already ships. No id changes: all 913 ids in the tree are already the mint of their triple, so --generate is a no-op and the snapshot is untouched. --- docs/HLSD/filament_id.md | 56 +++-- scripts/orca_id_tool.py | 240 ++++++++----------- scripts/tests/test_filament_id.py | 330 ++++++++++++--------------- scripts/tests/test_setting_id.py | 7 +- scripts/update_bambu_filament_ids.py | 63 +---- 5 files changed, 277 insertions(+), 419 deletions(-) diff --git a/docs/HLSD/filament_id.md b/docs/HLSD/filament_id.md index 92d75ca8ca..0aaf845909 100644 --- a/docs/HLSD/filament_id.md +++ b/docs/HLSD/filament_id.md @@ -129,7 +129,7 @@ key needed). Tuning a generic material → **join the OrcaFilamentLibrary filame | Color | never a new id | | Second diameter of the same product (1.75 + 2.85) | sibling filament, new id | | "High-speed" tuned for a *different printer model* | same id (it is a printer variant) | -| "High-speed" selectable *alongside* the normal preset on one printer | new id (it is a product line) | +| "High-speed" selectable *alongside* the normal preset on one printer | new name, so a new id (it is a product line) | ## Structure rules @@ -149,7 +149,9 @@ key needed). Tuning a generic material → **join the OrcaFilamentLibrary filame are both the filament `MyBrand PLA`. 3. **Within one filament, variants' `compatible_printers` are pairwise disjoint** — per printer, at most one compatible instantiated preset per id, or AMS matching turns ambiguous. The - C++ validator's `-f` check enforces this. + C++ validator's `-f` check enforces this, tree-wide in CI. Since one product carries one id + and cannot be split onto two, this rule is the *only* remedy for such an ambiguity: narrow + the `compatible_printers`, or retire the preset that duplicates another. 4. **Generics belong to OrcaFilamentLibrary.** A vendor tuning a generic material inherits `Generic X @System`, keeps the `Generic X` base name (that alias is what hides the library preset on your printers, and it is what makes its triple — and so its id — the library's) @@ -194,12 +196,17 @@ Snapmaker bundles alike; the OFL generic `Generic/PLA/Generic PLA` mints `OFDSrz by 35 bundles — most by independent declarations converging on the same mint, the rest purely through inheritance from the OFL preset. -On the rare collision with an existing id, the minter salts the input (`…/1`, -`…/2`, …) until free, and the result is frozen in the profile file. Salting is also used -deliberately: a *salt split* keeps two presets of one product on distinct ids where a single -id would be AMS-ambiguous on the same printer — the "selectable alongside" situation from the -table above, resolved without inventing a second filament name. The tooling recognizes salt -iterations of a triple as conformant and preserves such splits across re-mints. +Nothing but the triple feeds the mint — not the rest of the tree, not the snapshot, not what +another preset of the product happens to carry. Determined triple, determined id: one product +carries one id and there is no second acceptable value for it, so any other value on a preset +is a mismatch `--check` reports and `--generate` pulls back. Two *different* products whose +triples mint the same base62 value would be a collision (a roughly 36-bit id space against a +few thousand products); nothing salts past it: `--check` reports it naming both products, +`--generate` refuses to write it, and the remedy is a rename so their triples differ. Where +two presets of one product would be AMS-ambiguous on a printer, the fix is likewise in the +profiles — make their `compatible_printers` disjoint (structure rule 3), retire the redundant +preset, or, if they really are different products, give them different names so their triples +differ. Never a second id for one triple. Workflow for a new filament: @@ -217,10 +224,10 @@ python scripts/orca_extra_profile_check.py # 6. ...and everything else CI `(filament_vendor, filament_type, filament name)` triple: it inserts one where an instantiated filament resolves none, and re-derives one that does not match. A preset that *inherits* a mismatching id is the one case left to the author — check 3b names it, and the fix is to inherit -a preset of the same filament or to give the preset its own key. It converges on an id the same -product already holds and salts only past ids *other* products hold, so an id already equal to a -salt iteration of its own triple is left alone and deliberate salt splits survive. The same run -assigns `generate_preset_setting_id(vendor, type, name)` to every instantiated filament, process +a preset of the same filament or to give the preset its own key. A declaration is left alone +exactly when it already equals the one id its triple mints, and a collision (check 3d) is +reported and left unwritten. The same run assigns +`generate_preset_setting_id(vendor, type, name)` to every instantiated filament, process and machine preset of every vendor except BBL, which keeps its authoritative `G*` ids, strips `setting_id` from base profiles, and fixes the misspelled `settings_id` key — dropped, or, for BBL, whose ids have no formula to fall back on, restored under the correct name. It is idempotent and @@ -231,9 +238,9 @@ check CI runs over both id kinds, of which `--check` is the `filament_id` half. - `--filament-id` limits the run to `filament_id`. - `--setting-id` limits the run to `setting_id`. The two exclude each other; pass neither to write both. -- `--vendor VENDOR` confines the run to that bundle; repeatable. The ids are still derived - tree-wide, so a narrowed run writes exactly what a full one would — and reports any duplicate - it was not allowed to clear, since only a run covering both bundles can. +- `--vendor VENDOR` confines the run to that bundle; repeatable. The id is a function of the + triple alone, so a narrowed run writes exactly what a full one would; `--check` reports + whatever it left outside. - `--dry-run` reports what `--generate` would do and writes nothing; with no mode of its own it implies `--generate`, so `--dry-run --vendor <Vendor>` previews just that bundle. - `--profiles DIR` points the tooling at a different profile tree (default @@ -309,10 +316,10 @@ one-to-one in both directions. it from **BambuStudio's own shipped BBL bundle** — a sparse shallow clone of upstream `master`, or `--bambustudio-dir <a BambuStudio resources/profiles checkout>`. Our BBL bundle is a fork of Bambu's, tuned and extended independently, so it is not the source of truth for Bambu's ids. -A row's key is whatever id our tree already mints for that same -`(filament_vendor, filament_type, filament name)` triple; a product we do not ship gets a freshly -generated key and the row sits inert until some bundle claims that triple — `OFdyfQvU` / -`GFG03`, "Bambu PETG Matte", is such a row today. +A row's key is the id the product's `(filament_vendor, filament_type, filament name)` triple +mints — the same id any bundle of ours carries for it, since the id is a function of the triple +alone; the row of a product we do not ship sits inert until some bundle claims that triple — +`OFdyfQvU` / `GFG03`, "Bambu PETG Matte", is such a row today. **Regenerate it in the same commit as every BBL profile sync**, and read the drift report it prints. Two lines, both informational, neither blocking the write: @@ -437,11 +444,12 @@ The checks, in brief: its snapshot entry, both directions: any `filament_vendor`/`filament_type`/name change surfaces as a snapshot diff. - **Identity** — the id is a function of the triple alone. A declared `OF*` id must equal the - mint (or a low salt iteration) of its declarer's own triple; the id an instantiated preset - *inherits* must equal the mint of *its* own triple, however it inherits it (a root, a real - filament, a library preset — structure rule 1); and every instantiated system filament must - resolve an effective id at all (recall: an id-less one is a hard load error in C++ that - discards the whole vendor bundle). The errors print the expected id. + one id its declarer's own triple mints, with no second acceptable value; the id an + instantiated preset *inherits* must equal the mint of *its* own triple, however it inherits + it (a root, a real filament, a library preset — structure rule 1); and every instantiated + system filament must resolve an effective id at all (recall: an id-less one is a hard load + error in C++ that discards the whole vendor bundle); and no two products mint one id (a + base62 collision, resolved by renaming one of them). The errors print the expected id. - **Reserved namespaces** — `GF*`, `QD_*`, `P<7-hex>` or `"null"` claimed by any vendor, BBL and Qidi included. - **Triple integrity** — every declarer must resolve a non-empty `filament_vendor` and diff --git a/scripts/orca_id_tool.py b/scripts/orca_id_tool.py index 8d08bde4ab..956aec3569 100755 --- a/scripts/orca_id_tool.py +++ b/scripts/orca_id_tool.py @@ -24,8 +24,11 @@ filament_id policy (see docs/HLSD/filament_id.md): filament_id = "OF" + base62_6( uuid5(FILAMENT_ID_NAMESPACE, "filament_product/<filament_vendor>/<filament_type>/<filament_name>") ) 8 chars total, which satisfies the AMS length limit. Nobody invents ids by - hand; on the astronomically rare collision with another product's id the - input is salted ("/1", "/2", ...) until free and the result is frozen in file. + hand, and nothing but the triple feeds the mint — not the rest of the tree, + not the snapshot. Two products whose triples mint one id (a base62 + collision; odds ~1e-5 over the whole tree) is an error --check reports and + --generate refuses to write; the remedy is a rename so the triples differ, + never a salted or hand-picked second id. Identity changes (a filament rename, a filament_vendor/filament_type fix) change the id BY DESIGN. * Reserved id spaces that are never minted into or altered: @@ -120,8 +123,6 @@ USER_CUSTOM_ID_RE = re.compile(r"^P[0-9A-Fa-f]{7}$", re.IGNORECASE) # Filament name = preset base name: strip the first "@..." suffix. The space before # "@" is optional because names like "Afinia PLA@HS" exist. BASE_NAME_RE = re.compile(r"\s?@.*$") -# Salt iterations accepted by the identity check (check 3). -MAX_CHECK_SALT = 8 # A JSON string literal, for the byte-preserving key edits. _JSON_STR = r'"(?:[^"\\]|\\.)*"' @@ -190,43 +191,20 @@ def base_name(name): return BASE_NAME_RE.sub("", name, count=1) -def generate_filament_id(filament_vendor, filament_type, filament_name, salt=0): +def generate_filament_id(filament_vendor, filament_type, filament_name): """Deterministic "OF" + 6-char base62 filament_id for a filament product. - input = "filament_product/<filament_vendor>/<filament_type>/<filament_name>" - (+ "/<salt>" when salted); u = uuid5(FILAMENT_ID_NAMESPACE, input); the id - tail is the low FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), - most-significant first — the same derivation as generate_preset_setting_id. + The triple is the only input: no salt, no state, no second value. + input = "filament_product/<filament_vendor>/<filament_type>/<filament_name>"; + u = uuid5(FILAMENT_ID_NAMESPACE, input); the id tail is the low + FILAMENT_ID_LENGTH base62 digits of int(u.bytes, "big"), most-significant + first — the same derivation as generate_preset_setting_id. """ key = f"filament_product/{filament_vendor}/{filament_type}/{filament_name}" - if salt: - key = f"{key}/{salt}" u = uuid.uuid5(FILAMENT_ID_NAMESPACE, key) return "OF" + _base62_tail(int.from_bytes(u.bytes, "big"), FILAMENT_ID_LENGTH) -def mint_filament_id(filament_vendor, filament_type, filament_name, taken): - """Mint the product's id: the first salt iteration not in `taken`. - - Bounded by MAX_CHECK_SALT, the last iteration the identity check accepts, so - the tool can never write an id its own --check would reject. Exhausting it - would take nine base62 collisions on one triple; it means something is wrong - with `taken`, not that a tenth salt is needed. - """ - for salt in range(MAX_CHECK_SALT + 1): - candidate = generate_filament_id(filament_vendor, filament_type, filament_name, salt) - if candidate not in taken: - return candidate - raise RuntimeError( - f"could not mint a free filament_id for {filament_vendor}/{filament_type}/" - f"{filament_name}: salts 0..{MAX_CHECK_SALT} are all taken") - - -def mint_iterations(triple): - """The ids that count as the mint of `triple`: salt 0..MAX_CHECK_SALT.""" - return {generate_filament_id(*triple, salt=s) for s in range(MAX_CHECK_SALT + 1)} - - # --------------------------------------------------------------------------- # Tree loading + loader-faithful effective-id resolution # --------------------------------------------------------------------------- @@ -439,12 +417,15 @@ def analyze_tree(profiles_dir): triples = {} # fid -> set of triples of its declarers declarer_triples = [] # (vendor, rec, fid, triple) per declarer filament_triples = {} # (vendor, filament_name) -> {triple: [declarers]} + mints = {} # minted id -> triples minting it (declarers + instantiated) for vendor, filaments in vendors.items(): occurring = vendor_ids.setdefault(vendor, set()) for rec in filaments.values(): triple = resolve_triple(rec["name"], filaments, ofl_filaments) rec["triple"] = triple + if rec.get("filament_id") or rec["instantiation"]: + mints.setdefault(generate_filament_id(*triple), set()).add(triple) if rec.get("filament_id"): fid = rec["filament_id"] occurring.add(fid) @@ -466,16 +447,6 @@ def analyze_tree(profiles_dir): if not rec.get("filament_id") and OF_ID_RE.match(eff): inherited.append((vendor, rec, eff, triple)) - # Identity (check 3b): an inherited id must be the mint of the preset's - # OWN triple. A declared id is held to the same rule as a declarer (3a), - # and an id whose declarer already fails 3a is reported there once, not - # again under every preset inheriting it. - unminted = {fid for _v, _r, fid, triple in declarer_triples - if OF_ID_RE.match(fid) and fid not in mint_iterations(triple)} - id_mismatches = [ - (vendor, rec, eff, triple) for vendor, rec, eff, triple in inherited - if eff not in unminted and eff not in mint_iterations(triple)] - # Cross-bundle triple divergence (check 5, warning only): the same filament # name declared in several bundles with different triples cannot converge # on one id until the divergence is fixed. @@ -495,12 +466,13 @@ def analyze_tree(profiles_dir): "vendor_ids": vendor_ids, "declared_ids": declared_ids, "missing_effective": sorted(missing_effective), - "id_mismatches": id_mismatches, + "inherited": inherited, "triples": {fid: sorted(list(t) for t in ts) for fid, ts in triples.items()}, - "triple_sets": triples, "declarer_triples": declarer_triples, "filament_triples": filament_triples, "cross_bundle_triples": cross_bundle_triples, + # id -> the products (triples) minting it, where there is more than one + "collisions": {fid: sorted(ts) for fid, ts in mints.items() if len(ts) > 1}, } @@ -580,12 +552,14 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, 2. Snapshot equality, both directions: every id in the tree, the filaments claiming it and the triple its declarers resolve must equal the snapshot entry exactly (the snapshot diff is the maintainer gate). - 3. Identity: the id is a function of the triple alone. (a) A declared id - must equal the mint of the declarer's own triple or a salted iteration; - (b) the id an instantiated preset inherits must equal the mint of ITS - own triple — how it inherits it (a root, a real filament, an OFL - preset) is irrelevant; (c) every instantiated filament resolves an - effective id at all (an id-less one is a hard load error in C++). + 3. Identity: the id is a function of the triple alone, and there is no + second acceptable value. (a) A declared id must equal the one id the + declarer's own triple mints; (b) the id an instantiated preset inherits + must equal the one ITS own triple mints — how it inherits it (a root, a + real filament, an OFL preset) is irrelevant; (c) every instantiated + filament resolves an effective id at all (an id-less one is a hard load + error in C++); (d) no two products mint one id (a base62 collision, + resolved by renaming one of them). 4. Reserved namespaces (GF*/QD_*/P-hex/"null", all ownerless) must not be claimed by any vendor. 5. Triple integrity: (a) every declarer resolves non-empty filament_vendor @@ -664,22 +638,36 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, errors += 1 # -- 3. identity: the id is a function of the triple alone --------------- + # One triple, one id: a declaration must carry exactly the mint of its + # triple, and there is no second acceptable value — not a salt, not a + # hand-picked one, not whatever another preset of the product carries. Two + # presets of one product that would be AMS-ambiguous on a printer are fixed + # in the profiles, by making their compatible_printers disjoint or by + # retiring the redundant one. for vendor, rec, fid, triple in sorted( analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): - if not OF_ID_RE.match(fid) or fid in mint_iterations(triple): - continue + want = generate_filament_id(*triple) + if not OF_ID_RE.match(fid) or fid == want: + continue # a non-OF id is check 1's error print_error( f'filament_id "{fid}" declared by "{rec["name"]}" ({rec["file"]}) does ' f'not match the mint of its triple "{"/".join(triple)}": expected ' - f'"{generate_filament_id(*triple)}" (or a salted iteration); paste the ' - f'expected id, or fix the triple and run "{GENERATE_CMD} --vendor {vendor}" ' - f"(preview with --dry-run), then --update-snapshot") + f'"{want}"; paste the expected id, or fix the triple and run ' + f'"{GENERATE_CMD} --vendor {vendor}" (preview with --dry-run), then ' + f"--update-snapshot") errors += 1 + # (3b) An inherited id is held to the same single value, and every preset + # missing it is listed — a variant under a wrong root as much as a preset + # riding another product's root. Nothing is folded into the declarer's + # error: the report names each preset whose id is wrong. for vendor, rec, eff, triple in sorted( - analysis["id_mismatches"], key=lambda x: (x[0], x[1]["file"])): + analysis["inherited"], key=lambda x: (x[0], x[1]["file"])): + want = generate_filament_id(*triple) + if eff == want: + continue print_error( f'preset "{rec["name"]}" ({rec["file"]}) inherits filament_id "{eff}" but ' - f'its own triple "{"/".join(triple)}" mints "{generate_filament_id(*triple)}"; ' + f'its own triple "{"/".join(triple)}" mints "{want}"; ' f"a preset carries the id of its own product: inherit a preset of the " f"same filament, or declare its own key") errors += 1 @@ -691,7 +679,15 @@ def check_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, f'instantiated filament "{name}" ({file}) resolves no filament_id anywhere ' f"in its inherits chain — this is a hard load error in the C++ loader; " f'run "{GENERATE_CMD}" (expected id for filament ' - f'"{vendor}/{base_name(name)}": "{expected}", salted if taken)') + f'"{vendor}/{base_name(name)}": "{expected}")') + errors += 1 + # (3d) The mint is injective over the tree's products, or two of them are + # indistinguishable to every device that matches on the id. + for fid, ts in sorted(analysis["collisions"].items()): + print_error( + f'filament_id "{fid}" is the mint of {len(ts)} different products ' + f'({"; ".join("/".join(t) for t in ts)}): a base62 collision; rename one ' + f"of them so their triples differ") errors += 1 # -- 4. reserved namespaces ---------------------------------------------- @@ -993,75 +989,36 @@ def rewrite_filament_id(path, old_id, new_id, dry_run=False): # --generate # --------------------------------------------------------------------------- -def make_want_id(analysis, snapshot=None): - """Build the id policy: want_id(triple) -> the id that triple must carry. - - A triple's id is its first mint iteration that no OTHER product holds. An id - is blocked when the tree or the snapshot records it under a triple set other - than exactly {triple}, or when this run already handed it to a different - triple. Same-triple reuse is therefore convergence — one product, one id in - every bundle — and salting only ever steps past another product's id. - - Only a CONFORMANT record holds an id: a declaration whose value is not a mint - iteration of its own triple is transient — this run rewrites it — so it must - not block the product that legitimately mints the id it is squatting on. That - also makes the policy independent of which vendors a run writes, so a - --vendor-narrowed run picks the same ids as a full one. - """ - holders = {} # id -> the set of triples that legitimately hold it - for fid, ts in analysis["triple_sets"].items(): - conformant = {t for t in ts if fid in mint_iterations(t)} - if conformant: - holders[fid] = conformant - for fid, entry in (snapshot or {}).get("ids", {}).items(): - triple = tuple(snapshot_triple(entry)) - if fid in mint_iterations(triple): - holders.setdefault(fid, set()).add(triple) - - assigned = {} # triple -> the id chosen for it this run - run_taken = {} # id -> the triple this run gave it to - - def want_id(triple): - if triple not in assigned: - blocked = {fid for fid, ts in holders.items() if ts != {triple}} - blocked |= {fid for fid, t in run_taken.items() if t != triple} - cand = mint_filament_id(*triple, taken=blocked) - assigned[triple] = cand - run_taken[cand] = triple - return assigned[triple] - - return want_id - - def _incomplete_triple(triple): """The name(s) of the empty mint-key fields, or "" when both are present.""" return " and ".join(k for k, v in (("filament_vendor", triple[0]), ("filament_type", triple[1])) if not v) -def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH, - vendors=None, dry_run=False, changed_paths=None): +def generate_filament_ids(profiles_dir=PROFILES_DIR, vendors=None, dry_run=False, + changed_paths=None): """Make every filament carry the id its own triple mints. One rule, applied to declarations and to id-less filaments alike: - * a declared id that is not a mint iteration of the declarer's own triple — - a wrong OF id, or a foreign one such as a Bambu "GF*" arriving with an - upstream sync — is replaced in place; + * a declared id that is not the one its own triple mints — a wrong OF id, + or a foreign one such as a Bambu "GF*" arriving with an upstream sync — + is replaced in place; * an instantiated filament that resolves no id at all gets one inserted into its root(s): the id-less presets of the SAME filament its members inherit, or the member itself (a parent of another filament cannot carry this filament's id — check 3). - An id already equal to ANY salt iteration of its own triple is conformant - (check 3) and left alone, so deliberate salt splits — distinct presets of one - product kept apart for per-printer AMS matching — survive. + A declaration is left alone exactly when it already equals the one id its + triple mints (check 3). Two products minting one id (check 3d) are reported + and left unwritten: nothing salts past a collision, a rename resolves it. - `vendors` restricts what is WRITTEN; the analysis and the id policy always - span the whole tree, so a narrowed run mints exactly what a full one would. - `changed_paths`, when a set is passed, collects the files that changed. A - file whose layout offers no anchor for the edit is reported and counted as an - error, so one odd profile cannot abort the pass over all the others. - Never touches the snapshot — run --update-snapshot afterwards and review the - diff. Returns (files_changed, errors). + `vendors` restricts what is WRITTEN; the id is a function of the triple + alone, so a narrowed run writes exactly what a full one would, and --check + reports whatever it was not allowed to touch. `changed_paths`, when a set is + passed, collects the files that changed. A file whose layout offers no + anchor for the edit is reported and counted as an error, so one odd profile + cannot abort the pass over all the others. Never reads or touches the + snapshot — run --update-snapshot afterwards and review the diff. Returns + (files_changed, errors). """ _utf8_console() analysis = analyze_tree(profiles_dir) @@ -1080,24 +1037,26 @@ def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH print_error(f'unknown vendor "{v}" in {profiles_dir}') return 0, errors + len(unknown) - want_id = make_want_id(analysis, load_snapshot(snapshot_path)) + colliding = set() # triples no run may write an id for + for fid, ts in sorted(analysis["collisions"].items()): + print_error( + f'cannot write filament_id "{fid}": it is the mint of {len(ts)} different ' + f'products ({"; ".join("/".join(t) for t in ts)}), a base62 collision; ' + f"rename one of them so their triples differ") + errors += 1 + colliding.update(ts) + verb = "would " if dry_run else "" files_changed = 0 reminted = 0 inserted = 0 - held_here = set() # ids the filaments this run may write legitimately hold - left_standing = {} # id -> files still declaring one non-conformantly # 1. Declarations that are not the mint of their own triple. for vendor, rec, fid, triple in sorted( analysis["declarer_triples"], key=lambda x: (x[0], x[1]["file"])): - in_scope = wanted is None or vendor in wanted - if fid in mint_iterations(triple): - if in_scope: - held_here.add(fid) - continue - if not in_scope: - left_standing.setdefault(fid, []).append(rec["file"]) + want = generate_filament_id(*triple) + if (fid == want or (wanted is not None and vendor not in wanted) + or triple in colliding): continue missing = _incomplete_triple(triple) if missing: @@ -1106,21 +1065,15 @@ def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH f'{missing}; the mint key needs both (generic materials use ' f'filament_vendor "Generic")') errors += 1 - left_standing.setdefault(fid, []).append(rec["file"]) - continue - want = want_id(triple) - if fid == want: continue try: rewrite_filament_id(rec["path"], fid, want, dry_run) except (OSError, RuntimeError, ValueError) as e: print_error(str(e)) errors += 1 - left_standing.setdefault(fid, []).append(rec["file"]) continue files_changed += 1 reminted += 1 - held_here.add(want) if changed_paths is not None: # Index sub_paths are "/"-joined even on Windows, where the # setting_id pass reaches the same file through os.walk: normalize @@ -1166,6 +1119,8 @@ def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH errors += 1 continue triple = (*next(iter(fields)), filament_name) + if triple in colliding: + continue # reported above missing = _incomplete_triple(triple) if missing: print_error( @@ -1174,7 +1129,7 @@ def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH f'filament_vendor "Generic")') errors += 1 continue - new_id = want_id(triple) + new_id = generate_filament_id(*triple) for name in sorted(roots): root = roots[name] try: @@ -1185,24 +1140,11 @@ def generate_filament_ids(profiles_dir=PROFILES_DIR, snapshot_path=SNAPSHOT_PATH continue files_changed += 1 inserted += 1 - held_here.add(new_id) if changed_paths is not None: changed_paths.add(os.path.normpath(root["path"])) print_info(f'{verb}insert filament "{vendor}/{filament_name}": filament_id ' f'"{new_id}" -> {root["file"]}') - # A declaration that is not the mint of its own triple holds no id, so it - # never blocks the product the id belongs to — that is what makes a narrowed - # run mint exactly what a full one would. When the run is not allowed to - # rewrite that declaration, though, it stays behind on an id just handed to - # its rightful owner, and only a run that covers both can clear it. - for fid in sorted(held_here & set(left_standing)): - print_error( - f'filament_id "{fid}" belongs to a filament this run covers but is also ' - f'declared by {", ".join(sorted(left_standing[fid]))}, which it did not ' - f'rewrite; run "{GENERATE_CMD}" over both to clear the duplicate') - errors += 1 - print_info(f"filament_ids inserted : {inserted}") print_info(f"filament_ids re-minted : {reminted}") return files_changed, errors @@ -1376,10 +1318,10 @@ def build_parser(): narrow.add_argument("--setting-id", action="store_true", help="write setting_id only, skipping filament_id") narrow.add_argument("--vendor", metavar="VENDOR", action="append", default=[], - help="write only in this vendor bundle; repeatable. The ids are " - "still derived tree-wide, so a narrowed run writes exactly " - "what a full one would, and reports what it was not allowed " - "to fix") + help="write only in this vendor bundle; repeatable. The id is a " + "function of the triple alone, so a narrowed run writes " + "exactly what a full one would; --check reports whatever " + "it left outside") parser.add_argument("--dry-run", "--dryrun", dest="dry_run", action="store_true", help="report what would change and write nothing; with no mode of " "its own it previews --generate") @@ -1462,7 +1404,7 @@ def main(argv=None): filament_files = errors = 0 if do_filament: filament_files, e = generate_filament_ids( - args.profiles, snapshot_path, vendors, args.dry_run, changed) + args.profiles, vendors, args.dry_run, changed) errors += e if do_setting: _n, e = generate_setting_ids(args.profiles, vendors, args.dry_run, changed) diff --git a/scripts/tests/test_filament_id.py b/scripts/tests/test_filament_id.py index b7646c4b64..3e7a6d2aec 100644 --- a/scripts/tests/test_filament_id.py +++ b/scripts/tests/test_filament_id.py @@ -155,15 +155,13 @@ class SyntheticTree: def assign(self, vendors=None, dry_run=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.generate_filament_ids( - self.profiles, self.snapshot, vendors, dry_run) + changed, errors = afi.generate_filament_ids(self.profiles, vendors, dry_run) return changed, errors, buf.getvalue() def remint(self, vendors, dry_run=False): buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.generate_filament_ids( - self.profiles, self.snapshot, vendors, dry_run) + changed, errors = afi.generate_filament_ids(self.profiles, vendors, dry_run) return changed, errors, buf.getvalue() def cli(self, *flags): @@ -240,8 +238,6 @@ class TestMint(unittest.TestCase): # layout ("filament_product/<vendor>/<type>/<name>") and base62 tail. self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA"), "OF5CgdDq") - self.assertEqual(afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA", - salt=1), "OFD9mV8H") self.assertEqual(afi.generate_filament_id("Generic", "PLA", "Generic PLA"), "OFDSrzZ8") @@ -262,95 +258,6 @@ class TestMint(unittest.TestCase): self.assertNotEqual(base, afi.generate_filament_id("Polymaker", "PETG", "PolyLite PLA")) self.assertNotEqual(base, afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA Pro")) - def test_salt_changes_id(self): - base = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA") - salted = afi.generate_filament_id("Polymaker", "PLA", "PolyLite PLA", salt=1) - self.assertNotEqual(base, salted) - self.assertRegex(salted, r"^OF[0-9A-Za-z]{6}$") - - def test_mint_salt_iteration(self): - triple = ("Polymaker", "PLA", "PolyLite PLA") - taken = {afi.generate_filament_id(*triple, salt=s) for s in range(2)} - self.assertEqual(afi.mint_filament_id(*triple, taken), - afi.generate_filament_id(*triple, salt=2)) - self.assertEqual(afi.mint_filament_id(*triple, set()), - afi.generate_filament_id(*triple)) - - def test_mint_never_returns_a_salt_the_identity_check_rejects(self): - # mint_filament_id stops at MAX_CHECK_SALT, the last iteration check 3 - # accepts, so the tool can never write an id its own --check rejects. - triple = ("Polymaker", "PLA", "PolyLite PLA") - all_taken = afi.mint_iterations(triple) - self.assertEqual(len(all_taken), afi.MAX_CHECK_SALT + 1) - last = afi.mint_filament_id(*triple, all_taken - {afi.generate_filament_id( - *triple, salt=afi.MAX_CHECK_SALT)}) - self.assertIn(last, afi.mint_iterations(triple)) - with self.assertRaises(RuntimeError): - afi.mint_filament_id(*triple, all_taken) - - def test_want_id_policy(self): - # The whole id policy: a triple's id is its first mint iteration that no - # OTHER product holds, in the tree or in the snapshot. - triple = ("Polymaker", "PLA", "PolyLite PLA") - other = ("Elegoo", "PETG", "Rapid PETG") - salt0 = afi.generate_filament_id(*triple) - salt1 = afi.generate_filament_id(*triple, salt=1) - - def snapshot(**entries): - return {"ids": {fid: {"filaments": [], "name": t[2], - "filament_type": t[1], "filament_vendor": t[0]} - for fid, t in entries.items()}} - - # nobody holds it: salt 0 - self.assertEqual(afi.make_want_id({"triple_sets": {}})(triple), salt0) - # the tree holds it under this very triple: reuse is convergence - self.assertEqual( - afi.make_want_id({"triple_sets": {salt0: {triple}}})(triple), salt0) - # Another triple "holds" it, but salt0 is not a mint iteration of THAT - # triple, so the holder is a wrong declaration this very run rewrites. - # A transient squatter must not push a product off its own id. - self.assertEqual( - afi.make_want_id({"triple_sets": {salt0: {other}}})(triple), salt0) - self.assertEqual( - afi.make_want_id({"triple_sets": {salt0: {triple, other}}})(triple), salt0) - # The snapshot is read the same way: only a conformant record holds. - self.assertEqual( - afi.make_want_id({"triple_sets": {}}, snapshot(**{salt0: other}))(triple), - salt0) - # ... and the snapshot's own triple reuses it - self.assertEqual( - afi.make_want_id({"triple_sets": {}}, snapshot(**{salt0: triple}))(triple), - salt0) - # Unused here, but salting must still be reachable: see - # test_want_id_salts_past_a_genuine_collision. - self.assertNotEqual(salt0, salt1) - # memoized: one triple keeps one id for the whole run - want_id = afi.make_want_id({"triple_sets": {}}) - self.assertEqual(want_id(triple), want_id(triple)) - # ... and a second triple never gets the id this run already handed out - self.assertNotEqual(want_id(triple), want_id(other)) - - def test_want_id_salts_past_a_genuine_collision(self): - # Salting exists for one case only: two products whose triples mint the - # same id. That needs a base62 collision, so force one — salt 0 of every - # triple collapses to a single value while the salted iterations stay - # distinct. `other` then CONFORMANTLY holds the shared salt-0 id, and - # `triple` must step past it instead of stealing it. - triple = ("V", "PLA", "X") - other = ("W", "ABS", "Y") - real = afi.generate_filament_id - - def colliding(vendor, ftype, name, salt=0): - return "OFcolid" if salt == 0 else real(vendor, ftype, name, salt) - - afi.generate_filament_id = colliding - try: - self.assertIn("OFcolid", afi.mint_iterations(other)) # holder conforms - got = afi.make_want_id({"triple_sets": {"OFcolid": {other}}})(triple) - finally: - afi.generate_filament_id = real - self.assertEqual(got, real(*triple, salt=1)) - class TestBaseName(unittest.TestCase): def test_filament_name_derivation(self): @@ -589,12 +496,13 @@ class TestChecks(OfCleanTreeCase): self.assertIn('which records "AVendor/PLA/APLA"', out) # Sanctioning the new triple is not enough: the old id is no longer its # mint (check 3, nothing grandfathered) — the identity fix is a re-mint, - # reported once on the root, not again under the variant inheriting it. + # reported on the root and again under the variant inheriting it. rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() - self.assertEqual(errors, 1, out) + self.assertEqual(errors, 2, out) self.assertIn("does not match the mint of its triple", out) + self.assertIn('"APLA @P1" (VendorA/filament/APLA @P1.json) inherits filament_id', out) _changed, errors, out = self.t.remint(["VendorA"]) self.assertEqual(errors, 0, out) rc, _out = self.t.update_snapshot() @@ -613,16 +521,6 @@ class TestChecks(OfCleanTreeCase): self.assertIn("does not match the mint of its triple", out) self.assertIn(afi.generate_filament_id("BV", "PLA", "BNEW"), out) - def test_check3_salted_mint_is_accepted(self): - salted = afi.generate_filament_id("BV", "PLA", "BNEW", salt=3) - self.t.write_preset("VendorA", preset("BNEW @base", filament_id=salted, - instantiation=False, - filament_vendor="BV", filament_type="PLA")) - self.t.write_preset("VendorA", preset("BNEW @P1", inherits="BNEW @base", - compatible_printers=["P1"])) - _errors, out = self.t.check() # check 2 still wants a snapshot update - self.assertNotIn("does not match the mint", out) - def test_check3_no_grandfathering_of_a_wrong_declaration(self): # Sanctioning the tree does not excuse a declaration from its mint. self.t.write_preset("VendorA", preset("CNEW @base", filament_id="OFZZZZZZ", @@ -633,8 +531,9 @@ class TestChecks(OfCleanTreeCase): rc, _out = self.t.update_snapshot() self.assertEqual(rc, 0) errors, out = self.t.check() - self.assertEqual(errors, 1, out) + self.assertEqual(errors, 2, out) # the declaration, and the variant inheriting it self.assertIn("does not match the mint of its triple", out) + self.assertIn('"CNEW @P1" (VendorA/filament/CNEW @P1.json) inherits filament_id', out) def test_check3_inherited_id_must_be_the_mint_of_own_triple(self): # A preset of another filament inheriting APLA's root takes APLA's id, @@ -654,6 +553,78 @@ class TestChecks(OfCleanTreeCase): errors, out = self.t.check() self.assertEqual(errors, 1, out) + def test_check3_lists_every_preset_inheriting_a_wrong_id(self): + # A wrong declaration is reported under every preset inheriting it, its + # own product's variant and another product alike: each one's effective + # id is not the mint of its own triple, and each is listed. Nothing is + # folded into the declarer's error. + self.t.write_preset("VendorA", preset("DNEW @base", filament_id="OFZZZZZZ", + instantiation=False, + filament_vendor="DV", filament_type="PLA")) + self.t.write_preset("VendorA", preset("DNEW @P1", inherits="DNEW @base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("Other DNEW @P1", inherits="DNEW @base", + compatible_printers=["P1 0.4 nozzle"])) + errors, out = self.t.check() + self.assertIn("does not match the mint of its triple", out) + self.assertIn('"DNEW @P1" (VendorA/filament/DNEW @P1.json) inherits filament_id', out) + self.assertIn('"Other DNEW @P1" (VendorA/filament/Other DNEW @P1.json) inherits ' + 'filament_id', out) + # The unsanctioned id (check 2), the declaration (3a), and both presets + # inheriting it (3b). + self.assertEqual(errors, 4, out) + + def test_check3_reports_an_inherited_mismatch_even_when_its_own_product_misdeclares_the_id(self): + # "Tuned PLA @P1" inherits APLA's root, so it carries APLA's id: wrong + # for its own product however the declarations around it are fixed. + # That "Tuned PLA @base" — its own product — misdeclares that same id + # is a second error, not a reason to leave the first unreported. + apla_id = afi.generate_filament_id("AVendor", "PLA", "APLA") + self.t.write_preset("VendorA", preset("Tuned PLA @base", filament_id=apla_id, + instantiation=False, + filament_vendor="AVendor", + filament_type="PLA")) + self.t.write_preset("VendorA", preset("Tuned PLA @P1", inherits="APLA @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertIn('"Tuned PLA @base" (VendorA/filament/Tuned PLA @base.json) does ' + 'not match the mint of its triple', out) + self.assertIn('"Tuned PLA @P1" (VendorA/filament/Tuned PLA @P1.json) inherits ' + 'filament_id', out) + # The unsanctioned claim and triple (check 2), the declaration (3a) and + # the inherited id (3b): four distinct errors, nothing folded away. + self.assertEqual(errors, 4, out) + + def test_check3_reports_a_collision_between_two_products(self): + # Two products whose triples mint one id is a base62 collision. There + # is no salted or hand-picked second id to fall back on: the check + # names both products, and the remedy is a rename so the triples differ. + collide = {("V", "PLA", "X"), ("W", "ABS", "Y")} + real = afi.generate_filament_id + + def colliding(vendor, ftype, name): + return "OFcolid0" if (vendor, ftype, name) in collide else real(vendor, ftype, name) + + afi.generate_filament_id = colliding + self.addCleanup(setattr, afi, "generate_filament_id", real) + for vendor, ftype, name in sorted(collide): + self.t.write_preset("VendorA", preset(f"{name} @base", filament_id="OFcolid0", + instantiation=False, + filament_vendor=vendor, + filament_type=ftype)) + self.t.write_preset("VendorA", preset(f"{name} @P1", inherits=f"{name} @base", + compatible_printers=["P1"])) + errors, out = self.t.check() + self.assertIn("collision", out) + self.assertIn("V/PLA/X", out) + self.assertIn("W/ABS/Y", out) + # Each declaration is the mint of its own triple, so the collision is + # the only identity error — no product is pushed off its id — and the + # unsanctioned id (check 2) is the only other one. + self.assertNotIn("does not match the mint", out) + self.assertNotIn("inherits filament_id", out) + self.assertEqual(errors, 2, out) + def test_check3_renamed_tuned_generic_is_an_identity_error(self): # Riding the OFL generic under another base name: same rule, same error. self.t.write_preset("VendorA", preset("Tuned PLA @P1", @@ -1144,9 +1115,9 @@ class TestAssign(OfCleanTreeCase): self.assertEqual(b2["filament_id"], want) def test_converges_on_an_existing_tree_id_for_the_same_triple(self): - # BEHAVIOUR CHANGE: an id-less filament whose product is already shipped - # (with its conforming id) in another bundle converges on that id - # instead of salting past it. One product, one id, in every bundle. + # An id-less filament whose product is already shipped (with its + # conforming id) in another bundle converges on that id. One product, + # one id, in every bundle. want = afi.generate_filament_id("CV", "PLA", "CPLA") self.t.add_vendor("VendorB", [ preset("CPLA @base", filament_id=want, instantiation=False, @@ -1166,9 +1137,8 @@ class TestAssign(OfCleanTreeCase): def test_a_squatted_id_is_still_minted_for_its_own_product(self): # VendorB's "Other" declares the id that belongs to VendorA's "DPLA" — - # a copy-paste, not a real claim, since it is not the mint of Other's - # own triple. That declaration is transient (--generate rewrites it), so - # it must NOT push DPLA onto a salted id: DPLA gets its canonical one. + # a copy-paste, not a claim. The id is the mint of DPLA's triple and + # nothing else, so DPLA gets it whatever VendorB carries. want0 = afi.generate_filament_id("DV", "PLA", "DPLA") self.t.add_vendor("VendorB", [ preset("Other @base", filament_id=want0, instantiation=False, @@ -1180,27 +1150,51 @@ class TestAssign(OfCleanTreeCase): self.t.write_preset("VendorA", preset("DPLA @P1", inherits="DPLA @base", compatible_printers=["P1"])) changed, errors, out = self.t.assign(["VendorA"]) - # VendorB is outside the write set, so the id DPLA just took is still - # declared there: the run says so rather than leaving a silent duplicate. - self.assertEqual((changed, errors), (1, 1), out) - self.assertIn("declared by VendorB/filament/Other @base.json", out) - # ...and keeps saying so until a run that covers VendorB clears it. - self.assertEqual(self.t.assign(["VendorA"])[:2], (0, 1)) + self.assertEqual((changed, errors), (1, 0), out) root = load_json_file(self.t.preset_path("VendorA", "DPLA @base")) self.assertEqual(root["filament_id"], want0) - # A full run re-mints Other to its own triple and the duplicate is gone. - other = load_json_file(self.t.preset_path("VendorB", "Other @base")) - self.assertEqual(other["filament_id"], want0) - changed, errors, out = self.t.assign() + # VendorB's declaration is VendorB's own mismatch: a run not allowed to + # touch it leaves it to --check, and a run over VendorB re-mints it. + _errors, out = self.t.check() + self.assertIn('"Other @base" (VendorB/filament/Other @base.json) does not match ' + 'the mint of its triple', out) + changed, errors, out = self.t.assign(["VendorB"]) self.assertEqual((changed, errors), (1, 0), out) other = load_json_file(self.t.preset_path("VendorB", "Other @base")) self.assertEqual(other["filament_id"], afi.generate_filament_id("OV", "ABS", "Other")) + def test_generate_refuses_to_write_into_a_collision(self): + # "X" ships on the id its triple mints; a new product "Y" whose triple + # mints the very same id is a base62 collision. The run does not salt + # past it: it reports both products, writes nothing for "Y", and leaves + # the remedy — a rename, so the triples differ — to the author. + collide = {("V", "PLA", "X"), ("W", "ABS", "Y")} + real = afi.generate_filament_id + + def colliding(vendor, ftype, name): + return "OFcolid0" if (vendor, ftype, name) in collide else real(vendor, ftype, name) + + afi.generate_filament_id = colliding + self.addCleanup(setattr, afi, "generate_filament_id", real) + self.t.write_preset("VendorA", preset("X @base", filament_id="OFcolid0", + instantiation=False, + filament_vendor="V", filament_type="PLA")) + self.t.write_preset("VendorA", preset("X @P1", inherits="X @base", + compatible_printers=["P1"])) + self.t.write_preset("VendorA", preset("Y @base", instantiation=False, + filament_vendor="W", filament_type="ABS")) + self.t.write_preset("VendorA", preset("Y @P1", inherits="Y @base", + compatible_printers=["P1"])) + before = self.t.bytes_map() + changed, errors, out = self.t.assign() + self.assertEqual((changed, errors), (0, 1), out) + self.assertIn("V/PLA/X", out) + self.assertIn("W/ABS/Y", out) + self.assertEqual(self.t.bytes_map(), before) + def test_mismatching_of_declaration_is_re_derived(self): - # BEHAVIOUR CHANGE: the default run used to leave an OF-format id alone - # and needed a separate mode to fix it. One rule now: an id that is not - # a mint iteration of its own triple is rewritten. + # One rule: an id that is not the mint of its own triple is rewritten. self.t.write_preset("VendorA", preset("KNEW @base", filament_id="OFZZZZZZ", instantiation=False, filament_vendor="KV", @@ -1445,20 +1439,19 @@ class TestRemint(SyntheticTreeCase): changed, errors, _out = self.t.remint(["VendorA"]) self.assertEqual((changed, errors), (0, 0)) - def test_salted_declaration_survives_remint(self): - # A deliberate salt split (a second preset of one product kept on its - # own id for per-printer AMS disambiguation) is mint-conformant and - # must not be converged back onto salt 0. - salt1 = afi.generate_filament_id(*self.TRIPLE, salt=1) - self.t.write_preset("VendorA", preset("APLA @legacy", - filament_id=salt1, + def test_second_id_of_one_product_is_converged_by_remint(self): + # A second preset of one product kept on an id of its own is not a + # sanctioned split: the triple determines the id, so --generate pulls it + # back. An AMS ambiguity this exposes is fixed in the profiles instead. + want = afi.generate_filament_id(*self.TRIPLE) + self.t.write_preset("VendorA", preset("APLA @legacy", filament_id="OFlegac1", inherits="APLA @base", compatible_printers=["P2 0.4 nozzle"])) changed, errors, out = self.t.remint(["VendorA"]) self.assertEqual(errors, 0, out) - self.assertEqual(changed, 1) # only the non-conformant AX01 root + self.assertEqual(changed, 2) # the non-conformant AX01 root and @legacy legacy = load_json_file(self.t.preset_path("VendorA", "APLA @legacy")) - self.assertEqual(legacy["filament_id"], salt1) + self.assertEqual(legacy["filament_id"], want) def test_same_triple_converges_within_run(self): self.t.add_vendor("VendorB", [ @@ -1490,22 +1483,24 @@ class TestRemint(SyntheticTreeCase): self.assertEqual(a["filament_id"], want) def test_not_blocked_by_a_non_conformant_occurrence(self): - # VendorB carries APLA's id under a PETG triple of its own, so that - # declaration is wrong and this run's job is to rewrite it. It must not - # cost VendorA's APLA the id its triple actually mints. + # VendorB carries APLA's id under a PETG triple of its own: that + # declaration is wrong, and it costs VendorA's APLA nothing — the id is + # the mint of APLA's triple, whoever else is squatting on it. want0 = afi.generate_filament_id(*self.TRIPLE) self.t.add_vendor("VendorB", [ preset("BPLA @base", filament_id=want0, instantiation=False, filament_vendor="BV", filament_type="PETG"), ]) changed, errors, out = self.t.remint(["VendorA"]) - self.assertEqual((changed, errors), (1, 1), out) - self.assertIn("declared by VendorB/filament/BPLA @base.json", out) + self.assertEqual((changed, errors), (1, 0), out) root = load_json_file(self.t.preset_path("VendorA", "APLA @base")) self.assertEqual(root["filament_id"], want0) - # Widening the run to both bundles clears it. - changed, errors, out = self.t.remint(["VendorA", "VendorB"]) + # A run over VendorB re-mints the squatter to its own triple. + changed, errors, out = self.t.remint(["VendorB"]) self.assertEqual((changed, errors), (1, 0), out) + self.assertEqual( + load_json_file(self.t.preset_path("VendorB", "BPLA @base"))["filament_id"], + afi.generate_filament_id("BV", "PETG", "BPLA")) def test_bbl_is_reminted_like_any_vendor(self): self.t.add_vendor("BBL", [ @@ -1578,8 +1573,7 @@ class TestCli(unittest.TestCase): # Named explicitly, both modes run against that tree. rc, out = self.t.cli("--update-snapshot") self.assertEqual(rc, 0, out) - # --generate only reads the snapshot as a list of ids not to reuse, so - # it keeps working without one. + # --generate never reads the snapshot, so it keeps working without one. buf = io.StringIO() with contextlib.redirect_stdout(buf): rc = afi.main(["--dry-run", "--profiles", self.t.profiles]) @@ -1762,8 +1756,7 @@ class TestReviewFixes(OfCleanTreeCase): touched = set() buf = io.StringIO() with contextlib.redirect_stdout(buf): - afi.generate_filament_ids(self.t.profiles, self.t.snapshot, - None, False, touched) + afi.generate_filament_ids(self.t.profiles, None, False, touched) afi.generate_setting_ids(self.t.profiles, None, False, touched) for name in ("SoloPLA @P1", "WrongPLA @P1"): self.assertEqual([t for t in touched if t.endswith(name + ".json")], @@ -1841,58 +1834,21 @@ class TestBambuMap(unittest.TestCase): return filaments def test_one_row_per_filament(self): - rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")]), {}) + rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")])) self.assertEqual(rows, {afi.generate_filament_id("Bambu Lab", "ABS", "Bambu ABS"): {"bambu_id": "GFB00", "vendor": "Bambu Lab", "type": "ABS", "name": "Bambu ABS"}}) def test_shared_bambu_id_is_an_error(self): with self.assertRaises(SystemExit): - ubfi.derive_rows(self._bs_tree([("A", "GFX00", "V", "PLA"), ("B", "GFX00", "V", "PLA")]), {}) - - def test_reuses_the_id_we_ship_for_that_triple(self): - rows = ubfi.derive_rows(self._bs_tree([("Bambu ABS", "GFB00", "Bambu Lab", "ABS")]), - {("Bambu Lab", "ABS", "Bambu ABS"): "OFsalted1"}) - self.assertIn("OFsalted1", rows) + ubfi.derive_rows(self._bs_tree([("A", "GFX00", "V", "PLA"), ("B", "GFX00", "V", "PLA")])) @unittest.skipUnless(os.path.isdir("/Users/lijiang/codes/BambuStudio/resources/profiles"), "no local clone") def test_local_clone_yields_the_catalog(self): - rows = ubfi.derive_rows(afi.load_vendor_filaments("/Users/lijiang/codes/BambuStudio/resources/profiles", "BBL")[0], {}) + rows = ubfi.derive_rows(afi.load_vendor_filaments("/Users/lijiang/codes/BambuStudio/resources/profiles", "BBL")[0]) self.assertEqual(len(rows), 100) self.assertEqual(len({r["bambu_id"] for r in rows.values()}), 100) -class TestOrcaTriplesFromAnalysis(unittest.TestCase): - def _tree(self): - t = SyntheticTree() - self.addCleanup(t.cleanup) - t.add_vendor("VendorA", [ - # Same triple declared under two different ids on purpose: mirrors - # a real, sanctioned case (Cubicon's xCeler line keeps its own id - # per printer instead of inheriting the filament's @base id). - # Ambiguous, but must stay harmless unless something needs it. - preset("Ambig PLA @base", filament_id="OF111111", instantiation=False, - filament_vendor="V", filament_type="PLA"), - preset("Ambig PLA @P1", filament_id="OF222222", inherits="Ambig PLA @base", - compatible_printers=["P1"]), - # An unambiguous filament elsewhere in the same tree. - preset("Needed PLA @base", filament_id="OF333333", instantiation=False, - filament_vendor="V2", filament_type="PLA"), - preset("Needed PLA @P1", inherits="Needed PLA @base", - compatible_printers=["P1"]), - ]) - return afi.analyze_tree(t.profiles) - - def test_ambiguity_outside_needed_triples_is_ignored(self): - analysis = self._tree() - result = ubfi.orca_triples_from_analysis(analysis, {("V2", "PLA", "Needed PLA")}) - self.assertEqual(result, {("V2", "PLA", "Needed PLA"): "OF333333"}) - - def test_ambiguity_inside_needed_triples_is_an_error(self): - analysis = self._tree() - with self.assertRaises(SystemExit): - ubfi.orca_triples_from_analysis(analysis, {("V", "PLA", "Ambig PLA")}) - - class TestWriteMap(unittest.TestCase): def test_format(self): d = tempfile.mkdtemp(prefix="bambu_map_test_") diff --git a/scripts/tests/test_setting_id.py b/scripts/tests/test_setting_id.py index ad9d06a2f0..95e447d03c 100644 --- a/scripts/tests/test_setting_id.py +++ b/scripts/tests/test_setting_id.py @@ -141,13 +141,10 @@ class SettingTree: return changed, errors, buf.getvalue() def run_filament_ids(self, vendors=None, dry_run=False): - """The OTHER half of --generate, against this tree's own (absent) - snapshot, so the id policy never consults the repo's real one.""" + """The OTHER half of --generate.""" buf = io.StringIO() with contextlib.redirect_stdout(buf): - changed, errors = afi.generate_filament_ids( - self.profiles, os.path.join(self.dir, "filament_id_snapshot.json"), - vendors, dry_run) + changed, errors = afi.generate_filament_ids(self.profiles, vendors, dry_run) return changed, errors, buf.getvalue() diff --git a/scripts/update_bambu_filament_ids.py b/scripts/update_bambu_filament_ids.py index 93047895e1..539376599e 100644 --- a/scripts/update_bambu_filament_ids.py +++ b/scripts/update_bambu_filament_ids.py @@ -15,9 +15,9 @@ has to be hand-maintained. See docs/HLSD/filament_id.md. One row per BambuStudio filament PRODUCT: one named spool product = one "@base"-declared filament_id, shared by every per-printer/per-nozzle instantiation of it (BambuStudio follows the same one-product-one-id shape -Orca's own filament_id policy does). A row's key reuses whatever OF id Orca -already ships for that same (filament_vendor, filament_type, filament) triple; -a triple Orca does not ship anywhere yet gets a freshly generated one. +Orca's own filament_id policy does). A row's key is the OF id that product's +(filament_vendor, filament_type, filament) triple mints — the id Orca carries +for it wherever it ships it, since the id is a function of the triple alone. Map format: { @@ -57,7 +57,6 @@ sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from orca_id_tool import ( # noqa: E402 BAMBU_MAP_PATH, OFL, - OF_ID_RE, PROFILES_DIR, analyze_tree, base_name, @@ -77,8 +76,8 @@ BAMBUSTUDIO_REPO = "https://github.com/bambulab/BambuStudio" # Row derivation # --------------------------------------------------------------------------- -def derive_rows(bs_filaments, orca_triples): - """orca_triples: {(vendor, type, name): orca_id} from analyze_tree()["triples"].""" +def derive_rows(bs_filaments): + """One row per BambuStudio product, keyed by the OF id its triple mints.""" by_filament = {} # filament_name -> (bambu_id, triple) for rec in bs_filaments.values(): if not rec["instantiation"]: @@ -98,50 +97,11 @@ def derive_rows(bs_filaments, orca_triples): raise SystemExit(f"Bambu id {bambu_id} is shared by " f"{seen[bambu_id]!r} and {filament_name!r}") seen[bambu_id] = filament_name - orca_id = orca_triples.get(triple) or generate_filament_id(*triple) # reuse a salted id if we ship one - rows[orca_id] = {"bambu_id": bambu_id, "vendor": triple[0], "type": triple[1], "name": triple[2]} + rows[generate_filament_id(*triple)] = { + "bambu_id": bambu_id, "vendor": triple[0], "type": triple[1], "name": triple[2]} return rows -def orca_triples_from_analysis(orca_analysis, needed_triples): - """{(vendor, type, name): orca_id}, inverted from analyze_tree()["triples"] - (id -> [[vendor, type, name], ...]) and restricted to `needed_triples` - (the triples BambuStudio's own bundle ships, i.e. the only ones derive_rows - will ever look up). - - Kept to ids matching the OF format: our own BBL bundle still declares - Bambu's GF ids today (analyze_tree already excludes those as BBL-island - declarations), but filtering here too means a future triple shipped under - a non-OF scheme can never key a map row, which must always be keyed by - the OF id the BBL bundle receives once it is re-minted onto the OF space. - - A needed triple owned by more than one OF id would make derive_rows's - reuse step a guess, so that is a hard error rather than a silent pick. - Restricting the scan to needed_triples matters for that check: elsewhere - in the tree one triple legitimately resolves two different ids on purpose - (e.g. Cubicon's xCeler line declares its own id per printer instead of - inheriting its root's, sanctioned in scripts/filament_id_snapshot.json) - and that pre-existing, Bambu-unrelated divergence must not block a map - that never reads it. - """ - needed_triples = set(needed_triples) - result = {} - for fid, triple_list in orca_analysis["triples"].items(): - if not OF_ID_RE.match(fid): - continue - for triple in triple_list: - triple = tuple(triple) - if triple not in needed_triples: - continue - owner = result.get(triple) - if owner and owner != fid: - raise SystemExit( - f"Orca triple {triple} resolves to more than one filament_id: " - f"{owner!r} and {fid!r}") - result[triple] = fid - return result - - # --------------------------------------------------------------------------- # Drift report (informational only) # --------------------------------------------------------------------------- @@ -269,16 +229,11 @@ def main(argv=None): print_error(e) raise SystemExit("unreadable BambuStudio filament profile(s)") - orca_analysis = analyze_tree(PROFILES_DIR) - needed_triples = {resolve_triple(rec["name"], bs_filaments, {}) - for rec in bs_filaments.values() if rec["instantiation"]} - orca_triples = orca_triples_from_analysis(orca_analysis, needed_triples) - - rows = derive_rows(bs_filaments, orca_triples) + rows = derive_rows(bs_filaments) write_map(args.output, rows, commit, datetime.date.today().isoformat()) print_success(f"wrote {len(rows)} row(s) to {args.output} (BambuStudio @ {commit})") - for line in drift_report(rows, orca_analysis): + for line in drift_report(rows, analyze_tree(PROFILES_DIR)): print_info(line) finally: if workdir: From 52ed9a8848db2e986bb95a23842085ac492302cc Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 7 Sep 2026 23:42:29 +0800 Subject: [PATCH 160/164] Optimize login user layout --- resources/web/homepage/css/dark.css | 33 +- resources/web/homepage/css/home.css | 440 ++++++++++++++------- resources/web/homepage/img/c.jpg | Bin 38788 -> 0 bytes resources/web/homepage/index.html | 91 +++-- resources/web/homepage/js/home.js | 229 ++++++----- src/slic3r/Utils/OrcaCloudServiceAgent.cpp | 8 +- 6 files changed, 508 insertions(+), 293 deletions(-) delete mode 100644 resources/web/homepage/img/c.jpg diff --git a/resources/web/homepage/css/dark.css b/resources/web/homepage/css/dark.css index d4950c9c80..9e72c4c2b7 100644 --- a/resources/web/homepage/css/dark.css +++ b/resources/web/homepage/css/dark.css @@ -39,7 +39,7 @@ body .BtnItem:hover { color: #efeff0; - background-color: #223C3C; + background-color: var(--row-hover); } .BtnItem:hover .LeftIcon @@ -50,7 +50,7 @@ body .BtnItemSelected { color: #efeff0; - background-color: #223C3C; + background-color: var(--row-hover); } .BtnItemSelected .LeftIcon @@ -129,12 +129,23 @@ body border: 1px solid rgba(129, 129, 131, 0.64); } -/*--- Account Sections ---*/ -.AccountSectionLabel { color: #818183; } -.OrcaAccountText { color: #efeff0; } -.AccountStatusText { color: #818183; } - -/*--- Bambu Cloud Section ---*/ -#BambuCloudHeader { color: #818183; } -#BambuCloudHeader:hover { color: #efeff0; } -.bambu-chevron svg path { stroke: currentColor; } +/*--- Account rows and account menu ---*/ +:root +{ + --row-hover : #223C3C; + --warn-color : #F07E4A; + --account-avatar-bg : #3A3A40; + --account-avatar-glyph : #7E8785; + --account-surface : #36363B; + --account-name : #EFEFF0; + --account-meta : #949494; + --account-border : #4A4A51; + --account-divider : #3A3A42; + --account-action : #26A69A; + --account-danger : #FF6A6A; + --account-danger-bg : rgba(225, 71, 71, 0.16); + --account-warn-bg : rgba(240, 126, 74, 0.16); /*----var(--warn-color) at 16%----*/ + --account-dot-off : #5A5A62; + --account-dot-on : #4CAF50; + --account-menu-shadow : 0 10px 28px rgba(0, 0, 0, 0.45); +} diff --git a/resources/web/homepage/css/home.css b/resources/web/homepage/css/home.css index e99d22ec64..2cf5742747 100644 --- a/resources/web/homepage/css/home.css +++ b/resources/web/homepage/css/home.css @@ -41,7 +41,7 @@ html, body { .RedFont { font-size:12px; - color: #F07E4A; + color: var(--warn-color); } .LinkBtn @@ -78,129 +78,267 @@ body height: 100%; } -#LoginArea +/*------Account rows and account menu------*/ + +/*----These shadow similar tokens in global.css on purpose: global.css themes on the OS + via prefers-color-scheme, while this page themes on the dark.css link that + SwitchDarkMode() injects from the app theme, so the two can disagree.----*/ +:root { - display: flex; - flex-direction: column; - align-items: center; - flex-wrap: nowrap; - position: relative; - width:262px; + --row-hover : #BFE1DE; + --warn-color : #F07E4A; + --account-avatar-bg : #E6EBEA; + --account-avatar-glyph : #9AA5A3; + --account-surface : #FFFFFF; + --account-name : #262E30; + --account-meta : #7C8282; + --account-border : #DBDBDB; + --account-divider : #E2E4E4; + --account-action : #00796B; + --account-danger : #D33B3B; + --account-danger-bg : rgba(211, 59, 59, 0.10); + --account-warn-bg : rgba(240, 126, 74, 0.12); /*----var(--warn-color) at 12%----*/ + --account-dot-off : #C4CBCA; + --account-dot-on : #34A853; + --account-menu-shadow : 0 10px 28px rgba(20, 30, 28, 0.18); + + --glyph-account: + url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><circle cx="16" cy="12" r="5.6"/><path d="M4.9 29a11.1 11.1 0 0 1 22.2 0Z"/></svg>'); + --glyph-logout: + url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="black" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 2.5H3.5v11h6"/><path d="M11 5.5L14 8l-3 2.5"/><path d="M14 8H6.5"/></svg>'); } -.AccountSectionLabel +#LoginArea +{ + position: relative; + padding: 10px 8px; + box-sizing: border-box; + width: 262px; + border-bottom: 1px solid var(--account-divider); +} + +.AccountRow { display: flex; align-items: center; gap: 8px; - font-size: 13px; - font-weight: 600; - color: var(--fg-color-text); - padding: 16px 20px 6px; - width: 262px; - box-sizing: border-box; -} - -.AccountSectionIcon -{ - width: 18px; - height: 18px; - flex: 0 0 auto; -} - -.AccountStatusText -{ - font-size: 12px; - color: #A8A8A8; - margin-top: 8px; -} - -.OrcaAccountText -{ - font-weight: bold; -} - -#OrcaLoginSection -{ - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 100%; -} - -#OrcaLogin1 -{ - display: flex; - flex-direction: column; /*ORCA*/ - align-items: center; /*Allow icon centered vertically*/ - justify-content: center; /*and use login button in new line*/ + padding: 8px 10px 8px 14px; /*----label column lines up with the navigation below----*/ + border-radius: 8px; + cursor: pointer; user-select: none; - padding: 10px 0; } -#OrcaLogin2 +.AccountRow:hover +{ + background-color: var(--row-hover); +} + +.AccountRow:focus-visible +{ + outline: 2px solid var(--account-action); + outline-offset: -2px; +} + +.AccountRow.Disabled +{ + cursor: default; + opacity: 0.5; +} + +.AccountRow.Disabled:hover +{ + background-color: transparent; +} + +.AccountRow.Disabled .AccountSignIn { display: none; - flex-direction: column; - align-items: center; - justify-content: center; - text-align: center; - padding: 14px 0 16px; - box-sizing: border-box; - width: 262px; } -/* --- Bambu Cloud Section --- */ +/*----Avatar----*/ +.AccountAvatar +{ + position: relative; + flex: 0 0 auto; + width: 36px; + height: 36px; + border-radius: 50%; + background-color: var(--account-avatar-bg); +} + +.AccountAvatar::before /* placeholder shown until an avatar image loads */ +{ + content: ""; + position: absolute; + inset: 0; + -webkit-mask-image: var(--glyph-account); + mask-image: var(--glyph-account); + -webkit-mask-size: 100% 100%; + mask-size: 100% 100%; + background-color: var(--account-avatar-glyph); +} + +.AccountAvatarImg +{ + position: absolute; + inset: 0; + width: 100%; + height: 100%; + border-radius: 50%; + object-fit: cover; + display: block; +} + +.AccountAvatarImg:not([src]) +{ + display: none; +} + +/*----Row labels----*/ +.AccountText +{ + display: flex; + flex-direction: column; + justify-content: center; + flex: 1 1 auto; + min-width: 0; +} + +.AccountName, +.AccountSecondary /*----the provider name, or the sign-in state where the row has no name yet----*/ +{ + font-size: 15px; + line-height: 20px; + color: var(--account-name); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.AccountName +{ + display: none; + font-weight: 600; +} + +.AccountSignIn +{ + flex: 0 0 auto; + font-size: 12px; + font-weight: 600; + color: var(--account-action); +} + +.AccountChevron +{ + display: none; + flex: 0 0 auto; + width: 12px; + height: 12px; + color: var(--account-meta); + transition: transform 0.15s ease; +} + +.AccountRow.SignedIn .AccountName { display: block; } +.AccountRow.SignedIn .AccountChevron { display: block; } +.AccountRow.SignedIn .AccountSignIn { display: none; } +.AccountRow.SignedIn .AccountSecondary +{ + font-size: 11px; + line-height: 14px; + color: var(--account-meta); +} + +.AccountRow.MenuOpen .AccountChevron { transform: rotate(180deg); } + +#NoPluginTip +{ + display: none; + margin: 4px 0 2px; + padding: 8px 10px; + border-radius: 6px; + background-color: var(--account-warn-bg); +} + +#NoPluginText +{ + line-height: 16px; +} + +#NoPluginTip .LinkBtn +{ + color: var(--warn-color); + text-decoration: underline; +} + +/*----Bambu Cloud, folded under the main account----*/ #BambuCloudSection { display: none; /* shown by cloud_providers_info from backend */ - border-top: 1px solid; - width: 262px; + margin-top: 8px; + padding-top: 6px; + border-top: 1px solid var(--account-divider); } #BambuCloudHeader { - height: 40px; display: flex; align-items: center; - padding: 0 20px; - cursor: pointer; - font-size: 13px; - color: #A8A8A8; gap: 8px; + height: 28px; + padding: 0 10px 0 14px; + border-radius: 6px; + font-size: 12px; + color: var(--account-meta); + cursor: pointer; + user-select: none; } #BambuCloudHeader:hover { - color: inherit; + color: var(--account-name); } -.bambu-chevron +#BambuCloudHeader:focus-visible { + outline: 2px solid var(--account-action); + outline-offset: -2px; +} + +.SectionChevron +{ + flex: 0 0 auto; width: 12px; height: 12px; transition: transform 0.2s ease; - transform: rotate(0deg); } -.bambu-chevron.expanded +#BambuCloudHeader.Expanded .SectionChevron { transform: rotate(90deg); } -.bambu-status-dot +.SectionLabel { - width: 8px; - height: 8px; - border-radius: 50%; - background-color: #A8A8A8; - margin-left: auto; + flex: 1 1 auto; + min-width: 0; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } -.bambu-status-dot.online +#BambuStatusDot { - background-color: #4CAF50; + flex: 0 0 auto; + width: 7px; + height: 7px; + border-radius: 50%; + background-color: var(--account-dot-off); +} + +#BambuStatusDot.Online +{ + background-color: var(--account-dot-on); } #BambuCloudBody @@ -208,99 +346,125 @@ body max-height: 0; overflow: hidden; transition: max-height 0.25s ease; - display: flex; - flex-direction: column; - align-items: center; } -#BambuCloudBody.expanded +#BambuCloudBody.Expanded { max-height: 200px; + padding-bottom: 2px; } -#NoPluginTip +.AccountRowCompact { - position: static; - display: none; - flex-direction: column; - padding: 5px 10px; - z-index: auto; + padding: 6px 10px 6px 24px; } -#BambuLogin1 +.AccountRowCompact .AccountAvatar { - padding: 10px 0; + width: 26px; + height: 26px; } -#BambuLogin2 +.AccountRowCompact .AccountName, +.AccountRowCompact .AccountSecondary { - display: none; - flex-direction: column; - align-items: center; - text-align: center; - padding: 8px 0; - width: 262px; -} - -#BambuAvatarIcon -{ - height: 40px; - border-radius: 50%; -} - -#BambuUserName -{ - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - width: 80%; - text-align: center; font-size: 13px; + line-height: 17px; } - -#DownloadBtn +.AccountRowCompact .AccountSecondary { - color:#00ffd9; + color: var(--account-meta); } - -#Icon1 +.AccountRowCompact.SignedIn .AccountSecondary /*----the section header already names this provider----*/ { - margin-right: 10px; + display: none; } -#BBLIcon +/*----Account menu----*/ +#AccountMenu { - height:96px; /*ORCA use bigger icon to fit logo size*/ + display: none; + position: absolute; + left: 8px; + right: 8px; + z-index: 20; + padding: 4px; + border-radius: 10px; + border: 1px solid var(--account-border); + background-color: var(--account-surface); + box-shadow: var(--account-menu-shadow); } -#UserAvatarIcon +#AccountMenu.Open { - width: 64px; - height: 64px; display: block; - margin: 2px auto 10px; - object-fit: cover; - border-radius: 50%; + animation: AccountMenuIn 0.12s ease-out; } -#UserName +@keyframes AccountMenuIn { + from { opacity: 0; transform: translateY(-4px); } + to { opacity: 1; transform: none; } +} + +@media (prefers-reduced-motion: reduce) +{ + #AccountMenu.Open { animation: none; } + .AccountChevron, + .SectionChevron, + #BambuCloudBody { transition: none; } +} + +#AccountMenuHandle +{ + display: none; + padding: 9px 10px; + border-bottom: 1px solid var(--account-border); + font-size: 12px; + line-height: 16px; + color: var(--account-meta); white-space: nowrap; + overflow: hidden; text-overflow: ellipsis; - text-align: center; - overflow: hidden; - width: 80%; - max-width: 190px; - line-height: 22px; } -#LogoutBtn +#AccountMenuLogout { - margin-top: 8px; + display: flex; + align-items: center; + gap: 8px; + height: 34px; + padding: 0 10px; + border-radius: 6px; + font-size: 13px; + color: var(--account-name); + cursor: pointer; } +#AccountMenuLogout:hover +{ + background-color: var(--account-danger-bg); + color: var(--account-danger); +} + +#AccountMenuLogout:focus-visible +{ + outline: 2px solid var(--account-action); + outline-offset: -2px; +} + +#AccountMenuLogoutIcon +{ + width: 15px; + height: 15px; + -webkit-mask: var(--glyph-logout) center / contain no-repeat; + mask: var(--glyph-logout) center / contain no-repeat; + background-color: currentColor; +} + + /*------------------*/ #BtnArea { @@ -320,12 +484,12 @@ body .BtnItem:hover { - background-color: #BFE1DE; /*ORCA color with %25 opacity*/ + background-color: var(--row-hover); } .BtnItemSelected { - background-color: #BFE1DE; /*ORCA color with %25 opacity*/ + background-color: var(--row-hover); } .BtnIcon diff --git a/resources/web/homepage/img/c.jpg b/resources/web/homepage/img/c.jpg deleted file mode 100644 index 50c5883ca05fdf86fb59b6d78ac787b349c99a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38788 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 Z^858M|G&DMfb)+{*0uM4`8fQ)2>_`cg3$l~ diff --git a/resources/web/homepage/index.html b/resources/web/homepage/index.html index 24eb8285a7..bc5f83311b 100644 --- a/resources/web/homepage/index.html +++ b/resources/web/homepage/index.html @@ -23,56 +23,65 @@ <div id="LeftBoard"> <div id="LoginArea"> - <!-- Orca Login Section --> - <div id="OrcaSectionLabel" class="AccountSectionLabel"> - <img class="AccountSectionIcon" src="../../images/OrcaSlicer_gradient_circle.svg" alt="" /> - <span class="trans OrcaAccountText" tid="orca7">Orca Cloud</span> - </div> - - <div id="OrcaLoginSection"> - <div id="OrcaLogin1"> - <div id="Icon1"><img id="BBLIcon" src="../image/logo.png" /></div> <!-- ORCA use square icon for better consistency on UI --> - <div id="LoginBtn" class="ButtonStyleRegular ButtonTypeWindow" onClick="OnLoginOrRegister()"><span class="trans" tid="t26">login</span> / <span class="trans" tid="t27">register</span></div> - <div id="OrcaStatusText" class="AccountStatusText trans" tid="orca8">Not signed in</div> - </div> - - <div id="OrcaLogin2"> - <div> - <img id="UserAvatarIcon" src="img/c.jpg" onerror="this.onerror=null;this.src='img/c.jpg';" /> - </div> - <div id="UserName" class="TextS1"></div> - <div id="LogoutBtn" class="ButtonStyleAlert ButtonTypeWindow trans" tid="t50" onClick="OnLogOut()">log out</div> - </div> - </div> - - <!-- Bambu Cloud Section --> - <div id="BambuCloudSection"> - <div id="BambuCloudHeader" onClick="ToggleBambuSection()"> - <svg class="bambu-chevron" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg"> - <path d="M4.5 2.5L8 6L4.5 9.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> + <!-- Orca Cloud account --> + <div id="OrcaAccount" class="AccountRow" tabindex="0" role="button" aria-haspopup="true" aria-expanded="false" + onClick="OnAccountRowClick('orca')"> + <span class="AccountAvatar"> + <img id="UserAvatarIcon" class="AccountAvatarImg" alt="" onerror="OnAvatarLoadError(this)" /> + </span> + <span class="AccountText"> + <span id="UserName" class="AccountName"></span> + <span class="AccountSecondary">Orca Cloud</span> + </span> + <span class="AccountSignIn trans" tid="t26">Login</span> + <svg class="AccountChevron" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> + <path d="M3 4.75L6 7.75L9 4.75" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> </svg> - <span class="trans" tid="orca6">Bambu Cloud</span> - <span class="bambu-status-dot"></span> </div> - <div id="BambuCloudBody"> - <div id="BambuLogin1"> - <div id="BambuLoginBtn" class="ButtonStyleRegular ButtonTypeWindow" onClick="OnBambuLoginOrRegister()"><span class="trans" tid="t26">login</span></div> + <!-- Bambu Cloud, a secondary provider folded away under the main account --> + <div id="BambuCloudSection"> + <div id="BambuCloudHeader" tabindex="0" role="button" aria-expanded="false" aria-controls="BambuCloudBody" + onClick="ToggleBambuSection()"> + <svg class="SectionChevron" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> + <path d="M4.5 2.5L8 6L4.5 9.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> + </svg> + <span class="SectionLabel trans" tid="orca6">Bambu Cloud</span> + <span id="BambuStatusDot"></span> </div> - <div id="BambuLogin2"> - <div> - <img id="BambuAvatarIcon" src="img/c.jpg" onerror="this.onerror=null;this.src='img/c.jpg';" /> + <div id="BambuCloudBody"> + <div id="BambuAccount" class="AccountRow AccountRowCompact" tabindex="0" role="button" aria-haspopup="true" aria-expanded="false" + onClick="OnAccountRowClick('bambu')"> + <span class="AccountAvatar"> + <img id="BambuAvatarIcon" class="AccountAvatarImg" alt="" onerror="OnAvatarLoadError(this)" /> + </span> + <span class="AccountText"> + <span id="BambuUserName" class="AccountName"></span> + <span class="AccountSecondary trans" tid="orca8">Not signed in</span> + </span> + <span class="AccountSignIn trans" tid="t26">Login</span> + <svg class="AccountChevron" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> + <path d="M3 4.75L6 7.75L9 4.75" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/> + </svg> </div> - <div id="BambuUserName" class="TextS1"></div> - <div id="BambuLogoutBtn" class="ButtonStyleAlert ButtonTypeWindow trans" tid="t50" onClick="OnBambuLogOut()">log out</div> - </div> - <div id="NoPluginTip"> - <div id="NoPluginText"><a class="RedFont trans" tid="t76">Network plugin not detected. Click </a><a Class="LinkBtn trans" onClick="BeginDownloadNetworkPlugin()" tid="t77">here</a><a class="RedFont trans" tid="t78"> to install it.</a></div> + <div id="NoPluginTip"> + <div id="NoPluginText"><a class="RedFont trans" tid="t76">Network plugin not detected. Click </a><a Class="LinkBtn trans" onClick="BeginDownloadNetworkPlugin()" tid="t77">here</a><a class="RedFont trans" tid="t78"> to install it.</a></div> + </div> + </div> + </div> + + <!-- Shared account menu, anchored under the row it was opened from. + The row already carries the avatar, name and provider, so the menu only + adds the account handle. --> + <div id="AccountMenu" role="menu"> + <div id="AccountMenuHandle" role="presentation"></div> + <div id="AccountMenuLogout" role="menuitem" tabindex="0" onClick="OnAccountMenuLogout()"> + <span id="AccountMenuLogoutIcon"></span> + <span class="trans" tid="t50">Log out</span> </div> </div> - </div> </div> diff --git a/resources/web/homepage/js/home.js b/resources/web/homepage/js/home.js index f522c44bed..f07c6f10f5 100644 --- a/resources/web/homepage/js/home.js +++ b/resources/web/homepage/js/home.js @@ -1,7 +1,6 @@ //var TestData={"sequence_id":"0","command":"get_recent_projects","response":[{"path":"D:\\work\\Models\\Toy\\3d-puzzle-cube-model_files\\3d-puzzle-cube.3mf","time":"2022\/3\/24 20:33:10"},{"path":"D:\\work\\Models\\Art\\Carved Stone Vase - remeshed+drainage\\Carved Stone Vase.3mf","time":"2022\/3\/24 17:11:51"},{"path":"D:\\work\\Models\\Art\\Kity & Cat\\Cat.3mf","time":"2022\/3\/24 17:07:55"},{"path":"D:\\work\\Models\\Toy\\鐩村墤.3mf","time":"2022\/3\/24 17:06:02"},{"path":"D:\\work\\Models\\Toy\\minimalistic-dual-tone-whistle-model_files\\minimalistic-dual-tone-whistle.3mf","time":"2022\/3\/22 21:12:22"},{"path":"D:\\work\\Models\\Toy\\spiral-city-model_files\\spiral-city.3mf","time":"2022\/3\/22 18:58:37"},{"path":"D:\\work\\Models\\Toy\\impossible-dovetail-puzzle-box-model_files\\impossible-dovetail-puzzle-box.3mf","time":"2022\/3\/22 20:08:40"}]}; var m_HotModelList=null; -var bambuSectionExpanded = false; function OnInit() { @@ -12,6 +11,8 @@ function OnInit() SendMsg_GetBambuLoginInfo(); SendMsg_GetRecentFile(); SendMsg_GetStaffPick(); + + Set_AccountMenu_Event(); } //------最佳打开文件的右键菜单功能---------- @@ -89,7 +90,7 @@ function HandleStudio( pVal ) if (strCmd == "get_recent_projects") { ShowRecentFileList(pVal["response"]); } else if (strCmd == "orca_userlogin") { - SetOrcaLoginInfo(pVal["data"]["avatar"], pVal["data"]["name"]); + SetOrcaLoginInfo(pVal["data"]["avatar"], pVal["data"]["name"], pVal["data"]["account"]); } else if (strCmd == "orca_useroffline") { SetOrcaUserOffline(); } else if (strCmd == "studio_bambu_userlogin") { @@ -118,21 +119,12 @@ function HandleStudio( pVal ) $("#LeftBoard").hide(); } } else if (strCmd == "network_plugin_installtip") { - let nShow = pVal["show"] * 1; + // Bambu Cloud is unreachable without the network plugin, so its row only carries the tip. + let bMissing = pVal["show"] * 1 == 1; - if (nShow == 1) { - // Auto-expand Bambu section to show the tip - if (!bambuSectionExpanded) ToggleBambuSection(); - $("#BambuLogin1").hide(); - $("#NoPluginTip").show(); - $("#NoPluginTip").css("display", "flex"); - } else { - $("#NoPluginTip").hide(); - // Only restore login button if not already logged in - if ($("#BambuLogin2").is(":hidden")) { - $("#BambuLogin1").show(); - } - } + $("#NoPluginTip").css("display", bMissing ? "block" : "none"); + $("#BambuAccount").toggleClass("Disabled", bMissing).attr("aria-disabled", bMissing ? "true" : null); + if (bMissing) SetBambuSectionExpanded(true, false); } else if (strCmd == "modelmall_model_advise_get") { //alert('hot'); if (m_HotModelList != null) { @@ -170,34 +162,128 @@ function GotoMenu( strMenu ) } } -function SetOrcaLoginInfo( strAvatar, strName ) -{ - $("#OrcaLogin1").hide(); - $("#OrcaStatusText").hide(); +/*------Account rows------*/ - $("#UserName").text(strName); +/*----Everything that differs between the two cloud providers lives here----*/ +var AccountRows = { + orca: { row: "#OrcaAccount", name: "#UserName", avatar: "#UserAvatarIcon", dot: null, + loginCmd: "homepage_orca_login_or_register", logoutCmd: "homepage_orca_logout" }, + bambu: { row: "#BambuAccount", name: "#BambuUserName", avatar: "#BambuAvatarIcon", dot: "#BambuStatusDot", + loginCmd: "homepage_bambu_login_or_register", logoutCmd: "homepage_bambu_logout" } +}; - let OriginAvatar=$("#UserAvatarIcon").prop("src"); - if(strAvatar != null && strAvatar.trim() !== '' && strAvatar!=OriginAvatar) - $("#UserAvatarIcon").prop("src",strAvatar); - else - { - //alert('Avatar is Same'); - } +var BAMBU_FOLD_KEY = "OrcaHome_BambuCloudExpanded"; - $("#OrcaLogin2").show(); - $("#OrcaLogin2").css("display","flex"); +var m_OpenAccountMenu = null; + +function SetAccountAvatar(selector, strAvatar) { + if (strAvatar != null && strAvatar.trim() !== '') { + if ($(selector).attr("src") !== strAvatar) $(selector).attr("src", strAvatar); + } else { + $(selector).removeAttr("src"); + } } -function SetOrcaUserOffline() -{ - $("#UserAvatarIcon").prop("src","img/c.jpg"); - $("#UserName").text(''); - $("#OrcaLogin2").hide(); +function OnAvatarLoadError(img) { + img.removeAttribute("src"); // fall back to the placeholder glyph +} - $("#OrcaLogin1").show(); - $("#OrcaLogin1").css("display","flex"); - $("#OrcaStatusText").show(); +function SetAccountSignedIn(strProvider, strAvatar, strName, strHandle) { + var account = AccountRows[strProvider]; + + $(account.name).text(strName).attr("title", strName); /*----long names are ellipsized----*/ + SetAccountAvatar(account.avatar, strAvatar); + /*----the handle is the one thing the row does not already show----*/ + $(account.row).addClass("SignedIn").data("handle", strHandle !== strName ? strHandle : null); + $(account.dot).addClass("Online"); + + if (m_OpenAccountMenu === strProvider) OpenAccountMenu(strProvider); +} + +function SetAccountSignedOut(strProvider) { + var account = AccountRows[strProvider]; + + if (m_OpenAccountMenu === strProvider) CloseAccountMenu(); + $(account.name).text('').removeAttr("title"); + SetAccountAvatar(account.avatar, null); + $(account.row).removeClass("SignedIn").removeData("handle"); + $(account.dot).removeClass("Online"); +} + +function OnAccountRowClick(strProvider) { + var account = AccountRows[strProvider]; + var row = $(account.row); + if (row.hasClass("Disabled")) return; + + if (!row.hasClass("SignedIn")) { + CloseAccountMenu(); + SendSimpleCommand(account.loginCmd); + } else if (m_OpenAccountMenu === strProvider) { + CloseAccountMenu(); + } else { + OpenAccountMenu(strProvider); + } +} + +function OpenAccountMenu(strProvider) { + var account = AccountRows[strProvider]; + var row = $(account.row); + var top = row[0].offsetTop + row[0].offsetHeight + 6; /*----read the geometry before writing----*/ + var strHandle = row.data("handle") || ""; + + $("#AccountMenuHandle").text(strHandle).css("display", strHandle === "" ? "none" : "block"); + $("#AccountMenu").css("top", top + "px").addClass("Open"); + $(".AccountRow").removeClass("MenuOpen").attr("aria-expanded", "false"); + row.addClass("MenuOpen").attr("aria-expanded", "true"); + m_OpenAccountMenu = strProvider; +} + +function CloseAccountMenu() { + $("#AccountMenu").removeClass("Open"); + $(".AccountRow").removeClass("MenuOpen").attr("aria-expanded", "false"); + m_OpenAccountMenu = null; +} + +function OnAccountMenuLogout() { + var account = AccountRows[m_OpenAccountMenu]; + CloseAccountMenu(); + if (account) SendSimpleCommand(account.logoutCmd); +} + +/*----Bambu Cloud is secondary, so its account folds away under the main one----*/ +function SetBambuSectionExpanded(bExpanded, bPersist) { + $("#BambuCloudBody").toggleClass("Expanded", bExpanded); + $("#BambuAccount").attr("tabindex", bExpanded ? "0" : "-1"); /*----keep the folded row out of the tab order----*/ + $("#BambuCloudHeader").toggleClass("Expanded", bExpanded).attr("aria-expanded", bExpanded ? "true" : "false"); + if (!bExpanded && m_OpenAccountMenu === "bambu") CloseAccountMenu(); + // Best effort: the fold is a per-machine convenience, not a synced preference. + if (bPersist) { try { localStorage.setItem(BAMBU_FOLD_KEY, bExpanded ? "1" : "0"); } catch (e) {} } +} + +function ToggleBambuSection() { + SetBambuSectionExpanded(!$("#BambuCloudBody").hasClass("Expanded"), true); +} + +function Set_AccountMenu_Event() { + var bExpanded = false; + try { bExpanded = localStorage.getItem(BAMBU_FOLD_KEY) === "1"; } catch (e) {} + SetBambuSectionExpanded(bExpanded, false); + + $(document).mousedown(function (e) { + if (m_OpenAccountMenu === null) return; + if ($(e.target).closest("#AccountMenu, .AccountRow").length === 0) CloseAccountMenu(); + }); + + $(document).keydown(function (e) { + if (m_OpenAccountMenu !== null && e.key === "Escape") CloseAccountMenu(); + }); + + /*----Enter and Space activate the div-based buttons of this panel----*/ + $(document).on("keydown", "#LoginArea [role=button], #LoginArea [role=menuitem]", function (e) { + if (e.key !== "Enter" && e.key !== " " && e.key !== "Spacebar") return; + e.preventDefault(); + this.click(); + }); } function SetMallUrl( strUrl ) @@ -279,8 +365,6 @@ function SendSimpleCommand(command) { SendWXMessage(JSON.stringify(tSend)); } -function OnOrcaLoginOrRegister() { SendSimpleCommand("homepage_orca_login_or_register"); } -function OnOrcaLogOut() { SendSimpleCommand("homepage_orca_logout"); } function SendMsg_GetOrcaLoginInfo() { SendSimpleCommand("get_orca_login_info"); } @@ -294,15 +378,6 @@ function SendMsg_GetRecentFile() } -function OnLoginOrRegister() -{ - var tSend={}; - tSend['sequence_id']=Math.round(new Date() / 1000); - tSend['command']="homepage_login_or_register"; - - SendWXMessage( JSON.stringify(tSend) ); -} - function OnClickModelDepot() { var tSend={}; @@ -405,59 +480,13 @@ function OnExploreRecentFile( ) $("#recnet_context_menu").hide(); } -function OnLogOut() -{ - var tSend={}; - tSend['sequence_id']=Math.round(new Date() / 1000); - tSend['command']="homepage_logout"; +// --- Cloud providers --- - SendWXMessage( JSON.stringify(tSend) ); -} +function SetOrcaLoginInfo(strAvatar, strName, strAccount) { SetAccountSignedIn("orca", strAvatar, strName, strAccount); } +function SetOrcaUserOffline() { SetAccountSignedOut("orca"); } +function SetBambuLoginInfo(strAvatar, strName) { SetAccountSignedIn("bambu", strAvatar, strName, null); } +function SetBambuUserOffline() { SetAccountSignedOut("bambu"); } -// --- Bambu Cloud Section --- - -function ToggleBambuSection() { - var body = document.getElementById('BambuCloudBody'); - var chevron = document.querySelector('.bambu-chevron'); - if (!body || !chevron) return; - bambuSectionExpanded = !bambuSectionExpanded; - if (bambuSectionExpanded) { - body.classList.add('expanded'); - chevron.classList.add('expanded'); - } else { - body.classList.remove('expanded'); - chevron.classList.remove('expanded'); - } -} - -function SetBambuLoginInfo(strAvatar, strName) { - $("#BambuLogin1").hide(); - $("#BambuUserName").text(strName); - if (strAvatar && strAvatar.trim() !== '') { - $("#BambuAvatarIcon").prop("src", strAvatar); - } - $("#BambuLogin2").show(); - $("#BambuLogin2").css("display", "flex"); - $(".bambu-status-dot").addClass("online"); - $("#BambuStatusText").text("Connected"); - $("#BambuStatusText").attr("tid", "orca11"); -} - -function SetBambuUserOffline() { - $("#BambuAvatarIcon").prop("src", "img/c.jpg"); - $("#BambuUserName").text(''); - $("#BambuLogin2").hide(); - if ($("#NoPluginTip").is(":hidden")) { - $("#BambuLogin1").show(); - $("#BambuLogin1").css("display", "flex"); - } - $(".bambu-status-dot").removeClass("online"); - $("#BambuStatusText").text("Not connected"); - $("#BambuStatusText").attr("tid", "orca10"); -} - -function OnBambuLoginOrRegister() { SendSimpleCommand("homepage_bambu_login_or_register"); } -function OnBambuLogOut() { SendSimpleCommand("homepage_bambu_logout"); } function SendMsg_GetBambuLoginInfo() { SendSimpleCommand("get_bambu_login_info"); } function BeginDownloadNetworkPlugin() diff --git a/src/slic3r/Utils/OrcaCloudServiceAgent.cpp b/src/slic3r/Utils/OrcaCloudServiceAgent.cpp index 4419395b4d..4bfe429cd3 100644 --- a/src/slic3r/Utils/OrcaCloudServiceAgent.cpp +++ b/src/slic3r/Utils/OrcaCloudServiceAgent.cpp @@ -859,9 +859,11 @@ std::string OrcaCloudServiceAgent::build_login_cmd() display_name = "unknown name"; } json cmd; - cmd["command"] = "orca_userlogin"; - cmd["data"]["name"] = display_name; - cmd["data"]["avatar"] = get_user_avatar(); + cmd["command"] = "orca_userlogin"; + cmd["data"]["name"] = display_name; + cmd["data"]["avatar"] = get_user_avatar(); + // The unique handle, shown under the display name in the homepage account menu. + cmd["data"]["account"] = get_user_name(); return cmd.dump(); } From 9b1e141aa9cd7dc9f5c374c8d3c2ebd5a4304853 Mon Sep 17 00:00:00 2001 From: yw4z <ywsyildiz@gmail.com> Date: Mon, 7 Sep 2026 19:57:37 +0300 Subject: [PATCH 161/164] Allow saving preset without parent while it doesnt have parent profile (Detach from parent option for parentless profiles) (#15558) * Update SavePresetDialog.cpp * correct variable name --- src/slic3r/GUI/SavePresetDialog.cpp | 47 ++++++++++++----------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/src/slic3r/GUI/SavePresetDialog.cpp b/src/slic3r/GUI/SavePresetDialog.cpp index 65b75c3d92..04f98f06f9 100644 --- a/src/slic3r/GUI/SavePresetDialog.cpp +++ b/src/slic3r/GUI/SavePresetDialog.cpp @@ -114,7 +114,7 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox if (parent->m_mode == comDevelop) { // A new user copy of a system preset inherits from the selected system preset. const std::string parent_name = sel_preset.is_system ? sel_preset.name : sel_preset.inherits(); - const bool can_detach = !parent_name.empty(); + const bool has_parent = !parent_name.empty(); wxBoxSizer *detach_sizer = new wxBoxSizer(wxHORIZONTAL); @@ -123,8 +123,9 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox auto detach_checkbox = new ::CheckBox(parent); detach_checkbox->SetToolTip(detach_tooltip); - auto detach_label = new wxStaticText(parent, wxID_ANY, _L("Detach from parent")); + auto detach_label = new wxStaticText(parent, wxID_ANY, has_parent ? _L("Detach from parent") : _L("Save without parent")); detach_label->SetFont(::Label::Body_14); + detach_label->SetForegroundColour(wxColour("#363636")); detach_label->SetToolTip(detach_tooltip); detach_sizer->Add(detach_checkbox, 0, wxALIGN_LEFT | wxLEFT, BORDER_W); @@ -132,39 +133,31 @@ SavePresetDialog::Item::Item(Preset::Type type, const std::string &suffix, wxBox sizer->Add(detach_sizer, 0, wxEXPAND | wxTOP, BORDER_W); sizer->AddSpacer(FromDIP(5)); - const wxString parent_text = can_detach ? from_u8(parent_name) : _L("Unique preset"); + const wxString parent_text = has_parent ? from_u8(parent_name) : _L("Unique preset"); auto parent_label = new wxStaticText(parent, wxID_ANY, parent_text); parent_label->SetFont(::Label::Body_12); parent_label->SetForegroundColour(wxColour("#6B6B6B")); - parent_label->SetToolTip(can_detach ? _L("Parent preset") : _L("This preset does not inherit from another preset.")); + parent_label->SetToolTip(has_parent ? _L("Parent preset") : _L("This preset does not inherit from another preset.")); sizer->Add(parent_label, 0, wxEXPAND | wxLEFT, BORDER_W + FromDIP(24)); sizer->AddSpacer(FromDIP(5)); - if (!can_detach) { - detach_checkbox->Disable(); - detach_label->SetForegroundColour(wxColour("#6B6B6B")); - } - else { - // Set initial state (unchecked by default) - detach_checkbox->SetValue(m_detach); - // Bind the checkbox event to update the detach state for this item - detach_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, detach_checkbox](wxCommandEvent& event) { - m_detach = detach_checkbox->GetValue(); - event.Skip(); // Let CheckBox update its bitmap for the new state. - }); + // Set initial state (unchecked by default) + detach_checkbox->SetValue(m_detach); + // Bind the checkbox event to update the detach state for this item + detach_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this, detach_checkbox](wxCommandEvent& event) { + m_detach = detach_checkbox->GetValue(); + event.Skip(); // Let CheckBox update its bitmap for the new state. + }); - detach_label->SetForegroundColour(wxColour("#363636")); - - auto on_toggle = [detach_checkbox]() { - detach_checkbox->SetValue(!detach_checkbox->GetValue()); - wxCommandEvent ev(wxEVT_TOGGLEBUTTON, detach_checkbox->GetId()); - ev.SetEventObject(detach_checkbox); - detach_checkbox->GetEventHandler()->ProcessEvent(ev); - }; - detach_label->Bind(wxEVT_LEFT_DOWN, [on_toggle](wxMouseEvent& e) {if(!e.LeftDClick()) on_toggle();}); - detach_label->Bind(wxEVT_LEFT_DCLICK, [on_toggle](wxMouseEvent& e) {on_toggle();}); - } + auto on_toggle = [detach_checkbox]() { + detach_checkbox->SetValue(!detach_checkbox->GetValue()); + wxCommandEvent ev(wxEVT_TOGGLEBUTTON, detach_checkbox->GetId()); + ev.SetEventObject(detach_checkbox); + detach_checkbox->GetEventHandler()->ProcessEvent(ev); + }; + detach_label->Bind(wxEVT_LEFT_DOWN, [on_toggle](wxMouseEvent& e) {if(!e.LeftDClick()) on_toggle();}); + detach_label->Bind(wxEVT_LEFT_DCLICK, [on_toggle](wxMouseEvent& e) {on_toggle();}); } m_radio_group->Bind(wxEVT_COMMAND_RADIOBOX_SELECTED, [this](wxCommandEvent &e) { From 40ce930e18a526016641e6e3170e367e37b2dbac Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Mon, 7 Sep 2026 15:54:54 -0500 Subject: [PATCH 162/164] build: share cached objects between build directories and worktrees (#15573) --- CMakeLists.txt | 16 +++++++++++++++- build_win.bat | 3 ++- scripts/test_build_win.ps1 | 6 ++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78dd2586da..5620875d4f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,6 +110,7 @@ option(SLIC3R_WARNINGS "Emit compiler warnings for OrcaSlicer sources" option(SLIC3R_BUNDLED_WARNINGS "Emit compiler warnings for bundled third-party sources" 0) option(SLIC3R_MSVC_COMPILE_PARALLEL "Compile on Visual Studio in parallel" 1) option(SLIC3R_MSVC_PDB "Generate PDB files on MSVC in Release mode" 1) +option(SLIC3R_RELATIVE_DEBUG_PATHS "Record a relative compilation directory in debug info (clang-cl)" 0) option(SLIC3R_ASAN "Enable ASan on Clang and GCC" 0) # Python stubgen module @@ -352,11 +353,14 @@ if (MSVC) add_compile_options(/Zc:lambda) endif () # /bigobj (Increase Number of Sections in .Obj file) + add_compile_options(-bigobj) # error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm90' or greater # Generate symbols at every build target, even for the release. # -Zm520 fixes error C3859 but forces the compiler to pre-allocate that memory for every translation unit regardless # combining /Zi with /FS frees up a significant amount of memory pressure across all parallel compile jobs and makes /MP faster overall. - add_compile_options(-bigobj /Zi /FS) + if (SLIC3R_MSVC_PDB) + add_compile_options(/Zi /FS) + endif () # Disable STL4007: Many result_type typedefs and all argument_type, first_argument_type, and second_argument_type typedefs are deprecated in C++17. #FIXME Remove this line after eigen library adapts to the new C++17 adaptor rules. add_compile_options(-D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING) @@ -374,6 +378,16 @@ if (MSVC) set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LTCG") endif () +# Without this every object names its build directory and two worktrees never +# share cache entries. The linker still writes absolute paths into the PDB. +if (SLIC3R_RELATIVE_DEBUG_PATHS) + if (IS_CLANG_CL) + add_compile_options(-ffile-compilation-dir=.) + else () + message(WARNING "SLIC3R_RELATIVE_DEBUG_PATHS is only implemented for clang-cl") + endif () +endif () + if (${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang" AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15) add_compile_definitions(BOOST_NO_CXX98_FUNCTION_BASE _HAS_AUTO_PTR_ETC=0) endif() diff --git a/build_win.bat b/build_win.bat index 840279e4f3..dfb30e313b 100644 --- a/build_win.bat +++ b/build_win.bat @@ -699,7 +699,8 @@ if "%build_slicer%" == "ON" ( ) if not "!cache_args!" == "" ( - set "slicer_args=!slicer_args! !cache_args!" + REM Relative debug paths as well, so another tree can reuse the objects. + set "slicer_args=!slicer_args! !cache_args! -DSLIC3R_RELATIVE_DEBUG_PATHS=ON" ) REM Configuring against a tree that was never built fails deep inside diff --git a/scripts/test_build_win.ps1 b/scripts/test_build_win.ps1 index 34f64117af..a8abfbc7bf 100644 --- a/scripts/test_build_win.ps1 +++ b/scripts/test_build_win.ps1 @@ -360,6 +360,12 @@ $cases = @( @{ Name = '--cache turns the precompiled header off'; Args = @('-s', '-l', '-x', '--cache', 'ccache') Env = @{ PATH = $ccacheOnPath } Contains = @('-DSLIC3R_PCH=OFF', 'COMPILER_LAUNCHER') } + # Without it the objects name the build directory and only that tree can use them. + @{ Name = '--cache asks for relative debug paths'; Args = @('-s', '-l', '-x', '--cache', 'ccache') + Env = @{ PATH = $ccacheOnPath } + Contains = @('-DSLIC3R_RELATIVE_DEBUG_PATHS=ON') } + @{ Name = 'no --cache leaves the debug paths alone'; Args = @('-s', '-l', '-x') + NotContains = @('SLIC3R_RELATIVE_DEBUG_PATHS') } # The resolved path, not the bare name, so PATH cannot change it later. @{ Name = '--cache names the resolved path in the banner'; Args = @('-s', '-l', '-x', '--cache', 'ccache') Env = @{ PATH = $ccacheOnPath } From 5779274e5bb226623949829b9d00ee1bd3949846 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Mon, 7 Sep 2026 16:02:14 -0500 Subject: [PATCH 163/164] test: cover support interface generation and tree support (#15575) --- tests/fff_print/CMakeLists.txt | 1 + tests/fff_print/test_support_material.cpp | 361 ++++++++++++++++++++++ tests/fff_print/test_tree_support.cpp | 125 ++++++++ 3 files changed, 487 insertions(+) create mode 100644 tests/fff_print/test_tree_support.cpp diff --git a/tests/fff_print/CMakeLists.txt b/tests/fff_print/CMakeLists.txt index fc46bb8fdc..3247bfda66 100644 --- a/tests/fff_print/CMakeLists.txt +++ b/tests/fff_print/CMakeLists.txt @@ -19,6 +19,7 @@ add_executable(${_TEST_NAME}_tests test_skirt_brim.cpp test_slicing_pipeline_hook.cpp test_support_material.cpp + test_tree_support.cpp test_trianglemesh.cpp test_wipe_tower.cpp ) diff --git a/tests/fff_print/test_support_material.cpp b/tests/fff_print/test_support_material.cpp index f854939c8c..4564c0b034 100644 --- a/tests/fff_print/test_support_material.cpp +++ b/tests/fff_print/test_support_material.cpp @@ -3,11 +3,103 @@ #include "libslic3r/GCodeReader.hpp" #include "libslic3r/Layer.hpp" +#include <cmath> +#include <map> +#include <set> +#include <vector> + #include "test_helpers.hpp" // get access to init_print, etc +// Not self-contained: its inline constructor uses PrintObject, PrintRegion, SlicingParameters and +// Geometry, so it must follow the headers (pulled in via test_helpers.hpp) that define them. +#include "libslic3r/Support/SupportParameters.hpp" + using namespace Slic3r::Test; using namespace Slic3r; +// Distinct layer Z heights carrying support interface extrusion. +static size_t support_interface_layer_count(const std::string &gcode) +{ + return layers_with_role(gcode, "support material interface").size(); +} + +// Distinct layer Z heights carrying support base extrusion. The base G-code label "support material" +// is a substring of "support material interface", so a base line is a support line that is not an +// interface line. +static size_t support_base_layer_count(const std::string &gcode) +{ + std::set<double> layers; + GCodeReader parser; + parser.parse_buffer(gcode, [&layers](GCodeReader &self, const GCodeReader::GCodeLine &line) { + if (! line.extruding(self)) return; + const std::string_view comment = line.comment(); + if (comment.find("support material") != std::string_view::npos && + comment.find("interface") == std::string_view::npos) + layers.insert(self.z()); + }); + return layers.size(); +} + +// Dominant support-interface fill direction per interface layer, in radians [0, pi). Uses the +// length-weighted axial mean (each segment angle doubled so a line and its reverse agree, then +// halved): the parallel infill lines reinforce while the surrounding perimeter cancels. +static std::map<double, double> interface_fill_angle_by_layer(const std::string &gcode) +{ + std::map<double, std::pair<double, double>> acc; // z -> summed length*(cos2a, sin2a) + GCodeReader parser; + parser.parse_buffer(gcode, [&acc](GCodeReader &self, const GCodeReader::GCodeLine &line) { + if (! line.extruding(self)) return; + if (line.comment().find("support material interface") == std::string_view::npos) return; + const double dx = line.dist_X(self), dy = line.dist_Y(self); + const double len = std::hypot(dx, dy); + if (len < 1e-6) return; + const double a2 = 2.0 * std::atan2(dy, dx); + auto &p = acc[self.z()]; + p.first += len * std::cos(a2); + p.second += len * std::sin(a2); + }); + std::map<double, double> out; + for (const auto &kv : acc) { + double a = 0.5 * std::atan2(kv.second.second, kv.second.first); + if (a < 0) a += M_PI; + out[kv.first] = a; + } + return out; +} + +// Acute angle (degrees) between two axial fill directions in [0, pi). +static double axial_angle_diff_deg(double a, double b) +{ + const double d = std::fmod(std::fabs(a - b), M_PI); + return std::min(d, M_PI - d) * 180.0 / M_PI; +} + +// Denser interface spacing yields more extruded length. +static double support_interface_extrusion_length(const std::string &gcode) +{ + double len = 0; + GCodeReader parser; + parser.parse_buffer(gcode, [&len](GCodeReader &self, const GCodeReader::GCodeLine &line) { + if (! line.extruding(self)) return; + if (line.comment().find("support material interface") == std::string_view::npos) return; + len += std::hypot(line.dist_X(self), line.dist_Y(self)); + }); + return len; +} + +// A cap slab overhanging a base, joined by a central stem: the cap can only be supported by resting on the +// base, forcing a genuine bottom contact. A horizontal tunnel does not work here -- tree/organic can arch a +// branch in from the opening and avoid the floor entirely. +static TriangleMesh support_capital() +{ + TriangleMesh model = make_cube(40, 40, 2); // base [0,40]x[0,40]x[0,2] + TriangleMesh stem = make_cube(8, 8, 12); stem.translate(16, 16, 1); // stem centered, z 1..13 + TriangleMesh cap = make_cube(40, 40, 2); cap.translate(0, 0, 12); // cap z 12..14 + model.merge(stem); + model.merge(cap); + return model; +} + TEST_CASE("Three raft layers are created", "[SupportMaterial]") { Slic3r::Print print; @@ -104,3 +196,272 @@ TEST_CASE("Support G-code emission survives a second slice in the same process", const std::string second = slice({ TestMesh::overhang }, { { "enable_support", 1 } }); REQUIRE(! layers_with_role(second, "support").empty()); } + +// The contact layer counts toward the configured interface layer count, so N configured top +// interface layers produce exactly N interface layers, not N+1. +TEST_CASE("Support top interface layer count matches the configured value", "[SupportMaterial]") +{ + const int top = GENERATE(1, 2, 3, 4, 6); + const std::string g = slice({ TestMesh::overhang }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_on_build_plate_only", 1 }, + { "support_interface_top_layers", top }, + { "support_interface_bottom_layers", 0 }, + }); + CAPTURE(top); + REQUIRE(support_base_layer_count(g) > 0); // support actually formed + REQUIRE(support_interface_layer_count(g) == size_t(top)); +} + +// A rotated cube-with-hole is a horizontal tunnel whose ceiling and floor both receive support, so top +// and bottom interfaces can be exercised independently (the floor is the bottom contact). +static TriangleMesh support_tunnel() +{ + TriangleMesh tunnel = Slic3r::Test::mesh(TestMesh::cube_with_hole); + tunnel.rotate_x(float(M_PI / 2)); + return tunnel; +} + +static size_t tunnel_interface_layers(const TriangleMesh &tunnel, int top, int bottom) +{ + const std::string g = slice({ tunnel }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_on_build_plate_only", 0 }, + { "support_interface_top_layers", top }, + { "support_interface_bottom_layers", bottom }, + }); + REQUIRE(support_base_layer_count(g) > 0); // support actually formed + return support_interface_layer_count(g); +} + +TEST_CASE("No support interface is generated when neither top nor bottom is configured", "[SupportMaterial]") +{ + REQUIRE(tunnel_interface_layers(support_tunnel(), 0, 0) == 0); +} + +TEST_CASE("Bottom interface layer count matches its setting with top interface off", "[SupportMaterial]") +{ + const int bottom = GENERATE(1, 3, 6); + CAPTURE(bottom); + REQUIRE(tunnel_interface_layers(support_tunnel(), 0, bottom) == size_t(bottom)); +} + +// support_interface_bottom_layers = -1 means "same as top". +TEST_CASE("Support interface bottom layers default to the top layer count", "[SupportMaterial]") +{ + const TriangleMesh tunnel = support_tunnel(); + REQUIRE(tunnel_interface_layers(tunnel, 0, -1) == tunnel_interface_layers(tunnel, 0, 0)); + REQUIRE(tunnel_interface_layers(tunnel, 3, -1) == tunnel_interface_layers(tunnel, 3, 3)); +} + +TEST_CASE("Default support still emits base and interface material", "[SupportMaterial][Regression]") +{ + const std::string g = slice({ TestMesh::overhang }, { { "enable_support", 1 } }); + REQUIRE(support_base_layer_count(g) > 0); + REQUIRE(support_interface_layer_count(g) > 0); +} + +// Organic runs TreeSupport3D + TreeModelVolumes, the others the classic TreeSupport.cpp path. +TEST_CASE("Every tree support style produces base and interface material", "[SupportMaterial]") +{ + const char *style = GENERATE("organic", "tree_slim", "tree_strong", "tree_hybrid"); + INFO("style=" << style); + const std::string g = slice({ TestMesh::overhang }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_type", "tree(auto)" }, + { "support_style", style }, + { "support_interface_top_layers", 3 }, + }); + CHECK(support_base_layer_count(g) > 0); + CHECK(support_interface_layer_count(g) > 0); +} + +TEST_CASE("Raft interface angle alternates by 45 degrees per interface id", "[SupportMaterial]") +{ + Slic3r::Print print; + Slic3r::Test::init_and_process_print({ TestMesh::overhang }, print, { { "enable_support", 1 } }); + SupportParameters sp(*print.objects().front()); + sp.raft_angle_interface = 0.5f; + REQUIRE_THAT(sp.raft_interface_angle(0), Catch::Matchers::WithinAbs(0.5 + M_PI / 4., 1e-6)); + REQUIRE_THAT(sp.raft_interface_angle(1), Catch::Matchers::WithinAbs(0.5 - M_PI / 4., 1e-6)); +} + +// The angle inputs are overwritten directly, so the pattern-to-angle mapping is checked +// independently of the sliced object's configuration. +TEST_CASE("Support interface fill angle follows the configured interface pattern", "[SupportMaterial]") +{ + Slic3r::Print print; + Slic3r::Test::init_and_process_print({ TestMesh::overhang }, print, { { "enable_support", 1 } }); + SupportParameters sp(*print.objects().front()); + sp.interface_angle = 0.3f; + sp.base_angle = 1.1f; + const double tol = 1e-6; + + SECTION("Rectilinear shifts the interface angle by -45deg for snug support") { + sp.support_interface_pattern = smipRectilinear; + sp.support_style = smsSnug; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.interface_angle - M_PI_4, tol)); + REQUIRE_THAT(sp.support_interface_angle(3), Catch::Matchers::WithinAbs(sp.interface_angle - M_PI_4, tol)); + } + SECTION("Rectilinear leaves the interface angle alone for the other styles") { + sp.support_interface_pattern = smipRectilinear; + sp.support_style = smsGrid; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.interface_angle, tol)); + } + SECTION("Rectilinear interlaced alternates -/+45deg by interface id parity") { + sp.support_interface_pattern = smipRectilinearInterlaced; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.interface_angle - M_PI_4, tol)); + REQUIRE_THAT(sp.support_interface_angle(1), Catch::Matchers::WithinAbs(sp.interface_angle + M_PI_4, tol)); + } + SECTION("Grid uses the base angle") { + sp.support_interface_pattern = smipGrid; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.base_angle, tol)); + } + SECTION("Auto and concentric use the interface angle unchanged") { + sp.support_interface_pattern = smipAuto; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.interface_angle, tol)); + sp.support_interface_pattern = smipConcentric; + REQUIRE_THAT(sp.support_interface_angle(0), Catch::Matchers::WithinAbs(sp.interface_angle, tol)); + } +} + +// End-to-end that the pattern reaches the emitted fill, not just support_interface_angle(). +TEST_CASE("Interlaced support interface alternates fill angle while rectilinear does not", "[SupportMaterial]") +{ + auto interface_angles = [](const char *pattern) { + std::vector<double> a; + for (const auto &kv : interface_fill_angle_by_layer(slice({ TestMesh::overhang }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_on_build_plate_only", 1 }, + { "support_interface_top_layers", 6 }, + { "support_interface_pattern", pattern } }))) + a.push_back(kv.second); + return a; + }; + + const std::vector<double> rectilinear = interface_angles("rectilinear"); + const std::vector<double> interlaced = interface_angles("rectilinear_interlaced"); + REQUIRE(rectilinear.size() >= 3); + REQUIRE(interlaced.size() >= 3); + + for (size_t i = 1; i < rectilinear.size(); ++i) + REQUIRE(axial_angle_diff_deg(rectilinear[i], rectilinear[0]) < 15.0); + + for (size_t i = 1; i < interlaced.size(); ++i) + REQUIRE(axial_angle_diff_deg(interlaced[i], interlaced[i - 1]) > 60.0); +} + +// Normal and non-organic tree support share the same interface angle logic: with a rectilinear interface +// pattern both emit their interface fill at the same angle (both go through support_interface_angle()). +TEST_CASE("Normal and tree support use the same interface fill angle", "[SupportMaterial]") +{ + auto mean_interface_angle = [](const char *type, const char *style) { + const auto angles = interface_fill_angle_by_layer(slice({ TestMesh::overhang }, { + { "enable_support", 1 }, { "layer_height", 0.2 }, { "support_on_build_plate_only", 1 }, + { "support_type", type }, { "support_style", style }, + { "support_interface_top_layers", 6 }, { "support_interface_pattern", "rectilinear" } })); + REQUIRE(angles.size() >= 3); + // Axial mean, as in interface_fill_angle_by_layer: a plain mean would split angles either + // side of the [0, pi) wrap. + double x = 0, y = 0; + for (const auto &kv : angles) { + x += std::cos(2.0 * kv.second); + y += std::sin(2.0 * kv.second); + } + double mean = 0.5 * std::atan2(y, x); + if (mean < 0) mean += M_PI; + return mean; + }; + REQUIRE(axial_angle_diff_deg(mean_interface_angle("normal(auto)", "default"), + mean_interface_angle("tree(auto)", "tree_slim")) < 10.0); +} + +// Every style, because the non-organic tree styles once emitted one more top interface layer than the rest. +TEST_CASE("Top interface layer count equals the configured value for every support style", "[SupportMaterial]") +{ + auto [type, style] = GENERATE(table<const char *, const char *>({ + { "normal(auto)", "grid" }, { "normal(auto)", "snug" }, + { "tree(auto)", "organic" }, { "tree(auto)", "tree_slim" }, + { "tree(auto)", "tree_strong" }, { "tree(auto)", "tree_hybrid" }, + })); + CAPTURE(style); + const std::string g = slice({ TestMesh::overhang }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_type", type }, + { "support_style", style }, + { "support_interface_top_layers", 4 }, + }); + REQUIRE(support_interface_layer_count(g) == 4u); +} + +// The bottom interface was dropped in earlier versions when support started on the model rather +// than the plate. +TEST_CASE("Non-organic tree support generates a bottom interface on internal geometry", "[SupportMaterial]") +{ + const std::string g = slice({ support_tunnel() }, { + { "enable_support", 1 }, + { "layer_height", 0.2 }, + { "support_on_build_plate_only", 0 }, + { "support_type", "tree(auto)" }, + { "support_style", "tree_slim" }, + { "support_interface_top_layers", 0 }, + { "support_interface_bottom_layers", 6 }, + }); + REQUIRE(support_base_layer_count(g) > 0); + REQUIRE(support_interface_layer_count(g) > 0); +} + +// The capital forces the model contact; on a horizontal tunnel organic can arch a branch in and make none. +TEST_CASE("A bottom interface is produced for every support style on a forced model contact", "[SupportMaterial]") +{ + auto [type, style] = GENERATE(table<const char *, const char *>({ + { "normal(auto)", "default" }, { "tree(auto)", "tree_slim" }, + { "tree(auto)", "tree_strong" }, { "tree(auto)", "tree_hybrid" }, + { "tree(auto)", "organic" }, + })); + CAPTURE(style); + REQUIRE(support_interface_layer_count(slice({ support_capital() }, { + { "enable_support", 1 }, { "layer_height", 0.2 }, { "support_on_build_plate_only", 0 }, + { "support_type", type }, { "support_style", style }, + { "support_interface_top_layers", 0 }, { "support_interface_bottom_layers", 6 } })) > 0); +} + +TEST_CASE("Bottom interface spacing controls bottom interface density for every support style", "[SupportMaterial]") +{ + auto [type, style] = GENERATE(table<const char *, const char *>({ + { "normal(auto)", "default" }, { "tree(auto)", "tree_slim" }, + { "tree(auto)", "tree_strong" }, { "tree(auto)", "tree_hybrid" }, + { "tree(auto)", "organic" }, + })); + CAPTURE(style); + const TriangleMesh model = support_capital(); + auto len = [&model](const char *support_type, const char *support_style, double spacing) { + return support_interface_extrusion_length(slice({ model }, { + { "enable_support", 1 }, { "layer_height", 0.2 }, { "support_on_build_plate_only", 0 }, + { "support_type", support_type }, { "support_style", support_style }, { "support_interface_top_layers", 0 }, + { "support_interface_bottom_layers", 6 }, { "support_bottom_interface_spacing", spacing } })); + }; + REQUIRE(len(type, style, 0.0) > len(type, style, 4.0) * 1.5); +} + +// Interface and base flows are identical in width and rate unless a separate support-interface +// filament is used, so density is the observable here, not flow. +TEST_CASE("Bottom-only support interface keeps the dense interface density", "[SupportMaterial]") +{ + Slic3r::Print print; + Slic3r::Test::init_and_process_print({ TestMesh::overhang }, print, { + { "enable_support", 1 }, + { "support_interface_top_layers", 0 }, + { "support_interface_bottom_layers", 6 }, + { "support_bottom_interface_spacing", 0.0 }, // solid: density resolves to 1.0 + { "support_base_pattern_spacing", 2.5 }, // sparse: density stays below 1.0 + }); + SupportParameters sp(*print.objects().front()); + REQUIRE(sp.bottom_interface_density > sp.support_density); +} + diff --git a/tests/fff_print/test_tree_support.cpp b/tests/fff_print/test_tree_support.cpp new file mode 100644 index 0000000000..362eb0ca56 --- /dev/null +++ b/tests/fff_print/test_tree_support.cpp @@ -0,0 +1,125 @@ +#include <catch2/catch_all.hpp> + +#include "libslic3r/Layer.hpp" +#include "libslic3r/TriangleMesh.hpp" + +#include "test_helpers.hpp" + +using namespace Slic3r::Test; +using namespace Slic3r; + +namespace { + +// The upper plate overhangs both the lower plate and open air, so branches land on the model and on +// the bed in the same slice. +TriangleMesh two_tier_mesh() +{ + TriangleMesh lower = make_cube(30, 30, 3); + TriangleMesh column = make_cube(8, 8, 15); + TriangleMesh upper = make_cube(50, 50, 3); + // Each part overlaps the one below rather than resting on it; a coplanar join slices ambiguously. + column.translate(11.f, 11.f, 2.f); + upper.translate(-10.f, -10.f, 16.f); + TriangleMesh mesh = lower; + mesh.merge(column); + mesh.merge(upper); + return mesh; +} + +TriangleMesh scaled(TestMesh id, float scale) +{ + TriangleMesh mesh = Slic3r::Test::mesh(id); + mesh.scale(scale); + return mesh; +} + +void slice_with_tree_support(const TriangleMesh &mesh, Slic3r::Print &print, const char *style, + int threshold_angle = 30, int build_plate_only = 0, int raft_layers = 0) +{ + Slic3r::Test::init_and_process_print({ mesh }, print, { + { "enable_support", 1 }, + { "support_type", "tree(auto)" }, + { "support_style", style }, + { "support_on_build_plate_only", build_plate_only }, + { "support_threshold_angle", threshold_angle }, + { "raft_layers", raft_layers }, + { "layer_height", 0.2 }, + }); +} + +Points support_points(const Slic3r::Print &print) +{ + Points points; + for (const SupportLayer *layer : print.objects().front()->support_layers()) + layer->support_fills.collect_points(points); + return points; +} + +size_t support_point_count(const TriangleMesh &mesh, const char *style, int threshold_angle = 30, + int build_plate_only = 0) +{ + Slic3r::Print print; + slice_with_tree_support(mesh, print, style, threshold_angle, build_plate_only); + return support_points(print).size(); +} + +} // namespace + +TEST_CASE("Tree support is generated for an overhang and not for a plain cube", "[TreeSupport]") +{ + REQUIRE(support_point_count(scaled(TestMesh::overhang, 2.f), "tree_slim") > 1000); + REQUIRE(support_point_count(Slic3r::Test::cube(20), "tree_slim") == 0); +} + +TEST_CASE("Restricting tree support to the build plate changes what is generated", "[TreeSupport]") +{ + const TriangleMesh mesh = two_tier_mesh(); + const size_t anywhere = support_point_count(mesh, "tree_slim", 30, 0); + const size_t plate_only = support_point_count(mesh, "tree_slim", 30, 1); + REQUIRE(anywhere > 1000); + REQUIRE(plate_only > 1000); + // The upper plate overhangs the lower one, so some branches would land on the model. + REQUIRE(plate_only != anywhere); +} + +TEST_CASE("Tree support layers rise monotonically within the layer height limits", "[TreeSupport]") +{ + Slic3r::Print print; + slice_with_tree_support(scaled(TestMesh::overhang, 2.f), print, "tree_slim"); + const double nozzle = print.config().nozzle_diameter.values.front(); + + size_t checked = 0; + double previous = 0; + bool previous_was_adjacent = false; + for (const SupportLayer *layer : print.objects().front()->support_layers()) { + if (layer->print_z <= 0 || layer->height <= 0) { + // Layers with no nodes are left at zero. Skipping one leaves a hole, so the next pair + // spans more than one layer and its gap says nothing about the layer height limit. + previous_was_adjacent = false; + continue; + } + if (previous > 0) { + CAPTURE(previous, layer->print_z); + REQUIRE(layer->print_z > previous); + if (previous_was_adjacent) + REQUIRE(layer->print_z - previous <= nozzle + EPSILON); + } + previous = layer->print_z; + previous_was_adjacent = true; + ++checked; + } + REQUIRE(checked > 10); +} + +TEST_CASE("A raft is still generated under tree support", "[TreeSupport]") +{ + // The mesh supports itself, so a layer count alone passes with no raft at all. + Slic3r::Print rafted, unrafted; + slice_with_tree_support(scaled(TestMesh::overhang, 2.f), rafted, "tree_slim", 30, 0, 3); + slice_with_tree_support(scaled(TestMesh::overhang, 2.f), unrafted, "tree_slim", 30, 0, 0); + const PrintObject *rafted_object = rafted.objects().front(); + const PrintObject *unrafted_object = unrafted.objects().front(); + REQUIRE(rafted_object->support_layers().size() > unrafted_object->support_layers().size()); + // The raft goes under the object. + REQUIRE(rafted_object->layers().front()->print_z > unrafted_object->layers().front()->print_z); +} From c61d2fe5d1a2450651133578f248849ed82a4c2b Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Tue, 8 Sep 2026 11:11:54 +0800 Subject: [PATCH 164/164] Fix the Folgertech i3 0.6 nozzle printable area (#15577) The bed was declared as 0x0, 20x0, 200x200, 0x200 - a triangle - where the 0.4 nozzle profile and the printer have the 200 x 200 square. Found by the profile validator once it placed the prime tower beside the test cube: no tower fits inside that outline. --- resources/profiles/Folgertech.json | 2 +- .../profiles/Folgertech/machine/Folgertech i3 0.6 nozzle.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/profiles/Folgertech.json b/resources/profiles/Folgertech.json index 125cba3d46..a20dc8992e 100644 --- a/resources/profiles/Folgertech.json +++ b/resources/profiles/Folgertech.json @@ -1,6 +1,6 @@ { "name": "Folgertech", - "version": "02.04.00.01", + "version": "02.04.00.02", "force_update": "0", "description": "Folgertech configurations", "machine_model_list": [ diff --git a/resources/profiles/Folgertech/machine/Folgertech i3 0.6 nozzle.json b/resources/profiles/Folgertech/machine/Folgertech i3 0.6 nozzle.json index 40cf5fbf82..59fb023448 100644 --- a/resources/profiles/Folgertech/machine/Folgertech i3 0.6 nozzle.json +++ b/resources/profiles/Folgertech/machine/Folgertech i3 0.6 nozzle.json @@ -12,7 +12,7 @@ "printer_variant": "0.6", "printable_area": [ "0x0", - "20x0", + "200x0", "200x200", "0x200" ],